@genome-spy/app 0.31.2 → 0.32.0

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 (3) hide show
  1. package/dist/index.js +270 -83
  2. package/package.json +3 -3
  3. package/LICENSE +0 -21
package/dist/index.js CHANGED
@@ -1,21 +1,21 @@
1
- (function(U,R){typeof exports=="object"&&typeof module<"u"?R(exports):typeof define=="function"&&define.amd?define(["exports"],R):(U=typeof globalThis<"u"?globalThis:U||self,R(U.genomeSpyApp={}))})(this,function(U){var Ho,zd,si,ci,et,ui,Qo,Rd,Mt,Cn,oc,qb,ac,Kb,br,$o,Vo,jd,Yo,Ud,_o,Gd,sc,Jb,cc,$b,li,mc,Wo,fi,_t,xn,Xo,uc,e2,lc,t2,Zo,Hd,fc,n2,dc,r2,qo,Qd;"use strict";var XN=Object.defineProperty;var ZN=(U,R,ce)=>R in U?XN(U,R,{enumerable:!0,configurable:!0,writable:!0,value:ce}):U[R]=ce;var pc=(U,R,ce)=>(ZN(U,typeof R!="symbol"?R+"":R,ce),ce),Pd=(U,R,ce)=>{if(!R.has(U))throw TypeError("Cannot "+ce)};var j=(U,R,ce)=>(Pd(U,R,"read from private field"),ce?ce.call(U):R.get(U)),q=(U,R,ce)=>{if(R.has(U))throw TypeError("Cannot add the same private member more than once");R instanceof WeakSet?R.add(U):R.set(U,ce)},tt=(U,R,ce,Sn)=>(Pd(U,R,"write to private field"),Sn?Sn.call(U,ce):R.set(U,ce),ce),Wb=(U,R,ce,Sn)=>({set _(gc){tt(U,R,gc,ce)},get _(){return j(U,R,Sn)}}),$=(U,R,ce)=>(Pd(U,R,"access private method"),ce);function R(t,e,n){return t.fields=e||[],t.fname=n,t}function ce(t){return t==null?null:t.fname}function Sn(t){return t==null?null:t.fields}function gc(t){return t.length===1?i2(t[0]):o2(t)}const i2=t=>function(e){return e[t]},o2=t=>{const e=t.length;return function(n){for(let r=0;r<e;++r)n=n[t[r]];return n}};function se(t){throw Error(t)}function a2(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||se("Access path missing open bracket: "+t),i>0&&u(),i=0,a=s+1)}return i&&se("Access path missing closing bracket: "+t),r&&se("Access path missing closing quote: "+t),s>a&&(s++,u()),e}function ea(t,e,n){const r=a2(t);return t=r.length===1?r[0]:t,R((n&&n.get||gc)(r),[t],e||t)}ea("id");const ta=R(t=>t,[],"identity");R(()=>0,[],"zero"),R(()=>1,[],"one"),R(()=>!0,[],"true"),R(()=>!1,[],"false");var We=Array.isArray;function Re(t){return t===Object(t)}function nt(t){return t[t.length-1]}function di(t){return t==null||t===""?null:+t}const Vd=t=>e=>t*Math.exp(e),Yd=t=>e=>Math.log(t*e),s2=t=>e=>Math.sign(e)*Math.log1p(Math.abs(e/t)),c2=t=>e=>Math.sign(e)*Math.expm1(Math.abs(e))*t,na=t=>e=>e<0?-Math.pow(-e,t):Math.pow(e,t);function yc(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 u2(t,e){return yc(t,e,di,ta)}function l2(t,e){var n=Math.sign(t[0]);return yc(t,e,Yd(n),Vd(n))}function f2(t,e,n){return yc(t,e,na(n),na(1/n))}function ra(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 vc(t,e,n){return ra(t,e,n,di,ta)}function _d(t,e,n){const r=Math.sign(t[0]);return ra(t,e,n,Yd(r),Vd(r))}function bc(t,e,n,r){return ra(t,e,n,na(r),na(1/r))}function d2(t,e,n,r){return ra(t,e,n,s2(r),c2(r))}function Ac(t){return t!=null?We(t)?t:[t]:[]}function h2(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 p2="descending";function Wd(t,e,n){n=n||{},e=Ac(e)||[];const r=[],i=[],o={},a=n.comparator||m2;return Ac(t).forEach((s,c)=>{s!=null&&(r.push(e[c]===p2?-1:1),i.push(s=ke(s)?s:ea(s,null,n)),(Sn(s)||[]).forEach(u=>o[u]=1))}),i.length===0?null:R(a(i,r),Object.keys(o))}const Xd=(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),m2=(t,e)=>t.length===1?g2(t[0],e[0]):y2(t,e,t.length),g2=(t,e)=>function(n,r){return Xd(t(n),t(r))*e},y2=(t,e,n)=>(e.push(0),function(r,i){let o,a=0,s=-1;for(;a===0&&++s<n;)o=t[s],a=Xd(o(r),o(i));return a*e[s]});function v2(t){return ke(t)?t:()=>t}function xc(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 b2=Object.prototype.hasOwnProperty;function En(t,e){return b2.call(t,e)}function ia(t){return typeof t=="boolean"}function A2(t){return Object.prototype.toString.call(t)==="[object Date]"}function x2(t){return t&&ke(t[Symbol.iterator])}function le(t){return typeof t=="number"}function re(t){return typeof t=="string"}function w2(t,e){const n=t[0],r=nt(t),i=+e;return i?i===1?r:n+i*(r-n):n}function oa(t){return t&&nt(t)-t[0]||0}function aa(t){return We(t)?"["+t.map(aa)+"]":Re(t)||re(t)?JSON.stringify(t).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):t}function C2(t){return t==null||t===""?null:!t||t==="false"||t==="0"?!1:!!t}const S2=t=>le(t)||A2(t)?t:Date.parse(t);function E2(t,e){return e=e||S2,t==null||t===""?null:e(t)}function D2(t){return t==null||t===""?null:t+""}function sa(t){const e={},n=t.length;for(let r=0;r<n;++r)e[t[r]]=!0;return e}var Zd={},wc={},Cc=34,hi=10,Sc=13;function qd(t){return new Function("d","return {"+t.map(function(e,n){return JSON.stringify(e)+": d["+n+'] || ""'}).join(",")+"}")}function M2(t,e){var n=qd(t);return function(r,i){return e(n(r),i,t)}}function Kd(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 T2(t){return t<0?"-"+Ne(-t,6):t>9999?"+"+Ne(t,6):Ne(t,4)}function I2(t){var e=t.getUTCHours(),n=t.getUTCMinutes(),r=t.getUTCSeconds(),i=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":T2(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 Jd(t){var e=new RegExp('["'+t+`
2
- \r]`),n=t.charCodeAt(0);function r(l,d){var h,p,m=i(l,function(g,y){if(h)return h(g,y-1);p=g,h=d?M2(g,d):qd(g)});return m.columns=p||[],m}function i(l,d){var h=[],p=l.length,m=0,g=0,y,b=p<=0,w=!1;l.charCodeAt(p-1)===hi&&--p,l.charCodeAt(p-1)===Sc&&--p;function C(){if(b)return wc;if(w)return w=!1,Zd;var v,A=m,D;if(l.charCodeAt(A)===Cc){for(;m++<p&&l.charCodeAt(m)!==Cc||l.charCodeAt(++m)===Cc;);return(v=m)>=p?b=!0:(D=l.charCodeAt(m++))===hi?w=!0:D===Sc&&(w=!0,l.charCodeAt(m)===hi&&++m),l.slice(A+1,v-1).replace(/""/g,'"')}for(;m<p;){if((D=l.charCodeAt(v=m++))===hi)w=!0;else if(D===Sc)w=!0,l.charCodeAt(m)===hi&&++m;else if(D!==n)continue;return l.slice(A,v)}return b=!0,l.slice(A,p)}for(;(y=C())!==wc;){for(var x=[];y!==Zd&&y!==wc;)x.push(y),y=C();d&&(x=d(x,g++))==null||h.push(x)}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=Kd(l)),[d.map(f).join(t)].concat(o(l,d)).join(`
3
- `)}function s(l,d){return d==null&&(d=Kd(l)),o(l,d).join(`
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?I2(l):e.test(l+="")?'"'+l.replace(/"/g,'""')+'"':l}return{parse:r,parseRows:i,format:a,formatBody:s,formatRows:c,formatRow:u,formatValue:f}}var k2=Jd(" "),N2=k2.parseRows;function L2(t){return t}function B2(t){if(t==null)return L2;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 O2(t,e){for(var n,r=t.length,i=r-e;i<--r;)n=t[i],t[i++]=t[r],t[r]=n}function F2(t,e){return typeof e=="string"&&(e=t.objects[e]),e.type==="GeometryCollection"?{type:"FeatureCollection",features:e.geometries.map(function(n){return $d(t,n)})}:$d(t,e)}function $d(t,e){var n=e.id,r=e.bbox,i=e.properties==null?{}:e.properties,o=eh(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 eh(t,e){var n=B2(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&&O2(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 P2(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 g=p===h?h:p.concat(h);r[g.start=p.start]=i[g.end=h.end]=g}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 z2(t){return eh(t,R2.apply(this,arguments))}function R2(t,e,n){var r,i,o;if(arguments.length>1)r=j2(t,e,n);else for(i=0,r=new Array(o=t.arcs.length);i<o;++i)r[i]=i;return{type:"MultiLineString",arcs:P2(t,r)}}function j2(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 Dn(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function U2(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function ca(t){let e,n,r;t.length!==2?(e=Dn,n=(s,c)=>Dn(t(s),c),r=(s,c)=>t(s)-c):(e=t===Dn||t===U2?t:G2,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 G2(){return 0}function th(t){return t===null?NaN:+t}const nh=ca(Dn),Ec=nh.right;nh.left,ca(th).center;const Mn=Ec;function H2(t,e){let n=0;if(e===void 0)for(let r of t)r!=null&&(r=+r)>=r&&++n;else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(i=+i)>=i&&++n}return n}function ua(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 Tn extends Map{constructor(e,n=Y2){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(rh(this,e))}has(e){return super.has(rh(this,e))}set(e,n){return super.set(Q2(this,e),n)}delete(e){return super.delete(V2(this,e))}}function rh({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function Q2({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function V2({_intern:t,_key:e},n){const r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function Y2(t){return t!==null&&typeof t=="object"?t.valueOf():t}function pi(t){return t}function mi(t,...e){return Dc(t,pi,pi,e)}function _2(t,...e){return Dc(t,Array.from,pi,e)}function W2(t,e,...n){return Dc(t,pi,e,n)}function Dc(t,e,n,r){return function i(o,a){if(a>=r.length)return n(o);const s=new Tn,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 X2(t,e){return Array.from(e,n=>t[n])}function Z2(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=Mc(a[i],a[o]);if(s)return s}})):(n=t.map(n),r.sort((i,o)=>Mc(n[i],n[o]))),X2(t,r)}return t.sort(q2(n))}function q2(t=Dn){if(t===Dn)return Mc;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 Mc(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(t<e?-1:t>e?1:0)}var K2=Array.prototype,J2=K2.slice;function la(t){return()=>t}var Tc=Math.sqrt(50),Ic=Math.sqrt(10),kc=Math.sqrt(2);function gi(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=yi(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 yi(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>=Tc?10:o>=Ic?5:o>=kc?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=Tc?10:o>=Ic?5:o>=kc?2:1)}function In(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>=Tc?i*=10:o>=Ic?i*=5:o>=kc&&(i*=2),e<t?-i:i}function $2(t,e,n){let r;for(;;){const i=yi(t,e,n);if(i===r||i===0||!isFinite(i))return[t,e];i>0?(t=Math.floor(t/i)*i,e=Math.ceil(e/i)*i):i<0&&(t=Math.ceil(t*i)/i,e=Math.floor(e*i)/i),r=i}}function eA(t){return Math.ceil(Math.log(H2(t))/Math.LN2)+1}function tA(){var t=pi,e=ua,n=eA;function r(i){Array.isArray(i)||(i=Array.from(i));var o,a=i.length,s,c,u=new Array(a);for(o=0;o<a;++o)u[o]=t(i[o],o,i);var f=e(u),l=f[0],d=f[1],h=n(u,l,d);if(!Array.isArray(h)){const y=d,b=+h;if(e===ua&&([l,d]=$2(l,d,b)),h=gi(l,d,b),h[0]<=l&&(c=yi(l,d,b)),h[h.length-1]>=d)if(y>=d&&e===ua){const w=yi(l,d,b);isFinite(w)&&(w>0?d=(Math.floor(d/w)+1)*w:w<0&&(d=(Math.ceil(d*-w)+1)/-w))}else h.pop()}for(var p=h.length;h[0]<=l;)h.shift(),--p;for(;h[p-1]>d;)h.pop(),--p;var m=new Array(p+1),g;for(o=0;o<=p;++o)g=m[o]=[],g.x0=o>0?h[o-1]:l,g.x1=o<p?h[o]:d;if(isFinite(c)){if(c>0)for(o=0;o<a;++o)(s=u[o])!=null&&l<=s&&s<=d&&m[Math.min(p,Math.floor((s-l)/c))].push(i[o]);else if(c<0){for(o=0;o<a;++o)if((s=u[o])!=null&&l<=s&&s<=d){const y=Math.floor((l-s)*c);m[Math.min(p,y+(h[y]<=s))].push(i[o])}}}else for(o=0;o<a;++o)(s=u[o])!=null&&l<=s&&s<=d&&m[Mn(h,s,0,p)].push(i[o]);return m}return r.value=function(i){return arguments.length?(t=typeof i=="function"?i:la(i),r):t},r.domain=function(i){return arguments.length?(e=typeof i=="function"?i:la([i[0],i[1]]),r):e},r.thresholds=function(i){return arguments.length?(n=typeof i=="function"?i:Array.isArray(i)?la(J2.call(i)):la(i),r):n},r}function Nc(t,e,n=th){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 Wt(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 fa(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 nA(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function da(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 xr(t){return t=da(Math.abs(t)),t?t[1]:NaN}function rA(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 iA(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var oA=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Xt(t){if(!(e=oA.exec(t)))throw new Error("invalid format: "+t);var e;return new Lc({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]})}Xt.prototype=Lc.prototype;function Lc(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+""}Lc.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 aA(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 ih;function sA(t,e){var n=da(t,e);if(!n)return t+"";var r=n[0],i=n[1],o=i-(ih=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")+da(t,Math.max(0,e+o-1))[0]}function oh(t,e){var n=da(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 ah={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:nA,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)=>oh(t*100,e),r:oh,s:sA,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function sh(t){return t}var ch=Array.prototype.map,uh=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function cA(t){var e=t.grouping===void 0||t.thousands===void 0?sh:rA(ch.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?sh:iA(ch.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"−":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function u(l){l=Xt(l);var d=l.fill,h=l.align,p=l.sign,m=l.symbol,g=l.zero,y=l.width,b=l.comma,w=l.precision,C=l.trim,x=l.type;x==="n"?(b=!0,x="g"):ah[x]||(w===void 0&&(w=12),C=!0,x="g"),(g||d==="0"&&h==="=")&&(g=!0,d="0",h="=");var v=m==="$"?n:m==="#"&&/[boxX]/.test(x)?"0"+x.toLowerCase():"",A=m==="$"?r:/[%p]/.test(x)?a:"",D=ah[x],O=/[defgprs%]/.test(x);w=w===void 0?6:/[gprs]/.test(x)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function k(T){var B=v,H=A,Y,Te,Ie;if(x==="c")H=D(T)+H,T="";else{T=+T;var wn=T<0||1/T<0;if(T=isNaN(T)?c:D(Math.abs(T),w),C&&(T=aA(T)),wn&&+T==0&&p!=="+"&&(wn=!1),B=(wn?p==="("?p:s:p==="-"||p==="("?"":p)+B,H=(x==="s"?uh[8+ih/3]:"")+H+(wn&&p==="("?")":""),O){for(Y=-1,Te=T.length;++Y<Te;)if(Ie=T.charCodeAt(Y),48>Ie||Ie>57){H=(Ie===46?i+T.slice(Y+1):T.slice(Y))+H,T=T.slice(0,Y);break}}}b&&!g&&(T=e(T,1/0));var _=B.length+T.length+H.length,Ve=_<y?new Array(y-_+1).join(d):"";switch(b&&g&&(T=e(Ve+T,Ve.length?y-H.length:1/0),Ve=""),h){case"<":T=B+T+H+Ve;break;case"=":T=B+Ve+T+H;break;case"^":T=Ve.slice(0,_=Ve.length>>1)+B+T+H+Ve.slice(_);break;default:T=Ve+B+T+H;break}return o(T)}return k.toString=function(){return l+""},k}function f(l,d){var h=u((l=Xt(l),l.type="f",l)),p=Math.max(-8,Math.min(8,Math.floor(xr(d)/3)))*3,m=Math.pow(10,-p),g=uh[8+p/3];return function(y){return h(m*y)+g}}return{format:u,formatPrefix:f}}var ha,he,Bc;uA({thousands:",",grouping:[3],currency:["$",""]});function uA(t){return ha=cA(t),he=ha.format,Bc=ha.formatPrefix,ha}function lh(t){return Math.max(0,-xr(Math.abs(t)))}function fh(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(xr(e)/3)))*3-xr(Math.abs(t)))}function dh(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,xr(e)-xr(t))+1}var Oc=new Date,Fc=new Date;function me(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 me(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 Oc.setTime(+o),Fc.setTime(+a),t(Oc),t(Fc),Math.floor(n(Oc,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 pa=me(function(){},function(t,e){t.setTime(+t+e)},function(t,e){return e-t});pa.every=function(t){return t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?me(function(e){e.setTime(Math.floor(e/t)*t)},function(e,n){e.setTime(+e+n*t)},function(e,n){return(n-e)/t}):pa};const Pc=pa;pa.range;const Tt=1e3,Xe=Tt*60,It=Xe*60,kn=It*24,zc=kn*7,hh=kn*30,Rc=kn*365;var ph=me(function(t){t.setTime(t-t.getMilliseconds())},function(t,e){t.setTime(+t+e*Tt)},function(t,e){return(e-t)/Tt},function(t){return t.getUTCSeconds()});const Zt=ph;ph.range;var mh=me(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*Tt)},function(t,e){t.setTime(+t+e*Xe)},function(t,e){return(e-t)/Xe},function(t){return t.getMinutes()});const jc=mh;mh.range;var gh=me(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*Tt-t.getMinutes()*Xe)},function(t,e){t.setTime(+t+e*It)},function(t,e){return(e-t)/It},function(t){return t.getHours()});const Uc=gh;gh.range;var yh=me(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Xe)/kn,t=>t.getDate()-1);const Nn=yh;yh.range;function Ln(t){return me(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)/zc})}var vi=Ln(0),ma=Ln(1),lA=Ln(2),fA=Ln(3),wr=Ln(4),dA=Ln(5),hA=Ln(6);vi.range,ma.range,lA.range,fA.range,wr.range,dA.range,hA.range;var vh=me(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 ga=vh;vh.range;var Gc=me(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:me(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 qt=Gc;Gc.range;var bh=me(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 Hc=bh;bh.range;var Ah=me(function(t){t.setUTCMinutes(0,0,0)},function(t,e){t.setTime(+t+e*It)},function(t,e){return(e-t)/It},function(t){return t.getUTCHours()});const Qc=Ah;Ah.range;var xh=me(function(t){t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+e)},function(t,e){return(e-t)/kn},function(t){return t.getUTCDate()-1});const Bn=xh;xh.range;function On(t){return me(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)/zc})}var bi=On(0),ya=On(1),pA=On(2),mA=On(3),Cr=On(4),gA=On(5),yA=On(6);bi.range,ya.range,pA.range,mA.range,Cr.range,gA.range,yA.range;var wh=me(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 va=wh;wh.range;var Vc=me(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:me(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 Kt=Vc;Vc.range;function Ch(t,e,n,r,i,o){const a=[[Zt,1,Tt],[Zt,5,5*Tt],[Zt,15,15*Tt],[Zt,30,30*Tt],[o,1,Xe],[o,5,5*Xe],[o,15,15*Xe],[o,30,30*Xe],[i,1,It],[i,3,3*It],[i,6,6*It],[i,12,12*It],[r,1,kn],[r,2,2*kn],[n,1,zc],[e,1,hh],[e,3,3*hh],[t,1,Rc]];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=ca(([,,g])=>g).right(a,d);if(h===a.length)return t.every(In(u/Rc,f/Rc,l));if(h===0)return Pc.every(Math.max(In(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[vA,bA]=Ch(Kt,va,bi,Bn,Qc,Hc),[AA,xA]=Ch(qt,ga,vi,Nn,Uc,jc),Ai="year",xi="quarter",wi="month",Ci="week",Si="date",ba="day",Yc="dayofyear",Ei="hours",Di="minutes",Mi="seconds",Aa="milliseconds";[Ai,xi,wi,Ci,Si,ba,Yc,Ei,Di,Mi,Aa].reduce((t,e,n)=>(t[e]=1+n,t),{});const wA={[Ai]:qt,[xi]:ga.every(3),[wi]:ga,[Ci]:vi,[Si]:Nn,[ba]:Nn,[Yc]:Nn,[Ei]:Uc,[Di]:jc,[Mi]:Zt,[Aa]:Pc},CA={[Ai]:Kt,[xi]:va.every(3),[wi]:va,[Ci]:bi,[Si]:Bn,[ba]:Bn,[Yc]:Bn,[Ei]:Qc,[Di]:Hc,[Mi]:Zt,[Aa]:Pc};function SA(t){return wA[t]}function EA(t){return CA[t]}function _c(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 Ti(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Sh(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=Ii(i),f=ki(i),l=Ii(o),d=ki(o),h=Ii(a),p=ki(a),m=Ii(s),g=ki(s),y=Ii(c),b=ki(c),w={a:wn,A:_,b:Ve,B:Ko,c:null,d:kh,e:kh,f:XA,g:ix,G:ax,H:YA,I:_A,j:WA,L:Nh,m:ZA,M:qA,p:Jo,q:hc,Q:zh,s:Rh,S:KA,u:JA,U:$A,V:ex,w:tx,W:nx,x:null,X:null,y:rx,Y:ox,Z:sx,"%":Ph},C={a:Fd,A:QN,b:VN,B:YN,c:null,d:Bh,e:Bh,f:fx,g:xx,G:Cx,H:cx,I:ux,j:lx,L:Oh,m:dx,M:hx,p:_N,q:WN,Q:zh,s:Rh,S:px,u:mx,U:gx,V:yx,w:vx,W:bx,x:null,X:null,y:Ax,Y:wx,Z:Sx,"%":Ph},x={a:k,A:T,b:B,B:H,c:Y,d:Th,e:Th,f:GA,g:Mh,G:Dh,H:Ih,I:Ih,j:zA,L:UA,m:PA,M:RA,p:O,q:FA,Q:QA,s:VA,S:jA,u:kA,U:NA,V:LA,w:IA,W:BA,x:Te,X:Ie,y:Mh,Y:Dh,Z:OA,"%":HA};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(L,G){return function(W){var M=[],ze=-1,ee=0,Ye=L.length,_e,Ar,_b;for(W instanceof Date||(W=new Date(+W));++ze<Ye;)L.charCodeAt(ze)===37&&(M.push(L.slice(ee,ze)),(Ar=Eh[_e=L.charAt(++ze)])!=null?_e=L.charAt(++ze):Ar=_e==="e"?" ":"0",(_b=G[_e])&&(_e=_b(W,Ar)),M.push(_e),ee=ze+1);return M.push(L.slice(ee,ze)),M.join("")}}function A(L,G){return function(W){var M=Ti(1900,void 0,1),ze=D(M,L,W+="",0),ee,Ye;if(ze!=W.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?(ee=Wc(Ti(M.y,0,1)),Ye=ee.getUTCDay(),ee=Ye>4||Ye===0?ya.ceil(ee):ya(ee),ee=Bn.offset(ee,(M.V-1)*7),M.y=ee.getUTCFullYear(),M.m=ee.getUTCMonth(),M.d=ee.getUTCDate()+(M.w+6)%7):(ee=_c(Ti(M.y,0,1)),Ye=ee.getDay(),ee=Ye>4||Ye===0?ma.ceil(ee):ma(ee),ee=Nn.offset(ee,(M.V-1)*7),M.y=ee.getFullYear(),M.m=ee.getMonth(),M.d=ee.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(Ti(M.y,0,1)).getUTCDay():_c(Ti(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)):_c(M)}}function D(L,G,W,M){for(var ze=0,ee=G.length,Ye=W.length,_e,Ar;ze<ee;){if(M>=Ye)return-1;if(_e=G.charCodeAt(ze++),_e===37){if(_e=G.charAt(ze++),Ar=x[_e in Eh?G.charAt(ze++):_e],!Ar||(M=Ar(L,W,M))<0)return-1}else if(_e!=W.charCodeAt(M++))return-1}return M}function O(L,G,W){var M=u.exec(G.slice(W));return M?(L.p=f.get(M[0].toLowerCase()),W+M[0].length):-1}function k(L,G,W){var M=h.exec(G.slice(W));return M?(L.w=p.get(M[0].toLowerCase()),W+M[0].length):-1}function T(L,G,W){var M=l.exec(G.slice(W));return M?(L.w=d.get(M[0].toLowerCase()),W+M[0].length):-1}function B(L,G,W){var M=y.exec(G.slice(W));return M?(L.m=b.get(M[0].toLowerCase()),W+M[0].length):-1}function H(L,G,W){var M=m.exec(G.slice(W));return M?(L.m=g.get(M[0].toLowerCase()),W+M[0].length):-1}function Y(L,G,W){return D(L,e,G,W)}function Te(L,G,W){return D(L,n,G,W)}function Ie(L,G,W){return D(L,r,G,W)}function wn(L){return a[L.getDay()]}function _(L){return o[L.getDay()]}function Ve(L){return c[L.getMonth()]}function Ko(L){return s[L.getMonth()]}function Jo(L){return i[+(L.getHours()>=12)]}function hc(L){return 1+~~(L.getMonth()/3)}function Fd(L){return a[L.getUTCDay()]}function QN(L){return o[L.getUTCDay()]}function VN(L){return c[L.getUTCMonth()]}function YN(L){return s[L.getUTCMonth()]}function _N(L){return i[+(L.getUTCHours()>=12)]}function WN(L){return 1+~~(L.getUTCMonth()/3)}return{format:function(L){var G=v(L+="",w);return G.toString=function(){return L},G},parse:function(L){var G=A(L+="",!1);return G.toString=function(){return L},G},utcFormat:function(L){var G=v(L+="",C);return G.toString=function(){return L},G},utcParse:function(L){var G=A(L+="",!0);return G.toString=function(){return L},G}}}var Eh={"-":"",_:" ",0:"0"},ge=/^\s*\d+/,DA=/^%/,MA=/[\\^$*+?|[\]().{}]/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 TA(t){return t.replace(MA,"\\$&")}function Ii(t){return new RegExp("^(?:"+t.map(TA).join("|")+")","i")}function ki(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function IA(t,e,n){var r=ge.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function kA(t,e,n){var r=ge.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function NA(t,e,n){var r=ge.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function LA(t,e,n){var r=ge.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function BA(t,e,n){var r=ge.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Dh(t,e,n){var r=ge.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Mh(t,e,n){var r=ge.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function OA(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 FA(t,e,n){var r=ge.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function PA(t,e,n){var r=ge.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Th(t,e,n){var r=ge.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function zA(t,e,n){var r=ge.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Ih(t,e,n){var r=ge.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function RA(t,e,n){var r=ge.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function jA(t,e,n){var r=ge.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function UA(t,e,n){var r=ge.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function GA(t,e,n){var r=ge.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function HA(t,e,n){var r=DA.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function QA(t,e,n){var r=ge.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function VA(t,e,n){var r=ge.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function kh(t,e){return Q(t.getDate(),e,2)}function YA(t,e){return Q(t.getHours(),e,2)}function _A(t,e){return Q(t.getHours()%12||12,e,2)}function WA(t,e){return Q(1+Nn.count(qt(t),t),e,3)}function Nh(t,e){return Q(t.getMilliseconds(),e,3)}function XA(t,e){return Nh(t,e)+"000"}function ZA(t,e){return Q(t.getMonth()+1,e,2)}function qA(t,e){return Q(t.getMinutes(),e,2)}function KA(t,e){return Q(t.getSeconds(),e,2)}function JA(t){var e=t.getDay();return e===0?7:e}function $A(t,e){return Q(vi.count(qt(t)-1,t),e,2)}function Lh(t){var e=t.getDay();return e>=4||e===0?wr(t):wr.ceil(t)}function ex(t,e){return t=Lh(t),Q(wr.count(qt(t),t)+(qt(t).getDay()===4),e,2)}function tx(t){return t.getDay()}function nx(t,e){return Q(ma.count(qt(t)-1,t),e,2)}function rx(t,e){return Q(t.getFullYear()%100,e,2)}function ix(t,e){return t=Lh(t),Q(t.getFullYear()%100,e,2)}function ox(t,e){return Q(t.getFullYear()%1e4,e,4)}function ax(t,e){var n=t.getDay();return t=n>=4||n===0?wr(t):wr.ceil(t),Q(t.getFullYear()%1e4,e,4)}function sx(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Q(e/60|0,"0",2)+Q(e%60,"0",2)}function Bh(t,e){return Q(t.getUTCDate(),e,2)}function cx(t,e){return Q(t.getUTCHours(),e,2)}function ux(t,e){return Q(t.getUTCHours()%12||12,e,2)}function lx(t,e){return Q(1+Bn.count(Kt(t),t),e,3)}function Oh(t,e){return Q(t.getUTCMilliseconds(),e,3)}function fx(t,e){return Oh(t,e)+"000"}function dx(t,e){return Q(t.getUTCMonth()+1,e,2)}function hx(t,e){return Q(t.getUTCMinutes(),e,2)}function px(t,e){return Q(t.getUTCSeconds(),e,2)}function mx(t){var e=t.getUTCDay();return e===0?7:e}function gx(t,e){return Q(bi.count(Kt(t)-1,t),e,2)}function Fh(t){var e=t.getUTCDay();return e>=4||e===0?Cr(t):Cr.ceil(t)}function yx(t,e){return t=Fh(t),Q(Cr.count(Kt(t),t)+(Kt(t).getUTCDay()===4),e,2)}function vx(t){return t.getUTCDay()}function bx(t,e){return Q(ya.count(Kt(t)-1,t),e,2)}function Ax(t,e){return Q(t.getUTCFullYear()%100,e,2)}function xx(t,e){return t=Fh(t),Q(t.getUTCFullYear()%100,e,2)}function wx(t,e){return Q(t.getUTCFullYear()%1e4,e,4)}function Cx(t,e){var n=t.getUTCDay();return t=n>=4||n===0?Cr(t):Cr.ceil(t),Q(t.getUTCFullYear()%1e4,e,4)}function Sx(){return"+0000"}function Ph(){return"%"}function zh(t){return+t}function Rh(t){return Math.floor(+t/1e3)}var Sr,Xc,jh,Zc,Uh;Ex({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 Ex(t){return Sr=Sh(t),Xc=Sr.format,jh=Sr.parse,Zc=Sr.utcFormat,Uh=Sr.utcParse,Sr}function Ni(t){const e={};return n=>e[n]||(e[n]=t(n))}function Dx(t,e){return n=>{const r=t(n),i=r.indexOf(e);if(i<0)return r;let o=Mx(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 Mx(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 Tx(t){const e=Ni(t.format),n=t.formatPrefix;return{format:e,formatPrefix:n,formatFloat(r){const i=Xt(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return Dx(e(i),e(".1f")(1)[1])}else return e(i)},formatSpan(r,i,o,a){a=Xt(a??",f");const s=In(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=fh(s,c))||(a.precision=u),n(a,c);case"":case"e":case"g":case"p":case"r":{isNaN(u=dh(s,c))||(a.precision=u-(a.type==="e"));break}case"f":case"%":{isNaN(u=lh(s))||(a.precision=u-(a.type==="%")*2);break}}return e(a)}}}Ix();function Ix(){return Tx({format:he,formatPrefix:Bc})}function Gh(t,e,n){n=n||{},Re(n)||se("Invalid time multi-format specifier: ".concat(n));const r=e(Mi),i=e(Di),o=e(Ei),a=e(Si),s=e(Ci),c=e(wi),u=e(xi),f=e(Ai),l=t(n[Aa]||".%L"),d=t(n[Mi]||":%S"),h=t(n[Di]||"%I:%M"),p=t(n[Ei]||"%I %p"),m=t(n[Si]||n[ba]||"%a %d"),g=t(n[Ci]||"%b %d"),y=t(n[wi]||"%B"),b=t(n[xi]||"%B"),w=t(n[Ai]||"%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:g:f(C)<C?u(C)<C?y:b:w)(C)}function Hh(t){const e=Ni(t.format),n=Ni(t.utcFormat);return{timeFormat:r=>re(r)?e(r):Gh(e,SA,r),utcFormat:r=>re(r)?n(r):Gh(n,EA,r),timeParse:Ni(t.parse),utcParse:Ni(t.utcParse)}}let qc;kx();function kx(){return qc=Hh({format:Xc,parse:jh,utcFormat:Zc,utcParse:Uh})}function Nx(t){return Hh(Sh(t))}function Lx(t){return arguments.length?qc=Nx(t):qc}const Bx=/^(data:|([A-Za-z]+:)?\/\/)/,Ox=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,Fx=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Qh="file://";function Px(t,e){return n=>({options:n||{},sanitize:Rx,load:zx,fileAccess:!!e,file:jx(e),http:Gx(t)})}async function zx(t,e){const n=await this.sanitize(t,e),r=n.href;return n.localFile?this.file(r):this.http(r,e)}async function Rx(t,e){e=xc({},this.options,e);const n=this.fileAccess,r={href:null};let i,o,a;const s=Ox.test(t.replace(Fx,""));(t==null||typeof t!="string"||!s)&&se("Sanitize failure, invalid URI: "+aa(t));const c=Bx.test(t);return(a=e.baseURL)&&!c&&(!t.startsWith("/")&&!a.endsWith("/")&&(t="/"+t),t=a+t),o=(i=t.startsWith(Qh))||e.mode==="file"||e.mode!=="http"&&!c&&n,i?t=t.slice(Qh.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 jx(t){return t?e=>new Promise((n,r)=>{t.readFile(e,(i,o)=>{i?r(i):n(o)})}):Ux}async function Ux(){se("No file system access.")}function Gx(t){return t?async function(e,n){const r=xc({},this.options.http,n),i=n&&n.response,o=await t(e,r);return o.ok?ke(o[i])?o[i]():o.text():se(o.status+""+o.statusText)}:Hx}async function Hx(){se("No HTTP fetch method available.")}const Qx=t=>t!=null&&t===t,Vx=t=>t==="true"||t==="false"||t===!0||t===!1,Yx=t=>!Number.isNaN(Date.parse(t)),Vh=t=>!Number.isNaN(+t)&&!(t instanceof Date),_x=t=>Vh(t)&&Number.isInteger(+t),Yh={boolean:C2,integer:di,number:di,date:E2,string:D2,unknown:ta},xa=[Vx,_x,Vh,Yx],Wx=["boolean","integer","number","date"];function _h(t,e){if(!t||!t.length)return"unknown";const n=t.length,r=xa.length,i=xa.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]&&Qx(c)&&!xa[s](c)&&(i[s]=0,++a,a===xa.length))return"string";return Wx[i.reduce((o,a)=>o===0?a:o,0)-1]}function Xx(t,e){return e.reduce((n,r)=>(n[r]=_h(t,r),n),{})}function Wh(t){const e=function(n,r){const i={delimiter:t};return Kc(n,r?xc(r,i):i)};return e.responseType="text",e}function Kc(t,e){return e.header&&(t=e.header.map(aa).join(e.delimiter)+`
6
- `+t),Jd(e.delimiter).parse(t+"")}Kc.responseType="text";function Zx(t){return typeof Buffer=="function"&&ke(Buffer.isBuffer)?Buffer.isBuffer(t):!1}function Jc(t,e){const n=e&&e.property?ea(e.property):ta;return Re(t)&&!Zx(t)?qx(n(t),e):n(JSON.parse(t))}Jc.responseType="json";function qx(t,e){return!We(t)&&x2(t)&&(t=[...t]),e&&e.copy?JSON.parse(JSON.stringify(t)):t}const Kx={interior:(t,e)=>t!==e,exterior:(t,e)=>t===e};function Xh(t,e){let n,r,i,o;return t=Jc(t,e),e&&e.feature?(n=F2,i=e.feature):e&&e.mesh?(n=z2,i=e.mesh,o=Kx[e.filter]):se("Missing TopoJSON feature or mesh parameter."),r=(r=t.objects[i])?n(t,r,o):se("Invalid TopoJSON object: "+i),r&&r.features||[r]}Xh.responseType="json";const $c={dsv:Kc,csv:Wh(","),tsv:Wh(" "),json:Jc,topojson:Xh};function Zh(t,e){return arguments.length>1?($c[t]=e,this):En($c,t)?$c[t]:null}function qh(t,e,n,r){e=e||{};const i=Zh(e.type||"json");return i||se("Unknown data format type: "+e.type),t=i(t,e),e.parse&&Jx(t,e.parse,n,r),En(t,"columns")&&delete t.columns,t}function Jx(t,e,n,r){if(!t.length)return;const i=Lx();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=Xx(t,o)),o=Object.keys(e);const d=o.map(h=>{const p=e[h];let m,g;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return m=p.split(/:(.+)?/,2),g=m[1],(g[0]==="'"&&g[g.length-1]==="'"||g[0]==='"'&&g[g.length-1]==='"')&&(g=g.slice(1,-1)),(m[0]==="utc"?r:n)(g);if(!Yh[p])throw Error("Illegal format pattern: "+h+":"+p);return Yh[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 Li=Px(typeof fetch<"u"&&fetch,null),Kh=1;function eu(){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=ua(f),n=t[1]-t[0],n<Kh){n=Kh;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 gi(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=In(t[0],t[1],Math.min(f,Math.ceil(n)))<1e5?he(","):he(".3s");return p=>h(p+s)},u.copy=()=>eu().domain(t).range(e).paddingInner(i).paddingOuter(o).numberingOffset(s),u}function $x(){const t=eu().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,In(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=In(o[0],o[1],Math.min(r,Math.ceil(a)))<1e6?he(","):he(".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 ew(t){return t.type=="locus"}function ft(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function Jt(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 tu=Symbol("implicit");function nu(){var t=new Tn,e=[],n=[],r=tu;function i(o){let a=t.get(o);if(a===void 0){if(r!==tu)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 Tn;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 nu(e,n).unknown(r)},ft.apply(i,arguments),i}function Er(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Bi(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function $t(){}var Fn=.7,Dr=1/Fn,Mr="\\s*([+-]?\\d+)\\s*",Oi="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",dt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",tw=/^#([0-9a-f]{3,8})$/,nw=new RegExp(`^rgb\\(${Mr},${Mr},${Mr}\\)$`),rw=new RegExp(`^rgb\\(${dt},${dt},${dt}\\)$`),iw=new RegExp(`^rgba\\(${Mr},${Mr},${Mr},${Oi}\\)$`),ow=new RegExp(`^rgba\\(${dt},${dt},${dt},${Oi}\\)$`),aw=new RegExp(`^hsl\\(${Oi},${dt},${dt}\\)$`),sw=new RegExp(`^hsla\\(${Oi},${dt},${dt},${Oi}\\)$`),Jh={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};Er($t,Pn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:$h,formatHex:$h,formatHex8:cw,formatHsl:uw,formatRgb:e0,toString:e0});function $h(){return this.rgb().formatHex()}function cw(){return this.rgb().formatHex8()}function uw(){return o0(this).formatHsl()}function e0(){return this.rgb().formatRgb()}function Pn(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=tw.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?t0(e):n===3?new ye(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?wa(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?wa(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=nw.exec(t))?new ye(e[1],e[2],e[3],1):(e=rw.exec(t))?new ye(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=iw.exec(t))?wa(e[1],e[2],e[3],e[4]):(e=ow.exec(t))?wa(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=aw.exec(t))?i0(e[1],e[2]/100,e[3]/100,1):(e=sw.exec(t))?i0(e[1],e[2]/100,e[3]/100,e[4]):Jh.hasOwnProperty(t)?t0(Jh[t]):t==="transparent"?new ye(NaN,NaN,NaN,0):null}function t0(t){return new ye(t>>16&255,t>>8&255,t&255,1)}function wa(t,e,n,r){return r<=0&&(t=e=n=NaN),new ye(t,e,n,r)}function ru(t){return t instanceof $t||(t=Pn(t)),t?(t=t.rgb(),new ye(t.r,t.g,t.b,t.opacity)):new ye}function Ca(t,e,n,r){return arguments.length===1?ru(t):new ye(t,e,n,r??1)}function ye(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}Er(ye,Ca,Bi($t,{brighter(t){return t=t==null?Dr:Math.pow(Dr,t),new ye(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Fn:Math.pow(Fn,t),new ye(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new ye(zn(this.r),zn(this.g),zn(this.b),Sa(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:n0,formatHex:n0,formatHex8:lw,formatRgb:r0,toString:r0}));function n0(){return`#${Rn(this.r)}${Rn(this.g)}${Rn(this.b)}`}function lw(){return`#${Rn(this.r)}${Rn(this.g)}${Rn(this.b)}${Rn((isNaN(this.opacity)?1:this.opacity)*255)}`}function r0(){const t=Sa(this.opacity);return`${t===1?"rgb(":"rgba("}${zn(this.r)}, ${zn(this.g)}, ${zn(this.b)}${t===1?")":`, ${t})`}`}function Sa(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function zn(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Rn(t){return t=zn(t),(t<16?"0":"")+t.toString(16)}function i0(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 o0(t){if(t instanceof rt)return new rt(t.h,t.s,t.l,t.opacity);if(t instanceof $t||(t=Pn(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 iu(t,e,n,r){return arguments.length===1?o0(t):new rt(t,e,n,r??1)}function rt(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}Er(rt,iu,Bi($t,{brighter(t){return t=t==null?Dr:Math.pow(Dr,t),new rt(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Fn:Math.pow(Fn,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 ye(ou(t>=240?t-240:t+120,i,r),ou(t,i,r),ou(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new rt(a0(this.h),Ea(this.s),Ea(this.l),Sa(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=Sa(this.opacity);return`${t===1?"hsl(":"hsla("}${a0(this.h)}, ${Ea(this.s)*100}%, ${Ea(this.l)*100}%${t===1?")":`, ${t})`}`}}));function a0(t){return t=(t||0)%360,t<0?t+360:t}function Ea(t){return Math.max(0,Math.min(1,t||0))}function ou(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 s0=Math.PI/180,c0=180/Math.PI,Da=18,u0=.96422,l0=1,f0=.82521,d0=4/29,Tr=6/29,h0=3*Tr*Tr,fw=Tr*Tr*Tr;function p0(t){if(t instanceof ht)return new ht(t.l,t.a,t.b,t.opacity);if(t instanceof kt)return m0(t);t instanceof ye||(t=ru(t));var e=lu(t.r),n=lu(t.g),r=lu(t.b),i=su((.2225045*e+.7168786*n+.0606169*r)/l0),o,a;return e===n&&n===r?o=a=i:(o=su((.4360747*e+.3850649*n+.1430804*r)/u0),a=su((.0139322*e+.0971045*n+.7141733*r)/f0)),new ht(116*i-16,500*(o-i),200*(i-a),t.opacity)}function au(t,e,n,r){return arguments.length===1?p0(t):new ht(t,e,n,r??1)}function ht(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}Er(ht,au,Bi($t,{brighter(t){return new ht(this.l+Da*(t??1),this.a,this.b,this.opacity)},darker(t){return new ht(this.l-Da*(t??1),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=u0*cu(e),t=l0*cu(t),n=f0*cu(n),new ye(uu(3.1338561*e-1.6168667*t-.4906146*n),uu(-.9787684*e+1.9161415*t+.033454*n),uu(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function su(t){return t>fw?Math.pow(t,1/3):t/h0+d0}function cu(t){return t>Tr?t*t*t:h0*(t-d0)}function uu(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function lu(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function dw(t){if(t instanceof kt)return new kt(t.h,t.c,t.l,t.opacity);if(t instanceof ht||(t=p0(t)),t.a===0&&t.b===0)return new kt(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*c0;return new kt(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function fu(t,e,n,r){return arguments.length===1?dw(t):new kt(t,e,n,r??1)}function kt(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}function m0(t){if(isNaN(t.h))return new ht(t.l,0,0,t.opacity);var e=t.h*s0;return new ht(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}Er(kt,fu,Bi($t,{brighter(t){return new kt(this.h,this.c,this.l+Da*(t??1),this.opacity)},darker(t){return new kt(this.h,this.c,this.l-Da*(t??1),this.opacity)},rgb(){return m0(this).rgb()}}));var g0=-.14861,du=1.78277,hu=-.29227,Ma=-.90649,Fi=1.97294,y0=Fi*Ma,v0=Fi*du,b0=du*hu-Ma*g0;function hw(t){if(t instanceof jn)return new jn(t.h,t.s,t.l,t.opacity);t instanceof ye||(t=ru(t));var e=t.r/255,n=t.g/255,r=t.b/255,i=(b0*r+y0*e-v0*n)/(b0+y0-v0),o=r-i,a=(Fi*(n-i)-hu*o)/Ma,s=Math.sqrt(a*a+o*o)/(Fi*i*(1-i)),c=s?Math.atan2(a,o)*c0-120:NaN;return new jn(c<0?c+360:c,s,i,t.opacity)}function pu(t,e,n,r){return arguments.length===1?hw(t):new jn(t,e,n,r??1)}function jn(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}Er(jn,pu,Bi($t,{brighter(t){return t=t==null?Dr:Math.pow(Dr,t),new jn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Fn:Math.pow(Fn,t),new jn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*s0,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new ye(255*(e+n*(g0*r+du*i)),255*(e+n*(hu*r+Ma*i)),255*(e+n*(Fi*r)),this.opacity)}}));function A0(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 x0(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 A0((n-r/e)*e,a,i,o,s)}}function w0(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 A0((n-r/e)*e,i,o,a,s)}}const Ta=t=>()=>t;function C0(t,e){return function(n){return t+n*e}}function pw(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 Ia(t,e){var n=e-t;return n?C0(t,n>180||n<-180?n-360*Math.round(n/360):n):Ta(isNaN(t)?e:t)}function mw(t){return(t=+t)==1?ve:function(e,n){return n-e?pw(e,n,t):Ta(isNaN(e)?n:e)}}function ve(t,e){var n=e-t;return n?C0(t,n):Ta(isNaN(t)?e:t)}const mu=function t(e){var n=mw(e);function r(i,o){var a=n((i=Ca(i)).r,(o=Ca(o)).r),s=n(i.g,o.g),c=n(i.b,o.b),u=ve(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 S0(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=Ca(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 gw=S0(x0),yw=S0(w0);function gu(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 E0(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function vw(t,e){return(E0(e)?gu:D0)(t,e)}function D0(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]=en(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 M0(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 T0(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]=en(t[i],e[i]):r[i]=e[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var yu=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,vu=new RegExp(yu.source,"g");function bw(t){return function(){return t}}function Aw(t){return function(e){return t(e)+""}}function I0(t,e){var n=yu.lastIndex=vu.lastIndex=0,r,i,o,a=-1,s=[],c=[];for(t=t+"",e=e+"";(r=yu.exec(t))&&(i=vu.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=vu.lastIndex;return n<e.length&&(o=e.slice(n),s[a]?s[a]+=o:s[++a]=o),s.length<2?c[0]?Aw(c[0].x):bw(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 en(t,e){var n=typeof e,r;return e==null||n==="boolean"?Ta(e):(n==="number"?it:n==="string"?(r=Pn(e))?(e=r,mu):I0:e instanceof Pn?mu:e instanceof Date?M0:E0(e)?gu:Array.isArray(e)?D0:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?T0:it)(t,e)}function xw(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}function ww(t,e){var n=Ia(+t,+e);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function Pi(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var k0=180/Math.PI,bu={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function N0(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)*k0,skewX:Math.atan(c)*k0,scaleX:a,scaleY:s}}var ka;function Cw(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?bu:N0(e.a,e.b,e.c,e.d,e.e,e.f)}function Sw(t){return t==null||(ka||(ka=document.createElementNS("http://www.w3.org/2000/svg","g")),ka.setAttribute("transform",t),!(t=ka.transform.baseVal.consolidate()))?bu:(t=t.matrix,N0(t.a,t.b,t.c,t.d,t.e,t.f))}function L0(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,g;++p<m;)l[(g=d[p]).i]=g.x(h);return l.join("")}}}var Ew=L0(Cw,"px, ","px)","deg)"),Dw=L0(Sw,", ",")",")"),Mw=1e-12;function B0(t){return((t=Math.exp(t))+1/t)/2}function Tw(t){return((t=Math.exp(t))-1/t)/2}function Iw(t){return((t=Math.exp(2*t))-1)/(t+1)}const O0=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,g,y;if(m<Mw)y=Math.log(d/u)/e,g=function(A){return[s+A*h,c+A*p,u*Math.exp(e*A*y)]};else{var b=Math.sqrt(m),w=(d*d-u*u+r*m)/(2*u*n*b),C=(d*d-u*u-r*m)/(2*d*n*b),x=Math.log(Math.sqrt(w*w+1)-w),v=Math.log(Math.sqrt(C*C+1)-C);y=(v-x)/e,g=function(A){var D=A*y,O=B0(x),k=u/(n*b)*(O*Iw(e*D+x)-Tw(x));return[s+k*h,c+k*p,u*O/B0(e*D+x)]}}return g.duration=y*1e3*e/Math.SQRT2,g}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 F0(t){return function(e,n){var r=t((e=iu(e)).h,(n=iu(n)).h),i=ve(e.s,n.s),o=ve(e.l,n.l),a=ve(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 kw=F0(Ia);var Nw=F0(ve);function Lw(t,e){var n=ve((t=au(t)).l,(e=au(e)).l),r=ve(t.a,e.a),i=ve(t.b,e.b),o=ve(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 P0(t){return function(e,n){var r=t((e=fu(e)).h,(n=fu(n)).h),i=ve(e.c,n.c),o=ve(e.l,n.l),a=ve(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 Bw=P0(Ia);var Ow=P0(ve);function z0(t){return function e(n){n=+n;function r(i,o){var a=t((i=pu(i)).h,(o=pu(o)).h),s=ve(i.s,o.s),c=ve(i.l,o.l),u=ve(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 Fw=z0(Ia);var Pw=z0(ve);function Au(t,e){e===void 0&&(e=t,t=en);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 zw(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t(r/(e-1));return n}const Rw=Object.freeze(Object.defineProperty({__proto__:null,interpolate:en,interpolateArray:vw,interpolateBasis:x0,interpolateBasisClosed:w0,interpolateCubehelix:Fw,interpolateCubehelixLong:Pw,interpolateDate:M0,interpolateDiscrete:xw,interpolateHcl:Bw,interpolateHclLong:Ow,interpolateHsl:kw,interpolateHslLong:Nw,interpolateHue:ww,interpolateLab:Lw,interpolateNumber:it,interpolateNumberArray:gu,interpolateObject:T0,interpolateRgb:mu,interpolateRgbBasis:gw,interpolateRgbBasisClosed:yw,interpolateRound:Pi,interpolateString:I0,interpolateTransformCss:Ew,interpolateTransformSvg:Dw,interpolateZoom:O0,piecewise:Au,quantize:zw},Symbol.toStringTag,{value:"Module"}));function jw(t){return function(){return t}}function xu(t){return+t}var R0=[0,1];function Le(t){return t}function wu(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:jw(isNaN(e)?NaN:.5)}function Uw(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function Gw(t,e,n){var r=t[0],i=t[1],o=e[0],a=e[1];return i<r?(r=wu(i,r),o=n(a,o)):(r=wu(r,i),o=n(o,a)),function(s){return o(r(s))}}function Hw(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]=wu(t[a],t[a+1]),o[a]=n(e[a],e[a+1]);return function(s){var c=Mn(t,s,1,r)-1;return o[c](i[c](s))}}function zi(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Na(){var t=R0,e=R0,n=en,r,i,o,a=Le,s,c,u;function f(){var d=Math.min(t.length,e.length);return a!==Le&&(a=Uw(t[0],t[d-1])),s=d>2?Hw:Gw,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,xu),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=Pi,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 j0(){return Na()(Le,Le)}function U0(t,e,n,r){var i=In(t,e,n),o;switch(r=Xt(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(o=fh(i,a))&&(r.precision=o),Bc(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=dh(i,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=lh(i))&&(r.precision=o-(r.type==="%")*2);break}}return he(r)}function Un(t){var e=t.domain;return t.ticks=function(n){var r=e();return gi(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var i=e();return U0(i[0],i[i.length-1],n??10,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=yi(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 La(){var t=j0();return t.copy=function(){return zi(t,La())},ft.apply(t,arguments),Un(t)}function G0(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,xu),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return G0(t).unknown(e)},t=arguments.length?Array.from(t,xu):[0,1],Un(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 Q0(t){return Math.log(t)}function V0(t){return Math.exp(t)}function Qw(t){return-Math.log(-t)}function Vw(t){return-Math.exp(-t)}function Yw(t){return isFinite(t)?+("1e"+t):t<0?0:t}function _w(t){return t===10?Yw:t===Math.E?Math.exp:e=>Math.pow(t,e)}function Ww(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 Y0(t){return(e,n)=>-t(-e,n)}function Cu(t){const e=t(Q0,V0),n=e.domain;let r=10,i,o;function a(){return i=Ww(r),o=_w(r),n()[0]<0?(i=Y0(i),o=Y0(o),t(Qw,Vw)):t(Q0,V0),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 g=s==null?10:+s;let y=[];if(!(r%1)&&h-d<g){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;y.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;y.push(m)}y.length*2<g&&(y=gi(u,f,g))}else y=gi(d,h,Math.min(h-d,g)).map(o);return l?y.reverse():y},e.tickFormat=(s,c)=>{if(s==null&&(s=10),c==null&&(c=r===10?"s":","),typeof c!="function"&&(!(r%1)&&(c=Xt(c)).precision==null&&(c.trim=!0),c=he(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 Su(){const t=Cu(Na()).domain([1,10]);return t.copy=()=>zi(t,Su()).base(t.base()),ft.apply(t,arguments),t}function _0(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function W0(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function Eu(t){var e=1,n=t(_0(e),W0(e));return n.constant=function(r){return arguments.length?t(_0(e=+r),W0(e)):e},Un(n)}function X0(){var t=Eu(Na());return t.copy=function(){return zi(t,X0()).constant(t.constant())},ft.apply(t,arguments)}function Z0(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function Xw(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function Zw(t){return t<0?-t*t:t*t}function Du(t){var e=t(Le,Le),n=1;function r(){return n===1?t(Le,Le):n===.5?t(Xw,Zw):t(Z0(n),Z0(1/n))}return e.exponent=function(i){return arguments.length?(n=+i,r()):n},Un(e)}function Mu(){var t=Du(Na());return t.copy=function(){return zi(t,Mu()).exponent(t.exponent())},ft.apply(t,arguments),t}function qw(){return Mu.apply(null,arguments).exponent(.5)}function q0(){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]=Nc(t,a/s);return o}function o(a){return a==null||isNaN(a=+a)?r:e[Mn(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(Dn),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 q0().domain(t).range(e).unknown(r)},ft.apply(o,arguments)}function K0(){var t=0,e=1,n=1,r=[.5],i=[0,1],o;function a(c){return c!=null&&c<=c?i[Mn(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 K0().domain([t,e]).range(i).unknown(o)},ft.apply(Un(a),arguments)}function J0(){var t=[.5],e=[0,1],n,r=1;function i(o){return o!=null&&o<=o?e[Mn(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 J0().domain(t).range(e).unknown(n)},ft.apply(i,arguments)}function Kw(t){return new Date(t)}function Jw(t){return t instanceof Date?+t:+new Date(+t)}function Tu(t,e,n,r,i,o,a,s,c,u){var f=j0(),l=f.invert,d=f.domain,h=u(".%L"),p=u(":%S"),m=u("%I:%M"),g=u("%I %p"),y=u("%a %d"),b=u("%b %d"),w=u("%B"),C=u("%Y");function x(v){return(c(v)<v?h:s(v)<v?p:a(v)<v?m:o(v)<v?g:r(v)<v?i(v)<v?y:b: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,Jw)):d().map(Kw)},f.ticks=function(v){var A=d();return t(A[0],A[A.length-1],v??10)},f.tickFormat=function(v,A){return A==null?x:u(A)},f.nice=function(v){var A=d();return(!v||typeof v.range!="function")&&(v=e(A[0],A[A.length-1],v??10)),v?d(H0(A,v)):f},f.copy=function(){return zi(f,Tu(t,e,n,r,i,o,a,s,c,u))},f}function $w(){return ft.apply(Tu(AA,xA,qt,ga,vi,Nn,Uc,jc,Zt,Xc).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function e4(){return ft.apply(Tu(vA,bA,Kt,va,bi,Bn,Qc,Hc,Zt,Zc).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Ba(){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(en),u.rangeRound=f(Pi),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 tn(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function Iu(){var t=Un(Ba()(Le));return t.copy=function(){return tn(t,Iu())},Jt.apply(t,arguments)}function $0(){var t=Cu(Ba()).domain([1,10]);return t.copy=function(){return tn(t,$0()).base(t.base())},Jt.apply(t,arguments)}function ep(){var t=Eu(Ba());return t.copy=function(){return tn(t,ep()).constant(t.constant())},Jt.apply(t,arguments)}function ku(){var t=Du(Ba());return t.copy=function(){return tn(t,ku()).exponent(t.exponent())},Jt.apply(t,arguments)}function t4(){return ku.apply(null,arguments).exponent(.5)}function Oa(){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(g){var y,b,w;return arguments.length?([y,b,w]=g,u=Au(m,[y,b,w]),h):[u(0),u(.5),u(1)]}}return h.range=p(en),h.rangeRound=p(Pi),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 tp(){var t=Un(Oa()(Le));return t.copy=function(){return tn(t,tp())},Jt.apply(t,arguments)}function np(){var t=Cu(Oa()).domain([.1,1,10]);return t.copy=function(){return tn(t,np()).base(t.base())},Jt.apply(t,arguments)}function rp(){var t=Eu(Oa());return t.copy=function(){return tn(t,rp()).constant(t.constant())},Jt.apply(t,arguments)}function Nu(){var t=Du(Oa());return t.copy=function(){return tn(t,Nu()).exponent(t.exponent())},Jt.apply(t,arguments)}function n4(){return Nu.apply(null,arguments).exponent(.5)}function Lu(t,e,n){const r=t-e+n*2;return t?r>0?r:1:0}const r4="identity",Ir="linear",nn="log",Ri="pow",ji="sqrt",Fa="symlog",ip="time",op="utc",pt="sequential",kr="diverging",Bu="quantile",ap="quantize",sp="threshold",Ou="ordinal",Fu="point",cp="band",Pu="bin-ordinal",pe="continuous",Ui="discrete",Gi="discretizing",Ze="interpolating",up="temporal";function i4(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 o4(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 zu(){const t=nu().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=Lu(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 g=Wt(l).map(y=>m+i*y);return n(d?g.reverse():g)}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],g=+l[1],y,b,w;if(!(m!==m||g!==g)&&(g<m&&(w=m,m=g,g=w),!(g<h[0]||m>r[1-d])))return y=Math.max(0,Ec(h,m)-1),b=m===g?y:Ec(h,g)-1,m-h[y]>o+1e-10&&++y,d&&(w=y,y=p-b,b=p-w),y>b?void 0:e().slice(y,b+1)},t.invert=function(l){const d=t.invertRange([l,l]);return d&&d[0]},t.copy=function(){return zu().domain(e()).range(r).round(a).paddingInner(s).paddingOuter(c).align(u)},f()}function lp(t){const e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return lp(e())},t}function a4(){return lp(zu().paddingInner(1))}var s4=Array.prototype.map;function c4(t){return s4.call(t,di)}const u4=Array.prototype.slice;function fp(){let t=[],e=[];function n(r){return r==null||r!==r?void 0:e[(Mn(t,r)-1)%e.length]}return n.domain=function(r){return arguments.length?(t=c4(r),n):t.slice()},n.range=function(r){return arguments.length?(e=u4.call(r),n):e.slice()},n.tickFormat=function(r,i){return U0(t[0],nt(t),r??10,i)},n.copy=function(){return fp().domain(n.domain()).range(n.range())},n}const Pa={};function l4(t,e,n){const r=function(){const o=e();return o.invertRange||(o.invertRange=o.invert?i4(o):o.invertExtent?o4(o):void 0),o.type=t,o};return r.metadata=sa(Ac(n)),r}function X(t,e,n){return arguments.length>1?(Pa[t]=l4(t,e,n),this):f4(t)?Pa[t]:void 0}X(r4,G0),X(Ir,La,pe),X(nn,Su,[pe,nn]),X(Ri,Mu,pe),X(ji,qw,pe),X(Fa,X0,pe),X(ip,$w,[pe,up]),X(op,e4,[pe,up]),X(pt,Iu,[pe,Ze]),X("".concat(pt,"-").concat(Ir),Iu,[pe,Ze]),X("".concat(pt,"-").concat(nn),$0,[pe,Ze,nn]),X("".concat(pt,"-").concat(Ri),ku,[pe,Ze]),X("".concat(pt,"-").concat(ji),t4,[pe,Ze]),X("".concat(pt,"-").concat(Fa),ep,[pe,Ze]),X("".concat(kr,"-").concat(Ir),tp,[pe,Ze]),X("".concat(kr,"-").concat(nn),np,[pe,Ze,nn]),X("".concat(kr,"-").concat(Ri),Nu,[pe,Ze]),X("".concat(kr,"-").concat(ji),n4,[pe,Ze]),X("".concat(kr,"-").concat(Fa),rp,[pe,Ze]),X(Bu,q0,[Gi,Bu]),X(ap,K0,Gi),X(sp,J0,Gi),X(Pu,fp,[Ui,Gi]),X(Ou,nu,Ui),X(cp,zu,Ui),X(Fu,a4,Ui);function f4(t){return En(Pa,t)}function Hi(t,e){const n=Pa[t];return n&&n.metadata[e]}function Be(t){return Hi(t,pe)}function rn(t){return Hi(t,Ui)}function Gn(t){return Hi(t,Gi)}function dp(t){return Hi(t,nn)}function za(t){return Hi(t,Ze)}function d4(t,e){const n=e[0],r=nt(e)-n;return function(i){return t(n+i*r)}}function Ra(t,e,n){return Au(hp(e||"rgb",n),t)}function h4(t,e){const n=new Array(e),r=e+1;for(let i=0;i<e;)n[i]=t(++i/r);return n}function hp(t,e){const n=Rw[p4(t)];return e!=null&&n&&n.gamma?n.gamma(e):n}function p4(t){return"interpolate"+t.toLowerCase().split("-").map(e=>e[0].toUpperCase()+e.slice(1)).join("")}const m4={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"},g4={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 pp(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 mp(t,e){for(const n in t)Ru(n,e(t[n]))}const gp={};mp(g4,pp),mp(m4,t=>Ra(pp(t)));function Ru(t,e){return t=t&&t.toLowerCase(),arguments.length>1?(gp[t]=e,this):gp[t]}const KN="";function yp(t,e){var n=t.getBoundingClientRect();return[e.clientX-n.left-t.clientLeft,e.clientY-n.top-t.clientTop]}/**
1
+ (function(le,se){typeof exports=="object"&&typeof module<"u"?se(exports):typeof define=="function"&&define.amd?define(["exports"],se):(le=typeof globalThis<"u"?globalThis:le||self,se(le.genomeSpyApp={}))})(this,function(le){var Kl,kb,Ts,Ms,xn,Ns,Jl,Db,gr,Gi,od,f_,sd,h_,oo,uu,eu,Ib,tu,Tb,nu,Mb,cd,d_,ru,Fs,$r,zi,iu,ld,p_,ud,g_,au,Nb,fd,m_,hd,b_,ou,Fb;"use strict";var $Z=Object.defineProperty;var VZ=(le,se,qe)=>se in le?$Z(le,se,{enumerable:!0,configurable:!0,writable:!0,value:qe}):le[se]=qe;var En=(le,se,qe)=>(VZ(le,typeof se!="symbol"?se+"":se,qe),qe),_b=(le,se,qe)=>{if(!se.has(le))throw TypeError("Cannot "+qe)};var ce=(le,se,qe)=>(_b(le,se,"read from private field"),qe?qe.call(le):se.get(le)),Fe=(le,se,qe)=>{if(se.has(le))throw TypeError("Cannot add the same private member more than once");se instanceof WeakSet?se.add(le):se.set(le,qe)},Sn=(le,se,qe,$i)=>(_b(le,se,"write to private field"),$i?$i.call(le,qe):se.set(le,qe),qe),c_=(le,se,qe,$i)=>({set _(yd){Sn(le,se,yd,qe)},get _(){return ce(le,se,$i)}}),Ze=(le,se,qe)=>(_b(le,se,"access private method"),qe);function se(e,t,n){return e.fields=t||[],e.fname=n,e}function qe(e){return e==null?null:e.fname}function $i(e){return e==null?null:e.fields}function yd(e){return e.length===1?y_(e[0]):v_(e)}const y_=e=>function(t){return t[e]},v_=e=>{const t=e.length;return function(n){for(let r=0;r<t;++r)n=n[e[r]];return n}};function Ye(e){throw Error(e)}function w_(e){const t=[],n=e.length;let r=null,i=0,a="",o,s,l;e=e+"";function c(){t.push(a+e.substring(o,s)),a="",o=s+1}for(o=s=0;s<n;++s)if(l=e[s],l==="\\")a+=e.substring(o,s),a+=e.substring(++s,++s),o=s;else if(l===r)c(),r=null,i=-1;else{if(r)continue;o===i&&l==='"'||o===i&&l==="'"?(o=s+1,r=l):l==="."&&!i?s>o?c():o=s+1:l==="["?(s>o&&c(),i=o=s+1):l==="]"&&(i||Ye("Access path missing open bracket: "+e),i>0&&c(),i=0,o=s+1)}return i&&Ye("Access path missing closing bracket: "+e),r&&Ye("Access path missing closing quote: "+e),s>o&&(s++,c()),t}function fu(e,t,n){const r=w_(e);return e=r.length===1?r[0]:e,se((n&&n.get||yd)(r),[e],t||e)}fu("id");const hu=se(e=>e,[],"identity");se(()=>0,[],"zero"),se(()=>1,[],"one"),se(()=>!0,[],"true"),se(()=>!1,[],"false");var en=Array.isArray;function Ht(e){return e===Object(e)}function Cn(e){return e[e.length-1]}function Rs(e){return e==null||e===""?null:+e}const Bb=e=>t=>e*Math.exp(t),Lb=e=>t=>Math.log(e*t),x_=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),A_=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,du=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function vd(e,t,n,r){const i=n(e[0]),a=n(Cn(e)),o=(a-i)*t;return[r(i-o),r(a-o)]}function E_(e,t){return vd(e,t,Rs,hu)}function S_(e,t){var n=Math.sign(e[0]);return vd(e,t,Lb(n),Bb(n))}function C_(e,t,n){return vd(e,t,du(n),du(1/n))}function pu(e,t,n,r,i){const a=r(e[0]),o=r(Cn(e)),s=t!=null?r(t):(a+o)/2;return[i(s+(a-s)*n),i(s+(o-s)*n)]}function wd(e,t,n){return pu(e,t,n,Rs,hu)}function Ob(e,t,n){const r=Math.sign(e[0]);return pu(e,t,n,Lb(r),Bb(r))}function xd(e,t,n,r){return pu(e,t,n,du(r),du(1/r))}function __(e,t,n,r){return pu(e,t,n,x_(r),A_(r))}function Ad(e){return e!=null?en(e)?e:[e]:[]}function k_(e,t,n){let r=e[0],i=e[1],a;return i<r&&(a=i,i=r,r=a),a=i-r,a>=n-t?[t,n]:[r=Math.min(Math.max(r,t),n-a),r+a]}function Tt(e){return typeof e=="function"}const D_="descending";function Rb(e,t,n){n=n||{},t=Ad(t)||[];const r=[],i=[],a={},o=n.comparator||I_;return Ad(e).forEach((s,l)=>{s!=null&&(r.push(t[l]===D_?-1:1),i.push(s=Tt(s)?s:fu(s,null,n)),($i(s)||[]).forEach(c=>a[c]=1))}),i.length===0?null:se(o(i,r),Object.keys(a))}const zb=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0),I_=(e,t)=>e.length===1?T_(e[0],t[0]):M_(e,t,e.length),T_=(e,t)=>function(n,r){return zb(e(n),e(r))*t},M_=(e,t,n)=>(t.push(0),function(r,i){let a,o=0,s=-1;for(;o===0&&++s<n;)a=e[s],o=zb(a(r),a(i));return o*t[s]});function N_(e){return Tt(e)?e:()=>e}function Ed(e){for(let t,n,r=1,i=arguments.length;r<i;++r){t=arguments[r];for(n in t)e[n]=t[n]}return e}const F_=Object.prototype.hasOwnProperty;function Vi(e,t){return F_.call(e,t)}function gu(e){return typeof e=="boolean"}function B_(e){return Object.prototype.toString.call(e)==="[object Date]"}function L_(e){return e&&Tt(e[Symbol.iterator])}function Ke(e){return typeof e=="number"}function ze(e){return typeof e=="string"}function O_(e,t){const n=e[0],r=Cn(e),i=+t;return i?i===1?r:n+i*(r-n):n}function mu(e){return e&&Cn(e)-e[0]||0}function bu(e){return en(e)?"["+e.map(bu)+"]":Ht(e)||ze(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function R_(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const z_=e=>Ke(e)||B_(e)?e:Date.parse(e);function P_(e,t){return t=t||z_,e==null||e===""?null:t(e)}function U_(e){return e==null||e===""?null:e+""}function yu(e){const t={},n=e.length;for(let r=0;r<n;++r)t[e[r]]=!0;return t}var Pb={},Sd={},Cd=34,zs=10,_d=13;function Ub(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function j_(e,t){var n=Ub(e);return function(r,i){return t(n(r),i,e)}}function jb(e){var t=Object.create(null),n=[];return e.forEach(function(r){for(var i in r)i in t||n.push(t[i]=i)}),n}function Mt(e,t){var n=e+"",r=n.length;return r<t?new Array(t-r+1).join(0)+n:n}function H_(e){return e<0?"-"+Mt(-e,6):e>9999?"+"+Mt(e,6):Mt(e,4)}function G_(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":H_(e.getUTCFullYear())+"-"+Mt(e.getUTCMonth()+1,2)+"-"+Mt(e.getUTCDate(),2)+(i?"T"+Mt(t,2)+":"+Mt(n,2)+":"+Mt(r,2)+"."+Mt(i,3)+"Z":r?"T"+Mt(t,2)+":"+Mt(n,2)+":"+Mt(r,2)+"Z":n||t?"T"+Mt(t,2)+":"+Mt(n,2)+"Z":"")}function Hb(e){var t=new RegExp('["'+e+`
2
+ \r]`),n=e.charCodeAt(0);function r(f,h){var d,p,g=i(f,function(y,v){if(d)return d(y,v-1);p=y,d=h?j_(y,h):Ub(y)});return g.columns=p||[],g}function i(f,h){var d=[],p=f.length,g=0,y=0,v,S=p<=0,k=!1;f.charCodeAt(p-1)===zs&&--p,f.charCodeAt(p-1)===_d&&--p;function C(){if(S)return Sd;if(k)return k=!1,Pb;var w,A=g,T;if(f.charCodeAt(A)===Cd){for(;g++<p&&f.charCodeAt(g)!==Cd||f.charCodeAt(++g)===Cd;);return(w=g)>=p?S=!0:(T=f.charCodeAt(g++))===zs?k=!0:T===_d&&(k=!0,f.charCodeAt(g)===zs&&++g),f.slice(A+1,w-1).replace(/""/g,'"')}for(;g<p;){if((T=f.charCodeAt(w=g++))===zs)k=!0;else if(T===_d)k=!0,f.charCodeAt(g)===zs&&++g;else if(T!==n)continue;return f.slice(A,w)}return S=!0,f.slice(A,p)}for(;(v=C())!==Sd;){for(var E=[];v!==Pb&&v!==Sd;)E.push(v),v=C();h&&(E=h(E,y++))==null||d.push(E)}return d}function a(f,h){return f.map(function(d){return h.map(function(p){return u(d[p])}).join(e)})}function o(f,h){return h==null&&(h=jb(f)),[h.map(u).join(e)].concat(a(f,h)).join(`
3
+ `)}function s(f,h){return h==null&&(h=jb(f)),a(f,h).join(`
4
+ `)}function l(f){return f.map(c).join(`
5
+ `)}function c(f){return f.map(u).join(e)}function u(f){return f==null?"":f instanceof Date?G_(f):t.test(f+="")?'"'+f.replace(/"/g,'""')+'"':f}return{parse:r,parseRows:i,format:o,formatBody:s,formatRows:l,formatRow:c,formatValue:u}}var $_=Hb(" "),V_=$_.parseRows;function Y_(e){return e}function Q_(e){if(e==null)return Y_;var t,n,r=e.scale[0],i=e.scale[1],a=e.translate[0],o=e.translate[1];return function(s,l){l||(t=n=0);var c=2,u=s.length,f=new Array(u);for(f[0]=(t+=s[0])*r+a,f[1]=(n+=s[1])*i+o;c<u;)f[c]=s[c],++c;return f}}function Z_(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function q_(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return Gb(e,n)})}:Gb(e,t)}function Gb(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,a=$b(e,t);return n==null&&r==null?{type:"Feature",properties:i,geometry:a}:r==null?{type:"Feature",id:n,properties:i,geometry:a}:{type:"Feature",id:n,bbox:r,properties:i,geometry:a}}function $b(e,t){var n=Q_(e.transform),r=e.arcs;function i(u,f){f.length&&f.pop();for(var h=r[u<0?~u:u],d=0,p=h.length;d<p;++d)f.push(n(h[d],d));u<0&&Z_(f,p)}function a(u){return n(u)}function o(u){for(var f=[],h=0,d=u.length;h<d;++h)i(u[h],f);return f.length<2&&f.push(f[0]),f}function s(u){for(var f=o(u);f.length<4;)f.push(f[0]);return f}function l(u){return u.map(s)}function c(u){var f=u.type,h;switch(f){case"GeometryCollection":return{type:f,geometries:u.geometries.map(c)};case"Point":h=a(u.coordinates);break;case"MultiPoint":h=u.coordinates.map(a);break;case"LineString":h=o(u.arcs);break;case"MultiLineString":h=u.arcs.map(o);break;case"Polygon":h=l(u.arcs);break;case"MultiPolygon":h=u.arcs.map(l);break;default:return null}return{type:f,coordinates:h}}return c(t)}function W_(e,t){var n={},r={},i={},a=[],o=-1;t.forEach(function(c,u){var f=e.arcs[c<0?~c:c],h;f.length<3&&!f[1][0]&&!f[1][1]&&(h=t[++o],t[o]=c,t[u]=h)}),t.forEach(function(c){var u=s(c),f=u[0],h=u[1],d,p;if(d=i[f])if(delete i[d.end],d.push(c),d.end=h,p=r[h]){delete r[p.start];var g=p===d?d:d.concat(p);r[g.start=d.start]=i[g.end=p.end]=g}else r[d.start]=i[d.end]=d;else if(d=r[h])if(delete r[d.start],d.unshift(c),d.start=f,p=i[f]){delete i[p.end];var y=p===d?d:p.concat(d);r[y.start=p.start]=i[y.end=d.end]=y}else r[d.start]=i[d.end]=d;else d=[c],r[d.start=f]=i[d.end=h]=d});function s(c){var u=e.arcs[c<0?~c:c],f=u[0],h;return e.transform?(h=[0,0],u.forEach(function(d){h[0]+=d[0],h[1]+=d[1]})):h=u[u.length-1],c<0?[h,f]:[f,h]}function l(c,u){for(var f in c){var h=c[f];delete u[h.start],delete h.start,delete h.end,h.forEach(function(d){n[d<0?~d:d]=1}),a.push(h)}}return l(i,r),l(r,i),t.forEach(function(c){n[c<0?~c:c]||a.push([c])}),a}function X_(e){return $b(e,K_.apply(this,arguments))}function K_(e,t,n){var r,i,a;if(arguments.length>1)r=J_(e,t,n);else for(i=0,r=new Array(a=e.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:W_(e,r)}}function J_(e,t,n){var r=[],i=[],a;function o(f){var h=f<0?~f:f;(i[h]||(i[h]=[])).push({i:f,g:a})}function s(f){f.forEach(o)}function l(f){f.forEach(s)}function c(f){f.forEach(l)}function u(f){switch(a=f,f.type){case"GeometryCollection":f.geometries.forEach(u);break;case"LineString":s(f.arcs);break;case"MultiLineString":case"Polygon":l(f.arcs);break;case"MultiPolygon":c(f.arcs);break}}return u(t),i.forEach(n==null?function(f){r.push(f[0].i)}:function(f){n(f[0].g,f[f.length-1].g)&&r.push(f[0].i)}),r}function Yi(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function ek(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function vu(e){let t,n,r;e.length!==2?(t=Yi,n=(s,l)=>Yi(e(s),l),r=(s,l)=>e(s)-l):(t=e===Yi||e===ek?e:tk,n=e,r=e);function i(s,l,c=0,u=s.length){if(c<u){if(t(l,l)!==0)return u;do{const f=c+u>>>1;n(s[f],l)<0?c=f+1:u=f}while(c<u)}return c}function a(s,l,c=0,u=s.length){if(c<u){if(t(l,l)!==0)return u;do{const f=c+u>>>1;n(s[f],l)<=0?c=f+1:u=f}while(c<u)}return c}function o(s,l,c=0,u=s.length){const f=i(s,l,c,u-1);return f>c&&r(s[f-1],l)>-r(s[f],l)?f-1:f}return{left:i,center:o,right:a}}function tk(){return 0}function Vb(e){return e===null?NaN:+e}const Yb=vu(Yi),kd=Yb.right;Yb.left,vu(Vb).center;const Qi=kd;function nk(e,t){let n=0;if(t===void 0)for(let r of e)r!=null&&(r=+r)>=r&&++n;else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(i=+i)>=i&&++n}return n}function wu(e,t){let n,r;if(t===void 0)for(const i of e)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let a of e)(a=t(a,++i,e))!=null&&(n===void 0?a>=a&&(n=r=a):(n>a&&(n=a),r<a&&(r=a)))}return[n,r]}class Zi extends Map{constructor(t,n=ak){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,i]of t)this.set(r,i)}get(t){return super.get(Qb(this,t))}has(t){return super.has(Qb(this,t))}set(t,n){return super.set(rk(this,t),n)}delete(t){return super.delete(ik(this,t))}}function Qb({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function rk({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function ik({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function ak(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Ps(e){return e}function Us(e,...t){return Dd(e,Ps,Ps,t)}function ok(e,...t){return Dd(e,Array.from,Ps,t)}function sk(e,t,...n){return Dd(e,Ps,t,n)}function Dd(e,t,n,r){return function i(a,o){if(o>=r.length)return n(a);const s=new Zi,l=r[o++];let c=-1;for(const u of a){const f=l(u,++c,a),h=s.get(f);h?h.push(u):s.set(f,[u])}for(const[u,f]of s)s.set(u,i(f,o));return t(s)}(e,0)}function ck(e,t){return Array.from(t,n=>e[n])}function lk(e,...t){if(typeof e[Symbol.iterator]!="function")throw new TypeError("values is not iterable");e=Array.from(e);let[n]=t;if(n&&n.length!==2||t.length>1){const r=Uint32Array.from(e,(i,a)=>a);return t.length>1?(t=t.map(i=>e.map(i)),r.sort((i,a)=>{for(const o of t){const s=Id(o[i],o[a]);if(s)return s}})):(n=e.map(n),r.sort((i,a)=>Id(n[i],n[a]))),ck(e,r)}return e.sort(uk(n))}function uk(e=Yi){if(e===Yi)return Id;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function Id(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:e>t?1:0)}var fk=Array.prototype,hk=fk.slice;function xu(e){return()=>e}var Td=Math.sqrt(50),Md=Math.sqrt(10),Nd=Math.sqrt(2);function js(e,t,n){var r,i=-1,a,o,s;if(t=+t,e=+e,n=+n,e===t&&n>0)return[e];if((r=t<e)&&(a=e,e=t,t=a),(s=Hs(e,t,n))===0||!isFinite(s))return[];if(s>0){let l=Math.round(e/s),c=Math.round(t/s);for(l*s<e&&++l,c*s>t&&--c,o=new Array(a=c-l+1);++i<a;)o[i]=(l+i)*s}else{s=-s;let l=Math.round(e*s),c=Math.round(t*s);for(l/s<e&&++l,c/s>t&&--c,o=new Array(a=c-l+1);++i<a;)o[i]=(l+i)/s}return r&&o.reverse(),o}function Hs(e,t,n){var r=(t-e)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,i);return i>=0?(a>=Td?10:a>=Md?5:a>=Nd?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=Td?10:a>=Md?5:a>=Nd?2:1)}function qi(e,t,n){var r=Math.abs(t-e)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;return a>=Td?i*=10:a>=Md?i*=5:a>=Nd&&(i*=2),t<e?-i:i}function dk(e,t,n){let r;for(;;){const i=Hs(e,t,n);if(i===r||i===0||!isFinite(i))return[e,t];i>0?(e=Math.floor(e/i)*i,t=Math.ceil(t/i)*i):i<0&&(e=Math.ceil(e*i)/i,t=Math.floor(t*i)/i),r=i}}function pk(e){return Math.ceil(Math.log(nk(e))/Math.LN2)+1}function gk(){var e=Ps,t=wu,n=pk;function r(i){Array.isArray(i)||(i=Array.from(i));var a,o=i.length,s,l,c=new Array(o);for(a=0;a<o;++a)c[a]=e(i[a],a,i);var u=t(c),f=u[0],h=u[1],d=n(c,f,h);if(!Array.isArray(d)){const v=h,S=+d;if(t===wu&&([f,h]=dk(f,h,S)),d=js(f,h,S),d[0]<=f&&(l=Hs(f,h,S)),d[d.length-1]>=h)if(v>=h&&t===wu){const k=Hs(f,h,S);isFinite(k)&&(k>0?h=(Math.floor(h/k)+1)*k:k<0&&(h=(Math.ceil(h*-k)+1)/-k))}else d.pop()}for(var p=d.length;d[0]<=f;)d.shift(),--p;for(;d[p-1]>h;)d.pop(),--p;var g=new Array(p+1),y;for(a=0;a<=p;++a)y=g[a]=[],y.x0=a>0?d[a-1]:f,y.x1=a<p?d[a]:h;if(isFinite(l)){if(l>0)for(a=0;a<o;++a)(s=c[a])!=null&&f<=s&&s<=h&&g[Math.min(p,Math.floor((s-f)/l))].push(i[a]);else if(l<0){for(a=0;a<o;++a)if((s=c[a])!=null&&f<=s&&s<=h){const v=Math.floor((f-s)*l);g[Math.min(p,v+(d[v]<=s))].push(i[a])}}}else for(a=0;a<o;++a)(s=c[a])!=null&&f<=s&&s<=h&&g[Qi(d,s,0,p)].push(i[a]);return g}return r.value=function(i){return arguments.length?(e=typeof i=="function"?i:xu(i),r):e},r.domain=function(i){return arguments.length?(t=typeof i=="function"?i:xu([i[0],i[1]]),r):t},r.thresholds=function(i){return arguments.length?(n=typeof i=="function"?i:Array.isArray(i)?xu(hk.call(i)):xu(i),r):n},r}function Fd(e,t,n=Vb){if(r=e.length){if((t=+t)<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e),s=+n(e[a+1],a+1,e);return o+(s-o)*(i-a)}}function qr(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=new Array(i);++r<i;)a[r]=e+r*n;return a}function Au(e,t){let n=0;if(t===void 0)for(let r of e)(r=+r)&&(n+=r);else{let r=-1;for(let i of e)(i=+t(i,++r,e))&&(n+=i)}return n}function mk(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Eu(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function uo(e){return e=Eu(Math.abs(e)),e?e[1]:NaN}function bk(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],l=0;i>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),a.push(n.substring(i-=s,i+s)),!((l+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function yk(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var vk=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Wr(e){if(!(t=vk.exec(e)))throw new Error("invalid format: "+e);var t;return new Bd({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Wr.prototype=Bd.prototype;function Bd(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}Bd.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 wk(e){e:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+e[n])break e;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var Zb;function xk(e,t){var n=Eu(e,t);if(!n)return e+"";var r=n[0],i=n[1],a=i-(Zb=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+new Array(a-o+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+Eu(e,Math.max(0,t+a-1))[0]}function qb(e,t){var n=Eu(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const Wb={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:mk,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>qb(e*100,t),r:qb,s:xk,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Xb(e){return e}var Kb=Array.prototype.map,Jb=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Ak(e){var t=e.grouping===void 0||e.thousands===void 0?Xb:bk(Kb.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?Xb:yk(Kb.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function c(f){f=Wr(f);var h=f.fill,d=f.align,p=f.sign,g=f.symbol,y=f.zero,v=f.width,S=f.comma,k=f.precision,C=f.trim,E=f.type;E==="n"?(S=!0,E="g"):Wb[E]||(k===void 0&&(k=12),C=!0,E="g"),(y||h==="0"&&d==="=")&&(y=!0,h="0",d="=");var w=g==="$"?n:g==="#"&&/[boxX]/.test(E)?"0"+E.toLowerCase():"",A=g==="$"?r:/[%p]/.test(E)?o:"",T=Wb[E],D=/[defgprs%]/.test(E);k=k===void 0?6:/[gprs]/.test(E)?Math.max(1,Math.min(21,k)):Math.max(0,Math.min(20,k));function M(F){var U=w,q=A,V,pe,Se;if(E==="c")q=T(F)+q,F="";else{F=+F;var tt=F<0||1/F<0;if(F=isNaN(F)?l:T(Math.abs(F),k),C&&(F=wk(F)),tt&&+F==0&&p!=="+"&&(tt=!1),U=(tt?p==="("?p:s:p==="-"||p==="("?"":p)+U,q=(E==="s"?Jb[8+Zb/3]:"")+q+(tt&&p==="("?")":""),D){for(V=-1,pe=F.length;++V<pe;)if(Se=F.charCodeAt(V),48>Se||Se>57){q=(Se===46?i+F.slice(V+1):F.slice(V))+q,F=F.slice(0,V);break}}}S&&!y&&(F=t(F,1/0));var ie=U.length+F.length+q.length,yt=ie<v?new Array(v-ie+1).join(h):"";switch(S&&y&&(F=t(yt+F,yt.length?v-q.length:1/0),yt=""),d){case"<":F=U+F+q+yt;break;case"=":F=U+yt+F+q;break;case"^":F=yt.slice(0,ie=yt.length>>1)+U+F+q+yt.slice(ie);break;default:F=yt+U+F+q;break}return a(F)}return M.toString=function(){return f+""},M}function u(f,h){var d=c((f=Wr(f),f.type="f",f)),p=Math.max(-8,Math.min(8,Math.floor(uo(h)/3)))*3,g=Math.pow(10,-p),y=Jb[8+p/3];return function(v){return d(g*v)+y}}return{format:c,formatPrefix:u}}var Su,rt,Ld;Ek({thousands:",",grouping:[3],currency:["$",""]});function Ek(e){return Su=Ak(e),rt=Su.format,Ld=Su.formatPrefix,Su}function ey(e){return Math.max(0,-uo(Math.abs(e)))}function ty(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(uo(t)/3)))*3-uo(Math.abs(e)))}function ny(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,uo(t)-uo(e))+1}var Od=new Date,Rd=new Date;function st(e,t,n,r){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=function(a){return e(a=new Date(+a)),a},i.ceil=function(a){return e(a=new Date(a-1)),t(a,1),e(a),a},i.round=function(a){var o=i(a),s=i.ceil(a);return a-o<s-a?o:s},i.offset=function(a,o){return t(a=new Date(+a),o==null?1:Math.floor(o)),a},i.range=function(a,o,s){var l=[],c;if(a=i.ceil(a),s=s==null?1:Math.floor(s),!(a<o)||!(s>0))return l;do l.push(c=new Date(+a)),t(a,s),e(a);while(c<a&&a<o);return l},i.filter=function(a){return st(function(o){if(o>=o)for(;e(o),!a(o);)o.setTime(o-1)},function(o,s){if(o>=o)if(s<0)for(;++s<=0;)for(;t(o,-1),!a(o););else for(;--s>=0;)for(;t(o,1),!a(o););})},n&&(i.count=function(a,o){return Od.setTime(+a),Rd.setTime(+o),e(Od),e(Rd),Math.floor(n(Od,Rd))},i.every=function(a){return a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(r?function(o){return r(o)%a===0}:function(o){return i.count(0,o)%a===0}):i}),i}var Cu=st(function(){},function(e,t){e.setTime(+e+t)},function(e,t){return t-e});Cu.every=function(e){return e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?st(function(t){t.setTime(Math.floor(t/e)*e)},function(t,n){t.setTime(+t+n*e)},function(t,n){return(n-t)/e}):Cu};const zd=Cu;Cu.range;const yr=1e3,tn=yr*60,vr=tn*60,Wi=vr*24,Pd=Wi*7,ry=Wi*30,Ud=Wi*365;var iy=st(function(e){e.setTime(e-e.getMilliseconds())},function(e,t){e.setTime(+e+t*yr)},function(e,t){return(t-e)/yr},function(e){return e.getUTCSeconds()});const Xr=iy;iy.range;var ay=st(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*yr)},function(e,t){e.setTime(+e+t*tn)},function(e,t){return(t-e)/tn},function(e){return e.getMinutes()});const jd=ay;ay.range;var oy=st(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*yr-e.getMinutes()*tn)},function(e,t){e.setTime(+e+t*vr)},function(e,t){return(t-e)/vr},function(e){return e.getHours()});const Hd=oy;oy.range;var sy=st(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*tn)/Wi,e=>e.getDate()-1);const Xi=sy;sy.range;function Ki(e){return st(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*tn)/Pd})}var Gs=Ki(0),_u=Ki(1),Sk=Ki(2),Ck=Ki(3),fo=Ki(4),_k=Ki(5),kk=Ki(6);Gs.range,_u.range,Sk.range,Ck.range,fo.range,_k.range,kk.range;var cy=st(function(e){e.setDate(1),e.setHours(0,0,0,0)},function(e,t){e.setMonth(e.getMonth()+t)},function(e,t){return t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12},function(e){return e.getMonth()});const ku=cy;cy.range;var Gd=st(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()});Gd.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:st(function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n*e)})};const Kr=Gd;Gd.range;var ly=st(function(e){e.setUTCSeconds(0,0)},function(e,t){e.setTime(+e+t*tn)},function(e,t){return(t-e)/tn},function(e){return e.getUTCMinutes()});const $d=ly;ly.range;var uy=st(function(e){e.setUTCMinutes(0,0,0)},function(e,t){e.setTime(+e+t*vr)},function(e,t){return(t-e)/vr},function(e){return e.getUTCHours()});const Vd=uy;uy.range;var fy=st(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/Wi},function(e){return e.getUTCDate()-1});const Ji=fy;fy.range;function ea(e){return st(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/Pd})}var $s=ea(0),Du=ea(1),Dk=ea(2),Ik=ea(3),ho=ea(4),Tk=ea(5),Mk=ea(6);$s.range,Du.range,Dk.range,Ik.range,ho.range,Tk.range,Mk.range;var hy=st(function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCMonth(e.getUTCMonth()+t)},function(e,t){return t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12},function(e){return e.getUTCMonth()});const Iu=hy;hy.range;var Yd=st(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()});Yd.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:st(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})};const Jr=Yd;Yd.range;function dy(e,t,n,r,i,a){const o=[[Xr,1,yr],[Xr,5,5*yr],[Xr,15,15*yr],[Xr,30,30*yr],[a,1,tn],[a,5,5*tn],[a,15,15*tn],[a,30,30*tn],[i,1,vr],[i,3,3*vr],[i,6,6*vr],[i,12,12*vr],[r,1,Wi],[r,2,2*Wi],[n,1,Pd],[t,1,ry],[t,3,3*ry],[e,1,Ud]];function s(c,u,f){const h=u<c;h&&([c,u]=[u,c]);const d=f&&typeof f.range=="function"?f:l(c,u,f),p=d?d.range(c,+u+1):[];return h?p.reverse():p}function l(c,u,f){const h=Math.abs(u-c)/f,d=vu(([,,y])=>y).right(o,h);if(d===o.length)return e.every(qi(c/Ud,u/Ud,f));if(d===0)return zd.every(Math.max(qi(c,u,f),1));const[p,g]=o[h/o[d-1][2]<o[d][2]/h?d-1:d];return p.every(g)}return[s,l]}const[Nk,Fk]=dy(Jr,Iu,$s,Ji,Vd,$d),[Bk,Lk]=dy(Kr,ku,Gs,Xi,Hd,jd),Vs="year",Ys="quarter",Qs="month",Zs="week",qs="date",Tu="day",Qd="dayofyear",Ws="hours",Xs="minutes",Ks="seconds",Mu="milliseconds";[Vs,Ys,Qs,Zs,qs,Tu,Qd,Ws,Xs,Ks,Mu].reduce((e,t,n)=>(e[t]=1+n,e),{});const Ok={[Vs]:Kr,[Ys]:ku.every(3),[Qs]:ku,[Zs]:Gs,[qs]:Xi,[Tu]:Xi,[Qd]:Xi,[Ws]:Hd,[Xs]:jd,[Ks]:Xr,[Mu]:zd},Rk={[Vs]:Jr,[Ys]:Iu.every(3),[Qs]:Iu,[Zs]:$s,[qs]:Ji,[Tu]:Ji,[Qd]:Ji,[Ws]:Vd,[Xs]:$d,[Ks]:Xr,[Mu]:zd};function zk(e){return Ok[e]}function Pk(e){return Rk[e]}function Zd(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function qd(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Js(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function py(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,l=e.shortMonths,c=ec(i),u=tc(i),f=ec(a),h=tc(a),d=ec(o),p=tc(o),g=ec(s),y=tc(s),v=ec(l),S=tc(l),k={a:tt,A:ie,b:yt,B:Vr,c:null,d:wy,e:wy,f:cD,g:yD,G:wD,H:aD,I:oD,j:sD,L:xy,m:lD,M:uD,p:De,q:Xe,Q:ky,s:Dy,S:fD,u:hD,U:dD,V:pD,w:gD,W:mD,x:null,X:null,y:bD,Y:vD,Z:xD,"%":_y},C={a:Pi,A:so,b:Bs,B:co,c:null,d:Ey,e:Ey,f:CD,g:LD,G:RD,H:AD,I:ED,j:SD,L:Sy,m:_D,M:kD,p:Ls,q:jn,Q:ky,s:Dy,S:DD,u:ID,U:TD,V:MD,w:ND,W:FD,x:null,X:null,y:BD,Y:OD,Z:zD,"%":_y},E={a:M,A:F,b:U,B:q,c:V,d:yy,e:yy,f:tD,g:by,G:my,H:vy,I:vy,j:Xk,L:eD,m:Wk,M:Kk,p:D,q:qk,Q:rD,s:iD,S:Jk,u:$k,U:Vk,V:Yk,w:Gk,W:Qk,x:pe,X:Se,y:by,Y:my,Z:Zk,"%":nD};k.x=w(n,k),k.X=w(r,k),k.c=w(t,k),C.x=w(n,C),C.X=w(r,C),C.c=w(t,C);function w(Q,re){return function(ue){var j=[],Qe=-1,de=0,vt=Q.length,dt,Kt,lo;for(ue instanceof Date||(ue=new Date(+ue));++Qe<vt;)Q.charCodeAt(Qe)===37&&(j.push(Q.slice(de,Qe)),(Kt=gy[dt=Q.charAt(++Qe)])!=null?dt=Q.charAt(++Qe):Kt=dt==="e"?" ":"0",(lo=re[dt])&&(dt=lo(ue,Kt)),j.push(dt),de=Qe+1);return j.push(Q.slice(de,Qe)),j.join("")}}function A(Q,re){return function(ue){var j=Js(1900,void 0,1),Qe=T(j,Q,ue+="",0),de,vt;if(Qe!=ue.length)return null;if("Q"in j)return new Date(j.Q);if("s"in j)return new Date(j.s*1e3+("L"in j?j.L:0));if(re&&!("Z"in j)&&(j.Z=0),"p"in j&&(j.H=j.H%12+j.p*12),j.m===void 0&&(j.m="q"in j?j.q:0),"V"in j){if(j.V<1||j.V>53)return null;"w"in j||(j.w=1),"Z"in j?(de=qd(Js(j.y,0,1)),vt=de.getUTCDay(),de=vt>4||vt===0?Du.ceil(de):Du(de),de=Ji.offset(de,(j.V-1)*7),j.y=de.getUTCFullYear(),j.m=de.getUTCMonth(),j.d=de.getUTCDate()+(j.w+6)%7):(de=Zd(Js(j.y,0,1)),vt=de.getDay(),de=vt>4||vt===0?_u.ceil(de):_u(de),de=Xi.offset(de,(j.V-1)*7),j.y=de.getFullYear(),j.m=de.getMonth(),j.d=de.getDate()+(j.w+6)%7)}else("W"in j||"U"in j)&&("w"in j||(j.w="u"in j?j.u%7:"W"in j?1:0),vt="Z"in j?qd(Js(j.y,0,1)).getUTCDay():Zd(Js(j.y,0,1)).getDay(),j.m=0,j.d="W"in j?(j.w+6)%7+j.W*7-(vt+5)%7:j.w+j.U*7-(vt+6)%7);return"Z"in j?(j.H+=j.Z/100|0,j.M+=j.Z%100,qd(j)):Zd(j)}}function T(Q,re,ue,j){for(var Qe=0,de=re.length,vt=ue.length,dt,Kt;Qe<de;){if(j>=vt)return-1;if(dt=re.charCodeAt(Qe++),dt===37){if(dt=re.charAt(Qe++),Kt=E[dt in gy?re.charAt(Qe++):dt],!Kt||(j=Kt(Q,ue,j))<0)return-1}else if(dt!=ue.charCodeAt(j++))return-1}return j}function D(Q,re,ue){var j=c.exec(re.slice(ue));return j?(Q.p=u.get(j[0].toLowerCase()),ue+j[0].length):-1}function M(Q,re,ue){var j=d.exec(re.slice(ue));return j?(Q.w=p.get(j[0].toLowerCase()),ue+j[0].length):-1}function F(Q,re,ue){var j=f.exec(re.slice(ue));return j?(Q.w=h.get(j[0].toLowerCase()),ue+j[0].length):-1}function U(Q,re,ue){var j=v.exec(re.slice(ue));return j?(Q.m=S.get(j[0].toLowerCase()),ue+j[0].length):-1}function q(Q,re,ue){var j=g.exec(re.slice(ue));return j?(Q.m=y.get(j[0].toLowerCase()),ue+j[0].length):-1}function V(Q,re,ue){return T(Q,t,re,ue)}function pe(Q,re,ue){return T(Q,n,re,ue)}function Se(Q,re,ue){return T(Q,r,re,ue)}function tt(Q){return o[Q.getDay()]}function ie(Q){return a[Q.getDay()]}function yt(Q){return l[Q.getMonth()]}function Vr(Q){return s[Q.getMonth()]}function De(Q){return i[+(Q.getHours()>=12)]}function Xe(Q){return 1+~~(Q.getMonth()/3)}function Pi(Q){return o[Q.getUTCDay()]}function so(Q){return a[Q.getUTCDay()]}function Bs(Q){return l[Q.getUTCMonth()]}function co(Q){return s[Q.getUTCMonth()]}function Ls(Q){return i[+(Q.getUTCHours()>=12)]}function jn(Q){return 1+~~(Q.getUTCMonth()/3)}return{format:function(Q){var re=w(Q+="",k);return re.toString=function(){return Q},re},parse:function(Q){var re=A(Q+="",!1);return re.toString=function(){return Q},re},utcFormat:function(Q){var re=w(Q+="",C);return re.toString=function(){return Q},re},utcParse:function(Q){var re=A(Q+="",!0);return re.toString=function(){return Q},re}}}var gy={"-":"",_:" ",0:"0"},ct=/^\s*\d+/,Uk=/^%/,jk=/[\\^$*+?|[\]().{}]/g;function me(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",a=i.length;return r+(a<n?new Array(n-a+1).join(t)+i:i)}function Hk(e){return e.replace(jk,"\\$&")}function ec(e){return new RegExp("^(?:"+e.map(Hk).join("|")+")","i")}function tc(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function Gk(e,t,n){var r=ct.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function $k(e,t,n){var r=ct.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function Vk(e,t,n){var r=ct.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function Yk(e,t,n){var r=ct.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function Qk(e,t,n){var r=ct.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function my(e,t,n){var r=ct.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function by(e,t,n){var r=ct.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Zk(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function qk(e,t,n){var r=ct.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function Wk(e,t,n){var r=ct.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function yy(e,t,n){var r=ct.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function Xk(e,t,n){var r=ct.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function vy(e,t,n){var r=ct.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function Kk(e,t,n){var r=ct.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function Jk(e,t,n){var r=ct.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function eD(e,t,n){var r=ct.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function tD(e,t,n){var r=ct.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function nD(e,t,n){var r=Uk.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function rD(e,t,n){var r=ct.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function iD(e,t,n){var r=ct.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function wy(e,t){return me(e.getDate(),t,2)}function aD(e,t){return me(e.getHours(),t,2)}function oD(e,t){return me(e.getHours()%12||12,t,2)}function sD(e,t){return me(1+Xi.count(Kr(e),e),t,3)}function xy(e,t){return me(e.getMilliseconds(),t,3)}function cD(e,t){return xy(e,t)+"000"}function lD(e,t){return me(e.getMonth()+1,t,2)}function uD(e,t){return me(e.getMinutes(),t,2)}function fD(e,t){return me(e.getSeconds(),t,2)}function hD(e){var t=e.getDay();return t===0?7:t}function dD(e,t){return me(Gs.count(Kr(e)-1,e),t,2)}function Ay(e){var t=e.getDay();return t>=4||t===0?fo(e):fo.ceil(e)}function pD(e,t){return e=Ay(e),me(fo.count(Kr(e),e)+(Kr(e).getDay()===4),t,2)}function gD(e){return e.getDay()}function mD(e,t){return me(_u.count(Kr(e)-1,e),t,2)}function bD(e,t){return me(e.getFullYear()%100,t,2)}function yD(e,t){return e=Ay(e),me(e.getFullYear()%100,t,2)}function vD(e,t){return me(e.getFullYear()%1e4,t,4)}function wD(e,t){var n=e.getDay();return e=n>=4||n===0?fo(e):fo.ceil(e),me(e.getFullYear()%1e4,t,4)}function xD(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+me(t/60|0,"0",2)+me(t%60,"0",2)}function Ey(e,t){return me(e.getUTCDate(),t,2)}function AD(e,t){return me(e.getUTCHours(),t,2)}function ED(e,t){return me(e.getUTCHours()%12||12,t,2)}function SD(e,t){return me(1+Ji.count(Jr(e),e),t,3)}function Sy(e,t){return me(e.getUTCMilliseconds(),t,3)}function CD(e,t){return Sy(e,t)+"000"}function _D(e,t){return me(e.getUTCMonth()+1,t,2)}function kD(e,t){return me(e.getUTCMinutes(),t,2)}function DD(e,t){return me(e.getUTCSeconds(),t,2)}function ID(e){var t=e.getUTCDay();return t===0?7:t}function TD(e,t){return me($s.count(Jr(e)-1,e),t,2)}function Cy(e){var t=e.getUTCDay();return t>=4||t===0?ho(e):ho.ceil(e)}function MD(e,t){return e=Cy(e),me(ho.count(Jr(e),e)+(Jr(e).getUTCDay()===4),t,2)}function ND(e){return e.getUTCDay()}function FD(e,t){return me(Du.count(Jr(e)-1,e),t,2)}function BD(e,t){return me(e.getUTCFullYear()%100,t,2)}function LD(e,t){return e=Cy(e),me(e.getUTCFullYear()%100,t,2)}function OD(e,t){return me(e.getUTCFullYear()%1e4,t,4)}function RD(e,t){var n=e.getUTCDay();return e=n>=4||n===0?ho(e):ho.ceil(e),me(e.getUTCFullYear()%1e4,t,4)}function zD(){return"+0000"}function _y(){return"%"}function ky(e){return+e}function Dy(e){return Math.floor(+e/1e3)}var po,Wd,Iy,Xd,Ty;PD({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 PD(e){return po=py(e),Wd=po.format,Iy=po.parse,Xd=po.utcFormat,Ty=po.utcParse,po}function nc(e){const t={};return n=>t[n]||(t[n]=e(n))}function UD(e,t){return n=>{const r=e(n),i=r.indexOf(t);if(i<0)return r;let a=jD(r,i);const o=a<r.length?r.slice(a):"";for(;--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function jD(e,t){let n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}function HD(e){const t=nc(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(r){const i=Wr(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return UD(t(i),t(".1f")(1)[1])}else return t(i)},formatSpan(r,i,a,o){o=Wr(o??",f");const s=qi(r,i,a),l=Math.max(Math.abs(r),Math.abs(i));let c;if(o.precision==null)switch(o.type){case"s":return isNaN(c=ty(s,l))||(o.precision=c),n(o,l);case"":case"e":case"g":case"p":case"r":{isNaN(c=ny(s,l))||(o.precision=c-(o.type==="e"));break}case"f":case"%":{isNaN(c=ey(s))||(o.precision=c-(o.type==="%")*2);break}}return t(o)}}}GD();function GD(){return HD({format:rt,formatPrefix:Ld})}function My(e,t,n){n=n||{},Ht(n)||Ye("Invalid time multi-format specifier: ".concat(n));const r=t(Ks),i=t(Xs),a=t(Ws),o=t(qs),s=t(Zs),l=t(Qs),c=t(Ys),u=t(Vs),f=e(n[Mu]||".%L"),h=e(n[Ks]||":%S"),d=e(n[Xs]||"%I:%M"),p=e(n[Ws]||"%I %p"),g=e(n[qs]||n[Tu]||"%a %d"),y=e(n[Zs]||"%b %d"),v=e(n[Qs]||"%B"),S=e(n[Ys]||"%B"),k=e(n[Vs]||"%Y");return C=>(r(C)<C?f:i(C)<C?h:a(C)<C?d:o(C)<C?p:l(C)<C?s(C)<C?g:y:u(C)<C?c(C)<C?v:S:k)(C)}function Ny(e){const t=nc(e.format),n=nc(e.utcFormat);return{timeFormat:r=>ze(r)?t(r):My(t,zk,r),utcFormat:r=>ze(r)?n(r):My(n,Pk,r),timeParse:nc(e.parse),utcParse:nc(e.utcParse)}}let Kd;$D();function $D(){return Kd=Ny({format:Wd,parse:Iy,utcFormat:Xd,utcParse:Ty})}function VD(e){return Ny(py(e))}function YD(e){return arguments.length?Kd=VD(e):Kd}const QD=/^(data:|([A-Za-z]+:)?\/\/)/,ZD=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,qD=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Fy="file://";function WD(e,t){return n=>({options:n||{},sanitize:KD,load:XD,fileAccess:!!t,file:JD(t),http:t5(e)})}async function XD(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t)}async function KD(e,t){t=Ed({},this.options,t);const n=this.fileAccess,r={href:null};let i,a,o;const s=ZD.test(e.replace(qD,""));(e==null||typeof e!="string"||!s)&&Ye("Sanitize failure, invalid URI: "+bu(e));const l=QD.test(e);return(o=t.baseURL)&&!l&&(!e.startsWith("/")&&!o.endsWith("/")&&(e="/"+e),e=o+e),a=(i=e.startsWith(Fy))||t.mode==="file"||t.mode!=="http"&&!l&&n,i?e=e.slice(Fy.length):e.startsWith("//")&&(t.defaultProtocol==="file"?(e=e.slice(2),a=!0):e=(t.defaultProtocol||"http")+":"+e),Object.defineProperty(r,"localFile",{value:!!a}),r.href=e,t.target&&(r.target=t.target+""),t.rel&&(r.rel=t.rel+""),t.context==="image"&&t.crossOrigin&&(r.crossOrigin=t.crossOrigin+""),r}function JD(e){return e?t=>new Promise((n,r)=>{e.readFile(t,(i,a)=>{i?r(i):n(a)})}):e5}async function e5(){Ye("No file system access.")}function t5(e){return e?async function(t,n){const r=Ed({},this.options.http,n),i=n&&n.response,a=await e(t,r);return a.ok?Tt(a[i])?a[i]():a.text():Ye(a.status+""+a.statusText)}:n5}async function n5(){Ye("No HTTP fetch method available.")}const r5=e=>e!=null&&e===e,i5=e=>e==="true"||e==="false"||e===!0||e===!1,a5=e=>!Number.isNaN(Date.parse(e)),By=e=>!Number.isNaN(+e)&&!(e instanceof Date),o5=e=>By(e)&&Number.isInteger(+e),Ly={boolean:R_,integer:Rs,number:Rs,date:P_,string:U_,unknown:hu},Nu=[i5,o5,By,a5],s5=["boolean","integer","number","date"];function Oy(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=Nu.length,i=Nu.map((a,o)=>o+1);for(let a=0,o=0,s,l;a<n;++a)for(l=t?e[a][t]:e[a],s=0;s<r;++s)if(i[s]&&r5(l)&&!Nu[s](l)&&(i[s]=0,++o,o===Nu.length))return"string";return s5[i.reduce((a,o)=>a===0?o:a,0)-1]}function c5(e,t){return t.reduce((n,r)=>(n[r]=Oy(e,r),n),{})}function Ry(e){const t=function(n,r){const i={delimiter:e};return Jd(n,r?Ed(r,i):i)};return t.responseType="text",t}function Jd(e,t){return t.header&&(e=t.header.map(bu).join(t.delimiter)+`
6
+ `+e),Hb(t.delimiter).parse(e+"")}Jd.responseType="text";function l5(e){return typeof Buffer=="function"&&Tt(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function e0(e,t){const n=t&&t.property?fu(t.property):hu;return Ht(e)&&!l5(e)?u5(n(e),t):n(JSON.parse(e))}e0.responseType="json";function u5(e,t){return!en(e)&&L_(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}const f5={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function zy(e,t){let n,r,i,a;return e=e0(e,t),t&&t.feature?(n=q_,i=t.feature):t&&t.mesh?(n=X_,i=t.mesh,a=f5[t.filter]):Ye("Missing TopoJSON feature or mesh parameter."),r=(r=e.objects[i])?n(e,r,a):Ye("Invalid TopoJSON object: "+i),r&&r.features||[r]}zy.responseType="json";const t0={dsv:Jd,csv:Ry(","),tsv:Ry(" "),json:e0,topojson:zy};function Py(e,t){return arguments.length>1?(t0[e]=t,this):Vi(t0,e)?t0[e]:null}function Uy(e,t,n,r){t=t||{};const i=Py(t.type||"json");return i||Ye("Unknown data format type: "+t.type),e=i(e,t),t.parse&&h5(e,t.parse,n,r),Vi(e,"columns")&&delete e.columns,e}function h5(e,t,n,r){if(!e.length)return;const i=YD();n=n||i.timeParse,r=r||i.utcParse;let a=e.columns||Object.keys(e[0]),o,s,l,c,u,f;t==="auto"&&(t=c5(e,a)),a=Object.keys(t);const h=a.map(d=>{const p=t[d];let g,y;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return g=p.split(/:(.+)?/,2),y=g[1],(y[0]==="'"&&y[y.length-1]==="'"||y[0]==='"'&&y[y.length-1]==='"')&&(y=y.slice(1,-1)),(g[0]==="utc"?r:n)(y);if(!Ly[p])throw Error("Illegal format pattern: "+d+":"+p);return Ly[p]});for(l=0,u=e.length,f=a.length;l<u;++l)for(o=e[l],c=0;c<f;++c)s=a[c],o[s]=h[c](o[s])}const rc=WD(typeof fetch<"u"&&fetch,null),jy=1;function n0(){let e=[0,1],t=[0,1],n=1,r=1,i=0,a=0,o=.5,s=0;const c=u=>(u+o-e[0])/n*r+t[0];return c.invert=u=>(u-t[0])/r*n+e[0]-o,c.domain=function(u){if(arguments.length){if(e=wu(u),n=e[1]-e[0],n<jy){n=jy;const f=(e[0]+e[1])/2;e[0]=f-n/2,e[1]=f+n/2}return c}else return e},c.range=function(u){return arguments.length?(t=[...u],r=t[1]-t[0],c):t},c.numberingOffset=function(u){return arguments.length?(s=u,c):s},c.padding=function(u){return arguments.length?(a=u,i=Math.min(1,u),c):i},c.paddingInner=function(u){return arguments.length?(i=Math.min(1,u),c):i},c.paddingOuter=function(u){return arguments.length?(a=u,c):a},c.align=function(u){return arguments.length?(o=Math.max(0,Math.min(1,u)),c):o},c.step=()=>r/n,c.bandwidth=()=>c.step(),c.ticks=u=>{const f=c.align(),h=c.numberingOffset();return js(e[0]-f+h,e[1]-f+h,Math.min(u,Math.ceil(n))).filter(Number.isInteger).map(d=>d-s)},c.tickFormat=(u,f)=>{if(f)throw new Error("Index scale's tickFormat does not support a specifier!");const d=qi(e[0],e[1],Math.min(u,Math.ceil(n)))<1e5?rt(","):rt(".3s");return p=>d(p+s)},c.copy=()=>n0().domain(e).range(t).paddingInner(i).paddingOuter(a).numberingOffset(s),c}function d5(){const e=n0().numberingOffset(1);let t;e.genome=function(r){return arguments.length?(t=r,e):t},e.ticks=r=>{if(!t)return[];const i=e.domain(),a=e.numberingOffset(),[o,s]=[Math.max(i[0],0),Math.min(i[1],t.totalSize-1)].map(u=>t.toChromosome(u)),l=Math.max(1,qi(i[0],i[1],r)),c=[];for(let u=o.index;u<=s.index;u++){const f=t.chromosomes[u],h=Math.max(f.continuousStart+l,i[0]-(i[0]-f.continuousStart)%l),d=Math.min(f.continuousEnd-l/4,i[1]+1);for(let p=h;p<=d;p+=l){const g=p-a;g>=i[0]&&g<i[1]&&c.push(g)}}return c},e.tickFormat=(r,i)=>{if(!t)return;if(i)throw new Error("Locus scale's tickFormat does not support a specifier!");const a=e.domain(),o=a[1]-a[0],s=e.numberingOffset(),c=qi(a[0],a[1],Math.min(r,Math.ceil(o)))<1e6?rt(","):rt(".3s"),u=f=>f-t.toChromosome(f).continuousStart;return f=>c(u(f)+s)};const n=e.copy;return e.copy=()=>n().genome(t),e}function p5(e){return e.type=="locus"}function Gn(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function ei(e,t){switch(arguments.length){case 0:break;case 1:{typeof e=="function"?this.interpolator(e):this.range(e);break}default:{this.domain(e),typeof t=="function"?this.interpolator(t):this.range(t);break}}return this}const r0=Symbol("implicit");function i0(){var e=new Zi,t=[],n=[],r=r0;function i(a){let o=e.get(a);if(o===void 0){if(r!==r0)return r;e.set(a,o=t.push(a)-1)}return n[o%n.length]}return i.domain=function(a){if(!arguments.length)return t.slice();t=[],e=new Zi;for(const o of a)e.has(o)||e.set(o,t.push(o)-1);return i},i.range=function(a){return arguments.length?(n=Array.from(a),i):n.slice()},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return i0(t,n).unknown(r)},Gn.apply(i,arguments),i}function go(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function ic(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function ti(){}var ta=.7,mo=1/ta,bo="\\s*([+-]?\\d+)\\s*",ac="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",$n="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",g5=/^#([0-9a-f]{3,8})$/,m5=new RegExp(`^rgb\\(${bo},${bo},${bo}\\)$`),b5=new RegExp(`^rgb\\(${$n},${$n},${$n}\\)$`),y5=new RegExp(`^rgba\\(${bo},${bo},${bo},${ac}\\)$`),v5=new RegExp(`^rgba\\(${$n},${$n},${$n},${ac}\\)$`),w5=new RegExp(`^hsl\\(${ac},${$n},${$n}\\)$`),x5=new RegExp(`^hsla\\(${ac},${$n},${$n},${ac}\\)$`),Hy={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};go(ti,na,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Gy,formatHex:Gy,formatHex8:A5,formatHsl:E5,formatRgb:$y,toString:$y});function Gy(){return this.rgb().formatHex()}function A5(){return this.rgb().formatHex8()}function E5(){return qy(this).formatHsl()}function $y(){return this.rgb().formatRgb()}function na(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=g5.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?Vy(t):n===3?new lt(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Fu(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Fu(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=m5.exec(e))?new lt(t[1],t[2],t[3],1):(t=b5.exec(e))?new lt(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=y5.exec(e))?Fu(t[1],t[2],t[3],t[4]):(t=v5.exec(e))?Fu(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=w5.exec(e))?Zy(t[1],t[2]/100,t[3]/100,1):(t=x5.exec(e))?Zy(t[1],t[2]/100,t[3]/100,t[4]):Hy.hasOwnProperty(e)?Vy(Hy[e]):e==="transparent"?new lt(NaN,NaN,NaN,0):null}function Vy(e){return new lt(e>>16&255,e>>8&255,e&255,1)}function Fu(e,t,n,r){return r<=0&&(e=t=n=NaN),new lt(e,t,n,r)}function a0(e){return e instanceof ti||(e=na(e)),e?(e=e.rgb(),new lt(e.r,e.g,e.b,e.opacity)):new lt}function Bu(e,t,n,r){return arguments.length===1?a0(e):new lt(e,t,n,r??1)}function lt(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}go(lt,Bu,ic(ti,{brighter(e){return e=e==null?mo:Math.pow(mo,e),new lt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?ta:Math.pow(ta,e),new lt(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new lt(ra(this.r),ra(this.g),ra(this.b),Lu(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:Yy,formatHex:Yy,formatHex8:S5,formatRgb:Qy,toString:Qy}));function Yy(){return`#${ia(this.r)}${ia(this.g)}${ia(this.b)}`}function S5(){return`#${ia(this.r)}${ia(this.g)}${ia(this.b)}${ia((isNaN(this.opacity)?1:this.opacity)*255)}`}function Qy(){const e=Lu(this.opacity);return`${e===1?"rgb(":"rgba("}${ra(this.r)}, ${ra(this.g)}, ${ra(this.b)}${e===1?")":`, ${e})`}`}function Lu(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ra(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ia(e){return e=ra(e),(e<16?"0":"")+e.toString(16)}function Zy(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new _n(e,t,n,r)}function qy(e){if(e instanceof _n)return new _n(e.h,e.s,e.l,e.opacity);if(e instanceof ti||(e=na(e)),!e)return new _n;if(e instanceof _n)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,l=(a+i)/2;return s?(t===a?o=(n-r)/s+(n<r)*6:n===a?o=(r-t)/s+2:o=(t-n)/s+4,s/=l<.5?a+i:2-a-i,o*=60):s=l>0&&l<1?0:o,new _n(o,s,l,e.opacity)}function o0(e,t,n,r){return arguments.length===1?qy(e):new _n(e,t,n,r??1)}function _n(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}go(_n,o0,ic(ti,{brighter(e){return e=e==null?mo:Math.pow(mo,e),new _n(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?ta:Math.pow(ta,e),new _n(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new lt(s0(e>=240?e-240:e+120,i,r),s0(e,i,r),s0(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new _n(Wy(this.h),Ou(this.s),Ou(this.l),Lu(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Lu(this.opacity);return`${e===1?"hsl(":"hsla("}${Wy(this.h)}, ${Ou(this.s)*100}%, ${Ou(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Wy(e){return e=(e||0)%360,e<0?e+360:e}function Ou(e){return Math.max(0,Math.min(1,e||0))}function s0(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const Xy=Math.PI/180,Ky=180/Math.PI,Ru=18,Jy=.96422,e2=1,t2=.82521,n2=4/29,yo=6/29,r2=3*yo*yo,C5=yo*yo*yo;function i2(e){if(e instanceof Vn)return new Vn(e.l,e.a,e.b,e.opacity);if(e instanceof wr)return a2(e);e instanceof lt||(e=a0(e));var t=h0(e.r),n=h0(e.g),r=h0(e.b),i=l0((.2225045*t+.7168786*n+.0606169*r)/e2),a,o;return t===n&&n===r?a=o=i:(a=l0((.4360747*t+.3850649*n+.1430804*r)/Jy),o=l0((.0139322*t+.0971045*n+.7141733*r)/t2)),new Vn(116*i-16,500*(a-i),200*(i-o),e.opacity)}function c0(e,t,n,r){return arguments.length===1?i2(e):new Vn(e,t,n,r??1)}function Vn(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}go(Vn,c0,ic(ti,{brighter(e){return new Vn(this.l+Ru*(e??1),this.a,this.b,this.opacity)},darker(e){return new Vn(this.l-Ru*(e??1),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return t=Jy*u0(t),e=e2*u0(e),n=t2*u0(n),new lt(f0(3.1338561*t-1.6168667*e-.4906146*n),f0(-.9787684*t+1.9161415*e+.033454*n),f0(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function l0(e){return e>C5?Math.pow(e,1/3):e/r2+n2}function u0(e){return e>yo?e*e*e:r2*(e-n2)}function f0(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function h0(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function _5(e){if(e instanceof wr)return new wr(e.h,e.c,e.l,e.opacity);if(e instanceof Vn||(e=i2(e)),e.a===0&&e.b===0)return new wr(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*Ky;return new wr(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function d0(e,t,n,r){return arguments.length===1?_5(e):new wr(e,t,n,r??1)}function wr(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function a2(e){if(isNaN(e.h))return new Vn(e.l,0,0,e.opacity);var t=e.h*Xy;return new Vn(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}go(wr,d0,ic(ti,{brighter(e){return new wr(this.h,this.c,this.l+Ru*(e??1),this.opacity)},darker(e){return new wr(this.h,this.c,this.l-Ru*(e??1),this.opacity)},rgb(){return a2(this).rgb()}}));var o2=-.14861,p0=1.78277,g0=-.29227,zu=-.90649,oc=1.97294,s2=oc*zu,c2=oc*p0,l2=p0*g0-zu*o2;function k5(e){if(e instanceof aa)return new aa(e.h,e.s,e.l,e.opacity);e instanceof lt||(e=a0(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(l2*r+s2*t-c2*n)/(l2+s2-c2),a=r-i,o=(oc*(n-i)-g0*a)/zu,s=Math.sqrt(o*o+a*a)/(oc*i*(1-i)),l=s?Math.atan2(o,a)*Ky-120:NaN;return new aa(l<0?l+360:l,s,i,e.opacity)}function m0(e,t,n,r){return arguments.length===1?k5(e):new aa(e,t,n,r??1)}function aa(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}go(aa,m0,ic(ti,{brighter(e){return e=e==null?mo:Math.pow(mo,e),new aa(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?ta:Math.pow(ta,e),new aa(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*Xy,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new lt(255*(t+n*(o2*r+p0*i)),255*(t+n*(g0*r+zu*i)),255*(t+n*(oc*r)),this.opacity)}}));function u2(e,t,n,r,i){var a=e*e,o=a*e;return((1-3*e+3*a-o)*t+(4-6*a+3*o)*n+(1+3*e+3*a-3*o)*r+o*i)/6}function f2(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],a=e[r+1],o=r>0?e[r-1]:2*i-a,s=r<t-1?e[r+2]:2*a-i;return u2((n-r/t)*t,o,i,a,s)}}function h2(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),i=e[(r+t-1)%t],a=e[r%t],o=e[(r+1)%t],s=e[(r+2)%t];return u2((n-r/t)*t,i,a,o,s)}}const Pu=e=>()=>e;function d2(e,t){return function(n){return e+n*t}}function D5(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Uu(e,t){var n=t-e;return n?d2(e,n>180||n<-180?n-360*Math.round(n/360):n):Pu(isNaN(e)?t:e)}function I5(e){return(e=+e)==1?ut:function(t,n){return n-t?D5(t,n,e):Pu(isNaN(t)?n:t)}}function ut(e,t){var n=t-e;return n?d2(e,n):Pu(isNaN(e)?t:e)}const b0=function e(t){var n=I5(t);function r(i,a){var o=n((i=Bu(i)).r,(a=Bu(a)).r),s=n(i.g,a.g),l=n(i.b,a.b),c=ut(i.opacity,a.opacity);return function(u){return i.r=o(u),i.g=s(u),i.b=l(u),i.opacity=c(u),i+""}}return r.gamma=e,r}(1);function p2(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),a=new Array(n),o,s;for(o=0;o<n;++o)s=Bu(t[o]),r[o]=s.r||0,i[o]=s.g||0,a[o]=s.b||0;return r=e(r),i=e(i),a=e(a),s.opacity=1,function(l){return s.r=r(l),s.g=i(l),s.b=a(l),s+""}}}var T5=p2(f2),M5=p2(h2);function y0(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function g2(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function N5(e,t){return(g2(t)?y0:m2)(e,t)}function m2(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),a=new Array(n),o;for(o=0;o<r;++o)i[o]=ni(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(s){for(o=0;o<r;++o)a[o]=i[o](s);return a}}function b2(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function kn(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function y2(e,t){var n={},r={},i;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(i in t)i in e?n[i]=ni(e[i],t[i]):r[i]=t[i];return function(a){for(i in n)r[i]=n[i](a);return r}}var v0=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,w0=new RegExp(v0.source,"g");function F5(e){return function(){return e}}function B5(e){return function(t){return e(t)+""}}function v2(e,t){var n=v0.lastIndex=w0.lastIndex=0,r,i,a,o=-1,s=[],l=[];for(e=e+"",t=t+"";(r=v0.exec(e))&&(i=w0.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,l.push({i:o,x:kn(r,i)})),n=w0.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?l[0]?B5(l[0].x):F5(t):(t=l.length,function(c){for(var u=0,f;u<t;++u)s[(f=l[u]).i]=f.x(c);return s.join("")})}function ni(e,t){var n=typeof t,r;return t==null||n==="boolean"?Pu(t):(n==="number"?kn:n==="string"?(r=na(t))?(t=r,b0):v2:t instanceof na?b0:t instanceof Date?b2:g2(t)?y0:Array.isArray(t)?m2:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?y2:kn)(e,t)}function L5(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function O5(e,t){var n=Uu(+e,+t);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function sc(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var w2=180/Math.PI,x0={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function x2(e,t,n,r,i,a){var o,s,l;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(l=e*n+t*r)&&(n-=e*l,r-=t*l),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,l/=s),e*r<t*n&&(e=-e,t=-t,l=-l,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*w2,skewX:Math.atan(l)*w2,scaleX:o,scaleY:s}}var ju;function R5(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?x0:x2(t.a,t.b,t.c,t.d,t.e,t.f)}function z5(e){return e==null||(ju||(ju=document.createElementNS("http://www.w3.org/2000/svg","g")),ju.setAttribute("transform",e),!(e=ju.transform.baseVal.consolidate()))?x0:(e=e.matrix,x2(e.a,e.b,e.c,e.d,e.e,e.f))}function A2(e,t,n,r){function i(c){return c.length?c.pop()+" ":""}function a(c,u,f,h,d,p){if(c!==f||u!==h){var g=d.push("translate(",null,t,null,n);p.push({i:g-4,x:kn(c,f)},{i:g-2,x:kn(u,h)})}else(f||h)&&d.push("translate("+f+t+h+n)}function o(c,u,f,h){c!==u?(c-u>180?u+=360:u-c>180&&(c+=360),h.push({i:f.push(i(f)+"rotate(",null,r)-2,x:kn(c,u)})):u&&f.push(i(f)+"rotate("+u+r)}function s(c,u,f,h){c!==u?h.push({i:f.push(i(f)+"skewX(",null,r)-2,x:kn(c,u)}):u&&f.push(i(f)+"skewX("+u+r)}function l(c,u,f,h,d,p){if(c!==f||u!==h){var g=d.push(i(d)+"scale(",null,",",null,")");p.push({i:g-4,x:kn(c,f)},{i:g-2,x:kn(u,h)})}else(f!==1||h!==1)&&d.push(i(d)+"scale("+f+","+h+")")}return function(c,u){var f=[],h=[];return c=e(c),u=e(u),a(c.translateX,c.translateY,u.translateX,u.translateY,f,h),o(c.rotate,u.rotate,f,h),s(c.skewX,u.skewX,f,h),l(c.scaleX,c.scaleY,u.scaleX,u.scaleY,f,h),c=u=null,function(d){for(var p=-1,g=h.length,y;++p<g;)f[(y=h[p]).i]=y.x(d);return f.join("")}}}var P5=A2(R5,"px, ","px)","deg)"),U5=A2(z5,", ",")",")"),j5=1e-12;function E2(e){return((e=Math.exp(e))+1/e)/2}function H5(e){return((e=Math.exp(e))-1/e)/2}function G5(e){return((e=Math.exp(2*e))-1)/(e+1)}const S2=function e(t,n,r){function i(a,o){var s=a[0],l=a[1],c=a[2],u=o[0],f=o[1],h=o[2],d=u-s,p=f-l,g=d*d+p*p,y,v;if(g<j5)v=Math.log(h/c)/t,y=function(A){return[s+A*d,l+A*p,c*Math.exp(t*A*v)]};else{var S=Math.sqrt(g),k=(h*h-c*c+r*g)/(2*c*n*S),C=(h*h-c*c-r*g)/(2*h*n*S),E=Math.log(Math.sqrt(k*k+1)-k),w=Math.log(Math.sqrt(C*C+1)-C);v=(w-E)/t,y=function(A){var T=A*v,D=E2(E),M=c/(n*S)*(D*G5(t*T+E)-H5(E));return[s+M*d,l+M*p,c*D/E2(t*T+E)]}}return y.duration=v*1e3*t/Math.SQRT2,y}return i.rho=function(a){var o=Math.max(.001,+a),s=o*o,l=s*s;return e(o,s,l)},i}(Math.SQRT2,2,4);function C2(e){return function(t,n){var r=e((t=o0(t)).h,(n=o0(n)).h),i=ut(t.s,n.s),a=ut(t.l,n.l),o=ut(t.opacity,n.opacity);return function(s){return t.h=r(s),t.s=i(s),t.l=a(s),t.opacity=o(s),t+""}}}const $5=C2(Uu);var V5=C2(ut);function Y5(e,t){var n=ut((e=c0(e)).l,(t=c0(t)).l),r=ut(e.a,t.a),i=ut(e.b,t.b),a=ut(e.opacity,t.opacity);return function(o){return e.l=n(o),e.a=r(o),e.b=i(o),e.opacity=a(o),e+""}}function _2(e){return function(t,n){var r=e((t=d0(t)).h,(n=d0(n)).h),i=ut(t.c,n.c),a=ut(t.l,n.l),o=ut(t.opacity,n.opacity);return function(s){return t.h=r(s),t.c=i(s),t.l=a(s),t.opacity=o(s),t+""}}}const Q5=_2(Uu);var Z5=_2(ut);function k2(e){return function t(n){n=+n;function r(i,a){var o=e((i=m0(i)).h,(a=m0(a)).h),s=ut(i.s,a.s),l=ut(i.l,a.l),c=ut(i.opacity,a.opacity);return function(u){return i.h=o(u),i.s=s(u),i.l=l(Math.pow(u,n)),i.opacity=c(u),i+""}}return r.gamma=t,r}(1)}const q5=k2(Uu);var W5=k2(ut);function A0(e,t){t===void 0&&(t=e,e=ni);for(var n=0,r=t.length-1,i=t[0],a=new Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(o){var s=Math.max(0,Math.min(r-1,Math.floor(o*=r)));return a[s](o-s)}}function X5(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const K5=Object.freeze(Object.defineProperty({__proto__:null,interpolate:ni,interpolateArray:N5,interpolateBasis:f2,interpolateBasisClosed:h2,interpolateCubehelix:q5,interpolateCubehelixLong:W5,interpolateDate:b2,interpolateDiscrete:L5,interpolateHcl:Q5,interpolateHclLong:Z5,interpolateHsl:$5,interpolateHslLong:V5,interpolateHue:O5,interpolateLab:Y5,interpolateNumber:kn,interpolateNumberArray:y0,interpolateObject:y2,interpolateRgb:b0,interpolateRgbBasis:T5,interpolateRgbBasisClosed:M5,interpolateRound:sc,interpolateString:v2,interpolateTransformCss:P5,interpolateTransformSvg:U5,interpolateZoom:S2,piecewise:A0,quantize:X5},Symbol.toStringTag,{value:"Module"}));function J5(e){return function(){return e}}function E0(e){return+e}var D2=[0,1];function Nt(e){return e}function S0(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:J5(isNaN(t)?NaN:.5)}function eI(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function tI(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=S0(i,r),a=n(o,a)):(r=S0(r,i),a=n(a,o)),function(s){return a(r(s))}}function nI(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),a=new Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)i[o]=S0(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(s){var l=Qi(e,s,1,r)-1;return a[l](i[l](s))}}function cc(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Hu(){var e=D2,t=D2,n=ni,r,i,a,o=Nt,s,l,c;function u(){var h=Math.min(e.length,t.length);return o!==Nt&&(o=eI(e[0],e[h-1])),s=h>2?nI:tI,l=c=null,f}function f(h){return h==null||isNaN(h=+h)?a:(l||(l=s(e.map(r),t,n)))(r(o(h)))}return f.invert=function(h){return o(i((c||(c=s(t,e.map(r),kn)))(h)))},f.domain=function(h){return arguments.length?(e=Array.from(h,E0),u()):e.slice()},f.range=function(h){return arguments.length?(t=Array.from(h),u()):t.slice()},f.rangeRound=function(h){return t=Array.from(h),n=sc,u()},f.clamp=function(h){return arguments.length?(o=h?!0:Nt,u()):o!==Nt},f.interpolate=function(h){return arguments.length?(n=h,u()):n},f.unknown=function(h){return arguments.length?(a=h,f):a},function(h,d){return r=h,i=d,u()}}function I2(){return Hu()(Nt,Nt)}function T2(e,t,n,r){var i=qi(e,t,n),a;switch(r=Wr(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=ty(i,o))&&(r.precision=a),Ld(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=ny(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=ey(i))&&(r.precision=a-(r.type==="%")*2);break}}return rt(r)}function oa(e){var t=e.domain;return e.ticks=function(n){var r=t();return js(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return T2(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],l,c,u=10;for(s<o&&(c=o,o=s,s=c,c=i,i=a,a=c);u-- >0;){if(c=Hs(o,s,n),c===l)return r[i]=o,r[a]=s,t(r);if(c>0)o=Math.floor(o/c)*c,s=Math.ceil(s/c)*c;else if(c<0)o=Math.ceil(o*c)/c,s=Math.floor(s*c)/c;else break;l=c}return e},e}function Gu(){var e=I2();return e.copy=function(){return cc(e,Gu())},Gn.apply(e,arguments),oa(e)}function M2(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,E0),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return M2(e).unknown(t)},e=arguments.length?Array.from(e,E0):[0,1],oa(n)}function N2(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return a<i&&(o=n,n=r,r=o,o=i,i=a,a=o),e[n]=t.floor(i),e[r]=t.ceil(a),e}function F2(e){return Math.log(e)}function B2(e){return Math.exp(e)}function rI(e){return-Math.log(-e)}function iI(e){return-Math.exp(-e)}function aI(e){return isFinite(e)?+("1e"+e):e<0?0:e}function oI(e){return e===10?aI:e===Math.E?Math.exp:t=>Math.pow(e,t)}function sI(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function L2(e){return(t,n)=>-e(-t,n)}function C0(e){const t=e(F2,B2),n=t.domain;let r=10,i,a;function o(){return i=sI(r),a=oI(r),n()[0]<0?(i=L2(i),a=L2(a),e(rI,iI)):e(F2,B2),t}return t.base=function(s){return arguments.length?(r=+s,o()):r},t.domain=function(s){return arguments.length?(n(s),o()):n()},t.ticks=s=>{const l=n();let c=l[0],u=l[l.length-1];const f=u<c;f&&([c,u]=[u,c]);let h=i(c),d=i(u),p,g;const y=s==null?10:+s;let v=[];if(!(r%1)&&d-h<y){if(h=Math.floor(h),d=Math.ceil(d),c>0){for(;h<=d;++h)for(p=1;p<r;++p)if(g=h<0?p/a(-h):p*a(h),!(g<c)){if(g>u)break;v.push(g)}}else for(;h<=d;++h)for(p=r-1;p>=1;--p)if(g=h>0?p/a(-h):p*a(h),!(g<c)){if(g>u)break;v.push(g)}v.length*2<y&&(v=js(c,u,y))}else v=js(h,d,Math.min(d-h,y)).map(a);return f?v.reverse():v},t.tickFormat=(s,l)=>{if(s==null&&(s=10),l==null&&(l=r===10?"s":","),typeof l!="function"&&(!(r%1)&&(l=Wr(l)).precision==null&&(l.trim=!0),l=rt(l)),s===1/0)return l;const c=Math.max(1,r*s/t.ticks().length);return u=>{let f=u/a(Math.round(i(u)));return f*r<r-.5&&(f*=r),f<=c?l(u):""}},t.nice=()=>n(N2(n(),{floor:s=>a(Math.floor(i(s))),ceil:s=>a(Math.ceil(i(s)))})),t}function _0(){const e=C0(Hu()).domain([1,10]);return e.copy=()=>cc(e,_0()).base(e.base()),Gn.apply(e,arguments),e}function O2(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function R2(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function k0(e){var t=1,n=e(O2(t),R2(t));return n.constant=function(r){return arguments.length?e(O2(t=+r),R2(t)):t},oa(n)}function z2(){var e=k0(Hu());return e.copy=function(){return cc(e,z2()).constant(e.constant())},Gn.apply(e,arguments)}function P2(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function cI(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function lI(e){return e<0?-e*e:e*e}function D0(e){var t=e(Nt,Nt),n=1;function r(){return n===1?e(Nt,Nt):n===.5?e(cI,lI):e(P2(n),P2(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},oa(t)}function I0(){var e=D0(Hu());return e.copy=function(){return cc(e,I0()).exponent(e.exponent())},Gn.apply(e,arguments),e}function uI(){return I0.apply(null,arguments).exponent(.5)}function U2(){var e=[],t=[],n=[],r;function i(){var o=0,s=Math.max(1,t.length);for(n=new Array(s-1);++o<s;)n[o-1]=Fd(e,o/s);return a}function a(o){return o==null||isNaN(o=+o)?r:t[Qi(n,o)]}return a.invertExtent=function(o){var s=t.indexOf(o);return s<0?[NaN,NaN]:[s>0?n[s-1]:e[0],s<n.length?n[s]:e[e.length-1]]},a.domain=function(o){if(!arguments.length)return e.slice();e=[];for(let s of o)s!=null&&!isNaN(s=+s)&&e.push(s);return e.sort(Yi),i()},a.range=function(o){return arguments.length?(t=Array.from(o),i()):t.slice()},a.unknown=function(o){return arguments.length?(r=o,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return U2().domain(e).range(t).unknown(r)},Gn.apply(a,arguments)}function j2(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(l){return l!=null&&l<=l?i[Qi(r,l,0,n)]:a}function s(){var l=-1;for(r=new Array(n);++l<n;)r[l]=((l+1)*t-(l-n)*e)/(n+1);return o}return o.domain=function(l){return arguments.length?([e,t]=l,e=+e,t=+t,s()):[e,t]},o.range=function(l){return arguments.length?(n=(i=Array.from(l)).length-1,s()):i.slice()},o.invertExtent=function(l){var c=i.indexOf(l);return c<0?[NaN,NaN]:c<1?[e,r[0]]:c>=n?[r[n-1],t]:[r[c-1],r[c]]},o.unknown=function(l){return arguments.length&&(a=l),o},o.thresholds=function(){return r.slice()},o.copy=function(){return j2().domain([e,t]).range(i).unknown(a)},Gn.apply(oa(o),arguments)}function H2(){var e=[.5],t=[0,1],n,r=1;function i(a){return a!=null&&a<=a?t[Qi(e,a,0,r)]:n}return i.domain=function(a){return arguments.length?(e=Array.from(a),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(a){return arguments.length?(t=Array.from(a),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(a){var o=t.indexOf(a);return[e[o-1],e[o]]},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return H2().domain(e).range(t).unknown(n)},Gn.apply(i,arguments)}function fI(e){return new Date(e)}function hI(e){return e instanceof Date?+e:+new Date(+e)}function T0(e,t,n,r,i,a,o,s,l,c){var u=I2(),f=u.invert,h=u.domain,d=c(".%L"),p=c(":%S"),g=c("%I:%M"),y=c("%I %p"),v=c("%a %d"),S=c("%b %d"),k=c("%B"),C=c("%Y");function E(w){return(l(w)<w?d:s(w)<w?p:o(w)<w?g:a(w)<w?y:r(w)<w?i(w)<w?v:S:n(w)<w?k:C)(w)}return u.invert=function(w){return new Date(f(w))},u.domain=function(w){return arguments.length?h(Array.from(w,hI)):h().map(fI)},u.ticks=function(w){var A=h();return e(A[0],A[A.length-1],w??10)},u.tickFormat=function(w,A){return A==null?E:c(A)},u.nice=function(w){var A=h();return(!w||typeof w.range!="function")&&(w=t(A[0],A[A.length-1],w??10)),w?h(N2(A,w)):u},u.copy=function(){return cc(u,T0(e,t,n,r,i,a,o,s,l,c))},u}function dI(){return Gn.apply(T0(Bk,Lk,Kr,ku,Gs,Xi,Hd,jd,Xr,Wd).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function pI(){return Gn.apply(T0(Nk,Fk,Jr,Iu,$s,Ji,Vd,$d,Xr,Xd).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function $u(){var e=0,t=1,n,r,i,a,o=Nt,s=!1,l;function c(f){return f==null||isNaN(f=+f)?l:o(i===0?.5:(f=(a(f)-n)*i,s?Math.max(0,Math.min(1,f)):f))}c.domain=function(f){return arguments.length?([e,t]=f,n=a(e=+e),r=a(t=+t),i=n===r?0:1/(r-n),c):[e,t]},c.clamp=function(f){return arguments.length?(s=!!f,c):s},c.interpolator=function(f){return arguments.length?(o=f,c):o};function u(f){return function(h){var d,p;return arguments.length?([d,p]=h,o=f(d,p),c):[o(0),o(1)]}}return c.range=u(ni),c.rangeRound=u(sc),c.unknown=function(f){return arguments.length?(l=f,c):l},function(f){return a=f,n=f(e),r=f(t),i=n===r?0:1/(r-n),c}}function ri(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function M0(){var e=oa($u()(Nt));return e.copy=function(){return ri(e,M0())},ei.apply(e,arguments)}function G2(){var e=C0($u()).domain([1,10]);return e.copy=function(){return ri(e,G2()).base(e.base())},ei.apply(e,arguments)}function $2(){var e=k0($u());return e.copy=function(){return ri(e,$2()).constant(e.constant())},ei.apply(e,arguments)}function N0(){var e=D0($u());return e.copy=function(){return ri(e,N0()).exponent(e.exponent())},ei.apply(e,arguments)}function gI(){return N0.apply(null,arguments).exponent(.5)}function Vu(){var e=0,t=.5,n=1,r=1,i,a,o,s,l,c=Nt,u,f=!1,h;function d(g){return isNaN(g=+g)?h:(g=.5+((g=+u(g))-a)*(r*g<r*a?s:l),c(f?Math.max(0,Math.min(1,g)):g))}d.domain=function(g){return arguments.length?([e,t,n]=g,i=u(e=+e),a=u(t=+t),o=u(n=+n),s=i===a?0:.5/(a-i),l=a===o?0:.5/(o-a),r=a<i?-1:1,d):[e,t,n]},d.clamp=function(g){return arguments.length?(f=!!g,d):f},d.interpolator=function(g){return arguments.length?(c=g,d):c};function p(g){return function(y){var v,S,k;return arguments.length?([v,S,k]=y,c=A0(g,[v,S,k]),d):[c(0),c(.5),c(1)]}}return d.range=p(ni),d.rangeRound=p(sc),d.unknown=function(g){return arguments.length?(h=g,d):h},function(g){return u=g,i=g(e),a=g(t),o=g(n),s=i===a?0:.5/(a-i),l=a===o?0:.5/(o-a),r=a<i?-1:1,d}}function V2(){var e=oa(Vu()(Nt));return e.copy=function(){return ri(e,V2())},ei.apply(e,arguments)}function Y2(){var e=C0(Vu()).domain([.1,1,10]);return e.copy=function(){return ri(e,Y2()).base(e.base())},ei.apply(e,arguments)}function Q2(){var e=k0(Vu());return e.copy=function(){return ri(e,Q2()).constant(e.constant())},ei.apply(e,arguments)}function F0(){var e=D0(Vu());return e.copy=function(){return ri(e,F0()).exponent(e.exponent())},ei.apply(e,arguments)}function mI(){return F0.apply(null,arguments).exponent(.5)}function B0(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const bI="identity",vo="linear",ii="log",lc="pow",uc="sqrt",Yu="symlog",Z2="time",q2="utc",Yn="sequential",wo="diverging",L0="quantile",W2="quantize",X2="threshold",O0="ordinal",R0="point",K2="band",z0="bin-ordinal",it="continuous",fc="discrete",hc="discretizing",nn="interpolating",J2="temporal";function yI(e){return function(t){let n=t[0],r=t[1],i;return r<n&&(i=n,n=r,r=i),[e.invert(n),e.invert(r)]}}function vI(e){return function(t){const n=e.range();let r=t[0],i=t[1],a=-1,o,s,l,c;for(i<r&&(s=r,r=i,i=s),l=0,c=n.length;l<c;++l)n[l]>=r&&n[l]<=i&&(a<0&&(a=l),o=l);if(!(a<0))return r=e.invertExtent(n[a]),i=e.invertExtent(n[o]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function P0(){const e=i0().unknown(void 0),t=e.domain,n=e.range;let r=[0,1],i,a,o=!1,s=0,l=0,c=.5;delete e.unknown;function u(){const f=t().length,h=r[1]<r[0],d=r[1-h],p=B0(f,s,l);let g=r[h-0];i=(d-g)/(p||1),o&&(i=Math.floor(i)),g+=(d-g-i*(f-s))*c,a=i*(1-s),o&&(g=Math.round(g),a=Math.round(a));const y=qr(f).map(v=>g+i*v);return n(h?y.reverse():y)}return e.domain=function(f){return arguments.length?(t(f),u()):t()},e.range=function(f){return arguments.length?(r=[+f[0],+f[1]],u()):r.slice()},e.rangeRound=function(f){return r=[+f[0],+f[1]],o=!0,u()},e.bandwidth=function(){return a},e.step=function(){return i},e.round=function(f){return arguments.length?(o=!!f,u()):o},e.padding=function(f){return arguments.length?(l=Math.max(0,Math.min(1,f)),s=l,u()):s},e.paddingInner=function(f){return arguments.length?(s=Math.max(0,Math.min(1,f)),u()):s},e.paddingOuter=function(f){return arguments.length?(l=Math.max(0,Math.min(1,f)),u()):l},e.align=function(f){return arguments.length?(c=Math.max(0,Math.min(1,f)),u()):c},e.invertRange=function(f){if(f[0]==null||f[1]==null)return;const h=r[1]<r[0],d=h?n().reverse():n(),p=d.length-1;let g=+f[0],y=+f[1],v,S,k;if(!(g!==g||y!==y)&&(y<g&&(k=g,g=y,y=k),!(y<d[0]||g>r[1-h])))return v=Math.max(0,kd(d,g)-1),S=g===y?v:kd(d,y)-1,g-d[v]>a+1e-10&&++v,h&&(k=v,v=p-S,S=p-k),v>S?void 0:t().slice(v,S+1)},e.invert=function(f){const h=e.invertRange([f,f]);return h&&h[0]},e.copy=function(){return P0().domain(t()).range(r).round(o).paddingInner(s).paddingOuter(l).align(c)},u()}function ev(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return ev(t())},e}function wI(){return ev(P0().paddingInner(1))}var xI=Array.prototype.map;function AI(e){return xI.call(e,Rs)}const EI=Array.prototype.slice;function tv(){let e=[],t=[];function n(r){return r==null||r!==r?void 0:t[(Qi(e,r)-1)%t.length]}return n.domain=function(r){return arguments.length?(e=AI(r),n):e.slice()},n.range=function(r){return arguments.length?(t=EI.call(r),n):t.slice()},n.tickFormat=function(r,i){return T2(e[0],Cn(e),r??10,i)},n.copy=function(){return tv().domain(n.domain()).range(n.range())},n}const Qu={};function SI(e,t,n){const r=function(){const a=t();return a.invertRange||(a.invertRange=a.invert?yI(a):a.invertExtent?vI(a):void 0),a.type=e,a};return r.metadata=yu(Ad(n)),r}function xe(e,t,n){return arguments.length>1?(Qu[e]=SI(e,t,n),this):CI(e)?Qu[e]:void 0}xe(bI,M2),xe(vo,Gu,it),xe(ii,_0,[it,ii]),xe(lc,I0,it),xe(uc,uI,it),xe(Yu,z2,it),xe(Z2,dI,[it,J2]),xe(q2,pI,[it,J2]),xe(Yn,M0,[it,nn]),xe("".concat(Yn,"-").concat(vo),M0,[it,nn]),xe("".concat(Yn,"-").concat(ii),G2,[it,nn,ii]),xe("".concat(Yn,"-").concat(lc),N0,[it,nn]),xe("".concat(Yn,"-").concat(uc),gI,[it,nn]),xe("".concat(Yn,"-").concat(Yu),$2,[it,nn]),xe("".concat(wo,"-").concat(vo),V2,[it,nn]),xe("".concat(wo,"-").concat(ii),Y2,[it,nn,ii]),xe("".concat(wo,"-").concat(lc),F0,[it,nn]),xe("".concat(wo,"-").concat(uc),mI,[it,nn]),xe("".concat(wo,"-").concat(Yu),Q2,[it,nn]),xe(L0,U2,[hc,L0]),xe(W2,j2,hc),xe(X2,H2,hc),xe(z0,tv,[fc,hc]),xe(O0,i0,fc),xe(K2,P0,fc),xe(R0,wI,fc);function CI(e){return Vi(Qu,e)}function dc(e,t){const n=Qu[e];return n&&n.metadata[t]}function Ft(e){return dc(e,it)}function ai(e){return dc(e,fc)}function sa(e){return dc(e,hc)}function nv(e){return dc(e,ii)}function Zu(e){return dc(e,nn)}function _I(e,t){const n=t[0],r=Cn(t)-n;return function(i){return e(n+i*r)}}function qu(e,t,n){return A0(rv(t||"rgb",n),e)}function kI(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}function rv(e,t){const n=K5[DI(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function DI(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const II={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"},TI={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 iv(e){const t=e.length/6|0,n=new Array(t);for(let r=0;r<t;)n[r]="#"+e.slice(r*6,++r*6);return n}function av(e,t){for(const n in e)U0(n,t(e[n]))}const ov={};av(TI,iv),av(II,e=>qu(iv(e)));function U0(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(ov[e]=t,this):ov[e]}const QZ="";function sv(e,t){var n=e.getBoundingClientRect();return[t.clientX-n.left-e.clientLeft,t.clientY-n.top-e.clientTop]}/**
7
7
  * @license
8
8
  * Copyright 2017 Google LLC
9
9
  * SPDX-License-Identifier: BSD-3-Clause
10
- */var ju;const ja=window,Nr=ja.trustedTypes,vp=Nr?Nr.createPolicy("lit-html",{createHTML:t=>t}):void 0,Nt=`lit$${(Math.random()+"").slice(9)}$`,Uu="?"+Nt,y4=`<${Uu}>`,Lr=document,Qi=(t="")=>Lr.createComment(t),Vi=t=>t===null||typeof t!="object"&&typeof t!="function",bp=Array.isArray,Ap=t=>bp(t)||typeof(t==null?void 0:t[Symbol.iterator])=="function",Yi=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,xp=/-->/g,wp=/>/g,Hn=RegExp(`>|[
10
+ */var j0;const Wu=window,xo=Wu.trustedTypes,cv=xo?xo.createPolicy("lit-html",{createHTML:e=>e}):void 0,xr=`lit$${(Math.random()+"").slice(9)}$`,H0="?"+xr,MI=`<${H0}>`,Ao=document,pc=(e="")=>Ao.createComment(e),gc=e=>e===null||typeof e!="object"&&typeof e!="function",lv=Array.isArray,uv=e=>lv(e)||typeof(e==null?void 0:e[Symbol.iterator])=="function",mc=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,fv=/-->/g,hv=/>/g,ca=RegExp(`>|[
11
11
  \f\r](?:([^\\s"'>=/]+)([
12
12
  \f\r]*=[
13
13
  \f\r]*(?:[^
14
- \f\r"'\`<>=]|("|')|))|$)`,"g"),Cp=/'/g,Sp=/"/g,Ep=/^(?:script|style|textarea|title)$/i,v4=t=>(e,...n)=>({_$litType$:t,strings:e,values:n}),E=v4(1),Ae=Symbol.for("lit-noChange"),z=Symbol.for("lit-nothing"),Dp=new WeakMap,Br=Lr.createTreeWalker(Lr,129,null,!1),Mp=(t,e)=>{const n=t.length-1,r=[];let i,o=e===2?"<svg>":"",a=Yi;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===Yi?l[1]==="!--"?a=xp:l[1]!==void 0?a=wp:l[2]!==void 0?(Ep.test(l[2])&&(i=RegExp("</"+l[2],"g")),a=Hn):l[3]!==void 0&&(a=Hn):a===Hn?l[0]===">"?(a=i??Yi,d=-1):l[1]===void 0?d=-2:(d=a.lastIndex-l[2].length,f=l[1],a=l[3]===void 0?Hn:l[3]==='"'?Sp:Cp):a===Sp||a===Cp?a=Hn:a===xp||a===wp?a=Yi:(a=Hn,i=void 0);const p=a===Hn&&t[c+1].startsWith("/>")?" ":"";o+=a===Yi?u+y4:d>=0?(r.push(f),u.slice(0,d)+"$lit$"+u.slice(d)+Nt+p):u+Nt+(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[vp!==void 0?vp.createHTML(s):s,r]};let Gu=class Xb{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]=Mp(e,n);if(this.el=Xb.createElement(u,r),Br.currentNode=this.el.content,n===2){const l=this.el.content,d=l.firstChild;d.remove(),l.append(...d.childNodes)}for(;(i=Br.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(Nt)){const h=f[a++];if(l.push(d),h!==void 0){const p=i.getAttribute(h.toLowerCase()+"$lit$").split(Nt),m=/([.?@])?(.*)/.exec(h);c.push({type:1,index:o,name:m[2],strings:p,ctor:m[1]==="."?Ip:m[1]==="?"?kp:m[1]==="@"?Np:_i})}else c.push({type:6,index:o})}for(const d of l)i.removeAttribute(d)}if(Ep.test(i.tagName)){const l=i.textContent.split(Nt),d=l.length-1;if(d>0){i.textContent=Nr?Nr.emptyScript:"";for(let h=0;h<d;h++)i.append(l[h],Qi()),Br.nextNode(),c.push({type:2,index:++o});i.append(l[d],Qi())}}}else if(i.nodeType===8)if(i.data===Uu)c.push({type:2,index:o});else{let l=-1;for(;(l=i.data.indexOf(Nt,l+1))!==-1;)c.push({type:7,index:o}),l+=Nt.length-1}o++}}static createElement(e,n){const r=Lr.createElement("template");return r.innerHTML=e,r}};function Qn(t,e,n=t,r){var i,o,a,s;if(e===Ae)return e;let c=r!==void 0?(i=n._$Co)===null||i===void 0?void 0:i[r]:n._$Cl;const u=Vi(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)._$Co)!==null&&a!==void 0?a:s._$Co=[])[r]=c:n._$Cl=c),c!==void 0&&(e=Qn(t,c._$AS(t,e.values),c,r)),e}class Tp{constructor(e,n){this.u=[],this._$AN=void 0,this._$AD=e,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}v(e){var n;const{el:{content:r},parts:i}=this._$AD,o=((n=e==null?void 0:e.creationScope)!==null&&n!==void 0?n:Lr).importNode(r,!0);Br.currentNode=o;let a=Br.nextNode(),s=0,c=0,u=i[0];for(;u!==void 0;){if(s===u.index){let f;u.type===2?f=new Ua(a,a.nextSibling,this,e):u.type===1?f=new u.ctor(a,u.name,u.strings,this,e):u.type===6&&(f=new Lp(a,this,e)),this.u.push(f),u=i[++c]}s!==(u==null?void 0:u.index)&&(a=Br.nextNode(),s++)}return o}p(e){let n=0;for(const r of this.u)r!==void 0&&(r.strings!==void 0?(r._$AI(e,r,n),n+=r.strings.length-2):r._$AI(e[n])),n++}}let Ua=class Zb{constructor(e,n,r,i){var o;this.type=2,this._$AH=z,this._$AN=void 0,this._$AA=e,this._$AB=n,this._$AM=r,this.options=i,this._$Cm=(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._$Cm}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=Qn(this,e,n),Vi(e)?e===z||e==null||e===""?(this._$AH!==z&&this._$AR(),this._$AH=z):e!==this._$AH&&e!==Ae&&this.g(e):e._$litType$!==void 0?this.$(e):e.nodeType!==void 0?this.T(e):Ap(e)?this.k(e):this.g(e)}O(e,n=this._$AB){return this._$AA.parentNode.insertBefore(e,n)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}g(e){this._$AH!==z&&Vi(this._$AH)?this._$AA.nextSibling.data=e:this.T(Lr.createTextNode(e)),this._$AH=e}$(e){var n;const{values:r,_$litType$:i}=e,o=typeof i=="number"?this._$AC(e):(i.el===void 0&&(i.el=Gu.createElement(i.h,this.options)),i);if(((n=this._$AH)===null||n===void 0?void 0:n._$AD)===o)this._$AH.p(r);else{const a=new Tp(o,this),s=a.v(this.options);a.p(r),this.T(s),this._$AH=a}}_$AC(e){let n=Dp.get(e.strings);return n===void 0&&Dp.set(e.strings,n=new Gu(e)),n}k(e){bp(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 Zb(this.O(Qi()),this.O(Qi()),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._$Cm=e,(n=this._$AP)===null||n===void 0||n.call(this,e))}},_i=class{constructor(e,n,r,i,o){this.type=1,this._$AH=z,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=z}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=Qn(this,e,n,0),a=!Vi(e)||e!==this._$AH&&e!==Ae,a&&(this._$AH=e);else{const s=e;let c,u;for(e=o[0],c=0;c<o.length-1;c++)u=Qn(this,s[r+c],n,c),u===Ae&&(u=this._$AH[c]),a||(a=!Vi(u)||u!==this._$AH[c]),u===z?e=z:e!==z&&(e+=(u??"")+o[c+1]),this._$AH[c]=u}a&&!i&&this.j(e)}j(e){e===z?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}},Ip=class extends _i{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===z?void 0:e}};const b4=Nr?Nr.emptyScript:"";let kp=class extends _i{constructor(){super(...arguments),this.type=4}j(e){e&&e!==z?this.element.setAttribute(this.name,b4):this.element.removeAttribute(this.name)}},Np=class extends _i{constructor(e,n,r,i,o){super(e,n,r,i,o),this.type=5}_$AI(e,n=this){var r;if((e=(r=Qn(this,e,n,0))!==null&&r!==void 0?r:z)===Ae)return;const i=this._$AH,o=e===z&&i!==z||e.capture!==i.capture||e.once!==i.once||e.passive!==i.passive,a=e!==z&&(i===z||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)}},Lp=class{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){Qn(this,e)}};const A4={P:"$lit$",A:Nt,M:Uu,C:1,L:Mp,R:Tp,D:Ap,V:Qn,I:Ua,H:_i,N:kp,U:Np,B:Ip,F:Lp},Bp=ja.litHtmlPolyfillSupport;Bp==null||Bp(Gu,Ua),((ju=ja.litHtmlVersions)!==null&&ju!==void 0?ju:ja.litHtmlVersions=[]).push("2.4.0");const Oe=(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 Ua(e.insertBefore(Qi(),s),s,void 0,n??{})}return a._$AI(t),a};function Op(t,e){return t.length==e.length&&t.every((n,r)=>t[r]===e[r])}function qe(t){return Array.isArray(t)?t:typeof t<"u"?[t]:[]}function je(t){return t[t.length-1]}const Vn="gs-suppress-tooltip";class x4{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(){return je(this.enabledStack)??!0}pushEnabledState(e){this.enabledStack.push(e),e||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(e){this.mouseCoords=yp(this.container,e);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&w4(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&&(Oe("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}Oe(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(E`${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 w4(t,e){let n=0;for(let r=0;r<t.length;r++)n+=(t[r]-e[r])**2;return Math.sqrt(n)}const C4="RawCode",S4="Literal",E4="Property",D4="Identifier",M4="ArrayExpression",T4="BinaryExpression",I4="CallExpression",k4="ConditionalExpression",N4="LogicalExpression",L4="MemberExpression",B4="ObjectExpression",O4="UnaryExpression";function ot(t){this.type=t}ot.prototype.visit=function(t){let e,n,r;if(t(this))return 1;for(e=F4(this),n=0,r=e.length;n<r;++n)if(e[n].visit(t))return 1};function F4(t){switch(t.type){case M4:return t.elements;case T4:case N4:return[t.left,t.right];case I4:return[t.callee].concat(t.arguments);case k4:return[t.test,t.consequent,t.alternate];case L4:return[t.object,t.property];case B4:return t.properties;case E4:return[t.key,t.value];case O4:return[t.argument];case D4:case S4:case C4:default:return[]}}var mt,N,S,we,Z,Ga=1,Wi=2,Yn=3,on=4,Ha=5,_n=6,Fe=7,Xi=8,P4=9;mt={},mt[Ga]="Boolean",mt[Wi]="<end>",mt[Yn]="Identifier",mt[on]="Keyword",mt[Ha]="Null",mt[_n]="Numeric",mt[Fe]="Punctuator",mt[Xi]="String",mt[P4]="RegularExpression";var z4="ArrayExpression",R4="BinaryExpression",j4="CallExpression",U4="ConditionalExpression",Fp="Identifier",G4="Literal",H4="LogicalExpression",Q4="MemberExpression",V4="ObjectExpression",Y4="Property",_4="UnaryExpression",be="Unexpected token %0",W4="Unexpected number",X4="Unexpected string",Z4="Unexpected identifier",q4="Unexpected reserved word",K4="Unexpected end of input",Hu="Invalid regular expression",Qu="Invalid regular expression: missing /",Pp="Octal literals are not allowed in strict mode.",J4="Duplicate data property in object literal not allowed in strict mode",xe="ILLEGAL",Zi="Disabled.",$4=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]"),e3=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 Qa(t,e){if(!t)throw new Error("ASSERT: "+e)}function Lt(t){return t>=48&&t<=57}function Vu(t){return"0123456789abcdefABCDEF".indexOf(t)>=0}function qi(t){return"01234567".indexOf(t)>=0}function t3(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 Ki(t){return t===10||t===13||t===8232||t===8233}function Ji(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&$4.test(String.fromCharCode(t))}function Va(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&e3.test(String.fromCharCode(t))}const n3={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 zp(){for(;S<we;){const t=N.charCodeAt(S);if(t3(t)||Ki(t))++S;else break}}function Yu(t){var e,n,r,i=0;for(n=t==="u"?4:2,e=0;e<n;++e)S<we&&Vu(N[S])?(r=N[S++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):V({},be,xe);return String.fromCharCode(i)}function r3(){var t,e,n,r;for(t=N[S],e=0,t==="}"&&V({},be,xe);S<we&&(t=N[S++],!!Vu(t));)e=e*16+"0123456789abcdef".indexOf(t.toLowerCase());return(e>1114111||t!=="}")&&V({},be,xe),e<=65535?String.fromCharCode(e):(n=(e-65536>>10)+55296,r=(e-65536&1023)+56320,String.fromCharCode(n,r))}function Rp(){var t,e;for(t=N.charCodeAt(S++),e=String.fromCharCode(t),t===92&&(N.charCodeAt(S)!==117&&V({},be,xe),++S,t=Yu("u"),(!t||t==="\\"||!Ji(t.charCodeAt(0)))&&V({},be,xe),e=t);S<we&&(t=N.charCodeAt(S),!!Va(t));)++S,e+=String.fromCharCode(t),t===92&&(e=e.substr(0,e.length-1),N.charCodeAt(S)!==117&&V({},be,xe),++S,t=Yu("u"),(!t||t==="\\"||!Va(t.charCodeAt(0)))&&V({},be,xe),e+=t);return e}function i3(){var t,e;for(t=S++;S<we;){if(e=N.charCodeAt(S),e===92)return S=t,Rp();if(Va(e))++S;else break}return N.slice(t,S)}function o3(){var t,e,n;return t=S,e=N.charCodeAt(S)===92?Rp():i3(),e.length===1?n=Yn:n3.hasOwnProperty(e)?n=on:e==="null"?n=Ha:e==="true"||e==="false"?n=Ga:n=Yn,{type:n,value:e,start:t,end:S}}function _u(){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:Fe,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:Fe,value:String.fromCharCode(e)+String.fromCharCode(n),start:t,end:S};case 33:case 61:return S+=2,N.charCodeAt(S)===61&&++S,{type:Fe,value:N.slice(t,S),start:t,end:S}}}if(a=N.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({},be,xe),"<>=!+-*%&|^/".indexOf(r)>=0)return++S,{type:Fe,value:r,start:t,end:S};V({},be,xe)}function a3(t){let e="";for(;S<we&&Vu(N[S]);)e+=N[S++];return e.length===0&&V({},be,xe),Ji(N.charCodeAt(S))&&V({},be,xe),{type:_n,value:parseInt("0x"+e,16),start:t,end:S}}function s3(t){let e="0"+N[S++];for(;S<we&&qi(N[S]);)e+=N[S++];return(Ji(N.charCodeAt(S))||Lt(N.charCodeAt(S)))&&V({},be,xe),{type:_n,value:parseInt(e,8),octal:!0,start:t,end:S}}function jp(){var t,e,n;if(n=N[S],Qa(Lt(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,a3(e);if(qi(n))return s3(e);n&&Lt(n.charCodeAt(0))&&V({},be,xe)}for(;Lt(N.charCodeAt(S));)t+=N[S++];n=N[S]}if(n==="."){for(t+=N[S++];Lt(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++]),Lt(N.charCodeAt(S)))for(;Lt(N.charCodeAt(S));)t+=N[S++];else V({},be,xe);return Ji(N.charCodeAt(S))&&V({},be,xe),{type:_n,value:parseFloat(t),start:e,end:S}}function c3(){var t="",e,n,r,i,o=!1;for(e=N[S],Qa(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||!Ki(r.charCodeAt(0)))switch(r){case"u":case"x":N[S]==="{"?(++S,t+=r3()):t+=Yu(r);break;case"n":t+=`
15
- `;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:qi(r)?(i="01234567".indexOf(r),i!==0&&(o=!0),S<we&&qi(N[S])&&(o=!0,i=i*8+"01234567".indexOf(N[S++]),"0123".indexOf(r)>=0&&S<we&&qi(N[S])&&(i=i*8+"01234567".indexOf(N[S++]))),t+=String.fromCharCode(i)):t+=r;break}else r==="\r"&&N[S]===`
16
- `&&++S;else{if(Ki(r.charCodeAt(0)))break;t+=r}return e!==""&&V({},be,xe),{type:Xi,value:t,octal:o,start:n,end:S}}function u3(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({},Hu)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{V({},Hu)}try{return new RegExp(t,e)}catch{return null}}function l3(){var t,e,n,r,i;for(t=N[S],Qa(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++],Ki(t.charCodeAt(0))&&V({},Qu),e+=t;else if(Ki(t.charCodeAt(0)))V({},Qu);else if(n)t==="]"&&(n=!1);else if(t==="/"){r=!0;break}else t==="["&&(n=!0);return r||V({},Qu),i=e.substr(1,e.length-2),{value:i,literal:e}}function f3(){var t,e,n;for(e="",n="";S<we&&(t=N[S],!!Va(t.charCodeAt(0)));)++S,t==="\\"&&S<we?V({},be,xe):(n+=t,e+=t);return n.search(/[^gimuy]/g)>=0&&V({},Hu,n),{value:n,literal:e}}function d3(){var t,e,n,r;return Z=null,zp(),t=S,e=l3(),n=f3(),r=u3(e.value,n.value),{literal:e.literal+n.literal,value:r,regex:{pattern:e.value,flags:n.value},start:t,end:S}}function h3(t){return t.type===Yn||t.type===on||t.type===Ga||t.type===Ha}function Up(){if(zp(),S>=we)return{type:Wi,start:S,end:S};const t=N.charCodeAt(S);return Ji(t)?o3():t===40||t===41||t===59?_u():t===39||t===34?c3():t===46?Lt(N.charCodeAt(S+1))?jp():_u():Lt(t)?jp():_u()}function Pe(){const t=Z;return S=t.end,Z=Up(),S=t.end,t}function Gp(){const t=S;Z=Up(),S=t}function p3(t){const e=new ot(z4);return e.elements=t,e}function Hp(t,e,n){const r=new ot(t==="||"||t==="&&"?H4:R4);return r.operator=t,r.left=e,r.right=n,r}function m3(t,e){const n=new ot(j4);return n.callee=t,n.arguments=e,n}function g3(t,e,n){const r=new ot(U4);return r.test=t,r.consequent=e,r.alternate=n,r}function Wu(t){const e=new ot(Fp);return e.name=t,e}function $i(t){const e=new ot(G4);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 Qp(t,e,n){const r=new ot(Q4);return r.computed=t==="[",r.object=e,r.property=n,r.computed||(n.member=!0),r}function y3(t){const e=new ot(V4);return e.properties=t,e}function Vp(t,e,n){const r=new ot(Y4);return r.key=e,r.value=n,r.kind=t,r}function v3(t,e){const n=new ot(_4);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)=>(Qa(a<r.length,"Message reference must be in range"),r[a]));throw n=new Error(i),n.index=S,n.description=i,n}function Ya(t){t.type===Wi&&V(t,K4),t.type===_n&&V(t,W4),t.type===Xi&&V(t,X4),t.type===Yn&&V(t,Z4),t.type===on&&V(t,q4),V(t,be,t.value)}function Ce(t){const e=Pe();(e.type!==Fe||e.value!==t)&&Ya(e)}function te(t){return Z.type===Fe&&Z.value===t}function Xu(t){return Z.type===on&&Z.value===t}function b3(){const t=[];for(S=Z.start,Ce("[");!te("]");)te(",")?(Pe(),t.push(null)):(t.push(Wn()),te("]")||Ce(","));return Pe(),p3(t)}function Yp(){S=Z.start;const t=Pe();return t.type===Xi||t.type===_n?(t.octal&&V(t,Pp),$i(t)):Wu(t.value)}function A3(){var t,e,n,r;if(S=Z.start,t=Z,t.type===Yn)return n=Yp(),Ce(":"),r=Wn(),Vp("init",n,r);if(t.type===Wi||t.type===Fe)Ya(t);else return e=Yp(),Ce(":"),r=Wn(),Vp("init",e,r)}function x3(){var t=[],e,n,r,i={},o=String;for(S=Z.start,Ce("{");!te("}");)e=A3(),e.key.type===Fp?n=e.key.name:n=o(e.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?V({},J4):i[r]=!0,t.push(e),te("}")||Ce(",");return Ce("}"),y3(t)}function w3(){Ce("(");const t=Zu();return Ce(")"),t}const C3={if:1};function S3(){var t,e,n;if(te("("))return w3();if(te("["))return b3();if(te("{"))return x3();if(t=Z.type,S=Z.start,t===Yn||C3[Z.value])n=Wu(Pe().value);else if(t===Xi||t===_n)Z.octal&&V(Z,Pp),n=$i(Pe());else{if(t===on)throw new Error(Zi);t===Ga?(e=Pe(),e.value=e.value==="true",n=$i(e)):t===Ha?(e=Pe(),e.value=null,n=$i(e)):te("/")||te("/=")?(n=$i(d3()),Gp()):Ya(Pe())}return n}function E3(){const t=[];if(Ce("("),!te(")"))for(;S<we&&(t.push(Wn()),!te(")"));)Ce(",");return Ce(")"),t}function D3(){S=Z.start;const t=Pe();return h3(t)||Ya(t),Wu(t.value)}function M3(){return Ce("."),D3()}function T3(){Ce("[");const t=Zu();return Ce("]"),t}function I3(){var t,e,n;for(t=S3();;)if(te("."))n=M3(),t=Qp(".",t,n);else if(te("("))e=E3(),t=m3(t,e);else if(te("["))n=T3(),t=Qp("[",t,n);else break;return t}function _p(){const t=I3();if(Z.type===Fe&&(te("++")||te("--")))throw new Error(Zi);return t}function _a(){var t,e;if(Z.type!==Fe&&Z.type!==on)e=_p();else{if(te("++")||te("--"))throw new Error(Zi);if(te("+")||te("-")||te("~")||te("!"))t=Pe(),e=_a(),e=v3(t.value,e);else{if(Xu("delete")||Xu("void")||Xu("typeof"))throw new Error(Zi);e=_p()}}return e}function Wp(t){let e=0;if(t.type!==Fe&&t.type!==on)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 k3(){var t,e,n,r,i,o,a,s,c,u;if(t=Z,c=_a(),r=Z,i=Wp(r),i===0)return c;for(r.prec=i,Pe(),e=[t,Z],a=_a(),o=[c,r,a];(i=Wp(Z))>0;){for(;o.length>2&&i<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,c=o.pop(),e.pop(),n=Hp(s,c,a),o.push(n);r=Pe(),r.prec=i,o.push(r),e.push(Z),n=_a(),o.push(n)}for(u=o.length-1,n=o[u],e.pop();u>1;)e.pop(),n=Hp(o[u-1].value,o[u-2],n),u-=2;return n}function Wn(){var t,e,n;return t=k3(),te("?")&&(Pe(),e=Wn(),Ce(":"),n=Wn(),t=g3(t,e,n)),t}function Zu(){const t=Wn();if(te(","))throw new Error(Zi);return t}function N3(t){N=t,S=0,we=N.length,Z=null,Gp();const e=Zu();if(Z.type!==Wi)throw new Error("Unexpect token after expression.");return e}var L3={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 B3(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&&se("Missing arguments to clamp function."),a.length>3&&se("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&&se("Missing arguments to if function."),a.length>3&&se("Too many arguments to if function.");const s=a.map(t);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function O3(t){const e=t&&t.length-1;return e&&(t[0]==='"'&&t[e]==='"'||t[0]==="'"&&t[e]==="'")?t.slice(1,-1):t}function F3(t){t=t||{};const e=t.allowed?sa(t.allowed):{},n=t.forbidden?sa(t.forbidden):{},r=t.constants||L3,i=(t.functions||B3)(l),o=t.globalvar,a=t.fieldvar,s=ke(o)?o:p=>`${o}["${p}"]`;let c={},u={},f=0;function l(p){if(re(p))return p;const m=d[p.type];return m==null&&se("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)?se("Illegal identifier: "+m):En(r,m)?r[m]:En(e,m)?m:(c[m]=1,s(m))},MemberExpression:p=>{const m=!p.computed,g=l(p.object);m&&(f+=1);const y=l(p.property);return g===a&&(u[O3(y)]=1),m&&(f-=1),g+(m?"."+y:"["+y+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&se("Illegal callee type: "+p.callee.type);const m=p.callee.name,g=p.arguments,y=En(i,m)&&i[m];return y||se("Unrecognized function: "+m),ke(y)?y(g):y+"("+g.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 qu(t,e={}){const n=F3({forbidden:[],allowed:["datum"],globalvar:"global",fieldvar:"datum"});try{const r=N3(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 P3(){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 z3(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]=R3(e[r],o==null?void 0:o.getScale(),t.unitView.getAccessor(r),r)}return n}function R3(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)),rn(e.type)){const o=P3();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 Xn(t){return t&&"field"in t}function eo(t){return t&&"datum"in t}function Ke(t){return Xn(t)||eo(t)||Ju(t)||Xp(t)}function Ku(t,e){const n=t.mark.encoding[e];if(Ke(n))return n;throw new Error("Not a channel def with scale!")}function Xp(t){return t&&"chrom"in t}function Ju(t){return t&&"expr"in t}const to=["x","y"],j3=["x2","y2"],U3=[...to,...j3];function Zp(t){return to.includes(t)}function no(t){return U3.includes(t)}const $u={x:"x2",y:"y2"},qp=Object.fromEntries(Object.entries($u).map(t=>[t[1],t[0]]));function ro(t){return t in qp}function G3(t){const e=$u[t];if(e)return e;throw new Error(`${t} has no secondary channel!`)}function Or(t){return qp[t]??t}function Zn(t){return["color","fill","stroke"].includes(Or(t))}function Wa(t){return["shape","squeeze"].includes(t)}function Kp(t){switch(t){case"shape":return["circle","square","triangle-up","cross","diamond","triangle-down","triangle-right","triangle-left"]}}function Jp(t){if(!Wa(t))throw new Error("Not a discrete channel: "+t);const e=new Map(Kp(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 K(t,e=t){if(/^[A-Za-z0-9_]+$/.test(t)){const n=new Function("datum",`return datum[${JSON.stringify(t)}]`);return R(n,[t],e)}else return ea(t)}class H3{constructor(){this.accessorCreators=[],this.register(e=>{if(Xn(e))try{const n=K(e.field);return n.constant=!1,n.fields=Sn(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(e=>Ju(e)?Q3(e.expr):void 0),this.register(e=>{if(eo(e)){const r=v2(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 Q3(t){const e=qu(t);return e.constant=e.fields.length==0,e}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
14
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),dv=/'/g,pv=/"/g,gv=/^(?:script|style|textarea|title)$/i,NI=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),z=NI(1),pt=Symbol.for("lit-noChange"),ne=Symbol.for("lit-nothing"),mv=new WeakMap,Eo=Ao.createTreeWalker(Ao,129,null,!1),bv=(e,t)=>{const n=e.length-1,r=[];let i,a=t===2?"<svg>":"",o=mc;for(let l=0;l<n;l++){const c=e[l];let u,f,h=-1,d=0;for(;d<c.length&&(o.lastIndex=d,f=o.exec(c),f!==null);)d=o.lastIndex,o===mc?f[1]==="!--"?o=fv:f[1]!==void 0?o=hv:f[2]!==void 0?(gv.test(f[2])&&(i=RegExp("</"+f[2],"g")),o=ca):f[3]!==void 0&&(o=ca):o===ca?f[0]===">"?(o=i??mc,h=-1):f[1]===void 0?h=-2:(h=o.lastIndex-f[2].length,u=f[1],o=f[3]===void 0?ca:f[3]==='"'?pv:dv):o===pv||o===dv?o=ca:o===fv||o===hv?o=mc:(o=ca,i=void 0);const p=o===ca&&e[l+1].startsWith("/>")?" ":"";a+=o===mc?c+MI:h>=0?(r.push(u),c.slice(0,h)+"$lit$"+c.slice(h)+xr+p):c+xr+(h===-2?(r.push(void 0),l):p)}const s=a+(e[n]||"<?>")+(t===2?"</svg>":"");if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return[cv!==void 0?cv.createHTML(s):s,r]};let G0=class l_{constructor({strings:t,_$litType$:n},r){let i;this.parts=[];let a=0,o=0;const s=t.length-1,l=this.parts,[c,u]=bv(t,n);if(this.el=l_.createElement(c,r),Eo.currentNode=this.el.content,n===2){const f=this.el.content,h=f.firstChild;h.remove(),f.append(...h.childNodes)}for(;(i=Eo.nextNode())!==null&&l.length<s;){if(i.nodeType===1){if(i.hasAttributes()){const f=[];for(const h of i.getAttributeNames())if(h.endsWith("$lit$")||h.startsWith(xr)){const d=u[o++];if(f.push(h),d!==void 0){const p=i.getAttribute(d.toLowerCase()+"$lit$").split(xr),g=/([.?@])?(.*)/.exec(d);l.push({type:1,index:a,name:g[2],strings:p,ctor:g[1]==="."?vv:g[1]==="?"?wv:g[1]==="@"?xv:bc})}else l.push({type:6,index:a})}for(const h of f)i.removeAttribute(h)}if(gv.test(i.tagName)){const f=i.textContent.split(xr),h=f.length-1;if(h>0){i.textContent=xo?xo.emptyScript:"";for(let d=0;d<h;d++)i.append(f[d],pc()),Eo.nextNode(),l.push({type:2,index:++a});i.append(f[h],pc())}}}else if(i.nodeType===8)if(i.data===H0)l.push({type:2,index:a});else{let f=-1;for(;(f=i.data.indexOf(xr,f+1))!==-1;)l.push({type:7,index:a}),f+=xr.length-1}a++}}static createElement(t,n){const r=Ao.createElement("template");return r.innerHTML=t,r}};function la(e,t,n=e,r){var i,a,o,s;if(t===pt)return t;let l=r!==void 0?(i=n._$Co)===null||i===void 0?void 0:i[r]:n._$Cl;const c=gc(t)?void 0:t._$litDirective$;return(l==null?void 0:l.constructor)!==c&&((a=l==null?void 0:l._$AO)===null||a===void 0||a.call(l,!1),c===void 0?l=void 0:(l=new c(e),l._$AT(e,n,r)),r!==void 0?((o=(s=n)._$Co)!==null&&o!==void 0?o:s._$Co=[])[r]=l:n._$Cl=l),l!==void 0&&(t=la(e,l._$AS(e,t.values),l,r)),t}class yv{constructor(t,n){this.u=[],this._$AN=void 0,this._$AD=t,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}v(t){var n;const{el:{content:r},parts:i}=this._$AD,a=((n=t==null?void 0:t.creationScope)!==null&&n!==void 0?n:Ao).importNode(r,!0);Eo.currentNode=a;let o=Eo.nextNode(),s=0,l=0,c=i[0];for(;c!==void 0;){if(s===c.index){let u;c.type===2?u=new Xu(o,o.nextSibling,this,t):c.type===1?u=new c.ctor(o,c.name,c.strings,this,t):c.type===6&&(u=new Av(o,this,t)),this.u.push(u),c=i[++l]}s!==(c==null?void 0:c.index)&&(o=Eo.nextNode(),s++)}return a}p(t){let n=0;for(const r of this.u)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,n),n+=r.strings.length-2):r._$AI(t[n])),n++}}let Xu=class u_{constructor(t,n,r,i){var a;this.type=2,this._$AH=ne,this._$AN=void 0,this._$AA=t,this._$AB=n,this._$AM=r,this.options=i,this._$Cm=(a=i==null?void 0:i.isConnected)===null||a===void 0||a}get _$AU(){var t,n;return(n=(t=this._$AM)===null||t===void 0?void 0:t._$AU)!==null&&n!==void 0?n:this._$Cm}get parentNode(){let t=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&t.nodeType===11&&(t=n.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,n=this){t=la(this,t,n),gc(t)?t===ne||t==null||t===""?(this._$AH!==ne&&this._$AR(),this._$AH=ne):t!==this._$AH&&t!==pt&&this.g(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):uv(t)?this.k(t):this.g(t)}O(t,n=this._$AB){return this._$AA.parentNode.insertBefore(t,n)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}g(t){this._$AH!==ne&&gc(this._$AH)?this._$AA.nextSibling.data=t:this.T(Ao.createTextNode(t)),this._$AH=t}$(t){var n;const{values:r,_$litType$:i}=t,a=typeof i=="number"?this._$AC(t):(i.el===void 0&&(i.el=G0.createElement(i.h,this.options)),i);if(((n=this._$AH)===null||n===void 0?void 0:n._$AD)===a)this._$AH.p(r);else{const o=new yv(a,this),s=o.v(this.options);o.p(r),this.T(s),this._$AH=o}}_$AC(t){let n=mv.get(t.strings);return n===void 0&&mv.set(t.strings,n=new G0(t)),n}k(t){lv(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let r,i=0;for(const a of t)i===n.length?n.push(r=new u_(this.O(pc()),this.O(pc()),this,this.options)):r=n[i],r._$AI(a),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(t=this._$AA.nextSibling,n){var r;for((r=this._$AP)===null||r===void 0||r.call(this,!1,!0,n);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var n;this._$AM===void 0&&(this._$Cm=t,(n=this._$AP)===null||n===void 0||n.call(this,t))}},bc=class{constructor(t,n,r,i,a){this.type=1,this._$AH=ne,this._$AN=void 0,this.element=t,this.name=n,this._$AM=i,this.options=a,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=ne}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,n=this,r,i){const a=this.strings;let o=!1;if(a===void 0)t=la(this,t,n,0),o=!gc(t)||t!==this._$AH&&t!==pt,o&&(this._$AH=t);else{const s=t;let l,c;for(t=a[0],l=0;l<a.length-1;l++)c=la(this,s[r+l],n,l),c===pt&&(c=this._$AH[l]),o||(o=!gc(c)||c!==this._$AH[l]),c===ne?t=ne:t!==ne&&(t+=(c??"")+a[l+1]),this._$AH[l]=c}o&&!i&&this.j(t)}j(t){t===ne?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}},vv=class extends bc{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===ne?void 0:t}};const FI=xo?xo.emptyScript:"";let wv=class extends bc{constructor(){super(...arguments),this.type=4}j(t){t&&t!==ne?this.element.setAttribute(this.name,FI):this.element.removeAttribute(this.name)}},xv=class extends bc{constructor(t,n,r,i,a){super(t,n,r,i,a),this.type=5}_$AI(t,n=this){var r;if((t=(r=la(this,t,n,0))!==null&&r!==void 0?r:ne)===pt)return;const i=this._$AH,a=t===ne&&i!==ne||t.capture!==i.capture||t.once!==i.once||t.passive!==i.passive,o=t!==ne&&(i===ne||a);a&&this.element.removeEventListener(this.name,this,i),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){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,t):this._$AH.handleEvent(t)}},Av=class{constructor(t,n,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){la(this,t)}};const BI={P:"$lit$",A:xr,M:H0,C:1,L:bv,R:yv,D:uv,V:la,I:Xu,H:bc,N:wv,U:xv,B:vv,F:Av},Ev=Wu.litHtmlPolyfillSupport;Ev==null||Ev(G0,Xu),((j0=Wu.litHtmlVersions)!==null&&j0!==void 0?j0:Wu.litHtmlVersions=[]).push("2.4.0");const Bt=(e,t,n)=>{var r,i;const a=(r=n==null?void 0:n.renderBefore)!==null&&r!==void 0?r:t;let o=a._$litPart$;if(o===void 0){const s=(i=n==null?void 0:n.renderBefore)!==null&&i!==void 0?i:null;a._$litPart$=o=new Xu(t.insertBefore(pc(),s),s,void 0,n??{})}return o._$AI(e),o};function $0(e,t){return e.length==t.length&&e.every((n,r)=>e[r]===t[r])}function rn(e){return Array.isArray(e)?e:typeof e<"u"?[e]:[]}function Gt(e){return e[e.length-1]}const ua="gs-suppress-tooltip";class LI{constructor(t){this.container=t,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(t){t!=this._visible&&(this.element.style.display=t?null:"none",this._visible=t)}get visible(){return this._visible}get enabled(){return Gt(this.enabledStack)??!0}pushEnabledState(t){this.enabledStack.push(t),t||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(t){this.mouseCoords=sv(this.container,t);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&OI(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(t){if(!t||!this.enabled||this._isPenalty()){this.visible&&(Bt("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}Bt(t,this.element),this.visible=!0,this.updatePlacement()}clear(){this._previousTooltipDatum=void 0,this.setContent(void 0)}updateWithDatum(t,n){t!==this._previousTooltipDatum&&(this._previousTooltipDatum=t,n||(n=r=>Promise.resolve(z`${JSON.stringify(r)}`)),n(t).then(r=>this.setContent(r)).catch(r=>{if(r!=="debounced")throw r}))}_isPenalty(){return this._penaltyUntil&&this._penaltyUntil>performance.now()}}function OI(e,t){let n=0;for(let r=0;r<e.length;r++)n+=(e[r]-t[r])**2;return Math.sqrt(n)}const RI="RawCode",zI="Literal",PI="Property",UI="Identifier",jI="ArrayExpression",HI="BinaryExpression",GI="CallExpression",$I="ConditionalExpression",VI="LogicalExpression",YI="MemberExpression",QI="ObjectExpression",ZI="UnaryExpression";function Dn(e){this.type=e}Dn.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=qI(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};function qI(e){switch(e.type){case jI:return e.elements;case HI:case VI:return[e.left,e.right];case GI:return[e.callee].concat(e.arguments);case $I:return[e.test,e.consequent,e.alternate];case YI:return[e.object,e.property];case QI:return e.properties;case PI:return[e.key,e.value];case ZI:return[e.argument];case UI:case zI:case RI:default:return[]}}var Qn,W,R,wt,Ee,Ku=1,yc=2,fa=3,oi=4,Ju=5,ha=6,Lt=7,vc=8,WI=9;Qn={},Qn[Ku]="Boolean",Qn[yc]="<end>",Qn[fa]="Identifier",Qn[oi]="Keyword",Qn[Ju]="Null",Qn[ha]="Numeric",Qn[Lt]="Punctuator",Qn[vc]="String",Qn[WI]="RegularExpression";var XI="ArrayExpression",KI="BinaryExpression",JI="CallExpression",eT="ConditionalExpression",Sv="Identifier",tT="Literal",nT="LogicalExpression",rT="MemberExpression",iT="ObjectExpression",aT="Property",oT="UnaryExpression",ft="Unexpected token %0",sT="Unexpected number",cT="Unexpected string",lT="Unexpected identifier",uT="Unexpected reserved word",fT="Unexpected end of input",V0="Invalid regular expression",Y0="Invalid regular expression: missing /",Cv="Octal literals are not allowed in strict mode.",hT="Duplicate data property in object literal not allowed in strict mode",gt="ILLEGAL",wc="Disabled.",dT=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]"),pT=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 ef(e,t){if(!e)throw new Error("ASSERT: "+t)}function Ar(e){return e>=48&&e<=57}function Q0(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function xc(e){return"01234567".indexOf(e)>=0}function gT(e){return e===32||e===9||e===11||e===12||e===160||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function Ac(e){return e===10||e===13||e===8232||e===8233}function Ec(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&dT.test(String.fromCharCode(e))}function tf(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&pT.test(String.fromCharCode(e))}const mT={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 _v(){for(;R<wt;){const e=W.charCodeAt(R);if(gT(e)||Ac(e))++R;else break}}function Z0(e){var t,n,r,i=0;for(n=e==="u"?4:2,t=0;t<n;++t)R<wt&&Q0(W[R])?(r=W[R++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):be({},ft,gt);return String.fromCharCode(i)}function bT(){var e,t,n,r;for(e=W[R],t=0,e==="}"&&be({},ft,gt);R<wt&&(e=W[R++],!!Q0(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&be({},ft,gt),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function kv(){var e,t;for(e=W.charCodeAt(R++),t=String.fromCharCode(e),e===92&&(W.charCodeAt(R)!==117&&be({},ft,gt),++R,e=Z0("u"),(!e||e==="\\"||!Ec(e.charCodeAt(0)))&&be({},ft,gt),t=e);R<wt&&(e=W.charCodeAt(R),!!tf(e));)++R,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),W.charCodeAt(R)!==117&&be({},ft,gt),++R,e=Z0("u"),(!e||e==="\\"||!tf(e.charCodeAt(0)))&&be({},ft,gt),t+=e);return t}function yT(){var e,t;for(e=R++;R<wt;){if(t=W.charCodeAt(R),t===92)return R=e,kv();if(tf(t))++R;else break}return W.slice(e,R)}function vT(){var e,t,n;return e=R,t=W.charCodeAt(R)===92?kv():yT(),t.length===1?n=fa:mT.hasOwnProperty(t)?n=oi:t==="null"?n=Ju:t==="true"||t==="false"?n=Ku:n=fa,{type:n,value:t,start:e,end:R}}function q0(){var e=R,t=W.charCodeAt(R),n,r=W[R],i,a,o;switch(t){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++R,{type:Lt,value:String.fromCharCode(t),start:e,end:R};default:if(n=W.charCodeAt(R+1),n===61)switch(t){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return R+=2,{type:Lt,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:R};case 33:case 61:return R+=2,W.charCodeAt(R)===61&&++R,{type:Lt,value:W.slice(e,R),start:e,end:R}}}if(o=W.substr(R,4),o===">>>=")return R+=4,{type:Lt,value:o,start:e,end:R};if(a=o.substr(0,3),a===">>>"||a==="<<="||a===">>=")return R+=3,{type:Lt,value:a,start:e,end:R};if(i=a.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return R+=2,{type:Lt,value:i,start:e,end:R};if(i==="//"&&be({},ft,gt),"<>=!+-*%&|^/".indexOf(r)>=0)return++R,{type:Lt,value:r,start:e,end:R};be({},ft,gt)}function wT(e){let t="";for(;R<wt&&Q0(W[R]);)t+=W[R++];return t.length===0&&be({},ft,gt),Ec(W.charCodeAt(R))&&be({},ft,gt),{type:ha,value:parseInt("0x"+t,16),start:e,end:R}}function xT(e){let t="0"+W[R++];for(;R<wt&&xc(W[R]);)t+=W[R++];return(Ec(W.charCodeAt(R))||Ar(W.charCodeAt(R)))&&be({},ft,gt),{type:ha,value:parseInt(t,8),octal:!0,start:e,end:R}}function Dv(){var e,t,n;if(n=W[R],ef(Ar(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=R,e="",n!=="."){if(e=W[R++],n=W[R],e==="0"){if(n==="x"||n==="X")return++R,wT(t);if(xc(n))return xT(t);n&&Ar(n.charCodeAt(0))&&be({},ft,gt)}for(;Ar(W.charCodeAt(R));)e+=W[R++];n=W[R]}if(n==="."){for(e+=W[R++];Ar(W.charCodeAt(R));)e+=W[R++];n=W[R]}if(n==="e"||n==="E")if(e+=W[R++],n=W[R],(n==="+"||n==="-")&&(e+=W[R++]),Ar(W.charCodeAt(R)))for(;Ar(W.charCodeAt(R));)e+=W[R++];else be({},ft,gt);return Ec(W.charCodeAt(R))&&be({},ft,gt),{type:ha,value:parseFloat(e),start:t,end:R}}function AT(){var e="",t,n,r,i,a=!1;for(t=W[R],ef(t==="'"||t==='"',"String literal must starts with a quote"),n=R,++R;R<wt;)if(r=W[R++],r===t){t="";break}else if(r==="\\")if(r=W[R++],!r||!Ac(r.charCodeAt(0)))switch(r){case"u":case"x":W[R]==="{"?(++R,e+=bT()):e+=Z0(r);break;case"n":e+=`
15
+ `;break;case"r":e+="\r";break;case"t":e+=" ";break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:xc(r)?(i="01234567".indexOf(r),i!==0&&(a=!0),R<wt&&xc(W[R])&&(a=!0,i=i*8+"01234567".indexOf(W[R++]),"0123".indexOf(r)>=0&&R<wt&&xc(W[R])&&(i=i*8+"01234567".indexOf(W[R++]))),e+=String.fromCharCode(i)):e+=r;break}else r==="\r"&&W[R]===`
16
+ `&&++R;else{if(Ac(r.charCodeAt(0)))break;e+=r}return t!==""&&be({},ft,gt),{type:vc,value:e,octal:a,start:n,end:R}}function ET(e,t){let n=e;t.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";be({},V0)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{be({},V0)}try{return new RegExp(e,t)}catch{return null}}function ST(){var e,t,n,r,i;for(e=W[R],ef(e==="/","Regular expression literal must start with a slash"),t=W[R++],n=!1,r=!1;R<wt;)if(e=W[R++],t+=e,e==="\\")e=W[R++],Ac(e.charCodeAt(0))&&be({},Y0),t+=e;else if(Ac(e.charCodeAt(0)))be({},Y0);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||be({},Y0),i=t.substr(1,t.length-2),{value:i,literal:t}}function CT(){var e,t,n;for(t="",n="";R<wt&&(e=W[R],!!tf(e.charCodeAt(0)));)++R,e==="\\"&&R<wt?be({},ft,gt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&be({},V0,n),{value:n,literal:t}}function _T(){var e,t,n,r;return Ee=null,_v(),e=R,t=ST(),n=CT(),r=ET(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:R}}function kT(e){return e.type===fa||e.type===oi||e.type===Ku||e.type===Ju}function Iv(){if(_v(),R>=wt)return{type:yc,start:R,end:R};const e=W.charCodeAt(R);return Ec(e)?vT():e===40||e===41||e===59?q0():e===39||e===34?AT():e===46?Ar(W.charCodeAt(R+1))?Dv():q0():Ar(e)?Dv():q0()}function Ot(){const e=Ee;return R=e.end,Ee=Iv(),R=e.end,e}function Tv(){const e=R;Ee=Iv(),R=e}function DT(e){const t=new Dn(XI);return t.elements=e,t}function Mv(e,t,n){const r=new Dn(e==="||"||e==="&&"?nT:KI);return r.operator=e,r.left=t,r.right=n,r}function IT(e,t){const n=new Dn(JI);return n.callee=e,n.arguments=t,n}function TT(e,t,n){const r=new Dn(eT);return r.test=e,r.consequent=t,r.alternate=n,r}function W0(e){const t=new Dn(Sv);return t.name=e,t}function Sc(e){const t=new Dn(tT);return t.value=e.value,t.raw=W.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function Nv(e,t,n){const r=new Dn(rT);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function MT(e){const t=new Dn(iT);return t.properties=e,t}function Fv(e,t,n){const r=new Dn(aT);return r.key=t,r.value=n,r.kind=e,r}function NT(e,t){const n=new Dn(oT);return n.operator=e,n.argument=t,n.prefix=!0,n}function be(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,(a,o)=>(ef(o<r.length,"Message reference must be in range"),r[o]));throw n=new Error(i),n.index=R,n.description=i,n}function nf(e){e.type===yc&&be(e,fT),e.type===ha&&be(e,sT),e.type===vc&&be(e,cT),e.type===fa&&be(e,lT),e.type===oi&&be(e,uT),be(e,ft,e.value)}function xt(e){const t=Ot();(t.type!==Lt||t.value!==e)&&nf(t)}function Be(e){return Ee.type===Lt&&Ee.value===e}function X0(e){return Ee.type===oi&&Ee.value===e}function FT(){const e=[];for(R=Ee.start,xt("[");!Be("]");)Be(",")?(Ot(),e.push(null)):(e.push(da()),Be("]")||xt(","));return Ot(),DT(e)}function Bv(){R=Ee.start;const e=Ot();return e.type===vc||e.type===ha?(e.octal&&be(e,Cv),Sc(e)):W0(e.value)}function BT(){var e,t,n,r;if(R=Ee.start,e=Ee,e.type===fa)return n=Bv(),xt(":"),r=da(),Fv("init",n,r);if(e.type===yc||e.type===Lt)nf(e);else return t=Bv(),xt(":"),r=da(),Fv("init",t,r)}function LT(){var e=[],t,n,r,i={},a=String;for(R=Ee.start,xt("{");!Be("}");)t=BT(),t.key.type===Sv?n=t.key.name:n=a(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?be({},hT):i[r]=!0,e.push(t),Be("}")||xt(",");return xt("}"),MT(e)}function OT(){xt("(");const e=K0();return xt(")"),e}const RT={if:1};function zT(){var e,t,n;if(Be("("))return OT();if(Be("["))return FT();if(Be("{"))return LT();if(e=Ee.type,R=Ee.start,e===fa||RT[Ee.value])n=W0(Ot().value);else if(e===vc||e===ha)Ee.octal&&be(Ee,Cv),n=Sc(Ot());else{if(e===oi)throw new Error(wc);e===Ku?(t=Ot(),t.value=t.value==="true",n=Sc(t)):e===Ju?(t=Ot(),t.value=null,n=Sc(t)):Be("/")||Be("/=")?(n=Sc(_T()),Tv()):nf(Ot())}return n}function PT(){const e=[];if(xt("("),!Be(")"))for(;R<wt&&(e.push(da()),!Be(")"));)xt(",");return xt(")"),e}function UT(){R=Ee.start;const e=Ot();return kT(e)||nf(e),W0(e.value)}function jT(){return xt("."),UT()}function HT(){xt("[");const e=K0();return xt("]"),e}function GT(){var e,t,n;for(e=zT();;)if(Be("."))n=jT(),e=Nv(".",e,n);else if(Be("("))t=PT(),e=IT(e,t);else if(Be("["))n=HT(),e=Nv("[",e,n);else break;return e}function Lv(){const e=GT();if(Ee.type===Lt&&(Be("++")||Be("--")))throw new Error(wc);return e}function rf(){var e,t;if(Ee.type!==Lt&&Ee.type!==oi)t=Lv();else{if(Be("++")||Be("--"))throw new Error(wc);if(Be("+")||Be("-")||Be("~")||Be("!"))e=Ot(),t=rf(),t=NT(e.value,t);else{if(X0("delete")||X0("void")||X0("typeof"))throw new Error(wc);t=Lv()}}return t}function Ov(e){let t=0;if(e.type!==Lt&&e.type!==oi)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11;break}return t}function $T(){var e,t,n,r,i,a,o,s,l,c;if(e=Ee,l=rf(),r=Ee,i=Ov(r),i===0)return l;for(r.prec=i,Ot(),t=[e,Ee],o=rf(),a=[l,r,o];(i=Ov(Ee))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)o=a.pop(),s=a.pop().value,l=a.pop(),t.pop(),n=Mv(s,l,o),a.push(n);r=Ot(),r.prec=i,a.push(r),t.push(Ee),n=rf(),a.push(n)}for(c=a.length-1,n=a[c],t.pop();c>1;)t.pop(),n=Mv(a[c-1].value,a[c-2],n),c-=2;return n}function da(){var e,t,n;return e=$T(),Be("?")&&(Ot(),t=da(),xt(":"),n=da(),e=TT(e,t,n)),e}function K0(){const e=da();if(Be(","))throw new Error(wc);return e}function VT(e){W=e,R=0,wt=W.length,Ee=null,Tv();const t=K0();if(Ee.type!==yc)throw new Error("Unexpect token after expression.");return t}var YT={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 QT(e){function t(o,s,l,c){let u=e(s[0]);return l&&(u=l+"("+u+")",l.lastIndexOf("new ",0)===0&&(u="("+u+")")),u+"."+o+(c<0?"":c===0?"()":"("+s.slice(1).map(e).join(",")+")")}function n(o,s,l){return c=>t(o,c,s,l)}const r="new Date",i="String",a="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(o){o.length<3&&Ye("Missing arguments to clamp function."),o.length>3&&Ye("Too many arguments to clamp function.");const s=o.map(e);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:a,test:n("test",a),if:function(o){o.length<3&&Ye("Missing arguments to if function."),o.length>3&&Ye("Too many arguments to if function.");const s=o.map(e);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function ZT(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function qT(e){e=e||{};const t=e.allowed?yu(e.allowed):{},n=e.forbidden?yu(e.forbidden):{},r=e.constants||YT,i=(e.functions||QT)(f),a=e.globalvar,o=e.fieldvar,s=Tt(a)?a:p=>`${a}["${p}"]`;let l={},c={},u=0;function f(p){if(ze(p))return p;const g=h[p.type];return g==null&&Ye("Unsupported type: "+p.type),g(p)}const h={Literal:p=>p.raw,Identifier:p=>{const g=p.name;return u>0?g:Vi(n,g)?Ye("Illegal identifier: "+g):Vi(r,g)?r[g]:Vi(t,g)?g:(l[g]=1,s(g))},MemberExpression:p=>{const g=!p.computed,y=f(p.object);g&&(u+=1);const v=f(p.property);return y===o&&(c[ZT(v)]=1),g&&(u-=1),y+(g?"."+v:"["+v+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&Ye("Illegal callee type: "+p.callee.type);const g=p.callee.name,y=p.arguments,v=Vi(i,g)&&i[g];return v||Ye("Unrecognized function: "+g),Tt(v)?v(y):v+"("+y.map(f).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(f).join(",")+"]",BinaryExpression:p=>"("+f(p.left)+" "+p.operator+" "+f(p.right)+")",UnaryExpression:p=>"("+p.operator+f(p.argument)+")",ConditionalExpression:p=>"("+f(p.test)+"?"+f(p.consequent)+":"+f(p.alternate)+")",LogicalExpression:p=>"("+f(p.left)+p.operator+f(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(f).join(",")+"}",Property:p=>{u+=1;const g=f(p.key);return u-=1,g+":"+f(p.value)}};function d(p){const g={code:f(p),globals:Object.keys(l),fields:Object.keys(c)};return l={},c={},g}return d.functions=i,d.constants=r,d}function J0(e,t={}){const n=qT({forbidden:[],allowed:["datum"],globalvar:"global",fieldvar:"datum"});try{const r=VT(e),i=n(r),a=Function("datum","global",`"use strict"; return (${i.code});`),o=s=>a(s,t);return o.fields=i.fields,o}catch(r){throw new Error(`Invalid expression: ${e}, ${r.message}`)}}function WT(){let e=0;const t=new Map,n=r=>{let i=t.get(r);return i===void 0&&(i=e++,t.set(r,i)),i};return n.addAll=r=>{for(const i of r)n(i)},n.invert=r=>{for(const i of t.entries())if(i[1]==r)return i[0]},n.domain=()=>[...t.keys()],n}function XT(e,t){const n={};t||(t=e.encoding);for(const[r,i]of Object.entries(t)){if(!i)continue;const a=e.unitView.getScaleResolution(an(i)&&i.resolutionChannel||r);n[r]=KT(t[r],a==null?void 0:a.getScale(),e.unitView.getAccessor(r),r)}return n}function KT(e,t,n,r){let i;if(In(e)){const a=e.value;i=o=>a,i.constant=!0,i.constantValue=!0,i.accessor=void 0}else if(n)if(r=="text")i=a=>{},i.accessor=n,i.constant=n.constant;else{if(!t)throw new Error(`Missing scale! "${r}": ${JSON.stringify(e)}`);if(i=a=>t(n(a)),ai(t.type)){const a=WT();a.addAll(t.domain()),i.indexer=a}i.constant=n.constant,i.accessor=n,i.scale=t}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${r}": ${JSON.stringify(e)}`);return i.invert=t?a=>t.invert(a):a=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(e))},i.channelDef=e,i.applyMetadata=a=>{for(const o in i)o in i&&(a[o]=i[o]);return a},i}function In(e){return e&&"value"in e}function pa(e){return e&&"field"in e}function Cc(e){return e&&"datum"in e}function an(e){return pa(e)||Cc(e)||tp(e)||Rv(e)}function ep(e,t){const n=e.mark.encoding[t];if(an(n))return n;throw new Error("Not a channel def with scale!")}function Rv(e){return e&&"chrom"in e}function tp(e){return e&&"expr"in e}const _c=["x","y"],JT=["x2","y2"],eM=[..._c,...JT];function zv(e){return _c.includes(e)}function kc(e){return eM.includes(e)}const np={x:"x2",y:"y2"},Pv=Object.fromEntries(Object.entries(np).map(e=>[e[1],e[0]]));function Dc(e){return e in Pv}function tM(e){const t=np[e];if(t)return t;throw new Error(`${e} has no secondary channel!`)}function So(e){return Pv[e]??e}function ga(e){return["color","fill","stroke"].includes(So(e))}function af(e){return["shape","squeeze"].includes(e)}function Uv(e){switch(e){case"shape":return["circle","square","triangle-up","cross","diamond","triangle-down","triangle-right","triangle-left"]}}function jv(e){if(!af(e))throw new Error("Not a discrete channel: "+e);const t=new Map(Uv(e).map((n,r)=>[n,r]));return n=>{const r=t.get(n);if(r!==void 0)return r;throw new Error(`Invalid value for "${e}" channel: ${n}`)}}function _e(e,t=e){if(/^[A-Za-z0-9_]+$/.test(e)){const n=new Function("datum",`return datum[${JSON.stringify(e)}]`);return se(n,[e],t)}else return fu(e)}class nM{constructor(){this.accessorCreators=[],this.register(t=>{if(pa(t))try{const n=_e(t.field);return n.constant=!1,n.fields=$i(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(t=>tp(t)?rM(t.expr):void 0),this.register(t=>{if(Cc(t)){const r=N_(t.datum);return r.constant=!0,r.fields=[],r}})}register(t){this.accessorCreators.push(t)}createAccessor(t){for(const n of this.accessorCreators){const r=n(t);if(r)return r}}}function rM(e){const t=J0(e);return t.constant=t.fields.length==0,t}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
17
17
  Available via the MIT license.
18
- see: http://github.com/greggman/twgl.js for details */const el=5120,io=5121,tl=5122,nl=5123,rl=5124,il=5125,ol=5126,V3=32819,Y3=32820,_3=33635,W3=5131,X3=33640,Z3=35899,q3=35902,K3=36269,J3=34042,$p={};{const t=$p;t[el]=Int8Array,t[io]=Uint8Array,t[tl]=Int16Array,t[nl]=Uint16Array,t[rl]=Int32Array,t[il]=Uint32Array,t[ol]=Float32Array,t[V3]=Uint16Array,t[Y3]=Uint16Array,t[_3]=Uint16Array,t[W3]=Uint16Array,t[X3]=Uint32Array,t[Z3]=Uint32Array,t[q3]=Uint32Array,t[K3]=Uint32Array,t[J3]=Uint32Array}function al(t){if(t instanceof Int8Array)return el;if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)return io;if(t instanceof Int16Array)return tl;if(t instanceof Uint16Array)return nl;if(t instanceof Int32Array)return rl;if(t instanceof Uint32Array)return il;if(t instanceof Float32Array)return ol;throw new Error("unsupported typed array type")}function $3(t){if(t===Int8Array)return el;if(t===Uint8Array||t===Uint8ClampedArray)return io;if(t===Int16Array)return tl;if(t===Uint16Array)return nl;if(t===Int32Array)return rl;if(t===Uint32Array)return il;if(t===Float32Array)return ol;throw new Error("unsupported typed array type")}function eC(t){const e=$p[t];if(!e)throw new Error("unknown gl type");return e}const Xa=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 tC(...t){console.error(...t)}function em(...t){console.warn(...t)}function nC(t,e){return typeof WebGLBuffer<"u"&&e instanceof WebGLBuffer}function tm(t,e){return typeof WebGLRenderbuffer<"u"&&e instanceof WebGLRenderbuffer}function Za(t,e){return typeof WebGLTexture<"u"&&e instanceof WebGLTexture}function rC(t,e){return typeof WebGLSampler<"u"&&e instanceof WebGLSampler}const nm=35044,gt=34962,iC=34963,oC=34660,aC=5120,sC=5121,cC=5122,uC=5123,lC=5124,fC=5125,dC=5126,rm={attribPrefix:""};function im(t,e,n,r,i){t.bindBuffer(e,n),t.bufferData(e,r,i||nm)}function om(t,e,n,r){if(nC(t,e))return e;n=n||gt;const i=t.createBuffer();return im(t,n,i,e,r),i}function am(t){return t==="indices"}function hC(t){return t instanceof Int8Array||t instanceof Uint8Array}function pC(t){return t===Int8Array||t===Uint8Array}function mC(t){return t.length?t:t.data}const gC=/coord|texture/i,yC=/color|colour/i;function sm(t,e){let n;if(gC.test(t)?n=2:yC.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 vC(t,e){return t.numComponents||t.size||sm(e,mC(t).length)}function sl(t,e){if(Xa(t))return t;if(Xa(t.data))return t.data;Array.isArray(t)&&(t={data:t});let n=t.type;return n||(am(e)?n=Uint16Array:n=Float32Array),new n(t.data)}function bC(t,e){const n={};return Object.keys(e).forEach(function(r){if(!am(r)){const i=e[r],o=i.attrib||i.name||i.attribName||rm.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!Xa(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=$3(l),c=i.normalize!==void 0?i.normalize:pC(l),u=i.numComponents||i.size||sm(r,f),a=t.createBuffer(),t.bindBuffer(gt,a),t.bufferData(gt,d,i.drawType||nm)}else{const f=sl(i,r);a=om(t,f,void 0,i.drawType),s=al(f),c=i.normalize!==void 0?i.normalize:hC(f),u=vC(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(gt,null),n}function AC(t,e,n,r){n=sl(n),r!==void 0?(t.bindBuffer(gt,e.buffer),t.bufferSubData(gt,r,n)):im(t,gt,e.buffer,n,e.drawType)}function xC(t,e){return e===aC||e===sC?1:e===cC||e===uC?2:e===lC||e===fC||e===dC?4:0}const cl=["position","positions","a_position"];function wC(t,e){let n,r;for(r=0;r<cl.length&&(n=cl[r],!(n in e||(n=rm.attribPrefix+n,n in e)));++r);r===cl.length&&(n=Object.keys(e)[0]);const i=e[n];t.bindBuffer(gt,i.buffer);const o=t.getBufferParameter(gt,oC);t.bindBuffer(gt,null);const a=xC(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 CC(t,e,n){const r=bC(t,e),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const o=e.indices;if(o){const a=sl(o,"indices");i.indices=om(t,a,iC),i.numElements=a.length,i.elementType=al(a)}else i.numElements||(i.numElements=wC(t,i.attribs));return i}function Fr(t){return!!t.texStorage2D}const ul=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)}}(),an={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},Pr=Xa,cm=function(){let t;return function(){return t=t||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),t}}(),um=6406,yt=6407,ie=6408,lm=6409,fm=6410,oo=6402,dm=34041,qa=33071,SC=9728,EC=9729,Bt=3553,Ot=34067,sn=32879,cn=35866,Ka=34069,DC=34070,MC=34071,TC=34072,IC=34073,kC=34074,ll=10241,fl=10240,Ja=10242,$a=10243,hm=32882,NC=33082,LC=33083,BC=33084,OC=33085,dl=3317,pm=3314,mm=32878,gm=3316,ym=3315,vm=32877,FC=37443,PC=37441,zC=37440,RC=33321,jC=36756,UC=33325,GC=33326,HC=33330,QC=33329,VC=33338,YC=33337,_C=33340,WC=33339,XC=33323,ZC=36757,qC=33327,KC=33328,JC=33336,$C=33335,eS=33332,tS=33331,nS=33334,rS=33333,iS=32849,oS=35905,aS=36194,sS=36758,cS=35898,uS=35901,lS=34843,fS=34837,dS=36221,hS=36239,pS=36215,mS=36233,gS=36209,yS=36227,vS=32856,bS=35907,AS=36759,xS=32855,wS=32854,CS=32857,SS=34842,ES=34836,DS=36220,MS=36238,TS=36975,IS=36214,kS=36232,NS=36226,LS=36208,BS=33189,OS=33190,FS=36012,PS=36013,zS=35056,un=5120,oe=5121,es=5122,zr=5123,ts=5124,qn=5125,Se=5126,bm=32819,Am=32820,xm=33635,st=5131,ao=36193,hl=33640,RS=35899,jS=35902,US=36269,GS=34042,ns=33319,Rr=33320,rs=6403,jr=36244,Ur=36248,Kn=36249;let pl;function is(t){if(!pl){const e={};e[um]={textureFormat:um,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[oe,st,ao,Se]},e[lm]={textureFormat:lm,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[oe,st,ao,Se]},e[fm]={textureFormat:fm,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[oe,st,ao,Se]},e[yt]={textureFormat:yt,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[oe,st,ao,Se,xm]},e[ie]={textureFormat:ie,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[oe,st,ao,Se,bm,Am]},e[oo]={textureFormat:oo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[qn,zr]},e[RC]={textureFormat:rs,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[oe]},e[jC]={textureFormat:rs,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[un]},e[UC]={textureFormat:rs,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[Se,st]},e[GC]={textureFormat:rs,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[Se]},e[HC]={textureFormat:jr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[oe]},e[QC]={textureFormat:jr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[un]},e[eS]={textureFormat:jr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[zr]},e[tS]={textureFormat:jr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[es]},e[nS]={textureFormat:jr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[qn]},e[rS]={textureFormat:jr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ts]},e[XC]={textureFormat:ns,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[oe]},e[ZC]={textureFormat:ns,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[un]},e[qC]={textureFormat:ns,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[Se,st]},e[KC]={textureFormat:ns,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[Se]},e[JC]={textureFormat:Rr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[oe]},e[$C]={textureFormat:Rr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[un]},e[VC]={textureFormat:Rr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[zr]},e[YC]={textureFormat:Rr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[es]},e[_C]={textureFormat:Rr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[qn]},e[WC]={textureFormat:Rr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[ts]},e[iS]={textureFormat:yt,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[oe]},e[oS]={textureFormat:yt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[oe]},e[aS]={textureFormat:yt,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[oe,xm]},e[sS]={textureFormat:yt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[un]},e[cS]={textureFormat:yt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Se,st,RS]},e[uS]={textureFormat:yt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Se,st,jS]},e[lS]={textureFormat:yt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[Se,st]},e[fS]={textureFormat:yt,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Se]},e[dS]={textureFormat:Ur,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[oe]},e[hS]={textureFormat:Ur,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[un]},e[pS]={textureFormat:Ur,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[zr]},e[mS]={textureFormat:Ur,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[es]},e[gS]={textureFormat:Ur,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[qn]},e[yS]={textureFormat:Ur,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[ts]},e[vS]={textureFormat:ie,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[oe]},e[bS]={textureFormat:ie,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[oe]},e[AS]={textureFormat:ie,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[un]},e[xS]={textureFormat:ie,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[oe,Am,hl]},e[wS]={textureFormat:ie,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[oe,bm]},e[CS]={textureFormat:ie,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[hl]},e[SS]={textureFormat:ie,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[Se,st]},e[ES]={textureFormat:ie,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[Se]},e[DS]={textureFormat:Kn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[oe]},e[MS]={textureFormat:Kn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[un]},e[TS]={textureFormat:Kn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[hl]},e[IS]={textureFormat:Kn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[zr]},e[kS]={textureFormat:Kn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[es]},e[NS]={textureFormat:Kn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[ts]},e[LS]={textureFormat:Kn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[qn]},e[BS]={textureFormat:oo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[zr,qn]},e[OS]={textureFormat:oo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[qn]},e[FS]={textureFormat:oo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Se]},e[zS]={textureFormat:dm,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[GS]},e[PS]={textureFormat:dm,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[US]},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})}),pl=e}return pl[t]}function HS(t,e){const n=is(t);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[e];if(r===void 0)throw"unknown internal format";return r}function Gr(t){const e=is(t);if(!e)throw"unknown internal format";return{format:e.textureFormat,type:e.type[0]}}function wm(t){return(t&t-1)===0}function QS(t,e,n,r){if(!Fr(t))return wm(e)&&wm(n);const i=is(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function VS(t){const e=is(t);if(!e)throw"unknown internal format";return e.textureFilterable}function Cm(t,e,n){return Pr(e)?al(e):n||oe}function os(t,e,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const o=Math.sqrt(i/(e===Ot?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 Hr(t,e){e.colorspaceConversion!==void 0&&t.pixelStorei(FC,e.colorspaceConversion),e.premultiplyAlpha!==void 0&&t.pixelStorei(PC,e.premultiplyAlpha),e.flipY!==void 0&&t.pixelStorei(zC,e.flipY)}function Sm(t){t.pixelStorei(dl,4),Fr(t)&&(t.pixelStorei(pm,0),t.pixelStorei(mm,0),t.pixelStorei(gm,0),t.pixelStorei(ym,0),t.pixelStorei(vm,0))}function YS(t,e,n,r){r.minMag&&(n.call(t,e,ll,r.minMag),n.call(t,e,fl,r.minMag)),r.min&&n.call(t,e,ll,r.min),r.mag&&n.call(t,e,fl,r.mag),r.wrap&&(n.call(t,e,Ja,r.wrap),n.call(t,e,$a,r.wrap),(e===sn||rC(t,e))&&n.call(t,e,hm,r.wrap)),r.wrapR&&n.call(t,e,hm,r.wrapR),r.wrapS&&n.call(t,e,Ja,r.wrapS),r.wrapT&&n.call(t,e,$a,r.wrapT),r.minLod&&n.call(t,e,NC,r.minLod),r.maxLod&&n.call(t,e,LC,r.maxLod),r.baseLevel&&n.call(t,e,BC,r.baseLevel),r.maxLevel&&n.call(t,e,OC,r.maxLevel)}function Em(t,e,n){const r=n.target||Bt;t.bindTexture(r,e),YS(t,r,t.texParameteri,n)}function _S(t){return t=t||an.textureColor,Pr(t)?t:new Uint8Array([t[0]*255,t[1]*255,t[2]*255,t[3]*255])}function ml(t,e,n,r,i,o){n=n||an.textureOptions,o=o||ie;const a=n.target||Bt;if(r=r||n.width,i=i||n.height,t.bindTexture(a,e),QS(t,r,i,o))t.generateMipmap(a);else{const s=VS(o)?EC:SC;t.texParameteri(a,ll,s),t.texParameteri(a,fl,s),t.texParameteri(a,Ja,qa),t.texParameteri(a,$a,qa)}}function so(t){return t.auto===!0||t.auto===void 0&&t.level===void 0}function gl(t,e){return e=e||{},e.cubeFaceOrder||[Ka,DC,MC,TC,IC,kC]}function yl(t,e){const r=gl(t,e).map(function(i,o){return{face:i,ndx:o}});return r.sort(function(i,o){return i.face-o.face}),r}function Dm(t,e,n,r){r=r||an.textureOptions;const i=r.target||Bt,o=r.level||0;let a=n.width,s=n.height;const c=r.internalFormat||r.format||ie,u=Gr(c),f=r.format||u.format,l=r.type||u.type;if(Hr(t,r),t.bindTexture(i,e),i===Ot){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 g=cm();g?(g.canvas.width=p,g.canvas.height=p,a=p,s=p,yl(t,r).forEach(function(y){const b=m[y.ndx*2+0]*p,w=m[y.ndx*2+1]*p;g.drawImage(n,b,w,p,p,0,0,p,p),t.texImage2D(y.face,o,c,f,l,g.canvas)}),g.canvas.width=1,g.canvas.height=1):typeof createImageBitmap<"u"&&(a=p,s=p,yl(t,r).forEach(function(y){const b=m[y.ndx*2+0]*p,w=m[y.ndx*2+1]*p;t.texImage2D(y.face,o,c,p,p,0,f,l,null),createImageBitmap(n,b,w,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(C){Hr(t,r),t.bindTexture(i,e),t.texImage2D(y.face,o,c,f,l,C),so(r)&&ml(t,e,r,a,s,c)})}))}else if(i===sn||i===cn){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,g=n.height===h?1:0;t.pixelStorei(dl,1),t.pixelStorei(pm,n.width),t.pixelStorei(mm,0),t.pixelStorei(vm,0),t.texImage3D(i,o,c,d,d,d,0,f,l,null);for(let y=0;y<p;++y){const b=y*d*m,w=y*d*g;t.pixelStorei(gm,b),t.pixelStorei(ym,w),t.texSubImage3D(i,o,0,0,y,d,d,1,f,l,n)}Sm(t)}else t.texImage2D(i,o,c,f,l,n);so(r)&&ml(t,e,r,a,s,c),Em(t,e,r)}function co(){}function WS(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 XS(t,e){return e===void 0&&!WS(t)?"anonymous":e}function ZS(t,e,n){n=n||co;let r;if(e=e!==void 0?e:an.crossOrigin,e=XS(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;tC(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 Mm(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap||typeof ImageData<"u"&&t instanceof ImageData||typeof HTMLElement<"u"&&t instanceof HTMLElement}function vl(t,e,n){return Mm(t)?(setTimeout(function(){n(null,t)}),t):ZS(t,e,n)}function bl(t,e,n){n=n||an.textureOptions;const r=n.target||Bt;if(t.bindTexture(r,e),n.color===!1)return;const i=_S(n.color);if(r===Ot)for(let o=0;o<6;++o)t.texImage2D(Ka+o,0,ie,1,1,0,ie,oe,i);else r===sn||r===cn?t.texImage3D(r,0,ie,1,1,1,0,ie,oe,i):t.texImage2D(r,0,ie,1,1,0,ie,oe,i)}function qS(t,e,n,r){return r=r||co,n=n||an.textureOptions,bl(t,e,n),n=Object.assign({},n),vl(n.src,n.crossOrigin,function(o,a){o?r(o,e,a):(Dm(t,e,a,n),r(null,e,a))})}function KS(t,e,n,r){r=r||co;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||ie,s=Gr(a),c=n.format||s.format,u=n.type||oe,f=n.target||Bt;if(f!==Ot)throw"target must be TEXTURE_CUBE_MAP";bl(t,e,n),n=Object.assign({},n);let l=6;const d=[],h=gl(t,n);let p;function m(g){return function(y,b){--l,y?d.push(y):b.width!==b.height?d.push("cubemap face img is not a square: "+b.src):(Hr(t,n),t.bindTexture(f,e),l===5?gl().forEach(function(w){t.texImage2D(w,o,a,c,u,b)}):t.texImage2D(g,o,a,c,u,b),so(n)&&t.generateMipmap(f)),l===0&&r(d.length?d:void 0,e,p)}}p=i.map(function(g,y){return vl(g,n.crossOrigin,m(h[y]))})}function JS(t,e,n,r){r=r||co;const i=n.src,o=n.internalFormat||n.format||ie,a=Gr(o),s=n.format||a.format,c=n.type||oe,u=n.target||cn;if(u!==sn&&u!==cn)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";bl(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 g=i.length;let y=!0;function b(w){return function(C,x){if(--f,C)l.push(C);else{if(Hr(t,n),t.bindTexture(u,e),y){y=!1,p=n.width||x.width,m=n.height||x.height,t.texImage3D(u,h,o,p,m,g,0,s,c,null);for(let v=0;v<g;++v)t.texSubImage3D(u,h,0,0,v,p,m,1,s,c,x)}else{let v=x,A;(x.width!==p||x.height!==m)&&(A=cm(),v=A.canvas,A.canvas.width=p,A.canvas.height=m,A.drawImage(x,0,0,p,m)),t.texSubImage3D(u,h,0,0,w,p,m,1,s,c,v),A&&v===A.canvas&&(A.canvas.width=0,A.canvas.height=0)}so(n)&&t.generateMipmap(u)}f===0&&r(l.length?l:void 0,e,d)}}d=i.map(function(w,C){return vl(w,n.crossOrigin,b(C))})}function Tm(t,e,n,r){r=r||an.textureOptions;const i=r.target||Bt;t.bindTexture(i,e);let o=r.width,a=r.height,s=r.depth;const c=r.level||0,u=r.internalFormat||r.format||ie,f=Gr(u),l=r.format||f.format,d=r.type||Cm(t,n,f.type);if(Pr(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const g=eC(d);n=new g(n)}const h=HS(u,d),p=n.byteLength/h;if(p%1)throw"length wrong size for format: "+ul(t,l);let m;if(i===sn||i===cn)if(!o&&!a&&!s){const g=Math.cbrt(p);if(g%1!==0)throw"can't guess cube size of array of numElements: "+p;o=g,a=g,s=g}else o&&(!a||!s)?(m=os(t,i,a,s,p/o),a=m.width,s=m.height):a&&(!o||!s)?(m=os(t,i,o,s,p/a),o=m.width,s=m.height):(m=os(t,i,o,a,p/s),o=m.width,a=m.height);else m=os(t,i,o,a,p),o=m.width,a=m.height;if(Sm(t),t.pixelStorei(dl,r.unpackAlignment||1),Hr(t,r),i===Ot){const g=h/n.BYTES_PER_ELEMENT,y=p/6*g;yl(t,r).forEach(b=>{const w=y*b.ndx,C=n.subarray(w,w+y);t.texImage2D(b.face,c,u,o,a,0,l,d,C)})}else i===sn||i===cn?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 $S(t,e,n){const r=n.target||Bt;t.bindTexture(r,e);const i=n.level||0,o=n.internalFormat||n.format||ie,a=Gr(o),s=n.format||a.format,c=n.type||a.type;if(Hr(t,n),r===Ot)for(let u=0;u<6;++u)t.texImage2D(Ka+u,i,o,n.width,n.height,0,s,c,null);else r===sn||r===cn?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 uo(t,e,n){n=n||co,e=e||an.textureOptions;const r=t.createTexture(),i=e.target||Bt;let o=e.width||1,a=e.height||1;const s=e.internalFormat||ie;t.bindTexture(i,r),i===Ot&&(t.texParameteri(i,Ja,qa),t.texParameteri(i,$a,qa));let c=e.src;if(c)if(typeof c=="function"&&(c=c(t,e)),typeof c=="string")qS(t,r,e,n);else if(Pr(c)||Array.isArray(c)&&(typeof c[0]=="number"||Array.isArray(c[0])||Pr(c[0]))){const u=Tm(t,r,c,e);o=u.width,a=u.height}else Array.isArray(c)&&(typeof c[0]=="string"||Mm(c[0]))?i===Ot?KS(t,r,e,n):JS(t,r,e,n):(Dm(t,r,c,e),o=c.width,a=c.height);else $S(t,r,e);return so(e)&&ml(t,r,e,o,a,s),Em(t,r,e),r}function eE(t,e,n,r,i,o){r=r||n.width,i=i||n.height,o=o||n.depth;const a=n.target||Bt;t.bindTexture(a,e);const s=n.level||0,c=n.internalFormat||n.format||ie,u=Gr(c),f=n.format||u.format;let l;const d=n.src;if(d&&(Pr(d)||Array.isArray(d)&&typeof d[0]=="number")?l=n.type||Cm(t,d,u.type):l=n.type||u.type,a===Ot)for(let h=0;h<6;++h)t.texImage2D(Ka+h,s,c,r,i,0,f,l,null);else a===sn||a===cn?t.texImage3D(a,s,c,r,i,o,0,f,l,null):t.texImage2D(a,s,c,r,i,0,f,l,null)}const tE=em,as=33984,nE=35048,ss=34962,rE=34963,Al=35345,Im=35718,iE=35721,oE=35971,aE=35382,sE=35396,cE=35398,uE=35392,lE=35395,cs=5126,km=35664,Nm=35665,Lm=35666,xl=5124,Bm=35667,Om=35668,Fm=35669,Pm=35670,zm=35671,Rm=35672,jm=35673,Um=35674,Gm=35675,Hm=35676,fE=35678,dE=35680,hE=35679,pE=35682,mE=35685,gE=35686,yE=35687,vE=35688,bE=35689,AE=35690,xE=36289,wE=36292,CE=36293,wl=5125,Qm=36294,Vm=36295,Ym=36296,SE=36298,EE=36299,DE=36300,ME=36303,TE=36306,IE=36307,kE=36308,NE=36311,us=3553,ls=34067,Cl=32879,fs=35866,P={};function _m(t,e){return P[e].bindPoint}function LE(t,e){return function(n){t.uniform1f(e,n)}}function BE(t,e){return function(n){t.uniform1fv(e,n)}}function OE(t,e){return function(n){t.uniform2fv(e,n)}}function FE(t,e){return function(n){t.uniform3fv(e,n)}}function PE(t,e){return function(n){t.uniform4fv(e,n)}}function Wm(t,e){return function(n){t.uniform1i(e,n)}}function Xm(t,e){return function(n){t.uniform1iv(e,n)}}function Zm(t,e){return function(n){t.uniform2iv(e,n)}}function qm(t,e){return function(n){t.uniform3iv(e,n)}}function Km(t,e){return function(n){t.uniform4iv(e,n)}}function zE(t,e){return function(n){t.uniform1ui(e,n)}}function RE(t,e){return function(n){t.uniform1uiv(e,n)}}function jE(t,e){return function(n){t.uniform2uiv(e,n)}}function UE(t,e){return function(n){t.uniform3uiv(e,n)}}function GE(t,e){return function(n){t.uniform4uiv(e,n)}}function HE(t,e){return function(n){t.uniformMatrix2fv(e,!1,n)}}function QE(t,e){return function(n){t.uniformMatrix3fv(e,!1,n)}}function VE(t,e){return function(n){t.uniformMatrix4fv(e,!1,n)}}function YE(t,e){return function(n){t.uniformMatrix2x3fv(e,!1,n)}}function _E(t,e){return function(n){t.uniformMatrix3x2fv(e,!1,n)}}function WE(t,e){return function(n){t.uniformMatrix2x4fv(e,!1,n)}}function XE(t,e){return function(n){t.uniformMatrix4x2fv(e,!1,n)}}function ZE(t,e){return function(n){t.uniformMatrix3x4fv(e,!1,n)}}function qE(t,e){return function(n){t.uniformMatrix4x3fv(e,!1,n)}}function De(t,e,n,r){const i=_m(t,e);return Fr(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(as+n),t.bindTexture(i,a),t.bindSampler(n,s)}:function(o){t.uniform1i(r,n),t.activeTexture(as+n),t.bindTexture(i,o)}}function Me(t,e,n,r,i){const o=_m(t,e),a=new Int32Array(i);for(let s=0;s<i;++s)a[s]=n+s;return Fr(t)?function(s){t.uniform1iv(r,a),s.forEach(function(c,u){t.activeTexture(as+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(as+a[u]),t.bindTexture(o,c)})}}P[cs]={Type:Float32Array,size:4,setter:LE,arraySetter:BE},P[km]={Type:Float32Array,size:8,setter:OE,cols:2},P[Nm]={Type:Float32Array,size:12,setter:FE,cols:3},P[Lm]={Type:Float32Array,size:16,setter:PE,cols:4},P[xl]={Type:Int32Array,size:4,setter:Wm,arraySetter:Xm},P[Bm]={Type:Int32Array,size:8,setter:Zm,cols:2},P[Om]={Type:Int32Array,size:12,setter:qm,cols:3},P[Fm]={Type:Int32Array,size:16,setter:Km,cols:4},P[wl]={Type:Uint32Array,size:4,setter:zE,arraySetter:RE},P[Qm]={Type:Uint32Array,size:8,setter:jE,cols:2},P[Vm]={Type:Uint32Array,size:12,setter:UE,cols:3},P[Ym]={Type:Uint32Array,size:16,setter:GE,cols:4},P[Pm]={Type:Uint32Array,size:4,setter:Wm,arraySetter:Xm},P[zm]={Type:Uint32Array,size:8,setter:Zm,cols:2},P[Rm]={Type:Uint32Array,size:12,setter:qm,cols:3},P[jm]={Type:Uint32Array,size:16,setter:Km,cols:4},P[Um]={Type:Float32Array,size:32,setter:HE,rows:2,cols:2},P[Gm]={Type:Float32Array,size:48,setter:QE,rows:3,cols:3},P[Hm]={Type:Float32Array,size:64,setter:VE,rows:4,cols:4},P[mE]={Type:Float32Array,size:32,setter:YE,rows:2,cols:3},P[gE]={Type:Float32Array,size:32,setter:WE,rows:2,cols:4},P[yE]={Type:Float32Array,size:48,setter:_E,rows:3,cols:2},P[vE]={Type:Float32Array,size:48,setter:ZE,rows:3,cols:4},P[bE]={Type:Float32Array,size:64,setter:XE,rows:4,cols:2},P[AE]={Type:Float32Array,size:64,setter:qE,rows:4,cols:3},P[fE]={Type:null,size:0,setter:De,arraySetter:Me,bindPoint:us},P[dE]={Type:null,size:0,setter:De,arraySetter:Me,bindPoint:ls},P[hE]={Type:null,size:0,setter:De,arraySetter:Me,bindPoint:Cl},P[pE]={Type:null,size:0,setter:De,arraySetter:Me,bindPoint:us},P[xE]={Type:null,size:0,setter:De,arraySetter:Me,bindPoint:fs},P[wE]={Type:null,size:0,setter:De,arraySetter:Me,bindPoint:fs},P[CE]={Type:null,size:0,setter:De,arraySetter:Me,bindPoint:ls},P[SE]={Type:null,size:0,setter:De,arraySetter:Me,bindPoint:us},P[EE]={Type:null,size:0,setter:De,arraySetter:Me,bindPoint:Cl},P[DE]={Type:null,size:0,setter:De,arraySetter:Me,bindPoint:ls},P[ME]={Type:null,size:0,setter:De,arraySetter:Me,bindPoint:fs},P[TE]={Type:null,size:0,setter:De,arraySetter:Me,bindPoint:us},P[IE]={Type:null,size:0,setter:De,arraySetter:Me,bindPoint:Cl},P[kE]={Type:null,size:0,setter:De,arraySetter:Me,bindPoint:ls},P[NE]={Type:null,size:0,setter:De,arraySetter:Me,bindPoint:fs};function ds(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(ss,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribPointer(e,n.numComponents||n.size,n.type||cs,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function ln(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(ss,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,n.numComponents||n.size,n.type||xl,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function hs(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(ss,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,n.numComponents||n.size,n.type||wl,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function Sl(t,e,n){const r=n.size,i=n.count;return function(o){t.bindBuffer(ss,o.buffer);const a=o.size||o.numComponents||r,s=a/i,c=o.type||cs,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 fe={};fe[cs]={size:4,setter:ds},fe[km]={size:8,setter:ds},fe[Nm]={size:12,setter:ds},fe[Lm]={size:16,setter:ds},fe[xl]={size:4,setter:ln},fe[Bm]={size:8,setter:ln},fe[Om]={size:12,setter:ln},fe[Fm]={size:16,setter:ln},fe[wl]={size:4,setter:hs},fe[Qm]={size:8,setter:hs},fe[Vm]={size:12,setter:hs},fe[Ym]={size:16,setter:hs},fe[Pm]={size:4,setter:ln},fe[zm]={size:8,setter:ln},fe[Rm]={size:12,setter:ln},fe[jm]={size:16,setter:ln},fe[Um]={size:4,setter:Sl,count:2},fe[Gm]={size:9,setter:Sl,count:3},fe[Hm]={size:16,setter:Sl,count:4};function Jm(t){const e=t.name;return e.startsWith("gl_")||e.startsWith("webgl_")}const KE=/(\.|\[|]|\w+)/g,JE=t=>t>="0"&&t<="9";function $m(t,e,n,r){const i=t.split(KE).filter(s=>s!=="");let o=0,a="";for(;;){const s=i[o++];a+=s;const c=JE(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){ig(p,m)}}(h),a+=l}}}function $E(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,Im);for(let s=0;s<a;++s){const c=t.getActiveUniform(e,s);if(Jm(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,$m(u,l,o,i)}}return i}function eD(t,e){const n={},r=t.getProgramParameter(e,oE);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 tD(t,e){const n=t.getProgramParameter(e,Im),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,aE);for(let s=0;s<a;++s){const c=t.getActiveUniformBlockName(e,s),u={index:t.getUniformBlockIndex(e,c),usedByVertexShader:t.getActiveUniformBlockParameter(e,s,sE),usedByFragmentShader:t.getActiveUniformBlockParameter(e,s,cE),size:t.getActiveUniformBlockParameter(e,s,uE),uniformIndices:t.getActiveUniformBlockParameter(e,s,lE)};u.used=u.usedByVertexShader||u.usedByFragmentShader,o[c]=u}return{blockSpecs:o,uniformData:r}}const eg=/\[\d+\]\.$/,nD=(t,e)=>((t+(e-1))/e|0)*e;function rD(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 iD(t,e,n,r){const i=n.blockSpecs,o=n.uniformData,a=i[r];if(!a)return tE("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(a.size),c=t.createBuffer(),u=a.index;t.bindBuffer(Al,c),t.uniformBlockBinding(e,a.index,u);let f=r+".";eg.test(f)&&(f=f.replace(eg,"."));const l={},d={},h={};return a.uniformIndices.forEach(function(p){const m=o[p];let g=m.name;g.startsWith(f)&&(g=g.substr(f.length));const y=g.endsWith("[0]");y&&(g=g.substr(0,g.length-3));const b=P[m.type],w=b.Type,C=y?nD(b.size,16)*m.size:b.size*m.size,x=new w(s,m.offset,C/w.BYTES_PER_ELEMENT);l[g]=x;const v=rD(x,y,b.rows,b.cols);d[g]=v,$m(g,v,h,d)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:c,uniforms:l,setters:d}}function tg(t,e,n){return iD(t,e.program,e.uniformBlockSpec,n)}function oD(t,e,n){const i=(e.uniformBlockSpec||e).blockSpecs[n.name];if(i){const o=i.index;return t.bindBufferRange(Al,o,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function ng(t,e,n){oD(t,e,n)&&t.bufferData(Al,n.array,nE)}function rg(t,e){const n=t.setters;for(const r in e){const i=n[r];if(i){const o=e[r];i(o)}}}function ig(t,e){for(const n in e){const r=t[n];typeof r=="function"?r(e[n]):ig(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 aD(t,e){const n={},r=t.getProgramParameter(e,iE);for(let i=0;i<r;++i){const o=t.getActiveAttrib(e,i);if(Jm(o))continue;const a=t.getAttribLocation(e,o.name),s=fe[o.type],c=s.setter(t,a,s);c.location=a,n[o.name]=c}return n}function sD(t,e){for(const n in e){const r=t[n];r&&r(e[n])}}function Qr(t,e,n){n.vertexArrayObject?t.bindVertexArray(n.vertexArrayObject):(sD(e.attribSetters||e,n.attribs),n.indices&&t.bindBuffer(rE,n.indices))}function cD(t,e){const n=$E(t,e),r=aD(t,e),i={program:e,uniformSetters:n,attribSetters:r};return Fr(t)&&(i.uniformBlockSpec=tD(t,e),i.transformFeedbackInfo=eD(t,e)),i}const uD=4,og=5123;function lo(t,e,n,r,i,o){n=n===void 0?uD: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?og:e.elementType,i,o):t.drawElements(n,c,s===void 0?og:e.elementType,i):o!==void 0?t.drawArraysInstanced(n,i,c,o):t.drawArrays(n,i,c)}const lD=36160,Jn=36161,fD=3553,dD=5121,hD=6402,pD=6408,mD=33190,gD=36012,yD=35056,vD=36013,bD=32854,AD=32855,xD=36194,ag=33189,sg=6401,cg=36168,El=34041,wD=36064,ps=36096,ug=36128,Dl=33306,Ml=33071,Tl=9729,lg=[{format:pD,type:dD,min:Tl,wrap:Ml},{format:El}],ct={};ct[El]=Dl,ct[sg]=ug,ct[cg]=ug,ct[hD]=ps,ct[ag]=ps,ct[mD]=ps,ct[gD]=ps,ct[yD]=Dl,ct[vD]=Dl;function CD(t,e){return ct[t]||ct[e]}const fn={};fn[bD]=!0,fn[AD]=!0,fn[xD]=!0,fn[El]=!0,fn[ag]=!0,fn[sg]=!0,fn[cg]=!0;function SD(t){return fn[t]}function ED(t,e,n,r){const i=lD,o=t.createFramebuffer();t.bindFramebuffer(i,o),n=n||t.drawingBufferWidth,r=r||t.drawingBufferHeight,e=e||lg;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||CD(l,c.internalFormat);if(d||(d=wD+a++),!u)if(f!==void 0||SD(l))u=t.createRenderbuffer(),t.bindRenderbuffer(Jn,u),f>1?t.renderbufferStorageMultisample(Jn,f,l,n,r):t.renderbufferStorage(Jn,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||Ml,h.wrapT=h.wrapT||h.wrap||Ml),u=uo(t,h)}if(tm(t,u))t.framebufferRenderbuffer(i,d,Jn,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||fD,u,c.level||0);else throw new Error("unknown attachment type");s.attachments.push(u)}),s}function DD(t,e,n,r,i){r=r||t.drawingBufferWidth,i=i||t.drawingBufferHeight,e.width=r,e.height=i,n=n||lg,n.forEach(function(o,a){const s=e.attachments[a],c=o.format,u=o.samples;if(u!==void 0||tm(t,s))t.bindRenderbuffer(Jn,s),u>1?t.renderbufferStorageMultisample(Jn,u,c,r,i):t.renderbufferStorage(Jn,c,r,i);else if(Za(t,s))eE(t,s,o,r,i);else throw new Error("unknown attachment type")})}function MD(t,e,n){const r=t.createVertexArray();return t.bindVertexArray(r),e.length||(e=[e]),e.forEach(function(i){Qr(t,i,n)}),t.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const TD=/^(.*?)_/;function ID(t,e){ul(t,0);const n=t.getExtension(e);if(n){const r={},i=TD.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&&em(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},ul(r,0)}return n}const fg=["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 dg(t){for(let e=0;e<fg.length;++e)ID(t,fg[e])}function kD(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){dg(r);break}return r}function ND(t,e){return kD(t,e)}const LD=`/**
18
+ see: http://github.com/greggman/twgl.js for details */const rp=5120,Ic=5121,ip=5122,ap=5123,op=5124,sp=5125,cp=5126,iM=32819,aM=32820,oM=33635,sM=5131,cM=33640,lM=35899,uM=35902,fM=36269,hM=34042,Hv={};{const e=Hv;e[rp]=Int8Array,e[Ic]=Uint8Array,e[ip]=Int16Array,e[ap]=Uint16Array,e[op]=Int32Array,e[sp]=Uint32Array,e[cp]=Float32Array,e[iM]=Uint16Array,e[aM]=Uint16Array,e[oM]=Uint16Array,e[sM]=Uint16Array,e[cM]=Uint32Array,e[lM]=Uint32Array,e[uM]=Uint32Array,e[fM]=Uint32Array,e[hM]=Uint32Array}function lp(e){if(e instanceof Int8Array)return rp;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)return Ic;if(e instanceof Int16Array)return ip;if(e instanceof Uint16Array)return ap;if(e instanceof Int32Array)return op;if(e instanceof Uint32Array)return sp;if(e instanceof Float32Array)return cp;throw new Error("unsupported typed array type")}function dM(e){if(e===Int8Array)return rp;if(e===Uint8Array||e===Uint8ClampedArray)return Ic;if(e===Int16Array)return ip;if(e===Uint16Array)return ap;if(e===Int32Array)return op;if(e===Uint32Array)return sp;if(e===Float32Array)return cp;throw new Error("unsupported typed array type")}function pM(e){const t=Hv[e];if(!t)throw new Error("unknown gl type");return t}const of=typeof SharedArrayBuffer<"u"?function(t){return t&&t.buffer&&(t.buffer instanceof ArrayBuffer||t.buffer instanceof SharedArrayBuffer)}:function(t){return t&&t.buffer&&t.buffer instanceof ArrayBuffer};function gM(...e){console.error(...e)}function Gv(...e){console.warn(...e)}function mM(e,t){return typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer}function $v(e,t){return typeof WebGLRenderbuffer<"u"&&t instanceof WebGLRenderbuffer}function sf(e,t){return typeof WebGLTexture<"u"&&t instanceof WebGLTexture}function bM(e,t){return typeof WebGLSampler<"u"&&t instanceof WebGLSampler}const Vv=35044,Zn=34962,yM=34963,vM=34660,wM=5120,xM=5121,AM=5122,EM=5123,SM=5124,CM=5125,_M=5126,Yv={attribPrefix:""};function Qv(e,t,n,r,i){e.bindBuffer(t,n),e.bufferData(t,r,i||Vv)}function Zv(e,t,n,r){if(mM(e,t))return t;n=n||Zn;const i=e.createBuffer();return Qv(e,n,i,t,r),i}function qv(e){return e==="indices"}function kM(e){return e instanceof Int8Array||e instanceof Uint8Array}function DM(e){return e===Int8Array||e===Uint8Array}function IM(e){return e.length?e:e.data}const TM=/coord|texture/i,MM=/color|colour/i;function Wv(e,t){let n;if(TM.test(e)?n=2:MM.test(e)?n=4:n=3,t%n>0)throw new Error(`Can not guess numComponents for attribute '${e}'. Tried ${n} but ${t} values is not evenly divisible by ${n}. You should specify it.`);return n}function NM(e,t){return e.numComponents||e.size||Wv(t,IM(e).length)}function up(e,t){if(of(e))return e;if(of(e.data))return e.data;Array.isArray(e)&&(e={data:e});let n=e.type;return n||(qv(t)?n=Uint16Array:n=Float32Array),new n(e.data)}function FM(e,t){const n={};return Object.keys(t).forEach(function(r){if(!qv(r)){const i=t[r],a=i.attrib||i.name||i.attribName||Yv.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!of(i.value))throw new Error("array.value is not array or typedarray");n[a]={value:i.value}}else{let o,s,l,c;if(i.buffer&&i.buffer instanceof WebGLBuffer)o=i.buffer,c=i.numComponents||i.size,s=i.type,l=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const u=i.data||i,f=i.type||Float32Array,h=u*f.BYTES_PER_ELEMENT;s=dM(f),l=i.normalize!==void 0?i.normalize:DM(f),c=i.numComponents||i.size||Wv(r,u),o=e.createBuffer(),e.bindBuffer(Zn,o),e.bufferData(Zn,h,i.drawType||Vv)}else{const u=up(i,r);o=Zv(e,u,void 0,i.drawType),s=lp(u),l=i.normalize!==void 0?i.normalize:kM(u),c=NM(i,r)}n[a]={buffer:o,numComponents:c,type:s,normalize:l,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),e.bindBuffer(Zn,null),n}function BM(e,t,n,r){n=up(n),r!==void 0?(e.bindBuffer(Zn,t.buffer),e.bufferSubData(Zn,r,n)):Qv(e,Zn,t.buffer,n,t.drawType)}function LM(e,t){return t===wM||t===xM?1:t===AM||t===EM?2:t===SM||t===CM||t===_M?4:0}const fp=["position","positions","a_position"];function OM(e,t){let n,r;for(r=0;r<fp.length&&(n=fp[r],!(n in t||(n=Yv.attribPrefix+n,n in t)));++r);r===fp.length&&(n=Object.keys(t)[0]);const i=t[n];e.bindBuffer(Zn,i.buffer);const a=e.getBufferParameter(Zn,vM);e.bindBuffer(Zn,null);const o=LM(e,i.type),s=a/o,l=i.numComponents||i.size,c=s/l;if(c%1!==0)throw new Error(`numComponents ${l} not correct for length ${length}`);return c}function RM(e,t,n){const r=FM(e,t),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const a=t.indices;if(a){const o=up(a,"indices");i.indices=Zv(e,o,yM),i.numElements=o.length,i.elementType=lp(o)}else i.numElements||(i.numElements=OM(e,i.attribs));return i}function Co(e){return!!e.texStorage2D}const hp=function(){const e={},t={};function n(r){const i=r.constructor.name;if(!e[i]){for(const a in r)if(typeof r[a]=="number"){const o=t[r[a]];t[r[a]]=o?`${o} | ${a}`:a}e[i]=!0}}return function(i,a){return n(i),t[a]||(typeof a=="number"?`0x${a.toString(16)}`:a)}}(),si={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},_o=of,Xv=function(){let e;return function(){return e=e||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),e}}(),Kv=6406,qn=6407,Pe=6408,Jv=6409,ew=6410,Tc=6402,tw=34041,cf=33071,zM=9728,PM=9729,Er=3553,Sr=34067,ci=32879,li=35866,lf=34069,UM=34070,jM=34071,HM=34072,GM=34073,$M=34074,dp=10241,pp=10240,uf=10242,ff=10243,nw=32882,VM=33082,YM=33083,QM=33084,ZM=33085,gp=3317,rw=3314,iw=32878,aw=3316,ow=3315,sw=32877,qM=37443,WM=37441,XM=37440,KM=33321,JM=36756,eN=33325,tN=33326,nN=33330,rN=33329,iN=33338,aN=33337,oN=33340,sN=33339,cN=33323,lN=36757,uN=33327,fN=33328,hN=33336,dN=33335,pN=33332,gN=33331,mN=33334,bN=33333,yN=32849,vN=35905,wN=36194,xN=36758,AN=35898,EN=35901,SN=34843,CN=34837,_N=36221,kN=36239,DN=36215,IN=36233,TN=36209,MN=36227,NN=32856,FN=35907,BN=36759,LN=32855,ON=32854,RN=32857,zN=34842,PN=34836,UN=36220,jN=36238,HN=36975,GN=36214,$N=36232,VN=36226,YN=36208,QN=33189,ZN=33190,qN=36012,WN=36013,XN=35056,ui=5120,Ue=5121,hf=5122,ko=5123,df=5124,ma=5125,At=5126,cw=32819,lw=32820,uw=33635,Tn=5131,Mc=36193,mp=33640,KN=35899,JN=35902,e9=36269,t9=34042,pf=33319,Do=33320,gf=6403,Io=36244,To=36248,ba=36249;let bp;function mf(e){if(!bp){const t={};t[Kv]={textureFormat:Kv,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ue,Tn,Mc,At]},t[Jv]={textureFormat:Jv,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ue,Tn,Mc,At]},t[ew]={textureFormat:ew,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[Ue,Tn,Mc,At]},t[qn]={textureFormat:qn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[Ue,Tn,Mc,At,uw]},t[Pe]={textureFormat:Pe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[Ue,Tn,Mc,At,cw,lw]},t[Tc]={textureFormat:Tc,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[ma,ko]},t[KM]={textureFormat:gf,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[Ue]},t[JM]={textureFormat:gf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[ui]},t[eN]={textureFormat:gf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[At,Tn]},t[tN]={textureFormat:gf,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[At]},t[nN]={textureFormat:Io,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ue]},t[rN]={textureFormat:Io,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[ui]},t[pN]={textureFormat:Io,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[ko]},t[gN]={textureFormat:Io,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[hf]},t[mN]={textureFormat:Io,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ma]},t[bN]={textureFormat:Io,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[df]},t[cN]={textureFormat:pf,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[Ue]},t[lN]={textureFormat:pf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[ui]},t[uN]={textureFormat:pf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[At,Tn]},t[fN]={textureFormat:pf,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[At]},t[hN]={textureFormat:Do,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ue]},t[dN]={textureFormat:Do,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[ui]},t[iN]={textureFormat:Do,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ko]},t[aN]={textureFormat:Do,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[hf]},t[oN]={textureFormat:Do,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[ma]},t[sN]={textureFormat:Do,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[df]},t[yN]={textureFormat:qn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[Ue]},t[vN]={textureFormat:qn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ue]},t[wN]={textureFormat:qn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[Ue,uw]},t[xN]={textureFormat:qn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[ui]},t[AN]={textureFormat:qn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[At,Tn,KN]},t[EN]={textureFormat:qn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[At,Tn,JN]},t[SN]={textureFormat:qn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[At,Tn]},t[CN]={textureFormat:qn,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[At]},t[_N]={textureFormat:To,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ue]},t[kN]={textureFormat:To,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[ui]},t[DN]={textureFormat:To,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[ko]},t[IN]={textureFormat:To,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[hf]},t[TN]={textureFormat:To,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[ma]},t[MN]={textureFormat:To,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[df]},t[NN]={textureFormat:Pe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ue]},t[FN]={textureFormat:Pe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ue]},t[BN]={textureFormat:Pe,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[ui]},t[LN]={textureFormat:Pe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[Ue,lw,mp]},t[ON]={textureFormat:Pe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[Ue,cw]},t[RN]={textureFormat:Pe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[mp]},t[zN]={textureFormat:Pe,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[At,Tn]},t[PN]={textureFormat:Pe,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[At]},t[UN]={textureFormat:ba,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ue]},t[jN]={textureFormat:ba,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ui]},t[HN]={textureFormat:ba,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[mp]},t[GN]={textureFormat:ba,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[ko]},t[$N]={textureFormat:ba,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[hf]},t[VN]={textureFormat:ba,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[df]},t[YN]={textureFormat:ba,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[ma]},t[QN]={textureFormat:Tc,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[ko,ma]},t[ZN]={textureFormat:Tc,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ma]},t[qN]={textureFormat:Tc,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[At]},t[XN]={textureFormat:tw,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[t9]},t[WN]={textureFormat:tw,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[e9]},Object.keys(t).forEach(function(n){const r=t[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,a){const o=r.type[a];r.bytesPerElementMap[o]=i})}),bp=t}return bp[e]}function n9(e,t){const n=mf(e);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[t];if(r===void 0)throw"unknown internal format";return r}function Mo(e){const t=mf(e);if(!t)throw"unknown internal format";return{format:t.textureFormat,type:t.type[0]}}function fw(e){return(e&e-1)===0}function r9(e,t,n,r){if(!Co(e))return fw(t)&&fw(n);const i=mf(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function i9(e){const t=mf(e);if(!t)throw"unknown internal format";return t.textureFilterable}function hw(e,t,n){return _o(t)?lp(t):n||Ue}function bf(e,t,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const a=Math.sqrt(i/(t===Sr?6:1));a%1===0?(n=a,r=a):(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 No(e,t){t.colorspaceConversion!==void 0&&e.pixelStorei(qM,t.colorspaceConversion),t.premultiplyAlpha!==void 0&&e.pixelStorei(WM,t.premultiplyAlpha),t.flipY!==void 0&&e.pixelStorei(XM,t.flipY)}function dw(e){e.pixelStorei(gp,4),Co(e)&&(e.pixelStorei(rw,0),e.pixelStorei(iw,0),e.pixelStorei(aw,0),e.pixelStorei(ow,0),e.pixelStorei(sw,0))}function a9(e,t,n,r){r.minMag&&(n.call(e,t,dp,r.minMag),n.call(e,t,pp,r.minMag)),r.min&&n.call(e,t,dp,r.min),r.mag&&n.call(e,t,pp,r.mag),r.wrap&&(n.call(e,t,uf,r.wrap),n.call(e,t,ff,r.wrap),(t===ci||bM(e,t))&&n.call(e,t,nw,r.wrap)),r.wrapR&&n.call(e,t,nw,r.wrapR),r.wrapS&&n.call(e,t,uf,r.wrapS),r.wrapT&&n.call(e,t,ff,r.wrapT),r.minLod&&n.call(e,t,VM,r.minLod),r.maxLod&&n.call(e,t,YM,r.maxLod),r.baseLevel&&n.call(e,t,QM,r.baseLevel),r.maxLevel&&n.call(e,t,ZM,r.maxLevel)}function pw(e,t,n){const r=n.target||Er;e.bindTexture(r,t),a9(e,r,e.texParameteri,n)}function o9(e){return e=e||si.textureColor,_o(e)?e:new Uint8Array([e[0]*255,e[1]*255,e[2]*255,e[3]*255])}function yp(e,t,n,r,i,a){n=n||si.textureOptions,a=a||Pe;const o=n.target||Er;if(r=r||n.width,i=i||n.height,e.bindTexture(o,t),r9(e,r,i,a))e.generateMipmap(o);else{const s=i9(a)?PM:zM;e.texParameteri(o,dp,s),e.texParameteri(o,pp,s),e.texParameteri(o,uf,cf),e.texParameteri(o,ff,cf)}}function Nc(e){return e.auto===!0||e.auto===void 0&&e.level===void 0}function vp(e,t){return t=t||{},t.cubeFaceOrder||[lf,UM,jM,HM,GM,$M]}function wp(e,t){const r=vp(e,t).map(function(i,a){return{face:i,ndx:a}});return r.sort(function(i,a){return i.face-a.face}),r}function gw(e,t,n,r){r=r||si.textureOptions;const i=r.target||Er,a=r.level||0;let o=n.width,s=n.height;const l=r.internalFormat||r.format||Pe,c=Mo(l),u=r.format||c.format,f=r.type||c.type;if(No(e,r),e.bindTexture(i,t),i===Sr){const h=n.width,d=n.height;let p,g;if(h/6===d)p=d,g=[0,0,1,0,2,0,3,0,4,0,5,0];else if(d/6===h)p=h,g=[0,0,0,1,0,2,0,3,0,4,0,5];else if(h/3===d/2)p=h/3,g=[0,0,1,0,2,0,0,1,1,1,2,1];else if(h/2===d/3)p=h/2,g=[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=Xv();y?(y.canvas.width=p,y.canvas.height=p,o=p,s=p,wp(e,r).forEach(function(v){const S=g[v.ndx*2+0]*p,k=g[v.ndx*2+1]*p;y.drawImage(n,S,k,p,p,0,0,p,p),e.texImage2D(v.face,a,l,u,f,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(o=p,s=p,wp(e,r).forEach(function(v){const S=g[v.ndx*2+0]*p,k=g[v.ndx*2+1]*p;e.texImage2D(v.face,a,l,p,p,0,u,f,null),createImageBitmap(n,S,k,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(C){No(e,r),e.bindTexture(i,t),e.texImage2D(v.face,a,l,u,f,C),Nc(r)&&yp(e,t,r,o,s,l)})}))}else if(i===ci||i===li){const h=Math.min(n.width,n.height),d=Math.max(n.width,n.height),p=d/h;if(p%1!==0)throw"can not compute 3D dimensions of element";const g=n.width===d?1:0,y=n.height===d?1:0;e.pixelStorei(gp,1),e.pixelStorei(rw,n.width),e.pixelStorei(iw,0),e.pixelStorei(sw,0),e.texImage3D(i,a,l,h,h,h,0,u,f,null);for(let v=0;v<p;++v){const S=v*h*g,k=v*h*y;e.pixelStorei(aw,S),e.pixelStorei(ow,k),e.texSubImage3D(i,a,0,0,v,h,h,1,u,f,n)}dw(e)}else e.texImage2D(i,a,l,u,f,n);Nc(r)&&yp(e,t,r,o,s,l),pw(e,t,r)}function Fc(){}function s9(e){if(typeof document<"u"){const t=document.createElement("a");return t.href=e,t.hostname===location.hostname&&t.port===location.port&&t.protocol===location.protocol}else{const t=new URL(location.href).origin;return new URL(e,location.href).origin===t}}function c9(e,t){return t===void 0&&!s9(e)?"anonymous":t}function l9(e,t,n){n=n||Fc;let r;if(t=t!==void 0?t:si.crossOrigin,t=c9(e,t),typeof Image<"u"){r=new Image,t!==void 0&&(r.crossOrigin=t);const i=function(){r.removeEventListener("error",a),r.removeEventListener("load",o),r=null},a=function(){const l="couldn't load image: "+e;gM(l),n(l,r),i()},o=function(){n(null,r),i()};return r.addEventListener("error",a),r.addEventListener("load",o),r.src=e,r}else if(typeof ImageBitmap<"u"){let i,a;const o=function(){n(i,a)},s={};t&&(s.mode="cors"),fetch(e,s).then(function(l){if(!l.ok)throw l;return l.blob()}).then(function(l){return createImageBitmap(l,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(l){a=l,setTimeout(o)}).catch(function(l){i=l,setTimeout(o)}),r=null}return r}function mw(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof ImageData<"u"&&e instanceof ImageData||typeof HTMLElement<"u"&&e instanceof HTMLElement}function xp(e,t,n){return mw(e)?(setTimeout(function(){n(null,e)}),e):l9(e,t,n)}function Ap(e,t,n){n=n||si.textureOptions;const r=n.target||Er;if(e.bindTexture(r,t),n.color===!1)return;const i=o9(n.color);if(r===Sr)for(let a=0;a<6;++a)e.texImage2D(lf+a,0,Pe,1,1,0,Pe,Ue,i);else r===ci||r===li?e.texImage3D(r,0,Pe,1,1,1,0,Pe,Ue,i):e.texImage2D(r,0,Pe,1,1,0,Pe,Ue,i)}function u9(e,t,n,r){return r=r||Fc,n=n||si.textureOptions,Ap(e,t,n),n=Object.assign({},n),xp(n.src,n.crossOrigin,function(a,o){a?r(a,t,o):(gw(e,t,o,n),r(null,t,o))})}function f9(e,t,n,r){r=r||Fc;const i=n.src;if(i.length!==6)throw"there must be 6 urls for a cubemap";const a=n.level||0,o=n.internalFormat||n.format||Pe,s=Mo(o),l=n.format||s.format,c=n.type||Ue,u=n.target||Er;if(u!==Sr)throw"target must be TEXTURE_CUBE_MAP";Ap(e,t,n),n=Object.assign({},n);let f=6;const h=[],d=vp(e,n);let p;function g(y){return function(v,S){--f,v?h.push(v):S.width!==S.height?h.push("cubemap face img is not a square: "+S.src):(No(e,n),e.bindTexture(u,t),f===5?vp().forEach(function(k){e.texImage2D(k,a,o,l,c,S)}):e.texImage2D(y,a,o,l,c,S),Nc(n)&&e.generateMipmap(u)),f===0&&r(h.length?h:void 0,t,p)}}p=i.map(function(y,v){return xp(y,n.crossOrigin,g(d[v]))})}function h9(e,t,n,r){r=r||Fc;const i=n.src,a=n.internalFormat||n.format||Pe,o=Mo(a),s=n.format||o.format,l=n.type||Ue,c=n.target||li;if(c!==ci&&c!==li)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";Ap(e,t,n),n=Object.assign({},n);let u=i.length;const f=[];let h;const d=n.level||0;let p=n.width,g=n.height;const y=i.length;let v=!0;function S(k){return function(C,E){if(--u,C)f.push(C);else{if(No(e,n),e.bindTexture(c,t),v){v=!1,p=n.width||E.width,g=n.height||E.height,e.texImage3D(c,d,a,p,g,y,0,s,l,null);for(let w=0;w<y;++w)e.texSubImage3D(c,d,0,0,w,p,g,1,s,l,E)}else{let w=E,A;(E.width!==p||E.height!==g)&&(A=Xv(),w=A.canvas,A.canvas.width=p,A.canvas.height=g,A.drawImage(E,0,0,p,g)),e.texSubImage3D(c,d,0,0,k,p,g,1,s,l,w),A&&w===A.canvas&&(A.canvas.width=0,A.canvas.height=0)}Nc(n)&&e.generateMipmap(c)}u===0&&r(f.length?f:void 0,t,h)}}h=i.map(function(k,C){return xp(k,n.crossOrigin,S(C))})}function bw(e,t,n,r){r=r||si.textureOptions;const i=r.target||Er;e.bindTexture(i,t);let a=r.width,o=r.height,s=r.depth;const l=r.level||0,c=r.internalFormat||r.format||Pe,u=Mo(c),f=r.format||u.format,h=r.type||hw(e,n,u.type);if(_o(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=pM(h);n=new y(n)}const d=n9(c,h),p=n.byteLength/d;if(p%1)throw"length wrong size for format: "+hp(e,f);let g;if(i===ci||i===li)if(!a&&!o&&!s){const y=Math.cbrt(p);if(y%1!==0)throw"can't guess cube size of array of numElements: "+p;a=y,o=y,s=y}else a&&(!o||!s)?(g=bf(e,i,o,s,p/a),o=g.width,s=g.height):o&&(!a||!s)?(g=bf(e,i,a,s,p/o),a=g.width,s=g.height):(g=bf(e,i,a,o,p/s),a=g.width,o=g.height);else g=bf(e,i,a,o,p),a=g.width,o=g.height;if(dw(e),e.pixelStorei(gp,r.unpackAlignment||1),No(e,r),i===Sr){const y=d/n.BYTES_PER_ELEMENT,v=p/6*y;wp(e,r).forEach(S=>{const k=v*S.ndx,C=n.subarray(k,k+v);e.texImage2D(S.face,l,c,a,o,0,f,h,C)})}else i===ci||i===li?e.texImage3D(i,l,c,a,o,s,0,f,h,n):e.texImage2D(i,l,c,a,o,0,f,h,n);return{width:a,height:o,depth:s,type:h}}function d9(e,t,n){const r=n.target||Er;e.bindTexture(r,t);const i=n.level||0,a=n.internalFormat||n.format||Pe,o=Mo(a),s=n.format||o.format,l=n.type||o.type;if(No(e,n),r===Sr)for(let c=0;c<6;++c)e.texImage2D(lf+c,i,a,n.width,n.height,0,s,l,null);else r===ci||r===li?e.texImage3D(r,i,a,n.width,n.height,n.depth,0,s,l,null):e.texImage2D(r,i,a,n.width,n.height,0,s,l,null)}function Bc(e,t,n){n=n||Fc,t=t||si.textureOptions;const r=e.createTexture(),i=t.target||Er;let a=t.width||1,o=t.height||1;const s=t.internalFormat||Pe;e.bindTexture(i,r),i===Sr&&(e.texParameteri(i,uf,cf),e.texParameteri(i,ff,cf));let l=t.src;if(l)if(typeof l=="function"&&(l=l(e,t)),typeof l=="string")u9(e,r,t,n);else if(_o(l)||Array.isArray(l)&&(typeof l[0]=="number"||Array.isArray(l[0])||_o(l[0]))){const c=bw(e,r,l,t);a=c.width,o=c.height}else Array.isArray(l)&&(typeof l[0]=="string"||mw(l[0]))?i===Sr?f9(e,r,t,n):h9(e,r,t,n):(gw(e,r,l,t),a=l.width,o=l.height);else d9(e,r,t);return Nc(t)&&yp(e,r,t,a,o,s),pw(e,r,t),r}function p9(e,t,n,r,i,a){r=r||n.width,i=i||n.height,a=a||n.depth;const o=n.target||Er;e.bindTexture(o,t);const s=n.level||0,l=n.internalFormat||n.format||Pe,c=Mo(l),u=n.format||c.format;let f;const h=n.src;if(h&&(_o(h)||Array.isArray(h)&&typeof h[0]=="number")?f=n.type||hw(e,h,c.type):f=n.type||c.type,o===Sr)for(let d=0;d<6;++d)e.texImage2D(lf+d,s,l,r,i,0,u,f,null);else o===ci||o===li?e.texImage3D(o,s,l,r,i,a,0,u,f,null):e.texImage2D(o,s,l,r,i,0,u,f,null)}const g9=Gv,yf=33984,m9=35048,vf=34962,b9=34963,Ep=35345,yw=35718,y9=35721,v9=35971,w9=35382,x9=35396,A9=35398,E9=35392,S9=35395,wf=5126,vw=35664,ww=35665,xw=35666,Sp=5124,Aw=35667,Ew=35668,Sw=35669,Cw=35670,_w=35671,kw=35672,Dw=35673,Iw=35674,Tw=35675,Mw=35676,C9=35678,_9=35680,k9=35679,D9=35682,I9=35685,T9=35686,M9=35687,N9=35688,F9=35689,B9=35690,L9=36289,O9=36292,R9=36293,Cp=5125,Nw=36294,Fw=36295,Bw=36296,z9=36298,P9=36299,U9=36300,j9=36303,H9=36306,G9=36307,$9=36308,V9=36311,xf=3553,Af=34067,_p=32879,Ef=35866,te={};function Lw(e,t){return te[t].bindPoint}function Y9(e,t){return function(n){e.uniform1f(t,n)}}function Q9(e,t){return function(n){e.uniform1fv(t,n)}}function Z9(e,t){return function(n){e.uniform2fv(t,n)}}function q9(e,t){return function(n){e.uniform3fv(t,n)}}function W9(e,t){return function(n){e.uniform4fv(t,n)}}function Ow(e,t){return function(n){e.uniform1i(t,n)}}function Rw(e,t){return function(n){e.uniform1iv(t,n)}}function zw(e,t){return function(n){e.uniform2iv(t,n)}}function Pw(e,t){return function(n){e.uniform3iv(t,n)}}function Uw(e,t){return function(n){e.uniform4iv(t,n)}}function X9(e,t){return function(n){e.uniform1ui(t,n)}}function K9(e,t){return function(n){e.uniform1uiv(t,n)}}function J9(e,t){return function(n){e.uniform2uiv(t,n)}}function eF(e,t){return function(n){e.uniform3uiv(t,n)}}function tF(e,t){return function(n){e.uniform4uiv(t,n)}}function nF(e,t){return function(n){e.uniformMatrix2fv(t,!1,n)}}function rF(e,t){return function(n){e.uniformMatrix3fv(t,!1,n)}}function iF(e,t){return function(n){e.uniformMatrix4fv(t,!1,n)}}function aF(e,t){return function(n){e.uniformMatrix2x3fv(t,!1,n)}}function oF(e,t){return function(n){e.uniformMatrix3x2fv(t,!1,n)}}function sF(e,t){return function(n){e.uniformMatrix2x4fv(t,!1,n)}}function cF(e,t){return function(n){e.uniformMatrix4x2fv(t,!1,n)}}function lF(e,t){return function(n){e.uniformMatrix3x4fv(t,!1,n)}}function uF(e,t){return function(n){e.uniformMatrix4x3fv(t,!1,n)}}function Ct(e,t,n,r){const i=Lw(e,t);return Co(e)?function(a){let o,s;sf(e,a)?(o=a,s=null):(o=a.texture,s=a.sampler),e.uniform1i(r,n),e.activeTexture(yf+n),e.bindTexture(i,o),e.bindSampler(n,s)}:function(a){e.uniform1i(r,n),e.activeTexture(yf+n),e.bindTexture(i,a)}}function _t(e,t,n,r,i){const a=Lw(e,t),o=new Int32Array(i);for(let s=0;s<i;++s)o[s]=n+s;return Co(e)?function(s){e.uniform1iv(r,o),s.forEach(function(l,c){e.activeTexture(yf+o[c]);let u,f;sf(e,l)?(u=l,f=null):(u=l.texture,f=l.sampler),e.bindSampler(n,f),e.bindTexture(a,u)})}:function(s){e.uniform1iv(r,o),s.forEach(function(l,c){e.activeTexture(yf+o[c]),e.bindTexture(a,l)})}}te[wf]={Type:Float32Array,size:4,setter:Y9,arraySetter:Q9},te[vw]={Type:Float32Array,size:8,setter:Z9,cols:2},te[ww]={Type:Float32Array,size:12,setter:q9,cols:3},te[xw]={Type:Float32Array,size:16,setter:W9,cols:4},te[Sp]={Type:Int32Array,size:4,setter:Ow,arraySetter:Rw},te[Aw]={Type:Int32Array,size:8,setter:zw,cols:2},te[Ew]={Type:Int32Array,size:12,setter:Pw,cols:3},te[Sw]={Type:Int32Array,size:16,setter:Uw,cols:4},te[Cp]={Type:Uint32Array,size:4,setter:X9,arraySetter:K9},te[Nw]={Type:Uint32Array,size:8,setter:J9,cols:2},te[Fw]={Type:Uint32Array,size:12,setter:eF,cols:3},te[Bw]={Type:Uint32Array,size:16,setter:tF,cols:4},te[Cw]={Type:Uint32Array,size:4,setter:Ow,arraySetter:Rw},te[_w]={Type:Uint32Array,size:8,setter:zw,cols:2},te[kw]={Type:Uint32Array,size:12,setter:Pw,cols:3},te[Dw]={Type:Uint32Array,size:16,setter:Uw,cols:4},te[Iw]={Type:Float32Array,size:32,setter:nF,rows:2,cols:2},te[Tw]={Type:Float32Array,size:48,setter:rF,rows:3,cols:3},te[Mw]={Type:Float32Array,size:64,setter:iF,rows:4,cols:4},te[I9]={Type:Float32Array,size:32,setter:aF,rows:2,cols:3},te[T9]={Type:Float32Array,size:32,setter:sF,rows:2,cols:4},te[M9]={Type:Float32Array,size:48,setter:oF,rows:3,cols:2},te[N9]={Type:Float32Array,size:48,setter:lF,rows:3,cols:4},te[F9]={Type:Float32Array,size:64,setter:cF,rows:4,cols:2},te[B9]={Type:Float32Array,size:64,setter:uF,rows:4,cols:3},te[C9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:xf},te[_9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:Af},te[k9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:_p},te[D9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:xf},te[L9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:Ef},te[O9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:Ef},te[R9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:Af},te[z9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:xf},te[P9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:_p},te[U9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:Af},te[j9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:Ef},te[H9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:xf},te[G9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:_p},te[$9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:Af},te[V9]={Type:null,size:0,setter:Ct,arraySetter:_t,bindPoint:Ef};function Sf(e,t){return function(n){if(n.value)switch(e.disableVertexAttribArray(t),n.value.length){case 4:e.vertexAttrib4fv(t,n.value);break;case 3:e.vertexAttrib3fv(t,n.value);break;case 2:e.vertexAttrib2fv(t,n.value);break;case 1:e.vertexAttrib1fv(t,n.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else e.bindBuffer(vf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,n.numComponents||n.size,n.type||wf,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function fi(e,t){return function(n){if(n.value)if(e.disableVertexAttribArray(t),n.value.length===4)e.vertexAttrib4iv(t,n.value);else throw new Error("The length of an integer constant value must be 4!");else e.bindBuffer(vf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||Sp,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Cf(e,t){return function(n){if(n.value)if(e.disableVertexAttribArray(t),n.value.length===4)e.vertexAttrib4uiv(t,n.value);else throw new Error("The length of an unsigned integer constant value must be 4!");else e.bindBuffer(vf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||Cp,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function kp(e,t,n){const r=n.size,i=n.count;return function(a){e.bindBuffer(vf,a.buffer);const o=a.size||a.numComponents||r,s=o/i,l=a.type||wf,u=te[l].size*o,f=a.normalize||!1,h=a.offset||0,d=u/i;for(let p=0;p<i;++p)e.enableVertexAttribArray(t+p),e.vertexAttribPointer(t+p,s,l,f,u,h+d*p),a.divisor!==void 0&&e.vertexAttribDivisor(t+p,a.divisor)}}const nt={};nt[wf]={size:4,setter:Sf},nt[vw]={size:8,setter:Sf},nt[ww]={size:12,setter:Sf},nt[xw]={size:16,setter:Sf},nt[Sp]={size:4,setter:fi},nt[Aw]={size:8,setter:fi},nt[Ew]={size:12,setter:fi},nt[Sw]={size:16,setter:fi},nt[Cp]={size:4,setter:Cf},nt[Nw]={size:8,setter:Cf},nt[Fw]={size:12,setter:Cf},nt[Bw]={size:16,setter:Cf},nt[Cw]={size:4,setter:fi},nt[_w]={size:8,setter:fi},nt[kw]={size:12,setter:fi},nt[Dw]={size:16,setter:fi},nt[Iw]={size:4,setter:kp,count:2},nt[Tw]={size:9,setter:kp,count:3},nt[Mw]={size:16,setter:kp,count:4};function jw(e){const t=e.name;return t.startsWith("gl_")||t.startsWith("webgl_")}const fF=/(\.|\[|]|\w+)/g,hF=e=>e>="0"&&e<="9";function Hw(e,t,n,r){const i=e.split(fF).filter(s=>s!=="");let a=0,o="";for(;;){const s=i[a++];o+=s;const l=hF(s[0]),c=l?parseInt(s):s;if(l&&(o+=i[a++]),a===i.length){n[c]=t;break}else{const f=i[a++],h=f==="[",d=n[c]||(h?[]:{});n[c]=d,n=d,r[o]=r[o]||function(p){return function(g){Qw(p,g)}}(d),o+=f}}}function dF(e,t){let n=0;function r(s,l,c){const u=l.name.endsWith("[0]"),f=l.type,h=te[f];if(!h)throw new Error(`unknown type: 0x${f.toString(16)}`);let d;if(h.bindPoint){const p=n;n+=l.size,u?d=h.arraySetter(e,f,p,c,l.size):d=h.setter(e,f,p,c,l.size)}else h.arraySetter&&u?d=h.arraySetter(e,c):d=h.setter(e,c);return d.location=c,d}const i={},a={},o=e.getProgramParameter(t,yw);for(let s=0;s<o;++s){const l=e.getActiveUniform(t,s);if(jw(l))continue;let c=l.name;c.endsWith("[0]")&&(c=c.substr(0,c.length-3));const u=e.getUniformLocation(t,l.name);if(u){const f=r(t,l,u);i[c]=f,Hw(c,f,a,i)}}return i}function pF(e,t){const n={},r=e.getProgramParameter(t,v9);for(let i=0;i<r;++i){const a=e.getTransformFeedbackVarying(t,i);n[a.name]={index:i,type:a.type,size:a.size}}return n}function gF(e,t){const n=e.getProgramParameter(t,yw),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const l=e.getActiveUniform(t,s);r[s].name=l.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const l=s[0],c=s[1];e.getActiveUniforms(t,i,e[l]).forEach(function(u,f){r[f][c]=u})});const a={},o=e.getProgramParameter(t,w9);for(let s=0;s<o;++s){const l=e.getActiveUniformBlockName(t,s),c={index:e.getUniformBlockIndex(t,l),usedByVertexShader:e.getActiveUniformBlockParameter(t,s,x9),usedByFragmentShader:e.getActiveUniformBlockParameter(t,s,A9),size:e.getActiveUniformBlockParameter(t,s,E9),uniformIndices:e.getActiveUniformBlockParameter(t,s,S9)};c.used=c.usedByVertexShader||c.usedByFragmentShader,a[l]=c}return{blockSpecs:a,uniformData:r}}const Gw=/\[\d+\]\.$/,mF=(e,t)=>((e+(t-1))/t|0)*t;function bF(e,t,n,r){if(t||n){r=r||1;const a=e.length/4;return function(o){let s=0,l=0;for(let c=0;c<a;++c){for(let u=0;u<r;++u)e[s++]=o[l++];s+=4-r}}}else return function(i){i.length?e.set(i):e[0]=i}}function yF(e,t,n,r){const i=n.blockSpecs,a=n.uniformData,o=i[r];if(!o)return g9("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(o.size),l=e.createBuffer(),c=o.index;e.bindBuffer(Ep,l),e.uniformBlockBinding(t,o.index,c);let u=r+".";Gw.test(u)&&(u=u.replace(Gw,"."));const f={},h={},d={};return o.uniformIndices.forEach(function(p){const g=a[p];let y=g.name;y.startsWith(u)&&(y=y.substr(u.length));const v=y.endsWith("[0]");v&&(y=y.substr(0,y.length-3));const S=te[g.type],k=S.Type,C=v?mF(S.size,16)*g.size:S.size*g.size,E=new k(s,g.offset,C/k.BYTES_PER_ELEMENT);f[y]=E;const w=bF(E,v,S.rows,S.cols);h[y]=w,Hw(y,w,d,h)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:l,uniforms:f,setters:h}}function $w(e,t,n){return yF(e,t.program,t.uniformBlockSpec,n)}function vF(e,t,n){const i=(t.uniformBlockSpec||t).blockSpecs[n.name];if(i){const a=i.index;return e.bindBufferRange(Ep,a,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function Vw(e,t,n){vF(e,t,n)&&e.bufferData(Ep,n.array,m9)}function Yw(e,t){const n=e.setters;for(const r in t){const i=n[r];if(i){const a=t[r];i(a)}}}function Qw(e,t){for(const n in t){const r=e[n];typeof r=="function"?r(t[n]):Qw(e[n],t[n])}}function $t(e,...t){const n=e.uniformSetters||e,r=t.length;for(let i=0;i<r;++i){const a=t[i];if(Array.isArray(a)){const o=a.length;for(let s=0;s<o;++s)$t(n,a[s])}else for(const o in a){const s=n[o];s&&s(a[o])}}}function wF(e,t){const n={},r=e.getProgramParameter(t,y9);for(let i=0;i<r;++i){const a=e.getActiveAttrib(t,i);if(jw(a))continue;const o=e.getAttribLocation(t,a.name),s=nt[a.type],l=s.setter(e,o,s);l.location=o,n[a.name]=l}return n}function xF(e,t){for(const n in t){const r=e[n];r&&r(t[n])}}function Fo(e,t,n){n.vertexArrayObject?e.bindVertexArray(n.vertexArrayObject):(xF(t.attribSetters||t,n.attribs),n.indices&&e.bindBuffer(b9,n.indices))}function AF(e,t){const n=dF(e,t),r=wF(e,t),i={program:t,uniformSetters:n,attribSetters:r};return Co(e)&&(i.uniformBlockSpec=gF(e,t),i.transformFeedbackInfo=pF(e,t)),i}const EF=4,Zw=5123;function Lc(e,t,n,r,i,a){n=n===void 0?EF:n;const o=t.indices,s=t.elementType,l=r===void 0?t.numElements:r;i=i===void 0?0:i,s||o?a!==void 0?e.drawElementsInstanced(n,l,s===void 0?Zw:t.elementType,i,a):e.drawElements(n,l,s===void 0?Zw:t.elementType,i):a!==void 0?e.drawArraysInstanced(n,i,l,a):e.drawArrays(n,i,l)}const SF=36160,ya=36161,CF=3553,_F=5121,kF=6402,DF=6408,IF=33190,TF=36012,MF=35056,NF=36013,FF=32854,BF=32855,LF=36194,qw=33189,Ww=6401,Xw=36168,Dp=34041,OF=36064,_f=36096,Kw=36128,Ip=33306,Tp=33071,Mp=9729,Jw=[{format:DF,type:_F,min:Mp,wrap:Tp},{format:Dp}],Mn={};Mn[Dp]=Ip,Mn[Ww]=Kw,Mn[Xw]=Kw,Mn[kF]=_f,Mn[qw]=_f,Mn[IF]=_f,Mn[TF]=_f,Mn[MF]=Ip,Mn[NF]=Ip;function RF(e,t){return Mn[e]||Mn[t]}const hi={};hi[FF]=!0,hi[BF]=!0,hi[LF]=!0,hi[Dp]=!0,hi[qw]=!0,hi[Ww]=!0,hi[Xw]=!0;function zF(e){return hi[e]}function PF(e,t,n,r){const i=SF,a=e.createFramebuffer();e.bindFramebuffer(i,a),n=n||e.drawingBufferWidth,r=r||e.drawingBufferHeight,t=t||Jw;let o=0;const s={framebuffer:a,attachments:[],width:n,height:r};return t.forEach(function(l){let c=l.attachment;const u=l.samples,f=l.format;let h=l.attachmentPoint||RF(f,l.internalFormat);if(h||(h=OF+o++),!c)if(u!==void 0||zF(f))c=e.createRenderbuffer(),e.bindRenderbuffer(ya,c),u>1?e.renderbufferStorageMultisample(ya,u,f,n,r):e.renderbufferStorage(ya,f,n,r);else{const d=Object.assign({},l);d.width=n,d.height=r,d.auto===void 0&&(d.auto=!1,d.min=d.min||d.minMag||Mp,d.mag=d.mag||d.minMag||Mp,d.wrapS=d.wrapS||d.wrap||Tp,d.wrapT=d.wrapT||d.wrap||Tp),c=Bc(e,d)}if($v(e,c))e.framebufferRenderbuffer(i,h,ya,c);else if(sf(e,c))l.layer!==void 0?e.framebufferTextureLayer(i,h,c,l.level||0,l.layer):e.framebufferTexture2D(i,h,l.target||CF,c,l.level||0);else throw new Error("unknown attachment type");s.attachments.push(c)}),s}function UF(e,t,n,r,i){r=r||e.drawingBufferWidth,i=i||e.drawingBufferHeight,t.width=r,t.height=i,n=n||Jw,n.forEach(function(a,o){const s=t.attachments[o],l=a.format,c=a.samples;if(c!==void 0||$v(e,s))e.bindRenderbuffer(ya,s),c>1?e.renderbufferStorageMultisample(ya,c,l,r,i):e.renderbufferStorage(ya,l,r,i);else if(sf(e,s))p9(e,s,a,r,i);else throw new Error("unknown attachment type")})}function jF(e,t,n){const r=e.createVertexArray();return e.bindVertexArray(r),t.length||(t=[t]),t.forEach(function(i){Fo(e,i,n)}),e.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const HF=/^(.*?)_/;function GF(e,t){hp(e,0);const n=e.getExtension(t);if(n){const r={},i=HF.exec(t)[1],a="_"+i;for(const o in n){const s=n[o],l=typeof s=="function",c=l?i:a;let u=o;o.endsWith(c)&&(u=o.substring(0,o.length-c.length)),e[u]!==void 0?!l&&e[u]!==s&&Gv(u,e[u],s,o):l?e[u]=function(f){return function(){return f.apply(n,arguments)}}(s):(e[u]=s,r[u]=s)}r.constructor={name:n.constructor.name},hp(r,0)}return n}const ex=["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 tx(e){for(let t=0;t<ex.length;++t)GF(e,ex[t])}function $F(e,t){const n=["webgl2","webgl","experimental-webgl"];let r=null;for(let i=0;i<n.length;++i)if(r=e.getContext(n[i],t),r){tx(r);break}return r}function VF(e,t){return $F(e,t)}const YF=`/**
19
19
  * The vertex position wrt the rectangle specified by (x, x2, y, y2).
20
20
  * [0, 0] = [x, y], [1, 1] = [x2, y2].
21
21
  * The x or y component may contain fractional values if the rectangle
@@ -129,7 +129,7 @@ void main(void) {
129
129
 
130
130
  setupPicking();
131
131
  }
132
- `,BD=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
132
+ `,QF=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
133
133
  in vec2 vPosInPixels;
134
134
  #endif
135
135
 
@@ -180,28 +180,28 @@ void main(void) {
180
180
  fragColor = vPickingColor;
181
181
  }
182
182
  }
183
- `,Il="attr_",hg="uDomain_",OD="range_",pg="scale_",mg="getScaled_",kl="uRangeTexture_",gg=3402823466e29;function FD(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 PD(t,e){let n;if(Wa(t))n=$n(Jp(t)(e));else if(re(e))if(Zn(t))n=RD(e);else throw new Error(`String values are not supported on the "${t}" channel: ${e}`);else if(ia(e))n=$n(e?1:0);else if(e===null)if(Zn(t))n=$n([0,0,0]);else throw new Error(`null value is not supported on the "${t}" chanel.`);else n=$n(e);return`
184
- #define ${t}_DEFINED
185
- ${n.type} ${mg}${t}() {
183
+ `,Np="attr_",nx="uDomain_",ZF="range_",rx="scale_",ix="getScaled_",Fp="uRangeTexture_",ax=3402823466e29;function qF(e){const t=e.match(/^(?:(\w+)-)?(\w+)$/);if(!t)throw new Error("Not a scale type: "+e);return{family:t[1]||"continuous",transform:t[2]}}function WF(e,t){let n;if(af(e))n=va(jv(e)(t));else if(ze(t))if(ga(e))n=KF(t);else throw new Error(`String values are not supported on the "${e}" channel: ${t}`);else if(gu(t))n=va(t?1:0);else if(t===null)if(ga(e))n=va([0,0,0]);else throw new Error(`null value is not supported on the "${e}" chanel.`);else n=va(t);return`
184
+ #define ${e}_DEFINED
185
+ ${n.type} ${ix}${e}() {
186
186
  // Constant value
187
187
  return ${n};
188
- }`}function zD(t,e,n){if(at(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);const r=Or(t),i=Il+t,o=hg+r,a=OD+r,s=ms(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}=FD(e.type),h=(A,...D)=>jD.apply(null,[A,"value",...D]);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(),n.band??.5);break;case"point":case"band":p=h("scaleBand","domain",a,e.paddingInner(),e.paddingOuter(),e.align(),n.band??.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=za(e.type)||Be(e.type)&&Zn(t)?[0,1]:e.range?e.range():void 0;if(m&&t==r&&m.length&&m.every(le)){const A=yg(m);l.push(`const ${A.type} ${a} = ${A};`)}const g=Zn(t)?"vec3":"float";let y;if(Zn(t)){const A=kl+r;if(t==r&&l.push(`uniform sampler2D ${A};`),Be(e.type))y=`getInterpolatedColor(${A}, transformed)`;else if(rn(e.type)||Gn(e.type))y=`getDiscreteColor(${A}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(e.type==="ordinal"||Gn(e.type)){const A=kl+r;t==r&&l.push(`uniform sampler2D ${A};`),y=`getDiscreteColor(${A}, int(transformed)).r`}eo(n)?l.push(`uniform highp ${c} ${i};`):l.push(`in highp ${c} ${i};`);const b=[],w=Be(e.type)&&u>2,C=Gn(e.type)||w;if(b.push("int slot = 0;"),C){const A=o;b.push(w?`while (slot < ${A}.length() - 2 && value >= ${A}[slot + 1]) { slot++; }`:`while (slot < ${A}.length() && value >= ${A}[slot]) { slot++; }`)}const x=Be(e.type)||Gn(e.type)||["band","point"].includes(e.type);if(p){const A=o;x&&(s?b.push(`vec3 domain = ${A};`):b.push(`vec2 domain = vec2(${A}[slot], ${A}[slot + 1]);`)),b.push(`float transformed = ${p};`),w&&b.push(`transformed = (float(slot) + transformed) / (float(${A}.length() - 1));`)}else b.push("float transformed = float(slot);");"clamp"in e&&e.clamp()&&b.push(`transformed = clampToRange(transformed, ${yg(m)});`),b.push(`return ${y??"transformed"};`),l.push(`
189
- ${g} ${pg}${t}(${c} value) {
190
- ${b.map(A=>` ${A}
188
+ }`}function XF(e,t,n){if(In(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);const r=So(e),i=Np+e,a=nx+r,o=ZF+r,s=kf(t.type),l=s?"vec2":"float",c=t.domain?t.domain().length:void 0;let u;const f=[];f.push(""),f.push("/".repeat(70)),f.push(`// Channel: ${e}`),f.push(""),f.push(`#define ${e}_DEFINED`);const{transform:h}=qF(t.type),d=(A,...T)=>JF.apply(null,[A,"value",...T]);let p;switch(h){case"linear":p=d("scaleLinear","domain",o);break;case"log":p=d("scaleLog","domain",o,t.base());break;case"symlog":p=d("scaleSymlog","domain",o,t.constant());break;case"pow":case"sqrt":p=d("scalePow","domain",o,t.exponent());break;case"index":case"locus":p=d("scaleBandHp","domain",o,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"point":case"band":p=d("scaleBand","domain",o,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"ordinal":case"null":case"identity":p=d("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${t.type}! ${e}: ${JSON.stringify(n)}`)}const g=Zu(t.type)||Ft(t.type)&&ga(e)?[0,1]:t.range?t.range():void 0;if(g&&e==r&&g.length&&g.every(Ke)){const A=ox(g);f.push(`const ${A.type} ${o} = ${A};`)}const y=ga(e)?"vec3":"float";let v;if(ga(e)){const A=Fp+r;if(e==r&&f.push(`uniform sampler2D ${A};`),Ft(t.type))v=`getInterpolatedColor(${A}, transformed)`;else if(ai(t.type)||sa(t.type))v=`getDiscreteColor(${A}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(t.type==="ordinal"||sa(t.type)){const A=Fp+r;e==r&&f.push(`uniform sampler2D ${A};`),v=`getDiscreteColor(${A}, int(transformed)).r`}Cc(n)?f.push(`uniform highp ${l} ${i};`):f.push(`in highp ${l} ${i};`);const S=[],k=Ft(t.type)&&c>2,C=sa(t.type)||k;if(S.push("int slot = 0;"),C){const A=a;S.push(k?`while (slot < ${A}.length() - 2 && value >= ${A}[slot + 1]) { slot++; }`:`while (slot < ${A}.length() && value >= ${A}[slot]) { slot++; }`)}const E=Ft(t.type)||sa(t.type)||["band","point"].includes(t.type);if(p){const A=a;E&&(s?S.push(`vec3 domain = ${A};`):S.push(`vec2 domain = vec2(${A}[slot], ${A}[slot + 1]);`)),S.push(`float transformed = ${p};`),k&&S.push(`transformed = (float(slot) + transformed) / (float(${A}.length() - 1));`)}else S.push("float transformed = float(slot);");"clamp"in t&&t.clamp()&&S.push(`transformed = clampToRange(transformed, ${ox(g)});`),S.push(`return ${v??"transformed"};`),f.push(`
189
+ ${y} ${rx}${e}(${l} value) {
190
+ ${S.map(A=>` ${A}
191
191
  `).join("")}
192
- }`),l.push(`
193
- ${g} ${mg}${t}() {
194
- return ${pg}${t}(${i});
195
- }`);const v=l.join(`
196
- `);if(x&&t==r){const A=Be(e.type)||Gn(e.type)?u:2;f=s?`highp vec3 ${o};`:`mediump float ${o}[${A}];`}return{glsl:v,domainUniform:f}}function Nl(t){if(!le(t))throw new Error(`Not a number: ${t}`);if(t==1/0)return""+gg;if(t==-1/0)return""+-gg;{let e=`${t}`;return/^(-)?\d+$/.test(e)&&(e+=".0"),e}}function $n(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(Nl).join(", ")})`):(n="float",r=Nl(t[0])),Object.assign(r,{type:n,numComponents:e})}function RD(t){const e=Pn(t).rgb();return $n([e.r,e.g,e.b].map(n=>n/255))}function yg(t){return $n([t[0],je(t)])}function jD(t,...e){const n=[];for(const r of e)le(r)?n.push(Nl(r)):We(r)?n.push($n(r)):n.push(r);return`${t}(${n.join(", ")})`}function ms(t){return t=="index"||t=="locus"}const vg=2**11,UD=vg-1;function bg(t,e=[]){const n=t&UD,r=t-n;return e[0]=r,e[1]=n,e}function GD(t){const e=t%vg;return[t-e,e]}function HD(t){return[...GD(t[0]),t[1]-t[0]]}class QD{constructor(e){this.size=e,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}addConverter(e,n){const r=this.createUpdater(Il+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(!le(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??[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}];
192
+ }`),f.push(`
193
+ ${y} ${ix}${e}() {
194
+ return ${rx}${e}(${i});
195
+ }`);const w=f.join(`
196
+ `);if(E&&e==r){const A=Ft(t.type)||sa(t.type)?c:2;u=s?`highp vec3 ${a};`:`mediump float ${a}[${A}];`}return{glsl:w,domainUniform:u}}function Bp(e){if(!Ke(e))throw new Error(`Not a number: ${e}`);if(e==1/0)return""+ax;if(e==-1/0)return""+-ax;{let t=`${e}`;return/^(-)?\d+$/.test(t)&&(t+=".0"),t}}function va(e){typeof e=="number"&&(e=[e]);const t=e.length;if(t<1||t>4)throw new Error("Invalid number of components: "+t);let n,r;return t>1?(n=`vec${t}`,r=`${n}(${e.map(Bp).join(", ")})`):(n="float",r=Bp(e[0])),Object.assign(r,{type:n,numComponents:t})}function KF(e){const t=na(e).rgb();return va([t.r,t.g,t.b].map(n=>n/255))}function ox(e){return va([e[0],Gt(e)])}function JF(e,...t){const n=[];for(const r of t)Ke(r)?n.push(Bp(r)):en(r)?n.push(va(r)):n.push(r);return`${e}(${n.join(", ")})`}function kf(e){return e=="index"||e=="locus"}const sx=2**11,eB=sx-1;function cx(e,t=[]){const n=e&eB,r=e-n;return t[0]=r,t[1]=n,t}function tB(e){const t=e%sx;return[e-t,t]}function nB(e){return[...tB(e[0]),e[1]-e[0]]}class rB{constructor(t){this.size=t,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}addConverter(t,n){const r=this.createUpdater(Np+t,n.numComponents||1,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?a=>r(i(a)):a=>r(i(a)))}createUpdater(t,n,r){if(!Ke(this.size))throw new Error("The number of vertices must be defined!");let i,a,o=0;const s=new Float32Array(this.size*n);if(this.arrays[t]={data:s,numComponents:n},n==1){let l=0;const c=u=>{l=+u};i=()=>{s[o++]=l},a=c}else{let l=r??[0];const c=r?u=>{}:u=>{l=u};switch(n){case 1:break;case 2:i=()=>{s[o++]=l[0],s[o++]=l[1]},a=c;break;case 3:i=()=>{s[o++]=l[0],s[o++]=l[1],s[o++]=l[2]},a=c;break;case 4:i=()=>{s[o++]=l[0],s[o++]=l[1],s[o++]=l[2],s[o++]=l[3]},a=c;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(i),a}_unrollPushAll(){let t="",n="";for(let i=0;i<this.pushers.length;i++)t+=`const p${i} = that.pushers[${i}];
197
197
  `,n+=`p${i}();
198
- `;const r=new Function("that",`${e}
198
+ `;const r=new Function("that",`${t}
199
199
 
200
200
  return function unrolledPushAll() {
201
201
  ${n}
202
202
  that.vertexCount++;
203
203
  };
204
- `);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 Vr=5,Ll=127;function Bl(t){const e=[];for(let p=0;p<=Ll;p++)e.push(void 0);const n=new Map;for(const p of t.chars)p.id<=Ll?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<=Ll?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-Vr*2,l=c.height-Vr*2,d=u.height-s.height+u.yoffset-s.yoffset;function h(p,m=1){let g=0;for(let y=0;y<p.length;y++)g+=i(p.charCodeAt(y)).xadvance;return g/a*m}return{measureWidth:h,getCharByCode:i,getChar:o,xHeight:f,capHeight:l,descent:d,common:t.common}}function gs(t,e=0,n=1){return Math.max(e,Math.min(n,t))}const Ag=2**31-1,VD=-(2**31);function YD(t,e,n,r=n){const i=new Int32Array(t);i.fill(Ag);let o=VD,a=!1;const s=new Int32Array(t),c=e[0],f=(e[1]-e[0])/t,l=(g,y)=>{const b=(g-c)/f,w=Math.floor(b);return gs(y&&w==b?w-1:w,0,t-1)};function d(g,y,b){y>o?o=y:a||(a=!0,console.debug("Items are not ordered properly. Disabling binned index."));const w=n(g),C=l(w,!1);i[C]>y&&(i[C]=y),s[C]<b&&(s[C]=b)}function h(g,y,b){y>o?o=y:a||(a=!0,console.debug("Items are not ordered properly. Disabling binned index."));const w=n(g),C=r(g),x=l(w,!1),v=l(C,!0);for(let A=x;A<=v;A++)i[A]>y&&(i[A]=y),s[A]<b&&(s[A]=b)}const p=(g,y,b=[0,0])=>{const w=l(g,!1),C=l(y,!0),x=i[w],v=Math.max(s[C],x);return b[0]=x,b[1]=v,b},m=()=>{for(let y=1;y<s.length;y++)s[y]<s[y-1]&&(s[y]=s[y-1]);let g=!0;for(let y=i.length-1;y>0;y--)g&&i[y]==Ag?(i[y]=s[y],g=!1):i[y-1]>i[y]&&(i[y-1]=i[y]);return p};if(d.getIndex=m,h.getIndex=m,!a)return n==r?d:h}class fo{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 QD(n);for(const[i,o]of Object.entries(this.variableEncoders)){const a=o.accessor,s=[0,0],c=ms(o.scale.type),u=o.indexer,f=u?l=>u(a(l)):c?l=>bg(a(l),s):a;this.variableBuilder.addConverter(i,{f,numComponents:c?2:1,arrayReference:c?s:void 0})}this.lastOffset=0,this.rangeMap=new Tn([],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&&Be((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=YD(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 _D extends fo{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 g=1;this.variableBuilder.pushAll();for(let y=0;y<=g;y++)l[0]=y/g,l[1]=0,this.variableBuilder.pushAll(),l[1]=1,this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(h)}this.registerBatch(e)}}class WD extends fo{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 XD extends fo{constructor({encoders:e,attributes:n,numItems:r=void 0}){super({encoders:e,attributes:n,numVertices:r})}}class ZD extends fo{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 qD extends fo{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?he(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){const o=this.properties.align||"left",a=this.properties.logoLetters??!1,s=this.metadata.common.base,c=this.metadata.common.scaleH;let u=-Vr;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 h=r;h<i;h++){const p=n[h],m=this.numberFormat(f(p)),g=re(m)?m:m===null?"":""+m;if(g.length==0)continue;this.variableBuilder.updateFromDatum(p);const y=a?g.length:this.metrics.measureWidth(g);this.updateWidth(y);let b=o=="right"?-y:o=="center"?-y/2:0;if(!a){const v=this.metrics.getCharByCode(g.charCodeAt(0));b-=(v.width-v.xadvance)/s/2}let w=-.5,C=1,x=1;for(let v=0;v<g.length;v++){const A=this.metrics.getCharByCode(g.charCodeAt(v)),D=a?1:A.xadvance/s;if(A.id==32){b+=D;continue}a?(x=(A.width+Vr*2)/A.width,b=-x/2,C=(A.height+Vr*2)/A.height,w=-.5-Vr/A.height):(C=A.height/s,w=-(A.height+A.yoffset+u)/s,x=A.width/s);const O=A.x,k=A.y;l[0]=b,l[1]=w+C,d[0]=O/c,d[1]=k/c,this.variableBuilder.pushAll(),l[0]=b+x,l[1]=w+C,d[0]=(O+A.width)/c,d[1]=k/c,this.variableBuilder.pushAll(),l[0]=b,l[1]=w,d[0]=O/c,d[1]=(k+A.height)/c,this.variableBuilder.pushAll(),l[0]=b+x,l[1]=w+C,d[0]=(O+A.width)/c,d[1]=k/c,this.variableBuilder.pushAll(),l[0]=b,l[1]=w,d[0]=O/c,d[1]=(k+A.height)/c,this.variableBuilder.pushAll(),l[0]=b+x,l[1]=w,d[0]=(O+A.width)/c,d[1]=(k+A.height)/c,this.variableBuilder.pushAll(),b+=D}this.addToXIndex(p)}this.registerBatch(e)}}const xg=`#define PI 3.141593
204
+ `);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(t){for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](t)}pushFromDatum(t){this.updateFromDatum(t),this.pushAll()}}const Bo=5,Lp=127;function Op(e){const t=[];for(let p=0;p<=Lp;p++)t.push(void 0);const n=new Map;for(const p of e.chars)p.id<=Lp?t[p.id]=p:n.set(p.id,p);const r=8722;n.has(r)||n.set(r,t["-".charCodeAt(0)]);function i(p){return(p<=Lp?t[p]:n.get(p))||t[63]}function a(p){return i(p.charCodeAt(0))}const o=e.common.base,s=a("x"),l=a("X"),c=a("q"),u=s.height-Bo*2,f=l.height-Bo*2,h=c.height-s.height+c.yoffset-s.yoffset;function d(p,g=1){let y=0;for(let v=0;v<p.length;v++)y+=i(p.charCodeAt(v)).xadvance;return y/o*g}return{measureWidth:d,getCharByCode:i,getChar:a,xHeight:u,capHeight:f,descent:h,common:e.common}}function Df(e,t=0,n=1){return Math.max(t,Math.min(n,e))}const lx=2**31-1,iB=-(2**31);function aB(e,t,n,r=n){const i=new Int32Array(e);i.fill(lx);let a=iB,o=!1;const s=new Int32Array(e),l=t[0],u=(t[1]-t[0])/e,f=(y,v)=>{const S=(y-l)/u,k=Math.floor(S);return Df(v&&k==S?k-1:k,0,e-1)};function h(y,v,S){v>a?a=v:o||(o=!0,console.debug("Items are not ordered properly. Disabling binned index."));const k=n(y),C=f(k,!1);i[C]>v&&(i[C]=v),s[C]<S&&(s[C]=S)}function d(y,v,S){v>a?a=v:o||(o=!0,console.debug("Items are not ordered properly. Disabling binned index."));const k=n(y),C=r(y),E=f(k,!1),w=f(C,!0);for(let A=E;A<=w;A++)i[A]>v&&(i[A]=v),s[A]<S&&(s[A]=S)}const p=(y,v,S=[0,0])=>{const k=f(y,!1),C=f(v,!0),E=i[k],w=Math.max(s[C],E);return S[0]=E,S[1]=w,S},g=()=>{for(let v=1;v<s.length;v++)s[v]<s[v-1]&&(s[v]=s[v-1]);let y=!0;for(let v=i.length-1;v>0;v--)y&&i[v]==lx?(i[v]=s[v],y=!1):i[v-1]>i[v]&&(i[v-1]=i[v]);return p};if(h.getIndex=g,d.getIndex=g,!o)return n==r?h:d}class Oc{constructor({encoders:t,numVertices:n=void 0,attributes:r=[]}){this.encoders=t,this.variableEncoders=Object.fromEntries(Object.entries(t).filter(([i,a])=>r.includes(i)&&a&&a.scale&&!a.constant)),this.allocatedVertices=n,this.variableBuilder=new rB(n);for(const[i,a]of Object.entries(this.variableEncoders)){const o=a.accessor,s=[0,0],l=kf(a.scale.type),c=a.indexer,u=c?f=>c(o(f)):l?f=>cx(o(f),s):o;this.variableBuilder.addConverter(i,{f:u,numComponents:l?2:1,arrayReference:l?s:void 0})}this.lastOffset=0,this.rangeMap=new Zi([],JSON.stringify)}registerBatch(t){var a;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(t,{offset:n,count:i,xIndex:(a=this.xIndexer)==null?void 0:a.getIndex()}),this.lastOffset=r}addBatches(t){for(const[n,r]of t)this.addBatch(n,r)}addBatch(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.pushFromDatum(o),this.addToXIndex(o)}this.registerBatch(t)}prepareXIndexer(t,n=0,r=n+t.length){const i=()=>{this.addToXIndex=l=>{},this.xIndexer=void 0};if(!t.length||r-n<0){i();return}const a=l=>{var c;return l&&Ft((c=l.scale)==null?void 0:c.type)&&l},o=a(this.variableEncoders.x),s=a(this.variableEncoders.x2);if(o){const l=o.accessor,c=s?s.accessor:l,u=[l(t[n]),c(t[r-1])];if(u[1]>u[0]){this.xIndexer=aB(50,u,l,c);let f=this.variableBuilder.vertexCount;this.addToXIndex=h=>{let d=this.variableBuilder.vertexCount;this.xIndexer(h,f,d),f=d}}else i()}else i()}addToXIndex(t){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class oB extends Oc{constructor({encoders:t,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:a}){super({encoders:t,attributes:n,numVertices:r==1/0?a*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateFrac=this.variableBuilder.createUpdater("frac",2)}addBatch(t,n,r=0,i=n.length){if(i<=r)return;const a=this.encoders,[o,s]=this.visibleRange,l=h=>h.accessor||(d=>0),c=l(a.x),u=l(a.x2);this.prepareXIndexer(n,r,i);const f=[0,0];this.updateFrac(f);for(let h=r;h<i;h++){const d=n[h];let p=c(d),g=u(d);if(p>g&&([p,g]=[g,p]),g<o||p>s)continue;p<o&&(p=o),g>s&&(g=s),this.variableBuilder.updateFromDatum(d),f[0]=0,f[1]=0;const y=1;this.variableBuilder.pushAll();for(let v=0;v<=y;v++)f[0]=v/y,f[1]=0,this.variableBuilder.pushAll(),f[1]=1,this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(d)}this.registerBatch(t)}}class sB extends Oc{constructor({encoders:t,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:a}){super({encoders:t,attributes:n,numVertices:r==1/0?a*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(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.updateFromDatum(o),this.updateSide(-.5),this.updatePos(0),this.variableBuilder.pushAll();const s=1;for(let l=0;l<=s;l++)this.updatePos(l/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(o)}this.registerBatch(t)}}class cB extends Oc{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r})}}class lB extends Oc{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r})}toArrays(){const t=this.variableBuilder.arrays;for(let n of Object.values(t))n.divisor=1;return super.toArrays()}}class uB extends Oc{constructor({encoders:t,attributes:n,fontMetrics:r,properties:i,numCharacters:a=void 0}){super({encoders:t,attributes:n,numVertices:a*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=t.text.channelDef;this.numberFormat=!In(s)&&s.format?rt(s.format):l=>l,this.updateVertexCoord=this.variableBuilder.createUpdater("vertexCoord",2),this.updateTextureCoord=this.variableBuilder.createUpdater("textureCoord",2),this.updateWidth=this.variableBuilder.createUpdater("width",1)}addBatch(t,n,r=0,i=n.length){const a=this.properties.align||"left",o=this.properties.logoLetters??!1,s=this.metadata.common.base,l=this.metadata.common.scaleH;let c=-Bo;switch(this.properties.baseline){case"top":c+=this.metrics.capHeight;break;case"middle":c+=this.metrics.capHeight/2;break;case"bottom":c-=this.metrics.descent;break}const u=this.encoders.text.accessor||this.encoders.text,f=[0,0];this.updateVertexCoord(f);const h=[0,0];this.updateTextureCoord(h),this.prepareXIndexer(n,r,i);for(let d=r;d<i;d++){const p=n[d],g=this.numberFormat(u(p)),y=ze(g)?g:g===null?"":""+g;if(y.length==0)continue;this.variableBuilder.updateFromDatum(p);const v=o?y.length:this.metrics.measureWidth(y);this.updateWidth(v);let S=a=="right"?-v:a=="center"?-v/2:0;if(!o){const w=this.metrics.getCharByCode(y.charCodeAt(0));S-=(w.width-w.xadvance)/s/2}let k=-.5,C=1,E=1;for(let w=0;w<y.length;w++){const A=this.metrics.getCharByCode(y.charCodeAt(w)),T=o?1:A.xadvance/s;if(A.id==32){S+=T;continue}o?(E=(A.width+Bo*2)/A.width,S=-E/2,C=(A.height+Bo*2)/A.height,k=-.5-Bo/A.height):(C=A.height/s,k=-(A.height+A.yoffset+c)/s,E=A.width/s);const D=A.x,M=A.y;f[0]=S,f[1]=k+C,h[0]=D/l,h[1]=M/l,this.variableBuilder.pushAll(),f[0]=S+E,f[1]=k+C,h[0]=(D+A.width)/l,h[1]=M/l,this.variableBuilder.pushAll(),f[0]=S,f[1]=k,h[0]=D/l,h[1]=(M+A.height)/l,this.variableBuilder.pushAll(),f[0]=S+E,f[1]=k+C,h[0]=(D+A.width)/l,h[1]=M/l,this.variableBuilder.pushAll(),f[0]=S,f[1]=k,h[0]=D/l,h[1]=(M+A.height)/l,this.variableBuilder.pushAll(),f[0]=S+E,f[1]=k,h[0]=(D+A.width)/l,h[1]=(M+A.height)/l,this.variableBuilder.pushAll(),S+=T}this.addToXIndex(p)}this.registerBatch(t)}}const ux=`#define PI 3.141593
205
205
 
206
206
  uniform View {
207
207
  /** Offset in "unit" units */
@@ -264,7 +264,7 @@ vec4 distanceToColor(float d, vec4 fill, vec4 stroke, float halfStrokeWidth) {
264
264
  return fill * distanceToRatio(-d);
265
265
  }
266
266
  }
267
- `,KD=`const float inf = 1.0 / 0.0;
267
+ `,fB=`const float inf = 1.0 / 0.0;
268
268
 
269
269
  // Utils ------------
270
270
 
@@ -376,7 +376,7 @@ float scaleBandHp(vec2 value, vec3 domainExtent, vec2 range,
376
376
 
377
377
  return dot(vec4(start, hi, lo, bandwidth), vec4(1.0, step, step, band));
378
378
  }
379
- `,JD=`
379
+ `,hB=`
380
380
  /**
381
381
  * Describes where a sample facet should be shown. Interpolating between the
382
382
  * current and target positions/heights allows for transitioning between facet
@@ -483,7 +483,7 @@ float getSampleFacetHeight(vec2 pos) {
483
483
  return facetPos.height;
484
484
  }
485
485
  }
486
- `,$D=`/*
486
+ `,dB=`/*
487
487
  * Based on concepts presented at:
488
488
  * https://webglfundamentals.org/webgl/lessons/webgl-picking.html
489
489
  * https://deck.gl/docs/developer-guide/custom-layers/picking
@@ -510,22 +510,22 @@ bool setupPicking() {
510
510
  }
511
511
  return false;
512
512
  }
513
- `,eM=`in highp vec4 vPickingColor;
514
- `,ys=Symbol("cacheMap");function Yr(t,e,n){let r=po(t).get(e);return r===void 0&&(r=n(e),po(t).set(e,r)),r}function wg(t,e){po(t).delete(e)}function ho(t,e){const n=po(t);for(const r of n.keys())r.startsWith(e)&&n.delete(r);po(t).delete(e)}function Cg(t){t[ys]=new Map}function po(t){return t[ys]||Cg(t),t[ys]}function tM(t,e,n,r){const i=re(t)?t:t.name,o=!re(t)&&t.extent||[0,1];if(n===void 0&&!re(t)&&(n=t.count),i){const a=Ru(i);if(ke(a)){const s=Sg(a,{extent:o,count:n});return mo(e,{minMag:e.LINEAR,format:e.RGB,height:1,wrap:e.CLAMP_TO_EDGE},s,r)}else{if(We(a))return Ol(a,e);throw new Error("Unknown scheme: "+i)}}}function nM(t,e="rgb",n,r){const i=Ra(t,re(e)?e:e.type,re(e)?void 0:e.gamma),o=Sg(i);return mo(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},o,r)}function rM(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 mo(e,{minMag:e.NEAREST,format:e.RED,internalFormat:e.R32F,height:1},o,r)}function Ol(t,e,n,r){const i=Eg(t,n);return mo(e,{minMag:e.NEAREST,format:e.RGB,height:1},i,r)}function Sg(t,{extent:e=[0,1],reverse:n=!1,count:r=256}={}){const i=e[0],o=je(e)-i,a=Wt(r).map(s=>s/(r-1)).map(s=>i+s/o).map(t);return n&&a.reverse(),Eg(a)}function Eg(t,e){const n=Math.max(t.length,e||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const o=Pn(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 iM{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=ND(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(!Fr(i))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");dg(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=ED(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(`
513
+ `,pB=`in highp vec4 vPickingColor;
514
+ `,If=Symbol("cacheMap");function Lo(e,t,n){let r=zc(e).get(t);return r===void 0&&(r=n(t),zc(e).set(t,r)),r}function fx(e,t){zc(e).delete(t)}function Rc(e,t){const n=zc(e);for(const r of n.keys())r.startsWith(t)&&n.delete(r);zc(e).delete(t)}function hx(e){e[If]=new Map}function zc(e){return e[If]||hx(e),e[If]}function gB(e,t,n,r){const i=ze(e)?e:e.name,a=!ze(e)&&e.extent||[0,1];if(n===void 0&&!ze(e)&&(n=e.count),i){const o=U0(i);if(Tt(o)){const s=dx(o,{extent:a,count:n});return Pc(t,{minMag:t.LINEAR,format:t.RGB,height:1,wrap:t.CLAMP_TO_EDGE},s,r)}else{if(en(o))return Rp(o,t);throw new Error("Unknown scheme: "+i)}}}function mB(e,t="rgb",n,r){const i=qu(e,ze(t)?t:t.type,ze(t)?void 0:t.gamma),a=dx(i);return Pc(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},a,r)}function bB(e,t,n,r){const i=Math.max(e.length,n||0),a=new Float32Array(i);for(let o=0;o<i;o++)a[o]=e[o%e.length];return Pc(t,{minMag:t.NEAREST,format:t.RED,internalFormat:t.R32F,height:1},a,r)}function Rp(e,t,n,r){const i=px(e,n);return Pc(t,{minMag:t.NEAREST,format:t.RGB,height:1},i,r)}function dx(e,{extent:t=[0,1],reverse:n=!1,count:r=256}={}){const i=t[0],a=Gt(t)-i,o=qr(r).map(s=>s/(r-1)).map(s=>i+s/a).map(e);return n&&o.reverse(),px(o)}function px(e,t){const n=Math.max(e.length,t||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const a=na(e[i%e.length]).rgb();r[i*3+0]=a.r,r[i*3+1]=a.g,r[i*3+2]=a.b}return r}class yB{constructor(t,n){this._container=t,this._sizeSource=n,this._shaderCache=new Map,this._listeners=[],this.rangeTextures=new WeakMap;const r=document.createElement("canvas");t.appendChild(r);const i=VF(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(!Co(i))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");tx(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=PF(i,this._pickingAttachmentOptions),i.bindFramebuffer(i.FRAMEBUFFER,null),this.adjustGl(),this._resizeObserver=new ResizeObserver(a=>{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(t,n){const r="#version 300 es",i="precision mediump float;";en(n)&&(n=n.join(`
515
515
 
516
- `));const o=this.gl,a=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let s=this._shaderCache.get(a);if(!s){const c=[r,i,n].join(`
516
+ `));const a=this.gl,o=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let s=this._shaderCache.get(o);if(!s){const l=[r,i,n].join(`
517
517
 
518
- `);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,DD(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;if(this._logicalCanvasSize)return this._logicalCanvasSize;const e=((o=this._sizeSource)==null?void 0:o.call(this))??{width:void 0,height:void 0},n=window.getComputedStyle(this._container,null),r=e.width??this._container.clientWidth-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight),i=e.height??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 rn(s.type)?s.domain().length:s.type=="threshold"?s.domain().length+1:s.type=="quantize"||s.type=="quantile"?a??4:a}const o=e.channel;if(Zn(o)){const a=e.getScaleProps(),s=e.getScale(),c=s.range();let u;if(a.scheme)if(s.type=="threshold"&&c)u=Ol(c,this.gl,s.domain().length,r);else{let f=re(a.scheme)?void 0:a.scheme.count;f=i(f,s),u=tM(a.scheme,this.gl,f,r)}else za(s.type)||Be(s.type)&&c.length>2?u=nM(c,a.interpolate,this.gl,r):u=Ol(c,this.gl,s.domain().length,r);this.rangeTextures.set(e,u)}else{const a=e.getScale();if(a.type==="ordinal"||Gn(a.type)){const s=Wa(o)?Jp(o):u=>u,c=e.getScale().range();this.rangeTextures.set(e,rM(c.map(s),this.gl,a.domain().length,r))}}}}function oM(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(`
519
- `).map((a,s)=>{const c=o.get(s);return`${s+1+n}: ${a}${c?`
518
+ `);s=a.createShader(t),a.shaderSource(s,l),a.compileShader(s),this._shaderCache.set(o,s)}return s}adjustGl(){const t=this.getLogicalCanvasSize();this.canvas.style.width=`${t.width}px`,this.canvas.style.height=`${t.height}px`;const n=this.getPhysicalCanvasSize(t);this.canvas.width=n.width,this.canvas.height=n.height,UF(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this._resizeObserver.unobserve(this._container),this.canvas.remove()}getPhysicalCanvasSize(t){return t=t||this.getLogicalCanvasSize(),{width:t.width*this.dpr,height:t.height*this.dpr}}getLogicalCanvasSize(){var a;if(this._logicalCanvasSize)return this._logicalCanvasSize;const t=((a=this._sizeSource)==null?void 0:a.call(this))??{width:void 0,height:void 0},n=window.getComputedStyle(this._container,null),r=t.width??this._container.clientWidth-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight),i=t.height??this._container.clientHeight-parseFloat(n.paddingTop)-parseFloat(n.paddingBottom);return this._logicalCanvasSize={width:r,height:i},this._logicalCanvasSize}addEventListener(t,n){this._listeners.push({type:t,listener:n})}_emit(t){for(const n of this._listeners)n.type===t&&n.listener()}readPickingPixel(t,n){const r=this.gl;t*=this.dpr,n*=this.dpr;const i=this.getPhysicalCanvasSize().height,a=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(t,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,a),r.bindFramebuffer(r.FRAMEBUFFER,null),a}clearAll(){const t=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();t.viewport(0,0,n,r),t.disable(t.SCISSOR_TEST),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT)}createRangeTexture(t,n=!1){const r=this.rangeTextures.get(t);if(!n&&r)return;function i(o,s){return ai(s.type)?s.domain().length:s.type=="threshold"?s.domain().length+1:s.type=="quantize"||s.type=="quantile"?o??4:o}const a=t.channel;if(ga(a)){const o=t.getScaleProps(),s=t.getScale(),l=s.range();let c;if(o.scheme)if(s.type=="threshold"&&l)c=Rp(l,this.gl,s.domain().length,r);else{let u=ze(o.scheme)?void 0:o.scheme.count;u=i(u,s),c=gB(o.scheme,this.gl,u,r)}else Zu(s.type)||Ft(s.type)&&l.length>2?c=mB(l,o.interpolate,this.gl,r):c=Rp(l,this.gl,s.domain().length,r);this.rangeTextures.set(t,c)}else{const o=t.getScale();if(o.type==="ordinal"||sa(o.type)){const s=af(a)?jv(a):c=>c,l=t.getScale().range();this.rangeTextures.set(t,bB(l.map(s),this.gl,o.domain().length,r))}}}}function vB(e,t="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...t.matchAll(r)],a=new Map(i.map((o,s)=>{const l=parseInt(o[1]),c=i[s+1],u=c?c.index:t.length,f=t.substring(o.index,u);return[l-1,f]}));return e.split(`
519
+ `).map((o,s)=>{const l=a.get(s);return`${s+1+n}: ${o}${l?`
520
520
 
521
- ^^^ ${c}`:""}`}).join(`
522
- `)}function aM(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=oM(t.getShaderSource(c),o,0)+`
523
- Error compiling: ${o}`,t.deleteShader(c));t.deleteProgram(r)}if(o)return{message:o,detail:a}}return{program:r,getProgramErrors:i}}function mo(t,e,n,r){return r?Tm(t,r,n,e):r=uo(t,{...e,src:n}),r}function sM(...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 cM(t){return re(t)||le(t)||ia(t)}const uM="SAMPLE_FACET_UNIFORM",Dg="SAMPLE_FACET_TEXTURE";class go{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 lM,this.defaultProperties={get clip(){return["x","y"].map(n=>e.getScaleResolution(n)).some(n=>(n==null?void 0:n.isZoomable())??!1)},xOffset:0,yOffset:0,minBufferSize:0},this.properties=sM(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 Yr(this,"encoding",()=>{const e=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=a=>{const s=this.properties[a];return cM(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=z3(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return Dg;if([...this.unitView.getAncestors()].find(e=>"samples"in e.spec))return uM}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(PD(h,p.value));else{const m=Ke(p)&&p.resolutionChannel||h,g=this.unitView.getScaleResolution(m).getScale(),y=zD(h,g,p);o.push(y.glsl),y.domainUniform&&this.domainUniforms.push(y.domainUniform)}}const s=this.domainUniforms.length?`layout(std140) uniform Domains {
524
- `+this.domainUniforms.map(d=>` ${d}
521
+ ^^^ ${l}`:""}`}).join(`
522
+ `)}function wB(e,t,n){const r=e.createProgram();e.attachShader(r,t),e.attachShader(r,n),e.linkProgram(r);function i(){let a,o;if(!e.getProgramParameter(r,e.LINK_STATUS)){a=e.getProgramInfoLog(r);for(const l of[t,n])e.getShaderParameter(l,e.COMPILE_STATUS)||(a=e.getShaderInfoLog(l),o=vB(e.getShaderSource(l),a,0)+`
523
+ Error compiling: ${a}`,e.deleteShader(l));e.deleteProgram(r)}if(a)return{message:a,detail:o}}return{program:r,getProgramErrors:i}}function Pc(e,t,n,r){return r?bw(e,r,n,t):r=Bc(e,{...t,src:n}),r}function xB(...e){const t={get(n,r,i){for(const a of e){const s=a()[r];if(s!==void 0)return s}},has(n,r,i){for(const a of e){const o=a();if(r in o)return!0}return!1}};return new Proxy({},t)}function AB(e){return ze(e)||Ke(e)||gu(e)}const EB="SAMPLE_FACET_UNIFORM",gx="SAMPLE_FACET_TEXTURE";class Uc{constructor(t){this.unitView=t,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 SB,this.defaultProperties={get clip(){return["x","y"].map(n=>t.getScaleResolution(n)).some(n=>(n==null?void 0:n.isZoomable())??!1)},xOffset:0,yOffset:0,minBufferSize:0},this.properties=xB(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 t={sample:void 0,uniqueId:void 0};return this.isPickingParticipant()&&(t.uniqueId={field:"_uniqueId"}),t}fixEncoding(t){return t}get encoding(){return Lo(this,"encoding",()=>{const t=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=o=>{const s=this.properties[o];return AB(s)&&{value:s}},i=Object.fromEntries(this.getSupportedChannels().map(o=>[o,r(o)]).filter(o=>o[1].value!==void 0)),a=this.fixEncoding({...t,...i,...n});for(const o of Object.keys(a))this.getSupportedChannels().includes(o)||delete a[o];return a})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=XT(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return gx;if([...this.unitView.getAncestors()].find(t=>"samples"in t.spec))return EB}createAndLinkShaders(t,n,r=[]){const i=this.getAttributes();r.push("// view: "+this.unitView.getPathString()),this.domainUniforms=[];let a=[];const o=this.getSampleFacetMode();o&&r.push(`#define ${o}`);for(const h of i){let d;if(h in this.encoding)d=h;else continue;const p=this.encoding[d];if(p)if(In(p))a.push(WF(d,p.value));else{const g=an(p)&&p.resolutionChannel||d,y=this.unitView.getScaleResolution(g).getScale(),v=XF(d,y,p);a.push(v.glsl),v.domainUniform&&this.domainUniforms.push(v.domainUniform)}}const s=this.domainUniforms.length?`layout(std140) uniform Domains {
524
+ `+this.domainUniforms.map(h=>` ${h}
525
525
  `).join("")+`};
526
526
 
527
- `:"",u=[`precision highp float;
528
- `,...r,xg,KD,s,...o,JD,$D,e],f=[...r,xg,eM,n],l=this.gl;this.programStatus=aM(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=cD(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=tg(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=tg(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(eo(n)){const r=this.encoders[e],i=r.indexer?r.indexer(n.datum):ms(r.scale.type)?bg(+n.datum):+n.datum;Ue(this.programInfo,{[Il+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&&AC(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=CC(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){const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=MD(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[a,s]of Object.entries(this.domainUniformInfo.setters)){const c=a.substring(hg.length),u=this.encoding[c],f=Ke(u)&&u.resolutionChannel||c,l=this.unitView.getScaleResolution(f);if(l){const d=l.getScale();i.push(()=>{const h=rn(d.type)?[0,d.domain().length]:d.domain();s(ms(d.type)?HD(h):h)})}}i.push(()=>ng(r,this.programInfo,this.domainUniformInfo))}for(const[a,s]of Object.entries(this.encoding))if(Ke(s)){const c=Ke(s)&&s.resolutionChannel||a,u=this.unitView.getScaleResolution(c),f=n.rangeTextures.get(u);f&&i.push(()=>Ue(this.programInfo,{[kl+a]:f}))}this.getSampleFacetMode()==Dg&&i.push(()=>{let a;for(const s of this.unitView.getAncestors())if(a=s.getSampleFacetTexture(),a)break;if(!a)throw new Error("No facet texture available. This is bug.");Ue(this.programInfo,{uSampleFacetTexture:a})});const o=(e.picking??!1)&&this.isPickingParticipant();return i.push(()=>rg(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 l;const r=this;let i;const o=(l=this.unitView.getScaleResolution("x"))==null?void 0:l.getScale(),a=o&&Be(o.type),s=["index","locus"].includes(o==null?void 0:o.type)?-1:0,c=[0,0];i=d=>{if(a&&d.xIndex){const h=o.domain(),p=d.xIndex(h[0]+s,h[1],c),m=p[0],g=p[1]-m;g>0&&e(m,g)}else e(d.offset,d.count)};const u=this.rangeMap.get(void 0).count==0?n.facetId:void 0,f=this.rangeMap.get(u);return n.sampleFacetRenderingOptions?function(){f.count&&r.prepareSampleFacetRendering(n)&&i(f)}:function(){f.count&&i(f)}}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),g=m.map(w=>Math.floor(w)),[y,b]=m.map((w,C)=>w-g[C]);i.viewport(...g),i.scissor(...g),i.enable(i.SCISSOR_TEST),f={uViewOffset:[(c+d+y)/l.width,-(u+h-b)/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 rg(this.viewUniformInfo,{...f,uViewportSize:[e.width,e.height],uDevicePixelRatio:this.glHelper.dpr}),ng(this.gl,this.programInfo,this.viewUniformInfo),l.height>0&&l.width>0}findDatumAt(e,n){}}class lM extends Tn{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 Fl(t,e){const n=G3(e);let r=t[e]&&{...t[e]},i=t[n]&&{...t[n]};if(!(at(r)||at(i))){if(r){if(!Ke(t[e]))return;if(i){if(r.type!="quantitative"){const o=(1-(r.band||1))/2;r.band=o,i.band=-o}}else if(r.type=="quantitative")i={datum:0};else{i={...r};const o=(1-(r.band??1))/2;r.band=0+o,i.band=1-o}}else r={value:0},i={value:1};t[e]=r,t[n]=i}}function Mg(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 Tg(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 fM extends go{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 Yr(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 Fl(e,"x"),Fl(e,"y"),Mg(e,this.properties.filled),Tg(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(LD,BD,e.map(n=>"#define "+n))}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ue(this.programInfo,{uMinSize:[e.minWidth,e.minHeight],uMinOpacity:e.minOpacity,uCornerRadii:[e.cornerRadiusTopRight??e.cornerRadius,e.cornerRadiusBottomRight??e.cornerRadius,e.cornerRadiusTopLeft??e.cornerRadius,e.cornerRadiusBottomLeft??e.cornerRadius]})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new _D({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(()=>Qr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{lo(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 dM=`/**
527
+ `:"",c=[`precision highp float;
528
+ `,...r,ux,fB,s,...a,hB,dB,t],u=[...r,ux,pB,n],f=this.gl;this.programStatus=wB(f,this.glHelper.compileShader(f.VERTEX_SHADER,c),this.glHelper.compileShader(f.FRAGMENT_SHADER,u))}finalizeGraphicsInitialization(){const t=this.programStatus.getProgramErrors();if(t){t.detail&&console.warn(t.detail);const n=new Error("Cannot create shader program: "+t.message);throw n.view=this.unitView,n}this.programInfo=AF(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=$w(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=$w(this.gl,this.programInfo,"View"),this.gl.useProgram(this.programInfo.program),this._setDatums(),$t(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0})}_setDatums(){for(const[t,n]of Object.entries(this.encoding))if(Cc(n)){const r=this.encoders[t],i=r.indexer?r.indexer(n.datum):kf(r.scale.type)?cx(+n.datum):+n.datum;$t(this.programInfo,{[Np+t]:i})}}deleteGraphicsData(){if(this.bufferInfo){const t=this.gl;for(let n=0;n<8;n++)t.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(t){if(this.gl.bindVertexArray(null),this.bufferInfo&&t.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(t.arrays))r.data&&BM(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=RM(this.gl,t.arrays,{numElements:t.vertexCount}),this.bufferInfo.allocatedVertices=t.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 t of this.unitView.getAncestors())if(!t.isPickingSupported())return!1;return!0}prepareRender(t){const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=jF(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[o,s]of Object.entries(this.domainUniformInfo.setters)){const l=o.substring(nx.length),c=this.encoding[l],u=an(c)&&c.resolutionChannel||l,f=this.unitView.getScaleResolution(u);if(f){const h=f.getScale();i.push(()=>{const d=ai(h.type)?[0,h.domain().length]:h.domain();s(kf(h.type)?nB(d):d)})}}i.push(()=>Vw(r,this.programInfo,this.domainUniformInfo))}for(const[o,s]of Object.entries(this.encoding))if(an(s)){const l=an(s)&&s.resolutionChannel||o,c=this.unitView.getScaleResolution(l),u=n.rangeTextures.get(c);u&&i.push(()=>$t(this.programInfo,{[Fp+o]:u}))}this.getSampleFacetMode()==gx&&i.push(()=>{let o;for(const s of this.unitView.getAncestors())if(o=s.getSampleFacetTexture(),o)break;if(!o)throw new Error("No facet texture available. This is bug.");$t(this.programInfo,{uSampleFacetTexture:o})});const a=(t.picking??!1)&&this.isPickingParticipant();return i.push(()=>Yw(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:a})),this.opaque||t.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(t){const n=t.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,a=n.locSize?n.locSize.size:1;if(i>1||i+a<0)return!1;const o=n.targetLocSize?n.targetLocSize.location:i,s=n.targetLocSize?n.targetLocSize.size:a;this.gl.uniform4f(r.location,i,a,o,s)}return!0}render(t){}createRenderCallback(t,n){var f;const r=this;let i;const a=(f=this.unitView.getScaleResolution("x"))==null?void 0:f.getScale(),o=a&&Ft(a.type),s=["index","locus"].includes(a==null?void 0:a.type)?-1:0,l=[0,0];i=h=>{if(o&&h.xIndex){const d=a.domain(),p=h.xIndex(d[0]+s,d[1],l),g=p[0],y=p[1]-g;y>0&&t(g,y)}else t(h.offset,h.count)};const c=this.rangeMap.get(void 0).count==0?n.facetId:void 0,u=this.rangeMap.get(c);return n.sampleFacetRenderingOptions?function(){u.count&&r.prepareSampleFacetRendering(n)&&i(u)}:function(){u.count&&i(u)}}setViewport(t,n){const r=this.glHelper.dpr,i=this.gl,a=this.properties,o=this.glHelper.getLogicalCanvasSize(),s=.5,l=(a.xOffset||0)+s,c=(a.yOffset||0)+s;let u,f=t;if(a.clip||n){let h=0,d=0,p;n?(f=a.clip?t.intersect(n):n,p=[t.width/f.width,t.height/f.height],d=Math.max(0,t.y2-n.y2),h=Math.max(0,t.x2-n.x2)):p=[1,1];const g=[t.x,o.height-f.y2,Math.max(0,f.width),Math.max(0,f.height)].map(k=>k*r),y=g.map(k=>Math.floor(k)),[v,S]=g.map((k,C)=>k-y[C]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),u={uViewOffset:[(l+h+v)/f.width,-(c+d-S)/f.height],uViewScale:p}}else i.viewport(0,0,o.width*r,o.height*r),i.disable(i.SCISSOR_TEST),u={uViewOffset:[(t.x+l)/o.width,(o.height-t.y-c-t.height)/o.height],uViewScale:[t.width/o.width,t.height/o.height]};return Yw(this.viewUniformInfo,{...u,uViewportSize:[t.width,t.height],uDevicePixelRatio:this.glHelper.dpr}),Vw(this.gl,this.programInfo,this.viewUniformInfo),f.height>0&&f.width>0}findDatumAt(t,n){}}class SB extends Zi{constructor(){super([],JSON.stringify)}get(t){let n=super.get(t);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(t,n)),n}migrateEntries(t){for(const[n,r]of t.entries())Object.assign(this.get(n),r)}}function zp(e,t){const n=tM(t);let r=e[t]&&{...e[t]},i=e[n]&&{...e[n]};if(!(In(r)||In(i))){if(r){if(!an(e[t]))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-(r.band??1))/2;r.band=0+a,i.band=1-a}}else r={value:0},i={value:1};e[t]=r,e[n]=i}}function mx(e,t){e.stroke||(t?e.stroke={value:null}:e.stroke={resolutionChannel:"color",...e.color}),In(e.stroke)&&e.stroke.value===null&&(e.strokeWidth={value:0}),e.strokeOpacity||(e.strokeOpacity={resolutionChannel:"opacity",...e.opacity})}function bx(e,t){In(e.fill)&&e.fill.value===null?e.fillOpacity={value:0}:e.fill||(e.fill={resolutionChannel:"color",...e.color},!t&&!e.fillOpacity&&(e.fillOpacity={value:0})),e.fillOpacity||(t?e.fillOpacity={resolutionChannel:"opacity",...e.opacity}:e.fillOpacity={value:0})}class CB extends Uc{constructor(t){super(t),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 Lo(this,"opaque",()=>!this._isRoundedCorners()&&!this._isStroked()&&In(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(t){return zp(t,"x"),zp(t,"y"),mx(t,this.properties.filled),bx(t,this.properties.filled),delete t.color,delete t.opacity,t}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}_isRoundedCorners(){return["","TopLeft","TopRight","BottomLeft","BottomRight"].map(t=>"cornerRadius"+t).some(t=>this.properties[t]>0)}_isStroked(){const t=this.encoding.strokeWidth;return!(In(t)&&!t.value)}async initializeGraphics(){await super.initializeGraphics();const t=[];this._isRoundedCorners()&&t.push("ROUNDED_CORNERS"),this._isStroked()&&t.push("STROKED"),this.createAndLinkShaders(YF,QF,t.map(n=>"#define "+n))}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;$t(this.programInfo,{uMinSize:[t.minWidth,t.minHeight],uMinOpacity:t.minOpacity,uCornerRadii:[t.cornerRadiusTopRight??t.cornerRadius,t.cornerRadiusBottomRight??t.cornerRadius,t.cornerRadiusTopLeft??t.cornerRadius,t.cornerRadiusBottomLeft??t.cornerRadius]})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new oB({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>Fo(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{Lc(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r)},t)}findDatumAt(t,n){t=rn(t);const r=this.encoders,i=this.unitView.getCollector().facetBatches.get(t),a=r.x.accessor,o=r.x2.accessor;if(i)return i.find(s=>n>=a(s)&&n<o(s))}}const _B=`/**
529
529
  * The stroke should only grow inwards, e.g, the diameter/outline is not affected by the stroke width.
530
530
  * Thus, a point that has a zero size has no visible stroke. This allows strokes to be used with
531
531
  * geometric zoom, etc.
@@ -654,7 +654,7 @@ void main(void) {
654
654
 
655
655
  setupPicking();
656
656
  }
657
- `,hM=`const lowp vec4 white = vec4(1.0);
657
+ `,kB=`const lowp vec4 white = vec4(1.0);
658
658
  const lowp vec4 black = vec4(0.0, 0.0, 0.0, 1.0);
659
659
 
660
660
  uniform bool uInwardStroke;
@@ -777,10 +777,10 @@ void main() {
777
777
  }
778
778
  }
779
779
 
780
- `,Ft=1<<0,dn=1<<1,Pl=1<<2,pM={};class ue{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",Wt(this.children.length).map(e=>`const child${e} = children[${e}];`).join(`
781
- `)+`return function propagate(datum) {${Wt(this.children.length).map(e=>`child${e}.handle(datum);`).join(`
782
- `)}}`)(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])+`
783
- `+n}getGlobalObject(){return this.parent?this.parent.getGlobalObject():pM}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 Ig(t){return t.type=="file"}function mM(t){return t.type=="facet"}class kg extends ue{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 Ng(t,e,n){const r=new kg({type:"sample",size:t});for(const i of e)r.handle(n(i));return r.complete(),r.reservoir}const gM={};class yM extends go{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(),...gM}}fixEncoding(e){return Mg(e,this.properties.filled),Tg(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(Ng(1e4,this.unitView.getCollector().getData(),e)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(dM,hM)}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 XD({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 Nc(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(()=>Qr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&lo(n,this.vertexArrayInfo,n.POINTS,i,r)},e)}}const vM=`// Line caps
780
+ `,Cr=1<<0,di=1<<1,Pp=1<<2,DB={};class We{get behavior(){return 0}constructor(){this.children=[],this.parent=void 0,this.completed=!1}reset(){this.completed=!1;for(const t of this.children)t.reset()}initialize(){}_updatePropagator(){this._propagate=Function("children",qr(this.children.length).map(t=>`const child${t} = children[${t}];`).join(`
781
+ `)+`return function propagate(datum) {${qr(this.children.length).map(t=>`child${t}.handle(datum);`).join(`
782
+ `)}}`)(this.children)}setParent(t){this.parent=t}addChild(t){if(t.parent)throw new Error("Cannot add the child! It already has a parent.");return this.children.push(t),t.setParent(this),this._updatePropagator(),this}adopt(t){t.parent&&t.parent.removeChild(t),this.addChild(t)}adoptChildrenOf(t){for(const n of t.children)this.adopt(n)}insertAsParent(t){if(this.isRoot())throw new Error("Cannot insert a new parent for a root node!");t.parent=this.parent,this.parent.children[this.parent.children.indexOf(this)]=t,this.parent._updatePropagator(),this.parent=void 0,t.addChild(this)}removeChild(t){const n=this.children.indexOf(t);if(n>-1)this.children.splice(n,1),t.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 t=this.children[0];t.setParent(this.parent),this.parent.children[this.parent.children.indexOf(this)]=t,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(t){t(this);for(const n of this.children)n.visit(t);t.afterChildren&&t.afterChildren(this)}subtreeToString(t=0){var r;const n=this.children.map(i=>i.subtreeToString(t+1)).join("");return" ".repeat(t*2)+"* "+((r=/^class ([A-Za-z0-9_]+)/.exec(""+this.constructor))==null?void 0:r[1])+`
783
+ `+n}getGlobalObject(){return this.parent?this.parent.getGlobalObject():DB}handle(t){this._propagate(t)}complete(){this.completed=!0;for(const t of this.children)t.complete()}beginBatch(t){for(const n of this.children)n.beginBatch(t)}_propagate(t){}}function yx(e){return e.type=="file"}function IB(e){return e.type=="facet"}class vx extends We{constructor(t){super(),this.k=t.size||500,this.reset()}reset(){super.reset(),this.reservoir=[],this.W=void 0,this.ingester=this._initialIngester}_initialIngester(t){this.reservoir.push(t),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(t){++this.i==this.next&&(this.reservoir[Math.floor(Math.random()*this.k)]=t,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(t){this.ingester(t)}complete(){for(const t of this.reservoir)this._propagate(t);super.complete()}}function wx(e,t,n){const r=new vx({type:"sample",size:e});for(const i of t)r.handle(n(i));return r.complete(),r.reservoir}const TB={};class MB extends Uc{constructor(t){super(t),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(),...TB}}fixEncoding(t){return mx(t,this.properties.filled),bx(t,this.properties.filled),delete t.color,delete t.opacity,t}initializeData(){super.initializeData();const t=this.unitView.getAccessor("semanticScore");t&&(this.sampledSemanticScores=Float32Array.from(wx(1e4,this.unitView.getCollector().getData(),t)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(_B,kB)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;$t(this.programInfo,{uInwardStroke:t.inwardStroke,uGradientStrength:t.fillGradientStrength,uMaxRelativePointDiameter:1-2*t.sampleFacetPadding})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new cB({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}_getGeometricScaleFactor(){const t=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/t),1/3)}_getMaxPointSize(){const t=this.encoders.size;return t.constant?t(null):t.scale.range().reduce((n,r)=>Math.max(n,r))}getSemanticThreshold(){if(this.sampledSemanticScores){const t=Math.max(0,1-this.properties.semanticZoomFraction*this.unitView.getZoomLevel());if(t<=0)return-1/0;if(t>=1)return 1/0;{const n=this.sampledSemanticScores;return Fd(n,t)}}else return-1}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>$t(this.programInfo,{uMaxPointSize:this._getMaxPointSize(),uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()})),n.push(()=>Fo(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&Lc(n,this.vertexArrayInfo,n.POINTS,i,r)},t)}}const NB=`// Line caps
784
784
  const int BUTT = 0;
785
785
  const int SQUARE = 1;
786
786
  const int ROUND = 2;
@@ -869,7 +869,7 @@ void main(void) {
869
869
 
870
870
  setupPicking();
871
871
  }
872
- `,bM=`// Line ending
872
+ `,FB=`// Line ending
873
873
  const int BUTT = 0;
874
874
  const int SQUARE = 1;
875
875
  const int ROUND = 2;
@@ -921,7 +921,7 @@ void main(void) {
921
921
  fragColor = vPickingColor;
922
922
  }
923
923
  }
924
- `;class AM extends go{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=xM(this.properties.strokeDash);this.dashTexture=uo(e,{mag:e.NEAREST,min:e.NEAREST,internalFormat:e.R8,format:e.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(vM,bM)}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 WD({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(()=>Qr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>lo(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),e)}}function xM(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 wM=`uniform float uSagittaScaleFactor;
924
+ `;class BB extends Uc{constructor(t){super(t),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(t){if(!(t.x&&t.y&&t.x2&&t.y2))if(t.x&&t.x2&&!t.y)t.y={value:.5},t.y2=t.y;else if(t.y&&t.y2&&!t.x)t.x={value:.5},t.x2=t.x;else if(t.x&&!t.y)t.y={value:0},t.y2={value:1},t.x2=t.x;else if(t.y&&!t.x)t.x={value:0},t.x2={value:1},t.y2=t.y;else if(t.x&&t.y&&t.y2)t.x2=t.x;else if(t.y&&t.x&&t.x2)t.y2=t.y;else if(t.y&&t.x)if(!t.x2&&an(t.y)&&t.y.type=="quantitative")t.x2=t.x,t.y2={datum:0};else if(!t.y2&&an(t.x)&&t.x.type=="quantitative")t.y2=t.y,t.x2={datum:0};else throw new Error("A bug!");else throw new Error("Invalid x and y encodings for rule mark: "+JSON.stringify(t));return t}async initializeGraphics(){if(await super.initializeGraphics(),this.properties.strokeDash){const t=this.gl,n=LB(this.properties.strokeDash);this.dashTexture=Bc(t,{mag:t.NEAREST,min:t.NEAREST,internalFormat:t.R8,format:t.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(NB,FB)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;$t(this.programInfo,{uMinLength:t.minLength,uDashTextureSize:this.dashTextureSize,uStrokeCap:["butt","square","round"].indexOf(t.strokeCap)})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new sB({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return this.dashTexture&&n.push(()=>$t(this.programInfo,{uDashTexture:this.dashTexture,uStrokeDashOffset:this.properties.strokeDashOffset})),n.push(()=>Fo(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Lc(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),t)}}function LB(e){if(e.length==0||e.length%2||e.findIndex(a=>Math.round(a)!=a||a<1||a>1e3)>=0)throw new Error("Invalid stroke dash pattern: "+JSON.stringify(e));const t=e.reduce((a,o)=>a+o),n=new Uint8Array(t);let r=!0,i=0;for(let a of e){for(;a;)n[i++]=r&&255||0,a--;r=!r}return n}const OB=`uniform float uSagittaScaleFactor;
925
925
 
926
926
  /** Make very small arcs visible */
927
927
  uniform float uMinSagittaLength;
@@ -1032,7 +1032,7 @@ void main(void) {
1032
1032
 
1033
1033
  setupPicking();
1034
1034
  }
1035
- `,CM=`in lowp vec4 vColor;
1035
+ `,RB=`in lowp vec4 vColor;
1036
1036
  in float vSize;
1037
1037
  in float vNormalLengthInPixels;
1038
1038
 
@@ -1050,7 +1050,7 @@ void main(void) {
1050
1050
  fragColor = vPickingColor;
1051
1051
  }
1052
1052
  }
1053
- `;class SM extends go{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(wM,CM)}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 ZD({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(e.facetBatches);const i=r.toArrays();i.arrays.strip={data:EM(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&&s.numComponents&&s.divisor&&(s.offset=r*this.arrays[a].numComponents*4)}Qr(n,this.programInfo,this.bufferInfo),lo(n,this.bufferInfo,n.TRIANGLE_STRIP,(this.properties.segments+1)*2,0,i)},e)}}function EM(t){let e=0;const n=[];for(;e<=t;e++)n.push(e/t,.5),n.push(e/t,-.5);return n}const DM=`uniform float uSdfNumerator;
1053
+ `;class zB extends Uc{constructor(t){super(t),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(t){return t.x||(t.x2=t.x),t.y2||(t.y2=t.y),t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(OB,RB)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;$t(this.programInfo,{uSagittaScaleFactor:t.sagittaScaleFactor,uMinSagittaLength:t.minSagittaLength})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new lB({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();i.arrays.strip={data:PB(this.properties.segments),numComponents:2},this.rangeMap.migrateEntries(i.rangeMap),this.arrays=Object.fromEntries(Object.entries(i.arrays).map(([a,o])=>[a,{...o,data:void 0}])),this.updateBufferInfo(i)}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{this.gl.bindVertexArray(this.vertexArrayInfo.vertexArrayObject);for(const a of Object.entries(this.bufferInfo.attribs)){const[o,s]=a;s.buffer&&s.numComponents&&s.divisor&&(s.offset=r*this.arrays[o].numComponents*4)}Fo(n,this.programInfo,this.bufferInfo),Lc(n,this.bufferInfo,n.TRIANGLE_STRIP,(this.properties.segments+1)*2,0,i)},t)}}function PB(e){let t=0;const n=[];for(;t<=e;t++)n.push(t/e,.5),n.push(t/e,-.5);return n}const UB=`uniform float uSdfNumerator;
1054
1054
 
1055
1055
  uniform vec2 uD; // dx & dy
1056
1056
 
@@ -1296,7 +1296,7 @@ void main(void) {
1296
1296
 
1297
1297
  setupPicking();
1298
1298
  }
1299
- `,MM=`uniform sampler2D uTexture;
1299
+ `,jB=`uniform sampler2D uTexture;
1300
1300
  uniform bool uLogoLetter;
1301
1301
 
1302
1302
  in vec2 vTexCoord;
@@ -1336,7 +1336,7 @@ void main() {
1336
1336
  fragColor = vPickingColor;
1337
1337
  }
1338
1338
  }
1339
- `,TM={left:-1,center:0,right:1},IM={top:-1,middle:0,bottom:1,alphabetic:1};class kM extends go{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 to)this.properties.fitToBand&&Fl(e,n);return e}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(DM,MM)}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:[TM[e.align],IM[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?he(r.text.format):u=>u;for(const u of n){const f=a(i(u)),l=re(f)?f:f===null?"":""+f;o+=l&&l.length||0}const s=new qD({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(()=>Qr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>lo(n,this.vertexArrayInfo,n.TRIANGLES,i,r),e)}}function yo(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+=vs(p.px)+(zl(p)?0:n),s+=vs(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 g=(p?n:0)*(o?-1:1);h-=g;for(let y=0;y<m;y++)l.push({location:h+(y+1)/(m+1)*g,size:0});h+=g,f.length=0};let h=o?Math.max(e,a):0+i;if(t.length==1&&zl(t[0]))return[{location:h,size:0}];for(let p=0;p<t.length;p++){const m=t[p];if(zl(m))f.push(m);else{d(l.length>0);const g=vs(m.px)+(s?vs(m.grow)/s*c:0);o&&(h-=g),l.push({location:u(h),size:u(g)}),o?h-=n:h+=g+n}}return h+=o?n:-n,d(!1),l}function NM(t){let e=0,n=0;for(const r of t)e=Math.max(e,r.px??0),n=Math.max(n,r.grow??0);return{px:e,grow:n}}const Od=class{constructor(e,n){q(this,Ho);this.width=e,this.height=n}addPadding(e){return $(this,Ho,zd).call(this,e.width,e.height)}subtractPadding(e){return $(this,Ho,zd).call(this,-e.width,-e.height)}};let er=Od;Ho=new WeakSet,zd=function(e,n){return new Od({px:(this.width.px??0)+e,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};const vo=Object.freeze({px:0,grow:0}),LM=new er(vo,vo);function zl(t){return!t.px&&!t.grow}function vs(t){return t||0}function BM(t){return t&&(le(t.px)||le(t.grow))}function Lg(t){if(Pg(t))throw new Error("parseSizeDef does not accept step-based sizes.");if(BM(t))return t;if(le(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 OM(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 FM(t,e){const n=le(e)?()=>e:e;return{get location(){return t.location+n()},get size(){return t.size}}}function PM(t,e){const n=le(e)?()=>e:e;return{get location(){return t.location*n()},get size(){return t.size*n()}}}function Bg(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):Rl}static createFromRecord(e){return new Je(e.top,e.right,e.bottom,e.left)}static zero(){return Rl}static createUniformPadding(e){return new Je(e,e,e,e)}}const Rl=Je.createUniformPadding(0);Object.freeze(Rl);const zM=/^([A-Za-z]+:)?\/\//;function RM(t,e){if(e&&zM.test(e))return e;const n=t();return n&&e?n.endsWith("/")?n+e:n+"/"+e:n??e}const bs="VISIT_SKIP",tr="VISIT_STOP",Og=t=>t;class Fg{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={},Cg(this),this.opacityFunction=Og,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()):LM)}getSizeFromSpec(){const e=n=>{var i;let r=this.spec[n];if(Pg(r)){const o=r.step,a=(i=this.getScaleResolution(n=="width"?"x":"y"))==null?void 0:i.getScale();if(a){let s=0;if(rn(a.type))s=a.domain().length;else if(["locus","index"].includes(a.type)){const u=a.domain();s=je(u)-u[0]}else throw new Error(`Cannot use step-based size with "${a.type}" scale!`);const c=a;return s=Lu(s,c.paddingInner(),c.paddingOuter()),{px:s*o,grow:0}}else throw new Error("Cannot use 'step' size with missing scale!")}else return(r&&Lg(r))??{px:0,grow:1}};return this._cache("size/sizeFromSpec",()=>new er(e("width"),e("height")))}isVisible(){return this.context.isViewVisible(this)}isVisibleInSpec(){return this.spec.visible??!0}getEffectiveOpacity(){var e;return this.opacityFunction(((e=this.parent)==null?void 0:e.getEffectiveOpacity())??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!==tr)return n}catch(n){throw n.view=this,n}}onScalesResolved(){(!this.opacityFunction||this.opacityFunction===Og)&&(this.opacityFunction=UM(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 Xn(n)?[n.field]:(r=this.parent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}_getResolution(e,n){e=Or(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 RM(()=>{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 re(e)?e:e.text}_cache(e,n){return Yr(this,e,n)}_invalidateCacheByPrefix(e,n="self"){switch(n){case"self":ho(this,e);break;case"ancestors":for(const r of this.getAncestors())ho(r,e);break;case"progeny":this.visit(r=>ho(r,e));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(e){}}function jM(t){return"unitsPerPixel"in t}function UM(t){const e=t.spec.opacity;if(e!==void 0){if(le(e))return n=>n*e;if(jM(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=Su().domain(e.unitsPerPixel).range(e.values).clamp(!0);return o=>{const s=oa(r.domain())/1e3;return i(s)*o}}}return n=>n}const Pg=t=>!!(t!=null&&t.step);class nr extends Fg{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===tr)return n;if(n!==bs){e.beforeChildren&&e.beforeChildren(this);for(const r of this){const i=r.visit(e);if(i===tr)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 nr)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,tr}),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){return this.getConfiguredResolution(e,n)??this.getConfiguredResolution("default",n)??this.getDefaultResolution(e,n)}}function As(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||_r(a)&&_r(s)||_r(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(_r(u))_r(c)&&(r[s]=As([u,c],s));else if(_r(c)){if(!(u===!0||u===void 0))throw new Error("Bug in merge! Target is: "+u);r[s]=As([{},c],s)}else r[s]=c}}};for(const a of t)o(a);return r}function _r(t){return Re(t)&&!Array.isArray(t)}/*!
1339
+ `,HB={left:-1,center:0,right:1},GB={top:-1,middle:0,bottom:1,alphabetic:1};class $B extends Uc{constructor(t){super(t),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?t.context.fontManager.getFont(this.properties.font,this.properties.fontStyle,this.properties.fontWeight):t.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(t){for(const n of _c)this.properties.fitToBand&&zp(t,n);return t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(UB,jB)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;$t(this.programInfo,{uPaddingX:t.paddingX,uPaddingY:t.paddingY,uFlushX:!!t.flushX,uFlushY:!!t.flushY,uAlign:[HB[t.align],GB[t.baseline]],uD:[t.dx,-t.dy],uLogoLetter:!!t.logoLetters,uSqueeze:!!t.squeeze,uViewportEdgeFadeWidth:[t.viewportEdgeFadeWidthTop,t.viewportEdgeFadeWidthRight,t.viewportEdgeFadeWidthBottom,t.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[t.viewportEdgeFadeDistanceTop,t.viewportEdgeFadeDistanceRight,t.viewportEdgeFadeDistanceBottom,t.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getData(),r=this.encoding,i=this.encoders.text.accessor||this.encoders.text;let a=0;const o=r.text.format?rt(r.text.format):c=>c;for(const c of n){const u=o(i(c)),f=ze(u)?u:u===null?"":""+u;a+=f&&f.length||0}const s=new uB({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(a,this.properties.minBufferSize||0)});s.addBatches(t.facetBatches);const l=s.toArrays();this.rangeMap.migrateEntries(l.rangeMap),this.updateBufferInfo(l)}prepareRender(t){const n=super.prepareRender(t);let r=.35;return this.properties.logoLetters&&(r/=2),n.push(()=>$t(this.programInfo,{uTexture:this.font.texture,uSdfNumerator:this.font.metrics.common.base/(this.glHelper.dpr/r)})),n.push(()=>Fo(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Lc(n,this.vertexArrayInfo,n.TRIANGLES,i,r),t)}}function jc(e,t,{spacing:n,devicePixelRatio:r,offset:i,reverse:a}={}){n=n||0,i=i||0;let o=0,s=0;for(const p of e)o+=Tf(p.px)+(Up(p)?0:n),s+=Tf(p.grow);o-=n;const l=Math.max(0,t-o),c=r!==void 0?p=>Math.round(p*r)/r:p=>p,u=[],f=[],h=p=>{const g=u.length;if(!g)return;const y=(p?n:0)*(a?-1:1);d-=y;for(let v=0;v<g;v++)f.push({location:d+(v+1)/(g+1)*y,size:0});d+=y,u.length=0};let d=a?Math.max(t,o):0+i;if(e.length==1&&Up(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const g=e[p];if(Up(g))u.push(g);else{h(f.length>0);const y=Tf(g.px)+(s?Tf(g.grow)/s*l:0);a&&(d-=y),f.push({location:c(d),size:c(y)}),a?d-=n:d+=y+n}}return d+=a?n:-n,h(!1),f}function VB(e){let t=0,n=0;for(const r of e)t=Math.max(t,r.px??0),n=Math.max(n,r.grow??0);return{px:t,grow:n}}const xb=class{constructor(t,n){Fe(this,Kl);this.width=t,this.height=n}addPadding(t){return Ze(this,Kl,kb).call(this,t.width,t.height)}subtractPadding(t){return Ze(this,Kl,kb).call(this,-t.width,-t.height)}};let wa=xb;Kl=new WeakSet,kb=function(t,n){return new xb({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};const Hc=Object.freeze({px:0,grow:0}),YB=new wa(Hc,Hc);function Up(e){return!e.px&&!e.grow}function Tf(e){return e||0}function QB(e){return e&&(Ke(e.px)||Ke(e.grow))}function xx(e){if(Cx(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(QB(e))return e;if(Ke(e))return{px:e,grow:0};if(e==="container")return{px:0,grow:1};if(!e)return{px:0,grow:1};throw new Error(`Invalid sizeDef: ${e}`)}function ZB(e,t,n){return{get location(){const r=n();switch(r){case 0:return e.location;case 1:return t.location;default:return r*t.location+(1-r)*e.location}},get size(){const r=n();switch(r){case 0:return e.size;case 1:return t.size;default:return r*t.size+(1-r)*e.size}}}}function qB(e,t){const n=Ke(t)?()=>t:t;return{get location(){return e.location+n()},get size(){return e.size}}}function WB(e,t){const n=Ke(t)?()=>t:t;return{get location(){return e.location*n()},get size(){return e.size*n()}}}function Ax(e,t){return t>=e.location&&t<e.location+e.size}class on{constructor(t,n,r,i){this.top=t||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(t){return t<=0?this:new on(this.top+t,this.right+t,this.bottom+t,this.left+t)}add(t){return new on(this.top+t.top,this.right+t.right,this.bottom+t.bottom,this.left+t.left)}subtract(t){return new on(this.top-t.top,this.right-t.right,this.bottom-t.bottom,this.left-t.left)}static createFromConfig(t){return typeof t=="number"?this.createUniformPadding(t):t?this.createFromRecord(t):jp}static createFromRecord(t){return new on(t.top,t.right,t.bottom,t.left)}static zero(){return jp}static createUniformPadding(t){return new on(t,t,t,t)}}const jp=on.createUniformPadding(0);Object.freeze(jp);const XB=/^([A-Za-z]+:)?\/\//;function KB(e,t){if(t&&XB.test(t))return t;const n=e();return n&&t?n.endsWith("/")?n+t:n+"/"+t:n??t}const Mf="VISIT_SKIP",xa="VISIT_STOP",Ex=e=>e;class Sx{constructor(t,n,r,i){this.context=n,this.parent=r,this.name=t.name||i,this.spec=t,this.resolutions={scale:{},axis:{}},this._broadcastHandlers={},this._capturingInteractionEventListeners={},this._nonCapturingInteractionEventListeners={},hx(this),this.opacityFunction=Ex,this.blockEncodingInheritance=!1}getPadding(){return this._cache("size/padding",()=>on.createFromConfig(this.spec.padding))}getOverhang(){return on.zero()}getSize(){return this._cache("size/size",()=>this.isVisible()?this.getSizeFromSpec().addPadding(this.getPadding()):YB)}getSizeFromSpec(){const t=n=>{var i;let r=this.spec[n];if(Cx(r)){const a=r.step,o=(i=this.getScaleResolution(n=="width"?"x":"y"))==null?void 0:i.getScale();if(o){let s=0;if(ai(o.type))s=o.domain().length;else if(["locus","index"].includes(o.type)){const c=o.domain();s=Gt(c)-c[0]}else throw new Error(`Cannot use step-based size with "${o.type}" scale!`);const l=o;return s=B0(s,l.paddingInner(),l.paddingOuter()),{px:s*a,grow:0}}else throw new Error("Cannot use 'step' size with missing scale!")}else return(r&&xx(r))??{px:0,grow:1}};return this._cache("size/sizeFromSpec",()=>new wa(t("width"),t("height")))}isVisible(){return this.context.isViewVisible(this)}isVisibleInSpec(){return this.spec.visible??!0}getEffectiveOpacity(){var t;return this.opacityFunction(((t=this.parent)==null?void 0:t.getEffectiveOpacity())??1)}getPathString(){return[...this.getAncestors()].map(t=>t.name).reverse().join("/")}*getAncestors(){let t=this;do yield t,t=t.parent;while(t)}handleBroadcast(t){for(const n of this._broadcastHandlers[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=this._broadcastHandlers[t];r||(r=[],this._broadcastHandlers[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?this._capturingInteractionEventListeners:this._nonCapturingInteractionEventListeners;for(const a of i[n.type]||[])a(t,n)}addInteractionEventListener(t,n,r){const i=r?this._capturingInteractionEventListeners:this._nonCapturingInteractionEventListeners;let a=i[t];a||(a=[],i[t]=a),a.push(n)}visit(t){try{const n=t(this);if(t.postOrder&&t.postOrder(this),n!==xa)return n}catch(n){throw n.view=this,n}}onScalesResolved(){(!this.opacityFunction||this.opacityFunction===Ex)&&(this.opacityFunction=eL(this))}onBeforeRender(){}render(t,n,r={}){}getEncoding(){const t=this.parent&&!this.blockEncodingInheritance?this.parent.getEncoding():{},n=this.spec.encoding||{},r={...t,...n};for(const[i,a]of Object.entries(r))a===null&&delete r[i];return r}getFacetAccessor(t){if(this.parent)return this.parent.getFacetAccessor(this)}getFacetFields(t){var r;const n=this.getEncoding().sample;return pa(n)?[n.field]:(r=this.parent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}_getResolution(t,n){t=So(t);let r=this;do{const i=r.resolutions[n][t];if(i)return i;r=r.parent}while(r)}getScaleResolution(t){return this._getResolution(t,"scale")}getAxisResolution(t){return this._getResolution(t,"axis")}getBaseUrl(){return KB(()=>{var t;return(t=this.parent)==null?void 0:t.getBaseUrl()},this.spec.baseUrl)}getDynamicDataSource(){throw new Error("The view does not provide dynamic data!")}isPickingSupported(){return!0}getTitleText(){const t=this.spec.title;if(t)return ze(t)?t:t.text}_cache(t,n){return Lo(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":Rc(this,t);break;case"ancestors":for(const r of this.getAncestors())Rc(r,t);break;case"progeny":this.visit(r=>Rc(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}function JB(e){return"unitsPerPixel"in e}function eL(e){const t=e.spec.opacity;if(t!==void 0){if(Ke(t))return n=>n*t;if(JB(t)){const n=a=>{var s;const o=(s=e.getScaleResolution(a))==null?void 0:s.getScale();if(["linear","index","locus"].includes(o==null?void 0:o.type))return o},r=t.channel?n(t.channel):n("x")||n("y");if(!r)throw new Error("Cannot find a resolved quantitative scale for dynamic opacity!");const i=_0().domain(t.unitsPerPixel).range(t.values).clamp(!0);return a=>{const s=mu(r.domain())/1e3;return i(s)*a}}}return n=>n}const Cx=e=>!!(e!=null&&e.step);class Aa extends Sx{constructor(t,n,r,i){super(t,n,r,i),this.spec=t}*[Symbol.iterator](){}replaceChild(t,n){throw new Error("Not implemented")}visit(t){let n;try{n=t(this)}catch(r){throw r.view=this,r}if(n===xa)return n;if(n!==Mf){t.beforeChildren&&t.beforeChildren(this);for(const r of this){const i=r.visit(t);if(i===xa)return i}t.afterChildren&&t.afterChildren(this),t.postOrder&&t.postOrder(this)}}findDescendantByPath(t){for(const n of this)if(n.name===t[0]){if(t.length==1)return n;if(n instanceof Aa)return n.findDescendantByPath(t.slice(1))}}findChildByName(t){for(const n of this)if(n.name===t)return n}findDescendantByName(t){let n;return this.visit(r=>{if(r.name==t)return n=r,xa}),n}getConfiguredResolution(t,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[t]}getDefaultResolution(t,n){return"shared"}getConfiguredOrDefaultResolution(t,n){return this.getConfiguredResolution(t,n)??this.getConfiguredResolution("default",n)??this.getDefaultResolution(t,n)}}function Nf(e,t,n){if(n=n||[],e.some(o=>o===null)){if(e.every(o=>o===null))return null;throw console.warn(e),new Error("Cannot merge objects with nulls!")}const r={},i=(o,s)=>o===s||Oo(o)&&Oo(s)||Oo(o)&&s===!0||o===!0&&Ht(s),a=o=>{for(let s in o){const l=o[s];if(!n.includes(s)&&l!==void 0)if(r[s]!==void 0&&!i(r[s],l))console.warn(`Conflicting property ${s} of ${t}: (${JSON.stringify(r[s])} and ${JSON.stringify(o[s])}). Using ${JSON.stringify(r[s])}.`);else{const c=r[s];if(Oo(c))Oo(l)&&(r[s]=Nf([c,l],s));else if(Oo(l)){if(!(c===!0||c===void 0))throw new Error("Bug in merge! Target is: "+c);r[s]=Nf([{},l],s)}else r[s]=l}}};for(const o of e)a(o);return r}function Oo(e){return Ht(e)&&!Array.isArray(e)}/*!
1340
1340
  * Adapted from vega-encode:
1341
1341
  * https://github.com/vega/vega/blob/master/packages/vega-encode/src/ticks.js
1342
1342
  *
@@ -1344,7 +1344,7 @@ void main() {
1344
1344
  * All rights reserved.
1345
1345
  *
1346
1346
  * BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
1347
- */function zg(t,e,n){return le(e)&&n!=null&&(e=Math.min(e,~~(oa(t.domain())/n)||1)),Re(e)&&(e.step,e=e.interval),e}function Rg(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 GM(t,e){return t.bins?Rg(t,HM(t.bins,e)):t.ticks?t.ticks(e):t.domain()}function HM(t,e){var n=t.length,r=~~(n/(e||n));return r<2?t.slice():t.filter(function(i,o){return!(o%r)})}function QM(t,e,n){var r=t.tickFormat?t.tickFormat(e,n):n?he(n):String;if(dp(t.type)){var i=YM(n);r=t.bins?i:VM(r,i)}return r}function VM(t,e){return function(n){return t(n)?e(n):""}}function YM(t){var e=Xt(t||",");if(e.precision==null){switch(e.precision=12,e.type){case"%":e.precision-=2;break;case"e":e.precision-=1;break}return _M(he(e),he(".1f")(1)[1])}else return he(e)}function _M(t,e){return function(n){var r=t(n),i=r.indexOf(e),o,a;if(i<0)return r;for(o=WM(r,i),a=o<r.length?r.slice(o):"";--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function WM(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}/*!
1347
+ */function _x(e,t,n){return Ke(t)&&n!=null&&(t=Math.min(t,~~(mu(e.domain())/n)||1)),Ht(t)&&(t.step,t=t.interval),t}function kx(e,t,n){var r=e.range(),i=Math.floor(r[0]),a=Math.ceil(Cn(r));if(i>a&&(r=a,a=i,i=r),t=t.filter(function(s){return s=e(s),i<=s&&s<=a}),n>0&&t.length>1){for(var o=[t[0],Cn(t)];t.length>n&&t.length>=3;)t=t.filter(function(s,l){return!(l%2)});t.length<3&&(t=o)}return t}function tL(e,t){return e.bins?kx(e,nL(e.bins,t)):e.ticks?e.ticks(t):e.domain()}function nL(e,t){var n=e.length,r=~~(n/(t||n));return r<2?e.slice():e.filter(function(i,a){return!(a%r)})}function rL(e,t,n){var r=e.tickFormat?e.tickFormat(t,n):n?rt(n):String;if(nv(e.type)){var i=aL(n);r=e.bins?i:iL(r,i)}return r}function iL(e,t){return function(n){return e(n)?t(n):""}}function aL(e){var t=Wr(e||",");if(t.precision==null){switch(t.precision=12,t.type){case"%":t.precision-=2;break;case"e":t.precision-=1;break}return oL(rt(t),rt(".1f")(1)[1])}else return rt(t)}function oL(e,t){return function(n){var r=e(n),i=r.indexOf(t),a,o;if(i<0)return r;for(a=sL(r,i),o=a<r.length?r.slice(a):"";--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function sL(e,t){var n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}/*!
1348
1348
  * Adapted from vega-encode:
1349
1349
  * https://github.com/vega/vega/blob/master/packages/vega-encode/src/Scale.js
1350
1350
  *
@@ -1352,45 +1352,232 @@ void main() {
1352
1352
  * All rights reserved.
1353
1353
  *
1354
1354
  * BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
1355
- */const XM="locus",ZM="index";var qM=5;function KM(t){const e=t.type;return!t.bins&&(e===Ir||e===Ri||e===ji)}function jg(t){return Be(t)&&![pt,ZM,XM].includes(t)}function Ug(t){return t||{warn:(e,...n)=>console.warn(e,...n)}}var JM=sa(["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 Gg(t,e,n){n=Ug(n);for(const r in t)if(!JM[r]){if(r==="padding"&&jg(e.type))continue;ke(e[r])?e[r](t[r]):n.warn("Unsupported scale property: "+r)}a8(e,t,o8(e,t,n8(e,t,n)))}function $M(t,e){const n=e8(t),r=X(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return Gg(t,i,e),i}function e8(t){var e=t.type,n="",r;return e===pt?pt+"-"+Ir:(t8(t)&&(r=t.rawDomain?t.rawDomain.length:t.domain?t.domain.length+ +(t.domainMid!=null):0,n=r===2?pt+"-":r===3?kr+"-":""),(n+e||Ir).toLowerCase())}function t8(t){const e=t.type;return Be(e)&&e!==ip&&e!==op&&(t.scheme||t.range&&t.range.length&&t.range.every(re))}function n8(t,e,n){if(!t.domain)return 0;n=Ug(n);var r=r8(t,e.domainRaw,n);if(r>-1)return r;var i=e.domain,o=t.type,a=e.zero||e.zero===void 0&&KM(t),s,c;return i?(jg(o)&&e.padding&&i[0]!==nt(i)&&(i=i8(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(Hg(o,i,n)),o===Ou&&t.unknown(e.domainImplicit?tu:void 0),e.nice&&t.nice&&t.nice(e.nice!==!0&&zg(t,e.nice)||null),i.length):0}function r8(t,e,n){return e?(t.domain(Hg(t.type,e,n)),e.length):-1}function i8(t,e,n,r,i,o){var a=Math.abs(nt(n)-n[0]),s=a/(a-2*r),c=t===nn?_d(e,null,s):t===ji?bc(e,null,s,.5):t===Ri?bc(e,null,s,i||1):t===Fa?d2(e,null,s,o||1):vc(e,null,s);return e=e.slice(),e[0]=c[0],e[e.length-1]=c[1],e}function Hg(t,e,n){if(dp(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: "+aa(e))}return e}function o8(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?nt(i):r.stop,s=r.step;s||se("Scale bins parameter missing step property."),r=Wt(o,a+s,s)}return r?t.bins=r:t.bins&&delete t.bins,t.type===Pu&&(r?!e.domain&&!e.domainRaw&&(t.domain(r),n=r.length):t.bins=t.domain()),n}function a8(t,e,n){var r=t.type,i=e.round||!1,o=e.range;if(e.rangeStep!=null)o=s8(r,e,n);else if(e.scheme&&(o=c8(r,e,n),ke(o))){if(t.interpolator)return t.interpolator(o);se(`Scale type ${r} does not support interpolating color schemes.`)}if(o&&za(r))return t.interpolator(Ra(jl(o,e.reverse),e.interpolate,e.interpolateGamma));o&&e.interpolate&&t.interpolate?t.interpolate(hp(e.interpolate,e.interpolateGamma)):ke(t.round)?t.round(i):ke(t.rangeRound)&&t.interpolate(i?Pi:en),o&&t.range(jl(o,e.reverse))}function s8(t,e,n){t!==cp&&t!==Fu&&se("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*Lu(n,i,r)]}function c8(t,e,n){var r=e.schemeExtent,i,o;return We(e.scheme)?o=Ra(e.scheme,e.interpolate,e.interpolateGamma):(i=e.scheme.toLowerCase(),o=Ru(i),o||se(`Unrecognized scheme name: ${e.scheme}`)),n=t===sp?n+1:t===Pu?n-1:t===Bu||t===ap?+e.schemeCount||qM:n,za(t)?Qg(o,r,e.reverse):ke(o)?h4(Qg(o,r),n):t===Ou?o:o.slice(0,n)}function Qg(t,e,n){return ke(t)&&(e||n)?d4(t,jl(e||[0,1],n)):t}function jl(t,e){return e?t.slice().reverse():t}const Ul=he(",d");function u8(t){return t.chrom+":"+Ul(Math.floor(t.pos+1))}function l8(t,e){return t.chrom+":"+Ul(Math.floor(t.pos+1))+"-"+(t.chrom!=e.chrom?e.chrom+":":"")+Ul(Math.ceil(e.pos))}const f8="https://genomespy.app/data/genomes/";class d8{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=f8;try{this.setChromSizes(h8(await Li({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=Mn(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 l8(...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;let[n,r]=e;return r||(r=n),[this.toContinuous(n.chrom,n.pos??0),this.toContinuous(r.chrom,r.pos??((i=this.chromosomesByName.get(r.chrom))==null?void 0:i.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 h8(t){return N2(t).filter(e=>/^chr[0-9A-Z]+$/.test(e[0])).map(([e,n])=>({name:e,size:parseInt(n)}))}function Vg(t){return Re(t)&&"chrom"in t}function p8(t){return t.every(Vg)}class bo extends Array{constructor(){super(),this.type=void 0}extend(e){return this}extendAll(e){if(e instanceof bo&&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 Gl extends bo{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 Yg extends bo{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 _g extends Yg{constructor(){super(),this.type="nominal"}}class m8 extends bo{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 Wg={quantitative:Gl,index:Gl,locus:Gl,nominal:_g,ordinal:Yg};function Xg(t,e){if(t=="quantitative"&&g8(e)){const n=new m8(e);return n.type=t,n}else if(Wg[t]){const n=new Wg[t];return n.type=t,e&&n.extendAll(e),n}throw new Error("Unknown type: "+t)}function g8(t){return t&&t.length>0&&t.length!=2&&t.every(e=>typeof e=="number")}function Zg(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function y8(t){return--t*t*t+1}function v8(t){return(Math.pow(2,-10*t)-.0009765625)*1.0009775171065494}function b8(t){return 1-v8(t)}const qg="quantitative",Hl="ordinal",Ql="nominal",Kg="locus",A8="index";class x8{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=Ku(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&&!ro(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 Yr(this,"mergedScaleProps",()=>{const e=this.members.map(n=>Ku(n.view,n.channel).scale).filter(n=>n!==void 0);return As(e,"scale",["domain"])})}getScaleProps(){return Yr(this,"scaleProps",()=>{const e=this._getMergedScaleProps();if(e===null||e.type=="null")return{type:"null"};const n={...this._getDefaultScaleProperties(this.type),...e};n.type||(n.type=w8(this.channel,this.type));const r=this.getInitialDomain();return r&&r.length>0?n.domain=r:rn(n.type)?n.domain=new _g:n.scheme&&(n.domain=[0,1]),!n.domain&&n.domainMid!==void 0&&(n.domain=[n.domainMin??0,n.domainMax??1]),this.channel=="y"&&rn(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),C8(n,this.channel),n})}getInitialDomain(){return this.getConfiguredDomain()??(this.type==Kg?this.getGenome().getExtent():this.getDataDomain())}getConfiguredDomain(){return this._reduceDomains(e=>ro(e.channel)?void 0:e.view.getConfiguredDomain(e.channel))}getDataDomain(){return this._reduceDomains(e=>ro(e.channel)?void 0:e.view.extractDataDomain(e.channel))}reconfigure(){if(this._scale&&this._scale.type!="null"){wg(this,"scaleProps");const e=this.getScaleProps();Gg(e,this._scale),Be(this._scale.type)&&(this._zoomExtent=this._getZoomExtent())}}getScale(){if(this._scale)return this._scale;const e=this.getScaleProps(),n=$M(e);return this._scale=n,ew(n)&&n.genome(this.getGenome()),Be(n.type)&&(this._zoomExtent=this._getZoomExtent()),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var e;return((e=this.getGenome())==null?void 0:e.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return this.isZoomable()&&Op(this.getInitialDomain(),this.getDomain())}isZoomable(){if(!Zp(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=u2(a,r||0),a=vc(a,s,e);break;case"log":a=l2(a,r||0),a=_d(a,s,e);break;case"pow":case"sqrt":{const c=i;a=f2(a,r||0,c.exponent()),a=bc(a,s,e,c.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return this._zoomExtent&&(a=h2(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(ia(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=O0([u,0,c],[l,0,f]).rho(.7);await i.transition({duration:n/1e3*d.duration,easingFunction:Zg,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()?oa(this._zoomExtent)/oa(this.getScale().domain()):1}_getZoomExtent(){const e=this.getScaleProps(),n=e.zoom;if(S8(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),no(n)?r.nice=!this.isExplicitDomain():Zn(n)?r.scheme=e==Ql?"tableau10":e==Hl?"blues":"viridis":Wa(n)?r.range=Kp(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 Vg(e)?this.getGenome().toContinuous(e.chrom,e.pos):e}fromComplexInterval(e){return this.type==="locus"&&p8(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 w8(t,e){if(e==A8||e==Kg){if(Zp(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][[Ql,Hl,qg].indexOf(e)]:e==qg?"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 C8(t,e){no(e)&&t.type!=="ordinal"&&(t.range=[0,1]),e=="opacity"&&Be(t.type)&&(t.clamp=!0)}function S8(t){return Re(t)}function Vl(...t){for(const e of t)if(e!==void 0)return e}class E8{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 Yr(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:As(e.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const e=o=>{var s;const a=Ku(o.view,o.channel);if(!at(a))return{member:o,explicitTitle:Vl((s=a.axis)==null?void 0:s.title,a.title),implicitTitle:Vl(Xn(a)?a.field:void 0,Ju(a)?a.expr:void 0)}},n=this.members.map(e),r=n.filter(o=>{var a;if(ro(o.member.channel)&&!o.explicitTitle){const s=Or(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(re));return i.size?[...i].join(", "):null}}class Jg extends Fg{constructor(e,n,r,i){super(e,n,r,i),this.spec=e}}class vt extends nr{constructor(e,n,r,i){super(e,n,r,i),this.spec=e,this.children=(e.layer||[]).map((o,a)=>{if(Zl(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 $g{constructor(e,n){this.n=e,this.maxCols=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 Pt(t){return()=>t}const Yt=class{static create(e,n,r,i){return new Yt(Pt(e),Pt(n),Pt(r),Pt(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"?Pt(i):typeof i=="function"?i:this._passThrough(r)};return new Yt(n("x"),n("y"),n("width"),n("height"))}translate(e,n){return e===0&&n===0?this:new Yt(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 Yt(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 Yt(()=>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 Yt(Pt(this.x),Pt(this.y),Pt(this.width),Pt(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 hn=Yt;pc(hn,"ZERO",Yt.create(0,0,0,0));const D8="chromosome_ticks_and_labels",M8={x:"width",y:"height"};function Yl(t){return t=="x"?"y":"x"}const _l={x:["bottom","top"],y:["left","right"]},e1=Object.fromEntries(Object.entries(_l).map(([t,e])=>e.map(n=>[n,t])).flat(1));function rr(t){return e1[t]}class t1 extends vt{constructor(e,n,r,i){const o=n=="locus",a={...o?I8:n1,...T8(n,e),...e};super(o?k8(a,n):r1(a,n),r,i,`axis_${e.orient}`),this.axisProps=a,this.blockEncodingInheritance=!0}getOrient(){return this.axisProps.orient}getSize(){const e={px:this.getPerpendicularSize()},n={grow:1};return e1[this.axisProps.orient]=="x"?new er(n,e):new er(e,n)}getPerpendicularSize(){return Wl(this.axisProps)}isPickingSupported(){return!1}}function Wl(t){const e=rr(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}const n1={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 T8(t,e){const n=e.orient,r=t=="nominal"||t=="ordinal";let i="center",o="middle",a=e.labelAngle??((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 r1(t,e){const n={...t,extent:Wl(t)},r=rr(n.orient),i=Yl(r),o=n.orient=="bottom"||n.orient=="right"?1:-1,a=n.orient=="bottom"||n.orient=="left"?1:0,s=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:n.domainDash,strokeCap:n.domainCap,color:n.domainColor,[i]:a,size:n.domainWidth}}),c=()=>({name:"labels",mark:{type:"text",clip:!1,align:n.labelAlign,angle:n.labelAngle,baseline:n.labelBaseline,[i+"Offset"]:(n.tickSize+n.labelPadding)*o,[i]:a,size:n.labelFontSize,color:n.labelColor,minBufferSize:1500},encoding:{[r]:{field:"value",type:e},text:{field:"label"}}}),u=()=>({name:"ticks",mark:{type:"rule",clip:!1,strokeDash:n.tickDash,strokeCap:n.tickCap,color:n.tickColor,size:n.tickWidth,minBufferSize:300},encoding:{[i]:{value:a},[i+"2"]:{value:a-n.tickSize/n.extent*(a?1:-1)}}}),f=()=>({name:"title",data:{values:[0]},mark:{type:"text",clip:!1,align:"center",baseline:n.orient=="bottom"?"bottom":"top",angle:[0,90,0,-90][["top","right","bottom","left"].indexOf(n.orient)],text:n.title,color:n.titleColor,[r]:.5,[i]:1-a}}),l=()=>{const h={name:"ticks_and_labels",encoding:{[r]:{field:"value",type:e}},layer:[]};return n.ticks&&h.layer.push(u()),n.labels&&h.layer.push(c()),h},d={resolve:{scale:{[r]:"forced"}},[M8[Yl(r)]]:n.extent,data:{dynamic:{type:"axisTicks",channel:r,axis:t}},layer:[]};return n.domain&&d.layer.push(s()),(n.ticks||n.labels)&&d.layer.push(l()),n.title&&d.layer.push(f()),d}const I8={...n1,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 k8(t,e){const n={...t,extent:Wl(t)},r=rr(n.orient),i=Yl(r),o=n.orient=="bottom"||n.orient=="left"?1:0,a=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:t.chromTickDash,strokeDashOffset:t.chromTickDashOffset,[i]:o,[i+"2"]:o-n.chromTickSize/n.extent*(o?1:-1),color:t.chromTickColor,size:n.chromTickWidth}}),s=()=>{let f;switch(n.orient){case"top":f={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":f={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":f={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":f={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:f={}}return{name:"chromosome_labels",mark:{type:"text",size:n.chromLabelFontSize,font:n.chromLabelFont,fontWeight:n.chromLabelFontWeight,fontStyle:n.chromLabelFontStyle,color:n.chromLabelColor,align:t.chromLabelAlign,baseline:"alphabetic",clip:!1,...f},encoding:{[r+"2"]:{field:"continuousEnd",type:e},text:{field:"name"}}}};let c;switch(n.orient){case"bottom":case"top":c={};break;case"left":c={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":c={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:c={}}const u=r1({...t,...c},e);if(t.chromTicks||t.chromLabels){const f={name:D8,data:{dynamic:{type:"axisGenome",channel:rr(n.orient)}},encoding:{[r]:{field:"continuousStart",type:e,band:0}},layer:[]};if(t.chromTicks&&f.layer.push(a()),t.chromLabels){f.layer.push(s());let l;u.layer.filter(d=>d.name=="ticks_and_labels").forEach(d=>d.layer.filter(h=>h.name=="labels").forEach(h=>{l=h.mark})),l&&(n.orient=="top"||n.orient=="bottom"?(l.viewportEdgeFadeWidthLeft=30,l.viewportEdgeFadeDistanceLeft=40):(l.viewportEdgeFadeWidthBottom=30,l.viewportEdgeFadeDistanceBottom=40))}u.layer.push(f)}return u}class N8 extends vt{constructor(e,n,r,i){const a={...n=="locus"?L8:i1,...e};super(P8(a,n),r,i,`axisGrid_${e.orient}`),this.axisProps=a,this.blockEncodingInheritance=!0}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const i1={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},L8={...i1,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function B8(t,e){const n=t,r=rr(n.orient);return{name:"grid_lines",data:{dynamic:{type:"axisTicks",channel:r,axis:t}},mark:{type:"rule",strokeDash:n.gridDash,strokeCap:n.gridCap,color:n.gridColor,size:n.gridWidth,opacity:n.gridOpacity,minBufferSize:300},encoding:{[r]:{field:"value",type:e}}}}function O8(t,e){const n=t,r=rr(n.orient);return{name:"chromosome_lines",data:{dynamic:{type:"axisGenome",channel:r}},mark:{type:"rule",strokeDash:n.chromGridDash,strokeCap:n.chromGridCap,color:n.chromGridColor,size:n.chromGridWidth,opacity:n.chromGridOpacity},encoding:{[r]:{field:"continuousStart",type:e,band:0}}}}function F8(t,e){const n=t,r=rr(n.orient);return{name:"chromosome_fill",data:{dynamic:{type:"axisGenome",channel:r}},mark:{type:"rect"},encoding:{[r]:{field:"continuousStart",type:e,band:0},[r+"2"]:{field:"continuousEnd",band:0},fill:{field:"odd",type:"nominal",scale:{domain:[!1,!0],range:[n.chromGridFillEven??"white",n.chromGridFillOdd??"white"]}},opacity:{field:"odd",type:"nominal",scale:{type:"ordinal",domain:[!1,!0],range:[n.chromGridFillEven?1:0,n.chromGridFillOdd?1:0]}}}}}function P8(t,e){const n={...t},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(F8(n,e)),n.chromGrid&&n.chromGridOpacity>0&&r.push(O8(n,e)),n.grid&&n.gridOpacity>0&&r.push(B8(n,e)),{name:"grid_layers",resolve:{scale:{fill:"independent",opacity:"independent"}},layer:r}}const o1={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"},z8={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},R8={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},j8={start:0,middle:.5,end:1},U8={start:"left",middle:"center",end:"right"};function G8(t){if(!t)return;const e=re(t)?{text:t}:t;if(!e.text||e.orient=="none")return;const n={"track-title":z8,overlay:R8}[e.style]??{},r={...o1,...n,...e};let i={},o={x:0,y:0};const a=j8[r.anchor??"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={...o1,...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:s.align??U8[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 a1(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&&!c.x.constantValue&&(a=+c.x(r.datum)*e.width+e.x),c.y&&!c.y2&&!c.y.constantValue&&(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 s1 extends nr{constructor(n,r,i,o,a){super(n,r,i,o);q(this,Qo);q(this,Mt);q(this,oc);q(this,ac);q(this,br);q(this,Vo);q(this,Yo);q(this,_o);q(this,sc);q(this,si,1/0);q(this,ci,10);q(this,et,[]);q(this,ui,0);this.spec=n,tt(this,ci,n.spacing??10),tt(this,si,a),tt(this,et,[]),this.wrappingFacet=!1,this._createChildren()}_createChildren(){}appendChild(n){n.parent??(n.parent=this),j(this,et).push($(this,Qo,Rd).call(this,n)),Wb(this,ui)._++}setChildren(n){for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=j(this,et).findIndex(o=>o.view==n);if(i>=0)j(this,et)[i]=$(this,Qo,Rd).call(this,r);else throw new Error("Not my child view!")}get children(){return j(this,et).map(n=>n.view)}get childCount(){return j(this,et).length}onScalesResolved(){super.onScalesResolved(),$(this,ac,Kb).call(this)}*[Symbol.iterator](){for(const n of j(this,et)){n.background&&(yield n.background);for(const r of Object.values(n.gridLines))yield r;for(const r of Object.values(n.axes))yield r;yield n.view,n.title&&(yield n.title)}}getOverhang(){const n=$(this,br,$o).call(this,"column"),r=$(this,br,$o).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 er($(this,Yo,Ud).call(this,"column"),$(this,Yo,Ud).call(this,"row")).subtractPadding(this.getOverhang()).addPadding(this.getPadding()))}render(n,r,i={}){if(!this.isVisible())return;this.parent||(r=r.shrink(this.getPadding())),n.pushView(this,r);const o={devicePixelRatio:this.context.glHelper.dpr},a=yo($(this,Vo,jd).call(this,"column"),r.width,o),s=yo($(this,Vo,jd).call(this,"row"),r.height,o),c=new $g(j(this,Mt,Cn).length,j(this,si)??1/0);for(const[u,f]of j(this,Mt,Cn).entries()){const{view:l,axes:d,gridLines:h,background:p,title:m}=f,[g,y]=c.getCellCoords(u),b=a[$(this,_o,Gd).call(this,"column",g)],w=s[$(this,_o,Gd).call(this,"row",y)],C=l.getSize(),x=l.getPadding().subtract(l.getOverhang()),v=b.location+x.left,A=w.location+x.top,D=(C.width.grow?b.size:C.width.px)-x.width,O=(C.height.grow?w.size:C.height.px)-x.height,k=new hn(()=>r.x+v,()=>r.y+A,()=>D,()=>O);f.coords=k,p==null||p.render(n,k,i);for(const B of Object.values(h))B.render(n,k,i);const T=Q8(l);T&&l.render(n,k,i);for(const[B,H]of Object.entries(d)){const Y=H.axisProps;let Te;const Ie=H.getPerpendicularSize();B=="bottom"?Te=k.translate(0,k.height+Y.offset).modify({height:Ie}):B=="top"?Te=k.translate(0,-Ie-Y.offset).modify({height:Ie}):B=="left"?Te=k.translate(-Ie-Y.offset,0).modify({width:Ie}):B=="right"&&(Te=k.translate(k.width+Y.offset,0).modify({width:Ie})),H.render(n,Te)}T||l.render(n,k,i),m==null||m.render(n,k,{...i,clipRect:void 0})}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=j(this,Mt,Cn).find(o=>o.coords.containsPoint(n.point.x,n.point.y)),i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof de||i instanceof vt)&&a1(n,r.coords,o=>$(this,sc,Jb).call(this,r.coords,r.view,o),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}si=new WeakMap,ci=new WeakMap,et=new WeakMap,ui=new WeakMap,Qo=new WeakSet,Rd=function(n){var i;const r={view:n,background:void 0,axes:{},gridLines:{},coords:hn.ZERO};if(n instanceof de||n instanceof vt){const o=(i=n.spec)==null?void 0:i.view;if(o!=null&&o.fill||o!=null&&o.stroke){const s=new de(c1(o),this.context,n,"background"+j(this,ui));s.blockEncodingInheritance=!0,r.background=s}const a=G8(n.spec.title);if(a){const s=new de(a,this.context,n,"title"+j(this,ui));s.blockEncodingInheritance=!0,r.title=s}}return r},Mt=new WeakSet,Cn=function(){return j(this,et).filter(n=>n.view.isVisible())},oc=new WeakSet,qb=function(){return new $g(j(this,Mt,Cn).length,j(this,si)??1/0)},ac=new WeakSet,Kb=function(){if(Object.keys(this.resolutions.axis).length)throw new Error("GridView (concat, vconcat, hconcat) does not currently support shared axes!");for(const n of j(this,et)){const{view:r,axes:i,gridLines:o}=n,a=(s,c,u)=>{const f=s.getAxisProps();if(f!==null){if(!f.orient){for(const l of _l[c])if(!i[l]){f.orient=l;break}if(!f.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(f.title??(f.title=s.getTitle()),!_l[c].includes(f.orient))throw new Error(`Invalid axis orientation "${f.orient}" on channel "${c}"!`);if(i[f.orient])throw new Error(`An axis with the orient "${f.orient}" already exists!`);i[f.orient]=new t1(f,s.scaleResolution.type,this.context,u),(f.grid||f.chromGrid)&&(o[f.orient]=new N8(f,s.scaleResolution.type,this.context,u))}};if(r instanceof de||r instanceof vt)for(const s of["x","y"]){const c=r.resolutions.axis[s];c&&a(c,s,r)}if(r instanceof vt){for(const s of r.children)for(const[c,u]of Object.entries(s.resolutions.axis)){const f=u.getAxisProps();f&&f.orient&&a(u,c,s)}for(const s of r.children)for(const[c,u]of Object.entries(s.resolutions.axis)){const f=u.getAxisProps();f&&!f.orient&&a(u,c,s)}}[...Object.values(i),...Object.values(o)].forEach(s=>s.visit(c=>{c instanceof de&&c.resolve("scale")}))}},br=new WeakSet,$o=function(n){const r=n=="column"?["left","right"]:["top","bottom"],i=n=="column"?"width":"height",o=(a,s)=>a.map(c=>{const u=j(this,Mt,Cn)[c].axes[r[s]];if(u)return Math.max(u.getPerpendicularSize()+u.axisProps.offset,0);const f=j(this,Mt,Cn)[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 j(this,oc,qb)[n=="column"?"colIndices":"rowIndices"].map(a=>({axisBefore:o(a,0),axisAfter:o(a,1),view:NM(a.map(s=>j(this,Mt,Cn)[s].view.getSize()[i]))}))},Vo=new WeakSet,jd=function(n){const r=$(this,br,$o).call(this,n),i=[];i.push(vo);for(const[o,a]of r.entries())o>0&&i.push({px:j(this,ci),grow:0}),(o==0||this.wrappingFacet)&&i.push(vo),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(vo);return i},Yo=new WeakSet,Ud=function(n){let r=0,i=0;const o=(n=="row"&&this.spec.height)??(n=="column"&&this.spec.width);if(o||o===0)return Lg(o);const a=$(this,br,$o).call(this,n);for(const[s,c]of a.entries())s>0&&(i+=j(this,ci)),(s==0||this.wrappingFacet)&&(i+=0),i+=c.axisBefore,i+=c.view.px??0,r+=c.view.grow??0,i+=c.axisAfter,(s==a.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},_o=new WeakSet,Gd=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},sc=new WeakSet,Jb=function(n,r,i){for(const[o,a]of Object.entries(H8(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 c1(t){return{configurableVisibility:!1,data:{values:[{}]},mark:{fill:null,strokeWidth:1,fillOpacity:t.fill?1:0,...t,type:"rect",clip:!1,tooltip:null}}}function H8(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 Q8(t){let e=!0;return t.visit(n=>{n instanceof de&&e&&(e=n.mark.properties.clip)}),e}class Wr extends s1{constructor(e,n,r,i){super(e,n,r,i,Kl(e)?e.columns:ql(e)?1:1/0),this.spec=e}_createChildren(){const e=this.spec,n=Kl(e)?e.concat:ql(e)?e.vconcat:e.hconcat;this.setChildren(n.map((r,i)=>this.context.createView(r,this,"grid"+i)))}}class V8{constructor(){this.types=[];const e=n=>(r,i,o,a)=>new n(r,i,o,r.name??a);this.addViewType(Y8,e(Jg)),this.addViewType(Zl,e(vt)),this.addViewType(Xl,e(de)),this.addViewType(ql,e(Wr)),this.addViewType(_8,e(Wr)),this.addViewType(Kl,e(Wr))}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??"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&&(re(t.mark)||Re(t.mark))}function Zl(t){return"layer"in t&&Re(t.layer)}function u1(t){return t&&(Xl(t)||Zl(t))&&"aggregateSamples"in t}function Y8(t){return"import"in t}function ql(t){return"vconcat"in t&&We(t.vconcat)}function _8(t){return"hconcat"in t&&We(t.hconcat)}function Kl(t){return"concat"in t&&We(t.concat)}const W8={point:yM,rect:fM,rule:AM,link:SM,text:kM};class de extends nr{constructor(e,n,r,i){super(e,n,r,i),this.spec=e;const o=W8[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){const n=this.mark.encoding;for(const[r,i]of Object.entries(n)){if(!Ke(i))continue;let o=Or(i.resolutionChannel??r);if(e=="axis"&&!no(o))continue;let a=this;for(;(a.getConfiguredOrDefaultResolution(o,e)=="forced"||a.parent instanceof nr&&["shared","excluded","forced"].includes(a.parent.getConfiguredOrDefaultResolution(o,e)))&&a.getConfiguredOrDefaultResolution(o,e)!="excluded";)a=a.parent;a.resolutions[e][o]||(a.resolutions[e][o]=e=="scale"?new x8(o):new E8(o)),no(r)?a.resolutions[e][o].pushUnitView(this,r):e=="scale"&&a.resolutions[e][o].pushUnitView(this,r)}}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(ro(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){const n=this._validateDomainQuery(e),r=n&&n.scale&&n.scale.domain;if(r){const i=this.getScaleResolution(n.resolutionChannel??e);return Xg(n.type??"nominal",i.fromComplexInterval(r))}}extractDataDomain(e){const r=this._validateDomainQuery(e).type??"nominal",i=s=>{let c;const u=this.mark.encoding[s];if(u){const f=this.context.accessorFactory.createAccessor(u);if(f)if(c=Xg(r),f.constant)c.extend(f({}));else{const l=this.getCollector();l!=null&&l.completed&&l.visitData(d=>c.extend(f(d)))}}return c};let o=i(e);const a=$u[e];if(a){const s=i(a);s&&o.extendAll(s)}return o}getZoomLevel(){const e=n=>{var r;return((r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())??1};return to.map(e).reduce((n,r)=>n*r,1)}_initializeAggregateViews(){if(u1(this.spec))for(const e of this.spec.aggregateSamples){const n=e.transform??[];n.length&&je(n).type!="collect"&&n.push({type:"collect"}),n.push({type:"mergeFacets"}),e.transform=n,e.encoding={...e.encoding??{},sample:null};const r=this.context.createView(e,this,"summaryView");r.getFacetFields=i=>{},this.sampleAggregateViews.push(r)}}propagateInteractionEvent(e){e.target=this}getDefaultResolution(e,n){return e=="x"?"shared":"independent"}}function*Jl(t,e=[]){for(const[n,r]of t.entries())if(r instanceof Map)for(const i of Jl(r,[...e,n]))yield i;else yield[[...e,n],r]}class Ao extends ue{get behavior(){return Pl}constructor(e){super(),this.params=e??{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new Tn([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(e){this._data.push(e)}beginBatch(e){mM(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?Wd(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=>K(c)),s=mi(this._data,...a);this.facetBatches.clear();for(const[c,u]of Jl(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 xo{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 X8 extends ue{get behavior(){return Ft}constructor(e){super(),this.params=e,this.startAccessor=K(e.start),this.endAccessor=K(e.end),this.chromAccessor=e.chrom?K(e.chrom):n=>{},this.weightAccessor=e.weight?K(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 xo}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=(g,y,b)=>{if(g==y)return;let w=!1;c&&(c[e]===b?(c[n]=y,w=!0):c[e]!=0&&this._propagate(c)),w||(c=this.createSegment(g,y,b,f))},m=()=>{let g;for(;(g=h.peekValue())!==void 0;)p(d,g,l),d=g,l-=h.pop();d=void 0,c&&(this._propagate(c),c=void 0)};this.handle=g=>{const y=i(g);let b;for(;(b=h.peekValue())!==void 0&&b<y;)p(d,b,l),d=b,l-=h.pop();if(r){let C=a(g);C!==u&&(m(),f=C,u=f)}d!==void 0&&p(d,y,l),d=y;const w=s(g);l+=w,h.push(w,o(g))},this.complete=()=>{m(),super.complete()}}}function Z8(t,e,n=0,r=t.length){const i=new xo,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 q8{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 K8 extends ue{get behavior(){return Pl}constructor(e,n){if(super(),this.params=e,this._data=[],this.channel=e.channel??"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=K(this.params.pos),this.posBisector=ca(this.posAccessor),this.scoreAccessor=K(this.params.score),this.widthAccessor=K(this.params.width),this.laneAccessor=this.params.lane?K(this.params.lane):i=>0,this.padding=this.params.padding??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",i=>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 q8(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=Z8(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 J8 extends ue{constructor(e){super(),this.params=e,this.predicate=void 0}initialize(){this.predicate=qu(this.params.expr,this.getGlobalObject())}handle(e){this.predicate(e)&&this._propagate(e)}}const $8="0".charCodeAt(0);function*e5(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-$8}yield r}class t5 extends ue{get behavior(){return Ft}constructor(e){super();const n=K(e.exons??"exons"),r=K(e.start??"start"),[i,o]=e.as||["exonStart","exonEnd"];this.handle=a=>{let s=r(a),c=s,u=!0;const f=n(a);for(const l of e5(f)){if(u)c=s+l;else{s=c+l;const d=Object.assign({},a);d[i]=c,d[o]=s,this._propagate(d)}u=!u}}}}class n5 extends ue{get behavior(){return Ft}constructor(e){super();const n=qe(e.field).map(o=>K(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]));r5(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 r5(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 i5 extends ue{get behavior(){return dn}constructor(e){super(),this.params=e,this.as=e.as,this.fn=void 0}initialize(){this.fn=qu(this.params.expr,this.getGlobalObject())}handle(e){e[this.as]=this.fn(e),this._propagate(e)}}class l1 extends ue{get behavior(){return dn}constructor(e,n){super();const r=e.channel??"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=K(e.chrom),a=qe(e.pos).map(p=>K(p)),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((p,m)=>`datum[${JSON.stringify(p)}] = chromOffset + +posAccessors[${m}](datum) - ${u[m]};`).join(`
1356
- `));let l,d=0;const h=p=>{if(p!==l){if(d=i.cumulativeChromPositions.get(p),d===void 0)throw new Error("Unknown chromosome/contig: "+p);l=p}return d};this.handle=p=>{f(p,h(o(p)),a),this._propagate(p)}}}const f1={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 o5 extends ue{get behavior(){return dn}constructor(e){super();const n=Bl(f1),r=K(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 a5=65536;class s5 extends ue{get behavior(){return dn}constructor(e){super(),this.params=e}reset(){this.initialize()}initialize(){const e=this.params,n=e.as||"lane",r=le(e.spacing)?e.spacing:1,i=K(e.start),o=K(e.end);if(!e.preference!=!e.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(e.preference){const a=new Float64Array(a5),s=K(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 xo,s=new xo;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 c5 extends ue{get behavior(){return Ft}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=>K(i)),r=e.as?e.as:n.map(ce);this.handle=i=>{const o={};for(let a=0;a<n.length;a++)o[r[a]]=n[a](i);this._propagate(o)}}}class u5 extends ue{get behavior(){return dn}constructor(e){super();const n=new RegExp(e.regex),r=typeof e.as=="string"?[e.as]:e.as,i=K(e.field);this.handle=o=>{const a=i(o);if(re(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 l5 extends ue{get behavior(){return Ft}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 g;const h=Object.keys(d),p=new Map;for(const[y,b]of n.entries())for(const w of h){const C=(g=b.exec(w))==null?void 0:g[1];if(C!==void 0){let x=p.get(C);x||(x=[],p.set(C,x)),x[y]=w}}a=[...p.entries()],s=h.filter(y=>!n.some(b=>b.test(y))&&!(i&&i.test(y)));const m=[...s.map(y=>JSON.stringify(y)+": datum["+JSON.stringify(y)+"]"),JSON.stringify(o)+": sampleId",...r.map(y=>JSON.stringify(y)+": null")];c=new Function("datum","sampleId",`return {
1357
- `+m.join(`,
1355
+ */const cL="locus",lL="index";var uL=5;function fL(e){const t=e.type;return!e.bins&&(t===vo||t===lc||t===uc)}function Dx(e){return Ft(e)&&![Yn,lL,cL].includes(e)}function Ix(e){return e||{warn:(t,...n)=>console.warn(t,...n)}}var hL=yu(["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 Tx(e,t,n){n=Ix(n);for(const r in e)if(!hL[r]){if(r==="padding"&&Dx(t.type))continue;Tt(t[r])?t[r](e[r]):n.warn("Unsupported scale property: "+r)}wL(t,e,vL(t,e,mL(t,e,n)))}function dL(e,t){const n=pL(e),r=xe(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return Tx(e,i,t),i}function pL(e){var t=e.type,n="",r;return t===Yn?Yn+"-"+vo:(gL(e)&&(r=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=r===2?Yn+"-":r===3?wo+"-":""),(n+t||vo).toLowerCase())}function gL(e){const t=e.type;return Ft(t)&&t!==Z2&&t!==q2&&(e.scheme||e.range&&e.range.length&&e.range.every(ze))}function mL(e,t,n){if(!e.domain)return 0;n=Ix(n);var r=bL(e,t.domainRaw,n);if(r>-1)return r;var i=t.domain,a=e.type,o=t.zero||t.zero===void 0&&fL(e),s,l;return i?(Dx(a)&&t.padding&&i[0]!==Cn(i)&&(i=yL(a,i,t.range,t.padding,t.exponent,t.constant)),(o||t.domainMin!=null||t.domainMax!=null||t.domainMid!=null)&&(s=(i=i.slice()).length-1||1,o&&(i[0]>0&&(i[0]=0),i[s]<0&&(i[s]=0)),t.domainMin!=null&&(i[0]=t.domainMin),t.domainMax!=null&&(i[s]=t.domainMax),t.domainMid!=null&&(l=t.domainMid,(l<i[0]||l>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",l),i.splice(s,0,l))),e.domain(Mx(a,i,n)),a===O0&&e.unknown(t.domainImplicit?r0:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&_x(e,t.nice)||null),i.length):0}function bL(e,t,n){return t?(e.domain(Mx(e.type,t,n)),t.length):-1}function yL(e,t,n,r,i,a){var o=Math.abs(Cn(n)-n[0]),s=o/(o-2*r),l=e===ii?Ob(t,null,s):e===uc?xd(t,null,s,.5):e===lc?xd(t,null,s,i||1):e===Yu?__(t,null,s,a||1):wd(t,null,s);return t=t.slice(),t[0]=l[0],t[t.length-1]=l[1],t}function Mx(e,t,n){if(nv(e)){var r=Math.abs(t.reduce(function(i,a){return i+(a<0?-1:a>0?1:0)},0));r!==t.length&&n.warn("Log scale domain includes zero: "+bu(t))}return t}function vL(e,t,n){let r=t.bins;if(r&&!en(r)){const i=(r.start==null||r.stop==null)&&e.domain(),a=r.start==null?i[0]:r.start,o=r.stop==null?Cn(i):r.stop,s=r.step;s||Ye("Scale bins parameter missing step property."),r=qr(a,o+s,s)}return r?e.bins=r:e.bins&&delete e.bins,e.type===z0&&(r?!t.domain&&!t.domainRaw&&(e.domain(r),n=r.length):e.bins=e.domain()),n}function wL(e,t,n){var r=e.type,i=t.round||!1,a=t.range;if(t.rangeStep!=null)a=xL(r,t,n);else if(t.scheme&&(a=AL(r,t,n),Tt(a))){if(e.interpolator)return e.interpolator(a);Ye(`Scale type ${r} does not support interpolating color schemes.`)}if(a&&Zu(r))return e.interpolator(qu(Hp(a,t.reverse),t.interpolate,t.interpolateGamma));a&&t.interpolate&&e.interpolate?e.interpolate(rv(t.interpolate,t.interpolateGamma)):Tt(e.round)?e.round(i):Tt(e.rangeRound)&&e.interpolate(i?sc:ni),a&&e.range(Hp(a,t.reverse))}function xL(e,t,n){e!==K2&&e!==R0&&Ye("Only band and point scales support rangeStep.");var r=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,i=e===R0?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*B0(n,i,r)]}function AL(e,t,n){var r=t.schemeExtent,i,a;return en(t.scheme)?a=qu(t.scheme,t.interpolate,t.interpolateGamma):(i=t.scheme.toLowerCase(),a=U0(i),a||Ye(`Unrecognized scheme name: ${t.scheme}`)),n=e===X2?n+1:e===z0?n-1:e===L0||e===W2?+t.schemeCount||uL:n,Zu(e)?Nx(a,r,t.reverse):Tt(a)?kI(Nx(a,r),n):e===O0?a:a.slice(0,n)}function Nx(e,t,n){return Tt(e)&&(t||n)?_I(e,Hp(t||[0,1],n)):e}function Hp(e,t){return t?e.slice().reverse():e}const Gp=rt(",d");function EL(e){return e.chrom+":"+Gp(Math.floor(e.pos+1))}function SL(e,t){return e.chrom+":"+Gp(Math.floor(e.pos+1))+"-"+(e.chrom!=t.chrom?t.chrom+":":"")+Gp(Math.ceil(t.pos))}const CL="https://genomespy.app/data/genomes/";class _L{constructor(t){if(this.config=t,!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(t){if(!this.config.contigs){this.config.baseUrl?this.baseUrl=/^http(s)?/.test(this.config.baseUrl)?this.config.baseUrl:t+"/"+this.config.baseUrl:this.baseUrl=CL;try{this.setChromSizes(kL(await rc({baseURL:this.baseUrl}).load(`${this.config.name}/${this.name}.chrom.sizes`)))}catch(n){throw new Error(`Could not load chrom sizes: ${n.message}`)}}}hasChrPrefix(){return this.chromosomes.some(t=>t.name.startsWith("chr"))}setChromSizes(t){let n=0;this.startByIndex=[0];for(let r=0;r<t.length;r++){this.startByIndex.push(n);const i=t[r].size,a={...t[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(a);const o=a.name.replace(/^chr/i,"");for(const s of["chr"+o,"CHR"+o,"Chr"+o,a.number,""+a.number,o,a.name])this.cumulativeChromPositions.set(s,n),this.chromosomesByName.set(s,a);n+=a.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(t,n){let r=this.cumulativeChromPositions.get(t);if(r===void 0)throw new Error("Unknown chromosome/contig: "+t);return r+ +n}toChromosome(t){if(t>this.totalSize)return;t=Math.floor(t);const n=Qi(this.startByIndex,t)-1;if(n>0&&n<=this.chromosomes.length)return this.chromosomes[n-1]}toChromosomal(t){const n=this.toChromosome(t);if(n)return{chrom:n.name,pos:Math.floor(t)-n.continuousStart}}getChromosome(t){return this.chromosomesByName.get(t)}formatInterval(t){return SL(...this.toChromosomalInterval(t))}toChromosomalInterval(t){const n=this.toChromosomal(t[0]+.5),r=this.toChromosomal(t[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(t){var i;let[n,r]=t;return r||(r=n),[this.toContinuous(n.chrom,n.pos??0),this.toContinuous(r.chrom,r.pos??((i=this.chromosomesByName.get(r.chrom))==null?void 0:i.size))]}toDiscreteChromosomeIntervals(t){const n=t[0],r=t[1],i=[];if(n.chrom===r.chrom)i.push({chrom:n.chrom,startPos:n.pos,endPos:r.pos});else{const a=this.chromosomes.findIndex(s=>s.name===n.chrom),o=this.chromosomes.findIndex(s=>s.name===r.chrom);i.push({chrom:n.chrom,startPos:n.pos,endPos:this.chromosomes[a].size});for(let s=a+1;s<o;s++)i.push({chrom:this.chromosomes[s].name,startPos:0,endPos:this.chromosomes[s].size});i.push({chrom:r.chrom,startPos:0,endPos:r.pos})}return i}continuousToDiscreteChromosomeIntervals(t){return this.toDiscreteChromosomeIntervals([this.toChromosomal(t[0]),this.toChromosomal(t[1])])}parseInterval(t){const n=t.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,a=parseInt(n[2].replace(/,/g,"")),o=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):a;return[this.toContinuous(r,a-1),this.toContinuous(i,o)]}}}function kL(e){return V_(e).filter(t=>/^chr[0-9A-Z]+$/.test(t[0])).map(([t,n])=>({name:t,size:parseInt(n)}))}function Fx(e){return Ht(e)&&"chrom"in e}function DL(e){return e.every(Fx)}class Gc extends Array{constructor(){super(),this.type=void 0}extend(t){return this}extendAll(t){if(t instanceof Gc&&t.type!=this.type)throw new Error(`Cannot combine different types of domains: ${this.type} and ${t.type}`);for(const n of t)this.extend(n);return this}extendAllWithAccessor(t,n){for(const r of t)this.extend(n(r));return this}}class $p extends Gc{constructor(){super(),this.type="quantitative"}extend(t){return t==null||Number.isNaN(t)?this:(t=+t,this.length?t<this[0]?this[0]=t:t>this[1]&&(this[1]=t):(this.push(t),this.push(t)),this)}}class Bx extends Gc{constructor(){super(),this.type="ordinal",this.uniqueValues=new Set}extend(t){return t==null||Number.isNaN(t)?this:(this.uniqueValues.has(t)||(this.uniqueValues.add(t),this.push(t)),this)}}class Lx extends Bx{constructor(){super(),this.type="nominal"}}class IL extends Gc{constructor(t){super();let n=0;for(let r=1;r<t.length;r++)n+=Math.sign(t[r]-t[r-1]);if(Math.abs(n)!=t.length-1)throw new Error("Piecewise domain must be strictly increasing or decreasing: "+JSON.stringify(t));t.forEach(r=>this.push(r))}extend(t){if(this.includes(t))return this;throw new Error("Piecewise domains are immutable and cannot be unioned!")}}const Ox={quantitative:$p,index:$p,locus:$p,nominal:Lx,ordinal:Bx};function Rx(e,t){if(e=="quantitative"&&TL(t)){const n=new IL(t);return n.type=e,n}else if(Ox[e]){const n=new Ox[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function TL(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function zx(e){return((e*=2)<=1?e*e:--e*(2-e)+1)/2}function ML(e){return--e*e*e+1}function NL(e){return(Math.pow(2,-10*e)-.0009765625)*1.0009775171065494}function FL(e){return 1-NL(e)}const Px="quantitative",Vp="ordinal",Yp="nominal",Ux="locus",BL="index";class LL{constructor(t){this.channel=t,this.members=[],this.type=null,this._zoomExtent=void 0,this._domainListeners=new Set,this.name=void 0,this._scale=void 0}addEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);this._domainListeners.add(n)}removeEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);this._domainListeners.delete(n)}_notifyDomainListeners(){for(const t of this._domainListeners.values())t({type:"domain",scaleResolution:this})}pushUnitView(t,n){var o;const r=ep(t,n),i=r.type,a=(o=r==null?void 0:r.scale)==null?void 0:o.name;if(a){if(this.name!==void 0&&a!=this.name)throw new Error(`Shared scales have conflicting names: "${a}" vs. "${this.name}"!`);this.name=a}if(!this.type)this.type=i;else if(i!==this.type&&!Dc(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:t,channel:n})}isExplicitDomain(){return!!this.getConfiguredDomain()}_getMergedScaleProps(){return Lo(this,"mergedScaleProps",()=>{const t=this.members.map(n=>ep(n.view,n.channel).scale).filter(n=>n!==void 0);return Nf(t,"scale",["domain"])})}getScaleProps(){return Lo(this,"scaleProps",()=>{const t=this._getMergedScaleProps();if(t===null||t.type=="null")return{type:"null"};const n={...this._getDefaultScaleProperties(this.type),...t};n.type||(n.type=OL(this.channel,this.type));const r=this.getInitialDomain();return r&&r.length>0?n.domain=r:ai(n.type)?n.domain=new Lx:n.scheme&&(n.domain=[0,1]),!n.domain&&n.domainMid!==void 0&&(n.domain=[n.domainMin??0,n.domainMax??1]),this.channel=="y"&&ai(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),RL(n,this.channel),n})}getInitialDomain(){return this.getConfiguredDomain()??(this.type==Ux?this.getGenome().getExtent():this.getDataDomain())}getConfiguredDomain(){return this._reduceDomains(t=>Dc(t.channel)?void 0:t.view.getConfiguredDomain(t.channel))}getDataDomain(){return this._reduceDomains(t=>Dc(t.channel)?void 0:t.view.extractDataDomain(t.channel))}reconfigure(){if(this._scale&&this._scale.type!="null"){fx(this,"scaleProps");const t=this.getScaleProps();Tx(t,this._scale),Ft(this._scale.type)&&(this._zoomExtent=this._getZoomExtent())}}getScale(){if(this._scale)return this._scale;const t=this.getScaleProps(),n=dL(t);return this._scale=n,p5(n)&&n.genome(this.getGenome()),Ft(n.type)&&(this._zoomExtent=this._getZoomExtent()),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var t;return((t=this.getGenome())==null?void 0:t.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return this.isZoomable()&&$0(this.getInitialDomain(),this.getDomain())}isZoomable(){if(!zv(this.channel))return!1;const t=this.getScale().type;return["linear","locus","index","log","pow","sqrt"].includes(t)?!!this.getScaleProps().zoom:!1}zoom(t,n,r){if(!this.isZoomable())return!1;const i=this.getScale(),a=i.domain();let o=[...a],s=i.invert(n);switch(this.getScaleProps().reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":o=E_(o,r||0),o=wd(o,s,t);break;case"log":o=S_(o,r||0),o=Ob(o,s,t);break;case"pow":case"sqrt":{const l=i;o=C_(o,r||0,l.exponent()),o=xd(o,s,t,l.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return this._zoomExtent&&(o=k_(o,this._zoomExtent[0],this._zoomExtent[1])),[0,1].some(l=>o[l]!=a[l])?(i.domain(o),this._notifyDomainListeners(),!0):!1}async zoomTo(t,n=!1){var s;if(gu(n)&&(n=n?700:0),!this.isZoomable())throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(t),i=(s=this.members[0])==null?void 0:s.view.context.animator,a=this.getScale(),o=a.domain();if(n>0&&o.length==2){const l=o[1]-o[0],c=o[0]+l/2,u=r[1]-r[0],f=r[0]+u/2,h=S2([c,0,l],[f,0,u]).rho(.7);await i.transition({duration:n/1e3*h.duration,easingFunction:zx,onUpdate:d=>{const[p,,g]=h(d);a.domain([p-g/2,p+g/2]),this._notifyDomainListeners()}}),a.domain(r),this._notifyDomainListeners()}else a.domain(r),i==null||i.requestRender(),this._notifyDomainListeners()}resetZoom(){if(!this.isZoomable())throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=this.getInitialDomain();return[0,1].some(r=>n[r]!=t[r])?(this._scale.domain(n),this._notifyDomainListeners(),!0):!1}getZoomLevel(){return this.isZoomable()?mu(this._zoomExtent)/mu(this.getScale().domain()):1}_getZoomExtent(){const t=this.getScaleProps(),n=t.zoom;if(zL(n)&&en(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():this._scale.domain()}_getDefaultScaleProperties(t){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),kc(n)?r.nice=!this.isExplicitDomain():ga(n)?r.scheme=t==Yp?"tableau10":t==Vp?"blues":"viridis":af(n)?r.range=Uv(n):n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r}getGenome(){var n;if(this.type!=="locus")return;const t=(n=this.members[0].view.context.genomeStore)==null?void 0:n.getGenome();if(!t)throw new Error("No genome has been defined!");return t}invertToComplex(t){const n=this.getScale();if("invert"in n){const r=n.invert(t);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(t){const n=this.getGenome();return n?n.toChromosomal(t):t}fromComplex(t){return Fx(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&DL(t)?this.getGenome().toContinuousInterval(t):t}_getViewPaths(){return this.members.map(t=>t.view.getPathString()).join(", ")}_reduceDomains(t){const n=this.members.map(t).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))}}function OL(e,t){if(t==BL||t==Ux){if(zv(e))return t;throw new Error(`${e} does not support ${t} 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(e)?"null":n[e]?n[e][[Yp,Vp,Px].indexOf(t)]:t==Px?"linear":"ordinal";if(i===void 0)throw new Error(`Channel "${e}" is not compatible with "${t}" data type. Use of a proper scale may be needed.`);return i}function RL(e,t){kc(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&Ft(e.type)&&(e.clamp=!0)}function zL(e){return Ht(e)}function Qp(...e){for(const t of e)if(t!==void 0)return t}class PL{constructor(t){this.channel=t,this.members=[]}get scaleResolution(){var t;return(t=Gt(this.members))==null?void 0:t.view.getScaleResolution(this.channel)}pushUnitView(t,n){const r=t.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:t,channel:n})}getAxisProps(){return Lo(this,"axisProps",()=>{const t=this.members.map(n=>{const r=n.view.mark.encoding[n.channel];return"axis"in r&&r.axis});return t.length>0&&t.some(n=>n===null)?null:Nf(t.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const t=a=>{var s;const o=ep(a.view,a.channel);if(!In(o))return{member:a,explicitTitle:Qp((s=o.axis)==null?void 0:s.title,o.title),implicitTitle:Qp(pa(o)?o.field:void 0,tp(o)?o.expr:void 0)}},n=this.members.map(t),r=n.filter(a=>{var o;if(Dc(a.member.channel)&&!a.explicitTitle){const s=So(a.member.channel);return((o=n.find(l=>l.member.view==a.member.view&&l.member.channel==s))==null?void 0:o.explicitTitle)===void 0}return!0}),i=new Set(r.map(a=>Qp(a.explicitTitle,a.implicitTitle)).filter(ze));return i.size?[...i].join(", "):null}}class jx extends Sx{constructor(t,n,r,i){super(t,n,r,i),this.spec=t}}class Wn extends Aa{constructor(t,n,r,i){super(t,n,r,i),this.spec=t,this.children=(t.layer||[]).map((a,o)=>{if(Kp(a)||Xp(a))return n.createView(a,this,"layer"+o);throw new Error("LayerView accepts only unit or layer specs as children!")})}*[Symbol.iterator](){for(const t of this.children)yield t}render(t,n,r={}){if(this.isVisible()){t.pushView(this,n);for(const i of this.children)i.render(t,n,r);t.popView(this)}}propagateInteractionEvent(t){this.handleInteractionEvent(void 0,t,!0),this.children.length&&this.children.at(-1).propagateInteractionEvent(t),!t.stopped&&this.handleInteractionEvent(void 0,t,!1)}}class Hx{constructor(t,n){this.n=t,this.maxCols=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 t=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const a=[];t.push(a);for(let o=0;o<n;o++){const s=i*n+o;s<this.n&&a.push(s)}}return t}get colIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const a=[];t.push(a);for(let o=0;o<r;o++){const s=o*n+i;s<this.n&&a.push(s)}}return t}getCellIndex(t,n){let r=0;if(this.maxCols==1/0)r=n==0?t:void 0;else{if(t>=this.maxCols)return;r=n*this.nCols+t}return r<this.n?r:void 0}getCellCoords(t){if(!(t<0||t>=this.n))return[t%this.nCols,Math.floor(t/this.nCols)]}}function _r(e){return()=>e}const Gr=class{static create(t,n,r,i){return new Gr(_r(t),_r(n),_r(r),_r(i))}_offset(t,n){const r=this["_"+t];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(t){return this._offset(t,0)}constructor(t,n,r,i){this._x=t,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(t){return t?this===t||this.x===t.x&&this.y===t.y&&this.width===t.width&&this.height===t.height:!1}modify(t){if(!Object.keys(t).length)return this;const n=r=>{const i=t[r];return typeof i=="number"?_r(i):typeof i=="function"?i:this._passThrough(r)};return new Gr(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new Gr(this._offset("x",t),this._offset("y",n),this._passThrough("width"),this._passThrough("height"))}translateBy(t){return this.translate(t.x,t.y)}expand(t,n=1){return t.left==0&&t.top==0&&t.right==0&&t.bottom==0?this:new Gr(t.left?this._offset("x",-t.left*n):this._passThrough("x"),t.top?this._offset("y",-t.top*n):this._passThrough("y"),t.width?this._offset("width",t.width*n):this._passThrough("width"),t.height?this._offset("height",t.height*n):this._passThrough("height"))}shrink(t){return this.expand(t,-1)}intersect(t){return this===t?this:new Gr(()=>Math.max(this.x,t.x),()=>Math.max(this.y,t.y),()=>Math.min(this.x2,t.x2)-Math.max(this.x,t.x),()=>Math.min(this.y2,t.y2)-Math.max(this.y,t.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new Gr(_r(this.x),_r(this.y),_r(this.width),_r(this.height))}containsPoint(t,n){return t>=this.x&&t<this.x2&&n>=this.y&&n<this.y2}normalizePoint(t,n){return{x:(t-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 pi=Gr;En(pi,"ZERO",Gr.create(0,0,0,0));const UL="chromosome_ticks_and_labels",jL={x:"width",y:"height"};function Zp(e){return e=="x"?"y":"x"}const qp={x:["bottom","top"],y:["left","right"]},Gx=Object.fromEntries(Object.entries(qp).map(([e,t])=>t.map(n=>[n,e])).flat(1));function Ea(e){return Gx[e]}class $x extends Wn{constructor(t,n,r,i){const a=n=="locus",o={...a?GL:Vx,...HL(n,t),...t};super(a?$L(o,n):Yx(o,n),r,i,`axis_${t.orient}`),this.axisProps=o,this.blockEncodingInheritance=!0}getOrient(){return this.axisProps.orient}getSize(){const t={px:this.getPerpendicularSize()},n={grow:1};return Gx[this.axisProps.orient]=="x"?new wa(n,t):new wa(t,n)}getPerpendicularSize(){return Wp(this.axisProps)}isPickingSupported(){return!1}}function Wp(e){const t=Ea(e.orient);let n=e.ticks&&e.tickSize||0;return e.labels&&(n+=e.labelPadding,t=="x"?n+=e.labelFontSize:n+=30),e.title&&(n+=e.titlePadding+e.titleFontSize),n=Math.min(e.maxExtent||1/0,Math.max(e.minExtent||0,n)),n}const Vx={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 HL(e,t){const n=t.orient,r=e=="nominal"||e=="ordinal";let i="center",a="middle",o=t.labelAngle??((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(o)>30?(i=o>0==(n=="bottom")?"left":"right",a="middle"):a=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:o,labelBaseline:a}}function Yx(e,t){const n={...e,extent:Wp(e)},r=Ea(n.orient),i=Zp(r),a=n.orient=="bottom"||n.orient=="right"?1:-1,o=n.orient=="bottom"||n.orient=="left"?1:0,s=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:n.domainDash,strokeCap:n.domainCap,color:n.domainColor,[i]:o,size:n.domainWidth}}),l=()=>({name:"labels",mark:{type:"text",clip:!1,align:n.labelAlign,angle:n.labelAngle,baseline:n.labelBaseline,[i+"Offset"]:(n.tickSize+n.labelPadding)*a,[i]:o,size:n.labelFontSize,color:n.labelColor,minBufferSize:1500},encoding:{[r]:{field:"value",type:t},text:{field:"label"}}}),c=()=>({name:"ticks",mark:{type:"rule",clip:!1,strokeDash:n.tickDash,strokeCap:n.tickCap,color:n.tickColor,size:n.tickWidth,minBufferSize:300},encoding:{[i]:{value:o},[i+"2"]:{value:o-n.tickSize/n.extent*(o?1:-1)}}}),u=()=>({name:"title",data:{values:[0]},mark:{type:"text",clip:!1,align:"center",baseline:n.orient=="bottom"?"bottom":"top",angle:[0,90,0,-90][["top","right","bottom","left"].indexOf(n.orient)],text:n.title,color:n.titleColor,[r]:.5,[i]:1-o}}),f=()=>{const d={name:"ticks_and_labels",encoding:{[r]:{field:"value",type:t}},layer:[]};return n.ticks&&d.layer.push(c()),n.labels&&d.layer.push(l()),d},h={resolve:{scale:{[r]:"forced"}},[jL[Zp(r)]]:n.extent,data:{lazy:{type:"axisTicks",channel:r,axis:e}},layer:[]};return n.domain&&h.layer.push(s()),(n.ticks||n.labels)&&h.layer.push(f()),n.title&&h.layer.push(u()),h}const GL={...Vx,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 $L(e,t){const n={...e,extent:Wp(e)},r=Ea(n.orient),i=Zp(r),a=n.orient=="bottom"||n.orient=="left"?1:0,o=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:e.chromTickDash,strokeDashOffset:e.chromTickDashOffset,[i]:a,[i+"2"]:a-n.chromTickSize/n.extent*(a?1:-1),color:e.chromTickColor,size:n.chromTickWidth}}),s=()=>{let u;switch(n.orient){case"top":u={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":u={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":u={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":u={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:u={}}return{name:"chromosome_labels",mark:{type:"text",size:n.chromLabelFontSize,font:n.chromLabelFont,fontWeight:n.chromLabelFontWeight,fontStyle:n.chromLabelFontStyle,color:n.chromLabelColor,align:e.chromLabelAlign,baseline:"alphabetic",clip:!1,...u},encoding:{[r+"2"]:{field:"continuousEnd",type:t},text:{field:"name"}}}};let l;switch(n.orient){case"bottom":case"top":l={};break;case"left":l={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":l={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:l={}}const c=Yx({...e,...l},t);if(e.chromTicks||e.chromLabels){const u={name:UL,data:{lazy:{type:"axisGenome",channel:Ea(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&u.layer.push(o()),e.chromLabels){u.layer.push(s());let f;c.layer.filter(h=>h.name=="ticks_and_labels").forEach(h=>h.layer.filter(d=>d.name=="labels").forEach(d=>{f=d.mark})),f&&(n.orient=="top"||n.orient=="bottom"?(f.viewportEdgeFadeWidthLeft=30,f.viewportEdgeFadeDistanceLeft=40):(f.viewportEdgeFadeWidthBottom=30,f.viewportEdgeFadeDistanceBottom=40))}c.layer.push(u)}return c}class VL extends Wn{constructor(t,n,r,i){const o={...n=="locus"?YL:Qx,...t};super(WL(o,n),r,i,`axisGrid_${t.orient}`),this.axisProps=o,this.blockEncodingInheritance=!0}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const Qx={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},YL={...Qx,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function QL(e,t){const n=e,r=Ea(n.orient);return{name:"grid_lines",data:{lazy:{type:"axisTicks",channel:r,axis:e}},mark:{type:"rule",strokeDash:n.gridDash,strokeCap:n.gridCap,color:n.gridColor,size:n.gridWidth,opacity:n.gridOpacity,minBufferSize:300},encoding:{[r]:{field:"value",type:t}}}}function ZL(e,t){const n=e,r=Ea(n.orient);return{name:"chromosome_lines",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rule",strokeDash:n.chromGridDash,strokeCap:n.chromGridCap,color:n.chromGridColor,size:n.chromGridWidth,opacity:n.chromGridOpacity},encoding:{[r]:{field:"continuousStart",type:t,band:0}}}}function qL(e,t){const n=e,r=Ea(n.orient);return{name:"chromosome_fill",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rect"},encoding:{[r]:{field:"continuousStart",type:t,band:0},[r+"2"]:{field:"continuousEnd",band:0},fill:{field:"odd",type:"nominal",scale:{domain:[!1,!0],range:[n.chromGridFillEven??"white",n.chromGridFillOdd??"white"]}},opacity:{field:"odd",type:"nominal",scale:{type:"ordinal",domain:[!1,!0],range:[n.chromGridFillEven?1:0,n.chromGridFillOdd?1:0]}}}}}function WL(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(qL(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(ZL(n,t)),n.grid&&n.gridOpacity>0&&r.push(QL(n,t)),{name:"grid_layers",resolve:{scale:{fill:"independent",opacity:"independent"}},layer:r}}const Zx={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"},XL={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},KL={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},JL={start:0,middle:.5,end:1},e7={start:"left",middle:"center",end:"right"};function t7(e){if(!e)return;const t=ze(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":XL,overlay:KL}[t.style]??{},r={...Zx,...n,...t};let i={},a={x:0,y:0};const o=JL[r.anchor??"middle"];switch(r.orient){case"top":a={x:o,y:1},i={baseline:"alphabetic",angle:0};break;case"right":a={x:1,y:1-o},i={baseline:"alphabetic",angle:90};break;case"bottom":a={x:o,y:0},i={baseline:"top",angle:0};break;case"left":a={x:0,y:o},i={baseline:"alphabetic",angle:-90};break}const s={...Zx,...i,...n,...t},l={xOffset:0,yOffset:0};switch(r.orient){case"top":l.yOffset=-s.offset;break;case"right":l.xOffset=s.offset;break;case"bottom":l.yOffset=s.offset;break;case"left":l.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...a,...l,text:s.text,align:s.align??e7[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 qx(e,t,n,r){if(e.type=="wheel"){e.uiEvent.preventDefault();const i=e.uiEvent,a=i.deltaMode?120:1;let{x:o,y:s}=e.point;if(r){const l=r.mark.encoders;l.x&&!l.x2&&!l.x.constantValue&&(o=+l.x(r.datum)*t.width+t.x),l.y&&!l.y2&&!l.y.constantValue&&(s=(1-+l.y(r.datum))*t.height+t.y)}Math.abs(i.deltaX)<Math.abs(i.deltaY)?n({x:o,y:s,xDelta:0,yDelta:0,zDelta:i.deltaY*a/300}):n({x:o,y:s,xDelta:-i.deltaX*a,yDelta:0,zDelta:0})}else if(e.type=="mousedown"&&e.uiEvent.button===0){const i=e.uiEvent;i.preventDefault();let a=i;const o=l=>{n({x:a.clientX,y:a.clientY,xDelta:l.clientX-a.clientX,yDelta:l.clientY-a.clientY,zDelta:0}),a=l},s=l=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",o,!1)}}class Wx extends Aa{constructor(n,r,i,a,o){super(n,r,i,a);Fe(this,Jl);Fe(this,gr);Fe(this,od);Fe(this,sd);Fe(this,oo);Fe(this,eu);Fe(this,tu);Fe(this,nu);Fe(this,cd);Fe(this,Ts,1/0);Fe(this,Ms,10);Fe(this,xn,[]);Fe(this,Ns,0);this.spec=n,Sn(this,Ms,n.spacing??10),Sn(this,Ts,o),Sn(this,xn,[]),this.wrappingFacet=!1,this._createChildren()}_createChildren(){}appendChild(n){n.parent??(n.parent=this),ce(this,xn).push(Ze(this,Jl,Db).call(this,n)),c_(this,Ns)._++}setChildren(n){for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=ce(this,xn).findIndex(a=>a.view==n);if(i>=0)ce(this,xn)[i]=Ze(this,Jl,Db).call(this,r);else throw new Error("Not my child view!")}get children(){return ce(this,xn).map(n=>n.view)}get childCount(){return ce(this,xn).length}onScalesResolved(){super.onScalesResolved(),Ze(this,sd,h_).call(this)}*[Symbol.iterator](){for(const n of ce(this,xn)){n.background&&(yield n.background);for(const r of Object.values(n.gridLines))yield r;for(const r of Object.values(n.axes))yield r;yield n.view,n.title&&(yield n.title)}}getOverhang(){const n=Ze(this,oo,uu).call(this,"column"),r=Ze(this,oo,uu).call(this,"row");return!n.length||!r.length?on.zero():new on(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)}getSize(){return this._cache("size",()=>new wa(Ze(this,tu,Tb).call(this,"column"),Ze(this,tu,Tb).call(this,"row")).subtractPadding(this.getOverhang()).addPadding(this.getPadding()))}render(n,r,i={}){if(!this.isVisible())return;this.parent||(r=r.shrink(this.getPadding())),n.pushView(this,r);const a={devicePixelRatio:this.context.glHelper.dpr},o=jc(Ze(this,eu,Ib).call(this,"column"),r.width,a),s=jc(Ze(this,eu,Ib).call(this,"row"),r.height,a),l=new Hx(ce(this,gr,Gi).length,ce(this,Ts)??1/0);for(const[c,u]of ce(this,gr,Gi).entries()){const{view:f,axes:h,gridLines:d,background:p,title:g}=u,[y,v]=l.getCellCoords(c),S=o[Ze(this,nu,Mb).call(this,"column",y)],k=s[Ze(this,nu,Mb).call(this,"row",v)],C=f.getSize(),E=f.getPadding().subtract(f.getOverhang()),w=S.location+E.left,A=k.location+E.top,T=(C.width.grow?S.size:C.width.px)-E.width,D=(C.height.grow?k.size:C.height.px)-E.height,M=new pi(()=>r.x+w,()=>r.y+A,()=>T,()=>D);u.coords=M,p==null||p.render(n,M,i);for(const U of Object.values(d))U.render(n,M,i);const F=r7(f);F&&f.render(n,M,i);for(const[U,q]of Object.entries(h)){const V=q.axisProps;let pe;const Se=q.getPerpendicularSize();U=="bottom"?pe=M.translate(0,M.height+V.offset).modify({height:Se}):U=="top"?pe=M.translate(0,-Se-V.offset).modify({height:Se}):U=="left"?pe=M.translate(-Se-V.offset,0).modify({width:Se}):U=="right"&&(pe=M.translate(M.width+V.offset,0).modify({width:Se})),q.render(n,pe)}F||f.render(n,M,i),g==null||g.render(n,M,{...i,clipRect:void 0})}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=ce(this,gr,Gi).find(a=>a.coords.containsPoint(n.point.x,n.point.y)),i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof Je||i instanceof Wn)&&qx(n,r.coords,a=>Ze(this,cd,d_).call(this,r.coords,r.view,a),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}Ts=new WeakMap,Ms=new WeakMap,xn=new WeakMap,Ns=new WeakMap,Jl=new WeakSet,Db=function(n){var i;const r={view:n,background:void 0,axes:{},gridLines:{},coords:pi.ZERO};if(n instanceof Je||n instanceof Wn){const a=(i=n.spec)==null?void 0:i.view;if(a!=null&&a.fill||a!=null&&a.stroke){const s=new Je(Xx(a),this.context,n,"background"+ce(this,Ns));s.blockEncodingInheritance=!0,r.background=s}const o=t7(n.spec.title);if(o){const s=new Je(o,this.context,n,"title"+ce(this,Ns));s.blockEncodingInheritance=!0,r.title=s}}return r},gr=new WeakSet,Gi=function(){return ce(this,xn).filter(n=>n.view.isVisible())},od=new WeakSet,f_=function(){return new Hx(ce(this,gr,Gi).length,ce(this,Ts)??1/0)},sd=new WeakSet,h_=function(){if(Object.keys(this.resolutions.axis).length)throw new Error("GridView (concat, vconcat, hconcat) does not currently support shared axes!");for(const n of ce(this,xn)){const{view:r,axes:i,gridLines:a}=n,o=(s,l,c)=>{const u=s.getAxisProps();if(u!==null){if(!u.orient){for(const f of qp[l])if(!i[f]){u.orient=f;break}if(!u.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(u.title??(u.title=s.getTitle()),!qp[l].includes(u.orient))throw new Error(`Invalid axis orientation "${u.orient}" on channel "${l}"!`);if(i[u.orient])throw new Error(`An axis with the orient "${u.orient}" already exists!`);i[u.orient]=new $x(u,s.scaleResolution.type,this.context,c),(u.grid||u.chromGrid)&&(a[u.orient]=new VL(u,s.scaleResolution.type,this.context,c))}};if(r instanceof Je||r instanceof Wn)for(const s of["x","y"]){const l=r.resolutions.axis[s];l&&o(l,s,r)}if(r instanceof Wn){for(const s of r.children)for(const[l,c]of Object.entries(s.resolutions.axis)){const u=c.getAxisProps();u&&u.orient&&o(c,l,s)}for(const s of r.children)for(const[l,c]of Object.entries(s.resolutions.axis)){const u=c.getAxisProps();u&&!u.orient&&o(c,l,s)}}[...Object.values(i),...Object.values(a)].forEach(s=>s.visit(l=>{l instanceof Je&&l.resolve("scale")}))}},oo=new WeakSet,uu=function(n){const r=n=="column"?["left","right"]:["top","bottom"],i=n=="column"?"width":"height",a=(o,s)=>o.map(l=>{const c=ce(this,gr,Gi)[l].axes[r[s]];if(c)return Math.max(c.getPerpendicularSize()+c.axisProps.offset,0);const u=ce(this,gr,Gi)[l].view.getOverhang();return n=="column"?s?u.right:u.left:s?u.bottom:u.top}).reduce((l,c)=>Math.max(l,c),0);return ce(this,od,f_)[n=="column"?"colIndices":"rowIndices"].map(o=>({axisBefore:a(o,0),axisAfter:a(o,1),view:VB(o.map(s=>ce(this,gr,Gi)[s].view.getSize()[i]))}))},eu=new WeakSet,Ib=function(n){const r=Ze(this,oo,uu).call(this,n),i=[];i.push(Hc);for(const[a,o]of r.entries())a>0&&i.push({px:ce(this,Ms),grow:0}),(a==0||this.wrappingFacet)&&i.push(Hc),i.push({px:o.axisBefore,grow:0}),i.push(o.view),i.push({px:o.axisAfter,grow:0}),(a==r.length-1||this.wrappingFacet)&&i.push(Hc);return i},tu=new WeakSet,Tb=function(n){let r=0,i=0;const a=(n=="row"&&this.spec.height)??(n=="column"&&this.spec.width);if(a||a===0)return xx(a);const o=Ze(this,oo,uu).call(this,n);for(const[s,l]of o.entries())s>0&&(i+=ce(this,Ms)),(s==0||this.wrappingFacet)&&(i+=0),i+=l.axisBefore,i+=l.view.px??0,r+=l.view.grow??0,i+=l.axisAfter,(s==o.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},nu=new WeakSet,Mb=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},cd=new WeakSet,d_=function(n,r,i){for(const[a,o]of Object.entries(n7(r))){if(o.size<=0)continue;const s=n.normalizePoint(i.x,i.y),l=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),c={x:l.x-s.x,y:l.y-s.y};for(const u of o)u.zoom(2**i.zDelta,a=="y"?1-s[a]:s[a],a=="x"?c.x:-c.y)}this.context.animator.requestRender()};function Xx(e){return{configurableVisibility:!1,data:{values:[{}]},mark:{fill:null,strokeWidth:1,fillOpacity:e.fill?1:0,...e,type:"rect",clip:!1,tooltip:null}}}function n7(e){const t={x:new Set,y:new Set};return e.visit(n=>{for(const[r,i]of Object.entries(t)){const a=n.getScaleResolution(r);a&&a.isZoomable()&&i.add(a)}}),t}function r7(e){let t=!0;return e.visit(n=>{n instanceof Je&&t&&(t=n.mark.properties.clip)}),t}class Ro extends Wx{constructor(t,n,r,i){super(t,n,r,i,eg(t)?t.columns:Jp(t)?1:1/0),this.spec=t}_createChildren(){const t=this.spec,n=eg(t)?t.concat:Jp(t)?t.vconcat:t.hconcat;this.setChildren(n.map((r,i)=>this.context.createView(r,this,"grid"+i)))}}class i7{constructor(){this.types=[];const t=n=>(r,i,a,o)=>new n(r,i,a,r.name??o);this.addViewType(a7,t(jx)),this.addViewType(Kp,t(Wn)),this.addViewType(Xp,t(Je)),this.addViewType(Jp,t(Ro)),this.addViewType(o7,t(Ro)),this.addViewType(eg,t(Ro))}addViewType(t,n){this.types.push({specGuard:t,factory:n})}createView(t,n,r,i){const a=this.types.find(o=>o.specGuard(t));if(a)return a.factory(t,n,r,i??"unnamed");throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(t)]))}isViewSpec(t){const n=this.types.filter(r=>r.specGuard(t));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}}function Xp(e){return"mark"in e&&(ze(e.mark)||Ht(e.mark))}function Kp(e){return"layer"in e&&Ht(e.layer)}function Kx(e){return e&&(Xp(e)||Kp(e))&&"aggregateSamples"in e}function a7(e){return"import"in e}function Jp(e){return"vconcat"in e&&en(e.vconcat)}function o7(e){return"hconcat"in e&&en(e.hconcat)}function eg(e){return"concat"in e&&en(e.concat)}const s7={point:MB,rect:CB,rule:BB,link:zB,text:$B};class Je extends Aa{constructor(t,n,r,i){super(t,n,r,i),this.spec=t;const a=s7[this.getMarkType()];if(a)this.mark=new a(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.sampleAggregateViews=[],this._initializeAggregateViews(),this.coords=void 0}*[Symbol.iterator](){for(const t of this.sampleAggregateViews)yield t}replaceChild(t,n){const r=this.sampleAggregateViews.indexOf(t);if(r>=0)this.sampleAggregateViews[r]=n;else throw new Error("Not my child view!")}render(t,n,r={}){this.isVisible()&&(this.coords=n,t.pushView(this,n),t.renderMark(this.mark,r),t.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(t){const n=this.mark.encoding;for(const[r,i]of Object.entries(n)){if(!an(i))continue;let a=So(i.resolutionChannel??r);if(t=="axis"&&!kc(a))continue;let o=this;for(;(o.getConfiguredOrDefaultResolution(a,t)=="forced"||o.parent instanceof Aa&&["shared","excluded","forced"].includes(o.parent.getConfiguredOrDefaultResolution(a,t)))&&o.getConfiguredOrDefaultResolution(a,t)!="excluded";)o=o.parent;o.resolutions[t][a]||(o.resolutions[t][a]=t=="scale"?new LL(a):new PL(a)),kc(r)?o.resolutions[t][a].pushUnitView(this,r):t=="scale"&&o.resolutions[t][a].pushUnitView(this,r)}}getAccessor(t){return this._cache("accessor/"+t,()=>{const n=this.mark.encoding;if(n&&n[t])return this.context.accessorFactory.createAccessor(n[t])})}getFacetAccessor(t){const n=this.getAccessor("sample");return n||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}_validateDomainQuery(t){if(Dc(t))throw new Error(`getDomain(${t}), must only be called for primary channels!`);const n=this.mark.encoding[t];if(!an(n))throw new Error("The channel has no scale, cannot get domain!");return n}getConfiguredDomain(t){const n=this._validateDomainQuery(t),r=n&&n.scale&&n.scale.domain;if(r){const i=this.getScaleResolution(n.resolutionChannel??t);return Rx(n.type??"nominal",i.fromComplexInterval(r))}}extractDataDomain(t){const r=this._validateDomainQuery(t).type??"nominal",i=s=>{let l;const c=this.mark.encoding[s];if(c){const u=this.context.accessorFactory.createAccessor(c);if(u)if(l=Rx(r),u.constant)l.extend(u({}));else{const f=this.getCollector();f!=null&&f.completed&&f.visitData(h=>l.extend(u(h)))}}return l};let a=i(t);const o=np[t];if(o){const s=i(o);s&&a.extendAll(s)}return a}getZoomLevel(){const t=n=>{var r;return((r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())??1};return _c.map(t).reduce((n,r)=>n*r,1)}_initializeAggregateViews(){if(Kx(this.spec))for(const t of this.spec.aggregateSamples){const n=t.transform??[];n.length&&Gt(n).type!="collect"&&n.push({type:"collect"}),n.push({type:"mergeFacets"}),t.transform=n,t.encoding={...t.encoding??{},sample:null};const r=this.context.createView(t,this,"summaryView");r.getFacetFields=i=>{},this.sampleAggregateViews.push(r)}}propagateInteractionEvent(t){t.target=this}getDefaultResolution(t,n){return t=="x"?"shared":"independent"}}function*tg(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of tg(r,[...t,n]))yield i;else yield[[...t,n],r]}class $c extends We{get behavior(){return Pp}constructor(t){super(),this.params=t??{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new Zi([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(t){this._data.push(t)}beginBatch(t){IB(t)&&(this._data=[],this.facetBatches.set(rn(t.facetId),this._data))}complete(){var i,a;const t=(i=this.params)==null?void 0:i.sort,n=t?Rb(t.field,t.order):void 0,r=o=>{n&&o.sort(n)};if((a=this.params.groupby)!=null&&a.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const o=this.params.groupby.map(l=>_e(l)),s=Us(this._data,...o);this.facetBatches.clear();for(const[l,c]of tg(s))this.facetBatches.set(l,c)}for(const o of this.facetBatches.values())r(o);if(this.children.length)for(const[o,s]of this.facetBatches.entries()){if(o){const l={type:"facet",facetId:o};for(const c of this.children)c.beginBatch(l)}for(const l of s)this._propagate(l)}super.complete();for(const o of this.observers)o(this)}getData(){switch(this._checkStatus(),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const t=this.facetBatches;return{[Symbol.iterator]:function*(){for(const r of t.values())for(let i=0;i<r.length;i++)yield r[i]}}}}}visitData(t){this._checkStatus();for(const n of this.facetBatches.values())for(let r=0;r<n.length;r++)t(n[r])}getItemCount(){let t=0;for(const n of this.facetBatches.values())t+=n.length;return t}_checkStatus(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")}}class Vc{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(t,n){let r=this.length++;for(;r>0;){const i=r-1>>1,a=this.values[i];if(n>=a)break;this.ids[r]=this.ids[i],this.values[r]=a,r=i}this.ids[r]=t,this.values[r]=n}pop(){if(this.length===0)return;const t=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 a=0;for(;a<i;){let o=(a<<1)+1;const s=o+1;let l=this.ids[o],c=this.values[o];const u=this.values[s];if(s<this.length&&u<c&&(o=s,l=this.ids[s],c=u),c>=r)break;this.ids[a]=l,this.values[a]=c,a=o}this.ids[a]=n,this.values[a]=r}return t}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 c7 extends We{get behavior(){return Cr}constructor(t){super(),this.params=t,this.startAccessor=_e(t.start),this.endAccessor=_e(t.end),this.chromAccessor=t.chrom?_e(t.chrom):n=>{},this.weightAccessor=t.weight?_e(t.weight):n=>1,this.as={coverage:t.as||"coverage",start:t.asStart||t.start,end:t.asEnd||t.end,chrom:t.asChrom||t.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 Vc}reset(){super.reset(),this.initialize()}initialize(){const t=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,a=this.endAccessor,o=this.chromAccessor,s=this.weightAccessor;let l,c,u,f=0,h;const d=this.ends;d.clear();const p=(y,v,S)=>{if(y==v)return;let k=!1;l&&(l[t]===S?(l[n]=v,k=!0):l[t]!=0&&this._propagate(l)),k||(l=this.createSegment(y,v,S,u))},g=()=>{let y;for(;(y=d.peekValue())!==void 0;)p(h,y,f),h=y,f-=d.pop();h=void 0,l&&(this._propagate(l),l=void 0)};this.handle=y=>{const v=i(y);let S;for(;(S=d.peekValue())!==void 0&&S<v;)p(h,S,f),h=S,f-=d.pop();if(r){let C=o(y);C!==c&&(g(),u=C,c=u)}h!==void 0&&p(h,v,f),h=v;const k=s(y);f+=k,d.push(k,a(y))},this.complete=()=>{g(),super.complete()}}}function l7(e,t,n=0,r=e.length){const i=new Vc,a=r-n;let o;for(o=0;o<t&&o<a;o++)i.push(o,e[n+o]);for(;o<a;o++){const c=e[n+o];c>=i.peekValue()&&(i.push(o,c),i.pop())}const s=[];let l;for(;(l=i.pop())!==void 0;)s.push(n+l);return s.reverse()}class u7{constructor(t,n=-1/0,r=1/0){this.maxSize=t,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(t,n,r=0){if(t>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const a=this._findSlot(t,n,i);return a>=0?a:this._findSlot(t,n,this.upperChildren[r])}else return r}else return-1}reserve(t,n){if(n-t<=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(t,n);if(r<0)return!1;const i=this.n++,a=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=t,this.lowerLimits[a]=n,this.upperLimits[a]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=a,!0}}class f7 extends We{get behavior(){return Pp}constructor(t,n){if(super(),this.params=t,this._data=[],this.channel=t.channel??"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=_e(this.params.pos),this.posBisector=vu(this.posAccessor),this.scoreAccessor=_e(this.params.score),this.widthAccessor=_e(this.params.width),this.laneAccessor=this.params.lane?_e(this.params.lane):i=>0,this.padding=this.params.padding??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",i=>this.schedule()),n._addBroadcastHandler("layoutComputed",()=>this.schedule())}complete(){const t=this.posAccessor;this._data.sort((n,r)=>t(n)-t(r)),this._scores=this._data.map(this.scoreAccessor);for(const n of new Set(this._data.map(this.laneAccessor)))this.reservationMaps.set(n,new u7(200));this.schedule(),super.complete()}_filterAndPropagate(){var o;super.reset();const t=this.resolution.getScale(),n=(o=this.resolution.members[0].view.coords)==null?void 0:o[this.channel=="x"?"width":"height"];if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=t.domain(),i=70,a=l7(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of a){const l=this._data[s],c=t(this.posAccessor(l))*n,u=this.widthAccessor(l)/2+this.padding;this.reservationMaps.get(this.laneAccessor(l)).reserve(c-u,c+u)&&this._propagate(l)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(t){this._data.push(t)}}class h7 extends We{constructor(t){super(),this.params=t,this.predicate=void 0}initialize(){this.predicate=J0(this.params.expr,this.getGlobalObject())}handle(t){this.predicate(t)&&this._propagate(t)}}const d7="0".charCodeAt(0);function*p7(e,t=","){const n=t.charCodeAt(0);let r=0;for(let i=0;i<e.length;i++){const a=e.charCodeAt(i);a==n?(yield r,r=0):r=r*10+a-d7}yield r}class g7 extends We{get behavior(){return Cr}constructor(t){super();const n=_e(t.exons??"exons"),r=_e(t.start??"start"),[i,a]=t.as||["exonStart","exonEnd"];this.handle=o=>{let s=r(o),l=s,c=!0;const u=n(o);for(const f of p7(u)){if(c)l=s+f;else{s=l+f;const h=Object.assign({},o);h[i]=l,h[a]=s,this._propagate(h)}c=!c}}}}class m7 extends We{get behavior(){return Cr}constructor(t){super();const n=rn(t.field).map(a=>_e(a)),r=rn(t.separator),i=rn(t.as||t.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=a=>{if(n.some(l=>!l(a)))return;const o=n.map((l,c)=>l(a).split(r[c]));b7(o,a);const s=o[0].length;for(let l=0;l<s;l++){const c=Object.assign({},a);for(let u=0;u<n.length;u++)c[i[u]]=o[u][l];this._propagate(c)}}}}function b7(e,t){const n=e.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(t))}class y7 extends We{get behavior(){return di}constructor(t){super(),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=J0(this.params.expr,this.getGlobalObject())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class Jx extends We{get behavior(){return di}constructor(t,n){super();const r=t.channel??"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 a=_e(t.chrom),o=rn(t.pos).map(p=>_e(p)),s=rn(t.as);if(o.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const l=rn(t.offset);let c;if(l.length==0)c=new Array(o.length).fill(0);else if(l.length==1)c=new Array(o.length).fill(l[0]);else if(l.length==o.length)c=l;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(t.offset)}!`);const u=new Function("datum","chromOffset","posAccessors",s.map((p,g)=>`datum[${JSON.stringify(p)}] = chromOffset + +posAccessors[${g}](datum) - ${c[g]};`).join(`
1356
+ `));let f,h=0;const d=p=>{if(p!==f){if(h=i.cumulativeChromPositions.get(p),h===void 0)throw new Error("Unknown chromosome/contig: "+p);f=p}return h};this.handle=p=>{u(p,d(a(p)),o),this._propagate(p)}}}const eA={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 v7 extends We{get behavior(){return di}constructor(t){super();const n=Op(eA),r=_e(t.field),i=t.as,a=t.fontSize;this.handle=o=>{const s=r(o);s!==void 0?o[i]=n.measureWidth(s,a):o[i]=0,this._propagate(o)}}}const w7=65536;class x7 extends We{get behavior(){return di}constructor(t){super(),this.params=t}reset(){super.reset(),this.initialize()}initialize(){const t=this.params,n=t.as||"lane",r=Ke(t.spacing)?t.spacing:1,i=_e(t.start),a=_e(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const o=new Float64Array(w7),s=_e(t.preference),l=t.preferredOrder;let c=1/0;this.handle=u=>{const f=i(u);f<c&&o.fill(-1/0),c=f;const h=l.indexOf(s(u));let d=-1;if(h>=0&&o[h]<f)d=h;else{const p=i(u);for(d=0;d<o.length&&!(o[d]<p);d++);if(d>=o.length)throw new Error("Out of lanes!")}o[d]=a(u)+r,u[n]=d,this._propagate(u)}}else{const o=new Vc,s=new Vc;let l=-1/0,c=0;this.handle=u=>{const f=i(u);for(;o.length&&(o.peekValue()<=f||f<l);){const d=o.pop();s.push(d,d)}l=f;let h=s.pop();h===void 0&&(h=c++),u[n]=h,this._propagate(u),o.push(h,a(u)+r)}}}}class A7 extends We{get behavior(){return Cr}constructor(t){if(super(),t.as&&t.as.length!=t.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=t.fields.map(i=>_e(i)),r=t.as?t.as:n.map(qe);this.handle=i=>{const a={};for(let o=0;o<n.length;o++)a[r[o]]=n[o](i);this._propagate(a)}}}class E7 extends We{get behavior(){return di}constructor(t){super();const n=new RegExp(t.regex),r=typeof t.as=="string"?[t.as]:t.as,i=_e(t.field);this.handle=a=>{const o=i(a);if(ze(o)){const s=o.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 l=0;l<r.length;l++)a[r[l]]=s[l+1]}else if(t.skipInvalidInput)for(let l=0;l<r.length;l++)a[r[l]]=void 0;else throw new Error(`"${o}" does not match the given regex: ${n.toString()}`)}else if(!t.skipInvalidInput)throw new Error(`Trying to match a non-string field. Encountered type: ${typeof o}, field content: "${o}".`);this._propagate(a)}}}class S7 extends We{get behavior(){return Cr}constructor(t){super();const n=rn(t.columnRegex).map(h=>new RegExp(h)),r=rn(t.asValue);if(n.length!=r.length)throw new Error('Lengths of "columnRegex" and "as" are not equal!');const i=t.skipRegex?new RegExp(t.skipRegex):void 0,a=t.asKey||"sample";let o,s,l;const c=h=>{var y;const d=Object.keys(h),p=new Map;for(const[v,S]of n.entries())for(const k of d){const C=(y=S.exec(k))==null?void 0:y[1];if(C!==void 0){let E=p.get(C);E||(E=[],p.set(C,E)),E[v]=k}}o=[...p.entries()],s=d.filter(v=>!n.some(S=>S.test(v))&&!(i&&i.test(v)));const g=[...s.map(v=>JSON.stringify(v)+": datum["+JSON.stringify(v)+"]"),JSON.stringify(a)+": sampleId",...r.map(v=>JSON.stringify(v)+": null")];l=new Function("datum","sampleId",`return {
1357
+ `+g.join(`,
1358
1358
  `)+`
1359
- };`)},f=d=>{a||u(d);for(const[h,p]of a){const m=c(d,h);for(let g=0;g<p.length;g++)m[r[g]]=d[p[g]];this._propagate(m)}},l=d=>{u(d),f(d),this.handle=f};this.handle=l,this.beginBatch=d=>{Ig(d)&&(this.handle=l),super.beginBatch(d)}}}class f5 extends ue{get behavior(){return dn}constructor(e){super(),this.params=e,this.buffer=[]}reset(){this.buffer=[]}handle(e){this.buffer.push(e)}complete(){const e=this.params,n=e.as||["y0","y1"],r=e.sort?Wd(e.sort.field,e.sort.order):void 0,i=e.field?K(e.field):()=>1,o=e.groupby.map(f=>K(f)),a=_2(this.buffer,f=>o.map(l=>l(f)).join()).map(f=>f[1]);let s=f=>!0;if(e.baseField){const f=K(e.baseField);s=l=>f(l)!==null}let c,u;switch(e.offset){case"normalize":c=(f,l)=>f/l,u=(f,l)=>fa(f,l);break;case"center":c=(f,l)=>f-l/2,u=(f,l)=>fa(f,l);break;case"information":{const f=Math.log2(e.cardinality??4);c=(l,d)=>l/d,u=(l,d)=>{const p=fa(l,b=>+!s(b)),m=fa(l,d),g=m-p;let y=0;for(let b=0;b<l.length;b++){const w=l[b];if(s(w)){const C=d(w)/g;y-=C*Math.log2(C)}}return g/(f-(y+0))*(g/m)}}break;default:c=(f,l)=>f,u=(f,l)=>1}for(const f of a){r&&f.sort(r);const l=u(f,i);let d=0;for(const h of f){const p=d+i(h);s(h)&&(h[n[0]]=c(d,l),h[n[1]]=c(p,l),this._propagate(h),d=p)}}super.complete()}}class d5 extends ue{get behavior(){return Ft}constructor(e){super();const n=K(e.field??"sequence"),[r,i]=e.as??["pos","sequence"];this.handle=o=>{const a=Object.assign({},o,{[i]:"",[r]:0}),s=n(o);for(let c=0;c<s.length;c++){const u=Object.assign({},a);u[r]=c,u[i]=s.charAt(c),this._propagate(u)}}}}class h5 extends ue{get behavior(){return Ft}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=>K(o)),i=mi(this.buffer,...r);for(const[o,a]of Jl(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 p5="_uniqueId",d1=1e4,h1=[null];class p1 extends ue{get behavior(){return dn}constructor(e){super(),this.params=e,this.as=e.as??p5,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%d1==0&&(this._id=this._getBlock()*d1),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const e=h1.length;return h1[e]=this,this._blocks.push(e),this._usedBlocks++,e}}const m1={aggregate:h5,collect:Ao,coverage:X8,filterScoredLabels:K8,filter:J8,flattenCompressedExons:t5,flattenDelimited:n5,flattenSequence:d5,formula:i5,identifier:p1,linearizeGenomicCoordinate:l1,measureText:o5,pileup:s5,project:c5,regexExtract:u5,regexFold:l5,sample:kg,stack:f5};function m5(t,e){const n=m1[t.type];if(n)return new n(t,e);throw new Error("Unknown transform: "+t.type)}function g1(t){const e={...t.format};if(e.type??(e.type=b5(t)&&g5(t.url)),e.parse??(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 g5(t){var e;if(Array.isArray(t)&&(t=t[0]),t)return(e=t.match(/\.(csv|tsv|json)/))==null?void 0:e[1]}const y1=t=>typeof t!="object"?y5:v5,y5=t=>({data:t}),v5=t=>t;function b5(t){return"url"in t}class ir extends ue{get identifier(){}handle(e){throw new Error("Source does not handle incoming data!")}async load(){}}function A5(t){return"values"in t}class x5 extends ir{constructor(e,n){var r;if(super(),this.params=e,typeof e.values=="string"&&!((r=e==null?void 0:e.format)!=null&&r.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=y1(e[0]));else if(typeof e=="object")n=[e];else if(typeof e=="string")n=qh(e,g1(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 w5(t){return"url"in t}class C5 extends ir{constructor(e,n){super(),this.params=e,this.baseUrl=n==null?void 0:n.getBaseUrl()}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=>Li({baseURL:this.baseUrl}).load(o).catch(a=>{throw new Error(`Cannot fetch: ${this.baseUrl}${o}: ${a.message}`)}),i=(o,a)=>{try{const s=qh(o,g1(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 S5(t){return"sequence"in t}class E5 extends ir{constructor(e,n){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 v1(t,e,n){return n=(n-t)/(e-t),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}class D5 extends ir{constructor(n,r){var i;super();q(this,cc);q(this,li);if(this.params=n,this.axisProps=n.axis??{},this.view=r,this.ticks=void 0,this.channel=this.params.channel,this.channel!=="x"&&this.channel!=="y")throw new Error(`Invalid channel: ${this.channel}. Must be "x" or "y"`);if(this.scaleResolution=this.view.getScaleResolution(this.channel),!this.scaleResolution)throw new Error(`No scale resolution found for channel "${this.channel}".`);this.scaleResolution.addEventListener("domain",()=>{$(this,li,mc).call(this)}),(i=this.scaleResolution.members[0])==null||i.view._addBroadcastHandler("layoutComputed",()=>{$(this,li,mc).call(this)})}async load(){$(this,li,mc).call(this)}}cc=new WeakSet,$b=function(){const n=this.scaleResolution.members.map(r=>{var i;return(i=r.view.coords)==null?void 0:i[this.channel==="x"?"width":"height"]}).filter(r=>r>0);return n.length?n.reduce((r,i)=>Math.min(r,i),1e4):0},li=new WeakSet,mc=function(){const n=this.scaleResolution.getScale(),r=this.axisProps,i=$(this,cc,$b).call(this),o=u=>25+60*v1(100,700,u),a=le(r.tickCount)?r.tickCount:Math.round(i/o(i)),s=zg(n,a,r.tickMinStep),c=r.values?Rg(n,r.values,s):GM(n,s);if(!this.ticks||!Op(c,this.ticks)){this.ticks=c;const u=QM(n,a,this.axisProps.format);this.reset(),this.beginBatch({type:"file"});for(const f of c)this._propagate({value:f,label:u(f)});this.complete()}};class M5 extends ir{constructor(e,n){if(super(),this.params=e,this.view=n,this.channel=this.params.channel,this.channel!=="x"&&this.channel!=="y")throw new Error(`Invalid channel: ${this.channel}. Must be "x" or "y"`);if(this.scaleResolution=this.view.getScaleResolution(this.channel),!this.scaleResolution)throw new Error(`No scale resolution found for channel "${this.channel}".`)}async load(){const e=this.scaleResolution.getGenome().chromosomes;this.reset(),this.beginBatch({type:"file"});for(const n of e)this._propagate(n);this.complete()}}function b1(t,e){if(A5(t))return new x5(t,e);if(w5(t))return new C5(t,e);if(S5(t))return new E5(t,e);if(T5(t))return N5(t.dynamic,e);throw new Error("Cannot figure out the data source type: "+JSON.stringify(t))}function T5(t){return"dynamic"in t}function I5(t){return(t==null?void 0:t.type)=="axisTicks"}function k5(t){return(t==null?void 0:t.type)=="axisGenome"}function N5(t,e){if(I5(t))return new D5(t,e);if(k5(t))return new M5(t,e);throw new Error("Cannot figure out the data source type: "+JSON.stringify(t))}function L5(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(`,
1360
- `)+" };");return n.properties=e,n}class xs extends ue{get behavior(){return Ft}constructor(){super();const e=n=>{const r=L5(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=e,this.beginBatch=n=>{Ig(n)&&(this.handle=e),super.beginBatch(n)}}}function B5(t){return"name"in t}class A1 extends ir{constructor(n,r,i){super();q(this,Wo,void 0);this.provider=i,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){tt(this,Wo,n),this.loadSynchronously()}loadSynchronously(){const n=j(this,Wo)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=y1(n[0]));else throw new Error(`Named data "${this.params.name}" is not an array!`);this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}Wo=new WeakMap;class x1{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)}findNamedDataSource(e){let n,r=[];for(const[i,o]of this._dataSourcesByHost.entries())if(o instanceof A1&&e==o.identifier){if(n&&n!==o)throw new Error(`Found multiple instances of named data: ${e}. Data flow optimization is broken (it's a bug).`);n=o,r.push(i)}if(n)return{dataSource:n,hosts:r}}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 w1(t,e){const n=[];let r;const i=e??new x1,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=m5(d,l)}catch(p){throw console.warn(p),new Error(`Cannot initialize "${d.type}" transform: ${p}`)}h.behavior&dn&&s(new xs),s(h)}}const u=f=>{if(n.push(r),f.spec.data){const l=B5(f.spec.data)?new A1(f.spec.data,f,f.context.getNamedDataFromProvider):b1(f.spec.data,f);r=l,i.addDataSource(l,f)}if(f.spec.transform&&c(f.spec.transform,f),f instanceof de){if(!r)throw new Error("A unit view has no (inherited) data source");const l=O5(f);if(l){o.push(l.rewrite);for(const h of l.transforms)s(h)}f.mark.isPickingParticipant()&&(s(new xs),s(new p1({type:"identifier"})));const d=new Ao({type:"collect",groupby:f.getFacetFields(),sort:F5(f,l==null?void 0:l.rewrittenEncoding)});a(d),i.addCollector(d,f)}u1(f.spec)};return u.postOrder=f=>{r=n.pop()},t.visit(u),o.forEach(f=>f()),i}function O5(t){var o;const e=[],n={},r=[];for(const[a,s]of Object.entries(t.getEncoding())){const c=a;no(c)&&Xp(s)&&r.push({channel:c,chromPosDef:s})}const i=mi(r,a=>Or(a.channel),a=>a.chromPosDef.chrom);for(const[a,s]of i.entries())for(const[c,u]of s.entries()){const f=[],l=[],d=[];for(const{channel:h,chromPosDef:p}of u){const m=b=>b.replace(/[^A-Za-z0-9_]/g,""),g=["_linearized_",m(p.chrom),"_",m(p.pos)].join(""),y={...((o=t.spec.encoding)==null?void 0:o[h])??t.getEncoding()[h]??{},field:g};delete y.chrom,delete y.pos,!y.type&&p.type&&(y.type=p.type),n[h]=y,f.push(p.pos),d.push(p.offset??0),l.push(g)}e.push(new xs),e.push(new l1({type:"linearizeGenomicCoordinate",channel:a,chrom:c,pos:f,offset:d,as:l},t))}return e.length?{transforms:e,rewrittenEncoding:n,rewrite:()=>{t.spec.encoding={...t.spec.encoding,...n},wg(t.mark,"encoding")}}:void 0}function F5(t,e){var r;const n={...t.getEncoding(),...e}.x;if(Ke(n)&&(r=t.getScaleResolution("x"))!=null&&r.isZoomable()){if(Xn(n))return{field:n.field};if(!eo(n))throw new Error("A zoomable x channel must be mapped to a field.")}}function P5(t,...e){let n=t;for(const o of e)n.addChild(o),n=o;let r;n instanceof Ao?r=n:(r=new Ao,n.addChild(r));let i;return t instanceof ir?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 C1(t,e=void 0){if(t.parent!==e)return!1;for(const n of t.children)if(!C1(n,t))return!1;return!0}function $l(t,e=!1){if(t.behavior&Pl&&(e=!0),t instanceof xs)if(e)e=!1;else{const n=t.children[0];t.excise(),n&&$l(n,e);return}t.behavior&Ft&&(e=!1);for(let n=0,r=t.children.length;n<r;n++)$l(t.children[n],e||r>1)}function z5(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 R5(t){if($l(t),!C1(t))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function j5(t){for(const e of t.dataSources)R5(e);z5(t)}function S1(t){t.visit(n=>{n instanceof de&&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 de&&n.resolve("axis")}),t.visit(n=>n.onScalesResolved())}function U5(t){for(const e of to){const n=t.getScaleResolution(e);n&&!n.name&&n.isZoomable()&&(n.name=`${e}_at_root`)}}function G5(t){const e=[];return t.visit(n=>{if(n instanceof de){const r=n.getEncoding();for(const[i,o]of Object.entries(r))Xn(o)&&"type"in o&&e.push({view:n,channel:i,field:o.field,type:o.type});return bs}}),e}async function H5(t,e,n){var a;if(!t.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(t));const r=Li({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}
1361
- 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 E1(t){const e=[];t.visit(n=>{if(n instanceof Jg)return e.push(n),bs});for(const n of e){const r=n.context,i=await H5(n.spec,n.getBaseUrl(),r),o=r.createView(i,n.parent,n.name);n.parent.replaceChild(n,o),await E1(o)}}function D1(t){const e=[];return t.visit(n=>{e.push(n)}),new Set([...W2(e,n=>n.length,n=>n.name)].filter(([n,r])=>r==1&&n!==void 0).map(([n,r])=>n))}const Q5=t=>!/^(layer|concat)\d+$/.test(t);class M1{constructor(e){this.globalOptions=e}pushView(e,n){}popView(e){}renderMark(e,n){}}class T1 extends M1{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=mi(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 V5 extends M1{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 Y5{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 _5{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 W5=t=>new Promise(e=>setTimeout(e,t));function ws(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"):W5(t.delay).then(r):r()}class X5{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 ws({requestAnimationFrame:n=>this.requestTransition(n),...e})}}function I1(){const t=e=>e;return t.invert=e=>e,t.copy=I1,t.invertRange=()=>{},t}class Z5{constructor(e){this.genomes=new Map,this.genomeSpy=e}async initialize(e){const n=new d8(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 q5="data:image/png;base64,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",K5={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class J5{constructor(e){this._webGLHelper=e,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new Tn([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:Bl(f1),texture:this._createTextureNow(q5)}}async waitUntilReady(){await Promise.all(this._promises)}getFont(e,n="normal",r="regular"){if(re(r)&&(r=K5[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=e6(r,n),o=this.fontRepository+k1(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=>Bl(r)),this._fontPromises.set(e,n)),n}_loadMetadata(e){const n=k1(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=>$5(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)=>{uo(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=uo(n,{src:e,min:n.LINEAR},(s,c,u)=>{s?a(s):o(c)})});return this._promises.push(i),r}}function k1(t){return t.toLowerCase().replaceAll(/[^\w]/g,"")}function $5(t){const e=t.split(`
1362
- `),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 e6(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 t6(t,e){const n=[];let r;for(const i of t.split(`
1363
- `))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 n6{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=w2([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 r6(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 N1=new Map;async function i6(t,e,n){const r=t.symbol;let i=N1.get(r)??await s6(t.symbol);return i?(N1.set(r,i),E`<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 o6(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 a6=Cs(o6,500);function s6(t){return a6(t)}const c6=he(".4~r"),u6=he(".4~e");function L1(t){return t===null?E`<span class="na">NA</span>`:re(t)?t.substring(0,30):Number.isInteger(t)?""+t:le(t)?Math.abs(t)>Math.pow(10,8)||Math.abs(t)<Math.pow(10,-8)?u6(t):c6(t):ia(t)?t?"True":"False":"?"+typeof t+" "+t}async function l6(t,e,n){const r=(c,u)=>{var f;for(const[l,d]of Object.entries(e.encoders))if((f=d==null?void 0:d.accessor)!=null&&f.fields.includes(c))switch(l){case"color":case"fill":case"stroke":return E`<span class="color-legend" style="${`background-color: ${d(u)}`}"></span>`}return""},i=Object.entries(t).filter(([c,u])=>!c.startsWith("_"));if(i.length===0)return;const o=E`<table class="attributes">${i.map(([c,u])=>E`<tr><th>${c}</th><td>${L1(u)} ${r(c,t)}</td></tr>`)}</table>`,a=e.unitView.getTitleText(),s=a?E`<div class="title"><strong>${a}</strong></div>`:"";return E`${s}${o}`}class f6 extends s1{constructor(e,n){super({vconcat:[]},e,void 0,"implicitRoot",1),n.parent=this,this.appendChild(n)}}X("index",eu,["continuous"]),X("locus",$x,["continuous"]),X("null",I1,[]),Zh("fasta",t6);class B1{constructor(e,n,r={}){this.container=e,this.spec=n,this.accessorFactory=new H3,this.viewFactory=new V8,this.namedDataProviders=[],this.animator=new X5(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=i=>i.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new n6(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this.tooltipHandlers={default:l6,refseqgene:i6,...r.tooltipHandlers??{}},this.viewRoot=void 0}registerNamedDataProvider(e){this.namedDataProviders.unshift(e)}getNamedDataFromProvider(e){for(const n of this.namedDataProviders){const r=n(e);if(r)return r}}updateNamedData(e,n){const r=this.viewRoot.context.dataFlow.findNamedDataSource(e);if(!r)throw new Error("No such named data source: "+e);r.dataSource.updateDynamicData(n);for(const i of r.hosts)i.visit(o=>{for(const a of Object.values(o.resolutions.scale))a.reconfigure()});this.animator.requestRender()}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 iM(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 x4(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 Z5(this),await this.genomeStore.initialize(this.spec.genome));const e=this,n={dataFlow:new x1,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new J5(this._glHelper),requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.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 E1(this.viewRoot),(this.viewRoot instanceof de||this.viewRoot instanceof vt)&&(this.viewRoot=new f6(n,this.viewRoot)),S1(this.viewRoot),U5(this.viewRoot),this._glHelper.invalidateSize();const i=[];this.viewRoot.visit(s=>{s instanceof de&&i.push(s)});const o=w1(this.viewRoot,n.dataFlow);j5(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=>ho(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),d6(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 _5(r.clientX-o.left-e.clientLeft,r.clientY-o.top-e.clientTop),s=c=>{this.viewRoot.propagateInteractionEvent(new Y5(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=r6(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 de){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 tr}}),this._currentHover){const a=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!a.isPickingParticipant())return;const c=a.properties.tooltip;if(c!==null){const u=(c==null?void 0:c.handler)??"default",f=this.tooltipHandlers[u];if(!f)throw new Error("No such tooltip handler: "+u);return f(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 T1({picking:!1},this._glHelper),this._pickingContext=new T1({picking:!0},this._glHelper),e.render(new V5(this._renderingContext,this._pickingContext),hn.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 de&&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 d6(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 r7="",h6="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDY0IDY0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MS41OyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjEwMjIxLDAuMDA2ODM4MjUsLTAuMDA2NzEzNiwwLjEwMDM0NywtOC4wMzQyNCwtMTMuMjIyMikiPgogICAgICAgIDxwYXRoIGQ9Ik0yMDguNjI5LDU0OC4xN0MyMDguNjI5LDU0OC4xNyAyMTkuNzY4LDU5NC4zODkgMjM5LjgxNCw2MTkuMjIyQzI1OS44Niw2NDQuMDU1IDMxOS4xMTksNjgwLjgzMSAzMTkuMTE5LDY4MC44MzFDMzE5LjExOSw2ODAuODMxIDM4NS41NTcsNjIyLjkxNSA0MzcuODcsNDk4LjM0NkM0MzcuODcsNDk4LjM0NiA0NTYuMDIxLDQ5OS4yMzYgNDczLjgwOCw0ODYuNDQ2QzQ5MS41OTQsNDczLjY1NiA0OTAuMjM5LDQ3OC41MzQgNDk0Ljg4Myw0NjEuNjJDNDk0Ljg4Myw0NjEuNjIgNTUxLjg0OCw0NjcuOTM3IDYyNS44MjYsNDUxLjg2M0M2NjcuNjM0LDQ0Mi43NzggNzEwLjIzOCw0MjUuNjQ5IDc0Ny4zODIsMzkzLjE0MkM3NDcuMzgyLDM5My4xNDIgNzIxLjk5MiwzNjAuMjQ0IDY4OS40MjIsMjkxLjQ1QzY3Ny4wMjksMjY1LjI3NSA2NDcuNTE4LDI1Ny4wOTggNTkwLjc0NywyMDMuMzA5TDQzOC4wODMsMzkxLjI3M0wyMDguNjI5LDU0OC4xN1oiIHN0eWxlPSJmaWxsLW9wYWNpdHk6MC4xMTsiLz4KICAgIDwvZz4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMDgxOTg1LC0wLjA1ODI0OTMsMC4wNTgyNDkzLDAuMDgxOTg1LC00MC40NzU0LDM0Ljc2NjgpIj4KICAgICAgICA8cGF0aCBkPSJNNTYxLjU4OCwzNDkuMTU1QzU2MS41ODgsMzQ5LjE1NSA1MTYuMjk3LDI3MS4zNDEgMzI4Ljg0MSwyNTIuMDQ0QzMyOC44NDEsMjUyLjA0NCAzMDIuMzQyLDMyNS4xODkgMzA3LjY4NiwzNjguMDU2QzMxMy4wMzEsNDEwLjkyMiAzMDMuMDAxLDQ1Ni4xNDcgMzI5LjEzMiw1MDEuMTc0QzMyOS4xMzIsNTAxLjE3NCA0NDMuMTE0LDUwNi43NDMgNTU0LjY0OSw0MjguNDY5TDYyOS4yMDQsNDMyLjExMkM2MjkuMjA0LDQzMi4xMTIgNjczLjc1NSw1MzQuMzUxIDg1Ni45NjQsNTU0LjM3NUM4NTYuOTY0LDU1NC4zNzUgODg2LjcxNyw0OTEuNzY4IDg3OS4xOTMsNDE3LjQ3OEM4NzEuMjExLDMzOC42NzMgODcxLjcxNiwyOTMuNDQzIDg3MS43MTYsMjkzLjQ0M0M4NzEuNzE2LDI5My40NDMgNzc1LjQ4NSwyODMuOTI4IDYzNS40MTgsMzYxLjc5NUw1NjEuNTg4LDM0OS4xNTVaIiBzdHlsZT0iZmlsbDpyZ2IoMTI3LDE4NywyMjEpOyIvPgogICAgICAgIDxjbGlwUGF0aCBpZD0iX2NsaXAxIj4KICAgICAgICAgICAgPHBhdGggZD0iTTU2MS41ODgsMzQ5LjE1NUM1NjEuNTg4LDM0OS4xNTUgNTE2LjI5NywyNzEuMzQxIDMyOC44NDEsMjUyLjA0NEMzMjguODQxLDI1Mi4wNDQgMzAyLjM0MiwzMjUuMTg5IDMwNy42ODYsMzY4LjA1NkMzMTMuMDMxLDQxMC45MjIgMzAzLjAwMSw0NTYuMTQ3IDMyOS4xMzIsNTAxLjE3NEMzMjkuMTMyLDUwMS4xNzQgNDQzLjExNCw1MDYuNzQzIDU1NC42NDksNDI4LjQ2OUw2MjkuMjA0LDQzMi4xMTJDNjI5LjIwNCw0MzIuMTEyIDY3My43NTUsNTM0LjM1MSA4NTYuOTY0LDU1NC4zNzVDODU2Ljk2NCw1NTQuMzc1IDg4Ni43MTcsNDkxLjc2OCA4NzkuMTkzLDQxNy40NzhDODcxLjIxMSwzMzguNjczIDg3MS43MTYsMjkzLjQ0MyA4NzEuNzE2LDI5My40NDNDODcxLjcxNiwyOTMuNDQzIDc3NS40ODUsMjgzLjkyOCA2MzUuNDE4LDM2MS43OTVMNTYxLjU4OCwzNDkuMTU1WiIvPgogICAgICAgIDwvY2xpcFBhdGg+CiAgICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI19jbGlwMSkiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1ODYzNywwLjQ1ODkyLC0wLjQ1ODkyLDAuNzU4NjM3LDQyNS42MzUsLTEyMS4yMTMpIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zODYuODczLDM5Ny4yNDFDMzcxLjM0NSwzODMuNjI4IDMzNS4xMzgsMzc0Ljc4MiAyOTAuNjQ0LDM4MC41NDNDMjQ2LjE0OSwzODYuMzA0IDE5Ni44MjcsNDAyLjI2NiAxNzguODAyLDQxMi4wNjVDMTY4LjIwMiw0MTcuODI4IDE1MS40OTQsNDI5LjM1NCAxNTAuNjgyLDQzOS4zMzRDMTQ5LjUyNyw0NTMuNTI4IDE1My41OTMsNDc3LjA2NiAxNjUuNjI1LDQ5MS4yODRDMTcxLjY5LDQ5OC40NTEgMTc5LjkyNyw1MDMuNDQ1IDE5My44MzgsNTA1LjQyM0MyMTEuNzAxLDUwNy45NjMgMjUyLjcxNCw0ODAuNjI3IDI3NS4zOTksNDY5LjIyQzI5OS4zMzIsNDU3LjE4NyAzMTMuOTgxLDQ1NC41NiAzMzguMzg2LDQ0Ny4wMTRDMzM4LjM4Niw0NDcuMDE0IDI5MS4zNDYsNDc4LjU4NyAyNzAuMjA1LDQ5NC4zOTNDMjM5LjYxLDUxNy4yNjggMjE4LjU3NSw1MjIuNDQ0IDIxMi44NTksNTM5Ljg5N0MyMDkuNzY2LDU0OS4zNCAyMTIuMjM3LDU2Ny43NjcgMjIwLjM1NCw1NzcuNTM4QzIyOS40MjcsNTg4LjQ2MSAyMzMuMTk3LDU5NS4wNjkgMjU0LjU5MSw1OTcuNjI0QzI2Ny4zMDMsNTk5LjE0MyAyNzYuNjg1LDU5OC44MDIgMzE0LjM3LDU2OC45NUMzMzYuMDYsNTUxLjc2NyAzNzAuMjk3LDUwOS44MTcgMzgxLjQxMiw0OTQuNjE2QzM5Ny41ODEsNDcyLjUwNiA0MDUuMTY1LDQ1MS40NjIgNDAyLjY1Niw0MzUuMDRDMzk5LjA0NSw0MTEuMzkxIDM5NC4yNTksNDAzLjcxNiAzODYuODczLDM5Ny4yNDFaIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1MjE0NSwwLjQ1NDk5MywtMC40NTQ5OTMsMC43NTIxNDUsNDY4LjM2LC0xMDguMjkzKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg0LjczMywzNzguOTM0QzQ3OS4zMywzNjcuODg2IDQ2Ny4wOTIsMzUwLjQ1MiA0ODMuODg2LDMyNS4yMDVDNTAyLjE3MiwyOTcuNzE3IDUxNC44OTgsMjgwLjkzOCA1MjguMTE3LDI2NC42MzJDNTQxLjMzNSwyNDguMzI2IDU3NC43OTMsMjE4LjQ0NyA1ODcuNzM5LDIxMi41M0M2MDAuNjg0LDIwNi42MTMgNjIxLjAyNiwyMDMuODUyIDYzMS44ODksMjEyLjg0MUM2NDIuODc0LDIyMS45MyA2NDguNDE2LDIzMy4zNzcgNjU0LjkyLDI0NS40NzhDNjYyLjMzMSwyNTkuMjY3IDY2Ny4zMTgsMjc0LjgwOCA2NTYuNTE4LDI4OC4yNzhDNjQxLjA5MywzMDcuNTE1IDYyMi4yNDIsMzA1LjI5NCA1OTQuOTEyLDMxOS44NDRDNTY3LjI0NCwzMzQuNTczIDU1Mi42NDQsMzQyLjk0MyA1MzkuMjQ0LDM1NS43MDNDNTM5LjI0NCwzNTUuNzAzIDU5MS40MzEsMzM0LjExNCA2MjEuMjI5LDMyNC40NzRDNjUxLjAyNywzMTQuODMzIDY4MC45NTIsMzA0LjQ2MSA2OTUuOTk1LDMxNS45NzVDNzExLjAzOCwzMjcuNDkgNzEwLjYzMSwzMzEuNDYzIDcxNC40MjUsMzQ3LjE4N0M3MTkuMTA3LDM2Ni41OSA3MDcuMjMxLDM4NS4xNjUgNjk0LjI5NCwzOTUuODM4QzY4MS4zNTYsNDA2LjUxIDY1OS45NTgsNDExLjc1NiA2MzYuODc1LDQxNi44NTJDNjA2LjQyLDQyMy41NzYgNTQwLjI3OCw0MzEuOTE3IDUxMi44MTksNDE5LjM2NkM0ODUuMzYxLDQwNi44MTUgNDg4LjQ4OCwzODYuNjEzIDQ4NC43MzMsMzc4LjkzNFoiIHN0eWxlPSJmaWxsOndoaXRlOyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGQ9Ik01NjEuNTg4LDM0OS4xNTVDNTYxLjU4OCwzNDkuMTU1IDUxNi4yOTcsMjcxLjM0MSAzMjguODQxLDI1Mi4wNDRDMzI4Ljg0MSwyNTIuMDQ0IDMwMi4zNDIsMzI1LjE4OSAzMDcuNjg2LDM2OC4wNTZDMzEzLjAzMSw0MTAuOTIyIDMwMy4wMDEsNDU2LjE0NyAzMjkuMTMyLDUwMS4xNzRDMzI5LjEzMiw1MDEuMTc0IDQ0My4xMTQsNTA2Ljc0MyA1NTQuNjQ5LDQyOC40NjlMNjI5LjIwNCw0MzIuMTEyQzYyOS4yMDQsNDMyLjExMiA2NzMuNzU1LDUzNC4zNTEgODU2Ljk2NCw1NTQuMzc1Qzg1Ni45NjQsNTU0LjM3NSA4ODYuNzE3LDQ5MS43NjggODc5LjE5Myw0MTcuNDc4Qzg3MS4yMTEsMzM4LjY3MyA4NzEuNzE2LDI5My40NDMgODcxLjcxNiwyOTMuNDQzQzg3MS43MTYsMjkzLjQ0MyA3NzUuNDg1LDI4My45MjggNjM1LjQxOCwzNjEuNzk1TDU2MS41ODgsMzQ5LjE1NVoiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOmJsYWNrO3N0cm9rZS13aWR0aDoxNi41N3B4OyIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4xMDAyOTgsLTAuMDA3NDA0ODgsMC4wMDc0MDQ4OCwwLjEwMDI5OCwtMTUuNzQ1NywtNS4xNzUyOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0zODQuOTE2LDM4NS40NTlDMzg0LjkxNiwzODUuNDU5IDQzMC43ODEsMzQ3Ljg2OCA0NTAuMDI3LDM1MC4wOTNDNDcxLjY4NSwzNTIuNTk2IDQ5MC40OSw0MDcuNzQ3IDQ5MC4yMDgsNDI0LjQxNkM0ODkuOTI3LDQ0MS4wODUgNDQyLjk0OCw0NjkuODY2IDQyMi41MzcsNDY2LjI0QzQyMi41MzcsNDY2LjI0IDQyNS41MjUsNDQyLjEyOSA0MTIuMTE0LDQxMy4zMzVDMzk4LjcwMiwzODQuNTQgMzg0LjkxNiwzODUuNDU5IDM4NC45MTYsMzg1LjQ1OVoiIHN0eWxlPSJmaWxsOnJnYigxMjcsMTg3LDIyMSk7Ii8+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJfY2xpcDIiPgogICAgICAgICAgICA8cGF0aCBkPSJNMzg0LjkxNiwzODUuNDU5QzM4NC45MTYsMzg1LjQ1OSA0MzAuNzgxLDM0Ny44NjggNDUwLjAyNywzNTAuMDkzQzQ3MS42ODUsMzUyLjU5NiA0OTAuNDksNDA3Ljc0NyA0OTAuMjA4LDQyNC40MTZDNDg5LjkyNyw0NDEuMDg1IDQ0Mi45NDgsNDY5Ljg2NiA0MjIuNTM3LDQ2Ni4yNEM0MjIuNTM3LDQ2Ni4yNCA0MjUuNTI1LDQ0Mi4xMjkgNDEyLjExNCw0MTMuMzM1QzM5OC43MDIsMzg0LjU0IDM4NC45MTYsMzg1LjQ1OSAzODQuOTE2LDM4NS40NTlaIi8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgICAgICA8ZyBjbGlwLXBhdGg9InVybCgjX2NsaXAyKSI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuOTA5MDY5LDMuNjc2NDFlLTE3LC0zLjc5ODE4ZS0xNywwLjg1ODUyLDM3LjA1MSw1Mi4xODI5KSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDEzLjI4Miw0MDIuNjk3QzQzMC43Nyw0MjEuNTggNDIzLjMwNyw0NDguNDI2IDQ0MS42ODMsNDQ2LjEzN0M0NjMuNDA5LDQ0My40MzEgNDcyLjYwNCw0MzAuMzU2IDQ3My4zMTYsNDEzLjQwMkM0NzQuMDI4LDM5Ni40NDggNDcyLjI0NSwzOTMuOTExIDQ2Ni4xNzIsMzc1LjMyMUM0NjAuMDk5LDM1Ni43MzEgNDQ3Ljk1MywzNTIuMTc2IDQyMi44NDIsMzU3LjE3OUM0MDEuOTU3LDM2MS4zMzkgNDA1LjAzOSwzNjAuMjE1IDM5OC43MzUsMzY3LjIyOEMzOTIuNDMsMzc0LjI0MiAzODQuMzE1LDM5My4xODIgMzg0LjMxNSwzOTMuMTgyQzM4NC4zMTUsMzkzLjE4MiAzOTIuNzE1LDM4MC40OTIgNDEzLjI4Miw0MDIuNjk3WiIgc3R5bGU9ImZpbGw6d2hpdGU7Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICAgICAgPHBhdGggZD0iTTM4NC45MTYsMzg1LjQ1OUMzODQuOTE2LDM4NS40NTkgNDMwLjc4MSwzNDcuODY4IDQ1MC4wMjcsMzUwLjA5M0M0NzEuNjg1LDM1Mi41OTYgNDkwLjQ5LDQwNy43NDcgNDkwLjIwOCw0MjQuNDE2QzQ4OS45MjcsNDQxLjA4NSA0NDIuOTQ4LDQ2OS44NjYgNDIyLjUzNyw0NjYuMjRDNDIyLjUzNyw0NjYuMjQgNDI1LjUyNSw0NDIuMTI5IDQxMi4xMTQsNDEzLjMzNUMzOTguNzAyLDM4NC41NCAzODQuOTE2LDM4NS40NTkgMzg0LjkxNiwzODUuNDU5WiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjE2LjU3cHg7Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=";/**
1359
+ };`)},u=h=>{o||c(h);for(const[d,p]of o){const g=l(h,d);for(let y=0;y<p.length;y++)g[r[y]]=h[p[y]];this._propagate(g)}},f=h=>{c(h),u(h),this.handle=u};this.handle=f,this.beginBatch=h=>{yx(h)&&(this.handle=f),super.beginBatch(h)}}}class C7 extends We{get behavior(){return di}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const t=this.params,n=t.as||["y0","y1"],r=t.sort?Rb(t.sort.field,t.sort.order):void 0,i=t.field?_e(t.field):()=>1,a=t.groupby.map(u=>_e(u)),o=ok(this.buffer,u=>a.map(f=>f(u)).join()).map(u=>u[1]);let s=u=>!0;if(t.baseField){const u=_e(t.baseField);s=f=>u(f)!==null}let l,c;switch(t.offset){case"normalize":l=(u,f)=>u/f,c=(u,f)=>Au(u,f);break;case"center":l=(u,f)=>u-f/2,c=(u,f)=>Au(u,f);break;case"information":{const u=Math.log2(t.cardinality??4);l=(f,h)=>f/h,c=(f,h)=>{const p=Au(f,S=>+!s(S)),g=Au(f,h),y=g-p;let v=0;for(let S=0;S<f.length;S++){const k=f[S];if(s(k)){const C=h(k)/y;v-=C*Math.log2(C)}}return y/(u-(v+0))*(y/g)}}break;default:l=(u,f)=>u,c=(u,f)=>1}for(const u of o){r&&u.sort(r);const f=c(u,i);let h=0;for(const d of u){const p=h+i(d);s(d)&&(d[n[0]]=l(h,f),d[n[1]]=l(p,f),this._propagate(d),h=p)}}super.complete()}}class _7 extends We{get behavior(){return Cr}constructor(t){super();const n=_e(t.field??"sequence"),[r,i]=t.as??["pos","sequence"];this.handle=a=>{const o=Object.assign({},a,{[i]:"",[r]:0}),s=n(a);for(let l=0;l<s.length;l++){const c=Object.assign({},o);c[r]=l,c[i]=s.charAt(l),this._propagate(c)}}}}class k7 extends We{get behavior(){return Cr}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const n=this.params.groupby,r=n.map(a=>_e(a)),i=Us(this.buffer,...r);for(const[a,o]of tg(i)){const s={count:o.length};for(let l=0;l<n.length;l++)s[n[l]]=a[l];this._propagate(s)}super.complete()}}const D7="_uniqueId",tA=1e4,nA=[null];class rA extends We{get behavior(){return di}constructor(t){super(),this.params=t,this.as=t.as??D7,this._blocks=[],this._usedBlocks=0,this._id=-1}initialize(){}reset(){super.reset(),this._usedBlocks=0,this._id=-1}handle(t){t[this.as]=this._nextId(),this._propagate(t)}_nextId(){return++this._id%tA==0&&(this._id=this._getBlock()*tA),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const t=nA.length;return nA[t]=this,this._blocks.push(t),this._usedBlocks++,t}}const iA={aggregate:k7,collect:$c,coverage:c7,filterScoredLabels:f7,filter:h7,flattenCompressedExons:g7,flattenDelimited:m7,flattenSequence:_7,formula:y7,identifier:rA,linearizeGenomicCoordinate:Jx,measureText:v7,pileup:x7,project:A7,regexExtract:E7,regexFold:S7,sample:vx,stack:C7};function I7(e,t){const n=iA[e.type];if(n)return new n(e,t);throw new Error("Unknown transform: "+e.type)}function aA(e){const t={...e.format};if(t.type??(t.type=F7(e)&&T7(e.url)),t.parse??(t.parse="auto"),!t.type)throw new Error("Format for the data source was not defined and it could not be inferred: "+JSON.stringify(e));return t}function T7(e){var t;if(Array.isArray(e)&&(e=e[0]),e)return(t=e.match(/\.(csv|tsv|json)/))==null?void 0:t[1]}const oA=e=>typeof e!="object"?M7:N7,M7=e=>({data:e}),N7=e=>e;function F7(e){return"url"in e}class zo extends We{get identifier(){}handle(t){throw new Error("Source does not handle incoming data!")}async load(){}}function B7(e){return"values"in e}class L7 extends zo{constructor(t,n){var r;if(super(),this.params=t,typeof t.values=="string"&&!((r=t==null?void 0:t.format)!=null&&r.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}loadSynchronously(){const t=this.params.values;let n=[],r=i=>i;if(Array.isArray(t))t.length>0&&(n=t,r=oA(t[0]));else if(typeof t=="object")n=[t];else if(typeof t=="string")n=Uy(t,aA(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 O7(e){return"url"in e}class R7 extends zo{constructor(t,n){super(),this.params=t,this.baseUrl=n==null?void 0:n.getBaseUrl()}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const t=this.params.url,n=Array.isArray(t)?t:[t],r=async a=>rc({baseURL:this.baseUrl}).load(a).catch(o=>{throw new Error(`Cannot fetch: ${this.baseUrl}${a}: ${o.message}`)}),i=(a,o)=>{try{const s=Uy(a,aA(this.params));this.beginBatch({type:"file",url:o});for(const l of s)this._propagate(l)}catch(s){throw new Error(`Cannot parse: ${o}: ${s.message}`)}};this.reset(),await Promise.all(n.map(a=>r(a).then(i))),this.complete()}}function z7(e){return"sequence"in e}class P7 extends zo{constructor(t,n){if(super(),this.sequence=t.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 t=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({[t]:i});this.complete()}async load(){this.loadSynchronously()}}function sA(e,t,n){return n=(n-e)/(t-e),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}class Po extends zo{constructor(t,n){if(super(),this.view=t,n){if(n!=="x"&&n!=="y")throw new Error(`Invalid channel specified for the dynamic data source: ${n}. Must be either "x" or "y"`)}else throw new Error('No channel has been specified for the dynamic data source. Must be either "x" or "y".');if(this.channel=n,this.scaleResolution=this.view.getScaleResolution(n),!this.scaleResolution){const r=[`The dynamic data source cannot find a resolved scale for channel "${n}".`];throw this.view instanceof Je||r.push('Make sure the view has a "shared" scale resolution as it is not a unit view.'),new Error(r.join(" "))}this.scaleResolution.addEventListener("domain",r=>{this.onDomainChanged(r.scaleResolution.getDomain(),r.scaleResolution.getComplexDomain())})}getAxisLength(){const t=this.scaleResolution.members.map(n=>{var r;return(r=n.view.coords)==null?void 0:r[this.channel==="x"?"width":"height"]}).filter(n=>n>0);return t.length?t.reduce((n,r)=>Math.min(n,r),1e4):0}get genome(){return this.scaleResolution.getGenome()}async onDomainChanged(t,n){}requestRender(){this.scaleResolution.members[0].view.context.animator.requestRender()}async load(){this.reset(),this.complete(),await this.onDomainChanged(this.scaleResolution.getDomain(),this.scaleResolution.getComplexDomain())}publishData(t){this.reset(),this.beginBatch({type:"file"});for(const n of t)this._propagate(n);this.complete(),this.requestRender()}}class U7 extends Po{constructor(n,r){var a;const i={axis:{},...n};super(r,i.channel);En(this,"ticks",[]);this.params=n,(a=this.scaleResolution.members[0])==null||a.view._addBroadcastHandler("layoutComputed",()=>this.onDomainChanged())}async onDomainChanged(){const n=this.scaleResolution.getScale(),r=this.params.axis,i=this.getAxisLength(),a=c=>25+60*sA(100,700,c),o=Ke(r.tickCount)?r.tickCount:Math.round(i/a(i)),s=_x(n,o,r.tickMinStep),l=r.values?kx(n,r.values,s):tL(n,s);if(!$0(l,this.ticks)){this.ticks=l;const c=rL(n,o,r.format);this.publishData(l.map(u=>({value:u,label:c(u)})))}}}class j7 extends Po{constructor(t,n){super(n,t.channel)}async load(){this.publishData(this.genome.chromosomes)}}var Sa=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ca(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Vt={},Ff={};Ff.byteLength=$7,Ff.toByteArray=Y7,Ff.fromByteArray=q7;for(var Xn=[],sn=[],H7=typeof Uint8Array<"u"?Uint8Array:Array,ng="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Uo=0,G7=ng.length;Uo<G7;++Uo)Xn[Uo]=ng[Uo],sn[ng.charCodeAt(Uo)]=Uo;sn["-".charCodeAt(0)]=62,sn["_".charCodeAt(0)]=63;function cA(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");n===-1&&(n=t);var r=n===t?0:4-n%4;return[n,r]}function $7(e){var t=cA(e),n=t[0],r=t[1];return(n+r)*3/4-r}function V7(e,t,n){return(t+n)*3/4-n}function Y7(e){var t,n=cA(e),r=n[0],i=n[1],a=new H7(V7(e,r,i)),o=0,s=i>0?r-4:r,l;for(l=0;l<s;l+=4)t=sn[e.charCodeAt(l)]<<18|sn[e.charCodeAt(l+1)]<<12|sn[e.charCodeAt(l+2)]<<6|sn[e.charCodeAt(l+3)],a[o++]=t>>16&255,a[o++]=t>>8&255,a[o++]=t&255;return i===2&&(t=sn[e.charCodeAt(l)]<<2|sn[e.charCodeAt(l+1)]>>4,a[o++]=t&255),i===1&&(t=sn[e.charCodeAt(l)]<<10|sn[e.charCodeAt(l+1)]<<4|sn[e.charCodeAt(l+2)]>>2,a[o++]=t>>8&255,a[o++]=t&255),a}function Q7(e){return Xn[e>>18&63]+Xn[e>>12&63]+Xn[e>>6&63]+Xn[e&63]}function Z7(e,t,n){for(var r,i=[],a=t;a<n;a+=3)r=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(e[a+2]&255),i.push(Q7(r));return i.join("")}function q7(e){for(var t,n=e.length,r=n%3,i=[],a=16383,o=0,s=n-r;o<s;o+=a)i.push(Z7(e,o,o+a>s?s:o+a));return r===1?(t=e[n-1],i.push(Xn[t>>2]+Xn[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(Xn[t>>10]+Xn[t>>4&63]+Xn[t<<2&63]+"=")),i.join("")}var rg={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */rg.read=function(e,t,n,r,i){var a,o,s=i*8-r-1,l=(1<<s)-1,c=l>>1,u=-7,f=n?i-1:0,h=n?-1:1,d=e[t+f];for(f+=h,a=d&(1<<-u)-1,d>>=-u,u+=s;u>0;a=a*256+e[t+f],f+=h,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=r;u>0;o=o*256+e[t+f],f+=h,u-=8);if(a===0)a=1-c;else{if(a===l)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,r),a=a-c}return(d?-1:1)*o*Math.pow(2,a-r)},rg.write=function(e,t,n,r,i,a){var o,s,l,c=a*8-i-1,u=(1<<c)-1,f=u>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:a-1,p=r?1:-1,g=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-o))<1&&(o--,l*=2),o+f>=1?t+=h/l:t+=h*Math.pow(2,1-f),t*l>=2&&(o++,l/=2),o+f>=u?(s=0,o=u):o+f>=1?(s=(t*l-1)*Math.pow(2,i),o=o+f):(s=t*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;e[n+d]=s&255,d+=p,s/=256,i-=8);for(o=o<<i|s,c+=i;c>0;e[n+d]=o&255,d+=p,o/=256,c-=8);e[n+d-p]|=g*128};/*!
1360
+ * The buffer module from node.js, for the browser.
1361
+ *
1362
+ * @author Feross Aboukhadijeh <https://feross.org>
1363
+ * @license MIT
1364
+ */(function(e){const t=Ff,n=rg,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=s,e.SlowBuffer=S,e.INSPECT_MAX_BYTES=50;const i=2147483647;e.kMaxLength=i,s.TYPED_ARRAY_SUPPORT=a(),!s.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function a(){try{const x=new Uint8Array(1),m={foo:function(){return 42}};return Object.setPrototypeOf(m,Uint8Array.prototype),Object.setPrototypeOf(x,m),x.foo()===42}catch{return!1}}Object.defineProperty(s.prototype,"parent",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,"offset",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}});function o(x){if(x>i)throw new RangeError('The value "'+x+'" is invalid for option "size"');const m=new Uint8Array(x);return Object.setPrototypeOf(m,s.prototype),m}function s(x,m,b){if(typeof x=="number"){if(typeof m=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return f(x)}return l(x,m,b)}s.poolSize=8192;function l(x,m,b){if(typeof x=="string")return h(x,m);if(ArrayBuffer.isView(x))return p(x);if(x==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof x);if(Jt(x,ArrayBuffer)||x&&Jt(x.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Jt(x,SharedArrayBuffer)||x&&Jt(x.buffer,SharedArrayBuffer)))return g(x,m,b);if(typeof x=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const I=x.valueOf&&x.valueOf();if(I!=null&&I!==x)return s.from(I,m,b);const B=y(x);if(B)return B;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof x[Symbol.toPrimitive]=="function")return s.from(x[Symbol.toPrimitive]("string"),m,b);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof x)}s.from=function(x,m,b){return l(x,m,b)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function c(x){if(typeof x!="number")throw new TypeError('"size" argument must be of type number');if(x<0)throw new RangeError('The value "'+x+'" is invalid for option "size"')}function u(x,m,b){return c(x),x<=0?o(x):m!==void 0?typeof b=="string"?o(x).fill(m,b):o(x).fill(m):o(x)}s.alloc=function(x,m,b){return u(x,m,b)};function f(x){return c(x),o(x<0?0:v(x)|0)}s.allocUnsafe=function(x){return f(x)},s.allocUnsafeSlow=function(x){return f(x)};function h(x,m){if((typeof m!="string"||m==="")&&(m="utf8"),!s.isEncoding(m))throw new TypeError("Unknown encoding: "+m);const b=k(x,m)|0;let I=o(b);const B=I.write(x,m);return B!==b&&(I=I.slice(0,B)),I}function d(x){const m=x.length<0?0:v(x.length)|0,b=o(m);for(let I=0;I<m;I+=1)b[I]=x[I]&255;return b}function p(x){if(Jt(x,Uint8Array)){const m=new Uint8Array(x);return g(m.buffer,m.byteOffset,m.byteLength)}return d(x)}function g(x,m,b){if(m<0||x.byteLength<m)throw new RangeError('"offset" is outside of buffer bounds');if(x.byteLength<m+(b||0))throw new RangeError('"length" is outside of buffer bounds');let I;return m===void 0&&b===void 0?I=new Uint8Array(x):b===void 0?I=new Uint8Array(x,m):I=new Uint8Array(x,m,b),Object.setPrototypeOf(I,s.prototype),I}function y(x){if(s.isBuffer(x)){const m=v(x.length)|0,b=o(m);return b.length===0||x.copy(b,0,0,m),b}if(x.length!==void 0)return typeof x.length!="number"||cu(x.length)?o(0):d(x);if(x.type==="Buffer"&&Array.isArray(x.data))return d(x.data)}function v(x){if(x>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return x|0}function S(x){return+x!=x&&(x=0),s.alloc(+x)}s.isBuffer=function(m){return m!=null&&m._isBuffer===!0&&m!==s.prototype},s.compare=function(m,b){if(Jt(m,Uint8Array)&&(m=s.from(m,m.offset,m.byteLength)),Jt(b,Uint8Array)&&(b=s.from(b,b.offset,b.byteLength)),!s.isBuffer(m)||!s.isBuffer(b))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(m===b)return 0;let I=m.length,B=b.length;for(let L=0,P=Math.min(I,B);L<P;++L)if(m[L]!==b[L]){I=m[L],B=b[L];break}return I<B?-1:B<I?1:0},s.isEncoding=function(m){switch(String(m).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(m,b){if(!Array.isArray(m))throw new TypeError('"list" argument must be an Array of Buffers');if(m.length===0)return s.alloc(0);let I;if(b===void 0)for(b=0,I=0;I<m.length;++I)b+=m[I].length;const B=s.allocUnsafe(b);let L=0;for(I=0;I<m.length;++I){let P=m[I];if(Jt(P,Uint8Array))L+P.length>B.length?(s.isBuffer(P)||(P=s.from(P)),P.copy(B,L)):Uint8Array.prototype.set.call(B,P,L);else if(s.isBuffer(P))P.copy(B,L);else throw new TypeError('"list" argument must be an Array of Buffers');L+=P.length}return B};function k(x,m){if(s.isBuffer(x))return x.length;if(ArrayBuffer.isView(x)||Jt(x,ArrayBuffer))return x.byteLength;if(typeof x!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof x);const b=x.length,I=arguments.length>2&&arguments[2]===!0;if(!I&&b===0)return 0;let B=!1;for(;;)switch(m){case"ascii":case"latin1":case"binary":return b;case"utf8":case"utf-8":return Kt(x).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return b*2;case"hex":return b>>>1;case"base64":return su(x).length;default:if(B)return I?-1:Kt(x).length;m=(""+m).toLowerCase(),B=!0}}s.byteLength=k;function C(x,m,b){let I=!1;if((m===void 0||m<0)&&(m=0),m>this.length||((b===void 0||b>this.length)&&(b=this.length),b<=0)||(b>>>=0,m>>>=0,b<=m))return"";for(x||(x="utf8");;)switch(x){case"hex":return yt(this,m,b);case"utf8":case"utf-8":return V(this,m,b);case"ascii":return tt(this,m,b);case"latin1":case"binary":return ie(this,m,b);case"base64":return q(this,m,b);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Vr(this,m,b);default:if(I)throw new TypeError("Unknown encoding: "+x);x=(x+"").toLowerCase(),I=!0}}s.prototype._isBuffer=!0;function E(x,m,b){const I=x[m];x[m]=x[b],x[b]=I}s.prototype.swap16=function(){const m=this.length;if(m%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let b=0;b<m;b+=2)E(this,b,b+1);return this},s.prototype.swap32=function(){const m=this.length;if(m%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let b=0;b<m;b+=4)E(this,b,b+3),E(this,b+1,b+2);return this},s.prototype.swap64=function(){const m=this.length;if(m%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let b=0;b<m;b+=8)E(this,b,b+7),E(this,b+1,b+6),E(this,b+2,b+5),E(this,b+3,b+4);return this},s.prototype.toString=function(){const m=this.length;return m===0?"":arguments.length===0?V(this,0,m):C.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(m){if(!s.isBuffer(m))throw new TypeError("Argument must be a Buffer");return this===m?!0:s.compare(this,m)===0},s.prototype.inspect=function(){let m="";const b=e.INSPECT_MAX_BYTES;return m=this.toString("hex",0,b).replace(/(.{2})/g,"$1 ").trim(),this.length>b&&(m+=" ... "),"<Buffer "+m+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(m,b,I,B,L){if(Jt(m,Uint8Array)&&(m=s.from(m,m.offset,m.byteLength)),!s.isBuffer(m))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof m);if(b===void 0&&(b=0),I===void 0&&(I=m?m.length:0),B===void 0&&(B=0),L===void 0&&(L=this.length),b<0||I>m.length||B<0||L>this.length)throw new RangeError("out of range index");if(B>=L&&b>=I)return 0;if(B>=L)return-1;if(b>=I)return 1;if(b>>>=0,I>>>=0,B>>>=0,L>>>=0,this===m)return 0;let P=L-B,oe=I-b;const Re=Math.min(P,oe),Ie=this.slice(B,L),$e=m.slice(b,I);for(let Ae=0;Ae<Re;++Ae)if(Ie[Ae]!==$e[Ae]){P=Ie[Ae],oe=$e[Ae];break}return P<oe?-1:oe<P?1:0};function w(x,m,b,I,B){if(x.length===0)return-1;if(typeof b=="string"?(I=b,b=0):b>2147483647?b=2147483647:b<-2147483648&&(b=-2147483648),b=+b,cu(b)&&(b=B?0:x.length-1),b<0&&(b=x.length+b),b>=x.length){if(B)return-1;b=x.length-1}else if(b<0)if(B)b=0;else return-1;if(typeof m=="string"&&(m=s.from(m,I)),s.isBuffer(m))return m.length===0?-1:A(x,m,b,I,B);if(typeof m=="number")return m=m&255,typeof Uint8Array.prototype.indexOf=="function"?B?Uint8Array.prototype.indexOf.call(x,m,b):Uint8Array.prototype.lastIndexOf.call(x,m,b):A(x,[m],b,I,B);throw new TypeError("val must be string, number or Buffer")}function A(x,m,b,I,B){let L=1,P=x.length,oe=m.length;if(I!==void 0&&(I=String(I).toLowerCase(),I==="ucs2"||I==="ucs-2"||I==="utf16le"||I==="utf-16le")){if(x.length<2||m.length<2)return-1;L=2,P/=2,oe/=2,b/=2}function Re($e,Ae){return L===1?$e[Ae]:$e.readUInt16BE(Ae*L)}let Ie;if(B){let $e=-1;for(Ie=b;Ie<P;Ie++)if(Re(x,Ie)===Re(m,$e===-1?0:Ie-$e)){if($e===-1&&($e=Ie),Ie-$e+1===oe)return $e*L}else $e!==-1&&(Ie-=Ie-$e),$e=-1}else for(b+oe>P&&(b=P-oe),Ie=b;Ie>=0;Ie--){let $e=!0;for(let Ae=0;Ae<oe;Ae++)if(Re(x,Ie+Ae)!==Re(m,Ae)){$e=!1;break}if($e)return Ie}return-1}s.prototype.includes=function(m,b,I){return this.indexOf(m,b,I)!==-1},s.prototype.indexOf=function(m,b,I){return w(this,m,b,I,!0)},s.prototype.lastIndexOf=function(m,b,I){return w(this,m,b,I,!1)};function T(x,m,b,I){b=Number(b)||0;const B=x.length-b;I?(I=Number(I),I>B&&(I=B)):I=B;const L=m.length;I>L/2&&(I=L/2);let P;for(P=0;P<I;++P){const oe=parseInt(m.substr(P*2,2),16);if(cu(oe))return P;x[b+P]=oe}return P}function D(x,m,b,I){return Os(Kt(m,x.length-b),x,b,I)}function M(x,m,b,I){return Os(lo(m),x,b,I)}function F(x,m,b,I){return Os(su(m),x,b,I)}function U(x,m,b,I){return Os(Ab(m,x.length-b),x,b,I)}s.prototype.write=function(m,b,I,B){if(b===void 0)B="utf8",I=this.length,b=0;else if(I===void 0&&typeof b=="string")B=b,I=this.length,b=0;else if(isFinite(b))b=b>>>0,isFinite(I)?(I=I>>>0,B===void 0&&(B="utf8")):(B=I,I=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const L=this.length-b;if((I===void 0||I>L)&&(I=L),m.length>0&&(I<0||b<0)||b>this.length)throw new RangeError("Attempt to write outside buffer bounds");B||(B="utf8");let P=!1;for(;;)switch(B){case"hex":return T(this,m,b,I);case"utf8":case"utf-8":return D(this,m,b,I);case"ascii":case"latin1":case"binary":return M(this,m,b,I);case"base64":return F(this,m,b,I);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U(this,m,b,I);default:if(P)throw new TypeError("Unknown encoding: "+B);B=(""+B).toLowerCase(),P=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function q(x,m,b){return m===0&&b===x.length?t.fromByteArray(x):t.fromByteArray(x.slice(m,b))}function V(x,m,b){b=Math.min(x.length,b);const I=[];let B=m;for(;B<b;){const L=x[B];let P=null,oe=L>239?4:L>223?3:L>191?2:1;if(B+oe<=b){let Re,Ie,$e,Ae;switch(oe){case 1:L<128&&(P=L);break;case 2:Re=x[B+1],(Re&192)===128&&(Ae=(L&31)<<6|Re&63,Ae>127&&(P=Ae));break;case 3:Re=x[B+1],Ie=x[B+2],(Re&192)===128&&(Ie&192)===128&&(Ae=(L&15)<<12|(Re&63)<<6|Ie&63,Ae>2047&&(Ae<55296||Ae>57343)&&(P=Ae));break;case 4:Re=x[B+1],Ie=x[B+2],$e=x[B+3],(Re&192)===128&&(Ie&192)===128&&($e&192)===128&&(Ae=(L&15)<<18|(Re&63)<<12|(Ie&63)<<6|$e&63,Ae>65535&&Ae<1114112&&(P=Ae))}}P===null?(P=65533,oe=1):P>65535&&(P-=65536,I.push(P>>>10&1023|55296),P=56320|P&1023),I.push(P),B+=oe}return Se(I)}const pe=4096;function Se(x){const m=x.length;if(m<=pe)return String.fromCharCode.apply(String,x);let b="",I=0;for(;I<m;)b+=String.fromCharCode.apply(String,x.slice(I,I+=pe));return b}function tt(x,m,b){let I="";b=Math.min(x.length,b);for(let B=m;B<b;++B)I+=String.fromCharCode(x[B]&127);return I}function ie(x,m,b){let I="";b=Math.min(x.length,b);for(let B=m;B<b;++B)I+=String.fromCharCode(x[B]);return I}function yt(x,m,b){const I=x.length;(!m||m<0)&&(m=0),(!b||b<0||b>I)&&(b=I);let B="";for(let L=m;L<b;++L)B+=dd[x[L]];return B}function Vr(x,m,b){const I=x.slice(m,b);let B="";for(let L=0;L<I.length-1;L+=2)B+=String.fromCharCode(I[L]+I[L+1]*256);return B}s.prototype.slice=function(m,b){const I=this.length;m=~~m,b=b===void 0?I:~~b,m<0?(m+=I,m<0&&(m=0)):m>I&&(m=I),b<0?(b+=I,b<0&&(b=0)):b>I&&(b=I),b<m&&(b=m);const B=this.subarray(m,b);return Object.setPrototypeOf(B,s.prototype),B};function De(x,m,b){if(x%1!==0||x<0)throw new RangeError("offset is not uint");if(x+m>b)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(m,b,I){m=m>>>0,b=b>>>0,I||De(m,b,this.length);let B=this[m],L=1,P=0;for(;++P<b&&(L*=256);)B+=this[m+P]*L;return B},s.prototype.readUintBE=s.prototype.readUIntBE=function(m,b,I){m=m>>>0,b=b>>>0,I||De(m,b,this.length);let B=this[m+--b],L=1;for(;b>0&&(L*=256);)B+=this[m+--b]*L;return B},s.prototype.readUint8=s.prototype.readUInt8=function(m,b){return m=m>>>0,b||De(m,1,this.length),this[m]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(m,b){return m=m>>>0,b||De(m,2,this.length),this[m]|this[m+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(m,b){return m=m>>>0,b||De(m,2,this.length),this[m]<<8|this[m+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(m,b){return m=m>>>0,b||De(m,4,this.length),(this[m]|this[m+1]<<8|this[m+2]<<16)+this[m+3]*16777216},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(m,b){return m=m>>>0,b||De(m,4,this.length),this[m]*16777216+(this[m+1]<<16|this[m+2]<<8|this[m+3])},s.prototype.readBigUInt64LE=mr(function(m){m=m>>>0,Qe(m,"offset");const b=this[m],I=this[m+7];(b===void 0||I===void 0)&&de(m,this.length-8);const B=b+this[++m]*2**8+this[++m]*2**16+this[++m]*2**24,L=this[++m]+this[++m]*2**8+this[++m]*2**16+I*2**24;return BigInt(B)+(BigInt(L)<<BigInt(32))}),s.prototype.readBigUInt64BE=mr(function(m){m=m>>>0,Qe(m,"offset");const b=this[m],I=this[m+7];(b===void 0||I===void 0)&&de(m,this.length-8);const B=b*2**24+this[++m]*2**16+this[++m]*2**8+this[++m],L=this[++m]*2**24+this[++m]*2**16+this[++m]*2**8+I;return(BigInt(B)<<BigInt(32))+BigInt(L)}),s.prototype.readIntLE=function(m,b,I){m=m>>>0,b=b>>>0,I||De(m,b,this.length);let B=this[m],L=1,P=0;for(;++P<b&&(L*=256);)B+=this[m+P]*L;return L*=128,B>=L&&(B-=Math.pow(2,8*b)),B},s.prototype.readIntBE=function(m,b,I){m=m>>>0,b=b>>>0,I||De(m,b,this.length);let B=b,L=1,P=this[m+--B];for(;B>0&&(L*=256);)P+=this[m+--B]*L;return L*=128,P>=L&&(P-=Math.pow(2,8*b)),P},s.prototype.readInt8=function(m,b){return m=m>>>0,b||De(m,1,this.length),this[m]&128?(255-this[m]+1)*-1:this[m]},s.prototype.readInt16LE=function(m,b){m=m>>>0,b||De(m,2,this.length);const I=this[m]|this[m+1]<<8;return I&32768?I|4294901760:I},s.prototype.readInt16BE=function(m,b){m=m>>>0,b||De(m,2,this.length);const I=this[m+1]|this[m]<<8;return I&32768?I|4294901760:I},s.prototype.readInt32LE=function(m,b){return m=m>>>0,b||De(m,4,this.length),this[m]|this[m+1]<<8|this[m+2]<<16|this[m+3]<<24},s.prototype.readInt32BE=function(m,b){return m=m>>>0,b||De(m,4,this.length),this[m]<<24|this[m+1]<<16|this[m+2]<<8|this[m+3]},s.prototype.readBigInt64LE=mr(function(m){m=m>>>0,Qe(m,"offset");const b=this[m],I=this[m+7];(b===void 0||I===void 0)&&de(m,this.length-8);const B=this[m+4]+this[m+5]*2**8+this[m+6]*2**16+(I<<24);return(BigInt(B)<<BigInt(32))+BigInt(b+this[++m]*2**8+this[++m]*2**16+this[++m]*2**24)}),s.prototype.readBigInt64BE=mr(function(m){m=m>>>0,Qe(m,"offset");const b=this[m],I=this[m+7];(b===void 0||I===void 0)&&de(m,this.length-8);const B=(b<<24)+this[++m]*2**16+this[++m]*2**8+this[++m];return(BigInt(B)<<BigInt(32))+BigInt(this[++m]*2**24+this[++m]*2**16+this[++m]*2**8+I)}),s.prototype.readFloatLE=function(m,b){return m=m>>>0,b||De(m,4,this.length),n.read(this,m,!0,23,4)},s.prototype.readFloatBE=function(m,b){return m=m>>>0,b||De(m,4,this.length),n.read(this,m,!1,23,4)},s.prototype.readDoubleLE=function(m,b){return m=m>>>0,b||De(m,8,this.length),n.read(this,m,!0,52,8)},s.prototype.readDoubleBE=function(m,b){return m=m>>>0,b||De(m,8,this.length),n.read(this,m,!1,52,8)};function Xe(x,m,b,I,B,L){if(!s.isBuffer(x))throw new TypeError('"buffer" argument must be a Buffer instance');if(m>B||m<L)throw new RangeError('"value" argument is out of bounds');if(b+I>x.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(m,b,I,B){if(m=+m,b=b>>>0,I=I>>>0,!B){const oe=Math.pow(2,8*I)-1;Xe(this,m,b,I,oe,0)}let L=1,P=0;for(this[b]=m&255;++P<I&&(L*=256);)this[b+P]=m/L&255;return b+I},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(m,b,I,B){if(m=+m,b=b>>>0,I=I>>>0,!B){const oe=Math.pow(2,8*I)-1;Xe(this,m,b,I,oe,0)}let L=I-1,P=1;for(this[b+L]=m&255;--L>=0&&(P*=256);)this[b+L]=m/P&255;return b+I},s.prototype.writeUint8=s.prototype.writeUInt8=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,1,255,0),this[b]=m&255,b+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,2,65535,0),this[b]=m&255,this[b+1]=m>>>8,b+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,2,65535,0),this[b]=m>>>8,this[b+1]=m&255,b+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,4,4294967295,0),this[b+3]=m>>>24,this[b+2]=m>>>16,this[b+1]=m>>>8,this[b]=m&255,b+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,4,4294967295,0),this[b]=m>>>24,this[b+1]=m>>>16,this[b+2]=m>>>8,this[b+3]=m&255,b+4};function Pi(x,m,b,I,B){j(m,I,B,x,b,7);let L=Number(m&BigInt(4294967295));x[b++]=L,L=L>>8,x[b++]=L,L=L>>8,x[b++]=L,L=L>>8,x[b++]=L;let P=Number(m>>BigInt(32)&BigInt(4294967295));return x[b++]=P,P=P>>8,x[b++]=P,P=P>>8,x[b++]=P,P=P>>8,x[b++]=P,b}function so(x,m,b,I,B){j(m,I,B,x,b,7);let L=Number(m&BigInt(4294967295));x[b+7]=L,L=L>>8,x[b+6]=L,L=L>>8,x[b+5]=L,L=L>>8,x[b+4]=L;let P=Number(m>>BigInt(32)&BigInt(4294967295));return x[b+3]=P,P=P>>8,x[b+2]=P,P=P>>8,x[b+1]=P,P=P>>8,x[b]=P,b+8}s.prototype.writeBigUInt64LE=mr(function(m,b=0){return Pi(this,m,b,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=mr(function(m,b=0){return so(this,m,b,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(m,b,I,B){if(m=+m,b=b>>>0,!B){const Re=Math.pow(2,8*I-1);Xe(this,m,b,I,Re-1,-Re)}let L=0,P=1,oe=0;for(this[b]=m&255;++L<I&&(P*=256);)m<0&&oe===0&&this[b+L-1]!==0&&(oe=1),this[b+L]=(m/P>>0)-oe&255;return b+I},s.prototype.writeIntBE=function(m,b,I,B){if(m=+m,b=b>>>0,!B){const Re=Math.pow(2,8*I-1);Xe(this,m,b,I,Re-1,-Re)}let L=I-1,P=1,oe=0;for(this[b+L]=m&255;--L>=0&&(P*=256);)m<0&&oe===0&&this[b+L+1]!==0&&(oe=1),this[b+L]=(m/P>>0)-oe&255;return b+I},s.prototype.writeInt8=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,1,127,-128),m<0&&(m=255+m+1),this[b]=m&255,b+1},s.prototype.writeInt16LE=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,2,32767,-32768),this[b]=m&255,this[b+1]=m>>>8,b+2},s.prototype.writeInt16BE=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,2,32767,-32768),this[b]=m>>>8,this[b+1]=m&255,b+2},s.prototype.writeInt32LE=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,4,2147483647,-2147483648),this[b]=m&255,this[b+1]=m>>>8,this[b+2]=m>>>16,this[b+3]=m>>>24,b+4},s.prototype.writeInt32BE=function(m,b,I){return m=+m,b=b>>>0,I||Xe(this,m,b,4,2147483647,-2147483648),m<0&&(m=4294967295+m+1),this[b]=m>>>24,this[b+1]=m>>>16,this[b+2]=m>>>8,this[b+3]=m&255,b+4},s.prototype.writeBigInt64LE=mr(function(m,b=0){return Pi(this,m,b,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=mr(function(m,b=0){return so(this,m,b,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Bs(x,m,b,I,B,L){if(b+I>x.length)throw new RangeError("Index out of range");if(b<0)throw new RangeError("Index out of range")}function co(x,m,b,I,B){return m=+m,b=b>>>0,B||Bs(x,m,b,4),n.write(x,m,b,I,23,4),b+4}s.prototype.writeFloatLE=function(m,b,I){return co(this,m,b,!0,I)},s.prototype.writeFloatBE=function(m,b,I){return co(this,m,b,!1,I)};function Ls(x,m,b,I,B){return m=+m,b=b>>>0,B||Bs(x,m,b,8),n.write(x,m,b,I,52,8),b+8}s.prototype.writeDoubleLE=function(m,b,I){return Ls(this,m,b,!0,I)},s.prototype.writeDoubleBE=function(m,b,I){return Ls(this,m,b,!1,I)},s.prototype.copy=function(m,b,I,B){if(!s.isBuffer(m))throw new TypeError("argument should be a Buffer");if(I||(I=0),!B&&B!==0&&(B=this.length),b>=m.length&&(b=m.length),b||(b=0),B>0&&B<I&&(B=I),B===I||m.length===0||this.length===0)return 0;if(b<0)throw new RangeError("targetStart out of bounds");if(I<0||I>=this.length)throw new RangeError("Index out of range");if(B<0)throw new RangeError("sourceEnd out of bounds");B>this.length&&(B=this.length),m.length-b<B-I&&(B=m.length-b+I);const L=B-I;return this===m&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(b,I,B):Uint8Array.prototype.set.call(m,this.subarray(I,B),b),L},s.prototype.fill=function(m,b,I,B){if(typeof m=="string"){if(typeof b=="string"?(B=b,b=0,I=this.length):typeof I=="string"&&(B=I,I=this.length),B!==void 0&&typeof B!="string")throw new TypeError("encoding must be a string");if(typeof B=="string"&&!s.isEncoding(B))throw new TypeError("Unknown encoding: "+B);if(m.length===1){const P=m.charCodeAt(0);(B==="utf8"&&P<128||B==="latin1")&&(m=P)}}else typeof m=="number"?m=m&255:typeof m=="boolean"&&(m=Number(m));if(b<0||this.length<b||this.length<I)throw new RangeError("Out of range index");if(I<=b)return this;b=b>>>0,I=I===void 0?this.length:I>>>0,m||(m=0);let L;if(typeof m=="number")for(L=b;L<I;++L)this[L]=m;else{const P=s.isBuffer(m)?m:s.from(m,B),oe=P.length;if(oe===0)throw new TypeError('The value "'+m+'" is invalid for argument "value"');for(L=0;L<I-b;++L)this[L+b]=P[L%oe]}return this};const jn={};function Q(x,m,b){jn[x]=class extends b{constructor(){super(),Object.defineProperty(this,"message",{value:m.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${x}]`,this.stack,delete this.name}get code(){return x}set code(B){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:B,writable:!0})}toString(){return`${this.name} [${x}]: ${this.message}`}}}Q("ERR_BUFFER_OUT_OF_BOUNDS",function(x){return x?`${x} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),Q("ERR_INVALID_ARG_TYPE",function(x,m){return`The "${x}" argument must be of type number. Received type ${typeof m}`},TypeError),Q("ERR_OUT_OF_RANGE",function(x,m,b){let I=`The value of "${x}" is out of range.`,B=b;return Number.isInteger(b)&&Math.abs(b)>2**32?B=re(String(b)):typeof b=="bigint"&&(B=String(b),(b>BigInt(2)**BigInt(32)||b<-(BigInt(2)**BigInt(32)))&&(B=re(B)),B+="n"),I+=` It must be ${m}. Received ${B}`,I},RangeError);function re(x){let m="",b=x.length;const I=x[0]==="-"?1:0;for(;b>=I+4;b-=3)m=`_${x.slice(b-3,b)}${m}`;return`${x.slice(0,b)}${m}`}function ue(x,m,b){Qe(m,"offset"),(x[m]===void 0||x[m+b]===void 0)&&de(m,x.length-(b+1))}function j(x,m,b,I,B,L){if(x>b||x<m){const P=typeof m=="bigint"?"n":"";let oe;throw L>3?m===0||m===BigInt(0)?oe=`>= 0${P} and < 2${P} ** ${(L+1)*8}${P}`:oe=`>= -(2${P} ** ${(L+1)*8-1}${P}) and < 2 ** ${(L+1)*8-1}${P}`:oe=`>= ${m}${P} and <= ${b}${P}`,new jn.ERR_OUT_OF_RANGE("value",oe,x)}ue(I,B,L)}function Qe(x,m){if(typeof x!="number")throw new jn.ERR_INVALID_ARG_TYPE(m,"number",x)}function de(x,m,b){throw Math.floor(x)!==x?(Qe(x,b),new jn.ERR_OUT_OF_RANGE(b||"offset","an integer",x)):m<0?new jn.ERR_BUFFER_OUT_OF_BOUNDS:new jn.ERR_OUT_OF_RANGE(b||"offset",`>= ${b?1:0} and <= ${m}`,x)}const vt=/[^+/0-9A-Za-z-_]/g;function dt(x){if(x=x.split("=")[0],x=x.trim().replace(vt,""),x.length<2)return"";for(;x.length%4!==0;)x=x+"=";return x}function Kt(x,m){m=m||1/0;let b;const I=x.length;let B=null;const L=[];for(let P=0;P<I;++P){if(b=x.charCodeAt(P),b>55295&&b<57344){if(!B){if(b>56319){(m-=3)>-1&&L.push(239,191,189);continue}else if(P+1===I){(m-=3)>-1&&L.push(239,191,189);continue}B=b;continue}if(b<56320){(m-=3)>-1&&L.push(239,191,189),B=b;continue}b=(B-55296<<10|b-56320)+65536}else B&&(m-=3)>-1&&L.push(239,191,189);if(B=null,b<128){if((m-=1)<0)break;L.push(b)}else if(b<2048){if((m-=2)<0)break;L.push(b>>6|192,b&63|128)}else if(b<65536){if((m-=3)<0)break;L.push(b>>12|224,b>>6&63|128,b&63|128)}else if(b<1114112){if((m-=4)<0)break;L.push(b>>18|240,b>>12&63|128,b>>6&63|128,b&63|128)}else throw new Error("Invalid code point")}return L}function lo(x){const m=[];for(let b=0;b<x.length;++b)m.push(x.charCodeAt(b)&255);return m}function Ab(x,m){let b,I,B;const L=[];for(let P=0;P<x.length&&!((m-=2)<0);++P)b=x.charCodeAt(P),I=b>>8,B=b%256,L.push(B),L.push(I);return L}function su(x){return t.toByteArray(dt(x))}function Os(x,m,b,I){let B;for(B=0;B<I&&!(B+b>=m.length||B>=x.length);++B)m[B+b]=x[B];return B}function Jt(x,m){return x instanceof m||x!=null&&x.constructor!=null&&x.constructor.name!=null&&x.constructor.name===m.name}function cu(x){return x!==x}const dd=function(){const x="0123456789abcdef",m=new Array(256);for(let b=0;b<16;++b){const I=b*16;for(let B=0;B<16;++B)m[I+B]=x[b]+x[B]}return m}();function mr(x){return typeof BigInt>"u"?pd:x}function pd(){throw new Error("BigInt not supported")}})(Vt);const gi={},ig=typeof window<"u"?window:typeof self<"u"?self:{fetch:void 0};class kr{async getBufferFromResponse(t){if(typeof t.buffer=="function")return t.buffer();if(typeof t.arrayBuffer=="function"){const n=await t.arrayBuffer();return Vt.Buffer.from(n)}else throw new TypeError("invalid HTTP response object, has no buffer method, and no arrayBuffer method")}constructor(t,n={}){this.baseOverrides={},this.url=t;const r=n.fetch||ig.fetch&&ig.fetch.bind(ig);if(!r)throw new TypeError("no fetch function supplied, and none found in global environment");n.overrides&&(this.baseOverrides=n.overrides),this.fetchImplementation=r}async fetch(t,n){let r;try{r=await this.fetchImplementation(t,n)}catch(i){if(`${i}`.includes("Failed to fetch"))console.warn(`generic-filehandle: refetching ${t} to attempt to work around chrome CORS header caching bug`),r=await this.fetchImplementation(t,{...n,cache:"reload"});else throw i}return r}async read(t,n=0,r,i=0,a={}){const{headers:o={},signal:s,overrides:l={}}=a;r<1/0?o.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(o.range=`bytes=${i}-`);const c={...this.baseOverrides,...l,headers:{...o,...l.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:s},u=await this.fetch(this.url,c);if(!u.ok)throw new Error(`HTTP ${u.status} ${u.statusText} ${this.url}`);if(u.status===200&&i===0||u.status===206){const f=await this.getBufferFromResponse(u),h=f.copy(t,n,0,Math.min(r,f.length)),d=u.headers.get("content-range"),p=/\/(\d+)$/.exec(d||"");return p&&p[1]&&(this._stat={size:parseInt(p[1],10)}),{bytesRead:h,buffer:t}}throw u.status===200?new Error("${this.url} fetch returned status 200, expected 206"):new Error(`HTTP ${u.status} fetching ${this.url}`)}async readFile(t={}){let n,r;typeof t=="string"?(n=t,r={}):(n=t.encoding,r=t,delete r.encoding);const{headers:i={},signal:a,overrides:o={}}=r,s={headers:i,method:"GET",redirect:"follow",mode:"cors",signal:a,...this.baseOverrides,...o},l=await this.fetch(this.url,s);if(!l)throw new Error("generic-filehandle failed to fetch");if(l.status!==200)throw Object.assign(new Error(`HTTP ${l.status} fetching ${this.url}`),{status:l.status});if(n==="utf8")return l.text();if(n)throw new Error(`unsupported encoding: ${n}`);return this.getBufferFromResponse(l)}async stat(){if(!this._stat){const t=Vt.Buffer.allocUnsafe(10);if(await this.read(t,0,10,0),!this._stat)throw new Error(`unable to determine size of file at ${this.url}`)}return this._stat}async close(){}}var Dr={};(function(e){var t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function n(a,o){return Object.prototype.hasOwnProperty.call(a,o)}e.assign=function(a){for(var o=Array.prototype.slice.call(arguments,1);o.length;){var s=o.shift();if(s){if(typeof s!="object")throw new TypeError(s+"must be non-object");for(var l in s)n(s,l)&&(a[l]=s[l])}}return a},e.shrinkBuf=function(a,o){return a.length===o?a:a.subarray?a.subarray(0,o):(a.length=o,a)};var r={arraySet:function(a,o,s,l,c){if(o.subarray&&a.subarray){a.set(o.subarray(s,s+l),c);return}for(var u=0;u<l;u++)a[c+u]=o[s+u]},flattenChunks:function(a){var o,s,l,c,u,f;for(l=0,o=0,s=a.length;o<s;o++)l+=a[o].length;for(f=new Uint8Array(l),c=0,o=0,s=a.length;o<s;o++)u=a[o],f.set(u,c),c+=u.length;return f}},i={arraySet:function(a,o,s,l,c){for(var u=0;u<l;u++)a[c+u]=o[s+u]},flattenChunks:function(a){return[].concat.apply([],a)}};e.setTyped=function(a){a?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,r)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,i))},e.setTyped(t)})(Dr);var Yc={},Kn={},jo={},W7=Dr,X7=4,lA=0,uA=1,K7=2;function Ho(e){for(var t=e.length;--t>=0;)e[t]=0}var J7=0,fA=1,eO=2,tO=3,nO=258,ag=29,Qc=256,Zc=Qc+1+ag,Go=30,og=19,hA=2*Zc+1,_a=15,sg=16,rO=7,cg=256,dA=16,pA=17,gA=18,lg=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Bf=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],iO=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],mA=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],aO=512,Ir=new Array((Zc+2)*2);Ho(Ir);var qc=new Array(Go*2);Ho(qc);var Wc=new Array(aO);Ho(Wc);var Xc=new Array(nO-tO+1);Ho(Xc);var ug=new Array(ag);Ho(ug);var Lf=new Array(Go);Ho(Lf);function fg(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}var bA,yA,vA;function hg(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function wA(e){return e<256?Wc[e]:Wc[256+(e>>>7)]}function Kc(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function Rt(e,t,n){e.bi_valid>sg-n?(e.bi_buf|=t<<e.bi_valid&65535,Kc(e,e.bi_buf),e.bi_buf=t>>sg-e.bi_valid,e.bi_valid+=n-sg):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function Jn(e,t,n){Rt(e,n[t*2],n[t*2+1])}function xA(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function oO(e){e.bi_valid===16?(Kc(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function sO(e,t){var n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,l=t.stat_desc.max_length,c,u,f,h,d,p,g=0;for(h=0;h<=_a;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,c=e.heap_max+1;c<hA;c++)u=e.heap[c],h=n[n[u*2+1]*2+1]+1,h>l&&(h=l,g++),n[u*2+1]=h,!(u>r)&&(e.bl_count[h]++,d=0,u>=s&&(d=o[u-s]),p=n[u*2],e.opt_len+=p*(h+d),a&&(e.static_len+=p*(i[u*2+1]+d)));if(g!==0){do{for(h=l-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[l]--,g-=2}while(g>0);for(h=l;h!==0;h--)for(u=e.bl_count[h];u!==0;)f=e.heap[--c],!(f>r)&&(n[f*2+1]!==h&&(e.opt_len+=(h-n[f*2+1])*n[f*2],n[f*2+1]=h),u--)}}function AA(e,t,n){var r=new Array(_a+1),i=0,a,o;for(a=1;a<=_a;a++)r[a]=i=i+n[a-1]<<1;for(o=0;o<=t;o++){var s=e[o*2+1];s!==0&&(e[o*2]=xA(r[s]++,s))}}function cO(){var e,t,n,r,i,a=new Array(_a+1);for(n=0,r=0;r<ag-1;r++)for(ug[r]=n,e=0;e<1<<lg[r];e++)Xc[n++]=r;for(Xc[n-1]=r,i=0,r=0;r<16;r++)for(Lf[r]=i,e=0;e<1<<Bf[r];e++)Wc[i++]=r;for(i>>=7;r<Go;r++)for(Lf[r]=i<<7,e=0;e<1<<Bf[r]-7;e++)Wc[256+i++]=r;for(t=0;t<=_a;t++)a[t]=0;for(e=0;e<=143;)Ir[e*2+1]=8,e++,a[8]++;for(;e<=255;)Ir[e*2+1]=9,e++,a[9]++;for(;e<=279;)Ir[e*2+1]=7,e++,a[7]++;for(;e<=287;)Ir[e*2+1]=8,e++,a[8]++;for(AA(Ir,Zc+1,a),e=0;e<Go;e++)qc[e*2+1]=5,qc[e*2]=xA(e,5);bA=new fg(Ir,lg,Qc+1,Zc,_a),yA=new fg(qc,Bf,0,Go,_a),vA=new fg(new Array(0),iO,0,og,rO)}function EA(e){var t;for(t=0;t<Zc;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Go;t++)e.dyn_dtree[t*2]=0;for(t=0;t<og;t++)e.bl_tree[t*2]=0;e.dyn_ltree[cg*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function SA(e){e.bi_valid>8?Kc(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function lO(e,t,n,r){SA(e),r&&(Kc(e,n),Kc(e,~n)),W7.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function CA(e,t,n,r){var i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]}function dg(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&CA(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!CA(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function _A(e,t,n){var r,i,a=0,o,s;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+a*2]<<8|e.pending_buf[e.d_buf+a*2+1],i=e.pending_buf[e.l_buf+a],a++,r===0?Jn(e,i,t):(o=Xc[i],Jn(e,o+Qc+1,t),s=lg[o],s!==0&&(i-=ug[o],Rt(e,i,s)),r--,o=wA(r),Jn(e,o,n),s=Bf[o],s!==0&&(r-=Lf[o],Rt(e,r,s)));while(a<e.last_lit);Jn(e,cg,t)}function pg(e,t){var n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems,o,s,l=-1,c;for(e.heap_len=0,e.heap_max=hA,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=l=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)c=e.heap[++e.heap_len]=l<2?++l:0,n[c*2]=1,e.depth[c]=0,e.opt_len--,i&&(e.static_len-=r[c*2+1]);for(t.max_code=l,o=e.heap_len>>1;o>=1;o--)dg(e,n,o);c=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],dg(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[c*2]=n[o*2]+n[s*2],e.depth[c]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=c,e.heap[1]=c++,dg(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],sO(e,t),AA(n,l,e.bl_count)}function kA(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,l=7,c=4;for(o===0&&(l=138,c=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<l&&a===o)&&(s<c?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[dA*2]++):s<=10?e.bl_tree[pA*2]++:e.bl_tree[gA*2]++,s=0,i=a,o===0?(l=138,c=3):a===o?(l=6,c=3):(l=7,c=4))}function DA(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,l=7,c=4;for(o===0&&(l=138,c=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<l&&a===o)){if(s<c)do Jn(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Jn(e,a,e.bl_tree),s--),Jn(e,dA,e.bl_tree),Rt(e,s-3,2)):s<=10?(Jn(e,pA,e.bl_tree),Rt(e,s-3,3)):(Jn(e,gA,e.bl_tree),Rt(e,s-11,7));s=0,i=a,o===0?(l=138,c=3):a===o?(l=6,c=3):(l=7,c=4)}}function uO(e){var t;for(kA(e,e.dyn_ltree,e.l_desc.max_code),kA(e,e.dyn_dtree,e.d_desc.max_code),pg(e,e.bl_desc),t=og-1;t>=3&&e.bl_tree[mA[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function fO(e,t,n,r){var i;for(Rt(e,t-257,5),Rt(e,n-1,5),Rt(e,r-4,4),i=0;i<r;i++)Rt(e,e.bl_tree[mA[i]*2+1],3);DA(e,e.dyn_ltree,t-1),DA(e,e.dyn_dtree,n-1)}function hO(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return lA;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return uA;for(n=32;n<Qc;n++)if(e.dyn_ltree[n*2]!==0)return uA;return lA}var IA=!1;function dO(e){IA||(cO(),IA=!0),e.l_desc=new hg(e.dyn_ltree,bA),e.d_desc=new hg(e.dyn_dtree,yA),e.bl_desc=new hg(e.bl_tree,vA),e.bi_buf=0,e.bi_valid=0,EA(e)}function TA(e,t,n,r){Rt(e,(J7<<1)+(r?1:0),3),lO(e,t,n,!0)}function pO(e){Rt(e,fA<<1,3),Jn(e,cg,Ir),oO(e)}function gO(e,t,n,r){var i,a,o=0;e.level>0?(e.strm.data_type===K7&&(e.strm.data_type=hO(e)),pg(e,e.l_desc),pg(e,e.d_desc),o=uO(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?TA(e,t,n,r):e.strategy===X7||a===i?(Rt(e,(fA<<1)+(r?1:0),3),_A(e,Ir,qc)):(Rt(e,(eO<<1)+(r?1:0),3),fO(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),_A(e,e.dyn_ltree,e.dyn_dtree)),EA(e),r&&SA(e)}function mO(e,t,n){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=n&255,e.last_lit++,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(Xc[n]+Qc+1)*2]++,e.dyn_dtree[wA(t)*2]++),e.last_lit===e.lit_bufsize-1}jo._tr_init=dO,jo._tr_stored_block=TA,jo._tr_flush_block=gO,jo._tr_tally=mO,jo._tr_align=pO;function bO(e,t,n,r){for(var i=e&65535|0,a=e>>>16&65535|0,o=0;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0}var MA=bO;function yO(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t}var vO=yO();function wO(e,t,n,r){var i=vO,a=r+n;e^=-1;for(var o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1}var NA=wO,gg={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},kt=Dr,cn=jo,FA=MA,mi=NA,xO=gg,ka=0,AO=1,EO=3,bi=4,BA=5,er=0,LA=1,ln=-2,SO=-3,mg=-5,CO=-1,_O=1,Of=2,kO=3,DO=4,IO=0,TO=2,Rf=8,MO=9,NO=15,FO=8,BO=29,LO=256,bg=LO+1+BO,OO=30,RO=19,zO=2*bg+1,PO=15,fe=3,yi=258,Nn=yi+fe+1,UO=32,zf=42,yg=69,Pf=73,Uf=91,jf=103,Da=113,Jc=666,at=1,el=2,Ia=3,$o=4,jO=3;function vi(e,t){return e.msg=xO[t],t}function OA(e){return(e<<1)-(e>4?9:0)}function wi(e){for(var t=e.length;--t>=0;)e[t]=0}function xi(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(kt.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))}function mt(e,t){cn._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,xi(e.strm)}function ye(e,t){e.pending_buf[e.pending++]=t}function tl(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function HO(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,kt.arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=FA(e.adler,t,i,n):e.state.wrap===2&&(e.adler=mi(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function RA(e,t){var n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match,l=e.strstart>e.w_size-Nn?e.strstart-(e.w_size-Nn):0,c=e.window,u=e.w_mask,f=e.prev,h=e.strstart+yi,d=c[r+o-1],p=c[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(c[i+o]!==p||c[i+o-1]!==d||c[i]!==c[r]||c[++i]!==c[r+1])){r+=2,i++;do;while(c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&r<h);if(a=yi-(h-r),r=h-yi,a>o){if(e.match_start=t,o=a,a>=s)break;d=c[r+o-1],p=c[r+o]}}while((t=f[t&u])>l&&--n!==0);return o<=e.lookahead?o:e.lookahead}function Ta(e){var t=e.w_size,n,r,i,a,o;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Nn)){kt.arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,r=e.hash_size,n=r;do i=e.head[--n],e.head[n]=i>=t?i-t:0;while(--r);r=t,n=r;do i=e.prev[--n],e.prev[n]=i>=t?i-t:0;while(--r);a+=t}if(e.strm.avail_in===0)break;if(r=HO(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=r,e.lookahead+e.insert>=fe)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+fe-1])&e.hash_mask,e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,!(e.lookahead+e.insert<fe)););}while(e.lookahead<Nn&&e.strm.avail_in!==0)}function GO(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Ta(e),e.lookahead===0&&t===ka)return at;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((e.strstart===0||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,mt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-Nn&&(mt(e,!1),e.strm.avail_out===0))return at}return e.insert=0,t===bi?(mt(e,!0),e.strm.avail_out===0?Ia:$o):(e.strstart>e.block_start&&(mt(e,!1),e.strm.avail_out===0),at)}function vg(e,t){for(var n,r;;){if(e.lookahead<Nn){if(Ta(e),e.lookahead<Nn&&t===ka)return at;if(e.lookahead===0)break}if(n=0,e.lookahead>=fe&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+fe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-Nn&&(e.match_length=RA(e,n)),e.match_length>=fe)if(r=cn._tr_tally(e,e.strstart-e.match_start,e.match_length-fe),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=fe){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+fe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=cn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(mt(e,!1),e.strm.avail_out===0))return at}return e.insert=e.strstart<fe-1?e.strstart:fe-1,t===bi?(mt(e,!0),e.strm.avail_out===0?Ia:$o):e.last_lit&&(mt(e,!1),e.strm.avail_out===0)?at:el}function Vo(e,t){for(var n,r,i;;){if(e.lookahead<Nn){if(Ta(e),e.lookahead<Nn&&t===ka)return at;if(e.lookahead===0)break}if(n=0,e.lookahead>=fe&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+fe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=fe-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Nn&&(e.match_length=RA(e,n),e.match_length<=5&&(e.strategy===_O||e.match_length===fe&&e.strstart-e.match_start>4096)&&(e.match_length=fe-1)),e.prev_length>=fe&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-fe,r=cn._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-fe),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+fe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=fe-1,e.strstart++,r&&(mt(e,!1),e.strm.avail_out===0))return at}else if(e.match_available){if(r=cn._tr_tally(e,0,e.window[e.strstart-1]),r&&mt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return at}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=cn._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<fe-1?e.strstart:fe-1,t===bi?(mt(e,!0),e.strm.avail_out===0?Ia:$o):e.last_lit&&(mt(e,!1),e.strm.avail_out===0)?at:el}function $O(e,t){for(var n,r,i,a,o=e.window;;){if(e.lookahead<=yi){if(Ta(e),e.lookahead<=yi&&t===ka)return at;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=fe&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+yi;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=yi-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=fe?(n=cn._tr_tally(e,1,e.match_length-fe),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=cn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(mt(e,!1),e.strm.avail_out===0))return at}return e.insert=0,t===bi?(mt(e,!0),e.strm.avail_out===0?Ia:$o):e.last_lit&&(mt(e,!1),e.strm.avail_out===0)?at:el}function VO(e,t){for(var n;;){if(e.lookahead===0&&(Ta(e),e.lookahead===0)){if(t===ka)return at;break}if(e.match_length=0,n=cn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(mt(e,!1),e.strm.avail_out===0))return at}return e.insert=0,t===bi?(mt(e,!0),e.strm.avail_out===0?Ia:$o):e.last_lit&&(mt(e,!1),e.strm.avail_out===0)?at:el}function tr(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}var Yo;Yo=[new tr(0,0,0,0,GO),new tr(4,4,8,4,vg),new tr(4,5,16,8,vg),new tr(4,6,32,32,vg),new tr(4,4,16,16,Vo),new tr(8,16,32,32,Vo),new tr(8,16,128,128,Vo),new tr(8,32,128,256,Vo),new tr(32,128,258,1024,Vo),new tr(32,258,258,4096,Vo)];function YO(e){e.window_size=2*e.w_size,wi(e.head),e.max_lazy_match=Yo[e.level].max_lazy,e.good_match=Yo[e.level].good_length,e.nice_match=Yo[e.level].nice_length,e.max_chain_length=Yo[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=fe-1,e.match_available=0,e.ins_h=0}function QO(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Rf,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new kt.Buf16(zO*2),this.dyn_dtree=new kt.Buf16((2*OO+1)*2),this.bl_tree=new kt.Buf16((2*RO+1)*2),wi(this.dyn_ltree),wi(this.dyn_dtree),wi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new kt.Buf16(PO+1),this.heap=new kt.Buf16(2*bg+1),wi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new kt.Buf16(2*bg+1),wi(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function zA(e){var t;return!e||!e.state?vi(e,ln):(e.total_in=e.total_out=0,e.data_type=TO,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?zf:Da,e.adler=t.wrap===2?0:1,t.last_flush=ka,cn._tr_init(t),er)}function PA(e){var t=zA(e);return t===er&&YO(e.state),t}function ZO(e,t){return!e||!e.state||e.state.wrap!==2?ln:(e.state.gzhead=t,er)}function UA(e,t,n,r,i,a){if(!e)return ln;var o=1;if(t===CO&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>MO||n!==Rf||r<8||r>15||t<0||t>9||a<0||a>DO)return vi(e,ln);r===8&&(r=9);var s=new QO;return e.state=s,s.strm=e,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+fe-1)/fe),s.window=new kt.Buf8(s.w_size*2),s.head=new kt.Buf16(s.hash_size),s.prev=new kt.Buf16(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new kt.Buf8(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=(1+2)*s.lit_bufsize,s.level=t,s.strategy=a,s.method=n,PA(e)}function qO(e,t){return UA(e,t,Rf,NO,FO,IO)}function WO(e,t){var n,r,i,a;if(!e||!e.state||t>BA||t<0)return e?vi(e,ln):ln;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===Jc&&t!==bi)return vi(e,e.avail_out===0?mg:ln);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===zf)if(r.wrap===2)e.adler=0,ye(r,31),ye(r,139),ye(r,8),r.gzhead?(ye(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),ye(r,r.gzhead.time&255),ye(r,r.gzhead.time>>8&255),ye(r,r.gzhead.time>>16&255),ye(r,r.gzhead.time>>24&255),ye(r,r.level===9?2:r.strategy>=Of||r.level<2?4:0),ye(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(ye(r,r.gzhead.extra.length&255),ye(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=mi(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=yg):(ye(r,0),ye(r,0),ye(r,0),ye(r,0),ye(r,0),ye(r,r.level===9?2:r.strategy>=Of||r.level<2?4:0),ye(r,jO),r.status=Da);else{var o=Rf+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=Of||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,o|=s<<6,r.strstart!==0&&(o|=UO),o+=31-o%31,r.status=Da,tl(r,o),r.strstart!==0&&(tl(r,e.adler>>>16),tl(r,e.adler&65535)),e.adler=1}if(r.status===yg)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(r.gzhead.extra.length&65535)&&!(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=mi(e.adler,r.pending_buf,r.pending-i,i)),xi(e),i=r.pending,r.pending===r.pending_buf_size));)ye(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=mi(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=Pf)}else r.status=Pf;if(r.status===Pf)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=mi(e.adler,r.pending_buf,r.pending-i,i)),xi(e),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.name.length?a=r.gzhead.name.charCodeAt(r.gzindex++)&255:a=0,ye(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=mi(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.gzindex=0,r.status=Uf)}else r.status=Uf;if(r.status===Uf)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=mi(e.adler,r.pending_buf,r.pending-i,i)),xi(e),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.comment.length?a=r.gzhead.comment.charCodeAt(r.gzindex++)&255:a=0,ye(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=mi(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.status=jf)}else r.status=jf;if(r.status===jf&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&xi(e),r.pending+2<=r.pending_buf_size&&(ye(r,e.adler&255),ye(r,e.adler>>8&255),e.adler=0,r.status=Da)):r.status=Da),r.pending!==0){if(xi(e),e.avail_out===0)return r.last_flush=-1,er}else if(e.avail_in===0&&OA(t)<=OA(n)&&t!==bi)return vi(e,mg);if(r.status===Jc&&e.avail_in!==0)return vi(e,mg);if(e.avail_in!==0||r.lookahead!==0||t!==ka&&r.status!==Jc){var l=r.strategy===Of?VO(r,t):r.strategy===kO?$O(r,t):Yo[r.level].func(r,t);if((l===Ia||l===$o)&&(r.status=Jc),l===at||l===Ia)return e.avail_out===0&&(r.last_flush=-1),er;if(l===el&&(t===AO?cn._tr_align(r):t!==BA&&(cn._tr_stored_block(r,0,0,!1),t===EO&&(wi(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),xi(e),e.avail_out===0))return r.last_flush=-1,er}return t!==bi?er:r.wrap<=0?LA:(r.wrap===2?(ye(r,e.adler&255),ye(r,e.adler>>8&255),ye(r,e.adler>>16&255),ye(r,e.adler>>24&255),ye(r,e.total_in&255),ye(r,e.total_in>>8&255),ye(r,e.total_in>>16&255),ye(r,e.total_in>>24&255)):(tl(r,e.adler>>>16),tl(r,e.adler&65535)),xi(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?er:LA)}function XO(e){var t;return!e||!e.state?ln:(t=e.state.status,t!==zf&&t!==yg&&t!==Pf&&t!==Uf&&t!==jf&&t!==Da&&t!==Jc?vi(e,ln):(e.state=null,t===Da?vi(e,SO):er))}function KO(e,t){var n=t.length,r,i,a,o,s,l,c,u;if(!e||!e.state||(r=e.state,o=r.wrap,o===2||o===1&&r.status!==zf||r.lookahead))return ln;for(o===1&&(e.adler=FA(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(o===0&&(wi(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new kt.Buf8(r.w_size),kt.arraySet(u,t,n-r.w_size,r.w_size,0),t=u,n=r.w_size),s=e.avail_in,l=e.next_in,c=e.input,e.avail_in=n,e.next_in=0,e.input=t,Ta(r);r.lookahead>=fe;){i=r.strstart,a=r.lookahead-(fe-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+fe-1])&r.hash_mask,r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++;while(--a);r.strstart=i,r.lookahead=fe-1,Ta(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=fe-1,r.match_available=0,e.next_in=l,e.input=c,e.avail_in=s,r.wrap=o,er}Kn.deflateInit=qO,Kn.deflateInit2=UA,Kn.deflateReset=PA,Kn.deflateResetKeep=zA,Kn.deflateSetHeader=ZO,Kn.deflate=WO,Kn.deflateEnd=XO,Kn.deflateSetDictionary=KO,Kn.deflateInfo="pako deflate (from Nodeca project)";var Ma={},Hf=Dr,jA=!0,HA=!0;try{String.fromCharCode.apply(null,[0])}catch{jA=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{HA=!1}for(var nl=new Hf.Buf8(256),Ai=0;Ai<256;Ai++)nl[Ai]=Ai>=252?6:Ai>=248?5:Ai>=240?4:Ai>=224?3:Ai>=192?2:1;nl[254]=nl[254]=1,Ma.string2buf=function(e){var t,n,r,i,a,o=e.length,s=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Hf.Buf8(s),a=0,i=0;a<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t};function GA(e,t){if(t<65534&&(e.subarray&&HA||!e.subarray&&jA))return String.fromCharCode.apply(null,Hf.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}Ma.buf2binstring=function(e){return GA(e,e.length)},Ma.binstring2buf=function(e){for(var t=new Hf.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},Ma.buf2string=function(e,t){var n,r,i,a,o=t||e.length,s=new Array(o*2);for(r=0,n=0;n<o;){if(i=e[n++],i<128){s[r++]=i;continue}if(a=nl[i],a>4){s[r++]=65533,n+=a-1;continue}for(i&=a===2?31:a===3?15:7;a>1&&n<o;)i=i<<6|e[n++]&63,a--;if(a>1){s[r++]=65533;continue}i<65536?s[r++]=i:(i-=65536,s[r++]=55296|i>>10&1023,s[r++]=56320|i&1023)}return GA(s,r)},Ma.utf8border=function(e,t){var n;for(t=t||e.length,t>e.length&&(t=e.length),n=t-1;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+nl[e[n]]>t?n:t};function JO(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var $A=JO,rl=Kn,il=Dr,wg=Ma,xg=gg,eR=$A,VA=Object.prototype.toString,tR=0,Ag=4,Qo=0,YA=1,QA=2,nR=-1,rR=0,iR=8;function Na(e){if(!(this instanceof Na))return new Na(e);this.options=il.assign({level:nR,method:iR,chunkSize:16384,windowBits:15,memLevel:8,strategy:rR,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new eR,this.strm.avail_out=0;var n=rl.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Qo)throw new Error(xg[n]);if(t.header&&rl.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=wg.string2buf(t.dictionary):VA.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=rl.deflateSetDictionary(this.strm,r),n!==Qo)throw new Error(xg[n]);this._dict_set=!0}}Na.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i,a;if(this.ended)return!1;a=t===~~t?t:t===!0?Ag:tR,typeof e=="string"?n.input=wg.string2buf(e):VA.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new il.Buf8(r),n.next_out=0,n.avail_out=r),i=rl.deflate(n,a),i!==YA&&i!==Qo)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(a===Ag||a===QA))&&(this.options.to==="string"?this.onData(wg.buf2binstring(il.shrinkBuf(n.output,n.next_out))):this.onData(il.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==YA);return a===Ag?(i=rl.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===Qo):(a===QA&&(this.onEnd(Qo),n.avail_out=0),!0)},Na.prototype.onData=function(e){this.chunks.push(e)},Na.prototype.onEnd=function(e){e===Qo&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=il.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Eg(e,t){var n=new Na(t);if(n.push(e,!0),n.err)throw n.msg||xg[n.err];return n.result}function aR(e,t){return t=t||{},t.raw=!0,Eg(e,t)}function oR(e,t){return t=t||{},t.gzip=!0,Eg(e,t)}Yc.Deflate=Na,Yc.deflate=Eg,Yc.deflateRaw=aR,Yc.gzip=oR;var al={},Fn={},Gf=30,sR=12,cR=function(t,n){var r,i,a,o,s,l,c,u,f,h,d,p,g,y,v,S,k,C,E,w,A,T,D,M,F;r=t.state,i=t.next_in,M=t.input,a=i+(t.avail_in-5),o=t.next_out,F=t.output,s=o-(n-t.avail_out),l=o+(t.avail_out-257),c=r.dmax,u=r.wsize,f=r.whave,h=r.wnext,d=r.window,p=r.hold,g=r.bits,y=r.lencode,v=r.distcode,S=(1<<r.lenbits)-1,k=(1<<r.distbits)-1;e:do{g<15&&(p+=M[i++]<<g,g+=8,p+=M[i++]<<g,g+=8),C=y[p&S];t:for(;;){if(E=C>>>24,p>>>=E,g-=E,E=C>>>16&255,E===0)F[o++]=C&65535;else if(E&16){w=C&65535,E&=15,E&&(g<E&&(p+=M[i++]<<g,g+=8),w+=p&(1<<E)-1,p>>>=E,g-=E),g<15&&(p+=M[i++]<<g,g+=8,p+=M[i++]<<g,g+=8),C=v[p&k];n:for(;;){if(E=C>>>24,p>>>=E,g-=E,E=C>>>16&255,E&16){if(A=C&65535,E&=15,g<E&&(p+=M[i++]<<g,g+=8,g<E&&(p+=M[i++]<<g,g+=8)),A+=p&(1<<E)-1,A>c){t.msg="invalid distance too far back",r.mode=Gf;break e}if(p>>>=E,g-=E,E=o-s,A>E){if(E=A-E,E>f&&r.sane){t.msg="invalid distance too far back",r.mode=Gf;break e}if(T=0,D=d,h===0){if(T+=u-E,E<w){w-=E;do F[o++]=d[T++];while(--E);T=o-A,D=F}}else if(h<E){if(T+=u+h-E,E-=h,E<w){w-=E;do F[o++]=d[T++];while(--E);if(T=0,h<w){E=h,w-=E;do F[o++]=d[T++];while(--E);T=o-A,D=F}}}else if(T+=h-E,E<w){w-=E;do F[o++]=d[T++];while(--E);T=o-A,D=F}for(;w>2;)F[o++]=D[T++],F[o++]=D[T++],F[o++]=D[T++],w-=3;w&&(F[o++]=D[T++],w>1&&(F[o++]=D[T++]))}else{T=o-A;do F[o++]=F[T++],F[o++]=F[T++],F[o++]=F[T++],w-=3;while(w>2);w&&(F[o++]=F[T++],w>1&&(F[o++]=F[T++]))}}else if(E&64){t.msg="invalid distance code",r.mode=Gf;break e}else{C=v[(C&65535)+(p&(1<<E)-1)];continue n}break}}else if(E&64)if(E&32){r.mode=sR;break e}else{t.msg="invalid literal/length code",r.mode=Gf;break e}else{C=y[(C&65535)+(p&(1<<E)-1)];continue t}break}}while(i<a&&o<l);w=g>>3,i-=w,g-=w<<3,p&=(1<<g)-1,t.next_in=i,t.next_out=o,t.avail_in=i<a?5+(a-i):5-(i-a),t.avail_out=o<l?257+(l-o):257-(o-l),r.hold=p,r.bits=g},ZA=Dr,Zo=15,qA=852,WA=592,XA=0,Sg=1,KA=2,lR=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],uR=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],fR=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],hR=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64],dR=function(t,n,r,i,a,o,s,l){var c=l.bits,u=0,f=0,h=0,d=0,p=0,g=0,y=0,v=0,S=0,k=0,C,E,w,A,T,D=null,M=0,F,U=new ZA.Buf16(Zo+1),q=new ZA.Buf16(Zo+1),V=null,pe=0,Se,tt,ie;for(u=0;u<=Zo;u++)U[u]=0;for(f=0;f<i;f++)U[n[r+f]]++;for(p=c,d=Zo;d>=1&&U[d]===0;d--);if(p>d&&(p=d),d===0)return a[o++]=1<<24|64<<16|0,a[o++]=1<<24|64<<16|0,l.bits=1,0;for(h=1;h<d&&U[h]===0;h++);for(p<h&&(p=h),v=1,u=1;u<=Zo;u++)if(v<<=1,v-=U[u],v<0)return-1;if(v>0&&(t===XA||d!==1))return-1;for(q[1]=0,u=1;u<Zo;u++)q[u+1]=q[u]+U[u];for(f=0;f<i;f++)n[r+f]!==0&&(s[q[n[r+f]]++]=f);if(t===XA?(D=V=s,F=19):t===Sg?(D=lR,M-=257,V=uR,pe-=257,F=256):(D=fR,V=hR,F=-1),k=0,f=0,u=h,T=o,g=p,y=0,w=-1,S=1<<p,A=S-1,t===Sg&&S>qA||t===KA&&S>WA)return 1;for(;;){Se=u-y,s[f]<F?(tt=0,ie=s[f]):s[f]>F?(tt=V[pe+s[f]],ie=D[M+s[f]]):(tt=32+64,ie=0),C=1<<u-y,E=1<<g,h=E;do E-=C,a[T+(k>>y)+E]=Se<<24|tt<<16|ie|0;while(E!==0);for(C=1<<u-1;k&C;)C>>=1;if(C!==0?(k&=C-1,k+=C):k=0,f++,--U[u]===0){if(u===d)break;u=n[r+s[f]]}if(u>p&&(k&A)!==w){for(y===0&&(y=p),T+=h,g=u-y,v=1<<g;g+y<d&&(v-=U[g+y],!(v<=0));)g++,v<<=1;if(S+=1<<g,t===Sg&&S>qA||t===KA&&S>WA)return 1;w=k&A,a[w]=p<<24|g<<16|T-o|0}}return k!==0&&(a[T+k]=u-y<<24|64<<16|0),l.bits=p,0},Yt=Dr,Cg=MA,nr=NA,pR=cR,ol=dR,gR=0,JA=1,e3=2,t3=4,mR=5,$f=6,Fa=0,bR=1,yR=2,un=-2,n3=-3,r3=-4,vR=-5,i3=8,a3=1,o3=2,s3=3,c3=4,l3=5,u3=6,f3=7,h3=8,d3=9,p3=10,Vf=11,Tr=12,_g=13,g3=14,kg=15,m3=16,b3=17,y3=18,v3=19,Yf=20,Qf=21,w3=22,x3=23,A3=24,E3=25,S3=26,Dg=27,C3=28,_3=29,je=30,k3=31,wR=32,xR=852,AR=592,ER=15,SR=ER;function D3(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function CR(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Yt.Buf16(320),this.work=new Yt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function I3(e){var t;return!e||!e.state?un:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=a3,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Yt.Buf32(xR),t.distcode=t.distdyn=new Yt.Buf32(AR),t.sane=1,t.back=-1,Fa)}function T3(e){var t;return!e||!e.state?un:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,I3(e))}function M3(e,t){var n,r;return!e||!e.state||(r=e.state,t<0?(n=0,t=-t):(n=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?un:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,T3(e))}function N3(e,t){var n,r;return e?(r=new CR,e.state=r,r.window=null,n=M3(e,t),n!==Fa&&(e.state=null),n):un}function _R(e){return N3(e,SR)}var F3=!0,Ig,Tg;function kR(e){if(F3){var t;for(Ig=new Yt.Buf32(512),Tg=new Yt.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(ol(JA,e.lens,0,288,Ig,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;ol(e3,e.lens,0,32,Tg,0,e.work,{bits:5}),F3=!1}e.lencode=Ig,e.lenbits=9,e.distcode=Tg,e.distbits=5}function B3(e,t,n,r){var i,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Yt.Buf8(a.wsize)),r>=a.wsize?(Yt.arraySet(a.window,t,n-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),Yt.arraySet(a.window,t,n-r,i,a.wnext),r-=i,r?(Yt.arraySet(a.window,t,n-r,r,0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0}function DR(e,t){var n,r,i,a,o,s,l,c,u,f,h,d,p,g,y=0,v,S,k,C,E,w,A,T,D=new Yt.Buf8(4),M,F,U=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return un;n=e.state,n.mode===Tr&&(n.mode=_g),o=e.next_out,i=e.output,l=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,f=s,h=l,T=Fa;e:for(;;)switch(n.mode){case a3:if(n.wrap===0){n.mode=_g;break}for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(n.wrap&2&&c===35615){n.check=0,D[0]=c&255,D[1]=c>>>8&255,n.check=nr(n.check,D,2,0),c=0,u=0,n.mode=o3;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((c&255)<<8)+(c>>8))%31){e.msg="incorrect header check",n.mode=je;break}if((c&15)!==i3){e.msg="unknown compression method",n.mode=je;break}if(c>>>=4,u-=4,A=(c&15)+8,n.wbits===0)n.wbits=A;else if(A>n.wbits){e.msg="invalid window size",n.mode=je;break}n.dmax=1<<A,e.adler=n.check=1,n.mode=c&512?p3:Tr,c=0,u=0;break;case o3:for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(n.flags=c,(n.flags&255)!==i3){e.msg="unknown compression method",n.mode=je;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=je;break}n.head&&(n.head.text=c>>8&1),n.flags&512&&(D[0]=c&255,D[1]=c>>>8&255,n.check=nr(n.check,D,2,0)),c=0,u=0,n.mode=s3;case s3:for(;u<32;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.head&&(n.head.time=c),n.flags&512&&(D[0]=c&255,D[1]=c>>>8&255,D[2]=c>>>16&255,D[3]=c>>>24&255,n.check=nr(n.check,D,4,0)),c=0,u=0,n.mode=c3;case c3:for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.head&&(n.head.xflags=c&255,n.head.os=c>>8),n.flags&512&&(D[0]=c&255,D[1]=c>>>8&255,n.check=nr(n.check,D,2,0)),c=0,u=0,n.mode=l3;case l3:if(n.flags&1024){for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.length=c,n.head&&(n.head.extra_len=c),n.flags&512&&(D[0]=c&255,D[1]=c>>>8&255,n.check=nr(n.check,D,2,0)),c=0,u=0}else n.head&&(n.head.extra=null);n.mode=u3;case u3:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(A=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Yt.arraySet(n.head.extra,r,a,d,A)),n.flags&512&&(n.check=nr(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=f3;case f3:if(n.flags&2048){if(s===0)break e;d=0;do A=r[a+d++],n.head&&A&&n.length<65536&&(n.head.name+=String.fromCharCode(A));while(A&&d<s);if(n.flags&512&&(n.check=nr(n.check,r,d,a)),s-=d,a+=d,A)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=h3;case h3:if(n.flags&4096){if(s===0)break e;d=0;do A=r[a+d++],n.head&&A&&n.length<65536&&(n.head.comment+=String.fromCharCode(A));while(A&&d<s);if(n.flags&512&&(n.check=nr(n.check,r,d,a)),s-=d,a+=d,A)break e}else n.head&&(n.head.comment=null);n.mode=d3;case d3:if(n.flags&512){for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(c!==(n.check&65535)){e.msg="header crc mismatch",n.mode=je;break}c=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=Tr;break;case p3:for(;u<32;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}e.adler=n.check=D3(c),c=0,u=0,n.mode=Vf;case Vf:if(n.havedict===0)return e.next_out=o,e.avail_out=l,e.next_in=a,e.avail_in=s,n.hold=c,n.bits=u,yR;e.adler=n.check=1,n.mode=Tr;case Tr:if(t===mR||t===$f)break e;case _g:if(n.last){c>>>=u&7,u-=u&7,n.mode=Dg;break}for(;u<3;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}switch(n.last=c&1,c>>>=1,u-=1,c&3){case 0:n.mode=g3;break;case 1:if(kR(n),n.mode=Yf,t===$f){c>>>=2,u-=2;break e}break;case 2:n.mode=b3;break;case 3:e.msg="invalid block type",n.mode=je}c>>>=2,u-=2;break;case g3:for(c>>>=u&7,u-=u&7;u<32;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if((c&65535)!==(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=je;break}if(n.length=c&65535,c=0,u=0,n.mode=kg,t===$f)break e;case kg:n.mode=m3;case m3:if(d=n.length,d){if(d>s&&(d=s),d>l&&(d=l),d===0)break e;Yt.arraySet(i,r,a,d,o),s-=d,a+=d,l-=d,o+=d,n.length-=d;break}n.mode=Tr;break;case b3:for(;u<14;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(n.nlen=(c&31)+257,c>>>=5,u-=5,n.ndist=(c&31)+1,c>>>=5,u-=5,n.ncode=(c&15)+4,c>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=je;break}n.have=0,n.mode=y3;case y3:for(;n.have<n.ncode;){for(;u<3;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.lens[U[n.have++]]=c&7,c>>>=3,u-=3}for(;n.have<19;)n.lens[U[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,M={bits:n.lenbits},T=ol(gR,n.lens,0,19,n.lencode,0,n.work,M),n.lenbits=M.bits,T){e.msg="invalid code lengths set",n.mode=je;break}n.have=0,n.mode=v3;case v3:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[c&(1<<n.lenbits)-1],v=y>>>24,S=y>>>16&255,k=y&65535,!(v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(k<16)c>>>=v,u-=v,n.lens[n.have++]=k;else{if(k===16){for(F=v+2;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(c>>>=v,u-=v,n.have===0){e.msg="invalid bit length repeat",n.mode=je;break}A=n.lens[n.have-1],d=3+(c&3),c>>>=2,u-=2}else if(k===17){for(F=v+3;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}c>>>=v,u-=v,A=0,d=3+(c&7),c>>>=3,u-=3}else{for(F=v+7;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}c>>>=v,u-=v,A=0,d=11+(c&127),c>>>=7,u-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=je;break}for(;d--;)n.lens[n.have++]=A}}if(n.mode===je)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=je;break}if(n.lenbits=9,M={bits:n.lenbits},T=ol(JA,n.lens,0,n.nlen,n.lencode,0,n.work,M),n.lenbits=M.bits,T){e.msg="invalid literal/lengths set",n.mode=je;break}if(n.distbits=6,n.distcode=n.distdyn,M={bits:n.distbits},T=ol(e3,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,M),n.distbits=M.bits,T){e.msg="invalid distances set",n.mode=je;break}if(n.mode=Yf,t===$f)break e;case Yf:n.mode=Qf;case Qf:if(s>=6&&l>=258){e.next_out=o,e.avail_out=l,e.next_in=a,e.avail_in=s,n.hold=c,n.bits=u,pR(e,h),o=e.next_out,i=e.output,l=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,n.mode===Tr&&(n.back=-1);break}for(n.back=0;y=n.lencode[c&(1<<n.lenbits)-1],v=y>>>24,S=y>>>16&255,k=y&65535,!(v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(S&&!(S&240)){for(C=v,E=S,w=k;y=n.lencode[w+((c&(1<<C+E)-1)>>C)],v=y>>>24,S=y>>>16&255,k=y&65535,!(C+v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}c>>>=C,u-=C,n.back+=C}if(c>>>=v,u-=v,n.back+=v,n.length=k,S===0){n.mode=S3;break}if(S&32){n.back=-1,n.mode=Tr;break}if(S&64){e.msg="invalid literal/length code",n.mode=je;break}n.extra=S&15,n.mode=w3;case w3:if(n.extra){for(F=n.extra;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.length+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=x3;case x3:for(;y=n.distcode[c&(1<<n.distbits)-1],v=y>>>24,S=y>>>16&255,k=y&65535,!(v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(!(S&240)){for(C=v,E=S,w=k;y=n.distcode[w+((c&(1<<C+E)-1)>>C)],v=y>>>24,S=y>>>16&255,k=y&65535,!(C+v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}c>>>=C,u-=C,n.back+=C}if(c>>>=v,u-=v,n.back+=v,S&64){e.msg="invalid distance code",n.mode=je;break}n.offset=k,n.extra=S&15,n.mode=A3;case A3:if(n.extra){for(F=n.extra;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.offset+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=je;break}n.mode=E3;case E3:if(l===0)break e;if(d=h-l,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=je;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),g=n.window}else g=i,p=o-n.offset,d=n.length;d>l&&(d=l),l-=d,n.length-=d;do i[o++]=g[p++];while(--d);n.length===0&&(n.mode=Qf);break;case S3:if(l===0)break e;i[o++]=n.length,l--,n.mode=Qf;break;case Dg:if(n.wrap){for(;u<32;){if(s===0)break e;s--,c|=r[a++]<<u,u+=8}if(h-=l,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?nr(n.check,i,h,o-h):Cg(n.check,i,h,o-h)),h=l,(n.flags?c:D3(c))!==n.check){e.msg="incorrect data check",n.mode=je;break}c=0,u=0}n.mode=C3;case C3:if(n.wrap&&n.flags){for(;u<32;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(c!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=je;break}c=0,u=0}n.mode=_3;case _3:T=bR;break e;case je:T=n3;break e;case k3:return r3;case wR:default:return un}return e.next_out=o,e.avail_out=l,e.next_in=a,e.avail_in=s,n.hold=c,n.bits=u,(n.wsize||h!==e.avail_out&&n.mode<je&&(n.mode<Dg||t!==t3))&&B3(e,e.output,e.next_out,h-e.avail_out),f-=e.avail_in,h-=e.avail_out,e.total_in+=f,e.total_out+=h,n.total+=h,n.wrap&&h&&(e.adler=n.check=n.flags?nr(n.check,i,h,e.next_out-h):Cg(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===Tr?128:0)+(n.mode===Yf||n.mode===kg?256:0),(f===0&&h===0||t===t3)&&T===Fa&&(T=vR),T}function IR(e){if(!e||!e.state)return un;var t=e.state;return t.window&&(t.window=null),e.state=null,Fa}function TR(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?un:(n.head=t,t.done=!1,Fa)}function MR(e,t){var n=t.length,r,i,a;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==Vf)?un:r.mode===Vf&&(i=1,i=Cg(i,t,n,0),i!==r.check)?n3:(a=B3(e,t,n,n),a?(r.mode=k3,r3):(r.havedict=1,Fa))}Fn.inflateReset=T3,Fn.inflateReset2=M3,Fn.inflateResetKeep=I3,Fn.inflateInit=_R,Fn.inflateInit2=N3,Fn.inflate=DR,Fn.inflateEnd=IR,Fn.inflateGetHeader=TR,Fn.inflateSetDictionary=MR,Fn.inflateInfo="pako inflate (from Nodeca project)";var L3={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};function NR(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var FR=NR,qo=Fn,sl=Dr,Zf=Ma,et=L3,Mg=gg,BR=$A,LR=FR,O3=Object.prototype.toString;function Ba(e){if(!(this instanceof Ba))return new Ba(e);this.options=sl.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new BR,this.strm.avail_out=0;var n=qo.inflateInit2(this.strm,t.windowBits);if(n!==et.Z_OK)throw new Error(Mg[n]);if(this.header=new LR,qo.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Zf.string2buf(t.dictionary):O3.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=qo.inflateSetDictionary(this.strm,t.dictionary),n!==et.Z_OK)))throw new Error(Mg[n])}Ba.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,a,o,s,l,c,u=!1;if(this.ended)return!1;o=t===~~t?t:t===!0?et.Z_FINISH:et.Z_NO_FLUSH,typeof e=="string"?n.input=Zf.binstring2buf(e):O3.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new sl.Buf8(r),n.next_out=0,n.avail_out=r),a=qo.inflate(n,et.Z_NO_FLUSH),a===et.Z_NEED_DICT&&i&&(a=qo.inflateSetDictionary(this.strm,i)),a===et.Z_BUF_ERROR&&u===!0&&(a=et.Z_OK,u=!1),a!==et.Z_STREAM_END&&a!==et.Z_OK)return this.onEnd(a),this.ended=!0,!1;n.next_out&&(n.avail_out===0||a===et.Z_STREAM_END||n.avail_in===0&&(o===et.Z_FINISH||o===et.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=Zf.utf8border(n.output,n.next_out),l=n.next_out-s,c=Zf.buf2string(n.output,s),n.next_out=l,n.avail_out=r-l,l&&sl.arraySet(n.output,n.output,s,l,0),this.onData(c)):this.onData(sl.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(u=!0)}while((n.avail_in>0||n.avail_out===0)&&a!==et.Z_STREAM_END);return a===et.Z_STREAM_END&&(o=et.Z_FINISH),o===et.Z_FINISH?(a=qo.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===et.Z_OK):(o===et.Z_SYNC_FLUSH&&(this.onEnd(et.Z_OK),n.avail_out=0),!0)},Ba.prototype.onData=function(e){this.chunks.push(e)},Ba.prototype.onEnd=function(e){e===et.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=sl.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Ng(e,t){var n=new Ba(t);if(n.push(e,!0),n.err)throw n.msg||Mg[n.err];return n.result}function OR(e,t){return t=t||{},t.raw=!0,Ng(e,t)}al.Inflate=Ba,al.inflate=Ng,al.inflateRaw=OR,al.ungzip=Ng;var RR=Dr.assign,zR=Yc,PR=al,UR=L3,R3={};RR(R3,zR,PR,UR);var qf=R3;async function Fg(e){try{let t,n=0,r=0;const i=[];let a=0,o;do{const l=e.subarray(n);if(o=new qf.Inflate,{strm:t}=o,o.push(l,qf.Z_SYNC_FLUSH),o.err)throw new Error(o.msg);n+=t.next_in,i[r]=o.result,a+=i[r].length,r+=1}while(t.avail_in);const s=new Uint8Array(a);for(let l=0,c=0;l<i.length;l++)s.set(i[l],c),c+=i[l].length;return Buffer.from(s)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function jR(e,t){try{let n;const{minv:r,maxv:i}=t;let a=r.blockPosition,o=r.dataPosition;const s=[],l=[],c=[];let u=0,f=0;do{const p=e.subarray(a-r.blockPosition),g=new qf.Inflate;if({strm:n}=g,g.push(p,qf.Z_SYNC_FLUSH),g.err)throw new Error(g.msg);const y=g.result;s.push(y);let v=y.length;l.push(a),c.push(o),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),v=s[0].length);const S=a;if(a+=n.next_in,o+=v,S>=i.blockPosition){s[f]=s[f].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),l.push(a),c.push(o),u+=s[f].length;break}u+=s[f].length,f++}while(n.avail_in);const h=new Uint8Array(u);for(let p=0,g=0;p<s.length;p++)h.set(s[p],g),g+=s[p].length;return{buffer:Buffer.from(h),cpositions:l,dpositions:c}}catch(n){throw`${n}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):n}}/**
1365
+ * @license
1366
+ * Copyright 2009 The Closure Library Authors
1367
+ * Copyright 2020 Daniel Wirtz / The long.js Authors.
1368
+ *
1369
+ * Licensed under the Apache License, Version 2.0 (the "License");
1370
+ * you may not use this file except in compliance with the License.
1371
+ * You may obtain a copy of the License at
1372
+ *
1373
+ * http://www.apache.org/licenses/LICENSE-2.0
1374
+ *
1375
+ * Unless required by applicable law or agreed to in writing, software
1376
+ * distributed under the License is distributed on an "AS IS" BASIS,
1377
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1378
+ * See the License for the specific language governing permissions and
1379
+ * limitations under the License.
1380
+ *
1381
+ * SPDX-License-Identifier: Apache-2.0
1382
+ */var fn=null;try{fn=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Le(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}Le.prototype.__isLong__,Object.defineProperty(Le.prototype,"__isLong__",{value:!0});function Et(e){return(e&&e.__isLong__)===!0}function z3(e){var t=Math.clz32(e&-e);return e?31-t:t}Le.isLong=Et;var P3={},U3={};function La(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=U3[e],r)?r:(n=ve(e,0,!0),i&&(U3[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=P3[e],r)?r:(n=ve(e,e<0?-1:0,!1),i&&(P3[e]=n),n))}Le.fromInt=La;function hn(e,t){if(isNaN(e))return t?Mr:Ln;if(t){if(e<0)return Mr;if(e>=H3)return Q3}else{if(e<=-G3)return zt;if(e+1>=G3)return Y3}return e<0?hn(-e,t).neg():ve(e%Wo|0,e/Wo|0,t)}Le.fromNumber=hn;function ve(e,t,n){return new Le(e,t,n)}Le.fromBits=ve;var Wf=Math.pow;function Bg(e,t,n){if(e.length===0)throw Error("empty string");if(typeof t=="number"?(n=t,t=!1):t=!!t,e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return t?Mr:Ln;if(n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=e.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return Bg(e.substring(1),t,n).neg();for(var i=hn(Wf(n,8)),a=Ln,o=0;o<e.length;o+=8){var s=Math.min(8,e.length-o),l=parseInt(e.substring(o,o+s),n);if(s<8){var c=hn(Wf(n,s));a=a.mul(c).add(hn(l))}else a=a.mul(i),a=a.add(hn(l))}return a.unsigned=t,a}Le.fromString=Bg;function Bn(e,t){return typeof e=="number"?hn(e,t):typeof e=="string"?Bg(e,t):ve(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Le.fromValue=Bn;var j3=1<<16,HR=1<<24,Wo=j3*j3,H3=Wo*Wo,G3=H3/2,$3=La(HR),Ln=La(0);Le.ZERO=Ln;var Mr=La(0,!0);Le.UZERO=Mr;var Xo=La(1);Le.ONE=Xo;var V3=La(1,!0);Le.UONE=V3;var Lg=La(-1);Le.NEG_ONE=Lg;var Y3=ve(-1,2147483647,!1);Le.MAX_VALUE=Y3;var Q3=ve(-1,-1,!0);Le.MAX_UNSIGNED_VALUE=Q3;var zt=ve(0,-2147483648,!1);Le.MIN_VALUE=zt;var H=Le.prototype;H.toInt=function(){return this.unsigned?this.low>>>0:this.low},H.toNumber=function(){return this.unsigned?(this.high>>>0)*Wo+(this.low>>>0):this.high*Wo+(this.low>>>0)},H.toString=function(t){if(t=t||10,t<2||36<t)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(zt)){var n=hn(t),r=this.div(n),i=r.mul(n).sub(this);return r.toString(t)+i.toInt().toString(t)}else return"-"+this.neg().toString(t);for(var a=hn(Wf(t,6),this.unsigned),o=this,s="";;){var l=o.div(a),c=o.sub(l.mul(a)).toInt()>>>0,u=c.toString(t);if(o=l,o.isZero())return u+s;for(;u.length<6;)u="0"+u;s=""+u+s}},H.getHighBits=function(){return this.high},H.getHighBitsUnsigned=function(){return this.high>>>0},H.getLowBits=function(){return this.low},H.getLowBitsUnsigned=function(){return this.low>>>0},H.getNumBitsAbs=function(){if(this.isNegative())return this.eq(zt)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,n=31;n>0&&!(t&1<<n);n--);return this.high!=0?n+33:n+1},H.isZero=function(){return this.high===0&&this.low===0},H.eqz=H.isZero,H.isNegative=function(){return!this.unsigned&&this.high<0},H.isPositive=function(){return this.unsigned||this.high>=0},H.isOdd=function(){return(this.low&1)===1},H.isEven=function(){return(this.low&1)===0},H.equals=function(t){return Et(t)||(t=Bn(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},H.eq=H.equals,H.notEquals=function(t){return!this.eq(t)},H.neq=H.notEquals,H.ne=H.notEquals,H.lessThan=function(t){return this.comp(t)<0},H.lt=H.lessThan,H.lessThanOrEqual=function(t){return this.comp(t)<=0},H.lte=H.lessThanOrEqual,H.le=H.lessThanOrEqual,H.greaterThan=function(t){return this.comp(t)>0},H.gt=H.greaterThan,H.greaterThanOrEqual=function(t){return this.comp(t)>=0},H.gte=H.greaterThanOrEqual,H.ge=H.greaterThanOrEqual,H.compare=function(t){if(Et(t)||(t=Bn(t)),this.eq(t))return 0;var n=this.isNegative(),r=t.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1},H.comp=H.compare,H.negate=function(){return!this.unsigned&&this.eq(zt)?zt:this.not().add(Xo)},H.neg=H.negate,H.add=function(t){Et(t)||(t=Bn(t));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,a=this.low&65535,o=t.high>>>16,s=t.high&65535,l=t.low>>>16,c=t.low&65535,u=0,f=0,h=0,d=0;return d+=a+c,h+=d>>>16,d&=65535,h+=i+l,f+=h>>>16,h&=65535,f+=r+s,u+=f>>>16,f&=65535,u+=n+o,u&=65535,ve(h<<16|d,u<<16|f,this.unsigned)},H.subtract=function(t){return Et(t)||(t=Bn(t)),this.add(t.neg())},H.sub=H.subtract,H.multiply=function(t){if(this.isZero())return this;if(Et(t)||(t=Bn(t)),fn){var n=fn.mul(this.low,this.high,t.low,t.high);return ve(n,fn.get_high(),this.unsigned)}if(t.isZero())return this.unsigned?Mr:Ln;if(this.eq(zt))return t.isOdd()?zt:Ln;if(t.eq(zt))return this.isOdd()?zt:Ln;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt($3)&&t.lt($3))return hn(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=t.high>>>16,l=t.high&65535,c=t.low>>>16,u=t.low&65535,f=0,h=0,d=0,p=0;return p+=o*u,d+=p>>>16,p&=65535,d+=a*u,h+=d>>>16,d&=65535,d+=o*c,h+=d>>>16,d&=65535,h+=i*u,f+=h>>>16,h&=65535,h+=a*c,f+=h>>>16,h&=65535,h+=o*l,f+=h>>>16,h&=65535,f+=r*u+i*c+a*l+o*s,f&=65535,ve(d<<16|p,f<<16|h,this.unsigned)},H.mul=H.multiply,H.divide=function(t){if(Et(t)||(t=Bn(t)),t.isZero())throw Error("division by zero");if(fn){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?fn.div_u:fn.div_s)(this.low,this.high,t.low,t.high);return ve(n,fn.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Mr:Ln;var r,i,a;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return Mr;if(t.gt(this.shru(1)))return V3;a=Mr}else{if(this.eq(zt)){if(t.eq(Xo)||t.eq(Lg))return zt;if(t.eq(zt))return Xo;var o=this.shr(1);return r=o.div(t).shl(1),r.eq(Ln)?t.isNegative()?Xo:Lg:(i=this.sub(t.mul(r)),a=r.add(i.div(t)),a)}else if(t.eq(zt))return this.unsigned?Mr:Ln;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();a=Ln}for(i=this;i.gte(t);){r=Math.max(1,Math.floor(i.toNumber()/t.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),l=s<=48?1:Wf(2,s-48),c=hn(r),u=c.mul(t);u.isNegative()||u.gt(i);)r-=l,c=hn(r,this.unsigned),u=c.mul(t);c.isZero()&&(c=Xo),a=a.add(c),i=i.sub(u)}return a},H.div=H.divide,H.modulo=function(t){if(Et(t)||(t=Bn(t)),fn){var n=(this.unsigned?fn.rem_u:fn.rem_s)(this.low,this.high,t.low,t.high);return ve(n,fn.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},H.mod=H.modulo,H.rem=H.modulo,H.not=function(){return ve(~this.low,~this.high,this.unsigned)},H.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32},H.clz=H.countLeadingZeros,H.countTrailingZeros=function(){return this.low?z3(this.low):z3(this.high)+32},H.ctz=H.countTrailingZeros,H.and=function(t){return Et(t)||(t=Bn(t)),ve(this.low&t.low,this.high&t.high,this.unsigned)},H.or=function(t){return Et(t)||(t=Bn(t)),ve(this.low|t.low,this.high|t.high,this.unsigned)},H.xor=function(t){return Et(t)||(t=Bn(t)),ve(this.low^t.low,this.high^t.high,this.unsigned)},H.shiftLeft=function(t){return Et(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?ve(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):ve(0,this.low<<t-32,this.unsigned)},H.shl=H.shiftLeft,H.shiftRight=function(t){return Et(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?ve(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):ve(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},H.shr=H.shiftRight,H.shiftRightUnsigned=function(t){return Et(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?ve(this.low>>>t|this.high<<32-t,this.high>>>t,this.unsigned):t===32?ve(this.high,0,this.unsigned):ve(this.high>>>t-32,0,this.unsigned)},H.shru=H.shiftRightUnsigned,H.shr_u=H.shiftRightUnsigned,H.rotateLeft=function(t){var n;return Et(t)&&(t=t.toInt()),(t&=63)===0?this:t===32?ve(this.high,this.low,this.unsigned):t<32?(n=32-t,ve(this.low<<t|this.high>>>n,this.high<<t|this.low>>>n,this.unsigned)):(t-=32,n=32-t,ve(this.high<<t|this.low>>>n,this.low<<t|this.high>>>n,this.unsigned))},H.rotl=H.rotateLeft,H.rotateRight=function(t){var n;return Et(t)&&(t=t.toInt()),(t&=63)===0?this:t===32?ve(this.high,this.low,this.unsigned):t<32?(n=32-t,ve(this.high<<n|this.low>>>t,this.low<<n|this.high>>>t,this.unsigned)):(t-=32,n=32-t,ve(this.low<<n|this.high>>>t,this.high<<n|this.low>>>t,this.unsigned))},H.rotr=H.rotateRight,H.toSigned=function(){return this.unsigned?ve(this.low,this.high,!1):this},H.toUnsigned=function(){return this.unsigned?this:ve(this.low,this.high,!0)},H.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},H.toBytesLE=function(){var t=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]},H.toBytesBE=function(){var t=this.high,n=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Le.fromBytes=function(t,n,r){return r?Le.fromBytesLE(t,n):Le.fromBytesBE(t,n)},Le.fromBytesLE=function(t,n){return new Le(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)},Le.fromBytesBE=function(t,n){return new Le(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)};function Z3(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function GR(e,t){const n=await e.readFile(t);if(!(n&&n.length))throw new Error("No data read from FASTA index (FAI) file");let r=0,i;const a=n.toString("utf8").split(/\r?\n/).filter(o=>/\S/.test(o)).map(o=>o.split(" ")).filter(o=>o[0]!=="").map(o=>((!i||i.name!==o[0])&&(i={name:o[0],id:r},r+=1),{id:i.id,name:o[0],length:+o[1],start:0,end:+o[1],offset:+o[2],lineLength:+o[3],lineBytes:+o[4]}));return{name:Object.fromEntries(a.map(o=>[o.name,o])),id:Object.fromEntries(a.map(o=>[o.id,o]))}}class $R{constructor({fasta:t,fai:n,path:r,faiPath:i,chunkSizeLimit:a=1e6}){if(t)this.fasta=t;else if(r)this.fasta=new gi(r);else throw new Error("Need to pass filehandle for fasta or path to localfile");if(n)this.fai=n;else if(i)this.fai=new gi(i);else if(r)this.fai=new gi(`${r}.fai`);else throw new Error("Need to pass filehandle for or path to localfile");this.chunkSizeLimit=a}async _getIndexes(t){return this.indexes||(this.indexes=GR(this.fai,t)),this.indexes}async getSequenceNames(t){return Object.keys((await this._getIndexes(t)).name)}async getSequenceSizes(t){const n={},r=await this._getIndexes(t),i=Object.values(r.id);for(let a=0;a<i.length;a+=1)n[i[a].name]=i[a].length;return n}async getSequenceSize(t,n){var r;return(r=(await this._getIndexes(n)).name[t])===null||r===void 0?void 0:r.length}async hasReferenceSequence(t,n){return!!(await this._getIndexes(n)).name[t]}async getResiduesById(t,n,r,i){const a=(await this._getIndexes(i)).id[t];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getResiduesByName(t,n,r,i){const a=(await this._getIndexes(i)).name[t];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getSequence(t,n,r,i){return this.getResiduesByName(t,n,r,i)}async _fetchFromIndexEntry(t,n=0,r,i){let a=r;if(n<0)throw new TypeError("regionStart cannot be less than 0");if((a===void 0||a>t.length)&&(a=t.length),n>=a)return"";const o=Z3(t,n),s=Z3(t,a)-o;if(s>this.chunkSizeLimit)throw new Error(`data size of ${s.toLocaleString()} bytes exceeded chunk size limit of ${this.chunkSizeLimit.toLocaleString()} bytes`);const l=Buffer.allocUnsafe(s);return await this.fasta.read(l,0,s,o,i),l.toString("utf8").replace(/\s+/g,"")}}function Xf(e){return class extends e{constructor(){super(...arguments);En(this,"lastQuantizedInterval",[0,0])}quantizeInterval(r,i){return[Math.max(Math.floor(r[0]/i-1)*i,0),Math.min(Math.ceil(r[1]/i+1)*i,this.genome.totalSize)]}checkAndUpdateLastInterval(r){return $0(this.lastQuantizedInterval,r)?!1:(this.lastQuantizedInterval=r,!0)}}}function Ko(e,t){return!t||/^(data:|([A-Za-z]+:)?\/\/)/.test(e)||e.startsWith("/")?e:(t.endsWith("/")||(t+="/"),t+e)}typeof window<"u"&&(window.Buffer=Vt.Buffer);class VR extends Xf(Po){constructor(t,n){const r={channel:"x",windowSize:7e3,...t};if(super(n,r.channel),this.params=r,!this.params.url)throw new Error("No URL provided for IndexedFastaSource");const i=a=>new kr(Ko(a,this.view.getBaseUrl()));this.fasta=new $R({fasta:i(this.params.url),fai:i(this.params.indexUrl??this.params.url+".fai")})}async onDomainChanged(t){const n=this.params.windowSize;if(t[1]-t[0]>n)return;const r=this.quantizeInterval(t,n);if(this.checkAndUpdateLastInterval(r)){const i=this.genome.continuousToDiscreteChromosomeIntervals(r),a=await Promise.all(i.map(o=>this.fasta.getSequence(o.chrom,o.startPos,o.endPos).then(s=>({chrom:o.chrom,start:o.startPos,sequence:s}))));this.publishData(a)}}}const Kf=BigInt(32);function YR(e,t,n){const r=+!!n,i=+!n;return BigInt(e.getInt32(t,n)*i+e.getInt32(t+4,n)*r)<<Kf|BigInt(e.getUint32(t,n)*r+e.getUint32(t+4,n)*i)}function QR(e,t,n){const r=e.getUint32(t,n),i=e.getUint32(t+4,n),a=+!!n,o=+!n;return BigInt(r*o+i*a)<<Kf|BigInt(r*a+i*o)}function ZR(e,t,n,r){const i=Number(n>>Kf),a=Number(n&BigInt(4294967295));r?(e.setInt32(t+4,i,r),e.setUint32(t,a,r)):(e.setInt32(t,i,r),e.setUint32(t+4,a,r))}function qR(e,t,n,r){const i=Number(n>>Kf),a=Number(n&BigInt(4294967295));r?(e.setUint32(t+4,i,r),e.setUint32(t,a,r)):(e.setUint32(t,i,r),e.setUint32(t+4,a,r))}"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(e,t){return YR(this,e,t)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(e,t){return QR(this,e,t)}),"setBigInt64"in DataView||(DataView.prototype.setBigInt64=function(e,t,n){ZR(this,e,t,n)}),"setBigUint64"in DataView||(DataView.prototype.setBigUint64=function(e,t,n){qR(this,e,t,n)});class WR{constructor(t,n){this.code="",this.scopes=[["vars"]],this.bitFields=[],this.tmpVariableCount=0,this.references=new Map,this.imports=[],this.reverseImports=new Map,this.useContextVariables=!1,this.importPath=t,this.useContextVariables=n}generateVariable(t){const n=[...this.scopes[this.scopes.length-1]];return t&&n.push(t),n.join(".")}generateOption(t){switch(typeof t){case"number":return t.toString();case"string":return this.generateVariable(t);case"function":return`${this.addImport(t)}.call(${this.generateVariable()}, vars)`}}generateError(t){this.pushCode(`throw new Error(${t});`)}generateTmpVariable(){return"$tmp"+this.tmpVariableCount++}pushCode(t){this.code+=t+`
1383
+ `}pushPath(t){t&&this.scopes[this.scopes.length-1].push(t)}popPath(t){t&&this.scopes[this.scopes.length-1].pop()}pushScope(t){this.scopes.push([t])}popScope(){this.scopes.pop()}addImport(t){if(!this.importPath)return`(${t})`;let n=this.reverseImports.get(t);return n||(n=this.imports.push(t)-1,this.reverseImports.set(t,n)),`${this.importPath}[${n}]`}addReference(t){this.references.has(t)||this.references.set(t,{resolved:!1,requested:!1})}markResolved(t){const n=this.references.get(t);n&&(n.resolved=!0)}markRequested(t){t.forEach(n=>{const r=this.references.get(n);r&&(r.requested=!0)})}getUnresolvedReferences(){return Array.from(this.references).filter(([t,n])=>!n.resolved&&!n.requested).map(([t,n])=>t)}}const On=new Map,Oa="___parser_",Rn={uint8:1,uint16le:2,uint16be:2,uint32le:4,uint32be:4,int8:1,int16le:2,int16be:2,int32le:4,int32be:4,int64be:8,int64le:8,uint64be:8,uint64le:8,floatle:4,floatbe:4,doublele:8,doublebe:8},Jf={uint8:"Uint8",uint16le:"Uint16",uint16be:"Uint16",uint32le:"Uint32",uint32be:"Uint32",int8:"Int8",int16le:"Int16",int16be:"Int16",int32le:"Int32",int32be:"Int32",int64be:"BigInt64",int64le:"BigInt64",uint64be:"BigUint64",uint64le:"BigUint64",floatle:"Float32",floatbe:"Float32",doublele:"Float64",doublebe:"Float64"},eh={uint8:!1,uint16le:!0,uint16be:!1,uint32le:!0,uint32be:!1,int8:!1,int16le:!0,int16be:!1,int32le:!0,int32be:!1,int64be:!1,int64le:!0,uint64be:!1,uint64le:!0,floatle:!0,floatbe:!1,doublele:!0,doublebe:!1};class ae{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new ae}primitiveGenerateN(t,n){const r=Jf[t],i=eh[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${Rn[t]};`)}primitiveN(t,n,r){return this.setNextParser(t,n,r)}useThisEndian(t){return t+this.endian.toLowerCase()}uint8(t,n={}){return this.primitiveN("uint8",t,n)}uint16(t,n={}){return this.primitiveN(this.useThisEndian("uint16"),t,n)}uint16le(t,n={}){return this.primitiveN("uint16le",t,n)}uint16be(t,n={}){return this.primitiveN("uint16be",t,n)}uint32(t,n={}){return this.primitiveN(this.useThisEndian("uint32"),t,n)}uint32le(t,n={}){return this.primitiveN("uint32le",t,n)}uint32be(t,n={}){return this.primitiveN("uint32be",t,n)}int8(t,n={}){return this.primitiveN("int8",t,n)}int16(t,n={}){return this.primitiveN(this.useThisEndian("int16"),t,n)}int16le(t,n={}){return this.primitiveN("int16le",t,n)}int16be(t,n={}){return this.primitiveN("int16be",t,n)}int32(t,n={}){return this.primitiveN(this.useThisEndian("int32"),t,n)}int32le(t,n={}){return this.primitiveN("int32le",t,n)}int32be(t,n={}){return this.primitiveN("int32be",t,n)}bigIntVersionCheck(){if(!DataView.prototype.getBigInt64)throw new Error("BigInt64 is unsupported on this runtime")}int64(t,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("int64"),t,n)}int64be(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64be",t,n)}int64le(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64le",t,n)}uint64(t,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("uint64"),t,n)}uint64be(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64be",t,n)}uint64le(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64le",t,n)}floatle(t,n={}){return this.primitiveN("floatle",t,n)}floatbe(t,n={}){return this.primitiveN("floatbe",t,n)}doublele(t,n={}){return this.primitiveN("doublele",t,n)}doublebe(t,n={}){return this.primitiveN("doublebe",t,n)}bitN(t,n,r){return r.length=t,this.setNextParser("bit",n,r)}bit1(t,n={}){return this.bitN(1,t,n)}bit2(t,n={}){return this.bitN(2,t,n)}bit3(t,n={}){return this.bitN(3,t,n)}bit4(t,n={}){return this.bitN(4,t,n)}bit5(t,n={}){return this.bitN(5,t,n)}bit6(t,n={}){return this.bitN(6,t,n)}bit7(t,n={}){return this.bitN(7,t,n)}bit8(t,n={}){return this.bitN(8,t,n)}bit9(t,n={}){return this.bitN(9,t,n)}bit10(t,n={}){return this.bitN(10,t,n)}bit11(t,n={}){return this.bitN(11,t,n)}bit12(t,n={}){return this.bitN(12,t,n)}bit13(t,n={}){return this.bitN(13,t,n)}bit14(t,n={}){return this.bitN(14,t,n)}bit15(t,n={}){return this.bitN(15,t,n)}bit16(t,n={}){return this.bitN(16,t,n)}bit17(t,n={}){return this.bitN(17,t,n)}bit18(t,n={}){return this.bitN(18,t,n)}bit19(t,n={}){return this.bitN(19,t,n)}bit20(t,n={}){return this.bitN(20,t,n)}bit21(t,n={}){return this.bitN(21,t,n)}bit22(t,n={}){return this.bitN(22,t,n)}bit23(t,n={}){return this.bitN(23,t,n)}bit24(t,n={}){return this.bitN(24,t,n)}bit25(t,n={}){return this.bitN(25,t,n)}bit26(t,n={}){return this.bitN(26,t,n)}bit27(t,n={}){return this.bitN(27,t,n)}bit28(t,n={}){return this.bitN(28,t,n)}bit29(t,n={}){return this.bitN(29,t,n)}bit30(t,n={}){return this.bitN(30,t,n)}bit31(t,n={}){return this.bitN(31,t,n)}bit32(t,n={}){return this.bitN(32,t,n)}namely(t){return On.set(t,this),this.alias=t,this}skip(t,n={}){return this.seek(t,n)}seek(t,n={}){if(n.assert)throw new Error("assert option on seek is not allowed.");return this.setNextParser("seek","",{length:t})}string(t,n){if(!n.zeroTerminated&&!n.length&&!n.greedy)throw new Error("One of length, zeroTerminated, or greedy must be defined for string.");if((n.zeroTerminated||n.length)&&n.greedy)throw new Error("greedy is mutually exclusive with length and zeroTerminated for string.");if(n.stripNull&&!(n.length||n.greedy))throw new Error("length or greedy must be defined if stripNull is enabled.");return n.encoding=n.encoding||"utf8",this.setNextParser("string",t,n)}buffer(t,n){if(!n.length&&!n.readUntil)throw new Error("length or readUntil must be defined for buffer.");return this.setNextParser("buffer",t,n)}wrapped(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n||!n.wrapper||!n.type)throw new Error("Both wrapper and type must be defined for wrapped.");if(!n.length&&!n.readUntil)throw new Error("length or readUntil must be defined for wrapped.");return this.setNextParser("wrapper",t,n)}array(t,n){if(!n.readUntil&&!n.length&&!n.lengthInBytes)throw new Error("One of readUntil, length and lengthInBytes must be defined for array.");if(!n.type)throw new Error("type is required for array.");if(typeof n.type=="string"&&!On.has(n.type)&&!(n.type in Rn))throw new Error(`Array element type "${n.type}" is unkown.`);return this.setNextParser("array",t,n)}choice(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n)throw new Error("tag and choices are are required for choice.");if(!n.tag)throw new Error("tag is requird for choice.");if(!n.choices)throw new Error("choices is required for choice.");for(const r in n.choices){const i=parseInt(r,10),a=n.choices[i];if(isNaN(i))throw new Error(`Choice key "${r}" is not a number.`);if(typeof a=="string"&&!On.has(a)&&!(a in Rn))throw new Error(`Choice type "${a}" is unkown.`)}return this.setNextParser("choice",t,n)}nest(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n||!n.type)throw new Error("type is required for nest.");if(!(n.type instanceof ae)&&!On.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof ae)&&!t)throw new Error("type must be a Parser object if the variable name is omitted.");return this.setNextParser("nest",t,n)}pointer(t,n){if(!n.offset)throw new Error("offset is required for pointer.");if(!n.type)throw new Error("type is required for pointer.");if(typeof n.type=="string"&&!(n.type in Rn)&&!On.has(n.type))throw new Error(`Pointer type "${n.type}" is unkown.`);return this.setNextParser("pointer",t,n)}saveOffset(t,n={}){return this.setNextParser("saveOffset",t,n)}endianness(t){switch(t.toLowerCase()){case"little":this.endian="le";break;case"big":this.endian="be";break;default:throw new Error('endianness must be one of "little" or "big"')}return this}endianess(t){return this.endianness(t)}useContextVars(t=!0){return this.useContextVariables=t,this}create(t){if(!(t instanceof Function))throw new Error("Constructor must be a Function object.");return this.constructorFn=t,this}getContext(t){const n=new WR(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${Oa+this.alias}(0).result;`)):this.addRawCode(n),n}getCode(){const t="imports";return this.getContext(t).code}addRawCode(t){t.pushCode("var offset = 0;"),t.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),t.pushCode("vars.$parent = null;"),t.pushCode("vars.$root = vars;"),this.generate(t),this.resolveReferences(t),t.pushCode("delete vars.$parent;"),t.pushCode("delete vars.$root;"),t.pushCode("return vars;")}addAliasedCode(t){return t.pushCode(`function ${Oa+this.alias}(offset, context) {`),t.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),t.pushCode("var ctx = Object.assign({$parent: null, $root: vars}, context || {});"),t.pushCode("vars = Object.assign(vars, ctx);"),this.generate(t),t.markResolved(this.alias),this.resolveReferences(t),t.pushCode("Object.keys(ctx).forEach(function (item) { delete vars[item]; });"),t.pushCode("return { offset: offset, result: vars };"),t.pushCode("}"),t}resolveReferences(t){const n=t.getUnresolvedReferences();t.markRequested(n),n.forEach(r=>{var i;(i=On.get(r))===null||i===void 0||i.addAliasedCode(t)})}compile(){const t="imports",n=this.getContext(t);this.compiled=new Function(t,"TextDecoder",`return function (buffer, constructorFn) { ${n.code} };`)(n.imports,TextDecoder)}sizeOf(){let t=NaN;if(Object.keys(Rn).indexOf(this.type)>=0)t=Rn[this.type];else if(this.type==="string"&&typeof this.options.length=="number")t=this.options.length;else if(this.type==="buffer"&&typeof this.options.length=="number")t=this.options.length;else if(this.type==="array"&&typeof this.options.length=="number"){let n=NaN;typeof this.options.type=="string"?n=Rn[this.options.type]:this.options.type instanceof ae&&(n=this.options.type.sizeOf()),t=this.options.length*n}else this.type==="seek"?t=this.options.length:this.type==="nest"?t=this.options.type.sizeOf():this.type||(t=0);return this.next&&(t+=this.next.sizeOf()),t}parse(t){return this.compiled||this.compile(),this.compiled(t,this.constructorFn)}setNextParser(t,n,r){const i=new ae;return i.type=t,i.varName=n,i.options=r,i.endian=this.endian,this.head?this.head.next=i:this.next=i,this.head=i,this}generate(t){if(this.type){switch(this.type){case"uint8":case"uint16le":case"uint16be":case"uint32le":case"uint32be":case"int8":case"int16le":case"int16be":case"int32le":case"int32be":case"int64be":case"int64le":case"uint64be":case"uint64le":case"floatle":case"floatbe":case"doublele":case"doublebe":this.primitiveGenerateN(this.type,t);break;case"bit":this.generateBit(t);break;case"string":this.generateString(t);break;case"buffer":this.generateBuffer(t);break;case"seek":this.generateSeek(t);break;case"nest":this.generateNest(t);break;case"array":this.generateArray(t);break;case"choice":this.generateChoice(t);break;case"pointer":this.generatePointer(t);break;case"saveOffset":this.generateSaveOffset(t);break;case"wrapper":this.generateWrapper(t);break}this.type!=="bit"&&this.generateAssert(t)}const n=t.generateVariable(this.varName);return this.options.formatter&&this.type!=="bit"&&this.generateFormatter(t,n,this.options.formatter),this.generateNext(t)}generateAssert(t){if(!this.options.assert)return;const n=t.generateVariable(this.varName);switch(typeof this.options.assert){case"function":{const r=t.addImport(this.options.assert);t.pushCode(`if (!${r}.call(vars, ${n})) {`)}break;case"number":t.pushCode(`if (${this.options.assert} !== ${n}) {`);break;case"string":t.pushCode(`if (${JSON.stringify(this.options.assert)} !== ${n}) {`);break;default:throw new Error("assert option must be a string, number or a function.")}t.generateError(`"Assertion error: ${n} is " + ${JSON.stringify(this.options.assert.toString())}`),t.pushCode("}")}generateNext(t){return this.next&&(t=this.next.generate(t)),t}generateBit(t){const n=JSON.parse(JSON.stringify(this));if(n.options=this.options,n.generateAssert=this.generateAssert.bind(this),n.generateFormatter=this.generateFormatter.bind(this),n.varName=t.generateVariable(n.varName),t.bitFields.push(n),!this.next||this.next&&["bit","nest"].indexOf(this.next.type)<0){const r=t.generateTmpVariable();t.pushCode(`var ${r} = 0;`);const i=(u=0)=>{let f=0;for(let h=u;h<t.bitFields.length;h++){const d=t.bitFields[h].options.length;if(f+d>32)break;f+=d}return f},a=u=>(u<=8?(t.pushCode(`${r} = dataView.getUint8(offset);`),u=8):u<=16?(t.pushCode(`${r} = dataView.getUint16(offset);`),u=16):u<=24?(t.pushCode(`${r} = (dataView.getUint16(offset) << 8) | dataView.getUint8(offset + 2);`),u=24):(t.pushCode(`${r} = dataView.getUint32(offset);`),u=32),t.pushCode(`offset += ${u/8};`),u);let o=0;const s=this.endian==="be";let l=0,c=0;t.bitFields.forEach((u,f)=>{let h=u.options.length;if(h>c){if(c){const g=-1>>>32-c;t.pushCode(`${u.varName} = (${r} & 0x${g.toString(16)}) << ${h-c};`),h-=c}o=0,c=l=a(i(f)-c)}const d=s?l-o-h:o,p=-1>>>32-h;t.pushCode(`${u.varName} ${h<u.options.length?"|=":"="} ${r} >> ${d} & 0x${p.toString(16)};`),u.options.length===32&&t.pushCode(`${u.varName} >>>= 0`),u.options.assert&&u.generateAssert(t),u.options.formatter&&u.generateFormatter(t,u.varName,u.options.formatter),o+=h,c-=h}),t.bitFields=[]}}generateSeek(t){const n=t.generateOption(this.options.length);t.pushCode(`offset += ${n};`)}generateString(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable(),i=this.options.encoding,a=i.toLowerCase()==="hex",o='b => b.toString(16).padStart(2, "0")';if(this.options.length&&this.options.zeroTerminated){const s=this.options.length;t.pushCode(`var ${r} = offset;`),t.pushCode(`while(dataView.getUint8(offset++) !== 0 && offset - ${r} < ${s});`);const l=`offset - ${r} < ${s} ? offset - 1 : offset`;t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, ${l}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${l}));`)}else if(this.options.length){const s=t.generateOption(this.options.length);t.pushCode(a?`${n} = Array.from(buffer.subarray(offset, offset + ${s}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(offset, offset + ${s}));`),t.pushCode(`offset += ${s};`)}else this.options.zeroTerminated?(t.pushCode(`var ${r} = offset;`),t.pushCode("while(dataView.getUint8(offset++) !== 0);"),t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset - 1), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset - 1));`)):this.options.greedy&&(t.pushCode(`var ${r} = offset;`),t.pushCode("while(buffer.length > offset++);"),t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset));`));this.options.stripNull&&t.pushCode(`${n} = ${n}.replace(/\\x00+$/g, '')`)}generateBuffer(t){const n=t.generateVariable(this.varName);if(typeof this.options.readUntil=="function"){const r=this.options.readUntil,i=t.generateTmpVariable(),a=t.generateTmpVariable();t.pushCode(`var ${i} = offset;`),t.pushCode(`var ${a} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${a} = dataView.getUint8(offset);`);const o=t.addImport(r);t.pushCode(`if (${o}.call(${t.generateVariable()}, ${a}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${n} = buffer.subarray(${i}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${n} = buffer.subarray(offset);`);else{const r=t.generateOption(this.options.length);t.pushCode(`${n} = buffer.subarray(offset, offset + ${r});`),t.pushCode(`offset += ${r};`)}this.options.clone&&t.pushCode(`${n} = buffer.constructor.from(${n});`)}generateArray(t){const n=t.generateOption(this.options.length),r=t.generateOption(this.options.lengthInBytes),i=this.options.type,a=t.generateTmpVariable(),o=t.generateVariable(this.varName),s=t.generateTmpVariable(),l=this.options.key,c=typeof l=="string";if(c?t.pushCode(`${o} = {};`):t.pushCode(`${o} = [];`),typeof this.options.readUntil=="function"?t.pushCode("do {"):this.options.readUntil==="eof"?t.pushCode(`for (var ${a} = 0; offset < buffer.length; ${a}++) {`):r!==void 0?t.pushCode(`for (var ${a} = offset + ${r}; offset < ${a}; ) {`):t.pushCode(`for (var ${a} = ${n}; ${a} > 0; ${a}--) {`),typeof i=="string")if(On.get(i)){const u=t.generateTmpVariable();if(t.pushCode(`var ${u} = ${Oa+i}(offset, {`),t.useContextVariables){const f=t.generateVariable();t.pushCode(`$parent: ${f},`),t.pushCode(`$root: ${f}.$root,`),!this.options.readUntil&&r===void 0&&t.pushCode(`$index: ${n} - ${a},`)}t.pushCode("});"),t.pushCode(`var ${s} = ${u}.result; offset = ${u}.offset;`),i!==this.alias&&t.addReference(i)}else{const u=Jf[i],f=eh[i];t.pushCode(`var ${s} = dataView.get${u}(offset, ${f});`),t.pushCode(`offset += ${Rn[i]};`)}else if(i instanceof ae){t.pushCode(`var ${s} = {};`);const u=t.generateVariable();t.pushScope(s),t.useContextVariables&&(t.pushCode(`${s}.$parent = ${u};`),t.pushCode(`${s}.$root = ${u}.$root;`),!this.options.readUntil&&r===void 0&&t.pushCode(`${s}.$index = ${n} - ${a};`)),i.generate(t),t.useContextVariables&&(t.pushCode(`delete ${s}.$parent;`),t.pushCode(`delete ${s}.$root;`),t.pushCode(`delete ${s}.$index;`)),t.popScope()}if(c?t.pushCode(`${o}[${s}.${l}] = ${s};`):t.pushCode(`${o}.push(${s});`),t.pushCode("}"),typeof this.options.readUntil=="function"){const u=this.options.readUntil,f=t.addImport(u);t.pushCode(`while (!${f}.call(${t.generateVariable()}, ${s}, buffer.subarray(offset)));`)}}generateChoiceCase(t,n,r){if(typeof r=="string"){const i=t.generateVariable(this.varName);if(On.has(r)){const a=t.generateTmpVariable();t.pushCode(`var ${a} = ${Oa+r}(offset, {`),t.useContextVariables&&(t.pushCode(`$parent: ${i}.$parent,`),t.pushCode(`$root: ${i}.$root,`)),t.pushCode("});"),t.pushCode(`${i} = ${a}.result; offset = ${a}.offset;`),r!==this.alias&&t.addReference(r)}else{const a=Jf[r],o=eh[r];t.pushCode(`${i} = dataView.get${a}(offset, ${o});`),t.pushCode(`offset += ${Rn[r]}`)}}else r instanceof ae&&(t.pushPath(n),r.generate(t),t.popPath(n))}generateChoice(t){const n=t.generateOption(this.options.tag),r=t.generateVariable(this.varName);if(this.varName&&(t.pushCode(`${r} = {};`),t.useContextVariables)){const i=t.generateVariable();t.pushCode(`${r}.$parent = ${i};`),t.pushCode(`${r}.$root = ${i}.$root;`)}t.pushCode(`switch(${n}) {`);for(const i in this.options.choices){const a=parseInt(i,10),o=this.options.choices[a];t.pushCode(`case ${a}:`),this.generateChoiceCase(t,this.varName,o),t.pushCode("break;")}t.pushCode("default:"),this.options.defaultChoice?this.generateChoiceCase(t,this.varName,this.options.defaultChoice):t.generateError(`"Met undefined tag value " + ${n} + " at choice"`),t.pushCode("}"),this.varName&&t.useContextVariables&&(t.pushCode(`delete ${r}.$parent;`),t.pushCode(`delete ${r}.$root;`))}generateNest(t){const n=t.generateVariable(this.varName);if(this.options.type instanceof ae){if(this.varName&&(t.pushCode(`${n} = {};`),t.useContextVariables)){const r=t.generateVariable();t.pushCode(`${n}.$parent = ${r};`),t.pushCode(`${n}.$root = ${r}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),this.varName&&t.useContextVariables&&t.useContextVariables&&(t.pushCode(`delete ${n}.$parent;`),t.pushCode(`delete ${n}.$root;`))}else if(On.has(this.options.type)){const r=t.generateTmpVariable();if(t.pushCode(`var ${r} = ${Oa+this.options.type}(offset, {`),t.useContextVariables){const i=t.generateVariable();t.pushCode(`$parent: ${i},`),t.pushCode(`$root: ${i}.$root,`)}t.pushCode("});"),t.pushCode(`${n} = ${r}.result; offset = ${r}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}}generateWrapper(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable();if(typeof this.options.readUntil=="function"){const l=this.options.readUntil,c=t.generateTmpVariable(),u=t.generateTmpVariable();t.pushCode(`var ${c} = offset;`),t.pushCode(`var ${u} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${u} = dataView.getUint8(offset);`);const f=t.addImport(l);t.pushCode(`if (${f}.call(${t.generateVariable()}, ${u}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${r} = buffer.subarray(${c}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${r} = buffer.subarray(offset);`);else{const l=t.generateOption(this.options.length);t.pushCode(`${r} = buffer.subarray(offset, offset + ${l});`),t.pushCode(`offset += ${l};`)}this.options.clone&&t.pushCode(`${r} = buffer.constructor.from(${r});`);const i=t.generateTmpVariable(),a=t.generateTmpVariable(),o=t.generateTmpVariable(),s=t.addImport(this.options.wrapper);if(t.pushCode(`${r} = ${s}.call(this, ${r}).subarray(0);`),t.pushCode(`var ${i} = buffer;`),t.pushCode(`var ${a} = offset;`),t.pushCode(`var ${o} = dataView;`),t.pushCode(`buffer = ${r};`),t.pushCode("offset = 0;"),t.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof ae)this.varName&&t.pushCode(`${n} = {};`),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(On.has(this.options.type)){const l=t.generateTmpVariable();t.pushCode(`var ${l} = ${Oa+this.options.type}(0);`),t.pushCode(`${n} = ${l}.result;`),this.options.type!==this.alias&&t.addReference(this.options.type)}t.pushCode(`buffer = ${i};`),t.pushCode(`dataView = ${o};`),t.pushCode(`offset = ${a};`)}generateFormatter(t,n,r){if(typeof r=="function"){const i=t.addImport(r);t.pushCode(`${n} = ${i}.call(${t.generateVariable()}, ${n});`)}}generatePointer(t){const n=this.options.type,r=t.generateOption(this.options.offset),i=t.generateTmpVariable(),a=t.generateVariable(this.varName);if(t.pushCode(`var ${i} = offset;`),t.pushCode(`offset = ${r};`),this.options.type instanceof ae){if(t.pushCode(`${a} = {};`),t.useContextVariables){const o=t.generateVariable();t.pushCode(`${a}.$parent = ${o};`),t.pushCode(`${a}.$root = ${o}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),t.useContextVariables&&(t.pushCode(`delete ${a}.$parent;`),t.pushCode(`delete ${a}.$root;`))}else if(On.has(this.options.type)){const o=t.generateTmpVariable();if(t.pushCode(`var ${o} = ${Oa+this.options.type}(offset, {`),t.useContextVariables){const s=t.generateVariable();t.pushCode(`$parent: ${s},`),t.pushCode(`$root: ${s}.$root,`)}t.pushCode("});"),t.pushCode(`${a} = ${o}.result; offset = ${o}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}else if(Object.keys(Rn).indexOf(this.options.type)>=0){const o=Jf[n],s=eh[n];t.pushCode(`${a} = dataView.get${o}(offset, ${s});`),t.pushCode(`offset += ${Rn[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}}var q3={},Og={},Ra={},cl={};Object.defineProperty(cl,"__esModule",{value:!0});function Rg(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function W3(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function zg(e,t,n){return t&&W3(e.prototype,t),n&&W3(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function XR(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Pg(e,t)}function Jo(e){return Jo=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Jo(e)}function Pg(e,t){return Pg=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Pg(e,t)}function KR(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ll(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function JR(e,t){if(t&&(typeof t=="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ll(e)}function ez(e){var t=KR();return function(){var r=Jo(e),i;if(t){var a=Jo(this).constructor;i=Reflect.construct(r,arguments,a)}else i=r.apply(this,arguments);return JR(this,i)}}function tz(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=Jo(e),e!==null););return e}function th(){return typeof Reflect<"u"&&Reflect.get?th=Reflect.get.bind():th=function(t,n,r){var i=tz(t,n);if(i){var a=Object.getOwnPropertyDescriptor(i,n);return a.get?a.get.call(arguments.length<3?t:r):a.value}},th.apply(this,arguments)}var X3=function(){function e(){Rg(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return zg(e,[{key:"addEventListener",value:function(n,r,i){n in this.listeners||(this.listeners[n]=[]),this.listeners[n].push({callback:r,options:i})}},{key:"removeEventListener",value:function(n,r){if(n in this.listeners){for(var i=this.listeners[n],a=0,o=i.length;a<o;a++)if(i[a].callback===r){i.splice(a,1);return}}}},{key:"dispatchEvent",value:function(n){if(n.type in this.listeners){for(var r=this.listeners[n.type],i=r.slice(),a=0,o=i.length;a<o;a++){var s=i[a];try{s.callback.call(this,n)}catch(l){Promise.resolve().then(function(){throw l})}s.options&&s.options.once&&this.removeEventListener(n.type,s.callback)}return!n.defaultPrevented}}}]),e}(),Ug=function(e){XR(n,e);var t=ez(n);function n(){var r;return Rg(this,n),r=t.call(this),r.listeners||X3.call(ll(r)),Object.defineProperty(ll(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(ll(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(ll(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return zg(n,[{key:"toString",value:function(){return"[object AbortSignal]"}},{key:"dispatchEvent",value:function(i){i.type==="abort"&&(this.aborted=!0,typeof this.onabort=="function"&&this.onabort.call(this,i)),th(Jo(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(X3),K3=function(){function e(){Rg(this,e),Object.defineProperty(this,"signal",{value:new Ug,writable:!0,configurable:!0})}return zg(e,[{key:"abort",value:function(n){var r;try{r=new Event("abort")}catch{typeof document<"u"?document.createEvent?(r=document.createEvent("Event"),r.initEvent("abort",!1,!1)):(r=document.createEventObject(),r.type="abort"):r={type:"abort",bubbles:!1,cancelable:!1}}var i=n;if(i===void 0)if(typeof document>"u")i=new Error("This operation was aborted"),i.name="AbortError";else try{i=new DOMException("signal is aborted without reason")}catch{i=new Error("This operation was aborted"),i.name="AbortError"}this.signal.reason=i,this.signal.dispatchEvent(r)}},{key:"toString",value:function(){return"[object AbortController]"}}]),e}();typeof Symbol<"u"&&Symbol.toStringTag&&(K3.prototype[Symbol.toStringTag]="AbortController",Ug.prototype[Symbol.toStringTag]="AbortSignal");function nz(e){return e.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof e.Request=="function"&&!e.Request.prototype.hasOwnProperty("signal")||!e.AbortController}function rz(e){typeof e=="function"&&(e={fetch:e});var t=e,n=t.fetch,r=t.Request,i=r===void 0?n.Request:r,a=t.AbortController,o=t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,s=o===void 0?!1:o;if(!nz({fetch:n,Request:i,AbortController:a,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:s}))return{fetch:n,Request:l};var l=i;(l&&!l.prototype.hasOwnProperty("signal")||s)&&(l=function(h,d){var p;d&&d.signal&&(p=d.signal,delete d.signal);var g=new i(h,d);return p&&Object.defineProperty(g,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),g},l.prototype=i.prototype);var c=n,u=function(h,d){var p=l&&l.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(p){var g;try{g=new DOMException("Aborted","AbortError")}catch{g=new Error("Aborted"),g.name="AbortError"}if(p.aborted)return Promise.reject(g);var y=new Promise(function(v,S){p.addEventListener("abort",function(){return S(g)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([y,c(h,d)])}return c(h,d)};return{fetch:u,Request:l}}cl.AbortController=K3,cl.AbortSignal=Ug,cl.abortableFetch=rz,Object.defineProperty(Ra,"__esModule",{value:!0}),Ra.AbortSignal=Ra.AbortController=void 0;const J3=cl;var nh=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof Sa<"u")return Sa;throw new Error("unable to locate global object")};let iz=typeof nh().AbortController>"u"?J3.AbortController:nh().AbortController;Ra.AbortController=iz;let az=typeof nh().AbortController>"u"?J3.AbortSignal:nh().AbortSignal;Ra.AbortSignal=az;var jg={};Object.defineProperty(jg,"__esModule",{value:!0});const oz=Ra;class sz{}class cz{constructor(){this.signals=new Set,this.abortController=new oz.AbortController}addSignal(t=new sz){if(this.signal.aborted)throw new Error("cannot add a signal, already aborted!");this.signals.add(t),t.aborted?this.handleAborted(t):typeof t.addEventListener=="function"&&t.addEventListener("abort",()=>{this.handleAborted(t)})}handleAborted(t){this.signals.delete(t),this.signals.size===0&&this.abortController.abort()}get signal(){return this.abortController.signal}abort(){this.abortController.abort()}}jg.default=cz;var Hg={};Object.defineProperty(Hg,"__esModule",{value:!0});class lz{constructor(){this.callbacks=new Set}addCallback(t=()=>{}){this.callbacks.add(t),t(this.currentMessage)}callback(t){this.currentMessage=t,this.callbacks.forEach(n=>{n(t)})}}Hg.default=lz;var e4=Sa&&Sa.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Og,"__esModule",{value:!0});const uz=Ra,fz=e4(jg),hz=e4(Hg);class rh{constructor({fill:t,cache:n}){if(typeof t!="function")throw new TypeError("must pass a fill function");if(typeof n!="object")throw new TypeError("must pass a cache object");if(typeof n.get!="function"||typeof n.set!="function"||typeof n.delete!="function")throw new TypeError("cache must implement get(key), set(key, val), and and delete(key)");this.cache=n,this.fillCallback=t}static isAbortException(t){return t.name==="AbortError"||t.code==="ERR_ABORTED"||t.message==="AbortError: aborted"||t.message==="Error: aborted"}evict(t,n){this.cache.get(t)===n&&this.cache.delete(t)}fill(t,n,r,i){const a=new fz.default,o=new hz.default;o.addCallback(i);const s={aborter:a,promise:this.fillCallback(n,a.signal,l=>{o.callback(l)}),settled:!1,statusReporter:o,get aborted(){return this.aborter.signal.aborted}};s.aborter.addSignal(r),s.aborter.signal.addEventListener("abort",()=>{s.settled||this.evict(t,s)}),s.promise.then(()=>{s.settled=!0},()=>{s.settled=!0,this.evict(t,s)}).catch(l=>{throw console.error(l),l}),this.cache.set(t,s)}static checkSinglePromise(t,n){function r(){if(n&&n.aborted)throw Object.assign(new Error("aborted"),{code:"ERR_ABORTED"})}return t.then(i=>(r(),i),i=>{throw r(),i})}has(t){return this.cache.has(t)}get(t,n,r,i){if(!r&&n instanceof uz.AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const a=this.cache.get(t);return a?a.aborted&&!a.settled?(this.evict(t,a),this.get(t,n,r,i)):a.settled?a.promise:(a.aborter.addSignal(r),a.statusReporter.addCallback(i),rh.checkSinglePromise(a.promise,r)):(this.fill(t,n,r,i),rh.checkSinglePromise(this.cache.get(t).promise,r))}delete(t){const n=this.cache.get(t);n&&(n.settled||n.aborter.abort(),this.cache.delete(t))}clear(){const t=this.cache.keys();let n=0;for(let r=t.next();!r.done;r=t.next())this.delete(r.value),n+=1;return n}}Og.default=rh;var dz=Sa&&Sa.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(q3,"__esModule",{value:!0});const pz=dz(Og);var Gg=q3.default=pz.default,gz=class{constructor(t={}){if(!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=t.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(t,n){this.cache.set(t,n),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t)){const n=this.oldCache.get(t);return this.oldCache.delete(t),this._set(t,n),n}}set(t,n){return this.cache.has(t)?this.cache.set(t,n):this._set(t,n),this}has(t){return this.cache.has(t)||this.oldCache.has(t)}peek(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t))return this.oldCache.get(t)}delete(t){const n=this.cache.delete(t);return n&&this._size--,this.oldCache.delete(t)||n}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[t]of this)yield t}*values(){for(const[,t]of this)yield t}*[Symbol.iterator](){for(const t of this.cache)yield t;for(const t of this.oldCache){const[n]=t;this.cache.has(n)||(yield t)}}get size(){let t=0;for(const n of this.oldCache.keys())this.cache.has(n)||t++;return this._size+t}};const t4=Ca(gz);class Ei{constructor(t,n){this.ranges=arguments.length===2?[{min:t,max:n}]:0 in t?Object.assign({},t):[t]}min(){return this.ranges[0].min}max(){return this.ranges[this.ranges.length-1].max}contains(t){for(let n=0;n<this.ranges.length;n+=1){const r=this.ranges[n];if(r.min<=t&&r.max>=t)return!0}return!1}isContiguous(){return this.ranges.length>1}getRanges(){return this.ranges.map(t=>new Ei(t.min,t.max))}toString(){return this.ranges.map(t=>`[${t.min}-${t.max}]`).join(",")}union(t){const n=this.getRanges().concat(t.getRanges()).sort(this.rangeOrder),r=[];let i=n[0];for(let a=1;a<n.length;a+=1){const o=n[a];o.min()>i.max()+1?(r.push(i),i=o):o.max()>i.max()&&(i=new Ei(i.min(),o.max()))}return r.push(i),r.length===1?r[0]:new Ei(r)}intersection(t){let n=this,r=t;const i=this.ranges(),a=r.ranges(),o=i.length,s=a.length;let l=0,c=0;const u=[];for(;l<o&&c<s;){n=i[l],r=a[c];const f=Math.max(n.min(),r.min()),h=Math.min(n.max(),r.max());h>=f&&u.push(new Ei(f,h)),n.max()>r.max()?c+=1:l+=1}if(u.length===0)throw new Error("found range of length 0");return u.length===1?u[0]:new Ei(u)}coverage(){let t=0;const n=this.ranges();for(const r of n)t+=r.max()-r.min()+1;return t}rangeOrder(t,n){let r=t,i=n;return arguments.length<2&&(i=r,r=this),r.min()<i.min()?-1:r.min()>i.min()?1:r.max()<i.max()?-1:i.max()>r.max()?1:0}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const mz=4,n4=0,r4=1,bz=2;function es(e){let t=e.length;for(;--t>=0;)e[t]=0}const yz=0,i4=1,vz=2,wz=3,xz=258,$g=29,ul=256,fl=ul+1+$g,ts=30,Vg=19,a4=2*fl+1,za=15,Yg=16,Az=7,Qg=256,o4=16,s4=17,c4=18,Zg=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),ih=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Ez=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),l4=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Sz=512,Nr=new Array((fl+2)*2);es(Nr);const hl=new Array(ts*2);es(hl);const dl=new Array(Sz);es(dl);const pl=new Array(xz-wz+1);es(pl);const qg=new Array($g);es(qg);const ah=new Array(ts);es(ah);function Wg(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}let u4,f4,h4;function Xg(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const d4=e=>e<256?dl[e]:dl[256+(e>>>7)],gl=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},Pt=(e,t,n)=>{e.bi_valid>Yg-n?(e.bi_buf|=t<<e.bi_valid&65535,gl(e,e.bi_buf),e.bi_buf=t>>Yg-e.bi_valid,e.bi_valid+=n-Yg):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},rr=(e,t,n)=>{Pt(e,n[t*2],n[t*2+1])},p4=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},Cz=e=>{e.bi_valid===16?(gl(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},_z=(e,t)=>{const n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,l=t.stat_desc.max_length;let c,u,f,h,d,p,g=0;for(h=0;h<=za;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,c=e.heap_max+1;c<a4;c++)u=e.heap[c],h=n[n[u*2+1]*2+1]+1,h>l&&(h=l,g++),n[u*2+1]=h,!(u>r)&&(e.bl_count[h]++,d=0,u>=s&&(d=o[u-s]),p=n[u*2],e.opt_len+=p*(h+d),a&&(e.static_len+=p*(i[u*2+1]+d)));if(g!==0){do{for(h=l-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[l]--,g-=2}while(g>0);for(h=l;h!==0;h--)for(u=e.bl_count[h];u!==0;)f=e.heap[--c],!(f>r)&&(n[f*2+1]!==h&&(e.opt_len+=(h-n[f*2+1])*n[f*2],n[f*2+1]=h),u--)}},g4=(e,t,n)=>{const r=new Array(za+1);let i=0,a,o;for(a=1;a<=za;a++)i=i+n[a-1]<<1,r[a]=i;for(o=0;o<=t;o++){let s=e[o*2+1];s!==0&&(e[o*2]=p4(r[s]++,s))}},kz=()=>{let e,t,n,r,i;const a=new Array(za+1);for(n=0,r=0;r<$g-1;r++)for(qg[r]=n,e=0;e<1<<Zg[r];e++)pl[n++]=r;for(pl[n-1]=r,i=0,r=0;r<16;r++)for(ah[r]=i,e=0;e<1<<ih[r];e++)dl[i++]=r;for(i>>=7;r<ts;r++)for(ah[r]=i<<7,e=0;e<1<<ih[r]-7;e++)dl[256+i++]=r;for(t=0;t<=za;t++)a[t]=0;for(e=0;e<=143;)Nr[e*2+1]=8,e++,a[8]++;for(;e<=255;)Nr[e*2+1]=9,e++,a[9]++;for(;e<=279;)Nr[e*2+1]=7,e++,a[7]++;for(;e<=287;)Nr[e*2+1]=8,e++,a[8]++;for(g4(Nr,fl+1,a),e=0;e<ts;e++)hl[e*2+1]=5,hl[e*2]=p4(e,5);u4=new Wg(Nr,Zg,ul+1,fl,za),f4=new Wg(hl,ih,0,ts,za),h4=new Wg(new Array(0),Ez,0,Vg,Az)},m4=e=>{let t;for(t=0;t<fl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<ts;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Vg;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Qg*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},b4=e=>{e.bi_valid>8?gl(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},y4=(e,t,n,r)=>{const i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]},Kg=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&y4(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!y4(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},v4=(e,t,n)=>{let r,i,a=0,o,s;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+a++]&255,r+=(e.pending_buf[e.sym_buf+a++]&255)<<8,i=e.pending_buf[e.sym_buf+a++],r===0?rr(e,i,t):(o=pl[i],rr(e,o+ul+1,t),s=Zg[o],s!==0&&(i-=qg[o],Pt(e,i,s)),r--,o=d4(r),rr(e,o,n),s=ih[o],s!==0&&(r-=ah[o],Pt(e,r,s)));while(a<e.sym_next);rr(e,Qg,t)},Jg=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems;let o,s,l=-1,c;for(e.heap_len=0,e.heap_max=a4,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=l=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)c=e.heap[++e.heap_len]=l<2?++l:0,n[c*2]=1,e.depth[c]=0,e.opt_len--,i&&(e.static_len-=r[c*2+1]);for(t.max_code=l,o=e.heap_len>>1;o>=1;o--)Kg(e,n,o);c=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Kg(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[c*2]=n[o*2]+n[s*2],e.depth[c]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=c,e.heap[1]=c++,Kg(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],_z(e,t),g4(n,l,e.bl_count)},w4=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,l=7,c=4;for(o===0&&(l=138,c=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<l&&a===o)&&(s<c?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[o4*2]++):s<=10?e.bl_tree[s4*2]++:e.bl_tree[c4*2]++,s=0,i=a,o===0?(l=138,c=3):a===o?(l=6,c=3):(l=7,c=4))},x4=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,l=7,c=4;for(o===0&&(l=138,c=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<l&&a===o)){if(s<c)do rr(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(rr(e,a,e.bl_tree),s--),rr(e,o4,e.bl_tree),Pt(e,s-3,2)):s<=10?(rr(e,s4,e.bl_tree),Pt(e,s-3,3)):(rr(e,c4,e.bl_tree),Pt(e,s-11,7));s=0,i=a,o===0?(l=138,c=3):a===o?(l=6,c=3):(l=7,c=4)}},Dz=e=>{let t;for(w4(e,e.dyn_ltree,e.l_desc.max_code),w4(e,e.dyn_dtree,e.d_desc.max_code),Jg(e,e.bl_desc),t=Vg-1;t>=3&&e.bl_tree[l4[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},Iz=(e,t,n,r)=>{let i;for(Pt(e,t-257,5),Pt(e,n-1,5),Pt(e,r-4,4),i=0;i<r;i++)Pt(e,e.bl_tree[l4[i]*2+1],3);x4(e,e.dyn_ltree,t-1),x4(e,e.dyn_dtree,n-1)},Tz=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return n4;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return r4;for(n=32;n<ul;n++)if(e.dyn_ltree[n*2]!==0)return r4;return n4};let A4=!1;const Mz=e=>{A4||(kz(),A4=!0),e.l_desc=new Xg(e.dyn_ltree,u4),e.d_desc=new Xg(e.dyn_dtree,f4),e.bl_desc=new Xg(e.bl_tree,h4),e.bi_buf=0,e.bi_valid=0,m4(e)},E4=(e,t,n,r)=>{Pt(e,(yz<<1)+(r?1:0),3),b4(e),gl(e,n),gl(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},Nz=e=>{Pt(e,i4<<1,3),rr(e,Qg,Nr),Cz(e)},Fz=(e,t,n,r)=>{let i,a,o=0;e.level>0?(e.strm.data_type===bz&&(e.strm.data_type=Tz(e)),Jg(e,e.l_desc),Jg(e,e.d_desc),o=Dz(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?E4(e,t,n,r):e.strategy===mz||a===i?(Pt(e,(i4<<1)+(r?1:0),3),v4(e,Nr,hl)):(Pt(e,(vz<<1)+(r?1:0),3),Iz(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),v4(e,e.dyn_ltree,e.dyn_dtree)),m4(e),r&&b4(e)},Bz=(e,t,n)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(pl[n]+ul+1)*2]++,e.dyn_dtree[d4(t)*2]++),e.sym_next===e.sym_end);var Lz=Mz,Oz=E4,Rz=Fz,zz=Bz,Pz=Nz,Uz={_tr_init:Lz,_tr_stored_block:Oz,_tr_flush_block:Rz,_tr_tally:zz,_tr_align:Pz},ml=(e,t,n,r)=>{let i=e&65535|0,a=e>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0};const jz=()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t},Hz=new Uint32Array(jz());var ht=(e,t,n,r)=>{const i=Hz,a=r+n;e^=-1;for(let o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1},ns={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},bl={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Gz,_tr_stored_block:em,_tr_flush_block:$z,_tr_tally:Si,_tr_align:Vz}=Uz,{Z_NO_FLUSH:Ci,Z_PARTIAL_FLUSH:Yz,Z_FULL_FLUSH:Qz,Z_FINISH:dn,Z_BLOCK:S4,Z_OK:bt,Z_STREAM_END:C4,Z_STREAM_ERROR:ir,Z_DATA_ERROR:Zz,Z_BUF_ERROR:tm,Z_DEFAULT_COMPRESSION:qz,Z_FILTERED:Wz,Z_HUFFMAN_ONLY:oh,Z_RLE:Xz,Z_FIXED:Kz,Z_DEFAULT_STRATEGY:Jz,Z_UNKNOWN:eP,Z_DEFLATED:sh}=bl,tP=9,nP=15,rP=8,iP=29,nm=256+1+iP,aP=30,oP=19,sP=2*nm+1,cP=15,he=3,_i=258,ar=_i+he+1,lP=32,rs=42,rm=57,im=69,am=73,om=91,sm=103,Pa=113,yl=666,Dt=1,is=2,Ua=3,as=4,uP=3,ja=(e,t)=>(e.msg=ns[t],t),_4=e=>e*2-(e>4?9:0),ki=e=>{let t=e.length;for(;--t>=0;)e[t]=0},fP=e=>{let t,n,r,i=e.w_size;t=e.hash_size,r=t;do n=e.head[--r],e.head[r]=n>=i?n-i:0;while(--t);t=i,r=t;do n=e.prev[--r],e.prev[r]=n>=i?n-i:0;while(--t)};let Di=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const Qt=e=>{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},Zt=(e,t)=>{$z(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Qt(e.strm)},we=(e,t)=>{e.pending_buf[e.pending++]=t},vl=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},cm=(e,t,n,r)=>{let i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),n),e.state.wrap===1?e.adler=ml(e.adler,t,i,n):e.state.wrap===2&&(e.adler=ht(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},k4=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match;const l=e.strstart>e.w_size-ar?e.strstart-(e.w_size-ar):0,c=e.window,u=e.w_mask,f=e.prev,h=e.strstart+_i;let d=c[r+o-1],p=c[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(c[i+o]!==p||c[i+o-1]!==d||c[i]!==c[r]||c[++i]!==c[r+1])){r+=2,i++;do;while(c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&r<h);if(a=_i-(h-r),r=h-_i,a>o){if(e.match_start=t,o=a,a>=s)break;d=c[r+o-1],p=c[r+o]}}while((t=f[t&u])>l&&--n!==0);return o<=e.lookahead?o:e.lookahead},os=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-ar)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),fP(e),r+=t),e.strm.avail_in===0)break;if(n=cm(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=he)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=Di(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=Di(e,e.ins_h,e.window[i+he-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<he)););}while(e.lookahead<ar&&e.strm.avail_in!==0)},D4=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,a,o=0,s=e.strm.avail_in;do{if(r=65535,a=e.bi_valid+42>>3,e.strm.avail_out<a||(a=e.strm.avail_out-a,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>a&&(r=a),r<n&&(r===0&&t!==dn||t===Ci||r!==i+e.strm.avail_in)))break;o=t===dn&&r===i+e.strm.avail_in?1:0,em(e,0,0,o),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,Qt(e.strm),i&&(i>r&&(i=r),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,r-=i),r&&(cm(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(o===0);return s-=e.strm.avail_in,s&&(s>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=s&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-s,e.strm.next_in),e.strstart),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),o?as:t!==Ci&&t!==dn&&e.strm.avail_in===0&&e.strstart===e.block_start?is:(a=e.window_size-e.strstart,e.strm.avail_in>a&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,a+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),a>e.strm.avail_in&&(a=e.strm.avail_in),a&&(cm(e.strm,e.window,e.strstart,a),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.high_water<e.strstart&&(e.high_water=e.strstart),a=e.bi_valid+42>>3,a=e.pending_buf_size-a>65535?65535:e.pending_buf_size-a,n=a>e.w_size?e.w_size:a,i=e.strstart-e.block_start,(i>=n||(i||t===dn)&&t!==Ci&&e.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=t===dn&&e.strm.avail_in===0&&r===i?1:0,em(e,e.block_start,r,o),e.block_start+=r,Qt(e.strm)),o?Ua:Dt)},lm=(e,t)=>{let n,r;for(;;){if(e.lookahead<ar){if(os(e),e.lookahead<ar&&t===Ci)return Dt;if(e.lookahead===0)break}if(n=0,e.lookahead>=he&&(e.ins_h=Di(e,e.ins_h,e.window[e.strstart+he-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-ar&&(e.match_length=k4(e,n)),e.match_length>=he)if(r=Si(e,e.strstart-e.match_start,e.match_length-he),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=he){e.match_length--;do e.strstart++,e.ins_h=Di(e,e.ins_h,e.window[e.strstart+he-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=Di(e,e.ins_h,e.window[e.strstart+1]);else r=Si(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Zt(e,!1),e.strm.avail_out===0))return Dt}return e.insert=e.strstart<he-1?e.strstart:he-1,t===dn?(Zt(e,!0),e.strm.avail_out===0?Ua:as):e.sym_next&&(Zt(e,!1),e.strm.avail_out===0)?Dt:is},ss=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<ar){if(os(e),e.lookahead<ar&&t===Ci)return Dt;if(e.lookahead===0)break}if(n=0,e.lookahead>=he&&(e.ins_h=Di(e,e.ins_h,e.window[e.strstart+he-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=he-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-ar&&(e.match_length=k4(e,n),e.match_length<=5&&(e.strategy===Wz||e.match_length===he&&e.strstart-e.match_start>4096)&&(e.match_length=he-1)),e.prev_length>=he&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-he,r=Si(e,e.strstart-1-e.prev_match,e.prev_length-he),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=Di(e,e.ins_h,e.window[e.strstart+he-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=he-1,e.strstart++,r&&(Zt(e,!1),e.strm.avail_out===0))return Dt}else if(e.match_available){if(r=Si(e,0,e.window[e.strstart-1]),r&&Zt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Dt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=Si(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<he-1?e.strstart:he-1,t===dn?(Zt(e,!0),e.strm.avail_out===0?Ua:as):e.sym_next&&(Zt(e,!1),e.strm.avail_out===0)?Dt:is},hP=(e,t)=>{let n,r,i,a;const o=e.window;for(;;){if(e.lookahead<=_i){if(os(e),e.lookahead<=_i&&t===Ci)return Dt;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=he&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+_i;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=_i-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=he?(n=Si(e,1,e.match_length-he),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Si(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Zt(e,!1),e.strm.avail_out===0))return Dt}return e.insert=0,t===dn?(Zt(e,!0),e.strm.avail_out===0?Ua:as):e.sym_next&&(Zt(e,!1),e.strm.avail_out===0)?Dt:is},dP=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(os(e),e.lookahead===0)){if(t===Ci)return Dt;break}if(e.match_length=0,n=Si(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Zt(e,!1),e.strm.avail_out===0))return Dt}return e.insert=0,t===dn?(Zt(e,!0),e.strm.avail_out===0?Ua:as):e.sym_next&&(Zt(e,!1),e.strm.avail_out===0)?Dt:is};function or(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}const wl=[new or(0,0,0,0,D4),new or(4,4,8,4,lm),new or(4,5,16,8,lm),new or(4,6,32,32,lm),new or(4,4,16,16,ss),new or(8,16,32,32,ss),new or(8,16,128,128,ss),new or(8,32,128,256,ss),new or(32,128,258,1024,ss),new or(32,258,258,4096,ss)],pP=e=>{e.window_size=2*e.w_size,ki(e.head),e.max_lazy_match=wl[e.level].max_lazy,e.good_match=wl[e.level].good_length,e.nice_match=wl[e.level].nice_length,e.max_chain_length=wl[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=he-1,e.match_available=0,e.ins_h=0};function gP(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=sh,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(sP*2),this.dyn_dtree=new Uint16Array((2*aP+1)*2),this.bl_tree=new Uint16Array((2*oP+1)*2),ki(this.dyn_ltree),ki(this.dyn_dtree),ki(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(cP+1),this.heap=new Uint16Array(2*nm+1),ki(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*nm+1),ki(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const xl=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==rs&&t.status!==rm&&t.status!==im&&t.status!==am&&t.status!==om&&t.status!==sm&&t.status!==Pa&&t.status!==yl?1:0},I4=e=>{if(xl(e))return ja(e,ir);e.total_in=e.total_out=0,e.data_type=eP;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?rm:t.wrap?rs:Pa,e.adler=t.wrap===2?0:1,t.last_flush=-2,Gz(t),bt},T4=e=>{const t=I4(e);return t===bt&&pP(e.state),t},mP=(e,t)=>xl(e)||e.state.wrap!==2?ir:(e.state.gzhead=t,bt),M4=(e,t,n,r,i,a)=>{if(!e)return ir;let o=1;if(t===qz&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>tP||n!==sh||r<8||r>15||t<0||t>9||a<0||a>Kz||r===8&&o!==1)return ja(e,ir);r===8&&(r=9);const s=new gP;return e.state=s,s.strm=e,s.status=rs,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+he-1)/he),s.window=new Uint8Array(s.w_size*2),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=(s.lit_bufsize-1)*3,s.level=t,s.strategy=a,s.method=n,T4(e)},bP=(e,t)=>M4(e,t,sh,nP,rP,Jz),yP=(e,t)=>{if(xl(e)||t>S4||t<0)return e?ja(e,ir):ir;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===yl&&t!==dn)return ja(e,e.avail_out===0?tm:ir);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(Qt(e),e.avail_out===0)return n.last_flush=-1,bt}else if(e.avail_in===0&&_4(t)<=_4(r)&&t!==dn)return ja(e,tm);if(n.status===yl&&e.avail_in!==0)return ja(e,tm);if(n.status===rs&&n.wrap===0&&(n.status=Pa),n.status===rs){let i=sh+(n.w_bits-8<<4)<<8,a=-1;if(n.strategy>=oh||n.level<2?a=0:n.level<6?a=1:n.level===6?a=2:a=3,i|=a<<6,n.strstart!==0&&(i|=lP),i+=31-i%31,vl(n,i),n.strstart!==0&&(vl(n,e.adler>>>16),vl(n,e.adler&65535)),e.adler=1,n.status=Pa,Qt(e),n.pending!==0)return n.last_flush=-1,bt}if(n.status===rm){if(e.adler=0,we(n,31),we(n,139),we(n,8),n.gzhead)we(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),we(n,n.gzhead.time&255),we(n,n.gzhead.time>>8&255),we(n,n.gzhead.time>>16&255),we(n,n.gzhead.time>>24&255),we(n,n.level===9?2:n.strategy>=oh||n.level<2?4:0),we(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(we(n,n.gzhead.extra.length&255),we(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=ht(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=im;else if(we(n,0),we(n,0),we(n,0),we(n,0),we(n,0),we(n,n.level===9?2:n.strategy>=oh||n.level<2?4:0),we(n,uP),n.status=Pa,Qt(e),n.pending!==0)return n.last_flush=-1,bt}if(n.status===im){if(n.gzhead.extra){let i=n.pending,a=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+a>n.pending_buf_size;){let s=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,Qt(e),n.pending!==0)return n.last_flush=-1,bt;i=0,a-=s}let o=new Uint8Array(n.gzhead.extra);n.pending_buf.set(o.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending+=a,n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=am}if(n.status===am){if(n.gzhead.name){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i)),Qt(e),n.pending!==0)return n.last_flush=-1,bt;i=0}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,we(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=om}if(n.status===om){if(n.gzhead.comment){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i)),Qt(e),n.pending!==0)return n.last_flush=-1,bt;i=0}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,we(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i))}n.status=sm}if(n.status===sm){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(Qt(e),n.pending!==0))return n.last_flush=-1,bt;we(n,e.adler&255),we(n,e.adler>>8&255),e.adler=0}if(n.status=Pa,Qt(e),n.pending!==0)return n.last_flush=-1,bt}if(e.avail_in!==0||n.lookahead!==0||t!==Ci&&n.status!==yl){let i=n.level===0?D4(n,t):n.strategy===oh?dP(n,t):n.strategy===Xz?hP(n,t):wl[n.level].func(n,t);if((i===Ua||i===as)&&(n.status=yl),i===Dt||i===Ua)return e.avail_out===0&&(n.last_flush=-1),bt;if(i===is&&(t===Yz?Vz(n):t!==S4&&(em(n,0,0,!1),t===Qz&&(ki(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Qt(e),e.avail_out===0))return n.last_flush=-1,bt}return t!==dn?bt:n.wrap<=0?C4:(n.wrap===2?(we(n,e.adler&255),we(n,e.adler>>8&255),we(n,e.adler>>16&255),we(n,e.adler>>24&255),we(n,e.total_in&255),we(n,e.total_in>>8&255),we(n,e.total_in>>16&255),we(n,e.total_in>>24&255)):(vl(n,e.adler>>>16),vl(n,e.adler&65535)),Qt(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?bt:C4)},vP=e=>{if(xl(e))return ir;const t=e.state.status;return e.state=null,t===Pa?ja(e,Zz):bt},wP=(e,t)=>{let n=t.length;if(xl(e))return ir;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==rs||r.lookahead)return ir;if(i===1&&(e.adler=ml(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(ki(r.head),r.strstart=0,r.block_start=0,r.insert=0);let l=new Uint8Array(r.w_size);l.set(t.subarray(n-r.w_size,n),0),t=l,n=r.w_size}const a=e.avail_in,o=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,os(r);r.lookahead>=he;){let l=r.strstart,c=r.lookahead-(he-1);do r.ins_h=Di(r,r.ins_h,r.window[l+he-1]),r.prev[l&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=l,l++;while(--c);r.strstart=l,r.lookahead=he-1,os(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=he-1,r.match_available=0,e.next_in=o,e.input=s,e.avail_in=a,r.wrap=i,bt};var xP=bP,AP=M4,EP=T4,SP=I4,CP=mP,_P=yP,kP=vP,DP=wP,IP="pako deflate (from Nodeca project)",Al={deflateInit:xP,deflateInit2:AP,deflateReset:EP,deflateResetKeep:SP,deflateSetHeader:CP,deflate:_P,deflateEnd:kP,deflateSetDictionary:DP,deflateInfo:IP};const TP=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var MP=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)TP(n,r)&&(e[r]=n[r])}}return e},NP=e=>{let t=0;for(let r=0,i=e.length;r<i;r++)t+=e[r].length;const n=new Uint8Array(t);for(let r=0,i=0,a=e.length;r<a;r++){let o=e[r];n.set(o,i),i+=o.length}return n},ch={assign:MP,flattenChunks:NP};let N4=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{N4=!1}const El=new Uint8Array(256);for(let e=0;e<256;e++)El[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;El[254]=El[254]=1;var FP=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,a,o=e.length,s=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(s),a=0,i=0;a<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t};const BP=(e,t)=>{if(t<65534&&e.subarray&&N4)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n};var LP=(e,t)=>{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,i;const a=new Array(n*2);for(i=0,r=0;r<n;){let o=e[r++];if(o<128){a[i++]=o;continue}let s=El[o];if(s>4){a[i++]=65533,r+=s-1;continue}for(o&=s===2?31:s===3?15:7;s>1&&r<n;)o=o<<6|e[r++]&63,s--;if(s>1){a[i++]=65533;continue}o<65536?a[i++]=o:(o-=65536,a[i++]=55296|o>>10&1023,a[i++]=56320|o&1023)}return BP(a,i)},OP=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let n=t-1;for(;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+El[e[n]]>t?n:t},Sl={string2buf:FP,buf2string:LP,utf8border:OP};function RP(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var F4=RP;const B4=Object.prototype.toString,{Z_NO_FLUSH:zP,Z_SYNC_FLUSH:PP,Z_FULL_FLUSH:UP,Z_FINISH:jP,Z_OK:lh,Z_STREAM_END:HP,Z_DEFAULT_COMPRESSION:GP,Z_DEFAULT_STRATEGY:$P,Z_DEFLATED:VP}=bl;function um(e){this.options=ch.assign({level:GP,method:VP,chunkSize:16384,windowBits:15,memLevel:8,strategy:$P},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new F4,this.strm.avail_out=0;let n=Al.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==lh)throw new Error(ns[n]);if(t.header&&Al.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=Sl.string2buf(t.dictionary):B4.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=Al.deflateSetDictionary(this.strm,r),n!==lh)throw new Error(ns[n]);this._dict_set=!0}}um.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let i,a;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?jP:zP,typeof e=="string"?n.input=Sl.string2buf(e):B4.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(a===PP||a===UP)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=Al.deflate(n,a),i===HP)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=Al.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===lh;if(n.avail_out===0){this.onData(n.output);continue}if(a>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0},um.prototype.onData=function(e){this.chunks.push(e)},um.prototype.onEnd=function(e){e===lh&&(this.result=ch.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const uh=16209,YP=16191;var QP=function(t,n){let r,i,a,o,s,l,c,u,f,h,d,p,g,y,v,S,k,C,E,w,A,T,D,M;const F=t.state;r=t.next_in,D=t.input,i=r+(t.avail_in-5),a=t.next_out,M=t.output,o=a-(n-t.avail_out),s=a+(t.avail_out-257),l=F.dmax,c=F.wsize,u=F.whave,f=F.wnext,h=F.window,d=F.hold,p=F.bits,g=F.lencode,y=F.distcode,v=(1<<F.lenbits)-1,S=(1<<F.distbits)-1;e:do{p<15&&(d+=D[r++]<<p,p+=8,d+=D[r++]<<p,p+=8),k=g[d&v];t:for(;;){if(C=k>>>24,d>>>=C,p-=C,C=k>>>16&255,C===0)M[a++]=k&65535;else if(C&16){E=k&65535,C&=15,C&&(p<C&&(d+=D[r++]<<p,p+=8),E+=d&(1<<C)-1,d>>>=C,p-=C),p<15&&(d+=D[r++]<<p,p+=8,d+=D[r++]<<p,p+=8),k=y[d&S];n:for(;;){if(C=k>>>24,d>>>=C,p-=C,C=k>>>16&255,C&16){if(w=k&65535,C&=15,p<C&&(d+=D[r++]<<p,p+=8,p<C&&(d+=D[r++]<<p,p+=8)),w+=d&(1<<C)-1,w>l){t.msg="invalid distance too far back",F.mode=uh;break e}if(d>>>=C,p-=C,C=a-o,w>C){if(C=w-C,C>u&&F.sane){t.msg="invalid distance too far back",F.mode=uh;break e}if(A=0,T=h,f===0){if(A+=c-C,C<E){E-=C;do M[a++]=h[A++];while(--C);A=a-w,T=M}}else if(f<C){if(A+=c+f-C,C-=f,C<E){E-=C;do M[a++]=h[A++];while(--C);if(A=0,f<E){C=f,E-=C;do M[a++]=h[A++];while(--C);A=a-w,T=M}}}else if(A+=f-C,C<E){E-=C;do M[a++]=h[A++];while(--C);A=a-w,T=M}for(;E>2;)M[a++]=T[A++],M[a++]=T[A++],M[a++]=T[A++],E-=3;E&&(M[a++]=T[A++],E>1&&(M[a++]=T[A++]))}else{A=a-w;do M[a++]=M[A++],M[a++]=M[A++],M[a++]=M[A++],E-=3;while(E>2);E&&(M[a++]=M[A++],E>1&&(M[a++]=M[A++]))}}else if(C&64){t.msg="invalid distance code",F.mode=uh;break e}else{k=y[(k&65535)+(d&(1<<C)-1)];continue n}break}}else if(C&64)if(C&32){F.mode=YP;break e}else{t.msg="invalid literal/length code",F.mode=uh;break e}else{k=g[(k&65535)+(d&(1<<C)-1)];continue t}break}}while(r<i&&a<s);E=p>>3,r-=E,p-=E<<3,d&=(1<<p)-1,t.next_in=r,t.next_out=a,t.avail_in=r<i?5+(i-r):5-(r-i),t.avail_out=a<s?257+(s-a):257-(a-s),F.hold=d,F.bits=p};const cs=15,L4=852,O4=592,R4=0,fm=1,z4=2,ZP=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),qP=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),WP=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),XP=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var Cl=(e,t,n,r,i,a,o,s)=>{const l=s.bits;let c=0,u=0,f=0,h=0,d=0,p=0,g=0,y=0,v=0,S=0,k,C,E,w,A,T=null,D;const M=new Uint16Array(cs+1),F=new Uint16Array(cs+1);let U=null,q,V,pe;for(c=0;c<=cs;c++)M[c]=0;for(u=0;u<r;u++)M[t[n+u]]++;for(d=l,h=cs;h>=1&&M[h]===0;h--);if(d>h&&(d=h),h===0)return i[a++]=1<<24|64<<16|0,i[a++]=1<<24|64<<16|0,s.bits=1,0;for(f=1;f<h&&M[f]===0;f++);for(d<f&&(d=f),y=1,c=1;c<=cs;c++)if(y<<=1,y-=M[c],y<0)return-1;if(y>0&&(e===R4||h!==1))return-1;for(F[1]=0,c=1;c<cs;c++)F[c+1]=F[c]+M[c];for(u=0;u<r;u++)t[n+u]!==0&&(o[F[t[n+u]]++]=u);if(e===R4?(T=U=o,D=20):e===fm?(T=ZP,U=qP,D=257):(T=WP,U=XP,D=0),S=0,u=0,c=f,A=a,p=d,g=0,E=-1,v=1<<d,w=v-1,e===fm&&v>L4||e===z4&&v>O4)return 1;for(;;){q=c-g,o[u]+1<D?(V=0,pe=o[u]):o[u]>=D?(V=U[o[u]-D],pe=T[o[u]-D]):(V=32+64,pe=0),k=1<<c-g,C=1<<p,f=C;do C-=k,i[A+(S>>g)+C]=q<<24|V<<16|pe|0;while(C!==0);for(k=1<<c-1;S&k;)k>>=1;if(k!==0?(S&=k-1,S+=k):S=0,u++,--M[c]===0){if(c===h)break;c=t[n+o[u]]}if(c>d&&(S&w)!==E){for(g===0&&(g=d),A+=f,p=c-g,y=1<<p;p+g<h&&(y-=M[p+g],!(y<=0));)p++,y<<=1;if(v+=1<<p,e===fm&&v>L4||e===z4&&v>O4)return 1;E=S&w,i[E]=d<<24|p<<16|A-a|0}}return S!==0&&(i[A+S]=c-g<<24|64<<16|0),s.bits=d,0};const KP=0,P4=1,U4=2,{Z_FINISH:j4,Z_BLOCK:JP,Z_TREES:fh,Z_OK:Ha,Z_STREAM_END:eU,Z_NEED_DICT:tU,Z_STREAM_ERROR:pn,Z_DATA_ERROR:H4,Z_MEM_ERROR:G4,Z_BUF_ERROR:nU,Z_DEFLATED:$4}=bl,hh=16180,V4=16181,Y4=16182,Q4=16183,Z4=16184,q4=16185,W4=16186,X4=16187,K4=16188,J4=16189,dh=16190,Fr=16191,hm=16192,eE=16193,dm=16194,tE=16195,nE=16196,rE=16197,iE=16198,ph=16199,gh=16200,aE=16201,oE=16202,sE=16203,cE=16204,lE=16205,pm=16206,uE=16207,fE=16208,He=16209,hE=16210,dE=16211,rU=852,iU=592,aU=15,pE=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function oU(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Ga=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<hh||t.mode>dE?1:0},gE=e=>{if(Ga(e))return pn;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=hh,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(rU),t.distcode=t.distdyn=new Int32Array(iU),t.sane=1,t.back=-1,Ha},mE=e=>{if(Ga(e))return pn;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,gE(e)},bE=(e,t)=>{let n;if(Ga(e))return pn;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?pn:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,mE(e))},yE=(e,t)=>{if(!e)return pn;const n=new oU;e.state=n,n.strm=e,n.window=null,n.mode=hh;const r=bE(e,t);return r!==Ha&&(e.state=null),r},sU=e=>yE(e,aU);let vE=!0,gm,mm;const cU=e=>{if(vE){gm=new Int32Array(512),mm=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Cl(P4,e.lens,0,288,gm,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Cl(U4,e.lens,0,32,mm,0,e.work,{bits:5}),vE=!1}e.lencode=gm,e.lenbits=9,e.distcode=mm,e.distbits=5},wE=(e,t,n,r)=>{let i;const a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),r>=a.wsize?(a.window.set(t.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),a.window.set(t.subarray(n-r,n-r+i),a.wnext),r-=i,r?(a.window.set(t.subarray(n-r,n),0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0},lU=(e,t)=>{let n,r,i,a,o,s,l,c,u,f,h,d,p,g,y=0,v,S,k,C,E,w,A,T;const D=new Uint8Array(4);let M,F;const U=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Ga(e)||!e.output||!e.input&&e.avail_in!==0)return pn;n=e.state,n.mode===Fr&&(n.mode=hm),o=e.next_out,i=e.output,l=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,f=s,h=l,T=Ha;e:for(;;)switch(n.mode){case hh:if(n.wrap===0){n.mode=hm;break}for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(n.wrap&2&&c===35615){n.wbits===0&&(n.wbits=15),n.check=0,D[0]=c&255,D[1]=c>>>8&255,n.check=ht(n.check,D,2,0),c=0,u=0,n.mode=V4;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((c&255)<<8)+(c>>8))%31){e.msg="incorrect header check",n.mode=He;break}if((c&15)!==$4){e.msg="unknown compression method",n.mode=He;break}if(c>>>=4,u-=4,A=(c&15)+8,n.wbits===0&&(n.wbits=A),A>15||A>n.wbits){e.msg="invalid window size",n.mode=He;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=c&512?J4:Fr,c=0,u=0;break;case V4:for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(n.flags=c,(n.flags&255)!==$4){e.msg="unknown compression method",n.mode=He;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=He;break}n.head&&(n.head.text=c>>8&1),n.flags&512&&n.wrap&4&&(D[0]=c&255,D[1]=c>>>8&255,n.check=ht(n.check,D,2,0)),c=0,u=0,n.mode=Y4;case Y4:for(;u<32;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.head&&(n.head.time=c),n.flags&512&&n.wrap&4&&(D[0]=c&255,D[1]=c>>>8&255,D[2]=c>>>16&255,D[3]=c>>>24&255,n.check=ht(n.check,D,4,0)),c=0,u=0,n.mode=Q4;case Q4:for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.head&&(n.head.xflags=c&255,n.head.os=c>>8),n.flags&512&&n.wrap&4&&(D[0]=c&255,D[1]=c>>>8&255,n.check=ht(n.check,D,2,0)),c=0,u=0,n.mode=Z4;case Z4:if(n.flags&1024){for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.length=c,n.head&&(n.head.extra_len=c),n.flags&512&&n.wrap&4&&(D[0]=c&255,D[1]=c>>>8&255,n.check=ht(n.check,D,2,0)),c=0,u=0}else n.head&&(n.head.extra=null);n.mode=q4;case q4:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(A=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(a,a+d),A)),n.flags&512&&n.wrap&4&&(n.check=ht(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=W4;case W4:if(n.flags&2048){if(s===0)break e;d=0;do A=r[a+d++],n.head&&A&&n.length<65536&&(n.head.name+=String.fromCharCode(A));while(A&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=ht(n.check,r,d,a)),s-=d,a+=d,A)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=X4;case X4:if(n.flags&4096){if(s===0)break e;d=0;do A=r[a+d++],n.head&&A&&n.length<65536&&(n.head.comment+=String.fromCharCode(A));while(A&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=ht(n.check,r,d,a)),s-=d,a+=d,A)break e}else n.head&&(n.head.comment=null);n.mode=K4;case K4:if(n.flags&512){for(;u<16;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(n.wrap&4&&c!==(n.check&65535)){e.msg="header crc mismatch",n.mode=He;break}c=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=Fr;break;case J4:for(;u<32;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}e.adler=n.check=pE(c),c=0,u=0,n.mode=dh;case dh:if(n.havedict===0)return e.next_out=o,e.avail_out=l,e.next_in=a,e.avail_in=s,n.hold=c,n.bits=u,tU;e.adler=n.check=1,n.mode=Fr;case Fr:if(t===JP||t===fh)break e;case hm:if(n.last){c>>>=u&7,u-=u&7,n.mode=pm;break}for(;u<3;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}switch(n.last=c&1,c>>>=1,u-=1,c&3){case 0:n.mode=eE;break;case 1:if(cU(n),n.mode=ph,t===fh){c>>>=2,u-=2;break e}break;case 2:n.mode=nE;break;case 3:e.msg="invalid block type",n.mode=He}c>>>=2,u-=2;break;case eE:for(c>>>=u&7,u-=u&7;u<32;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if((c&65535)!==(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=He;break}if(n.length=c&65535,c=0,u=0,n.mode=dm,t===fh)break e;case dm:n.mode=tE;case tE:if(d=n.length,d){if(d>s&&(d=s),d>l&&(d=l),d===0)break e;i.set(r.subarray(a,a+d),o),s-=d,a+=d,l-=d,o+=d,n.length-=d;break}n.mode=Fr;break;case nE:for(;u<14;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(n.nlen=(c&31)+257,c>>>=5,u-=5,n.ndist=(c&31)+1,c>>>=5,u-=5,n.ncode=(c&15)+4,c>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=He;break}n.have=0,n.mode=rE;case rE:for(;n.have<n.ncode;){for(;u<3;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.lens[U[n.have++]]=c&7,c>>>=3,u-=3}for(;n.have<19;)n.lens[U[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,M={bits:n.lenbits},T=Cl(KP,n.lens,0,19,n.lencode,0,n.work,M),n.lenbits=M.bits,T){e.msg="invalid code lengths set",n.mode=He;break}n.have=0,n.mode=iE;case iE:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[c&(1<<n.lenbits)-1],v=y>>>24,S=y>>>16&255,k=y&65535,!(v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(k<16)c>>>=v,u-=v,n.lens[n.have++]=k;else{if(k===16){for(F=v+2;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(c>>>=v,u-=v,n.have===0){e.msg="invalid bit length repeat",n.mode=He;break}A=n.lens[n.have-1],d=3+(c&3),c>>>=2,u-=2}else if(k===17){for(F=v+3;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}c>>>=v,u-=v,A=0,d=3+(c&7),c>>>=3,u-=3}else{for(F=v+7;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}c>>>=v,u-=v,A=0,d=11+(c&127),c>>>=7,u-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=He;break}for(;d--;)n.lens[n.have++]=A}}if(n.mode===He)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=He;break}if(n.lenbits=9,M={bits:n.lenbits},T=Cl(P4,n.lens,0,n.nlen,n.lencode,0,n.work,M),n.lenbits=M.bits,T){e.msg="invalid literal/lengths set",n.mode=He;break}if(n.distbits=6,n.distcode=n.distdyn,M={bits:n.distbits},T=Cl(U4,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,M),n.distbits=M.bits,T){e.msg="invalid distances set",n.mode=He;break}if(n.mode=ph,t===fh)break e;case ph:n.mode=gh;case gh:if(s>=6&&l>=258){e.next_out=o,e.avail_out=l,e.next_in=a,e.avail_in=s,n.hold=c,n.bits=u,QP(e,h),o=e.next_out,i=e.output,l=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,n.mode===Fr&&(n.back=-1);break}for(n.back=0;y=n.lencode[c&(1<<n.lenbits)-1],v=y>>>24,S=y>>>16&255,k=y&65535,!(v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(S&&!(S&240)){for(C=v,E=S,w=k;y=n.lencode[w+((c&(1<<C+E)-1)>>C)],v=y>>>24,S=y>>>16&255,k=y&65535,!(C+v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}c>>>=C,u-=C,n.back+=C}if(c>>>=v,u-=v,n.back+=v,n.length=k,S===0){n.mode=lE;break}if(S&32){n.back=-1,n.mode=Fr;break}if(S&64){e.msg="invalid literal/length code",n.mode=He;break}n.extra=S&15,n.mode=aE;case aE:if(n.extra){for(F=n.extra;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.length+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=oE;case oE:for(;y=n.distcode[c&(1<<n.distbits)-1],v=y>>>24,S=y>>>16&255,k=y&65535,!(v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(!(S&240)){for(C=v,E=S,w=k;y=n.distcode[w+((c&(1<<C+E)-1)>>C)],v=y>>>24,S=y>>>16&255,k=y&65535,!(C+v<=u);){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}c>>>=C,u-=C,n.back+=C}if(c>>>=v,u-=v,n.back+=v,S&64){e.msg="invalid distance code",n.mode=He;break}n.offset=k,n.extra=S&15,n.mode=sE;case sE:if(n.extra){for(F=n.extra;u<F;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}n.offset+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=He;break}n.mode=cE;case cE:if(l===0)break e;if(d=h-l,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=He;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),g=n.window}else g=i,p=o-n.offset,d=n.length;d>l&&(d=l),l-=d,n.length-=d;do i[o++]=g[p++];while(--d);n.length===0&&(n.mode=gh);break;case lE:if(l===0)break e;i[o++]=n.length,l--,n.mode=gh;break;case pm:if(n.wrap){for(;u<32;){if(s===0)break e;s--,c|=r[a++]<<u,u+=8}if(h-=l,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?ht(n.check,i,h,o-h):ml(n.check,i,h,o-h)),h=l,n.wrap&4&&(n.flags?c:pE(c))!==n.check){e.msg="incorrect data check",n.mode=He;break}c=0,u=0}n.mode=uE;case uE:if(n.wrap&&n.flags){for(;u<32;){if(s===0)break e;s--,c+=r[a++]<<u,u+=8}if(n.wrap&4&&c!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=He;break}c=0,u=0}n.mode=fE;case fE:T=eU;break e;case He:T=H4;break e;case hE:return G4;case dE:default:return pn}return e.next_out=o,e.avail_out=l,e.next_in=a,e.avail_in=s,n.hold=c,n.bits=u,(n.wsize||h!==e.avail_out&&n.mode<He&&(n.mode<pm||t!==j4))&&wE(e,e.output,e.next_out,h-e.avail_out),f-=e.avail_in,h-=e.avail_out,e.total_in+=f,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?ht(n.check,i,h,e.next_out-h):ml(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===Fr?128:0)+(n.mode===ph||n.mode===dm?256:0),(f===0&&h===0||t===j4)&&T===Ha&&(T=nU),T},uU=e=>{if(Ga(e))return pn;let t=e.state;return t.window&&(t.window=null),e.state=null,Ha},fU=(e,t)=>{if(Ga(e))return pn;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,Ha):pn},hU=(e,t)=>{const n=t.length;let r,i,a;return Ga(e)||(r=e.state,r.wrap!==0&&r.mode!==dh)?pn:r.mode===dh&&(i=1,i=ml(i,t,n,0),i!==r.check)?H4:(a=wE(e,t,n,n),a?(r.mode=hE,G4):(r.havedict=1,Ha))};var dU=mE,pU=bE,gU=gE,mU=sU,bU=yE,yU=lU,vU=uU,wU=fU,xU=hU,AU="pako inflate (from Nodeca project)",Br={inflateReset:dU,inflateReset2:pU,inflateResetKeep:gU,inflateInit:mU,inflateInit2:bU,inflate:yU,inflateEnd:vU,inflateGetHeader:wU,inflateSetDictionary:xU,inflateInfo:AU};function EU(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var SU=EU;const xE=Object.prototype.toString,{Z_NO_FLUSH:CU,Z_FINISH:_U,Z_OK:_l,Z_STREAM_END:bm,Z_NEED_DICT:ym,Z_STREAM_ERROR:kU,Z_DATA_ERROR:AE,Z_MEM_ERROR:DU}=bl;function kl(e){this.options=ch.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new F4,this.strm.avail_out=0;let n=Br.inflateInit2(this.strm,t.windowBits);if(n!==_l)throw new Error(ns[n]);if(this.header=new SU,Br.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Sl.string2buf(t.dictionary):xE.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=Br.inflateSetDictionary(this.strm,t.dictionary),n!==_l)))throw new Error(ns[n])}kl.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let a,o,s;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?_U:CU,xE.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),a=Br.inflate(n,o),a===ym&&i&&(a=Br.inflateSetDictionary(n,i),a===_l?a=Br.inflate(n,o):a===AE&&(a=ym));n.avail_in>0&&a===bm&&n.state.wrap>0&&e[n.next_in]!==0;)Br.inflateReset(n),a=Br.inflate(n,o);switch(a){case kU:case AE:case ym:case DU:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||a===bm))if(this.options.to==="string"){let l=Sl.utf8border(n.output,n.next_out),c=n.next_out-l,u=Sl.buf2string(n.output,l);n.next_out=c,n.avail_out=r-c,c&&n.output.set(n.output.subarray(l,l+c),0),this.onData(u)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(a===_l&&s===0)){if(a===bm)return a=Br.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},kl.prototype.onData=function(e){this.chunks.push(e)},kl.prototype.onEnd=function(e){e===_l&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=ch.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function vm(e,t){const n=new kl(t);if(n.push(e),n.err)throw n.msg||ns[n.err];return n.result}function IU(e,t){return t=t||{},t.raw=!0,vm(e,t)}var TU=kl,MU=vm,NU=IU,FU=vm,BU=bl,LU={Inflate:TU,inflate:MU,inflateRaw:NU,ungzip:FU,constants:BU};const{Inflate:oq,inflate:sq,inflateRaw:OU,ungzip:cq}=LU;var RU=OU;function zU(e){return RU(e.subarray(2))}class PU extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}}function UU(e){e.sort((i,a)=>Number(i.offset)-Number(a.offset));const t=[];let n,r;for(const i of e)n&&r&&Number(i.offset)-r<=2e3?(n.length=BigInt(Number(n.length)+Number(i.length)-r+Number(i.offset)),n.blocks.push(i)):t.push(n={blocks:[i],length:i.length,offset:i.offset}),r=Number(n.offset)+Number(n.length);return t}function mh(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new PU("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const jU=1,HU=2,GU=3;function wm(e,t,n,r){return e<r&&t>=n}function $U(e){const t=e?"big":"little",n=new ae().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new ae().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new ae().endianess(t).array("blocksToFetch",{length:"cnt",type:new ae().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new ae().array("recurOffsets",{length:"cnt",type:new ae().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new ae().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new ae().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[GU]:new ae().array("items",{length:"itemCount",type:new ae().floatle("score")}),[HU]:new ae().array("items",{length:"itemCount",type:new ae().endianess(t).int32("start").floatle("score")}),[jU]:new ae().array("items",{length:"itemCount",type:new ae().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class EE{constructor(t,n,r,i,a,o){if(this.bbi=t,this.refsByName=n,this.cirTreeOffset=r,this.isBigEndian=i,this.isCompressed=a,this.blockType=o,this.featureCache=new Gg({cache:new t4({maxSize:1e3}),fill:async(l,c)=>{const u=Number(l.length),f=Number(l.offset),{buffer:h}=await this.bbi.read(Vt.Buffer.alloc(u),0,u,f,{signal:c});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const s=$U(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(t,n,r,i,a){try{const{refsByName:o,bbi:s,cirTreeOffset:l,isBigEndian:c}=this,u=o[t];u===void 0&&i.complete();const f={chrId:u,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=s.read(Vt.Buffer.alloc(48),0,48,Number(l),a));const{buffer:h}=await this.cirTreePromise,d=c?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],g=0;const y=(C,E,w)=>{try{const A=C.subarray(E),T=this.leafParser.parse(A);if(T.blocksToFetch&&(p=p.concat(T.blocksToFetch.filter(D=>v(D)).map(D=>({offset:D.blockOffset,length:D.blockSize})))),T.recurOffsets){const D=T.recurOffsets.filter(M=>v(M)).map(M=>Number(M.blockOffset));D.length>0&&k(D,w+1)}}catch(A){i.error(A)}},v=C=>{const{startChrom:E,startBase:w,endChrom:A,endBase:T}=C;return(E<u||E===u&&w<=r)&&(A>u||A===u&&T>=n)},S=async(C,E,w)=>{try{const A=E.max()-E.min(),T=E.min(),D=await this.featureCache.get(`${A}_${T}`,{length:A,offset:T},a==null?void 0:a.signal);for(const M of C)E.contains(M)&&(y(D,M-T,w),g-=1,g===0&&this.readFeatures(i,p,{...a,request:f}))}catch(A){i.error(A)}},k=(C,E)=>{try{g+=C.length;const w=4+Number(d)*32;let A=new Ei(C[0],C[0]+w);for(let T=1;T<C.length;T+=1){const D=new Ei(C[T],C[T]+w);A=A.union(D)}A.getRanges().map(T=>S(C,T,E))}catch(w){i.error(w)}};return k([Number(l)+48],1)}catch(o){i.error(o)}}parseSummaryBlock(t,n,r){const i=[];let a=n;const o=new DataView(t.buffer,t.byteOffset,t.length);for(;a<t.byteLength;){const s=o.getUint32(a,!0);a+=4;const l=o.getUint32(a,!0);a+=4;const c=o.getUint32(a,!0);a+=4;const u=o.getUint32(a,!0);a+=4;const f=o.getFloat32(a,!0);a+=4;const h=o.getFloat32(a,!0);a+=4;const d=o.getFloat32(a,!0);a+=4,a+=4,(!r||s===r.chrId&&wm(l,c,r.start,r.end))&&i.push({start:l,end:c,maxScore:h,minScore:f,summary:!0,score:d/(u||1)})}return i}parseBigBedBlock(t,n,r,i){const a=[];let o=n;for(;o<t.byteLength;){const s=this.bigBedParser.parse(t.subarray(o));a.push({...s,uniqueId:`bb-${r+o}`}),o+=s.offset}return i?a.filter(s=>wm(s.start,s.end,i.start,i.end)):a}parseBigWigBlock(t,n,r){const i=t.subarray(n),a=new DataView(i.buffer,i.byteOffset,i.length);let o=0;o+=4;const s=a.getInt32(o,!0);o+=8;const l=a.getUint32(o,!0);o+=4;const c=a.getUint32(o,!0);o+=4;const u=a.getUint8(o);o+=2;const f=a.getUint16(o,!0);o+=2;const h=new Array(f);switch(u){case 1:{for(let d=0;d<f;d++){const p=a.getInt32(o,!0);o+=4;const g=a.getInt32(o,!0);o+=4;const y=a.getFloat32(o,!0);o+=4,h[d]={start:p,end:g,score:y}}break}case 2:{for(let d=0;d<f;d++){const p=a.getInt32(o,!0);o+=4;const g=a.getFloat32(o,!0);o+=4,h[d]={score:g,start:p,end:p+c}}break}case 3:{for(let d=0;d<f;d++){const p=a.getFloat32(o,!0);o+=4;const g=s+d*l;h[d]={score:p,start:g,end:g+c}}break}}return r?h.filter(d=>wm(d.start,d.end,r.start,r.end)):h}async readFeatures(t,n,r={}){try{const{blockType:i,isCompressed:a}=this,{signal:o,request:s}=r,l=UU(n);mh(o),await Promise.all(l.map(async c=>{mh(o);const{length:u,offset:f}=c,h=await this.featureCache.get(`${u}_${f}`,c,o);for(const d of c.blocks){mh(o);let p=Number(d.offset)-Number(c.offset),g=h;switch(a&&(g=zU(h.subarray(p)),p=0),mh(o),i){case"summary":{t.next(this.parseSummaryBlock(g,p,s));break}case"bigwig":{t.next(this.parseBigWigBlock(g,p,s));break}case"bigbed":{t.next(this.parseBigBedBlock(g,p,Number(d.offset)*(1<<8),s));break}default:console.warn(`Don't know what to do with ${i}`)}}})),t.complete()}catch(i){t.error(i)}}}var xm=function(e,t){return xm=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[i]=r[i])},xm(e,t)};function Am(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");xm(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function VU(e,t,n,r){function i(a){return a instanceof n?a:new n(function(o){o(a)})}return new(n||(n=Promise))(function(a,o){function s(u){try{c(r.next(u))}catch(f){o(f)}}function l(u){try{c(r.throw(u))}catch(f){o(f)}}function c(u){u.done?a(u.value):i(u.value).then(s,l)}c((r=r.apply(e,t||[])).next())})}function SE(e,t){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,i,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(c){return function(u){return l([c,u])}}function l(c){if(r)throw new TypeError("Generator is already executing.");for(;n;)try{if(r=1,i&&(a=c[0]&2?i.return:c[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,c[1])).done)return a;switch(i=0,a&&(c=[c[0]&2,a.value]),c[0]){case 0:case 1:a=c;break;case 4:return n.label++,{value:c[1],done:!1};case 5:n.label++,i=c[1],c=[0];continue;case 7:c=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(c[0]===6||c[0]===2)){n=0;continue}if(c[0]===3&&(!a||c[1]>a[0]&&c[1]<a[3])){n.label=c[1];break}if(c[0]===6&&n.label<a[1]){n.label=a[1],a=c;break}if(a&&n.label<a[2]){n.label=a[2],n.ops.push(c);break}a[2]&&n.ops.pop(),n.trys.pop();continue}c=t.call(e,n)}catch(u){c=[6,u],i=0}finally{r=a=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}function Dl(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function bh(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(s){o={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a}function yh(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||(a=Array.prototype.slice.call(t,0,r)),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}function ls(e){return this instanceof ls?(this.v=e,this):new ls(e)}function YU(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),i,a=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(h){r[h]&&(i[h]=function(d){return new Promise(function(p,g){a.push([h,d,p,g])>1||s(h,d)})})}function s(h,d){try{l(r[h](d))}catch(p){f(a[0][3],p)}}function l(h){h.value instanceof ls?Promise.resolve(h.value.v).then(c,u):f(a[0][2],h)}function c(h){s("next",h)}function u(h){s("throw",h)}function f(h,d){h(d),a.shift(),a.length&&s(a[0][0],a[0][1])}}function QU(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof Dl=="function"?Dl(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(a){n[a]=e[a]&&function(o){return new Promise(function(s,l){o=e[a](o),i(s,l,o.done,o.value)})}}function i(a,o,s,l){Promise.resolve(l).then(function(c){a({value:c,done:s})},o)}}function ot(e){return typeof e=="function"}function CE(e){var t=function(r){Error.call(r),r.stack=new Error().stack},n=e(t);return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var Em=CE(function(e){return function(n){e(this),this.message=n?n.length+` errors occurred during unsubscription:
1384
+ `+n.map(function(r,i){return i+1+") "+r.toString()}).join(`
1385
+ `):"",this.name="UnsubscriptionError",this.errors=n}});function _E(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var Sm=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,n,r,i,a;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var s=Dl(o),l=s.next();!l.done;l=s.next()){var c=l.value;c.remove(this)}}catch(g){t={error:g}}finally{try{l&&!l.done&&(n=s.return)&&n.call(s)}finally{if(t)throw t.error}}else o.remove(this);var u=this.initialTeardown;if(ot(u))try{u()}catch(g){a=g instanceof Em?g.errors:[g]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var h=Dl(f),d=h.next();!d.done;d=h.next()){var p=d.value;try{DE(p)}catch(g){a=a??[],g instanceof Em?a=yh(yh([],bh(a)),bh(g.errors)):a.push(g)}}}catch(g){r={error:g}}finally{try{d&&!d.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}}if(a)throw new Em(a)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)DE(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(t)}},e.prototype._hasParent=function(t){var n=this._parentage;return n===t||Array.isArray(n)&&n.includes(t)},e.prototype._addParent=function(t){var n=this._parentage;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t},e.prototype._removeParent=function(t){var n=this._parentage;n===t?this._parentage=null:Array.isArray(n)&&_E(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&_E(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();Sm.EMPTY;function kE(e){return e instanceof Sm||e&&"closed"in e&&ot(e.remove)&&ot(e.add)&&ot(e.unsubscribe)}function DE(e){ot(e)?e():e.unsubscribe()}var IE={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Cm={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=Cm.delegate;return i!=null&&i.setTimeout?i.setTimeout.apply(i,yh([e,t],bh(n))):setTimeout.apply(void 0,yh([e,t],bh(n)))},clearTimeout:function(e){var t=Cm.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function TE(e){Cm.setTimeout(function(){throw e})}function ME(){}function ZU(e){e()}var _m=function(e){Am(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,kE(n)&&n.add(r)):r.destination=KU,r}return t.create=function(n,r,i){return new vh(n,r,i)},t.prototype.next=function(n){this.isStopped||this._next(n)},t.prototype.error=function(n){this.isStopped||(this.isStopped=!0,this._error(n))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(n){this.destination.next(n)},t.prototype._error=function(n){try{this.destination.error(n)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(Sm),qU=Function.prototype.bind;function km(e,t){return qU.call(e,t)}var WU=function(){function e(t){this.partialObserver=t}return e.prototype.next=function(t){var n=this.partialObserver;if(n.next)try{n.next(t)}catch(r){wh(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){wh(r)}else wh(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){wh(n)}},e}(),vh=function(e){Am(t,e);function t(n,r,i){var a=e.call(this)||this,o;if(ot(n)||!n)o={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;a&&IE.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return a.unsubscribe()},o={next:n.next&&km(n.next,s),error:n.error&&km(n.error,s),complete:n.complete&&km(n.complete,s)}):o=n}return a.destination=new WU(o),a}return t}(_m);function wh(e){TE(e)}function XU(e){throw e}var KU={closed:!0,next:ME,error:XU,complete:ME},Dm=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function NE(e){return e}function JU(e){return e.length===0?NE:e.length===1?e[0]:function(n){return e.reduce(function(r,i){return i(r)},n)}}var gn=function(){function e(t){t&&(this._subscribe=t)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(t,n,r){var i=this,a=tj(t)?t:new vh(t,n,r);return ZU(function(){var o=i,s=o.operator,l=o.source;a.add(s?s.call(a,l):l?i._subscribe(a):i._trySubscribe(a))}),a},e.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(n){t.error(n)}},e.prototype.forEach=function(t,n){var r=this;return n=FE(n),new n(function(i,a){var o=new vh({next:function(s){try{t(s)}catch(l){a(l),o.unsubscribe()}},error:a,complete:i});r.subscribe(o)})},e.prototype._subscribe=function(t){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(t)},e.prototype[Dm]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return JU(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=FE(t),new t(function(r,i){var a;n.subscribe(function(o){return a=o},function(o){return i(o)},function(){return r(a)})})},e.create=function(t){return new e(t)},e}();function FE(e){var t;return(t=e??IE.Promise)!==null&&t!==void 0?t:Promise}function ej(e){return e&&ot(e.next)&&ot(e.error)&&ot(e.complete)}function tj(e){return e&&e instanceof _m||ej(e)&&kE(e)}function nj(e){return ot(e==null?void 0:e.lift)}function us(e){return function(t){if(nj(t))return t.lift(function(n){try{return e(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function Il(e,t,n,r,i){return new rj(e,t,n,r,i)}var rj=function(e){Am(t,e);function t(n,r,i,a,o,s){var l=e.call(this,n)||this;return l.onFinalize=o,l.shouldUnsubscribe=s,l._next=r?function(c){try{r(c)}catch(u){n.error(u)}}:e.prototype._next,l._error=a?function(c){try{a(c)}catch(u){n.error(u)}finally{this.unsubscribe()}}:e.prototype._error,l._complete=i?function(){try{i()}catch(c){n.error(c)}finally{this.unsubscribe()}}:e.prototype._complete,l}return t.prototype.unsubscribe=function(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;e.prototype.unsubscribe.call(this),!r&&((n=this.onFinalize)===null||n===void 0||n.call(this))}},t}(_m),ij=new gn(function(e){return e.complete()});function aj(e){return e&&ot(e.schedule)}function BE(e){return e[e.length-1]}function oj(e){return aj(BE(e))?e.pop():void 0}function sj(e,t){return typeof BE(e)=="number"?e.pop():t}var LE=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function OE(e){return ot(e==null?void 0:e.then)}function RE(e){return ot(e[Dm])}function zE(e){return Symbol.asyncIterator&&ot(e==null?void 0:e[Symbol.asyncIterator])}function PE(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function cj(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var UE=cj();function jE(e){return ot(e==null?void 0:e[UE])}function HE(e){return YU(this,arguments,function(){var n,r,i,a;return SE(this,function(o){switch(o.label){case 0:n=e.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,ls(n.read())];case 3:return r=o.sent(),i=r.value,a=r.done,a?[4,ls(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,ls(i)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function GE(e){return ot(e==null?void 0:e.getReader)}function fs(e){if(e instanceof gn)return e;if(e!=null){if(RE(e))return lj(e);if(LE(e))return uj(e);if(OE(e))return fj(e);if(zE(e))return $E(e);if(jE(e))return hj(e);if(GE(e))return dj(e)}throw PE(e)}function lj(e){return new gn(function(t){var n=e[Dm]();if(ot(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function uj(e){return new gn(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function fj(e){return new gn(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,TE)})}function hj(e){return new gn(function(t){var n,r;try{for(var i=Dl(e),a=i.next();!a.done;a=i.next()){var o=a.value;if(t.next(o),t.closed)return}}catch(s){n={error:s}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}t.complete()})}function $E(e){return new gn(function(t){pj(e,t).catch(function(n){return t.error(n)})})}function dj(e){return $E(HE(e))}function pj(e,t){var n,r,i,a;return VU(this,void 0,void 0,function(){var o,s;return SE(this,function(l){switch(l.label){case 0:l.trys.push([0,5,6,11]),n=QU(e),l.label=1;case 1:return[4,n.next()];case 2:if(r=l.sent(),!!r.done)return[3,4];if(o=r.value,t.next(o),t.closed)return[2];l.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=l.sent(),i={error:s},[3,11];case 6:return l.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:l.sent(),l.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})}function Ii(e,t,n,r,i){r===void 0&&(r=0),i===void 0&&(i=!1);var a=t.schedule(function(){n(),i?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(a),!i)return a}function VE(e,t){return t===void 0&&(t=0),us(function(n,r){n.subscribe(Il(r,function(i){return Ii(r,e,function(){return r.next(i)},t)},function(){return Ii(r,e,function(){return r.complete()},t)},function(i){return Ii(r,e,function(){return r.error(i)},t)}))})}function YE(e,t){return t===void 0&&(t=0),us(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function gj(e,t){return fs(e).pipe(YE(t),VE(t))}function mj(e,t){return fs(e).pipe(YE(t),VE(t))}function bj(e,t){return new gn(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function yj(e,t){return new gn(function(n){var r;return Ii(n,t,function(){r=e[UE](),Ii(n,t,function(){var i,a,o;try{i=r.next(),a=i.value,o=i.done}catch(s){n.error(s);return}o?n.complete():n.next(a)},0,!0)}),function(){return ot(r==null?void 0:r.return)&&r.return()}})}function QE(e,t){if(!e)throw new Error("Iterable cannot be null");return new gn(function(n){Ii(n,t,function(){var r=e[Symbol.asyncIterator]();Ii(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function vj(e,t){return QE(HE(e),t)}function wj(e,t){if(e!=null){if(RE(e))return gj(e,t);if(LE(e))return bj(e,t);if(OE(e))return mj(e,t);if(zE(e))return QE(e,t);if(jE(e))return yj(e,t);if(GE(e))return vj(e,t)}throw PE(e)}function xj(e,t){return t?wj(e,t):fs(e)}var Aj=CE(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function ZE(e,t){var n=typeof t=="object";return new Promise(function(r,i){var a=new vh({next:function(o){r(o),a.unsubscribe()},error:i,complete:function(){n?r(t.defaultValue):i(new Aj)}});e.subscribe(a)})}function qE(e,t){return us(function(n,r){var i=0;n.subscribe(Il(r,function(a){r.next(e.call(t,a,i++))}))})}function Ej(e,t,n,r,i,a,o,s){var l=[],c=0,u=0,f=!1,h=function(){f&&!l.length&&!c&&t.complete()},d=function(g){return c<r?p(g):l.push(g)},p=function(g){a&&t.next(g),c++;var y=!1;fs(n(g,u++)).subscribe(Il(t,function(v){i==null||i(v),a?d(v):t.next(v)},function(){y=!0},void 0,function(){if(y)try{c--;for(var v=function(){var S=l.shift();o?Ii(t,o,function(){return p(S)}):p(S)};l.length&&c<r;)v();h()}catch(S){t.error(S)}}))};return e.subscribe(Il(t,d,function(){f=!0,h()})),function(){s==null||s()}}function WE(e,t,n){return n===void 0&&(n=1/0),ot(t)?WE(function(r,i){return qE(function(a,o){return t(r,a,i,o)})(fs(e(r,i)))},n):(typeof t=="number"&&(n=t),us(function(r,i){return Ej(r,i,e,n)}))}function Sj(e){return e===void 0&&(e=1/0),WE(NE,e)}function Cj(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=oj(e),r=sj(e,1/0),i=e;return i.length?i.length===1?fs(i[0]):Sj(r)(xj(i,n)):ij}function _j(e,t,n,r,i){return function(a,o){var s=n,l=t,c=0;a.subscribe(Il(o,function(u){var f=c++;l=s?e(l,u,f):(s=!0,u),r&&o.next(l)},i&&function(){s&&o.next(l),o.complete()}))}}function XE(e,t){return us(_j(e,t,arguments.length>=2,!1,!0))}var kj=function(e,t){return e.push(t),e};function Dj(){return us(function(e,t){XE(kj,[])(e).subscribe(t)})}const KE=-2003829722,Im=-2021002517;function Ij(e){return new TextDecoder().decode(e)}function JE(e){const t=e?"big":"little",n=new ae().endianess(t).int32("magic").uint16("version").uint16("numZoomLevels").uint64("chromTreeOffset").uint64("unzoomedDataOffset").uint64("unzoomedIndexOffset").uint16("fieldCount").uint16("definedFieldCount").uint64("asOffset").uint64("totalSummaryOffset").uint32("uncompressBufSize").uint64("extHeaderOffset").array("zoomLevels",{length:"numZoomLevels",type:new ae().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new ae().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new ae().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),a=new ae().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:a}}class eS{getHeader(t){return this.headerP||(this.headerP=this._getHeader(t).catch(n=>{throw this.headerP=void 0,n})),this.headerP}constructor(t){const{filehandle:n,renameRefSeqs:r=o=>o,path:i,url:a}=t;if(this.renameRefSeqs=r,n)this.bbi=n;else if(a)this.bbi=new kr(a);else if(i)this.bbi=new gi(i);else throw new Error("no file given")}async _getHeader(t){const n=await this._getMainHeader(t),r=await this._readChromTree(n,t);return{...n,...r}}async _getMainHeader(t,n=2e3){const{buffer:r}=await this.bbi.read(Vt.Buffer.alloc(n),0,n,0,t),i=this._isBigEndian(r),a=JE(i),o=a.headerParser.parse(r),{magic:s,asOffset:l,totalSummaryOffset:c}=o;if(o.fileType=s===Im?"bigbed":"bigwig",l>n||c>n)return this._getMainHeader(t,n*2);if(l){const u=Number(o.asOffset);o.autoSql=Ij(r.subarray(u,r.indexOf(0,u)))}if(o.totalSummaryOffset>n)return this._getMainHeader(t,n*2);if(o.totalSummaryOffset){const u=r.subarray(Number(o.totalSummaryOffset)),f=a.totalSummaryParser.parse(u);o.totalSummary={...f,basesCovered:Number(f.basesCovered)}}return{...o,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===KE||n===Im)return!1;if(n=t.readInt32BE(0),n===KE||n===Im)return!0;throw new Error("not a BigWig/BigBed file")}async _readChromTree(t,n){const r=t.isBigEndian,i=r?"big":"little",a=[],o={};let s=Number(t.unzoomedDataOffset);const l=Number(t.chromTreeOffset);for(;s%4!==0;)s+=1;const c=s-l,{buffer:u}=await this.bbi.read(Vt.Buffer.alloc(c),0,c,Number(l),n),f=JE(r),{keySize:h}=f.chromTreeParser.parse(u),d=new ae().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new ae().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),g=32,y=async v=>{let S=v;if(S>=u.length)throw new Error("reading beyond end of buffer");const k=f.isLeafNode.parse(u.subarray(S)),{isLeafNode:C,cnt:E}=k;if(S+=k.offset,C)for(let w=0;w<E;w+=1){const A=d.parse(u.subarray(S));S+=A.offset;const{key:T,refId:D,refSize:M}=A,F={name:T,id:D,length:M};o[this.renameRefSeqs(T)]=D,a[D]=F}else{const w=[];for(let A=0;A<E;A+=1){const T=p.parse(u.subarray(S)),{childOffset:D}=T;S+=T.offset,w.push(y(Number(D)-Number(l)))}await Promise.all(w)}};return await y(g),{refsByName:o,refsByNumber:a}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:a,fileType:o}=await this.getHeader(t);return new EE(this.bbi,r,n,a,i>0,o)}async getFeatureStream(t,n,r,i){await this.getHeader(i);const a=this.renameRefSeqs(t);let o;const{basesPerSpan:s,scale:l}=i||{};return s?o=await this.getView(1/s,i):l?o=await this.getView(l,i):o=await this.getView(1,i),new gn(c=>{o.readWigData(a,n,r,c,i)})}async getFeatures(t,n,r,i){const a=await this.getFeatureStream(t,n,r,i);return(await ZE(a.pipe(Dj()))).flat()}}class Tj extends eS{async getView(t,n){const{zoomLevels:r,refsByName:i,fileSize:a,isBigEndian:o,uncompressBufSize:s}=await this.getHeader(n),l=1/t;let c=r.length;a||(c-=1);for(let u=c;u>=0;u-=1){const f=r[u];if(f&&f.reductionLevel<=2*l){const h=Number(f.indexOffset);return new EE(this.bbi,i,h,o,s>0,"summary")}}return this.getUnzoomedView(n)}}function Mj(e){return e.filter(t=>!!t)}class Nj extends eS{constructor(){super(...arguments),this.readIndicesCache=new Gg({cache:new t4({maxSize:1}),fill:(t,n)=>this._readIndices({...t,signal:n})})}readIndices(t={}){const{signal:n,...r}=t;return this.readIndicesCache.get(JSON.stringify(r),t,n)}async getView(t,n){return this.getUnzoomedView(n)}async _readIndices(t){const{extHeaderOffset:n,isBigEndian:r}=await this.getHeader(t),{buffer:i}=await this.bbi.read(Vt.Buffer.alloc(64),0,64,Number(n)),a=r?"big":"little",o=new ae().endianess(a).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:l}=o;if(s===0)return[];const c=20,u=c*s,{buffer:f}=await this.bbi.read(Vt.Buffer.alloc(u),0,u,Number(l)),h=new ae().endianess(a).int16("type").int16("fieldcount").uint64("offset").skip(4).int16("field"),d=[];for(let p=0;p<s;p+=1)d.push(h.parse(f.subarray(p*c)));return d}async searchExtraIndexBlocks(t,n={}){const{isBigEndian:r}=await this.getHeader(n),i=await this.readIndices(n);if(i.length===0)return[];const a=i.map(async o=>{const{offset:s,field:l}=o,{buffer:c}=await this.bbi.read(Vt.Buffer.alloc(32),0,32,Number(s),n),u=r?"big":"little",f=new ae().endianess(u).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=f.parse(c),g=new ae().endianess(u).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new ae().array("leafkeys",{length:"cnt",type:new ae().endianess(u).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new ae().array("keys",{length:"cnt",type:new ae().endianess(u).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),y=async S=>{const k=Number(S),C=4+h*(d+p),{buffer:E}=await this.bbi.read(Vt.Buffer.alloc(C),0,C,k,n),w=g.parse(E);if(w.leafkeys){let A;for(let T=0;T<w.leafkeys.length;T+=1){const{key:D}=w.leafkeys[T];if(t.localeCompare(D)<0&&A)return y(A);A=w.leafkeys[T].offset}return y(A)}for(let A=0;A<w.keys.length;A+=1)if(w.keys[A].key===t)return{...w.keys[A],field:l}},v=32;return y(Number(s)+v)});return Mj(await Promise.all(a))}async searchExtraIndex(t,n={}){const r=await this.searchExtraIndexBlocks(t,n);if(r.length===0)return[];const i=await this.getUnzoomedView(n),a=r.map(s=>new gn(l=>{i.readFeatures(l,[s],n)}).pipe(XE((l,c)=>l.concat(c)),qE(l=>{for(const c of l)c.field=s.field;return l})));return(await ZE(Cj(...a))).filter(s=>{var l;return((l=s.rest)===null||l===void 0?void 0:l.split(" ")[(s.field||0)-3])===t})}}function hs(e,t,n=!0){let r,i=o=>{};return function(...s){return new Promise((l,c)=>{const u=()=>{clearTimeout(r),i=f=>{},l(e(...s))};n&&i("debounced"),clearTimeout(r),i=c,r=setTimeout(u,t)})}}class Fj extends Xf(Po){constructor(n,r){const i={pixelsPerBin:2,channel:"x",...n};super(r,i.channel);En(this,"reductionLevels",[]);En(this,"lastRequestId",0);if(this.params=i,!this.params.url)throw new Error("No URL provided for BigWigSource");this.bbi=new Tj({filehandle:new kr(Ko(this.params.url,this.view.getBaseUrl()))}),this.doDebouncedRequest=hs(this.doRequest.bind(this),200,!1),this.headerPromise=this.bbi.getHeader(),this.headerPromise.then(a=>{this.reductionLevels=a.zoomLevels.map(o=>o.reductionLevel).reverse(),this.reductionLevels.push(1)})}async onDomainChanged(n){await this.headerPromise;const r=this.getAxisLength()||700,i=Bj(n,r,this.reductionLevels),a=Math.max(i*r,5e3),o=this.quantizeInterval(n,a);this.checkAndUpdateLastInterval(o)&&this.doDebouncedRequest(o,i)}async doRequest(n,r){const i=await this.getFeatures(n,.5/r/this.params.pixelsPerBin);i.requestId<this.lastRequestId||this.publishData(i.features)}async getFeatures(n,r){let i=++this.lastRequestId;const a=new AbortController,o=this.genome.continuousToDiscreteChromosomeIntervals(n),s=await Promise.all(o.map(l=>this.bbi.getFeatures(l.chrom,l.startPos,l.endPos,{scale:r,signal:a.signal}).then(c=>c.map(u=>({chrom:l.chrom,start:u.start,end:u.end,score:u.score})))));return{requestId:i,abort:()=>a.abort(),features:s.flat()}}}function Bj(e,t,n){const r=(e[1]-e[0])/t;return n.find(i=>i<r)??n.at(-1)}function Lj(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function ds(e,t,n,r){this.message=e,this.expected=t,this.found=n,this.location=r,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ds)}Lj(ds,Error),ds.buildMessage=function(e,t){var n={literal:function(c){return'"'+i(c.text)+'"'},class:function(c){var u="",f;for(f=0;f<c.parts.length;f++)u+=c.parts[f]instanceof Array?a(c.parts[f][0])+"-"+a(c.parts[f][1]):a(c.parts[f]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function r(c){return c.charCodeAt(0).toString(16).toUpperCase()}function i(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+r(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+r(u)})}function a(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+r(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+r(u)})}function o(c){return n[c.type](c)}function s(c){var u=new Array(c.length),f,h;for(f=0;f<c.length;f++)u[f]=o(c[f]);if(u.sort(),u.length>0){for(f=1,h=1;f<u.length;f++)u[f-1]!==u[f]&&(u[h]=u[f],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+i(c)+'"':"end of input"}return"Expected "+s(e)+" but "+l(t)+" found."};function Oj(e,t){t=t!==void 0?t:{};var n={},r={declaration:r_},i=r_,a="(",o=Ce("(",!1),s=")",l=Ce(")",!1),c=function(_,O,$,Y){return{type:_,name:O,comment:$,fields:Y}},u="simple",f=Ce("simple",!1),h="object",d=Ce("object",!1),p="table",g=Ce("table",!1),y="auto",v=Ce("auto",!1),S="primary",k=Ce("primary",!1),C="index",E=Ce("index",!1),w="unique",A=Ce("unique",!1),T=function(_,O){return O},D=function(_,O){return _.name&&O.unshift(_),O},M="#",F=Ce("#",!1),U=";",q=Ce(";",!1),V=function(_,O,$){return{type:_,name:O,comment:$}},pe="[",Se=Ce("[",!1),tt="]",ie=Ce("]",!1),yt=function(_,O,$,Y){return{type:_,size:O,name:$,comment:Y}},Vr=function(_,O,$,Y){return{type:_,vals:O,name:$,comment:Y}},De=",",Xe=Ce(",",!1),Pi=function(_,O){return O.unshift(_),O},so="int",Bs=Ce("int",!1),co="uint",Ls=Ce("uint",!1),jn="short",Q=Ce("short",!1),re="ushort",ue=Ce("ushort",!1),j="byte",Qe=Ce("byte",!1),de="ubyte",vt=Ce("ubyte",!1),dt="float",Kt=Ce("float",!1),lo="char",Ab=Ce("char",!1),su="string",Os=Ce("string",!1),Jt="lstring",cu=Ce("lstring",!1),dd="enum",mr=Ce("enum",!1),pd="double",x=Ce("double",!1),m="bigint",b=Ce("bigint",!1),I="set",B=Ce("set",!1),L=function(_,O){return _+" "+O},P=/^[a-zA-Z_]/,oe=lu([["a","z"],["A","Z"],"_"],!1,!1),Re=/^[a-zA-Z0-9_]/,Ie=lu([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$e=function(_){return J8()},Ae=/^[^\n\r]/,Z8=lu([`
1386
+ `,"\r"],!0,!1),NZ=function(_){return _.join("").replace(/^"/,"").replace(/"$/,"")},FZ=e_("integer"),q8=/^[0-9]/,W8=lu([["0","9"]],!1,!1),BZ=function(){return parseInt(J8(),10)},LZ=e_("whitespace"),X8=/^[ \t\n\r]/,K8=lu([" "," ",`
1387
+ `,"\r"],!1,!1),N=0,It=0,gd=[{line:1,column:1}],br=0,Eb=[],J=0,md;if("startRule"in t){if(!(t.startRule in r))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');i=r[t.startRule]}function J8(){return e.substring(It,N)}function Ce(_,O){return{type:"literal",text:_,ignoreCase:O}}function lu(_,O,$){return{type:"class",parts:_,inverted:O,ignoreCase:$}}function OZ(){return{type:"end"}}function e_(_){return{type:"other",description:_}}function t_(_){var O=gd[_],$;if(O)return O;for($=_-1;!gd[$];)$--;for(O=gd[$],O={line:O.line,column:O.column};$<_;)e.charCodeAt($)===10?(O.line++,O.column=1):O.column++,$++;return gd[_]=O,O}function n_(_,O){var $=t_(_),Y=t_(O);return{start:{offset:_,line:$.line,column:$.column},end:{offset:O,line:Y.line,column:Y.column}}}function ee(_){N<br||(N>br&&(br=N,Eb=[]),Eb.push(_))}function RZ(_,O,$){return new ds(ds.buildMessage(_,O),_,O,$)}function r_(){var _,O,$,Y,K,Ne,Ve,An,Ui,Yr,ji,Qr,Hi,Zr;return _=N,O=ge(),O!==n?($=i_(),$!==n?(Y=ge(),Y!==n?(K=a_(),K!==n?(Ne=ge(),Ne!==n?(Ve=bd(),Ve!==n?(An=ge(),An!==n?(e.charCodeAt(N)===40?(Ui=a,N++):(Ui=n,J===0&&ee(o)),Ui!==n?(Yr=ge(),Yr!==n?(ji=zZ(),ji!==n?(Qr=ge(),Qr!==n?(e.charCodeAt(N)===41?(Hi=s,N++):(Hi=n,J===0&&ee(l)),Hi!==n?(Zr=ge(),Zr!==n?(It=_,O=c($,K,Ve,ji),_=O):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n),_}function i_(){var _;return e.substr(N,6)===u?(_=u,N+=6):(_=n,J===0&&ee(f)),_===n&&(e.substr(N,6)===h?(_=h,N+=6):(_=n,J===0&&ee(d)),_===n&&(e.substr(N,5)===p?(_=p,N+=5):(_=n,J===0&&ee(g)))),_}function a_(){var _,O,$,Y;return _=Hn(),_===n&&(_=N,O=Hn(),O!==n?($=o_(),$!==n?(O=[O,$],_=O):(N=_,_=n)):(N=_,_=n),_===n&&(_=N,O=Hn(),O!==n?(e.substr(N,4)===y?($=y,N+=4):($=n,J===0&&ee(v)),$!==n?(O=[O,$],_=O):(N=_,_=n)):(N=_,_=n),_===n&&(_=N,O=Hn(),O!==n?($=o_(),$!==n?(e.substr(N,4)===y?(Y=y,N+=4):(Y=n,J===0&&ee(v)),Y!==n?(O=[O,$,Y],_=O):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)))),_}function o_(){var _;return e.substr(N,7)===S?(_=S,N+=7):(_=n,J===0&&ee(k)),_===n&&(e.substr(N,5)===C?(_=C,N+=5):(_=n,J===0&&ee(E)),_===n&&(e.substr(N,6)===w?(_=w,N+=6):(_=n,J===0&&ee(A)))),_}function bd(){var _;return _=s_(),_===n&&(_=ge()),_}function zZ(){var _,O,$,Y,K,Ne,Ve;if(_=N,O=Sb(),O!==n)if($=ge(),$!==n){for(Y=[],K=N,Ne=ge(),Ne!==n?(Ve=Sb(),Ve!==n?(It=K,Ne=T(O,Ve),K=Ne):(N=K,K=n)):(N=K,K=n);K!==n;)Y.push(K),K=N,Ne=ge(),Ne!==n?(Ve=Sb(),Ve!==n?(It=K,Ne=T(O,Ve),K=Ne):(N=K,K=n)):(N=K,K=n);Y!==n?(K=ge(),K!==n?(It=_,O=D(O,Y),_=O):(N=_,_=n)):(N=_,_=n)}else N=_,_=n;else N=_,_=n;return _}function PZ(){var _;return e.charCodeAt(N)===35?(_=M,N++):(_=n,J===0&&ee(F)),_}function UZ(){var _,O,$,Y,K;return _=N,O=ge(),O!==n?($=PZ(),$!==n?(Y=s_(),Y!==n?(K=ge(),K!==n?(O=[O,$,Y,K],_=O):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n),_}function Sb(){var _,O,$,Y,K,Ne,Ve,An,Ui,Yr,ji,Qr,Hi,Zr;return _=N,O=Cb(),O!==n?($=ge(),$!==n?(Y=Hn(),Y!==n?(K=ge(),K!==n?(e.charCodeAt(N)===59?(Ne=U,N++):(Ne=n,J===0&&ee(q)),Ne!==n?(Ve=ge(),Ve!==n?(An=bd(),An!==n?(It=_,O=V(O,Y,An),_=O):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n),_===n&&(_=N,O=Cb(),O!==n?($=ge(),$!==n?(e.charCodeAt(N)===91?(Y=pe,N++):(Y=n,J===0&&ee(Se)),Y!==n?(K=ge(),K!==n?(Ne=HZ(),Ne!==n?(Ve=ge(),Ve!==n?(e.charCodeAt(N)===93?(An=tt,N++):(An=n,J===0&&ee(ie)),An!==n?(Ui=ge(),Ui!==n?(Yr=Hn(),Yr!==n?(ji=ge(),ji!==n?(e.charCodeAt(N)===59?(Qr=U,N++):(Qr=n,J===0&&ee(q)),Qr!==n?(Hi=ge(),Hi!==n?(Zr=bd(),Zr!==n?(It=_,O=yt(O,Ne,Yr,Zr),_=O):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n),_===n&&(_=N,O=Cb(),O!==n?($=ge(),$!==n?(e.charCodeAt(N)===40?(Y=a,N++):(Y=n,J===0&&ee(o)),Y!==n?(K=ge(),K!==n?(Ne=jZ(),Ne!==n?(Ve=ge(),Ve!==n?(e.charCodeAt(N)===41?(An=s,N++):(An=n,J===0&&ee(l)),An!==n?(Ui=ge(),Ui!==n?(Yr=Hn(),Yr!==n?(ji=ge(),ji!==n?(e.charCodeAt(N)===59?(Qr=U,N++):(Qr=n,J===0&&ee(q)),Qr!==n?(Hi=ge(),Hi!==n?(Zr=bd(),Zr!==n?(It=_,O=Vr(O,Ne,Yr,Zr),_=O):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n)):(N=_,_=n),_===n&&(_=UZ()))),_}function jZ(){var _,O,$,Y,K,Ne,Ve;if(_=N,O=Hn(),O!==n){for($=[],Y=N,e.charCodeAt(N)===44?(K=De,N++):(K=n,J===0&&ee(Xe)),K!==n?(Ne=ge(),Ne!==n?(Ve=Hn(),Ve!==n?(It=Y,K=T(O,Ve),Y=K):(N=Y,Y=n)):(N=Y,Y=n)):(N=Y,Y=n);Y!==n;)$.push(Y),Y=N,e.charCodeAt(N)===44?(K=De,N++):(K=n,J===0&&ee(Xe)),K!==n?(Ne=ge(),Ne!==n?(Ve=Hn(),Ve!==n?(It=Y,K=T(O,Ve),Y=K):(N=Y,Y=n)):(N=Y,Y=n)):(N=Y,Y=n);$!==n?(It=_,O=Pi(O,$),_=O):(N=_,_=n)}else N=_,_=n;return _}function Cb(){var _,O,$,Y;return e.substr(N,3)===so?(_=so,N+=3):(_=n,J===0&&ee(Bs)),_===n&&(e.substr(N,4)===co?(_=co,N+=4):(_=n,J===0&&ee(Ls)),_===n&&(e.substr(N,5)===jn?(_=jn,N+=5):(_=n,J===0&&ee(Q)),_===n&&(e.substr(N,6)===re?(_=re,N+=6):(_=n,J===0&&ee(ue)),_===n&&(e.substr(N,4)===j?(_=j,N+=4):(_=n,J===0&&ee(Qe)),_===n&&(e.substr(N,5)===de?(_=de,N+=5):(_=n,J===0&&ee(vt)),_===n&&(e.substr(N,5)===dt?(_=dt,N+=5):(_=n,J===0&&ee(Kt)),_===n&&(e.substr(N,4)===lo?(_=lo,N+=4):(_=n,J===0&&ee(Ab)),_===n&&(e.substr(N,6)===su?(_=su,N+=6):(_=n,J===0&&ee(Os)),_===n&&(e.substr(N,7)===Jt?(_=Jt,N+=7):(_=n,J===0&&ee(cu)),_===n&&(e.substr(N,4)===dd?(_=dd,N+=4):(_=n,J===0&&ee(mr)),_===n&&(e.substr(N,6)===pd?(_=pd,N+=6):(_=n,J===0&&ee(x)),_===n&&(e.substr(N,6)===m?(_=m,N+=6):(_=n,J===0&&ee(b)),_===n&&(e.substr(N,3)===I?(_=I,N+=3):(_=n,J===0&&ee(B)),_===n&&(_=N,O=i_(),O!==n?($=ge(),$!==n?(Y=a_(),Y!==n?(It=_,O=L(O,Y),_=O):(N=_,_=n)):(N=_,_=n)):(N=_,_=n))))))))))))))),_}function HZ(){var _;return _=GZ(),_===n&&(_=Hn()),_}function Hn(){var _,O,$,Y,K;if(_=N,O=N,P.test(e.charAt(N))?($=e.charAt(N),N++):($=n,J===0&&ee(oe)),$!==n){for(Y=[],Re.test(e.charAt(N))?(K=e.charAt(N),N++):(K=n,J===0&&ee(Ie));K!==n;)Y.push(K),Re.test(e.charAt(N))?(K=e.charAt(N),N++):(K=n,J===0&&ee(Ie));Y!==n?($=[$,Y],O=$):(N=O,O=n)}else N=O,O=n;return O!==n&&(It=_,O=$e()),_=O,_}function s_(){var _,O,$;for(_=N,O=[],Ae.test(e.charAt(N))?($=e.charAt(N),N++):($=n,J===0&&ee(Z8));$!==n;)O.push($),Ae.test(e.charAt(N))?($=e.charAt(N),N++):($=n,J===0&&ee(Z8));return O!==n&&(It=_,O=NZ(O)),_=O,_}function GZ(){var _,O,$,Y;if(J++,_=N,O=ge(),O!==n){if($=[],q8.test(e.charAt(N))?(Y=e.charAt(N),N++):(Y=n,J===0&&ee(W8)),Y!==n)for(;Y!==n;)$.push(Y),q8.test(e.charAt(N))?(Y=e.charAt(N),N++):(Y=n,J===0&&ee(W8));else $=n;$!==n?(It=_,O=BZ(),_=O):(N=_,_=n)}else N=_,_=n;return J--,_===n&&(O=n,J===0&&ee(FZ)),_}function ge(){var _,O;for(J++,_=[],X8.test(e.charAt(N))?(O=e.charAt(N),N++):(O=n,J===0&&ee(K8));O!==n;)_.push(O),X8.test(e.charAt(N))?(O=e.charAt(N),N++):(O=n,J===0&&ee(K8));return J--,_===n&&(O=n,J===0&&ee(LZ)),_}if(md=i(),md!==n&&N===e.length)return md;throw md!==n&&N<e.length&&ee(OZ()),RZ(Eb,br<e.length?e.charAt(br):null,br<e.length?n_(br,br+1):n_(br,br))}var tS={SyntaxError:ds,parse:Oj};const Rj=Ca(tS),Tm=Object.fromEntries(Object.entries(Object.freeze(Object.defineProperty({__proto__:null,bigChain:`table bigChain
1388
+ "bigChain pairwise alignment"
1389
+ (
1390
+ string chrom; "Reference sequence chromosome or scaffold"
1391
+ uint chromStart; "Start position in chromosome"
1392
+ uint chromEnd; "End position in chromosome"
1393
+ string name; "Name or ID of item, ideally both human readable and unique"
1394
+ uint score; "Score (0-1000)"
1395
+ char[1] strand; "+ or - for strand"
1396
+ uint tSize; "size of target sequence"
1397
+ string qName; "name of query sequence"
1398
+ uint qSize; "size of query sequence"
1399
+ uint qStart; "start of alignment on query sequence"
1400
+ uint qEnd; "end of alignment on query sequence"
1401
+ uint chainScore; "score from chain"
1402
+ )`,bigGenePred:`table bigGenePred
1403
+ "bigGenePred gene models"
1404
+ (
1405
+ string chrom; "Reference sequence chromosome or scaffold"
1406
+ uint chromStart; "Start position in chromosome"
1407
+ uint chromEnd; "End position in chromosome"
1408
+ string name; "Name or ID of item, ideally both human readable and unique"
1409
+ uint score; "Score (0-1000)"
1410
+ char[1] strand; "+ or - for strand"
1411
+ uint thickStart; "Start of where display should be thick (start codon)"
1412
+ uint thickEnd; "End of where display should be thick (stop codon)"
1413
+ uint reserved; "RGB value (use R,G,B string in input file)"
1414
+ int blockCount; "Number of blocks"
1415
+ int[blockCount] blockSizes; "Comma separated list of block sizes"
1416
+ int[blockCount] chromStarts; "Start positions relative to chromStart"
1417
+ string name2; "Alternative/human readable name"
1418
+ string cdsStartStat; "Status of CDS start annotation (none, unknown, incomplete, or complete)"
1419
+ string cdsEndStat; "Status of CDS end annotation (none, unknown, incomplete, or complete)"
1420
+ int[blockCount] exonFrames; "Exon frame {0,1,2}, or -1 if no frame for exon"
1421
+ string type; "Transcript type"
1422
+ string geneName; "Primary identifier for gene"
1423
+ string geneName2; "Alternative/human readable gene name"
1424
+ string geneType; "Gene type"
1425
+ )`,bigInteract:`table interact
1426
+ "interaction between two regions"
1427
+ (
1428
+ string chrom; "Chromosome (or contig, scaffold, etc.). For interchromosomal, use 2 records"
1429
+ uint chromStart; "Start position of lower region. For interchromosomal, set to chromStart of this region"
1430
+ uint chromEnd; "End position of upper region. For interchromosomal, set to chromEnd of this region"
1431
+ string name; "Name of item, for display. Usually 'sourceName/targetName/exp' or empty"
1432
+ uint score; "Score (0-1000)"
1433
+ double value; "Strength of interaction or other data value. Typically basis for score"
1434
+ string exp; "Experiment name (metadata for filtering). Use . if not applicable"
1435
+ string color; "Item color. Specified as r,g,b or hexadecimal #RRGGBB or html color name, as in //www.w3.org/TR/css3-color/#html4. Use 0 and spectrum setting to shade by score"
1436
+ string sourceChrom; "Chromosome of source region (directional) or lower region. For non-directional interchromosomal, chrom of this region."
1437
+ uint sourceStart; "Start position in chromosome of source/lower/this region"
1438
+ uint sourceEnd; "End position in chromosome of source/lower/this region"
1439
+ string sourceName; "Identifier of source/lower/this region"
1440
+ string sourceStrand; "Orientation of source/lower/this region: + or -. Use . if not applicable"
1441
+ string targetChrom; "Chromosome of target region (directional) or upper region. For non-directional interchromosomal, chrom of other region"
1442
+ uint targetStart; "Start position in chromosome of target/upper/this region"
1443
+ uint targetEnd; "End position in chromosome of target/upper/this region"
1444
+ string targetName; "Identifier of target/upper/this region"
1445
+ string targetStrand; "Orientation of target/upper/this region: + or -. Use . if not applicable"
1446
+
1447
+ )`,bigLink:`table bigLink
1448
+ "bigLink pairwise alignment"
1449
+ (
1450
+ string chrom; "Reference sequence chromosome or scaffold"
1451
+ uint chromStart; "Start position in chromosome"
1452
+ uint chromEnd; "End position in chromosome"
1453
+ string name; "Name or ID of item, ideally both human readable and unique"
1454
+ uint qStart; "start of alignment on query sequence"
1455
+ )`,bigMaf:`table bedMaf
1456
+ "Bed3 with MAF block"
1457
+ (
1458
+ string chrom; "Reference sequence chromosome or scaffold"
1459
+ uint chromStart; "Start position in chromosome"
1460
+ uint chromEnd; "End position in chromosome"
1461
+ lstring mafBlock; "MAF block"
1462
+ )`,bigNarrowPeak:`table bigNarrowPeak
1463
+ "BED6+4 Peaks of signal enrichment based on pooled, normalized (interpreted) data."
1464
+ (
1465
+ string chrom; "Reference sequence chromosome or scaffold"
1466
+ uint chromStart; "Start position in chromosome"
1467
+ uint chromEnd; "End position in chromosome"
1468
+ string name; "Name given to a region (preferably unique). Use . if no name is assigned"
1469
+ uint score; "Indicates how dark the peak will be displayed in the browser (0-1000) "
1470
+ char[1] strand; "+ or - or . for unknown"
1471
+ float signalValue; "Measurement of average enrichment for the region"
1472
+ float pValue; "Statistical significance of signal value (-log10). Set to -1 if not used."
1473
+ float qValue; "Statistical significance with multiple-test correction applied (FDR -log10). Set to -1 if not used."
1474
+ int peak; "Point-source called for this peak; 0-based offset from chromStart. Set to -1 if no point-source called."
1475
+ )`,bigPsl:`table bigPsl
1476
+ "bigPsl pairwise alignment"
1477
+ (
1478
+ string chrom; "Reference sequence chromosome or scaffold"
1479
+ uint chromStart; "Start position in chromosome"
1480
+ uint chromEnd; "End position in chromosome"
1481
+ string name; "Name or ID of item, ideally both human readable and unique"
1482
+ uint score; "Score (0-1000)"
1483
+ char[1] strand; "+ or - indicates whether the query aligns to the + or - strand on the reference"
1484
+ uint thickStart; "Start of where display should be thick (start codon)"
1485
+ uint thickEnd; "End of where display should be thick (stop codon)"
1486
+ uint reserved; "RGB value (use R,G,B string in input file)"
1487
+ int blockCount; "Number of blocks"
1488
+ int[blockCount] blockSizes; "Comma separated list of block sizes"
1489
+ int[blockCount] chromStarts; "Start positions relative to chromStart"
1490
+
1491
+ uint oChromStart;"Start position in other chromosome"
1492
+ uint oChromEnd; "End position in other chromosome"
1493
+ char[1] oStrand; "+ or -, - means that psl was reversed into BED-compatible coordinates"
1494
+ uint oChromSize; "Size of other chromosome."
1495
+ int[blockCount] oChromStarts; "Start positions relative to oChromStart or from oChromStart+oChromSize depending on strand"
1496
+
1497
+ lstring oSequence; "Sequence on other chrom (or empty)"
1498
+ string oCDS; "CDS in NCBI format"
1499
+
1500
+ uint chromSize;"Size of target chromosome"
1501
+
1502
+ uint match; "Number of bases matched."
1503
+ uint misMatch; " Number of bases that don't match "
1504
+ uint repMatch; " Number of bases that match but are part of repeats "
1505
+ uint nCount; " Number of 'N' bases "
1506
+ uint seqType; "0=empty, 1=nucleotide, 2=amino_acid"
1507
+ )`,defaultBedSchema:`table defaultBedSchema
1508
+ "BED12"
1509
+ (
1510
+ string chrom; "The name of the chromosome (e.g. chr3, chrY, chr2_random) or scaffold (e.g. scaffold10671)."
1511
+ uint chromStart; "The starting position of the feature in the chromosome or scaffold. The first base in a chromosome is numbered 0."
1512
+ uint chromEnd; "The ending position of the feature in the chromosome or scaffold. The chromEnd base is not included in the display of the feature. For example, the first 100 bases of a chromosome are defined as chromStart=0, chromEnd=100, and span the bases numbered 0-99."
1513
+ string name; "Defines the name of the BED line."
1514
+ float score; "Feature score, doesn't care about the 0-1000 limit as in bed"
1515
+ char strand; "Defines the strand. Either '.' (=no strand) or '+' or '-'"
1516
+ uint thickStart; "The starting position at which the feature is drawn thickly (for example, the start codon in gene displays). When there is no thick part, thickStart and thickEnd are usually set to the chromStart position."
1517
+ uint thickEnd; "The ending position at which the feature is drawn thickly (for example the stop codon in gene displays)."
1518
+ string itemRgb; "An RGB value of the form R,G,B (e.g. 255,0,0). "
1519
+ uint blockCount; " The number of blocks (exons) in the BED line."
1520
+ uint[blockCount] blockSizes; " A comma-separated list of the block sizes. The number of items in this list should correspond to blockCount."
1521
+ uint[blockCount] blockStarts; "A comma-separated list of block starts. All of the blockStart positions should be calculated relative to chromStart. The number of items in this list should correspond to blockCount."
1522
+ )`,mafFrames:`table mafFrames
1523
+ "codon frame assignment for MAF components"
1524
+ (
1525
+ string chrom; "Reference sequence chromosome or scaffold"
1526
+ uint chromStart; "Start range in chromosome"
1527
+ uint chromEnd; "End range in chromosome"
1528
+ string src; "Name of sequence source in MAF"
1529
+ ubyte frame; "frame (0,1,2) for first base(+) or last bast(-)"
1530
+ char[1] strand; "+ or -"
1531
+ string name; "Name of gene used to define frame"
1532
+ int prevFramePos; "target position of the previous base (in transcription direction) that continues this frame, or -1 if none, or frame not contiguous"
1533
+ int nextFramePos; "target position of the next base (in transcription direction) that continues this frame, or -1 if none, or frame not contiguous"
1534
+ ubyte isExonStart; "does this start the CDS portion of an exon?"
1535
+ ubyte isExonEnd; "does this end the CDS portion of an exon?"
1536
+ )`,mafSummary:`table mafSummary
1537
+ "Positions and scores for alignment blocks"
1538
+ (
1539
+ string chrom; "Reference sequence chromosome or scaffold"
1540
+ uint chromStart; "Start position in chromosome"
1541
+ uint chromEnd; "End position in chromosome"
1542
+ string src; "Sequence name or database of alignment"
1543
+ float score; "Floating point score."
1544
+ char[1] leftStatus; "Gap/break annotation for preceding block"
1545
+ char[1] rightStatus; "Gap/break annotation for following block"
1546
+ )`},Symbol.toStringTag,{value:"Module"}))).map(([e,t])=>[e,tS.parse(t.trim())]));function Mm(e){const t=["uint","int","float","long"];return{...e,fields:e.fields.map(n=>({...n,isArray:n.size&&n.type!=="char",arrayIsNumeric:n.size&&t.includes(n.type),isNumeric:!n.size&&t.includes(n.type)}))}}const zj={".":0,"-":-1,"+":1};function Pj(e){var t;return e.length>=12&&!Number.isNaN(parseInt(e[9],10))&&((t=e[10])===null||t===void 0?void 0:t.split(",").filter(n=>!!n).length)===parseInt(e[9],10)}class Uj{constructor(t={}){if(t.autoSql)this.autoSql=Mm(Rj.parse(t.autoSql));else if(t.type){if(!Tm[t.type])throw new Error("Type not found");this.autoSql=Mm(Tm[t.type])}else this.autoSql=Mm(Tm.defaultBedSchema),this.attemptDefaultBed=!0}parseLine(t,n={}){const{autoSql:r}=this,{uniqueId:i}=n,a=Array.isArray(t)?t:t.split(" ");let o={};if(!this.attemptDefaultBed||this.attemptDefaultBed&&Pj(a))for(let s=0;s<r.fields.length;s++){const l=r.fields[s];let c=a[s];const{isNumeric:u,isArray:f,arrayIsNumeric:h,name:d}=l;if(c==null)break;if(c!=="."){if(u){const p=Number(c);c=Number.isNaN(p)?c:p}else f&&(c=c.split(","),c[c.length-1]===""&&c.pop(),h&&(c=c.map(p=>Number(p))));o[d]=c}}else{const s=["chrom","chromStart","chromEnd","name"];o=Object.fromEntries(a.map((l,c)=>[s[c]||"field"+c,l])),o.chromStart=+o.chromStart,o.chromEnd=+o.chromEnd,Number.isNaN(Number.parseFloat(o.field4))||(o.score=+o.field4,delete o.field4),(o.field5==="+"||o.field5==="-")&&(o.strand=o.field5,delete o.field5)}return i&&(o.uniqueId=i),o.strand=zj[o.strand]||0,o.chrom=decodeURIComponent(o.chrom),o}}class jj extends Xf(Po){constructor(n,r){const i={channel:"x",windowSize:1e6,...n};super(r,i.channel);En(this,"lastRequestId",0);En(this,"parser");if(this.params=i,!this.params.url)throw new Error("No URL provided for BigBedSource");this.bbi=new Nj({filehandle:new kr(Ko(this.params.url,this.view.getBaseUrl()))}),this.doDebouncedRequest=hs(this.doRequest.bind(this),200,!1),this.headerPromise=this.bbi.getHeader(),this.headerPromise.then(a=>{this.parser=new Uj({autoSql:a.autoSql})})}async onDomainChanged(n){const r=this.params.windowSize;if(n[1]-n[0]>r)return;const i=this.quantizeInterval(n,r);this.checkAndUpdateLastInterval(i)&&this.doDebouncedRequest(i)}async doRequest(n){const r=await this.getFeatures(n);r.requestId<this.lastRequestId||this.publishData(r.features)}async getFeatures(n){let r=++this.lastRequestId;const i=new AbortController,a=this.genome.continuousToDiscreteChromosomeIntervals(n),o=await Promise.all(a.map(s=>this.bbi.getFeatures(s.chrom,s.startPos,s.endPos,{signal:i.signal}).then(l=>l.map(c=>this.parser.parseLine(`${s.chrom} ${c.start} ${c.end} ${c.rest}`,{uniqueId:c.uniqueId})))));return{requestId:r,abort:()=>i.abort(),features:o.flat()}}}var Hj=Te,mn=null;try{mn=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Te(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}Te.prototype.__isLong__,Object.defineProperty(Te.prototype,"__isLong__",{value:!0});function Ut(e){return(e&&e.__isLong__)===!0}Te.isLong=Ut;var nS={},rS={};function $a(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=rS[e],r)?r:(n=Me(e,(e|0)<0?-1:0,!0),i&&(rS[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=nS[e],r)?r:(n=Me(e,e<0?-1:0,!1),i&&(nS[e]=n),n))}Te.fromInt=$a;function bn(e,t){if(isNaN(e))return t?Va:yn;if(t){if(e<0)return Va;if(e>=aS)return uS}else{if(e<=-oS)return jt;if(e+1>=oS)return lS}return e<0?bn(-e,t).neg():Me(e%ps|0,e/ps|0,t)}Te.fromNumber=bn;function Me(e,t,n){return new Te(e,t,n)}Te.fromBits=Me;var xh=Math.pow;function Nm(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return yn;if(typeof t=="number"?(n=t,t=!1):t=!!t,n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=e.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return Nm(e.substring(1),t,n).neg();for(var i=bn(xh(n,8)),a=yn,o=0;o<e.length;o+=8){var s=Math.min(8,e.length-o),l=parseInt(e.substring(o,o+s),n);if(s<8){var c=bn(xh(n,s));a=a.mul(c).add(bn(l))}else a=a.mul(i),a=a.add(bn(l))}return a.unsigned=t,a}Te.fromString=Nm;function zn(e,t){return typeof e=="number"?bn(e,t):typeof e=="string"?Nm(e,t):Me(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Te.fromValue=zn;var iS=1<<16,Gj=1<<24,ps=iS*iS,aS=ps*ps,oS=aS/2,sS=$a(Gj),yn=$a(0);Te.ZERO=yn;var Va=$a(0,!0);Te.UZERO=Va;var gs=$a(1);Te.ONE=gs;var cS=$a(1,!0);Te.UONE=cS;var Fm=$a(-1);Te.NEG_ONE=Fm;var lS=Me(-1,2147483647,!1);Te.MAX_VALUE=lS;var uS=Me(-1,-1,!0);Te.MAX_UNSIGNED_VALUE=uS;var jt=Me(0,-2147483648,!1);Te.MIN_VALUE=jt;var G=Te.prototype;G.toInt=function(){return this.unsigned?this.low>>>0:this.low},G.toNumber=function(){return this.unsigned?(this.high>>>0)*ps+(this.low>>>0):this.high*ps+(this.low>>>0)},G.toString=function(t){if(t=t||10,t<2||36<t)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(jt)){var n=bn(t),r=this.div(n),i=r.mul(n).sub(this);return r.toString(t)+i.toInt().toString(t)}else return"-"+this.neg().toString(t);for(var a=bn(xh(t,6),this.unsigned),o=this,s="";;){var l=o.div(a),c=o.sub(l.mul(a)).toInt()>>>0,u=c.toString(t);if(o=l,o.isZero())return u+s;for(;u.length<6;)u="0"+u;s=""+u+s}},G.getHighBits=function(){return this.high},G.getHighBitsUnsigned=function(){return this.high>>>0},G.getLowBits=function(){return this.low},G.getLowBitsUnsigned=function(){return this.low>>>0},G.getNumBitsAbs=function(){if(this.isNegative())return this.eq(jt)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,n=31;n>0&&!(t&1<<n);n--);return this.high!=0?n+33:n+1},G.isZero=function(){return this.high===0&&this.low===0},G.eqz=G.isZero,G.isNegative=function(){return!this.unsigned&&this.high<0},G.isPositive=function(){return this.unsigned||this.high>=0},G.isOdd=function(){return(this.low&1)===1},G.isEven=function(){return(this.low&1)===0},G.equals=function(t){return Ut(t)||(t=zn(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},G.eq=G.equals,G.notEquals=function(t){return!this.eq(t)},G.neq=G.notEquals,G.ne=G.notEquals,G.lessThan=function(t){return this.comp(t)<0},G.lt=G.lessThan,G.lessThanOrEqual=function(t){return this.comp(t)<=0},G.lte=G.lessThanOrEqual,G.le=G.lessThanOrEqual,G.greaterThan=function(t){return this.comp(t)>0},G.gt=G.greaterThan,G.greaterThanOrEqual=function(t){return this.comp(t)>=0},G.gte=G.greaterThanOrEqual,G.ge=G.greaterThanOrEqual,G.compare=function(t){if(Ut(t)||(t=zn(t)),this.eq(t))return 0;var n=this.isNegative(),r=t.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1},G.comp=G.compare,G.negate=function(){return!this.unsigned&&this.eq(jt)?jt:this.not().add(gs)},G.neg=G.negate,G.add=function(t){Ut(t)||(t=zn(t));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,a=this.low&65535,o=t.high>>>16,s=t.high&65535,l=t.low>>>16,c=t.low&65535,u=0,f=0,h=0,d=0;return d+=a+c,h+=d>>>16,d&=65535,h+=i+l,f+=h>>>16,h&=65535,f+=r+s,u+=f>>>16,f&=65535,u+=n+o,u&=65535,Me(h<<16|d,u<<16|f,this.unsigned)},G.subtract=function(t){return Ut(t)||(t=zn(t)),this.add(t.neg())},G.sub=G.subtract,G.multiply=function(t){if(this.isZero())return yn;if(Ut(t)||(t=zn(t)),mn){var n=mn.mul(this.low,this.high,t.low,t.high);return Me(n,mn.get_high(),this.unsigned)}if(t.isZero())return yn;if(this.eq(jt))return t.isOdd()?jt:yn;if(t.eq(jt))return this.isOdd()?jt:yn;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(sS)&&t.lt(sS))return bn(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=t.high>>>16,l=t.high&65535,c=t.low>>>16,u=t.low&65535,f=0,h=0,d=0,p=0;return p+=o*u,d+=p>>>16,p&=65535,d+=a*u,h+=d>>>16,d&=65535,d+=o*c,h+=d>>>16,d&=65535,h+=i*u,f+=h>>>16,h&=65535,h+=a*c,f+=h>>>16,h&=65535,h+=o*l,f+=h>>>16,h&=65535,f+=r*u+i*c+a*l+o*s,f&=65535,Me(d<<16|p,f<<16|h,this.unsigned)},G.mul=G.multiply,G.divide=function(t){if(Ut(t)||(t=zn(t)),t.isZero())throw Error("division by zero");if(mn){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?mn.div_u:mn.div_s)(this.low,this.high,t.low,t.high);return Me(n,mn.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Va:yn;var r,i,a;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return Va;if(t.gt(this.shru(1)))return cS;a=Va}else{if(this.eq(jt)){if(t.eq(gs)||t.eq(Fm))return jt;if(t.eq(jt))return gs;var o=this.shr(1);return r=o.div(t).shl(1),r.eq(yn)?t.isNegative()?gs:Fm:(i=this.sub(t.mul(r)),a=r.add(i.div(t)),a)}else if(t.eq(jt))return this.unsigned?Va:yn;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();a=yn}for(i=this;i.gte(t);){r=Math.max(1,Math.floor(i.toNumber()/t.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),l=s<=48?1:xh(2,s-48),c=bn(r),u=c.mul(t);u.isNegative()||u.gt(i);)r-=l,c=bn(r,this.unsigned),u=c.mul(t);c.isZero()&&(c=gs),a=a.add(c),i=i.sub(u)}return a},G.div=G.divide,G.modulo=function(t){if(Ut(t)||(t=zn(t)),mn){var n=(this.unsigned?mn.rem_u:mn.rem_s)(this.low,this.high,t.low,t.high);return Me(n,mn.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},G.mod=G.modulo,G.rem=G.modulo,G.not=function(){return Me(~this.low,~this.high,this.unsigned)},G.and=function(t){return Ut(t)||(t=zn(t)),Me(this.low&t.low,this.high&t.high,this.unsigned)},G.or=function(t){return Ut(t)||(t=zn(t)),Me(this.low|t.low,this.high|t.high,this.unsigned)},G.xor=function(t){return Ut(t)||(t=zn(t)),Me(this.low^t.low,this.high^t.high,this.unsigned)},G.shiftLeft=function(t){return Ut(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Me(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):Me(0,this.low<<t-32,this.unsigned)},G.shl=G.shiftLeft,G.shiftRight=function(t){return Ut(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Me(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):Me(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},G.shr=G.shiftRight,G.shiftRightUnsigned=function(t){if(Ut(t)&&(t=t.toInt()),t&=63,t===0)return this;var n=this.high;if(t<32){var r=this.low;return Me(r>>>t|n<<32-t,n>>>t,this.unsigned)}else return t===32?Me(n,0,this.unsigned):Me(n>>>t-32,0,this.unsigned)},G.shru=G.shiftRightUnsigned,G.shr_u=G.shiftRightUnsigned,G.toSigned=function(){return this.unsigned?Me(this.low,this.high,!1):this},G.toUnsigned=function(){return this.unsigned?this:Me(this.low,this.high,!0)},G.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},G.toBytesLE=function(){var t=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]},G.toBytesBE=function(){var t=this.high,n=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Te.fromBytes=function(t,n,r){return r?Te.fromBytesLE(t,n):Te.fromBytesBE(t,n)},Te.fromBytesLE=function(t,n){return new Te(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)},Te.fromBytesBE=function(t,n){return new Te(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)};const fS=Ca(Hj);class hS{constructor(t,n){this.blockPosition=t,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(t){return this.blockPosition-t.blockPosition||this.dataPosition-t.dataPosition}static min(...t){let n,r=0;for(;!n;r+=1)n=t[r];for(;r<t.length;r+=1)n.compareTo(t[r])>0&&(n=t[r]);return n}}function ms(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new hS(e[t+7]*1099511627776+e[t+6]*4294967296+e[t+5]*16777216+e[t+4]*65536+e[t+3]*256+e[t+2],e[t+1]<<8|e[t])}class Ah{constructor(t,n,r,i=void 0){this.minv=t,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(t){return this.minv.compareTo(t.minv)||this.maxv.compareTo(t.maxv)||this.bin-t.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+(1<<16)-this.minv.blockPosition}}class dS{constructor({filehandle:t,renameRefSeq:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}_findFirstData(t,n){const r=t.firstDataLine;r?t.firstDataLine=r.compareTo(n)>0?n:r:t.firstDataLine=n}async parse(t={}){return this.setupP||(this.setupP=this._parse(t).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(t,n={}){return!!((await this.parse(n)).indices[t]||{}).binIndex}}function $j(e){return new Promise(t=>setTimeout(t,e))}function pS(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}function gS(e){if(e&&e.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const t=new Error("aborted");throw t.code="ERR_ABORTED",t}}}async function mS(e){await Promise.resolve(),gS(e)}function Vj(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function Yj(e={}){return"aborted"in e?{signal:e}:e}function bS(e,t){const n=[];let r=null;return e.length===0?e:(e.sort((i,a)=>{const o=i.minv.blockPosition-a.minv.blockPosition;return o!==0?o:i.minv.dataPosition-a.minv.dataPosition}),e.forEach(i=>{(!t||i.maxv.compareTo(t)>0)&&(r===null?(n.push(i),r=i):Vj(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}const Qj=21578050;function Zj(e,t){return e-e%t}function qj(e,t){return e-e%t+t}class Tl extends dS{parsePseudoBin(t,n){return{lineCount:pS(fS.fromBytesLE(Array.prototype.slice.call(t,n+16,n+24),!0))}}async lineCount(t,n={}){const i=(await this.parse(n)).indices[t];if(!i)return-1;const a=i.stats||{};return a.lineCount===void 0?-1:a.lineCount}fetchBai(t={}){return this.baiP||(this.baiP=this.filehandle.readFile(t).catch(n=>{throw this.baiP=void 0,n})),this.baiP}async _parse(){const t={bai:!0,maxBlockSize:65536},n=await this.fetchBai();if(n.readUInt32LE(0)!==Qj)throw new Error("Not a BAI file");t.refCount=n.readInt32LE(4);const i=((1<<(5+1)*3)-1)/7;t.indices=new Array(t.refCount);let a=8;for(let o=0;o<t.refCount;o+=1){const s=n.readInt32LE(a);let l;a+=4;const c={};for(let h=0;h<s;h+=1){const d=n.readUInt32LE(a);if(a+=4,d===i+1)a+=4,l=this.parsePseudoBin(n,a),a+=32;else{if(d>i+1)throw new Error("bai index contains too many bins, please use CSI");{const p=n.readInt32LE(a);a+=4;const g=new Array(p);for(let y=0;y<p;y+=1){const v=ms(n,a),S=ms(n,a+8);a+=16,this._findFirstData(t,v),g[y]=new Ah(v,S,d)}c[d]=g}}}const u=n.readInt32LE(a);a+=4;const f=new Array(u);for(let h=0;h<u;h+=1)f[h]=ms(n,a),a+=8,this._findFirstData(t,f[h]);t.indices[o]={binIndex:c,linearIndex:f,stats:l}}return t}async indexCov(t,n,r,i={}){const o=n!==void 0,l=(await this.parse(i)).indices[t];if(!l)return[];const{linearIndex:c=[],stats:u}=l;if(!c.length)return[];const f=r!==void 0?qj(r,16384):(c.length-1)*16384,h=n!==void 0?Zj(n,16384):0;let d;o?d=new Array((f-h)/16384):d=new Array(c.length-1);const p=c[c.length-1].blockPosition;if(f>(c.length-1)*16384)throw new Error("query outside of range of linear index");let g=c[h/16384].blockPosition;for(let y=h/16384,v=0;y<f/16384;y++,v++)d[v]={score:c[y+1].blockPosition-g,start:y*16384,end:y*16384+16384},g=c[y+1].blockPosition;return d.map(y=>({...y,score:y.score*u.lineCount/p}))}reg2bins(t,n){return n-=1,[[0,0],[1+(t>>26),1+(n>>26)],[9+(t>>23),9+(n>>23)],[73+(t>>20),73+(n>>20)],[585+(t>>17),585+(n>>17)],[4681+(t>>14),4681+(n>>14)]]}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.indices[t];if(!o)return[];const s=this.reg2bins(n,r),l=[];for(const[d,p]of s)for(let g=d;g<=p;g++)if(o.binIndex[g]){const y=o.binIndex[g];for(let v=0;v<y.length;++v)l.push(new Ah(y[v].minv,y[v].maxv,g))}const c=o.linearIndex.length;let u=null;const f=Math.min(n>>14,c-1),h=Math.min(r>>14,c-1);for(let d=f;d<=h;++d){const p=o.linearIndex[d];p&&(!u||p.compareTo(u)<0)&&(u=p)}return bS(l,u)}}const Wj=21582659,Xj=38359875;function Kj(e,t){return e*2**t}function yS(e,t){return Math.floor(e/2**t)}class Bm extends dS{constructor(t){super(t),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t){const n=await this.parse();if(!n||!n.indices[t])return-1;const{stats:i}=n.indices[t];return i?i.lineCount:-1}async indexCov(){return[]}parseAuxData(t,n,r){if(r<30)return{};const i={};if(i.formatFlags=t.readInt32LE(n),i.coordinateType=i.formatFlags&65536?"zero-based-half-open":"1-based-closed",i.format={0:"generic",1:"SAM",2:"VCF"}[i.formatFlags&15],!i.format)throw new Error(`invalid Tabix preset format flags ${i.formatFlags}`);i.columnNumbers={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},i.metaValue=t.readInt32LE(n+16),i.metaChar=i.metaValue?String.fromCharCode(i.metaValue):"",i.skipLines=t.readInt32LE(n+20);const a=t.readInt32LE(n+24);return Object.assign(i,this._parseNameBytes(t.subarray(n+28,n+28+a))),i}_parseNameBytes(t){let n=0,r=0;const i=[],a={};for(let o=0;o<t.length;o+=1)if(!t[o]){if(r<o){let s=t.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async _parse(t){const n={csi:!0,maxBlockSize:65536},r=await this.filehandle.readFile(t),i=await Fg(r);if(i.readUInt32LE(0)===Wj)n.csiVersion=1;else if(i.readUInt32LE(0)===Xj)n.csiVersion=2;else throw new Error("Not a CSI file");this.minShift=i.readInt32LE(4),this.depth=i.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const a=i.readInt32LE(12);a&&Object.assign(n,this.parseAuxData(i,16,a)),n.refCount=i.readInt32LE(16+a),n.indices=new Array(n.refCount);let o=16+a+4;for(let s=0;s<n.refCount;s+=1){await mS(t.signal);const l=i.readInt32LE(o);o+=4;const c={};let u;for(let f=0;f<l;f+=1){const h=i.readUInt32LE(o);if(h>this.maxBinNumber)u=this.parsePseudoBin(i,o+4),o+=4+8+4+16+16;else{const d=ms(i,o+4);this._findFirstData(n,d);const p=i.readInt32LE(o+12);o+=16;const g=new Array(p);for(let y=0;y<p;y+=1){const v=ms(i,o),S=ms(i,o+8);o+=16,g[y]=new Ah(v,S,h)}c[h]=g}}n.indices[s]={binIndex:c,stats:u}}return n}parsePseudoBin(t,n){return{lineCount:pS(fS.fromBytesLE(Array.prototype.slice.call(t,n+28,n+36),!0))}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i),o=a==null?void 0:a.indices[t];if(!o)return[];const s=this.reg2bins(n,r),l=[];for(const[c,u]of s)for(let f=c;f<=u;f++)if(o.binIndex[f]){const h=o.binIndex[f];for(let d=0;d<h.length;++d)l.push(new Ah(h[d].minv,h[d].maxv,f))}return bS(l,new hS(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,a=this.minShift+this.depth*3;const o=[];for(;r<=this.depth;a-=3,i+=Kj(1,r*3),r+=1){const s=i+yS(t,a),l=i+yS(n,a);if(l-s+o.length>this.maxBinNumber)throw new Error(`query ${t}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);o.push([s,l])}return o}}var Ti=Vt.Buffer,Lm=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];typeof Int32Array<"u"&&(Lm=new Int32Array(Lm));function vS(e){if(Ti.isBuffer(e))return e;var t=typeof Ti.alloc=="function"&&typeof Ti.from=="function";if(typeof e=="number")return t?Ti.alloc(e):new Ti(e);if(typeof e=="string")return t?Ti.from(e):new Ti(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function Jj(e){var t=vS(4);return t.writeInt32BE(e,0),t}function Om(e,t){e=vS(e),Ti.isBuffer(t)&&(t=t.readUInt32BE(0));for(var n=~~t^-1,r=0;r<e.length;r++)n=Lm[(n^e[r])&255]^n>>>8;return n^-1}function Rm(){return Jj(Om.apply(null,arguments))}Rm.signed=function(){return Om.apply(null,arguments)},Rm.unsigned=function(){return Om.apply(null,arguments)>>>0};var eH=Rm;const tH=Ca(eH);var zm,wS;function nH(){if(wS)return zm;wS=1;var e=function(r,i){return Object.prototype.hasOwnProperty.call(r,i)},t=function(r,i){return Object.prototype.propertyIsEnumerable.call(r,i)};function n(r){if(r==null)throw new TypeError("Cannot convert undefined or null to object");var i=[];for(var a in r)e(r,a)&&t(r,a)&&i.push([a,r[a]]);return i}return zm=n,zm}var rH=typeof Object.entries=="function"?Object.entries:nH();const iH=Ca(rH);class aH{constructor(t={}){if(!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=t.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(t,n){this.cache.set(t,n),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t)){const n=this.oldCache.get(t);return this._set(t,n),n}}set(t,n){return this.cache.has(t)?this.cache.set(t,n):this._set(t,n),this}has(t){return this.cache.has(t)||this.oldCache.has(t)}peek(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t))return this.oldCache.get(t)}delete(t){const n=this.cache.delete(t);return n&&this._size--,this.oldCache.delete(t)||n}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[t]of this)yield t}*values(){for(const[,t]of this)yield t}*[Symbol.iterator](){for(const t of this.cache)yield t;for(const t of this.oldCache){const[n]=t;this.cache.has(n)||(yield t)}}get size(){let t=0;for(const n of this.oldCache.keys())this.cache.has(n)||t++;return this._size+t}}var oH=aH;const sH=Ca(oH),vn={BAM_FPAIRED:1,BAM_FPROPER_PAIR:2,BAM_FUNMAP:4,BAM_FMUNMAP:8,BAM_FREVERSE:16,BAM_FMREVERSE:32,BAM_FREAD1:64,BAM_FREAD2:128,BAM_FSECONDARY:256,BAM_FQCFAIL:512,BAM_FDUP:1024,BAM_FSUPPLEMENTARY:2048},xS="=ACMGRSVTWYHKDBN".split(""),Ml="MIDNSHP=X???????".split("");class cH{constructor(t){this.data={},this._tagList=[],this._allTagsParsed=!1;const{bytes:n,fileOffset:r}=t,{byteArray:i,start:a}=n;this.data={},this.bytes=n,this._id=r,this._refID=i.readInt32LE(a+4),this.data.start=i.readInt32LE(a+8),this.flags=(i.readInt32LE(a+16)&4294901760)>>16}get(t){return this[t]?this.data[t]?this.data[t]:(this.data[t]=this[t](),this.data[t]):this._get(t.toLowerCase())}end(){return this.get("start")+this.get("length_on_ref")}seq_id(){return this._refID}_get(t){return t in this.data?this.data[t]:(this.data[t]=this._parseTag(t),this.data[t])}_tags(){this._parseAllTags();let t=["seq"];this.isSegmentUnmapped()||t.push("start","end","strand","score","qual","MQ","CIGAR","length_on_ref","template_length"),this.isPaired()&&t.push("next_segment_position","pair_orientation"),t=t.concat(this._tagList||[]),Object.keys(this.data).forEach(r=>{r[0]!=="_"&&r!=="next_seq_id"&&t.push(r)});const n={};return t.filter(r=>{if(r in this.data&&this.data[r]===void 0||r==="CG"||r==="cg")return!1;const i=r.toLowerCase(),a=n[i];return n[i]=!0,!a})}parent(){}children(){return this.get("subfeatures")}id(){return this._id}mq(){const t=(this.get("_bin_mq_nl")&65280)>>8;return t===255?void 0:t}score(){return this.get("mq")}qual(){var t;return(t=this.qualRaw())===null||t===void 0?void 0:t.join(" ")}qualRaw(){if(this.isSegmentUnmapped())return;const{start:t,byteArray:n}=this.bytes,r=t+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes"),i=this.get("seq_length");return n.subarray(r,r+i)}strand(){return this.isReverseComplemented()?-1:1}multi_segment_next_segment_strand(){if(!this.isMateUnmapped())return this.isMateReverseComplemented()?-1:1}name(){return this.get("_read_name")}_read_name(){const t=this.get("_l_read_name"),{byteArray:n,start:r}=this.bytes;return n.toString("ascii",r+36,r+36+t-1)}_parseTag(t){if(this._allTagsParsed)return;const{byteArray:n,start:r}=this.bytes;let i=this._tagOffset||r+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes")+this.get("seq_length");const a=this.bytes.end;let o;for(;i<a&&o!==t;){const s=String.fromCharCode(n[i],n[i+1]);o=s.toLowerCase();const l=String.fromCharCode(n[i+2]);i+=3;let c;switch(l){case"A":c=String.fromCharCode(n[i]),i+=1;break;case"i":c=n.readInt32LE(i),i+=4;break;case"I":c=n.readUInt32LE(i),i+=4;break;case"c":c=n.readInt8(i),i+=1;break;case"C":c=n.readUInt8(i),i+=1;break;case"s":c=n.readInt16LE(i),i+=2;break;case"S":c=n.readUInt16LE(i),i+=2;break;case"f":c=n.readFloatLE(i),i+=4;break;case"Z":case"H":for(c="";i<=a;){const u=n[i++];if(u===0)break;c+=String.fromCharCode(u)}break;case"B":{c="";const u=n[i++],f=String.fromCharCode(u),h=n.readInt32LE(i);if(i+=4,f==="i")if(s==="CG")for(let d=0;d<h;d++){const p=n.readInt32LE(i),g=p>>4,y=Ml[p&15];c+=g+y,i+=4}else for(let d=0;d<h;d++)c+=n.readInt32LE(i),d+1<h&&(c+=","),i+=4;if(f==="I")if(s==="CG")for(let d=0;d<h;d++){const p=n.readUInt32LE(i),g=p>>4,y=Ml[p&15];c+=g+y,i+=4}else for(let d=0;d<h;d++)c+=n.readUInt32LE(i),d+1<h&&(c+=","),i+=4;if(f==="s")for(let d=0;d<h;d++)c+=n.readInt16LE(i),d+1<h&&(c+=","),i+=2;if(f==="S")for(let d=0;d<h;d++)c+=n.readUInt16LE(i),d+1<h&&(c+=","),i+=2;if(f==="c")for(let d=0;d<h;d++)c+=n.readInt8(i),d+1<h&&(c+=","),i+=1;if(f==="C")for(let d=0;d<h;d++)c+=n.readUInt8(i),d+1<h&&(c+=","),i+=1;if(f==="f")for(let d=0;d<h;d++)c+=n.readFloatLE(i),d+1<h&&(c+=","),i+=4;break}default:console.warn(`Unknown BAM tag type '${l}', tags may be incomplete`),c=void 0,i=a}if(this._tagOffset=i,this._tagList.push(s),o===t)return c;this.data[o]=c}this._allTagsParsed=!0}_parseAllTags(){this._parseTag("")}_parseCigar(t){return t.match(/\d+\D/g).map(n=>[n.match(/\D/)[0].toUpperCase(),parseInt(n,10)])}isPaired(){return!!(this.flags&vn.BAM_FPAIRED)}isProperlyPaired(){return!!(this.flags&vn.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return!!(this.flags&vn.BAM_FUNMAP)}isMateUnmapped(){return!!(this.flags&vn.BAM_FMUNMAP)}isReverseComplemented(){return!!(this.flags&vn.BAM_FREVERSE)}isMateReverseComplemented(){return!!(this.flags&vn.BAM_FMREVERSE)}isRead1(){return!!(this.flags&vn.BAM_FREAD1)}isRead2(){return!!(this.flags&vn.BAM_FREAD2)}isSecondary(){return!!(this.flags&vn.BAM_FSECONDARY)}isFailedQc(){return!!(this.flags&vn.BAM_FQCFAIL)}isDuplicate(){return!!(this.flags&vn.BAM_FDUP)}isSupplementary(){return!!(this.flags&vn.BAM_FSUPPLEMENTARY)}cigar(){if(this.isSegmentUnmapped())return;const{byteArray:t,start:n}=this.bytes,r=this.get("_n_cigar_op");let i=n+36+this.get("_l_read_name");const a=this.get("seq_length");let o="",s=0,l=t.readInt32LE(i),c=l>>4,u=Ml[l&15];if(u==="S"&&c===a)return i+=4,l=t.readInt32LE(i),c=l>>4,u=Ml[l&15],u!=="N"&&console.warn("CG tag with no N tag"),this.data.length_on_ref=c,this.get("CG");for(let f=0;f<r;++f)l=t.readInt32LE(i),c=l>>4,u=Ml[l&15],o+=c+u,u!=="H"&&u!=="S"&&u!=="I"&&(s+=c),i+=4;return this.data.length_on_ref=s,o}_flags(){}length_on_ref(){return this.data.length_on_ref?this.data.length_on_ref:(this.get("cigar"),this.data.length_on_ref)}_n_cigar_op(){return this.get("_flag_nc")&65535}_l_read_name(){return this.get("_bin_mq_nl")&255}_seq_bytes(){return this.get("seq_length")+1>>1}getReadBases(){return this.seq()}seq(){const{byteArray:t,start:n}=this.bytes,r=n+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4,i=this.get("_seq_bytes"),a=this.get("seq_length");let o="",s=0;for(let l=0;l<i;++l){const c=t[r+l];o+=xS[(c&240)>>4],s++,s<a&&(o+=xS[c&15],s++)}return o}getPairOrientation(){if(!this.isSegmentUnmapped()&&!this.isMateUnmapped()&&this._refID===this._next_refid()){const t=this.isReverseComplemented()?"R":"F",n=this.isMateReverseComplemented()?"R":"F";let r=" ",i=" ";this.isRead1()?(r="1",i="2"):this.isRead2()&&(r="2",i="1");const a=[];return this.template_length()>0?(a[0]=t,a[1]=r,a[2]=n,a[3]=i):(a[2]=t,a[3]=r,a[0]=n,a[1]=i),a.join("")}return null}_bin_mq_nl(){return this.bytes.byteArray.readInt32LE(this.bytes.start+12)}_flag_nc(){return this.bytes.byteArray.readInt32LE(this.bytes.start+16)}seq_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+20)}_next_refid(){return this.bytes.byteArray.readInt32LE(this.bytes.start+24)}_next_pos(){return this.bytes.byteArray.readInt32LE(this.bytes.start+28)}template_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+32)}toJSON(){const t={};return Object.keys(this).forEach(n=>{n.charAt(0)==="_"||n==="bytes"||(t[n]=this[n])}),t}}function lH(e){const t=e.split(/\r?\n/),n=[];return t.forEach(r=>{const[i,...a]=r.split(/\t/),o=a.map(s=>{const[l,c]=s.split(":",2);return{tag:l,value:c}});i&&n.push({tag:i.substr(1),data:o})}),n}const uH=21840194,Pm=1<<16;function Um(e){return[].concat(...e)}async function fH(e){const t=[];for await(const n of e)t.push(n);return t}class hH{constructor({bamFilehandle:t,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:a,baiUrl:o,csiPath:s,csiFilehandle:l,csiUrl:c,fetchSizeLimit:u,chunkSizeLimit:f,yieldThreadTime:h=100,renameRefSeqs:d=p=>p}){if(this.featureCache=new Gg({cache:new sH({maxSize:50}),fill:async({chunk:p,opts:g},y)=>{const{data:v,cpositions:S,dpositions:k}=await this._readChunk({chunk:p,opts:{...g,signal:y}});return await this.readBamFeatures(v,S,k,p)}}),this.renameRefSeq=d,t)this.bam=t;else if(n)this.bam=new gi(n);else if(r)this.bam=new kr(r);else throw new Error("unable to initialize bam");if(l)this.index=new Bm({filehandle:l});else if(s)this.index=new Bm({filehandle:new gi(s)});else if(c)this.index=new Bm({filehandle:new kr(c)});else if(a)this.index=new Tl({filehandle:a});else if(i)this.index=new Tl({filehandle:new gi(i)});else if(o)this.index=new Tl({filehandle:new kr(o)});else if(n)this.index=new Tl({filehandle:new gi(`${n}.bai`)});else if(r)this.index=new Tl({filehandle:new kr(`${r}.bai`)});else throw new Error("unable to infer index format");this.fetchSizeLimit=u||5e8,this.chunkSizeLimit=f||3e8,this.yieldThreadTime=h}async getHeader(t={}){const n=Yj(t),r=await this.index.parse(n),i=r.firstDataLine?r.firstDataLine.blockPosition+65535:void 0;let a;if(i){const u=await this.bam.read(Buffer.alloc(i+Pm),0,i+Pm,0,n),{bytesRead:f}=u;if({buffer:a}=u,!f)throw new Error("Error reading header");f<i?a=a.subarray(0,f):a=a.subarray(0,i)}else a=await this.bam.readFile(n);const o=await Fg(a);if(o.readInt32LE(0)!==uH)throw new Error("Not a BAM file");const s=o.readInt32LE(4);this.header=o.toString("utf8",8,8+s);const{chrToIndex:l,indexToChr:c}=await this._readRefSeqs(s+8,65535,n);return this.chrToIndex=l,this.indexToChr=c,lH(this.header)}async getHeaderText(t={}){return await this.getHeader(t),this.header}async _readRefSeqs(t,n,r={}){if(t>n)return this._readRefSeqs(t,n*2,r);const i=n+Pm,{bytesRead:a,buffer:o}=await this.bam.read(Buffer.alloc(i),0,n,0,r);if(!a)throw new Error("Error reading refseqs from header");const s=await Fg(o.subarray(0,Math.min(a,n))),l=s.readInt32LE(t);let c=t+4;const u={},f=[];for(let h=0;h<l;h+=1){const d=s.readInt32LE(c),p=this.renameRefSeq(s.toString("utf8",c+4,c+4+d-1)),g=s.readInt32LE(c+d+4);if(u[p]=h,f.push({refName:p,length:g}),c=c+8+d,c>s.length)return console.warn(`BAM header is very big. Re-fetching ${n} bytes.`),this._readRefSeqs(t,n*2,r)}return{chrToIndex:u,indexToChr:f}}async getRecordsForRange(t,n,r,i={viewAsPairs:!1,pairAcrossChr:!1,maxInsertSize:2e5}){return Um(await fH(this.streamRecordsForRange(t,n,r,i)))}async*streamRecordsForRange(t,n,r,i={}){const{signal:a}=i,o=this.chrToIndex&&this.chrToIndex[t];let s;if(!(o>=0))s=[];else if(s=await this.index.blocksForRange(o,n-1,r,i),!s)throw new Error("Error in index fetch");for(let c=0;c<s.length;c+=1){await mS(a);const u=s[c].fetchedSize();if(u>this.chunkSizeLimit)throw new Error(`Too many BAM features. BAM chunk size ${u} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit}`)}const l=s.map(c=>c.fetchedSize()).reduce((c,u)=>c+u,0);if(l>this.fetchSizeLimit)throw new Error(`data size of ${l.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);yield*this._fetchChunkFeatures(s,o,n,r,i)}async*_fetchChunkFeatures(t,n,r,i,a){const{viewAsPairs:o=!1}=a,s=[];let l=!1;for(let c=0;c<t.length;c++){const u=t[c],f=await this.featureCache.get(u.toString(),{chunk:u,opts:a},a.signal),h=[];for(let d=0;d<f.length;d+=1){const p=f[d];if(p.seq_id()===n)if(p.get("start")>=i){l=!0;break}else p.get("end")>=r&&h.push(p)}if(s.push(h),yield h,l)break}gS(a.signal),o&&(yield this.fetchPairs(n,s,a))}async fetchPairs(t,n,r){const{pairAcrossChr:i=!1,maxInsertSize:a=2e5}=r,o={},s={};n.map(h=>{const d={};for(let p=0;p<h.length;p++){const g=h[p].name(),y=h[p].id();d[g]||(d[g]=0),d[g]++,s[y]=1}iH(d).forEach(([p,g])=>{g===1&&(o[p]=!0)})});const l=[];n.map(h=>{for(let d=0;d<h.length;d++){const p=h[d],g=p.name(),y=p.get("start"),v=p._next_pos(),S=p._next_refid();o[g]&&(i||S===t&&Math.abs(y-v)<a)&&l.push(this.index.blocksForRange(S,v,v+1,r))}});const c=Um(await Promise.all(l)).sort().filter((h,d,p)=>!d||h.toString()!==p[d-1].toString()),u=c.map(h=>h.fetchedSize()).reduce((h,d)=>h+d,0);if(u>this.fetchSizeLimit)throw new Error(`data size of ${u.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);const f=c.map(async h=>{const{data:d,cpositions:p,dpositions:g,chunk:y}=await this._readChunk({chunk:h,opts:r}),v=await this.readBamFeatures(d,p,g,y),S=[];for(let k=0;k<v.length;k+=1){const C=v[k];o[C.get("name")]&&!s[C.id()]&&S.push(C)}return S});return Um(await Promise.all(f))}async _readChunk({chunk:t,opts:n}){const r=t.fetchedSize(),{buffer:i,bytesRead:a}=await this.bam.read(Buffer.alloc(r),0,r,t.minv.blockPosition,n),{buffer:o,cpositions:s,dpositions:l}=await jR(i.subarray(0,Math.min(a,r)),t);return{data:o,cpositions:s,dpositions:l,chunk:t}}async readBamFeatures(t,n,r,i){let a=0;const o=[];let s=0,l=+Date.now();for(;a+4<t.length;){const c=t.readInt32LE(a),u=a+4+c-1;if(r){for(;a+i.minv.dataPosition>=r[s++];);s--}if(u<t.length){const f=new cH({bytes:{byteArray:t,start:a,end:u},fileOffset:n?n[s]*256+(a-r[s])+i.minv.dataPosition+1:tH.signed(t.slice(a,u))});o.push(f),this.yieldThreadTime&&+Date.now()-l>this.yieldThreadTime&&(await $j(1),l=+Date.now())}a=u+1}return o}async hasRefSeq(t){const n=this.chrToIndex&&this.chrToIndex[t];return this.index.hasRefSeq(n)}async lineCount(t){const n=this.chrToIndex&&this.chrToIndex[t];return this.index.lineCount(n)}async indexCov(t,n,r){await this.index.parse();const i=this.chrToIndex&&this.chrToIndex[t];return this.index.indexCov(i,n,r)}async blocksForRange(t,n,r,i){await this.index.parse();const a=this.chrToIndex&&this.chrToIndex[t];return this.index.blocksForRange(a,n,r,i)}}(function(){(function(e){(function(t){var n={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};function r(D){return D&&DataView.prototype.isPrototypeOf(D)}if(n.arrayBuffer)var i=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],a=ArrayBuffer.isView||function(D){return D&&i.indexOf(Object.prototype.toString.call(D))>-1};function o(D){if(typeof D!="string"&&(D=String(D)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(D))throw new TypeError("Invalid character in header field name");return D.toLowerCase()}function s(D){return typeof D!="string"&&(D=String(D)),D}function l(D){var M={next:function(){var F=D.shift();return{done:F===void 0,value:F}}};return n.iterable&&(M[Symbol.iterator]=function(){return M}),M}function c(D){this.map={},D instanceof c?D.forEach(function(M,F){this.append(F,M)},this):Array.isArray(D)?D.forEach(function(M){this.append(M[0],M[1])},this):D&&Object.getOwnPropertyNames(D).forEach(function(M){this.append(M,D[M])},this)}c.prototype.append=function(D,M){D=o(D),M=s(M);var F=this.map[D];this.map[D]=F?F+", "+M:M},c.prototype.delete=function(D){delete this.map[o(D)]},c.prototype.get=function(D){return D=o(D),this.has(D)?this.map[D]:null},c.prototype.has=function(D){return this.map.hasOwnProperty(o(D))},c.prototype.set=function(D,M){this.map[o(D)]=s(M)},c.prototype.forEach=function(D,M){for(var F in this.map)this.map.hasOwnProperty(F)&&D.call(M,this.map[F],F,this)},c.prototype.keys=function(){var D=[];return this.forEach(function(M,F){D.push(F)}),l(D)},c.prototype.values=function(){var D=[];return this.forEach(function(M){D.push(M)}),l(D)},c.prototype.entries=function(){var D=[];return this.forEach(function(M,F){D.push([F,M])}),l(D)},n.iterable&&(c.prototype[Symbol.iterator]=c.prototype.entries);function u(D){if(D.bodyUsed)return Promise.reject(new TypeError("Already read"));D.bodyUsed=!0}function f(D){return new Promise(function(M,F){D.onload=function(){M(D.result)},D.onerror=function(){F(D.error)}})}function h(D){var M=new FileReader,F=f(M);return M.readAsArrayBuffer(D),F}function d(D){var M=new FileReader,F=f(M);return M.readAsText(D),F}function p(D){for(var M=new Uint8Array(D),F=new Array(M.length),U=0;U<M.length;U++)F[U]=String.fromCharCode(M[U]);return F.join("")}function g(D){if(D.slice)return D.slice(0);var M=new Uint8Array(D.byteLength);return M.set(new Uint8Array(D)),M.buffer}function y(){return this.bodyUsed=!1,this._initBody=function(D){this._bodyInit=D,D?typeof D=="string"?this._bodyText=D:n.blob&&Blob.prototype.isPrototypeOf(D)?this._bodyBlob=D:n.formData&&FormData.prototype.isPrototypeOf(D)?this._bodyFormData=D:n.searchParams&&URLSearchParams.prototype.isPrototypeOf(D)?this._bodyText=D.toString():n.arrayBuffer&&n.blob&&r(D)?(this._bodyArrayBuffer=g(D.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):n.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(D)||a(D))?this._bodyArrayBuffer=g(D):this._bodyText=D=Object.prototype.toString.call(D):this._bodyText="",this.headers.get("content-type")||(typeof D=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n.searchParams&&URLSearchParams.prototype.isPrototypeOf(D)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},n.blob&&(this.blob=function(){var D=u(this);if(D)return D;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?u(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(h)}),this.text=function(){var D=u(this);if(D)return D;if(this._bodyBlob)return d(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(p(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},n.formData&&(this.formData=function(){return this.text().then(C)}),this.json=function(){return this.text().then(JSON.parse)},this}var v=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function S(D){var M=D.toUpperCase();return v.indexOf(M)>-1?M:D}function k(D,M){M=M||{};var F=M.body;if(D instanceof k){if(D.bodyUsed)throw new TypeError("Already read");this.url=D.url,this.credentials=D.credentials,M.headers||(this.headers=new c(D.headers)),this.method=D.method,this.mode=D.mode,this.signal=D.signal,!F&&D._bodyInit!=null&&(F=D._bodyInit,D.bodyUsed=!0)}else this.url=String(D);if(this.credentials=M.credentials||this.credentials||"same-origin",(M.headers||!this.headers)&&(this.headers=new c(M.headers)),this.method=S(M.method||this.method||"GET"),this.mode=M.mode||this.mode||null,this.signal=M.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&F)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(F)}k.prototype.clone=function(){return new k(this,{body:this._bodyInit})};function C(D){var M=new FormData;return D.trim().split("&").forEach(function(F){if(F){var U=F.split("="),q=U.shift().replace(/\+/g," "),V=U.join("=").replace(/\+/g," ");M.append(decodeURIComponent(q),decodeURIComponent(V))}}),M}function E(D){var M=new c,F=D.replace(/\r?\n[\t ]+/g," ");return F.split(/\r?\n/).forEach(function(U){var q=U.split(":"),V=q.shift().trim();if(V){var pe=q.join(":").trim();M.append(V,pe)}}),M}y.call(k.prototype);function w(D,M){M||(M={}),this.type="default",this.status=M.status===void 0?200:M.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in M?M.statusText:"OK",this.headers=new c(M.headers),this.url=M.url||"",this._initBody(D)}y.call(w.prototype),w.prototype.clone=function(){return new w(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new c(this.headers),url:this.url})},w.error=function(){var D=new w(null,{status:0,statusText:""});return D.type="error",D};var A=[301,302,303,307,308];w.redirect=function(D,M){if(A.indexOf(M)===-1)throw new RangeError("Invalid status code");return new w(null,{status:M,headers:{location:D}})},t.DOMException=e.DOMException;try{new t.DOMException}catch{t.DOMException=function(M,F){this.message=M,this.name=F;var U=Error(M);this.stack=U.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function T(D,M){return new Promise(function(F,U){var q=new k(D,M);if(q.signal&&q.signal.aborted)return U(new t.DOMException("Aborted","AbortError"));var V=new XMLHttpRequest;function pe(){V.abort()}V.onload=function(){var Se={status:V.status,statusText:V.statusText,headers:E(V.getAllResponseHeaders()||"")};Se.url="responseURL"in V?V.responseURL:Se.headers.get("X-Request-URL");var tt="response"in V?V.response:V.responseText;F(new w(tt,Se))},V.onerror=function(){U(new TypeError("Network request failed"))},V.ontimeout=function(){U(new TypeError("Network request failed"))},V.onabort=function(){U(new t.DOMException("Aborted","AbortError"))},V.open(q.method,q.url,!0),q.credentials==="include"?V.withCredentials=!0:q.credentials==="omit"&&(V.withCredentials=!1),"responseType"in V&&n.blob&&(V.responseType="blob"),q.headers.forEach(function(Se,tt){V.setRequestHeader(tt,Se)}),q.signal&&(q.signal.addEventListener("abort",pe),V.onreadystatechange=function(){V.readyState===4&&q.signal.removeEventListener("abort",pe)}),V.send(typeof q._bodyInit>"u"?null:q._bodyInit)})}return T.polyfill=!0,e.fetch||(e.fetch=T,e.Headers=c,e.Request=k,e.Response=w),t.Headers=c,t.Request=k,t.Response=w,t.fetch=T,Object.defineProperty(t,"__esModule",{value:!0}),t})({})})(typeof self<"u"?self:Sa)})();class dH extends Xf(Po){constructor(n,r){const i={channel:"x",windowSize:2e4,...n};super(r,i.channel);En(this,"lastRequestId",0);En(this,"chrPrefixFixer",n=>n);if(this.params=i,!this.params.url)throw new Error("No URL provided for BamSource");const a=o=>new kr(Ko(o,this.view.getBaseUrl()));this.bam=new hH({bamFilehandle:a(this.params.url),baiFilehandle:a(this.params.indexUrl??this.params.url+".bai")}),this.headerPromise=this.bam.getHeader(),this.headerPromise.then(o=>{var c,u;const s=this.genome.hasChrPrefix(),l=(u=(c=this.bam.indexToChr)==null?void 0:c[0])==null?void 0:u.refName.startsWith("chr");s&&!l?this.chrPrefixFixer=f=>f.replace("chr",""):!s&&l&&(this.chrPrefixFixer=f=>"chr"+f)})}async onDomainChanged(n){const r=this.params.windowSize;if(n[1]-n[0]>r)return;await this.headerPromise;const i=this.quantizeInterval(n,r);if(this.checkAndUpdateLastInterval(i)){const a=this.genome.continuousToDiscreteChromosomeIntervals(i),o=await Promise.all(a.map(s=>this.bam.getRecordsForRange(this.chrPrefixFixer(s.chrom),s.startPos,s.endPos).then(l=>l.map(c=>({chrom:s.chrom,start:c.get("start"),end:c.get("end"),name:c.get("name"),MD:c.get("MD"),cigar:c.get("cigar"),mapq:c.get("mq"),strand:c.get("strand")===1?"+":"-"})))));this.publishData(o.flat())}}}function AS(e,t){if(B7(e))return new L7(e,t);if(O7(e))return new R7(e,t);if(z7(e))return new P7(e,t);if(pH(e))return xH(e.lazy,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function pH(e){return"lazy"in e}function gH(e){return(e==null?void 0:e.type)=="axisTicks"}function mH(e){return(e==null?void 0:e.type)=="axisGenome"}function bH(e){return(e==null?void 0:e.type)=="indexedFasta"}function yH(e){return(e==null?void 0:e.type)=="bigwig"}function vH(e){return(e==null?void 0:e.type)=="bigbed"}function wH(e){return(e==null?void 0:e.type)=="bam"}function xH(e,t){if(gH(e))return new U7(e,t);if(mH(e))return new j7(e,t);if(bH(e))return new VR(e,t);if(yH(e))return new Fj(e,t);if(vH(e))return new jj(e,t);if(wH(e))return new dH(e,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function AH(e){const t=Object.keys(e).filter(r=>typeof r=="string"),n=new Function("source","return { "+t.map(r=>JSON.stringify(r)).map(r=>`${r}: source[${r}]`).join(`,
1547
+ `)+" };");return n.properties=t,n}class Eh extends We{get behavior(){return Cr}constructor(){super();const t=n=>{const r=AH(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=t,this.beginBatch=n=>{yx(n)&&(this.handle=t),super.beginBatch(n)}}}function EH(e){return"name"in e}class ES extends zo{constructor(n,r,i){super();Fe(this,ru,void 0);this.provider=i,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){Sn(this,ru,n),this.loadSynchronously()}loadSynchronously(){const n=ce(this,ru)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=oA(n[0]));else throw new Error(`Named data "${this.params.name}" is not an array!`);this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}ru=new WeakMap;class SS{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(t,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(t)}_relayObserverCallback(t,n){const r=this._observers.get(n);if(r)for(const i of r)i(t)}addDataSource(t,n){this._dataSourcesByHost.set(n,t)}findDataSourceByKey(t){return this._dataSourcesByHost.get(t)}findNamedDataSource(t){let n,r=[];for(const[i,a]of this._dataSourcesByHost.entries())if(a instanceof ES&&t==a.identifier){if(n&&n!==a)throw new Error(`Found multiple instances of named data: ${t}. Data flow optimization is broken (it's a bug).`);n=a,r.push(i)}if(n)return{dataSource:n,hosts:r}}addCollector(t,n){this._collectorsByHost.set(n,t),t.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(t){return this._collectorsByHost.get(t)}initialize(){for(const t of this.dataSources)t.visit(n=>n.initialize())}}function CS(e,t){const n=[];let r;const i=t??new SS,a=[];function o(u,f=()=>{}){if(!r)throw f()||new Error("Cannot append data flow node, no parent exist!");return r.addChild(u),r=u,u}function s(u,f){return o(u,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${f?JSON.stringify(f):""}`))}function l(u,f){for(const h of u){let d;try{d=I7(h,f)}catch(p){throw console.warn(p),new Error(`Cannot initialize "${h.type}" transform: ${p}`)}d.behavior&di&&s(new Eh),s(d)}}const c=u=>{if(n.push(r),u.spec.data){const f=EH(u.spec.data)?new ES(u.spec.data,u,u.context.getNamedDataFromProvider):AS(u.spec.data,u);r=f,i.addDataSource(f,u)}if(u.spec.transform&&l(u.spec.transform,u),u instanceof Je){if(!r)throw new Error("A unit view has no (inherited) data source");const f=SH(u);if(f){a.push(f.rewrite);for(const d of f.transforms)s(d)}u.mark.isPickingParticipant()&&(s(new Eh),s(new rA({type:"identifier"})));const h=new $c({type:"collect",groupby:u.getFacetFields(),sort:CH(u,f==null?void 0:f.rewrittenEncoding)});o(h),i.addCollector(h,u)}Kx(u.spec)};return c.postOrder=u=>{r=n.pop()},e.visit(c),a.forEach(u=>u()),i}function SH(e){var a;const t=[],n={},r=[];for(const[o,s]of Object.entries(e.getEncoding())){const l=o;kc(l)&&Rv(s)&&r.push({channel:l,chromPosDef:s})}const i=Us(r,o=>So(o.channel),o=>o.chromPosDef.chrom);for(const[o,s]of i.entries())for(const[l,c]of s.entries()){const u=[],f=[],h=[];for(const{channel:d,chromPosDef:p}of c){const g=S=>S.replace(/[^A-Za-z0-9_]/g,""),y=["_linearized_",g(p.chrom),"_",g(p.pos)].join(""),v={...((a=e.spec.encoding)==null?void 0:a[d])??e.getEncoding()[d]??{},field:y};delete v.chrom,delete v.pos,!v.type&&p.type&&(v.type=p.type),n[d]=v,u.push(p.pos),h.push(p.offset??0),f.push(y)}t.push(new Eh),t.push(new Jx({type:"linearizeGenomicCoordinate",channel:o,chrom:l,pos:u,offset:h,as:f},e))}return t.length?{transforms:t,rewrittenEncoding:n,rewrite:()=>{e.spec.encoding={...e.spec.encoding,...n},fx(e.mark,"encoding")}}:void 0}function CH(e,t){var r;const n={...e.getEncoding(),...t}.x;if(an(n)&&(r=e.getScaleResolution("x"))!=null&&r.isZoomable()){if(pa(n))return{field:n.field};if(!Cc(n))throw new Error("A zoomable x channel must be mapped to a field.")}}function _H(e,...t){let n=e;for(const a of t)n.addChild(a),n=a;let r;n instanceof $c?r=n:(r=new $c,n.addChild(r));let i;return e instanceof zo?i=async()=>(await e.load(),r.getData()):i=async()=>{throw new Error("The root node is not derived from DataSource!")},{dataSource:e,collector:r,loadAndCollect:i}}function _S(e,t=void 0){if(e.parent!==t)return!1;for(const n of e.children)if(!_S(n,e))return!1;return!0}function jm(e,t=!1){if(e.behavior&Pp&&(t=!0),e instanceof Eh)if(t)t=!1;else{const n=e.children[0];e.excise(),n&&jm(n,t);return}e.behavior&Cr&&(t=!1);for(let n=0,r=e.children.length;n<r;n++)jm(e.children[n],t||r>1)}function kH(e){const t=[...e._dataSourcesByHost.entries()],n=new Map;for(const r of t){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}e._dataSourcesByHost.clear();for(let[r,i]of t){const a=n.get(i.identifier);a&&(a.adoptChildrenOf(i),i=a),e.addDataSource(i,r)}}function DH(e){if(jm(e),!_S(e))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function IH(e){for(const t of e.dataSources)DH(t);kH(e)}function kS(e){e.visit(n=>{n instanceof Je&&n.resolve("scale")});const t=new Set;e.visit(n=>{for(const r of Object.values(n.resolutions.scale)){const i=r.name;if(i&&t.has(i))throw new Error(`The same scale name "${i}" occurs in multiple scale resolutions!`);t.add(i)}}),e.visit(n=>{n instanceof Je&&n.resolve("axis")}),e.visit(n=>n.onScalesResolved())}function TH(e){for(const t of _c){const n=e.getScaleResolution(t);n&&!n.name&&n.isZoomable()&&(n.name=`${t}_at_root`)}}function MH(e){const t=[];return e.visit(n=>{if(n instanceof Je){const r=n.getEncoding();for(const[i,a]of Object.entries(r))pa(a)&&"type"in a&&t.push({view:n,channel:i,field:a.field,type:a.type});return Mf}}),t}async function NH(e,t,n){var o;if(!e.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(e));const r=rc({baseURL:t}),i=e.import.url,a=JSON.parse(await r.load(i).catch(s=>{throw new Error(`Could not load imported view spec: ${i}
1548
+ Reason: ${s.message}`)}));if(n.isViewSpec(a))return a.baseUrl=(o=i.match(/^[^?#]*\//))==null?void 0:o[0],a;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(e)}`)}async function DS(e){const t=[];e.visit(n=>{if(n instanceof jx)return t.push(n),Mf});for(const n of t){const r=n.context,i=await NH(n.spec,n.getBaseUrl(),r),a=r.createView(i,n.parent,n.name);n.parent.replaceChild(n,a),await DS(a)}}function IS(e){const t=[];return e.visit(n=>{t.push(n)}),new Set([...sk(t,n=>n.length,n=>n.name)].filter(([n,r])=>r==1&&n!==void 0).map(([n,r])=>n))}const FH=e=>!/^(layer|concat)\d+$/.test(e);class TS{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class MS extends TS{constructor(t,n){super(t),this.webGLHelper=n,this.buffer=[],this.coords=void 0,this.views=new Set}pushView(t,n){this.views.add(t),this.coords=n}renderMark(t,n){if(this.globalOptions.picking&&!t.isPickingParticipant())return;const r=t.render(n);r&&this.buffer.push({mark:t,callback:r,coords:this.coords,clipRect:n.clipRect})}renderDeferred(){if(this.batch||this._buildBatch(),this.batch.length==0)return;const t=this.webGLHelper.gl,n=this.globalOptions.picking;t.bindFramebuffer(t.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&&t.bindFramebuffer(t.FRAMEBUFFER,null)}_buildBatch(){this.batch=[];let t=!0,n=!0;const r=o=>()=>{t&&o()},i=o=>()=>{t&&n&&o()},a=Us(this.buffer,o=>o.mark);for(const[o,s]of a.entries()){if(!o.isReady())continue;this.batch.push(()=>{t=o.unitView.getEffectiveOpacity()>0}),this.batch.push(...o.prepareRender(this.globalOptions).map(c=>r(c)));let l;for(const c of s){const u=c.coords;u.equals(l)||this.batch.push(r(()=>{n=o.setViewport(u,c.clipRect)})),this.batch.push(i(c.callback)),l=c.coords}}}}class BH extends TS{constructor(...t){super({}),this.contexts=t}pushView(t,n){for(const r of this.contexts)r.pushView(t,n)}popView(t){for(const n of this.contexts)n.popView(t)}renderMark(t,n){for(const r of this.contexts)r.renderMark(t,n)}}class LH{constructor(t,n){this.point=t,this.uiEvent=n,this.stopped=!1,this.target=void 0}stopPropagation(){this.stopped=!0}get type(){return this.uiEvent.type}}class OH{constructor(t,n){this.x=t,this.y=n}equals(t){return t?t===this||t.x===this.x&&t.y===this.y:!1}}const RH=e=>new Promise(t=>setTimeout(t,e));function Sh(e){const t=e.requestAnimationFrame||window.requestAnimationFrame,n=e.signal,r=()=>new Promise((i,a)=>{if(n!=null&&n.aborted)return a("aborted");const o=performance.now(),s=o+(e.duration||1e3),l=typeof e.from=="number"?e.from:0,c=typeof e.to=="number"?e.to:1,u=e.easingFunction||(g=>g),f=g=>(g-o)/(s-o),h=g=>g*(c-l)+l,d=g=>Math.max(0,Math.min(1,g)),p=g=>{n!=null&&n.aborted?a("aborted"):(e.onUpdate(h(u(d(f(g))))),g<s?t(p):(e.onUpdate(h(u(1))),i()))};t(p)});return e.delay?n!=null&&n.aborted?Promise.reject("aborted"):RH(e.delay).then(r):r()}class zH{constructor(t){this._renderCallback=t,this._renderRequested=!1,this._warn=!1,this.transitions=[]}requestTransition(t){this.cancelTransition(t),this.transitions.push(t),this.requestRender()}cancelTransition(t){const n=this.transitions.indexOf(t);n>=0&&this.transitions.splice(n,1)}requestRender(){this._renderRequested?this._warn&&console.warn("Render already requested!"):(this._renderRequested=!0,window.requestAnimationFrame(t=>{this._renderRequested=!1;const n=this.transitions;this.transitions=[];let r;for(;r=n.shift();)r(t);this._renderCallback(t)}))}transition(t){return Sh({requestAnimationFrame:n=>this.requestTransition(n),...t})}}function NS(){const e=t=>t;return e.invert=t=>t,e.copy=NS,e.invertRange=()=>{},e}class PH{constructor(t){this.genomes=new Map,this.genomeSpy=t}async initialize(t){const n=new _L(t);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.genomeSpy.spec.baseUrl)))}getGenome(t){if(!this.genomes.size)throw new Error("No genomes have been configured!");if(t){const n=this.genomes.get(t);if(!n)throw new Error(`No genome with the name ${t} 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 UH="data:image/png;base64,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",jH={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class HH{constructor(t){this._webGLHelper=t,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new Zi([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:Op(eA),texture:this._createTextureNow(UH)}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(ze(r)&&(r=jH[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:t,style:n,weight:r};let a=this._fonts.get(i);return a||(a={metrics:void 0,texture:void 0},this._fonts.set(i,a),this._promises.push(this._loadFontEntry(a,i))),a}async _loadFontEntry(t,n){try{const r=await this._loadMetadata(n.family),i=$H(r,n),a=this.fontRepository+FS(n.family)+"/"+i.replace(/\.\w+/,""),o=this._createTexture(a+".png"),s=this._loadFont(a+".json");t.texture=await o,t.metrics=await s}catch(r){console.log("Cannot load font. Using default.",r),t.metrics=this._defaultFontEntry.metrics,t.texture=this._defaultFontEntry.texture}}_loadFont(t){let n=this._fontPromises.get(t);return n||(n=fetch(t).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>Op(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=FS(t);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=>GH(i)).catch(i=>{console.warn(i)}),this._metadataPromises.set(n,r)),r}getDefaultFont(){return this._defaultFontEntry}_createTexture(t){const n=this._webGLHelper.gl;return new Promise((r,i)=>{Bc(n,{src:t,min:n.LINEAR},(a,o,s)=>{a?i(a):r(o)})})}_createTextureNow(t){const n=this._webGLHelper.gl;let r;const i=new Promise((a,o)=>{r=Bc(n,{src:t,min:n.LINEAR},(s,l,c)=>{s?o(s):a(l)})});return this._promises.push(i),r}}function FS(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function GH(e){const t=e.split(`
1549
+ `),n=[];let r;for(const i of t)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 a=i.match(/^\s*([A-Za-z_]+):[ ]?"(.*)"$/);if(a){const o=a[1];r[o]=a[2]}if(a=i.match(/^\s*([A-Za-z_]+):[ ]?(\d+)$/),a){const o=a[1];r[o]=+a[2]}}return n}function $H(e,t){let n,r=Number.POSITIVE_INFINITY;for(const i of e)if(t.family.localeCompare(i.name,void 0,{sensitivity:"accent"})==0&&t.style==i.style){const a=Math.abs(t.weight-i.weight);a<r&&(r=a,n=i)}return n==null?void 0:n.filename}function VH(e,t){const n=[];let r;for(const i of e.split(`
1550
+ `))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 YH{constructor(t,n){this.animator=t,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(t,n){if(this.disabled){n(t);return}t*this.momentum<0?this.momentum=0:Math.abs(t)>this.accelerationThreshold?this.momentum=O_([this.momentum,t],this.acceleration):this.momentum=t,this.callback=n,this.loop||this.animate()}animate(t){this.callback(this.momentum);const n=t-this.timestamp||0;this.timestamp=t;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 QH(e){const t={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in e){const a=i;!r.includes(i)&&n.includes(typeof e[a])&&(t[a]=e[a])}return t}const BS=new Map;async function ZH(e,t,n){const r=e.symbol;let i=BS.get(r)??await XH(e.symbol);return i?(BS.set(r,i),z`<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 qH(e){console.log("Searching: "+e);const t={mode:"cors"},r=(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=gene&term=${e}[GENE]&sort=relevance&retmode=json`,t).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`,t).then(o=>o.json())).result[r]:null}const WH=hs(qH,500);function XH(e){return WH(e)}const KH=rt(".4~r"),JH=rt(".4~e");function LS(e){return e===null?z`<span class="na">NA</span>`:ze(e)?e.substring(0,30):Number.isInteger(e)?""+e:Ke(e)?Math.abs(e)>Math.pow(10,8)||Math.abs(e)<Math.pow(10,-8)?JH(e):KH(e):gu(e)?e?"True":"False":"?"+typeof e+" "+e}async function eG(e,t,n){const r=(l,c)=>{var u;for(const[f,h]of Object.entries(t.encoders))if((u=h==null?void 0:h.accessor)!=null&&u.fields.includes(l))switch(f){case"color":case"fill":case"stroke":return z`<span class="color-legend" style="${`background-color: ${h(c)}`}"></span>`}return""},i=Object.entries(e).filter(([l,c])=>!l.startsWith("_"));if(i.length===0)return;const a=z`<table class="attributes">${i.map(([l,c])=>z`<tr><th>${l}</th><td>${LS(c)} ${r(l,e)}</td></tr>`)}</table>`,o=t.unitView.getTitleText(),s=o?z`<div class="title"><strong>${o}</strong></div>`:"";return z`${s}${a}`}class tG extends Wx{constructor(t,n){super({vconcat:[]},t,void 0,"implicitRoot",1),n.parent=this,this.appendChild(n)}}xe("index",n0,["continuous"]),xe("locus",d5,["continuous"]),xe("null",NS,[]),Py("fasta",VH);class OS{constructor(t,n,r={}){this.container=t,this.spec=n,this.accessorFactory=new nM,this.viewFactory=new i7,this.namedDataProviders=[],this.animator=new zH(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=i=>i.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new YH(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this.tooltipHandlers={default:eG,refseqgene:ZH,...r.tooltipHandlers??{}},this.viewRoot=void 0}registerNamedDataProvider(t){this.namedDataProviders.unshift(t)}getNamedDataFromProvider(t){for(const n of this.namedDataProviders){const r=n(t);if(r)return r}}updateNamedData(t,n){const r=this.viewRoot.context.dataFlow.findNamedDataSource(t);if(!r)throw new Error("No such named data source: "+t);r.dataSource.updateDynamicData(n);for(const i of r.hosts)i.visit(a=>{for(const o of Object.values(a.resolutions.scale))o.reconfigure()});this.animator.requestRender()}broadcast(t,n){const r={type:t,payload:n};this.viewRoot.visit(i=>i.handleBroadcast(r))}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new yB(this.container,()=>{if(this.viewRoot){const t=this.viewRoot.getSize().addPadding(this.viewRoot.getOverhang()),n=r=>r.grow>0?void 0:r.px;return{width:n(t.width),height:n(t.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 LI(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[t,n]of this._keyboardListeners)for(const r of n)document.removeEventListener(t,r);for(this._glHelper.finalize();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new PH(this),await this.genomeStore.initialize(this.spec.genome));const t=this,n={dataFlow:new SS,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new HH(this._glHelper),requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,addKeyboardListener:(s,l)=>{document.addEventListener(s,l);let c=this._keyboardListeners.get(s);c||(c=[],this._keyboardListeners.set(s,c)),c.push(l)},isViewVisible:t.viewVisibilityPredicate,isViewSpec:s=>t.viewFactory.isViewSpec(s),createView:function(s,l,c){return t.viewFactory.createView(s,n,l,c)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(s=>r.datasets[s]),this.viewRoot=n.createView(r,null,"viewRoot"),await DS(this.viewRoot),(this.viewRoot instanceof Je||this.viewRoot instanceof Wn)&&(this.viewRoot=new tG(n,this.viewRoot)),kS(this.viewRoot),TH(this.viewRoot),this._glHelper.invalidateSize();const i=[];this.viewRoot.visit(s=>{s instanceof Je&&i.push(s)});const a=CS(this.viewRoot,n.dataFlow);IH(a),this.broadcast("dataFlowBuilt",a),a.dataSources.forEach(s=>console.log(s.subtreeToString())),i.forEach(s=>s.mark.initializeEncoders());const o=Promise.all(i.map(s=>s.mark.initializeGraphics()));for(const s of i)a.addObserver(l=>{s.mark.initializeData(),s.mark.updateGraphicsData()},s);await n.fontManager.waitUntilReady(),a.initialize(),await Promise.all(a.dataSources.map(s=>s.load())),this.viewRoot.visit(s=>{for(const l of Object.values(s.resolutions.scale))l.reconfigure()}),this.broadcast("dataLoaded"),await o,this.viewRoot.visit(s=>{for(const l of Object.values(s.resolutions.scale))this._glHelper.createRangeTexture(l)});for(const s of i)s.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(s=>Rc(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(t){const n=`${t.view?`At "${t.view.getPathString()}": `:""}${t.toString()}`;return console.error(t.stack),nG(this.container,n),!1}finally{this.container.classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const t=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 a=t.getBoundingClientRect(),o=new OH(r.clientX-a.left-t.clientLeft,r.clientY-a.top-t.clientTop),s=l=>{this.viewRoot.propagateInteractionEvent(new LH(o,l)),this._tooltipUpdateRequested||this.tooltip.clear()};if(r.type!="wheel"&&this._wheelInertia.cancel(),r.type=="mousemove")this._handlePicking(o.x,o.y);else if(r.type=="mousedown"||r.type=="mouseup")this.renderPickingFramebuffer();else if(r.type=="wheel"){this._tooltipUpdateRequested=!1;const l=r;if(Math.abs(l.deltaX)>Math.abs(l.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const c=QH(l);this._wheelInertia.setMomentum(l.deltaY*(l.deltaMode?80:1),u=>{const f=new WheelEvent("wheel",{...c,deltaMode:0,deltaX:0,deltaY:u});s(f)}),l.preventDefault();return}}if(r.type=="click"){const l=this._currentHover?{type:r.type,viewPath:[...this._currentHover.mark.unitView.getAncestors()].map(c=>c.name).reverse(),datum:this._currentHover.datum}:{type:r.type,viewPath:null,datum:null};(i=this._eventListeners.get("click"))==null||i.forEach(c=>c(l))}s(r)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(r=>t.addEventListener(r,n)),t.addEventListener("mousedown",()=>{document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),t.addEventListener("dragstart",r=>r.stopPropagation())}_handlePicking(t,n){var a;const r=this._glHelper.readPickingPixel(t,n),i=r[0]|r[1]<<8|r[2]<<16;if(i==0){this._currentHover=null;return}if(i!==((a=this._currentHover)==null?void 0:a.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(o=>{if(o instanceof Je){if(o.mark.isPickingParticipant()){const s=o.mark.encoders.uniqueId.accessor;o.getCollector().visitData(l=>{s(l)==i&&(this._currentHover={mark:o.mark,datum:l,uniqueId:i})})}if(this._currentHover)return xa}}),this._currentHover){const o=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!o.isPickingParticipant())return;const l=o.properties.tooltip;if(l!==null){const c=(l==null?void 0:l.handler)??"default",u=this.tooltipHandlers[c];if(!u)throw new Error("No such tooltip handler: "+c);return u(s,o,l==null?void 0:l.params)}})}}updateTooltip(t,n){if(!this._tooltipUpdateRequested||!t)this.tooltip.updateWithDatum(t,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const t=this.viewRoot;if(!t)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 MS({picking:!1},this._glHelper),this._pickingContext=new MS({picking:!0},this._glHelper),t.render(new BH(this._renderingContext,this._pickingContext),pi.create(0,0,n.width,n.height)),this.broadcast("layoutComputed")}renderAll(){var t;(t=this._renderingContext)==null||t.renderDeferred(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){this._dirtyPickingBuffer&&(this._pickingContext.renderDeferred(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const t=[];return this.viewRoot.visit(n=>{n instanceof Je&&n.getAccessor("search")&&t.push(n)}),t}getNamedScaleResolutions(){const t=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&t.set(r.name,r)}),t}}function nG(e,t){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=t,n.appendChild(r),e.appendChild(n)}const wq="",rG="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDY0IDY0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MS41OyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjEwMjIxLDAuMDA2ODM4MjUsLTAuMDA2NzEzNiwwLjEwMDM0NywtOC4wMzQyNCwtMTMuMjIyMikiPgogICAgICAgIDxwYXRoIGQ9Ik0yMDguNjI5LDU0OC4xN0MyMDguNjI5LDU0OC4xNyAyMTkuNzY4LDU5NC4zODkgMjM5LjgxNCw2MTkuMjIyQzI1OS44Niw2NDQuMDU1IDMxOS4xMTksNjgwLjgzMSAzMTkuMTE5LDY4MC44MzFDMzE5LjExOSw2ODAuODMxIDM4NS41NTcsNjIyLjkxNSA0MzcuODcsNDk4LjM0NkM0MzcuODcsNDk4LjM0NiA0NTYuMDIxLDQ5OS4yMzYgNDczLjgwOCw0ODYuNDQ2QzQ5MS41OTQsNDczLjY1NiA0OTAuMjM5LDQ3OC41MzQgNDk0Ljg4Myw0NjEuNjJDNDk0Ljg4Myw0NjEuNjIgNTUxLjg0OCw0NjcuOTM3IDYyNS44MjYsNDUxLjg2M0M2NjcuNjM0LDQ0Mi43NzggNzEwLjIzOCw0MjUuNjQ5IDc0Ny4zODIsMzkzLjE0MkM3NDcuMzgyLDM5My4xNDIgNzIxLjk5MiwzNjAuMjQ0IDY4OS40MjIsMjkxLjQ1QzY3Ny4wMjksMjY1LjI3NSA2NDcuNTE4LDI1Ny4wOTggNTkwLjc0NywyMDMuMzA5TDQzOC4wODMsMzkxLjI3M0wyMDguNjI5LDU0OC4xN1oiIHN0eWxlPSJmaWxsLW9wYWNpdHk6MC4xMTsiLz4KICAgIDwvZz4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMDgxOTg1LC0wLjA1ODI0OTMsMC4wNTgyNDkzLDAuMDgxOTg1LC00MC40NzU0LDM0Ljc2NjgpIj4KICAgICAgICA8cGF0aCBkPSJNNTYxLjU4OCwzNDkuMTU1QzU2MS41ODgsMzQ5LjE1NSA1MTYuMjk3LDI3MS4zNDEgMzI4Ljg0MSwyNTIuMDQ0QzMyOC44NDEsMjUyLjA0NCAzMDIuMzQyLDMyNS4xODkgMzA3LjY4NiwzNjguMDU2QzMxMy4wMzEsNDEwLjkyMiAzMDMuMDAxLDQ1Ni4xNDcgMzI5LjEzMiw1MDEuMTc0QzMyOS4xMzIsNTAxLjE3NCA0NDMuMTE0LDUwNi43NDMgNTU0LjY0OSw0MjguNDY5TDYyOS4yMDQsNDMyLjExMkM2MjkuMjA0LDQzMi4xMTIgNjczLjc1NSw1MzQuMzUxIDg1Ni45NjQsNTU0LjM3NUM4NTYuOTY0LDU1NC4zNzUgODg2LjcxNyw0OTEuNzY4IDg3OS4xOTMsNDE3LjQ3OEM4NzEuMjExLDMzOC42NzMgODcxLjcxNiwyOTMuNDQzIDg3MS43MTYsMjkzLjQ0M0M4NzEuNzE2LDI5My40NDMgNzc1LjQ4NSwyODMuOTI4IDYzNS40MTgsMzYxLjc5NUw1NjEuNTg4LDM0OS4xNTVaIiBzdHlsZT0iZmlsbDpyZ2IoMTI3LDE4NywyMjEpOyIvPgogICAgICAgIDxjbGlwUGF0aCBpZD0iX2NsaXAxIj4KICAgICAgICAgICAgPHBhdGggZD0iTTU2MS41ODgsMzQ5LjE1NUM1NjEuNTg4LDM0OS4xNTUgNTE2LjI5NywyNzEuMzQxIDMyOC44NDEsMjUyLjA0NEMzMjguODQxLDI1Mi4wNDQgMzAyLjM0MiwzMjUuMTg5IDMwNy42ODYsMzY4LjA1NkMzMTMuMDMxLDQxMC45MjIgMzAzLjAwMSw0NTYuMTQ3IDMyOS4xMzIsNTAxLjE3NEMzMjkuMTMyLDUwMS4xNzQgNDQzLjExNCw1MDYuNzQzIDU1NC42NDksNDI4LjQ2OUw2MjkuMjA0LDQzMi4xMTJDNjI5LjIwNCw0MzIuMTEyIDY3My43NTUsNTM0LjM1MSA4NTYuOTY0LDU1NC4zNzVDODU2Ljk2NCw1NTQuMzc1IDg4Ni43MTcsNDkxLjc2OCA4NzkuMTkzLDQxNy40NzhDODcxLjIxMSwzMzguNjczIDg3MS43MTYsMjkzLjQ0MyA4NzEuNzE2LDI5My40NDNDODcxLjcxNiwyOTMuNDQzIDc3NS40ODUsMjgzLjkyOCA2MzUuNDE4LDM2MS43OTVMNTYxLjU4OCwzNDkuMTU1WiIvPgogICAgICAgIDwvY2xpcFBhdGg+CiAgICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI19jbGlwMSkiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1ODYzNywwLjQ1ODkyLC0wLjQ1ODkyLDAuNzU4NjM3LDQyNS42MzUsLTEyMS4yMTMpIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zODYuODczLDM5Ny4yNDFDMzcxLjM0NSwzODMuNjI4IDMzNS4xMzgsMzc0Ljc4MiAyOTAuNjQ0LDM4MC41NDNDMjQ2LjE0OSwzODYuMzA0IDE5Ni44MjcsNDAyLjI2NiAxNzguODAyLDQxMi4wNjVDMTY4LjIwMiw0MTcuODI4IDE1MS40OTQsNDI5LjM1NCAxNTAuNjgyLDQzOS4zMzRDMTQ5LjUyNyw0NTMuNTI4IDE1My41OTMsNDc3LjA2NiAxNjUuNjI1LDQ5MS4yODRDMTcxLjY5LDQ5OC40NTEgMTc5LjkyNyw1MDMuNDQ1IDE5My44MzgsNTA1LjQyM0MyMTEuNzAxLDUwNy45NjMgMjUyLjcxNCw0ODAuNjI3IDI3NS4zOTksNDY5LjIyQzI5OS4zMzIsNDU3LjE4NyAzMTMuOTgxLDQ1NC41NiAzMzguMzg2LDQ0Ny4wMTRDMzM4LjM4Niw0NDcuMDE0IDI5MS4zNDYsNDc4LjU4NyAyNzAuMjA1LDQ5NC4zOTNDMjM5LjYxLDUxNy4yNjggMjE4LjU3NSw1MjIuNDQ0IDIxMi44NTksNTM5Ljg5N0MyMDkuNzY2LDU0OS4zNCAyMTIuMjM3LDU2Ny43NjcgMjIwLjM1NCw1NzcuNTM4QzIyOS40MjcsNTg4LjQ2MSAyMzMuMTk3LDU5NS4wNjkgMjU0LjU5MSw1OTcuNjI0QzI2Ny4zMDMsNTk5LjE0MyAyNzYuNjg1LDU5OC44MDIgMzE0LjM3LDU2OC45NUMzMzYuMDYsNTUxLjc2NyAzNzAuMjk3LDUwOS44MTcgMzgxLjQxMiw0OTQuNjE2QzM5Ny41ODEsNDcyLjUwNiA0MDUuMTY1LDQ1MS40NjIgNDAyLjY1Niw0MzUuMDRDMzk5LjA0NSw0MTEuMzkxIDM5NC4yNTksNDAzLjcxNiAzODYuODczLDM5Ny4yNDFaIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1MjE0NSwwLjQ1NDk5MywtMC40NTQ5OTMsMC43NTIxNDUsNDY4LjM2LC0xMDguMjkzKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg0LjczMywzNzguOTM0QzQ3OS4zMywzNjcuODg2IDQ2Ny4wOTIsMzUwLjQ1MiA0ODMuODg2LDMyNS4yMDVDNTAyLjE3MiwyOTcuNzE3IDUxNC44OTgsMjgwLjkzOCA1MjguMTE3LDI2NC42MzJDNTQxLjMzNSwyNDguMzI2IDU3NC43OTMsMjE4LjQ0NyA1ODcuNzM5LDIxMi41M0M2MDAuNjg0LDIwNi42MTMgNjIxLjAyNiwyMDMuODUyIDYzMS44ODksMjEyLjg0MUM2NDIuODc0LDIyMS45MyA2NDguNDE2LDIzMy4zNzcgNjU0LjkyLDI0NS40NzhDNjYyLjMzMSwyNTkuMjY3IDY2Ny4zMTgsMjc0LjgwOCA2NTYuNTE4LDI4OC4yNzhDNjQxLjA5MywzMDcuNTE1IDYyMi4yNDIsMzA1LjI5NCA1OTQuOTEyLDMxOS44NDRDNTY3LjI0NCwzMzQuNTczIDU1Mi42NDQsMzQyLjk0MyA1MzkuMjQ0LDM1NS43MDNDNTM5LjI0NCwzNTUuNzAzIDU5MS40MzEsMzM0LjExNCA2MjEuMjI5LDMyNC40NzRDNjUxLjAyNywzMTQuODMzIDY4MC45NTIsMzA0LjQ2MSA2OTUuOTk1LDMxNS45NzVDNzExLjAzOCwzMjcuNDkgNzEwLjYzMSwzMzEuNDYzIDcxNC40MjUsMzQ3LjE4N0M3MTkuMTA3LDM2Ni41OSA3MDcuMjMxLDM4NS4xNjUgNjk0LjI5NCwzOTUuODM4QzY4MS4zNTYsNDA2LjUxIDY1OS45NTgsNDExLjc1NiA2MzYuODc1LDQxNi44NTJDNjA2LjQyLDQyMy41NzYgNTQwLjI3OCw0MzEuOTE3IDUxMi44MTksNDE5LjM2NkM0ODUuMzYxLDQwNi44MTUgNDg4LjQ4OCwzODYuNjEzIDQ4NC43MzMsMzc4LjkzNFoiIHN0eWxlPSJmaWxsOndoaXRlOyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGQ9Ik01NjEuNTg4LDM0OS4xNTVDNTYxLjU4OCwzNDkuMTU1IDUxNi4yOTcsMjcxLjM0MSAzMjguODQxLDI1Mi4wNDRDMzI4Ljg0MSwyNTIuMDQ0IDMwMi4zNDIsMzI1LjE4OSAzMDcuNjg2LDM2OC4wNTZDMzEzLjAzMSw0MTAuOTIyIDMwMy4wMDEsNDU2LjE0NyAzMjkuMTMyLDUwMS4xNzRDMzI5LjEzMiw1MDEuMTc0IDQ0My4xMTQsNTA2Ljc0MyA1NTQuNjQ5LDQyOC40NjlMNjI5LjIwNCw0MzIuMTEyQzYyOS4yMDQsNDMyLjExMiA2NzMuNzU1LDUzNC4zNTEgODU2Ljk2NCw1NTQuMzc1Qzg1Ni45NjQsNTU0LjM3NSA4ODYuNzE3LDQ5MS43NjggODc5LjE5Myw0MTcuNDc4Qzg3MS4yMTEsMzM4LjY3MyA4NzEuNzE2LDI5My40NDMgODcxLjcxNiwyOTMuNDQzQzg3MS43MTYsMjkzLjQ0MyA3NzUuNDg1LDI4My45MjggNjM1LjQxOCwzNjEuNzk1TDU2MS41ODgsMzQ5LjE1NVoiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOmJsYWNrO3N0cm9rZS13aWR0aDoxNi41N3B4OyIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4xMDAyOTgsLTAuMDA3NDA0ODgsMC4wMDc0MDQ4OCwwLjEwMDI5OCwtMTUuNzQ1NywtNS4xNzUyOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0zODQuOTE2LDM4NS40NTlDMzg0LjkxNiwzODUuNDU5IDQzMC43ODEsMzQ3Ljg2OCA0NTAuMDI3LDM1MC4wOTNDNDcxLjY4NSwzNTIuNTk2IDQ5MC40OSw0MDcuNzQ3IDQ5MC4yMDgsNDI0LjQxNkM0ODkuOTI3LDQ0MS4wODUgNDQyLjk0OCw0NjkuODY2IDQyMi41MzcsNDY2LjI0QzQyMi41MzcsNDY2LjI0IDQyNS41MjUsNDQyLjEyOSA0MTIuMTE0LDQxMy4zMzVDMzk4LjcwMiwzODQuNTQgMzg0LjkxNiwzODUuNDU5IDM4NC45MTYsMzg1LjQ1OVoiIHN0eWxlPSJmaWxsOnJnYigxMjcsMTg3LDIyMSk7Ii8+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJfY2xpcDIiPgogICAgICAgICAgICA8cGF0aCBkPSJNMzg0LjkxNiwzODUuNDU5QzM4NC45MTYsMzg1LjQ1OSA0MzAuNzgxLDM0Ny44NjggNDUwLjAyNywzNTAuMDkzQzQ3MS42ODUsMzUyLjU5NiA0OTAuNDksNDA3Ljc0NyA0OTAuMjA4LDQyNC40MTZDNDg5LjkyNyw0NDEuMDg1IDQ0Mi45NDgsNDY5Ljg2NiA0MjIuNTM3LDQ2Ni4yNEM0MjIuNTM3LDQ2Ni4yNCA0MjUuNTI1LDQ0Mi4xMjkgNDEyLjExNCw0MTMuMzM1QzM5OC43MDIsMzg0LjU0IDM4NC45MTYsMzg1LjQ1OSAzODQuOTE2LDM4NS40NTlaIi8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgICAgICA8ZyBjbGlwLXBhdGg9InVybCgjX2NsaXAyKSI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuOTA5MDY5LDMuNjc2NDFlLTE3LC0zLjc5ODE4ZS0xNywwLjg1ODUyLDM3LjA1MSw1Mi4xODI5KSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDEzLjI4Miw0MDIuNjk3QzQzMC43Nyw0MjEuNTggNDIzLjMwNyw0NDguNDI2IDQ0MS42ODMsNDQ2LjEzN0M0NjMuNDA5LDQ0My40MzEgNDcyLjYwNCw0MzAuMzU2IDQ3My4zMTYsNDEzLjQwMkM0NzQuMDI4LDM5Ni40NDggNDcyLjI0NSwzOTMuOTExIDQ2Ni4xNzIsMzc1LjMyMUM0NjAuMDk5LDM1Ni43MzEgNDQ3Ljk1MywzNTIuMTc2IDQyMi44NDIsMzU3LjE3OUM0MDEuOTU3LDM2MS4zMzkgNDA1LjAzOSwzNjAuMjE1IDM5OC43MzUsMzY3LjIyOEMzOTIuNDMsMzc0LjI0MiAzODQuMzE1LDM5My4xODIgMzg0LjMxNSwzOTMuMTgyQzM4NC4zMTUsMzkzLjE4MiAzOTIuNzE1LDM4MC40OTIgNDEzLjI4Miw0MDIuNjk3WiIgc3R5bGU9ImZpbGw6d2hpdGU7Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICAgICAgPHBhdGggZD0iTTM4NC45MTYsMzg1LjQ1OUMzODQuOTE2LDM4NS40NTkgNDMwLjc4MSwzNDcuODY4IDQ1MC4wMjcsMzUwLjA5M0M0NzEuNjg1LDM1Mi41OTYgNDkwLjQ5LDQwNy43NDcgNDkwLjIwOCw0MjQuNDE2QzQ4OS45MjcsNDQxLjA4NSA0NDIuOTQ4LDQ2OS44NjYgNDIyLjUzNyw0NjYuMjRDNDIyLjUzNyw0NjYuMjQgNDI1LjUyNSw0NDIuMTI5IDQxMi4xMTQsNDEzLjMzNUMzOTguNzAyLDM4NC41NCAzODQuOTE2LDM4NS40NTkgMzg0LjkxNiwzODUuNDU5WiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjE2LjU3cHg7Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=";/**
1364
1551
  * @license
1365
1552
  * Copyright 2019 Google LLC
1366
1553
  * SPDX-License-Identifier: BSD-3-Clause
1367
- */const Ss=window,ef=Ss.ShadowRoot&&(Ss.ShadyCSS===void 0||Ss.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,O1=Symbol(),F1=new WeakMap;let p6=class{constructor(e,n,r){if(this._$cssResult$=!0,r!==O1)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=n}get styleSheet(){let e=this.o;const n=this.t;if(ef&&e===void 0){const r=n!==void 0&&n.length===1;r&&(e=F1.get(n)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),r&&F1.set(n,e))}return e}toString(){return this.cssText}};const m6=t=>new p6(typeof t=="string"?t:t+"",void 0,O1),g6=(t,e)=>{ef?t.adoptedStyleSheets=e.map(n=>n instanceof CSSStyleSheet?n:n.styleSheet):e.forEach(n=>{const r=document.createElement("style"),i=Ss.litNonce;i!==void 0&&r.setAttribute("nonce",i),r.textContent=n.cssText,t.appendChild(r)})},P1=ef?t=>t:t=>t instanceof CSSStyleSheet?(e=>{let n="";for(const r of e.cssRules)n+=r.cssText;return m6(n)})(t):t;/**
1554
+ */const Ch=window,Hm=Ch.ShadowRoot&&(Ch.ShadyCSS===void 0||Ch.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,RS=Symbol(),zS=new WeakMap;let iG=class{constructor(t,n,r){if(this._$cssResult$=!0,r!==RS)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=n}get styleSheet(){let t=this.o;const n=this.t;if(Hm&&t===void 0){const r=n!==void 0&&n.length===1;r&&(t=zS.get(n)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),r&&zS.set(n,t))}return t}toString(){return this.cssText}};const aG=e=>new iG(typeof e=="string"?e:e+"",void 0,RS),oG=(e,t)=>{Hm?e.adoptedStyleSheets=t.map(n=>n instanceof CSSStyleSheet?n:n.styleSheet):t.forEach(n=>{const r=document.createElement("style"),i=Ch.litNonce;i!==void 0&&r.setAttribute("nonce",i),r.textContent=n.cssText,e.appendChild(r)})},PS=Hm?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let n="";for(const r of t.cssRules)n+=r.cssText;return aG(n)})(e):e;/**
1368
1555
  * @license
1369
1556
  * Copyright 2017 Google LLC
1370
1557
  * SPDX-License-Identifier: BSD-3-Clause
1371
- */var tf;const Es=window,z1=Es.trustedTypes,y6=z1?z1.emptyScript:"",R1=Es.reactiveElementPolyfillSupport,nf={toAttribute(t,e){switch(e){case Boolean:t=t?y6: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}},j1=(t,e)=>e!==t&&(e==e||t==t),rf={attribute:!0,type:String,converter:nf,reflect:!1,hasChanged:j1};let Xr=class extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(e){var n;(n=this.h)!==null&&n!==void 0||(this.h=[]),this.h.push(e)}static get observedAttributes(){this.finalize();const e=[];return this.elementProperties.forEach((n,r)=>{const i=this._$Ep(r,n);i!==void 0&&(this._$Ev.set(i,r),e.push(i))}),e}static createProperty(e,n=rf){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)||rf}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._$Ev=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(P1(i))}else e!==void 0&&n.push(P1(e));return n}static _$Ep(e,n){const r=n.attribute;return r===!1?void 0:typeof r=="string"?r:typeof e=="string"?e.toLowerCase():void 0}u(){var e;this._$E_=new Promise(n=>this.enableUpdating=n),this._$AL=new Map,this._$Eg(),this.requestUpdate(),(e=this.constructor.h)===null||e===void 0||e.forEach(n=>n(this))}addController(e){var n,r;((n=this._$ES)!==null&&n!==void 0?n:this._$ES=[]).push(e),this.renderRoot!==void 0&&this.isConnected&&((r=e.hostConnected)===null||r===void 0||r.call(e))}removeController(e){var n;(n=this._$ES)===null||n===void 0||n.splice(this._$ES.indexOf(e)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach((e,n)=>{this.hasOwnProperty(n)&&(this._$Ei.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 g6(n,this.constructor.elementStyles),n}connectedCallback(){var e;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(e=this._$ES)===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._$ES)===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)}_$EO(e,n,r=rf){var i;const o=this.constructor._$Ep(e,r);if(o!==void 0&&r.reflect===!0){const a=(((i=r.converter)===null||i===void 0?void 0:i.toAttribute)!==void 0?r.converter:nf).toAttribute(n,r.type);this._$El=e,a==null?this.removeAttribute(o):this.setAttribute(o,a),this._$El=null}}_$AK(e,n){var r;const i=this.constructor,o=i._$Ev.get(e);if(o!==void 0&&this._$El!==o){const a=i.getPropertyOptions(o),s=typeof a.converter=="function"?{fromAttribute:a.converter}:((r=a.converter)===null||r===void 0?void 0:r.fromAttribute)!==void 0?a.converter:nf;this._$El=o,this[o]=s.fromAttribute(n,a.type),this._$El=null}}requestUpdate(e,n,r){let i=!0;e!==void 0&&(((r=r||this.constructor.getPropertyOptions(e)).hasChanged||j1)(this[e],n)?(this._$AL.has(e)||this._$AL.set(e,n),r.reflect===!0&&this._$El!==e&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(e,r))):i=!1),!this.isUpdatePending&&i&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}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._$Ei&&(this._$Ei.forEach((i,o)=>this[o]=i),this._$Ei=void 0);let n=!1;const r=this._$AL;try{n=this.shouldUpdate(r),n?(this.willUpdate(r),(e=this._$ES)===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._$Ek()}catch(i){throw n=!1,this._$Ek(),i}n&&this._$AE(r)}willUpdate(e){}_$AE(e){var n;(n=this._$ES)===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)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(e){return!0}update(e){this._$EC!==void 0&&(this._$EC.forEach((n,r)=>this._$EO(r,this[r],n)),this._$EC=void 0),this._$Ek()}updated(e){}firstUpdated(e){}};Xr.finalized=!0,Xr.elementProperties=new Map,Xr.elementStyles=[],Xr.shadowRootOptions={mode:"open"},R1==null||R1({ReactiveElement:Xr}),((tf=Es.reactiveElementVersions)!==null&&tf!==void 0?tf:Es.reactiveElementVersions=[]).push("1.4.1");/**
1558
+ */var Gm;const _h=window,US=_h.trustedTypes,sG=US?US.emptyScript:"",jS=_h.reactiveElementPolyfillSupport,$m={toAttribute(e,t){switch(t){case Boolean:e=e?sG:null;break;case Object:case Array:e=e==null?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=e!==null;break;case Number:n=e===null?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch{n=null}}return n}},HS=(e,t)=>t!==e&&(t==t||e==e),Vm={attribute:!0,type:String,converter:$m,reflect:!1,hasChanged:HS};let bs=class extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(t){var n;(n=this.h)!==null&&n!==void 0||(this.h=[]),this.h.push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach((n,r)=>{const i=this._$Ep(r,n);i!==void 0&&(this._$Ev.set(i,r),t.push(i))}),t}static createProperty(t,n=Vm){if(n.state&&(n.attribute=!1),this.finalize(),this.elementProperties.set(t,n),!n.noAccessor&&!this.prototype.hasOwnProperty(t)){const r=typeof t=="symbol"?Symbol():"__"+t,i=this.getPropertyDescriptor(t,r,n);i!==void 0&&Object.defineProperty(this.prototype,t,i)}}static getPropertyDescriptor(t,n,r){return{get(){return this[n]},set(i){const a=this[t];this[n]=i,this.requestUpdate(t,a,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||Vm}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this._$Ev=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(t){const n=[];if(Array.isArray(t)){const r=new Set(t.flat(1/0).reverse());for(const i of r)n.unshift(PS(i))}else t!==void 0&&n.push(PS(t));return n}static _$Ep(t,n){const r=n.attribute;return r===!1?void 0:typeof r=="string"?r:typeof t=="string"?t.toLowerCase():void 0}u(){var t;this._$E_=new Promise(n=>this.enableUpdating=n),this._$AL=new Map,this._$Eg(),this.requestUpdate(),(t=this.constructor.h)===null||t===void 0||t.forEach(n=>n(this))}addController(t){var n,r;((n=this._$ES)!==null&&n!==void 0?n:this._$ES=[]).push(t),this.renderRoot!==void 0&&this.isConnected&&((r=t.hostConnected)===null||r===void 0||r.call(t))}removeController(t){var n;(n=this._$ES)===null||n===void 0||n.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach((t,n)=>{this.hasOwnProperty(n)&&(this._$Ei.set(n,this[n]),delete this[n])})}createRenderRoot(){var t;const n=(t=this.shadowRoot)!==null&&t!==void 0?t:this.attachShadow(this.constructor.shadowRootOptions);return oG(n,this.constructor.elementStyles),n}connectedCallback(){var t;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(t=this._$ES)===null||t===void 0||t.forEach(n=>{var r;return(r=n.hostConnected)===null||r===void 0?void 0:r.call(n)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$ES)===null||t===void 0||t.forEach(n=>{var r;return(r=n.hostDisconnected)===null||r===void 0?void 0:r.call(n)})}attributeChangedCallback(t,n,r){this._$AK(t,r)}_$EO(t,n,r=Vm){var i;const a=this.constructor._$Ep(t,r);if(a!==void 0&&r.reflect===!0){const o=(((i=r.converter)===null||i===void 0?void 0:i.toAttribute)!==void 0?r.converter:$m).toAttribute(n,r.type);this._$El=t,o==null?this.removeAttribute(a):this.setAttribute(a,o),this._$El=null}}_$AK(t,n){var r;const i=this.constructor,a=i._$Ev.get(t);if(a!==void 0&&this._$El!==a){const o=i.getPropertyOptions(a),s=typeof o.converter=="function"?{fromAttribute:o.converter}:((r=o.converter)===null||r===void 0?void 0:r.fromAttribute)!==void 0?o.converter:$m;this._$El=a,this[a]=s.fromAttribute(n,o.type),this._$El=null}}requestUpdate(t,n,r){let i=!0;t!==void 0&&(((r=r||this.constructor.getPropertyOptions(t)).hasChanged||HS)(this[t],n)?(this._$AL.has(t)||this._$AL.set(t,n),r.reflect===!0&&this._$El!==t&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(t,r))):i=!1),!this.isUpdatePending&&i&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(n){Promise.reject(n)}const t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach((i,a)=>this[a]=i),this._$Ei=void 0);let n=!1;const r=this._$AL;try{n=this.shouldUpdate(r),n?(this.willUpdate(r),(t=this._$ES)===null||t===void 0||t.forEach(i=>{var a;return(a=i.hostUpdate)===null||a===void 0?void 0:a.call(i)}),this.update(r)):this._$Ek()}catch(i){throw n=!1,this._$Ek(),i}n&&this._$AE(r)}willUpdate(t){}_$AE(t){var n;(n=this._$ES)===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(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){this._$EC!==void 0&&(this._$EC.forEach((n,r)=>this._$EO(r,this[r],n)),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}};bs.finalized=!0,bs.elementProperties=new Map,bs.elementStyles=[],bs.shadowRootOptions={mode:"open"},jS==null||jS({ReactiveElement:bs}),((Gm=_h.reactiveElementVersions)!==null&&Gm!==void 0?Gm:_h.reactiveElementVersions=[]).push("1.4.1");/**
1372
1559
  * @license
1373
1560
  * Copyright 2017 Google LLC
1374
1561
  * SPDX-License-Identifier: BSD-3-Clause
1375
- */var of,af;let bt=class extends Xr{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=Oe(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 Ae}};bt.finalized=!0,bt._$litElement$=!0,(of=globalThis.litElementHydrateSupport)===null||of===void 0||of.call(globalThis,{LitElement:bt});const U1=globalThis.litElementPolyfillSupport;U1==null||U1({LitElement:bt}),((af=globalThis.litElementVersions)!==null&&af!==void 0?af:globalThis.litElementVersions=[]).push("3.2.0");/**
1562
+ */var Ym,Qm;let sr=class extends bs{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var t,n;const r=super.createRenderRoot();return(t=(n=this.renderOptions).renderBefore)!==null&&t!==void 0||(n.renderBefore=r.firstChild),r}update(t){const n=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Dt=Bt(n,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),(t=this._$Dt)===null||t===void 0||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this._$Dt)===null||t===void 0||t.setConnected(!1)}render(){return pt}};sr.finalized=!0,sr._$litElement$=!0,(Ym=globalThis.litElementHydrateSupport)===null||Ym===void 0||Ym.call(globalThis,{LitElement:sr});const GS=globalThis.litElementPolyfillSupport;GS==null||GS({LitElement:sr}),((Qm=globalThis.litElementVersions)!==null&&Qm!==void 0?Qm:globalThis.litElementVersions=[]).push("3.2.0");/**
1376
1563
  * @license
1377
1564
  * Copyright 2017 Google LLC
1378
1565
  * SPDX-License-Identifier: BSD-3-Clause
1379
- */const At={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},or=t=>(...e)=>({_$litDirective$:t,values:e});let Zr=class{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)}};/**
1566
+ */const cr={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Ya=e=>(...t)=>({_$litDirective$:e,values:t});let ys=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,r){this._$Ct=t,this._$AM=n,this._$Ci=r}_$AS(t,n){return this.update(t,n)}update(t,n){return this.render(...n)}};/**
1380
1567
  * @license
1381
1568
  * Copyright 2018 Google LLC
1382
1569
  * SPDX-License-Identifier: BSD-3-Clause
1383
- */const sf=or(class extends Zr{constructor(t){var e;if(super(t),t.type!==At.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.nt===void 0){this.nt=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.nt.add(o);return this.render(e)}const i=t.element.classList;this.nt.forEach(o=>{o in e||(i.remove(o),this.nt.delete(o))});for(const o in e){const a=!!e[o];a===this.nt.has(o)||!((r=this.st)===null||r===void 0)&&r.has(o)||(a?(i.add(o),this.nt.add(o)):(i.remove(o),this.nt.delete(o)))}return Ae}});/*!
1570
+ */const Zm=Ya(class extends ys{constructor(e){var t;if(super(e),e.type!==cr.ATTRIBUTE||e.name!=="class"||((t=e.strings)===null||t===void 0?void 0:t.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter(t=>e[t]).join(" ")+" "}update(e,[t]){var n,r;if(this.nt===void 0){this.nt=new Set,e.strings!==void 0&&(this.st=new Set(e.strings.join(" ").split(/\s/).filter(a=>a!=="")));for(const a in t)t[a]&&!(!((n=this.st)===null||n===void 0)&&n.has(a))&&this.nt.add(a);return this.render(t)}const i=e.element.classList;this.nt.forEach(a=>{a in t||(i.remove(a),this.nt.delete(a))});for(const a in t){const o=!!t[a];o===this.nt.has(a)||!((r=this.st)===null||r===void 0)&&r.has(a)||(o?(i.add(a),this.nt.add(a)):(i.remove(a),this.nt.delete(a)))}return pt}});/*!
1384
1571
  * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com
1385
1572
  * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
1386
1573
  * Copyright 2022 Fonticons, Inc.
1387
- */var v6={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"]},b6=v6,A6={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"]},x6=A6,w6={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"]},C6=w6,S6={prefix:"fas",iconName:"arrow-up",icon:[384,512,[8593],"f062","M374.6 246.6C368.4 252.9 360.2 256 352 256s-16.38-3.125-22.62-9.375L224 141.3V448c0 17.69-14.33 31.1-31.1 31.1S160 465.7 160 448V141.3L54.63 246.6c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l160-160c12.5-12.5 32.75-12.5 45.25 0l160 160C387.1 213.9 387.1 234.1 374.6 246.6z"]},E6={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"]},D6=E6,G1={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"]},M6={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"]},T6={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"]},H1={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"]},I6={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"]},k6=I6,N6={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"]},Q1=N6,L6={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"]},B6=L6,O6={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"]},F6=O6,P6={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"]},z6=P6,ar={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"]},R6={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"]},j6=R6,U6={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"]},G6=U6,V1={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"]},wo={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"]},H6={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"]},cf={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"]},Q6={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"]},V6=Q6,Y1={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"]},Y6={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"]},Ds=Y6,_6={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"]},W6=_6,X6={prefix:"fas",iconName:"xmark",icon:[320,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"]};/*!
1574
+ */var cG={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"]},lG=cG,uG={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"]},fG=uG,hG={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"]},dG=hG,pG={prefix:"fas",iconName:"arrow-up",icon:[384,512,[8593],"f062","M374.6 246.6C368.4 252.9 360.2 256 352 256s-16.38-3.125-22.62-9.375L224 141.3V448c0 17.69-14.33 31.1-31.1 31.1S160 465.7 160 448V141.3L54.63 246.6c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l160-160c12.5-12.5 32.75-12.5 45.25 0l160 160C387.1 213.9 387.1 234.1 374.6 246.6z"]},gG={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"]},mG=gG,$S={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"]},bG={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"]},yG={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"]},VS={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"]},vG={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"]},wG=vG,xG={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"]},YS=xG,AG={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"]},EG=AG,SG={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"]},CG=SG,_G={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"]},kG=_G,Qa={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"]},DG={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"]},IG=DG,TG={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"]},MG=TG,QS={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"]},Nl={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"]},NG={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"]},qm={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"]},FG={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"]},BG=FG,ZS={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"]},LG={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"]},kh=LG,OG={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"]},RG=OG,zG={prefix:"fas",iconName:"xmark",icon:[320,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"]};/*!
1388
1575
  * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com
1389
1576
  * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
1390
1577
  * Copyright 2022 Fonticons, Inc.
1391
- */function _1(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 I(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?_1(Object(n),!0).forEach(function(r){K6(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):_1(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Ms(t){return Ms=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},Ms(t)}function Z6(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function W1(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 q6(t,e,n){return e&&W1(t.prototype,e),n&&W1(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function K6(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function uf(t,e){return $6(t)||tT(t,e)||X1(t,e)||rT()}function Ts(t){return J6(t)||eT(t)||X1(t)||nT()}function J6(t){if(Array.isArray(t))return lf(t)}function $6(t){if(Array.isArray(t))return t}function eT(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function tT(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 X1(t,e){if(t){if(typeof t=="string")return lf(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 lf(t,e)}}function lf(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 nT(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
1392
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function rT(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1393
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Z1=function(){},ff={},q1={},K1=null,J1={mark:Z1,measure:Z1};try{typeof window<"u"&&(ff=window),typeof document<"u"&&(q1=document),typeof MutationObserver<"u"&&(K1=MutationObserver),typeof performance<"u"&&(J1=performance)}catch{}var iT=ff.navigator||{},$1=iT.userAgent,ey=$1===void 0?"":$1,pn=ff,ne=q1,ty=K1,Is=J1;pn.document;var zt=!!ne.documentElement&&!!ne.head&&typeof ne.addEventListener=="function"&&typeof ne.createElement=="function",ny=~ey.indexOf("MSIE")||~ey.indexOf("Trident/"),Rt="___FONT_AWESOME___",df=16,ry="fa",iy="svg-inline--fa",sr="data-fa-i2svg",hf="data-fa-pseudo-element",oT="data-fa-pseudo-element-pending",pf="data-prefix",mf="data-icon",oy="fontawesome-i2svg",aT="async",sT=["HTML","HEAD","STYLE","SCRIPT"],ay=function(){try{return!0}catch{return!1}}(),gf={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"},ks={solid:"fas",regular:"far",light:"fal",thin:"fat",duotone:"fad",brands:"fab",kit:"fak"},sy={fab:"fa-brands",fad:"fa-duotone",fak:"fa-kit",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},cT={"fa-brands":"fab","fa-duotone":"fad","fa-kit":"fak","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},uT=/fa[srltdbk\-\ ]/,cy="fa-layers-text",lT=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Kit)?.*/i,fT={900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},uy=[1,2,3,4,5,6,7,8,9,10],dT=uy.concat([11,12,13,14,15,16,17,18,19,20]),hT=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],cr={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},pT=[].concat(Ts(Object.keys(ks)),["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",cr.GROUP,cr.SWAP_OPACITY,cr.PRIMARY,cr.SECONDARY]).concat(uy.map(function(t){return"".concat(t,"x")})).concat(dT.map(function(t){return"w-".concat(t)})),ly=pn.FontAwesomeConfig||{};function mT(t){var e=ne.querySelector("script["+t+"]");if(e)return e.getAttribute(t)}function gT(t){return t===""?!0:t==="false"?!1:t==="true"?!0:t}if(ne&&typeof ne.querySelector=="function"){var yT=[["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"]];yT.forEach(function(t){var e=uf(t,2),n=e[0],r=e[1],i=gT(mT(n));i!=null&&(ly[r]=i)})}var vT={familyPrefix:ry,styleDefault:"solid",replacementClass:iy,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0},Co=I(I({},vT),ly);Co.autoReplaceSvg||(Co.observeMutations=!1);var F={};Object.keys(Co).forEach(function(t){Object.defineProperty(F,t,{enumerable:!0,set:function(n){Co[t]=n,Ns.forEach(function(r){return r(F)})},get:function(){return Co[t]}})}),pn.FontAwesomeConfig=F;var Ns=[];function bT(t){return Ns.push(t),function(){Ns.splice(Ns.indexOf(t),1)}}var mn=df,xt={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function AT(t){if(!(!t||!zt)){var e=ne.createElement("style");e.setAttribute("type","text/css"),e.innerHTML=t;for(var n=ne.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 ne.head.insertBefore(e,r),t}}var xT="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function So(){for(var t=12,e="";t-- >0;)e+=xT[Math.random()*62|0];return e}function qr(t){for(var e=[],n=(t||[]).length>>>0;n--;)e[n]=t[n];return e}function yf(t){return t.classList?qr(t.classList):(t.getAttribute("class")||"").split(" ").filter(function(e){return e})}function fy(t){return"".concat(t).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function wT(t){return Object.keys(t||{}).reduce(function(e,n){return e+"".concat(n,'="').concat(fy(t[n]),'" ')},"").trim()}function Ls(t){return Object.keys(t||{}).reduce(function(e,n){return e+"".concat(n,": ").concat(t[n].trim(),";")},"")}function vf(t){return t.size!==xt.size||t.x!==xt.x||t.y!==xt.y||t.rotate!==xt.rotate||t.flipX||t.flipY}function CT(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 ST(t){var e=t.transform,n=t.width,r=n===void 0?df:n,i=t.height,o=i===void 0?df:i,a=t.startCentered,s=a===void 0?!1:a,c="";return s&&ny?c+="translate(".concat(e.x/mn-r/2,"em, ").concat(e.y/mn-o/2,"em) "):s?c+="translate(calc(-50% + ".concat(e.x/mn,"em), calc(-50% + ").concat(e.y/mn,"em)) "):c+="translate(".concat(e.x/mn,"em, ").concat(e.y/mn,"em) "),c+="scale(".concat(e.size/mn*(e.flipX?-1:1),", ").concat(e.size/mn*(e.flipY?-1:1),") "),c+="rotate(".concat(e.rotate,"deg) "),c}var ET=`:root, :host {
1578
+ */function qS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Z(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?qS(Object(n),!0).forEach(function(r){jG(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qS(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Dh(e){return Dh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Dh(e)}function PG(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function WS(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function UG(e,t,n){return t&&WS(e.prototype,t),n&&WS(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function jG(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Wm(e,t){return GG(e)||VG(e,t)||XS(e,t)||QG()}function Ih(e){return HG(e)||$G(e)||XS(e)||YG()}function HG(e){if(Array.isArray(e))return Xm(e)}function GG(e){if(Array.isArray(e))return e}function $G(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function VG(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r=[],i=!0,a=!1,o,s;try{for(n=n.call(e);!(i=(o=n.next()).done)&&(r.push(o.value),!(t&&r.length===t));i=!0);}catch(l){a=!0,s=l}finally{try{!i&&n.return!=null&&n.return()}finally{if(a)throw s}}return r}}function XS(e,t){if(e){if(typeof e=="string")return Xm(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Xm(e,t)}}function Xm(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function YG(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
1579
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function QG(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1580
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var KS=function(){},Km={},JS={},eC=null,tC={mark:KS,measure:KS};try{typeof window<"u"&&(Km=window),typeof document<"u"&&(JS=document),typeof MutationObserver<"u"&&(eC=MutationObserver),typeof performance<"u"&&(tC=performance)}catch{}var ZG=Km.navigator||{},nC=ZG.userAgent,rC=nC===void 0?"":nC,Mi=Km,Oe=JS,iC=eC,Th=tC;Mi.document;var Lr=!!Oe.documentElement&&!!Oe.head&&typeof Oe.addEventListener=="function"&&typeof Oe.createElement=="function",aC=~rC.indexOf("MSIE")||~rC.indexOf("Trident/"),Or="___FONT_AWESOME___",Jm=16,oC="fa",sC="svg-inline--fa",Za="data-fa-i2svg",e1="data-fa-pseudo-element",qG="data-fa-pseudo-element-pending",t1="data-prefix",n1="data-icon",cC="fontawesome-i2svg",WG="async",XG=["HTML","HEAD","STYLE","SCRIPT"],lC=function(){try{return!0}catch{return!1}}(),r1={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"},Mh={solid:"fas",regular:"far",light:"fal",thin:"fat",duotone:"fad",brands:"fab",kit:"fak"},uC={fab:"fa-brands",fad:"fa-duotone",fak:"fa-kit",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},KG={"fa-brands":"fab","fa-duotone":"fad","fa-kit":"fak","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},JG=/fa[srltdbk\-\ ]/,fC="fa-layers-text",e$=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Kit)?.*/i,t$={900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},hC=[1,2,3,4,5,6,7,8,9,10],n$=hC.concat([11,12,13,14,15,16,17,18,19,20]),r$=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],qa={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},i$=[].concat(Ih(Object.keys(Mh)),["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",qa.GROUP,qa.SWAP_OPACITY,qa.PRIMARY,qa.SECONDARY]).concat(hC.map(function(e){return"".concat(e,"x")})).concat(n$.map(function(e){return"w-".concat(e)})),dC=Mi.FontAwesomeConfig||{};function a$(e){var t=Oe.querySelector("script["+e+"]");if(t)return t.getAttribute(e)}function o$(e){return e===""?!0:e==="false"?!1:e==="true"?!0:e}if(Oe&&typeof Oe.querySelector=="function"){var s$=[["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"]];s$.forEach(function(e){var t=Wm(e,2),n=t[0],r=t[1],i=o$(a$(n));i!=null&&(dC[r]=i)})}var c$={familyPrefix:oC,styleDefault:"solid",replacementClass:sC,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0},Fl=Z(Z({},c$),dC);Fl.autoReplaceSvg||(Fl.observeMutations=!1);var X={};Object.keys(Fl).forEach(function(e){Object.defineProperty(X,e,{enumerable:!0,set:function(n){Fl[e]=n,Nh.forEach(function(r){return r(X)})},get:function(){return Fl[e]}})}),Mi.FontAwesomeConfig=X;var Nh=[];function l$(e){return Nh.push(e),function(){Nh.splice(Nh.indexOf(e),1)}}var Ni=Jm,lr={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function u$(e){if(!(!e||!Lr)){var t=Oe.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e;for(var n=Oe.head.childNodes,r=null,i=n.length-1;i>-1;i--){var a=n[i],o=(a.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(o)>-1&&(r=a)}return Oe.head.insertBefore(t,r),e}}var f$="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function Bl(){for(var e=12,t="";e-- >0;)t+=f$[Math.random()*62|0];return t}function vs(e){for(var t=[],n=(e||[]).length>>>0;n--;)t[n]=e[n];return t}function i1(e){return e.classList?vs(e.classList):(e.getAttribute("class")||"").split(" ").filter(function(t){return t})}function pC(e){return"".concat(e).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function h$(e){return Object.keys(e||{}).reduce(function(t,n){return t+"".concat(n,'="').concat(pC(e[n]),'" ')},"").trim()}function Fh(e){return Object.keys(e||{}).reduce(function(t,n){return t+"".concat(n,": ").concat(e[n].trim(),";")},"")}function a1(e){return e.size!==lr.size||e.x!==lr.x||e.y!==lr.y||e.rotate!==lr.rotate||e.flipX||e.flipY}function d$(e){var t=e.transform,n=e.containerWidth,r=e.iconWidth,i={transform:"translate(".concat(n/2," 256)")},a="translate(".concat(t.x*32,", ").concat(t.y*32,") "),o="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),s="rotate(".concat(t.rotate," 0 0)"),l={transform:"".concat(a," ").concat(o," ").concat(s)},c={transform:"translate(".concat(r/2*-1," -256)")};return{outer:i,inner:l,path:c}}function p$(e){var t=e.transform,n=e.width,r=n===void 0?Jm:n,i=e.height,a=i===void 0?Jm:i,o=e.startCentered,s=o===void 0?!1:o,l="";return s&&aC?l+="translate(".concat(t.x/Ni-r/2,"em, ").concat(t.y/Ni-a/2,"em) "):s?l+="translate(calc(-50% + ".concat(t.x/Ni,"em), calc(-50% + ").concat(t.y/Ni,"em)) "):l+="translate(".concat(t.x/Ni,"em, ").concat(t.y/Ni,"em) "),l+="scale(".concat(t.size/Ni*(t.flipX?-1:1),", ").concat(t.size/Ni*(t.flipY?-1:1),") "),l+="rotate(".concat(t.rotate,"deg) "),l}var g$=`:root, :host {
1394
1581
  --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Solid";
1395
1582
  --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Regular";
1396
1583
  --fa-font-light: normal 300 1em/1 "Font Awesome 6 Light";
@@ -2141,48 +2328,48 @@ svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
2141
2328
  .fad.fa-inverse,
2142
2329
  .fa-duotone.fa-inverse {
2143
2330
  color: var(--fa-inverse, #fff);
2144
- }`;function dy(){var t=ry,e=iy,n=F.familyPrefix,r=F.replacementClass,i=ET;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 hy=!1;function bf(){F.autoAddCss&&!hy&&(AT(dy()),hy=!0)}var DT={mixout:function(){return{dom:{css:dy,insertCss:bf}}},hooks:function(){return{beforeDOMElementCreation:function(){bf()},beforeI2svg:function(){bf()}}}},jt=pn||{};jt[Rt]||(jt[Rt]={}),jt[Rt].styles||(jt[Rt].styles={}),jt[Rt].hooks||(jt[Rt].hooks={}),jt[Rt].shims||(jt[Rt].shims=[]);var ut=jt[Rt],py=[],MT=function t(){ne.removeEventListener("DOMContentLoaded",t),Bs=1,py.map(function(e){return e()})},Bs=!1;zt&&(Bs=(ne.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(ne.readyState),Bs||ne.addEventListener("DOMContentLoaded",MT));function TT(t){zt&&(Bs?setTimeout(t,0):py.push(t))}function Eo(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"?fy(t):"<".concat(e," ").concat(wT(r),">").concat(o.map(Eo).join(""),"</").concat(e,">")}function my(t,e,n){if(t&&t[e]&&t[e][n])return{prefix:e,iconName:n,icon:t[e][n]}}var IT=function(e,n){return function(r,i,o,a){return e.call(n,r,i,o,a)}},Af=function(e,n,r,i){var o=Object.keys(e),a=o.length,s=i!==void 0?IT(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 kT(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 xf(t){var e=kT(t);return e.length===1?e[0].toString(16):null}function NT(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 gy(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 wf(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.skipHooks,i=r===void 0?!1:r,o=gy(e);typeof ut.hooks.addPack=="function"&&!i?ut.hooks.addPack(t,gy(e)):ut.styles[t]=I(I({},ut.styles[t]||{}),o),t==="fas"&&wf("fa",e)}var Do=ut.styles,LT=ut.shims,BT=Object.values(sy),Cf=null,yy={},vy={},by={},Ay={},xy={},OT=Object.keys(gf);function FT(t){return~pT.indexOf(t)}function PT(t,e){var n=e.split("-"),r=n[0],i=n.slice(1).join("-");return r===t&&i!==""&&!FT(i)?i:null}var wy=function(){var e=function(o){return Af(Do,function(a,s,c){return a[c]=Af(s,o,{}),a},{})};yy=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}),vy=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}),xy=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 Do||F.autoFetchSvg,r=Af(LT,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:{}});by=r.names,Ay=r.unicodes,Cf=Os(F.styleDefault)};bT(function(t){Cf=Os(t.styleDefault)}),wy();function Sf(t,e){return(yy[t]||{})[e]}function zT(t,e){return(vy[t]||{})[e]}function Kr(t,e){return(xy[t]||{})[e]}function Cy(t){return by[t]||{prefix:null,iconName:null}}function RT(t){var e=Ay[t],n=Sf("fas",t);return e||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}}function gn(){return Cf}var Ef=function(){return{prefix:null,iconName:null,rest:[]}};function Os(t){var e=gf[t],n=ks[t]||ks[e],r=t in ut.styles?t:null;return n||r||null}function Fs(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=PT(F.familyPrefix,s);if(Do[s]?(s=BT.includes(s)?cT[s]:s,i=s,a.prefix=s):OT.indexOf(s)>-1?(i=s,a.prefix=Os(s)):c?a.iconName=c:s!==F.replacementClass&&a.rest.push(s),!r&&a.prefix&&a.iconName){var u=i==="fa"?Cy(a.iconName):{},f=Kr(a.prefix,a.iconName);u.prefix&&(i=null),a.iconName=u.iconName||f||a.iconName,a.prefix=u.prefix||a.prefix,a.prefix==="far"&&!Do.far&&Do.fas&&!F.autoFetchSvg&&(a.prefix="fas")}return a},Ef());return(o.prefix==="fa"||i==="fa")&&(o.prefix=gn()||"fas"),o}var jT=function(){function t(){Z6(this,t),this.definitions={}}return q6(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]=I(I({},n.definitions[s]||{}),a[s]),wf(s,a[s]);var c=sy[s];c&&wf(c,a[s]),wy()})}},{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}(),Sy=[],Jr={},$r={},UT=Object.keys($r);function GT(t,e){var n=e.mixoutsTo;return Sy=t,Jr={},Object.keys($r).forEach(function(r){UT.indexOf(r)===-1&&delete $r[r]}),Sy.forEach(function(r){var i=r.mixout?r.mixout():{};if(Object.keys(i).forEach(function(a){typeof i[a]=="function"&&(n[a]=i[a]),Ms(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){Jr[a]||(Jr[a]=[]),Jr[a].push(o[a])})}r.provides&&r.provides($r)}),n}function Df(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=Jr[t]||[];return o.forEach(function(a){e=a.apply(null,[e].concat(r))}),e}function ur(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=Jr[t]||[];i.forEach(function(o){o.apply(null,n)})}function Ut(){var t=arguments[0],e=Array.prototype.slice.call(arguments,1);return $r[t]?$r[t].apply(null,e):void 0}function Mf(t){t.prefix==="fa"&&(t.prefix="fas");var e=t.iconName,n=t.prefix||gn();if(e)return e=Kr(n,e)||e,my(Ey.definitions,n,e)||my(ut.styles,n,e)}var Ey=new jT,HT=function(){F.autoReplaceSvg=!1,F.observeMutations=!1,ur("noAuto")},QT={i2svg:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return zt?(ur("beforeI2svg",e),Ut("pseudoElements2svg",e),Ut("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,TT(function(){YT({autoReplaceSvgRoot:n}),ur("watch",e)})}},VT={icon:function(e){if(e===null)return null;if(Ms(e)==="object"&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:Kr(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=Os(e[0]);return{prefix:r,iconName:Kr(r,n)||n}}if(typeof e=="string"&&(e.indexOf("".concat(F.familyPrefix,"-"))>-1||e.match(uT))){var i=Fs(e.split(" "),{skipLookups:!0});return{prefix:i.prefix||gn(),iconName:Kr(i.prefix,i.iconName)||i.iconName}}if(typeof e=="string"){var o=gn();return{prefix:o,iconName:Kr(o,e)||e}}}},Ge={noAuto:HT,config:F,dom:QT,parse:VT,library:Ey,findIconDefinition:Mf,toHtml:Eo},YT=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.autoReplaceSvgRoot,r=n===void 0?ne:n;(Object.keys(ut.styles).length>0||F.autoFetchSvg)&&zt&&F.autoReplaceSvg&&Ge.dom.i2svg({node:r})};function Ps(t,e){return Object.defineProperty(t,"abstract",{get:e}),Object.defineProperty(t,"html",{get:function(){return t.abstract.map(function(r){return Eo(r)})}}),Object.defineProperty(t,"node",{get:function(){if(zt){var r=ne.createElement("div");return r.innerHTML=t.html,r.children}}}),t}function _T(t){var e=t.children,n=t.main,r=t.mask,i=t.attributes,o=t.styles,a=t.transform;if(vf(a)&&n.found&&!r.found){var s=n.width,c=n.height,u={x:s/c/2,y:.5};i.style=Ls(I(I({},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 WT(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:I(I({},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,g=p.height,y=i==="fak",b=[F.replacementClass,o?"".concat(F.familyPrefix,"-").concat(o):""].filter(function(O){return l.classes.indexOf(O)===-1}).filter(function(O){return O!==""||!!O}).concat(l.classes).join(" "),w={children:[],attributes:I(I({},l.attributes),{},{"data-prefix":i,"data-icon":o,class:b,role:l.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(m," ").concat(g)})},C=y&&!~l.classes.indexOf("fa-fw")?{width:"".concat(m/g*16*.0625,"em")}:{};h&&(w.attributes[sr]=""),c&&(w.children.push({tag:"title",attributes:{id:w.attributes["aria-labelledby"]||"title-".concat(f||So())},children:[c]}),delete w.attributes.title);var x=I(I({},w),{},{prefix:i,iconName:o,main:n,mask:r,maskId:u,transform:a,symbol:s,styles:I(I({},C),l.styles)}),v=r.found&&n.found?Ut("generateAbstractMask",x)||{children:[],attributes:{}}:Ut("generateAbstractIcon",x)||{children:[],attributes:{}},A=v.children,D=v.attributes;return x.children=A,x.attributes=D,s?WT(x):_T(x)}function Dy(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=I(I(I({},a.attributes),o?{title:o}:{}),{},{class:a.classes.join(" ")});c&&(u[sr]="");var f=I({},a.styles);vf(i)&&(f.transform=ST({transform:i,startCentered:!0,width:n,height:r}),f["-webkit-transform"]=f.transform);var l=Ls(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 XT(t){var e=t.content,n=t.title,r=t.extra,i=I(I(I({},r.attributes),n?{title:n}:{}),{},{class:r.classes.join(" ")}),o=Ls(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 If=ut.styles;function kf(t){var e=t[0],n=t[1],r=t.slice(4),i=uf(r,1),o=i[0],a=null;return Array.isArray(o)?a={tag:"g",attributes:{class:"".concat(F.familyPrefix,"-").concat(cr.GROUP)},children:[{tag:"path",attributes:{class:"".concat(F.familyPrefix,"-").concat(cr.SECONDARY),fill:"currentColor",d:o[0]}},{tag:"path",attributes:{class:"".concat(F.familyPrefix,"-").concat(cr.PRIMARY),fill:"currentColor",d:o[1]}}]}:a={tag:"path",attributes:{fill:"currentColor",d:o}},{found:!0,width:e,height:n,icon:a}}var ZT={found:!1,width:512,height:512};function qT(t,e){!ay&&!F.showMissingIcons&&t&&console.error('Icon with name "'.concat(t,'" and prefix "').concat(e,'" is missing.'))}function Nf(t,e){var n=e;return e==="fa"&&F.styleDefault!==null&&(e=gn()),new Promise(function(r,i){if(Ut("missingIconAbstract"),n==="fa"){var o=Cy(t)||{};t=o.iconName||t,e=o.prefix||e}if(t&&e&&If[e]&&If[e][t]){var a=If[e][t];return r(kf(a))}qT(t,e),r(I(I({},ZT),{},{icon:F.showMissingIcons&&t?Ut("missingIconAbstract")||{}:{}}))})}var My=function(){},Lf=F.measurePerformance&&Is&&Is.mark&&Is.measure?Is:{mark:My,measure:My},Mo='FA "6.1.1"',KT=function(e){return Lf.mark("".concat(Mo," ").concat(e," begins")),function(){return Ty(e)}},Ty=function(e){Lf.mark("".concat(Mo," ").concat(e," ends")),Lf.measure("".concat(Mo," ").concat(e),"".concat(Mo," ").concat(e," begins"),"".concat(Mo," ").concat(e," ends"))},Bf={begin:KT,end:Ty},zs=function(){};function Iy(t){var e=t.getAttribute?t.getAttribute(sr):null;return typeof e=="string"}function JT(t){var e=t.getAttribute?t.getAttribute(pf):null,n=t.getAttribute?t.getAttribute(mf):null;return e&&n}function $T(t){return t&&t.classList&&t.classList.contains&&t.classList.contains(F.replacementClass)}function eI(){if(F.autoReplaceSvg===!0)return Rs.replace;var t=Rs[F.autoReplaceSvg];return t||Rs.replace}function tI(t){return ne.createElementNS("http://www.w3.org/2000/svg",t)}function nI(t){return ne.createElement(t)}function ky(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.ceFn,r=n===void 0?t.tag==="svg"?tI:nI:n;if(typeof t=="string")return ne.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(ky(a,{ceFn:r}))}),i}function rI(t){var e=" ".concat(t.outerHTML," ");return e="".concat(e,"Font Awesome fontawesome.com "),e}var Rs={replace:function(e){var n=e[0];if(n.parentNode)if(e[1].forEach(function(i){n.parentNode.insertBefore(ky(i),n)}),n.getAttribute(sr)===null&&F.keepOriginalSource){var r=ne.createComment(rI(n));n.parentNode.replaceChild(r,n)}else n.remove()},nest:function(e){var n=e[0],r=e[1];if(~yf(n).indexOf(F.replacementClass))return Rs.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 Eo(s)}).join(`
2145
- `);n.setAttribute(sr,""),n.innerHTML=a}};function Ny(t){t()}function Ly(t,e){var n=typeof e=="function"?e:zs;if(t.length===0)n();else{var r=Ny;F.mutateApproach===aT&&(r=pn.requestAnimationFrame||Ny),r(function(){var i=eI(),o=Bf.begin("mutate");t.map(i),o(),n()})}}var Of=!1;function By(){Of=!0}function Ff(){Of=!1}var js=null;function Oy(t){if(ty&&F.observeMutations){var e=t.treeCallback,n=e===void 0?zs:e,r=t.nodeCallback,i=r===void 0?zs:r,o=t.pseudoElementsCallback,a=o===void 0?zs:o,s=t.observeMutationsRoot,c=s===void 0?ne:s;js=new ty(function(u){if(!Of){var f=gn();qr(u).forEach(function(l){if(l.type==="childList"&&l.addedNodes.length>0&&!Iy(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"&&Iy(l.target)&&~hT.indexOf(l.attributeName))if(l.attributeName==="class"&&JT(l.target)){var d=Fs(yf(l.target)),h=d.prefix,p=d.iconName;l.target.setAttribute(pf,h||f),p&&l.target.setAttribute(mf,p)}else $T(l.target)&&i(l.target)})}}),zt&&js.observe(c,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function iI(){js&&js.disconnect()}function oI(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 aI(t){var e=t.getAttribute("data-prefix"),n=t.getAttribute("data-icon"),r=t.innerText!==void 0?t.innerText.trim():"",i=Fs(yf(t));return i.prefix||(i.prefix=gn()),e&&n&&(i.prefix=e,i.iconName=n),i.iconName&&i.prefix||i.prefix&&r.length>0&&(i.iconName=zT(i.prefix,t.innerText)||Sf(i.prefix,xf(t.innerText))),i}function sI(t){var e=qr(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||So()):(e["aria-hidden"]="true",e.focusable="false")),e}function cI(){return{iconName:null,title:null,titleId:null,prefix:null,transform:xt,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function Fy(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0},n=aI(t),r=n.iconName,i=n.prefix,o=n.rest,a=sI(t),s=Df("parseNodeAttributes",{},t),c=e.styleParser?oI(t):[];return I({iconName:r,title:t.getAttribute("title"),titleId:t.getAttribute("data-fa-title-id"),prefix:i,transform:xt,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:o,styles:c,attributes:a}},s)}var uI=ut.styles;function Py(t){var e=F.autoReplaceSvg==="nest"?Fy(t,{styleParser:!1}):Fy(t);return~e.extra.classes.indexOf(cy)?Ut("generateLayersText",t,e):Ut("generateSvgReplacementMutation",t,e)}function zy(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!zt)return Promise.resolve();var n=ne.documentElement.classList,r=function(l){return n.add("".concat(oy,"-").concat(l))},i=function(l){return n.remove("".concat(oy,"-").concat(l))},o=F.autoFetchSvg?Object.keys(gf):Object.keys(uI),a=[".".concat(cy,":not([").concat(sr,"])")].concat(o.map(function(f){return".".concat(f,":not([").concat(sr,"])")})).join(", ");if(a.length===0)return Promise.resolve();var s=[];try{s=qr(t.querySelectorAll(a))}catch{}if(s.length>0)r("pending"),i("complete");else return Promise.resolve();var c=Bf.begin("onTree"),u=s.reduce(function(f,l){try{var d=Py(l);d&&f.push(d)}catch(h){ay||h.name==="MissingIcon"&&console.error(h)}return f},[]);return new Promise(function(f,l){Promise.all(u).then(function(d){Ly(d,function(){r("active"),r("complete"),i("pending"),typeof e=="function"&&e(),c(),f()})}).catch(function(d){c(),l(d)})})}function lI(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;Py(t).then(function(n){n&&Ly([n],e)})}function fI(t){return function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=(e||{}).icon?e:Mf(e||{}),i=n.mask;return i&&(i=(i||{}).icon?i:Mf(i||{})),t(r,I(I({},n),{},{mask:i}))}}var dI=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=n.transform,i=r===void 0?xt: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,g=m===void 0?[]:m,y=n.attributes,b=y===void 0?{}:y,w=n.styles,C=w===void 0?{}:w;if(e){var x=e.prefix,v=e.iconName,A=e.icon;return Ps(I({type:"icon"},e),function(){return ur("beforeDOMElementCreation",{iconDefinition:e,params:n}),F.autoA11y&&(d?b["aria-labelledby"]="".concat(F.replacementClass,"-title-").concat(p||So()):(b["aria-hidden"]="true",b.focusable="false")),Tf({icons:{main:kf(A),mask:c?kf(c.icon):{found:!1,width:null,height:null,icon:{}}},prefix:x,iconName:v,transform:I(I({},xt),i),symbol:a,title:d,maskId:f,titleId:p,extra:{attributes:b,styles:C,classes:g}})})}},hI={mixout:function(){return{icon:fI(dI)}},hooks:function(){return{mutationObserverCallbacks:function(n){return n.treeCallback=zy,n.nodeCallback=lI,n}}},provides:function(e){e.i2svg=function(n){var r=n.node,i=r===void 0?ne:r,o=n.callback,a=o===void 0?function(){}:o;return zy(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([Nf(i,s),f.iconName?Nf(f.iconName,f.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(function(m){var g=uf(m,2),y=g[0],b=g[1];h([n,Tf({icons:{main:y,mask:b},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=Ls(s);c.length>0&&(i.style=c);var u;return vf(a)&&(u=Ut("generateAbstractTransformGrouping",{main:o,transform:a,containerWidth:o.width,iconWidth:o.width})),r.push(u||o.icon),{children:r,attributes:i}}}},pI={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 Ps({type:"layer"},function(){ur("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(Ts(o)).join(" ")},children:a}]})}}}},mI={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 Ps({type:"counter",content:n},function(){return ur("beforeDOMElementCreation",{content:n,params:r}),XT({content:n.toString(),title:o,extra:{attributes:u,styles:l,classes:["".concat(F.familyPrefix,"-layers-counter")].concat(Ts(s))}})})}}}},gI={mixout:function(){return{text:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.transform,o=i===void 0?xt: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 Ps({type:"text",content:n},function(){return ur("beforeDOMElementCreation",{content:n,params:r}),Dy({content:n,transform:I(I({},xt),o),title:s,extra:{attributes:l,styles:h,classes:["".concat(F.familyPrefix,"-layers-text")].concat(Ts(u))}})})}}},provides:function(e){e.generateLayersText=function(n,r){var i=r.title,o=r.transform,a=r.extra,s=null,c=null;if(ny){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,Dy({content:n.innerHTML,width:s,height:c,transform:o,title:i,extra:a,watchable:!0})])}}},yI=new RegExp('"',"ug"),Ry=[1105920,1112319];function vI(t){var e=t.replace(yI,""),n=NT(e,0),r=n>=Ry[0]&&n<=Ry[1],i=e.length===2?e[0]===e[1]:!1;return{value:xf(i?e[0]:e),isSecondary:r||i}}function jy(t,e){var n="".concat(oT).concat(e.replace(":","-"));return new Promise(function(r,i){if(t.getAttribute(n)!==null)return r();var o=qr(t.children),a=o.filter(function(v){return v.getAttribute(hf)===e})[0],s=pn.getComputedStyle(t,e),c=s.getPropertyValue("font-family").match(lT),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])?ks[c[2].toLowerCase()]:fT[u],h=vI(l),p=h.value,m=h.isSecondary,g=c[0].startsWith("FontAwesome"),y=Sf(d,p),b=y;if(g){var w=RT(p);w.iconName&&w.prefix&&(y=w.iconName,d=w.prefix)}if(y&&!m&&(!a||a.getAttribute(pf)!==d||a.getAttribute(mf)!==b)){t.setAttribute(n,b),a&&t.removeChild(a);var C=cI(),x=C.extra;x.attributes[hf]=e,Nf(y,d).then(function(v){var A=Tf(I(I({},C),{},{icons:{main:v,mask:Ef()},prefix:d,iconName:b,extra:x,watchable:!0})),D=ne.createElement("svg");e==="::before"?t.insertBefore(D,t.firstChild):t.appendChild(D),D.outerHTML=A.map(function(O){return Eo(O)}).join(`
2146
- `),t.removeAttribute(n),r()}).catch(i)}else r()}else r()})}function bI(t){return Promise.all([jy(t,"::before"),jy(t,"::after")])}function AI(t){return t.parentNode!==document.head&&!~sT.indexOf(t.tagName.toUpperCase())&&!t.getAttribute(hf)&&(!t.parentNode||t.parentNode.tagName!=="svg")}function Uy(t){if(zt)return new Promise(function(e,n){var r=qr(t.querySelectorAll("*")).filter(AI).map(bI),i=Bf.begin("searchPseudoElements");By(),Promise.all(r).then(function(){i(),Ff(),e()}).catch(function(){i(),Ff(),n()})})}var xI={hooks:function(){return{mutationObserverCallbacks:function(n){return n.pseudoElementsCallback=Uy,n}}},provides:function(e){e.pseudoElements2svg=function(n){var r=n.node,i=r===void 0?ne:r;F.searchPseudoElements&&Uy(i)}}},Gy=!1,wI={mixout:function(){return{dom:{unwatch:function(){By(),Gy=!0}}}},hooks:function(){return{bootstrap:function(){Oy(Df("mutationObserverCallbacks",{}))},noAuto:function(){iI()},watch:function(n){var r=n.observeMutationsRoot;Gy?Ff():Oy(Df("mutationObserverCallbacks",{observeMutationsRoot:r}))}}}},Hy=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)},CI={mixout:function(){return{parse:{transform:function(n){return Hy(n)}}}},hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-transform");return i&&(n.transform=Hy(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:I({},h.outer),children:[{tag:"g",attributes:I({},h.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:I(I({},r.icon.attributes),h.path)}]}]}}}},Pf={x:0,y:0,width:"100%",height:"100%"};function Qy(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 SI(t){return t.tag==="g"?t.children:[t]}var EI={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-mask"),o=i?Fs(i.split(" ").map(function(a){return a.trim()})):Ef();return o.prefix||(o.prefix=gn()),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=CT({transform:c,containerWidth:l,iconWidth:u}),p={tag:"rect",attributes:I(I({},Pf),{},{fill:"white"})},m=f.children?{children:f.children.map(Qy)}:{},g={tag:"g",attributes:I({},h.inner),children:[Qy(I({tag:f.tag,attributes:I(I({},f.attributes),h.path)},m))]},y={tag:"g",attributes:I({},h.outer),children:[g]},b="mask-".concat(s||So()),w="clip-".concat(s||So()),C={tag:"mask",attributes:I(I({},Pf),{},{id:b,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[p,y]},x={tag:"defs",children:[{tag:"clipPath",attributes:{id:w},children:SI(d)},C]};return r.push(x,{tag:"rect",attributes:I({fill:"currentColor","clip-path":"url(#".concat(w,")"),mask:"url(#".concat(b,")")},Pf)}),{children:r,attributes:i}}}},DI={provides:function(e){var n=!1;pn.matchMedia&&(n=pn.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:I(I({},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=I(I({},o),{},{attributeName:"opacity"}),s={tag:"circle",attributes:I(I({},i),{},{cx:"256",cy:"364",r:"28"}),children:[]};return n||s.children.push({tag:"animate",attributes:I(I({},o),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:I(I({},a),{},{values:"1;0;1;1;0;1;"})}),r.push(s),r.push({tag:"path",attributes:I(I({},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:I(I({},a),{},{values:"1;0;0;0;0;1;"})}]}),n||r.push({tag:"path",attributes:I(I({},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:I(I({},a),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:r}}}},MI={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}}}},TI=[DT,hI,pI,mI,gI,xI,wI,CI,EI,DI,MI];GT(TI,{mixoutsTo:Ge}),Ge.noAuto,Ge.config,Ge.library,Ge.dom,Ge.parse,Ge.findIconDefinition,Ge.toHtml;var J=Ge.icon;Ge.layer,Ge.text,Ge.counter;/**
2331
+ }`;function gC(){var e=oC,t=sC,n=X.familyPrefix,r=X.replacementClass,i=g$;if(n!==e||r!==t){var a=new RegExp("\\.".concat(e,"\\-"),"g"),o=new RegExp("\\--".concat(e,"\\-"),"g"),s=new RegExp("\\.".concat(t),"g");i=i.replace(a,".".concat(n,"-")).replace(o,"--".concat(n,"-")).replace(s,".".concat(r))}return i}var mC=!1;function o1(){X.autoAddCss&&!mC&&(u$(gC()),mC=!0)}var m$={mixout:function(){return{dom:{css:gC,insertCss:o1}}},hooks:function(){return{beforeDOMElementCreation:function(){o1()},beforeI2svg:function(){o1()}}}},Rr=Mi||{};Rr[Or]||(Rr[Or]={}),Rr[Or].styles||(Rr[Or].styles={}),Rr[Or].hooks||(Rr[Or].hooks={}),Rr[Or].shims||(Rr[Or].shims=[]);var Pn=Rr[Or],bC=[],b$=function e(){Oe.removeEventListener("DOMContentLoaded",e),Bh=1,bC.map(function(t){return t()})},Bh=!1;Lr&&(Bh=(Oe.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(Oe.readyState),Bh||Oe.addEventListener("DOMContentLoaded",b$));function y$(e){Lr&&(Bh?setTimeout(e,0):bC.push(e))}function Ll(e){var t=e.tag,n=e.attributes,r=n===void 0?{}:n,i=e.children,a=i===void 0?[]:i;return typeof e=="string"?pC(e):"<".concat(t," ").concat(h$(r),">").concat(a.map(Ll).join(""),"</").concat(t,">")}function yC(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}var v$=function(t,n){return function(r,i,a,o){return t.call(n,r,i,a,o)}},s1=function(t,n,r,i){var a=Object.keys(t),o=a.length,s=i!==void 0?v$(n,i):n,l,c,u;for(r===void 0?(l=1,u=t[a[0]]):(l=0,u=r);l<o;l++)c=a[l],u=s(u,t[c],c,t);return u};function w$(e){for(var t=[],n=0,r=e.length;n<r;){var i=e.charCodeAt(n++);if(i>=55296&&i<=56319&&n<r){var a=e.charCodeAt(n++);(a&64512)==56320?t.push(((i&1023)<<10)+(a&1023)+65536):(t.push(i),n--)}else t.push(i)}return t}function c1(e){var t=w$(e);return t.length===1?t[0].toString(16):null}function x$(e,t){var n=e.length,r=e.charCodeAt(t),i;return r>=55296&&r<=56319&&n>t+1&&(i=e.charCodeAt(t+1),i>=56320&&i<=57343)?(r-55296)*1024+i-56320+65536:r}function vC(e){return Object.keys(e).reduce(function(t,n){var r=e[n],i=!!r.icon;return i?t[r.iconName]=r.icon:t[n]=r,t},{})}function l1(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.skipHooks,i=r===void 0?!1:r,a=vC(t);typeof Pn.hooks.addPack=="function"&&!i?Pn.hooks.addPack(e,vC(t)):Pn.styles[e]=Z(Z({},Pn.styles[e]||{}),a),e==="fas"&&l1("fa",t)}var Ol=Pn.styles,A$=Pn.shims,E$=Object.values(uC),u1=null,wC={},xC={},AC={},EC={},SC={},S$=Object.keys(r1);function C$(e){return~i$.indexOf(e)}function _$(e,t){var n=t.split("-"),r=n[0],i=n.slice(1).join("-");return r===e&&i!==""&&!C$(i)?i:null}var CC=function(){var t=function(a){return s1(Ol,function(o,s,l){return o[l]=s1(s,a,{}),o},{})};wC=t(function(i,a,o){if(a[3]&&(i[a[3]]=o),a[2]){var s=a[2].filter(function(l){return typeof l=="number"});s.forEach(function(l){i[l.toString(16)]=o})}return i}),xC=t(function(i,a,o){if(i[o]=o,a[2]){var s=a[2].filter(function(l){return typeof l=="string"});s.forEach(function(l){i[l]=o})}return i}),SC=t(function(i,a,o){var s=a[2];return i[o]=o,s.forEach(function(l){i[l]=o}),i});var n="far"in Ol||X.autoFetchSvg,r=s1(A$,function(i,a){var o=a[0],s=a[1],l=a[2];return s==="far"&&!n&&(s="fas"),typeof o=="string"&&(i.names[o]={prefix:s,iconName:l}),typeof o=="number"&&(i.unicodes[o.toString(16)]={prefix:s,iconName:l}),i},{names:{},unicodes:{}});AC=r.names,EC=r.unicodes,u1=Lh(X.styleDefault)};l$(function(e){u1=Lh(e.styleDefault)}),CC();function f1(e,t){return(wC[e]||{})[t]}function k$(e,t){return(xC[e]||{})[t]}function ws(e,t){return(SC[e]||{})[t]}function _C(e){return AC[e]||{prefix:null,iconName:null}}function D$(e){var t=EC[e],n=f1("fas",e);return t||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}}function Fi(){return u1}var h1=function(){return{prefix:null,iconName:null,rest:[]}};function Lh(e){var t=r1[e],n=Mh[e]||Mh[t],r=e in Pn.styles?e:null;return n||r||null}function Oh(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.skipLookups,r=n===void 0?!1:n,i=null,a=e.reduce(function(o,s){var l=_$(X.familyPrefix,s);if(Ol[s]?(s=E$.includes(s)?KG[s]:s,i=s,o.prefix=s):S$.indexOf(s)>-1?(i=s,o.prefix=Lh(s)):l?o.iconName=l:s!==X.replacementClass&&o.rest.push(s),!r&&o.prefix&&o.iconName){var c=i==="fa"?_C(o.iconName):{},u=ws(o.prefix,o.iconName);c.prefix&&(i=null),o.iconName=c.iconName||u||o.iconName,o.prefix=c.prefix||o.prefix,o.prefix==="far"&&!Ol.far&&Ol.fas&&!X.autoFetchSvg&&(o.prefix="fas")}return o},h1());return(a.prefix==="fa"||i==="fa")&&(a.prefix=Fi()||"fas"),a}var I$=function(){function e(){PG(this,e),this.definitions={}}return UG(e,[{key:"add",value:function(){for(var n=this,r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];var o=i.reduce(this._pullDefinitions,{});Object.keys(o).forEach(function(s){n.definitions[s]=Z(Z({},n.definitions[s]||{}),o[s]),l1(s,o[s]);var l=uC[s];l&&l1(l,o[s]),CC()})}},{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(a){var o=i[a],s=o.prefix,l=o.iconName,c=o.icon,u=c[2];n[s]||(n[s]={}),u.length>0&&u.forEach(function(f){typeof f=="string"&&(n[s][f]=c)}),n[s][l]=c}),n}}]),e}(),kC=[],xs={},As={},T$=Object.keys(As);function M$(e,t){var n=t.mixoutsTo;return kC=e,xs={},Object.keys(As).forEach(function(r){T$.indexOf(r)===-1&&delete As[r]}),kC.forEach(function(r){var i=r.mixout?r.mixout():{};if(Object.keys(i).forEach(function(o){typeof i[o]=="function"&&(n[o]=i[o]),Dh(i[o])==="object"&&Object.keys(i[o]).forEach(function(s){n[o]||(n[o]={}),n[o][s]=i[o][s]})}),r.hooks){var a=r.hooks();Object.keys(a).forEach(function(o){xs[o]||(xs[o]=[]),xs[o].push(a[o])})}r.provides&&r.provides(As)}),n}function d1(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];var a=xs[e]||[];return a.forEach(function(o){t=o.apply(null,[t].concat(r))}),t}function Wa(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=xs[e]||[];i.forEach(function(a){a.apply(null,n)})}function zr(){var e=arguments[0],t=Array.prototype.slice.call(arguments,1);return As[e]?As[e].apply(null,t):void 0}function p1(e){e.prefix==="fa"&&(e.prefix="fas");var t=e.iconName,n=e.prefix||Fi();if(t)return t=ws(n,t)||t,yC(DC.definitions,n,t)||yC(Pn.styles,n,t)}var DC=new I$,N$=function(){X.autoReplaceSvg=!1,X.observeMutations=!1,Wa("noAuto")},F$={i2svg:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Lr?(Wa("beforeI2svg",t),zr("pseudoElements2svg",t),zr("i2svg",t)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.autoReplaceSvgRoot;X.autoReplaceSvg===!1&&(X.autoReplaceSvg=!0),X.observeMutations=!0,y$(function(){L$({autoReplaceSvgRoot:n}),Wa("watch",t)})}},B$={icon:function(t){if(t===null)return null;if(Dh(t)==="object"&&t.prefix&&t.iconName)return{prefix:t.prefix,iconName:ws(t.prefix,t.iconName)||t.iconName};if(Array.isArray(t)&&t.length===2){var n=t[1].indexOf("fa-")===0?t[1].slice(3):t[1],r=Lh(t[0]);return{prefix:r,iconName:ws(r,n)||n}}if(typeof t=="string"&&(t.indexOf("".concat(X.familyPrefix,"-"))>-1||t.match(JG))){var i=Oh(t.split(" "),{skipLookups:!0});return{prefix:i.prefix||Fi(),iconName:ws(i.prefix,i.iconName)||i.iconName}}if(typeof t=="string"){var a=Fi();return{prefix:a,iconName:ws(a,t)||t}}}},qt={noAuto:N$,config:X,dom:F$,parse:B$,library:DC,findIconDefinition:p1,toHtml:Ll},L$=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.autoReplaceSvgRoot,r=n===void 0?Oe:n;(Object.keys(Pn.styles).length>0||X.autoFetchSvg)&&Lr&&X.autoReplaceSvg&&qt.dom.i2svg({node:r})};function Rh(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map(function(r){return Ll(r)})}}),Object.defineProperty(e,"node",{get:function(){if(Lr){var r=Oe.createElement("div");return r.innerHTML=e.html,r.children}}}),e}function O$(e){var t=e.children,n=e.main,r=e.mask,i=e.attributes,a=e.styles,o=e.transform;if(a1(o)&&n.found&&!r.found){var s=n.width,l=n.height,c={x:s/l/2,y:.5};i.style=Fh(Z(Z({},a),{},{"transform-origin":"".concat(c.x+o.x/16,"em ").concat(c.y+o.y/16,"em")}))}return[{tag:"svg",attributes:i,children:t}]}function R$(e){var t=e.prefix,n=e.iconName,r=e.children,i=e.attributes,a=e.symbol,o=a===!0?"".concat(t,"-").concat(X.familyPrefix,"-").concat(n):a;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:Z(Z({},i),{},{id:o}),children:r}]}]}function g1(e){var t=e.icons,n=t.main,r=t.mask,i=e.prefix,a=e.iconName,o=e.transform,s=e.symbol,l=e.title,c=e.maskId,u=e.titleId,f=e.extra,h=e.watchable,d=h===void 0?!1:h,p=r.found?r:n,g=p.width,y=p.height,v=i==="fak",S=[X.replacementClass,a?"".concat(X.familyPrefix,"-").concat(a):""].filter(function(D){return f.classes.indexOf(D)===-1}).filter(function(D){return D!==""||!!D}).concat(f.classes).join(" "),k={children:[],attributes:Z(Z({},f.attributes),{},{"data-prefix":i,"data-icon":a,class:S,role:f.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(g," ").concat(y)})},C=v&&!~f.classes.indexOf("fa-fw")?{width:"".concat(g/y*16*.0625,"em")}:{};d&&(k.attributes[Za]=""),l&&(k.children.push({tag:"title",attributes:{id:k.attributes["aria-labelledby"]||"title-".concat(u||Bl())},children:[l]}),delete k.attributes.title);var E=Z(Z({},k),{},{prefix:i,iconName:a,main:n,mask:r,maskId:c,transform:o,symbol:s,styles:Z(Z({},C),f.styles)}),w=r.found&&n.found?zr("generateAbstractMask",E)||{children:[],attributes:{}}:zr("generateAbstractIcon",E)||{children:[],attributes:{}},A=w.children,T=w.attributes;return E.children=A,E.attributes=T,s?R$(E):O$(E)}function IC(e){var t=e.content,n=e.width,r=e.height,i=e.transform,a=e.title,o=e.extra,s=e.watchable,l=s===void 0?!1:s,c=Z(Z(Z({},o.attributes),a?{title:a}:{}),{},{class:o.classes.join(" ")});l&&(c[Za]="");var u=Z({},o.styles);a1(i)&&(u.transform=p$({transform:i,startCentered:!0,width:n,height:r}),u["-webkit-transform"]=u.transform);var f=Fh(u);f.length>0&&(c.style=f);var h=[];return h.push({tag:"span",attributes:c,children:[t]}),a&&h.push({tag:"span",attributes:{class:"sr-only"},children:[a]}),h}function z$(e){var t=e.content,n=e.title,r=e.extra,i=Z(Z(Z({},r.attributes),n?{title:n}:{}),{},{class:r.classes.join(" ")}),a=Fh(r.styles);a.length>0&&(i.style=a);var o=[];return o.push({tag:"span",attributes:i,children:[t]}),n&&o.push({tag:"span",attributes:{class:"sr-only"},children:[n]}),o}var m1=Pn.styles;function b1(e){var t=e[0],n=e[1],r=e.slice(4),i=Wm(r,1),a=i[0],o=null;return Array.isArray(a)?o={tag:"g",attributes:{class:"".concat(X.familyPrefix,"-").concat(qa.GROUP)},children:[{tag:"path",attributes:{class:"".concat(X.familyPrefix,"-").concat(qa.SECONDARY),fill:"currentColor",d:a[0]}},{tag:"path",attributes:{class:"".concat(X.familyPrefix,"-").concat(qa.PRIMARY),fill:"currentColor",d:a[1]}}]}:o={tag:"path",attributes:{fill:"currentColor",d:a}},{found:!0,width:t,height:n,icon:o}}var P$={found:!1,width:512,height:512};function U$(e,t){!lC&&!X.showMissingIcons&&e&&console.error('Icon with name "'.concat(e,'" and prefix "').concat(t,'" is missing.'))}function y1(e,t){var n=t;return t==="fa"&&X.styleDefault!==null&&(t=Fi()),new Promise(function(r,i){if(zr("missingIconAbstract"),n==="fa"){var a=_C(e)||{};e=a.iconName||e,t=a.prefix||t}if(e&&t&&m1[t]&&m1[t][e]){var o=m1[t][e];return r(b1(o))}U$(e,t),r(Z(Z({},P$),{},{icon:X.showMissingIcons&&e?zr("missingIconAbstract")||{}:{}}))})}var TC=function(){},v1=X.measurePerformance&&Th&&Th.mark&&Th.measure?Th:{mark:TC,measure:TC},Rl='FA "6.1.1"',j$=function(t){return v1.mark("".concat(Rl," ").concat(t," begins")),function(){return MC(t)}},MC=function(t){v1.mark("".concat(Rl," ").concat(t," ends")),v1.measure("".concat(Rl," ").concat(t),"".concat(Rl," ").concat(t," begins"),"".concat(Rl," ").concat(t," ends"))},w1={begin:j$,end:MC},zh=function(){};function NC(e){var t=e.getAttribute?e.getAttribute(Za):null;return typeof t=="string"}function H$(e){var t=e.getAttribute?e.getAttribute(t1):null,n=e.getAttribute?e.getAttribute(n1):null;return t&&n}function G$(e){return e&&e.classList&&e.classList.contains&&e.classList.contains(X.replacementClass)}function $$(){if(X.autoReplaceSvg===!0)return Ph.replace;var e=Ph[X.autoReplaceSvg];return e||Ph.replace}function V$(e){return Oe.createElementNS("http://www.w3.org/2000/svg",e)}function Y$(e){return Oe.createElement(e)}function FC(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.ceFn,r=n===void 0?e.tag==="svg"?V$:Y$:n;if(typeof e=="string")return Oe.createTextNode(e);var i=r(e.tag);Object.keys(e.attributes||[]).forEach(function(o){i.setAttribute(o,e.attributes[o])});var a=e.children||[];return a.forEach(function(o){i.appendChild(FC(o,{ceFn:r}))}),i}function Q$(e){var t=" ".concat(e.outerHTML," ");return t="".concat(t,"Font Awesome fontawesome.com "),t}var Ph={replace:function(t){var n=t[0];if(n.parentNode)if(t[1].forEach(function(i){n.parentNode.insertBefore(FC(i),n)}),n.getAttribute(Za)===null&&X.keepOriginalSource){var r=Oe.createComment(Q$(n));n.parentNode.replaceChild(r,n)}else n.remove()},nest:function(t){var n=t[0],r=t[1];if(~i1(n).indexOf(X.replacementClass))return Ph.replace(t);var i=new RegExp("".concat(X.familyPrefix,"-.*"));if(delete r[0].attributes.id,r[0].attributes.class){var a=r[0].attributes.class.split(" ").reduce(function(s,l){return l===X.replacementClass||l.match(i)?s.toSvg.push(l):s.toNode.push(l),s},{toNode:[],toSvg:[]});r[0].attributes.class=a.toSvg.join(" "),a.toNode.length===0?n.removeAttribute("class"):n.setAttribute("class",a.toNode.join(" "))}var o=r.map(function(s){return Ll(s)}).join(`
2332
+ `);n.setAttribute(Za,""),n.innerHTML=o}};function BC(e){e()}function LC(e,t){var n=typeof t=="function"?t:zh;if(e.length===0)n();else{var r=BC;X.mutateApproach===WG&&(r=Mi.requestAnimationFrame||BC),r(function(){var i=$$(),a=w1.begin("mutate");e.map(i),a(),n()})}}var x1=!1;function OC(){x1=!0}function A1(){x1=!1}var Uh=null;function RC(e){if(iC&&X.observeMutations){var t=e.treeCallback,n=t===void 0?zh:t,r=e.nodeCallback,i=r===void 0?zh:r,a=e.pseudoElementsCallback,o=a===void 0?zh:a,s=e.observeMutationsRoot,l=s===void 0?Oe:s;Uh=new iC(function(c){if(!x1){var u=Fi();vs(c).forEach(function(f){if(f.type==="childList"&&f.addedNodes.length>0&&!NC(f.addedNodes[0])&&(X.searchPseudoElements&&o(f.target),n(f.target)),f.type==="attributes"&&f.target.parentNode&&X.searchPseudoElements&&o(f.target.parentNode),f.type==="attributes"&&NC(f.target)&&~r$.indexOf(f.attributeName))if(f.attributeName==="class"&&H$(f.target)){var h=Oh(i1(f.target)),d=h.prefix,p=h.iconName;f.target.setAttribute(t1,d||u),p&&f.target.setAttribute(n1,p)}else G$(f.target)&&i(f.target)})}}),Lr&&Uh.observe(l,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function Z$(){Uh&&Uh.disconnect()}function q$(e){var t=e.getAttribute("style"),n=[];return t&&(n=t.split(";").reduce(function(r,i){var a=i.split(":"),o=a[0],s=a.slice(1);return o&&s.length>0&&(r[o]=s.join(":").trim()),r},{})),n}function W$(e){var t=e.getAttribute("data-prefix"),n=e.getAttribute("data-icon"),r=e.innerText!==void 0?e.innerText.trim():"",i=Oh(i1(e));return i.prefix||(i.prefix=Fi()),t&&n&&(i.prefix=t,i.iconName=n),i.iconName&&i.prefix||i.prefix&&r.length>0&&(i.iconName=k$(i.prefix,e.innerText)||f1(i.prefix,c1(e.innerText))),i}function X$(e){var t=vs(e.attributes).reduce(function(i,a){return i.name!=="class"&&i.name!=="style"&&(i[a.name]=a.value),i},{}),n=e.getAttribute("title"),r=e.getAttribute("data-fa-title-id");return X.autoA11y&&(n?t["aria-labelledby"]="".concat(X.replacementClass,"-title-").concat(r||Bl()):(t["aria-hidden"]="true",t.focusable="false")),t}function K$(){return{iconName:null,title:null,titleId:null,prefix:null,transform:lr,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function zC(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0},n=W$(e),r=n.iconName,i=n.prefix,a=n.rest,o=X$(e),s=d1("parseNodeAttributes",{},e),l=t.styleParser?q$(e):[];return Z({iconName:r,title:e.getAttribute("title"),titleId:e.getAttribute("data-fa-title-id"),prefix:i,transform:lr,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:a,styles:l,attributes:o}},s)}var J$=Pn.styles;function PC(e){var t=X.autoReplaceSvg==="nest"?zC(e,{styleParser:!1}):zC(e);return~t.extra.classes.indexOf(fC)?zr("generateLayersText",e,t):zr("generateSvgReplacementMutation",e,t)}function UC(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!Lr)return Promise.resolve();var n=Oe.documentElement.classList,r=function(f){return n.add("".concat(cC,"-").concat(f))},i=function(f){return n.remove("".concat(cC,"-").concat(f))},a=X.autoFetchSvg?Object.keys(r1):Object.keys(J$),o=[".".concat(fC,":not([").concat(Za,"])")].concat(a.map(function(u){return".".concat(u,":not([").concat(Za,"])")})).join(", ");if(o.length===0)return Promise.resolve();var s=[];try{s=vs(e.querySelectorAll(o))}catch{}if(s.length>0)r("pending"),i("complete");else return Promise.resolve();var l=w1.begin("onTree"),c=s.reduce(function(u,f){try{var h=PC(f);h&&u.push(h)}catch(d){lC||d.name==="MissingIcon"&&console.error(d)}return u},[]);return new Promise(function(u,f){Promise.all(c).then(function(h){LC(h,function(){r("active"),r("complete"),i("pending"),typeof t=="function"&&t(),l(),u()})}).catch(function(h){l(),f(h)})})}function eV(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;PC(e).then(function(n){n&&LC([n],t)})}function tV(e){return function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=(t||{}).icon?t:p1(t||{}),i=n.mask;return i&&(i=(i||{}).icon?i:p1(i||{})),e(r,Z(Z({},n),{},{mask:i}))}}var nV=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=n.transform,i=r===void 0?lr:r,a=n.symbol,o=a===void 0?!1:a,s=n.mask,l=s===void 0?null:s,c=n.maskId,u=c===void 0?null:c,f=n.title,h=f===void 0?null:f,d=n.titleId,p=d===void 0?null:d,g=n.classes,y=g===void 0?[]:g,v=n.attributes,S=v===void 0?{}:v,k=n.styles,C=k===void 0?{}:k;if(t){var E=t.prefix,w=t.iconName,A=t.icon;return Rh(Z({type:"icon"},t),function(){return Wa("beforeDOMElementCreation",{iconDefinition:t,params:n}),X.autoA11y&&(h?S["aria-labelledby"]="".concat(X.replacementClass,"-title-").concat(p||Bl()):(S["aria-hidden"]="true",S.focusable="false")),g1({icons:{main:b1(A),mask:l?b1(l.icon):{found:!1,width:null,height:null,icon:{}}},prefix:E,iconName:w,transform:Z(Z({},lr),i),symbol:o,title:h,maskId:u,titleId:p,extra:{attributes:S,styles:C,classes:y}})})}},rV={mixout:function(){return{icon:tV(nV)}},hooks:function(){return{mutationObserverCallbacks:function(n){return n.treeCallback=UC,n.nodeCallback=eV,n}}},provides:function(t){t.i2svg=function(n){var r=n.node,i=r===void 0?Oe:r,a=n.callback,o=a===void 0?function(){}:a;return UC(i,o)},t.generateSvgReplacementMutation=function(n,r){var i=r.iconName,a=r.title,o=r.titleId,s=r.prefix,l=r.transform,c=r.symbol,u=r.mask,f=r.maskId,h=r.extra;return new Promise(function(d,p){Promise.all([y1(i,s),u.iconName?y1(u.iconName,u.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(function(g){var y=Wm(g,2),v=y[0],S=y[1];d([n,g1({icons:{main:v,mask:S},prefix:s,iconName:i,transform:l,symbol:c,maskId:f,title:a,titleId:o,extra:h,watchable:!0})])}).catch(p)})},t.generateAbstractIcon=function(n){var r=n.children,i=n.attributes,a=n.main,o=n.transform,s=n.styles,l=Fh(s);l.length>0&&(i.style=l);var c;return a1(o)&&(c=zr("generateAbstractTransformGrouping",{main:a,transform:o,containerWidth:a.width,iconWidth:a.width})),r.push(c||a.icon),{children:r,attributes:i}}}},iV={mixout:function(){return{layer:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.classes,a=i===void 0?[]:i;return Rh({type:"layer"},function(){Wa("beforeDOMElementCreation",{assembler:n,params:r});var o=[];return n(function(s){Array.isArray(s)?s.map(function(l){o=o.concat(l.abstract)}):o=o.concat(s.abstract)}),[{tag:"span",attributes:{class:["".concat(X.familyPrefix,"-layers")].concat(Ih(a)).join(" ")},children:o}]})}}}},aV={mixout:function(){return{counter:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.title,a=i===void 0?null:i,o=r.classes,s=o===void 0?[]:o,l=r.attributes,c=l===void 0?{}:l,u=r.styles,f=u===void 0?{}:u;return Rh({type:"counter",content:n},function(){return Wa("beforeDOMElementCreation",{content:n,params:r}),z$({content:n.toString(),title:a,extra:{attributes:c,styles:f,classes:["".concat(X.familyPrefix,"-layers-counter")].concat(Ih(s))}})})}}}},oV={mixout:function(){return{text:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.transform,a=i===void 0?lr:i,o=r.title,s=o===void 0?null:o,l=r.classes,c=l===void 0?[]:l,u=r.attributes,f=u===void 0?{}:u,h=r.styles,d=h===void 0?{}:h;return Rh({type:"text",content:n},function(){return Wa("beforeDOMElementCreation",{content:n,params:r}),IC({content:n,transform:Z(Z({},lr),a),title:s,extra:{attributes:f,styles:d,classes:["".concat(X.familyPrefix,"-layers-text")].concat(Ih(c))}})})}}},provides:function(t){t.generateLayersText=function(n,r){var i=r.title,a=r.transform,o=r.extra,s=null,l=null;if(aC){var c=parseInt(getComputedStyle(n).fontSize,10),u=n.getBoundingClientRect();s=u.width/c,l=u.height/c}return X.autoA11y&&!i&&(o.attributes["aria-hidden"]="true"),Promise.resolve([n,IC({content:n.innerHTML,width:s,height:l,transform:a,title:i,extra:o,watchable:!0})])}}},sV=new RegExp('"',"ug"),jC=[1105920,1112319];function cV(e){var t=e.replace(sV,""),n=x$(t,0),r=n>=jC[0]&&n<=jC[1],i=t.length===2?t[0]===t[1]:!1;return{value:c1(i?t[0]:t),isSecondary:r||i}}function HC(e,t){var n="".concat(qG).concat(t.replace(":","-"));return new Promise(function(r,i){if(e.getAttribute(n)!==null)return r();var a=vs(e.children),o=a.filter(function(w){return w.getAttribute(e1)===t})[0],s=Mi.getComputedStyle(e,t),l=s.getPropertyValue("font-family").match(e$),c=s.getPropertyValue("font-weight"),u=s.getPropertyValue("content");if(o&&!l)return e.removeChild(o),r();if(l&&u!=="none"&&u!==""){var f=s.getPropertyValue("content"),h=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(l[2])?Mh[l[2].toLowerCase()]:t$[c],d=cV(f),p=d.value,g=d.isSecondary,y=l[0].startsWith("FontAwesome"),v=f1(h,p),S=v;if(y){var k=D$(p);k.iconName&&k.prefix&&(v=k.iconName,h=k.prefix)}if(v&&!g&&(!o||o.getAttribute(t1)!==h||o.getAttribute(n1)!==S)){e.setAttribute(n,S),o&&e.removeChild(o);var C=K$(),E=C.extra;E.attributes[e1]=t,y1(v,h).then(function(w){var A=g1(Z(Z({},C),{},{icons:{main:w,mask:h1()},prefix:h,iconName:S,extra:E,watchable:!0})),T=Oe.createElement("svg");t==="::before"?e.insertBefore(T,e.firstChild):e.appendChild(T),T.outerHTML=A.map(function(D){return Ll(D)}).join(`
2333
+ `),e.removeAttribute(n),r()}).catch(i)}else r()}else r()})}function lV(e){return Promise.all([HC(e,"::before"),HC(e,"::after")])}function uV(e){return e.parentNode!==document.head&&!~XG.indexOf(e.tagName.toUpperCase())&&!e.getAttribute(e1)&&(!e.parentNode||e.parentNode.tagName!=="svg")}function GC(e){if(Lr)return new Promise(function(t,n){var r=vs(e.querySelectorAll("*")).filter(uV).map(lV),i=w1.begin("searchPseudoElements");OC(),Promise.all(r).then(function(){i(),A1(),t()}).catch(function(){i(),A1(),n()})})}var fV={hooks:function(){return{mutationObserverCallbacks:function(n){return n.pseudoElementsCallback=GC,n}}},provides:function(t){t.pseudoElements2svg=function(n){var r=n.node,i=r===void 0?Oe:r;X.searchPseudoElements&&GC(i)}}},$C=!1,hV={mixout:function(){return{dom:{unwatch:function(){OC(),$C=!0}}}},hooks:function(){return{bootstrap:function(){RC(d1("mutationObserverCallbacks",{}))},noAuto:function(){Z$()},watch:function(n){var r=n.observeMutationsRoot;$C?A1():RC(d1("mutationObserverCallbacks",{observeMutationsRoot:r}))}}}},VC=function(t){var n={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return t.toLowerCase().split(" ").reduce(function(r,i){var a=i.toLowerCase().split("-"),o=a[0],s=a.slice(1).join("-");if(o&&s==="h")return r.flipX=!0,r;if(o&&s==="v")return r.flipY=!0,r;if(s=parseFloat(s),isNaN(s))return r;switch(o){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)},dV={mixout:function(){return{parse:{transform:function(n){return VC(n)}}}},hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-transform");return i&&(n.transform=VC(i)),n}}},provides:function(t){t.generateAbstractTransformGrouping=function(n){var r=n.main,i=n.transform,a=n.containerWidth,o=n.iconWidth,s={transform:"translate(".concat(a/2," 256)")},l="translate(".concat(i.x*32,", ").concat(i.y*32,") "),c="scale(".concat(i.size/16*(i.flipX?-1:1),", ").concat(i.size/16*(i.flipY?-1:1),") "),u="rotate(".concat(i.rotate," 0 0)"),f={transform:"".concat(l," ").concat(c," ").concat(u)},h={transform:"translate(".concat(o/2*-1," -256)")},d={outer:s,inner:f,path:h};return{tag:"g",attributes:Z({},d.outer),children:[{tag:"g",attributes:Z({},d.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:Z(Z({},r.icon.attributes),d.path)}]}]}}}},E1={x:0,y:0,width:"100%",height:"100%"};function YC(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}function pV(e){return e.tag==="g"?e.children:[e]}var gV={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-mask"),a=i?Oh(i.split(" ").map(function(o){return o.trim()})):h1();return a.prefix||(a.prefix=Fi()),n.mask=a,n.maskId=r.getAttribute("data-fa-mask-id"),n}}},provides:function(t){t.generateAbstractMask=function(n){var r=n.children,i=n.attributes,a=n.main,o=n.mask,s=n.maskId,l=n.transform,c=a.width,u=a.icon,f=o.width,h=o.icon,d=d$({transform:l,containerWidth:f,iconWidth:c}),p={tag:"rect",attributes:Z(Z({},E1),{},{fill:"white"})},g=u.children?{children:u.children.map(YC)}:{},y={tag:"g",attributes:Z({},d.inner),children:[YC(Z({tag:u.tag,attributes:Z(Z({},u.attributes),d.path)},g))]},v={tag:"g",attributes:Z({},d.outer),children:[y]},S="mask-".concat(s||Bl()),k="clip-".concat(s||Bl()),C={tag:"mask",attributes:Z(Z({},E1),{},{id:S,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[p,v]},E={tag:"defs",children:[{tag:"clipPath",attributes:{id:k},children:pV(h)},C]};return r.push(E,{tag:"rect",attributes:Z({fill:"currentColor","clip-path":"url(#".concat(k,")"),mask:"url(#".concat(S,")")},E1)}),{children:r,attributes:i}}}},mV={provides:function(t){var n=!1;Mi.matchMedia&&(n=Mi.matchMedia("(prefers-reduced-motion: reduce)").matches),t.missingIconAbstract=function(){var r=[],i={fill:"currentColor"},a={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};r.push({tag:"path",attributes:Z(Z({},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 o=Z(Z({},a),{},{attributeName:"opacity"}),s={tag:"circle",attributes:Z(Z({},i),{},{cx:"256",cy:"364",r:"28"}),children:[]};return n||s.children.push({tag:"animate",attributes:Z(Z({},a),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:Z(Z({},o),{},{values:"1;0;1;1;0;1;"})}),r.push(s),r.push({tag:"path",attributes:Z(Z({},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:Z(Z({},o),{},{values:"1;0;0;0;0;1;"})}]}),n||r.push({tag:"path",attributes:Z(Z({},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:Z(Z({},o),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:r}}}},bV={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-symbol"),a=i===null?!1:i===""?!0:i;return n.symbol=a,n}}}},yV=[m$,rV,iV,aV,oV,fV,hV,dV,gV,mV,bV];M$(yV,{mixoutsTo:qt}),qt.noAuto,qt.config,qt.library,qt.dom,qt.parse,qt.findIconDefinition,qt.toHtml;var ke=qt.icon;qt.layer,qt.text,qt.counter;/**
2147
2334
  * @license
2148
2335
  * Copyright 2018 Google LLC
2149
2336
  * SPDX-License-Identifier: BSD-3-Clause
2150
- */const zf=or(class extends Zr{constructor(t){var e;if(super(t),t.type!==At.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.vt===void 0){this.vt=new Set;for(const r in e)this.vt.add(r);return this.render(e)}this.vt.forEach(r=>{e[r]==null&&(this.vt.delete(r),r.includes("-")?n.removeProperty(r):n[r]="")});for(const r in e){const i=e[r];i!=null&&(this.vt.add(r),r.includes("-")?n.setProperty(r,i):n[r]=i)}return Ae}});/**
2337
+ */const S1=Ya(class extends ys{constructor(e){var t;if(super(e),e.type!==cr.ATTRIBUTE||e.name!=="style"||((t=e.strings)===null||t===void 0?void 0:t.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(e){return Object.keys(e).reduce((t,n)=>{const r=e[n];return r==null?t:t+`${n=n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`},"")}update(e,[t]){const{style:n}=e.element;if(this.vt===void 0){this.vt=new Set;for(const r in t)this.vt.add(r);return this.render(t)}this.vt.forEach(r=>{t[r]==null&&(this.vt.delete(r),r.includes("-")?n.removeProperty(r):n[r]="")});for(const r in t){const i=t[r];i!=null&&(this.vt.add(r),r.includes("-")?n.setProperty(r,i):n[r]=i)}return pt}});/**
2151
2338
  * @license
2152
2339
  * Copyright 2020 Google LLC
2153
2340
  * SPDX-License-Identifier: BSD-3-Clause
2154
- */const{I:II}=A4,kI=t=>t===null||typeof t!="object"&&typeof t!="function",Vy=t=>t.strings===void 0,Yy=()=>document.createComment(""),To=(t,e,n)=>{var r;const i=t._$AA.parentNode,o=e===void 0?t._$AB:e._$AA;if(n===void 0){const a=i.insertBefore(Yy(),o),s=i.insertBefore(Yy(),o);n=new II(a,s,t,t.options)}else{const a=n._$AB.nextSibling,s=n._$AM,c=s!==t;if(c){let u;(r=n._$AQ)===null||r===void 0||r.call(n,t),n._$AM=t,n._$AP!==void 0&&(u=t._$AU)!==s._$AU&&n._$AP(u)}if(a!==o||c){let u=n._$AA;for(;u!==a;){const f=u.nextSibling;i.insertBefore(u,o),u=f}}}return n},lr=(t,e,n=t)=>(t._$AI(e,n),t),NI={},_y=(t,e=NI)=>t._$AH=e,LI=t=>t._$AH,Rf=t=>{var e;(e=t._$AP)===null||e===void 0||e.call(t,!1,!0);let n=t._$AA;const r=t._$AB.nextSibling;for(;n!==r;){const i=n.nextSibling;n.remove(),n=i}};/**
2341
+ */const{I:vV}=BI,wV=e=>e===null||typeof e!="object"&&typeof e!="function",QC=e=>e.strings===void 0,ZC=()=>document.createComment(""),zl=(e,t,n)=>{var r;const i=e._$AA.parentNode,a=t===void 0?e._$AB:t._$AA;if(n===void 0){const o=i.insertBefore(ZC(),a),s=i.insertBefore(ZC(),a);n=new vV(o,s,e,e.options)}else{const o=n._$AB.nextSibling,s=n._$AM,l=s!==e;if(l){let c;(r=n._$AQ)===null||r===void 0||r.call(n,e),n._$AM=e,n._$AP!==void 0&&(c=e._$AU)!==s._$AU&&n._$AP(c)}if(o!==a||l){let c=n._$AA;for(;c!==o;){const u=c.nextSibling;i.insertBefore(c,a),c=u}}}return n},Xa=(e,t,n=e)=>(e._$AI(t,n),e),xV={},qC=(e,t=xV)=>e._$AH=t,AV=e=>e._$AH,C1=e=>{var t;(t=e._$AP)===null||t===void 0||t.call(e,!1,!0);let n=e._$AA;const r=e._$AB.nextSibling;for(;n!==r;){const i=n.nextSibling;n.remove(),n=i}};/**
2155
2342
  * @license
2156
2343
  * Copyright 2017 Google LLC
2157
2344
  * SPDX-License-Identifier: BSD-3-Clause
2158
- */const Wy=(t,e,n)=>{const r=new Map;for(let i=e;i<=n;i++)r.set(t[i],i);return r},BI=or(class extends Zr{constructor(t){if(super(t),t.type!==At.CHILD)throw Error("repeat() can only be used in text expressions")}ht(t,e,n){let r;n===void 0?n=e:e!==void 0&&(r=e);const i=[],o=[];let a=0;for(const s of t)i[a]=r?r(s,a):a,o[a]=n(s,a),a++;return{values:o,keys:i}}render(t,e,n){return this.ht(t,e,n).values}update(t,[e,n,r]){var i;const o=LI(t),{values:a,keys:s}=this.ht(e,n,r);if(!Array.isArray(o))return this.ut=s,a;const c=(i=this.ut)!==null&&i!==void 0?i:this.ut=[],u=[];let f,l,d=0,h=o.length-1,p=0,m=a.length-1;for(;d<=h&&p<=m;)if(o[d]===null)d++;else if(o[h]===null)h--;else if(c[d]===s[p])u[p]=lr(o[d],a[p]),d++,p++;else if(c[h]===s[m])u[m]=lr(o[h],a[m]),h--,m--;else if(c[d]===s[m])u[m]=lr(o[d],a[m]),To(t,u[m+1],o[d]),d++,m--;else if(c[h]===s[p])u[p]=lr(o[h],a[p]),To(t,o[d],o[h]),h--,p++;else if(f===void 0&&(f=Wy(s,p,m),l=Wy(c,d,h)),f.has(c[d]))if(f.has(c[h])){const g=l.get(s[p]),y=g!==void 0?o[g]:null;if(y===null){const b=To(t,o[d]);lr(b,a[p]),u[p]=b}else u[p]=lr(y,a[p]),To(t,o[d],y),o[g]=null;p++}else Rf(o[h]),h--;else Rf(o[d]),d++;for(;p<=m;){const g=To(t,u[m+1]);lr(g,a[p]),u[p++]=g}for(;d<=h;){const g=o[d++];g!==null&&Rf(g)}return this.ut=s,_y(t,u),Ae}}),Xy="close-dialog";function OI(){return new CustomEvent(Xy,{bubbles:!0})}function fr(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),Oe(E`<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(Vn)};return n.addEventListener("keydown",o=>{o.stopPropagation()}),n.addEventListener(Xy,i),e.appendChild(n),window.requestAnimationFrame(()=>n.classList.add("visible")),t!="tour"&&document.body.classList.add(Vn),{content:n.querySelector(".content"),close:i}}function He(t,e={}){const n=fr(),r=e.title;return e.okLabel??(e.okLabel="OK"),new Promise((i,o)=>{const a=()=>{n.close(),i(!0)},s=E`${r?E`<div class="modal-title">${r}</div>`:z}<div class="modal-body" style="max-width:700px">${t}</div><div class="modal-buttons">${e.cancelButton?E`<button class="btn" @click="${()=>{n.close(),i(!1)}}">Cancel</button>`:z} <button class="btn" @click="${a}">${e.okLabel}</button></div>`;Oe(s,n.content)})}class Zy extends bt{constructor(){super();q(this,uc);q(this,lc);q(this,Zo);q(this,fc);q(this,fi,void 0);q(this,_t,void 0);q(this,xn,void 0);q(this,Xo,0);this.values=[],this.thresholds=[],this.operators=[],this.colors=qy,this.showThresholdNumbers=!1,tt(this,fi,tA().thresholds(40)),tt(this,_t,j(this,fi).call(this,[])),tt(this,xn,La())}connectedCallback(){super.connectedCallback()}createRenderRoot(){return this}willUpdate(n){n.has("values")&&(tt(this,_t,j(this,fi).call(this,this.values)),tt(this,xn,La().domain(this.domain).range([0,100])))}get domain(){return[j(this,_t).at(0).x0,j(this,_t).at(-1).x1]}render(){const n=j(this,xn),r=100/j(this,_t).length,i=$(this,fc,n2).call(this).map(o=>E`<div style="${zf({width:r+.01+"%",left:o.x+"%",bottom:o.y+"%",height:o.height+"%",backgroundColor:typeof o.group=="number"?this.colors[o.group%this.colors.length]:"default"})}"></div>`);return E`<div class="histogram-widget"><div class="histogram-plot"><div class="histogram-bars">${i}</div><div class="histogram-thresholds" @click="${$(this,uc,e2)}">${this.thresholds.map((o,a)=>{const s=n(o);return s>=0&&s<=100?E`<div class="histogram-threshold" style="${zf({left:n(o)+"%"})}"><div class="histogram-knob" @mousedown="${c=>$(this,lc,t2).call(this,c,a)}">${this.showThresholdNumbers?a+1:z}</div></div>`:z})}</div><div class="${sf({"histogram-hint":!0,visible:!this.thresholds.length})}"><span>Click here to add a threshold!</span></div></div><div class="histogram-domain"></div><div class="histogram-extent">${n.domain().map(o=>E`<div>${o}</div>`)}</div></div>`}}fi=new WeakMap,_t=new WeakMap,xn=new WeakMap,Xo=new WeakMap,uc=new WeakSet,e2=function(n){if(performance.now()<j(this,Xo)+200)return;const r=n.target,i=yp(r,n);$(this,Zo,Hd).call(this,"add",0,i[0]/r.offsetWidth)},lc=new WeakSet,t2=function(n,r){const o=n.target.closest(".histogram-threshold"),a=o.offsetLeft,s=o.offsetParent.offsetWidth;n.preventDefault(),n.stopPropagation(),this.style.cursor="col-resize",PI(n,(c,u)=>{$(this,Zo,Hd).call(this,"adjust",r,(a+c)/s)},()=>{tt(this,Xo,performance.now()),this.style.cursor=""})},Zo=new WeakSet,Hd=function(n,r,i){i=gs(i,0,1),this.dispatchEvent(new FI(n,r,+j(this,xn).invert(i*100).toPrecision(3)))},fc=new WeakSet,n2=function(){const n=j(this,_t),r=j(this,xn),i=90/n.map(f=>f.length).reduce((f,l)=>Math.max(f,l),0),o=[],a=this.thresholds.length==1&&this.operators[0]=="eq",s=[-1/0,...this.thresholds,1/0],c=[!1,...this.operators.map(f=>["lte","gt"].includes(f)),!0],u=["gt","gte"].includes(this.operators[0])?f=>s.length-f-2:f=>f;for(let f=0;f<n.length;f++){const l=n[f],d=r(l.x0);let h=0,p=0;if(a)for(let m=0;m<=1;m++)p=RI(l,this.thresholds[0],m>0),p&&o.push({x:d,y:h*i,height:p*i,group:m}),h+=p;else if(this.thresholds.length)for(let m=0;m<s.length-1;m++){const g=u(m);p=zI(l,s[g],s[g+1],!c[g],c[g+1]),p&&o.push({x:d,y:h*i,height:p*i,group:m}),h+=p}else p=l.length,p&&o.push({x:d,y:h,height:p*i,group:null})}return o},pc(Zy,"properties",{values:{attribute:!1},thresholds:{attribute:!1},operators:{attribute:!1},colors:{attribute:!1},showThresholdNumbers:{}}),customElements.define("genome-spy-histogram",Zy);class FI extends Event{constructor(e,n,r){super(e),this.index=n,this.value=r}}function PI(t,e,n){const r=t.clientX,i=t.clientY,o=function(s){e(s.clientX-r,s.clientY-i)},a=function(s){document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",a),n==null||n(s.clientX-r,s.clientY-i)};document.addEventListener("mousemove",o),document.addEventListener("mouseup",a)}function zI(t,e,n,r=!0,i=!1){const o=r?c=>c>=e:c=>c>e,a=i?c=>c<=n:c=>c<n;let s=0;for(let c=0;c<t.length;c++){const u=t[c];o(u)&&a(u)&&s++}return s}function RI(t,e,n=!1){let r=0;for(let i=0;i<t.length;i++)r+=+(t[i]==e);return n?t.length-r:r}const qy=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b"];function jI(t,e){var r;const n=(r=t.scale)==null?void 0:r.type;rn(n)?GI(t,e):Be(n)||Gn(n)?HI(t,e):t.type==="identifier"?UI(t,e):He("Not implemented (yet).")}function UI(t,e){Ky(e.getSamples().map(n=>n.id),t,e)}function GI(t,e){const n=t.scale,r=i=>E`<span class="color" style="${zf({backgroundColor:n(i).toString()})}"></span>`;Ky(n.domain(),t,e,r)}function Ky(t,e,n,r=i=>z){const i=n.provenance.storeHelper.getDispatcher(),o=new Set(Jy(e,n.leafSamples,n.sampleHierarchy)),a=t.filter(C=>o.has(C)).map((C,x)=>({index:x,value:C,stringValue:`${C}`,lowerCaseValue:`${C}`.toLowerCase()})),s=fr(),c=E`<div class="modal-title">Filter by <em>${e.name}</em></div>`,u=new Set;let f="";const l=C=>{i(n.actions.filterByNominal({values:t.filter(x=>u.has(x)),attribute:e.attribute,remove:C})),s.close()},d=()=>a.filter(C=>f.length==0||C.lowerCaseValue.includes(f)),h=C=>{f=C.target.value.toLowerCase(),w()},p=C=>{const x=C.target,v=a[+x.value].value;x.checked?u.add(v):u.delete(v),w()},m=C=>{var x;if(C.key=="ArrowDown")(x=s.content.querySelector(".gs-checkbox-list li:first-child input[type='checkbox']"))==null||x.focus(),C.preventDefault(),C.stopPropagation();else if(C.key=="Enter"){const v=d();v.length==1&&(u.add(v[0].value),w()),C.stopPropagation()}},g=()=>{s.content.querySelector("input[type='text']").focus()},y=C=>{var v,A,D,O,k;const x=C.target;if(x.type=="checkbox")if(C.key=="ArrowDown")(A=(v=x.closest("li").nextElementSibling)==null?void 0:v.querySelector("input[type='checkbox']"))==null||A.focus(),C.preventDefault();else if(C.key=="ArrowUp"){const T=(D=x.closest("li").previousElementSibling)==null?void 0:D.querySelector("input[type='checkbox']");T?T.focus():g(),C.preventDefault()}else C.key=="Esc"?(g(),C.stopPropagation()):C.key=="Tab"&&!C.shiftKey?(O=x.closest(".gs-checkbox-list").querySelector("li:last-child input"))==null||O.focus():C.key=="Tab"&&C.shiftKey&&((k=x.closest(".gs-checkbox-list").querySelector("li:first-child input"))==null||k.focus())},b=()=>E`<div class="modal-buttons"><button class="btn btn-cancel" @click="${()=>s.close()}">Cancel</button> <button class="btn" ?disabled="${!u.size}" @click="${()=>l(!1)}">${J(ar).node[0]} Retain</button> <button class="btn" ?disabled="${!u.size}" @click="${()=>l(!0)}">${J(Ds).node[0]} Remove</button></div>`;function w(){const C=d(),x=E`<div class="gs-form-group"><p>Please select one or more categories and choose an action.</p><input type="text" placeholder="Type something to filter the list" @keydown="${m}" @input="${h}"><div class="gs-checkbox-list-wrapper"><ul class="gs-checkbox-list" @input="${p}" @keydown="${y}">${BI(C,A=>A.value,A=>E`<li><label class="checkbox">${r(A.value)} <input type="checkbox" .checked="${u.has(A.value)}" .value="${""+A.index}"> ${A.stringValue}</label></li>`)}</ul>${C.length==0?E`<div class="search-note"><div>Nothing found</div></div>`:C.length==1&&a.length>1?E`<div class="search-note"><div>${J(S6).node[0]} Hit enter to select the exact match</div></div>`:z}</div><small>The number of selected categories: <strong>${u.size}</strong></small></div>`;Oe(E`${c}<div class="modal-body">${x}</div>${b()}`,s.content);const v=s.content.querySelector(".gs-checkbox-list");v.style.minHeight=`${v.offsetHeight}px`}w(),g()}function HI(t,e){var g;const n=e.provenance.storeHelper.getDispatcher();let r="lt",i;const o=fr(),a=E`<div class="modal-title">Filter by <em>${t.name}</em></div>`,s=y=>{n(e.actions.filterByQuantitative({attribute:t.attribute,operator:r,operand:i})),o.close()},c=()=>E`<div class="modal-buttons"><button class="btn btn-cancel" @click="${()=>o.close()}">Cancel</button> <button class="btn btn-primary" ?disabled="${typeof i>"u"}" @click="${()=>s()}">${J(ar).node[0]} Retain</button></div>`,u=y=>{r=y.target.value,m()},f=y=>{const w=y.target.value;/^\d+(\.(\d+)?)?$/.test(w)&&(i=+w,m())},l=y=>{typeof i!="number"&&(i=y.value,m())},d=y=>{i=y.value,m()},h=Jy(t,e.leafSamples,e.sampleHierarchy),p=()=>E`<div class="gs-form-group"><label>Retain samples where <em>${t.name}</em> is</label><div class="btn-group" role="group">${Object.entries(QI).map(([y,b])=>E`<button class="${sf({btn:!0,chosen:y==r})}" .value="${y}" @click="${u}" title="${b[1]}">${b[0]}</button>`)}</div><genome-spy-histogram .values="${h}" .thresholds="${[i].filter(y=>y!==void 0)}" .operators="${[r]}" .colors="${["#1f77b4","#ddd"]}" .showThresholdNumbers="${!1}" @add="${l}" @adjust="${d}"></genome-spy-histogram><input type="text" placeholder="... or enter a numeric value here" .value="${typeof i=="number"?""+i:""}" @input="${f}"></div>`;function m(){Oe(E`${a}<div class="modal-body">${p()}</div>${c()}`,o.content)}m(),(g=o.content.querySelector("input[type='text']"))==null||g.focus()}const QI={lt:["<","less than"],lte:["≤","less than or equal to"],eq:["=","equal to"],gte:["≥","greater than or equal to"],gt:[">","greater than"]};function Jy(t,e,n){const r=t.accessor;return e.map(i=>r(i,n))}function lt(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[ae]}function Gt(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)===JI}(t)||Array.isArray(t)||!!t[cv]||!!t.constructor[cv]||jf(t)||Uf(t))}function dr(t,e,n){n===void 0&&(n=!1),ei(t)===0?(n?Object.keys:ni)(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[ae];return e?e.i>3?e.i-4:e.i:Array.isArray(t)?1:jf(t)?2:Uf(t)?3:0}function ti(t,e){return ei(t)===2?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function VI(t,e){return ei(t)===2?t.get(e):t[e]}function $y(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 ev(t,e){return t===e?t!==0||1/t==1/e:t!=t&&e!=e}function jf(t){return qI&&t instanceof Map}function Uf(t){return KI&&t instanceof Set}function hr(t){return t.o||t.t}function Gf(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var e=uv(t);delete e[ae];for(var n=ni(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 Hf(t,e){return e===void 0&&(e=!1),Qf(t)||yn(t)||!Gt(t)||(ei(t)>1&&(t.set=t.add=t.clear=t.delete=YI),Object.freeze(t),e&&dr(t,function(n,r){return Hf(r,!0)},!0)),t}function YI(){lt(2)}function Qf(t){return t==null||typeof t!="object"||Object.isFrozen(t)}function wt(t){var e=Jf[t];return e||lt(18,t),e}function _I(t,e){Jf[t]||(Jf[t]=e)}function Vf(){return Io}function Yf(t,e){e&&(wt("Patches"),t.u=[],t.s=[],t.v=e)}function Us(t){_f(t),t.p.forEach(WI),t.p=null}function _f(t){t===Io&&(Io=t.l)}function tv(t){return Io={p:[],l:Io,h:t,m:!0,_:0}}function WI(t){var e=t[ae];e.i===0||e.i===1?e.j():e.O=!0}function Wf(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[ae].P&&(Us(e),lt(4)),Gt(t)&&(t=Gs(e,t),e.l||Hs(e,t)),e.u&&wt("Patches").M(n[ae].t,t,e.u,e.s)):t=Gs(e,n,[]),Us(e),e.u&&e.v(e.u,e.s),t!==sv?t:void 0}function Gs(t,e,n){if(Qf(e))return e;var r=e[ae];if(!r)return dr(e,function(o,a){return nv(t,r,e,o,a,n)},!0),e;if(r.A!==t)return e;if(!r.P)return Hs(t,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var i=r.i===4||r.i===5?r.o=Gf(r.k):r.o;dr(r.i===3?new Set(i):i,function(o,a){return nv(t,r,i,o,a,n)}),Hs(t,i,!1),n&&t.u&&wt("Patches").R(r,n,t.u,t.s)}return r.o}function nv(t,e,n,r,i,o){if(yn(i)){var a=Gs(t,i,o&&e&&e.i!==3&&!ti(e.D,r)?o.concat(r):void 0);if($y(n,r,a),!yn(a))return;t.m=!1}if(Gt(i)&&!Qf(i)){if(!t.h.F&&t._<1)return;Gs(t,i),e&&e.A.l||Hs(t,i)}}function Hs(t,e,n){n===void 0&&(n=!1),t.h.F&&t.m&&Hf(e,n)}function Xf(t,e){var n=t[ae];return(n?hr(n):t)[e]}function rv(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 vn(t){t.P||(t.P=!0,t.l&&vn(t.l))}function Zf(t){t.o||(t.o=Gf(t.t))}function qf(t,e,n){var r=jf(e)?wt("MapSet").N(e,n):Uf(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:Vf(),P:!1,I:!1,D:{},l:o,t:i,k:null,o:null,j:null,C:!1},c=s,u=ko;a&&(c=[s],u=No);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:Vf()).p.push(r),r}function XI(t){return yn(t)||lt(22,t),function e(n){if(!Gt(n))return n;var r,i=n[ae],o=ei(n);if(i){if(!i.P&&(i.i<4||!wt("ES5").K(i)))return i.t;i.I=!0,r=iv(n,o),i.I=!1}else r=iv(n,o);return dr(r,function(a,s){i&&VI(i.t,a)===s||$y(r,a,e(s))}),o===3?new Set(r):r}(t)}function iv(t,e){switch(e){case 2:return new Map(t);case 3:return Array.from(t)}return Gf(t)}function ZI(){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[ae];return ko.get(c,o)},set:function(c){var u=this[ae];ko.set(u,o,c)}},s}function e(o){for(var a=o.length-1;a>=0;a--){var s=o[a][ae];if(!s.P)switch(s.i){case 5:r(s)&&vn(s);break;case 4:n(s)&&vn(s)}}}function n(o){for(var a=o.t,s=o.k,c=ni(s),u=c.length-1;u>=0;u--){var f=c[u];if(f!==ae){var l=a[f];if(l===void 0&&!ti(a,f))return!0;var d=s[f],h=d&&d[ae];if(h?h.t!==l:!ev(d,l))return!0}}var p=!!a[ae];return c.length!==ni(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={};_I("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=uv(l);delete p[ae];for(var m=ni(p),g=0;g<m.length;g++){var y=m[g];p[y]=t(y,f||!!p[y].enumerable)}return Object.create(Object.getPrototypeOf(l),p)}(s,o),u={i:s?5:4,A:a?a.A:Vf(),P:!1,I:!1,D:{},l:a,t:o,k:c,o:null,O:!1,C:!1};return Object.defineProperty(c,ae,{value:u,writable:!0}),c},S:function(o,a,s){s?yn(a)&&a[ae].A===o&&e(o.p):(o.u&&function c(u){if(u&&typeof u=="object"){var f=u[ae];if(f){var l=f.t,d=f.k,h=f.D,p=f.i;if(p===4)dr(d,function(w){w!==ae&&(l[w]!==void 0||ti(l,w)?h[w]||c(d[w]):(h[w]=!0,vn(f)))}),dr(l,function(w){d[w]!==void 0||ti(d,w)||(h[w]=!1,vn(f))});else if(p===5){if(r(f)&&(vn(f),h.length=!0),d.length<l.length)for(var m=d.length;m<l.length;m++)h[m]=!1;else for(var g=l.length;g<d.length;g++)h[g]=!0;for(var y=Math.min(d.length,l.length),b=0;b<y;b++)d.hasOwnProperty(b)||(h[b]=!0),h[b]===void 0&&c(d[b])}}}}(o.p[0]),e(o.p))},K:function(o){return o.i===4?n(o):r(o)}})}var ov,Io,Kf=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",qI=typeof Map<"u",KI=typeof Set<"u",av=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",sv=Kf?Symbol.for("immer-nothing"):((ov={})["immer-nothing"]=!0,ov),cv=Kf?Symbol.for("immer-draftable"):"__$immer_draftable",ae=Kf?Symbol.for("immer-state"):"__$immer_state",JI=""+Object.prototype.constructor,ni=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Object.getOwnPropertyNames,uv=Object.getOwnPropertyDescriptors||function(t){var e={};return ni(t).forEach(function(n){e[n]=Object.getOwnPropertyDescriptor(t,n)}),e},Jf={},ko={get:function(t,e){if(e===ae)return t;var n=hr(t);if(!ti(n,e))return function(i,o,a){var s,c=rv(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||!Gt(r)?r:r===Xf(t.t,e)?(Zf(t),t.o[e]=qf(t.A.h,r,t)):r},has:function(t,e){return e in hr(t)},ownKeys:function(t){return Reflect.ownKeys(hr(t))},set:function(t,e,n){var r=rv(hr(t),e);if(r!=null&&r.set)return r.set.call(t.k,n),!0;if(!t.P){var i=Xf(hr(t),e),o=i==null?void 0:i[ae];if(o&&o.t===n)return t.o[e]=n,t.D[e]=!1,!0;if(ev(n,i)&&(n!==void 0||ti(t.t,e)))return!0;Zf(t),vn(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 Xf(t.t,e)!==void 0||e in t.t?(t.D[e]=!1,Zf(t),vn(t)):delete t.D[e],t.o&&delete t.o[e],!0},getOwnPropertyDescriptor:function(t,e){var n=hr(t),r=Reflect.getOwnPropertyDescriptor(n,e);return r&&{writable:!0,configurable:t.i!==1||e!=="length",enumerable:r.enumerable,value:n[e]}},defineProperty:function(){lt(11)},getPrototypeOf:function(t){return Object.getPrototypeOf(t.t)},setPrototypeOf:function(){lt(12)}},No={};dr(ko,function(t,e){No[t]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}}),No.deleteProperty=function(t,e){return No.set.call(this,t,e,void 0)},No.set=function(t,e,n){return ko.set.call(this,t[0],e,n,t[0])};var $I=function(){function t(n){var r=this;this.g=av,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 g=this;m===void 0&&(m=s);for(var y=arguments.length,b=Array(y>1?y-1:0),w=1;w<y;w++)b[w-1]=arguments[w];return c.produce(m,function(C){var x;return(x=o).call.apply(x,[g,C].concat(b))})}}var u;if(typeof o!="function"&&lt(6),a!==void 0&&typeof a!="function"&&lt(7),Gt(i)){var f=tv(r),l=qf(r,i,void 0),d=!0;try{u=o(l),d=!1}finally{d?Us(f):_f(f)}return typeof Promise<"u"&&u instanceof Promise?u.then(function(m){return Yf(f,a),Wf(m,f)},function(m){throw Us(f),m}):(Yf(f,a),Wf(u,f))}if(!i||typeof i!="object"){if((u=o(i))===void 0&&(u=i),u===sv&&(u=void 0),r.F&&Hf(u,!0),a){var h=[],p=[];wt("Patches").M(i,u,h,p),a(h,p)}return u}lt(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){Gt(n)||lt(8),yn(n)&&(n=XI(n));var r=tv(this),i=qf(this,n,void 0);return i[ae].C=!0,_f(r),i},e.finishDraft=function(n,r){var i=n&&n[ae],o=i.A;return Yf(o,r),Wf(void 0,o)},e.setAutoFreeze=function(n){this.F=n},e.setUseProxies=function(n){n&&!av&&lt(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 $I,lv=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 e9(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function fv(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 dv(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?fv(Object(n),!0).forEach(function(r){e9(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):fv(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 hv=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}(),$f=function(){return Math.random().toString(36).substring(7).split("").join(".")},Qs={INIT:"@@redux/INIT"+$f(),REPLACE:"@@redux/REPLACE"+$f(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+$f()}};function t9(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 pv(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(pv)(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 g=!0;return u(),s.push(m),function(){if(g){if(c)throw new Error(Ee(6));g=!1,u();var b=s.indexOf(m);s.splice(b,1),a=null}}}function d(m){if(!t9(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 g=a=s,y=0;y<g.length;y++){var b=g[y];b()}return m}function h(m){if(typeof m!="function")throw new Error(Ee(10));i=m,d({type:Qs.REPLACE})}function p(){var m,g=l;return m={subscribe:function(b){if(typeof b!="object"||b===null)throw new Error(Ee(11));function w(){b.next&&b.next(f())}w();var C=g(w);return{unsubscribe:C}}},m[hv]=function(){return this},m}return d({type:Qs.INIT}),r={dispatch:d,subscribe:l,getState:f,replaceReducer:h},r[hv]=p,r}function n9(t){Object.keys(t).forEach(function(e){var n=t[e],r=n(void 0,{type:Qs.INIT});if(typeof r>"u")throw new Error(Ee(12));if(typeof n(void 0,{type:Qs.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(Ee(13))})}function ed(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{n9(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],g=p(m,u);if(typeof g>"u")throw u&&u.type,new Error(Ee(14));l[h]=g,f=f||g!==m}return f=f||o.length!==Object.keys(c).length,f?l:c}}function Vs(){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 r9(){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=Vs.apply(void 0,s)(i.dispatch),dv(dv({},i),{},{dispatch:o})}}}var Ys="NOT_FOUND";function i9(t){var e;return{get:function(r){return e&&t(e.key,r)?e.value:Ys},put:function(r,i){e={key:r,value:i}},getEntries:function(){return e?[e]:[]},clear:function(){e=void 0}}}function o9(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 Ys}function i(s,c){r(s)===Ys&&(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 a9=function(e,n){return e===n};function s9(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 c9(t,e){var n=typeof e=="object"?e:{equalityCheck:e},r=n.equalityCheck,i=r===void 0?a9:r,o=n.maxSize,a=o===void 0?1:o,s=n.resultEqualityCheck,c=s9(i),u=a===1?i9(c):o9(a,c);function f(){var l=u.get(arguments);if(l===Ys){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 u9(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 l9(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,g=Array.isArray(m)?m:[m],y=u9(s),b=t.apply(void 0,[function(){return u++,d.apply(null,arguments)}].concat(g)),w=t(function(){for(var C=[],x=y.length,v=0;v<x;v++)C.push(y[v].apply(null,arguments));return f=b.apply(null,C),f});return Object.assign(w,{resultFunc:d,memoizedResultFunc:b,dependencies:y,lastResult:function(){return f},recomputations:function(){return u},resetRecomputations:function(){return u=0}}),w};return i}var f9=l9(c9);function mv(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 gv=mv();gv.withExtraArgument=mv;const yv=gv;var d9=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 _s=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},h9=Object.defineProperty,vv=Object.getOwnPropertySymbols,p9=Object.prototype.hasOwnProperty,m9=Object.prototype.propertyIsEnumerable,bv=function(t,e,n){return e in t?h9(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n},Lo=function(t,e){for(var n in e||(e={}))p9.call(e,n)&&bv(t,n,e[n]);if(vv)for(var r=0,i=vv(e);r<i.length;r++){var n=i[r];m9.call(e,n)&&bv(t,n,e[n])}return t},g9=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?Vs:Vs.apply(null,arguments)};function y9(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 v9=function(t){d9(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,_s([void 0],n[0].concat(this)))):new(e.bind.apply(e,_s([void 0],n.concat(this))))},e}(Array);function td(t){return Gt(t)?lv(t,function(){}):t}function b9(t){return typeof t=="boolean"}function A9(){return function(e){return x9(e)}}function x9(t){t===void 0&&(t={});var e=t.thunk,n=e===void 0?!0:e;t.immutableCheck,t.serializableCheck;var r=new v9;return n&&(b9(n)?r.push(yv):r.push(yv.withExtraArgument(n.extraArgument))),r}var w9=!0;function C9(t){var e=A9(),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(y9(i))h=ed(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=r9.apply(void 0,p),g=Vs;c&&(g=g9(Lo({trace:!w9},typeof c=="object"&&c)));var y=[m];Array.isArray(d)?y=_s([m],d):typeof d=="function"&&(y=d(y));var b=g.apply(void 0,y);return pv(h,f,b)}function Bo(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 Lo(Lo({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 Av(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 E9(t,e,n,r){n===void 0&&(n=[]);var i=typeof e=="function"?Av(e):[e,n,r],o=i[0],a=i[1],s=i[2],c;if(S9(t))c=function(){return td(t())};else{var u=td(t);c=function(){return u}}function f(l,d){l===void 0&&(l=c());var h=_s([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 g=p,y=m(g,d);return typeof y>"u"?p:y}else{if(Gt(p))return lv(p,function(b){return m(b,d)});var y=m(p,d);if(typeof y>"u"){if(p===null)return p;throw Error("A case reducer on a non-draftable value must not return undefined")}return y}return p},l)}return f.getInitialState=c,f}function D9(t,e){return t+"/"+e}function xv(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:td(t.initialState),r=t.reducers||{},i=Object.keys(r),o={},a={},s={};i.forEach(function(f){var l=r[f],d=D9(e,f),h,p;"reducer"in l?(h=l.reducer,p=l.prepare):h=l,o[f]=h,a[d]=h,s[f]=p?Bo(d,p):Bo(d)});function c(){var f=typeof t.extraReducers=="function"?Av(t.extraReducers):[t.extraReducers],l=f[0],d=l===void 0?{}:l,h=f[1],p=h===void 0?[]:h,m=f[2],g=m===void 0?void 0:m,y=Lo(Lo({},d),a);return E9(n,y,p,g)}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 nd="listenerMiddleware";Bo(nd+"/add"),Bo(nd+"/removeAll"),Bo(nd+"/remove"),ZI();function M9(t,e){var n=t+"",r=e+"";return n<r?-1:n==r?0:1}var T9=[].forEach;function I9(t,e,n){if(typeof e!="function")throw new TypeError(e+" is not a function");var r,i=[],o=[],a=[];T9.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 k9(t,e){const n=i=>i.copy().range(Wt(0,i.domain().length)).unknown(-1);let r;switch(e.type){case"quantitative":r=i=>le(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 N9(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 L9(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 B9(t,e,n=!1){return I9(t,e,(r,i)=>(n&&([r,i]=[i,r]),r<i?-1:r>i?1:0))}const O9={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 F9(t,e,n,r){const i=O9[n];return t.filter(o=>i(e(o),r))}function wv(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 P9(t,e){const n=r=>r!=null;return t.filter(r=>n(e(r)))}/**
2345
+ */const WC=(e,t,n)=>{const r=new Map;for(let i=t;i<=n;i++)r.set(e[i],i);return r},EV=Ya(class extends ys{constructor(e){if(super(e),e.type!==cr.CHILD)throw Error("repeat() can only be used in text expressions")}ht(e,t,n){let r;n===void 0?n=t:t!==void 0&&(r=t);const i=[],a=[];let o=0;for(const s of e)i[o]=r?r(s,o):o,a[o]=n(s,o),o++;return{values:a,keys:i}}render(e,t,n){return this.ht(e,t,n).values}update(e,[t,n,r]){var i;const a=AV(e),{values:o,keys:s}=this.ht(t,n,r);if(!Array.isArray(a))return this.ut=s,o;const l=(i=this.ut)!==null&&i!==void 0?i:this.ut=[],c=[];let u,f,h=0,d=a.length-1,p=0,g=o.length-1;for(;h<=d&&p<=g;)if(a[h]===null)h++;else if(a[d]===null)d--;else if(l[h]===s[p])c[p]=Xa(a[h],o[p]),h++,p++;else if(l[d]===s[g])c[g]=Xa(a[d],o[g]),d--,g--;else if(l[h]===s[g])c[g]=Xa(a[h],o[g]),zl(e,c[g+1],a[h]),h++,g--;else if(l[d]===s[p])c[p]=Xa(a[d],o[p]),zl(e,a[h],a[d]),d--,p++;else if(u===void 0&&(u=WC(s,p,g),f=WC(l,h,d)),u.has(l[h]))if(u.has(l[d])){const y=f.get(s[p]),v=y!==void 0?a[y]:null;if(v===null){const S=zl(e,a[h]);Xa(S,o[p]),c[p]=S}else c[p]=Xa(v,o[p]),zl(e,a[h],v),a[y]=null;p++}else C1(a[d]),d--;else C1(a[h]),h++;for(;p<=g;){const y=zl(e,c[g+1]);Xa(y,o[p]),c[p++]=y}for(;h<=d;){const y=a[h++];y!==null&&C1(y)}return this.ut=s,qC(e,c),pt}}),XC="close-dialog";function SV(){return new CustomEvent(XC,{bubbles:!0})}function Ka(e="default",t=document.body){const n=document.createElement("div");n.classList.add("gs-modal"),e!="default"&&n.classList.add(e);const r=a=>{var o;switch(a.key){case"Escape":{const s=n.querySelector(".btn-cancel");s&&(s.click(),a.stopPropagation());break}case"Enter":{if(((o=a.target)==null?void 0:o.tagName)=="TEXTAREA")return;n.querySelector(".btn-primary").click(),a.stopPropagation();break}}};n.addEventListener("keydown",r),Bt(z`<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(ua)};return n.addEventListener("keydown",a=>{a.stopPropagation()}),n.addEventListener(XC,i),t.appendChild(n),window.requestAnimationFrame(()=>n.classList.add("visible")),e!="tour"&&document.body.classList.add(ua),{content:n.querySelector(".content"),close:i}}function Wt(e,t={}){const n=Ka(),r=t.title;return t.okLabel??(t.okLabel="OK"),new Promise((i,a)=>{const o=()=>{n.close(),i(!0)},s=z`${r?z`<div class="modal-title">${r}</div>`:ne}<div class="modal-body" style="max-width:700px">${e}</div><div class="modal-buttons">${t.cancelButton?z`<button class="btn" @click="${()=>{n.close(),i(!1)}}">Cancel</button>`:ne} <button class="btn" @click="${o}">${t.okLabel}</button></div>`;Bt(s,n.content)})}class KC extends sr{constructor(){super();Fe(this,ld);Fe(this,ud);Fe(this,au);Fe(this,fd);Fe(this,Fs,void 0);Fe(this,$r,void 0);Fe(this,zi,void 0);Fe(this,iu,0);this.values=[],this.thresholds=[],this.operators=[],this.colors=JC,this.showThresholdNumbers=!1,Sn(this,Fs,gk().thresholds(40)),Sn(this,$r,ce(this,Fs).call(this,[])),Sn(this,zi,Gu())}connectedCallback(){super.connectedCallback()}createRenderRoot(){return this}willUpdate(n){n.has("values")&&(Sn(this,$r,ce(this,Fs).call(this,this.values)),Sn(this,zi,Gu().domain(this.domain).range([0,100])))}get domain(){return[ce(this,$r).at(0).x0,ce(this,$r).at(-1).x1]}render(){const n=ce(this,zi),r=100/ce(this,$r).length,i=Ze(this,fd,m_).call(this).map(a=>z`<div style="${S1({width:r+.01+"%",left:a.x+"%",bottom:a.y+"%",height:a.height+"%",backgroundColor:typeof a.group=="number"?this.colors[a.group%this.colors.length]:"default"})}"></div>`);return z`<div class="histogram-widget"><div class="histogram-plot"><div class="histogram-bars">${i}</div><div class="histogram-thresholds" @click="${Ze(this,ld,p_)}">${this.thresholds.map((a,o)=>{const s=n(a);return s>=0&&s<=100?z`<div class="histogram-threshold" style="${S1({left:n(a)+"%"})}"><div class="histogram-knob" @mousedown="${l=>Ze(this,ud,g_).call(this,l,o)}">${this.showThresholdNumbers?o+1:ne}</div></div>`:ne})}</div><div class="${Zm({"histogram-hint":!0,visible:!this.thresholds.length})}"><span>Click here to add a threshold!</span></div></div><div class="histogram-domain"></div><div class="histogram-extent">${n.domain().map(a=>z`<div>${a}</div>`)}</div></div>`}}Fs=new WeakMap,$r=new WeakMap,zi=new WeakMap,iu=new WeakMap,ld=new WeakSet,p_=function(n){if(performance.now()<ce(this,iu)+200)return;const r=n.target,i=sv(r,n);Ze(this,au,Nb).call(this,"add",0,i[0]/r.offsetWidth)},ud=new WeakSet,g_=function(n,r){const a=n.target.closest(".histogram-threshold"),o=a.offsetLeft,s=a.offsetParent.offsetWidth;n.preventDefault(),n.stopPropagation(),this.style.cursor="col-resize",_V(n,(l,c)=>{Ze(this,au,Nb).call(this,"adjust",r,(o+l)/s)},()=>{Sn(this,iu,performance.now()),this.style.cursor=""})},au=new WeakSet,Nb=function(n,r,i){i=Df(i,0,1),this.dispatchEvent(new CV(n,r,+ce(this,zi).invert(i*100).toPrecision(3)))},fd=new WeakSet,m_=function(){const n=ce(this,$r),r=ce(this,zi),i=90/n.map(u=>u.length).reduce((u,f)=>Math.max(u,f),0),a=[],o=this.thresholds.length==1&&this.operators[0]=="eq",s=[-1/0,...this.thresholds,1/0],l=[!1,...this.operators.map(u=>["lte","gt"].includes(u)),!0],c=["gt","gte"].includes(this.operators[0])?u=>s.length-u-2:u=>u;for(let u=0;u<n.length;u++){const f=n[u],h=r(f.x0);let d=0,p=0;if(o)for(let g=0;g<=1;g++)p=DV(f,this.thresholds[0],g>0),p&&a.push({x:h,y:d*i,height:p*i,group:g}),d+=p;else if(this.thresholds.length)for(let g=0;g<s.length-1;g++){const y=c(g);p=kV(f,s[y],s[y+1],!l[y],l[y+1]),p&&a.push({x:h,y:d*i,height:p*i,group:g}),d+=p}else p=f.length,p&&a.push({x:h,y:d,height:p*i,group:null})}return a},En(KC,"properties",{values:{attribute:!1},thresholds:{attribute:!1},operators:{attribute:!1},colors:{attribute:!1},showThresholdNumbers:{}}),customElements.define("genome-spy-histogram",KC);class CV extends Event{constructor(t,n,r){super(t),this.index=n,this.value=r}}function _V(e,t,n){const r=e.clientX,i=e.clientY,a=function(s){t(s.clientX-r,s.clientY-i)},o=function(s){document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",o),n==null||n(s.clientX-r,s.clientY-i)};document.addEventListener("mousemove",a),document.addEventListener("mouseup",o)}function kV(e,t,n,r=!0,i=!1){const a=r?l=>l>=t:l=>l>t,o=i?l=>l<=n:l=>l<n;let s=0;for(let l=0;l<e.length;l++){const c=e[l];a(c)&&o(c)&&s++}return s}function DV(e,t,n=!1){let r=0;for(let i=0;i<e.length;i++)r+=+(e[i]==t);return n?e.length-r:r}const JC=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b"];function IV(e,t){var r;const n=(r=e.scale)==null?void 0:r.type;ai(n)?MV(e,t):Ft(n)||sa(n)?NV(e,t):e.type==="identifier"?TV(e,t):Wt("Not implemented (yet).")}function TV(e,t){e6(t.getSamples().map(n=>n.id),e,t)}function MV(e,t){const n=e.scale,r=i=>z`<span class="color" style="${S1({backgroundColor:n(i).toString()})}"></span>`;e6(n.domain(),e,t,r)}function e6(e,t,n,r=i=>ne){const i=n.provenance.storeHelper.getDispatcher(),a=new Set(t6(t,n.leafSamples,n.sampleHierarchy)),o=e.filter(C=>a.has(C)).map((C,E)=>({index:E,value:C,stringValue:`${C}`,lowerCaseValue:`${C}`.toLowerCase()})),s=Ka(),l=z`<div class="modal-title">Filter by <em>${t.name}</em></div>`,c=new Set;let u="";const f=C=>{i(n.actions.filterByNominal({values:e.filter(E=>c.has(E)),attribute:t.attribute,remove:C})),s.close()},h=()=>o.filter(C=>u.length==0||C.lowerCaseValue.includes(u)),d=C=>{u=C.target.value.toLowerCase(),k()},p=C=>{const E=C.target,w=o[+E.value].value;E.checked?c.add(w):c.delete(w),k()},g=C=>{var E;if(C.key=="ArrowDown")(E=s.content.querySelector(".gs-checkbox-list li:first-child input[type='checkbox']"))==null||E.focus(),C.preventDefault(),C.stopPropagation();else if(C.key=="Enter"){const w=h();w.length==1&&(c.add(w[0].value),k()),C.stopPropagation()}},y=()=>{s.content.querySelector("input[type='text']").focus()},v=C=>{var w,A,T,D,M;const E=C.target;if(E.type=="checkbox")if(C.key=="ArrowDown")(A=(w=E.closest("li").nextElementSibling)==null?void 0:w.querySelector("input[type='checkbox']"))==null||A.focus(),C.preventDefault();else if(C.key=="ArrowUp"){const F=(T=E.closest("li").previousElementSibling)==null?void 0:T.querySelector("input[type='checkbox']");F?F.focus():y(),C.preventDefault()}else C.key=="Esc"?(y(),C.stopPropagation()):C.key=="Tab"&&!C.shiftKey?(D=E.closest(".gs-checkbox-list").querySelector("li:last-child input"))==null||D.focus():C.key=="Tab"&&C.shiftKey&&((M=E.closest(".gs-checkbox-list").querySelector("li:first-child input"))==null||M.focus())},S=()=>z`<div class="modal-buttons"><button class="btn btn-cancel" @click="${()=>s.close()}">Cancel</button> <button class="btn" ?disabled="${!c.size}" @click="${()=>f(!1)}">${ke(Qa).node[0]} Retain</button> <button class="btn" ?disabled="${!c.size}" @click="${()=>f(!0)}">${ke(kh).node[0]} Remove</button></div>`;function k(){const C=h(),E=z`<div class="gs-form-group"><p>Please select one or more categories and choose an action.</p><input type="text" placeholder="Type something to filter the list" @keydown="${g}" @input="${d}"><div class="gs-checkbox-list-wrapper"><ul class="gs-checkbox-list" @input="${p}" @keydown="${v}">${EV(C,A=>A.value,A=>z`<li><label class="checkbox">${r(A.value)} <input type="checkbox" .checked="${c.has(A.value)}" .value="${""+A.index}"> ${A.stringValue}</label></li>`)}</ul>${C.length==0?z`<div class="search-note"><div>Nothing found</div></div>`:C.length==1&&o.length>1?z`<div class="search-note"><div>${ke(pG).node[0]} Hit enter to select the exact match</div></div>`:ne}</div><small>The number of selected categories: <strong>${c.size}</strong></small></div>`;Bt(z`${l}<div class="modal-body">${E}</div>${S()}`,s.content);const w=s.content.querySelector(".gs-checkbox-list");w.style.minHeight=`${w.offsetHeight}px`}k(),y()}function NV(e,t){var y;const n=t.provenance.storeHelper.getDispatcher();let r="lt",i;const a=Ka(),o=z`<div class="modal-title">Filter by <em>${e.name}</em></div>`,s=v=>{n(t.actions.filterByQuantitative({attribute:e.attribute,operator:r,operand:i})),a.close()},l=()=>z`<div class="modal-buttons"><button class="btn btn-cancel" @click="${()=>a.close()}">Cancel</button> <button class="btn btn-primary" ?disabled="${typeof i>"u"}" @click="${()=>s()}">${ke(Qa).node[0]} Retain</button></div>`,c=v=>{r=v.target.value,g()},u=v=>{const k=v.target.value;/^\d+(\.(\d+)?)?$/.test(k)&&(i=+k,g())},f=v=>{typeof i!="number"&&(i=v.value,g())},h=v=>{i=v.value,g()},d=t6(e,t.leafSamples,t.sampleHierarchy),p=()=>z`<div class="gs-form-group"><label>Retain samples where <em>${e.name}</em> is</label><div class="btn-group" role="group">${Object.entries(FV).map(([v,S])=>z`<button class="${Zm({btn:!0,chosen:v==r})}" .value="${v}" @click="${c}" title="${S[1]}">${S[0]}</button>`)}</div><genome-spy-histogram .values="${d}" .thresholds="${[i].filter(v=>v!==void 0)}" .operators="${[r]}" .colors="${["#1f77b4","#ddd"]}" .showThresholdNumbers="${!1}" @add="${f}" @adjust="${h}"></genome-spy-histogram><input type="text" placeholder="... or enter a numeric value here" .value="${typeof i=="number"?""+i:""}" @input="${u}"></div>`;function g(){Bt(z`${o}<div class="modal-body">${p()}</div>${l()}`,a.content)}g(),(y=a.content.querySelector("input[type='text']"))==null||y.focus()}const FV={lt:["<","less than"],lte:["≤","less than or equal to"],eq:["=","equal to"],gte:["≥","greater than or equal to"],gt:[">","greater than"]};function t6(e,t,n){const r=e.accessor;return t.map(i=>r(i,n))}function Un(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];throw Error("[Immer] minified error nr: "+e+(n.length?" "+n.map(function(i){return"'"+i+"'"}).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function Bi(e){return!!e&&!!e[Ge]}function Pr(e){return!!e&&(function(t){if(!t||typeof t!="object")return!1;var n=Object.getPrototypeOf(t);if(n===null)return!0;var r=Object.hasOwnProperty.call(n,"constructor")&&n.constructor;return r===Object||typeof r=="function"&&Function.toString.call(r)===HV}(e)||Array.isArray(e)||!!e[f6]||!!e.constructor[f6]||_1(e)||k1(e))}function Ja(e,t,n){n===void 0&&(n=!1),Es(e)===0?(n?Object.keys:Cs)(e).forEach(function(r){n&&typeof r=="symbol"||t(r,e[r],e)}):e.forEach(function(r,i){return t(i,r,e)})}function Es(e){var t=e[Ge];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:_1(e)?2:k1(e)?3:0}function Ss(e,t){return Es(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function BV(e,t){return Es(e)===2?e.get(t):e[t]}function n6(e,t,n){var r=Es(e);r===2?e.set(t,n):r===3?(e.delete(t),e.add(n)):e[t]=n}function r6(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function _1(e){return UV&&e instanceof Map}function k1(e){return jV&&e instanceof Set}function eo(e){return e.o||e.t}function D1(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=h6(e);delete t[Ge];for(var n=Cs(t),r=0;r<n.length;r++){var i=n[r],a=t[i];a.writable===!1&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[i]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[i]})}return Object.create(Object.getPrototypeOf(e),t)}function I1(e,t){return t===void 0&&(t=!1),T1(e)||Bi(e)||!Pr(e)||(Es(e)>1&&(e.set=e.add=e.clear=e.delete=LV),Object.freeze(e),t&&Ja(e,function(n,r){return I1(r,!0)},!0)),e}function LV(){Un(2)}function T1(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function ur(e){var t=P1[e];return t||Un(18,e),t}function OV(e,t){P1[e]||(P1[e]=t)}function M1(){return Pl}function N1(e,t){t&&(ur("Patches"),e.u=[],e.s=[],e.v=t)}function jh(e){F1(e),e.p.forEach(RV),e.p=null}function F1(e){e===Pl&&(Pl=e.l)}function i6(e){return Pl={p:[],l:Pl,h:e,m:!0,_:0}}function RV(e){var t=e[Ge];t.i===0||t.i===1?t.j():t.O=!0}function B1(e,t){t._=t.p.length;var n=t.p[0],r=e!==void 0&&e!==n;return t.h.g||ur("ES5").S(t,e,r),r?(n[Ge].P&&(jh(t),Un(4)),Pr(e)&&(e=Hh(t,e),t.l||Gh(t,e)),t.u&&ur("Patches").M(n[Ge].t,e,t.u,t.s)):e=Hh(t,n,[]),jh(t),t.u&&t.v(t.u,t.s),e!==u6?e:void 0}function Hh(e,t,n){if(T1(t))return t;var r=t[Ge];if(!r)return Ja(t,function(a,o){return a6(e,r,t,a,o,n)},!0),t;if(r.A!==e)return t;if(!r.P)return Gh(e,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var i=r.i===4||r.i===5?r.o=D1(r.k):r.o;Ja(r.i===3?new Set(i):i,function(a,o){return a6(e,r,i,a,o,n)}),Gh(e,i,!1),n&&e.u&&ur("Patches").R(r,n,e.u,e.s)}return r.o}function a6(e,t,n,r,i,a){if(Bi(i)){var o=Hh(e,i,a&&t&&t.i!==3&&!Ss(t.D,r)?a.concat(r):void 0);if(n6(n,r,o),!Bi(o))return;e.m=!1}if(Pr(i)&&!T1(i)){if(!e.h.F&&e._<1)return;Hh(e,i),t&&t.A.l||Gh(e,i)}}function Gh(e,t,n){n===void 0&&(n=!1),e.h.F&&e.m&&I1(t,n)}function L1(e,t){var n=e[Ge];return(n?eo(n):e)[t]}function o6(e,t){if(t in e)for(var n=Object.getPrototypeOf(e);n;){var r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Object.getPrototypeOf(n)}}function Li(e){e.P||(e.P=!0,e.l&&Li(e.l))}function O1(e){e.o||(e.o=D1(e.t))}function R1(e,t,n){var r=_1(t)?ur("MapSet").N(t,n):k1(t)?ur("MapSet").T(t,n):e.g?function(i,a){var o=Array.isArray(i),s={i:o?1:0,A:a?a.A:M1(),P:!1,I:!1,D:{},l:a,t:i,k:null,o:null,j:null,C:!1},l=s,c=Ul;o&&(l=[s],c=jl);var u=Proxy.revocable(l,c),f=u.revoke,h=u.proxy;return s.k=h,s.j=f,h}(t,n):ur("ES5").J(t,n);return(n?n.A:M1()).p.push(r),r}function zV(e){return Bi(e)||Un(22,e),function t(n){if(!Pr(n))return n;var r,i=n[Ge],a=Es(n);if(i){if(!i.P&&(i.i<4||!ur("ES5").K(i)))return i.t;i.I=!0,r=s6(n,a),i.I=!1}else r=s6(n,a);return Ja(r,function(o,s){i&&BV(i.t,o)===s||n6(r,o,t(s))}),a===3?new Set(r):r}(e)}function s6(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return D1(e)}function PV(){function e(a,o){var s=i[a];return s?s.enumerable=o:i[a]=s={configurable:!0,enumerable:o,get:function(){var l=this[Ge];return Ul.get(l,a)},set:function(l){var c=this[Ge];Ul.set(c,a,l)}},s}function t(a){for(var o=a.length-1;o>=0;o--){var s=a[o][Ge];if(!s.P)switch(s.i){case 5:r(s)&&Li(s);break;case 4:n(s)&&Li(s)}}}function n(a){for(var o=a.t,s=a.k,l=Cs(s),c=l.length-1;c>=0;c--){var u=l[c];if(u!==Ge){var f=o[u];if(f===void 0&&!Ss(o,u))return!0;var h=s[u],d=h&&h[Ge];if(d?d.t!==f:!r6(h,f))return!0}}var p=!!o[Ge];return l.length!==Cs(o).length+(p?0:1)}function r(a){var o=a.k;if(o.length!==a.t.length)return!0;var s=Object.getOwnPropertyDescriptor(o,o.length-1);if(s&&!s.get)return!0;for(var l=0;l<o.length;l++)if(!o.hasOwnProperty(l))return!0;return!1}var i={};OV("ES5",{J:function(a,o){var s=Array.isArray(a),l=function(u,f){if(u){for(var h=Array(f.length),d=0;d<f.length;d++)Object.defineProperty(h,""+d,e(d,!0));return h}var p=h6(f);delete p[Ge];for(var g=Cs(p),y=0;y<g.length;y++){var v=g[y];p[v]=e(v,u||!!p[v].enumerable)}return Object.create(Object.getPrototypeOf(f),p)}(s,a),c={i:s?5:4,A:o?o.A:M1(),P:!1,I:!1,D:{},l:o,t:a,k:l,o:null,O:!1,C:!1};return Object.defineProperty(l,Ge,{value:c,writable:!0}),l},S:function(a,o,s){s?Bi(o)&&o[Ge].A===a&&t(a.p):(a.u&&function l(c){if(c&&typeof c=="object"){var u=c[Ge];if(u){var f=u.t,h=u.k,d=u.D,p=u.i;if(p===4)Ja(h,function(k){k!==Ge&&(f[k]!==void 0||Ss(f,k)?d[k]||l(h[k]):(d[k]=!0,Li(u)))}),Ja(f,function(k){h[k]!==void 0||Ss(h,k)||(d[k]=!1,Li(u))});else if(p===5){if(r(u)&&(Li(u),d.length=!0),h.length<f.length)for(var g=h.length;g<f.length;g++)d[g]=!1;else for(var y=f.length;y<h.length;y++)d[y]=!0;for(var v=Math.min(h.length,f.length),S=0;S<v;S++)h.hasOwnProperty(S)||(d[S]=!0),d[S]===void 0&&l(h[S])}}}}(a.p[0]),t(a.p))},K:function(a){return a.i===4?n(a):r(a)}})}var c6,Pl,z1=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",UV=typeof Map<"u",jV=typeof Set<"u",l6=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",u6=z1?Symbol.for("immer-nothing"):((c6={})["immer-nothing"]=!0,c6),f6=z1?Symbol.for("immer-draftable"):"__$immer_draftable",Ge=z1?Symbol.for("immer-state"):"__$immer_state",HV=""+Object.prototype.constructor,Cs=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,h6=Object.getOwnPropertyDescriptors||function(e){var t={};return Cs(e).forEach(function(n){t[n]=Object.getOwnPropertyDescriptor(e,n)}),t},P1={},Ul={get:function(e,t){if(t===Ge)return e;var n=eo(e);if(!Ss(n,t))return function(i,a,o){var s,l=o6(a,o);return l?"value"in l?l.value:(s=l.get)===null||s===void 0?void 0:s.call(i.k):void 0}(e,n,t);var r=n[t];return e.I||!Pr(r)?r:r===L1(e.t,t)?(O1(e),e.o[t]=R1(e.A.h,r,e)):r},has:function(e,t){return t in eo(e)},ownKeys:function(e){return Reflect.ownKeys(eo(e))},set:function(e,t,n){var r=o6(eo(e),t);if(r!=null&&r.set)return r.set.call(e.k,n),!0;if(!e.P){var i=L1(eo(e),t),a=i==null?void 0:i[Ge];if(a&&a.t===n)return e.o[t]=n,e.D[t]=!1,!0;if(r6(n,i)&&(n!==void 0||Ss(e.t,t)))return!0;O1(e),Li(e)}return e.o[t]===n&&typeof n!="number"&&(n!==void 0||t in e.o)||(e.o[t]=n,e.D[t]=!0,!0)},deleteProperty:function(e,t){return L1(e.t,t)!==void 0||t in e.t?(e.D[t]=!1,O1(e),Li(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var n=eo(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},defineProperty:function(){Un(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){Un(12)}},jl={};Ja(Ul,function(e,t){jl[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),jl.deleteProperty=function(e,t){return jl.set.call(this,e,t,void 0)},jl.set=function(e,t,n){return Ul.set.call(this,e[0],t,n,e[0])};var GV=function(){function e(n){var r=this;this.g=l6,this.F=!0,this.produce=function(i,a,o){if(typeof i=="function"&&typeof a!="function"){var s=a;a=i;var l=r;return function(g){var y=this;g===void 0&&(g=s);for(var v=arguments.length,S=Array(v>1?v-1:0),k=1;k<v;k++)S[k-1]=arguments[k];return l.produce(g,function(C){var E;return(E=a).call.apply(E,[y,C].concat(S))})}}var c;if(typeof a!="function"&&Un(6),o!==void 0&&typeof o!="function"&&Un(7),Pr(i)){var u=i6(r),f=R1(r,i,void 0),h=!0;try{c=a(f),h=!1}finally{h?jh(u):F1(u)}return typeof Promise<"u"&&c instanceof Promise?c.then(function(g){return N1(u,o),B1(g,u)},function(g){throw jh(u),g}):(N1(u,o),B1(c,u))}if(!i||typeof i!="object"){if((c=a(i))===void 0&&(c=i),c===u6&&(c=void 0),r.F&&I1(c,!0),o){var d=[],p=[];ur("Patches").M(i,c,d,p),o(d,p)}return c}Un(21,i)},this.produceWithPatches=function(i,a){if(typeof i=="function")return function(c){for(var u=arguments.length,f=Array(u>1?u-1:0),h=1;h<u;h++)f[h-1]=arguments[h];return r.produceWithPatches(c,function(d){return i.apply(void 0,[d].concat(f))})};var o,s,l=r.produce(i,a,function(c,u){o=c,s=u});return typeof Promise<"u"&&l instanceof Promise?l.then(function(c){return[c,o,s]}):[l,o,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 t=e.prototype;return t.createDraft=function(n){Pr(n)||Un(8),Bi(n)&&(n=zV(n));var r=i6(this),i=R1(this,n,void 0);return i[Ge].C=!0,F1(r),i},t.finishDraft=function(n,r){var i=n&&n[Ge],a=i.A;return N1(a,r),B1(void 0,a)},t.setAutoFreeze=function(n){this.F=n},t.setUseProxies=function(n){n&&!l6&&Un(20),this.g=n},t.applyPatches=function(n,r){var i;for(i=r.length-1;i>=0;i--){var a=r[i];if(a.path.length===0&&a.op==="replace"){n=a.value;break}}i>-1&&(r=r.slice(i+1));var o=ur("Patches").$;return Bi(n)?o(n,r):this.produce(n,function(s){return o(s,r)})},e}(),Xt=new GV,d6=Xt.produce;Xt.produceWithPatches.bind(Xt),Xt.setAutoFreeze.bind(Xt),Xt.setUseProxies.bind(Xt),Xt.applyPatches.bind(Xt),Xt.createDraft.bind(Xt),Xt.finishDraft.bind(Xt);function $V(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function g6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?p6(Object(n),!0).forEach(function(r){$V(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p6(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function St(e){return"Minified Redux error #"+e+"; visit https://redux.js.org/Errors?code="+e+" for the full message or use the non-minified dev environment for full errors. "}var m6=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}(),U1=function(){return Math.random().toString(36).substring(7).split("").join(".")},$h={INIT:"@@redux/INIT"+U1(),REPLACE:"@@redux/REPLACE"+U1(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+U1()}};function VV(e){if(typeof e!="object"||e===null)return!1;for(var t=e;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function b6(e,t,n){var r;if(typeof t=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(St(0));if(typeof t=="function"&&typeof n>"u"&&(n=t,t=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(St(1));return n(b6)(e,t)}if(typeof e!="function")throw new Error(St(2));var i=e,a=t,o=[],s=o,l=!1;function c(){s===o&&(s=o.slice())}function u(){if(l)throw new Error(St(3));return a}function f(g){if(typeof g!="function")throw new Error(St(4));if(l)throw new Error(St(5));var y=!0;return c(),s.push(g),function(){if(y){if(l)throw new Error(St(6));y=!1,c();var S=s.indexOf(g);s.splice(S,1),o=null}}}function h(g){if(!VV(g))throw new Error(St(7));if(typeof g.type>"u")throw new Error(St(8));if(l)throw new Error(St(9));try{l=!0,a=i(a,g)}finally{l=!1}for(var y=o=s,v=0;v<y.length;v++){var S=y[v];S()}return g}function d(g){if(typeof g!="function")throw new Error(St(10));i=g,h({type:$h.REPLACE})}function p(){var g,y=f;return g={subscribe:function(S){if(typeof S!="object"||S===null)throw new Error(St(11));function k(){S.next&&S.next(u())}k();var C=y(k);return{unsubscribe:C}}},g[m6]=function(){return this},g}return h({type:$h.INIT}),r={dispatch:h,subscribe:f,getState:u,replaceReducer:d},r[m6]=p,r}function YV(e){Object.keys(e).forEach(function(t){var n=e[t],r=n(void 0,{type:$h.INIT});if(typeof r>"u")throw new Error(St(12));if(typeof n(void 0,{type:$h.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(St(13))})}function j1(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var i=t[r];typeof e[i]=="function"&&(n[i]=e[i])}var a=Object.keys(n),o;try{YV(n)}catch(s){o=s}return function(l,c){if(l===void 0&&(l={}),o)throw o;for(var u=!1,f={},h=0;h<a.length;h++){var d=a[h],p=n[d],g=l[d],y=p(g,c);if(typeof y>"u")throw c&&c.type,new Error(St(14));f[d]=y,u=u||y!==g}return u=u||a.length!==Object.keys(l).length,u?f:l}}function Vh(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.length===0?function(r){return r}:t.length===1?t[0]:t.reduce(function(r,i){return function(){return r(i.apply(void 0,arguments))}})}function QV(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(r){return function(){var i=r.apply(void 0,arguments),a=function(){throw new Error(St(15))},o={getState:i.getState,dispatch:function(){return a.apply(void 0,arguments)}},s=t.map(function(l){return l(o)});return a=Vh.apply(void 0,s)(i.dispatch),g6(g6({},i),{},{dispatch:a})}}}var Yh="NOT_FOUND";function ZV(e){var t;return{get:function(r){return t&&e(t.key,r)?t.value:Yh},put:function(r,i){t={key:r,value:i}},getEntries:function(){return t?[t]:[]},clear:function(){t=void 0}}}function qV(e,t){var n=[];function r(s){var l=n.findIndex(function(u){return t(s,u.key)});if(l>-1){var c=n[l];return l>0&&(n.splice(l,1),n.unshift(c)),c.value}return Yh}function i(s,l){r(s)===Yh&&(n.unshift({key:s,value:l}),n.length>e&&n.pop())}function a(){return n}function o(){n=[]}return{get:r,put:i,getEntries:a,clear:o}}var WV=function(t,n){return t===n};function XV(e){return function(n,r){if(n===null||r===null||n.length!==r.length)return!1;for(var i=n.length,a=0;a<i;a++)if(!e(n[a],r[a]))return!1;return!0}}function KV(e,t){var n=typeof t=="object"?t:{equalityCheck:t},r=n.equalityCheck,i=r===void 0?WV:r,a=n.maxSize,o=a===void 0?1:a,s=n.resultEqualityCheck,l=XV(i),c=o===1?ZV(l):qV(o,l);function u(){var f=c.get(arguments);if(f===Yh){if(f=e.apply(null,arguments),s){var h=c.getEntries(),d=h.find(function(p){return s(p.value,f)});d&&(f=d.value)}c.put(arguments,f)}return f}return u.clearCache=function(){return c.clear()},u}function JV(e){var t=Array.isArray(e[0])?e[0]:e;if(!t.every(function(r){return typeof r=="function"})){var n=t.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 t}function eY(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=function(){for(var o=arguments.length,s=new Array(o),l=0;l<o;l++)s[l]=arguments[l];var c=0,u,f={memoizeOptions:void 0},h=s.pop();if(typeof h=="object"&&(f=h,h=s.pop()),typeof h!="function")throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof h+"]");var d=f,p=d.memoizeOptions,g=p===void 0?n:p,y=Array.isArray(g)?g:[g],v=JV(s),S=e.apply(void 0,[function(){return c++,h.apply(null,arguments)}].concat(y)),k=e(function(){for(var C=[],E=v.length,w=0;w<E;w++)C.push(v[w].apply(null,arguments));return u=S.apply(null,C),u});return Object.assign(k,{resultFunc:h,memoizedResultFunc:S,dependencies:v,lastResult:function(){return u},recomputations:function(){return c},resetRecomputations:function(){return c=0}}),k};return i}var tY=eY(KV);function y6(e){var t=function(r){var i=r.dispatch,a=r.getState;return function(o){return function(s){return typeof s=="function"?s(i,a,e):o(s)}}};return t}var v6=y6();v6.withExtraArgument=y6;const w6=v6;var nY=globalThis&&globalThis.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(r[a]=i[a])},e(t,n)};return function(t,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}();globalThis&&globalThis.__generator;var Qh=globalThis&&globalThis.__spreadArray||function(e,t){for(var n=0,r=t.length,i=e.length;n<r;n++,i++)e[i]=t[n];return e},rY=Object.defineProperty,x6=Object.getOwnPropertySymbols,iY=Object.prototype.hasOwnProperty,aY=Object.prototype.propertyIsEnumerable,A6=function(e,t,n){return t in e?rY(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n},Hl=function(e,t){for(var n in t||(t={}))iY.call(t,n)&&A6(e,n,t[n]);if(x6)for(var r=0,i=x6(t);r<i.length;r++){var n=i[r];aY.call(t,n)&&A6(e,n,t[n])}return e},oY=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?Vh:Vh.apply(null,arguments)};function sY(e){if(typeof e!="object"||e===null)return!1;var t=Object.getPrototypeOf(e);if(t===null)return!0;for(var n=t;Object.getPrototypeOf(n)!==null;)n=Object.getPrototypeOf(n);return t===n}var cY=function(e){nY(t,e);function t(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var i=e.apply(this,n)||this;return Object.setPrototypeOf(i,t.prototype),i}return Object.defineProperty(t,Symbol.species,{get:function(){return t},enumerable:!1,configurable:!0}),t.prototype.concat=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return e.prototype.concat.apply(this,n)},t.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(t.bind.apply(t,Qh([void 0],n[0].concat(this)))):new(t.bind.apply(t,Qh([void 0],n.concat(this))))},t}(Array);function H1(e){return Pr(e)?d6(e,function(){}):e}function lY(e){return typeof e=="boolean"}function uY(){return function(t){return fY(t)}}function fY(e){e===void 0&&(e={});var t=e.thunk,n=t===void 0?!0:t;e.immutableCheck,e.serializableCheck;var r=new cY;return n&&(lY(n)?r.push(w6):r.push(w6.withExtraArgument(n.extraArgument))),r}var hY=!0;function dY(e){var t=uY(),n=e||{},r=n.reducer,i=r===void 0?void 0:r,a=n.middleware,o=a===void 0?t():a,s=n.devTools,l=s===void 0?!0:s,c=n.preloadedState,u=c===void 0?void 0:c,f=n.enhancers,h=f===void 0?void 0:f,d;if(typeof i=="function")d=i;else if(sY(i))d=j1(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=o;typeof p=="function"&&(p=p(t));var g=QV.apply(void 0,p),y=Vh;l&&(y=oY(Hl({trace:!hY},typeof l=="object"&&l)));var v=[g];Array.isArray(h)?v=Qh([g],h):typeof h=="function"&&(v=h(v));var S=y.apply(void 0,v);return b6(d,u,S)}function Gl(e,t){function n(){for(var r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];if(t){var a=t.apply(void 0,r);if(!a)throw new Error("prepareAction did not return an object");return Hl(Hl({type:e,payload:a.payload},"meta"in a&&{meta:a.meta}),"error"in a&&{error:a.error})}return{type:e,payload:r[0]}}return n.toString=function(){return""+e},n.type=e,n.match=function(r){return r.type===e},n}function E6(e){var t={},n=[],r,i={addCase:function(a,o){var s=typeof a=="string"?a:a.type;if(s in t)throw new Error("addCase cannot be called with two reducers for the same action type");return t[s]=o,i},addMatcher:function(a,o){return n.push({matcher:a,reducer:o}),i},addDefaultCase:function(a){return r=a,i}};return e(i),[t,n,r]}function pY(e){return typeof e=="function"}function gY(e,t,n,r){n===void 0&&(n=[]);var i=typeof t=="function"?E6(t):[t,n,r],a=i[0],o=i[1],s=i[2],l;if(pY(e))l=function(){return H1(e())};else{var c=H1(e);l=function(){return c}}function u(f,h){f===void 0&&(f=l());var d=Qh([a[h.type]],o.filter(function(p){var g=p.matcher;return g(h)}).map(function(p){var g=p.reducer;return g}));return d.filter(function(p){return!!p}).length===0&&(d=[s]),d.reduce(function(p,g){if(g)if(Bi(p)){var y=p,v=g(y,h);return typeof v>"u"?p:v}else{if(Pr(p))return d6(p,function(S){return g(S,h)});var v=g(p,h);if(typeof v>"u"){if(p===null)return p;throw Error("A case reducer on a non-draftable value must not return undefined")}return v}return p},f)}return u.getInitialState=l,u}function mY(e,t){return e+"/"+t}function S6(e){var t=e.name;if(!t)throw new Error("`name` is a required option for createSlice");typeof process<"u";var n=typeof e.initialState=="function"?e.initialState:H1(e.initialState),r=e.reducers||{},i=Object.keys(r),a={},o={},s={};i.forEach(function(u){var f=r[u],h=mY(t,u),d,p;"reducer"in f?(d=f.reducer,p=f.prepare):d=f,a[u]=d,o[h]=d,s[u]=p?Gl(h,p):Gl(h)});function l(){var u=typeof e.extraReducers=="function"?E6(e.extraReducers):[e.extraReducers],f=u[0],h=f===void 0?{}:f,d=u[1],p=d===void 0?[]:d,g=u[2],y=g===void 0?void 0:g,v=Hl(Hl({},h),o);return gY(n,v,p,y)}var c;return{name:t,reducer:function(u,f){return c||(c=l()),c(u,f)},actions:s,caseReducers:a,getInitialState:function(){return c||(c=l()),c.getInitialState()}}}var G1="listenerMiddleware";Gl(G1+"/add"),Gl(G1+"/removeAll"),Gl(G1+"/remove"),PV();function bY(e,t){var n=e+"",r=t+"";return n<r?-1:n==r?0:1}var yY=[].forEach;function vY(e,t,n){if(typeof t!="function")throw new TypeError(t+" is not a function");var r,i=[],a=[],o=[];yY.call(e,function(l,c,u){if(r=t(l,c,u),r===void 0)return void o.push(l);if(n===void 0&&typeof r=="symbol")throw new TypeError("Can't convert symbol to string");i.push(c),a[c]=r}),n===void 0&&(n=bY),i.sort(function(l,c){return n(a[l],a[c])});var s=i.map(function(l){return e[l]}).concat(o);return s.length!=e.length&&(s.length=e.length),s}function wY(e,t){const n=i=>i.copy().range(qr(0,i.domain().length)).unknown(-1);let r;switch(t.type){case"quantitative":r=i=>Ke(i)&&!isNaN(i)?-i:-1/0;break;case"ordinal":r=n(t.scale);break;case"nominal":r=i=>i||"";break}return i=>r(e(i))}function xY(e,t){const n=new Set,r=i=>{const a=n.has(i);return n.add(i),a};return e.filter(i=>!r(t(i)))}function AY(e,t,n){const r=new Set,i=a=>(r.size<n&&r.add(a),r.has(a));return e.filter(a=>i(t(a)))}function EY(e,t,n=!1){return vY(e,t,(r,i)=>(n&&([r,i]=[i,r]),r<i?-1:r>i?1:0))}const SY={lt:(e,t)=>e<t,lte:(e,t)=>e<=t,eq:(e,t)=>e==t,gte:(e,t)=>e>=t,gt:(e,t)=>e>t};function CY(e,t,n,r){const i=SY[n];return e.filter(a=>i(t(a),r))}function C6(e,t,n,r){const i=new Set(r),a=s=>i.has(s),o=n=="remove"?s=>!a(s):a;return e.filter(s=>o(t(s)))}function _Y(e,t){const n=r=>r!=null;return e.filter(r=>n(t(r)))}/**
2159
2346
  * @license
2160
2347
  * Copyright 2021 Google LLC
2161
2348
  * SPDX-License-Identifier: BSD-3-Clause
2162
- */function*z9(t,e){const n=typeof e=="function";if(t!==void 0){let r=-1;for(const i of t)r>-1&&(yield n?e(r):e),r++,yield i}}const Cv="setSamples",Sv="sortBy",Ev="retainFirstOfEach",Dv="retainFirstNCategories",Mv="filterByNominal",Tv="filterByQuantitative",Iv="removeUndefined",kv="groupByNominal",Nv="groupToQuartiles",Lv="groupByThresholds",Bv="removeGroup",Ov="retainMatched",ri="sampleView";function R9(){return{sampleData:void 0,groupMetadata:[],rootGroup:{name:"ROOT",title:"Root",samples:[]}}}function j9(t){const e=(n,r)=>{const i=t(n.attribute).accessor;return o=>i(o,r)};return xv({name:ri,initialState:R9(),reducers:{[Cv]:(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",title:"Root",samples:n.sampleData.ids}},[Sv]:(n,r)=>{pr(n,i=>B9(i,k9(e(r.payload,n),t(r.payload.attribute)),!1))},[Ev]:(n,r)=>{pr(n,i=>N9(i,e(r.payload,n)))},[Dv]:(n,r)=>{pr(n,i=>L9(i,e(r.payload,n),r.payload.n))},[Tv]:(n,r)=>{pr(n,i=>F9(i,e(r.payload,n),r.payload.operator,r.payload.operand))},[Mv]:(n,r)=>{pr(n,i=>wv(i,e(r.payload,n),r.payload.remove?"remove":"retain",r.payload.values))},[Iv]:(n,r)=>{pr(n,i=>P9(i,e(r.payload,n)))},[kv]:(n,r)=>{var o;const i=(o=t(r.payload.attribute).scale)==null?void 0:o.domain();rd(n,a=>Rv(a,e(r.payload,n),i)),n.groupMetadata.push({attribute:r.payload.attribute})},[Nv]:(n,r)=>{rd(n,i=>Q9(i,e(r.payload,n))),n.groupMetadata.push({attribute:r.payload.attribute})},[Lv]:(n,r)=>{rd(n,i=>H9(i,e(r.payload,n),r.payload.thresholds)),n.groupMetadata.push({attribute:r.payload.attribute})},[Bv]:(n,r)=>{const i=n.rootGroup;Ws(i)&&Uv(i,r.payload.path)},[Ov]:(n,r)=>{const i=e(r.payload,n),o=[];for(const s of id(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)}pr(n,s=>wv(s,i,"retain",a))}}})}function pr(t,e){for(const n of id(t))n.samples=e(n.samples)}function rd(t,e){for(const n of id(t))e(n)}function id(t){return ad(t).map(e=>je(e))}function od(t){return t.provenance.present[ri]}function ad(t){const e=[],n=[],r=i=>{if(e.push(i),Ws(i))for(const o of i.groups)r(o);else n.push([...e]);e.pop()};return r(t.rootGroup),n}function Fv(t){return"samples"in t}function Ws(t){return"groups"in t}function*sd(t){if(yield[t],Ws(t))for(const e of t.groups)for(const n of sd(e))yield[t,...n]}const U9=he(".4"),Pv={lt:"<",lte:"≤",eq:"=",gte:"≥",gt:">"};function zv(t){return E`{${t.map((e,n)=>E`${n>0?", ":""}<strong>${e}</strong>`)}}`}function G9(t,e){if(!t.type.startsWith(ri))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)||E`<em>${i}</em>`,a={attributeName:i};switch(t.type.substring(ri.length+1)){case Cv:return{...a,title:"The initial state",icon:M6};case Sv:return{...a,title:"Sort by",provenanceTitle:E`Sort by ${o}`,icon:b6};case Ev:return{...a,title:E`Retain the first sample of each <em>${i}</em>`,provenanceTitle:E`Retain the first sample of each ${o}`,icon:V1};case Dv:return{...a,title:E`Retain first <strong>n</strong> categories of <em>${i}</em>...`,provenanceTitle:E`Retain first <strong>${n.n}</strong> categories of ${o}`,icon:V1};case Mv:{const c=n.values,u=f=>E`${n.remove?"Remove":"Retain"} samples having ${c[0]===void 0||c[0]===null?E`undefined ${f}`:E`${f} ${c.length>1?E`in ${zv(c)}`:E`<span class="operator">=</span> <strong>${c[0]}</strong>`}`}`;return{...a,title:u(E`<em>${i}</em>`),provenanceTitle:u(o),icon:n.remove?Ds:ar}}case Tv:{const c=u=>E`Retain samples having ${u} <span class="operator">${Pv[n.operator]}</span> <strong>${U9(n.operand)}</strong>`;return{...a,title:c(E`<em>${i}</em>`),provenanceTitle:c(o),icon:ar}}case Iv:return{...a,title:"Remove samples having missing attribute",provenanceTitle:E`Remove samples having missing ${o}`,icon:Ds};case kv:return{...a,title:"Group by",provenanceTitle:E`Group by ${o}`,icon:wo};case Nv:return{...a,title:"Group by quartiles",provenanceTitle:E`Group by quartiles on ${o}`,icon:wo};case Lv:return{...a,title:"Group by thresholds",provenanceTitle:E`Group by thresholds ${zv(n.thresholds.map(c=>`${Pv[c.operator]} ${c.operand}`))} on ${o}`,icon:wo};case Bv:return{title:"Remove group",provenanceTitle:E`Remove group ${z9(n.path.map(c=>E`<strong>${c}</strong>`)," / ")}`,icon:Ds};case Ov:return{...a,title:E`Retain group-wise matched samples using <em>${i}</em>`,provenanceTitle:E`Retain group-wise matched samples using ${o}`,icon:ar};default:return{...a,title:JSON.stringify(t),icon:H1}}}function Rv(t,e,n,r){if(r&&!n)throw new Error("Custom labels need explicit group order!");const i=mi(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,title:r?r[f]:c,samples:u})),delete t.samples}function jv(t,e,n){const r=a=>`Group ${a+1}`,i=Wt(n.length-1).reverse(),o=Gv(e,n.slice(1,n.length-1));Rv(t,a=>r(o(a)),i.map(r),i.map(a=>Qv(n[a],n[a+1])))}function H9(t,e,n){jv(t,e,[{operator:"lt",operand:-1/0},...n,{operator:"lte",operand:1/0}])}function Q9(t,e){const n=Y9(V9(t.samples,e,[0,.25,.5,.75,1]));n.length==1&&n.push(n[0]),jv(t,e,n.map((r,i,o)=>({operator:i==o.length-1?"lte":"lt",operand:r})))}function Uv(t,e){if(e.length==0)return;const n=t.groups.findIndex(r=>r.name==e[0]);if(!(n<0)){if(e.length==1)t.groups.splice(n,1);else if(e.length>1){const r=t.groups[n];Ws(r)&&Uv(r,[...e].splice(1))}}}function Gv(t,e){return r=>{const i=t(r);if(!(!le(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 V9(t,e,n){const r=Z2(t.map(e).filter(i=>le(i)&&!isNaN(i)));return n.map(i=>Nc(r,i))}function Y9(t){const e=[t[0]];for(let n=1;n<t.length;n++)t[n]!=t[n-1]&&e.push(t[n]);return e}const Hv=he(".3~r"),Qv=(t,e)=>`${t.operator=="lt"?"[":"("}${Hv(t.operand)}, ${Hv(e.operand)}${e.operator=="lte"?"]":")"}`;function _9(t,e){const n=e.provenance.storeHelper.getDispatcher(),r=[],i=fr(),o=E`<div class="modal-title">Group by threshold on <em>${t.name}</em></div>`,a=g=>{n(e.actions.groupByThresholds({attribute:t.attribute,thresholds:r})),i.close()},s=()=>E`<div class="modal-buttons"><button class="btn btn-cancel" @click="${()=>i.close()}">Cancel</button> <button class="btn btn-primary" ?disabled="${!W9(r)}" @click="${()=>a()}">${J(wo).node[0]} Group</button></div>`,c=(g,y)=>(y>0&&(g=Math.max(g,r[y-1].operand)),y<r.length-1&&(g=Math.min(g,r[y+1].operand)),g),u=(g,y)=>{const b=g.target.value;r[y].operator=b,m()},f=(g,y)=>{const b=g.target.value;/^\d+(\.\d+)?$/.test(b)&&(r[y].operand=c(+b,y),m())},l=g=>{const y=r.findIndex(b=>b.operand>g.value);r.splice(y<0?r.length:y,0,{operand:g.value,operator:"lt"}),m()},d=g=>{r[g.index].operand=c(g.value,g.index),m()},h=g=>{r.splice(g,1),m()},p=X9(t,e.leafSamples,e.sampleHierarchy);function m(){const g=()=>{const b=[{operand:-1/0,operator:"lt"},...r,{operand:1/0,operator:"lte"}],w=Gv(v=>v,b),C=[];for(let v=1;v<b.length;v++)C.push(0);for(const v of p)C[w(v)-1]++;const x=[];for(let v=1;v<b.length;v++)x.push({index:v-1,name:v,interval:Qv(b[v-1],b[v]),n:C[v-1]});return E`<table class="threshold-groups"><thead><tr><th>Group</th><th>Interval</th><th>n</th></tr></thead><tbody>${x.map(v=>E`<tr><td><span class="group-color" style="background-color:${qy[v.index]}"></span> ${v.name}</td><td>${v.interval}</td><td>${v.n}</td></tr>`)}</tbody></table>`},y=E`<div class="gs-form-group group-by-thresholds-form"><label>Split into groups using the thresholds:</label><genome-spy-histogram .values="${p}" .thresholds="${r.map(b=>b.operand)}" .operators="${r.map(b=>b.operator)}" .showThresholdNumbers="${!0}" @add="${l}" @adjust="${d}"></genome-spy-histogram>${r.map((b,w)=>E`<div class="threshold-flex"><select .value="${b.operator}" @change="${C=>u(C,w)}"><option value="lt">${"<"}</option><option value="lte">${"≤"}</option></select> <input .value="${""+b.operand}" type="text" placeholder="Numeric value" @input="${C=>f(C,w)}" @blur="${C=>{C.target.value=""+r[w].operand}}"> <button @click="${()=>h(w)}" class="btn" title="Remove">${J(Y1).node[0]}</button></div>`)} ${r.length?E`<small>The operator specifies whether the upper endpoint of the interval (<em>i.e.</em>, the group) is exclusive (&lt;) or inclusive(≤). </small>${g()}`:z}</div>`;Oe(E`${o}<div class="modal-body">${y}</div>${s()}`,i.content)}m()}function W9(t){return t.length}function X9(t,e,n){const r=t.accessor;return e.map(i=>r(i,n))}function Z9(t,e){const n=e.provenance.storeHelper.getDispatcher();let r=5;const i=fr(),o=E`<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=()=>E`<div class="modal-buttons"><button class="btn btn-cancel" @click="${()=>i.close()}">Cancel</button> <button class="btn btn-primary" @click="${()=>a()}">${J(ar).node[0]} Retain</button></div>`,c=E`<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(){Oe(E`${o}<div class="modal-body">${c}</div>${s()}`,i.content)}u(),i.content.querySelector("input").focus()}function cd(t,e,n,r){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=(d,h,p)=>{const m=r.provenance.getActionInfo(d);return{label:m.title,icon:m.icon,callback:h?void 0:p??(()=>s(d))}},f=(...d)=>c.push(...d.map(h=>u(h)));f(i.sortBy({attribute:o}));const l=(e==null?void 0:e.type)??"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,()=>Z9(e,r)))),f(i.filterByNominal({attribute:o,values:[n]}),i.filterByNominal({attribute:o,remove:!0,values:[n]})),l!="identifier"&&c.push(u(i.retainMatched({attribute:o}),!a.groupMetadata.length))):(f(i.groupToQuartiles({attribute:o})),c.push({icon:wo,label:"Group by thresholds...",callback:()=>_9(e,r)}),q9(n)?f(i.filterByQuantitative({attribute:o,operator:"gte",operand:+n}),i.filterByQuantitative({attribute:o,operator:"lte",operand:+n})):f(i.removeUndefined({attribute:o}))),c.push({icon:ar,label:"Advanced filter...",callback:()=>jI(e,r)}),c}function q9(t){return t!=null&&t!==""&&!(typeof t=="number"&&isNaN(t))}function K9(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Ht={},mr={};Object.defineProperty(mr,"__esModule",{value:!0}),mr.ActionCreators=mr.ActionTypes=void 0;var gr={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"};mr.ActionTypes=gr;var J9={undo:function(){return{type:gr.UNDO}},redo:function(){return{type:gr.REDO}},jumpToFuture:function(e){return{type:gr.JUMP_TO_FUTURE,index:e}},jumpToPast:function(e){return{type:gr.JUMP_TO_PAST,index:e}},jump:function(e){return{type:gr.JUMP,index:e}},clearHistory:function(){return{type:gr.CLEAR_HISTORY}}};mr.ActionCreators=J9;var Ct={};Object.defineProperty(Ct,"__esModule",{value:!0}),Ct.parseActions=Xs,Ct.isHistory=$9,Ct.includeAction=ek,Ct.excludeAction=tk,Ct.combineFilters=nk,Ct.groupByActionTypes=rk,Ct.newHistory=ik;function Xs(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return Array.isArray(t)?t:typeof t=="string"?[t]:e}function $9(t){return typeof t.present<"u"&&typeof t.future<"u"&&typeof t.past<"u"&&Array.isArray(t.future)&&Array.isArray(t.past)}function ek(t){var e=Xs(t);return function(n){return e.indexOf(n.type)>=0}}function tk(t){var e=Xs(t);return function(n){return e.indexOf(n.type)<0}}function nk(){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 rk(t){var e=Xs(t);return function(n){return e.indexOf(n.type)>=0?n.type:null}}function ik(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 Vv={},ii={};Object.defineProperty(ii,"__esModule",{value:!0}),ii.set=hk,ii.start=lk,ii.end=fk,ii.log=dk;function St(t){return sk(t)||ak(t)||ok()}function ok(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function ak(t){if(Symbol.iterator in Object(t)||Object.prototype.toString.call(t)==="[object Arguments]")return Array.from(t)}function sk(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 Zs,$e,ud={prevState:"#9E9E9E",action:"#03A9F4",nextState:"#4CAF50"};function ck(){$e={header:[],prev:[],action:[],next:[],msgs:[]}}function uk(){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,St(e)),(s=console).log.apply(s,St(n)),(c=console).log.apply(c,St(i)),(u=console).log.apply(u,St(r)),(f=console).log.apply(f,St(o)),console.groupEnd()}else{var l,d,h,p,m;(l=console).log.apply(l,St(e)),(d=console).log.apply(d,St(n)),(h=console).log.apply(h,St(i)),(p=console).log.apply(p,St(r)),(m=console).log.apply(m,St(o))}}function ld(t,e,n){return["%c".concat(t),"color: ".concat(e,"; font-weight: bold"),n]}function lk(t,e){ck(),Zs&&(console.group?($e.header=["%credux-undo","font-style: italic","action",t.type],$e.action=ld("action",ud.action,t),$e.prev=ld("prev history",ud.prevState,e)):($e.header=["redux-undo action",t.type],$e.action=["action",t],$e.prev=["prev history",e]))}function fk(t){Zs&&(console.group?$e.next=ld("next history",ud.nextState,t):$e.next=["next history",t],uk())}function dk(){if(Zs){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,[`
2163
- `]))}}function hk(t){Zs=t}(function(t){function e(x){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?e=function(A){return typeof A}:e=function(A){return A&&typeof Symbol=="function"&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},e(x)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=C;var n=a(ii),r=mr,i=Ct;function o(){if(typeof WeakMap!="function")return null;var x=new WeakMap;return o=function(){return x},x}function a(x){if(x&&x.__esModule)return x;if(x===null||e(x)!=="object"&&typeof x!="function")return{default:x};var v=o();if(v&&v.has(x))return v.get(x);var A={},D=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var O in x)if(Object.prototype.hasOwnProperty.call(x,O)){var k=D?Object.getOwnPropertyDescriptor(x,O):null;k&&(k.get||k.set)?Object.defineProperty(A,O,k):A[O]=x[O]}return A.default=x,v&&v.set(x,A),A}function s(x,v){var A=Object.keys(x);if(Object.getOwnPropertySymbols){var D=Object.getOwnPropertySymbols(x);v&&(D=D.filter(function(O){return Object.getOwnPropertyDescriptor(x,O).enumerable})),A.push.apply(A,D)}return A}function c(x){for(var v=1;v<arguments.length;v++){var A=arguments[v]!=null?arguments[v]:{};v%2?s(Object(A),!0).forEach(function(D){u(x,D,A[D])}):Object.getOwnPropertyDescriptors?Object.defineProperties(x,Object.getOwnPropertyDescriptors(A)):s(Object(A)).forEach(function(D){Object.defineProperty(x,D,Object.getOwnPropertyDescriptor(A,D))})}return x}function u(x,v,A){return v in x?Object.defineProperty(x,v,{value:A,enumerable:!0,configurable:!0,writable:!0}):x[v]=A,x}function f(x){return h(x)||d(x)||l()}function l(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function d(x){if(Symbol.iterator in Object(x)||Object.prototype.toString.call(x)==="[object Arguments]")return Array.from(x)}function h(x){if(Array.isArray(x)){for(var v=0,A=new Array(x.length);v<x.length;v++)A[v]=x[v];return A}}function p(x,v){var A=(0,i.newHistory)([],x,[]);return v&&(A._latestUnfiltered=null),A}function m(x,v,A,D){var O=x.past.length+1;n.log("inserting",v),n.log("new free: ",A-O);var k=x.past,T=x._latestUnfiltered,B=A&&A<=O,H=k.slice(B?1:0),Y=T!=null?[].concat(f(H),[T]):H;return(0,i.newHistory)(Y,v,[],D)}function g(x,v){if(v<0||v>=x.future.length)return x;var A=x.past,D=x.future,O=x._latestUnfiltered,k=[].concat(f(A),[O],f(D.slice(0,v))),T=D[v],B=D.slice(v+1);return(0,i.newHistory)(k,T,B)}function y(x,v){if(v<0||v>=x.past.length)return x;var A=x.past,D=x.future,O=x._latestUnfiltered,k=A.slice(0,v),T=[].concat(f(A.slice(v+1)),[O],f(D)),B=A[v];return(0,i.newHistory)(k,B,T)}function b(x,v){return v>0?g(x,v-1):v<0?y(x,x.past.length+v):x}function w(x,v){return v.indexOf(x)>-1?x:!x}function C(x){var v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};n.set(v.debug);var A=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])}),D=A.neverSkipReducer?function(k,T){for(var B=arguments.length,H=new Array(B>2?B-2:0),Y=2;Y<B;Y++)H[Y-2]=arguments[Y];return c({},k,{present:x.apply(void 0,[k.present,T].concat(H))})}:function(k){return k},O;return function(){var k=arguments.length>0&&arguments[0]!==void 0?arguments[0]:O,T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};n.start(T,k);for(var B=k,H=arguments.length,Y=new Array(H>2?H-2:0),Te=2;Te<H;Te++)Y[Te-2]=arguments[Te];if(!O)if(n.log("history is uninitialized"),k===void 0){var Ie={type:"@@redux-undo/CREATE_HISTORY"},wn=x.apply(void 0,[k,Ie].concat(Y));return B=p(wn,A.ignoreInitialState),n.log("do not set initialState on probe actions"),n.end(B),B}else(0,i.isHistory)(k)?(B=O=A.ignoreInitialState?k:(0,i.newHistory)(k.past,k.present,k.future),n.log("initialHistory initialized: initialState is a history",O)):(B=O=p(k,A.ignoreInitialState),n.log("initialHistory initialized: initialState is not a history",O));var _;switch(T.type){case void 0:return B;case A.undoType:return _=b(B,-1),n.log("perform undo"),n.end(_),D.apply(void 0,[_,T].concat(Y));case A.redoType:return _=b(B,1),n.log("perform redo"),n.end(_),D.apply(void 0,[_,T].concat(Y));case A.jumpToPastType:return _=y(B,T.index),n.log("perform jumpToPast to ".concat(T.index)),n.end(_),D.apply(void 0,[_,T].concat(Y));case A.jumpToFutureType:return _=g(B,T.index),n.log("perform jumpToFuture to ".concat(T.index)),n.end(_),D.apply(void 0,[_,T].concat(Y));case A.jumpType:return _=b(B,T.index),n.log("perform jump to ".concat(T.index)),n.end(_),D.apply(void 0,[_,T].concat(Y));case w(T.type,A.clearHistoryType):return _=p(B.present,A.ignoreInitialState),n.log("perform clearHistory"),n.end(_),D.apply(void 0,[_,T].concat(Y));default:if(_=x.apply(void 0,[B.present,T].concat(Y)),A.initTypes.some(function(Fd){return Fd===T.type}))return n.log("reset history due to init action"),n.end(O),O;if(B._latestUnfiltered===_)return B;var Ve=typeof A.filter=="function"&&!A.filter(T,_,B);if(Ve){var Ko=(0,i.newHistory)(B.past,_,B.future,B.group);return A.syncFilter||(Ko._latestUnfiltered=B._latestUnfiltered),n.log("filter ignored action, not storing it in past"),n.end(Ko),Ko}var Jo=A.groupBy(T,_,B);if(Jo!=null&&Jo===B.group){var hc=(0,i.newHistory)(B.past,_,B.future,B.group);return n.log("groupBy grouped the action with the previous action"),n.end(hc),hc}return B=m(B,_,A.limit,Jo),n.log("inserted new state into history"),n.end(B),B}}}})(Vv),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=mr,n=Ct,r=i(Vv);function i(o){return o&&o.__esModule?o:{default:o}}}(Ht);const pk=K9(Ht);function qs(t){return t.split("-")[0]}function fd(t){return t.split("-")[1]}function dd(t){return["top","bottom"].includes(qs(t))?"x":"y"}function Yv(t){return t==="y"?"height":"width"}function _v(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=dd(e),c=Yv(s),u=r[c]/2-i[c]/2,f=s==="x";let l;switch(qs(e)){case"top":l={x:o,y:r.y-i.height};break;case"bottom":l={x:o,y:r.y+r.height};break;case"right":l={x:r.x+r.width,y:a};break;case"left":l={x:r.x-i.width,y:a};break;default:l={x:r.x,y:r.y}}switch(fd(e)){case"start":l[s]-=u*(n&&f?-1:1);break;case"end":l[s]+=u*(n&&f?-1:1)}return l}const mk=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}=_v(c,r,s),l=r,d={};for(let h=0;h<o.length;h++){const{name:p,fn:m}=o[h],{x:g,y,data:b,reset:w}=await m({x:u,y:f,initialPlacement:r,placement:l,strategy:i,middlewareData:d,rects:c,platform:a,elements:{reference:t,floating:e}});u=g??u,f=y??f,d={...d,[p]:{...d[p],...b}},w&&(typeof w=="object"&&(w.placement&&(l=w.placement),w.rects&&(c=w.rects===!0?await a.getElementRects({reference:t,floating:e,strategy:i}):w.rects),{x:u,y:f}=_v(c,l,s)),h=-1)}return{x:u,y:f,placement:l,strategy:i,middlewareData:d}};function gk(t){return typeof t!="number"?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(t):{top:t,right:t,bottom:t,left:t}}function Ks(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}async function yk(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=gk(h),m=s[d?l==="floating"?"reference":"floating":l],g=Ks(await o.getClippingRect({element:(n=await(o.isElement==null?void 0:o.isElement(m)))==null||n?m:m.contextElement||await(o.getDocumentElement==null?void 0:o.getDocumentElement(s.floating)),boundary:u,rootBoundary:f,strategy:c})),y=Ks(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-y.top+p.top,bottom:y.bottom-g.bottom+p.bottom,left:g.left-y.left+p.left,right:y.right-g.right+p.right}}const vk={left:"right",right:"left",bottom:"top",top:"bottom"};function Js(t){return t.replace(/left|right|bottom|top/g,e=>vk[e])}function bk(t,e,n){n===void 0&&(n=!1);const r=fd(t),i=dd(t),o=Yv(i);let a=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return e.reference[o]>e.floating[o]&&(a=Js(a)),{main:a,cross:Js(a)}}const Ak={start:"end",end:"start"};function Wv(t){return t.replace(/start|end/g,e=>Ak[e])}["top","right","bottom","left"].reduce((t,e)=>t.concat(e,e+"-start",e+"-end"),[]);const Xv=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=qs(r),g=l||(m===a||!h?[Js(a)]:function(D){const O=Js(D);return[Wv(D),O,Wv(O)]}(a)),y=[a,...g],b=await yk(e,p),w=[];let C=((n=i.flip)==null?void 0:n.overflows)||[];if(u&&w.push(b[m]),f){const{main:D,cross:O}=bk(r,o,await(s.isRTL==null?void 0:s.isRTL(c.floating)));w.push(b[D],b[O])}if(C=[...C,{placement:r,overflows:w}],!w.every(D=>D<=0)){var x,v;const D=((x=(v=i.flip)==null?void 0:v.index)!=null?x:0)+1,O=y[D];if(O)return{data:{index:D,overflows:C},reset:{placement:O}};let k="bottom";switch(d){case"bestFit":{var A;const T=(A=C.map(B=>[B,B.overflows.filter(H=>H>0).reduce((H,Y)=>H+Y,0)]).sort((B,H)=>B[1]-H[1])[0])==null?void 0:A[0].placement;T&&(k=T);break}case"initialPlacement":k=a}if(r!==k)return{reset:{placement:k}}}return{}}}},xk=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){const{x:n,y:r}=e,i=await async function(o,a){const{placement:s,platform:c,elements:u}=o,f=await(c.isRTL==null?void 0:c.isRTL(u.floating)),l=qs(s),d=fd(s),h=dd(s)==="x",p=["left","top"].includes(l)?-1:1,m=f&&h?-1:1,g=typeof a=="function"?a(o):a;let{mainAxis:y,crossAxis:b,alignmentAxis:w}=typeof g=="number"?{mainAxis:g,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...g};return d&&typeof w=="number"&&(b=d==="end"?-1*w:w),h?{x:b*m,y:y*p}:{x:y*p,y:b*m}}(e,t);return{x:n+i.x,y:r+i.y,data:i}}}};function Zv(t){return t&&t.document&&t.location&&t.alert&&t.setInterval}function Qt(t){if(t==null)return window;if(!Zv(t)){const e=t.ownerDocument;return e&&e.defaultView||window}return t}function Oo(t){return Qt(t).getComputedStyle(t)}function Vt(t){return Zv(t)?"":t?(t.nodeName||"").toLowerCase():""}function qv(){const t=navigator.userAgentData;return t!=null&&t.brands?t.brands.map(e=>e.brand+"/"+e.version).join(" "):navigator.userAgent}function Et(t){return t instanceof Qt(t).HTMLElement}function oi(t){return t instanceof Qt(t).Element}function hd(t){return typeof ShadowRoot>"u"?!1:t instanceof Qt(t).ShadowRoot||t instanceof ShadowRoot}function $s(t){const{overflow:e,overflowX:n,overflowY:r}=Oo(t);return/auto|scroll|overlay|hidden/.test(e+r+n)}function wk(t){return["table","td","th"].includes(Vt(t))}function Kv(t){const e=/firefox/i.test(qv()),n=Oo(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"}function Jv(){return!/^((?!chrome|android).)*safari/i.test(qv())}const $v=Math.min,Fo=Math.max,ec=Math.round;function yr(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&&Et(t)&&(c=t.offsetWidth>0&&ec(s.width)/t.offsetWidth||1,u=t.offsetHeight>0&&ec(s.height)/t.offsetHeight||1);const f=oi(t)?Qt(t):window,l=!Jv()&&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 bn(t){return(e=t,(e instanceof Qt(e).Node?t.ownerDocument:t.document)||window.document).documentElement;var e}function tc(t){return oi(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function eb(t){return yr(bn(t)).left+tc(t).scrollLeft}function Ck(t,e,n){const r=Et(e),i=bn(e),o=yr(t,r&&function(c){const u=yr(c);return ec(u.width)!==c.offsetWidth||ec(u.height)!==c.offsetHeight}(e),n==="fixed");let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(r||!r&&n!=="fixed")if((Vt(e)!=="body"||$s(i))&&(a=tc(e)),Et(e)){const c=yr(e,!0);s.x=c.x+e.clientLeft,s.y=c.y+e.clientTop}else i&&(s.x=eb(i));return{x:o.left+a.scrollLeft-s.x,y:o.top+a.scrollTop-s.y,width:o.width,height:o.height}}function tb(t){return Vt(t)==="html"?t:t.assignedSlot||t.parentNode||(hd(t)?t.host:null)||bn(t)}function nb(t){return Et(t)&&getComputedStyle(t).position!=="fixed"?t.offsetParent:null}function pd(t){const e=Qt(t);let n=nb(t);for(;n&&wk(n)&&getComputedStyle(n).position==="static";)n=nb(n);return n&&(Vt(n)==="html"||Vt(n)==="body"&&getComputedStyle(n).position==="static"&&!Kv(n))?e:n||function(r){let i=tb(r);for(hd(i)&&(i=i.host);Et(i)&&!["html","body"].includes(Vt(i));){if(Kv(i))return i;i=i.parentNode}return null}(t)||e}function rb(t){if(Et(t))return{width:t.offsetWidth,height:t.offsetHeight};const e=yr(t);return{width:e.width,height:e.height}}function ib(t){const e=tb(t);return["html","body","#document"].includes(Vt(e))?t.ownerDocument.body:Et(e)&&$s(e)?e:ib(e)}function ob(t,e){var n;e===void 0&&(e=[]);const r=ib(t),i=r===((n=t.ownerDocument)==null?void 0:n.body),o=Qt(r),a=i?[o].concat(o.visualViewport||[],$s(r)?r:[]):r,s=e.concat(a);return i?s:s.concat(ob(a))}function ab(t,e,n){return e==="viewport"?Ks(function(r,i){const o=Qt(r),a=bn(r),s=o.visualViewport;let c=a.clientWidth,u=a.clientHeight,f=0,l=0;if(s){c=s.width,u=s.height;const d=Jv();(d||!d&&i==="fixed")&&(f=s.offsetLeft,l=s.offsetTop)}return{width:c,height:u,x:f,y:l}}(t,n)):oi(e)?function(r,i){const o=yr(r,!1,i==="fixed"),a=o.top+r.clientTop,s=o.left+r.clientLeft;return{top:a,left:s,x:s,y:a,right:s+r.clientWidth,bottom:a+r.clientHeight,width:r.clientWidth,height:r.clientHeight}}(e,n):Ks(function(r){var i;const o=bn(r),a=tc(r),s=(i=r.ownerDocument)==null?void 0:i.body,c=Fo(o.scrollWidth,o.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),u=Fo(o.scrollHeight,o.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0);let f=-a.scrollLeft+eb(r);const l=-a.scrollTop;return Oo(s||o).direction==="rtl"&&(f+=Fo(o.clientWidth,s?s.clientWidth:0)-c),{width:c,height:u,x:f,y:l}}(bn(t)))}function Sk(t){const e=ob(t),n=["absolute","fixed"].includes(Oo(t).position)&&Et(t)?pd(t):t;return oi(n)?e.filter(r=>oi(r)&&function(i,o){const a=o==null||o.getRootNode==null?void 0:o.getRootNode();if(i!=null&&i.contains(o))return!0;if(a&&hd(a)){let s=o;do{if(s&&i===s)return!0;s=s.parentNode||s.host}while(s)}return!1}(r,n)&&Vt(r)!=="body"):[]}const Ek={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:r,strategy:i}=t;const o=[...n==="clippingAncestors"?Sk(e):[].concat(n),r],a=o[0],s=o.reduce((c,u)=>{const f=ab(e,u,i);return c.top=Fo(f.top,c.top),c.right=$v(f.right,c.right),c.bottom=$v(f.bottom,c.bottom),c.left=Fo(f.left,c.left),c},ab(e,a,i));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:r}=t;const i=Et(n),o=bn(n);if(n===o)return e;let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if((i||!i&&r!=="fixed")&&((Vt(n)!=="body"||$s(o))&&(a=tc(n)),Et(n))){const c=yr(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}},isElement:oi,getDimensions:rb,getOffsetParent:pd,getDocumentElement:bn,getElementRects:t=>{let{reference:e,floating:n,strategy:r}=t;return{reference:Ck(e,pd(n),r),floating:{...rb(n),x:0,y:0}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>Oo(t).direction==="rtl"},Dk=(t,e,n)=>mk(t,e,{platform:Ek,...n});let Dt;const Po=[],md=Cs(t=>t(),150,!1),gd={type:"divider"};function zo(t){if((t==null?void 0:t.type)=="contextmenu"){t.preventDefault();return}Dt&&(Dt.remove(),Dt=void 0,document.body.classList.remove(Vn))}function sb(t){var e;if(!(t<1)){for(let n=t;n<Po.length;n++)(e=Po[n])==null||e.remove(),Po[n]=void 0;for(const n of Po[t-1].querySelectorAll("li.active"))n.classList.remove("active")}}const Mk=()=>E`<li class="menu-divider"></li>`,Tk=t=>E`<li class="menu-header">${t.label||"-"}</li>`,Ik=(t,e)=>E`<li><a class="submenu-item" @click="${n=>n.stopPropagation()}" @mouseup="${n=>n.stopPropagation()}" @mouseenter="${n=>md(()=>{const r=n.target.closest("li");Lk(t.submenu,r,e+1),n.stopPropagation()})}" @mouseleave="${()=>md(()=>sb(e+1))}"><span>${t.label}</span></a></li>`,kk=t=>E`<li><a class="choice-item" @mouseup="${()=>{zo(),t.callback()}}"><span>${t.icon?J(t.icon).node[0]:""} ${t.label}</span> ${t.shortcut?E`<span class="kbd-shortcut">${t.shortcut}</span>`:z} </a>${t.ellipsisCallback?E`<a class="menu-ellipsis" @click="${t.ellipsisCallback}">${J(z6).node[0]}</a>`:z}</li>`,Nk=t=>E`<li><span class="disabled-item">${t.icon?J(t.icon).node[0]:""} ${t.label||"-"}</span></li>`;function cb(t,e=1){switch(t.type){case"divider":return Mk();case"header":return Tk(t);default:return t.submenu?Ik(t,e):t.callback?kk(t):Nk(t)}}function Lk(t,e,n){ub(t,e,n,"right-start"),e.classList.add("active")}function ub(t,e,n,r){const i=document.createElement("ul");i.classList.add("gs-context-menu"),i.addEventListener("mouseenter",()=>{md(()=>{})}),Oe(t.map(o=>cb(o,n)),i),Dt.appendChild(i),sb(n),Po[n]=i,Dk(e,i,{placement:r??"right-start",middleware:n?[Xv()]:[xk(2),Xv()]}).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 lb(t,e,n){n??(n="bottom-start"),zo();const r=performance.now(),i=document.body;Dt=document.createElement("div"),Dt.classList.add("gs-context-menu-backdrop"),Dt.addEventListener("click",zo),Dt.addEventListener("contextmenu",zo),Dt.addEventListener("mouseup",()=>{performance.now()-r>500&&zo()},{once:!0}),i.appendChild(Dt),document.body.classList.add(Vn),ub(t.items,e,0,n)}function yd(t,e){lb(t,Bk(e),"right-start"),e.preventDefault()}function Bk(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 vd={NOMINAL:"nominal",ORDINAL:"ordinal",QUANTITATIVE:"quantitative"},nc="SAMPLE_ATTRIBUTE",fb="SAMPLE_NAME",Ok=/^attribute-(.*)$/;class db extends Wr{constructor(e){super({title:"Sample metadata",data:{name:null},hconcat:[],spacing:e.spec.samples.attributeSpacing??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(nc,n=>this.children.map(this.getAttributeInfoFromView.bind(this)).find(r=>r&&r.name==n.specifier)),this.sampleView.compositeAttributeInfoSource.addAttributeInfoSource(fb,n=>hb),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:Zg,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=[this.sampleView.makePeekMenuItem(),gd],a=this.getAttributeInfoFromView(n.target);if(a){const s=i.attributes[a.name];o.push(...cd(E`Attribute: <strong>${a.name}</strong>`,a,s,this.sampleView))}else o.push(...cd(E`Sample: <strong>${i.displayName}</strong>`,hb,i.id,this.sampleView));yd({items:o},r)}_setSamples(e){if(this.childCount)throw new Error("Children are already created!");this._createViews();const n=this.context.dataFlow;w1(this,n);const r=n.findDataSourceByKey(this);r.visit(o=>o.initialize());const i=[];this.visit(o=>{if(o instanceof de){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.updateDynamicData(e),this.visit(o=>{o.name.startsWith("title")&&n.findDataSourceByKey(o).load()})}_createViews(){const e=[];e.push(this.context.createView(Pk(this.sampleView.spec.samples),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),S1(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(_h(i.map(o=>o.attributes[e]))){case"integer":case"number":r=vd.QUANTITATIVE;break;default:r=vd.NOMINAL}}return Fk(e,{...n||{},type:r},this.sampleView.spec.samples)}_findViewForAttribute(e){return this.children[this.getAttributeNames().indexOf(e)+1]}getAttributeInfoFromView(e){const n=e==null?void 0:e.name.match(Ok);if(n){const r=e.getScaleResolution("color"),i=n[1];return{name:i,attribute:{type:nc,specifier:i},accessor:(o,a)=>a.sampleData.entities[o].attributes[i],type:r.type,scale:r.getScale(),title:E`<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)=>zk(c)?this.getAttributeInfo(s).scale(c):"transparent",a=E`<table class="attributes">${Object.entries(i.attributes).map(([s,c])=>E`<tr class="${sf({hovered:s==r})}"><th>${s}</th><td>${L1(c)}</td><td class="color" .style="background-color: ${o(s,c)}"></td></tr>`)}</table>`;return E`<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==Hl||i.type==Ql)&&this.sampleView.getSamples().find(a=>a.attributes[i.name]==n)){const a=this.sampleView.actions.filterByNominal({attribute:{type:nc,specifier:r},values:[n]}),s=this.sampleView.provenance.getPresentState().lastAction,c=this.sampleView.actions.filterByNominal.match(s)&&!s.payload.remove&&s.payload.attribute.type==nc&&s.payload.attribute.specifier==r&&s.payload.values.length==1;return this.sampleView.provenance.storeHelper.dispatch(c?[Ht.ActionCreators.undo(),a]:a),!0}}return!1}isPickingSupported(){return!1}}function Fk(t,e,n){const r=`attributes["${t}"]`,i={name:`attribute-${t}`,title:{text:t,orient:"bottom",align:"right",baseline:"middle",offset:5,angle:-90+(n.attributeLabelAngle??0),dy:-.5,font:n.attributeLabelFont,fontSize:n.attributeLabelFontSize??11,fontStyle:n.attributeLabelFontStyle,fontWeight:n.attributeLabelFontWeight},visible:e.visible??!0,width:e.width??n.attributeSize??10,transform:[{type:"filter",expr:`datum.${r} != null`}],mark:{type:"rect",xOffset:-.5},encoding:{facetIndex:{field:"indexNumber"},color:{field:r,type:e.type,scale:e.scale}},opacity:1};return e.barScale&&e.type==vd.QUANTITATIVE&&(i.encoding.x={field:`attributes["${t}"]`,type:e.type,scale:e.barScale,axis:null}),i}function Pk(t){return{name:"metadata-sample-name",title:{text:t.labelTitleText??"Sample name",orient:"bottom",anchor:"start",offset:5,font:t.attributeLabelFont,fontSize:t.attributeLabelFontSize??11,fontStyle:t.attributeLabelFontStyle,fontWeight:t.attributeLabelFontWeight},width:t.labelLength??140,mark:{type:"text",baseline:"middle",font:t.labelFont,size:t.labelFontSize??11,fontStyle:t.labelFontStyle,fontWeight:t.labelFontWeight,align:t.labelAlign??"left",flushY:!1},encoding:{facetIndex:{field:"indexNumber"},x:{value:0},x2:{value:1},y:{value:0},y2:{value:1},text:{field:"displayName"}}}}function zk(t){return t!==""&&!(typeof t=="number"&&isNaN(t))&&t!==null}const hb=Object.freeze({name:"sample",attribute:{type:fb},accessor:t=>t,type:"identifier",scale:void 0});class Rk extends vt{constructor(e){super({title:{text:"Groups",orient:"none"},width:{step:22},data:{name:null},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:"_title",expr:"datum.title || datum.name"},{type:"formula",as:"_NA",expr:"datum._title === null"},{type:"formula",as:"_title",expr:"datum._title !== null ? datum._title: 'NA'"}],encoding:{x:{field:"_depth",type:"ordinal",scale:{align:0,padding:.2272727},axis:null},y:{field:"_y1",type:"nominal",scale:{type:"ordinal",domain:Wt(500)},axis:null},y2:{field:"_y2"}},layer:[{title:"Group",mark:{type:"rect",clip:!0,color:"#e8e8e8",cornerRadiusBottomLeft:14,cornerRadiusTopLeft:14}},{mark:{type:"text",clip:!0,angle:-90,paddingY:5,tooltip:null},encoding:{text:{field:"_title"},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()}),this.addInteractionEventListener("contextmenu",(n,r)=>{const i=r.uiEvent,o=this.context.getCurrentHover();if(!o)return;const a=o.datum._rawGroup;let s;for(const l of sd(this.sampleView.sampleHierarchy.rootGroup))if(l.at(-1)===a){s=l.slice(1);break}const c=e.actions.removeGroup({path:s.map(l=>l.name)}),u=e.provenance.getActionInfo(c),f=e.provenance.storeHelper.getDispatcher();yd({items:[{label:u.title,icon:u.icon,callback:()=>f(c)}]},i)})}updateRange(){var o,a;const e=(o=this.sampleView.getLocations())==null?void 0:o.groups;if(!(e!=null&&e.length))return;const n=((a=this.sampleView)==null?void 0:a.childCoords.height)??0,r=this.getScaleResolution("y"),i=[];for(const s of e)i.push(1-(s.locSize.location+s.locSize.size)/n),i.push(1-s.locSize.location/n);r.getScale().range(i),this.context.glHelper.createRangeTexture(r,!0)}updateGroups(){var i;const e=((i=this.sampleView.getLocations())==null?void 0:i.groups)??[],n=this.context.dataFlow.findDataSourceByKey(this);if(!n)return;const r=e.map(o=>({_index:o.key.index,_depth:o.key.depth,_rawGroup:o.key.group,attribute:o.key.attributeLabel,name:o.key.group.name,...o.key.group.name!=o.key.group.title?{title:o.key.group.title}:{},n:o.key.n}));n.updateDynamicData(r),this.getScaleResolution("x").reconfigure(),this.getScaleResolution("y").reconfigure(),e.length&&this.updateRange(),je([...this.getAncestors()]).visit(o=>ho(o,"size"))}}class jk{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 rc(t,e,n){let r=n&&t(n);return i=>{const o=t(i);o!==r&&(e(o,r),r=o)}}function pb(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=[];yo(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;yo(m.map(g=>p),Math.max(0,c[d].locSize.size-i),{offset:c[d].locSize.location+i}).forEach((g,y)=>{const{size:b,location:w}=g,C=b*.1*v1(15,22,b);g.location=w+C,g.size=b-2*C,u.push({key:m[y],locSize:g})})}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 g=0;g<d.length;g++){const y=d[g];y.locSize.size=h.locSize.location-y.locSize.location+h.locSize.size}for(let g=d.length;g<p.length;g++)d.push({group:p[g],locSize:{...h.locSize},depth:d.length,n:0});for(const g of d)g.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 Uk(t,e){return e.find(n=>Bg(n.locSize,t))}const mb="VALUE_AT_LOCUS",gb=10;class bd extends nr{constructor(n,r,i,o,a){var f;super(n,r,i,o);q(this,dc);pc(this,"_peekState",0);this.provenance=a,this.spec=n,this.stickySummaries=n.stickySummaries??!0,this.compositeAttributeInfoSource=new jk,this.child=r.createView(n.spec,this,"sample-facets"),this.summaryViews=new Wr({vconcat:[]},r,this,"sampleSummaries"),this.child.visit(l=>{l instanceof de&&this.summaryViews.setChildren(l.sampleAggregateViews)}),this.childCoords=hn.ZERO,this.facetTexture=void 0,this.facetTextureData=void 0,this.peripheryView=new Wr({title:"Sidebar",resolve:{scale:{default:"independent"},axis:{default:"independent"}},hconcat:[],spacing:0},r,this,"sample-sidebar"),this.peripheryCoords=hn.ZERO,this.groupPanel=new Rk(this),this.attributePanel=new db(this),this.peripheryView.setChildren([this.groupPanel,this.attributePanel]);{const l=(f=this.spec.spec)==null?void 0:f.view;if(l!=null&&l.fill||l!=null&&l.stroke){const d=new de(c1(l),this.context,this,"sample-background");d.blockEncodingInheritance=!0,this.backgroundView=d}else this.backgroundView=void 0}this.child.addInteractionEventListener("contextmenu",this._handleContextMenu.bind(this)),this.provenance.storeHelper.subscribe(rc(l=>od(l).rootGroup,l=>{this._locations=void 0,this.groupPanel.updateGroups(),this._peekState=0,this.context.requestLayoutReflow(),this.context.animator.requestRender()})),this.provenance.storeHelper.subscribe(rc(l=>od(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(mb,l=>{var C;const d=l.specifier,h=this.findDescendantByName(d.view);let p;if(le(d.locus))p=d.locus;else{const x=this.getScaleResolution("x").getGenome();if(x)p=x.toContinuous(d.locus.chrom,d.locus.pos);else throw new Error("Encountered a complex locus but no genome is available!")}const m=x=>{var v;return(v=h.mark.findDatumAt(x,p))==null?void 0:v[d.field]},[g,y]=Object.entries(h.getEncoding()).find(([x,v])=>"field"in v&&v.field==d.field),b=g?(C=h.getScaleResolution(g))==null?void 0:C.getScale():void 0;return{name:d.field,attribute:l,title:E`<em class="attribute">${d.field}</em> <span class="viewTitle">(${h.getTitleText()??h.name})</span> at <span class="locus">${yb(d.locus)}</span>`,accessor:m,type:"type"in y?y.type:void 0,scale:b}}),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=gs(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=j9(s);this.provenance.addReducer(c.name,c.reducer),this.provenance.addActionInfoSource(l=>G9(l,s)),this.actions=c.actions;const u=f9(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+=gb),new Je(0,0,0,n)}*[Symbol.iterator](){this.backgroundView&&(yield this.backgroundView),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}=P5(b1(this.spec.samples.data,this),new Gk);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()[ri]}get leafSamples(){return ad(this.sampleHierarchy).map(r=>r.at(-1)).map(r=>r.samples).flat()}getLocations(){var n,r,i;if(!this._locations){if(!((n=this.childCoords)!=null&&n.height))return;const o=this.sampleHierarchy,a=ad(o),s=[null,...o.groupMetadata],c=(((r=this.summaryViews)==null?void 0:r.isVisible())&&((i=this.summaryViews)==null?void 0:i.getSize().height.px))??0,u=pb(a,{viewHeight:this.childCoords.height,groupSpacing:5,summaryHeight:c}),f=pb(a,{sampleHeight:35,groupSpacing:15,summaryHeight:c}),l=()=>-this._scrollOffset,d=()=>this._peekState;this._scrollableLocations=f,this._scrollableHeight=f.summaries.map(g=>g.locSize.location+g.locSize.size).reduce((g,y)=>Math.max(g,y),0);const h=(g,y)=>{const b=[];for(let w=0;w<g.length;w++){const C=g[w].key;b.push({key:C,locSize:OM(g[w].locSize,FM(y[w].locSize,l),d)})}return b},p=h(u.groups,f.groups),m=document.createElement("div");p.forEach(g=>{if(g.key.depth==0)return;const y=s[g.key.depth].attribute,b=this.compositeAttributeInfoSource.getAttributeInfo(y).title;b?re(b)?g.key.attributeLabel=b:(Oe(b,m),g.key.attributeLabel=m.textContent.replace(/\s+/g," ").trim()):g.key.attributeLabel="unknown"}),this._locations={samples:h(u.samples,f.samples),summaries:h(u.summaries,f.summaries),groups:p}}return this._locations}getSampleAt(n){const r=Uk(n,this.getLocations().samples);if(r)return this.sampleHierarchy.sampleData.entities[r.key]}getSummaryAt(n){const r=this.getLocations().summaries,i=r.findIndex(o=>Bg(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={}){var c;const o=1/r.height,a=()=>o,s=this._clipBySummary(r);for(const u of this.getLocations().samples){const f={...i,sampleFacetRenderingOptions:{locSize:PM(u.locSize,a)},facetId:[u.key],clipRect:s};(c=this.backgroundView)==null||c.render(n,r,f),this.child.render(n,r,f)}}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+gs(-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;this.parent||(r=r.shrink(this.getPadding())),n.pushView(this,r);const o=yo([this.peripheryView.isVisible()?this.peripheryView.getSize().width:{px:0},{grow:1}],r.width,{spacing:gb}),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=mo(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?ws({...r,to:1,duration:500,easingFunction:b8}):ws({...r,from:0,to:1,duration:300,easingFunction:u=>(1-Math.pow(u*2-1,2))*.5})}else ws({...r,to:0,duration:400,easingFunction:y8})}makePeekMenuItem(){return{...this._peekState==0?{label:"Open closeup",callback:()=>this.togglePeek(!0),icon:W6}:{label:"Close closeup",callback:()=>this.togglePeek(!1),icon:X6},shortcut:"E"}}_handleContextMenu(n,r){const i=r.uiEvent,o=this.childCoords.normalizePoint(r.point.x,r.point.y).x,a=this.getScaleResolution("x").invertToComplex(o),s=D1([...this.getAncestors()].at(-1)),c=G5(this.child).filter(l=>!["sample","x","x2"].includes(l.channel)).filter(l=>["rect","rule"].includes(l.view.getMarkType())).filter(l=>s.has(l.view.name));let u=[this.makePeekMenuItem(),gd,{label:`Locus: ${yb(a)}`,type:"header"},gd],f="";for(const[l,d]of c.entries()){const h={view:d.view.name,field:d.field,locus:a},p=this.compositeAttributeInfoSource.getAttributeInfo({type:mb,specifier:h}),m=d.view.getTitleText()??d.view.spec.name;m!=f&&(l>0&&u.push({type:"divider"}),u.push({label:m,type:"header"}),f=m),u.push({label:d.field,submenu:cd(null,p,void 0,this)})}yd({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),a1(n,this.childCoords,r=>$(this,dc,r2).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"}}}dc=new WeakSet,r2=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 yb(t){return!le(t)&&"chrom"in t?u8(t):""+t}class Gk extends ue{constructor(){super(),this.reset()}reset(){this._index=0}handle(e){this._propagate({id:e.sample,displayName:e.displayName||e.sample,indexNumber:this._index++,attributes:Hk(e)})}}function Hk(t){const e=Object.assign({},t);return delete e.sample,delete e.displayName,e}function Qk(t){return"samples"in t&&Re(t.samples)&&"spec"in t&&Re(t.spec)}const Vk=(t,e)=>e.some(n=>t instanceof n);let vb,bb;function Yk(){return vb||(vb=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function _k(){return bb||(bb=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const Ab=new WeakMap,Ad=new WeakMap,xb=new WeakMap,xd=new WeakMap,wd=new WeakMap;function Wk(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&&Ab.set(n,t)}).catch(()=>{}),wd.set(e,t),e}function Xk(t){if(Ad.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)});Ad.set(t,e)}let Cd={get(t,e,n){if(t instanceof IDBTransaction){if(e==="done")return Ad.get(t);if(e==="objectStoreNames")return t.objectStoreNames||xb.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 Zk(t){Cd=t(Cd)}function qk(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...n){const r=t.call(Sd(this),e,...n);return xb.set(r,e.sort?e.sort():[e]),An(r)}:_k().includes(t)?function(...e){return t.apply(Sd(this),e),An(Ab.get(this))}:function(...e){return An(t.apply(Sd(this),e))}}function Kk(t){return typeof t=="function"?qk(t):(t instanceof IDBTransaction&&Xk(t),Vk(t,Yk())?new Proxy(t,Cd):t)}function An(t){if(t instanceof IDBRequest)return Wk(t);if(xd.has(t))return xd.get(t);const e=Kk(t);return e!==t&&(xd.set(t,e),wd.set(e,t)),e}const Sd=t=>wd.get(t);function Jk(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 $k=["get","getKey","getAll","getAllKeys","count"],eN=["put","add","delete","clear"],Ed=new Map;function wb(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(Ed.get(e))return Ed.get(e);const n=e.replace(/FromIndex$/,""),r=e!==n,i=eN.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||$k.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 Ed.set(e,o),o}Zk(t=>({...t,get:(e,n,r)=>wb(e,n)||t.get(e,n,r),has:(e,n)=>!!wb(e,n)||t.has(e,n)}));class Cb{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 Ro="bookmarks";class tN extends Cb{constructor(e){super(),this.specId=e,this._db=void 0}async _getDB(){if(!this._db){const e=`GenomeSpy: ${this.specId}`;this._db=Jk(e,1,{upgrade(n,r,i,o){n.createObjectStore(Ro,{keyPath:"name"})},blocked(){},blocking(){},terminated(){}})}return this._db}isReadonly(){return!1}async put(e,n){const i=(await this._getDB()).transaction(Ro,"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(Ro,e)}async getNames(){return(await this._getDB()).getAllKeys(Ro)}async get(e){return(await this._getDB()).get(Ro,e)}}/**
2349
+ */function*kY(e,t){const n=typeof t=="function";if(e!==void 0){let r=-1;for(const i of e)r>-1&&(yield n?t(r):t),r++,yield i}}const _6="setSamples",k6="sortBy",D6="retainFirstOfEach",I6="retainFirstNCategories",T6="filterByNominal",M6="filterByQuantitative",N6="removeUndefined",F6="groupByNominal",B6="groupToQuartiles",L6="groupByThresholds",O6="removeGroup",R6="retainMatched",_s="sampleView";function DY(){return{sampleData:void 0,groupMetadata:[],rootGroup:{name:"ROOT",title:"Root",samples:[]}}}function IY(e){const t=(n,r)=>{const i=e(n.attribute).accessor;return a=>i(a,r)};return S6({name:_s,initialState:DY(),reducers:{[_6]:(n,r)=>{const i=r.payload.samples;if(n.sampleData)throw new Error("Samples have already been set!");if(i.some(o=>o.id===void 0||o.id===null))throw new Error('The sample metadata contains missing sample ids or the "sample" column is missing!');if(new Set(i.map(o=>o.id)).size!=i.length)throw new Error("The sample metadata contains duplicate sample ids!");const a=i.map((o,s)=>({...o,indexNumber:s}));n.sampleData={ids:a.map(o=>o.id),entities:Object.fromEntries(a.map(o=>[o.id,o]))},n.rootGroup={name:"ROOT",title:"Root",samples:n.sampleData.ids}},[k6]:(n,r)=>{to(n,i=>EY(i,wY(t(r.payload,n),e(r.payload.attribute)),!1))},[D6]:(n,r)=>{to(n,i=>xY(i,t(r.payload,n)))},[I6]:(n,r)=>{to(n,i=>AY(i,t(r.payload,n),r.payload.n))},[M6]:(n,r)=>{to(n,i=>CY(i,t(r.payload,n),r.payload.operator,r.payload.operand))},[T6]:(n,r)=>{to(n,i=>C6(i,t(r.payload,n),r.payload.remove?"remove":"retain",r.payload.values))},[N6]:(n,r)=>{to(n,i=>_Y(i,t(r.payload,n)))},[F6]:(n,r)=>{var a;const i=(a=e(r.payload.attribute).scale)==null?void 0:a.domain();$1(n,o=>j6(o,t(r.payload,n),i)),n.groupMetadata.push({attribute:r.payload.attribute})},[B6]:(n,r)=>{$1(n,i=>FY(i,t(r.payload,n))),n.groupMetadata.push({attribute:r.payload.attribute})},[L6]:(n,r)=>{$1(n,i=>NY(i,t(r.payload,n),r.payload.thresholds)),n.groupMetadata.push({attribute:r.payload.attribute})},[O6]:(n,r)=>{const i=n.rootGroup;Zh(i)&&G6(i,r.payload.path)},[R6]:(n,r)=>{const i=t(r.payload,n),a=[];for(const s of V1(n))if(s.samples.length>0){const l=new Set;for(const c of s.samples)l.add(i(c));a.push(l)}const o=[];for(const s of a[0]){let l=!0;for(let c=1;c<a.length&&l;c++)l=a[c].has(s);l&&o.push(s)}to(n,s=>C6(s,i,"retain",o))}}})}function to(e,t){for(const n of V1(e))n.samples=t(n.samples)}function $1(e,t){for(const n of V1(e))t(n)}function V1(e){return Q1(e).map(t=>Gt(t))}function Y1(e){return e.provenance.present[_s]}function Q1(e){const t=[],n=[],r=i=>{if(t.push(i),Zh(i))for(const a of i.groups)r(a);else n.push([...t]);t.pop()};return r(e.rootGroup),n}function z6(e){return"samples"in e}function Zh(e){return"groups"in e}function*Z1(e){if(yield[e],Zh(e))for(const t of e.groups)for(const n of Z1(t))yield[e,...n]}const TY=rt(".4"),P6={lt:"<",lte:"≤",eq:"=",gte:"≥",gt:">"};function U6(e){return z`{${e.map((t,n)=>z`${n>0?", ":""}<strong>${t}</strong>`)}}`}function MY(e,t){if(!e.type.startsWith(_s))return;const n=e.payload,r=n.attribute&&t(n.attribute),i=r==null?void 0:r.name,a=(r==null?void 0:r.title)||z`<em>${i}</em>`,o={attributeName:i};switch(e.type.substring(_s.length+1)){case _6:return{...o,title:"The initial state",icon:bG};case k6:return{...o,title:"Sort by",provenanceTitle:z`Sort by ${a}`,icon:lG};case D6:return{...o,title:z`Retain the first sample of each <em>${i}</em>`,provenanceTitle:z`Retain the first sample of each ${a}`,icon:QS};case I6:return{...o,title:z`Retain first <strong>n</strong> categories of <em>${i}</em>...`,provenanceTitle:z`Retain first <strong>${n.n}</strong> categories of ${a}`,icon:QS};case T6:{const l=n.values,c=u=>z`${n.remove?"Remove":"Retain"} samples having ${l[0]===void 0||l[0]===null?z`undefined ${u}`:z`${u} ${l.length>1?z`in ${U6(l)}`:z`<span class="operator">=</span> <strong>${l[0]}</strong>`}`}`;return{...o,title:c(z`<em>${i}</em>`),provenanceTitle:c(a),icon:n.remove?kh:Qa}}case M6:{const l=c=>z`Retain samples having ${c} <span class="operator">${P6[n.operator]}</span> <strong>${TY(n.operand)}</strong>`;return{...o,title:l(z`<em>${i}</em>`),provenanceTitle:l(a),icon:Qa}}case N6:return{...o,title:"Remove samples having missing attribute",provenanceTitle:z`Remove samples having missing ${a}`,icon:kh};case F6:return{...o,title:"Group by",provenanceTitle:z`Group by ${a}`,icon:Nl};case B6:return{...o,title:"Group by quartiles",provenanceTitle:z`Group by quartiles on ${a}`,icon:Nl};case L6:return{...o,title:"Group by thresholds",provenanceTitle:z`Group by thresholds ${U6(n.thresholds.map(l=>`${P6[l.operator]} ${l.operand}`))} on ${a}`,icon:Nl};case O6:return{title:"Remove group",provenanceTitle:z`Remove group ${kY(n.path.map(l=>z`<strong>${l}</strong>`)," / ")}`,icon:kh};case R6:return{...o,title:z`Retain group-wise matched samples using <em>${i}</em>`,provenanceTitle:z`Retain group-wise matched samples using ${a}`,icon:Qa};default:return{...o,title:JSON.stringify(e),icon:VS}}}function j6(e,t,n,r){if(r&&!n)throw new Error("Custom labels need explicit group order!");const i=Us(e.samples,t),a=n?n.map(l=>[l,i.get(l)]).filter(l=>l[1]):[...i],s=e;s.groups=a.map(([l,c],u)=>({name:""+l,title:r?r[u]:l,samples:c})),delete e.samples}function H6(e,t,n){const r=o=>`Group ${o+1}`,i=qr(n.length-1).reverse(),a=$6(t,n.slice(1,n.length-1));j6(e,o=>r(a(o)),i.map(r),i.map(o=>Y6(n[o],n[o+1])))}function NY(e,t,n){H6(e,t,[{operator:"lt",operand:-1/0},...n,{operator:"lte",operand:1/0}])}function FY(e,t){const n=LY(BY(e.samples,t,[0,.25,.5,.75,1]));n.length==1&&n.push(n[0]),H6(e,t,n.map((r,i,a)=>({operator:i==a.length-1?"lte":"lt",operand:r})))}function G6(e,t){if(t.length==0)return;const n=e.groups.findIndex(r=>r.name==t[0]);if(!(n<0)){if(t.length==1)e.groups.splice(n,1);else if(t.length>1){const r=e.groups[n];Zh(r)&&G6(r,[...t].splice(1))}}}function $6(e,t){return r=>{const i=e(r);if(!(!Ke(i)||isNaN(i))){for(let a=0;a<t.length;a++)if(t[a].operator=="lt"){if(i<t[a].operand)return a}else if(i<=t[a].operand)return a;return t.length}}}function BY(e,t,n){const r=lk(e.map(t).filter(i=>Ke(i)&&!isNaN(i)));return n.map(i=>Fd(r,i))}function LY(e){const t=[e[0]];for(let n=1;n<e.length;n++)e[n]!=e[n-1]&&t.push(e[n]);return t}const V6=rt(".3~r"),Y6=(e,t)=>`${e.operator=="lt"?"[":"("}${V6(e.operand)}, ${V6(t.operand)}${t.operator=="lte"?"]":")"}`;function OY(e,t){const n=t.provenance.storeHelper.getDispatcher(),r=[],i=Ka(),a=z`<div class="modal-title">Group by threshold on <em>${e.name}</em></div>`,o=y=>{n(t.actions.groupByThresholds({attribute:e.attribute,thresholds:r})),i.close()},s=()=>z`<div class="modal-buttons"><button class="btn btn-cancel" @click="${()=>i.close()}">Cancel</button> <button class="btn btn-primary" ?disabled="${!RY(r)}" @click="${()=>o()}">${ke(Nl).node[0]} Group</button></div>`,l=(y,v)=>(v>0&&(y=Math.max(y,r[v-1].operand)),v<r.length-1&&(y=Math.min(y,r[v+1].operand)),y),c=(y,v)=>{const S=y.target.value;r[v].operator=S,g()},u=(y,v)=>{const S=y.target.value;/^\d+(\.\d+)?$/.test(S)&&(r[v].operand=l(+S,v),g())},f=y=>{const v=r.findIndex(S=>S.operand>y.value);r.splice(v<0?r.length:v,0,{operand:y.value,operator:"lt"}),g()},h=y=>{r[y.index].operand=l(y.value,y.index),g()},d=y=>{r.splice(y,1),g()},p=zY(e,t.leafSamples,t.sampleHierarchy);function g(){const y=()=>{const S=[{operand:-1/0,operator:"lt"},...r,{operand:1/0,operator:"lte"}],k=$6(w=>w,S),C=[];for(let w=1;w<S.length;w++)C.push(0);for(const w of p)C[k(w)-1]++;const E=[];for(let w=1;w<S.length;w++)E.push({index:w-1,name:w,interval:Y6(S[w-1],S[w]),n:C[w-1]});return z`<table class="threshold-groups"><thead><tr><th>Group</th><th>Interval</th><th>n</th></tr></thead><tbody>${E.map(w=>z`<tr><td><span class="group-color" style="background-color:${JC[w.index]}"></span> ${w.name}</td><td>${w.interval}</td><td>${w.n}</td></tr>`)}</tbody></table>`},v=z`<div class="gs-form-group group-by-thresholds-form"><label>Split into groups using the thresholds:</label><genome-spy-histogram .values="${p}" .thresholds="${r.map(S=>S.operand)}" .operators="${r.map(S=>S.operator)}" .showThresholdNumbers="${!0}" @add="${f}" @adjust="${h}"></genome-spy-histogram>${r.map((S,k)=>z`<div class="threshold-flex"><select .value="${S.operator}" @change="${C=>c(C,k)}"><option value="lt">${"<"}</option><option value="lte">${"≤"}</option></select> <input .value="${""+S.operand}" type="text" placeholder="Numeric value" @input="${C=>u(C,k)}" @blur="${C=>{C.target.value=""+r[k].operand}}"> <button @click="${()=>d(k)}" class="btn" title="Remove">${ke(ZS).node[0]}</button></div>`)} ${r.length?z`<small>The operator specifies whether the upper endpoint of the interval (<em>i.e.</em>, the group) is exclusive (&lt;) or inclusive(≤). </small>${y()}`:ne}</div>`;Bt(z`${a}<div class="modal-body">${v}</div>${s()}`,i.content)}g()}function RY(e){return e.length}function zY(e,t,n){const r=e.accessor;return t.map(i=>r(i,n))}function PY(e,t){const n=t.provenance.storeHelper.getDispatcher();let r=5;const i=Ka(),a=z`<div class="modal-title">Retain first n categories of <em>${e.title}</em></div>`,o=u=>{n(t.actions.retainFirstNCategories({attribute:e.attribute,n:r})),i.close()},s=()=>z`<div class="modal-buttons"><button class="btn btn-cancel" @click="${()=>i.close()}">Cancel</button> <button class="btn btn-primary" @click="${()=>o()}">${ke(Qa).node[0]} Retain</button></div>`,l=z`<div class="gs-form-group"><label>Number of categories to retain:</label> <input type="number" min="1" .valueAsNumber="${r}" @change="${u=>{r=u.target.valueAsNumber}}"></div>`;function c(){Bt(z`${a}<div class="modal-body">${l}</div>${s()}`,i.content)}c(),i.content.querySelector("input").focus()}function q1(e,t,n,r){const i=r.actions,a=t.attribute,o=r.sampleHierarchy,s=r.provenance.storeHelper.getDispatcher(),l=[];e&&l.push({label:e,type:"header"});const c=(h,d,p)=>{const g=r.provenance.getActionInfo(h);return{label:g.title,icon:g.icon,callback:d?void 0:p??(()=>s(h))}},u=(...h)=>l.push(...h.map(d=>c(d)));u(i.sortBy({attribute:a}));const f=(t==null?void 0:t.type)??"identifier";return f!="quantitative"?(f!="identifier"&&(u(i.groupByNominal({attribute:a}),i.retainFirstOfEach({attribute:a})),l.push(c(i.retainFirstNCategories({attribute:a,n:void 0}),!1,()=>PY(t,r)))),u(i.filterByNominal({attribute:a,values:[n]}),i.filterByNominal({attribute:a,remove:!0,values:[n]})),f!="identifier"&&l.push(c(i.retainMatched({attribute:a}),!o.groupMetadata.length))):(u(i.groupToQuartiles({attribute:a})),l.push({icon:Nl,label:"Group by thresholds...",callback:()=>OY(t,r)}),UY(n)?u(i.filterByQuantitative({attribute:a,operator:"gte",operand:+n}),i.filterByQuantitative({attribute:a,operator:"lte",operand:+n})):u(i.removeUndefined({attribute:a}))),l.push({icon:Qa,label:"Advanced filter...",callback:()=>IV(t,r)}),l}function UY(e){return e!=null&&e!==""&&!(typeof e=="number"&&isNaN(e))}var Ur={},no={};Object.defineProperty(no,"__esModule",{value:!0}),no.ActionCreators=no.ActionTypes=void 0;var ro={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"};no.ActionTypes=ro;var jY={undo:function(){return{type:ro.UNDO}},redo:function(){return{type:ro.REDO}},jumpToFuture:function(t){return{type:ro.JUMP_TO_FUTURE,index:t}},jumpToPast:function(t){return{type:ro.JUMP_TO_PAST,index:t}},jump:function(t){return{type:ro.JUMP,index:t}},clearHistory:function(){return{type:ro.CLEAR_HISTORY}}};no.ActionCreators=jY;var fr={};Object.defineProperty(fr,"__esModule",{value:!0}),fr.parseActions=qh,fr.isHistory=HY,fr.includeAction=GY,fr.excludeAction=$Y,fr.combineFilters=VY,fr.groupByActionTypes=YY,fr.newHistory=QY;function qh(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return Array.isArray(e)?e:typeof e=="string"?[e]:t}function HY(e){return typeof e.present<"u"&&typeof e.future<"u"&&typeof e.past<"u"&&Array.isArray(e.future)&&Array.isArray(e.past)}function GY(e){var t=qh(e);return function(n){return t.indexOf(n.type)>=0}}function $Y(e){var t=qh(e);return function(n){return t.indexOf(n.type)<0}}function VY(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce(function(r,i){return function(a,o,s){return r(a,o,s)&&i(a,o,s)}},function(){return!0})}function YY(e){var t=qh(e);return function(n){return t.indexOf(n.type)>=0?n.type:null}}function QY(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;return{past:e,present:t,future:n,group:r,_latestUnfiltered:t,index:e.length,limit:e.length+n.length+1}}var Q6={},ks={};Object.defineProperty(ks,"__esModule",{value:!0}),ks.set=nQ,ks.start=JY,ks.end=eQ,ks.log=tQ;function hr(e){return WY(e)||qY(e)||ZY()}function ZY(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function qY(e){if(Symbol.iterator in Object(e)||Object.prototype.toString.call(e)==="[object Arguments]")return Array.from(e)}function WY(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}var Wh,wn,W1={prevState:"#9E9E9E",action:"#03A9F4",nextState:"#4CAF50"};function XY(){wn={header:[],prev:[],action:[],next:[],msgs:[]}}function KY(){var e=wn,t=e.header,n=e.prev,r=e.next,i=e.action,a=e.msgs;if(console.group){var o,s,l,c,u;(o=console).groupCollapsed.apply(o,hr(t)),(s=console).log.apply(s,hr(n)),(l=console).log.apply(l,hr(i)),(c=console).log.apply(c,hr(r)),(u=console).log.apply(u,hr(a)),console.groupEnd()}else{var f,h,d,p,g;(f=console).log.apply(f,hr(t)),(h=console).log.apply(h,hr(n)),(d=console).log.apply(d,hr(i)),(p=console).log.apply(p,hr(r)),(g=console).log.apply(g,hr(a))}}function X1(e,t,n){return["%c".concat(e),"color: ".concat(t,"; font-weight: bold"),n]}function JY(e,t){XY(),Wh&&(console.group?(wn.header=["%credux-undo","font-style: italic","action",e.type],wn.action=X1("action",W1.action,e),wn.prev=X1("prev history",W1.prevState,t)):(wn.header=["redux-undo action",e.type],wn.action=["action",e],wn.prev=["prev history",t]))}function eQ(e){Wh&&(console.group?wn.next=X1("next history",W1.nextState,e):wn.next=["next history",e],KY())}function tQ(){if(Wh){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];wn.msgs=wn.msgs.concat([].concat(t,[`
2350
+ `]))}}function nQ(e){Wh=e}(function(e){function t(E){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?t=function(A){return typeof A}:t=function(A){return A&&typeof Symbol=="function"&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},t(E)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=C;var n=o(ks),r=no,i=fr;function a(){if(typeof WeakMap!="function")return null;var E=new WeakMap;return a=function(){return E},E}function o(E){if(E&&E.__esModule)return E;if(E===null||t(E)!=="object"&&typeof E!="function")return{default:E};var w=a();if(w&&w.has(E))return w.get(E);var A={},T=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var D in E)if(Object.prototype.hasOwnProperty.call(E,D)){var M=T?Object.getOwnPropertyDescriptor(E,D):null;M&&(M.get||M.set)?Object.defineProperty(A,D,M):A[D]=E[D]}return A.default=E,w&&w.set(E,A),A}function s(E,w){var A=Object.keys(E);if(Object.getOwnPropertySymbols){var T=Object.getOwnPropertySymbols(E);w&&(T=T.filter(function(D){return Object.getOwnPropertyDescriptor(E,D).enumerable})),A.push.apply(A,T)}return A}function l(E){for(var w=1;w<arguments.length;w++){var A=arguments[w]!=null?arguments[w]:{};w%2?s(Object(A),!0).forEach(function(T){c(E,T,A[T])}):Object.getOwnPropertyDescriptors?Object.defineProperties(E,Object.getOwnPropertyDescriptors(A)):s(Object(A)).forEach(function(T){Object.defineProperty(E,T,Object.getOwnPropertyDescriptor(A,T))})}return E}function c(E,w,A){return w in E?Object.defineProperty(E,w,{value:A,enumerable:!0,configurable:!0,writable:!0}):E[w]=A,E}function u(E){return d(E)||h(E)||f()}function f(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function h(E){if(Symbol.iterator in Object(E)||Object.prototype.toString.call(E)==="[object Arguments]")return Array.from(E)}function d(E){if(Array.isArray(E)){for(var w=0,A=new Array(E.length);w<E.length;w++)A[w]=E[w];return A}}function p(E,w){var A=(0,i.newHistory)([],E,[]);return w&&(A._latestUnfiltered=null),A}function g(E,w,A,T){var D=E.past.length+1;n.log("inserting",w),n.log("new free: ",A-D);var M=E.past,F=E._latestUnfiltered,U=A&&A<=D,q=M.slice(U?1:0),V=F!=null?[].concat(u(q),[F]):q;return(0,i.newHistory)(V,w,[],T)}function y(E,w){if(w<0||w>=E.future.length)return E;var A=E.past,T=E.future,D=E._latestUnfiltered,M=[].concat(u(A),[D],u(T.slice(0,w))),F=T[w],U=T.slice(w+1);return(0,i.newHistory)(M,F,U)}function v(E,w){if(w<0||w>=E.past.length)return E;var A=E.past,T=E.future,D=E._latestUnfiltered,M=A.slice(0,w),F=[].concat(u(A.slice(w+1)),[D],u(T)),U=A[w];return(0,i.newHistory)(M,U,F)}function S(E,w){return w>0?y(E,w-1):w<0?v(E,E.past.length+w):E}function k(E,w){return w.indexOf(E)>-1?E:!E}function C(E){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};n.set(w.debug);var A=l({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},w,{initTypes:(0,i.parseActions)(w.initTypes,["@@redux-undo/INIT"]),clearHistoryType:(0,i.parseActions)(w.clearHistoryType,[r.ActionTypes.CLEAR_HISTORY])}),T=A.neverSkipReducer?function(M,F){for(var U=arguments.length,q=new Array(U>2?U-2:0),V=2;V<U;V++)q[V-2]=arguments[V];return l({},M,{present:E.apply(void 0,[M.present,F].concat(q))})}:function(M){return M},D;return function(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:D,F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};n.start(F,M);for(var U=M,q=arguments.length,V=new Array(q>2?q-2:0),pe=2;pe<q;pe++)V[pe-2]=arguments[pe];if(!D)if(n.log("history is uninitialized"),M===void 0){var Se={type:"@@redux-undo/CREATE_HISTORY"},tt=E.apply(void 0,[M,Se].concat(V));return U=p(tt,A.ignoreInitialState),n.log("do not set initialState on probe actions"),n.end(U),U}else(0,i.isHistory)(M)?(U=D=A.ignoreInitialState?M:(0,i.newHistory)(M.past,M.present,M.future),n.log("initialHistory initialized: initialState is a history",D)):(U=D=p(M,A.ignoreInitialState),n.log("initialHistory initialized: initialState is not a history",D));var ie;switch(F.type){case void 0:return U;case A.undoType:return ie=S(U,-1),n.log("perform undo"),n.end(ie),T.apply(void 0,[ie,F].concat(V));case A.redoType:return ie=S(U,1),n.log("perform redo"),n.end(ie),T.apply(void 0,[ie,F].concat(V));case A.jumpToPastType:return ie=v(U,F.index),n.log("perform jumpToPast to ".concat(F.index)),n.end(ie),T.apply(void 0,[ie,F].concat(V));case A.jumpToFutureType:return ie=y(U,F.index),n.log("perform jumpToFuture to ".concat(F.index)),n.end(ie),T.apply(void 0,[ie,F].concat(V));case A.jumpType:return ie=S(U,F.index),n.log("perform jump to ".concat(F.index)),n.end(ie),T.apply(void 0,[ie,F].concat(V));case k(F.type,A.clearHistoryType):return ie=p(U.present,A.ignoreInitialState),n.log("perform clearHistory"),n.end(ie),T.apply(void 0,[ie,F].concat(V));default:if(ie=E.apply(void 0,[U.present,F].concat(V)),A.initTypes.some(function(Pi){return Pi===F.type}))return n.log("reset history due to init action"),n.end(D),D;if(U._latestUnfiltered===ie)return U;var yt=typeof A.filter=="function"&&!A.filter(F,ie,U);if(yt){var Vr=(0,i.newHistory)(U.past,ie,U.future,U.group);return A.syncFilter||(Vr._latestUnfiltered=U._latestUnfiltered),n.log("filter ignored action, not storing it in past"),n.end(Vr),Vr}var De=A.groupBy(F,ie,U);if(De!=null&&De===U.group){var Xe=(0,i.newHistory)(U.past,ie,U.future,U.group);return n.log("groupBy grouped the action with the previous action"),n.end(Xe),Xe}return U=g(U,ie,A.limit,De),n.log("inserted new state into history"),n.end(U),U}}}})(Q6),function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"ActionTypes",{enumerable:!0,get:function(){return t.ActionTypes}}),Object.defineProperty(e,"ActionCreators",{enumerable:!0,get:function(){return t.ActionCreators}}),Object.defineProperty(e,"parseActions",{enumerable:!0,get:function(){return n.parseActions}}),Object.defineProperty(e,"isHistory",{enumerable:!0,get:function(){return n.isHistory}}),Object.defineProperty(e,"includeAction",{enumerable:!0,get:function(){return n.includeAction}}),Object.defineProperty(e,"excludeAction",{enumerable:!0,get:function(){return n.excludeAction}}),Object.defineProperty(e,"combineFilters",{enumerable:!0,get:function(){return n.combineFilters}}),Object.defineProperty(e,"groupByActionTypes",{enumerable:!0,get:function(){return n.groupByActionTypes}}),Object.defineProperty(e,"newHistory",{enumerable:!0,get:function(){return n.newHistory}}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return r.default}});var t=no,n=fr,r=i(Q6);function i(a){return a&&a.__esModule?a:{default:a}}}(Ur);const rQ=Ca(Ur);function Xh(e){return e.split("-")[0]}function K1(e){return e.split("-")[1]}function J1(e){return["top","bottom"].includes(Xh(e))?"x":"y"}function Z6(e){return e==="y"?"height":"width"}function q6(e,t,n){let{reference:r,floating:i}=e;const a=r.x+r.width/2-i.width/2,o=r.y+r.height/2-i.height/2,s=J1(t),l=Z6(s),c=r[l]/2-i[l]/2,u=s==="x";let f;switch(Xh(t)){case"top":f={x:a,y:r.y-i.height};break;case"bottom":f={x:a,y:r.y+r.height};break;case"right":f={x:r.x+r.width,y:o};break;case"left":f={x:r.x-i.width,y:o};break;default:f={x:r.x,y:r.y}}switch(K1(t)){case"start":f[s]-=c*(n&&u?-1:1);break;case"end":f[s]+=c*(n&&u?-1:1)}return f}const iQ=async(e,t,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:a=[],platform:o}=n,s=await(o.isRTL==null?void 0:o.isRTL(t));let l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:c,y:u}=q6(l,r,s),f=r,h={};for(let d=0;d<a.length;d++){const{name:p,fn:g}=a[d],{x:y,y:v,data:S,reset:k}=await g({x:c,y:u,initialPlacement:r,placement:f,strategy:i,middlewareData:h,rects:l,platform:o,elements:{reference:e,floating:t}});c=y??c,u=v??u,h={...h,[p]:{...h[p],...S}},k&&(typeof k=="object"&&(k.placement&&(f=k.placement),k.rects&&(l=k.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):k.rects),{x:c,y:u}=q6(l,f,s)),d=-1)}return{x:c,y:u,placement:f,strategy:i,middlewareData:h}};function aQ(e){return typeof e!="number"?function(t){return{top:0,right:0,bottom:0,left:0,...t}}(e):{top:e,right:e,bottom:e,left:e}}function Kh(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}async function oQ(e,t){var n;t===void 0&&(t={});const{x:r,y:i,platform:a,rects:o,elements:s,strategy:l}=e,{boundary:c="clippingAncestors",rootBoundary:u="viewport",elementContext:f="floating",altBoundary:h=!1,padding:d=0}=t,p=aQ(d),g=s[h?f==="floating"?"reference":"floating":f],y=Kh(await a.getClippingRect({element:(n=await(a.isElement==null?void 0:a.isElement(g)))==null||n?g:g.contextElement||await(a.getDocumentElement==null?void 0:a.getDocumentElement(s.floating)),boundary:c,rootBoundary:u,strategy:l})),v=Kh(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({rect:f==="floating"?{...o.floating,x:r,y:i}:o.reference,offsetParent:await(a.getOffsetParent==null?void 0:a.getOffsetParent(s.floating)),strategy:l}):o[f]);return{top:y.top-v.top+p.top,bottom:v.bottom-y.bottom+p.bottom,left:y.left-v.left+p.left,right:v.right-y.right+p.right}}const sQ={left:"right",right:"left",bottom:"top",top:"bottom"};function Jh(e){return e.replace(/left|right|bottom|top/g,t=>sQ[t])}function cQ(e,t,n){n===void 0&&(n=!1);const r=K1(e),i=J1(e),a=Z6(i);let o=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[a]>t.floating[a]&&(o=Jh(o)),{main:o,cross:Jh(o)}}const lQ={start:"end",end:"start"};function W6(e){return e.replace(/start|end/g,t=>lQ[t])}["top","right","bottom","left"].reduce((e,t)=>e.concat(t,t+"-start",t+"-end"),[]);const X6=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n;const{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:l}=t,{mainAxis:c=!0,crossAxis:u=!0,fallbackPlacements:f,fallbackStrategy:h="bestFit",flipAlignment:d=!0,...p}=e,g=Xh(r),y=f||(g===o||!d?[Jh(o)]:function(T){const D=Jh(T);return[W6(T),D,W6(D)]}(o)),v=[o,...y],S=await oQ(t,p),k=[];let C=((n=i.flip)==null?void 0:n.overflows)||[];if(c&&k.push(S[g]),u){const{main:T,cross:D}=cQ(r,a,await(s.isRTL==null?void 0:s.isRTL(l.floating)));k.push(S[T],S[D])}if(C=[...C,{placement:r,overflows:k}],!k.every(T=>T<=0)){var E,w;const T=((E=(w=i.flip)==null?void 0:w.index)!=null?E:0)+1,D=v[T];if(D)return{data:{index:T,overflows:C},reset:{placement:D}};let M="bottom";switch(h){case"bestFit":{var A;const F=(A=C.map(U=>[U,U.overflows.filter(q=>q>0).reduce((q,V)=>q+V,0)]).sort((U,q)=>U[1]-q[1])[0])==null?void 0:A[0].placement;F&&(M=F);break}case"initialPlacement":M=o}if(r!==M)return{reset:{placement:M}}}return{}}}},uQ=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){const{x:n,y:r}=t,i=await async function(a,o){const{placement:s,platform:l,elements:c}=a,u=await(l.isRTL==null?void 0:l.isRTL(c.floating)),f=Xh(s),h=K1(s),d=J1(s)==="x",p=["left","top"].includes(f)?-1:1,g=u&&d?-1:1,y=typeof o=="function"?o(a):o;let{mainAxis:v,crossAxis:S,alignmentAxis:k}=typeof y=="number"?{mainAxis:y,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...y};return h&&typeof k=="number"&&(S=h==="end"?-1*k:k),d?{x:S*g,y:v*p}:{x:v*p,y:S*g}}(t,e);return{x:n+i.x,y:r+i.y,data:i}}}};function K6(e){return e&&e.document&&e.location&&e.alert&&e.setInterval}function jr(e){if(e==null)return window;if(!K6(e)){const t=e.ownerDocument;return t&&t.defaultView||window}return e}function $l(e){return jr(e).getComputedStyle(e)}function Hr(e){return K6(e)?"":e?(e.nodeName||"").toLowerCase():""}function J6(){const e=navigator.userAgentData;return e!=null&&e.brands?e.brands.map(t=>t.brand+"/"+t.version).join(" "):navigator.userAgent}function dr(e){return e instanceof jr(e).HTMLElement}function Ds(e){return e instanceof jr(e).Element}function eb(e){return typeof ShadowRoot>"u"?!1:e instanceof jr(e).ShadowRoot||e instanceof ShadowRoot}function ed(e){const{overflow:t,overflowX:n,overflowY:r}=$l(e);return/auto|scroll|overlay|hidden/.test(t+r+n)}function fQ(e){return["table","td","th"].includes(Hr(e))}function e8(e){const t=/firefox/i.test(J6()),n=$l(e);return n.transform!=="none"||n.perspective!=="none"||n.contain==="paint"||["transform","perspective"].includes(n.willChange)||t&&n.willChange==="filter"||t&&!!n.filter&&n.filter!=="none"}function t8(){return!/^((?!chrome|android).)*safari/i.test(J6())}const n8=Math.min,Vl=Math.max,td=Math.round;function io(e,t,n){var r,i,a,o;t===void 0&&(t=!1),n===void 0&&(n=!1);const s=e.getBoundingClientRect();let l=1,c=1;t&&dr(e)&&(l=e.offsetWidth>0&&td(s.width)/e.offsetWidth||1,c=e.offsetHeight>0&&td(s.height)/e.offsetHeight||1);const u=Ds(e)?jr(e):window,f=!t8()&&n,h=(s.left+(f&&(r=(i=u.visualViewport)==null?void 0:i.offsetLeft)!=null?r:0))/l,d=(s.top+(f&&(a=(o=u.visualViewport)==null?void 0:o.offsetTop)!=null?a:0))/c,p=s.width/l,g=s.height/c;return{width:p,height:g,top:d,right:h+p,bottom:d+g,left:h,x:h,y:d}}function Oi(e){return(t=e,(t instanceof jr(t).Node?e.ownerDocument:e.document)||window.document).documentElement;var t}function nd(e){return Ds(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function r8(e){return io(Oi(e)).left+nd(e).scrollLeft}function hQ(e,t,n){const r=dr(t),i=Oi(t),a=io(e,r&&function(l){const c=io(l);return td(c.width)!==l.offsetWidth||td(c.height)!==l.offsetHeight}(t),n==="fixed");let o={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(r||!r&&n!=="fixed")if((Hr(t)!=="body"||ed(i))&&(o=nd(t)),dr(t)){const l=io(t,!0);s.x=l.x+t.clientLeft,s.y=l.y+t.clientTop}else i&&(s.x=r8(i));return{x:a.left+o.scrollLeft-s.x,y:a.top+o.scrollTop-s.y,width:a.width,height:a.height}}function i8(e){return Hr(e)==="html"?e:e.assignedSlot||e.parentNode||(eb(e)?e.host:null)||Oi(e)}function a8(e){return dr(e)&&getComputedStyle(e).position!=="fixed"?e.offsetParent:null}function tb(e){const t=jr(e);let n=a8(e);for(;n&&fQ(n)&&getComputedStyle(n).position==="static";)n=a8(n);return n&&(Hr(n)==="html"||Hr(n)==="body"&&getComputedStyle(n).position==="static"&&!e8(n))?t:n||function(r){let i=i8(r);for(eb(i)&&(i=i.host);dr(i)&&!["html","body"].includes(Hr(i));){if(e8(i))return i;i=i.parentNode}return null}(e)||t}function o8(e){if(dr(e))return{width:e.offsetWidth,height:e.offsetHeight};const t=io(e);return{width:t.width,height:t.height}}function s8(e){const t=i8(e);return["html","body","#document"].includes(Hr(t))?e.ownerDocument.body:dr(t)&&ed(t)?t:s8(t)}function c8(e,t){var n;t===void 0&&(t=[]);const r=s8(e),i=r===((n=e.ownerDocument)==null?void 0:n.body),a=jr(r),o=i?[a].concat(a.visualViewport||[],ed(r)?r:[]):r,s=t.concat(o);return i?s:s.concat(c8(o))}function l8(e,t,n){return t==="viewport"?Kh(function(r,i){const a=jr(r),o=Oi(r),s=a.visualViewport;let l=o.clientWidth,c=o.clientHeight,u=0,f=0;if(s){l=s.width,c=s.height;const h=t8();(h||!h&&i==="fixed")&&(u=s.offsetLeft,f=s.offsetTop)}return{width:l,height:c,x:u,y:f}}(e,n)):Ds(t)?function(r,i){const a=io(r,!1,i==="fixed"),o=a.top+r.clientTop,s=a.left+r.clientLeft;return{top:o,left:s,x:s,y:o,right:s+r.clientWidth,bottom:o+r.clientHeight,width:r.clientWidth,height:r.clientHeight}}(t,n):Kh(function(r){var i;const a=Oi(r),o=nd(r),s=(i=r.ownerDocument)==null?void 0:i.body,l=Vl(a.scrollWidth,a.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),c=Vl(a.scrollHeight,a.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0);let u=-o.scrollLeft+r8(r);const f=-o.scrollTop;return $l(s||a).direction==="rtl"&&(u+=Vl(a.clientWidth,s?s.clientWidth:0)-l),{width:l,height:c,x:u,y:f}}(Oi(e)))}function dQ(e){const t=c8(e),n=["absolute","fixed"].includes($l(e).position)&&dr(e)?tb(e):e;return Ds(n)?t.filter(r=>Ds(r)&&function(i,a){const o=a==null||a.getRootNode==null?void 0:a.getRootNode();if(i!=null&&i.contains(a))return!0;if(o&&eb(o)){let s=a;do{if(s&&i===s)return!0;s=s.parentNode||s.host}while(s)}return!1}(r,n)&&Hr(r)!=="body"):[]}const pQ={getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e;const a=[...n==="clippingAncestors"?dQ(t):[].concat(n),r],o=a[0],s=a.reduce((l,c)=>{const u=l8(t,c,i);return l.top=Vl(u.top,l.top),l.right=n8(u.right,l.right),l.bottom=n8(u.bottom,l.bottom),l.left=Vl(u.left,l.left),l},l8(t,o,i));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{rect:t,offsetParent:n,strategy:r}=e;const i=dr(n),a=Oi(n);if(n===a)return t;let o={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if((i||!i&&r!=="fixed")&&((Hr(n)!=="body"||ed(a))&&(o=nd(n)),dr(n))){const l=io(n,!0);s.x=l.x+n.clientLeft,s.y=l.y+n.clientTop}return{...t,x:t.x-o.scrollLeft+s.x,y:t.y-o.scrollTop+s.y}},isElement:Ds,getDimensions:o8,getOffsetParent:tb,getDocumentElement:Oi,getElementRects:e=>{let{reference:t,floating:n,strategy:r}=e;return{reference:hQ(t,tb(n),r),floating:{...o8(n),x:0,y:0}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>$l(e).direction==="rtl"},gQ=(e,t,n)=>iQ(e,t,{platform:pQ,...n});let pr;const Yl=[],nb=hs(e=>e(),150,!1),rb={type:"divider"};function Ql(e){if((e==null?void 0:e.type)=="contextmenu"){e.preventDefault();return}pr&&(pr.remove(),pr=void 0,document.body.classList.remove(ua))}function u8(e){var t;if(!(e<1)){for(let n=e;n<Yl.length;n++)(t=Yl[n])==null||t.remove(),Yl[n]=void 0;for(const n of Yl[e-1].querySelectorAll("li.active"))n.classList.remove("active")}}const mQ=()=>z`<li class="menu-divider"></li>`,bQ=e=>z`<li class="menu-header">${e.label||"-"}</li>`,yQ=(e,t)=>z`<li><a class="submenu-item" @click="${n=>n.stopPropagation()}" @mouseup="${n=>n.stopPropagation()}" @mouseenter="${n=>nb(()=>{const r=n.target.closest("li");xQ(e.submenu,r,t+1),n.stopPropagation()})}" @mouseleave="${()=>nb(()=>u8(t+1))}"><span>${e.label}</span></a></li>`,vQ=e=>z`<li><a class="choice-item" @mouseup="${()=>{Ql(),e.callback()}}"><span>${e.icon?ke(e.icon).node[0]:""} ${e.label}</span> ${e.shortcut?z`<span class="kbd-shortcut">${e.shortcut}</span>`:ne} </a>${e.ellipsisCallback?z`<a class="menu-ellipsis" @click="${e.ellipsisCallback}">${ke(kG).node[0]}</a>`:ne}</li>`,wQ=e=>z`<li><span class="disabled-item">${e.icon?ke(e.icon).node[0]:""} ${e.label||"-"}</span></li>`;function f8(e,t=1){switch(e.type){case"divider":return mQ();case"header":return bQ(e);default:return e.submenu?yQ(e,t):e.callback?vQ(e):wQ(e)}}function xQ(e,t,n){h8(e,t,n,"right-start"),t.classList.add("active")}function h8(e,t,n,r){const i=document.createElement("ul");i.classList.add("gs-context-menu"),i.addEventListener("mouseenter",()=>{nb(()=>{})}),Bt(e.map(a=>f8(a,n)),i),pr.appendChild(i),u8(n),Yl[n]=i,gQ(t,i,{placement:r??"right-start",middleware:n?[X6()]:[uQ(2),X6()]}).then(({x:a,y:o})=>{const s=i.querySelector(":scope > li");s&&(o-=s.getBoundingClientRect().top),i.style.left=`${a}px`,i.style.top=`${o}px`})}function d8(e,t,n){n??(n="bottom-start"),Ql();const r=performance.now(),i=document.body;pr=document.createElement("div"),pr.classList.add("gs-context-menu-backdrop"),pr.addEventListener("click",Ql),pr.addEventListener("contextmenu",Ql),pr.addEventListener("mouseup",()=>{performance.now()-r>500&&Ql()},{once:!0}),i.appendChild(pr),document.body.classList.add(ua),h8(e.items,t,0,n)}function ib(e,t){d8(e,AQ(t),"right-start"),t.preventDefault()}function AQ(e){return{getBoundingClientRect(){return{width:0,height:0,x:e.clientX,y:e.clientY,top:e.clientY,left:e.clientX,right:e.clientX,bottom:e.clientY,toJSON:void 0}}}}const ab={NOMINAL:"nominal",ORDINAL:"ordinal",QUANTITATIVE:"quantitative"},rd="SAMPLE_ATTRIBUTE",p8="SAMPLE_NAME",EQ=/^attribute-(.*)$/;class g8 extends Ro{constructor(t){super({title:"Sample metadata",data:{name:null},hconcat:[],spacing:t.spec.samples.attributeSpacing??1,resolve:{scale:{default:"independent"},axis:{default:"independent"}}},t.context,void 0,"sample-metadata"),this.sampleView=t,this._attributeHighlighState={backgroundOpacity:1,currentAttribute:void 0,abortController:new AbortController},this.sampleView.compositeAttributeInfoSource.addAttributeInfoSource(rd,n=>this.children.map(this.getAttributeInfoFromView.bind(this)).find(r=>r&&r.name==n.specifier)),this.sampleView.compositeAttributeInfoSource.addAttributeInfoSource(p8,n=>m8),this.addInteractionEventListener("contextmenu",this.handleContextMenu.bind(this)),this.addInteractionEventListener("mousemove",(n,r)=>{var s;const i=r.target,a=this._findSampleForMouseEvent(n,r),o=i&&((s=this.getAttributeInfoFromView(i))==null?void 0:s.name)||void 0;if(a){const l=JSON.stringify([a.id,o]);this.context.updateTooltip(l,c=>Promise.resolve(this.sampleToTooltip(c)))}this._handleAttributeHighlight(o)}),Gt([...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(t,n,r={}){this.isVisible()&&super.render(t,n,{...r,clipRect:this.sampleView._clipBySummary(n)})}_handleAttributeHighlight(t){const n=this._attributeHighlighState;t!=n.currentAttribute&&(n.abortController.abort(),n.abortController=new AbortController,this.context.animator.transition({from:n.backgroundOpacity,onUpdate:r=>{n.backgroundOpacity=r},easingFunction:zx,signal:n.abortController.signal,...t?{to:.1,duration:1e3,delay:n.backgroundOpacity<1?0:500}:{to:1,duration:200,delay:150}}).catch(r=>{}),this.context.animator.requestRender()),n.currentAttribute=t}getSample(t){var n;return(n=this.sampleView.sampleHierarchy.sampleData)==null?void 0:n.entities[t]}_findSampleForMouseEvent(t,n){return this.sampleView.getSampleAt(n.point.y-this.sampleView.childCoords.y)}_getAttributeOpacity(t){const n=this._attributeHighlighState;return t==n.currentAttribute?1:n.backgroundOpacity}handleContextMenu(t,n){const r=n.uiEvent,i=this._findSampleForMouseEvent(t,n);if(!i){r.preventDefault();return}const a=[this.sampleView.makePeekMenuItem(),rb],o=this.getAttributeInfoFromView(n.target);if(o){const s=i.attributes[o.name];a.push(...q1(z`Attribute: <strong>${o.name}</strong>`,o,s,this.sampleView))}else a.push(...q1(z`Sample: <strong>${i.displayName}</strong>`,m8,i.id,this.sampleView));ib({items:a},r)}_setSamples(t){if(this.childCount)throw new Error("Children are already created!");this._createViews();const n=this.context.dataFlow;CS(this,n);const r=n.findDataSourceByKey(this);r.visit(a=>a.initialize());const i=[];this.visit(a=>{if(a instanceof Je){const o=a.mark;o.initializeEncoders(),i.push(o.initializeGraphics().then(s=>o)),n.addObserver(s=>{o.initializeData(),o.updateGraphicsData()},a)}}),Promise.allSettled(i).then(a=>{for(const o of a)"value"in o?o.value.finalizeGraphicsInitialization():"reason"in o&&console.error(o.reason)}),r.updateDynamicData(t),this.visit(a=>{a.name.startsWith("title")&&n.findDataSourceByKey(a).load()})}_createViews(){const t=[];t.push(this.context.createView(CQ(this.sampleView.spec.samples),this));for(const n of this.getAttributeNames()){const r=this.context.createView(this._createAttributeViewSpec(n),this);r.opacityFunction=i=>i*this._getAttributeOpacity(n),t.push(r)}this.setChildren(t),kS(this)}_getAttributeDef(t){var n,r;return(r=(n=this.sampleView.spec.samples)==null?void 0:n.attributes)==null?void 0:r[t]}getAttributeNames(){return this._cache("attributeNames",()=>[...this.sampleView.getSamples().flatMap(r=>Object.keys(r.attributes)).reduce((r,i)=>r.add(i),new Set)])}_createAttributeViewSpec(t){const n=this._getAttributeDef(t);let r=n?n.type:void 0;if(!r){const i=this.sampleView.getSamples();switch(Oy(i.map(a=>a.attributes[t]))){case"integer":case"number":r=ab.QUANTITATIVE;break;default:r=ab.NOMINAL}}return SQ(t,{...n||{},type:r},this.sampleView.spec.samples)}_findViewForAttribute(t){return this.children[this.getAttributeNames().indexOf(t)+1]}getAttributeInfoFromView(t){const n=t==null?void 0:t.name.match(EQ);if(n){const r=t.getScaleResolution("color"),i=n[1];return{name:i,attribute:{type:rd,specifier:i},accessor:(a,o)=>o.sampleData.entities[a].attributes[i],type:r.type,scale:r.getScale(),title:z`<em class="attribute">${i}</em>`}}}getAttributeInfo(t){return this.getAttributeInfoFromView(this._findViewForAttribute(t))}sampleToTooltip(t){const[n,r]=JSON.parse(t),i=this.getSample(n),a=(s,l)=>_Q(l)?this.getAttributeInfo(s).scale(l):"transparent",o=z`<table class="attributes">${Object.entries(i.attributes).map(([s,l])=>z`<tr class="${Zm({hovered:s==r})}"><th>${s}</th><td>${LS(l)}</td><td class="color" .style="background-color: ${a(s,l)}"></td></tr>`)}</table>`;return z`<div class="title"><strong>${i.displayName||i.id}</strong></div>${o}`}getDefaultResolution(t,n){return"independent"}handleVerboseCommand(t){const n=t;for(const r of this.getAttributeNames()){const i=this.getAttributeInfo(r);if((i.type==Vp||i.type==Yp)&&this.sampleView.getSamples().find(o=>o.attributes[i.name]==n)){const o=this.sampleView.actions.filterByNominal({attribute:{type:rd,specifier:r},values:[n]}),s=this.sampleView.provenance.getPresentState().lastAction,l=this.sampleView.actions.filterByNominal.match(s)&&!s.payload.remove&&s.payload.attribute.type==rd&&s.payload.attribute.specifier==r&&s.payload.values.length==1;return this.sampleView.provenance.storeHelper.dispatch(l?[Ur.ActionCreators.undo(),o]:o),!0}}return!1}isPickingSupported(){return!1}}function SQ(e,t,n){const r=`attributes["${e}"]`,i={name:`attribute-${e}`,title:{text:e,orient:"bottom",align:"right",baseline:"middle",offset:5,angle:-90+(n.attributeLabelAngle??0),dy:-.5,font:n.attributeLabelFont,fontSize:n.attributeLabelFontSize??11,fontStyle:n.attributeLabelFontStyle,fontWeight:n.attributeLabelFontWeight},visible:t.visible??!0,width:t.width??n.attributeSize??10,transform:[{type:"filter",expr:`datum.${r} != null`}],mark:{type:"rect",xOffset:-.5},encoding:{facetIndex:{field:"indexNumber"},color:{field:r,type:t.type,scale:t.scale}},opacity:1};return t.barScale&&t.type==ab.QUANTITATIVE&&(i.encoding.x={field:`attributes["${e}"]`,type:t.type,scale:t.barScale,axis:null}),i}function CQ(e){return{name:"metadata-sample-name",title:{text:e.labelTitleText??"Sample name",orient:"bottom",anchor:"start",offset:5,font:e.attributeLabelFont,fontSize:e.attributeLabelFontSize??11,fontStyle:e.attributeLabelFontStyle,fontWeight:e.attributeLabelFontWeight},width:e.labelLength??140,mark:{type:"text",baseline:"middle",font:e.labelFont,size:e.labelFontSize??11,fontStyle:e.labelFontStyle,fontWeight:e.labelFontWeight,align:e.labelAlign??"left",flushY:!1},encoding:{facetIndex:{field:"indexNumber"},x:{value:0},x2:{value:1},y:{value:0},y2:{value:1},text:{field:"displayName"}}}}function _Q(e){return e!==""&&!(typeof e=="number"&&isNaN(e))&&e!==null}const m8=Object.freeze({name:"sample",attribute:{type:p8},accessor:e=>e,type:"identifier",scale:void 0});class kQ extends Wn{constructor(t){super({title:{text:"Groups",orient:"none"},width:{step:22},data:{name:null},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:"_title",expr:"datum.title || datum.name"},{type:"formula",as:"_NA",expr:"datum._title === null"},{type:"formula",as:"_title",expr:"datum._title !== null ? datum._title: 'NA'"}],encoding:{x:{field:"_depth",type:"ordinal",scale:{align:0,padding:.2272727},axis:null},y:{field:"_y1",type:"nominal",scale:{type:"ordinal",domain:qr(500)},axis:null},y2:{field:"_y2"}},layer:[{title:"Group",mark:{type:"rect",clip:!0,color:"#e8e8e8",cornerRadiusBottomLeft:14,cornerRadiusTopLeft:14}},{mark:{type:"text",clip:!0,angle:-90,paddingY:5,tooltip:null},encoding:{text:{field:"_title"},opacity:{field:"_NA",type:"nominal",scale:{type:"ordinal",domain:[!1,!0],range:[1,.3]}}}}]},t.context,void 0,"sample-groups"),this.sampleView=t,this._addBroadcastHandler("layoutComputed",()=>{this.updateRange()}),this.addInteractionEventListener("contextmenu",(n,r)=>{const i=r.uiEvent,a=this.context.getCurrentHover();if(!a)return;const o=a.datum._rawGroup;let s;for(const f of Z1(this.sampleView.sampleHierarchy.rootGroup))if(f.at(-1)===o){s=f.slice(1);break}const l=t.actions.removeGroup({path:s.map(f=>f.name)}),c=t.provenance.getActionInfo(l),u=t.provenance.storeHelper.getDispatcher();ib({items:[{label:c.title,icon:c.icon,callback:()=>u(l)}]},i)})}updateRange(){var a,o;const t=(a=this.sampleView.getLocations())==null?void 0:a.groups;if(!(t!=null&&t.length))return;const n=((o=this.sampleView)==null?void 0:o.childCoords.height)??0,r=this.getScaleResolution("y"),i=[];for(const s of t)i.push(1-(s.locSize.location+s.locSize.size)/n),i.push(1-s.locSize.location/n);r.getScale().range(i),this.context.glHelper.createRangeTexture(r,!0)}updateGroups(){var i;const t=((i=this.sampleView.getLocations())==null?void 0:i.groups)??[],n=this.context.dataFlow.findDataSourceByKey(this);if(!n)return;const r=t.map(a=>({_index:a.key.index,_depth:a.key.depth,_rawGroup:a.key.group,attribute:a.key.attributeLabel,name:a.key.group.name,...a.key.group.name!=a.key.group.title?{title:a.key.group.title}:{},n:a.key.n}));n.updateDynamicData(r),this.getScaleResolution("x").reconfigure(),this.getScaleResolution("y").reconfigure(),t.length&&this.updateRange(),Gt([...this.getAncestors()]).visit(a=>Rc(a,"size"))}}class DQ{constructor(){this.attributeInfoSourcesByType={}}addAttributeInfoSource(t,n){this.attributeInfoSourcesByType[t]=n}getAttributeInfo(t){const n=this.attributeInfoSourcesByType[t.type];if(!n)throw new Error("Cannot find attribute info source for: "+JSON.stringify(t));const r=n(t);if(r)return r;throw new Error("Unknown attribute: "+JSON.stringify(t))}}function id(e,t,n){let r=n&&e(n);return i=>{const a=e(i);a!==r&&(t(a,r),r=a)}}function b8(e,{viewHeight:t=0,sampleHeight:n=0,groupSpacing:r=5,summaryHeight:i=0}){if(!t&&!n)throw new Error("viewHeight or sampleHeight must be provided!");const a=h=>Gt(h),o=e.map(h=>({path:h,sampleGroup:a(h),samples:a(h).samples})).filter(h=>h.samples.length),s=n?h=>({px:h.length*n+i,grow:0}):h=>({px:i,grow:h.length}),l=[];jc(o.map(h=>s(h.samples)),t,{spacing:r}).forEach((h,d)=>{l.push({key:o[d].path,locSize:h})});const c=[];for(const[h,d]of o.entries()){const p={grow:1},g=d.samples;jc(g.map(y=>p),Math.max(0,l[h].locSize.size-i),{offset:l[h].locSize.location+i}).forEach((y,v)=>{const{size:S,location:k}=y,C=S*.1*sA(15,22,S);y.location=k+C,y.size=S-2*C,c.push({key:g[v],locSize:y})})}function*u(){const h=[];for(const d of l){const p=d.key,g=Gt(p);for(;h.length<=p.length&&h.length&&p[h.length-1]!=h[h.length-1].group;)yield h.pop();for(let y=0;y<h.length;y++){const v=h[y];v.locSize.size=d.locSize.location-v.locSize.location+d.locSize.size}for(let y=h.length;y<p.length;y++)h.push({group:p[y],locSize:{...d.locSize},depth:h.length,n:0});for(const y of h)y.n+=g.samples.length}for(;h.length;)yield h.pop()}const f=[...u()].sort((h,d)=>h.depth-d.depth).map((h,d)=>({key:{index:d,group:h.group,depth:h.depth,n:h.n,attributeLabel:void 0},locSize:h.locSize}));return{samples:c,summaries:l,groups:f}}function IQ(e,t){return t.find(n=>Ax(n.locSize,e))}const y8="VALUE_AT_LOCUS",v8=10;class ob extends Aa{constructor(n,r,i,a,o){var u;super(n,r,i,a);Fe(this,hd);En(this,"_peekState",0);this.provenance=o,this.spec=n,this.stickySummaries=n.stickySummaries??!0,this.compositeAttributeInfoSource=new DQ,this.child=r.createView(n.spec,this,"sample-facets"),this.summaryViews=new Ro({vconcat:[]},r,this,"sampleSummaries"),this.child.visit(f=>{f instanceof Je&&this.summaryViews.setChildren(f.sampleAggregateViews)}),this.childCoords=pi.ZERO,this.facetTexture=void 0,this.facetTextureData=void 0,this.peripheryView=new Ro({title:"Sidebar",resolve:{scale:{default:"independent"},axis:{default:"independent"}},hconcat:[],spacing:0},r,this,"sample-sidebar"),this.peripheryCoords=pi.ZERO,this.groupPanel=new kQ(this),this.attributePanel=new g8(this),this.peripheryView.setChildren([this.groupPanel,this.attributePanel]);{const f=(u=this.spec.spec)==null?void 0:u.view;if(f!=null&&f.fill||f!=null&&f.stroke){const h=new Je(Xx(f),this.context,this,"sample-background");h.blockEncodingInheritance=!0,this.backgroundView=h}else this.backgroundView=void 0}this.child.addInteractionEventListener("contextmenu",this._handleContextMenu.bind(this)),this.provenance.storeHelper.subscribe(id(f=>Y1(f).rootGroup,f=>{this._locations=void 0,this.groupPanel.updateGroups(),this._peekState=0,this.context.requestLayoutReflow(),this.context.animator.requestRender()})),this.provenance.storeHelper.subscribe(id(f=>Y1(f).sampleData,f=>{const h=f&&Object.values(f.entities);h&&(this.attributePanel._setSamples(h),this.facetTextureData=new Float32Array(Math.ceil(h.length*2/4)*4),this.groupPanel.updateGroups())})),this.compositeAttributeInfoSource.addAttributeInfoSource(y8,f=>{var C;const h=f.specifier,d=this.findDescendantByName(h.view);let p;if(Ke(h.locus))p=h.locus;else{const E=this.getScaleResolution("x").getGenome();if(E)p=E.toContinuous(h.locus.chrom,h.locus.pos);else throw new Error("Encountered a complex locus but no genome is available!")}const g=E=>{var w;return(w=d.mark.findDatumAt(E,p))==null?void 0:w[h.field]},[y,v]=Object.entries(d.getEncoding()).find(([E,w])=>"field"in w&&w.field==h.field),S=y?(C=d.getScaleResolution(y))==null?void 0:C.getScale():void 0;return{name:h.field,attribute:f,title:z`<em class="attribute">${h.field}</em> <span class="viewTitle">(${d.getTitleText()??d.name})</span> at <span class="locus">${w8(h.locus)}</span>`,accessor:g,type:"type"in v?v.type:void 0,scale:S}}),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",(f,h)=>{this._lastMouseY=h.point.y-this.childCoords.y}),this.addInteractionEventListener("wheel",(f,h)=>{const d=h.uiEvent;this._peekState&&!d.ctrlKey&&(this._scrollOffset=Df(this._scrollOffset+d.deltaY,0,this._scrollableHeight-this.childCoords.height),this.groupPanel.updateRange(),this.context.animator.requestRender(),h.uiEvent={type:d.type,deltaX:d.deltaX,preventDefault:d.preventDefault.bind(d)})},!0),r.addKeyboardListener("keydown",f=>{f.code=="KeyE"&&!f.repeat&&this.togglePeek()}),r.addKeyboardListener("keyup",f=>{f.code=="KeyE"&&this.togglePeek(!1)});const s=f=>this.compositeAttributeInfoSource.getAttributeInfo(f),l=IY(s);this.provenance.addReducer(l.name,l.reducer),this.provenance.addActionInfoSource(f=>MY(f,s)),this.actions=l.actions;const c=tY(f=>{var h;return(h=f.sampleData)==null?void 0:h.entities},f=>f&&Object.values(f));this.getSamples=()=>c(this.sampleHierarchy),this.spec.samples.data&&this.loadSamples()}getOverhang(){let n=this.peripheryView.isVisible()?this.peripheryView.getSize().width.px:0;return n&&(n+=v8),new on(0,0,0,n)}*[Symbol.iterator](){this.backgroundView&&(yield this.backgroundView),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}=_H(AS(this.spec.samples.data,this),new TQ);r.observers.push(a=>{const o=a.getData();this.provenance.storeHelper.dispatch(this.actions.setSamples({samples:o}))});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,a)=>({id:i,displayName:i,indexNumber:a,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()[_s]}get leafSamples(){return Q1(this.sampleHierarchy).map(r=>r.at(-1)).map(r=>r.samples).flat()}getLocations(){var n,r,i;if(!this._locations){if(!((n=this.childCoords)!=null&&n.height))return;const a=this.sampleHierarchy,o=Q1(a),s=[null,...a.groupMetadata],l=(((r=this.summaryViews)==null?void 0:r.isVisible())&&((i=this.summaryViews)==null?void 0:i.getSize().height.px))??0,c=b8(o,{viewHeight:this.childCoords.height,groupSpacing:5,summaryHeight:l}),u=b8(o,{sampleHeight:35,groupSpacing:15,summaryHeight:l}),f=()=>-this._scrollOffset,h=()=>this._peekState;this._scrollableLocations=u,this._scrollableHeight=u.summaries.map(y=>y.locSize.location+y.locSize.size).reduce((y,v)=>Math.max(y,v),0);const d=(y,v)=>{const S=[];for(let k=0;k<y.length;k++){const C=y[k].key;S.push({key:C,locSize:ZB(y[k].locSize,qB(v[k].locSize,f),h)})}return S},p=d(c.groups,u.groups),g=document.createElement("div");p.forEach(y=>{if(y.key.depth==0)return;const v=s[y.key.depth].attribute,S=this.compositeAttributeInfoSource.getAttributeInfo(v).title;S?ze(S)?y.key.attributeLabel=S:(Bt(S,g),y.key.attributeLabel=g.textContent.replace(/\s+/g," ").trim()):y.key.attributeLabel="unknown"}),this._locations={samples:d(c.samples,u.samples),summaries:d(c.summaries,u.summaries),groups:p}}return this._locations}getSampleAt(n){const r=IQ(n,this.getLocations().samples);if(r)return this.sampleHierarchy.sampleData.entities[r.key]}getSummaryAt(n){const r=this.getLocations().summaries,i=r.findIndex(a=>Ax(a.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={}){var l;const a=1/r.height,o=()=>a,s=this._clipBySummary(r);for(const c of this.getLocations().samples){const u={...i,sampleFacetRenderingOptions:{locSize:WB(c.locSize,o)},facetId:[c.key],clipRect:s};(l=this.backgroundView)==null||l.render(n,r,u),this.child.render(n,r,u)}}renderSummaries(n,r,i={}){i={...i,clipRect:r};const a=this.summaryViews.getSize().height.px;for(const[o,s]of this.getLocations().summaries.entries()){const l=()=>{const c=s.locSize.location;let u=r.y+c;return this.stickySummaries?u+Df(-c,0,s.locSize.size-a):u};this.summaryViews.render(n,r.modify({y:l,height:a}),{...i,facetId:[o]})}}render(n,r,i={}){if(!this.isVisible())return;this.parent||(r=r.shrink(this.getPadding())),n.pushView(this,r);const a=jc([this.peripheryView.isVisible()?this.peripheryView.getSize().width:{px:0},{grow:1}],r.width,{spacing:v8}),o=s=>r.modify({x:s.location+r.x,width:s.size});this.peripheryCoords=o(a[0]),this.childCoords=o(a[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 a;const n=this.facetTextureData;n.fill(0);const r=(a=this.sampleHierarchy.sampleData)==null?void 0:a.entities;if(r){const o=this.getLocations().samples,s=this.childCoords.height;for(const l of o){const c=r[l.key].indexNumber;n[c*2+0]=l.locSize.location/s,n[c*2+1]=l.locSize.size/s}}const i=this.context.glHelper.gl;this.facetTexture=Pc(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:a=>this.context.animator.requestTransition(a),onUpdate:a=>{this._peekState=Math.pow(a,2),this.groupPanel.updateRange(),this.context.animator.requestRender()},from:this._peekState};if(this._peekState==0){const a=this._lastMouseY,o=(i=this.getSampleAt(a))==null?void 0:i.id;let s;if(o)s=(c=>c.location+c.size/2)(this._scrollableLocations.samples.find(c=>c.key==o).locSize);else{const l=this.getSummaryAt(a);l&&(s=this._scrollableLocations.summaries[l.index].locSize.location-(l.location.locSize.location-a))}s?this._scrollOffset=s-a:this._scrollOffset=(this._scrollableHeight-this.childCoords.height)/2,this._scrollableHeight>this.childCoords.height?Sh({...r,to:1,duration:500,easingFunction:FL}):Sh({...r,from:0,to:1,duration:300,easingFunction:c=>(1-Math.pow(c*2-1,2))*.5})}else Sh({...r,to:0,duration:400,easingFunction:ML})}makePeekMenuItem(){return{...this._peekState==0?{label:"Open closeup",callback:()=>this.togglePeek(!0),icon:RG}:{label:"Close closeup",callback:()=>this.togglePeek(!1),icon:zG},shortcut:"E"}}_handleContextMenu(n,r){const i=r.uiEvent,a=this.childCoords.normalizePoint(r.point.x,r.point.y).x,o=this.getScaleResolution("x").invertToComplex(a),s=IS([...this.getAncestors()].at(-1)),l=MH(this.child).filter(f=>!["sample","x","x2"].includes(f.channel)).filter(f=>["rect","rule"].includes(f.view.getMarkType())).filter(f=>s.has(f.view.name));let c=[this.makePeekMenuItem(),rb,{label:`Locus: ${w8(o)}`,type:"header"},rb],u="";for(const[f,h]of l.entries()){const d={view:h.view.name,field:h.field,locus:o},p=this.compositeAttributeInfoSource.getAttributeInfo({type:y8,specifier:d}),g=h.view.getTitleText()??h.view.spec.name;g!=u&&(f>0&&c.push({type:"divider"}),c.push({label:g,type:"header"}),u=g),c.push({label:h.field,submenu:q1(null,p,void 0,this)})}ib({items:c},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),qx(n,this.childCoords,r=>Ze(this,hd,b_).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"}}}hd=new WeakSet,b_=function(n,r,i){const a=this.child.getScaleResolution("x");if(!a||!a.isZoomable())return;const o=n.normalizePoint(i.x,i.y),s=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta);a.zoom(2**i.zDelta,o.x,s.x-o.x),this.context.animator.requestRender()};function w8(e){return!Ke(e)&&"chrom"in e?EL(e):""+e}class TQ extends We{constructor(){super(),this.reset()}reset(){this._index=0}handle(t){this._propagate({id:t.sample,displayName:t.displayName||t.sample,indexNumber:this._index++,attributes:MQ(t)})}}function MQ(e){const t=Object.assign({},e);return delete t.sample,delete t.displayName,t}function NQ(e){return"samples"in e&&Ht(e.samples)&&"spec"in e&&Ht(e.spec)}const FQ=(e,t)=>t.some(n=>e instanceof n);let x8,A8;function BQ(){return x8||(x8=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function LQ(){return A8||(A8=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const E8=new WeakMap,sb=new WeakMap,S8=new WeakMap,cb=new WeakMap,lb=new WeakMap;function OQ(e){const t=new Promise((n,r)=>{const i=()=>{e.removeEventListener("success",a),e.removeEventListener("error",o)},a=()=>{n(Ri(e.result)),i()},o=()=>{r(e.error),i()};e.addEventListener("success",a),e.addEventListener("error",o)});return t.then(n=>{n instanceof IDBCursor&&E8.set(n,e)}).catch(()=>{}),lb.set(t,e),t}function RQ(e){if(sb.has(e))return;const t=new Promise((n,r)=>{const i=()=>{e.removeEventListener("complete",a),e.removeEventListener("error",o),e.removeEventListener("abort",o)},a=()=>{n(),i()},o=()=>{r(e.error||new DOMException("AbortError","AbortError")),i()};e.addEventListener("complete",a),e.addEventListener("error",o),e.addEventListener("abort",o)});sb.set(e,t)}let ub={get(e,t,n){if(e instanceof IDBTransaction){if(t==="done")return sb.get(e);if(t==="objectStoreNames")return e.objectStoreNames||S8.get(e);if(t==="store")return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return Ri(e[t])},set(e,t,n){return e[t]=n,!0},has(e,t){return e instanceof IDBTransaction&&(t==="done"||t==="store")?!0:t in e}};function zQ(e){ub=e(ub)}function PQ(e){return e===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(t,...n){const r=e.call(fb(this),t,...n);return S8.set(r,t.sort?t.sort():[t]),Ri(r)}:LQ().includes(e)?function(...t){return e.apply(fb(this),t),Ri(E8.get(this))}:function(...t){return Ri(e.apply(fb(this),t))}}function UQ(e){return typeof e=="function"?PQ(e):(e instanceof IDBTransaction&&RQ(e),FQ(e,BQ())?new Proxy(e,ub):e)}function Ri(e){if(e instanceof IDBRequest)return OQ(e);if(cb.has(e))return cb.get(e);const t=UQ(e);return t!==e&&(cb.set(e,t),lb.set(t,e)),t}const fb=e=>lb.get(e);function jQ(e,t,{blocked:n,upgrade:r,blocking:i,terminated:a}={}){const o=indexedDB.open(e,t),s=Ri(o);return r&&o.addEventListener("upgradeneeded",l=>{r(Ri(o.result),l.oldVersion,l.newVersion,Ri(o.transaction))}),n&&o.addEventListener("blocked",()=>n()),s.then(l=>{a&&l.addEventListener("close",()=>a()),i&&l.addEventListener("versionchange",()=>i())}).catch(()=>{}),s}const HQ=["get","getKey","getAll","getAllKeys","count"],GQ=["put","add","delete","clear"],hb=new Map;function C8(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(hb.get(t))return hb.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,i=GQ.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||HQ.includes(n)))return;const a=async function(o,...s){const l=this.transaction(o,i?"readwrite":"readonly");let c=l.store;return r&&(c=c.index(s.shift())),(await Promise.all([c[n](...s),i&&l.done]))[0]};return hb.set(t,a),a}zQ(e=>({...e,get:(t,n,r)=>C8(t,n)||e.get(t,n,r),has:(t,n)=>!!C8(t,n)||e.has(t,n)}));class _8{isReadonly(){return!0}async put(t,n){this._checkReadonly()}async delete(t){this._checkReadonly()}async getNames(){return[]}async get(t){}_checkReadonly(){if(this.isReadonly())throw new Error("This bookmark")}}const Zl="bookmarks";class $Q extends _8{constructor(t){super(),this.specId=t,this._db=void 0}async _getDB(){if(!this._db){const t=`GenomeSpy: ${this.specId}`;this._db=jQ(t,1,{upgrade(n,r,i,a){n.createObjectStore(Zl,{keyPath:"name"})},blocked(){},blocking(){},terminated(){}})}return this._db}isReadonly(){return!1}async put(t,n){const i=(await this._getDB()).transaction(Zl,"readwrite");try{n?(await i.store.delete(n),await i.store.put(t)):await i.store.put(t),await i.done}catch(a){throw i.abort(),a}}async delete(t){(await this._getDB()).delete(Zl,t)}async getNames(){return(await this._getDB()).getAllKeys(Zl)}async get(t){return(await this._getDB()).get(Zl,t)}}/**
2164
2351
  * @license
2165
2352
  * Copyright 2017 Google LLC
2166
2353
  * SPDX-License-Identifier: BSD-3-Clause
2167
- */const jo=(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),jo(o,e);return!0},ic=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)},Sb=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),iN(e)}};function nN(t){this._$AN!==void 0?(ic(this),this._$AM=t,Sb(this)):this._$AM=t}function rN(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++)jo(r[o],!1),ic(r[o]);else r!=null&&(jo(r,!1),ic(r));else jo(this,t)}const iN=t=>{var e,n,r,i;t.type==At.CHILD&&((e=(r=t)._$AP)!==null&&e!==void 0||(r._$AP=rN),(n=(i=t)._$AQ)!==null&&n!==void 0||(i._$AQ=nN))};let Eb=class extends Zr{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,n,r){super._$AT(e,n,r),Sb(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&&(jo(this,e),ic(this))}setValue(e){if(Vy(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(){}};/**
2354
+ */const ql=(e,t)=>{var n,r;const i=e._$AN;if(i===void 0)return!1;for(const a of i)(r=(n=a)._$AO)===null||r===void 0||r.call(n,t,!1),ql(a,t);return!0},ad=e=>{let t,n;do{if((t=e._$AM)===void 0)break;n=t._$AN,n.delete(e),e=t}while((n==null?void 0:n.size)===0)},k8=e=>{for(let t;t=e._$AM;e=t){let n=t._$AN;if(n===void 0)t._$AN=n=new Set;else if(n.has(e))break;n.add(e),QQ(t)}};function VQ(e){this._$AN!==void 0?(ad(this),this._$AM=e,k8(this)):this._$AM=e}function YQ(e,t=!1,n=0){const r=this._$AH,i=this._$AN;if(i!==void 0&&i.size!==0)if(t)if(Array.isArray(r))for(let a=n;a<r.length;a++)ql(r[a],!1),ad(r[a]);else r!=null&&(ql(r,!1),ad(r));else ql(this,e)}const QQ=e=>{var t,n,r,i;e.type==cr.CHILD&&((t=(r=e)._$AP)!==null&&t!==void 0||(r._$AP=YQ),(n=(i=e)._$AQ)!==null&&n!==void 0||(i._$AQ=VQ))};let D8=class extends ys{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,n,r){super._$AT(t,n,r),k8(this),this.isConnected=t._$AU}_$AO(t,n=!0){var r,i;t!==this.isConnected&&(this.isConnected=t,t?(r=this.reconnected)===null||r===void 0||r.call(this):(i=this.disconnected)===null||i===void 0||i.call(this)),n&&(ql(this,t),ad(this))}setValue(t){if(QC(this._$Ct))this._$Ct._$AI(t,this);else{const n=[...this._$Ct._$AH];n[this._$Ci]=t,this._$Ct._$AI(n,this,0)}}disconnected(){}reconnected(){}};/**
2168
2355
  * @license
2169
2356
  * Copyright 2020 Google LLC
2170
2357
  * SPDX-License-Identifier: BSD-3-Clause
2171
- */const Db=()=>new oN;class oN{}const Dd=new WeakMap,Mb=or(class extends Eb{render(t){return z}update(t,[e]){var n;const r=e!==this.Y;return r&&this.Y!==void 0&&this.rt(void 0),(r||this.lt!==this.ct)&&(this.Y=e,this.dt=(n=t.options)===null||n===void 0?void 0:n.host,this.rt(this.ct=t.element)),z}rt(t){var e;if(typeof this.Y=="function"){const n=(e=this.dt)!==null&&e!==void 0?e:globalThis;let r=Dd.get(n);r===void 0&&(r=new WeakMap,Dd.set(n,r)),r.get(this.Y)!==void 0&&this.Y.call(this.dt,void 0),r.set(this.Y,t),t!==void 0&&this.Y.call(this.dt,t)}else this.Y.value=t}get lt(){var t,e,n;return typeof this.Y=="function"?(e=Dd.get((t=this.dt)!==null&&t!==void 0?t:globalThis))===null||e===void 0?void 0:e.get(this.Y):(n=this.Y)===null||n===void 0?void 0:n.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});/**
2358
+ */const I8=()=>new ZQ;class ZQ{}const db=new WeakMap,T8=Ya(class extends D8{render(e){return ne}update(e,[t]){var n;const r=t!==this.Y;return r&&this.Y!==void 0&&this.rt(void 0),(r||this.lt!==this.ct)&&(this.Y=t,this.dt=(n=e.options)===null||n===void 0?void 0:n.host,this.rt(this.ct=e.element)),ne}rt(e){var t;if(typeof this.Y=="function"){const n=(t=this.dt)!==null&&t!==void 0?t:globalThis;let r=db.get(n);r===void 0&&(r=new WeakMap,db.set(n,r)),r.get(this.Y)!==void 0&&this.Y.call(this.dt,void 0),r.set(this.Y,e),e!==void 0&&this.Y.call(this.dt,e)}else this.Y.value=e}get lt(){var e,t,n;return typeof this.Y=="function"?(t=db.get((e=this.dt)!==null&&e!==void 0?e:globalThis))===null||t===void 0?void 0:t.get(this.Y):(n=this.Y)===null||n===void 0?void 0:n.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});/**
2172
2359
  * @license
2173
2360
  * Copyright 2018 Google LLC
2174
2361
  * SPDX-License-Identifier: BSD-3-Clause
2175
- */const aN={},sN=or(class extends Zr{constructor(){super(...arguments),this.ot=aN}render(t,e){return e()}update(t,[e,n]){if(Array.isArray(e)){if(Array.isArray(this.ot)&&this.ot.length===e.length&&e.every((r,i)=>r===this.ot[i]))return Ae}else if(this.ot===e)return Ae;return this.ot=Array.isArray(e)?Array.from(e):e,this.render(e,n)}});class cN extends bt{constructor(){super(),this.inputRef=Db(),this.app=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 genomeSpy(){return this.app.genomeSpy}get _inputField(){return this.inputRef.value}static get properties(){return{app:{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=Tb(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;const n=new Intl.Collator("en",{usage:"search",sensitivity:"base"});for(const i of this.genomeSpy.getSearchableViews()){const o=i.getAccessor("search"),a=i.getAccessor("x"),s=i.getAccessor("x2"),c=i.getScaleResolution("x");if(!(!a||!s||!(c!=null&&c.isZoomable()))){for(const u of((r=i.getCollector())==null?void 0:r.getData())??[])if(n.compare(o(u),e)===0){const f=vc([a(u),s(u)],null,1.2);return await c.zoomTo(f),!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 db&&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){uN(e,this._inputField).then(()=>{this._inputField.blur(),this.search(e)})}_getSearchHelp(){var r,i;const e=[];e.push(E`<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 o of((r=this.genomeSpy)==null?void 0:r.getSearchableViews())||[]){const a=o.getTitleText()??o.spec.name,s=o.getAccessor("search"),c=s.fields.join(", "),u=Ng(3,o.getCollector().getData(),s);e.push(E`<p>Search <em>${a}</em> (${c}). Examples:</p><ul>${u.map(f=>E`<li>${f}</li>`)}</ul>`)}const n=(i=this.app.getSampleView())==null?void 0:i.attributePanel;if(n){const o=n.getAttributeNames().map(a=>n.getAttributeInfo(a)).filter(a=>a.type=="nominal"||a.type=="ordinal").sort(()=>.5-Math.random()).map(a=>{var s;return[...((s=a.scale)==null?void 0:s.domain())??[]].sort(()=>.5-Math.random())[0]}).filter(a=>a!==void 0).slice(0,3);o.length&&e.push(E`<p>Filter samples by categorical attributes. Examples:</p><ul>${o.map(a=>E`<li>${a}</li>`)}</ul>`)}return E`<div class="search-help" @click="${this._onSearchHelpClicked}">${e}</div>`}updated(e){this._focused&&this._inputField.select()}render(){return E`<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}" ${Mb(this.inputRef)}> ${sN([123],()=>this._getSearchHelp())}</div>`}}customElements.define("genome-spy-search-field",cN);function uN(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 Tb(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,tr}}),e}const Ib="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSI+PHBhdGggZD0iTTQuNyAyMS4ycy40IDIuMyAxLjMgMy42QzcgMjYgOS44IDI4IDkuOCAyOHMzLjQtMi42IDYuNC04LjVjMCAwIDEgLjEgMS45LS40LjktLjYuOC0uNCAxLTEuMiAwIDAgMi45LjUgNi42IDAgMi4xLS4zIDQuMy0xIDYuMi0yLjUgMCAwLTEuMS0xLjctMi41LTUuMS0uNS0xLjMtMi0xLjgtNC42LTQuNmwtOC4yIDguNi0xMS45IDYuOXoiIGZpbGwtb3BhY2l0eT0iLjEiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSIjN2ZiYmRkIi8+PHBhdGggZD0iTTEyLjQgMTUuNWMtLjctLjUtMi40LS44LTQuNC0uNC0yIC40LTQgMS4zLTQuOCAxLjgtLjUuMy0xLjIgMS0xLjIgMS40IDAgLjcuMyAxLjguOCAyLjQuMy4zLjcuNSAxLjQuNi44IDAgMi41LTEuNCAzLjUtMiAxLS42IDEuNi0uOCAyLjctMS4ybC0yLjkgMi40Yy0xLjMgMS4yLTIuMiAxLjUtMi40IDIuMyAwIC41IDAgMS40LjUgMS44LjQuNS42LjggMS42LjguNiAwIDEgMCAyLjYtMS41LjktLjkgMi4zLTMgMi43LTMuNy42LTEuMSAxLTIuMi43LTMtLjItMS0uNC0xLjQtLjgtMS43ek0xNy40IDE0LjJjLS4zLS41LS45LTEuMi0uMi0yLjVsMS45LTNjLjUtLjggMi0yLjMgMi42LTIuNi42LS40IDEuNS0uNiAyLS4yLjYuNCAxIDEgMS4zIDEuNS40LjYuNyAxLjMuMiAyLS43IDEtMS42LjktMi44IDEuNy0xLjIuOC0xLjkgMS4yLTIuNSAxLjlsMy44LTEuOGMxLjMtLjYgMi43LTEuMSAzLjQtLjcuOC41LjguNyAxIDEuNC4zIDEtLjIgMS45LS44IDIuNC0uNS42LTEuNS45LTIuNiAxLjItMS40LjQtNC41IDEtNS44LjUtMS4zLS41LTEuMy0xLjQtMS41LTEuOHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iLjUiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0iIzdmYmJkZCIvPjxwYXRoIGQ9Ik0xMy44IDE1LjNjLjkuOC42IDIgMS40IDEuOCAxLS4yIDEuNC0uOCAxLjMtMS41IDAtLjcgMC0uOC0uNC0xLjYtLjMtLjctMS0xLjEtMi0uNS0uNy41LTEuNCAxLjMtMS40IDEuM3MuMi0uMyAxLjEuNXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9Ii41Ii8+PC9zdmc+",kb={name:"@genome-spy/app",description:"GenomeSpy-based visualization tool for multiple patient samples",author:{name:"Kari Lavikka",email:"kari.lavikka@helsinki.fi"},contributors:[],license:"MIT",version:"0.31.2",main:"dist/index.js",files:["dist/"],repository:{type:"git",url:"github:genome-spy/genome-spy",directory:"packages/app"},scripts:{dev:"node dev-server.js",build:"vite build",prepublishOnly:"npm run build"},dependencies:{"@floating-ui/dom":"^0.5.0","@fortawesome/fontawesome-free":"^6.1.1","@fortawesome/fontawesome-svg-core":"^6.1.1","@fortawesome/free-solid-svg-icons":"^6.1.1","@genome-spy/core":"^0.31.2","@reduxjs/toolkit":"^1.8.4",idb:"^7.0.1",lit:"^2.4.0","lz-string":"^1.4.4",mapsort:"^1.0.5","redux-batched-actions":"^0.5.0","redux-undo":"^1.0.1",snarkdown:"^2.0.0"},gitHead:"c29482b83972de8f18b0283b3a93f8dbcbb6af9d"};/**
2362
+ */const qQ={},WQ=Ya(class extends ys{constructor(){super(...arguments),this.ot=qQ}render(e,t){return t()}update(e,[t,n]){if(Array.isArray(t)){if(Array.isArray(this.ot)&&this.ot.length===t.length&&t.every((r,i)=>r===this.ot[i]))return pt}else if(this.ot===t)return pt;return this.ot=Array.isArray(t)?Array.from(t):t,this.render(t,n)}});class XQ extends sr{constructor(){super(),this.inputRef=I8(),this.app=void 0,this.getDefaultValue=()=>"",this._keyListener=this._onKeyDown.bind(this),this._documentClickListener=t=>{var n;t.target!==this._inputField&&((n=this._inputField)==null||n.blur())},this._focused=!1}get genomeSpy(){return this.app.genomeSpy}get _inputField(){return this.inputRef.value}static get properties(){return{app:{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(t){switch(t.code){case"KeyF":t.metaKey||t.altKey||t.ctrlKey||(t.preventDefault(),this.inputRef.value.focus());break}}_initializeGenome(){const t=M8(this.genomeSpy.viewRoot);t&&(this._genomeResolution=t,this._genome=this.genomeSpy.genomeStore.getGenome(),this.getDefaultValue=()=>this._genome.formatInterval(t.getDomain()),t.addEventListener("domain",hs(()=>this.requestUpdate(),60,!1)))}async searchViews(t){var r;const n=new Intl.Collator("en",{usage:"search",sensitivity:"base"});for(const i of this.genomeSpy.getSearchableViews()){const a=i.getAccessor("search"),o=i.getAccessor("x"),s=i.getAccessor("x2"),l=i.getScaleResolution("x");if(!(!o||!s||!(l!=null&&l.isZoomable()))){for(const c of((r=i.getCollector())==null?void 0:r.getData())??[])if(n.compare(a(c),t)===0){const u=wd([o(c),s(c)],null,1.2);return await l.zoomTo(u),!0}}}return!1}async search(t){await(async()=>{if(this._genomeResolution&&this._genome){const r=this._genome.parseInterval(t);if(r){this._genomeResolution.zoomTo(r);return}if(await this.searchViews(t))return;this.genomeSpy.viewRoot.visit(i=>{i instanceof g8&&i.handleVerboseCommand(t)})}})(),this._inputField.value=this.getDefaultValue(),this.requestUpdate()}_onSearchHelpClicked(t){const n=t.target;n.tagName=="LI"&&this._doExampleSearch(n.innerText)}_onSearchFocused(t){const n=t.target;switch(t.type){case"focus":this._focused=!0,n.select();break;case"blur":this._focused=!1;break}}_onSearchKeyDown(t){const n=t.target;t.code=="Enter"?(t.preventDefault(),this.search(n.value).then(()=>{n.focus(),n.select()}).catch(r=>{console.log(r),alert(r)})):t.code=="Escape"?n.blur():t.stopPropagation()}_doExampleSearch(t){KQ(t,this._inputField).then(()=>{this._inputField.blur(),this.search(t)})}_getSearchHelp(){var r,i;const t=[];t.push(z`<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 a of((r=this.genomeSpy)==null?void 0:r.getSearchableViews())||[]){const o=a.getTitleText()??a.spec.name,s=a.getAccessor("search"),l=s.fields.join(", "),c=wx(3,a.getCollector().getData(),s);t.push(z`<p>Search <em>${o}</em> (${l}). Examples:</p><ul>${c.map(u=>z`<li>${u}</li>`)}</ul>`)}const n=(i=this.app.getSampleView())==null?void 0:i.attributePanel;if(n){const a=n.getAttributeNames().map(o=>n.getAttributeInfo(o)).filter(o=>o.type=="nominal"||o.type=="ordinal").sort(()=>.5-Math.random()).map(o=>{var s;return[...((s=o.scale)==null?void 0:s.domain())??[]].sort(()=>.5-Math.random())[0]}).filter(o=>o!==void 0).slice(0,3);a.length&&t.push(z`<p>Filter samples by categorical attributes. Examples:</p><ul>${a.map(o=>z`<li>${o}</li>`)}</ul>`)}return z`<div class="search-help" @click="${this._onSearchHelpClicked}">${t}</div>`}updated(t){this._focused&&this._inputField.select()}render(){return z`<div class="search"><input type="text" class="search-input" .value="${this.getDefaultValue()}" @mousedown="${t=>{this._focused||(this._inputField.focus(),t.preventDefault(),t.stopPropagation())}}" @keydown="${this._onSearchKeyDown.bind(this)}" @focus="${this._onSearchFocused}" @blur="${this._onSearchFocused}" ${T8(this.inputRef)}> ${WQ([123],()=>this._getSearchHelp())}</div>`}}customElements.define("genome-spy-search-field",XQ);function KQ(e,t){return new Promise(n=>{let r=0;const i=700/e.length+30;function a(){t.value=e.substring(0,r),r>=e.length?setTimeout(n,500):(r++,setTimeout(a,Math.random()*i*2))}a()})}function M8(e){let t;return e.visit(n=>{for(const r of["x","y"]){const i=n.resolutions.scale[r];if(i&&i.type=="locus"&&i.isZoomable())return t=i,xa}}),t}const N8="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSI+PHBhdGggZD0iTTQuNyAyMS4ycy40IDIuMyAxLjMgMy42QzcgMjYgOS44IDI4IDkuOCAyOHMzLjQtMi42IDYuNC04LjVjMCAwIDEgLjEgMS45LS40LjktLjYuOC0uNCAxLTEuMiAwIDAgMi45LjUgNi42IDAgMi4xLS4zIDQuMy0xIDYuMi0yLjUgMCAwLTEuMS0xLjctMi41LTUuMS0uNS0xLjMtMi0xLjgtNC42LTQuNmwtOC4yIDguNi0xMS45IDYuOXoiIGZpbGwtb3BhY2l0eT0iLjEiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSIjN2ZiYmRkIi8+PHBhdGggZD0iTTEyLjQgMTUuNWMtLjctLjUtMi40LS44LTQuNC0uNC0yIC40LTQgMS4zLTQuOCAxLjgtLjUuMy0xLjIgMS0xLjIgMS40IDAgLjcuMyAxLjguOCAyLjQuMy4zLjcuNSAxLjQuNi44IDAgMi41LTEuNCAzLjUtMiAxLS42IDEuNi0uOCAyLjctMS4ybC0yLjkgMi40Yy0xLjMgMS4yLTIuMiAxLjUtMi40IDIuMyAwIC41IDAgMS40LjUgMS44LjQuNS42LjggMS42LjguNiAwIDEgMCAyLjYtMS41LjktLjkgMi4zLTMgMi43LTMuNy42LTEuMSAxLTIuMi43LTMtLjItMS0uNC0xLjQtLjgtMS43ek0xNy40IDE0LjJjLS4zLS41LS45LTEuMi0uMi0yLjVsMS45LTNjLjUtLjggMi0yLjMgMi42LTIuNi42LS40IDEuNS0uNiAyLS4yLjYuNCAxIDEgMS4zIDEuNS40LjYuNyAxLjMuMiAyLS43IDEtMS42LjktMi44IDEuNy0xLjIuOC0xLjkgMS4yLTIuNSAxLjlsMy44LTEuOGMxLjMtLjYgMi43LTEuMSAzLjQtLjcuOC41LjguNyAxIDEuNC4zIDEtLjIgMS45LS44IDIuNC0uNS42LTEuNS45LTIuNiAxLjItMS40LjQtNC41IDEtNS44LjUtMS4zLS41LTEuMy0xLjQtMS41LTEuOHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iLjUiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0iIzdmYmJkZCIvPjxwYXRoIGQ9Ik0xMy44IDE1LjNjLjkuOC42IDIgMS40IDEuOCAxLS4yIDEuNC0uOCAxLjMtMS41IDAtLjcgMC0uOC0uNC0xLjYtLjMtLjctMS0xLjEtMi0uNS0uNy41LTEuNCAxLjMtMS40IDEuM3MuMi0uMyAxLjEuNXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9Ii41Ii8+PC9zdmc+",F8={name:"@genome-spy/app",description:"GenomeSpy-based visualization tool for multiple patient samples",author:{name:"Kari Lavikka",email:"kari.lavikka@helsinki.fi"},contributors:[],license:"MIT",version:"0.32.0",main:"dist/index.js",files:["dist/"],repository:{type:"git",url:"github:genome-spy/genome-spy",directory:"packages/app"},scripts:{dev:"node dev-server.js",build:"vite build",prepublishOnly:"npm run build"},dependencies:{"@floating-ui/dom":"^0.5.0","@fortawesome/fontawesome-free":"^6.1.1","@fortawesome/fontawesome-svg-core":"^6.1.1","@fortawesome/free-solid-svg-icons":"^6.1.1","@genome-spy/core":"^0.32.0","@reduxjs/toolkit":"^1.8.4",idb:"^7.0.1",lit:"^2.4.0","lz-string":"^1.4.4",mapsort:"^1.0.5","redux-batched-actions":"^0.5.0","redux-undo":"^1.0.1",snarkdown:"^2.0.0"},gitHead:"09fe8c737a955ef4351be6f4c6a5d1c18c8be237"};/**
2176
2363
  * @license
2177
2364
  * Copyright 2020 Google LLC
2178
2365
  * SPDX-License-Identifier: BSD-3-Clause
2179
- */const lN=or(class extends Zr{constructor(t){if(super(t),t.type!==At.PROPERTY&&t.type!==At.ATTRIBUTE&&t.type!==At.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!Vy(t))throw Error("`live` bindings can only contain a single expression")}render(t){return t}update(t,[e]){if(e===Ae||e===z)return e;const n=t.element,r=t.name;if(t.type===At.PROPERTY){if(e===n[r])return Ae}else if(t.type===At.BOOLEAN_ATTRIBUTE){if(!!e===n.hasAttribute(r))return Ae}else if(t.type===At.ATTRIBUTE&&n.getAttribute(r)===e+"")return Ae;return _y(t),e}});function Nb(t,e){return new CustomEvent("query-dependency",{detail:{name:t,setter:e},bubbles:!0})}function fN(t){if(!(t!=null&&t.length))throw new Error("Can't nest an empty array!");const e=Lb(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=Lb(i),r.children.push(o)),r=o}}return e.children[0]}const Lb=t=>({item:t,children:[]}),Md=new Set;function Td(t){const n=t.currentTarget.parentNode,r=!n.classList.contains("show");for(const i of Md)i.classList.remove("show"),document.body.classList.remove(Vn);return Md.clear(),t.stopPropagation(),r?(Md.add(n),n.classList.add("show"),document.body.classList.add(Vn),window.addEventListener("click",i=>{n.classList.contains("show")&&(n.classList.remove("show"),document.body.classList.remove(Vn),i.preventDefault())},{once:!0})):window.dispatchEvent(new MouseEvent("click")),r}const Id={visibilities:{}},ai=xv({name:"viewSettings",initialState:Id,reducers:{setVisibility:(t,e)=>{t.visibilities[e.payload.name]=e.payload.visibility},restoreDefaultVisibility:(t,e)=>{delete t.visibilities[e.payload]},restoreDefaultVisibilities:(t,e)=>Id,setViewSettings:(t,e)=>({...Id,...e.payload?e.payload:{}})}});class dN extends bt{constructor(){super(),this.app=void 0,this.nestedPaths=void 0,this.sateWatcher=rc(e=>e.viewSettings,(e,n)=>this.requestUpdate()),this.style.display="none"}connectedCallback(){super.connectedCallback(),this.dispatchEvent(Nb("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){Td(e)}handleCheckboxClick(e,n){const r=e.target.checked;this.app.storeHelper.dispatch(r!=n.isVisibleInSpec()?ai.actions.setVisibility({name:n.name,visibility:r}):ai.actions.restoreDefaultVisibility(n.name)),this.requestUpdate(),e.stopPropagation()}handleResetClick(){this.app.storeHelper.dispatch(ai.actions.restoreDefaultVisibilities())}updateToggles(){const e=this.app.genomeSpy.viewRoot;if(!e)return;const n=[];e.visit(i=>{if(i instanceof t1)return bs;n.push(i)});const r=n.filter(i=>Q5(i.name)&&Bb(i)).map(i=>[...i.getAncestors()].reverse());this.nestedPaths=fN(r)}renderToggles(){const e=this.getVisibilities(),n=this.app.genomeSpy.viewRoot,r=D1(n);var i=(a,s=!0)=>a.length?E`<ul class="${s?null:"unchecked"}">${a.map(o)}</ul>`:z,o=a=>{const s=a.item,c=e[s.name]??s.isVisibleInSpec();return E`<li><label class="checkbox"><input type="checkbox" ?disabled="${!r.has(s.name)||!Bb(s)}" .checked="${lN(c)}" @change="${u=>this.handleCheckboxClick(u,s)}">${s.getTitleText()??s.name}</label> ${i(a.children,c)}</li>`};return i(this.nestedPaths.children)}render(){const e=!Object.keys(this.getVisibilities()).length;return E`<div class="dropdown bookmark-dropdown"><button class="tool-btn" title="Toggle view visibilities" @click="${this.toolButtonClicked.bind(this)}">${J(V6).node[0]}</button><ul class="gs-dropdown-menu" @click="${n=>n.stopPropagation()}"><li class="menu-header">View visibility</li><li>${e?E`<span class="disabled-item">Restore defaults</span>`:E`<a @click="${()=>this.handleResetClick()}">Restore defaults</a>`}</li><li class="menu-divider"></li><li>${this.nestedPaths?this.renderToggles():z}</li></ul></div>`}getVisibilities(){return this.app.storeHelper.state.viewSettings.visibilities}}const Bb=t=>t.spec.configurableVisibility??!(t.parent&&t.parent instanceof vt);customElements.define("genome-spy-view-visibility",dN);class hN 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)=>{const o=this.provenance.getActionInfo(r);return o?E`<li><a @click="${()=>this.provenance.activateState(i)}" class="${i==this.provenance.getCurrentIndex()?"active":""}">${J(o.icon??H1).node[0]} ${o.provenanceTitle??o.title}</a></li>`:z},n=()=>E`<div class="dropdown provenance-dropdown"><button class="tool-btn" title="Provenance" ?disabled="${this.provenance.isEmpty()}" @click="${Td}">${J(F6).node[0]}</button><ol class="gs-dropdown-menu provenance-menu">${this.provenance.getFullActionHistory().map(e)}</ol></div>`;return E`<div class="btn-group" @click="${r=>r.stopPropagation()}"><button class="tool-btn" title="Backtrack samples (B)" ?disabled="${!this.provenance.isUndoable()}" @click="${()=>this.provenance.undo()}">${J(x6).node[0]}</button> ${n()} <button class="tool-btn" title="Redo" ?disabled="${!this.provenance.isRedoable()}" @click="${()=>this.provenance.redo()}">${J(C6).node[0]}</button></div>`}}customElements.define("genome-spy-provenance-buttons",hN);/**
2366
+ */const JQ=Ya(class extends ys{constructor(e){if(super(e),e.type!==cr.PROPERTY&&e.type!==cr.ATTRIBUTE&&e.type!==cr.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!QC(e))throw Error("`live` bindings can only contain a single expression")}render(e){return e}update(e,[t]){if(t===pt||t===ne)return t;const n=e.element,r=e.name;if(e.type===cr.PROPERTY){if(t===n[r])return pt}else if(e.type===cr.BOOLEAN_ATTRIBUTE){if(!!t===n.hasAttribute(r))return pt}else if(e.type===cr.ATTRIBUTE&&n.getAttribute(r)===t+"")return pt;return qC(e),t}});function B8(e,t){return new CustomEvent("query-dependency",{detail:{name:e,setter:t},bubbles:!0})}function eZ(e){if(!(e!=null&&e.length))throw new Error("Can't nest an empty array!");const t=L8(null);for(const n of e){if(!(n!=null&&n.length))throw new Error("Cannot nest, element has no path!");let r=t;for(const i of n){let a=r.children.find(o=>o.item===i);a||(a=L8(i),r.children.push(a)),r=a}}return t.children[0]}const L8=e=>({item:e,children:[]}),pb=new Set;function gb(e){const n=e.currentTarget.parentNode,r=!n.classList.contains("show");for(const i of pb)i.classList.remove("show"),document.body.classList.remove(ua);return pb.clear(),e.stopPropagation(),r?(pb.add(n),n.classList.add("show"),document.body.classList.add(ua),window.addEventListener("click",i=>{n.classList.contains("show")&&(n.classList.remove("show"),document.body.classList.remove(ua),i.preventDefault())},{once:!0})):window.dispatchEvent(new MouseEvent("click")),r}const mb={visibilities:{}},Is=S6({name:"viewSettings",initialState:mb,reducers:{setVisibility:(e,t)=>{e.visibilities[t.payload.name]=t.payload.visibility},restoreDefaultVisibility:(e,t)=>{delete e.visibilities[t.payload]},restoreDefaultVisibilities:(e,t)=>mb,setViewSettings:(e,t)=>({...mb,...t.payload?t.payload:{}})}});class tZ extends sr{constructor(){super(),this.app=void 0,this.nestedPaths=void 0,this.sateWatcher=id(t=>t.viewSettings,(t,n)=>this.requestUpdate()),this.style.display="none"}connectedCallback(){super.connectedCallback(),this.dispatchEvent(B8("app",t=>{this.app=t})),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(t){gb(t)}handleCheckboxClick(t,n){const r=t.target.checked;this.app.storeHelper.dispatch(r!=n.isVisibleInSpec()?Is.actions.setVisibility({name:n.name,visibility:r}):Is.actions.restoreDefaultVisibility(n.name)),this.requestUpdate(),t.stopPropagation()}handleResetClick(){this.app.storeHelper.dispatch(Is.actions.restoreDefaultVisibilities())}updateToggles(){const t=this.app.genomeSpy.viewRoot;if(!t)return;const n=[];t.visit(i=>{if(i instanceof $x)return Mf;n.push(i)});const r=n.filter(i=>FH(i.name)&&O8(i)).map(i=>[...i.getAncestors()].reverse());this.nestedPaths=eZ(r)}renderToggles(){const t=this.getVisibilities(),n=this.app.genomeSpy.viewRoot,r=IS(n);var i=(o,s=!0)=>o.length?z`<ul class="${s?null:"unchecked"}">${o.map(a)}</ul>`:ne,a=o=>{const s=o.item,l=t[s.name]??s.isVisibleInSpec();return z`<li><label class="checkbox"><input type="checkbox" ?disabled="${!r.has(s.name)||!O8(s)}" .checked="${JQ(l)}" @change="${c=>this.handleCheckboxClick(c,s)}">${s.getTitleText()??s.name}</label> ${i(o.children,l)}</li>`};return i(this.nestedPaths.children)}render(){const t=!Object.keys(this.getVisibilities()).length;return z`<div class="dropdown bookmark-dropdown"><button class="tool-btn" title="Toggle view visibilities" @click="${this.toolButtonClicked.bind(this)}">${ke(BG).node[0]}</button><ul class="gs-dropdown-menu" @click="${n=>n.stopPropagation()}"><li class="menu-header">View visibility</li><li>${t?z`<span class="disabled-item">Restore defaults</span>`:z`<a @click="${()=>this.handleResetClick()}">Restore defaults</a>`}</li><li class="menu-divider"></li><li>${this.nestedPaths?this.renderToggles():ne}</li></ul></div>`}getVisibilities(){return this.app.storeHelper.state.viewSettings.visibilities}}const O8=e=>e.spec.configurableVisibility??!(e.parent&&e.parent instanceof Wn);customElements.define("genome-spy-view-visibility",tZ);class nZ extends sr{constructor(){super(),this.provenance=void 0}connectedCallback(){super.connectedCallback(),this.provenance.storeHelper.subscribe(()=>{this.requestUpdate()})}disconnectedCallback(){super.disconnectedCallback()}createRenderRoot(){return this}render(){const t=(r,i)=>{const a=this.provenance.getActionInfo(r);return a?z`<li><a @click="${()=>this.provenance.activateState(i)}" class="${i==this.provenance.getCurrentIndex()?"active":""}">${ke(a.icon??VS).node[0]} ${a.provenanceTitle??a.title}</a></li>`:ne},n=()=>z`<div class="dropdown provenance-dropdown"><button class="tool-btn" title="Provenance" ?disabled="${this.provenance.isEmpty()}" @click="${gb}">${ke(CG).node[0]}</button><ol class="gs-dropdown-menu provenance-menu">${this.provenance.getFullActionHistory().map(t)}</ol></div>`;return z`<div class="btn-group" @click="${r=>r.stopPropagation()}"><button class="tool-btn" title="Backtrack samples (B)" ?disabled="${!this.provenance.isUndoable()}" @click="${()=>this.provenance.undo()}">${ke(fG).node[0]}</button> ${n()} <button class="tool-btn" title="Redo" ?disabled="${!this.provenance.isRedoable()}" @click="${()=>this.provenance.redo()}">${ke(dG).node[0]}</button></div>`}}customElements.define("genome-spy-provenance-buttons",nZ);/**
2180
2367
  * @license
2181
2368
  * Copyright 2021 Google LLC
2182
2369
  * SPDX-License-Identifier: BSD-3-Clause
2183
- */class pN{constructor(e){this.Y=e}disconnect(){this.Y=void 0}reconnect(e){this.Y=e}deref(){return this.Y}}class mN{constructor(){this.Z=void 0,this.q=void 0}get(){return this.Z}pause(){var e;(e=this.Z)!==null&&e!==void 0||(this.Z=new Promise(n=>this.q=n))}resume(){var e;(e=this.q)===null||e===void 0||e.call(this),this.Z=this.q=void 0}}/**
2370
+ */class rZ{constructor(t){this.Y=t}disconnect(){this.Y=void 0}reconnect(t){this.Y=t}deref(){return this.Y}}class iZ{constructor(){this.Z=void 0,this.q=void 0}get(){return this.Z}pause(){var t;(t=this.Z)!==null&&t!==void 0||(this.Z=new Promise(n=>this.q=n))}resume(){var t;(t=this.q)===null||t===void 0||t.call(this),this.Z=this.q=void 0}}/**
2184
2371
  * @license
2185
2372
  * Copyright 2017 Google LLC
2186
2373
  * SPDX-License-Identifier: BSD-3-Clause
2187
- */const Ob=t=>!kI(t)&&typeof t.then=="function";class gN extends Eb{constructor(){super(...arguments),this._$Cwt=1073741823,this._$Cyt=[],this._$CK=new pN(this),this._$CX=new mN}render(...e){var n;return(n=e.find(r=>!Ob(r)))!==null&&n!==void 0?n:Ae}update(e,n){const r=this._$Cyt;let i=r.length;this._$Cyt=n;const o=this._$CK,a=this._$CX;this.isConnected||this.disconnected();for(let s=0;s<n.length&&!(s>this._$Cwt);s++){const c=n[s];if(!Ob(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 Ae}disconnected(){this._$CK.disconnect(),this._$CX.pause()}reconnected(){this._$CK.reconnect(this),this._$CX.resume()}}const yN=or(gN);var vN={"":["<em>","</em>"],_:["<strong>","</strong>"],"*":["<strong>","</strong>"],"~":["<s>","</s>"],"\n":["<br />"]," ":["<br />"],"-":["<hr />"]};function Fb(t){return t.replace(RegExp("^"+(t.match(/^(\t| )+/)||"")[0],"gm"),"")}function Uo(t){return(t+"").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function kd(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=vN[p[1]||""],g=c[c.length-1]==p;return m?m[1]?(g?c.pop():c.push(p),m[0|g]):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,g){return f[m.toLowerCase()]=g,""}).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()+'"':"")+">"+Fb(Uo(a).replace(/^\n+|\n+$/g,""))+"</code></pre>":(a=i[6])?(a.match(/\./)&&(i[5]=i[5].replace(/^\d+/gm,"")),o=kd(Fb(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="'+Uo(i[8])+'" alt="'+Uo(i[7])+'">':i[10]?(u=u.replace("<a>",'<a href="'+Uo(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))+">"+kd(i[12]||i[15],f)+"</"+a+">":i[16]?n="<code>"+Uo(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 Pb(t,e){return!e||/^(data:|([A-Za-z]+:)?\/\/)/.test(t)||t.startsWith("/")?t:(e.endsWith("/")||(e+="/"),e+t)}function bN(t,e={}){const n=kd(t),r=new DOMParser().parseFromString(`<!DOCTYPE html><html><body><div>${n}</div></body></html>`,"text/html");r.normalize(),zb(r.body);for(const o of r.querySelectorAll("a[href]"))o.setAttribute("target","blank"),o.setAttribute("rel","noopener noreferrer"),o.setAttribute("href",Pb(o.getAttribute("href"),e.baseUrl));for(const o of r.querySelectorAll("img[src]"))o.setAttribute("src",Pb(o.getAttribute("src"),e.baseUrl));const i=r.body.removeChild(r.querySelector("body > div"));return i.className="snarkdown",i}function zb(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--;)zb(t.childNodes[e])}}function AN(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:{}};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="",g="",y="",b=2,w=3,C=2,x=[],v=0,A=0,D;for(D=0;D<c.length;D+=1)if(m=c.charAt(D),Object.prototype.hasOwnProperty.call(h,m)||(h[m]=w++,p[m]=!0),g=y+m,Object.prototype.hasOwnProperty.call(h,g))y=g;else{if(Object.prototype.hasOwnProperty.call(p,y)){if(y.charCodeAt(0)<256){for(l=0;l<C;l++)v=v<<1,A==u-1?(A=0,x.push(f(v)),v=0):A++;for(d=y.charCodeAt(0),l=0;l<8;l++)v=v<<1|d&1,A==u-1?(A=0,x.push(f(v)),v=0):A++,d=d>>1}else{for(d=1,l=0;l<C;l++)v=v<<1|d,A==u-1?(A=0,x.push(f(v)),v=0):A++,d=0;for(d=y.charCodeAt(0),l=0;l<16;l++)v=v<<1|d&1,A==u-1?(A=0,x.push(f(v)),v=0):A++,d=d>>1}b--,b==0&&(b=Math.pow(2,C),C++),delete p[y]}else for(d=h[y],l=0;l<C;l++)v=v<<1|d&1,A==u-1?(A=0,x.push(f(v)),v=0):A++,d=d>>1;b--,b==0&&(b=Math.pow(2,C),C++),h[g]=w++,y=String(m)}if(y!==""){if(Object.prototype.hasOwnProperty.call(p,y)){if(y.charCodeAt(0)<256){for(l=0;l<C;l++)v=v<<1,A==u-1?(A=0,x.push(f(v)),v=0):A++;for(d=y.charCodeAt(0),l=0;l<8;l++)v=v<<1|d&1,A==u-1?(A=0,x.push(f(v)),v=0):A++,d=d>>1}else{for(d=1,l=0;l<C;l++)v=v<<1|d,A==u-1?(A=0,x.push(f(v)),v=0):A++,d=0;for(d=y.charCodeAt(0),l=0;l<16;l++)v=v<<1|d&1,A==u-1?(A=0,x.push(f(v)),v=0):A++,d=d>>1}b--,b==0&&(b=Math.pow(2,C),C++),delete p[y]}else for(d=h[y],l=0;l<C;l++)v=v<<1|d&1,A==u-1?(A=0,x.push(f(v)),v=0):A++,d=d>>1;b--,b==0&&(b=Math.pow(2,C),C++)}for(d=2,l=0;l<C;l++)v=v<<1|d&1,A==u-1?(A=0,x.push(f(v)),v=0):A++,d=d>>1;for(;;)if(v=v<<1,A==u-1){x.push(f(v));break}else A++;return x.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="",g=[],y,b,w,C,x,v,A,D={val:f(0),position:u,index:1};for(y=0;y<3;y+=1)l[y]=y;for(w=0,x=Math.pow(2,2),v=1;v!=x;)C=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=f(D.index++)),w|=(C>0?1:0)*v,v<<=1;switch(w){case 0:for(w=0,x=Math.pow(2,8),v=1;v!=x;)C=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=f(D.index++)),w|=(C>0?1:0)*v,v<<=1;A=n(w);break;case 1:for(w=0,x=Math.pow(2,16),v=1;v!=x;)C=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=f(D.index++)),w|=(C>0?1:0)*v,v<<=1;A=n(w);break;case 2:return""}for(l[3]=A,b=A,g.push(A);;){if(D.index>c)return"";for(w=0,x=Math.pow(2,p),v=1;v!=x;)C=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=f(D.index++)),w|=(C>0?1:0)*v,v<<=1;switch(A=w){case 0:for(w=0,x=Math.pow(2,8),v=1;v!=x;)C=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=f(D.index++)),w|=(C>0?1:0)*v,v<<=1;l[h++]=n(w),A=h-1,d--;break;case 1:for(w=0,x=Math.pow(2,16),v=1;v!=x;)C=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=f(D.index++)),w|=(C>0?1:0)*v,v<<=1;l[h++]=n(w),A=h-1,d--;break;case 2:return g.join("")}if(d==0&&(d=Math.pow(2,p),p++),l[A])m=l[A];else if(A===h)m=b+b.charAt(0);else return null;g.push(m),l[h++]=b+m.charAt(0),d--,b=m,d==0&&(d=Math.pow(2,p),p++)}}};return s}();t!=null&&(t.exports=e)}(Nd);var Rb=Nd.exports;function xN(){const t=typeof process<"u"?require("util").TextEncoder:TextEncoder;return new t}let jb;function wN(){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 CN(t){jb??(jb=wN());let e=-1;const n=xN().encode(t);for(let r=0;r<n.length;r++)e=e>>>8^jb[(e^n[r])&255];return(e^-1)>>>0}function Ub(t){return("00000000"+CN(t).toString(16)).slice(-8)}function Gb(t){const e=Rb.compressToEncodedURIComponent(JSON.stringify(t));return"#"+e+Ub(e)}function SN(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(Ub(e)!==n)throw new Error("The state string in the URL is corrupted.");return JSON.parse(Rb.decompressFromEncodedURIComponent(e))}let vr;function EN(t){for(const e of t.genomeSpy.getNamedScaleResolutions().values())e.isZoomable()&&e.resetZoom();t.storeHelper.dispatch([...t.provenance.isUndoable()?[Ht.ActionCreators.jumpToPast(0)]:[],ai.actions.restoreDefaultVisibilities()])}async function Ld(t,e){try{t.actions&&e.provenance.dispatchBookmark(t.actions),e.storeHelper.dispatch(ai.actions.setViewSettings(t.viewSettings));const n=[];for(const[r,i]of Object.entries(t.scaleDomains??{})){const o=e.genomeSpy.getNamedScaleResolutions().get(r);o?n.push(o.zoomTo(i)):console.warn(`Cannot restore scale domain. Unknown name: ${r}`)}await Promise.all(n)}catch(n){console.error(n),He(E`<p>Cannot restore the state:</p><p>${n}</p>`),e.provenance.activateState(0)}}async function Go(t,e,n={}){await Ld(t,e),(vr||t.notes||n.mode=="shared"&&(t.name||t.notes))&&await DN(t,e,n)}async function DN(t,e,n={}){vr??(vr=fr("tour",e.appContainer)),await MN(t,e,n)}async function MN(t,e,n){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}: ${t.name??"Unnamed"}`,c=t.notes?bN(t.notes,{baseUrl:e.genomeSpy.spec.baseUrl}):E`<span class="no-notes">No notes provided</span>`,u=async()=>{if(vr==null||vr.close(),vr=void 0,n.mode=="tour"){const m=n.afterTourBookmark;if(typeof m=="string"){const g=await n.database.get(m);if(!g)throw new Error(`No such bookmark: ${m}`);Ld(g,e)}else m===null||EN(e)}},f=async m=>{const g=await r.get(i[m]);Go(g,e,n),e.appContainer.querySelector("canvas").focus()},l=async()=>{if(await Bd(e.localBookmarkDatabase,t,"add"))try{await e.localBookmarkDatabase.put(t)}catch(m){console.warn(m),He(`Cannot import bookmark: ${m}`)}},d=E`<button class="btn" @click="${u}">${n.mode=="tour"?"End tour":"Close"}</button> ${n.mode=="shared"&&e.localBookmarkDatabase?E`<button class="btn" @click="${l}">${J(G1).node[0]} Import bookmark</button>`:z} ${r?E`<button class="btn" @click="${()=>f(o-1)}" ?disabled="${o<=0}">${J(D6).node[0]} Previous</button> <button class="btn" @click="${()=>f(o+1)}" ?disabled="${o>=i.length-1}">Next ${J(j6).node[0]}</button>`:z}`,p=E`<button title="Collapse" class="btn collapse" @click="${m=>m.target.closest(".gs-modal").classList.toggle("collapsed")}">${J(T6).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>`;Oe(p,vr.content)}function Hb(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(" ","-"):Gb(t));He(E`<div class="gs-tabs" style="width:600px"><ul class="tabs" @click="${AN}"><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(()=>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">
2188
- ${n}</textarea> <small>The JSON-formatted bookmark is currently available for development purposes.</small></div></div></div>`,{title:"Share a bookmark",okLabel:"Close"})}function Bd(t,e,n){const r={add:"Add bookmark",edit:"Edit bookmark",share:"Share the current view state as a bookmark"}[n],i=(c,u)=>E`<div class="modal-title">${r}</div><div class="modal-body" style="width:500px">${n=="edit"?E`<div class="gs-alert warning">${J(k6).node[0]} The current visualization state will be updated to the bookmark you are editing.</div>`:z} ${n=="share"?E`<div class="gs-alert info">${J(Q1).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>`:z}<div class="gs-form-group"><label for="bookmark-title">Title</label> <input id="bookmark-title" type="text" ?required="${n=="add"||n=="edit"}" .value="${e.name??""}" .placeholder="${n=="share"?"Add an optional title":""}" @change="${f=>{e.name=Qb(f.target.value)}}"></div><div class="gs-form-group"><label for="bookmark-notes">Notes</label> <textarea id="bookmark-notes" rows="4" .value="${e.notes??""}" .placeholder="${n=="share"?"... and notes":""}" @change="${f=>{e.notes=Qb(f.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 btn-cancel" @click="${c}">Cancel</button> <button class="btn btn-primary" @click="${u}">${n=="share"?E`${J(cf).node[0]} Create a link`:"Save"}</button></div>`,o=e.name,a=()=>!!e.name,s=fr();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(E`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)};Oe(i(u,n=="share"?l:f),s.content),s.content.querySelector("#bookmark-title").focus()})}function Qb(t){if(t!==void 0&&(t=t.trim(),t.length))return t}class TN extends bt{constructor(){super(),this.app=void 0}connectedCallback(){super.connectedCallback(),this.dispatchEvent(Nb("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 Bd(void 0,e,"share")&&Hb(e,!1)}async _addBookmark(e,n){const r=n?await e.get(n):void 0,i=!!r,o=this._createBookmarkWithCurrentState();if(o.name??(o.name=r==null?void 0:r.name),o.notes??(o.notes=r==null?void 0:r.notes),await Bd(e,o,i?"edit":"add"))try{await e.put(o,r==null?void 0:r.name),this.requestUpdate()}catch(a){He(`${a}`,{title:"Cannot save the bookmark!"})}}async _loadBookmark(e,n){const r=await e.get(n);r&&Go(r,this.app,{database:e})}_createContextMenu(e,n,r){r.stopPropagation();const i=r.target.closest("li"),o=()=>He(E`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:H6,callback:()=>this._addBookmark(e,n)}),a.push({label:"Delete",icon:Y1,callback:o})),a.push({label:"Share...",icon:cf,callback:async()=>Hb(await e.get(n),s)}),lb({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=>cb(o)):z}_getBookmarks(){const e=(n,r)=>n?yN(this._makeBookmarkMenuItems(n,r),E`Loading...`):z;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?E`<li><a @click="${()=>this._addBookmark(e)}">Add bookmark...</a></li>`:z,r=e||this.app.globalBookmarkDatabase?E`<div class="dropdown bookmark-dropdown"><button class="tool-btn" title="Bookmarks" @click="${i=>{Td(i)&&this.requestUpdate()}}">${J(G1).node[0]}</button><ul class="gs-dropdown-menu">${n} ${this._getBookmarks()}</ul></div>`:z;return E`<div class="btn-group">${r} <button class="tool-btn" title="Share" @click="${()=>this._shareCurrentState()}">${J(cf).node[0]}</button></div>`}}customElements.define("genome-spy-bookmark-button",TN);class IN 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.provenance,n=[];e.isEnabled()&&n.push(E`<genome-spy-provenance-buttons .provenance="${e}"></genome-spy-provenance-buttons>`),n.push(E`<genome-spy-view-visibility></genome-spy-view-visibility>`),n.push(E`<genome-spy-bookmark-button></genome-spy-bookmark-button>`);const r=this.app.config.description?qe(this.app.config.description):[];return r.length>1&&n.push(E`<button class="tool-btn" title="Show a description of the visualization" @click="${()=>He(E`${r.slice(1).map(i=>E`<p>${i}</p>`)}`,{title:r[0]})}">${J(Q1).node[0]}</button>`),r.length>0&&n.push(E`<span class="vis-title">${r[0]}</span>`),n.push(E`<span class="spacer"></span> <a class="version" href="https://github.com/genome-spy/genome-spy/releases/tag/v${kb.version}">v${kb.version}</a> ${this.app.appContainer.requestFullscreen?E`<button class="tool-btn" title="Fullscreen" @click="${()=>this.app.toggleFullScreen()}">${J(G6).node[0]}</button>`:z} <button class="tool-btn" title="Help" @click="${()=>window.open("https://genomespy.app/docs/sample-collections/analyzing/","_blank")}">${J(B6).node[0]}</button>`),n}render(){const e=this.app.genomeSpy;return E`<nav class="gs-toolbar"><a href="https://genomespy.app" target="_blank" class="logo"><img title="GenomeSpy" alt="GenomeSpy" src="${Ib}"> </a>${this.appInitialized&&Tb(e.viewRoot)?E`<genome-spy-search-field .app="${this.app}"></genome-spy-search-field>`:z} ${this._getToolButtons()}</nav>`}}customElements.define("genome-spy-toolbar",IN);class kN{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??{})}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;this._reducer=pk(ed({...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()?[Ht.ActionCreators.jumpToPast(0)]:[],...e])}isRedoable(){return this.isEnabled()&&this._provenanceState.future.length>0}redo(){this.storeHelper.dispatch(Ht.ActionCreators.redo())}isUndoable(){return this.isEnabled()&&this._provenanceState.past.length>0}undo(){this.storeHelper.dispatch(Ht.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(Ht.ActionCreators.jumpToPast(e)):e>n&&this.storeHelper.dispatch(Ht.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*NN(t,e=n=>+n){const n=t.length,r=new xo,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 LN="sampleCount";class BN extends ue{constructor(n,r){super();q(this,qo);this.view=r;const i=r.context.animator;if(this.provenance=ON(r),!this.provenance)throw new Error("No SampleView was found!");this.provenance.storeHelper.subscribe(o=>{j(this,qo,Qd)&&i.requestTransition(()=>{this.reset(),this._mergeAndPropagate(od(o)),this.complete()})}),this.contextObject=void 0}initialize(){this.contextObject=Object.create(super.getGlobalObject());const n=this.view.getEncoding().x;if(Xn(n))this.xAccessor=K(n.field);else throw new Error("Crash!")}handle(n){}getGlobalObject(){return this.contextObject}_getCollector(){if(this.parent instanceof Ao)return this.parent;throw new Error("MergeFacetsTransform must be a direct child of a Collector")}complete(){j(this,qo,Qd)&&(this._mergeAndPropagate(this.provenance.getPresentState()[ri]),super.complete())}_mergeAndPropagate(n){const r=[...sd(n.rootGroup)].filter(i=>Fv(je(i)));for(const[i,o]of r.entries()){const a=je(o);if(Fv(a)){this.contextObject[LN]=a.samples.length,this.beginBatch({type:"facet",facetId:[i]});const s=a.samples,c=this._getCollector(),u=NN(s.map(f=>c.facetBatches.get([f])??[]),this.xAccessor);for(const f of u)this._propagate(f)}}this._updateScales()}setParent(n){super.setParent(n)}_updateScales(){const n=new Set;this.view.visit(r=>{if(r instanceof de&&r.mark.encoding.y){const i=r.getScaleResolution("y");i&&n.add(i)}});for(const r of n)r.reconfigure()}}qo=new WeakSet,Qd=function(){return this.view.isVisible()};function ON(t){for(const e of t.getAncestors())if(e instanceof bd)return e.provenance}var FN="BATCHING_REDUCER.BATCH";function PN(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:FN;return{type:e,meta:{batch:!0},payload:t}}function zN(t){return function e(n,r){return r&&r.meta&&r.meta.batch?r.payload.reduce(e,n):t(n,r)}}class RN{constructor(e){this._reducers=e??{},this.store=C9({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(zN(ed(this._reducers)))}subscribe(e){this._listeners.add(e)}unsubscribe(e){this._listeners.delete(e)}dispatch(e){Array.isArray(e)?this.store.dispatch(PN(e)):this.store.dispatch(e)}getDispatcher(){return e=>this.dispatch(e)}}class jN extends Cb{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)}}m1.mergeFacets=BN;class Vb{constructor(e,n,r={}){const i=this;this.config=n,this.storeHelper=new RN,this.storeHelper.addReducer("viewSettings",ai.reducer),this.provenance=new kN(this.storeHelper),this._initializationListeners=[],this.toolbarRef=Db(),this.appContainer=e,this._configureContainer(),this.localBookmarkDatabase=typeof n.specId=="string"?new tN(n.specId):void 0,this.globalBookmarkDatabase=void 0,Oe(E`<div class="genome-spy-app"><genome-spy-toolbar ${Mb(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 B1(o("genome-spy-container"),this.config,r),this.genomeSpy.viewFactory.addViewType(Qk,(s,c,u,f)=>new bd(s,c,u,f,this.provenance));const a=this.genomeSpy.viewVisibilityPredicate;this.genomeSpy.viewVisibilityPredicate=s=>{var c;return((c=this.storeHelper.state.viewSettings)==null?void 0:c.visibilities[s.name])??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;const e=(a=this.config.bookmarks)!=null&&a.remote?Li({baseURL:this.config.baseUrl}).load(this.config.bookmarks.remote.url).then(s=>Promise.resolve(JSON.parse(s))):Promise.resolve([]);if(!await this.genomeSpy.launch())return;this.appContainer.querySelector("canvas").setAttribute("tabindex","-1"),this.storeHelper.subscribe(rc(s=>{var c;return(c=s.viewSettings)==null?void 0:c.visibilities},(s,c)=>{var f,l;this.genomeSpy.viewRoot._invalidateCacheByPrefix("size","progeny"),(l=(f=this.getSampleView())==null?void 0:f.summaryViews)==null||l._invalidateCacheByPrefix("size","self");const u=this.genomeSpy.viewRoot.context;u.requestLayoutReflow(),u.animator.requestRender()},this.storeHelper.store.getState()));try{const s=await e;s.length&&(this.globalBookmarkDatabase=new jN(s))}catch(s){throw new Error(`Cannot load remote bookmarks: ${s}`)}try{await this._restoreStateFromUrlOrBookmark()}catch(s){He(s.toString())}this.storeHelper.subscribe(()=>{this._updateStateToUrl()}),window.addEventListener("hashchange",()=>this._restoreStateFromUrl().catch(s=>He(s.toString())),!1);const r=Cs(()=>this._updateStateToUrl(),500,!1);for(const[,s]of this.genomeSpy.getNamedScaleResolutions())s.isZoomable()&&s.addEventListener("domain",r);const i=this.toolbarRef.value;i.appInitialized=!0;const o=qe(this.genomeSpy.spec.description??[]);this.isFullPage()&&o.length>0&&(document.title="GenomeSpy - "+o);for(const s of this._initializationListeners)s();this._initializationListeners=void 0}async _restoreStateFromUrlOrBookmark(){var i;const e=(i=this.config.bookmarks)==null?void 0:i.remote,n=this.globalBookmarkDatabase;if(!await this._restoreStateFromUrl()&&e&&n){const o=e.initialBookmark??(e.tour&&(await n.getNames())[0]);if(o){const a=await n.get(o);if(!a)throw new Error(`No such bookmark: ${o}`);e.tour?await Go(a,this,{mode:"tour",database:n,afterTourBookmark:e.afterTourBookmark}):await Ld(a,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?Gb(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 Go(c,this,{mode:"tour",database:a}),!0}else throw new Error(`No such bookmark: ${n}`)}}if(e&&e.length>0)try{const o=SN(e);return Go(o,this,{mode:"shared"}),!0}catch(o){console.error(o),He(E`<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",UN(h6)):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 bd)return e=r,tr}),e}}function UN(t){const e=document.querySelector("head"),n=document.createElement("link");n.setAttribute("rel","shortcut icon"),n.setAttribute("href",t),e.appendChild(n)}async function GN(t,e,n={}){let r;if(re(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 o=Re(e)?e:await Yb(e);o.baseUrl??(o.baseUrl=""),o.width??(o.width="container"),o.padding??(o.padding=10);const a=new Vb(r,o,n);i=a.genomeSpy,HN(i,n),await a.launch()}catch(o){r.innerText=o.toString(),console.error(o)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(o,a){const s=i._eventListeners;let c=s.get(o);c||(c=new Set,s.set(o,c)),c.add(a)},removeEventListener(o,a){var c;(c=i._eventListeners.get(o))==null||c.delete(a)},getScaleResolutionByName(o){return i.getNamedScaleResolutions().get(o)}}}function HN(t,e){e.namedDataProvider&&t.registerNamedDataProvider(e.namedDataProvider)}async function Yb(t){let e;try{e=JSON.parse(await Li().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}U.GenomeSpy=B1,U.GenomeSpyApp=Vb,U.embed=GN,U.html=E,U.icon=Ib,U.loadSpec=Yb,Object.defineProperty(U,Symbol.toStringTag,{value:"Module"})});
2374
+ */const R8=e=>!wV(e)&&typeof e.then=="function";class aZ extends D8{constructor(){super(...arguments),this._$Cwt=1073741823,this._$Cyt=[],this._$CK=new rZ(this),this._$CX=new iZ}render(...t){var n;return(n=t.find(r=>!R8(r)))!==null&&n!==void 0?n:pt}update(t,n){const r=this._$Cyt;let i=r.length;this._$Cyt=n;const a=this._$CK,o=this._$CX;this.isConnected||this.disconnected();for(let s=0;s<n.length&&!(s>this._$Cwt);s++){const l=n[s];if(!R8(l))return this._$Cwt=s,l;s<i&&l===r[s]||(this._$Cwt=1073741823,i=0,Promise.resolve(l).then(async c=>{for(;o.get();)await o.get();const u=a.deref();if(u!==void 0){const f=u._$Cyt.indexOf(l);f>-1&&f<u._$Cwt&&(u._$Cwt=f,u.setValue(c))}}))}return pt}disconnected(){this._$CK.disconnect(),this._$CX.pause()}reconnected(){this._$CK.reconnect(this),this._$CX.resume()}}const oZ=Ya(aZ);var sZ={"":["<em>","</em>"],_:["<strong>","</strong>"],"*":["<strong>","</strong>"],"~":["<s>","</s>"],"\n":["<br />"]," ":["<br />"],"-":["<hr />"]};function z8(e){return e.replace(RegExp("^"+(e.match(/^(\t| )+/)||"")[0],"gm"),"")}function Wl(e){return(e+"").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function bb(e,t){var n,r,i,a,o,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,l=[],c="",u=t||{},f=0;function h(p){var g=sZ[p[1]||""],y=l[l.length-1]==p;return g?g[1]?(y?l.pop():l.push(p),g[0|y]):g[0]:p}function d(){for(var p="";l.length;)p+=h(l[l.length-1]);return p}for(e=e.replace(/^\[(.+?)\]:\s*(.+)$/gm,function(p,g,y){return u[g.toLowerCase()]=y,""}).replace(/^\n+|\n+$/g,"");i=s.exec(e);)r=e.substring(f,i.index),f=s.lastIndex,n=i[0],r.match(/[^\\](\\\\)*\\$/)||((o=i[3]||i[4])?n='<pre class="code '+(i[4]?"poetry":i[2].toLowerCase())+'"><code'+(i[2]?' class="language-'+i[2].toLowerCase()+'"':"")+">"+z8(Wl(o).replace(/^\n+|\n+$/g,""))+"</code></pre>":(o=i[6])?(o.match(/\./)&&(i[5]=i[5].replace(/^\d+/gm,"")),a=bb(z8(i[5].replace(/^\s*[>*+.-]/gm,""))),o==">"?o="blockquote":(o=o.match(/\./)?"ol":"ul",a=a.replace(/^(.*)(\n|$)/gm,"<li>$1</li>")),n="<"+o+">"+a+"</"+o+">"):i[8]?n='<img src="'+Wl(i[8])+'" alt="'+Wl(i[7])+'">':i[10]?(c=c.replace("<a>",'<a href="'+Wl(i[11]||u[r.toLowerCase()])+'">'),n=d()+"</a>"):i[9]?n="<a>":i[12]||i[14]?n="<"+(o="h"+(i[14]?i[14].length:i[13]>"="?1:2))+">"+bb(i[12]||i[15],u)+"</"+o+">":i[16]?n="<code>"+Wl(i[16])+"</code>":(i[17]||i[1])&&(n=h(i[17]||"--"))),c+=r,c+=n;return(c+e.substring(f)+d()).replace(/^\n+|\n+$/g,"")}function cZ(e,t={}){const n=bb(e),r=new DOMParser().parseFromString(`<!DOCTYPE html><html><body><div>${n}</div></body></html>`,"text/html");r.normalize(),P8(r.body);for(const a of r.querySelectorAll("a[href]"))a.setAttribute("target","blank"),a.setAttribute("rel","noopener noreferrer"),a.setAttribute("href",Ko(a.getAttribute("href"),t.baseUrl));for(const a of r.querySelectorAll("img[src]"))a.setAttribute("src",Ko(a.getAttribute("src"),t.baseUrl));const i=r.body.removeChild(r.querySelector("body > div"));return i.className="snarkdown",i}function P8(e){if(e.nodeType!==3){if(e.nodeType!==1||/^(script|iframe|object|embed|svg)$/i.test(e.tagName))return e.remove();for(let t=e.attributes.length;t--;){const n=e.attributes[t].name;/^(class|id|name|href|src|alt|align|valign|(on[a-z]+))$/i.test(n)||e.attributes.removeNamedItem(n)}for(let t=e.childNodes.length;t--;)P8(e.childNodes[t])}}function lZ(e){e.stopPropagation(),e.preventDefault();const n=e.target.parentElement,r=n.parentElement,a=r.parentElement.querySelector(".panes"),o=[...r.children].findIndex(s=>s==n);for(const s of r.children)s.classList.remove("active-tab");for(const s of a.children)s.classList.remove("active-tab");r.children.item(o).classList.add("active-tab"),a.children.item(o).classList.add("active-tab")}var yb={exports:{}};yb.exports,function(e){var t=function(){var n=String.fromCharCode,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",a={};function o(l,c){if(!a[l]){a[l]={};for(var u=0;u<l.length;u++)a[l][l.charAt(u)]=u}return a[l][c]}var s={compressToBase64:function(l){if(l==null)return"";var c=s._compress(l,6,function(u){return r.charAt(u)});switch(c.length%4){default:case 0:return c;case 1:return c+"===";case 2:return c+"==";case 3:return c+"="}},decompressFromBase64:function(l){return l==null?"":l==""?null:s._decompress(l.length,32,function(c){return o(r,l.charAt(c))})},compressToUTF16:function(l){return l==null?"":s._compress(l,15,function(c){return n(c+32)})+" "},decompressFromUTF16:function(l){return l==null?"":l==""?null:s._decompress(l.length,16384,function(c){return l.charCodeAt(c)-32})},compressToUint8Array:function(l){for(var c=s.compress(l),u=new Uint8Array(c.length*2),f=0,h=c.length;f<h;f++){var d=c.charCodeAt(f);u[f*2]=d>>>8,u[f*2+1]=d%256}return u},decompressFromUint8Array:function(l){if(l==null)return s.decompress(l);for(var c=new Array(l.length/2),u=0,f=c.length;u<f;u++)c[u]=l[u*2]*256+l[u*2+1];var h=[];return c.forEach(function(d){h.push(n(d))}),s.decompress(h.join(""))},compressToEncodedURIComponent:function(l){return l==null?"":s._compress(l,6,function(c){return i.charAt(c)})},decompressFromEncodedURIComponent:function(l){return l==null?"":l==""?null:(l=l.replace(/ /g,"+"),s._decompress(l.length,32,function(c){return o(i,l.charAt(c))}))},compress:function(l){return s._compress(l,16,function(c){return n(c)})},_compress:function(l,c,u){if(l==null)return"";var f,h,d={},p={},g="",y="",v="",S=2,k=3,C=2,E=[],w=0,A=0,T;for(T=0;T<l.length;T+=1)if(g=l.charAt(T),Object.prototype.hasOwnProperty.call(d,g)||(d[g]=k++,p[g]=!0),y=v+g,Object.prototype.hasOwnProperty.call(d,y))v=y;else{if(Object.prototype.hasOwnProperty.call(p,v)){if(v.charCodeAt(0)<256){for(f=0;f<C;f++)w=w<<1,A==c-1?(A=0,E.push(u(w)),w=0):A++;for(h=v.charCodeAt(0),f=0;f<8;f++)w=w<<1|h&1,A==c-1?(A=0,E.push(u(w)),w=0):A++,h=h>>1}else{for(h=1,f=0;f<C;f++)w=w<<1|h,A==c-1?(A=0,E.push(u(w)),w=0):A++,h=0;for(h=v.charCodeAt(0),f=0;f<16;f++)w=w<<1|h&1,A==c-1?(A=0,E.push(u(w)),w=0):A++,h=h>>1}S--,S==0&&(S=Math.pow(2,C),C++),delete p[v]}else for(h=d[v],f=0;f<C;f++)w=w<<1|h&1,A==c-1?(A=0,E.push(u(w)),w=0):A++,h=h>>1;S--,S==0&&(S=Math.pow(2,C),C++),d[y]=k++,v=String(g)}if(v!==""){if(Object.prototype.hasOwnProperty.call(p,v)){if(v.charCodeAt(0)<256){for(f=0;f<C;f++)w=w<<1,A==c-1?(A=0,E.push(u(w)),w=0):A++;for(h=v.charCodeAt(0),f=0;f<8;f++)w=w<<1|h&1,A==c-1?(A=0,E.push(u(w)),w=0):A++,h=h>>1}else{for(h=1,f=0;f<C;f++)w=w<<1|h,A==c-1?(A=0,E.push(u(w)),w=0):A++,h=0;for(h=v.charCodeAt(0),f=0;f<16;f++)w=w<<1|h&1,A==c-1?(A=0,E.push(u(w)),w=0):A++,h=h>>1}S--,S==0&&(S=Math.pow(2,C),C++),delete p[v]}else for(h=d[v],f=0;f<C;f++)w=w<<1|h&1,A==c-1?(A=0,E.push(u(w)),w=0):A++,h=h>>1;S--,S==0&&(S=Math.pow(2,C),C++)}for(h=2,f=0;f<C;f++)w=w<<1|h&1,A==c-1?(A=0,E.push(u(w)),w=0):A++,h=h>>1;for(;;)if(w=w<<1,A==c-1){E.push(u(w));break}else A++;return E.join("")},decompress:function(l){return l==null?"":l==""?null:s._decompress(l.length,32768,function(c){return l.charCodeAt(c)})},_decompress:function(l,c,u){var f=[],h=4,d=4,p=3,g="",y=[],v,S,k,C,E,w,A,T={val:u(0),position:c,index:1};for(v=0;v<3;v+=1)f[v]=v;for(k=0,E=Math.pow(2,2),w=1;w!=E;)C=T.val&T.position,T.position>>=1,T.position==0&&(T.position=c,T.val=u(T.index++)),k|=(C>0?1:0)*w,w<<=1;switch(k){case 0:for(k=0,E=Math.pow(2,8),w=1;w!=E;)C=T.val&T.position,T.position>>=1,T.position==0&&(T.position=c,T.val=u(T.index++)),k|=(C>0?1:0)*w,w<<=1;A=n(k);break;case 1:for(k=0,E=Math.pow(2,16),w=1;w!=E;)C=T.val&T.position,T.position>>=1,T.position==0&&(T.position=c,T.val=u(T.index++)),k|=(C>0?1:0)*w,w<<=1;A=n(k);break;case 2:return""}for(f[3]=A,S=A,y.push(A);;){if(T.index>l)return"";for(k=0,E=Math.pow(2,p),w=1;w!=E;)C=T.val&T.position,T.position>>=1,T.position==0&&(T.position=c,T.val=u(T.index++)),k|=(C>0?1:0)*w,w<<=1;switch(A=k){case 0:for(k=0,E=Math.pow(2,8),w=1;w!=E;)C=T.val&T.position,T.position>>=1,T.position==0&&(T.position=c,T.val=u(T.index++)),k|=(C>0?1:0)*w,w<<=1;f[d++]=n(k),A=d-1,h--;break;case 1:for(k=0,E=Math.pow(2,16),w=1;w!=E;)C=T.val&T.position,T.position>>=1,T.position==0&&(T.position=c,T.val=u(T.index++)),k|=(C>0?1:0)*w,w<<=1;f[d++]=n(k),A=d-1,h--;break;case 2:return y.join("")}if(h==0&&(h=Math.pow(2,p),p++),f[A])g=f[A];else if(A===d)g=S+S.charAt(0);else return null;y.push(g),f[d++]=S+g.charAt(0),h--,S=g,h==0&&(h=Math.pow(2,p),p++)}}};return s}();e!=null&&(e.exports=t)}(yb);var U8=yb.exports;function uZ(){const e=typeof process<"u"?require("util").TextEncoder:TextEncoder;return new e}let j8;function fZ(){let e,t=[];for(let n=0;n<256;n++){e=n;for(let r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t}function hZ(e){j8??(j8=fZ());let t=-1;const n=uZ().encode(e);for(let r=0;r<n.length;r++)t=t>>>8^j8[(t^n[r])&255];return(t^-1)>>>0}function H8(e){return("00000000"+hZ(e).toString(16)).slice(-8)}function G8(e){const t=U8.compressToEncodedURIComponent(JSON.stringify(e));return"#"+t+H8(t)}function dZ(e){if(!e||e.length<10)throw new Error("The state string in the URL is too short.");const t=e.slice(1,-8),n=e.slice(-8);if(H8(t)!==n)throw new Error("The state string in the URL is corrupted.");return JSON.parse(U8.decompressFromEncodedURIComponent(t))}let ao;function pZ(e){for(const t of e.genomeSpy.getNamedScaleResolutions().values())t.isZoomable()&&t.resetZoom();e.storeHelper.dispatch([...e.provenance.isUndoable()?[Ur.ActionCreators.jumpToPast(0)]:[],Is.actions.restoreDefaultVisibilities()])}async function vb(e,t){try{e.actions&&t.provenance.dispatchBookmark(e.actions),t.storeHelper.dispatch(Is.actions.setViewSettings(e.viewSettings));const n=[];for(const[r,i]of Object.entries(e.scaleDomains??{})){const a=t.genomeSpy.getNamedScaleResolutions().get(r);a?n.push(a.zoomTo(i)):console.warn(`Cannot restore scale domain. Unknown name: ${r}`)}await Promise.all(n)}catch(n){console.error(n),Wt(z`<p>Cannot restore the state:</p><p>${n}</p>`),t.provenance.activateState(0)}}async function Xl(e,t,n={}){await vb(e,t),(ao||e.notes||n.mode=="shared"&&(e.name||e.notes))&&await gZ(e,t,n)}async function gZ(e,t,n={}){ao??(ao=Ka("tour",t.appContainer)),await mZ(e,t,n)}async function mZ(e,t,n){const r=n.database,i=r?await r.getNames():[],a=i.indexOf(e.name),o=r?` ${a+1} of ${i.length}`:"",s=`${n.mode=="shared"?"Shared bookmark":"Bookmark"}${o}: ${e.name??"Unnamed"}`,l=e.notes?cZ(e.notes,{baseUrl:t.genomeSpy.spec.baseUrl}):z`<span class="no-notes">No notes provided</span>`,c=async()=>{if(ao==null||ao.close(),ao=void 0,n.mode=="tour"){const g=n.afterTourBookmark;if(typeof g=="string"){const y=await n.database.get(g);if(!y)throw new Error(`No such bookmark: ${g}`);vb(y,t)}else g===null||pZ(t)}},u=async g=>{const y=await r.get(i[g]);Xl(y,t,n),t.appContainer.querySelector("canvas").focus()},f=async()=>{if(await wb(t.localBookmarkDatabase,e,"add"))try{await t.localBookmarkDatabase.put(e)}catch(g){console.warn(g),Wt(`Cannot import bookmark: ${g}`)}},h=z`<button class="btn" @click="${c}">${n.mode=="tour"?"End tour":"Close"}</button> ${n.mode=="shared"&&t.localBookmarkDatabase?z`<button class="btn" @click="${f}">${ke($S).node[0]} Import bookmark</button>`:ne} ${r?z`<button class="btn" @click="${()=>u(a-1)}" ?disabled="${a<=0}">${ke(mG).node[0]} Previous</button> <button class="btn" @click="${()=>u(a+1)}" ?disabled="${a>=i.length-1}">Next ${ke(IG).node[0]}</button>`:ne}`,p=z`<button title="Collapse" class="btn collapse" @click="${g=>g.target.closest(".gs-modal").classList.toggle("collapsed")}">${ke(yG).node[0]}</button><div class="modal-title">${s}</div><div class="modal-body markdown" style="max-width:600px">${l}</div><div class="modal-buttons">${h}</div>`;Bt(p,ao.content)}function $8(e,t){const n=JSON.stringify(e,void 0,2),r=window.location,i=r.origin+r.pathname+r.search+(t?"#bookmark:"+e.name.replaceAll(" ","-"):G8(e));Wt(z`<div class="gs-tabs" style="width:600px"><ul class="tabs" @click="${lZ}"><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="${o=>navigator.clipboard.writeText(i).then(()=>o.target.dispatchEvent(SV())).catch(()=>Wt("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">
2375
+ ${n}</textarea> <small>The JSON-formatted bookmark is currently available for development purposes.</small></div></div></div>`,{title:"Share a bookmark",okLabel:"Close"})}function wb(e,t,n){const r={add:"Add bookmark",edit:"Edit bookmark",share:"Share the current view state as a bookmark"}[n],i=(l,c)=>z`<div class="modal-title">${r}</div><div class="modal-body" style="width:500px">${n=="edit"?z`<div class="gs-alert warning">${ke(wG).node[0]} The current visualization state will be updated to the bookmark you are editing.</div>`:ne} ${n=="share"?z`<div class="gs-alert info">${ke(YS).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>`:ne}<div class="gs-form-group"><label for="bookmark-title">Title</label> <input id="bookmark-title" type="text" ?required="${n=="add"||n=="edit"}" .value="${t.name??""}" .placeholder="${n=="share"?"Add an optional title":""}" @change="${u=>{t.name=V8(u.target.value)}}"></div><div class="gs-form-group"><label for="bookmark-notes">Notes</label> <textarea id="bookmark-notes" rows="4" .value="${t.notes??""}" .placeholder="${n=="share"?"... and notes":""}" @change="${u=>{t.notes=V8(u.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 btn-cancel" @click="${l}">Cancel</button> <button class="btn btn-primary" @click="${c}">${n=="share"?z`${ke(qm).node[0]} Create a link`:"Save"}</button></div>`,a=t.name,o=()=>!!t.name,s=Ka();return new Promise(l=>{const c=()=>{s.close(),l(!1)},u=async()=>{if(!o()){Wt("Name is missing!",{title:"Error"});return}let h=!0;e&&!(n&&t.name==a)&&await e.get(t.name)&&(h=await Wt(z`A bookmark with the name <em>${t.name}</em> already exists. It will be overwritten.`,{title:"Bookmark already exists",cancelButton:!0})),h&&(s.close(),l(!0))},f=()=>{s.close(),l(!0)};Bt(i(c,n=="share"?f:u),s.content),s.content.querySelector("#bookmark-title").focus()})}function V8(e){if(e!==void 0&&(e=e.trim(),e.length))return e}class bZ extends sr{constructor(){super(),this.app=void 0}connectedCallback(){super.connectedCallback(),this.dispatchEvent(B8("app",t=>{this.app=t}))}createRenderRoot(){return this}_createBookmarkWithCurrentState(){const t={name:void 0,timestamp:Date.now(),actions:this.app.provenance.getBookmarkableActionHistory(),scaleDomains:{}},n=this.app.storeHelper.state.viewSettings;Object.keys(n.visibilities).length&&(t.viewSettings=n);for(const[r,i]of this.app.genomeSpy.getNamedScaleResolutions().entries())i.isZoomable()&&(t.scaleDomains[r]=i.getComplexDomain());return t}async _shareCurrentState(){const t=this._createBookmarkWithCurrentState();await wb(void 0,t,"share")&&$8(t,!1)}async _addBookmark(t,n){const r=n?await t.get(n):void 0,i=!!r,a=this._createBookmarkWithCurrentState();if(a.name??(a.name=r==null?void 0:r.name),a.notes??(a.notes=r==null?void 0:r.notes),await wb(t,a,i?"edit":"add"))try{await t.put(a,r==null?void 0:r.name),this.requestUpdate()}catch(o){Wt(`${o}`,{title:"Cannot save the bookmark!"})}}async _loadBookmark(t,n){const r=await t.get(n);r&&Xl(r,this.app,{database:t})}_createContextMenu(t,n,r){r.stopPropagation();const i=r.target.closest("li"),a=()=>Wt(z`The bookmark <em>${n}</em> will be deleted.`,{title:"Are you sure?",cancelButton:!0}).then(async l=>{l&&(await t.delete(n),this.requestUpdate())}),o=[],s=t==this.app.globalBookmarkDatabase;s||(o.push({label:"Edit and replace...",icon:NG,callback:()=>this._addBookmark(t,n)}),o.push({label:"Delete",icon:ZS,callback:a})),o.push({label:"Share...",icon:qm,callback:async()=>$8(await t.get(n),s)}),d8({items:o},i,"right-start")}async _makeBookmarkMenuItems(t,n){const i=(await t.getNames()).map(a=>({label:a,callback:()=>this._loadBookmark(t,a),ellipsisCallback:o=>this._createContextMenu(t,a,o)}));return i.length?[{type:"divider"},{label:n,type:"header"},...i].map(a=>f8(a)):ne}_getBookmarks(){const t=(n,r)=>n?oZ(this._makeBookmarkMenuItems(n,r),z`Loading...`):ne;return[t(this.app.globalBookmarkDatabase,"Bookmarks on the server"),t(this.app.localBookmarkDatabase,"Bookmarks in the web browser")]}render(){const t=this.app.localBookmarkDatabase,n=t?z`<li><a @click="${()=>this._addBookmark(t)}">Add bookmark...</a></li>`:ne,r=t||this.app.globalBookmarkDatabase?z`<div class="dropdown bookmark-dropdown"><button class="tool-btn" title="Bookmarks" @click="${i=>{gb(i)&&this.requestUpdate()}}">${ke($S).node[0]}</button><ul class="gs-dropdown-menu">${n} ${this._getBookmarks()}</ul></div>`:ne;return z`<div class="btn-group">${r} <button class="tool-btn" title="Share" @click="${()=>this._shareCurrentState()}">${ke(qm).node[0]}</button></div>`}}customElements.define("genome-spy-bookmark-button",bZ);class yZ extends sr{constructor(){super(),this.app=void 0,this.appInitialized=!1}static get properties(){return{app:{type:Object},appInitialized:{type:Boolean}}}createRenderRoot(){return this}_getToolButtons(){const t=this.app.provenance,n=[];t.isEnabled()&&n.push(z`<genome-spy-provenance-buttons .provenance="${t}"></genome-spy-provenance-buttons>`),n.push(z`<genome-spy-view-visibility></genome-spy-view-visibility>`),n.push(z`<genome-spy-bookmark-button></genome-spy-bookmark-button>`);const r=this.app.config.description?rn(this.app.config.description):[];return r.length>1&&n.push(z`<button class="tool-btn" title="Show a description of the visualization" @click="${()=>Wt(z`${r.slice(1).map(i=>z`<p>${i}</p>`)}`,{title:r[0]})}">${ke(YS).node[0]}</button>`),r.length>0&&n.push(z`<span class="vis-title">${r[0]}</span>`),n.push(z`<span class="spacer"></span> <a class="version" href="https://github.com/genome-spy/genome-spy/releases/tag/v${F8.version}">v${F8.version}</a> ${this.app.appContainer.requestFullscreen?z`<button class="tool-btn" title="Fullscreen" @click="${()=>this.app.toggleFullScreen()}">${ke(MG).node[0]}</button>`:ne} <button class="tool-btn" title="Help" @click="${()=>window.open("https://genomespy.app/docs/sample-collections/analyzing/","_blank")}">${ke(EG).node[0]}</button>`),n}render(){const t=this.app.genomeSpy;return z`<nav class="gs-toolbar"><a href="https://genomespy.app" target="_blank" class="logo"><img title="GenomeSpy" alt="GenomeSpy" src="${N8}"> </a>${this.appInitialized&&M8(t.viewRoot)?z`<genome-spy-search-field .app="${this.app}"></genome-spy-search-field>`:ne} ${this._getToolButtons()}</nav>`}}customElements.define("genome-spy-toolbar",yZ);class vZ{constructor(t){this.storeHelper=t,this._reducers={},this.actionInfoSources=[],this._reducer=void 0,t.addReducer("provenance",(n,r)=>this._reducer?this._reducer(n,r):n??{})}addReducer(t,n){this._reducers[t]=n;const r=a=>Object.keys(this._reducers).some(o=>a.type.startsWith(o)),i=(a,o)=>r(o)?o:a??null;this._reducer=rQ(j1({...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(t){this.actionInfoSources.push(t)}getActionInfo(t){for(const n of this.actionInfoSources){const r=n(t);if(r)return r}}dispatchBookmark(t){this.storeHelper.dispatch([...this.isUndoable()?[Ur.ActionCreators.jumpToPast(0)]:[],...t])}isRedoable(){return this.isEnabled()&&this._provenanceState.future.length>0}redo(){this.storeHelper.dispatch(Ur.ActionCreators.redo())}isUndoable(){return this.isEnabled()&&this._provenanceState.past.length>0}undo(){this.storeHelper.dispatch(Ur.ActionCreators.undo())}isAtInitialState(){return!this.isUndoable()}isEmpty(){const t=this._provenanceState;return!this.isEnabled()||t.past.length+t.future.length<=0}activateState(t){const n=this.getCurrentIndex();t<n?this.storeHelper.dispatch(Ur.ActionCreators.jumpToPast(t)):t>n&&this.storeHelper.dispatch(Ur.ActionCreators.jumpToFuture(t-n-1))}getCurrentIndex(){var t;return(t=this._provenanceState.past)==null?void 0:t.length}getActionHistory(){const t=this._provenanceState;return t.present&&[...t.past,t.present].map(n=>n.lastAction)}getFullActionHistory(){const t=this._provenanceState;return[...t.past,t.present,...t.future].map(n=>n.lastAction)}getBookmarkableActionHistory(){var t;return(t=this.getActionHistory())==null?void 0:t.slice(1)}}function*wZ(e,t=n=>+n){const n=e.length,r=new Vc,i=new Array(n).fill(0);for(const[o,s]of e.entries())s.length&&r.push(o,t(s[0]));let a=0;for(;(a=r.pop())!==void 0;){const o=e[a];let s=i[a];if(yield o[s++],s<o.length){const c=t(o[s]);r.push(a,c),i[a]=s}}}const xZ="sampleCount";class AZ extends We{constructor(n,r){super();Fe(this,ou);this.view=r;const i=r.context.animator;if(this.provenance=EZ(r),!this.provenance)throw new Error("No SampleView was found!");this.provenance.storeHelper.subscribe(a=>{ce(this,ou,Fb)&&i.requestTransition(()=>{this.reset(),this._mergeAndPropagate(Y1(a)),this.complete()})}),this.contextObject=void 0}initialize(){this.contextObject=Object.create(super.getGlobalObject());const n=this.view.getEncoding().x;if(pa(n))this.xAccessor=_e(n.field);else throw new Error("Crash!")}handle(n){}getGlobalObject(){return this.contextObject}_getCollector(){if(this.parent instanceof $c)return this.parent;throw new Error("MergeFacetsTransform must be a direct child of a Collector")}complete(){ce(this,ou,Fb)&&(this._mergeAndPropagate(this.provenance.getPresentState()[_s]),super.complete())}_mergeAndPropagate(n){const r=[...Z1(n.rootGroup)].filter(i=>z6(Gt(i)));for(const[i,a]of r.entries()){const o=Gt(a);if(z6(o)){this.contextObject[xZ]=o.samples.length,this.beginBatch({type:"facet",facetId:[i]});const s=o.samples,l=this._getCollector(),c=wZ(s.map(u=>l.facetBatches.get([u])??[]),this.xAccessor);for(const u of c)this._propagate(u)}}this._updateScales()}setParent(n){super.setParent(n)}_updateScales(){const n=new Set;this.view.visit(r=>{if(r instanceof Je&&r.mark.encoding.y){const i=r.getScaleResolution("y");i&&n.add(i)}});for(const r of n)r.reconfigure()}}ou=new WeakSet,Fb=function(){return this.view.isVisible()};function EZ(e){for(const t of e.getAncestors())if(t instanceof ob)return t.provenance}var SZ="BATCHING_REDUCER.BATCH";function CZ(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:SZ;return{type:t,meta:{batch:!0},payload:e}}function _Z(e){return function t(n,r){return r&&r.meta&&r.meta.batch?r.payload.reduce(t,n):e(n,r)}}class kZ{constructor(t){this._reducers=t??{},this.store=dY({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(t,n){this._reducers[t]=n,this.store.replaceReducer(_Z(j1(this._reducers)))}subscribe(t){this._listeners.add(t)}unsubscribe(t){this._listeners.delete(t)}dispatch(t){Array.isArray(t)?this.store.dispatch(CZ(t)):this.store.dispatch(t)}getDispatcher(){return t=>this.dispatch(t)}}class DZ extends _8{constructor(t){super(),this.bookmarks=t,this.names=t.map(n=>n.name)}async getNames(){return this.names}async get(t){return this.bookmarks.find(n=>n.name==t)}}iA.mergeFacets=AZ;class Y8{constructor(t,n,r={}){const i=this;this.config=n,this.storeHelper=new kZ,this.storeHelper.addReducer("viewSettings",Is.reducer),this.provenance=new vZ(this.storeHelper),this._initializationListeners=[],this.toolbarRef=I8(),this.appContainer=t,this._configureContainer(),this.localBookmarkDatabase=typeof n.specId=="string"?new $Q(n.specId):void 0,this.globalBookmarkDatabase=void 0,Bt(z`<div class="genome-spy-app"><genome-spy-toolbar ${T8(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 a=s=>this.appContainer.getElementsByClassName(s)[0];this.genomeSpy=new OS(a("genome-spy-container"),this.config,r),this.genomeSpy.viewFactory.addViewType(NQ,(s,l,c,u)=>new ob(s,l,c,u,this.provenance));const o=this.genomeSpy.viewVisibilityPredicate;this.genomeSpy.viewVisibilityPredicate=s=>{var l;return((l=this.storeHelper.state.viewSettings)==null?void 0:l.visibilities[s.name])??o(s)}}addInitializationListener(t){this._initializationListeners?this._initializationListeners.push(t):t()}toggleFullScreen(){document.fullscreenElement?document.exitFullscreen&&document.exitFullscreen():this.appContainer.requestFullscreen()}isFullPage(){return this.appContainer==document.body}async launch(){var o;const t=(o=this.config.bookmarks)!=null&&o.remote?rc({baseURL:this.config.baseUrl}).load(this.config.bookmarks.remote.url).then(s=>Promise.resolve(JSON.parse(s))):Promise.resolve([]);if(!await this.genomeSpy.launch())return;this.appContainer.querySelector("canvas").setAttribute("tabindex","-1"),this.storeHelper.subscribe(id(s=>{var l;return(l=s.viewSettings)==null?void 0:l.visibilities},(s,l)=>{var u,f;this.genomeSpy.viewRoot._invalidateCacheByPrefix("size","progeny"),(f=(u=this.getSampleView())==null?void 0:u.summaryViews)==null||f._invalidateCacheByPrefix("size","self");const c=this.genomeSpy.viewRoot.context;c.requestLayoutReflow(),c.animator.requestRender()},this.storeHelper.store.getState()));try{const s=await t;s.length&&(this.globalBookmarkDatabase=new DZ(s))}catch(s){throw new Error(`Cannot load remote bookmarks: ${s}`)}try{await this._restoreStateFromUrlOrBookmark()}catch(s){Wt(s.toString())}this.storeHelper.subscribe(()=>{this._updateStateToUrl()}),window.addEventListener("hashchange",()=>this._restoreStateFromUrl().catch(s=>Wt(s.toString())),!1);const r=hs(()=>this._updateStateToUrl(),500,!1);for(const[,s]of this.genomeSpy.getNamedScaleResolutions())s.isZoomable()&&s.addEventListener("domain",r);const i=this.toolbarRef.value;i.appInitialized=!0;const a=rn(this.genomeSpy.spec.description??[]);this.isFullPage()&&a.length>0&&(document.title="GenomeSpy - "+a);for(const s of this._initializationListeners)s();this._initializationListeners=void 0}async _restoreStateFromUrlOrBookmark(){var i;const t=(i=this.config.bookmarks)==null?void 0:i.remote,n=this.globalBookmarkDatabase;if(!await this._restoreStateFromUrl()&&t&&n){const a=t.initialBookmark??(t.tour&&(await n.getNames())[0]);if(a){const o=await n.get(a);if(!o)throw new Error(`No such bookmark: ${a}`);t.tour?await Xl(o,this,{mode:"tour",database:n,afterTourBookmark:t.afterTourBookmark}):await vb(o,this)}}}_updateStateToUrl(){const t={actions:[],scaleDomains:{}},n=this.provenance.getBookmarkableActionHistory();n!=null&&n.length&&(t.actions=n);for(const[a,o]of this.genomeSpy.getNamedScaleResolutions().entries())o.isZoomed()||(t.scaleDomains[a]=o.getComplexDomain());const r=this.storeHelper.state.viewSettings;Object.keys(r.visibilities).length&&(t.viewSettings=r);const i=t.actions.length||Object.keys(t.scaleDomains).length||t.viewSettings?G8(t):"";window.history.replaceState(void 0,document.title,window.location.pathname+window.location.search+i)}async _restoreStateFromUrl(){var r,i;const t=window.location.hash,n=(r=t.match(/^#bookmark:(.+)$/))==null?void 0:r[1];if(n){const a=(i=this.config.bookmarks)==null?void 0:i.remote,o=this.globalBookmarkDatabase;if(a&&o){const s=(await o.getNames()).find(l=>l.replaceAll(" ","-")==n);if(s){const l=await o.get(s);if(!l)throw new Error(`No such bookmark: ${s}`);return await Xl(l,this,{mode:"tour",database:o}),!0}else throw new Error(`No such bookmark: ${n}`)}}if(t&&t.length>0)try{const a=dZ(t);return Xl(a,this,{mode:"shared"}),!0}catch(a){console.error(a),Wt(z`<p>Cannot restore the state:</p><p>${a}</p>`)}return!1}_configureContainer(){this.isFullPage()?(this.appContainer.style.margin="0",this.appContainer.style.padding="0",this.appContainer.style.overflow="hidden",IZ(rG)):this.appContainer.style.position="relative"}getSampleView(){var n;if(!((n=this.genomeSpy)!=null&&n.viewRoot))return;let t;return this.genomeSpy.viewRoot.visit(r=>{if(r instanceof ob)return t=r,xa}),t}}function IZ(e){const t=document.querySelector("head"),n=document.createElement("link");n.setAttribute("rel","shortcut icon"),n.setAttribute("href",e),t.appendChild(n)}async function TZ(e,t,n={}){let r;if(ze(e)){if(r=document.querySelector(e),!r)throw new Error(`No such element: ${e}`)}else if(e instanceof HTMLElement)r=e;else throw new Error(`Invalid element: ${e}`);let i;try{const a=Ht(t)?t:await Q8(t);a.baseUrl??(a.baseUrl=""),a.width??(a.width="container"),a.padding??(a.padding=10);const o=new Y8(r,a,n);i=o.genomeSpy,MZ(i,n),await o.launch()}catch(a){r.innerText=a.toString(),console.error(a)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(a,o){const s=i._eventListeners;let l=s.get(a);l||(l=new Set,s.set(a,l)),l.add(o)},removeEventListener(a,o){var l;(l=i._eventListeners.get(a))==null||l.delete(o)},getScaleResolutionByName(a){return i.getNamedScaleResolutions().get(a)}}}function MZ(e,t){t.namedDataProvider&&e.registerNamedDataProvider(t.namedDataProvider)}async function Q8(e){let t;try{t=JSON.parse(await rc().load(e))}catch(n){throw new Error(`Could not load or parse configuration: ${e}, reason: ${n.message}`)}if(!t.baseUrl){const n=e.match(/^[^?#]*\//);t.baseUrl=n&&n[0]||"./"}return t}le.GenomeSpy=OS,le.GenomeSpyApp=Y8,le.embed=TZ,le.html=z,le.icon=N8,le.loadSpec=Q8,Object.defineProperty(le,Symbol.toStringTag,{value:"Module"})});