@genome-spy/app 0.56.0 → 0.56.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es.js +110 -114
- package/dist/index.js +27 -27
- package/package.json +3 -3
package/dist/index.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
(function(Ie,$e){typeof exports=="object"&&typeof module<"u"?$e(exports):typeof define=="function"&&define.amd?define(["exports"],$e):(Ie=typeof globalThis<"u"?globalThis:Ie||self,$e(Ie.genomeSpyApp={}))})(this,function(Ie){"use strict";var coe=Object.defineProperty;var F7=Ie=>{throw TypeError(Ie)};var uoe=(Ie,$e,
|
1
|
+
(function(Ie,$e){typeof exports=="object"&&typeof module<"u"?$e(exports):typeof define=="function"&&define.amd?define(["exports"],$e):(Ie=typeof globalThis<"u"?globalThis:Ie||self,$e(Ie.genomeSpyApp={}))})(this,function(Ie){"use strict";var coe=Object.defineProperty;var F7=Ie=>{throw TypeError(Ie)};var uoe=(Ie,$e,Qe)=>$e in Ie?coe(Ie,$e,{enumerable:!0,configurable:!0,writable:!0,value:Qe}):Ie[$e]=Qe;var Kt=(Ie,$e,Qe)=>uoe(Ie,typeof $e!="symbol"?$e+"":$e,Qe),Jw=(Ie,$e,Qe)=>$e.has(Ie)||F7("Cannot "+Qe);var B=(Ie,$e,Qe)=>(Jw(Ie,$e,"read from private field"),Qe?Qe.call(Ie):$e.get(Ie)),J=(Ie,$e,Qe)=>$e.has(Ie)?F7("Cannot add the same private member more than once"):$e instanceof WeakSet?$e.add(Ie):$e.set(Ie,Qe),se=(Ie,$e,Qe,Ts)=>(Jw(Ie,$e,"write to private field"),Ts?Ts.call(Ie,Qe):$e.set(Ie,Qe),Qe),Q=(Ie,$e,Qe)=>(Jw(Ie,$e,"access private method"),Qe);var M7=(Ie,$e,Qe,Ts)=>({set _(gg){se(Ie,$e,gg,Qe)},get _(){return B(Ie,$e,Ts)}});var E7,ms,Th,nh,qo,bs,Kl,Jl,rh,ih,ec,O7,L7,li,Wo,ev,tv,tc,rg,N7,Vi,nc,zn,oh,we,nv,rv,Ki,iv,z7,U7,ov,av,fg,sv,Cs,lv,$7,ah,cv,rc,sh,lh,ch,uh,ci,Ih,uv,fh,ig,H7,ji,hh,ys,ws,Un,fv,hv,dv,G7,ic,oc,ac,dh,sc,lc,ph,pv,gh,gv,vs,mh,bh,cc,yh,wh,qi,xs,Yo,Zo,uc,fc,$n,As,hc,Fe,ks,V7,Rh,mv,bv,yv,j7,hg,q7,dc,vh,Qo,Es,pc,ur,dg,W7,Y7,Z7,gc,Wi,Xo,xh,Dr,Q7,X7,wv,K7,gt,Zt,J7,e9,t9,n9,Bh,r9,og,i9,fr,Ko,Ss,mc,bc,Yi,yc,$t,Ah,vv,mt,ln,Eh,wc,Sh,Qt,o9,a9,s9,xv,l9,c9,u9,Cn,f9,h9,d9,p9,pg,_h,Ch,Br,Av,g9,m9,b9;function $e(e,t){for(var n=0;n<t.length;n++){const r=t[n];if(typeof r!="string"&&!Array.isArray(r)){for(const i in r)if(i!=="default"&&!(i in e)){const o=Object.getOwnPropertyDescriptor(r,i);o&&Object.defineProperty(e,i,o.get?o:{enumerable:!0,get:()=>r[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function Qe(e,t,n){return e.fields=t||[],e.fname=n,e}function Ts(e){return e==null?null:e.fname}function gg(e){return e==null?null:e.fields}function y9(e){return e.length===1?w9(e[0]):v9(e)}const w9=e=>function(t){return t[e]},v9=e=>{const t=e.length;return function(n){for(let r=0;r<t;++r)n=n[e[r]];return n}};function yt(e){throw Error(e)}function x9(e){const t=[],n=e.length;let r=null,i=0,o="",a,s,l;e=e+"";function c(){t.push(o+e.substring(a,s)),o="",a=s+1}for(a=s=0;s<n;++s)if(l=e[s],l==="\\")o+=e.substring(a,s++),a=s;else if(l===r)c(),r=null,i=-1;else{if(r)continue;a===i&&l==='"'||a===i&&l==="'"?(a=s+1,r=l):l==="."&&!i?s>a?c():a=s+1:l==="["?(s>a&&c(),i=a=s+1):l==="]"&&(i||yt("Access path missing open bracket: "+e),i>0&&c(),i=0,a=s+1)}return i&&yt("Access path missing closing bracket: "+e),r&&yt("Access path missing closing quote: "+e),s>a&&(s++,c()),t}function Fh(e,t,n){const r=x9(e);return e=r.length===1?r[0]:e,Qe((n&&n.get||y9)(r),[e],t||e)}Fh("id");const Mh=Qe(e=>e,[],"identity");Qe(()=>0,[],"zero"),Qe(()=>1,[],"one"),Qe(()=>!0,[],"true"),Qe(()=>!1,[],"false");var Jt=Array.isArray;function en(e){return e===Object(e)}function pr(e){return e[e.length-1]}function xc(e){return e==null||e===""?null:+e}const Ev=e=>t=>e*Math.exp(t),Sv=e=>t=>Math.log(e*t),A9=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),E9=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,Ph=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function mg(e,t,n,r){const i=n(e[0]),o=n(pr(e)),a=(o-i)*t;return[r(i-a),r(o-a)]}function S9(e,t){return mg(e,t,xc,Mh)}function _9(e,t){var n=Math.sign(e[0]);return mg(e,t,Sv(n),Ev(n))}function C9(e,t,n){return mg(e,t,Ph(n),Ph(1/n))}function Oh(e,t,n,r,i){const o=r(e[0]),a=r(pr(e)),s=t!=null?r(t):(o+a)/2;return[i(s+(o-s)*n),i(s+(a-s)*n)]}function bg(e,t,n){return Oh(e,t,n,xc,Mh)}function _v(e,t,n){const r=Math.sign(e[0]);return Oh(e,t,n,Sv(r),Ev(r))}function yg(e,t,n,r){return Oh(e,t,n,Ph(r),Ph(1/r))}function k9(e,t,n,r){return Oh(e,t,n,A9(r),E9(r))}function wg(e){return e!=null?Jt(e)?e:[e]:[]}function T9(e,t,n){let r=e[0],i=e[1],o;return i<r&&(o=i,i=r,r=o),o=i-r,o>=n-t?[t,n]:[r=Math.min(Math.max(r,t),n-o),r+o]}function Tn(e){return typeof e=="function"}const I9="descending";function Cv(e,t,n){n=n||{},t=wg(t)||[];const r=[],i=[],o={},a=n.comparator||R9;return wg(e).forEach((s,l)=>{s!=null&&(r.push(t[l]===I9?-1:1),i.push(s=Tn(s)?s:Fh(s,null,n)),(gg(s)||[]).forEach(c=>o[c]=1))}),i.length===0?null:Qe(a(i,r),Object.keys(o))}const kv=(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),R9=(e,t)=>e.length===1?D9(e[0],t[0]):B9(e,t,e.length),D9=(e,t)=>function(n,r){return kv(e(n),e(r))*t},B9=(e,t,n)=>(t.push(0),function(r,i){let o,a=0,s=-1;for(;a===0&&++s<n;)o=e[s],a=kv(o(r),o(i));return a*t[s]});function vg(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 F9=Object.prototype.hasOwnProperty;function Is(e,t){return F9.call(e,t)}function Ac(e){return typeof e=="boolean"}function M9(e){return Object.prototype.toString.call(e)==="[object Date]"}function P9(e){return e&&Tn(e[Symbol.iterator])}function vt(e){return typeof e=="number"}function O9(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function Xe(e){return typeof e=="string"}function Tv(e,t){const n=e[0],r=pr(e),i=+t;return i?i===1?r:n+i*(r-n):n}function Lh(e){return e&&pr(e)-e[0]||0}function Nh(e){return Jt(e)?"["+e.map(Nh)+"]":en(e)||Xe(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function L9(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const N9=e=>vt(e)||M9(e)?e:Date.parse(e);function z9(e,t){return t=t||N9,e==null||e===""?null:t(e)}function U9(e){return e==null||e===""?null:e+""}function zh(e){const t={},n=e.length;for(let r=0;r<n;++r)t[e[r]]=!0;return t}var Iv={},xg={},Ag=34,Ec=10,Eg=13;function Rv(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function $9(e,t){var n=Rv(e);return function(r,i){return t(n(r),i,e)}}function Dv(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 mn(e,t){var n=e+"",r=n.length;return r<t?new Array(t-r+1).join(0)+n:n}function H9(e){return e<0?"-"+mn(-e,6):e>9999?"+"+mn(e,6):mn(e,4)}function G9(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":H9(e.getUTCFullYear())+"-"+mn(e.getUTCMonth()+1,2)+"-"+mn(e.getUTCDate(),2)+(i?"T"+mn(t,2)+":"+mn(n,2)+":"+mn(r,2)+"."+mn(i,3)+"Z":r?"T"+mn(t,2)+":"+mn(n,2)+":"+mn(r,2)+"Z":n||t?"T"+mn(t,2)+":"+mn(n,2)+"Z":"")}function Bv(e){var t=new RegExp('["'+e+`
|
2
2
|
\r]`),n=e.charCodeAt(0);function r(f,h){var d,p,g=i(f,function(b,m){if(d)return d(b,m-1);p=b,d=h?$9(b,h):Rv(b)});return g.columns=p||[],g}function i(f,h){var d=[],p=f.length,g=0,b=0,m,v=p<=0,x=!1;f.charCodeAt(p-1)===Ec&&--p,f.charCodeAt(p-1)===Eg&&--p;function A(){if(v)return xg;if(x)return x=!1,Iv;var E,_=g,R;if(f.charCodeAt(_)===Ag){for(;g++<p&&f.charCodeAt(g)!==Ag||f.charCodeAt(++g)===Ag;);return(E=g)>=p?v=!0:(R=f.charCodeAt(g++))===Ec?x=!0:R===Eg&&(x=!0,f.charCodeAt(g)===Ec&&++g),f.slice(_+1,E-1).replace(/""/g,'"')}for(;g<p;){if((R=f.charCodeAt(E=g++))===Ec)x=!0;else if(R===Eg)x=!0,f.charCodeAt(g)===Ec&&++g;else if(R!==n)continue;return f.slice(_,E)}return v=!0,f.slice(_,p)}for(;(m=A())!==xg;){for(var S=[];m!==Iv&&m!==xg;)S.push(m),m=A();h&&(S=h(S,b++))==null||d.push(S)}return d}function o(f,h){return f.map(function(d){return h.map(function(p){return u(d[p])}).join(e)})}function a(f,h){return h==null&&(h=Dv(f)),[h.map(u).join(e)].concat(o(f,h)).join(`
|
3
3
|
`)}function s(f,h){return h==null&&(h=Dv(f)),o(f,h).join(`
|
4
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?G9(f):t.test(f+="")?'"'+f.replace(/"/g,'""')+'"':f}return{parse:r,parseRows:i,format:a,formatBody:s,formatRows:l,formatRow:c,formatValue:u}}var V9=Bv(" "),j9=V9.parseRows;function q9(e){return e}function W9(e){if(e==null)return q9;var t,n,r=e.scale[0],i=e.scale[1],o=e.translate[0],a=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+o,f[1]=(n+=s[1])*i+a;c<u;)f[c]=s[c],++c;return f}}function Y9(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function Z9(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return Fv(e,n)})}:Fv(e,t)}function Fv(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,o=Mv(e,t);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 Mv(e,t){var n=W9(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&&Y9(f,p)}function o(u){return n(u)}function a(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=a(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=o(u.coordinates);break;case"MultiPoint":h=u.coordinates.map(o);break;case"LineString":h=a(u.arcs);break;case"MultiLineString":h=u.arcs.map(a);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 Q9(e,t){var n={},r={},i={},o=[],a=-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[++a],t[a]=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 b=p===d?d:p.concat(d);r[b.start=p.start]=i[b.end=d.end]=b}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}),o.push(h)}}return l(i,r),l(r,i),t.forEach(function(c){n[c<0?~c:c]||o.push([c])}),o}function X9(e){return Mv(e,K9.apply(this,arguments))}function K9(e,t,n){var r,i,o;if(arguments.length>1)r=J9(e,t,n);else for(i=0,r=new Array(o=e.arcs.length);i<o;++i)r[i]=i;return{type:"MultiLineString",arcs:Q9(e,r)}}function J9(e,t,n){var r=[],i=[],o;function a(f){var h=f<0?~f:f;(i[h]||(i[h]=[])).push({i:f,g:o})}function s(f){f.forEach(a)}function l(f){f.forEach(s)}function c(f){f.forEach(l)}function u(f){switch(o=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 na(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function eR(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Rs(e){let t,n,r;e.length!==2?(t=na,n=(s,l)=>na(e(s),l),r=(s,l)=>e(s)-l):(t=e===na||e===eR?e:tR,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 o(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){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:a,right:o}}function tR(){return 0}function Pv(e){return e===null?NaN:+e}function*nR(e,t){if(t===void 0)for(let n of e)n!=null&&(n=+n)>=n&&(yield n);else{let n=-1;for(let r of e)(r=t(r,++n,e))!=null&&(r=+r)>=r&&(yield r)}}const Ov=Rs(na),pi=Ov.right;Ov.left,Rs(Pv).center;function Lv(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 rR(e,t){let n=0,r,i=0,o=0;if(t===void 0)for(let a of e)a!=null&&(a=+a)>=a&&(r=a-i,i+=r/++n,o+=r*(a-i));else{let a=-1;for(let s of e)(s=t(s,++a,e))!=null&&(s=+s)>=s&&(r=s-i,i+=r/++n,o+=r*(s-i))}if(n>1)return o/(n-1)}function Uh(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 o of e)(o=t(o,++i,e))!=null&&(n===void 0?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)))}return[n,r]}class gi extends Map{constructor(t,n=aR){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(Nv(this,t))}has(t){return super.has(Nv(this,t))}set(t,n){return super.set(iR(this,t),n)}delete(t){return super.delete(oR(this,t))}}function Nv({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function iR({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function oR({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function aR(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Sc(e){return e}function _c(e,...t){return Sg(e,Sc,Sc,t)}function sR(e,...t){return Sg(e,Array.from,Sc,t)}function lR(e,t,...n){return Sg(e,Sc,t,n)}function Sg(e,t,n,r){return function i(o,a){if(a>=r.length)return n(o);const s=new gi,l=r[a++];let c=-1;for(const u of o){const f=l(u,++c,o),h=s.get(f);h?h.push(u):s.set(f,[u])}for(const[u,f]of s)s.set(u,i(f,a));return t(s)}(e,0)}function cR(e,t){return Array.from(t,n=>e[n])}function uR(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,o)=>o);return t.length>1?(t=t.map(i=>e.map(i)),r.sort((i,o)=>{for(const a of t){const s=$h(a[i],a[o]);if(s)return s}})):(n=e.map(n),r.sort((i,o)=>$h(n[i],n[o]))),cR(e,r)}return e.sort(zv(n))}function zv(e=na){if(e===na)return $h;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 $h(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:e>t?1:0)}var fR=Array.prototype,hR=fR.slice;function _g(e){return()=>e}const dR=Math.sqrt(50),pR=Math.sqrt(10),gR=Math.sqrt(2);function Hh(e,t,n){const r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),o=r/Math.pow(10,i),a=o>=dR?10:o>=pR?5:o>=gR?2:1;let s,l,c;return i<0?(c=Math.pow(10,-i)/a,s=Math.round(e*c),l=Math.round(t*c),s/c<e&&++s,l/c>t&&--l,c=-c):(c=Math.pow(10,i)*a,s=Math.round(e/c),l=Math.round(t/c),s*c<e&&++s,l*c>t&&--l),l<s&&.5<=n&&n<2?Hh(e,t,n*2):[s,l,c]}function Cc(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];const r=t<e,[i,o,a]=r?Hh(t,e,n):Hh(e,t,n);if(!(o>=i))return[];const s=o-i+1,l=new Array(s);if(r)if(a<0)for(let c=0;c<s;++c)l[c]=(o-c)/-a;else for(let c=0;c<s;++c)l[c]=(o-c)*a;else if(a<0)for(let c=0;c<s;++c)l[c]=(i+c)/-a;else for(let c=0;c<s;++c)l[c]=(i+c)*a;return l}function Ds(e,t,n){return t=+t,e=+e,n=+n,Hh(e,t,n)[2]}function ra(e,t,n){t=+t,e=+e,n=+n;const r=t<e,i=r?Ds(t,e,n):Ds(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function mR(e,t,n){let r;for(;;){const i=Ds(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 bR(e){return Math.max(1,Math.ceil(Math.log(Lv(e))/Math.LN2)+1)}function yR(){var e=Sc,t=Uh,n=bR;function r(i){Array.isArray(i)||(i=Array.from(i));var o,a=i.length,s,l,c=new Array(a);for(o=0;o<a;++o)c[o]=e(i[o],o,i);var u=t(c),f=u[0],h=u[1],d=n(c,f,h);if(!Array.isArray(d)){const x=h,A=+d;if(t===Uh&&([f,h]=mR(f,h,A)),d=Cc(f,h,A),d[0]<=f&&(l=Ds(f,h,A)),d[d.length-1]>=h)if(x>=h&&t===Uh){const S=Ds(f,h,A);isFinite(S)&&(S>0?h=(Math.floor(h/S)+1)*S:S<0&&(h=(Math.ceil(h*-S)+1)/-S))}else d.pop()}for(var p=d.length,g=0,b=p;d[g]<=f;)++g;for(;d[b-1]>h;)--b;(g||b<p)&&(d=d.slice(g,b),p=b-g);var m=new Array(p+1),v;for(o=0;o<=p;++o)v=m[o]=[],v.x0=o>0?d[o-1]:f,v.x1=o<p?d[o]:h;if(isFinite(l)){if(l>0)for(o=0;o<a;++o)(s=c[o])!=null&&f<=s&&s<=h&&m[Math.min(p,Math.floor((s-f)/l))].push(i[o]);else if(l<0){for(o=0;o<a;++o)if((s=c[o])!=null&&f<=s&&s<=h){const x=Math.floor((f-s)*l);m[Math.min(p,x+(d[x]<=s))].push(i[o])}}}else for(o=0;o<a;++o)(s=c[o])!=null&&f<=s&&s<=h&&m[pi(d,s,0,p)].push(i[o]);return m}return r.value=function(i){return arguments.length?(e=typeof i=="function"?i:_g(i),r):e},r.domain=function(i){return arguments.length?(t=typeof i=="function"?i:_g([i[0],i[1]]),r):t},r.thresholds=function(i){return arguments.length?(n=typeof i=="function"?i:_g(Array.isArray(i)?hR.call(i):i),r):n},r}function Cg(e,t){let n;if(t===void 0)for(const r of e)r!=null&&(n<r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n<i||n===void 0&&i>=i)&&(n=i)}return n}function kg(e,t){let n;if(t===void 0)for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function Uv(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?$h:zv(i);r>n;){if(r-n>600){const l=r-n+1,c=t-n+1,u=Math.log(l),f=.5*Math.exp(2*u/3),h=.5*Math.sqrt(u*f*(l-f)/l)*(c-l/2<0?-1:1),d=Math.max(n,Math.floor(t-c*f/l+h)),p=Math.min(r,Math.floor(t+(l-c)*f/l+h));Uv(e,t,d,p,i)}const o=e[t];let a=n,s=r;for(kc(e,n,t),i(e[r],o)>0&&kc(e,n,r);a<s;){for(kc(e,a,s),++a,--s;i(e[a],o)<0;)++a;for(;i(e[s],o)>0;)--s}i(e[n],o)===0?kc(e,n,s):(++s,kc(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function kc(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function wR(e,t,n){if(e=Float64Array.from(nR(e,n)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return kg(e);if(t>=1)return Cg(e);var r,i=(r-1)*t,o=Math.floor(i),a=Cg(Uv(e,o).subarray(0,o+1)),s=kg(e.subarray(o+1));return a+(s-a)*(i-o)}}function Tg(e,t,n=Pv){if(!(!(r=e.length)||isNaN(t=+t))){if(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,o=Math.floor(i),a=+n(e[o],o,e),s=+n(e[o+1],o+1,e);return a+(s-a)*(i-o)}}function vR(e,t){let n=0,r=0;if(t===void 0)for(let i of e)i!=null&&(i=+i)>=i&&(++n,r+=i);else{let i=-1;for(let o of e)(o=t(o,++i,e))!=null&&(o=+o)>=o&&(++n,r+=o)}if(n)return r/n}function xR(e,t){return wR(e,.5,t)}function Ji(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,o=new Array(i);++r<i;)o[r]=e+r*n;return o}function Tc(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 AR(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Gh(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 Bs(e){return e=Gh(Math.abs(e)),e?e[1]:NaN}function ER(e,t){return function(n,r){for(var i=n.length,o=[],a=0,s=e[0],l=0;i>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),o.push(n.substring(i-=s,i+s)),!((l+=s+1)>r));)s=e[a=(a+1)%e.length];return o.reverse().join(t)}}function SR(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var _R=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Fs(e){if(!(t=_R.exec(e)))throw new Error("invalid format: "+e);var t;return new Ig({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]})}Fs.prototype=Ig.prototype;function Ig(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+""}Ig.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 CR(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 $v;function kR(e,t){var n=Gh(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-($v=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")+Gh(e,Math.max(0,t+o-1))[0]}function Hv(e,t){var n=Gh(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 Gv={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:AR,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)=>Hv(e*100,t),r:Hv,s:kR,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Vv(e){return e}var jv=Array.prototype.map,qv=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function TR(e){var t=e.grouping===void 0||e.thousands===void 0?Vv:ER(jv.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+"",o=e.numerals===void 0?Vv:SR(jv.call(e.numerals,String)),a=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=Fs(f);var h=f.fill,d=f.align,p=f.sign,g=f.symbol,b=f.zero,m=f.width,v=f.comma,x=f.precision,A=f.trim,S=f.type;S==="n"?(v=!0,S="g"):Gv[S]||(x===void 0&&(x=12),A=!0,S="g"),(b||h==="0"&&d==="=")&&(b=!0,h="0",d="=");var E=g==="$"?n:g==="#"&&/[boxX]/.test(S)?"0"+S.toLowerCase():"",_=g==="$"?r:/[%p]/.test(S)?a:"",R=Gv[S],F=/[defgprs%]/.test(S);x=x===void 0?6:/[gprs]/.test(S)?Math.max(1,Math.min(21,x)):Math.max(0,Math.min(20,x));function H(O){var Z=E,ne=_,le,ie,pe;if(S==="c")ne=R(O)+ne,O="";else{O=+O;var ge=O<0||1/O<0;if(O=isNaN(O)?l:R(Math.abs(O),x),A&&(O=CR(O)),ge&&+O==0&&p!=="+"&&(ge=!1),Z=(ge?p==="("?p:s:p==="-"||p==="("?"":p)+Z,ne=(S==="s"?qv[8+$v/3]:"")+ne+(ge&&p==="("?")":""),F){for(le=-1,ie=O.length;++le<ie;)if(pe=O.charCodeAt(le),48>pe||pe>57){ne=(pe===46?i+O.slice(le+1):O.slice(le))+ne,O=O.slice(0,le);break}}}v&&!b&&(O=t(O,1/0));var Ee=Z.length+O.length+ne.length,Re=Ee<m?new Array(m-Ee+1).join(h):"";switch(v&&b&&(O=t(Re+O,Re.length?m-ne.length:1/0),Re=""),d){case"<":O=Z+O+ne+Re;break;case"=":O=Z+Re+O+ne;break;case"^":O=Re.slice(0,Ee=Re.length>>1)+Z+O+ne+Re.slice(Ee);break;default:O=Re+Z+O+ne;break}return o(O)}return H.toString=function(){return f+""},H}function u(f,h){var d=c((f=Fs(f),f.type="f",f)),p=Math.max(-8,Math.min(8,Math.floor(Bs(h)/3)))*3,g=Math.pow(10,-p),b=qv[8+p/3];return function(m){return d(g*m)+b}}return{format:c,formatPrefix:u}}var Vh,Bt,Wv;IR({thousands:",",grouping:[3],currency:["$",""]});function IR(e){return Vh=TR(e),Bt=Vh.format,Wv=Vh.formatPrefix,Vh}function RR(e){return Math.max(0,-Bs(Math.abs(e)))}function DR(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Bs(t)/3)))*3-Bs(Math.abs(e)))}function BR(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Bs(t)-Bs(e))+1}const Rg=new Date,Dg=new Date;function _t(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=o=>(e(o=new Date(+o)),o),i.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),i.round=o=>{const a=i(o),s=i.ceil(o);return o-a<s-o?a:s},i.offset=(o,a)=>(t(o=new Date(+o),a==null?1:Math.floor(a)),o),i.range=(o,a,s)=>{const l=[];if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o<a)||!(s>0))return l;let c;do l.push(c=new Date(+o)),t(o,s),e(o);while(c<o&&o<a);return l},i.filter=o=>_t(a=>{if(a>=a)for(;e(a),!o(a);)a.setTime(a-1)},(a,s)=>{if(a>=a)if(s<0)for(;++s<=0;)for(;t(a,-1),!o(a););else for(;--s>=0;)for(;t(a,1),!o(a););}),n&&(i.count=(o,a)=>(Rg.setTime(+o),Dg.setTime(+a),e(Rg),e(Dg),Math.floor(n(Rg,Dg))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?a=>r(a)%o===0:a=>i.count(0,a)%o===0):i)),i}const Ms=_t(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Ms.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?_t(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):Ms),Ms.range;const mi=1e3,Hn=mi*60,bi=Hn*60,yi=bi*24,Bg=yi*7,Yv=yi*30,Fg=yi*365,wi=_t(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*mi)},(e,t)=>(t-e)/mi,e=>e.getUTCSeconds());wi.range;const jh=_t(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*mi)},(e,t)=>{e.setTime(+e+t*Hn)},(e,t)=>(t-e)/Hn,e=>e.getMinutes());jh.range;const qh=_t(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Hn)},(e,t)=>(t-e)/Hn,e=>e.getUTCMinutes());qh.range;const Wh=_t(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*mi-e.getMinutes()*Hn)},(e,t)=>{e.setTime(+e+t*bi)},(e,t)=>(t-e)/bi,e=>e.getHours());Wh.range;const Yh=_t(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*bi)},(e,t)=>(t-e)/bi,e=>e.getUTCHours());Yh.range;const eo=_t(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Hn)/yi,e=>e.getDate()-1);eo.range;const ia=_t(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/yi,e=>e.getUTCDate()-1);ia.range;const Zv=_t(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/yi,e=>Math.floor(e/yi));Zv.range;function oa(e){return _t(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Hn)/Bg)}const Ic=oa(0),Zh=oa(1),FR=oa(2),MR=oa(3),Ps=oa(4),PR=oa(5),OR=oa(6);Ic.range,Zh.range,FR.range,MR.range,Ps.range,PR.range,OR.range;function aa(e){return _t(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/Bg)}const Rc=aa(0),Qh=aa(1),LR=aa(2),NR=aa(3),Os=aa(4),zR=aa(5),UR=aa(6);Rc.range,Qh.range,LR.range,NR.range,Os.range,zR.range,UR.range;const Dc=_t(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());Dc.range;const Bc=_t(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());Bc.range;const Or=_t(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());Or.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:_t(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)}),Or.range;const Lr=_t(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Lr.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:_t(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)}),Lr.range;function Qv(e,t,n,r,i,o){const a=[[wi,1,mi],[wi,5,5*mi],[wi,15,15*mi],[wi,30,30*mi],[o,1,Hn],[o,5,5*Hn],[o,15,15*Hn],[o,30,30*Hn],[i,1,bi],[i,3,3*bi],[i,6,6*bi],[i,12,12*bi],[r,1,yi],[r,2,2*yi],[n,1,Bg],[t,1,Yv],[t,3,3*Yv],[e,1,Fg]];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=Rs(([,,b])=>b).right(a,h);if(d===a.length)return e.every(ra(c/Fg,u/Fg,f));if(d===0)return Ms.every(Math.max(ra(c,u,f),1));const[p,g]=a[h/a[d-1][2]<a[d][2]/h?d-1:d];return p.every(g)}return[s,l]}const[$R,HR]=Qv(Lr,Bc,Rc,Zv,Yh,qh),[GR,VR]=Qv(Or,Dc,Ic,eo,Wh,jh),Fc="year",Mc="quarter",Pc="month",Oc="week",Lc="date",Xh="day",Mg="dayofyear",Nc="hours",zc="minutes",Uc="seconds",Kh="milliseconds";[Fc,Mc,Pc,Oc,Lc,Xh,Mg,Nc,zc,Uc,Kh].reduce((e,t,n)=>(e[t]=1+n,e),{});const jR={[Fc]:Or,[Mc]:Dc.every(3),[Pc]:Dc,[Oc]:Ic,[Lc]:eo,[Xh]:eo,[Mg]:eo,[Nc]:Wh,[zc]:jh,[Uc]:wi,[Kh]:Ms},qR={[Fc]:Lr,[Mc]:Bc.every(3),[Pc]:Bc,[Oc]:Rc,[Lc]:ia,[Xh]:ia,[Mg]:ia,[Nc]:Yh,[zc]:qh,[Uc]:wi,[Kh]:Ms};function WR(e){return jR[e]}function YR(e){return qR[e]}function Pg(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 Og(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 $c(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function Xv(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,o=e.days,a=e.shortDays,s=e.months,l=e.shortMonths,c=Hc(i),u=Gc(i),f=Hc(o),h=Gc(o),d=Hc(a),p=Gc(a),g=Hc(s),b=Gc(s),m=Hc(l),v=Gc(l),x={a:ge,A:Ee,b:Re,B:M,c:null,d:rx,e:rx,f:bD,g:kD,G:ID,H:pD,I:gD,j:mD,L:ix,m:yD,M:wD,p:Se,q:Te,Q:ux,s:fx,S:vD,u:xD,U:AD,V:ED,w:SD,W:_D,x:null,X:null,y:CD,Y:TD,Z:RD,"%":cx},A={a:P,A:ot,b:Me,B:z,c:null,d:ax,e:ax,f:MD,g:VD,G:qD,H:DD,I:BD,j:FD,L:sx,m:PD,M:OD,p:$,q:X,Q:ux,s:fx,S:LD,u:ND,U:zD,V:UD,w:$D,W:HD,x:null,X:null,y:GD,Y:jD,Z:WD,"%":cx},S={a:H,A:O,b:Z,B:ne,c:le,d:tx,e:tx,f:uD,g:ex,G:Jv,H:nx,I:nx,j:aD,L:cD,m:oD,M:sD,p:F,q:iD,Q:hD,s:dD,S:lD,u:JR,U:eD,V:tD,w:KR,W:nD,x:ie,X:pe,y:ex,Y:Jv,Z:rD,"%":fD};x.x=E(n,x),x.X=E(r,x),x.c=E(t,x),A.x=E(n,A),A.X=E(r,A),A.c=E(t,A);function E(q,ee){return function(I){var k=[],W=-1,K=0,_e=q.length,de,Ce,cn;for(I instanceof Date||(I=new Date(+I));++W<_e;)q.charCodeAt(W)===37&&(k.push(q.slice(K,W)),(Ce=Kv[de=q.charAt(++W)])!=null?de=q.charAt(++W):Ce=de==="e"?" ":"0",(cn=ee[de])&&(de=cn(I,Ce)),k.push(de),K=W+1);return k.push(q.slice(K,W)),k.join("")}}function _(q,ee){return function(I){var k=$c(1900,void 0,1),W=R(k,q,I+="",0),K,_e;if(W!=I.length)return null;if("Q"in k)return new Date(k.Q);if("s"in k)return new Date(k.s*1e3+("L"in k?k.L:0));if(ee&&!("Z"in k)&&(k.Z=0),"p"in k&&(k.H=k.H%12+k.p*12),k.m===void 0&&(k.m="q"in k?k.q:0),"V"in k){if(k.V<1||k.V>53)return null;"w"in k||(k.w=1),"Z"in k?(K=Og($c(k.y,0,1)),_e=K.getUTCDay(),K=_e>4||_e===0?Qh.ceil(K):Qh(K),K=ia.offset(K,(k.V-1)*7),k.y=K.getUTCFullYear(),k.m=K.getUTCMonth(),k.d=K.getUTCDate()+(k.w+6)%7):(K=Pg($c(k.y,0,1)),_e=K.getDay(),K=_e>4||_e===0?Zh.ceil(K):Zh(K),K=eo.offset(K,(k.V-1)*7),k.y=K.getFullYear(),k.m=K.getMonth(),k.d=K.getDate()+(k.w+6)%7)}else("W"in k||"U"in k)&&("w"in k||(k.w="u"in k?k.u%7:"W"in k?1:0),_e="Z"in k?Og($c(k.y,0,1)).getUTCDay():Pg($c(k.y,0,1)).getDay(),k.m=0,k.d="W"in k?(k.w+6)%7+k.W*7-(_e+5)%7:k.w+k.U*7-(_e+6)%7);return"Z"in k?(k.H+=k.Z/100|0,k.M+=k.Z%100,Og(k)):Pg(k)}}function R(q,ee,I,k){for(var W=0,K=ee.length,_e=I.length,de,Ce;W<K;){if(k>=_e)return-1;if(de=ee.charCodeAt(W++),de===37){if(de=ee.charAt(W++),Ce=S[de in Kv?ee.charAt(W++):de],!Ce||(k=Ce(q,I,k))<0)return-1}else if(de!=I.charCodeAt(k++))return-1}return k}function F(q,ee,I){var k=c.exec(ee.slice(I));return k?(q.p=u.get(k[0].toLowerCase()),I+k[0].length):-1}function H(q,ee,I){var k=d.exec(ee.slice(I));return k?(q.w=p.get(k[0].toLowerCase()),I+k[0].length):-1}function O(q,ee,I){var k=f.exec(ee.slice(I));return k?(q.w=h.get(k[0].toLowerCase()),I+k[0].length):-1}function Z(q,ee,I){var k=m.exec(ee.slice(I));return k?(q.m=v.get(k[0].toLowerCase()),I+k[0].length):-1}function ne(q,ee,I){var k=g.exec(ee.slice(I));return k?(q.m=b.get(k[0].toLowerCase()),I+k[0].length):-1}function le(q,ee,I){return R(q,t,ee,I)}function ie(q,ee,I){return R(q,n,ee,I)}function pe(q,ee,I){return R(q,r,ee,I)}function ge(q){return a[q.getDay()]}function Ee(q){return o[q.getDay()]}function Re(q){return l[q.getMonth()]}function M(q){return s[q.getMonth()]}function Se(q){return i[+(q.getHours()>=12)]}function Te(q){return 1+~~(q.getMonth()/3)}function P(q){return a[q.getUTCDay()]}function ot(q){return o[q.getUTCDay()]}function Me(q){return l[q.getUTCMonth()]}function z(q){return s[q.getUTCMonth()]}function $(q){return i[+(q.getUTCHours()>=12)]}function X(q){return 1+~~(q.getUTCMonth()/3)}return{format:function(q){var ee=E(q+="",x);return ee.toString=function(){return q},ee},parse:function(q){var ee=_(q+="",!1);return ee.toString=function(){return q},ee},utcFormat:function(q){var ee=E(q+="",A);return ee.toString=function(){return q},ee},utcParse:function(q){var ee=_(q+="",!0);return ee.toString=function(){return q},ee}}}var Kv={"-":"",_:" ",0:"0"},Ft=/^\s*\d+/,ZR=/^%/,QR=/[\\^$*+?|[\]().{}]/g;function Oe(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(t)+i:i)}function XR(e){return e.replace(QR,"\\$&")}function Hc(e){return new RegExp("^(?:"+e.map(XR).join("|")+")","i")}function Gc(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function KR(e,t,n){var r=Ft.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function JR(e,t,n){var r=Ft.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function eD(e,t,n){var r=Ft.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function tD(e,t,n){var r=Ft.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function nD(e,t,n){var r=Ft.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Jv(e,t,n){var r=Ft.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function ex(e,t,n){var r=Ft.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function rD(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 iD(e,t,n){var r=Ft.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function oD(e,t,n){var r=Ft.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function tx(e,t,n){var r=Ft.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function aD(e,t,n){var r=Ft.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function nx(e,t,n){var r=Ft.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function sD(e,t,n){var r=Ft.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function lD(e,t,n){var r=Ft.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function cD(e,t,n){var r=Ft.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function uD(e,t,n){var r=Ft.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function fD(e,t,n){var r=ZR.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function hD(e,t,n){var r=Ft.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function dD(e,t,n){var r=Ft.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function rx(e,t){return Oe(e.getDate(),t,2)}function pD(e,t){return Oe(e.getHours(),t,2)}function gD(e,t){return Oe(e.getHours()%12||12,t,2)}function mD(e,t){return Oe(1+eo.count(Or(e),e),t,3)}function ix(e,t){return Oe(e.getMilliseconds(),t,3)}function bD(e,t){return ix(e,t)+"000"}function yD(e,t){return Oe(e.getMonth()+1,t,2)}function wD(e,t){return Oe(e.getMinutes(),t,2)}function vD(e,t){return Oe(e.getSeconds(),t,2)}function xD(e){var t=e.getDay();return t===0?7:t}function AD(e,t){return Oe(Ic.count(Or(e)-1,e),t,2)}function ox(e){var t=e.getDay();return t>=4||t===0?Ps(e):Ps.ceil(e)}function ED(e,t){return e=ox(e),Oe(Ps.count(Or(e),e)+(Or(e).getDay()===4),t,2)}function SD(e){return e.getDay()}function _D(e,t){return Oe(Zh.count(Or(e)-1,e),t,2)}function CD(e,t){return Oe(e.getFullYear()%100,t,2)}function kD(e,t){return e=ox(e),Oe(e.getFullYear()%100,t,2)}function TD(e,t){return Oe(e.getFullYear()%1e4,t,4)}function ID(e,t){var n=e.getDay();return e=n>=4||n===0?Ps(e):Ps.ceil(e),Oe(e.getFullYear()%1e4,t,4)}function RD(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Oe(t/60|0,"0",2)+Oe(t%60,"0",2)}function ax(e,t){return Oe(e.getUTCDate(),t,2)}function DD(e,t){return Oe(e.getUTCHours(),t,2)}function BD(e,t){return Oe(e.getUTCHours()%12||12,t,2)}function FD(e,t){return Oe(1+ia.count(Lr(e),e),t,3)}function sx(e,t){return Oe(e.getUTCMilliseconds(),t,3)}function MD(e,t){return sx(e,t)+"000"}function PD(e,t){return Oe(e.getUTCMonth()+1,t,2)}function OD(e,t){return Oe(e.getUTCMinutes(),t,2)}function LD(e,t){return Oe(e.getUTCSeconds(),t,2)}function ND(e){var t=e.getUTCDay();return t===0?7:t}function zD(e,t){return Oe(Rc.count(Lr(e)-1,e),t,2)}function lx(e){var t=e.getUTCDay();return t>=4||t===0?Os(e):Os.ceil(e)}function UD(e,t){return e=lx(e),Oe(Os.count(Lr(e),e)+(Lr(e).getUTCDay()===4),t,2)}function $D(e){return e.getUTCDay()}function HD(e,t){return Oe(Qh.count(Lr(e)-1,e),t,2)}function GD(e,t){return Oe(e.getUTCFullYear()%100,t,2)}function VD(e,t){return e=lx(e),Oe(e.getUTCFullYear()%100,t,2)}function jD(e,t){return Oe(e.getUTCFullYear()%1e4,t,4)}function qD(e,t){var n=e.getUTCDay();return e=n>=4||n===0?Os(e):Os.ceil(e),Oe(e.getUTCFullYear()%1e4,t,4)}function WD(){return"+0000"}function cx(){return"%"}function ux(e){return+e}function fx(e){return Math.floor(+e/1e3)}var Ls,Lg,hx,Ng,dx;YD({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 YD(e){return Ls=Xv(e),Lg=Ls.format,hx=Ls.parse,Ng=Ls.utcFormat,dx=Ls.utcParse,Ls}function Jh(e){const t={};return n=>t[n]||(t[n]=e(n))}function px(e,t,n){n=n||{},en(n)||yt(`Invalid time multi-format specifier: ${n}`);const r=t(Uc),i=t(zc),o=t(Nc),a=t(Lc),s=t(Oc),l=t(Pc),c=t(Mc),u=t(Fc),f=e(n[Kh]||".%L"),h=e(n[Uc]||":%S"),d=e(n[zc]||"%I:%M"),p=e(n[Nc]||"%I %p"),g=e(n[Lc]||n[Xh]||"%a %d"),b=e(n[Oc]||"%b %d"),m=e(n[Pc]||"%B"),v=e(n[Mc]||"%B"),x=e(n[Fc]||"%Y");return A=>(r(A)<A?f:i(A)<A?h:o(A)<A?d:a(A)<A?p:l(A)<A?s(A)<A?g:b:u(A)<A?c(A)<A?m:v:x)(A)}function gx(e){const t=Jh(e.format),n=Jh(e.utcFormat);return{timeFormat:r=>We(r)?t(r):px(t,WR,r),utcFormat:r=>We(r)?n(r):px(n,YR,r),timeParse:Jh(e.parse),utcParse:Jh(e.utcParse)}}let zg;ZD();function ZD(){return zg=gx({format:Lg,parse:hx,utcFormat:Ng,utcParse:dx})}function QD(e){return gx(Xv(e))}function XD(e){return arguments.length?zg=QD(e):zg}const KD=/^(data:|([A-Za-z]+:)?\/\/)/,JD=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,eB=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,mx="file://";function tB(e,t){return n=>({options:n||{},sanitize:rB,load:nB,fileAccess:!!t,file:iB(),http:aB(e)})}async function nB(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t)}async function rB(e,t){t=vg({},this.options,t);const n=this.fileAccess,r={href:null};let i,o,a;const s=JD.test(e.replace(eB,""));(e==null||typeof e!="string"||!s)&&yt("Sanitize failure, invalid URI: "+Nh(e));const l=KD.test(e);return(a=t.baseURL)&&!l&&(!e.startsWith("/")&&!a.endsWith("/")&&(e="/"+e),e=a+e),o=(i=e.startsWith(mx))||t.mode==="file"||t.mode!=="http"&&!l&&n,i?e=e.slice(mx.length):e.startsWith("//")&&(t.defaultProtocol==="file"?(e=e.slice(2),o=!0):e=(t.defaultProtocol||"http")+":"+e),Object.defineProperty(r,"localFile",{value:!!o}),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 iB(e){return oB}async function oB(){yt("No file system access.")}function aB(e){return e?async function(t,n){const r=vg({},this.options.http,n),i=n&&n.response,o=await e(t,r);return o.ok?Tn(o[i])?o[i]():o.text():yt(o.status+""+o.statusText)}:sB}async function sB(){yt("No HTTP fetch method available.")}const lB=e=>e!=null&&e===e,cB=e=>e==="true"||e==="false"||e===!0||e===!1,uB=e=>!Number.isNaN(Date.parse(e)),bx=e=>!Number.isNaN(+e)&&!(e instanceof Date),fB=e=>bx(e)&&Number.isInteger(+e),yx={boolean:L9,integer:xc,number:xc,date:z9,string:U9,unknown:Mh},ed=[cB,fB,bx,uB],hB=["boolean","integer","number","date"];function wx(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=ed.length,i=ed.map((o,a)=>a+1);for(let o=0,a=0,s,l;o<n;++o)for(l=t?e[o][t]:e[o],s=0;s<r;++s)if(i[s]&&lB(l)&&!ed[s](l)&&(i[s]=0,++a,a===ed.length))return"string";return hB[i.reduce((o,a)=>o===0?a:o,0)-1]}function dB(e,t){return t.reduce((n,r)=>(n[r]=wx(e,r),n),{})}function vx(e){const t=function(n,r){const i={delimiter:e};return Ug(n,r?vg(r,i):i)};return t.responseType="text",t}function Ug(e,t){return t.header&&(e=t.header.map(Nh).join(t.delimiter)+`
|
5
|
+
`)}function c(f){return f.map(u).join(e)}function u(f){return f==null?"":f instanceof Date?G9(f):t.test(f+="")?'"'+f.replace(/"/g,'""')+'"':f}return{parse:r,parseRows:i,format:a,formatBody:s,formatRows:l,formatRow:c,formatValue:u}}var V9=Bv(" "),j9=V9.parseRows;function q9(e){return e}function W9(e){if(e==null)return q9;var t,n,r=e.scale[0],i=e.scale[1],o=e.translate[0],a=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+o,f[1]=(n+=s[1])*i+a;c<u;)f[c]=s[c],++c;return f}}function Y9(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function Z9(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return Fv(e,n)})}:Fv(e,t)}function Fv(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,o=Mv(e,t);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 Mv(e,t){var n=W9(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&&Y9(f,p)}function o(u){return n(u)}function a(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=a(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=o(u.coordinates);break;case"MultiPoint":h=u.coordinates.map(o);break;case"LineString":h=a(u.arcs);break;case"MultiLineString":h=u.arcs.map(a);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 Q9(e,t){var n={},r={},i={},o=[],a=-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[++a],t[a]=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 b=p===d?d:p.concat(d);r[b.start=p.start]=i[b.end=d.end]=b}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}),o.push(h)}}return l(i,r),l(r,i),t.forEach(function(c){n[c<0?~c:c]||o.push([c])}),o}function X9(e){return Mv(e,K9.apply(this,arguments))}function K9(e,t,n){var r,i,o;if(arguments.length>1)r=J9(e,t,n);else for(i=0,r=new Array(o=e.arcs.length);i<o;++i)r[i]=i;return{type:"MultiLineString",arcs:Q9(e,r)}}function J9(e,t,n){var r=[],i=[],o;function a(f){var h=f<0?~f:f;(i[h]||(i[h]=[])).push({i:f,g:o})}function s(f){f.forEach(a)}function l(f){f.forEach(s)}function c(f){f.forEach(l)}function u(f){switch(o=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 na(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function eR(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Rs(e){let t,n,r;e.length!==2?(t=na,n=(s,l)=>na(e(s),l),r=(s,l)=>e(s)-l):(t=e===na||e===eR?e:tR,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 o(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){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:a,right:o}}function tR(){return 0}function Pv(e){return e===null?NaN:+e}function*nR(e,t){if(t===void 0)for(let n of e)n!=null&&(n=+n)>=n&&(yield n);else{let n=-1;for(let r of e)(r=t(r,++n,e))!=null&&(r=+r)>=r&&(yield r)}}const Ov=Rs(na),pi=Ov.right;Ov.left,Rs(Pv).center;function Lv(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 rR(e,t){let n=0,r,i=0,o=0;if(t===void 0)for(let a of e)a!=null&&(a=+a)>=a&&(r=a-i,i+=r/++n,o+=r*(a-i));else{let a=-1;for(let s of e)(s=t(s,++a,e))!=null&&(s=+s)>=s&&(r=s-i,i+=r/++n,o+=r*(s-i))}if(n>1)return o/(n-1)}function Uh(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 o of e)(o=t(o,++i,e))!=null&&(n===void 0?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)))}return[n,r]}class gi extends Map{constructor(t,n=aR){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(Nv(this,t))}has(t){return super.has(Nv(this,t))}set(t,n){return super.set(iR(this,t),n)}delete(t){return super.delete(oR(this,t))}}function Nv({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function iR({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function oR({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function aR(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Sc(e){return e}function _c(e,...t){return Sg(e,Sc,Sc,t)}function sR(e,...t){return Sg(e,Array.from,Sc,t)}function lR(e,t,...n){return Sg(e,Sc,t,n)}function Sg(e,t,n,r){return function i(o,a){if(a>=r.length)return n(o);const s=new gi,l=r[a++];let c=-1;for(const u of o){const f=l(u,++c,o),h=s.get(f);h?h.push(u):s.set(f,[u])}for(const[u,f]of s)s.set(u,i(f,a));return t(s)}(e,0)}function cR(e,t){return Array.from(t,n=>e[n])}function uR(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,o)=>o);return t.length>1?(t=t.map(i=>e.map(i)),r.sort((i,o)=>{for(const a of t){const s=$h(a[i],a[o]);if(s)return s}})):(n=e.map(n),r.sort((i,o)=>$h(n[i],n[o]))),cR(e,r)}return e.sort(zv(n))}function zv(e=na){if(e===na)return $h;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 $h(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:e>t?1:0)}var fR=Array.prototype,hR=fR.slice;function _g(e){return()=>e}const dR=Math.sqrt(50),pR=Math.sqrt(10),gR=Math.sqrt(2);function Hh(e,t,n){const r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),o=r/Math.pow(10,i),a=o>=dR?10:o>=pR?5:o>=gR?2:1;let s,l,c;return i<0?(c=Math.pow(10,-i)/a,s=Math.round(e*c),l=Math.round(t*c),s/c<e&&++s,l/c>t&&--l,c=-c):(c=Math.pow(10,i)*a,s=Math.round(e/c),l=Math.round(t/c),s*c<e&&++s,l*c>t&&--l),l<s&&.5<=n&&n<2?Hh(e,t,n*2):[s,l,c]}function Cc(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];const r=t<e,[i,o,a]=r?Hh(t,e,n):Hh(e,t,n);if(!(o>=i))return[];const s=o-i+1,l=new Array(s);if(r)if(a<0)for(let c=0;c<s;++c)l[c]=(o-c)/-a;else for(let c=0;c<s;++c)l[c]=(o-c)*a;else if(a<0)for(let c=0;c<s;++c)l[c]=(i+c)/-a;else for(let c=0;c<s;++c)l[c]=(i+c)*a;return l}function Ds(e,t,n){return t=+t,e=+e,n=+n,Hh(e,t,n)[2]}function ra(e,t,n){t=+t,e=+e,n=+n;const r=t<e,i=r?Ds(t,e,n):Ds(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function mR(e,t,n){let r;for(;;){const i=Ds(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 bR(e){return Math.max(1,Math.ceil(Math.log(Lv(e))/Math.LN2)+1)}function yR(){var e=Sc,t=Uh,n=bR;function r(i){Array.isArray(i)||(i=Array.from(i));var o,a=i.length,s,l,c=new Array(a);for(o=0;o<a;++o)c[o]=e(i[o],o,i);var u=t(c),f=u[0],h=u[1],d=n(c,f,h);if(!Array.isArray(d)){const x=h,A=+d;if(t===Uh&&([f,h]=mR(f,h,A)),d=Cc(f,h,A),d[0]<=f&&(l=Ds(f,h,A)),d[d.length-1]>=h)if(x>=h&&t===Uh){const S=Ds(f,h,A);isFinite(S)&&(S>0?h=(Math.floor(h/S)+1)*S:S<0&&(h=(Math.ceil(h*-S)+1)/-S))}else d.pop()}for(var p=d.length,g=0,b=p;d[g]<=f;)++g;for(;d[b-1]>h;)--b;(g||b<p)&&(d=d.slice(g,b),p=b-g);var m=new Array(p+1),v;for(o=0;o<=p;++o)v=m[o]=[],v.x0=o>0?d[o-1]:f,v.x1=o<p?d[o]:h;if(isFinite(l)){if(l>0)for(o=0;o<a;++o)(s=c[o])!=null&&f<=s&&s<=h&&m[Math.min(p,Math.floor((s-f)/l))].push(i[o]);else if(l<0){for(o=0;o<a;++o)if((s=c[o])!=null&&f<=s&&s<=h){const x=Math.floor((f-s)*l);m[Math.min(p,x+(d[x]<=s))].push(i[o])}}}else for(o=0;o<a;++o)(s=c[o])!=null&&f<=s&&s<=h&&m[pi(d,s,0,p)].push(i[o]);return m}return r.value=function(i){return arguments.length?(e=typeof i=="function"?i:_g(i),r):e},r.domain=function(i){return arguments.length?(t=typeof i=="function"?i:_g([i[0],i[1]]),r):t},r.thresholds=function(i){return arguments.length?(n=typeof i=="function"?i:_g(Array.isArray(i)?hR.call(i):i),r):n},r}function Cg(e,t){let n;if(t===void 0)for(const r of e)r!=null&&(n<r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n<i||n===void 0&&i>=i)&&(n=i)}return n}function kg(e,t){let n;if(t===void 0)for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function Uv(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?$h:zv(i);r>n;){if(r-n>600){const l=r-n+1,c=t-n+1,u=Math.log(l),f=.5*Math.exp(2*u/3),h=.5*Math.sqrt(u*f*(l-f)/l)*(c-l/2<0?-1:1),d=Math.max(n,Math.floor(t-c*f/l+h)),p=Math.min(r,Math.floor(t+(l-c)*f/l+h));Uv(e,t,d,p,i)}const o=e[t];let a=n,s=r;for(kc(e,n,t),i(e[r],o)>0&&kc(e,n,r);a<s;){for(kc(e,a,s),++a,--s;i(e[a],o)<0;)++a;for(;i(e[s],o)>0;)--s}i(e[n],o)===0?kc(e,n,s):(++s,kc(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function kc(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function wR(e,t,n){if(e=Float64Array.from(nR(e,n)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return kg(e);if(t>=1)return Cg(e);var r,i=(r-1)*t,o=Math.floor(i),a=Cg(Uv(e,o).subarray(0,o+1)),s=kg(e.subarray(o+1));return a+(s-a)*(i-o)}}function Tg(e,t,n=Pv){if(!(!(r=e.length)||isNaN(t=+t))){if(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,o=Math.floor(i),a=+n(e[o],o,e),s=+n(e[o+1],o+1,e);return a+(s-a)*(i-o)}}function vR(e,t){let n=0,r=0;if(t===void 0)for(let i of e)i!=null&&(i=+i)>=i&&(++n,r+=i);else{let i=-1;for(let o of e)(o=t(o,++i,e))!=null&&(o=+o)>=o&&(++n,r+=o)}if(n)return r/n}function xR(e,t){return wR(e,.5,t)}function Ji(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,o=new Array(i);++r<i;)o[r]=e+r*n;return o}function Tc(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 AR(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Gh(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 Bs(e){return e=Gh(Math.abs(e)),e?e[1]:NaN}function ER(e,t){return function(n,r){for(var i=n.length,o=[],a=0,s=e[0],l=0;i>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),o.push(n.substring(i-=s,i+s)),!((l+=s+1)>r));)s=e[a=(a+1)%e.length];return o.reverse().join(t)}}function SR(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var _R=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Fs(e){if(!(t=_R.exec(e)))throw new Error("invalid format: "+e);var t;return new Ig({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]})}Fs.prototype=Ig.prototype;function Ig(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+""}Ig.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 CR(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 $v;function kR(e,t){var n=Gh(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-($v=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")+Gh(e,Math.max(0,t+o-1))[0]}function Hv(e,t){var n=Gh(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 Gv={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:AR,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)=>Hv(e*100,t),r:Hv,s:kR,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Vv(e){return e}var jv=Array.prototype.map,qv=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function TR(e){var t=e.grouping===void 0||e.thousands===void 0?Vv:ER(jv.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+"",o=e.numerals===void 0?Vv:SR(jv.call(e.numerals,String)),a=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=Fs(f);var h=f.fill,d=f.align,p=f.sign,g=f.symbol,b=f.zero,m=f.width,v=f.comma,x=f.precision,A=f.trim,S=f.type;S==="n"?(v=!0,S="g"):Gv[S]||(x===void 0&&(x=12),A=!0,S="g"),(b||h==="0"&&d==="=")&&(b=!0,h="0",d="=");var E=g==="$"?n:g==="#"&&/[boxX]/.test(S)?"0"+S.toLowerCase():"",_=g==="$"?r:/[%p]/.test(S)?a:"",R=Gv[S],F=/[defgprs%]/.test(S);x=x===void 0?6:/[gprs]/.test(S)?Math.max(1,Math.min(21,x)):Math.max(0,Math.min(20,x));function H(O){var Z=E,ne=_,le,ie,pe;if(S==="c")ne=R(O)+ne,O="";else{O=+O;var ge=O<0||1/O<0;if(O=isNaN(O)?l:R(Math.abs(O),x),A&&(O=CR(O)),ge&&+O==0&&p!=="+"&&(ge=!1),Z=(ge?p==="("?p:s:p==="-"||p==="("?"":p)+Z,ne=(S==="s"?qv[8+$v/3]:"")+ne+(ge&&p==="("?")":""),F){for(le=-1,ie=O.length;++le<ie;)if(pe=O.charCodeAt(le),48>pe||pe>57){ne=(pe===46?i+O.slice(le+1):O.slice(le))+ne,O=O.slice(0,le);break}}}v&&!b&&(O=t(O,1/0));var Ee=Z.length+O.length+ne.length,Re=Ee<m?new Array(m-Ee+1).join(h):"";switch(v&&b&&(O=t(Re+O,Re.length?m-ne.length:1/0),Re=""),d){case"<":O=Z+O+ne+Re;break;case"=":O=Z+Re+O+ne;break;case"^":O=Re.slice(0,Ee=Re.length>>1)+Z+O+ne+Re.slice(Ee);break;default:O=Re+Z+O+ne;break}return o(O)}return H.toString=function(){return f+""},H}function u(f,h){var d=c((f=Fs(f),f.type="f",f)),p=Math.max(-8,Math.min(8,Math.floor(Bs(h)/3)))*3,g=Math.pow(10,-p),b=qv[8+p/3];return function(m){return d(g*m)+b}}return{format:c,formatPrefix:u}}var Vh,Bt,Wv;IR({thousands:",",grouping:[3],currency:["$",""]});function IR(e){return Vh=TR(e),Bt=Vh.format,Wv=Vh.formatPrefix,Vh}function RR(e){return Math.max(0,-Bs(Math.abs(e)))}function DR(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Bs(t)/3)))*3-Bs(Math.abs(e)))}function BR(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Bs(t)-Bs(e))+1}const Rg=new Date,Dg=new Date;function _t(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=o=>(e(o=new Date(+o)),o),i.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),i.round=o=>{const a=i(o),s=i.ceil(o);return o-a<s-o?a:s},i.offset=(o,a)=>(t(o=new Date(+o),a==null?1:Math.floor(a)),o),i.range=(o,a,s)=>{const l=[];if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o<a)||!(s>0))return l;let c;do l.push(c=new Date(+o)),t(o,s),e(o);while(c<o&&o<a);return l},i.filter=o=>_t(a=>{if(a>=a)for(;e(a),!o(a);)a.setTime(a-1)},(a,s)=>{if(a>=a)if(s<0)for(;++s<=0;)for(;t(a,-1),!o(a););else for(;--s>=0;)for(;t(a,1),!o(a););}),n&&(i.count=(o,a)=>(Rg.setTime(+o),Dg.setTime(+a),e(Rg),e(Dg),Math.floor(n(Rg,Dg))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?a=>r(a)%o===0:a=>i.count(0,a)%o===0):i)),i}const Ms=_t(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Ms.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?_t(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):Ms),Ms.range;const mi=1e3,Hn=mi*60,bi=Hn*60,yi=bi*24,Bg=yi*7,Yv=yi*30,Fg=yi*365,wi=_t(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*mi)},(e,t)=>(t-e)/mi,e=>e.getUTCSeconds());wi.range;const jh=_t(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*mi)},(e,t)=>{e.setTime(+e+t*Hn)},(e,t)=>(t-e)/Hn,e=>e.getMinutes());jh.range;const qh=_t(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Hn)},(e,t)=>(t-e)/Hn,e=>e.getUTCMinutes());qh.range;const Wh=_t(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*mi-e.getMinutes()*Hn)},(e,t)=>{e.setTime(+e+t*bi)},(e,t)=>(t-e)/bi,e=>e.getHours());Wh.range;const Yh=_t(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*bi)},(e,t)=>(t-e)/bi,e=>e.getUTCHours());Yh.range;const eo=_t(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Hn)/yi,e=>e.getDate()-1);eo.range;const ia=_t(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/yi,e=>e.getUTCDate()-1);ia.range;const Zv=_t(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/yi,e=>Math.floor(e/yi));Zv.range;function oa(e){return _t(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Hn)/Bg)}const Ic=oa(0),Zh=oa(1),FR=oa(2),MR=oa(3),Ps=oa(4),PR=oa(5),OR=oa(6);Ic.range,Zh.range,FR.range,MR.range,Ps.range,PR.range,OR.range;function aa(e){return _t(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/Bg)}const Rc=aa(0),Qh=aa(1),LR=aa(2),NR=aa(3),Os=aa(4),zR=aa(5),UR=aa(6);Rc.range,Qh.range,LR.range,NR.range,Os.range,zR.range,UR.range;const Dc=_t(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());Dc.range;const Bc=_t(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());Bc.range;const Or=_t(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());Or.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:_t(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)}),Or.range;const Lr=_t(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Lr.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:_t(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)}),Lr.range;function Qv(e,t,n,r,i,o){const a=[[wi,1,mi],[wi,5,5*mi],[wi,15,15*mi],[wi,30,30*mi],[o,1,Hn],[o,5,5*Hn],[o,15,15*Hn],[o,30,30*Hn],[i,1,bi],[i,3,3*bi],[i,6,6*bi],[i,12,12*bi],[r,1,yi],[r,2,2*yi],[n,1,Bg],[t,1,Yv],[t,3,3*Yv],[e,1,Fg]];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=Rs(([,,b])=>b).right(a,h);if(d===a.length)return e.every(ra(c/Fg,u/Fg,f));if(d===0)return Ms.every(Math.max(ra(c,u,f),1));const[p,g]=a[h/a[d-1][2]<a[d][2]/h?d-1:d];return p.every(g)}return[s,l]}const[$R,HR]=Qv(Lr,Bc,Rc,Zv,Yh,qh),[GR,VR]=Qv(Or,Dc,Ic,eo,Wh,jh),Fc="year",Mc="quarter",Pc="month",Oc="week",Lc="date",Xh="day",Mg="dayofyear",Nc="hours",zc="minutes",Uc="seconds",Kh="milliseconds";[Fc,Mc,Pc,Oc,Lc,Xh,Mg,Nc,zc,Uc,Kh].reduce((e,t,n)=>(e[t]=1+n,e),{});const jR={[Fc]:Or,[Mc]:Dc.every(3),[Pc]:Dc,[Oc]:Ic,[Lc]:eo,[Xh]:eo,[Mg]:eo,[Nc]:Wh,[zc]:jh,[Uc]:wi,[Kh]:Ms},qR={[Fc]:Lr,[Mc]:Bc.every(3),[Pc]:Bc,[Oc]:Rc,[Lc]:ia,[Xh]:ia,[Mg]:ia,[Nc]:Yh,[zc]:qh,[Uc]:wi,[Kh]:Ms};function WR(e){return jR[e]}function YR(e){return qR[e]}function Pg(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 Og(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 $c(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function Xv(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,o=e.days,a=e.shortDays,s=e.months,l=e.shortMonths,c=Hc(i),u=Gc(i),f=Hc(o),h=Gc(o),d=Hc(a),p=Gc(a),g=Hc(s),b=Gc(s),m=Hc(l),v=Gc(l),x={a:ge,A:Ee,b:Re,B:M,c:null,d:rx,e:rx,f:bD,g:kD,G:ID,H:pD,I:gD,j:mD,L:ix,m:yD,M:wD,p:Se,q:Te,Q:ux,s:fx,S:vD,u:xD,U:AD,V:ED,w:SD,W:_D,x:null,X:null,y:CD,Y:TD,Z:RD,"%":cx},A={a:P,A:ot,b:Me,B:z,c:null,d:ax,e:ax,f:MD,g:VD,G:qD,H:DD,I:BD,j:FD,L:sx,m:PD,M:OD,p:$,q:X,Q:ux,s:fx,S:LD,u:ND,U:zD,V:UD,w:$D,W:HD,x:null,X:null,y:GD,Y:jD,Z:WD,"%":cx},S={a:H,A:O,b:Z,B:ne,c:le,d:tx,e:tx,f:uD,g:ex,G:Jv,H:nx,I:nx,j:aD,L:cD,m:oD,M:sD,p:F,q:iD,Q:hD,s:dD,S:lD,u:JR,U:eD,V:tD,w:KR,W:nD,x:ie,X:pe,y:ex,Y:Jv,Z:rD,"%":fD};x.x=E(n,x),x.X=E(r,x),x.c=E(t,x),A.x=E(n,A),A.X=E(r,A),A.c=E(t,A);function E(q,ee){return function(I){var k=[],W=-1,K=0,_e=q.length,de,Ce,cn;for(I instanceof Date||(I=new Date(+I));++W<_e;)q.charCodeAt(W)===37&&(k.push(q.slice(K,W)),(Ce=Kv[de=q.charAt(++W)])!=null?de=q.charAt(++W):Ce=de==="e"?" ":"0",(cn=ee[de])&&(de=cn(I,Ce)),k.push(de),K=W+1);return k.push(q.slice(K,W)),k.join("")}}function _(q,ee){return function(I){var k=$c(1900,void 0,1),W=R(k,q,I+="",0),K,_e;if(W!=I.length)return null;if("Q"in k)return new Date(k.Q);if("s"in k)return new Date(k.s*1e3+("L"in k?k.L:0));if(ee&&!("Z"in k)&&(k.Z=0),"p"in k&&(k.H=k.H%12+k.p*12),k.m===void 0&&(k.m="q"in k?k.q:0),"V"in k){if(k.V<1||k.V>53)return null;"w"in k||(k.w=1),"Z"in k?(K=Og($c(k.y,0,1)),_e=K.getUTCDay(),K=_e>4||_e===0?Qh.ceil(K):Qh(K),K=ia.offset(K,(k.V-1)*7),k.y=K.getUTCFullYear(),k.m=K.getUTCMonth(),k.d=K.getUTCDate()+(k.w+6)%7):(K=Pg($c(k.y,0,1)),_e=K.getDay(),K=_e>4||_e===0?Zh.ceil(K):Zh(K),K=eo.offset(K,(k.V-1)*7),k.y=K.getFullYear(),k.m=K.getMonth(),k.d=K.getDate()+(k.w+6)%7)}else("W"in k||"U"in k)&&("w"in k||(k.w="u"in k?k.u%7:"W"in k?1:0),_e="Z"in k?Og($c(k.y,0,1)).getUTCDay():Pg($c(k.y,0,1)).getDay(),k.m=0,k.d="W"in k?(k.w+6)%7+k.W*7-(_e+5)%7:k.w+k.U*7-(_e+6)%7);return"Z"in k?(k.H+=k.Z/100|0,k.M+=k.Z%100,Og(k)):Pg(k)}}function R(q,ee,I,k){for(var W=0,K=ee.length,_e=I.length,de,Ce;W<K;){if(k>=_e)return-1;if(de=ee.charCodeAt(W++),de===37){if(de=ee.charAt(W++),Ce=S[de in Kv?ee.charAt(W++):de],!Ce||(k=Ce(q,I,k))<0)return-1}else if(de!=I.charCodeAt(k++))return-1}return k}function F(q,ee,I){var k=c.exec(ee.slice(I));return k?(q.p=u.get(k[0].toLowerCase()),I+k[0].length):-1}function H(q,ee,I){var k=d.exec(ee.slice(I));return k?(q.w=p.get(k[0].toLowerCase()),I+k[0].length):-1}function O(q,ee,I){var k=f.exec(ee.slice(I));return k?(q.w=h.get(k[0].toLowerCase()),I+k[0].length):-1}function Z(q,ee,I){var k=m.exec(ee.slice(I));return k?(q.m=v.get(k[0].toLowerCase()),I+k[0].length):-1}function ne(q,ee,I){var k=g.exec(ee.slice(I));return k?(q.m=b.get(k[0].toLowerCase()),I+k[0].length):-1}function le(q,ee,I){return R(q,t,ee,I)}function ie(q,ee,I){return R(q,n,ee,I)}function pe(q,ee,I){return R(q,r,ee,I)}function ge(q){return a[q.getDay()]}function Ee(q){return o[q.getDay()]}function Re(q){return l[q.getMonth()]}function M(q){return s[q.getMonth()]}function Se(q){return i[+(q.getHours()>=12)]}function Te(q){return 1+~~(q.getMonth()/3)}function P(q){return a[q.getUTCDay()]}function ot(q){return o[q.getUTCDay()]}function Me(q){return l[q.getUTCMonth()]}function z(q){return s[q.getUTCMonth()]}function $(q){return i[+(q.getUTCHours()>=12)]}function X(q){return 1+~~(q.getUTCMonth()/3)}return{format:function(q){var ee=E(q+="",x);return ee.toString=function(){return q},ee},parse:function(q){var ee=_(q+="",!1);return ee.toString=function(){return q},ee},utcFormat:function(q){var ee=E(q+="",A);return ee.toString=function(){return q},ee},utcParse:function(q){var ee=_(q+="",!0);return ee.toString=function(){return q},ee}}}var Kv={"-":"",_:" ",0:"0"},Ft=/^\s*\d+/,ZR=/^%/,QR=/[\\^$*+?|[\]().{}]/g;function Oe(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(t)+i:i)}function XR(e){return e.replace(QR,"\\$&")}function Hc(e){return new RegExp("^(?:"+e.map(XR).join("|")+")","i")}function Gc(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function KR(e,t,n){var r=Ft.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function JR(e,t,n){var r=Ft.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function eD(e,t,n){var r=Ft.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function tD(e,t,n){var r=Ft.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function nD(e,t,n){var r=Ft.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Jv(e,t,n){var r=Ft.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function ex(e,t,n){var r=Ft.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function rD(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 iD(e,t,n){var r=Ft.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function oD(e,t,n){var r=Ft.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function tx(e,t,n){var r=Ft.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function aD(e,t,n){var r=Ft.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function nx(e,t,n){var r=Ft.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function sD(e,t,n){var r=Ft.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function lD(e,t,n){var r=Ft.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function cD(e,t,n){var r=Ft.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function uD(e,t,n){var r=Ft.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function fD(e,t,n){var r=ZR.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function hD(e,t,n){var r=Ft.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function dD(e,t,n){var r=Ft.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function rx(e,t){return Oe(e.getDate(),t,2)}function pD(e,t){return Oe(e.getHours(),t,2)}function gD(e,t){return Oe(e.getHours()%12||12,t,2)}function mD(e,t){return Oe(1+eo.count(Or(e),e),t,3)}function ix(e,t){return Oe(e.getMilliseconds(),t,3)}function bD(e,t){return ix(e,t)+"000"}function yD(e,t){return Oe(e.getMonth()+1,t,2)}function wD(e,t){return Oe(e.getMinutes(),t,2)}function vD(e,t){return Oe(e.getSeconds(),t,2)}function xD(e){var t=e.getDay();return t===0?7:t}function AD(e,t){return Oe(Ic.count(Or(e)-1,e),t,2)}function ox(e){var t=e.getDay();return t>=4||t===0?Ps(e):Ps.ceil(e)}function ED(e,t){return e=ox(e),Oe(Ps.count(Or(e),e)+(Or(e).getDay()===4),t,2)}function SD(e){return e.getDay()}function _D(e,t){return Oe(Zh.count(Or(e)-1,e),t,2)}function CD(e,t){return Oe(e.getFullYear()%100,t,2)}function kD(e,t){return e=ox(e),Oe(e.getFullYear()%100,t,2)}function TD(e,t){return Oe(e.getFullYear()%1e4,t,4)}function ID(e,t){var n=e.getDay();return e=n>=4||n===0?Ps(e):Ps.ceil(e),Oe(e.getFullYear()%1e4,t,4)}function RD(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Oe(t/60|0,"0",2)+Oe(t%60,"0",2)}function ax(e,t){return Oe(e.getUTCDate(),t,2)}function DD(e,t){return Oe(e.getUTCHours(),t,2)}function BD(e,t){return Oe(e.getUTCHours()%12||12,t,2)}function FD(e,t){return Oe(1+ia.count(Lr(e),e),t,3)}function sx(e,t){return Oe(e.getUTCMilliseconds(),t,3)}function MD(e,t){return sx(e,t)+"000"}function PD(e,t){return Oe(e.getUTCMonth()+1,t,2)}function OD(e,t){return Oe(e.getUTCMinutes(),t,2)}function LD(e,t){return Oe(e.getUTCSeconds(),t,2)}function ND(e){var t=e.getUTCDay();return t===0?7:t}function zD(e,t){return Oe(Rc.count(Lr(e)-1,e),t,2)}function lx(e){var t=e.getUTCDay();return t>=4||t===0?Os(e):Os.ceil(e)}function UD(e,t){return e=lx(e),Oe(Os.count(Lr(e),e)+(Lr(e).getUTCDay()===4),t,2)}function $D(e){return e.getUTCDay()}function HD(e,t){return Oe(Qh.count(Lr(e)-1,e),t,2)}function GD(e,t){return Oe(e.getUTCFullYear()%100,t,2)}function VD(e,t){return e=lx(e),Oe(e.getUTCFullYear()%100,t,2)}function jD(e,t){return Oe(e.getUTCFullYear()%1e4,t,4)}function qD(e,t){var n=e.getUTCDay();return e=n>=4||n===0?Os(e):Os.ceil(e),Oe(e.getUTCFullYear()%1e4,t,4)}function WD(){return"+0000"}function cx(){return"%"}function ux(e){return+e}function fx(e){return Math.floor(+e/1e3)}var Ls,Lg,hx,Ng,dx;YD({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 YD(e){return Ls=Xv(e),Lg=Ls.format,hx=Ls.parse,Ng=Ls.utcFormat,dx=Ls.utcParse,Ls}function Jh(e){const t={};return n=>t[n]||(t[n]=e(n))}function px(e,t,n){n=n||{},en(n)||yt(`Invalid time multi-format specifier: ${n}`);const r=t(Uc),i=t(zc),o=t(Nc),a=t(Lc),s=t(Oc),l=t(Pc),c=t(Mc),u=t(Fc),f=e(n[Kh]||".%L"),h=e(n[Uc]||":%S"),d=e(n[zc]||"%I:%M"),p=e(n[Nc]||"%I %p"),g=e(n[Lc]||n[Xh]||"%a %d"),b=e(n[Oc]||"%b %d"),m=e(n[Pc]||"%B"),v=e(n[Mc]||"%B"),x=e(n[Fc]||"%Y");return A=>(r(A)<A?f:i(A)<A?h:o(A)<A?d:a(A)<A?p:l(A)<A?s(A)<A?g:b:u(A)<A?c(A)<A?m:v:x)(A)}function gx(e){const t=Jh(e.format),n=Jh(e.utcFormat);return{timeFormat:r=>Xe(r)?t(r):px(t,WR,r),utcFormat:r=>Xe(r)?n(r):px(n,YR,r),timeParse:Jh(e.parse),utcParse:Jh(e.utcParse)}}let zg;ZD();function ZD(){return zg=gx({format:Lg,parse:hx,utcFormat:Ng,utcParse:dx})}function QD(e){return gx(Xv(e))}function XD(e){return arguments.length?zg=QD(e):zg}const KD=/^(data:|([A-Za-z]+:)?\/\/)/,JD=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,eB=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,mx="file://";function tB(e,t){return n=>({options:n||{},sanitize:rB,load:nB,fileAccess:!!t,file:iB(),http:aB(e)})}async function nB(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t)}async function rB(e,t){t=vg({},this.options,t);const n=this.fileAccess,r={href:null};let i,o,a;const s=JD.test(e.replace(eB,""));(e==null||typeof e!="string"||!s)&&yt("Sanitize failure, invalid URI: "+Nh(e));const l=KD.test(e);return(a=t.baseURL)&&!l&&(!e.startsWith("/")&&!a.endsWith("/")&&(e="/"+e),e=a+e),o=(i=e.startsWith(mx))||t.mode==="file"||t.mode!=="http"&&!l&&n,i?e=e.slice(mx.length):e.startsWith("//")&&(t.defaultProtocol==="file"?(e=e.slice(2),o=!0):e=(t.defaultProtocol||"http")+":"+e),Object.defineProperty(r,"localFile",{value:!!o}),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 iB(e){return oB}async function oB(){yt("No file system access.")}function aB(e){return e?async function(t,n){const r=vg({},this.options.http,n),i=n&&n.response,o=await e(t,r);return o.ok?Tn(o[i])?o[i]():o.text():yt(o.status+""+o.statusText)}:sB}async function sB(){yt("No HTTP fetch method available.")}const lB=e=>e!=null&&e===e,cB=e=>e==="true"||e==="false"||e===!0||e===!1,uB=e=>!Number.isNaN(Date.parse(e)),bx=e=>!Number.isNaN(+e)&&!(e instanceof Date),fB=e=>bx(e)&&Number.isInteger(+e),yx={boolean:L9,integer:xc,number:xc,date:z9,string:U9,unknown:Mh},ed=[cB,fB,bx,uB],hB=["boolean","integer","number","date"];function wx(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=ed.length,i=ed.map((o,a)=>a+1);for(let o=0,a=0,s,l;o<n;++o)for(l=t?e[o][t]:e[o],s=0;s<r;++s)if(i[s]&&lB(l)&&!ed[s](l)&&(i[s]=0,++a,a===ed.length))return"string";return hB[i.reduce((o,a)=>o===0?a:o,0)-1]}function dB(e,t){return t.reduce((n,r)=>(n[r]=wx(e,r),n),{})}function vx(e){const t=function(n,r){const i={delimiter:e};return Ug(n,r?vg(r,i):i)};return t.responseType="text",t}function Ug(e,t){return t.header&&(e=t.header.map(Nh).join(t.delimiter)+`
|
6
6
|
`+e),Bv(t.delimiter).parse(e+"")}Ug.responseType="text";function pB(e){return typeof Buffer=="function"&&Tn(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function $g(e,t){const n=t&&t.property?Fh(t.property):Mh;return en(e)&&!pB(e)?gB(n(e),t):n(JSON.parse(e))}$g.responseType="json";function gB(e,t){return!Jt(e)&&P9(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}const mB={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function xx(e,t){let n,r,i,o;return e=$g(e,t),t&&t.feature?(n=Z9,i=t.feature):t&&t.mesh?(n=X9,i=t.mesh,o=mB[t.filter]):yt("Missing TopoJSON feature or mesh parameter."),r=(r=e.objects[i])?n(e,r,o):yt("Invalid TopoJSON object: "+i),r&&r.features||[r]}xx.responseType="json";const Hg={dsv:Ug,csv:vx(","),tsv:vx(" "),json:$g,topojson:xx};function Gg(e,t){return arguments.length>1?(Hg[e]=t,this):Is(Hg,e)?Hg[e]:null}function Ax(e,t,n,r){t=t||{};const i=Gg(t.type||"json");return i||yt("Unknown data format type: "+t.type),e=i(e,t),t.parse&&bB(e,t.parse,n,r),Is(e,"columns")&&delete e.columns,e}function bB(e,t,n,r){if(!e.length)return;const i=XD();n=n||i.timeParse,r=r||i.utcParse;let o=e.columns||Object.keys(e[0]),a,s,l,c,u,f;t==="auto"&&(t=dB(e,o)),o=Object.keys(t);const h=o.map(d=>{const p=t[d];let g,b;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return g=p.split(/:(.+)?/,2),b=g[1],(b[0]==="'"&&b[b.length-1]==="'"||b[0]==='"'&&b[b.length-1]==='"')&&(b=b.slice(1,-1)),(g[0]==="utc"?r:n)(b);if(!yx[p])throw Error("Illegal format pattern: "+d+":"+p);return yx[p]});for(l=0,u=e.length,f=o.length;l<u;++l)for(a=e[l],c=0;c<f;++c)s=o[c],a[s]=h[c](a[s])}const yB=tB(typeof fetch<"u"&&fetch,null);/**
|
7
7
|
* @license
|
8
8
|
* Copyright 2019 Google LLC
|
@@ -409,9 +409,9 @@ void main(void) {
|
|
409
409
|
|
410
410
|
#pragma markUniforms
|
411
411
|
};
|
412
|
-
`;function $r(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function co(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 Bm=Symbol("implicit");function Fm(){var e=new gi,t=[],n=[],r=Bm;function i(o){let a=e.get(o);if(a===void 0){if(r!==Bm)return r;e.set(o,a=t.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new gi;for(const a of o)e.has(a)||e.set(a,t.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 Fm(t,n).unknown(r)},$r.apply(i,arguments),i}function qs(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function au(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function uo(){}var va=.7,Ws=1/va,Ys="\\s*([+-]?\\d+)\\s*",su="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Hr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",IO=/^#([0-9a-f]{3,8})$/,RO=new RegExp(`^rgb\\(${Ys},${Ys},${Ys}\\)$`),DO=new RegExp(`^rgb\\(${Hr},${Hr},${Hr}\\)$`),BO=new RegExp(`^rgba\\(${Ys},${Ys},${Ys},${su}\\)$`),FO=new RegExp(`^rgba\\(${Hr},${Hr},${Hr},${su}\\)$`),MO=new RegExp(`^hsl\\(${su},${Hr},${Hr}\\)$`),PO=new RegExp(`^hsla\\(${su},${Hr},${Hr},${su}\\)$`),rA={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};qs(uo,fo,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:iA,formatHex:iA,formatHex8:OO,formatHsl:LO,formatRgb:oA,toString:oA});function iA(){return this.rgb().formatHex()}function OO(){return this.rgb().formatHex8()}function LO(){return uA(this).formatHsl()}function oA(){return this.rgb().formatRgb()}function fo(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=IO.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?aA(t):n===3?new Mt(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?_d(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?_d(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=RO.exec(e))?new Mt(t[1],t[2],t[3],1):(t=DO.exec(e))?new Mt(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=BO.exec(e))?_d(t[1],t[2],t[3],t[4]):(t=FO.exec(e))?_d(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=MO.exec(e))?cA(t[1],t[2]/100,t[3]/100,1):(t=PO.exec(e))?cA(t[1],t[2]/100,t[3]/100,t[4]):rA.hasOwnProperty(e)?aA(rA[e]):e==="transparent"?new Mt(NaN,NaN,NaN,0):null}function aA(e){return new Mt(e>>16&255,e>>8&255,e&255,1)}function _d(e,t,n,r){return r<=0&&(e=t=n=NaN),new Mt(e,t,n,r)}function Mm(e){return e instanceof uo||(e=fo(e)),e?(e=e.rgb(),new Mt(e.r,e.g,e.b,e.opacity)):new Mt}function Cd(e,t,n,r){return arguments.length===1?Mm(e):new Mt(e,t,n,r??1)}function Mt(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}qs(Mt,Cd,au(uo,{brighter(e){return e=e==null?Ws:Math.pow(Ws,e),new Mt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?va:Math.pow(va,e),new Mt(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Mt(xa(this.r),xa(this.g),xa(this.b),kd(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:sA,formatHex:sA,formatHex8:NO,formatRgb:lA,toString:lA}));function sA(){return`#${Aa(this.r)}${Aa(this.g)}${Aa(this.b)}`}function NO(){return`#${Aa(this.r)}${Aa(this.g)}${Aa(this.b)}${Aa((isNaN(this.opacity)?1:this.opacity)*255)}`}function lA(){const e=kd(this.opacity);return`${e===1?"rgb(":"rgba("}${xa(this.r)}, ${xa(this.g)}, ${xa(this.b)}${e===1?")":`, ${e})`}`}function kd(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function xa(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Aa(e){return e=xa(e),(e<16?"0":"")+e.toString(16)}function cA(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new br(e,t,n,r)}function uA(e){if(e instanceof br)return new br(e.h,e.s,e.l,e.opacity);if(e instanceof uo||(e=fo(e)),!e)return new br;if(e instanceof br)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,s=o-i,l=(o+i)/2;return s?(t===o?a=(n-r)/s+(n<r)*6:n===o?a=(r-t)/s+2:a=(t-n)/s+4,s/=l<.5?o+i:2-o-i,a*=60):s=l>0&&l<1?0:a,new br(a,s,l,e.opacity)}function Pm(e,t,n,r){return arguments.length===1?uA(e):new br(e,t,n,r??1)}function br(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}qs(br,Pm,au(uo,{brighter(e){return e=e==null?Ws:Math.pow(Ws,e),new br(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?va:Math.pow(va,e),new br(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 Mt(Om(e>=240?e-240:e+120,i,r),Om(e,i,r),Om(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new br(fA(this.h),Td(this.s),Td(this.l),kd(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=kd(this.opacity);return`${e===1?"hsl(":"hsla("}${fA(this.h)}, ${Td(this.s)*100}%, ${Td(this.l)*100}%${e===1?")":`, ${e})`}`}}));function fA(e){return e=(e||0)%360,e<0?e+360:e}function Td(e){return Math.max(0,Math.min(1,e||0))}function Om(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 hA=Math.PI/180,dA=180/Math.PI,Id=18,pA=.96422,gA=1,mA=.82521,bA=4/29,Zs=6/29,yA=3*Zs*Zs,zO=Zs*Zs*Zs;function wA(e){if(e instanceof Gr)return new Gr(e.l,e.a,e.b,e.opacity);if(e instanceof Ei)return vA(e);e instanceof Mt||(e=Mm(e));var t=$m(e.r),n=$m(e.g),r=$m(e.b),i=Nm((.2225045*t+.7168786*n+.0606169*r)/gA),o,a;return t===n&&n===r?o=a=i:(o=Nm((.4360747*t+.3850649*n+.1430804*r)/pA),a=Nm((.0139322*t+.0971045*n+.7141733*r)/mA)),new Gr(116*i-16,500*(o-i),200*(i-a),e.opacity)}function Lm(e,t,n,r){return arguments.length===1?wA(e):new Gr(e,t,n,r??1)}function Gr(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}qs(Gr,Lm,au(uo,{brighter(e){return new Gr(this.l+Id*(e??1),this.a,this.b,this.opacity)},darker(e){return new Gr(this.l-Id*(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=pA*zm(t),e=gA*zm(e),n=mA*zm(n),new Mt(Um(3.1338561*t-1.6168667*e-.4906146*n),Um(-.9787684*t+1.9161415*e+.033454*n),Um(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function Nm(e){return e>zO?Math.pow(e,1/3):e/yA+bA}function zm(e){return e>Zs?e*e*e:yA*(e-bA)}function Um(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function $m(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function UO(e){if(e instanceof Ei)return new Ei(e.h,e.c,e.l,e.opacity);if(e instanceof Gr||(e=wA(e)),e.a===0&&e.b===0)return new Ei(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*dA;return new Ei(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function Hm(e,t,n,r){return arguments.length===1?UO(e):new Ei(e,t,n,r??1)}function Ei(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function vA(e){if(isNaN(e.h))return new Gr(e.l,0,0,e.opacity);var t=e.h*hA;return new Gr(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}qs(Ei,Hm,au(uo,{brighter(e){return new Ei(this.h,this.c,this.l+Id*(e??1),this.opacity)},darker(e){return new Ei(this.h,this.c,this.l-Id*(e??1),this.opacity)},rgb(){return vA(this).rgb()}}));var xA=-.14861,Gm=1.78277,Vm=-.29227,Rd=-.90649,lu=1.97294,AA=lu*Rd,EA=lu*Gm,SA=Gm*Vm-Rd*xA;function $O(e){if(e instanceof Ea)return new Ea(e.h,e.s,e.l,e.opacity);e instanceof Mt||(e=Mm(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(SA*r+AA*t-EA*n)/(SA+AA-EA),o=r-i,a=(lu*(n-i)-Vm*o)/Rd,s=Math.sqrt(a*a+o*o)/(lu*i*(1-i)),l=s?Math.atan2(a,o)*dA-120:NaN;return new Ea(l<0?l+360:l,s,i,e.opacity)}function jm(e,t,n,r){return arguments.length===1?$O(e):new Ea(e,t,n,r??1)}function Ea(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}qs(Ea,jm,au(uo,{brighter(e){return e=e==null?Ws:Math.pow(Ws,e),new Ea(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?va:Math.pow(va,e),new Ea(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*hA,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new Mt(255*(t+n*(xA*r+Gm*i)),255*(t+n*(Vm*r+Rd*i)),255*(t+n*(lu*r)),this.opacity)}}));function _A(e,t,n,r,i){var o=e*e,a=o*e;return((1-3*e+3*o-a)*t+(4-6*o+3*a)*n+(1+3*e+3*o-3*a)*r+a*i)/6}function CA(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],o=e[r+1],a=r>0?e[r-1]:2*i-o,s=r<t-1?e[r+2]:2*o-i;return _A((n-r/t)*t,a,i,o,s)}}function kA(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),i=e[(r+t-1)%t],o=e[r%t],a=e[(r+1)%t],s=e[(r+2)%t];return _A((n-r/t)*t,i,o,a,s)}}const Dd=e=>()=>e;function TA(e,t){return function(n){return e+n*t}}function HO(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 Bd(e,t){var n=t-e;return n?TA(e,n>180||n<-180?n-360*Math.round(n/360):n):Dd(isNaN(e)?t:e)}function GO(e){return(e=+e)==1?Pt:function(t,n){return n-t?HO(t,n,e):Dd(isNaN(t)?n:t)}}function Pt(e,t){var n=t-e;return n?TA(e,n):Dd(isNaN(e)?t:e)}const qm=function e(t){var n=GO(t);function r(i,o){var a=n((i=Cd(i)).r,(o=Cd(o)).r),s=n(i.g,o.g),l=n(i.b,o.b),c=Pt(i.opacity,o.opacity);return function(u){return i.r=a(u),i.g=s(u),i.b=l(u),i.opacity=c(u),i+""}}return r.gamma=e,r}(1);function IA(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a<n;++a)s=Cd(t[a]),r[a]=s.r||0,i[a]=s.g||0,o[a]=s.b||0;return r=e(r),i=e(i),o=e(o),s.opacity=1,function(l){return s.r=r(l),s.g=i(l),s.b=o(l),s+""}}}var VO=IA(CA),jO=IA(kA);function Wm(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(o){for(i=0;i<n;++i)r[i]=e[i]*(1-o)+t[i]*o;return r}}function RA(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function qO(e,t){return(RA(t)?Wm:DA)(e,t)}function DA(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),o=new Array(n),a;for(a=0;a<r;++a)i[a]=ho(e[a],t[a]);for(;a<n;++a)o[a]=t[a];return function(s){for(a=0;a<r;++a)o[a]=i[a](s);return o}}function BA(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function yr(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function FA(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]=ho(e[i],t[i]):r[i]=t[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var Ym=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Zm=new RegExp(Ym.source,"g");function WO(e){return function(){return e}}function YO(e){return function(t){return e(t)+""}}function MA(e,t){var n=Ym.lastIndex=Zm.lastIndex=0,r,i,o,a=-1,s=[],l=[];for(e=e+"",t=t+"";(r=Ym.exec(e))&&(i=Zm.exec(t));)(o=i.index)>n&&(o=t.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,l.push({i:a,x:yr(r,i)})),n=Zm.lastIndex;return n<t.length&&(o=t.slice(n),s[a]?s[a]+=o:s[++a]=o),s.length<2?l[0]?YO(l[0].x):WO(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 ho(e,t){var n=typeof t,r;return t==null||n==="boolean"?Dd(t):(n==="number"?yr:n==="string"?(r=fo(t))?(t=r,qm):MA:t instanceof fo?qm:t instanceof Date?BA:RA(t)?Wm:Array.isArray(t)?DA:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?FA:yr)(e,t)}function ZO(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function QO(e,t){var n=Bd(+e,+t);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function cu(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var PA=180/Math.PI,Qm={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function OA(e,t,n,r,i,o){var a,s,l;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(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,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(t,e)*PA,skewX:Math.atan(l)*PA,scaleX:a,scaleY:s}}var Fd;function XO(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Qm:OA(t.a,t.b,t.c,t.d,t.e,t.f)}function KO(e){return e==null||(Fd||(Fd=document.createElementNS("http://www.w3.org/2000/svg","g")),Fd.setAttribute("transform",e),!(e=Fd.transform.baseVal.consolidate()))?Qm:(e=e.matrix,OA(e.a,e.b,e.c,e.d,e.e,e.f))}function LA(e,t,n,r){function i(c){return c.length?c.pop()+" ":""}function o(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:yr(c,f)},{i:g-2,x:yr(u,h)})}else(f||h)&&d.push("translate("+f+t+h+n)}function a(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:yr(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:yr(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:yr(c,f)},{i:g-2,x:yr(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),o(c.translateX,c.translateY,u.translateX,u.translateY,f,h),a(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,b;++p<g;)f[(b=h[p]).i]=b.x(d);return f.join("")}}}var JO=LA(XO,"px, ","px)","deg)"),eL=LA(KO,", ",")",")"),tL=1e-12;function NA(e){return((e=Math.exp(e))+1/e)/2}function nL(e){return((e=Math.exp(e))-1/e)/2}function rL(e){return((e=Math.exp(2*e))-1)/(e+1)}const iL=function e(t,n,r){function i(o,a){var s=o[0],l=o[1],c=o[2],u=a[0],f=a[1],h=a[2],d=u-s,p=f-l,g=d*d+p*p,b,m;if(g<tL)m=Math.log(h/c)/t,b=function(_){return[s+_*d,l+_*p,c*Math.exp(t*_*m)]};else{var v=Math.sqrt(g),x=(h*h-c*c+r*g)/(2*c*n*v),A=(h*h-c*c-r*g)/(2*h*n*v),S=Math.log(Math.sqrt(x*x+1)-x),E=Math.log(Math.sqrt(A*A+1)-A);m=(E-S)/t,b=function(_){var R=_*m,F=NA(S),H=c/(n*v)*(F*rL(t*R+S)-nL(S));return[s+H*d,l+H*p,c*F/NA(t*R+S)]}}return b.duration=m*1e3*t/Math.SQRT2,b}return i.rho=function(o){var a=Math.max(.001,+o),s=a*a,l=s*s;return e(a,s,l)},i}(Math.SQRT2,2,4);function zA(e){return function(t,n){var r=e((t=Pm(t)).h,(n=Pm(n)).h),i=Pt(t.s,n.s),o=Pt(t.l,n.l),a=Pt(t.opacity,n.opacity);return function(s){return t.h=r(s),t.s=i(s),t.l=o(s),t.opacity=a(s),t+""}}}const oL=zA(Bd);var aL=zA(Pt);function sL(e,t){var n=Pt((e=Lm(e)).l,(t=Lm(t)).l),r=Pt(e.a,t.a),i=Pt(e.b,t.b),o=Pt(e.opacity,t.opacity);return function(a){return e.l=n(a),e.a=r(a),e.b=i(a),e.opacity=o(a),e+""}}function UA(e){return function(t,n){var r=e((t=Hm(t)).h,(n=Hm(n)).h),i=Pt(t.c,n.c),o=Pt(t.l,n.l),a=Pt(t.opacity,n.opacity);return function(s){return t.h=r(s),t.c=i(s),t.l=o(s),t.opacity=a(s),t+""}}}const lL=UA(Bd);var cL=UA(Pt);function $A(e){return function t(n){n=+n;function r(i,o){var a=e((i=jm(i)).h,(o=jm(o)).h),s=Pt(i.s,o.s),l=Pt(i.l,o.l),c=Pt(i.opacity,o.opacity);return function(u){return i.h=a(u),i.s=s(u),i.l=l(Math.pow(u,n)),i.opacity=c(u),i+""}}return r.gamma=t,r}(1)}const uL=$A(Bd);var fL=$A(Pt);function Xm(e,t){t===void 0&&(t=e,e=ho);for(var n=0,r=t.length-1,i=t[0],o=new Array(r<0?0:r);n<r;)o[n]=e(i,i=t[++n]);return function(a){var s=Math.max(0,Math.min(r-1,Math.floor(a*=r)));return o[s](a-s)}}function hL(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const dL=Object.freeze(Object.defineProperty({__proto__:null,interpolate:ho,interpolateArray:qO,interpolateBasis:CA,interpolateBasisClosed:kA,interpolateCubehelix:uL,interpolateCubehelixLong:fL,interpolateDate:BA,interpolateDiscrete:ZO,interpolateHcl:lL,interpolateHclLong:cL,interpolateHsl:oL,interpolateHslLong:aL,interpolateHue:QO,interpolateLab:sL,interpolateNumber:yr,interpolateNumberArray:Wm,interpolateObject:FA,interpolateRgb:qm,interpolateRgbBasis:VO,interpolateRgbBasisClosed:jO,interpolateRound:cu,interpolateString:MA,interpolateTransformCss:JO,interpolateTransformSvg:eL,interpolateZoom:iL,piecewise:Xm,quantize:hL},Symbol.toStringTag,{value:"Module"}));function pL(e){return function(){return e}}function Km(e){return+e}var HA=[0,1];function bn(e){return e}function Jm(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:pL(isNaN(t)?NaN:.5)}function gL(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function mL(e,t,n){var r=e[0],i=e[1],o=t[0],a=t[1];return i<r?(r=Jm(i,r),o=n(a,o)):(r=Jm(r,i),o=n(o,a)),function(s){return o(r(s))}}function bL(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),o=new Array(r),a=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++a<r;)i[a]=Jm(e[a],e[a+1]),o[a]=n(t[a],t[a+1]);return function(s){var l=pi(e,s,1,r)-1;return o[l](i[l](s))}}function uu(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Md(){var e=HA,t=HA,n=ho,r,i,o,a=bn,s,l,c;function u(){var h=Math.min(e.length,t.length);return a!==bn&&(a=gL(e[0],e[h-1])),s=h>2?bL:mL,l=c=null,f}function f(h){return h==null||isNaN(h=+h)?o:(l||(l=s(e.map(r),t,n)))(r(a(h)))}return f.invert=function(h){return a(i((c||(c=s(t,e.map(r),yr)))(h)))},f.domain=function(h){return arguments.length?(e=Array.from(h,Km),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=cu,u()},f.clamp=function(h){return arguments.length?(a=h?!0:bn,u()):a!==bn},f.interpolate=function(h){return arguments.length?(n=h,u()):n},f.unknown=function(h){return arguments.length?(o=h,f):o},function(h,d){return r=h,i=d,u()}}function GA(){return Md()(bn,bn)}function VA(e,t,n,r){var i=ra(e,t,n),o;switch(r=Fs(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(o=DR(i,a))&&(r.precision=o),Wv(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=BR(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=RR(i))&&(r.precision=o-(r.type==="%")*2);break}}return Bt(r)}function Sa(e){var t=e.domain;return e.ticks=function(n){var r=t();return Cc(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return VA(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,o=r.length-1,a=r[i],s=r[o],l,c,u=10;for(s<a&&(c=a,a=s,s=c,c=i,i=o,o=c);u-- >0;){if(c=Ds(a,s,n),c===l)return r[i]=a,r[o]=s,t(r);if(c>0)a=Math.floor(a/c)*c,s=Math.ceil(s/c)*c;else if(c<0)a=Math.ceil(a*c)/c,s=Math.floor(s*c)/c;else break;l=c}return e},e}function Pd(){var e=GA();return e.copy=function(){return uu(e,Pd())},$r.apply(e,arguments),Sa(e)}function jA(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,Km),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return jA(e).unknown(t)},e=arguments.length?Array.from(e,Km):[0,1],Sa(n)}function qA(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],o=e[r],a;return o<i&&(a=n,n=r,r=a,a=i,i=o,o=a),e[n]=t.floor(i),e[r]=t.ceil(o),e}function WA(e){return Math.log(e)}function YA(e){return Math.exp(e)}function yL(e){return-Math.log(-e)}function wL(e){return-Math.exp(-e)}function vL(e){return isFinite(e)?+("1e"+e):e<0?0:e}function xL(e){return e===10?vL:e===Math.E?Math.exp:t=>Math.pow(e,t)}function AL(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 ZA(e){return(t,n)=>-e(-t,n)}function e1(e){const t=e(WA,YA),n=t.domain;let r=10,i,o;function a(){return i=AL(r),o=xL(r),n()[0]<0?(i=ZA(i),o=ZA(o),e(yL,wL)):e(WA,YA),t}return t.base=function(s){return arguments.length?(r=+s,a()):r},t.domain=function(s){return arguments.length?(n(s),a()):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 b=s==null?10:+s;let m=[];if(!(r%1)&&d-h<b){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/o(-h):p*o(h),!(g<c)){if(g>u)break;m.push(g)}}else for(;h<=d;++h)for(p=r-1;p>=1;--p)if(g=h>0?p/o(-h):p*o(h),!(g<c)){if(g>u)break;m.push(g)}m.length*2<b&&(m=Cc(c,u,b))}else m=Cc(h,d,Math.min(d-h,b)).map(o);return f?m.reverse():m},t.tickFormat=(s,l)=>{if(s==null&&(s=10),l==null&&(l=r===10?"s":","),typeof l!="function"&&(!(r%1)&&(l=Fs(l)).precision==null&&(l.trim=!0),l=Bt(l)),s===1/0)return l;const c=Math.max(1,r*s/t.ticks().length);return u=>{let f=u/o(Math.round(i(u)));return f*r<r-.5&&(f*=r),f<=c?l(u):""}},t.nice=()=>n(qA(n(),{floor:s=>o(Math.floor(i(s))),ceil:s=>o(Math.ceil(i(s)))})),t}function t1(){const e=e1(Md()).domain([1,10]);return e.copy=()=>uu(e,t1()).base(e.base()),$r.apply(e,arguments),e}function QA(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function XA(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function n1(e){var t=1,n=e(QA(t),XA(t));return n.constant=function(r){return arguments.length?e(QA(t=+r),XA(t)):t},Sa(n)}function KA(){var e=n1(Md());return e.copy=function(){return uu(e,KA()).constant(e.constant())},$r.apply(e,arguments)}function JA(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function EL(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function SL(e){return e<0?-e*e:e*e}function r1(e){var t=e(bn,bn),n=1;function r(){return n===1?e(bn,bn):n===.5?e(EL,SL):e(JA(n),JA(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},Sa(t)}function i1(){var e=r1(Md());return e.copy=function(){return uu(e,i1()).exponent(e.exponent())},$r.apply(e,arguments),e}function _L(){return i1.apply(null,arguments).exponent(.5)}function eE(){var e=[],t=[],n=[],r;function i(){var a=0,s=Math.max(1,t.length);for(n=new Array(s-1);++a<s;)n[a-1]=Tg(e,a/s);return o}function o(a){return a==null||isNaN(a=+a)?r:t[pi(n,a)]}return o.invertExtent=function(a){var s=t.indexOf(a);return s<0?[NaN,NaN]:[s>0?n[s-1]:e[0],s<n.length?n[s]:e[e.length-1]]},o.domain=function(a){if(!arguments.length)return e.slice();e=[];for(let s of a)s!=null&&!isNaN(s=+s)&&e.push(s);return e.sort(na),i()},o.range=function(a){return arguments.length?(t=Array.from(a),i()):t.slice()},o.unknown=function(a){return arguments.length?(r=a,o):r},o.quantiles=function(){return n.slice()},o.copy=function(){return eE().domain(e).range(t).unknown(r)},$r.apply(o,arguments)}function tE(){var e=0,t=1,n=1,r=[.5],i=[0,1],o;function a(l){return l!=null&&l<=l?i[pi(r,l,0,n)]:o}function s(){var l=-1;for(r=new Array(n);++l<n;)r[l]=((l+1)*t-(l-n)*e)/(n+1);return a}return a.domain=function(l){return arguments.length?([e,t]=l,e=+e,t=+t,s()):[e,t]},a.range=function(l){return arguments.length?(n=(i=Array.from(l)).length-1,s()):i.slice()},a.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]]},a.unknown=function(l){return arguments.length&&(o=l),a},a.thresholds=function(){return r.slice()},a.copy=function(){return tE().domain([e,t]).range(i).unknown(o)},$r.apply(Sa(a),arguments)}function nE(){var e=[.5],t=[0,1],n,r=1;function i(o){return o!=null&&o<=o?t[pi(e,o,0,r)]:n}return i.domain=function(o){return arguments.length?(e=Array.from(o),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(o){return arguments.length?(t=Array.from(o),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(o){var a=t.indexOf(o);return[e[a-1],e[a]]},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return nE().domain(e).range(t).unknown(n)},$r.apply(i,arguments)}function CL(e){return new Date(e)}function kL(e){return e instanceof Date?+e:+new Date(+e)}function o1(e,t,n,r,i,o,a,s,l,c){var u=GA(),f=u.invert,h=u.domain,d=c(".%L"),p=c(":%S"),g=c("%I:%M"),b=c("%I %p"),m=c("%a %d"),v=c("%b %d"),x=c("%B"),A=c("%Y");function S(E){return(l(E)<E?d:s(E)<E?p:a(E)<E?g:o(E)<E?b:r(E)<E?i(E)<E?m:v:n(E)<E?x:A)(E)}return u.invert=function(E){return new Date(f(E))},u.domain=function(E){return arguments.length?h(Array.from(E,kL)):h().map(CL)},u.ticks=function(E){var _=h();return e(_[0],_[_.length-1],E??10)},u.tickFormat=function(E,_){return _==null?S:c(_)},u.nice=function(E){var _=h();return(!E||typeof E.range!="function")&&(E=t(_[0],_[_.length-1],E??10)),E?h(qA(_,E)):u},u.copy=function(){return uu(u,o1(e,t,n,r,i,o,a,s,l,c))},u}function TL(){return $r.apply(o1(GR,VR,Or,Dc,Ic,eo,Wh,jh,wi,Lg).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function IL(){return $r.apply(o1($R,HR,Lr,Bc,Rc,ia,Yh,qh,wi,Ng).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Od(){var e=0,t=1,n,r,i,o,a=bn,s=!1,l;function c(f){return f==null||isNaN(f=+f)?l:a(i===0?.5:(f=(o(f)-n)*i,s?Math.max(0,Math.min(1,f)):f))}c.domain=function(f){return arguments.length?([e,t]=f,n=o(e=+e),r=o(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?(a=f,c):a};function u(f){return function(h){var d,p;return arguments.length?([d,p]=h,a=f(d,p),c):[a(0),a(1)]}}return c.range=u(ho),c.rangeRound=u(cu),c.unknown=function(f){return arguments.length?(l=f,c):l},function(f){return o=f,n=f(e),r=f(t),i=n===r?0:1/(r-n),c}}function po(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function a1(){var e=Sa(Od()(bn));return e.copy=function(){return po(e,a1())},co.apply(e,arguments)}function rE(){var e=e1(Od()).domain([1,10]);return e.copy=function(){return po(e,rE()).base(e.base())},co.apply(e,arguments)}function iE(){var e=n1(Od());return e.copy=function(){return po(e,iE()).constant(e.constant())},co.apply(e,arguments)}function s1(){var e=r1(Od());return e.copy=function(){return po(e,s1()).exponent(e.exponent())},co.apply(e,arguments)}function RL(){return s1.apply(null,arguments).exponent(.5)}function Ld(){var e=0,t=.5,n=1,r=1,i,o,a,s,l,c=bn,u,f=!1,h;function d(g){return isNaN(g=+g)?h:(g=.5+((g=+u(g))-o)*(r*g<r*o?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),o=u(t=+t),a=u(n=+n),s=i===o?0:.5/(o-i),l=o===a?0:.5/(a-o),r=o<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(b){var m,v,x;return arguments.length?([m,v,x]=b,c=Xm(g,[m,v,x]),d):[c(0),c(.5),c(1)]}}return d.range=p(ho),d.rangeRound=p(cu),d.unknown=function(g){return arguments.length?(h=g,d):h},function(g){return u=g,i=g(e),o=g(t),a=g(n),s=i===o?0:.5/(o-i),l=o===a?0:.5/(a-o),r=o<i?-1:1,d}}function oE(){var e=Sa(Ld()(bn));return e.copy=function(){return po(e,oE())},co.apply(e,arguments)}function aE(){var e=e1(Ld()).domain([.1,1,10]);return e.copy=function(){return po(e,aE()).base(e.base())},co.apply(e,arguments)}function sE(){var e=n1(Ld());return e.copy=function(){return po(e,sE()).constant(e.constant())},co.apply(e,arguments)}function l1(){var e=r1(Ld());return e.copy=function(){return po(e,l1()).exponent(e.exponent())},co.apply(e,arguments)}function DL(){return l1.apply(null,arguments).exponent(.5)}function c1(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const BL="identity",Qs="linear",go="log",fu="pow",hu="sqrt",Nd="symlog",lE="time",cE="utc",Vr="sequential",Xs="diverging",u1="quantile",uE="quantize",fE="threshold",f1="ordinal",h1="point",hE="band",d1="bin-ordinal",Ct="continuous",du="discrete",pu="discretizing",jn="interpolating",dE="temporal";function FL(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 ML(e){return function(t){const n=e.range();let r=t[0],i=t[1],o=-1,a,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&&(o<0&&(o=l),a=l);if(!(o<0))return r=e.invertExtent(n[o]),i=e.invertExtent(n[a]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function p1(){const e=Fm().unknown(void 0),t=e.domain,n=e.range;let r=[0,1],i,o,a=!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=c1(f,s,l);let g=r[h-0];i=(d-g)/(p||1),a&&(i=Math.floor(i)),g+=(d-g-i*(f-s))*c,o=i*(1-s),a&&(g=Math.round(g),o=Math.round(o));const b=Ji(f).map(m=>g+i*m);return n(h?b.reverse():b)}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]],a=!0,u()},e.bandwidth=function(){return o},e.step=function(){return i},e.round=function(f){return arguments.length?(a=!!f,u()):a},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],b=+f[1],m,v,x;if(!(g!==g||b!==b)&&(b<g&&(x=g,g=b,b=x),!(b<d[0]||g>r[1-h])))return m=Math.max(0,pi(d,g)-1),v=g===b?m:pi(d,b)-1,g-d[m]>o+1e-10&&++m,h&&(x=m,m=p-v,v=p-x),m>v?void 0:t().slice(m,v+1)},e.invert=function(f){const h=e.invertRange([f,f]);return h&&h[0]},e.copy=function(){return p1().domain(t()).range(r).round(a).paddingInner(s).paddingOuter(l).align(c)},u()}function pE(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return pE(t())},e}function PL(){return pE(p1().paddingInner(1))}var OL=Array.prototype.map;function LL(e){return OL.call(e,xc)}const NL=Array.prototype.slice;function gE(){let e=[],t=[];function n(r){return r==null||r!==r?void 0:t[(pi(e,r)-1)%t.length]}return n.domain=function(r){return arguments.length?(e=LL(r),n):e.slice()},n.range=function(r){return arguments.length?(t=NL.call(r),n):t.slice()},n.tickFormat=function(r,i){return VA(e[0],pr(e),r??10,i)},n.copy=function(){return gE().domain(n.domain()).range(n.range())},n}const zd=new Map,zL=Symbol("vega_scale");function UL(e){return e[zL]=!0,e}function $L(e,t,n){const r=function(){const o=t();return o.invertRange||(o.invertRange=o.invert?FL(o):o.invertExtent?ML(o):void 0),o.type=e,UL(o)};return r.metadata=zh(wg(n)),r}function Ve(e,t,n){return arguments.length>1?(zd.set(e,$L(e,t,n)),this):HL(e)?zd.get(e):void 0}Ve(BL,jA),Ve(Qs,Pd,Ct),Ve(go,t1,[Ct,go]),Ve(fu,i1,Ct),Ve(hu,_L,Ct),Ve(Nd,KA,Ct),Ve(lE,TL,[Ct,dE]),Ve(cE,IL,[Ct,dE]),Ve(Vr,a1,[Ct,jn]),Ve(`${Vr}-${Qs}`,a1,[Ct,jn]),Ve(`${Vr}-${go}`,rE,[Ct,jn,go]),Ve(`${Vr}-${fu}`,s1,[Ct,jn]),Ve(`${Vr}-${hu}`,RL,[Ct,jn]),Ve(`${Vr}-${Nd}`,iE,[Ct,jn]),Ve(`${Xs}-${Qs}`,oE,[Ct,jn]),Ve(`${Xs}-${go}`,aE,[Ct,jn,go]),Ve(`${Xs}-${fu}`,l1,[Ct,jn]),Ve(`${Xs}-${hu}`,DL,[Ct,jn]),Ve(`${Xs}-${Nd}`,sE,[Ct,jn]),Ve(u1,eE,[pu,u1]),Ve(uE,tE,pu),Ve(fE,nE,pu),Ve(d1,gE,[du,pu]),Ve(f1,Fm,du),Ve(hE,p1,du),Ve(h1,PL,du);function HL(e){return zd.has(e)}function gu(e,t){const n=zd.get(e);return n&&n.metadata[t]}function Ot(e){return gu(e,Ct)}function Si(e){return gu(e,du)}function mo(e){return gu(e,pu)}function mE(e){return gu(e,go)}function Ud(e){return gu(e,jn)}function GL(e,t){const n=t[0],r=pr(t)-n;return function(i){return e(n+i*r)}}function $d(e,t,n){return Xm(bE(t||"rgb",n),e)}function VL(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}function bE(e,t){const n=dL[jL(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function jL(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const qL={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"},WL={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 yE(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 wE(e,t){for(const n in e)g1(n,t(e[n]))}const vE={};wE(WL,yE),wE(qL,e=>$d(yE(e)));function g1(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(vE[e]=t,this):vE[e]}function je(e,t=e){if(/^[A-Za-z0-9_]+$/.test(e)){const n=new Function("datum",`return datum[${JSON.stringify(e)}]`);return Xe(n,[e],t)}else return Fh(e)}const YL="RawCode",ZL="Literal",QL="Property",XL="Identifier",KL="ArrayExpression",JL="BinaryExpression",eN="CallExpression",tN="ConditionalExpression",nN="LogicalExpression",rN="MemberExpression",iN="ObjectExpression",oN="UnaryExpression";function wr(e){this.type=e}wr.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=aN(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};function aN(e){switch(e.type){case KL:return e.elements;case JL:case nN:return[e.left,e.right];case eN:return[e.callee].concat(e.arguments);case tN:return[e.test,e.consequent,e.alternate];case rN:return[e.object,e.property];case iN:return e.properties;case QL:return[e.key,e.value];case oN:return[e.argument];case XL:case ZL:case YL:default:return[]}}var jr,ue,j,rn,Ye,Hd=1,mu=2,_a=3,bo=4,Gd=5,Ca=6,yn=7,bu=8,sN=9;jr={},jr[Hd]="Boolean",jr[mu]="<end>",jr[_a]="Identifier",jr[bo]="Keyword",jr[Gd]="Null",jr[Ca]="Numeric",jr[yn]="Punctuator",jr[bu]="String",jr[sN]="RegularExpression";var lN="ArrayExpression",cN="BinaryExpression",uN="CallExpression",fN="ConditionalExpression",xE="Identifier",hN="Literal",dN="LogicalExpression",pN="MemberExpression",gN="ObjectExpression",mN="Property",bN="UnaryExpression",Lt="Unexpected token %0",yN="Unexpected number",wN="Unexpected string",vN="Unexpected identifier",xN="Unexpected reserved word",AN="Unexpected end of input",m1="Invalid regular expression",b1="Invalid regular expression: missing /",AE="Octal literals are not allowed in strict mode.",EN="Duplicate data property in object literal not allowed in strict mode",Vt="ILLEGAL",yu="Disabled.",SN=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]"),_N=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 Vd(e,t){if(!e)throw new Error("ASSERT: "+t)}function _i(e){return e>=48&&e<=57}function y1(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function wu(e){return"01234567".indexOf(e)>=0}function CN(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 vu(e){return e===10||e===13||e===8232||e===8233}function xu(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&SN.test(String.fromCharCode(e))}function jd(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&_N.test(String.fromCharCode(e))}const kN={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 EE(){for(;j<rn;){const e=ue.charCodeAt(j);if(CN(e)||vu(e))++j;else break}}function w1(e){var t,n,r,i=0;for(n=e==="u"?4:2,t=0;t<n;++t)j<rn&&y1(ue[j])?(r=ue[j++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):Le({},Lt,Vt);return String.fromCharCode(i)}function TN(){var e,t,n,r;for(e=ue[j],t=0,e==="}"&&Le({},Lt,Vt);j<rn&&(e=ue[j++],!!y1(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&Le({},Lt,Vt),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function SE(){var e,t;for(e=ue.charCodeAt(j++),t=String.fromCharCode(e),e===92&&(ue.charCodeAt(j)!==117&&Le({},Lt,Vt),++j,e=w1("u"),(!e||e==="\\"||!xu(e.charCodeAt(0)))&&Le({},Lt,Vt),t=e);j<rn&&(e=ue.charCodeAt(j),!!jd(e));)++j,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),ue.charCodeAt(j)!==117&&Le({},Lt,Vt),++j,e=w1("u"),(!e||e==="\\"||!jd(e.charCodeAt(0)))&&Le({},Lt,Vt),t+=e);return t}function IN(){var e,t;for(e=j++;j<rn;){if(t=ue.charCodeAt(j),t===92)return j=e,SE();if(jd(t))++j;else break}return ue.slice(e,j)}function RN(){var e,t,n;return e=j,t=ue.charCodeAt(j)===92?SE():IN(),t.length===1?n=_a:kN.hasOwnProperty(t)?n=bo:t==="null"?n=Gd:t==="true"||t==="false"?n=Hd:n=_a,{type:n,value:t,start:e,end:j}}function v1(){var e=j,t=ue.charCodeAt(j),n,r=ue[j],i,o,a;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++j,{type:yn,value:String.fromCharCode(t),start:e,end:j};default:if(n=ue.charCodeAt(j+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 j+=2,{type:yn,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:j};case 33:case 61:return j+=2,ue.charCodeAt(j)===61&&++j,{type:yn,value:ue.slice(e,j),start:e,end:j}}}if(a=ue.substr(j,4),a===">>>=")return j+=4,{type:yn,value:a,start:e,end:j};if(o=a.substr(0,3),o===">>>"||o==="<<="||o===">>=")return j+=3,{type:yn,value:o,start:e,end:j};if(i=o.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return j+=2,{type:yn,value:i,start:e,end:j};if(i==="//"&&Le({},Lt,Vt),"<>=!+-*%&|^/".indexOf(r)>=0)return++j,{type:yn,value:r,start:e,end:j};Le({},Lt,Vt)}function DN(e){let t="";for(;j<rn&&y1(ue[j]);)t+=ue[j++];return t.length===0&&Le({},Lt,Vt),xu(ue.charCodeAt(j))&&Le({},Lt,Vt),{type:Ca,value:parseInt("0x"+t,16),start:e,end:j}}function BN(e){let t="0"+ue[j++];for(;j<rn&&wu(ue[j]);)t+=ue[j++];return(xu(ue.charCodeAt(j))||_i(ue.charCodeAt(j)))&&Le({},Lt,Vt),{type:Ca,value:parseInt(t,8),octal:!0,start:e,end:j}}function _E(){var e,t,n;if(n=ue[j],Vd(_i(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=j,e="",n!=="."){if(e=ue[j++],n=ue[j],e==="0"){if(n==="x"||n==="X")return++j,DN(t);if(wu(n))return BN(t);n&&_i(n.charCodeAt(0))&&Le({},Lt,Vt)}for(;_i(ue.charCodeAt(j));)e+=ue[j++];n=ue[j]}if(n==="."){for(e+=ue[j++];_i(ue.charCodeAt(j));)e+=ue[j++];n=ue[j]}if(n==="e"||n==="E")if(e+=ue[j++],n=ue[j],(n==="+"||n==="-")&&(e+=ue[j++]),_i(ue.charCodeAt(j)))for(;_i(ue.charCodeAt(j));)e+=ue[j++];else Le({},Lt,Vt);return xu(ue.charCodeAt(j))&&Le({},Lt,Vt),{type:Ca,value:parseFloat(e),start:t,end:j}}function FN(){var e="",t,n,r,i,o=!1;for(t=ue[j],Vd(t==="'"||t==='"',"String literal must starts with a quote"),n=j,++j;j<rn;)if(r=ue[j++],r===t){t="";break}else if(r==="\\")if(r=ue[j++],!r||!vu(r.charCodeAt(0)))switch(r){case"u":case"x":ue[j]==="{"?(++j,e+=TN()):e+=w1(r);break;case"n":e+=`
|
412
|
+
`;function $r(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function co(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 Bm=Symbol("implicit");function Fm(){var e=new gi,t=[],n=[],r=Bm;function i(o){let a=e.get(o);if(a===void 0){if(r!==Bm)return r;e.set(o,a=t.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new gi;for(const a of o)e.has(a)||e.set(a,t.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 Fm(t,n).unknown(r)},$r.apply(i,arguments),i}function qs(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function au(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function uo(){}var va=.7,Ws=1/va,Ys="\\s*([+-]?\\d+)\\s*",su="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Hr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",IO=/^#([0-9a-f]{3,8})$/,RO=new RegExp(`^rgb\\(${Ys},${Ys},${Ys}\\)$`),DO=new RegExp(`^rgb\\(${Hr},${Hr},${Hr}\\)$`),BO=new RegExp(`^rgba\\(${Ys},${Ys},${Ys},${su}\\)$`),FO=new RegExp(`^rgba\\(${Hr},${Hr},${Hr},${su}\\)$`),MO=new RegExp(`^hsl\\(${su},${Hr},${Hr}\\)$`),PO=new RegExp(`^hsla\\(${su},${Hr},${Hr},${su}\\)$`),rA={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};qs(uo,fo,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:iA,formatHex:iA,formatHex8:OO,formatHsl:LO,formatRgb:oA,toString:oA});function iA(){return this.rgb().formatHex()}function OO(){return this.rgb().formatHex8()}function LO(){return uA(this).formatHsl()}function oA(){return this.rgb().formatRgb()}function fo(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=IO.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?aA(t):n===3?new Mt(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?_d(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?_d(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=RO.exec(e))?new Mt(t[1],t[2],t[3],1):(t=DO.exec(e))?new Mt(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=BO.exec(e))?_d(t[1],t[2],t[3],t[4]):(t=FO.exec(e))?_d(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=MO.exec(e))?cA(t[1],t[2]/100,t[3]/100,1):(t=PO.exec(e))?cA(t[1],t[2]/100,t[3]/100,t[4]):rA.hasOwnProperty(e)?aA(rA[e]):e==="transparent"?new Mt(NaN,NaN,NaN,0):null}function aA(e){return new Mt(e>>16&255,e>>8&255,e&255,1)}function _d(e,t,n,r){return r<=0&&(e=t=n=NaN),new Mt(e,t,n,r)}function Mm(e){return e instanceof uo||(e=fo(e)),e?(e=e.rgb(),new Mt(e.r,e.g,e.b,e.opacity)):new Mt}function Cd(e,t,n,r){return arguments.length===1?Mm(e):new Mt(e,t,n,r??1)}function Mt(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}qs(Mt,Cd,au(uo,{brighter(e){return e=e==null?Ws:Math.pow(Ws,e),new Mt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?va:Math.pow(va,e),new Mt(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Mt(xa(this.r),xa(this.g),xa(this.b),kd(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:sA,formatHex:sA,formatHex8:NO,formatRgb:lA,toString:lA}));function sA(){return`#${Aa(this.r)}${Aa(this.g)}${Aa(this.b)}`}function NO(){return`#${Aa(this.r)}${Aa(this.g)}${Aa(this.b)}${Aa((isNaN(this.opacity)?1:this.opacity)*255)}`}function lA(){const e=kd(this.opacity);return`${e===1?"rgb(":"rgba("}${xa(this.r)}, ${xa(this.g)}, ${xa(this.b)}${e===1?")":`, ${e})`}`}function kd(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function xa(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Aa(e){return e=xa(e),(e<16?"0":"")+e.toString(16)}function cA(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new br(e,t,n,r)}function uA(e){if(e instanceof br)return new br(e.h,e.s,e.l,e.opacity);if(e instanceof uo||(e=fo(e)),!e)return new br;if(e instanceof br)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,s=o-i,l=(o+i)/2;return s?(t===o?a=(n-r)/s+(n<r)*6:n===o?a=(r-t)/s+2:a=(t-n)/s+4,s/=l<.5?o+i:2-o-i,a*=60):s=l>0&&l<1?0:a,new br(a,s,l,e.opacity)}function Pm(e,t,n,r){return arguments.length===1?uA(e):new br(e,t,n,r??1)}function br(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}qs(br,Pm,au(uo,{brighter(e){return e=e==null?Ws:Math.pow(Ws,e),new br(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?va:Math.pow(va,e),new br(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 Mt(Om(e>=240?e-240:e+120,i,r),Om(e,i,r),Om(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new br(fA(this.h),Td(this.s),Td(this.l),kd(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=kd(this.opacity);return`${e===1?"hsl(":"hsla("}${fA(this.h)}, ${Td(this.s)*100}%, ${Td(this.l)*100}%${e===1?")":`, ${e})`}`}}));function fA(e){return e=(e||0)%360,e<0?e+360:e}function Td(e){return Math.max(0,Math.min(1,e||0))}function Om(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 hA=Math.PI/180,dA=180/Math.PI,Id=18,pA=.96422,gA=1,mA=.82521,bA=4/29,Zs=6/29,yA=3*Zs*Zs,zO=Zs*Zs*Zs;function wA(e){if(e instanceof Gr)return new Gr(e.l,e.a,e.b,e.opacity);if(e instanceof Ei)return vA(e);e instanceof Mt||(e=Mm(e));var t=$m(e.r),n=$m(e.g),r=$m(e.b),i=Nm((.2225045*t+.7168786*n+.0606169*r)/gA),o,a;return t===n&&n===r?o=a=i:(o=Nm((.4360747*t+.3850649*n+.1430804*r)/pA),a=Nm((.0139322*t+.0971045*n+.7141733*r)/mA)),new Gr(116*i-16,500*(o-i),200*(i-a),e.opacity)}function Lm(e,t,n,r){return arguments.length===1?wA(e):new Gr(e,t,n,r??1)}function Gr(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}qs(Gr,Lm,au(uo,{brighter(e){return new Gr(this.l+Id*(e??1),this.a,this.b,this.opacity)},darker(e){return new Gr(this.l-Id*(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=pA*zm(t),e=gA*zm(e),n=mA*zm(n),new Mt(Um(3.1338561*t-1.6168667*e-.4906146*n),Um(-.9787684*t+1.9161415*e+.033454*n),Um(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function Nm(e){return e>zO?Math.pow(e,1/3):e/yA+bA}function zm(e){return e>Zs?e*e*e:yA*(e-bA)}function Um(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function $m(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function UO(e){if(e instanceof Ei)return new Ei(e.h,e.c,e.l,e.opacity);if(e instanceof Gr||(e=wA(e)),e.a===0&&e.b===0)return new Ei(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*dA;return new Ei(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function Hm(e,t,n,r){return arguments.length===1?UO(e):new Ei(e,t,n,r??1)}function Ei(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function vA(e){if(isNaN(e.h))return new Gr(e.l,0,0,e.opacity);var t=e.h*hA;return new Gr(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}qs(Ei,Hm,au(uo,{brighter(e){return new Ei(this.h,this.c,this.l+Id*(e??1),this.opacity)},darker(e){return new Ei(this.h,this.c,this.l-Id*(e??1),this.opacity)},rgb(){return vA(this).rgb()}}));var xA=-.14861,Gm=1.78277,Vm=-.29227,Rd=-.90649,lu=1.97294,AA=lu*Rd,EA=lu*Gm,SA=Gm*Vm-Rd*xA;function $O(e){if(e instanceof Ea)return new Ea(e.h,e.s,e.l,e.opacity);e instanceof Mt||(e=Mm(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(SA*r+AA*t-EA*n)/(SA+AA-EA),o=r-i,a=(lu*(n-i)-Vm*o)/Rd,s=Math.sqrt(a*a+o*o)/(lu*i*(1-i)),l=s?Math.atan2(a,o)*dA-120:NaN;return new Ea(l<0?l+360:l,s,i,e.opacity)}function jm(e,t,n,r){return arguments.length===1?$O(e):new Ea(e,t,n,r??1)}function Ea(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}qs(Ea,jm,au(uo,{brighter(e){return e=e==null?Ws:Math.pow(Ws,e),new Ea(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?va:Math.pow(va,e),new Ea(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*hA,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new Mt(255*(t+n*(xA*r+Gm*i)),255*(t+n*(Vm*r+Rd*i)),255*(t+n*(lu*r)),this.opacity)}}));function _A(e,t,n,r,i){var o=e*e,a=o*e;return((1-3*e+3*o-a)*t+(4-6*o+3*a)*n+(1+3*e+3*o-3*a)*r+a*i)/6}function CA(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],o=e[r+1],a=r>0?e[r-1]:2*i-o,s=r<t-1?e[r+2]:2*o-i;return _A((n-r/t)*t,a,i,o,s)}}function kA(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),i=e[(r+t-1)%t],o=e[r%t],a=e[(r+1)%t],s=e[(r+2)%t];return _A((n-r/t)*t,i,o,a,s)}}const Dd=e=>()=>e;function TA(e,t){return function(n){return e+n*t}}function HO(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 Bd(e,t){var n=t-e;return n?TA(e,n>180||n<-180?n-360*Math.round(n/360):n):Dd(isNaN(e)?t:e)}function GO(e){return(e=+e)==1?Pt:function(t,n){return n-t?HO(t,n,e):Dd(isNaN(t)?n:t)}}function Pt(e,t){var n=t-e;return n?TA(e,n):Dd(isNaN(e)?t:e)}const qm=function e(t){var n=GO(t);function r(i,o){var a=n((i=Cd(i)).r,(o=Cd(o)).r),s=n(i.g,o.g),l=n(i.b,o.b),c=Pt(i.opacity,o.opacity);return function(u){return i.r=a(u),i.g=s(u),i.b=l(u),i.opacity=c(u),i+""}}return r.gamma=e,r}(1);function IA(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a<n;++a)s=Cd(t[a]),r[a]=s.r||0,i[a]=s.g||0,o[a]=s.b||0;return r=e(r),i=e(i),o=e(o),s.opacity=1,function(l){return s.r=r(l),s.g=i(l),s.b=o(l),s+""}}}var VO=IA(CA),jO=IA(kA);function Wm(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(o){for(i=0;i<n;++i)r[i]=e[i]*(1-o)+t[i]*o;return r}}function RA(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function qO(e,t){return(RA(t)?Wm:DA)(e,t)}function DA(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),o=new Array(n),a;for(a=0;a<r;++a)i[a]=ho(e[a],t[a]);for(;a<n;++a)o[a]=t[a];return function(s){for(a=0;a<r;++a)o[a]=i[a](s);return o}}function BA(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function yr(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function FA(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]=ho(e[i],t[i]):r[i]=t[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var Ym=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Zm=new RegExp(Ym.source,"g");function WO(e){return function(){return e}}function YO(e){return function(t){return e(t)+""}}function MA(e,t){var n=Ym.lastIndex=Zm.lastIndex=0,r,i,o,a=-1,s=[],l=[];for(e=e+"",t=t+"";(r=Ym.exec(e))&&(i=Zm.exec(t));)(o=i.index)>n&&(o=t.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,l.push({i:a,x:yr(r,i)})),n=Zm.lastIndex;return n<t.length&&(o=t.slice(n),s[a]?s[a]+=o:s[++a]=o),s.length<2?l[0]?YO(l[0].x):WO(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 ho(e,t){var n=typeof t,r;return t==null||n==="boolean"?Dd(t):(n==="number"?yr:n==="string"?(r=fo(t))?(t=r,qm):MA:t instanceof fo?qm:t instanceof Date?BA:RA(t)?Wm:Array.isArray(t)?DA:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?FA:yr)(e,t)}function ZO(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function QO(e,t){var n=Bd(+e,+t);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function cu(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var PA=180/Math.PI,Qm={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function OA(e,t,n,r,i,o){var a,s,l;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(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,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(t,e)*PA,skewX:Math.atan(l)*PA,scaleX:a,scaleY:s}}var Fd;function XO(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Qm:OA(t.a,t.b,t.c,t.d,t.e,t.f)}function KO(e){return e==null||(Fd||(Fd=document.createElementNS("http://www.w3.org/2000/svg","g")),Fd.setAttribute("transform",e),!(e=Fd.transform.baseVal.consolidate()))?Qm:(e=e.matrix,OA(e.a,e.b,e.c,e.d,e.e,e.f))}function LA(e,t,n,r){function i(c){return c.length?c.pop()+" ":""}function o(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:yr(c,f)},{i:g-2,x:yr(u,h)})}else(f||h)&&d.push("translate("+f+t+h+n)}function a(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:yr(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:yr(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:yr(c,f)},{i:g-2,x:yr(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),o(c.translateX,c.translateY,u.translateX,u.translateY,f,h),a(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,b;++p<g;)f[(b=h[p]).i]=b.x(d);return f.join("")}}}var JO=LA(XO,"px, ","px)","deg)"),eL=LA(KO,", ",")",")"),tL=1e-12;function NA(e){return((e=Math.exp(e))+1/e)/2}function nL(e){return((e=Math.exp(e))-1/e)/2}function rL(e){return((e=Math.exp(2*e))-1)/(e+1)}const iL=function e(t,n,r){function i(o,a){var s=o[0],l=o[1],c=o[2],u=a[0],f=a[1],h=a[2],d=u-s,p=f-l,g=d*d+p*p,b,m;if(g<tL)m=Math.log(h/c)/t,b=function(_){return[s+_*d,l+_*p,c*Math.exp(t*_*m)]};else{var v=Math.sqrt(g),x=(h*h-c*c+r*g)/(2*c*n*v),A=(h*h-c*c-r*g)/(2*h*n*v),S=Math.log(Math.sqrt(x*x+1)-x),E=Math.log(Math.sqrt(A*A+1)-A);m=(E-S)/t,b=function(_){var R=_*m,F=NA(S),H=c/(n*v)*(F*rL(t*R+S)-nL(S));return[s+H*d,l+H*p,c*F/NA(t*R+S)]}}return b.duration=m*1e3*t/Math.SQRT2,b}return i.rho=function(o){var a=Math.max(.001,+o),s=a*a,l=s*s;return e(a,s,l)},i}(Math.SQRT2,2,4);function zA(e){return function(t,n){var r=e((t=Pm(t)).h,(n=Pm(n)).h),i=Pt(t.s,n.s),o=Pt(t.l,n.l),a=Pt(t.opacity,n.opacity);return function(s){return t.h=r(s),t.s=i(s),t.l=o(s),t.opacity=a(s),t+""}}}const oL=zA(Bd);var aL=zA(Pt);function sL(e,t){var n=Pt((e=Lm(e)).l,(t=Lm(t)).l),r=Pt(e.a,t.a),i=Pt(e.b,t.b),o=Pt(e.opacity,t.opacity);return function(a){return e.l=n(a),e.a=r(a),e.b=i(a),e.opacity=o(a),e+""}}function UA(e){return function(t,n){var r=e((t=Hm(t)).h,(n=Hm(n)).h),i=Pt(t.c,n.c),o=Pt(t.l,n.l),a=Pt(t.opacity,n.opacity);return function(s){return t.h=r(s),t.c=i(s),t.l=o(s),t.opacity=a(s),t+""}}}const lL=UA(Bd);var cL=UA(Pt);function $A(e){return function t(n){n=+n;function r(i,o){var a=e((i=jm(i)).h,(o=jm(o)).h),s=Pt(i.s,o.s),l=Pt(i.l,o.l),c=Pt(i.opacity,o.opacity);return function(u){return i.h=a(u),i.s=s(u),i.l=l(Math.pow(u,n)),i.opacity=c(u),i+""}}return r.gamma=t,r}(1)}const uL=$A(Bd);var fL=$A(Pt);function Xm(e,t){t===void 0&&(t=e,e=ho);for(var n=0,r=t.length-1,i=t[0],o=new Array(r<0?0:r);n<r;)o[n]=e(i,i=t[++n]);return function(a){var s=Math.max(0,Math.min(r-1,Math.floor(a*=r)));return o[s](a-s)}}function hL(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const dL=Object.freeze(Object.defineProperty({__proto__:null,interpolate:ho,interpolateArray:qO,interpolateBasis:CA,interpolateBasisClosed:kA,interpolateCubehelix:uL,interpolateCubehelixLong:fL,interpolateDate:BA,interpolateDiscrete:ZO,interpolateHcl:lL,interpolateHclLong:cL,interpolateHsl:oL,interpolateHslLong:aL,interpolateHue:QO,interpolateLab:sL,interpolateNumber:yr,interpolateNumberArray:Wm,interpolateObject:FA,interpolateRgb:qm,interpolateRgbBasis:VO,interpolateRgbBasisClosed:jO,interpolateRound:cu,interpolateString:MA,interpolateTransformCss:JO,interpolateTransformSvg:eL,interpolateZoom:iL,piecewise:Xm,quantize:hL},Symbol.toStringTag,{value:"Module"}));function pL(e){return function(){return e}}function Km(e){return+e}var HA=[0,1];function bn(e){return e}function Jm(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:pL(isNaN(t)?NaN:.5)}function gL(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function mL(e,t,n){var r=e[0],i=e[1],o=t[0],a=t[1];return i<r?(r=Jm(i,r),o=n(a,o)):(r=Jm(r,i),o=n(o,a)),function(s){return o(r(s))}}function bL(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),o=new Array(r),a=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++a<r;)i[a]=Jm(e[a],e[a+1]),o[a]=n(t[a],t[a+1]);return function(s){var l=pi(e,s,1,r)-1;return o[l](i[l](s))}}function uu(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Md(){var e=HA,t=HA,n=ho,r,i,o,a=bn,s,l,c;function u(){var h=Math.min(e.length,t.length);return a!==bn&&(a=gL(e[0],e[h-1])),s=h>2?bL:mL,l=c=null,f}function f(h){return h==null||isNaN(h=+h)?o:(l||(l=s(e.map(r),t,n)))(r(a(h)))}return f.invert=function(h){return a(i((c||(c=s(t,e.map(r),yr)))(h)))},f.domain=function(h){return arguments.length?(e=Array.from(h,Km),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=cu,u()},f.clamp=function(h){return arguments.length?(a=h?!0:bn,u()):a!==bn},f.interpolate=function(h){return arguments.length?(n=h,u()):n},f.unknown=function(h){return arguments.length?(o=h,f):o},function(h,d){return r=h,i=d,u()}}function GA(){return Md()(bn,bn)}function VA(e,t,n,r){var i=ra(e,t,n),o;switch(r=Fs(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(o=DR(i,a))&&(r.precision=o),Wv(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=BR(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=RR(i))&&(r.precision=o-(r.type==="%")*2);break}}return Bt(r)}function Sa(e){var t=e.domain;return e.ticks=function(n){var r=t();return Cc(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return VA(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,o=r.length-1,a=r[i],s=r[o],l,c,u=10;for(s<a&&(c=a,a=s,s=c,c=i,i=o,o=c);u-- >0;){if(c=Ds(a,s,n),c===l)return r[i]=a,r[o]=s,t(r);if(c>0)a=Math.floor(a/c)*c,s=Math.ceil(s/c)*c;else if(c<0)a=Math.ceil(a*c)/c,s=Math.floor(s*c)/c;else break;l=c}return e},e}function Pd(){var e=GA();return e.copy=function(){return uu(e,Pd())},$r.apply(e,arguments),Sa(e)}function jA(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,Km),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return jA(e).unknown(t)},e=arguments.length?Array.from(e,Km):[0,1],Sa(n)}function qA(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],o=e[r],a;return o<i&&(a=n,n=r,r=a,a=i,i=o,o=a),e[n]=t.floor(i),e[r]=t.ceil(o),e}function WA(e){return Math.log(e)}function YA(e){return Math.exp(e)}function yL(e){return-Math.log(-e)}function wL(e){return-Math.exp(-e)}function vL(e){return isFinite(e)?+("1e"+e):e<0?0:e}function xL(e){return e===10?vL:e===Math.E?Math.exp:t=>Math.pow(e,t)}function AL(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 ZA(e){return(t,n)=>-e(-t,n)}function e1(e){const t=e(WA,YA),n=t.domain;let r=10,i,o;function a(){return i=AL(r),o=xL(r),n()[0]<0?(i=ZA(i),o=ZA(o),e(yL,wL)):e(WA,YA),t}return t.base=function(s){return arguments.length?(r=+s,a()):r},t.domain=function(s){return arguments.length?(n(s),a()):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 b=s==null?10:+s;let m=[];if(!(r%1)&&d-h<b){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/o(-h):p*o(h),!(g<c)){if(g>u)break;m.push(g)}}else for(;h<=d;++h)for(p=r-1;p>=1;--p)if(g=h>0?p/o(-h):p*o(h),!(g<c)){if(g>u)break;m.push(g)}m.length*2<b&&(m=Cc(c,u,b))}else m=Cc(h,d,Math.min(d-h,b)).map(o);return f?m.reverse():m},t.tickFormat=(s,l)=>{if(s==null&&(s=10),l==null&&(l=r===10?"s":","),typeof l!="function"&&(!(r%1)&&(l=Fs(l)).precision==null&&(l.trim=!0),l=Bt(l)),s===1/0)return l;const c=Math.max(1,r*s/t.ticks().length);return u=>{let f=u/o(Math.round(i(u)));return f*r<r-.5&&(f*=r),f<=c?l(u):""}},t.nice=()=>n(qA(n(),{floor:s=>o(Math.floor(i(s))),ceil:s=>o(Math.ceil(i(s)))})),t}function t1(){const e=e1(Md()).domain([1,10]);return e.copy=()=>uu(e,t1()).base(e.base()),$r.apply(e,arguments),e}function QA(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function XA(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function n1(e){var t=1,n=e(QA(t),XA(t));return n.constant=function(r){return arguments.length?e(QA(t=+r),XA(t)):t},Sa(n)}function KA(){var e=n1(Md());return e.copy=function(){return uu(e,KA()).constant(e.constant())},$r.apply(e,arguments)}function JA(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function EL(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function SL(e){return e<0?-e*e:e*e}function r1(e){var t=e(bn,bn),n=1;function r(){return n===1?e(bn,bn):n===.5?e(EL,SL):e(JA(n),JA(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},Sa(t)}function i1(){var e=r1(Md());return e.copy=function(){return uu(e,i1()).exponent(e.exponent())},$r.apply(e,arguments),e}function _L(){return i1.apply(null,arguments).exponent(.5)}function eE(){var e=[],t=[],n=[],r;function i(){var a=0,s=Math.max(1,t.length);for(n=new Array(s-1);++a<s;)n[a-1]=Tg(e,a/s);return o}function o(a){return a==null||isNaN(a=+a)?r:t[pi(n,a)]}return o.invertExtent=function(a){var s=t.indexOf(a);return s<0?[NaN,NaN]:[s>0?n[s-1]:e[0],s<n.length?n[s]:e[e.length-1]]},o.domain=function(a){if(!arguments.length)return e.slice();e=[];for(let s of a)s!=null&&!isNaN(s=+s)&&e.push(s);return e.sort(na),i()},o.range=function(a){return arguments.length?(t=Array.from(a),i()):t.slice()},o.unknown=function(a){return arguments.length?(r=a,o):r},o.quantiles=function(){return n.slice()},o.copy=function(){return eE().domain(e).range(t).unknown(r)},$r.apply(o,arguments)}function tE(){var e=0,t=1,n=1,r=[.5],i=[0,1],o;function a(l){return l!=null&&l<=l?i[pi(r,l,0,n)]:o}function s(){var l=-1;for(r=new Array(n);++l<n;)r[l]=((l+1)*t-(l-n)*e)/(n+1);return a}return a.domain=function(l){return arguments.length?([e,t]=l,e=+e,t=+t,s()):[e,t]},a.range=function(l){return arguments.length?(n=(i=Array.from(l)).length-1,s()):i.slice()},a.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]]},a.unknown=function(l){return arguments.length&&(o=l),a},a.thresholds=function(){return r.slice()},a.copy=function(){return tE().domain([e,t]).range(i).unknown(o)},$r.apply(Sa(a),arguments)}function nE(){var e=[.5],t=[0,1],n,r=1;function i(o){return o!=null&&o<=o?t[pi(e,o,0,r)]:n}return i.domain=function(o){return arguments.length?(e=Array.from(o),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(o){return arguments.length?(t=Array.from(o),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(o){var a=t.indexOf(o);return[e[a-1],e[a]]},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return nE().domain(e).range(t).unknown(n)},$r.apply(i,arguments)}function CL(e){return new Date(e)}function kL(e){return e instanceof Date?+e:+new Date(+e)}function o1(e,t,n,r,i,o,a,s,l,c){var u=GA(),f=u.invert,h=u.domain,d=c(".%L"),p=c(":%S"),g=c("%I:%M"),b=c("%I %p"),m=c("%a %d"),v=c("%b %d"),x=c("%B"),A=c("%Y");function S(E){return(l(E)<E?d:s(E)<E?p:a(E)<E?g:o(E)<E?b:r(E)<E?i(E)<E?m:v:n(E)<E?x:A)(E)}return u.invert=function(E){return new Date(f(E))},u.domain=function(E){return arguments.length?h(Array.from(E,kL)):h().map(CL)},u.ticks=function(E){var _=h();return e(_[0],_[_.length-1],E??10)},u.tickFormat=function(E,_){return _==null?S:c(_)},u.nice=function(E){var _=h();return(!E||typeof E.range!="function")&&(E=t(_[0],_[_.length-1],E??10)),E?h(qA(_,E)):u},u.copy=function(){return uu(u,o1(e,t,n,r,i,o,a,s,l,c))},u}function TL(){return $r.apply(o1(GR,VR,Or,Dc,Ic,eo,Wh,jh,wi,Lg).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function IL(){return $r.apply(o1($R,HR,Lr,Bc,Rc,ia,Yh,qh,wi,Ng).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Od(){var e=0,t=1,n,r,i,o,a=bn,s=!1,l;function c(f){return f==null||isNaN(f=+f)?l:a(i===0?.5:(f=(o(f)-n)*i,s?Math.max(0,Math.min(1,f)):f))}c.domain=function(f){return arguments.length?([e,t]=f,n=o(e=+e),r=o(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?(a=f,c):a};function u(f){return function(h){var d,p;return arguments.length?([d,p]=h,a=f(d,p),c):[a(0),a(1)]}}return c.range=u(ho),c.rangeRound=u(cu),c.unknown=function(f){return arguments.length?(l=f,c):l},function(f){return o=f,n=f(e),r=f(t),i=n===r?0:1/(r-n),c}}function po(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function a1(){var e=Sa(Od()(bn));return e.copy=function(){return po(e,a1())},co.apply(e,arguments)}function rE(){var e=e1(Od()).domain([1,10]);return e.copy=function(){return po(e,rE()).base(e.base())},co.apply(e,arguments)}function iE(){var e=n1(Od());return e.copy=function(){return po(e,iE()).constant(e.constant())},co.apply(e,arguments)}function s1(){var e=r1(Od());return e.copy=function(){return po(e,s1()).exponent(e.exponent())},co.apply(e,arguments)}function RL(){return s1.apply(null,arguments).exponent(.5)}function Ld(){var e=0,t=.5,n=1,r=1,i,o,a,s,l,c=bn,u,f=!1,h;function d(g){return isNaN(g=+g)?h:(g=.5+((g=+u(g))-o)*(r*g<r*o?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),o=u(t=+t),a=u(n=+n),s=i===o?0:.5/(o-i),l=o===a?0:.5/(a-o),r=o<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(b){var m,v,x;return arguments.length?([m,v,x]=b,c=Xm(g,[m,v,x]),d):[c(0),c(.5),c(1)]}}return d.range=p(ho),d.rangeRound=p(cu),d.unknown=function(g){return arguments.length?(h=g,d):h},function(g){return u=g,i=g(e),o=g(t),a=g(n),s=i===o?0:.5/(o-i),l=o===a?0:.5/(a-o),r=o<i?-1:1,d}}function oE(){var e=Sa(Ld()(bn));return e.copy=function(){return po(e,oE())},co.apply(e,arguments)}function aE(){var e=e1(Ld()).domain([.1,1,10]);return e.copy=function(){return po(e,aE()).base(e.base())},co.apply(e,arguments)}function sE(){var e=n1(Ld());return e.copy=function(){return po(e,sE()).constant(e.constant())},co.apply(e,arguments)}function l1(){var e=r1(Ld());return e.copy=function(){return po(e,l1()).exponent(e.exponent())},co.apply(e,arguments)}function DL(){return l1.apply(null,arguments).exponent(.5)}function c1(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const BL="identity",Qs="linear",go="log",fu="pow",hu="sqrt",Nd="symlog",lE="time",cE="utc",Vr="sequential",Xs="diverging",u1="quantile",uE="quantize",fE="threshold",f1="ordinal",h1="point",hE="band",d1="bin-ordinal",Ct="continuous",du="discrete",pu="discretizing",jn="interpolating",dE="temporal";function FL(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 ML(e){return function(t){const n=e.range();let r=t[0],i=t[1],o=-1,a,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&&(o<0&&(o=l),a=l);if(!(o<0))return r=e.invertExtent(n[o]),i=e.invertExtent(n[a]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function p1(){const e=Fm().unknown(void 0),t=e.domain,n=e.range;let r=[0,1],i,o,a=!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=c1(f,s,l);let g=r[h-0];i=(d-g)/(p||1),a&&(i=Math.floor(i)),g+=(d-g-i*(f-s))*c,o=i*(1-s),a&&(g=Math.round(g),o=Math.round(o));const b=Ji(f).map(m=>g+i*m);return n(h?b.reverse():b)}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]],a=!0,u()},e.bandwidth=function(){return o},e.step=function(){return i},e.round=function(f){return arguments.length?(a=!!f,u()):a},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],b=+f[1],m,v,x;if(!(g!==g||b!==b)&&(b<g&&(x=g,g=b,b=x),!(b<d[0]||g>r[1-h])))return m=Math.max(0,pi(d,g)-1),v=g===b?m:pi(d,b)-1,g-d[m]>o+1e-10&&++m,h&&(x=m,m=p-v,v=p-x),m>v?void 0:t().slice(m,v+1)},e.invert=function(f){const h=e.invertRange([f,f]);return h&&h[0]},e.copy=function(){return p1().domain(t()).range(r).round(a).paddingInner(s).paddingOuter(l).align(c)},u()}function pE(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return pE(t())},e}function PL(){return pE(p1().paddingInner(1))}var OL=Array.prototype.map;function LL(e){return OL.call(e,xc)}const NL=Array.prototype.slice;function gE(){let e=[],t=[];function n(r){return r==null||r!==r?void 0:t[(pi(e,r)-1)%t.length]}return n.domain=function(r){return arguments.length?(e=LL(r),n):e.slice()},n.range=function(r){return arguments.length?(t=NL.call(r),n):t.slice()},n.tickFormat=function(r,i){return VA(e[0],pr(e),r??10,i)},n.copy=function(){return gE().domain(n.domain()).range(n.range())},n}const zd=new Map,zL=Symbol("vega_scale");function UL(e){return e[zL]=!0,e}function $L(e,t,n){const r=function(){const o=t();return o.invertRange||(o.invertRange=o.invert?FL(o):o.invertExtent?ML(o):void 0),o.type=e,UL(o)};return r.metadata=zh(wg(n)),r}function Ve(e,t,n){return arguments.length>1?(zd.set(e,$L(e,t,n)),this):HL(e)?zd.get(e):void 0}Ve(BL,jA),Ve(Qs,Pd,Ct),Ve(go,t1,[Ct,go]),Ve(fu,i1,Ct),Ve(hu,_L,Ct),Ve(Nd,KA,Ct),Ve(lE,TL,[Ct,dE]),Ve(cE,IL,[Ct,dE]),Ve(Vr,a1,[Ct,jn]),Ve(`${Vr}-${Qs}`,a1,[Ct,jn]),Ve(`${Vr}-${go}`,rE,[Ct,jn,go]),Ve(`${Vr}-${fu}`,s1,[Ct,jn]),Ve(`${Vr}-${hu}`,RL,[Ct,jn]),Ve(`${Vr}-${Nd}`,iE,[Ct,jn]),Ve(`${Xs}-${Qs}`,oE,[Ct,jn]),Ve(`${Xs}-${go}`,aE,[Ct,jn,go]),Ve(`${Xs}-${fu}`,l1,[Ct,jn]),Ve(`${Xs}-${hu}`,DL,[Ct,jn]),Ve(`${Xs}-${Nd}`,sE,[Ct,jn]),Ve(u1,eE,[pu,u1]),Ve(uE,tE,pu),Ve(fE,nE,pu),Ve(d1,gE,[du,pu]),Ve(f1,Fm,du),Ve(hE,p1,du),Ve(h1,PL,du);function HL(e){return zd.has(e)}function gu(e,t){const n=zd.get(e);return n&&n.metadata[t]}function Ot(e){return gu(e,Ct)}function Si(e){return gu(e,du)}function mo(e){return gu(e,pu)}function mE(e){return gu(e,go)}function Ud(e){return gu(e,jn)}function GL(e,t){const n=t[0],r=pr(t)-n;return function(i){return e(n+i*r)}}function $d(e,t,n){return Xm(bE(t||"rgb",n),e)}function VL(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}function bE(e,t){const n=dL[jL(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function jL(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const qL={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"},WL={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 yE(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 wE(e,t){for(const n in e)g1(n,t(e[n]))}const vE={};wE(WL,yE),wE(qL,e=>$d(yE(e)));function g1(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(vE[e]=t,this):vE[e]}function je(e,t=e){if(/^[A-Za-z0-9_]+$/.test(e)){const n=new Function("datum",`return datum[${JSON.stringify(e)}]`);return Qe(n,[e],t)}else return Fh(e)}const YL="RawCode",ZL="Literal",QL="Property",XL="Identifier",KL="ArrayExpression",JL="BinaryExpression",eN="CallExpression",tN="ConditionalExpression",nN="LogicalExpression",rN="MemberExpression",iN="ObjectExpression",oN="UnaryExpression";function wr(e){this.type=e}wr.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=aN(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};function aN(e){switch(e.type){case KL:return e.elements;case JL:case nN:return[e.left,e.right];case eN:return[e.callee].concat(e.arguments);case tN:return[e.test,e.consequent,e.alternate];case rN:return[e.object,e.property];case iN:return e.properties;case QL:return[e.key,e.value];case oN:return[e.argument];case XL:case ZL:case YL:default:return[]}}var jr,ue,j,rn,We,Hd=1,mu=2,_a=3,bo=4,Gd=5,Ca=6,yn=7,bu=8,sN=9;jr={},jr[Hd]="Boolean",jr[mu]="<end>",jr[_a]="Identifier",jr[bo]="Keyword",jr[Gd]="Null",jr[Ca]="Numeric",jr[yn]="Punctuator",jr[bu]="String",jr[sN]="RegularExpression";var lN="ArrayExpression",cN="BinaryExpression",uN="CallExpression",fN="ConditionalExpression",xE="Identifier",hN="Literal",dN="LogicalExpression",pN="MemberExpression",gN="ObjectExpression",mN="Property",bN="UnaryExpression",Lt="Unexpected token %0",yN="Unexpected number",wN="Unexpected string",vN="Unexpected identifier",xN="Unexpected reserved word",AN="Unexpected end of input",m1="Invalid regular expression",b1="Invalid regular expression: missing /",AE="Octal literals are not allowed in strict mode.",EN="Duplicate data property in object literal not allowed in strict mode",Vt="ILLEGAL",yu="Disabled.",SN=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]"),_N=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 Vd(e,t){if(!e)throw new Error("ASSERT: "+t)}function _i(e){return e>=48&&e<=57}function y1(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function wu(e){return"01234567".indexOf(e)>=0}function CN(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 vu(e){return e===10||e===13||e===8232||e===8233}function xu(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&SN.test(String.fromCharCode(e))}function jd(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&_N.test(String.fromCharCode(e))}const kN={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 EE(){for(;j<rn;){const e=ue.charCodeAt(j);if(CN(e)||vu(e))++j;else break}}function w1(e){var t,n,r,i=0;for(n=e==="u"?4:2,t=0;t<n;++t)j<rn&&y1(ue[j])?(r=ue[j++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):Le({},Lt,Vt);return String.fromCharCode(i)}function TN(){var e,t,n,r;for(e=ue[j],t=0,e==="}"&&Le({},Lt,Vt);j<rn&&(e=ue[j++],!!y1(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&Le({},Lt,Vt),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function SE(){var e,t;for(e=ue.charCodeAt(j++),t=String.fromCharCode(e),e===92&&(ue.charCodeAt(j)!==117&&Le({},Lt,Vt),++j,e=w1("u"),(!e||e==="\\"||!xu(e.charCodeAt(0)))&&Le({},Lt,Vt),t=e);j<rn&&(e=ue.charCodeAt(j),!!jd(e));)++j,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),ue.charCodeAt(j)!==117&&Le({},Lt,Vt),++j,e=w1("u"),(!e||e==="\\"||!jd(e.charCodeAt(0)))&&Le({},Lt,Vt),t+=e);return t}function IN(){var e,t;for(e=j++;j<rn;){if(t=ue.charCodeAt(j),t===92)return j=e,SE();if(jd(t))++j;else break}return ue.slice(e,j)}function RN(){var e,t,n;return e=j,t=ue.charCodeAt(j)===92?SE():IN(),t.length===1?n=_a:kN.hasOwnProperty(t)?n=bo:t==="null"?n=Gd:t==="true"||t==="false"?n=Hd:n=_a,{type:n,value:t,start:e,end:j}}function v1(){var e=j,t=ue.charCodeAt(j),n,r=ue[j],i,o,a;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++j,{type:yn,value:String.fromCharCode(t),start:e,end:j};default:if(n=ue.charCodeAt(j+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 j+=2,{type:yn,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:j};case 33:case 61:return j+=2,ue.charCodeAt(j)===61&&++j,{type:yn,value:ue.slice(e,j),start:e,end:j}}}if(a=ue.substr(j,4),a===">>>=")return j+=4,{type:yn,value:a,start:e,end:j};if(o=a.substr(0,3),o===">>>"||o==="<<="||o===">>=")return j+=3,{type:yn,value:o,start:e,end:j};if(i=o.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return j+=2,{type:yn,value:i,start:e,end:j};if(i==="//"&&Le({},Lt,Vt),"<>=!+-*%&|^/".indexOf(r)>=0)return++j,{type:yn,value:r,start:e,end:j};Le({},Lt,Vt)}function DN(e){let t="";for(;j<rn&&y1(ue[j]);)t+=ue[j++];return t.length===0&&Le({},Lt,Vt),xu(ue.charCodeAt(j))&&Le({},Lt,Vt),{type:Ca,value:parseInt("0x"+t,16),start:e,end:j}}function BN(e){let t="0"+ue[j++];for(;j<rn&&wu(ue[j]);)t+=ue[j++];return(xu(ue.charCodeAt(j))||_i(ue.charCodeAt(j)))&&Le({},Lt,Vt),{type:Ca,value:parseInt(t,8),octal:!0,start:e,end:j}}function _E(){var e,t,n;if(n=ue[j],Vd(_i(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=j,e="",n!=="."){if(e=ue[j++],n=ue[j],e==="0"){if(n==="x"||n==="X")return++j,DN(t);if(wu(n))return BN(t);n&&_i(n.charCodeAt(0))&&Le({},Lt,Vt)}for(;_i(ue.charCodeAt(j));)e+=ue[j++];n=ue[j]}if(n==="."){for(e+=ue[j++];_i(ue.charCodeAt(j));)e+=ue[j++];n=ue[j]}if(n==="e"||n==="E")if(e+=ue[j++],n=ue[j],(n==="+"||n==="-")&&(e+=ue[j++]),_i(ue.charCodeAt(j)))for(;_i(ue.charCodeAt(j));)e+=ue[j++];else Le({},Lt,Vt);return xu(ue.charCodeAt(j))&&Le({},Lt,Vt),{type:Ca,value:parseFloat(e),start:t,end:j}}function FN(){var e="",t,n,r,i,o=!1;for(t=ue[j],Vd(t==="'"||t==='"',"String literal must starts with a quote"),n=j,++j;j<rn;)if(r=ue[j++],r===t){t="";break}else if(r==="\\")if(r=ue[j++],!r||!vu(r.charCodeAt(0)))switch(r){case"u":case"x":ue[j]==="{"?(++j,e+=TN()):e+=w1(r);break;case"n":e+=`
|
413
413
|
`;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:wu(r)?(i="01234567".indexOf(r),i!==0&&(o=!0),j<rn&&wu(ue[j])&&(o=!0,i=i*8+"01234567".indexOf(ue[j++]),"0123".indexOf(r)>=0&&j<rn&&wu(ue[j])&&(i=i*8+"01234567".indexOf(ue[j++]))),e+=String.fromCharCode(i)):e+=r;break}else r==="\r"&&ue[j]===`
|
414
|
-
`&&++j;else{if(vu(r.charCodeAt(0)))break;e+=r}return t!==""&&Le({},Lt,Vt),{type:bu,value:e,octal:o,start:n,end:j}}function MN(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";Le({},m1)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{Le({},m1)}try{return new RegExp(e,t)}catch{return null}}function PN(){var e,t,n,r,i;for(e=ue[j],Vd(e==="/","Regular expression literal must start with a slash"),t=ue[j++],n=!1,r=!1;j<rn;)if(e=ue[j++],t+=e,e==="\\")e=ue[j++],vu(e.charCodeAt(0))&&Le({},b1),t+=e;else if(vu(e.charCodeAt(0)))Le({},b1);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||Le({},b1),i=t.substr(1,t.length-2),{value:i,literal:t}}function ON(){var e,t,n;for(t="",n="";j<rn&&(e=ue[j],!!jd(e.charCodeAt(0)));)++j,e==="\\"&&j<rn?Le({},Lt,Vt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&Le({},m1,n),{value:n,literal:t}}function LN(){var e,t,n,r;return Ye=null,EE(),e=j,t=PN(),n=ON(),r=MN(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:j}}function NN(e){return e.type===_a||e.type===bo||e.type===Hd||e.type===Gd}function CE(){if(EE(),j>=rn)return{type:mu,start:j,end:j};const e=ue.charCodeAt(j);return xu(e)?RN():e===40||e===41||e===59?v1():e===39||e===34?FN():e===46?_i(ue.charCodeAt(j+1))?_E():v1():_i(e)?_E():v1()}function wn(){const e=Ye;return j=e.end,Ye=CE(),j=e.end,e}function kE(){const e=j;Ye=CE(),j=e}function zN(e){const t=new wr(lN);return t.elements=e,t}function TE(e,t,n){const r=new wr(e==="||"||e==="&&"?dN:cN);return r.operator=e,r.left=t,r.right=n,r}function UN(e,t){const n=new wr(uN);return n.callee=e,n.arguments=t,n}function $N(e,t,n){const r=new wr(fN);return r.test=e,r.consequent=t,r.alternate=n,r}function x1(e){const t=new wr(xE);return t.name=e,t}function Au(e){const t=new wr(hN);return t.value=e.value,t.raw=ue.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function IE(e,t,n){const r=new wr(pN);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function HN(e){const t=new wr(gN);return t.properties=e,t}function RE(e,t,n){const r=new wr(mN);return r.key=t,r.value=n,r.kind=e,r}function GN(e,t){const n=new wr(bN);return n.operator=e,n.argument=t,n.prefix=!0,n}function Le(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,(o,a)=>(Vd(a<r.length,"Message reference must be in range"),r[a]));throw n=new Error(i),n.index=j,n.description=i,n}function qd(e){e.type===mu&&Le(e,AN),e.type===Ca&&Le(e,yN),e.type===bu&&Le(e,wN),e.type===_a&&Le(e,vN),e.type===bo&&Le(e,xN),Le(e,Lt,e.value)}function on(e){const t=wn();(t.type!==yn||t.value!==e)&&qd(t)}function ct(e){return Ye.type===yn&&Ye.value===e}function A1(e){return Ye.type===bo&&Ye.value===e}function VN(){const e=[];for(j=Ye.start,on("[");!ct("]");)ct(",")?(wn(),e.push(null)):(e.push(ka()),ct("]")||on(","));return wn(),zN(e)}function DE(){j=Ye.start;const e=wn();return e.type===bu||e.type===Ca?(e.octal&&Le(e,AE),Au(e)):x1(e.value)}function jN(){var e,t,n,r;if(j=Ye.start,e=Ye,e.type===_a)return n=DE(),on(":"),r=ka(),RE("init",n,r);if(e.type===mu||e.type===yn)qd(e);else return t=DE(),on(":"),r=ka(),RE("init",t,r)}function qN(){var e=[],t,n,r,i={},o=String;for(j=Ye.start,on("{");!ct("}");)t=jN(),t.key.type===xE?n=t.key.name:n=o(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?Le({},EN):i[r]=!0,e.push(t),ct("}")||on(",");return on("}"),HN(e)}function WN(){on("(");const e=E1();return on(")"),e}const YN={if:1};function ZN(){var e,t,n;if(ct("("))return WN();if(ct("["))return VN();if(ct("{"))return qN();if(e=Ye.type,j=Ye.start,e===_a||YN[Ye.value])n=x1(wn().value);else if(e===bu||e===Ca)Ye.octal&&Le(Ye,AE),n=Au(wn());else{if(e===bo)throw new Error(yu);e===Hd?(t=wn(),t.value=t.value==="true",n=Au(t)):e===Gd?(t=wn(),t.value=null,n=Au(t)):ct("/")||ct("/=")?(n=Au(LN()),kE()):qd(wn())}return n}function QN(){const e=[];if(on("("),!ct(")"))for(;j<rn&&(e.push(ka()),!ct(")"));)on(",");return on(")"),e}function XN(){j=Ye.start;const e=wn();return NN(e)||qd(e),x1(e.value)}function KN(){return on("."),XN()}function JN(){on("[");const e=E1();return on("]"),e}function ez(){var e,t,n;for(e=ZN();;)if(ct("."))n=KN(),e=IE(".",e,n);else if(ct("("))t=QN(),e=UN(e,t);else if(ct("["))n=JN(),e=IE("[",e,n);else break;return e}function BE(){const e=ez();if(Ye.type===yn&&(ct("++")||ct("--")))throw new Error(yu);return e}function Wd(){var e,t;if(Ye.type!==yn&&Ye.type!==bo)t=BE();else{if(ct("++")||ct("--"))throw new Error(yu);if(ct("+")||ct("-")||ct("~")||ct("!"))e=wn(),t=Wd(),t=GN(e.value,t);else{if(A1("delete")||A1("void")||A1("typeof"))throw new Error(yu);t=BE()}}return t}function FE(e){let t=0;if(e.type!==yn&&e.type!==bo)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 tz(){var e,t,n,r,i,o,a,s,l,c;if(e=Ye,l=Wd(),r=Ye,i=FE(r),i===0)return l;for(r.prec=i,wn(),t=[e,Ye],a=Wd(),o=[l,r,a];(i=FE(Ye))>0;){for(;o.length>2&&i<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,l=o.pop(),t.pop(),n=TE(s,l,a),o.push(n);r=wn(),r.prec=i,o.push(r),t.push(Ye),n=Wd(),o.push(n)}for(c=o.length-1,n=o[c],t.pop();c>1;)t.pop(),n=TE(o[c-1].value,o[c-2],n),c-=2;return n}function ka(){var e,t,n;return e=tz(),ct("?")&&(wn(),t=ka(),on(":"),n=ka(),e=$N(e,t,n)),e}function E1(){const e=ka();if(ct(","))throw new Error(yu);return e}function nz(e){ue=e,j=0,rn=ue.length,Ye=null,kE();const t=E1();if(Ye.type!==mu)throw new Error("Unexpect token after expression.");return t}var rz={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 ME(e){function t(a,s,l,c){let u=e(s[0]);return l&&(u=l+"("+u+")",l.lastIndexOf("new ",0)===0&&(u="("+u+")")),u+"."+a+(c<0?"":c===0?"()":"("+s.slice(1).map(e).join(",")+")")}function n(a,s,l){return c=>t(a,c,s,l)}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",hypot:"Math.hypot",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(a){a.length<3&&yt("Missing arguments to clamp function."),a.length>3&&yt("Too many arguments to clamp function.");const s=a.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:o,test:n("test",o),if:function(a){a.length<3&&yt("Missing arguments to if function."),a.length>3&&yt("Too many arguments to if function.");const s=a.map(e);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function iz(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function oz(e){e=e||{};const t=e.allowed?zh(e.allowed):{},n=e.forbidden?zh(e.forbidden):{},r=e.constants||rz,i=(e.functions||ME)(f),o=e.globalvar,a=e.fieldvar,s=Tn(o)?o:p=>`${o}["${p}"]`;let l={},c={},u=0;function f(p){if(We(p))return p;const g=h[p.type];return g==null&&yt("Unsupported type: "+p.type),g(p)}const h={Literal:p=>p.raw,Identifier:p=>{const g=p.name;return u>0?g:Is(n,g)?yt("Illegal identifier: "+g):Is(r,g)?r[g]:Is(t,g)?g:(l[g]=1,s(g))},MemberExpression:p=>{const g=!p.computed,b=f(p.object);g&&(u+=1);const m=f(p.property);return b===a&&(c[iz(m)]=1),g&&(u-=1),b+(g?"."+m:"["+m+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&yt("Illegal callee type: "+p.callee.type);const g=p.callee.name,b=p.arguments,m=Is(i,g)&&i[g];return m||yt("Unrecognized function: "+g),Tn(m)?m(b):m+"("+b.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 S1(e,t,n){return n=(n-e)/(t-e),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}function Ci(e,t=0,n=1){return Math.max(t,Math.min(n,e))}function az(e,t,n){return Ci((n-e)/(t-e),0,1)}const qr=1,yo=2,_1=4;class Eu{constructor(t){J(this,ms);Kt(this,"stats",{count:0,first:null});Kt(this,"paramMediatorProvider",null);this.paramMediatorProvider=t,this.children=[],this.parent=void 0,this.completed=!1}get behavior(){return 0}get label(){return`(${this.constructor.name})`}reset(){this.completed=!1;for(const t of this.children)t.reset();this.stats.count=0,this.stats.first=null}initialize(){}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),Q(this,ms,Th).call(this),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){var n;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,Q(n=this.parent,ms,Th).call(n),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,Q(this,ms,Th).call(this);else throw new Error("Trying to remove an unknown child node!")}excise(){var t;if(this.isRoot())throw new Error("Cannot excise root node!");if(this.isTerminal())this.parent.removeChild(this);else if(this.children.length==1){const n=this.children[0];n.setParent(this.parent),this.parent.children[this.parent.children.indexOf(this)]=n,Q(t=this.parent,ms,Th).call(t),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){const n=this.children.map(r=>r.subtreeToString(t+1)).join("");return`${" ".repeat(t*2)}* ${this.label}${("identifier"in this&&this.identifier?": "+this.identifier:"")??""}
|
414
|
+
`&&++j;else{if(vu(r.charCodeAt(0)))break;e+=r}return t!==""&&Le({},Lt,Vt),{type:bu,value:e,octal:o,start:n,end:j}}function MN(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";Le({},m1)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{Le({},m1)}try{return new RegExp(e,t)}catch{return null}}function PN(){var e,t,n,r,i;for(e=ue[j],Vd(e==="/","Regular expression literal must start with a slash"),t=ue[j++],n=!1,r=!1;j<rn;)if(e=ue[j++],t+=e,e==="\\")e=ue[j++],vu(e.charCodeAt(0))&&Le({},b1),t+=e;else if(vu(e.charCodeAt(0)))Le({},b1);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||Le({},b1),i=t.substr(1,t.length-2),{value:i,literal:t}}function ON(){var e,t,n;for(t="",n="";j<rn&&(e=ue[j],!!jd(e.charCodeAt(0)));)++j,e==="\\"&&j<rn?Le({},Lt,Vt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&Le({},m1,n),{value:n,literal:t}}function LN(){var e,t,n,r;return We=null,EE(),e=j,t=PN(),n=ON(),r=MN(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:j}}function NN(e){return e.type===_a||e.type===bo||e.type===Hd||e.type===Gd}function CE(){if(EE(),j>=rn)return{type:mu,start:j,end:j};const e=ue.charCodeAt(j);return xu(e)?RN():e===40||e===41||e===59?v1():e===39||e===34?FN():e===46?_i(ue.charCodeAt(j+1))?_E():v1():_i(e)?_E():v1()}function wn(){const e=We;return j=e.end,We=CE(),j=e.end,e}function kE(){const e=j;We=CE(),j=e}function zN(e){const t=new wr(lN);return t.elements=e,t}function TE(e,t,n){const r=new wr(e==="||"||e==="&&"?dN:cN);return r.operator=e,r.left=t,r.right=n,r}function UN(e,t){const n=new wr(uN);return n.callee=e,n.arguments=t,n}function $N(e,t,n){const r=new wr(fN);return r.test=e,r.consequent=t,r.alternate=n,r}function x1(e){const t=new wr(xE);return t.name=e,t}function Au(e){const t=new wr(hN);return t.value=e.value,t.raw=ue.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function IE(e,t,n){const r=new wr(pN);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function HN(e){const t=new wr(gN);return t.properties=e,t}function RE(e,t,n){const r=new wr(mN);return r.key=t,r.value=n,r.kind=e,r}function GN(e,t){const n=new wr(bN);return n.operator=e,n.argument=t,n.prefix=!0,n}function Le(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,(o,a)=>(Vd(a<r.length,"Message reference must be in range"),r[a]));throw n=new Error(i),n.index=j,n.description=i,n}function qd(e){e.type===mu&&Le(e,AN),e.type===Ca&&Le(e,yN),e.type===bu&&Le(e,wN),e.type===_a&&Le(e,vN),e.type===bo&&Le(e,xN),Le(e,Lt,e.value)}function on(e){const t=wn();(t.type!==yn||t.value!==e)&&qd(t)}function ct(e){return We.type===yn&&We.value===e}function A1(e){return We.type===bo&&We.value===e}function VN(){const e=[];for(j=We.start,on("[");!ct("]");)ct(",")?(wn(),e.push(null)):(e.push(ka()),ct("]")||on(","));return wn(),zN(e)}function DE(){j=We.start;const e=wn();return e.type===bu||e.type===Ca?(e.octal&&Le(e,AE),Au(e)):x1(e.value)}function jN(){var e,t,n,r;if(j=We.start,e=We,e.type===_a)return n=DE(),on(":"),r=ka(),RE("init",n,r);if(e.type===mu||e.type===yn)qd(e);else return t=DE(),on(":"),r=ka(),RE("init",t,r)}function qN(){var e=[],t,n,r,i={},o=String;for(j=We.start,on("{");!ct("}");)t=jN(),t.key.type===xE?n=t.key.name:n=o(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?Le({},EN):i[r]=!0,e.push(t),ct("}")||on(",");return on("}"),HN(e)}function WN(){on("(");const e=E1();return on(")"),e}const YN={if:1};function ZN(){var e,t,n;if(ct("("))return WN();if(ct("["))return VN();if(ct("{"))return qN();if(e=We.type,j=We.start,e===_a||YN[We.value])n=x1(wn().value);else if(e===bu||e===Ca)We.octal&&Le(We,AE),n=Au(wn());else{if(e===bo)throw new Error(yu);e===Hd?(t=wn(),t.value=t.value==="true",n=Au(t)):e===Gd?(t=wn(),t.value=null,n=Au(t)):ct("/")||ct("/=")?(n=Au(LN()),kE()):qd(wn())}return n}function QN(){const e=[];if(on("("),!ct(")"))for(;j<rn&&(e.push(ka()),!ct(")"));)on(",");return on(")"),e}function XN(){j=We.start;const e=wn();return NN(e)||qd(e),x1(e.value)}function KN(){return on("."),XN()}function JN(){on("[");const e=E1();return on("]"),e}function ez(){var e,t,n;for(e=ZN();;)if(ct("."))n=KN(),e=IE(".",e,n);else if(ct("("))t=QN(),e=UN(e,t);else if(ct("["))n=JN(),e=IE("[",e,n);else break;return e}function BE(){const e=ez();if(We.type===yn&&(ct("++")||ct("--")))throw new Error(yu);return e}function Wd(){var e,t;if(We.type!==yn&&We.type!==bo)t=BE();else{if(ct("++")||ct("--"))throw new Error(yu);if(ct("+")||ct("-")||ct("~")||ct("!"))e=wn(),t=Wd(),t=GN(e.value,t);else{if(A1("delete")||A1("void")||A1("typeof"))throw new Error(yu);t=BE()}}return t}function FE(e){let t=0;if(e.type!==yn&&e.type!==bo)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 tz(){var e,t,n,r,i,o,a,s,l,c;if(e=We,l=Wd(),r=We,i=FE(r),i===0)return l;for(r.prec=i,wn(),t=[e,We],a=Wd(),o=[l,r,a];(i=FE(We))>0;){for(;o.length>2&&i<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,l=o.pop(),t.pop(),n=TE(s,l,a),o.push(n);r=wn(),r.prec=i,o.push(r),t.push(We),n=Wd(),o.push(n)}for(c=o.length-1,n=o[c],t.pop();c>1;)t.pop(),n=TE(o[c-1].value,o[c-2],n),c-=2;return n}function ka(){var e,t,n;return e=tz(),ct("?")&&(wn(),t=ka(),on(":"),n=ka(),e=$N(e,t,n)),e}function E1(){const e=ka();if(ct(","))throw new Error(yu);return e}function nz(e){ue=e,j=0,rn=ue.length,We=null,kE();const t=E1();if(We.type!==mu)throw new Error("Unexpect token after expression.");return t}var rz={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 ME(e){function t(a,s,l,c){let u=e(s[0]);return l&&(u=l+"("+u+")",l.lastIndexOf("new ",0)===0&&(u="("+u+")")),u+"."+a+(c<0?"":c===0?"()":"("+s.slice(1).map(e).join(",")+")")}function n(a,s,l){return c=>t(a,c,s,l)}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",hypot:"Math.hypot",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(a){a.length<3&&yt("Missing arguments to clamp function."),a.length>3&&yt("Too many arguments to clamp function.");const s=a.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:o,test:n("test",o),if:function(a){a.length<3&&yt("Missing arguments to if function."),a.length>3&&yt("Too many arguments to if function.");const s=a.map(e);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function iz(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function oz(e){e=e||{};const t=e.allowed?zh(e.allowed):{},n=e.forbidden?zh(e.forbidden):{},r=e.constants||rz,i=(e.functions||ME)(f),o=e.globalvar,a=e.fieldvar,s=Tn(o)?o:p=>`${o}["${p}"]`;let l={},c={},u=0;function f(p){if(Xe(p))return p;const g=h[p.type];return g==null&&yt("Unsupported type: "+p.type),g(p)}const h={Literal:p=>p.raw,Identifier:p=>{const g=p.name;return u>0?g:Is(n,g)?yt("Illegal identifier: "+g):Is(r,g)?r[g]:Is(t,g)?g:(l[g]=1,s(g))},MemberExpression:p=>{const g=!p.computed,b=f(p.object);g&&(u+=1);const m=f(p.property);return b===a&&(c[iz(m)]=1),g&&(u-=1),b+(g?"."+m:"["+m+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&yt("Illegal callee type: "+p.callee.type);const g=p.callee.name,b=p.arguments,m=Is(i,g)&&i[g];return m||yt("Unrecognized function: "+g),Tn(m)?m(b):m+"("+b.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 S1(e,t,n){return n=(n-e)/(t-e),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}function Ci(e,t=0,n=1){return Math.max(t,Math.min(n,e))}function az(e,t,n){return Ci((n-e)/(t-e),0,1)}const qr=1,yo=2,_1=4;class Eu{constructor(t){J(this,ms);Kt(this,"stats",{count:0,first:null});Kt(this,"paramMediatorProvider",null);this.paramMediatorProvider=t,this.children=[],this.parent=void 0,this.completed=!1}get behavior(){return 0}get label(){return`(${this.constructor.name})`}reset(){this.completed=!1;for(const t of this.children)t.reset();this.stats.count=0,this.stats.first=null}initialize(){}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),Q(this,ms,Th).call(this),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){var n;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,Q(n=this.parent,ms,Th).call(n),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,Q(this,ms,Th).call(this);else throw new Error("Trying to remove an unknown child node!")}excise(){var t;if(this.isRoot())throw new Error("Cannot excise root node!");if(this.isTerminal())this.parent.removeChild(this);else if(this.children.length==1){const n=this.children[0];n.setParent(this.parent),this.parent.children[this.parent.children.indexOf(this)]=n,Q(t=this.parent,ms,Th).call(t),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){const n=this.children.map(r=>r.subtreeToString(t+1)).join("");return`${" ".repeat(t*2)}* ${this.label}${("identifier"in this&&this.identifier?": "+this.identifier:"")??""}
|
415
415
|
${n}`}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)}get paramMediator(){if(this.paramMediatorProvider)return this.paramMediatorProvider.paramMediator;if(!this.parent)throw new Error("Cannot find paramMediator!");return this.parent.paramMediator}repropagate(){if(this.parent)this.parent.repropagate();else throw new Error("Cannot repropagate data, no FlowNode with stored data found!")}_propagate(t){}}ms=new WeakSet,Th=function(){this._propagate=Function("children","stats",Ji(this.children.length).map(t=>`const child${t} = children[${t}];`).join(`
|
416
416
|
`)+`return function propagate(datum) {
|
417
417
|
if (stats.count === 0) {
|
@@ -420,12 +420,12 @@ ${n}`}handle(t){this._propagate(t)}complete(){this.completed=!0;for(const t of t
|
|
420
420
|
stats.count++;
|
421
421
|
${Ji(this.children.length).map(t=>`child${t}.handle(datum);`).join(`
|
422
422
|
`)}
|
423
|
-
};`)(this.children,this.stats)};function PE(e){return e.type=="file"}function sz(e){return e.type=="facet"}class kt extends Eu{constructor(n,r){super(r);J(this,nh);se(this,nh,n.type)}get label(){return B(this,nh)}}nh=new WeakMap;const qn="_uniqueId",OE=1e4,LE=[null];class C1 extends kt{get behavior(){return yo}constructor(t){super(t),this.params=t,this.as=t.as??qn,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%OE==0&&(this._id=this._getBlock()*OE),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const t=LE.length;return LE[t]=this,this._blocks.push(t),this._usedBlocks++,t}}function NE(e){return{type:"single",datum:e,uniqueId:e==null?void 0:e[qn]}}function zE(e){return e??(e=[]),{type:"multi",data:new Map(e.map(t=>[t[qn],t]))}}function lz(e,{add:t,remove:n,toggle:r}){const i=e.data;for(const o of t??[])i.set(o[qn],o);for(const o of n??[])i.delete(o[qn]);for(const o of r??[]){const a=o[qn];i.has(a)?i.delete(a):i.set(a,o)}return{type:"multi",data:i}}function cz(e,t,n=!0){if(!e||!t)return!1;if($E(e))return e.uniqueId==null?n:e.uniqueId===t[qn];if(k1(e))return e.data.size==0?n:e.data.has(t[qn]);throw new Error("Not a selection: "+JSON.stringify(e))}function UE(e){return`selectionTest(${Zd(e.param)}, datum, ${!!(e.empty??!0)})`}function $E(e){return e.type==="single"}function k1(e){return e.type==="multi"}function
|
423
|
+
};`)(this.children,this.stats)};function PE(e){return e.type=="file"}function sz(e){return e.type=="facet"}class kt extends Eu{constructor(n,r){super(r);J(this,nh);se(this,nh,n.type)}get label(){return B(this,nh)}}nh=new WeakMap;const qn="_uniqueId",OE=1e4,LE=[null];class C1 extends kt{get behavior(){return yo}constructor(t){super(t),this.params=t,this.as=t.as??qn,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%OE==0&&(this._id=this._getBlock()*OE),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const t=LE.length;return LE[t]=this,this._blocks.push(t),this._usedBlocks++,t}}function NE(e){return{type:"single",datum:e,uniqueId:e==null?void 0:e[qn]}}function zE(e){return e??(e=[]),{type:"multi",data:new Map(e.map(t=>[t[qn],t]))}}function lz(e,{add:t,remove:n,toggle:r}){const i=e.data;for(const o of t??[])i.set(o[qn],o);for(const o of n??[])i.delete(o[qn]);for(const o of r??[]){const a=o[qn];i.has(a)?i.delete(a):i.set(a,o)}return{type:"multi",data:i}}function cz(e,t,n=!0){if(!e||!t)return!1;if($E(e))return e.uniqueId==null?n:e.uniqueId===t[qn];if(k1(e))return e.data.size==0?n:e.data.has(t[qn]);throw new Error("Not a selection: "+JSON.stringify(e))}function UE(e){return`selectionTest(${Zd(e.param)}, datum, ${!!(e.empty??!0)})`}function $E(e){return e.type==="single"}function k1(e){return e.type==="multi"}function HE(e){const t=typeof e=="string"?{type:e}:e;return T1(t)&&(t.on??(t.on="click"),t.on==="click"&&(t.toggle=!0)),t}function T1(e){return e&&e.type=="point"}const GE={clamp:Ci,isArray:Jt,isBoolean:Ac,isDefined(e){return e!==void 0},isNumber:vt,isObject:en,isRegExp:O9,isString:Xe,isValid(e){return e!=null&&e===e},lerp:Tv,linearstep:az,smoothstep:S1,selectionTest:cz};function uz(e){const t=ME(e);for(const n in GE)t[n]=`this.${n}`;return t}const fz=oz({forbidden:[],allowed:["datum","undefined"],globalvar:"globalObject",fieldvar:"datum",functions:uz});function hz(e,t={}){try{const n=nz(e),r=fz(n),i=Function("datum","globalObject",`"use strict";
|
424
424
|
try {
|
425
425
|
return (${r.code});
|
426
426
|
} catch (e) {
|
427
427
|
throw new Error("Error evaluating expression: " + ${JSON.stringify(e)} + ", " + e.message, e);
|
428
|
-
}`).bind(GE),o=a=>i(a,t);return o.fields=r.fields,o.globals=r.globals,o.code=r.code,o}catch(n){throw new Error(`Invalid expression: ${e}, ${n.message}`)}}class dz{constructor(t){J(this,qo);Kt(this,"paramListeners");J(this,bs,new Map);J(this,Kl,new Map);J(this,Jl,new Map);J(this,rh);se(this,rh,t??(()=>{})),se(this,qo,new Map),this.paramListeners=new Map}registerParam(t){const n=t.name;if("value"in t&&"expr"in t)throw new Error(`The parameter "${n}" must not have both value and expr properties!`);let r;if(t.push=="outer"){const i=this.findMediatorForParam(n);if(!i)throw new Error(`Parameter "${n}" not found in outer scope!`);const o=i.paramConfigs.get(n);if("expr"in o||"select"in o)throw new Error(`The outer parameter "${n}" must not have expr or select properties!`);r=i.getSetter(n),B(this,bs).set(n,r)}else if("value"in t)r=this.allocateSetter(n,t.value);else if("expr"in t){const i=this.createExpression(t.expr),o=this.allocateSetter(n,i(null));i.addListener(()=>o(i(null))),r=a=>{}}else r=this.allocateSetter(n,null);if("select"in t){const i=t.select;T1(i)&&r(
|
428
|
+
}`).bind(GE),o=a=>i(a,t);return o.fields=r.fields,o.globals=r.globals,o.code=r.code,o}catch(n){throw new Error(`Invalid expression: ${e}, ${n.message}`)}}class dz{constructor(t){J(this,qo);Kt(this,"paramListeners");J(this,bs,new Map);J(this,Kl,new Map);J(this,Jl,new Map);J(this,rh);se(this,rh,t??(()=>{})),se(this,qo,new Map),this.paramListeners=new Map}registerParam(t){const n=t.name;if("value"in t&&"expr"in t)throw new Error(`The parameter "${n}" must not have both value and expr properties!`);let r;if(t.push=="outer"){const i=this.findMediatorForParam(n);if(!i)throw new Error(`Parameter "${n}" not found in outer scope!`);const o=i.paramConfigs.get(n);if("expr"in o||"select"in o)throw new Error(`The outer parameter "${n}" must not have expr or select properties!`);r=i.getSetter(n),B(this,bs).set(n,r)}else if("value"in t)r=this.allocateSetter(n,t.value);else if("expr"in t){const i=this.createExpression(t.expr),o=this.allocateSetter(n,i(null));i.addListener(()=>o(i(null))),r=a=>{}}else r=this.allocateSetter(n,null);if("select"in t){const i=HE(t.select);T1(i)&&r(i.toggle?zE():NE(null))}return B(this,Jl).set(n,t),r}allocateSetter(t,n,r=!1){if(Zd(t),B(this,bs).has(t))throw new Error("Setter already allocated for parameter: "+t);const i=o=>{const a=B(this,qo).get(t);if(o!==a){B(this,qo).set(t,o);const s=this.paramListeners.get(t);if(s&&!r)for(const l of s)l()}};return i(n),B(this,bs).set(t,i),i}getSetter(t){const n=B(this,bs).get(t);if(!n)throw new Error("Setter not found for parameter: "+t);return n}getValue(t){return B(this,qo).get(t)}findValue(t){const n=this.findMediatorForParam(t);return n==null?void 0:n.getValue(t)}get paramConfigs(){return B(this,Jl)}findMediatorForParam(t){var n;return B(this,qo).has(t)?this:(n=B(this,rh).call(this))==null?void 0:n.findMediatorForParam(t)}createExpression(t){if(B(this,Kl).has(t))return B(this,Kl).get(t);const n={},r=hz(t,n),i=new Map;for(const a of r.globals){const s=this.findMediatorForParam(a);if(!s)throw new Error(`Unknown variable "${a}" in expression: ${t}`);i.set(a,s),Object.defineProperty(n,a,{enumerable:!0,get(){return s.getValue(a)}})}const o=new Set;return r.addListener=a=>{for(const[s,l]of i){const c=l.paramListeners.get(s)??new Set;l.paramListeners.set(s,c),c.add(a),o.add(a)}},r.invalidate=()=>{var a;for(const[s,l]of i)for(const c of o)(a=l.paramListeners.get(s))==null||a.delete(c)},r.identifier=()=>r.code,B(this,Kl).set(t,r),r}evaluateAndGet(t){return this.createExpression(t)()}hasPointSelections(){for(const t of B(this,Jl).values())if(pz(t)){const n=t.select;if(Xe(n)){if(n=="point")return!0}else if(n.type=="point")return!0}return!1}}qo=new WeakMap,bs=new WeakMap,Kl=new WeakMap,Jl=new WeakMap,rh=new WeakMap;function dn(e){return typeof e=="object"&&e!=null&&"expr"in e&&Xe(e.expr)}function In(e){if(dn(e))throw new Error(`ExprRef ${JSON.stringify(e)} not allowed here. Expected a scalar value.`);return e}function I1(e){return("expr"in e||"bind"in e)&&!("select"in e)}function pz(e){return!("expr"in e||"bind"in e)&&"select"in e}function Yd(e,t,n){const r={...t},i=[],o=a=>{i.push(a),i.length===1&&queueMicrotask(()=>{n(i.slice()),i.length=0})};for(const[a,s]of Object.entries(t))if(dn(s)){const l=e.createExpression(s.expr);n&&l.addListener(()=>o(a)),Object.defineProperty(r,a,{enumerable:!0,get(){return l()}})}else r[a]=s;return r}function Zd(e){if(!/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(e))throw new Error(`Invalid parameter name: ${e}. Must be a valid JavaScript identifier.`);return e}function gz(e){return Object.assign(()=>e,{addListener:()=>{},invalidate:()=>{},identifier:()=>"constant",fields:[],globals:[],code:JSON.stringify(e)})}function VE(e,t,n){if(!e)return;function r(o){const a=o;return a.fields??(a.fields=[]),a.constant=a.fields.length===0,a.channelDef=t,a.channel=e,a.scaleChannel=((Rn(t)&&t.resolutionChannel)??(Js(e)&&e))||void 0,"param"in t?(a.predicate=n.createExpression(UE(t)),a.predicate.param=t.param,a.predicate.empty=t.empty??!0):(a.predicate=gz(!0),a.predicate.empty=!1),a.asNumberAccessor=()=>a,a}function i(o){if(dn(o)){const a=r(n.createExpression(o.expr));if(a.fields.length>0)throw new Error("Expression in DatumDef/ValueDef cannot access data fields: "+o.expr);return a}else{const a=o;return r(()=>a)}}if(Wr(t))try{return r(je(t.field))}catch(o){throw new Error(`Invalid field definition: ${o.message}`)}else{if(_u(t))return r(n.createExpression(t.expr));if(Su(t))return i(t.datum);if(Wn(t))return i(t.value);throw new Error(`Invalid channel definition: ${JSON.stringify(t)}. Cannot create an accessor for channel ${e}!`)}}function mz(e,t,n){const r=[];if(vz(t)||xz(t)){const i=Array.isArray(t.condition)?t.condition:[t.condition];for(const o of i)r.push(VE(e,o,n))}if(r.push(VE(e,t,n)),r.filter(i=>!i.constant).length>1)throw new Error("Only one accessor can be non-constant. Channel: "+e);return r}function bz(e,t){const n={},r=i=>{var o;return(o=e.getScaleResolution(i))==null?void 0:o.scale};for(const[i,o]of Object.entries(t))o&&(n[i]=yz(mz(i,o,e.paramMediator),r));return n}function yz(e,t){if(e.length===1)return jE(e[0],t);const n=e.map(o=>o.predicate),r=e.map(o=>jE(o,t));return Object.assign(o=>{for(let a=0;a<r.length;a++)if(n[a](o))return r[a](o)},{constant:!1,accessors:r.map(o=>o.accessors[0]),dataAccessor:r.map(o=>o.dataAccessor).find(o=>o),scale:r.map(o=>o.scale).find(o=>o),channelDef:e.at(-1).channelDef})}function jE(e,t){const{channel:n,scaleChannel:r,channelDef:i}=e,o=e.scaleChannel?t(r):void 0;if(r&&!o)throw new Error(`Missing scale! "${n}": ${JSON.stringify(i)}`);return Object.assign(o?a=>o(e(a)):a=>e(a),{scale:o,constant:e.constant,accessors:[e],dataAccessor:e.constant?void 0:e,channelDef:i})}function Wn(e){return e&&"value"in e}function Wr(e){return e&&"field"in e}function Su(e){return e&&"datum"in e}function Rn(e){return Wr(e)||Su(e)||_u(e)||qE(e)}function wz(e,t){const n=e.mark.encoding[t];if(Rn(n))return n;throw new Error("Not a channel def with scale!")}function qE(e){return e&&"chrom"in e}function _u(e){return e&&"expr"in e}function vz(e){return(Wr(e)||Su(e))&&"condition"in e}function xz(e){return Wn(e)&&"condition"in e}const Ks=["x","y"],Az=["x2","y2"],Ez=[...Ks,...Az];function WE(e){return Ks.includes(e)}function Cu(e){return Ez.includes(e)}const YE={x:"x2",y:"y2"},ZE=Object.fromEntries(Object.entries(YE).map(e=>[e[1],e[0]]));function QE(e){return e in ZE}function Sz(e){const t=YE[e];if(t)return t;throw new Error(`${e} has no secondary channel!`)}function Ta(e){return ZE[e]??e}function wo(e){return["color","fill","stroke"].includes(Ta(e))}function Qd(e){return["shape"].includes(e)}function Js(e){return["x","y","x2","y2","color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","angle","dx","dy"].includes(e)}function _z(e){switch(e){case"shape":return["circle","square","cross","diamond","triangle-up","triangle-right","triangle-down","triangle-left","tick-up","tick-right","tick-down","tick-left"]}}function XE(e){if(!Qd(e))throw new Error("Not a discrete channel: "+e);const t=new Map(_z(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 R1(){const e=t=>t;return e.invert=t=>t,e.copy=R1,e.invertRange=()=>{},e.type="null",e}const Xd="attr_",Cz="uDomain_",kz="range_",Tz="accessor_",KE="scale_",Iz="getScaled_",D1="uRangeTexture_",B1="uParam_",Kd="checkSelection_",JE=3402823466e29;function Rz(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 ku(e,t){return`${Tz}${e}_${t}`}function Dz(e,t,n){let r;if(Qd(e))r=Ia(XE(e)(n));else if(Xe(n))if(wo(e))r=Oz(n);else throw new Error(`String values are not supported on the "${e}" channel: ${n}`);else if(Ac(n))r=Ia(n?1:0);else if(n===null)if(wo(e))r=Ia([0,0,0]);else throw new Error(`null value is not supported on the "${e}" chanel.`);else r=Ia(n);const i=ku(e,t),o=`
|
429
429
|
${r.type} ${i}() {
|
430
430
|
// Constant value
|
431
431
|
return ${r};
|
@@ -465,7 +465,7 @@ return function unrolledUpdateFromDatum(datum) {
|
|
465
465
|
${n}
|
466
466
|
};`)(this)}else this.updateFromDatum=t=>{for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](t)}};const el=5,P1=127;function O1(e){const t=[];for(let p=0;p<=P1;p++)t.push(void 0);const n=new Map;for(const p of e.chars)p.id<=P1?t[p.id]=p:n.set(p.id,p);const r=8722;n.has(r)||n.set(r,t[45]);function i(p){return(p<=P1?t[p]:n.get(p))||t[63]}function o(p){return i(p.charCodeAt(0))}const a=e.common.base,s=o("x"),l=o("X"),c=o("q"),u=s.height-el*2,f=l.height-el*2,h=c.height-s.height+c.yoffset-s.yoffset;function d(p,g=1){let b=0;for(let m=0;m<p.length;m++)b+=i(p.charCodeAt(m)).xadvance;return b/a*g}return{measureWidth:d,getCharByCode:i,getChar:o,xHeight:u,capHeight:f,descent:h,common:e.common}}const fS=2**31-1,Vz=-(2**31);function jz(e,t,n,r=n){const i=new Array(e);i.fill(fS);let o=Vz,a=-1/0,s=!1;const l=new Array(e);l.fill(0);const c=t[0],f=(t[1]-t[0])/e,h=(m,v)=>{const x=(m-c)/f,A=Math.floor(x);return Ci(v&&A==x?A-1:A,0,e-1)};function d(m,v,x){if(s)return;if(v>o)o=v;else{s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}const A=n(m);if(A<a){s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}a=A;const S=h(A,!1);i[S]>v&&(i[S]=v),l[S]<x&&(l[S]=x)}function p(m,v,x){if(s)return;if(v>o)o=v;else{s=!0,console.debug("Items (vertices) are not ordered properly. Disabling binned index.");return}const A=n(m),S=r(m);if(A<a){s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}else if(S<A){s=!0,console.debug("End index is less than start index. Disabling binned index. Datum: ",m);return}a=A;const E=h(A,!1),_=h(S,!0);for(let R=E;R<=_;R++)i[R]>v&&(i[R]=v),l[R]<x&&(l[R]=x)}const g=(m,v,x=[0,0])=>{const A=h(m,!1),S=h(v,!0),E=i[A],_=Math.max(l[S],E);return x[0]=E,x[1]=_,x},b=()=>{if(s)return;for(let v=1;v<l.length;v++)l[v]<l[v-1]&&(l[v]=l[v-1]);let m=!0;for(let v=i.length-1;v>0;v--)m&&i[v]==fS?(i[v]=l[v],m=!1):i[v-1]>i[v]&&(i[v-1]=i[v]);return g};return d.getIndex=b,p.getIndex=b,n==r?d:p}function qz(){let e=0,t,n=0;const r=new Map,i=o=>(o===t||(n=r.get(o),n===void 0&&(n=e++,r.set(o,n)),t=o),n);return i.addAll=o=>{for(const a of o)i(a)},i.invert=o=>{for(const a of r.entries())if(a[1]==o)return a[0]},i.domain=()=>[...r.keys()],i}class Iu{constructor({encoders:t,numVertices:n=void 0,attributes:r=[]}){this.encoders=t,this.variableEncoders=Object.fromEntries(Object.entries(t).filter(([o,a])=>r.includes(o)&&a&&!a.constant));const i=[...lS(t).entries()].filter(([o,a])=>o[1]&&a.length>1).map(([o,a])=>a);this.allocatedVertices=n,this.variableBuilder=new Gz(n);for(const[o,a]of Object.entries(this.variableEncoders)){const s=a.dataAccessor;if(!s)continue;const l=i.find(x=>x.find(A=>A==o));if(l&&o!=l[0])continue;const c=s.asNumberAccessor(),u=a.scale,{largeHp:f,arrayConstructor:h,discrete:d,numComponents:p}=Tu(u,o),g=[0,0];let b;u&&d&&"domain"in u&&(b=qz(),b.addAll(u.domain()));const m=b?x=>b(s(x)):f?x=>sS(c(x),g):c,v=l?M1(l):o;this.variableBuilder.addConverter(v,{f:m,numComponents:p,arrayReference:f?g:void 0,targetArrayType:h})}this.lastOffset=0,this.rangeMap=new gi([],JSON.stringify)}registerBatch(t){var o;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(t,{offset:n,count:i,xIndex:(o=this.xIndexer)==null?void 0:o.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 o=r;o<i;o++){const a=n[o];this.variableBuilder.pushFromDatum(a),this.addToXIndex(a)}this.registerBatch(t)}prepareXIndexer(t,n=0,r=n+t.length){var c;const i=()=>{this.addToXIndex=u=>{},this.xIndexer=void 0},o=(c=this.encoders.x)==null?void 0:c.channelDef;if(!("buildIndex"in o)||!o.buildIndex||!t.length||r-n<0){i();return}const a=u=>{var f;return u&&Ot((f=u.scale)==null?void 0:f.type)&&u},s=a(this.variableEncoders.x),l=a(this.variableEncoders.x2);if(s&&!s.constant&&(!l||!l.constant)){const u=s.dataAccessor.asNumberAccessor(),f=l?l.dataAccessor.asNumberAccessor():u,h=[u(t[n]),f(t[r-1])];if(h[1]>h[0]){this.xIndexer=jz(50,h,u,f);let d=this.variableBuilder.vertexCount;this.addToXIndex=p=>{let g=this.variableBuilder.vertexCount;this.xIndexer(p,d,g),d=g}}else i()}else i()}addToXIndex(t){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class Wz extends Iu{constructor({encoders:t,attributes:n,numItems:r}){super({encoders:t,attributes:n,numVertices:r*6}),this.variableBuilder.configure();const i=this.variableBuilder.pushAll;this.pushAllSixTimes=r>500?new Function("pushAll",`return function unrolledPushAllSixTimes() {
|
467
467
|
pushAll(); pushAll(); pushAll(); pushAll(); pushAll(); pushAll();
|
468
|
-
};`)(i):function(){i(),i(),i(),i(),i(),i()}}addBatch(t,n,r=0,i=n.length){if(!(i<=r)){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const a=n[o];this.variableBuilder.updateFromDatum(a),this.pushAllSixTimes(),this.addToXIndex(a)}this.registerBatch(t)}}}class Yz extends Iu{constructor({encoders:t,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:o}){super({encoders:t,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),this.variableBuilder.configure()}addBatch(t,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 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(a)}this.registerBatch(t)}}class Zz extends Iu{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r}),this.variableBuilder.configure()}}class Qz extends Iu{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r}),this.variableBuilder.configure()}toArrays(){const t=this.variableBuilder.arrays;for(let n of Object.values(t))n.divisor=1;return super.toArrays()}}class Xz extends Iu{constructor({encoders:t,attributes:n,fontMetrics:r,properties:i,numCharacters:o=void 0}){super({encoders:t,attributes:n,numVertices:o*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=t.text.channelDef;this.numberFormat=!Wn(s)&&"format"in s&&s.format?Bt(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),this.variableBuilder.configure()}addBatch(t,n,r=0,i=n.length){const o=this.properties.align||"left",a=this.properties.logoLetters??!1,s=this.metadata.common.base,l=this.metadata.common.scaleH;let c=-el;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,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)),b=
|
468
|
+
};`)(i):function(){i(),i(),i(),i(),i(),i()}}addBatch(t,n,r=0,i=n.length){if(!(i<=r)){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const a=n[o];this.variableBuilder.updateFromDatum(a),this.pushAllSixTimes(),this.addToXIndex(a)}this.registerBatch(t)}}}class Yz extends Iu{constructor({encoders:t,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:o}){super({encoders:t,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),this.variableBuilder.configure()}addBatch(t,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 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(a)}this.registerBatch(t)}}class Zz extends Iu{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r}),this.variableBuilder.configure()}}class Qz extends Iu{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r}),this.variableBuilder.configure()}toArrays(){const t=this.variableBuilder.arrays;for(let n of Object.values(t))n.divisor=1;return super.toArrays()}}class Xz extends Iu{constructor({encoders:t,attributes:n,fontMetrics:r,properties:i,numCharacters:o=void 0}){super({encoders:t,attributes:n,numVertices:o*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=t.text.channelDef;this.numberFormat=!Wn(s)&&"format"in s&&s.format?Bt(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),this.variableBuilder.configure()}addBatch(t,n,r=0,i=n.length){const o=this.properties.align||"left",a=this.properties.logoLetters??!1,s=this.metadata.common.base,l=this.metadata.common.scaleH;let c=-el;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,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)),b=Xe(g)?g:g===null?"":""+g;if(b.length==0)continue;this.variableBuilder.updateFromDatum(p);const m=a?b.length:this.metrics.measureWidth(b);this.updateWidth(m);let v=o=="right"?-m:o=="center"?-m/2:0;if(!a){const E=this.metrics.getCharByCode(b.charCodeAt(0));v-=(E.width-E.xadvance)/s/2}let x=-.5,A=1,S=1;for(let E=0;E<b.length;E++){const _=this.metrics.getCharByCode(b.charCodeAt(E)),R=a?1:_.xadvance/s;if(_.id==32){v+=R;continue}a?(S=(_.width+el*2)/_.width,v=-S/2,A=(_.height+el*2)/_.height,x=-.5-el/_.height):(A=_.height/s,x=-(_.height+_.yoffset+c)/s,S=_.width/s);const F=_.x,H=_.y;f[0]=v,f[1]=x+A,h[0]=F/l,h[1]=H/l,this.variableBuilder.pushAll(),f[0]=v+S,f[1]=x+A,h[0]=(F+_.width)/l,h[1]=H/l,this.variableBuilder.pushAll(),f[0]=v,f[1]=x,h[0]=F/l,h[1]=(H+_.height)/l,this.variableBuilder.pushAll(),f[0]=v+S,f[1]=x+A,h[0]=(F+_.width)/l,h[1]=H/l,this.variableBuilder.pushAll(),f[0]=v,f[1]=x,h[0]=F/l,h[1]=(H+_.height)/l,this.variableBuilder.pushAll(),f[0]=v+S,f[1]=x,h[0]=(F+_.width)/l,h[1]=(H+_.height)/l,this.variableBuilder.pushAll(),v+=R}this.addToXIndex(p)}this.registerBatch(t)}}const hS=`#define PI 3.141593
|
469
469
|
|
470
470
|
uniform View {
|
471
471
|
/** Offset in "unit" units */
|
@@ -873,16 +873,16 @@ bool setupPicking() {
|
|
873
873
|
return false;
|
874
874
|
}
|
875
875
|
`,tU=`in highp vec4 vPickingColor;
|
876
|
-
`,Jd=Symbol("cacheMap");function e0(e,t,n){let r=Du(e).get(t);return r===void 0&&(r=n(t),Du(e).set(t,r)),r}function nU(e,t){Du(e).delete(t)}function Ru(e,t){const n=Du(e);for(const r of n.keys())r.startsWith(t)&&n.delete(r);Du(e).delete(t)}function dS(e){e[Jd]=new Map}function Du(e){return e[Jd]||dS(e),e[Jd]}function rU(e,t,n,r){const i=
|
876
|
+
`,Jd=Symbol("cacheMap");function e0(e,t,n){let r=Du(e).get(t);return r===void 0&&(r=n(t),Du(e).set(t,r)),r}function nU(e,t){Du(e).delete(t)}function Ru(e,t){const n=Du(e);for(const r of n.keys())r.startsWith(t)&&n.delete(r);Du(e).delete(t)}function dS(e){e[Jd]=new Map}function Du(e){return e[Jd]||dS(e),e[Jd]}function rU(e,t,n,r){const i=Xe(e)?e:e.name,o=!Xe(e)&&e.extent||[0,1];if(n===void 0&&!Xe(e)&&(n=e.count),i){const a=g1(i);if(Tn(a)){const s=pS(a,{extent:o,count:n});return tl(t,{minMag:t.LINEAR,format:t.RGB,height:1,wrap:t.CLAMP_TO_EDGE},s,r)}else{if(Jt(a))return L1(a,t);throw new Error("Unknown scheme: "+i)}}}function iU(e,t="rgb",n,r){const i=$d(e,Xe(t)?t:t.type,Xe(t)?void 0:t.gamma),o=pS(i);return tl(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},o,r)}function oU(e,t,n,r){const i=Math.max(e.length,n||0),o=new Float32Array(i);for(let a=0;a<i;a++)o[a]=e[a%e.length];return tl(t,{minMag:t.NEAREST,format:t.RED,internalFormat:t.R32F,height:1},o,r)}function L1(e,t,n,r){const i=gS(e,n);return tl(t,{minMag:t.NEAREST,format:t.RGB,height:1},i,r)}function pS(e,{extent:t=[0,1],reverse:n=!1,count:r=256}={}){const i=t[0],o=Gn(t)-i,a=Ji(r).map(s=>s/(r-1)).map(s=>i+s/o).map(e);return n&&a.reverse(),gS(a)}function gS(e,t){const n=Math.max(e.length,t||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const o=fo(e[i%e.length]).rgb();r[i*3+0]=o.r,r[i*3+1]=o.g,r[i*3+2]=o.b}return r}class aU{constructor(t,n,r,i={}){this._container=t,this._sizeSource=n??(()=>({width:void 0,height:void 0})),this._shaderCache=new Map,this.rangeTextures=new WeakMap,this.selectionTextures=new WeakMap;const o=document.createElement("canvas");t.appendChild(o);const a=_O(o,{antialias:!0,depth:!1,premultipliedAlpha:!0,...i});if(!a)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!Us(a))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");if(nA(a),a.blendFunc(a.ONE,a.ONE_MINUS_SRC_ALPHA),this.canvas=o,this.gl=a,this._pickingAttachmentOptions=[{format:a.RGBA,type:a.UNSIGNED_BYTE,minMag:a.LINEAR,wrap:a.CLAMP_TO_EDGE}],this._pickingBufferInfo=wO(a,this._pickingAttachmentOptions),a.bindFramebuffer(a.FRAMEBUFFER,null),this.adjustGl(),this._updateDpr(),this._clearColor=[0,0,0,0],r){const s=fo(r).rgb();this._clearColor=[s.r/255,s.g/255,s.b/255,s.opacity]}}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;";Jt(n)&&(n=n.join(`
|
877
877
|
|
878
878
|
`));const o=this.gl,a=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let s=this._shaderCache.get(a);if(!s){const l=[r,i,n].join(`
|
879
879
|
|
880
|
-
`);s=o.createShader(t),o.shaderSource(s,l),o.compileShader(s),this._shaderCache.set(a,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,vO(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this.canvas.remove()}getPhysicalCanvasSize(t){return t=t||this.getLogicalCanvasSize(),{width:t.width*this.dpr,height:t.height*this.dpr}}getLogicalCanvasSize(){if(this._logicalCanvasSize)return this._logicalCanvasSize;const t=this._sizeSource(),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}readPickingPixel(t,n){const r=this.gl;t*=this.dpr,n*=this.dpr;const i=this.getPhysicalCanvasSize().height,o=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(t,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,o),r.bindFramebuffer(r.FRAMEBUFFER,null),o}clearAll(){const t=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();t.viewport(0,0,n,r),t.disable(t.SCISSOR_TEST),t.clearColor(...this._clearColor),t.clear(t.COLOR_BUFFER_BIT)}createRangeTexture(t,n=!1){const r=this.rangeTextures.get(t);if(!n&&r)return;function i(a,s){return Si(s.type)?s.domain().length:s.type=="threshold"?s.domain().length+1:s.type=="quantize"||s.type=="quantile"?a??4:a}const o=t.channel;if(wo(o)){const a=t.scale,s=a.props,l=a.range();let c;if(s.scheme)if(a.type=="threshold"&&l)c=L1(l,this.gl,a.domain().length,r);else{let u=
|
880
|
+
`);s=o.createShader(t),o.shaderSource(s,l),o.compileShader(s),this._shaderCache.set(a,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,vO(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this.canvas.remove()}getPhysicalCanvasSize(t){return t=t||this.getLogicalCanvasSize(),{width:t.width*this.dpr,height:t.height*this.dpr}}getLogicalCanvasSize(){if(this._logicalCanvasSize)return this._logicalCanvasSize;const t=this._sizeSource(),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}readPickingPixel(t,n){const r=this.gl;t*=this.dpr,n*=this.dpr;const i=this.getPhysicalCanvasSize().height,o=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(t,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,o),r.bindFramebuffer(r.FRAMEBUFFER,null),o}clearAll(){const t=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();t.viewport(0,0,n,r),t.disable(t.SCISSOR_TEST),t.clearColor(...this._clearColor),t.clear(t.COLOR_BUFFER_BIT)}createRangeTexture(t,n=!1){const r=this.rangeTextures.get(t);if(!n&&r)return;function i(a,s){return Si(s.type)?s.domain().length:s.type=="threshold"?s.domain().length+1:s.type=="quantize"||s.type=="quantile"?a??4:a}const o=t.channel;if(wo(o)){const a=t.scale,s=a.props,l=a.range();let c;if(s.scheme)if(a.type=="threshold"&&l)c=L1(l,this.gl,a.domain().length,r);else{let u=Xe(s.scheme)?void 0:s.scheme.count;u=i(u,a),c=rU(s.scheme,this.gl,u,r)}else Ud(a.type)||Ot(a.type)&&l.length>1?c=iU(l,s.interpolate,this.gl,r):c=L1(l,this.gl,a.domain().length,r);this.rangeTextures.set(t,c)}else{const a=t.scale;if(a.type==="ordinal"||mo(a.type)){const s=Qd(o)?XE(o):c=>c,l=a.range();this.rangeTextures.set(t,oU(l.map(s),this.gl,a.domain().length,r))}}}createSelectionTexture(t,n=!0){if(!k1(t))throw new Error("Not a multi-point selection, cannot create texture");const r=Array.from(t.data.keys()),i=r.length>0?r.sort((l,c)=>l-c):[0],o=this.selectionTextures.get(t),a=this.gl,s=tl(this.gl,{level:0,minMag:a.NEAREST,format:a.RED_INTEGER,internalFormat:a.R32UI,height:1,width:i.length},new Uint32Array(i),n?o:!1);this.selectionTextures.set(t,s)}}function sU(e,t="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...t.matchAll(r)],o=new Map(i.map((a,s)=>{const l=parseInt(a[1]),c=i[s+1],u=c?c.index:t.length,f=t.substring(a.index,u);return[l-1,f]}));return e.split(`
|
881
881
|
`).map((a,s)=>{const l=o.get(s);return`${s+1+n}: ${a}${l?`
|
882
882
|
|
883
883
|
^^^ ${l}`:""}`}).join(`
|
884
884
|
`)}function lU(e,t,n){const r=e.createProgram();e.attachShader(r,t),e.attachShader(r,n),e.linkProgram(r);function i(){let o,a;if(!e.getProgramParameter(r,e.LINK_STATUS)){o=e.getProgramInfoLog(r);for(const l of[t,n])e.getShaderParameter(l,e.COMPILE_STATUS)||(o=e.getShaderInfoLog(l),a=sU(e.getShaderSource(l),o,0)+`
|
885
|
-
Error compiling: ${o}`,e.deleteShader(l));e.deleteProgram(r)}if(o)return{message:o,detail:a}}return{program:r,getProgramErrors:i}}function tl(e,t,n,r){return r?y3(e,r,n,t):r=iu(e,{...t,src:n}),r}function mS(...e){const t={get(n,r,i){for(const o of e){const s=o()[r];if(s!==void 0)return s}},has(n,r,i){for(const o of e){const a=o();if(r in a)return!0}return!1}};return new Proxy({},t)}function cU(e){return
|
885
|
+
Error compiling: ${o}`,e.deleteShader(l));e.deleteProgram(r)}if(o)return{message:o,detail:a}}return{program:r,getProgramErrors:i}}function tl(e,t,n,r){return r?y3(e,r,n,t):r=iu(e,{...t,src:n}),r}function mS(...e){const t={get(n,r,i){for(const o of e){const s=o()[r];if(s!==void 0)return s}},has(n,r,i){for(const o of e){const a=o();if(r in a)return!0}return!1}};return new Proxy({},t)}function cU(e){return Xe(e)||vt(e)||Ac(e)}class Ra extends Error{constructor(t,n){super(t),this.name="ViewError",this.view=n}}const uU="SAMPLE_FACET_UNIFORM",bS="SAMPLE_FACET_TEXTURE",yS="uSelectionTexture_";class Bu{constructor(t){J(this,li,[]);this.unitView=t,this.encoders=void 0,this.bufferInfo=void 0,this.bytesPerElement=new Map,this.programInfo=void 0,this.vertexArrayInfo=void 0,this.viewUniformInfo=void 0,this.markUniformInfo=void 0,this.markUniformsAltered=!0,this.selectionTextureOps=[],this.rangeMap=new fU,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=mS(typeof this.unitView.spec.mark=="object"?()=>this.unitView.spec.mark:()=>({}),()=>this.defaultProperties)}augmentDefaultProperties(t){Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors(t))}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:qn}),t}fixEncoding(t){return t}setupExprRefsNeedingGraphicsUpdate(t){const n=this.getSupportedChannels(),r={};for(const o of t){const a=this.properties[o];if(a&&dn(a)){const s=this.unitView.paramMediator.createExpression(a.expr);s.addListener(()=>{this.updateGraphicsData(),this.unitView.context.animator.requestRender()}),n.includes(o)||Object.defineProperty(r,o,{get(){return s()}})}}const i=this.properties;this.properties=mS(()=>r,()=>i)}get encoding(){return e0(this,"encoding",()=>{var a;const t=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=s=>{const l=this.properties[s];return cU(l)||dn(l)?{value:l}:void 0},i=Object.fromEntries(this.getSupportedChannels().map(s=>[s,r(s)]).filter(s=>Wn(s[1]))),o=this.fixEncoding({...t,...i,...n});for(const s of Object.keys(o))this.getSupportedChannels().includes(s)||delete o[s];return o.x&&((a=o.x).buildIndex??(a.buildIndex=!0)),o})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=bz(this.unitView,this.encoding)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return bS;if(this.unitView.getLayoutAncestors().find(t=>"samples"in t.spec))return uU}createAndLinkShaders(t,n,r=[]){const i=this.getAttributes(),o=this.encoders,a=this.getSampleFacetMode();a&&r.push(`#define ${a}`);const s="// view: "+this.unitView.getPathString();let l=[];const c=new Set,u=lS(o),f=[],h=Object.values(o).flatMap(S=>S.accessors).map(S=>S.predicate).filter(S=>S.param),d=new Map;for(const S of h){const E=S.param,_=this.unitView.paramMediator,R=_.getValue(E);if(!R)throw new Error(`Cannot infer selection type as the parameter "${E}" has no value. Please ensure that the parameter is properly defined!`);const F=Xd+"uniqueId";if($E(R)){if(!d.has(E)){const H=B1+Zd(E);d.set(E,"single"),f.push(" // Selection parameter"),f.push(` uniform highp uint ${H};`),B(this,li).push(()=>{this.registerMarkUniformValue(H,{expr:E},O=>O.uniqueId??0)}),l.push(`bool ${Kd}${E}(bool empty) {
|
886
886
|
return ${B1}${E} == ${F} || (empty && ${B1}${E} == 0u);
|
887
887
|
}`)}}else if(k1(R)&&!d.has(E)){d.set(E,"multi");const H=yS+Zd(E);l.push(`// Selection texture
|
888
888
|
uniform highp usampler2D ${H};`);const O=this.getContext().glHelper,Z=O.selectionTextures;this.selectionTextureOps.push(()=>{const ie=_.getValue(E),pe=Z.get(ie);if(!pe)throw new Error(`Bug: no selection texture found for "${E}"!`);ba(this.programInfo,{[H]:pe})});const ne=yS+E;l.push(`bool ${Kd}${E}(bool empty) {
|
@@ -1826,7 +1826,7 @@ void main() {
|
|
1826
1826
|
|
1827
1827
|
#pragma markUniforms
|
1828
1828
|
};
|
1829
|
-
`,BU={left:-1,center:0,right:1},FU={top:-1,middle:0,bottom:1,alphabetic:1};class MU extends Bu{constructor(t){super(t),this.augmentDefaultProperties({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(),this.setupExprRefsNeedingGraphicsUpdate(["text","fitToBand","logoLetters"])}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 Ks)this.properties.fitToBand&&N1(t,n);return t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(IU,RU,[DU])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniformValue("uSdfNumerator",{expr:"devicePixelRatio"},n=>{let r=.35;return this.properties.logoLetters&&(r/=2),this.font.metrics.common.base/(n/r)}),this.registerMarkUniformValue("uPaddingX",t.paddingX),this.registerMarkUniformValue("uPaddingY",t.paddingY),this.registerMarkUniformValue("uFlushX",t.flushX,n=>!!n),this.registerMarkUniformValue("uFlushY",t.flushY,n=>!!n),this.registerMarkUniformValue("uSqueeze",t.squeeze,n=>!!n),ou(this.markUniformInfo,{uAlign:[BU[t.align],FU[t.baseline]],uD:[t.dx,-t.dy],uLogoLetter:!!t.logoLetters,uViewportEdgeFadeWidth:[t.viewportEdgeFadeWidthTop,t.viewportEdgeFadeWidthRight,t.viewportEdgeFadeWidthBottom,t.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[t.viewportEdgeFadeDistanceTop,t.viewportEdgeFadeDistanceRight,t.viewportEdgeFadeDistanceBottom,t.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const t=this.unitView.getCollector();if(!t){console.debug("No collector");return}const n=t.getData(),r=this.encoding,i=this.encoders.text;let o=0;const a="format"in r.text?Bt(r.text.format):c=>c;for(const c of n){const u=a(i(c)),f=
|
1829
|
+
`,BU={left:-1,center:0,right:1},FU={top:-1,middle:0,bottom:1,alphabetic:1};class MU extends Bu{constructor(t){super(t),this.augmentDefaultProperties({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(),this.setupExprRefsNeedingGraphicsUpdate(["text","fitToBand","logoLetters"])}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 Ks)this.properties.fitToBand&&N1(t,n);return t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(IU,RU,[DU])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniformValue("uSdfNumerator",{expr:"devicePixelRatio"},n=>{let r=.35;return this.properties.logoLetters&&(r/=2),this.font.metrics.common.base/(n/r)}),this.registerMarkUniformValue("uPaddingX",t.paddingX),this.registerMarkUniformValue("uPaddingY",t.paddingY),this.registerMarkUniformValue("uFlushX",t.flushX,n=>!!n),this.registerMarkUniformValue("uFlushY",t.flushY,n=>!!n),this.registerMarkUniformValue("uSqueeze",t.squeeze,n=>!!n),ou(this.markUniformInfo,{uAlign:[BU[t.align],FU[t.baseline]],uD:[t.dx,-t.dy],uLogoLetter:!!t.logoLetters,uViewportEdgeFadeWidth:[t.viewportEdgeFadeWidthTop,t.viewportEdgeFadeWidthRight,t.viewportEdgeFadeWidthBottom,t.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[t.viewportEdgeFadeDistanceTop,t.viewportEdgeFadeDistanceRight,t.viewportEdgeFadeDistanceBottom,t.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const t=this.unitView.getCollector();if(!t){console.debug("No collector");return}const n=t.getData(),r=this.encoding,i=this.encoders.text;let o=0;const a="format"in r.text?Bt(r.text.format):c=>c;for(const c of n){const u=a(i(c)),f=Xe(u)?u:u===null?"":""+u;o+=f&&f.length||0}const s=new Xz({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(o,this.properties.minBufferSize||1024)});s.addBatches(t.facetBatches);const l=s.toArrays();this.rangeMap.migrateEntries(l.rangeMap),this.updateBufferInfo(l)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>{ba(this.programInfo,{uTexture:this.font.texture})}),n.push(()=>this.bindOrSetMarkUniformBlock()),n.push(()=>ya(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Ed(n,this.vertexArrayInfo,n.TRIANGLES,i,r),t)}}const ES=1;function z1(){let e=[0,1],t=[0,1],n=1,r=1,i=0,o=0,a=.5,s=0;const c=u=>(u+a-e[0])/n*r+t[0];return c.invert=u=>(u-t[0])/r*n+e[0]-a,c.domain=function(u){if(arguments.length){e=Uh(u),n=e[1]-e[0];const f=e[0]===0&&e[0]===0;if(n<ES&&!f){n=ES;const h=(e[0]+e[1])/2;e[0]=h-n/2,e[1]=h+n/2}return c}else return e.slice()},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?(o=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?(o=u,c):o},c.align=function(u){return arguments.length?(a=Math.max(0,Math.min(1,u)),c):a},c.step=()=>r/n,c.bandwidth=()=>c.step(),c.ticks=u=>{const f=c.align(),h=c.numberingOffset();return Cc(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=ra(e[0],e[1],Math.min(u,Math.ceil(n)))<1e5?Bt(","):Bt(".3s");return p=>d(p+s)},c.copy=()=>z1().domain(e).range(t).paddingInner(i).paddingOuter(o).numberingOffset(s),c}function PU(){const e=z1().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(),o=e.numberingOffset(),[a,s]=[Math.max(i[0],0),Math.min(i[1],t.totalSize-1)].map(u=>t.toChromosome(u)),l=Math.max(1,ra(i[0],i[1],r)),c=[];for(let u=a.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-o;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 o=e.domain(),a=o[1]-o[0],s=e.numberingOffset(),c=ra(o[0],o[1],Math.min(r,Math.ceil(a)))<1e6?Bt(","):Bt(".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 OU(e){return e.type=="locus"}function t0(e,t,n){if(n=n||[],e.some(a=>a===null)){if(e.every(a=>a===null))return null;throw console.warn(e),new Error("Cannot merge objects with nulls!")}const r={},i=(a,s)=>a===s||nl(a)&&nl(s)||nl(a)&&s===!0||a===!0&&en(s),o=a=>{for(let s in a){const l=a[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(a[s])}). Using ${JSON.stringify(r[s])}.`);else{const c=r[s];if(nl(c))nl(l)&&(r[s]=t0([c,l],s));else if(nl(l)){if(!(c===!0||c===void 0))throw new Error("Bug in merge! Target is: "+c);r[s]=t0([{},l],s)}else r[s]=l}}};for(const a of e)o(a);return r}function nl(e){return en(e)&&!Array.isArray(e)}/*!
|
1830
1830
|
* Adapted from vega-encode:
|
1831
1831
|
* https://github.com/vega/vega/blob/master/packages/vega-encode/src/ticks.js
|
1832
1832
|
*
|
@@ -1842,7 +1842,7 @@ void main() {
|
|
1842
1842
|
* All rights reserved.
|
1843
1843
|
*
|
1844
1844
|
* BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
|
1845
|
-
*/const VU="locus",jU="index";var qU=5;function WU(e){const t=e.type;return!e.bins&&(t===Qs||t===fu||t===hu)}function CS(e){return Ot(e)&&![Vr,jU,VU].includes(e)}function kS(e){return e||{warn:(t,...n)=>console.warn(t,...n)}}var YU=zh(["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 TS(e,t,n){n=kS(n);for(const r in e)if(!YU[r]){if(r==="padding"&&CS(t.type))continue;Tn(t[r])?t[r](e[r]):n.warn("Unsupported scale property: "+r)}n$(t,e,t$(t,e,KU(t,e,n)))}function ZU(e,t){const n=QU(e),r=Ve(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return!e.domain&&Ot(i.type)&&(e.domain=[0,0]),TS(e,i,t),i}function QU(e){var t=e.type,n="",r;return t===Vr?Vr+"-"+Qs:(XU(e)&&(r=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=r===2?Vr+"-":r===3?Xs+"-":""),(n+t||Qs).toLowerCase())}function XU(e){const t=e.type;return Ot(t)&&t!==lE&&t!==cE&&(e.scheme||e.range&&e.range.length&&e.range.every(
|
1845
|
+
*/const VU="locus",jU="index";var qU=5;function WU(e){const t=e.type;return!e.bins&&(t===Qs||t===fu||t===hu)}function CS(e){return Ot(e)&&![Vr,jU,VU].includes(e)}function kS(e){return e||{warn:(t,...n)=>console.warn(t,...n)}}var YU=zh(["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 TS(e,t,n){n=kS(n);for(const r in e)if(!YU[r]){if(r==="padding"&&CS(t.type))continue;Tn(t[r])?t[r](e[r]):n.warn("Unsupported scale property: "+r)}n$(t,e,t$(t,e,KU(t,e,n)))}function ZU(e,t){const n=QU(e),r=Ve(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return!e.domain&&Ot(i.type)&&(e.domain=[0,0]),TS(e,i,t),i}function QU(e){var t=e.type,n="",r;return t===Vr?Vr+"-"+Qs:(XU(e)&&(r=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=r===2?Vr+"-":r===3?Xs+"-":""),(n+t||Qs).toLowerCase())}function XU(e){const t=e.type;return Ot(t)&&t!==lE&&t!==cE&&(e.scheme||e.range&&e.range.length&&e.range.every(Xe))}function KU(e,t,n){if(!e.domain)return 0;n=kS(n);var r=JU(e,t.domainRaw,n);if(r>-1)return r;var i=t.domain,o=e.type,a=t.zero||t.zero===void 0&&WU(e),s,l;return i?(CS(o)&&t.padding&&i[0]!==pr(i)&&(i=e$(o,i,t.range,t.padding,t.exponent,t.constant)),(a||t.domainMin!=null||t.domainMax!=null||t.domainMid!=null)&&(s=(i=i.slice()).length-1||1,a&&(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(IS(o,i,n)),o===f1&&e.unknown(t.domainImplicit?Bm:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&SS(e,t.nice)||null),i.length):0}function JU(e,t,n){return t?(e.domain(IS(e.type,t,n)),t.length):-1}function e$(e,t,n,r,i,o){n??(n=[0,1]);var a=Math.abs(pr(n)-n[0]),s=a/(a-2*r),l=e===go?_v(t,null,s):e===hu?yg(t,null,s,.5):e===fu?yg(t,null,s,i||1):e===Nd?k9(t,null,s,o||1):bg(t,null,s);return t=t.slice(),t[0]=l[0],t[t.length-1]=l[1],t}function IS(e,t,n){if(mE(e)){var r=Math.abs(t.reduce(function(i,o){return i+(o<0?-1:o>0?1:0)},0));r!==t.length&&n.warn("Log scale domain includes zero: "+Nh(t))}return t}function t$(e,t,n){let r=t.bins;if(r&&!Jt(r)){const i=(r.start==null||r.stop==null)&&e.domain(),o=r.start==null?i[0]:r.start,a=r.stop==null?pr(i):r.stop,s=r.step;s||yt("Scale bins parameter missing step property."),r=Ji(o,a+s,s)}return r?e.bins=r:e.bins&&delete e.bins,e.type===d1&&(r?!t.domain&&!t.domainRaw&&(e.domain(r),n=r.length):e.bins=e.domain()),n}function n$(e,t,n){var r=e.type,i=t.round||!1,o=t.range;if(t.rangeStep!=null)o=r$(r,t,n);else if(t.scheme&&(o=i$(r,t,n),Tn(o))){if(e.interpolator)return e.interpolator(o);yt(`Scale type ${r} does not support interpolating color schemes.`)}if(o&&Ud(r))return e.interpolator($d(U1(o,t.reverse),t.interpolate,t.interpolateGamma));o&&t.interpolate&&e.interpolate?e.interpolate(bE(t.interpolate,t.interpolateGamma)):Tn(e.round)?e.round(i):Tn(e.rangeRound)&&e.interpolate(i?cu:ho),o&&e.range(U1(o,t.reverse))}function r$(e,t,n){e!==hE&&e!==h1&&yt("Only band and point scales support rangeStep.");var r=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,i=e===h1?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*c1(n,i,r)]}function i$(e,t,n){var r=t.schemeExtent,i,o;return Jt(t.scheme)?o=$d(t.scheme,t.interpolate,t.interpolateGamma):(i=t.scheme.toLowerCase(),o=g1(i),o||yt(`Unrecognized scheme name: ${t.scheme}`)),n=e===fE?n+1:e===d1?n-1:e===u1||e===uE?+t.schemeCount||qU:n,Ud(e)?RS(o,r,t.reverse):Tn(o)?VL(RS(o,r),n):e===f1?o:o.slice(0,n)}function RS(e,t,n){return Tn(e)&&(t||n)?GL(e,U1(t||[0,1],n)):e}function U1(e,t){return t?e.slice().reverse():e}const $1=Bt(",d");function o$(e){return e.chrom+":"+$1(Math.floor(e.pos+1))}function DS(e){return!vt(e)&&"chrom"in e?o$(e):""+e}function a$(e,t){return e.chrom+":"+$1(Math.floor(e.pos+1))+"-"+(e.chrom!=t.chrom?t.chrom+":":"")+$1(Math.ceil(t.pos))}const BS={dm6:`chr3R 32079331
|
1846
1846
|
chr3L 28110227
|
1847
1847
|
chr2R 25286936
|
1848
1848
|
chrX 23542271
|
@@ -1964,8 +1964,8 @@ chr19 61431566
|
|
1964
1964
|
chrX 171031299
|
1965
1965
|
chrY 91744698
|
1966
1966
|
chrM 16299`};function s$(e){if(!(e in BS))throw new Error(`Unknown assembly: ${e}`);return BS[e].split(`
|
1967
|
-
`).map(t=>{const n=t.split(" ");return{name:n[0],size:parseInt(n[1])}})}const l$=/^([A-Za-z]+:)?\/\//;function Fu(e,t){if(t&&l$.test(t))return t;const n=typeof e=="function"?e():e;if(!n)return t;if(!t)return n;if(/[#?]/.test(n))throw new Error(`Cannot append to a url with query or hash. Append: ${t}, base: ${n}`);return FS(n)+t}function FS(e){const t=e.replace(/[^/]*$/,"");return t===""?void 0:t.endsWith("://")?e+"/":t}class c${constructor(t){if(this.config={name:"custom",...t},"baseUrl"in t)throw new Error("The `baseUrl` property in genome config has been removed in GenomeSpy v0.52.0. Use `url` instead. See https://genomespy.app/docs/genomic-data/genomic-coordinates/.");if(!H1(t))throw new Error("Not a genome configuration: "+JSON.stringify(t));if(this.chromosomes=[],this.cumulativeChromPositions=new Map,this.chromosomesByName=new Map,this.startByIndex=[],this.totalSize=0,MS(this.config))this.setChromSizes(this.config.contigs);else if(!G1(this.config)){const n=s$(this.config.name);if(n)this.setChromSizes(n);else throw new Error(`Unknown genome: ${this.config.name}. Please provide contigs or a URL. See https://genomespy.app/docs/genomic-data/genomic-coordinates/.`)}}get name(){return this.config.name}async load(t){if(G1(this.config))try{const n=Fu(t,this.config.url),r=await fetch(n);if(!r.ok)throw new Error(`${r.status} ${r.statusText}`);this.setChromSizes(u$(await r.text()))}catch(n){throw new Error(`Could not load chrom sizes: ${this.config.url}. Reason: ${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,o={...t[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(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=pi(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 a$(...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 o=this.chromosomes.findIndex(s=>s.name===n.chrom),a=this.chromosomes.findIndex(s=>s.name===r.chrom);i.push({chrom:n.chrom,startPos:n.pos,endPos:this.chromosomes[o].size});for(let s=o+1;s<a;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,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 u$(e){return j9(e).map(([t,n])=>({name:t,size:parseInt(n)}))}function n0(e){return en(e)&&"chrom"in e}function f$(e){return e.every(n0)}function H1(e){return en(e)&&("name"in e||G1(e)||MS(e))}function G1(e){return H1(e)&&"url"in e}function MS(e){return H1(e)&&"contigs"in e}class Mu extends Array{constructor(){super(),this.type=void 0}extend(t){return this}extendAll(t){if(t instanceof Mu&&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 V1 extends Mu{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 PS extends Mu{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 OS extends PS{constructor(){super(),this.type="nominal"}}class h$ extends Mu{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 LS={quantitative:V1,index:V1,locus:V1,nominal:OS,ordinal:PS};function NS(e,t){if(e=="quantitative"&&d$(t)){const n=new h$(t);return n.type=e,n}else if(LS[e]){const n=new LS[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function d$(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function p$(e){return((e*=2)<=1?e*e:--e*(2-e)+1)/2}function g$(e){return--e*e*e+1}function m$(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}function b$(e){return(Math.pow(2,-10*e)-.0009765625)*1.0009775171065494}function y$(e){return 1-b$(e)}function w$(e,t,n){return e*Math.pow(t/e,n)}Ve("index",z1,["continuous"]),Ve("locus",PU,["continuous"]),Ve("null",R1,[]);const zS="quantitative",j1="ordinal",q1="nominal",US="locus",v$="index";class x${constructor(t){J(this,we);J(this,Vi);J(this,nc,{domain:new Set,range:new Set});J(this,zn);J(this,oh,new Set);this.channel=t,this.members=[],this.type=null,this.name=void 0}addEventListener(t,n){B(this,nc)[t].add(n)}removeEventListener(t,n){B(this,nc)[t].delete(n)}addMember(t){var a;const{channel:n,channelDef:r}=t,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&&!QE(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(t)}getDataDomain(){return this.members.map(t=>{var n;return(n=t.dataDomainSource)==null?void 0:n.call(t,t.channel,this.type)}).filter(t=>!!t).reduce((t,n)=>t.extendAll(n))}reconfigure(){const t=B(this,zn);if(!t||t.type=="null")return;const n=Q(this,we,z7).call(this),r=t.domain(),i=Q(this,we,ov).call(this,!0);if(TS({...i,range:void 0},t),t.props=i,Q(this,we,av).call(this),Ot(t.type)&&se(this,Vi,Q(this,we,lv).call(this)),!n){Q(this,we,Ki).call(this,"domain");return}const o=t.domain();id(o,r)||(this.isZoomable()?t.domain(r):Q(this,we,Cs).call(this)?(t.domain(r),this.zoomTo(o,500)):Q(this,we,Ki).call(this,"domain"))}get scale(){if(B(this,zn))return B(this,zn);const t=Q(this,we,ov).call(this),n=ZU({...t,range:void 0});n.props=t,"unknown"in n&&n.unknown(null),se(this,zn,n),Q(this,we,av).call(this),OU(n)&&n.genome(this.getGenome()),Ot(n.type)&&se(this,Vi,Q(this,we,lv).call(this));const r=n.range;if(r){const i=()=>Q(this,we,Ki).call(this,"range");n.range=function(o){if(arguments.length)r(o),i();else return r()},i()}return n}getDomain(){return this.scale.domain()}getComplexDomain(){var t;return((t=this.getGenome())==null?void 0:t.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return Q(this,we,Cs).call(this)&&id(Q(this,we,fg).call(this),this.getDomain())}isZoomable(){return Q(this,we,Cs).call(this)&&!!this.scale.props.zoom}zoom(t,n,r){if(!Q(this,we,Cs).call(this))return!1;const i=this.scale,o=i.domain();let a=[...o],s=i.invert(n);switch(i.props.reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":a=S9(a,r||0),a=bg(a,s,t);break;case"log":a=_9(a,r||0),a=_v(a,s,t);break;case"pow":case"sqrt":{const l=i;a=C9(a,r||0,l.exponent()),a=yg(a,s,t,l.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return B(this,Vi)&&(a=T9(a,B(this,Vi)[0],B(this,Vi)[1])),[0,1].some(l=>a[l]!=o[l])?(i.domain(a),Q(this,we,Ki).call(this,"domain"),!0):!1}async zoomTo(t,n=!1){if(Ac(n)&&(n=n?700:0),!Q(this,we,Cs).call(this))throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(t),i=B(this,we,rv).animator,o=this.scale,a=o.domain();if(n>0&&a.length==2){const s=a[1]-a[0],l=r[1]-r[0],c=a[0]+s/2,u=r[0]+l/2,f=a[0]==r[0],h=a[1]==r[1];await i.transition({duration:n,easingFunction:m$,onUpdate:d=>{const p=w$(s,l,d),g=s==l?d:(s-p)/(s-l),b=g*u+(1-g)*c,m=[f?a[0]:b-p/2,h?a[1]:b+p/2];o.domain(m),Q(this,we,Ki).call(this,"domain")}}),o.domain(r),Q(this,we,Ki).call(this,"domain")}else o.domain(r),i==null||i.requestRender(),Q(this,we,Ki).call(this,"domain")}resetZoom(){if(!Q(this,we,Cs).call(this))throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=Q(this,we,fg).call(this);return[0,1].some(r=>n[r]!=t[r])?(B(this,zn).domain(n),Q(this,we,Ki).call(this,"domain"),!0):!1}getZoomLevel(){return this.isZoomable()?Lh(B(this,Vi))/Lh(this.scale.domain()):1}getAxisLength(){if(this.channel!=="x"&&this.channel!=="y")throw new Error("Axis length is only defined for x and y channels!");const t=this.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}getGenome(){var n;if(this.type!=="locus")return;const t=(n=B(this,we,rv).genomeStore)==null?void 0:n.getGenome();if(!t)throw new Error("No genome has been defined!");return t}invertToComplex(t){const n=this.scale;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 n0(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&f$(t)?this.getGenome().toContinuousInterval(t):t}}Vi=new WeakMap,nc=new WeakMap,zn=new WeakMap,oh=new WeakMap,we=new WeakSet,nv=function(){return this.members[0].view},rv=function(){return B(this,we,nv).context},Ki=function(t){for(const n of B(this,nc)[t].values())n({type:t,scaleResolution:this})},iv=function(){return!!Q(this,we,sv).call(this)},z7=function(){const t=B(this,zn);if(!t)return!1;const n=t.domain();return Ot(t.type)?n.length>2||n.length==2&&(n[0]!==0||n[1]!==0):n.length>0},U7=function(){const t=this.members.map(n=>n.channelDef.scale).filter(n=>n!==void 0);return t0(t,"scale",["domain"])},ov=function(t=!1){const n=Q(this,we,U7).call(this);if(n===null||n.type=="null")return{type:"null"};const r={...Q(this,we,$7).call(this,this.type),...n};r.type||(r.type=A$(this.channel,this.type));const i=Q(this,we,fg).call(this,t);return i&&i.length>0?r.domain=i:Si(r.type)&&(r.domain=new OS),!r.domain&&r.domainMid!==void 0&&(r.domain=[r.domainMin??0,r.domainMax??1]),this.channel=="y"&&Si(r.type)&&r.reverse==null&&(r.reverse=!0),r.range&&r.scheme&&delete r.scheme,!("zoom"in r)&&["index","locus"].includes(r.type)&&(r.zoom=!0),E$(r,this.channel),r},av=function(){const t=B(this,zn).props,n=t.range;if(B(this,oh).forEach(i=>i.invalidate()),!n||!Jt(n))return;const r=(i,o)=>o?i.slice().reverse():i;if(n.some(dn)){let i;const o=()=>{B(this,zn).range(r(i.map(a=>a()),t.reverse))};i=n.map(a=>{if(dn(a)){const s=B(this,we,nv).paramMediator.createExpression(a.expr);return s.addListener(o),B(this,oh).add(s),()=>s(null)}else return()=>a}),o()}else B(this,zn).range(r(n,t.reverse))},fg=function(t=!1){return Q(this,we,sv).call(this)??(this.type==US?this.getGenome().getExtent():t?this.getDataDomain():[])},sv=function(){const t=this.members.map(n=>n.channelDef).filter(n=>{var r;return(r=n.scale)==null?void 0:r.domain}).map(n=>NS(n.type,this.fromComplexInterval(n.scale.domain)));if(t.length>0)return t.reduce((n,r)=>n.extendAll(r))},Cs=function(){const t=this.scale.type;return Ot(t)},lv=function(){const t=this.scale.props,n=t.zoom;if(S$(n)&&Jt(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():B(this,zn).domain()},$7=function(t){const n=this.channel,r={};return Q(this,we,iv).call(this)&&(r.zero=!1),Cu(n)?r.nice=!Q(this,we,iv).call(this):wo(n)?r.scheme=t==q1?"tableau10":t==j1?"blues":"viridis":Qd(n)?r.range=n=="shape"?["circle","square","triangle-up","cross","diamond"]:[]:n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r};function A$(e,t){if(t==v$||t==US){if(WE(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=["sample"].includes(e)?"null":n[e]?n[e][[q1,j1,zS].indexOf(t)]:t==zS?"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 E$(e,t){Cu(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&Ot(e.type)&&(e.clamp=!0)}function S$(e){return en(e)}function W1(e){const t=new Set;function n(r){for(const i of Object.values(r.resolutions.scale))t.add(i)}for(const r of tn(e)){r.visit(n);for(const i of r.getDataAncestors()){if(!i.options.contributesToScaleDomain)break;n(i)}}t.forEach(r=>r.reconfigure())}function Y1(...e){for(const t of e)if(t!==void 0)return t}class _${constructor(t){this.channel=t,this.members=[]}get scaleResolution(){var t;return(t=Gn(this.members))==null?void 0:t.view.getScaleResolution(this.channel)}addMember(t){const{view:n}=t,r=n.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! Channel: ${this.channel}, existing views: [${this.members.map(i=>i.view.getPathString()).join(", ")}], new view: ${n.getPathString()}.`);this.members.push(t)}getAxisProps(){return e0(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:t0(t.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const t=o=>{var s;const a=wz(o.view,o.channel);if(!Wn(a))return{member:o,explicitTitle:Y1("axis"in a?(s=a.axis)==null?void 0:s.title:void 0,a.title),implicitTitle:Y1(Wr(a)?a.field:void 0,_u(a)?a.expr:void 0)}},n=this.members.map(t),r=n.filter(o=>{var a;if(QE(o.member.channel)&&!o.explicitTitle){const s=Ta(o.member.channel);return((a=n.find(l=>l.member.view==o.member.view&&l.member.channel==s))==null?void 0:a.explicitTitle)===void 0}return!0}),i=new Set(r.map(o=>Y1(o.explicitTitle,o.implicitTitle)).filter(We));return i.size?[...i].join(", "):null}}function Pu(e,t,{spacing:n,devicePixelRatio:r,offset:i,reverse:o}={}){n=n||0,i=i||0;let a=0,s=0;for(const p of e)a+=rl(p.px)+(Z1(p)?0:n),s+=rl(p.grow);a-=n;const l=Math.max(0,t-a),c=r!==void 0?p=>Math.round(p*r)/r:p=>p,u=[],f=[],h=p=>{const g=u.length;if(!g)return;const b=(p?n:0)*(o?-1:1);d-=b;for(let m=0;m<g;m++)f.push({location:d+(m+1)/(g+1)*b,size:0});d+=b,u.length=0};let d=o?Math.max(t,a):0+i;if(e.length==1&&Z1(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const g=e[p];if(Z1(g))u.push(g);else{h(f.length>0);const b=rl(g.px)+(s?rl(g.grow)/s*l:0);o&&(d-=b),f.push({location:c(d),size:c(b)}),o?d-=n:d+=b+n}}return d+=o?n:-n,h(!1),f}function C$(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}}function k$(e){const t={px:0,grow:0};for(const n of e)t.px+=rl(n.px),t.grow+=rl(n.grow);return t}const Yw=class Yw{constructor(t,n){J(this,ah);this.width=t,this.height=n}addPadding(t){return Q(this,ah,cv).call(this,t.width,t.height)}subtractPadding(t){return Q(this,ah,cv).call(this,-t.width,-t.height)}isGrowing(){return!!(this.width.grow||this.height.grow)}};ah=new WeakSet,cv=function(t,n){return new Yw({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};let ki=Yw;const Ou=Object.freeze({px:0,grow:0}),$S=new ki(Ou,Ou);function Z1(e){return!e.px&&!e.grow}function rl(e){return e||0}function T$(e){return e&&(vt(e.px)||vt(e.grow))}function HS(e){if(WS(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(T$(e))return e;if(vt(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 I$(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 R$(e,t){const n=vt(t)?()=>t:t;return{get location(){return e.location+n()},get size(){return e.size}}}function D$(e,t){const n=vt(t)?()=>t:t;return{get location(){return e.location*n()},get size(){return e.size*n()}}}function GS(e,t){return t>=e.location&&t<e.location+e.size}class Nt{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 Nt(this.top+t,this.right+t,this.bottom+t,this.left+t)}add(t){return new Nt(this.top+t.top,this.right+t.right,this.bottom+t.bottom,this.left+t.left)}subtract(t){return new Nt(this.top-t.top,this.right-t.right,this.bottom-t.bottom,this.left-t.left)}union(t){return new Nt(Math.max(this.top,t.top),Math.max(this.right,t.right),Math.max(this.bottom,t.bottom),Math.max(this.left,t.left))}getHorizontal(){return new Nt(0,this.right,0,this.left)}getVertical(){return new Nt(this.top,0,this.bottom,0)}get horizontalTotal(){return this.left+this.right}get verticalTotal(){return this.top+this.bottom}static createFromConfig(t){return typeof t=="number"?this.createUniformPadding(t):t?this.createFromRecord(t):Q1}static createFromRecord(t){return new Nt(t.top,t.right,t.bottom,t.left)}static zero(){return Q1}static createUniformPadding(t){return new Nt(t,t,t,t)}}const Q1=Nt.createUniformPadding(0);Object.freeze(Q1);function Da(e,t){return!t||/^(data:|([A-Za-z]+:)?\/\/)/.test(e)||e.startsWith("/")?e:(t.endsWith("/")||(t+="/"),t+e)}function B$(e){if(!e)return e;if(/[?#]/.test(e))throw new Error(`Invalid base URL: ${e} - cannot contain query or hash.`);return e.endsWith("/")?e:e+"/"}const VS="VISIT_SKIP",Ba="VISIT_STOP",jS=e=>e;class qS{constructor(t,n,r,i,o,a={}){J(this,ci);J(this,rc,{});J(this,sh,{});J(this,lh,{});J(this,ch);J(this,uh);Kt(this,"opacityFunction",jS);Kt(this,"facetCoords",new gi([],JSON.stringify));var s;if(!t)throw new Error("View spec must be defined!");if(this.context=n,this.layoutParent=r,this.dataParent=i,this.name=t.name||o,this.spec=t,this.resolutions={scale:{},axis:{}},dS(this),this.options={blockEncodingInheritance:!1,contributesToScaleDomain:!0,...a},this.needsAxes={x:!1,y:!1},this.paramMediator=new dz(()=>{var l;return(l=this.dataParent)==null?void 0:l.paramMediator}),t.params)for(const l of t.params)this.paramMediator.registerParam(l);if(!((s=this.layoutParent)!=null&&s.options.layeredChildren)){const l=c=>this.paramMediator.findMediatorForParam(c)?void 0:this.paramMediator.allocateSetter(c,0);se(this,uh,l("height")),se(this,ch,l("width"))}}get coords(){return this.facetCoords.values().next().value}getPadding(){return this._cache("size/padding",()=>Nt.createFromConfig(this.spec.padding))}getOverhang(){return Nt.zero()}isScrollable(){return this.spec.viewportWidth!=null||this.spec.viewportHeight!=null}getSize(){return this._cache("size/size",()=>this.isConfiguredVisible()?new ki(Q(this,ci,Ih).call(this,"width"),Q(this,ci,Ih).call(this,"height")):$S)}getViewportSize(){if(!this.isScrollable())return this.getSize();if(!this.isConfiguredVisible())return $S;const t=this.getSize();return new ki(Q(this,ci,Ih).call(this,"viewportWidth")??t.width,Q(this,ci,Ih).call(this,"viewportHeight")??t.height)}isConfiguredVisible(){return this.context.isViewConfiguredVisible(this)}isVisibleInSpec(){return this.spec.visible??!0}isVisible(){return this.getLayoutAncestors().every(t=>t.isConfiguredVisible())}getEffectiveOpacity(){var t;return this.opacityFunction(((t=this.layoutParent)==null?void 0:t.getEffectiveOpacity())??1)}getPathString(){return this.getLayoutAncestors().map(t=>t.name).reverse().join("/")}getLayoutAncestors(){return Q(this,ci,uv).call(this,"layoutParent")}getDataAncestors(){return Q(this,ci,uv).call(this,"dataParent")}handleBroadcast(t){for(const n of B(this,rc)[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=B(this,rc)[t];r||(r=[],B(this,rc)[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?B(this,sh):B(this,lh);for(const o of i[n.type]||[])o(t,n)}addInteractionEventListener(t,n,r){const i=r?B(this,sh):B(this,lh);let o=i[t];o||(o=[],i[t]=o),o.push(n)}visit(t){try{const n=t(this);if(t.postOrder&&t.postOrder(this),n!==Ba)return n}catch(n){throw n.view=this,n}}getDescendants(){const t=[];return this.visit(n=>{t.push(n)}),t}configureViewOpacity(){(!this.opacityFunction||this.opacityFunction===jS)&&(this.opacityFunction=M$(this))}onBeforeRender(){}render(t,n,r={}){var i,o;r.firstFacet&&this.facetCoords.clear(),this.facetCoords.set(r.facetId,r.clipRect?n.intersect(r.clipRect):n),(i=B(this,ch))==null||i.call(this,n.width),(o=B(this,uh))==null||o.call(this,n.height)}getEncoding(){const t=this.dataParent&&!this.options.blockEncodingInheritance?this.dataParent.getEncoding():{},n=this.spec.encoding||{},r={...t,...n};for(const[i,o]of Object.entries(r))o===null&&delete r[i];return r}getFacetAccessor(t){if(this.layoutParent)return this.layoutParent.getFacetAccessor(this)}getFacetFields(t){var r;const n=this.getEncoding().sample;return Wr(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(t){const n=Ta(t);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(t){const n=Ta(t);return this.getDataAncestors().map(r=>r.resolutions.axis[n]).find(r=>r)}getConfiguredResolution(t,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[t]}getConfiguredOrDefaultResolution(t,n){return this.getConfiguredResolution(t,n)??this.getConfiguredResolution("default",n)??this.getDefaultResolution(t,n)}getDefaultResolution(t,n){return"independent"}getBaseUrl(){return Fu(()=>{var t;return(t=this.dataParent)==null?void 0:t.getBaseUrl()},B$(this.spec.baseUrl))}isPickingSupported(){return!0}getTitleText(){const t=this.spec.title;if(t)return We(t)?t:dn(t.text)?this.paramMediator.evaluateAndGet(t.text.expr):t.text}_cache(t,n){return e0(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":Ru(this,t);break;case"ancestors":for(const r of this.getLayoutAncestors())Ru(r,t);break;case"progeny":this.visit(r=>Ru(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}rc=new WeakMap,sh=new WeakMap,lh=new WeakMap,ch=new WeakMap,uh=new WeakMap,ci=new WeakSet,Ih=function(t){var i;let n=this.spec[t];const r=t=="viewportWidth"||t=="viewportHeight";if(WS(n)){if(r)throw new Ra(`Cannot use step-based size with "${t}"!`,this);const o=n.step,a=(i=this.getScaleResolution(t=="width"?"x":"y"))==null?void 0:i.scale;if(a){let s=0;if(Si(a.type))s=a.domain().length;else if(["locus","index"].includes(a.type)){const c=a.domain();s=Gn(c)-c[0]}else throw new Ra(`Cannot use step-based size with "${a.type}" scale!`,this);const l=a;return s=c1(s,l.paddingInner(),l.paddingOuter()),{px:s*o,grow:0}}else throw new Ra("Cannot use 'step' size with missing scale!",this)}else return(n&&HS(n))??(r?void 0:{px:0,grow:1})},uv=function(t){const n=[];let r=this;do n.push(r),r=r[t];while(r);return n};function F$(e){return"unitsPerPixel"in e}function M$(e){const t="opacity"in e.spec?e.spec.opacity:void 0;if(t!==void 0){if(vt(t))return n=>n*t;if(F$(t)){const n=o=>{var s;const a=(s=e.getScaleResolution(o))==null?void 0:s.scale;if(["linear","index","locus"].includes(a==null?void 0:a.type))return a},r=t.channel?n(t.channel):n("x")??n("y");if(!r)throw new Ra("Cannot find a resolved quantitative scale for dynamic opacity!",e);const i=t1().domain(t.unitsPerPixel).range(t.values).clamp(!0);return o=>{const s=Lh(r.domain())/1e3;return i(s)*o}}else if(dn(t)){const n=e.paramMediator.createExpression(t.expr);return n.addListener(()=>e.context.animator.requestRender()),r=>n(null)*r}}return n=>n}const WS=e=>!!(e!=null&&e.step),P$={point:bU,rect:hU,rule:xU,link:TU,text:MU};class Tt extends qS{constructor(n,r,i,o,a,s){super(n,r,i,o,a,s);J(this,ig);J(this,fh);this.spec=n;const l=P$[this.getMarkType()];if(l)this.mark=new l(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.resolve(),se(this,fh,this.paramMediator.allocateSetter("zoomLevel",1)),["x","y"].forEach(c=>{var u;return(u=this.getScaleResolution(c))==null?void 0:u.addEventListener("domain",()=>B(this,fh).call(this,Math.sqrt(this.getZoomLevel())))}),this.needsAxes={x:!0,y:!0},Q(this,ig,H7).call(this)}render(n,r,i={}){super.render(n,r,i),this.isConfiguredVisible()&&(n.pushView(this,r),n.renderMark(this.mark,i),n.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(n){n||(this.resolve("scale"),this.resolve("axis"));const r=this.mark.encoding;for(const[i,o]of Object.entries(r)){if(!Rn(o))continue;const a=Ta(o.resolutionChannel??i);if(!Js(a)||n=="axis"&&!Cu(a))continue;let s=this;for(;(s.getConfiguredOrDefaultResolution(a,n)=="forced"||s.dataParent&&["shared","excluded","forced"].includes(s.dataParent.getConfiguredOrDefaultResolution(a,n)))&&s.getConfiguredOrDefaultResolution(a,n)!="excluded";)s=s.dataParent;if(n=="axis"&&Cu(i)&&WE(a))s.resolutions[n][a]||(s.resolutions[n][a]=new _$(a)),s.resolutions[n][a].addMember({view:this,channel:i,channelDef:o});else if(n=="scale"&&Js(i)){if(!s.resolutions[n][a]){const c=new x$(a);s.resolutions[n][a]=c,c.addEventListener("range",u=>{var f;(f=this.context.glHelper)==null||f.createRangeTexture(u.scaleResolution,!0)})}const l=this.getLayoutAncestors().some(c=>!c.options.contributesToScaleDomain)||Rn(o)&&o.contributesToScaleDomain===!1?void 0:this.extractDataDomain.bind(this);s.resolutions[n][a].addMember({view:this,channel:i,channelDef:o,dataDomainSource:l})}}}getDataAccessor(n){var r;return(r=this.mark.encoders[n])==null?void 0:r.dataAccessor}getFacetAccessor(n){const r=this.getDataAccessor("sample");return r||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}extractDataDomain(n,r){var o;let i=NS(r);return(((o=this.mark.encoders[n])==null?void 0:o.accessors)??[]).filter(a=>a.scaleChannel).forEach(a=>{if(a.constant)i.extend(a({}));else{const s=this.getCollector();s!=null&&s.completed&&s.visitData(l=>i.extend(a(l)))}}),i}getZoomLevel(){const n=r=>{var i;return((i=this.getScaleResolution(r))==null?void 0:i.getZoomLevel())??1};return Ks.map(n).reduce((r,i)=>r*i,1)}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0),n.target=this,!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return n=="x"?"shared":"independent"}}fh=new WeakMap,ig=new WeakSet,H7=function(){for(const[n,r]of this.paramMediator.paramConfigs){if(!("select"in r))continue;const i=r.select;if(T1(i)){let a=-1;const s=this.paramMediator.getSetter(n),l=()=>{var f;const u=this.context.getCurrentHover();return((f=u==null?void 0:u.mark)==null?void 0:f.unitView)===this?u.datum:null},c=!We(i)&&"on"in i?i.on:"click";this.addInteractionEventListener(["mouseover","pointerover"].includes(c)?"mousemove":"click",(u,f)=>{const h=f.uiEvent,d=l(),p=d?d[qn]:-1;if(HE(i))if(h.shiftKey){if(d){const b=this.paramMediator.getValue(n);s(lz(b,{toggle:[d]}))}}else s(zE(d?[d]:null));else if(p!=a){a=p;const g=NE(d);s(g)}})}}};function*X1(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of X1(r,[...t,n]))yield i;else yield[[...t,n],r]}const YS=2147483647,O$=ZS([YS]);function ZS(e){let t=0;for(let n=0,r=e.length;n<r;n++)t=Math.max(t,e[n]);return Math.floor(Math.log2(t)/4)+1}function L$(e){const t=ZS(e);let n=Array.from({length:e.length},(o,a)=>a),r=new Array(e.length);const i=new Array(16);for(let o=0;o<t;o++){i.fill(0);const a=o*4,s=Math.pow(16,o),l=c=>{const u=e[n[c]];return o>=O$?u>YS?Math.floor(u/s)%16:0:u>>a&15};for(let c=0;c<e.length;c++)i[l(c)]++;for(let c=1;c<16;c++)i[c]+=i[c-1];for(let c=e.length-1;c>=0;c--)r[--i[l(c)]]=n[c];[n,r]=[r,n]}return n}class Lu extends Eu{constructor(n){super();J(this,Un);J(this,ji,[]);J(this,hh,je(qn));J(this,ys,[]);J(this,ws);this.params=n??{type:"collect"},this.observers=[],this.facetBatches=new gi([],JSON.stringify),Q(this,Un,fv).call(this)}get behavior(){return _1}get label(){return"collect"}reset(){super.reset(),Q(this,Un,fv).call(this)}handle(n){B(this,ji).push(n)}beginBatch(n){sz(n)&&(se(this,ji,[]),this.facetBatches.set(tn(n.facetId),B(this,ji)))}complete(){var o,a;se(this,ji,[]);const n=(o=this.params)==null?void 0:o.sort,r=n?Cv(n.field,n.order):void 0,i=s=>{r&&s.sort(r)};if((a=this.params.groupby)!=null&&a.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const s=this.facetBatches.get(void 0),l=this.params.groupby.map(u=>je(u)),c=l.length>1?_c(s,...l):N$(s,l[0]);this.facetBatches.clear();for(const[u,f]of X1(c))this.facetBatches.set(u,f)}for(const s of this.facetBatches.values())i(s);Q(this,Un,G7).call(this),Q(this,Un,hv).call(this),super.complete();for(const s of this.observers)s(this)}repropagate(){for(const n of this.children)n.reset();Q(this,Un,hv).call(this);for(const n of this.children)n.complete()}getData(){switch(Q(this,Un,dv).call(this),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const n=this.facetBatches;return{[Symbol.iterator]:function*(){for(const i of n.values())yield*i}}}}}visitData(n){Q(this,Un,dv).call(this);for(const r of this.facetBatches.values())for(let i=0;i<r.length;i++)n(r[i])}getItemCount(){let n=0;for(const r of this.facetBatches.values())n+=r.length;return n}findDatumByUniqueId(n){if(!B(this,ys).length)return;const r=Rs(l=>l.start).right,i=B(this,hh),o=Rs(l=>i(a(l))).left,a=l=>{const c=r(B(this,ws),l),u=B(this,ws)[c-1];return!u||l>=u.stop?void 0:this.facetBatches.get(u.facetId)[l-u.start]},s=o(B(this,ys),n);if(s>=0){const l=a(B(this,ys)[s]);if(l&&i(l)===n)return l}}}ji=new WeakMap,hh=new WeakMap,ys=new WeakMap,ws=new WeakMap,Un=new WeakSet,fv=function(){se(this,ji,[]),this.facetBatches.clear(),this.facetBatches.set(void 0,B(this,ji))},hv=function(){if(this.children.length)for(const[n,r]of this.facetBatches.entries()){if(n){const i={type:"facet",facetId:n};for(const o of this.children)o.beginBatch(i)}for(let i=0,o=r.length;i<o;i++)this._propagate(r[i])}},dv=function(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")},G7=function(){var a;se(this,ws,[]);const n=(a=this.facetBatches.values().next().value)==null?void 0:a[0];if(n==null||!(qn in n))return;let r=0;const i=[],o=B(this,hh);for(const[s,l]of this.facetBatches){B(this,ws).push({start:r,stop:r+l.length,facetId:s}),r+=l.length;for(let c=0,u=l.length;c<u;c++)i.push(o(l[c]))}se(this,ys,L$(i))};function N$(e,t){const n=new Map;for(let r=0,i=e.length;r<i;r++){const o=e[r],a=t(o);let s=n.get(a);s||(s=[],n.set(a,s)),s.push(o)}return n}class Nu{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,o=this.values[i];if(n>=o)break;this.ids[r]=this.ids[i],this.values[r]=o,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 o=0;for(;o<i;){let a=(o<<1)+1;const s=a+1;let l=this.ids[a],c=this.values[a];const u=this.values[s];if(s<this.length&&u<c&&(a=s,l=this.ids[s],c=u),c>=r)break;this.ids[o]=l,this.values[o]=c,o=a}this.ids[o]=n,this.values[o]=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 z$ extends kt{get behavior(){return qr}constructor(t){super(t),this.params=t,this.startAccessor=je(t.start),this.endAccessor=je(t.end),this.chromAccessor=t.chrom?je(t.chrom):n=>{},this.weightAccessor=t.weight?je(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 Nu}reset(){super.reset(),this.initialize()}initialize(){const t=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,o=this.endAccessor,a=this.chromAccessor,s=this.weightAccessor;let l,c,u,f=0,h=NaN;const d=this.ends;d.clear();const p=m=>{this._propagate(m),l=null},g=(m,v,x)=>{if(m==v)return;let A=!1;l&&(l[t]===x?(l[n]=v,A=!0):l[t]!=0&&p(l)),A||(l=this.createSegment(m,v,x,u))},b=()=>{let m=0;for(;(m=d.peekValue())!==void 0;)g(h,m,f),h=m,f-=d.pop();h=NaN,l&&p(l)};this.handle=m=>{const v=i(m);let x=0;for(;(x=d.peekValue())!==void 0&&x<v;)g(h,x,f),h=x,f-=d.pop();if(r){let S=a(m);S!==c&&(b(),u=S,c=u)}isNaN(h)||g(h,v,f),h=v;const A=s(m);f+=A,d.push(A,o(m))},this.complete=()=>{b(),super.complete()},this.beginBatch=m=>{b(),c=null,super.beginBatch(m)}}}function U$(e,t,n=0,r=e.length){const i=new Nu,o=r-n;let a;for(a=0;a<t&&a<o;a++)i.push(a,e[n+a]);for(;a<o;a++){const c=e[n+a];c>=i.peekValue()&&(i.push(a,c),i.pop())}const s=[];let l;for(;(l=i.pop())!==void 0;)s.push(n+l);return s.reverse()}class $${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 o=this._findSlot(t,n,i);return o>=0?o: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++,o=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=t,this.lowerLimits[o]=n,this.upperLimits[o]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=o,!0}}class H$ extends kt{get behavior(){return _1}constructor(t,n){if(super(t),this.params=t,this._data=[],this.channel=t.channel??"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=je(this.params.pos),this.posBisector=Rs(this.posAccessor),this.scoreAccessor=je(this.params.score),this.widthAccessor=je(this.params.width),this.laneAccessor=this.params.lane?je(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 $$(200));this.schedule(),super.complete()}_filterAndPropagate(){super.reset();const t=this.resolution.scale,n=this.resolution.getAxisLength();if(!n)return;for(const a of this.reservationMaps.values())a.reset();const r=t.domain(),o=U$(this._scores,70,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const a of o){const s=this._data[a],l=t(this.posAccessor(s))*n,c=this.widthAccessor(s)/2+this.padding;this.reservationMaps.get(this.laneAccessor(s)).reserve(l-c,l+c)&&this._propagate(s)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(t){this._data.push(t)}}class G$ extends kt{constructor(t,n){super(t,n),this.params=t,this.predicate=void 0}initialize(){let t="";if(V$(this.params))t=this.params.expr;else if(j$(this.params))t=UE(this.params);else throw new Error("Invalid filter params: "+JSON.stringify(this.params));this.predicate=this.paramMediator.createExpression(t),this.predicate.addListener(()=>this.repropagate())}handle(t){this.predicate(t)&&this._propagate(t)}}function V$(e){return"expr"in e}function j$(e){return"param"in e}class q$ extends kt{get behavior(){return qr}constructor(t){super(t),this.params=t;const n=t.index;if(t.fields){const r=tn(t.fields).map(o=>je(o)),i=tn(t.as||t.fields);if(r.length!==i.length)throw new Error(`Lengths of "fields" (${r.length}), and "as" (${i.length}) do not match!`);this.handle=o=>{const a=r.map((l,c)=>l(o)??[]),s=a[0].length;for(let l=0;l<s;l++){const c=Object.assign({},o);for(let u=0;u<r.length;u++)c[i[u]]=l<a[u].length?a[u][l]:null;n&&(c[n]=l),this._propagate(c)}}}else this.handle=r=>{for(let i=0;i<r.length;i++){const o=Object.assign({},r[i]);n&&(o[n]=i),this._propagate(o)}}}}const W$=48;function*Y$(e,t=","){const n=t.charCodeAt(0);let r=0;for(let i=0;i<e.length;i++){const o=e.charCodeAt(i);o==n?(yield r,r=0):r=r*10+o-W$}yield r}class Z$ extends kt{get behavior(){return qr}constructor(t){super(t);const n=je(t.exons??"exons"),r=je(t.start??"start"),[i,o]=t.as||["exonStart","exonEnd"];this.handle=a=>{let s=r(a),l=s,c=!0;const u=n(a);for(const f of Y$(u)){if(c)l=s+f;else{s=l+f;const h=Object.assign({},a);h[i]=l,h[o]=s,this._propagate(h)}c=!c}}}}class Q$ extends kt{get behavior(){return qr}constructor(t){super(t);const n=tn(t.field).map(o=>je(o)),r=tn(t.separator),i=tn(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=o=>{if(n.some(l=>!l(o)))return;const a=n.map((l,c)=>l(o).split(r[c]));X$(a,o);const s=a[0].length;for(let l=0;l<s;l++){const c=Object.assign({},o);for(let u=0;u<n.length;u++)c[i[u]]=a[u][l];this._propagate(c)}}}}function X$(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 K$ extends kt{get behavior(){return yo}constructor(t,n){super(t,n),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=this.paramMediator.createExpression(this.params.expr),this.fn.addListener(()=>this.repropagate())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class QS extends kt{get behavior(){return yo}constructor(t,n){t={channel:"x",...t},super(t),this.params=t;const r=t.channel;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=je(t.chrom),a=tn(t.pos).map(p=>je(p)),s=tn(t.as);if(a.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const l=tn(t.offset);let c;if(l.length==0)c=new Array(a.length).fill(0);else if(l.length==1)c=new Array(a.length).fill(l[0]);else if(l.length==a.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(`
|
1968
|
-
`));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(o(p)),a),this._propagate(p)}}}const XS={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 J$ extends kt{get behavior(){return yo}constructor(t){super(t),this.params=t;const n=O1(XS),r=je(t.field),i=t.as,o=t.fontSize;this.handle=a=>{const s=r(a);s!==void 0?a[i]=n.measureWidth(s,o):a[i]=0,this._propagate(a)}}}const eH=65536;class tH extends kt{get behavior(){return yo}constructor(t){super(t),this.params=t}reset(){super.reset(),this.initialize()}initialize(){const t=this.params,n=t.as||"lane",r=vt(t.spacing)?t.spacing:1,i=je(t.start),o=je(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const a=new Float64Array(eH),s=je(t.preference),l=t.preferredOrder;let c=1/0;this.handle=u=>{const f=i(u);f<c&&a.fill(-1/0),c=f;const h=l.indexOf(s(u));let d=-1;if(h>=0&&a[h]<f)d=h;else{const p=i(u);for(d=0;d<a.length&&!(a[d]<p);d++);if(d>=a.length)throw new Error("Out of lanes!")}a[d]=o(u)+r,u[n]=d,this._propagate(u)}}else{const a=new Nu,s=new Nu;let l=-1/0,c=0;this.handle=u=>{const f=i(u);for(;a.length&&(a.peekValue()<=f||f<l);){const d=a.pop();s.push(d,d)}l=f;let h=s.pop();h===void 0&&(h=c++),u[n]=h,this._propagate(u),a.push(h,o(u)+r)}}}}class nH extends kt{get behavior(){return qr}constructor(t){if(super(t),this.params=t,t.as&&t.as.length!=t.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=t.fields.map(i=>je(i)),r=t.as?t.as:n.map(Ts);this.handle=i=>{const o={};for(let a=0;a<n.length;a++)o[r[a]]=n[a](i);this._propagate(o)}}}class rH extends kt{get behavior(){return yo}constructor(t){super(t),this.params=t;const n=new RegExp(t.regex),r=typeof t.as=="string"?[t.as]:t.as,i=je(t.field);this.handle=o=>{const a=i(o);if(We(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 l=0;l<r.length;l++)o[r[l]]=s[l+1]}else if(t.skipInvalidInput)for(let l=0;l<r.length;l++)o[r[l]]=void 0;else throw new Error(`"${a}" 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 a}, field content: "${a}".`);this._propagate(o)}}}class iH extends kt{get behavior(){return qr}constructor(t){super(t),this.params=t;const n=tn(t.columnRegex).map(h=>new RegExp(h)),r=tn(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,o=t.asKey||"sample";let a,s,l;const c=h=>{var b;const d=Object.keys(h);for(const m of n)if(!d.some(v=>m.test(v)))throw new Error(`No columns matching the regex ${m.toString()} found in the data!`);const p=new Map;for(const[m,v]of n.entries())for(const x of d){const A=(b=v.exec(x))==null?void 0:b[1];if(A!==void 0){let S=p.get(A);S||(S=[],p.set(A,S)),S[m]=x}}a=[...p.entries()],s=d.filter(m=>!n.some(v=>v.test(m))&&!(i&&i.test(m)));const g=[...s.map(m=>JSON.stringify(m)+": datum["+JSON.stringify(m)+"]"),JSON.stringify(o)+": sampleId",...r.map((m,v)=>JSON.stringify(m)+`: datum[attrs[${v}]]`)];l=new Function("datum","sampleId","attrs",`return {
|
1967
|
+
`).map(t=>{const n=t.split(" ");return{name:n[0],size:parseInt(n[1])}})}const l$=/^([A-Za-z]+:)?\/\//;function Fu(e,t){if(t&&l$.test(t))return t;const n=typeof e=="function"?e():e;if(!n)return t;if(!t)return n;if(/[#?]/.test(n))throw new Error(`Cannot append to a url with query or hash. Append: ${t}, base: ${n}`);return FS(n)+t}function FS(e){const t=e.replace(/[^/]*$/,"");return t===""?void 0:t.endsWith("://")?e+"/":t}class c${constructor(t){if(this.config={name:"custom",...t},"baseUrl"in t)throw new Error("The `baseUrl` property in genome config has been removed in GenomeSpy v0.52.0. Use `url` instead. See https://genomespy.app/docs/genomic-data/genomic-coordinates/.");if(!H1(t))throw new Error("Not a genome configuration: "+JSON.stringify(t));if(this.chromosomes=[],this.cumulativeChromPositions=new Map,this.chromosomesByName=new Map,this.startByIndex=[],this.totalSize=0,MS(this.config))this.setChromSizes(this.config.contigs);else if(!G1(this.config)){const n=s$(this.config.name);if(n)this.setChromSizes(n);else throw new Error(`Unknown genome: ${this.config.name}. Please provide contigs or a URL. See https://genomespy.app/docs/genomic-data/genomic-coordinates/.`)}}get name(){return this.config.name}async load(t){if(G1(this.config))try{const n=Fu(t,this.config.url),r=await fetch(n);if(!r.ok)throw new Error(`${r.status} ${r.statusText}`);this.setChromSizes(u$(await r.text()))}catch(n){throw new Error(`Could not load chrom sizes: ${this.config.url}. Reason: ${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,o={...t[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(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=pi(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 a$(...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 o=this.chromosomes.findIndex(s=>s.name===n.chrom),a=this.chromosomes.findIndex(s=>s.name===r.chrom);i.push({chrom:n.chrom,startPos:n.pos,endPos:this.chromosomes[o].size});for(let s=o+1;s<a;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,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 u$(e){return j9(e).map(([t,n])=>({name:t,size:parseInt(n)}))}function n0(e){return en(e)&&"chrom"in e}function f$(e){return e.every(n0)}function H1(e){return en(e)&&("name"in e||G1(e)||MS(e))}function G1(e){return H1(e)&&"url"in e}function MS(e){return H1(e)&&"contigs"in e}class Mu extends Array{constructor(){super(),this.type=void 0}extend(t){return this}extendAll(t){if(t instanceof Mu&&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 V1 extends Mu{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 PS extends Mu{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 OS extends PS{constructor(){super(),this.type="nominal"}}class h$ extends Mu{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 LS={quantitative:V1,index:V1,locus:V1,nominal:OS,ordinal:PS};function NS(e,t){if(e=="quantitative"&&d$(t)){const n=new h$(t);return n.type=e,n}else if(LS[e]){const n=new LS[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function d$(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function p$(e){return((e*=2)<=1?e*e:--e*(2-e)+1)/2}function g$(e){return--e*e*e+1}function m$(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}function b$(e){return(Math.pow(2,-10*e)-.0009765625)*1.0009775171065494}function y$(e){return 1-b$(e)}function w$(e,t,n){return e*Math.pow(t/e,n)}Ve("index",z1,["continuous"]),Ve("locus",PU,["continuous"]),Ve("null",R1,[]);const zS="quantitative",j1="ordinal",q1="nominal",US="locus",v$="index";class x${constructor(t){J(this,we);J(this,Vi);J(this,nc,{domain:new Set,range:new Set});J(this,zn);J(this,oh,new Set);this.channel=t,this.members=[],this.type=null,this.name=void 0}addEventListener(t,n){B(this,nc)[t].add(n)}removeEventListener(t,n){B(this,nc)[t].delete(n)}addMember(t){var a;const{channel:n,channelDef:r}=t,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&&!QE(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(t)}getDataDomain(){return this.members.map(t=>{var n;return(n=t.dataDomainSource)==null?void 0:n.call(t,t.channel,this.type)}).filter(t=>!!t).reduce((t,n)=>t.extendAll(n))}reconfigure(){const t=B(this,zn);if(!t||t.type=="null")return;const n=Q(this,we,z7).call(this),r=t.domain(),i=Q(this,we,ov).call(this,!0);if(TS({...i,range:void 0},t),t.props=i,Q(this,we,av).call(this),Ot(t.type)&&se(this,Vi,Q(this,we,lv).call(this)),!n){Q(this,we,Ki).call(this,"domain");return}const o=t.domain();id(o,r)||(this.isZoomable()?t.domain(r):Q(this,we,Cs).call(this)?(t.domain(r),this.zoomTo(o,500)):Q(this,we,Ki).call(this,"domain"))}get scale(){if(B(this,zn))return B(this,zn);const t=Q(this,we,ov).call(this),n=ZU({...t,range:void 0});n.props=t,"unknown"in n&&n.unknown(null),se(this,zn,n),Q(this,we,av).call(this),OU(n)&&n.genome(this.getGenome()),Ot(n.type)&&se(this,Vi,Q(this,we,lv).call(this));const r=n.range;if(r){const i=()=>Q(this,we,Ki).call(this,"range");n.range=function(o){if(arguments.length)r(o),i();else return r()},i()}return n}getDomain(){return this.scale.domain()}getComplexDomain(){var t;return((t=this.getGenome())==null?void 0:t.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return Q(this,we,Cs).call(this)&&id(Q(this,we,fg).call(this),this.getDomain())}isZoomable(){return Q(this,we,Cs).call(this)&&!!this.scale.props.zoom}zoom(t,n,r){if(!Q(this,we,Cs).call(this))return!1;const i=this.scale,o=i.domain();let a=[...o],s=i.invert(n);switch(i.props.reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":a=S9(a,r||0),a=bg(a,s,t);break;case"log":a=_9(a,r||0),a=_v(a,s,t);break;case"pow":case"sqrt":{const l=i;a=C9(a,r||0,l.exponent()),a=yg(a,s,t,l.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return B(this,Vi)&&(a=T9(a,B(this,Vi)[0],B(this,Vi)[1])),[0,1].some(l=>a[l]!=o[l])?(i.domain(a),Q(this,we,Ki).call(this,"domain"),!0):!1}async zoomTo(t,n=!1){if(Ac(n)&&(n=n?700:0),!Q(this,we,Cs).call(this))throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(t),i=B(this,we,rv).animator,o=this.scale,a=o.domain();if(n>0&&a.length==2){const s=a[1]-a[0],l=r[1]-r[0],c=a[0]+s/2,u=r[0]+l/2,f=a[0]==r[0],h=a[1]==r[1];await i.transition({duration:n,easingFunction:m$,onUpdate:d=>{const p=w$(s,l,d),g=s==l?d:(s-p)/(s-l),b=g*u+(1-g)*c,m=[f?a[0]:b-p/2,h?a[1]:b+p/2];o.domain(m),Q(this,we,Ki).call(this,"domain")}}),o.domain(r),Q(this,we,Ki).call(this,"domain")}else o.domain(r),i==null||i.requestRender(),Q(this,we,Ki).call(this,"domain")}resetZoom(){if(!Q(this,we,Cs).call(this))throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=Q(this,we,fg).call(this);return[0,1].some(r=>n[r]!=t[r])?(B(this,zn).domain(n),Q(this,we,Ki).call(this,"domain"),!0):!1}getZoomLevel(){return this.isZoomable()?Lh(B(this,Vi))/Lh(this.scale.domain()):1}getAxisLength(){if(this.channel!=="x"&&this.channel!=="y")throw new Error("Axis length is only defined for x and y channels!");const t=this.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}getGenome(){var n;if(this.type!=="locus")return;const t=(n=B(this,we,rv).genomeStore)==null?void 0:n.getGenome();if(!t)throw new Error("No genome has been defined!");return t}invertToComplex(t){const n=this.scale;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 n0(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&f$(t)?this.getGenome().toContinuousInterval(t):t}}Vi=new WeakMap,nc=new WeakMap,zn=new WeakMap,oh=new WeakMap,we=new WeakSet,nv=function(){return this.members[0].view},rv=function(){return B(this,we,nv).context},Ki=function(t){for(const n of B(this,nc)[t].values())n({type:t,scaleResolution:this})},iv=function(){return!!Q(this,we,sv).call(this)},z7=function(){const t=B(this,zn);if(!t)return!1;const n=t.domain();return Ot(t.type)?n.length>2||n.length==2&&(n[0]!==0||n[1]!==0):n.length>0},U7=function(){const t=this.members.map(n=>n.channelDef.scale).filter(n=>n!==void 0);return t0(t,"scale",["domain"])},ov=function(t=!1){const n=Q(this,we,U7).call(this);if(n===null||n.type=="null")return{type:"null"};const r={...Q(this,we,$7).call(this,this.type),...n};r.type||(r.type=A$(this.channel,this.type));const i=Q(this,we,fg).call(this,t);return i&&i.length>0?r.domain=i:Si(r.type)&&(r.domain=new OS),!r.domain&&r.domainMid!==void 0&&(r.domain=[r.domainMin??0,r.domainMax??1]),this.channel=="y"&&Si(r.type)&&r.reverse==null&&(r.reverse=!0),r.range&&r.scheme&&delete r.scheme,!("zoom"in r)&&["index","locus"].includes(r.type)&&(r.zoom=!0),E$(r,this.channel),r},av=function(){const t=B(this,zn).props,n=t.range;if(B(this,oh).forEach(i=>i.invalidate()),!n||!Jt(n))return;const r=(i,o)=>o?i.slice().reverse():i;if(n.some(dn)){let i;const o=()=>{B(this,zn).range(r(i.map(a=>a()),t.reverse))};i=n.map(a=>{if(dn(a)){const s=B(this,we,nv).paramMediator.createExpression(a.expr);return s.addListener(o),B(this,oh).add(s),()=>s(null)}else return()=>a}),o()}else B(this,zn).range(r(n,t.reverse))},fg=function(t=!1){return Q(this,we,sv).call(this)??(this.type==US?this.getGenome().getExtent():t?this.getDataDomain():[])},sv=function(){const t=this.members.map(n=>n.channelDef).filter(n=>{var r;return(r=n.scale)==null?void 0:r.domain}).map(n=>NS(n.type,this.fromComplexInterval(n.scale.domain)));if(t.length>0)return t.reduce((n,r)=>n.extendAll(r))},Cs=function(){const t=this.scale.type;return Ot(t)},lv=function(){const t=this.scale.props,n=t.zoom;if(S$(n)&&Jt(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():B(this,zn).domain()},$7=function(t){const n=this.channel,r={};return Q(this,we,iv).call(this)&&(r.zero=!1),Cu(n)?r.nice=!Q(this,we,iv).call(this):wo(n)?r.scheme=t==q1?"tableau10":t==j1?"blues":"viridis":Qd(n)?r.range=n=="shape"?["circle","square","triangle-up","cross","diamond"]:[]:n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r};function A$(e,t){if(t==v$||t==US){if(WE(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=["sample"].includes(e)?"null":n[e]?n[e][[q1,j1,zS].indexOf(t)]:t==zS?"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 E$(e,t){Cu(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&Ot(e.type)&&(e.clamp=!0)}function S$(e){return en(e)}function W1(e){const t=new Set;function n(r){for(const i of Object.values(r.resolutions.scale))t.add(i)}for(const r of tn(e)){r.visit(n);for(const i of r.getDataAncestors()){if(!i.options.contributesToScaleDomain)break;n(i)}}t.forEach(r=>r.reconfigure())}function Y1(...e){for(const t of e)if(t!==void 0)return t}class _${constructor(t){this.channel=t,this.members=[]}get scaleResolution(){var t;return(t=Gn(this.members))==null?void 0:t.view.getScaleResolution(this.channel)}addMember(t){const{view:n}=t,r=n.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! Channel: ${this.channel}, existing views: [${this.members.map(i=>i.view.getPathString()).join(", ")}], new view: ${n.getPathString()}.`);this.members.push(t)}getAxisProps(){return e0(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:t0(t.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const t=o=>{var s;const a=wz(o.view,o.channel);if(!Wn(a))return{member:o,explicitTitle:Y1("axis"in a?(s=a.axis)==null?void 0:s.title:void 0,a.title),implicitTitle:Y1(Wr(a)?a.field:void 0,_u(a)?a.expr:void 0)}},n=this.members.map(t),r=n.filter(o=>{var a;if(QE(o.member.channel)&&!o.explicitTitle){const s=Ta(o.member.channel);return((a=n.find(l=>l.member.view==o.member.view&&l.member.channel==s))==null?void 0:a.explicitTitle)===void 0}return!0}),i=new Set(r.map(o=>Y1(o.explicitTitle,o.implicitTitle)).filter(Xe));return i.size?[...i].join(", "):null}}function Pu(e,t,{spacing:n,devicePixelRatio:r,offset:i,reverse:o}={}){n=n||0,i=i||0;let a=0,s=0;for(const p of e)a+=rl(p.px)+(Z1(p)?0:n),s+=rl(p.grow);a-=n;const l=Math.max(0,t-a),c=r!==void 0?p=>Math.round(p*r)/r:p=>p,u=[],f=[],h=p=>{const g=u.length;if(!g)return;const b=(p?n:0)*(o?-1:1);d-=b;for(let m=0;m<g;m++)f.push({location:d+(m+1)/(g+1)*b,size:0});d+=b,u.length=0};let d=o?Math.max(t,a):0+i;if(e.length==1&&Z1(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const g=e[p];if(Z1(g))u.push(g);else{h(f.length>0);const b=rl(g.px)+(s?rl(g.grow)/s*l:0);o&&(d-=b),f.push({location:c(d),size:c(b)}),o?d-=n:d+=b+n}}return d+=o?n:-n,h(!1),f}function C$(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}}function k$(e){const t={px:0,grow:0};for(const n of e)t.px+=rl(n.px),t.grow+=rl(n.grow);return t}const Yw=class Yw{constructor(t,n){J(this,ah);this.width=t,this.height=n}addPadding(t){return Q(this,ah,cv).call(this,t.width,t.height)}subtractPadding(t){return Q(this,ah,cv).call(this,-t.width,-t.height)}isGrowing(){return!!(this.width.grow||this.height.grow)}};ah=new WeakSet,cv=function(t,n){return new Yw({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};let ki=Yw;const Ou=Object.freeze({px:0,grow:0}),$S=new ki(Ou,Ou);function Z1(e){return!e.px&&!e.grow}function rl(e){return e||0}function T$(e){return e&&(vt(e.px)||vt(e.grow))}function HS(e){if(WS(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(T$(e))return e;if(vt(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 I$(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 R$(e,t){const n=vt(t)?()=>t:t;return{get location(){return e.location+n()},get size(){return e.size}}}function D$(e,t){const n=vt(t)?()=>t:t;return{get location(){return e.location*n()},get size(){return e.size*n()}}}function GS(e,t){return t>=e.location&&t<e.location+e.size}class Nt{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 Nt(this.top+t,this.right+t,this.bottom+t,this.left+t)}add(t){return new Nt(this.top+t.top,this.right+t.right,this.bottom+t.bottom,this.left+t.left)}subtract(t){return new Nt(this.top-t.top,this.right-t.right,this.bottom-t.bottom,this.left-t.left)}union(t){return new Nt(Math.max(this.top,t.top),Math.max(this.right,t.right),Math.max(this.bottom,t.bottom),Math.max(this.left,t.left))}getHorizontal(){return new Nt(0,this.right,0,this.left)}getVertical(){return new Nt(this.top,0,this.bottom,0)}get horizontalTotal(){return this.left+this.right}get verticalTotal(){return this.top+this.bottom}static createFromConfig(t){return typeof t=="number"?this.createUniformPadding(t):t?this.createFromRecord(t):Q1}static createFromRecord(t){return new Nt(t.top,t.right,t.bottom,t.left)}static zero(){return Q1}static createUniformPadding(t){return new Nt(t,t,t,t)}}const Q1=Nt.createUniformPadding(0);Object.freeze(Q1);function Da(e,t){return!t||/^(data:|([A-Za-z]+:)?\/\/)/.test(e)||e.startsWith("/")?e:(t.endsWith("/")||(t+="/"),t+e)}function B$(e){if(!e)return e;if(/[?#]/.test(e))throw new Error(`Invalid base URL: ${e} - cannot contain query or hash.`);return e.endsWith("/")?e:e+"/"}const VS="VISIT_SKIP",Ba="VISIT_STOP",jS=e=>e;class qS{constructor(t,n,r,i,o,a={}){J(this,ci);J(this,rc,{});J(this,sh,{});J(this,lh,{});J(this,ch);J(this,uh);Kt(this,"opacityFunction",jS);Kt(this,"facetCoords",new gi([],JSON.stringify));var s;if(!t)throw new Error("View spec must be defined!");if(this.context=n,this.layoutParent=r,this.dataParent=i,this.name=t.name||o,this.spec=t,this.resolutions={scale:{},axis:{}},dS(this),this.options={blockEncodingInheritance:!1,contributesToScaleDomain:!0,...a},this.needsAxes={x:!1,y:!1},this.paramMediator=new dz(()=>{var l;return(l=this.dataParent)==null?void 0:l.paramMediator}),t.params)for(const l of t.params)this.paramMediator.registerParam(l);if(!((s=this.layoutParent)!=null&&s.options.layeredChildren)){const l=c=>this.paramMediator.findMediatorForParam(c)?void 0:this.paramMediator.allocateSetter(c,0);se(this,uh,l("height")),se(this,ch,l("width"))}}get coords(){return this.facetCoords.values().next().value}getPadding(){return this._cache("size/padding",()=>Nt.createFromConfig(this.spec.padding))}getOverhang(){return Nt.zero()}isScrollable(){return this.spec.viewportWidth!=null||this.spec.viewportHeight!=null}getSize(){return this._cache("size/size",()=>this.isConfiguredVisible()?new ki(Q(this,ci,Ih).call(this,"width"),Q(this,ci,Ih).call(this,"height")):$S)}getViewportSize(){if(!this.isScrollable())return this.getSize();if(!this.isConfiguredVisible())return $S;const t=this.getSize();return new ki(Q(this,ci,Ih).call(this,"viewportWidth")??t.width,Q(this,ci,Ih).call(this,"viewportHeight")??t.height)}isConfiguredVisible(){return this.context.isViewConfiguredVisible(this)}isVisibleInSpec(){return this.spec.visible??!0}isVisible(){return this.getLayoutAncestors().every(t=>t.isConfiguredVisible())}getEffectiveOpacity(){var t;return this.opacityFunction(((t=this.layoutParent)==null?void 0:t.getEffectiveOpacity())??1)}getPathString(){return this.getLayoutAncestors().map(t=>t.name).reverse().join("/")}getLayoutAncestors(){return Q(this,ci,uv).call(this,"layoutParent")}getDataAncestors(){return Q(this,ci,uv).call(this,"dataParent")}handleBroadcast(t){for(const n of B(this,rc)[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=B(this,rc)[t];r||(r=[],B(this,rc)[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?B(this,sh):B(this,lh);for(const o of i[n.type]||[])o(t,n)}addInteractionEventListener(t,n,r){const i=r?B(this,sh):B(this,lh);let o=i[t];o||(o=[],i[t]=o),o.push(n)}visit(t){try{const n=t(this);if(t.postOrder&&t.postOrder(this),n!==Ba)return n}catch(n){throw n.view=this,n}}getDescendants(){const t=[];return this.visit(n=>{t.push(n)}),t}configureViewOpacity(){(!this.opacityFunction||this.opacityFunction===jS)&&(this.opacityFunction=M$(this))}onBeforeRender(){}render(t,n,r={}){var i,o;r.firstFacet&&this.facetCoords.clear(),this.facetCoords.set(r.facetId,r.clipRect?n.intersect(r.clipRect):n),(i=B(this,ch))==null||i.call(this,n.width),(o=B(this,uh))==null||o.call(this,n.height)}getEncoding(){const t=this.dataParent&&!this.options.blockEncodingInheritance?this.dataParent.getEncoding():{},n=this.spec.encoding||{},r={...t,...n};for(const[i,o]of Object.entries(r))o===null&&delete r[i];return r}getFacetAccessor(t){if(this.layoutParent)return this.layoutParent.getFacetAccessor(this)}getFacetFields(t){var r;const n=this.getEncoding().sample;return Wr(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(t){const n=Ta(t);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(t){const n=Ta(t);return this.getDataAncestors().map(r=>r.resolutions.axis[n]).find(r=>r)}getConfiguredResolution(t,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[t]}getConfiguredOrDefaultResolution(t,n){return this.getConfiguredResolution(t,n)??this.getConfiguredResolution("default",n)??this.getDefaultResolution(t,n)}getDefaultResolution(t,n){return"independent"}getBaseUrl(){return Fu(()=>{var t;return(t=this.dataParent)==null?void 0:t.getBaseUrl()},B$(this.spec.baseUrl))}isPickingSupported(){return!0}getTitleText(){const t=this.spec.title;if(t)return Xe(t)?t:dn(t.text)?this.paramMediator.evaluateAndGet(t.text.expr):t.text}_cache(t,n){return e0(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":Ru(this,t);break;case"ancestors":for(const r of this.getLayoutAncestors())Ru(r,t);break;case"progeny":this.visit(r=>Ru(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}rc=new WeakMap,sh=new WeakMap,lh=new WeakMap,ch=new WeakMap,uh=new WeakMap,ci=new WeakSet,Ih=function(t){var i;let n=this.spec[t];const r=t=="viewportWidth"||t=="viewportHeight";if(WS(n)){if(r)throw new Ra(`Cannot use step-based size with "${t}"!`,this);const o=n.step,a=(i=this.getScaleResolution(t=="width"?"x":"y"))==null?void 0:i.scale;if(a){let s=0;if(Si(a.type))s=a.domain().length;else if(["locus","index"].includes(a.type)){const c=a.domain();s=Gn(c)-c[0]}else throw new Ra(`Cannot use step-based size with "${a.type}" scale!`,this);const l=a;return s=c1(s,l.paddingInner(),l.paddingOuter()),{px:s*o,grow:0}}else throw new Ra("Cannot use 'step' size with missing scale!",this)}else return(n&&HS(n))??(r?void 0:{px:0,grow:1})},uv=function(t){const n=[];let r=this;do n.push(r),r=r[t];while(r);return n};function F$(e){return"unitsPerPixel"in e}function M$(e){const t="opacity"in e.spec?e.spec.opacity:void 0;if(t!==void 0){if(vt(t))return n=>n*t;if(F$(t)){const n=o=>{var s;const a=(s=e.getScaleResolution(o))==null?void 0:s.scale;if(["linear","index","locus"].includes(a==null?void 0:a.type))return a},r=t.channel?n(t.channel):n("x")??n("y");if(!r)throw new Ra("Cannot find a resolved quantitative scale for dynamic opacity!",e);const i=t1().domain(t.unitsPerPixel).range(t.values).clamp(!0);return o=>{const s=Lh(r.domain())/1e3;return i(s)*o}}else if(dn(t)){const n=e.paramMediator.createExpression(t.expr);return n.addListener(()=>e.context.animator.requestRender()),r=>n(null)*r}}return n=>n}const WS=e=>!!(e!=null&&e.step),P$={point:bU,rect:hU,rule:xU,link:TU,text:MU};class Tt extends qS{constructor(n,r,i,o,a,s){super(n,r,i,o,a,s);J(this,ig);J(this,fh);this.spec=n;const l=P$[this.getMarkType()];if(l)this.mark=new l(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.resolve(),se(this,fh,this.paramMediator.allocateSetter("zoomLevel",1)),["x","y"].forEach(c=>{var u;return(u=this.getScaleResolution(c))==null?void 0:u.addEventListener("domain",()=>B(this,fh).call(this,Math.sqrt(this.getZoomLevel())))}),this.needsAxes={x:!0,y:!0},Q(this,ig,H7).call(this)}render(n,r,i={}){super.render(n,r,i),this.isConfiguredVisible()&&(n.pushView(this,r),n.renderMark(this.mark,i),n.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(n){n||(this.resolve("scale"),this.resolve("axis"));const r=this.mark.encoding;for(const[i,o]of Object.entries(r)){if(!Rn(o))continue;const a=Ta(o.resolutionChannel??i);if(!Js(a)||n=="axis"&&!Cu(a))continue;let s=this;for(;(s.getConfiguredOrDefaultResolution(a,n)=="forced"||s.dataParent&&["shared","excluded","forced"].includes(s.dataParent.getConfiguredOrDefaultResolution(a,n)))&&s.getConfiguredOrDefaultResolution(a,n)!="excluded";)s=s.dataParent;if(n=="axis"&&Cu(i)&&WE(a))s.resolutions[n][a]||(s.resolutions[n][a]=new _$(a)),s.resolutions[n][a].addMember({view:this,channel:i,channelDef:o});else if(n=="scale"&&Js(i)){if(!s.resolutions[n][a]){const c=new x$(a);s.resolutions[n][a]=c,c.addEventListener("range",u=>{var f;(f=this.context.glHelper)==null||f.createRangeTexture(u.scaleResolution,!0)})}const l=this.getLayoutAncestors().some(c=>!c.options.contributesToScaleDomain)||Rn(o)&&o.contributesToScaleDomain===!1?void 0:this.extractDataDomain.bind(this);s.resolutions[n][a].addMember({view:this,channel:i,channelDef:o,dataDomainSource:l})}}}getDataAccessor(n){var r;return(r=this.mark.encoders[n])==null?void 0:r.dataAccessor}getFacetAccessor(n){const r=this.getDataAccessor("sample");return r||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}extractDataDomain(n,r){var o;let i=NS(r);return(((o=this.mark.encoders[n])==null?void 0:o.accessors)??[]).filter(a=>a.scaleChannel).forEach(a=>{if(a.constant)i.extend(a({}));else{const s=this.getCollector();s!=null&&s.completed&&s.visitData(l=>i.extend(a(l)))}}),i}getZoomLevel(){const n=r=>{var i;return((i=this.getScaleResolution(r))==null?void 0:i.getZoomLevel())??1};return Ks.map(n).reduce((r,i)=>r*i,1)}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0),n.target=this,!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return n=="x"?"shared":"independent"}}fh=new WeakMap,ig=new WeakSet,H7=function(){for(const[n,r]of this.paramMediator.paramConfigs){if(!("select"in r))continue;const i=HE(r.select);if(T1(i)){let a=0;const s=this.paramMediator.getSetter(n),l=()=>{var f;const u=this.context.getCurrentHover();return((f=u==null?void 0:u.mark)==null?void 0:f.unitView)===this?u.datum:null},c=(u,f)=>{const h=f.uiEvent,d=l(),p=d?d[qn]:0;let g;if(i.toggle)if(h.shiftKey){if(d){const m=this.paramMediator.getValue(n);g=lz(m,{toggle:[d]})}}else g=zE(d?[d]:null);else p!=a&&(a=p,g=NE(d));g!==void 0&&s(g)};this.addInteractionEventListener(["mouseover","pointerover"].includes(i.on)?"mousemove":"click",c)}}};function*X1(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of X1(r,[...t,n]))yield i;else yield[[...t,n],r]}const YS=2147483647,O$=ZS([YS]);function ZS(e){let t=0;for(let n=0,r=e.length;n<r;n++)t=Math.max(t,e[n]);return Math.floor(Math.log2(t)/4)+1}function L$(e){const t=ZS(e);let n=Array.from({length:e.length},(o,a)=>a),r=new Array(e.length);const i=new Array(16);for(let o=0;o<t;o++){i.fill(0);const a=o*4,s=Math.pow(16,o),l=c=>{const u=e[n[c]];return o>=O$?u>YS?Math.floor(u/s)%16:0:u>>a&15};for(let c=0;c<e.length;c++)i[l(c)]++;for(let c=1;c<16;c++)i[c]+=i[c-1];for(let c=e.length-1;c>=0;c--)r[--i[l(c)]]=n[c];[n,r]=[r,n]}return n}class Lu extends Eu{constructor(n){super();J(this,Un);J(this,ji,[]);J(this,hh,je(qn));J(this,ys,[]);J(this,ws);this.params=n??{type:"collect"},this.observers=[],this.facetBatches=new gi([],JSON.stringify),Q(this,Un,fv).call(this)}get behavior(){return _1}get label(){return"collect"}reset(){super.reset(),Q(this,Un,fv).call(this)}handle(n){B(this,ji).push(n)}beginBatch(n){sz(n)&&(se(this,ji,[]),this.facetBatches.set(tn(n.facetId),B(this,ji)))}complete(){var o,a;se(this,ji,[]);const n=(o=this.params)==null?void 0:o.sort,r=n?Cv(n.field,n.order):void 0,i=s=>{r&&s.sort(r)};if((a=this.params.groupby)!=null&&a.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const s=this.facetBatches.get(void 0),l=this.params.groupby.map(u=>je(u)),c=l.length>1?_c(s,...l):N$(s,l[0]);this.facetBatches.clear();for(const[u,f]of X1(c))this.facetBatches.set(u,f)}for(const s of this.facetBatches.values())i(s);Q(this,Un,G7).call(this),Q(this,Un,hv).call(this),super.complete();for(const s of this.observers)s(this)}repropagate(){for(const n of this.children)n.reset();Q(this,Un,hv).call(this);for(const n of this.children)n.complete()}getData(){switch(Q(this,Un,dv).call(this),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const n=this.facetBatches;return{[Symbol.iterator]:function*(){for(const i of n.values())yield*i}}}}}visitData(n){Q(this,Un,dv).call(this);for(const r of this.facetBatches.values())for(let i=0;i<r.length;i++)n(r[i])}getItemCount(){let n=0;for(const r of this.facetBatches.values())n+=r.length;return n}findDatumByUniqueId(n){if(!B(this,ys).length)return;const r=Rs(l=>l.start).right,i=B(this,hh),o=Rs(l=>i(a(l))).left,a=l=>{const c=r(B(this,ws),l),u=B(this,ws)[c-1];return!u||l>=u.stop?void 0:this.facetBatches.get(u.facetId)[l-u.start]},s=o(B(this,ys),n);if(s>=0){const l=a(B(this,ys)[s]);if(l&&i(l)===n)return l}}}ji=new WeakMap,hh=new WeakMap,ys=new WeakMap,ws=new WeakMap,Un=new WeakSet,fv=function(){se(this,ji,[]),this.facetBatches.clear(),this.facetBatches.set(void 0,B(this,ji))},hv=function(){if(this.children.length)for(const[n,r]of this.facetBatches.entries()){if(n){const i={type:"facet",facetId:n};for(const o of this.children)o.beginBatch(i)}for(let i=0,o=r.length;i<o;i++)this._propagate(r[i])}},dv=function(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")},G7=function(){var a;se(this,ws,[]);const n=(a=this.facetBatches.values().next().value)==null?void 0:a[0];if(n==null||!(qn in n))return;let r=0;const i=[],o=B(this,hh);for(const[s,l]of this.facetBatches){B(this,ws).push({start:r,stop:r+l.length,facetId:s}),r+=l.length;for(let c=0,u=l.length;c<u;c++)i.push(o(l[c]))}se(this,ys,L$(i))};function N$(e,t){const n=new Map;for(let r=0,i=e.length;r<i;r++){const o=e[r],a=t(o);let s=n.get(a);s||(s=[],n.set(a,s)),s.push(o)}return n}class Nu{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,o=this.values[i];if(n>=o)break;this.ids[r]=this.ids[i],this.values[r]=o,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 o=0;for(;o<i;){let a=(o<<1)+1;const s=a+1;let l=this.ids[a],c=this.values[a];const u=this.values[s];if(s<this.length&&u<c&&(a=s,l=this.ids[s],c=u),c>=r)break;this.ids[o]=l,this.values[o]=c,o=a}this.ids[o]=n,this.values[o]=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 z$ extends kt{get behavior(){return qr}constructor(t){super(t),this.params=t,this.startAccessor=je(t.start),this.endAccessor=je(t.end),this.chromAccessor=t.chrom?je(t.chrom):n=>{},this.weightAccessor=t.weight?je(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 Nu}reset(){super.reset(),this.initialize()}initialize(){const t=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,o=this.endAccessor,a=this.chromAccessor,s=this.weightAccessor;let l,c,u,f=0,h=NaN;const d=this.ends;d.clear();const p=m=>{this._propagate(m),l=null},g=(m,v,x)=>{if(m==v)return;let A=!1;l&&(l[t]===x?(l[n]=v,A=!0):l[t]!=0&&p(l)),A||(l=this.createSegment(m,v,x,u))},b=()=>{let m=0;for(;(m=d.peekValue())!==void 0;)g(h,m,f),h=m,f-=d.pop();h=NaN,l&&p(l)};this.handle=m=>{const v=i(m);let x=0;for(;(x=d.peekValue())!==void 0&&x<v;)g(h,x,f),h=x,f-=d.pop();if(r){let S=a(m);S!==c&&(b(),u=S,c=u)}isNaN(h)||g(h,v,f),h=v;const A=s(m);f+=A,d.push(A,o(m))},this.complete=()=>{b(),super.complete()},this.beginBatch=m=>{b(),c=null,super.beginBatch(m)}}}function U$(e,t,n=0,r=e.length){const i=new Nu,o=r-n;let a;for(a=0;a<t&&a<o;a++)i.push(a,e[n+a]);for(;a<o;a++){const c=e[n+a];c>=i.peekValue()&&(i.push(a,c),i.pop())}const s=[];let l;for(;(l=i.pop())!==void 0;)s.push(n+l);return s.reverse()}class $${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 o=this._findSlot(t,n,i);return o>=0?o: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++,o=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=t,this.lowerLimits[o]=n,this.upperLimits[o]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=o,!0}}class H$ extends kt{get behavior(){return _1}constructor(t,n){if(super(t),this.params=t,this._data=[],this.channel=t.channel??"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=je(this.params.pos),this.posBisector=Rs(this.posAccessor),this.scoreAccessor=je(this.params.score),this.widthAccessor=je(this.params.width),this.laneAccessor=this.params.lane?je(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 $$(200));this.schedule(),super.complete()}_filterAndPropagate(){super.reset();const t=this.resolution.scale,n=this.resolution.getAxisLength();if(!n)return;for(const a of this.reservationMaps.values())a.reset();const r=t.domain(),o=U$(this._scores,70,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const a of o){const s=this._data[a],l=t(this.posAccessor(s))*n,c=this.widthAccessor(s)/2+this.padding;this.reservationMaps.get(this.laneAccessor(s)).reserve(l-c,l+c)&&this._propagate(s)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(t){this._data.push(t)}}class G$ extends kt{constructor(t,n){super(t,n),this.params=t,this.predicate=void 0}initialize(){let t="";if(V$(this.params))t=this.params.expr;else if(j$(this.params))t=UE(this.params);else throw new Error("Invalid filter params: "+JSON.stringify(this.params));this.predicate=this.paramMediator.createExpression(t),this.predicate.addListener(()=>this.repropagate())}handle(t){this.predicate(t)&&this._propagate(t)}}function V$(e){return"expr"in e}function j$(e){return"param"in e}class q$ extends kt{get behavior(){return qr}constructor(t){super(t),this.params=t;const n=t.index;if(t.fields){const r=tn(t.fields).map(o=>je(o)),i=tn(t.as||t.fields);if(r.length!==i.length)throw new Error(`Lengths of "fields" (${r.length}), and "as" (${i.length}) do not match!`);this.handle=o=>{const a=r.map((l,c)=>l(o)??[]),s=a[0].length;for(let l=0;l<s;l++){const c=Object.assign({},o);for(let u=0;u<r.length;u++)c[i[u]]=l<a[u].length?a[u][l]:null;n&&(c[n]=l),this._propagate(c)}}}else this.handle=r=>{for(let i=0;i<r.length;i++){const o=Object.assign({},r[i]);n&&(o[n]=i),this._propagate(o)}}}}const W$=48;function*Y$(e,t=","){const n=t.charCodeAt(0);let r=0;for(let i=0;i<e.length;i++){const o=e.charCodeAt(i);o==n?(yield r,r=0):r=r*10+o-W$}yield r}class Z$ extends kt{get behavior(){return qr}constructor(t){super(t);const n=je(t.exons??"exons"),r=je(t.start??"start"),[i,o]=t.as||["exonStart","exonEnd"];this.handle=a=>{let s=r(a),l=s,c=!0;const u=n(a);for(const f of Y$(u)){if(c)l=s+f;else{s=l+f;const h=Object.assign({},a);h[i]=l,h[o]=s,this._propagate(h)}c=!c}}}}class Q$ extends kt{get behavior(){return qr}constructor(t){super(t);const n=tn(t.field).map(o=>je(o)),r=tn(t.separator),i=tn(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=o=>{if(n.some(l=>!l(o)))return;const a=n.map((l,c)=>l(o).split(r[c]));X$(a,o);const s=a[0].length;for(let l=0;l<s;l++){const c=Object.assign({},o);for(let u=0;u<n.length;u++)c[i[u]]=a[u][l];this._propagate(c)}}}}function X$(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 K$ extends kt{get behavior(){return yo}constructor(t,n){super(t,n),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=this.paramMediator.createExpression(this.params.expr),this.fn.addListener(()=>this.repropagate())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class QS extends kt{get behavior(){return yo}constructor(t,n){t={channel:"x",...t},super(t),this.params=t;const r=t.channel;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=je(t.chrom),a=tn(t.pos).map(p=>je(p)),s=tn(t.as);if(a.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const l=tn(t.offset);let c;if(l.length==0)c=new Array(a.length).fill(0);else if(l.length==1)c=new Array(a.length).fill(l[0]);else if(l.length==a.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(`
|
1968
|
+
`));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(o(p)),a),this._propagate(p)}}}const XS={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 J$ extends kt{get behavior(){return yo}constructor(t){super(t),this.params=t;const n=O1(XS),r=je(t.field),i=t.as,o=t.fontSize;this.handle=a=>{const s=r(a);s!==void 0?a[i]=n.measureWidth(s,o):a[i]=0,this._propagate(a)}}}const eH=65536;class tH extends kt{get behavior(){return yo}constructor(t){super(t),this.params=t}reset(){super.reset(),this.initialize()}initialize(){const t=this.params,n=t.as||"lane",r=vt(t.spacing)?t.spacing:1,i=je(t.start),o=je(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const a=new Float64Array(eH),s=je(t.preference),l=t.preferredOrder;let c=1/0;this.handle=u=>{const f=i(u);f<c&&a.fill(-1/0),c=f;const h=l.indexOf(s(u));let d=-1;if(h>=0&&a[h]<f)d=h;else{const p=i(u);for(d=0;d<a.length&&!(a[d]<p);d++);if(d>=a.length)throw new Error("Out of lanes!")}a[d]=o(u)+r,u[n]=d,this._propagate(u)}}else{const a=new Nu,s=new Nu;let l=-1/0,c=0;this.handle=u=>{const f=i(u);for(;a.length&&(a.peekValue()<=f||f<l);){const d=a.pop();s.push(d,d)}l=f;let h=s.pop();h===void 0&&(h=c++),u[n]=h,this._propagate(u),a.push(h,o(u)+r)}}}}class nH extends kt{get behavior(){return qr}constructor(t){if(super(t),this.params=t,t.as&&t.as.length!=t.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=t.fields.map(i=>je(i)),r=t.as?t.as:n.map(Ts);this.handle=i=>{const o={};for(let a=0;a<n.length;a++)o[r[a]]=n[a](i);this._propagate(o)}}}class rH extends kt{get behavior(){return yo}constructor(t){super(t),this.params=t;const n=new RegExp(t.regex),r=typeof t.as=="string"?[t.as]:t.as,i=je(t.field);this.handle=o=>{const a=i(o);if(Xe(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 l=0;l<r.length;l++)o[r[l]]=s[l+1]}else if(t.skipInvalidInput)for(let l=0;l<r.length;l++)o[r[l]]=void 0;else throw new Error(`"${a}" 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 a}, field content: "${a}".`);this._propagate(o)}}}class iH extends kt{get behavior(){return qr}constructor(t){super(t),this.params=t;const n=tn(t.columnRegex).map(h=>new RegExp(h)),r=tn(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,o=t.asKey||"sample";let a,s,l;const c=h=>{var b;const d=Object.keys(h);for(const m of n)if(!d.some(v=>m.test(v)))throw new Error(`No columns matching the regex ${m.toString()} found in the data!`);const p=new Map;for(const[m,v]of n.entries())for(const x of d){const A=(b=v.exec(x))==null?void 0:b[1];if(A!==void 0){let S=p.get(A);S||(S=[],p.set(A,S)),S[m]=x}}a=[...p.entries()],s=d.filter(m=>!n.some(v=>v.test(m))&&!(i&&i.test(m)));const g=[...s.map(m=>JSON.stringify(m)+": datum["+JSON.stringify(m)+"]"),JSON.stringify(o)+": sampleId",...r.map((m,v)=>JSON.stringify(m)+`: datum[attrs[${v}]]`)];l=new Function("datum","sampleId","attrs",`return {
|
1969
1969
|
`+g.join(`,
|
1970
1970
|
`)+`
|
1971
1971
|
};`)},u=h=>{a||c(h);for(let d=0;d<a.length;d++){const[p,g]=a[d],b=l(h,p,g);this._propagate(b)}},f=h=>{c(h),u(h),this.handle=u};this.handle=f,this.beginBatch=h=>{PE(h)&&(this.handle=f),super.beginBatch(h)}}}class oH extends kt{get behavior(){return yo}constructor(t){super(t),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?Cv(t.sort.field,t.sort.order):void 0,i=t.field?je(t.field):()=>1,o=t.groupby.map(u=>je(u)),a=sR(this.buffer,u=>o.map(f=>f(u)).join()).map(u=>u[1]);let s=u=>!0;if(t.baseField){const u=je(t.baseField);s=f=>u(f)!==null}let l,c;switch(t.offset){case"normalize":l=(u,f)=>u/f,c=(u,f)=>Tc(u,f);break;case"center":l=(u,f)=>u-f/2,c=(u,f)=>Tc(u,f);break;case"information":{const u=Math.log2(t.cardinality??4);l=(f,h)=>f/h,c=(f,h)=>{const p=Tc(f,v=>+!s(v)),g=Tc(f,h),b=g-p;let m=0;for(let v=0;v<f.length;v++){const x=f[v];if(s(x)){const A=h(x)/b;m-=A*Math.log2(A)}}return b/(u-(m+0))*(b/g)}}break;default:l=(u,f)=>u,c=(u,f)=>1}for(const u of a){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 aH extends kt{get behavior(){return qr}constructor(t){super(t),this.params=t;const n=je(t.field??"sequence"),[r,i]=t.as??["pos","sequence"];this.handle=o=>{const a=Object.assign({},o,{[i]:"",[r]:0}),s=n(o);for(let l=0;l<s.length;l++){const c=Object.assign({},a);c[r]=l,c[i]=s.charAt(l),this._propagate(c)}}}}const KS={count:e=>e.length,valid:Lv,sum:Tc,min:kg,max:Cg,mean:vR,median:xR,variance:rR};class sH extends kt{get behavior(){return qr}constructor(t){if(super(t),this.params=t,this.buffer=[],this.ops=[],this.as=[],t.fields){if(t.fields.length!=t.ops.length)throw new Error("Fields and ops must have the same length!");if(t.as&&t.as.length!=t.ops.length)throw new Error('If "as" is defined, "fields" and "as" must have the same length!');t.fields.forEach((n,r)=>{const i=je(n),o=KS[t.ops[r]];this.ops.push(a=>o(a,i)),this.as.push(t.as?t.as[r]:`${t.ops[r]}_${t.fields[r]}`)})}else this.ops.push(n=>KS.count(n)),this.as.push("count")}reset(){super.reset(),this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const t=this.params,n=t==null?void 0:t.groupby;if((n==null?void 0:n.length)>0){const r=n.map(o=>je(o)),i=_c(this.buffer,...r);for(const[o,a]of X1(i)){const s={};for(let l=0;l<n.length;l++)s[n[l]]=o[l];this.ops.forEach((l,c)=>{s[this.as[c]]=l(a)}),this._propagate(s)}}else{const r={};this.ops.forEach((i,o)=>{r[this.as[o]]=i(this.buffer)}),this._propagate(r)}super.complete()}}const JS={aggregate:sH,collect:Lu,coverage:z$,filterScoredLabels:H$,filter:G$,flatten:q$,flattenCompressedExons:Z$,flattenDelimited:Q$,flattenSequence:aH,formula:K$,identifier:C1,linearizeGenomicCoordinate:QS,measureText:J$,pileup:tH,project:nH,regexExtract:rH,regexFold:iH,sample:xS,stack:oH};function lH(e,t){const n=JS[e.type];if(n)return new n(e,t);throw new Error("Unknown transform: "+e.type)}function e4(e){if(!r4(e)&&!n4(e))return;const t={...e.format};if(t.type??(t.type=n4(e)&&uH(In(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 cH(e){var t;return((t=Gg(e))==null?void 0:t.responseType)??"text"}function uH(e){var t;if(Array.isArray(e)&&(e=e[0]),e)return(t=e.match(/\.(csv|tsv|json)/))==null?void 0:t[1]}const t4=e=>typeof e!="object"?fH:hH,fH=e=>({data:e}),hH=e=>e;function n4(e){return"url"in e}class Fa extends Eu{constructor(n){super();Kt(this,"view");this.view=n}get identifier(){}setLoadingStatus(n,r){this.view.context.setDataLoadingStatus(this.view,n,r)}get paramMediator(){return this.view.paramMediator}handle(n){throw new Error("Source does not handle incoming data!")}async load(){}repropagate(){this.load()}}function r4(e){return"values"in e}class i4 extends Fa{constructor(t,n){var r;if(super(n),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!")}get label(){return"inlineSource"}isTrivial(){const t=this.params.values,n=Array.isArray(t)?t[0]:t;return!!(n&&Object.keys(n).length==0&&n.constructor===Object)}loadSynchronously(){const t=this.params.values;let n=[],r=i=>i;if(Array.isArray(t))t.length>0&&(n=t,r=t4(t[0]));else if(typeof t=="object")n=[t];else if(typeof t=="string")n=Ax(t,e4(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 dH(e){return"url"in e}class pH extends Fa{constructor(t,n){super(n),this.params=Yd(n.paramMediator,t,()=>this.load()),this.baseUrl=n==null?void 0:n.getBaseUrl()}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}get label(){return"urlSource"}async load(){const t=In(this.params.url),n=Array.isArray(t)?t:[t],r=e4(this.params),i=cH(r.type);if(n.length===0||!n[0]){this.reset(),this.complete();return}const o=async s=>{try{const l=Fu(this.baseUrl,s),c=await fetch(l);if(!c.ok)throw new Error(`${c.status} ${c.statusText}`);return typeof c[i]=="function"?c[i]():c.text()}catch(l){throw new Error(`Could not load data: ${s}. Reason: ${l.message}`)}},a=(s,l)=>{try{const c=Ax(s,r);this.beginBatch({type:"file",url:l});for(const u of c)this._propagate(u)}catch(c){throw new Error(`Cannot parse: ${l}: ${c.message}`)}};this.setLoadingStatus("loading"),this.reset();try{await Promise.all(n.map(s=>o(s).then(a))),this.setLoadingStatus("complete")}catch(s){this.setLoadingStatus("error",s.message)}this.complete()}}function gH(e){return"sequence"in e}class mH extends Fa{constructor(t,n){if(super(n),this.sequence=Yd(n.paramMediator,t.sequence,()=>this.loadSynchronously()),!("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!")}get label(){return"sequenceSource"}loadSynchronously(){const t=In(this.sequence.as)??"data",n=In(this.sequence.start)??0,r=In(this.sequence.step)??1,i=In(this.sequence.stop);this.reset(),this.beginBatch({type:"file"});for(let o=n;o<i;o+=r)this._propagate({[t]:o});this.complete()}async load(){this.loadSynchronously()}}class K1 extends Fa{constructor(n,r){super(n);Kt(this,"initializedPromise",Promise.resolve());if(r){if(r!=="x"&&r!=="y")throw new Error(`Invalid channel specified for the lazy data source: ${r}. Must be either "x" or "y"`)}else throw new Error('No channel has been specified for the lazy data source. Must be either "x" or "y".');if(this.channel=r,this.scaleResolution=this.view.getScaleResolution(r),!this.scaleResolution){const o=[`The lazy data source cannot find a resolved scale for channel "${r}".`];throw this.view instanceof Tt||o.push('Make sure the view has a "shared" scale resolution as it is not a unit view.'),new Error(o.join(" "))}const i=()=>{this.view.isVisible()&&this.onDomainChanged(this.scaleResolution.getDomain(),this.scaleResolution.getComplexDomain())};this.scaleResolution.addEventListener("domain",i),this.view.context.addBroadcastListener("layoutComputed",i)}get genome(){return this.scaleResolution.getGenome()}onDomainChanged(n,r){}requestRender(){this.view.context.animator.requestRender()}async load(){this.reset(),this.complete()}publishData(n){this.reset(),this.beginBatch({type:"file"});for(const r of n)for(const i of r)this._propagate(i);this.complete(),W1(this.view)}}class bH extends K1{constructor(n,r){const i={axis:{},...n};super(r,i.channel);Kt(this,"ticks",[]);this.params=n}get label(){return"axisTickSource"}async load(){this.ticks=null,this.onDomainChanged()}onDomainChanged(){const n=this.scaleResolution.scale,r=this.scaleResolution.getAxisLength(),i=this.params.axis,o=c=>25+60*S1(100,700,c),a=vt(i.tickCount)?i.tickCount:Math.round(r/o(r)),s=SS(n,a,i.tickMinStep),l=i.values?_S(n,i.values,s):LU(n,s);if(this.ticks==null||!id(l,this.ticks)){this.ticks=l;const c=zU(n,a,i.format);this.publishData([l.map(u=>({value:u,label:c(u)}))])}}}class yH extends K1{constructor(t,n){super(n,t.channel)}get label(){return"axisGenomeSource"}async load(){this.publishData([this.genome.chromosomes])}}function Ma(e,t,n=!0){let r,i=a=>{};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=window.setTimeout(u,typeof t=="function"?t():t)})}}class zu extends K1{constructor(){super(...arguments);J(this,ic,new AbortController);J(this,oc,[0,0]);J(this,ac,[0,0]);J(this,dh,0);Kt(this,"params")}setupDebouncing(n){const r=()=>In(n.debounce),i=n.debounceMode;if(i=="domain")this.onDomainChanged=Ma(this.onDomainChanged.bind(this),r,!1);else if(i=="window")this.loadInterval=Ma(this.loadInterval.bind(this),r,!1);else throw new Error("Invalid debounceMode: "+i)}onDomainChanged(n){var i;se(this,ac,n);const r=In((i=this.params)==null?void 0:i.windowSize)??-1;n[1]-n[0]>r||this.callIfWindowsChanged(n,r,async o=>{await this.initializedPromise,this.loadInterval(o)})}reloadLastDomain(){const n=B(this,ac);se(this,ac,[0,0]),se(this,oc,[0,0]),this.onDomainChanged(n)}async loadInterval(n){}async discretizeAndLoad(n,r){B(this,ic).abort(),this.setLoadingStatus("loading"),se(this,ic,new AbortController);const i=B(this,ic).signal,o=this.genome.continuousToDiscreteChromosomeIntervals(n);try{const a=await Promise.all(o.map(async s=>r(s,i)));if(!i.aborted)return this.setLoadingStatus("complete"),a}catch(a){if(!i.aborted)throw this.setLoadingStatus("error",a.message),a}}callIfWindowsChanged(n,r,i){const o=[Math.max(Math.floor(n[0]/r)*r,0),Math.min(Math.ceil(n[1]/r)*r,this.genome.totalSize)],a=B(this,oc);(r!==B(this,dh)||o[0]<a[0]||o[1]>a[1])&&(se(this,oc,o),se(this,dh,r),i(o))}}ic=new WeakMap,oc=new WeakMap,ac=new WeakMap,dh=new WeakMap;class wH extends zu{constructor(t,n){const r={channel:"x",windowSize:7e3,debounce:200,debounceMode:"window",...t};if(super(n,r.channel),this.params=r,!this.params.url)throw new Error("No URL provided for IndexedFastaSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(i=>{Promise.all([Promise.resolve().then(()=>h6),Promise.resolve().then(()=>GJ),Promise.resolve().then(()=>df)]).then(([{Buffer:o},{IndexedFasta:a},{RemoteFile:s}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=o));const l=c=>new s(Da(c,this.view.getBaseUrl()));this.fasta=new a({fasta:l(this.params.url),fai:l(this.params.indexUrl??this.params.url+".fai")}),i()})})}get label(){return"bigWigSource"}async loadInterval(t){const n=await this.discretizeAndLoad(t,async(r,i)=>this.fasta.getSequence(r.chrom,r.startPos,r.endPos,{signal:i}).then(o=>({chrom:r.chrom,start:r.startPos,sequence:o})));n&&this.publishData([n])}}class vH extends zu{constructor(n,r){const i={pixelsPerBin:2,channel:"x",debounce:200,debounceMode:"window",...n},o=Yd(r.paramMediator,i,a=>{a.includes("url")?Q(this,ph,pv).call(this).then(()=>this.reloadLastDomain()):a.includes("pixelsPerBin")&&this.reloadLastDomain()});super(r,o.channel);J(this,ph);J(this,sc,[]);J(this,lc);if(this.params=o,!this.params.url)throw new Error("No URL provided for BigWigSource");this.setupDebouncing(this.params),Q(this,ph,pv).call(this)}get label(){return"bigWigSource"}async onDomainChanged(n){await this.initializedPromise;const r=this.scaleResolution.getAxisLength()||700,i=xH(n,r,B(this,sc)),o=Math.max(i*r,5e3);this.callIfWindowsChanged(n,o,a=>this.loadInterval(a,i))}async loadInterval(n,r){const i=.5/r/In(this.params.pixelsPerBin),o=await this.discretizeAndLoad(n,(a,s)=>B(this,lc).getFeatures(a.chrom,a.startPos,a.endPos,{scale:i,signal:s}).then(l=>l.map(c=>({chrom:a.chrom,start:c.start,end:c.end,score:c.score}))));o&&this.publishData(o)}}sc=new WeakMap,lc=new WeakMap,ph=new WeakSet,pv=function(){return this.initializedPromise=new Promise((n,r)=>{Promise.all([Promise.resolve().then(()=>cI),Promise.resolve().then(()=>df)]).then(([{BigWig:i},{RemoteFile:o}])=>{se(this,lc,new i({filehandle:new o(Da(In(this.params.url),this.view.getBaseUrl()))})),this.setLoadingStatus("loading"),B(this,lc).getHeader().then(a=>{se(this,sc,a.zoomLevels.map(s=>s.reductionLevel).reverse()),B(this,sc).push(1),this.setLoadingStatus("complete"),n()}).catch(a=>{this.load(),this.setLoadingStatus("error",`${In(this.params.url)}: ${a.message}`),r(a)})})}),this.initializedPromise};function xH(e,t,n){const r=(e[1]-e[0])/t;return n.find(i=>i<r)??n.at(-1)}class AH extends zu{constructor(n,r){const i={channel:"x",windowSize:1e6,debounce:200,debounceMode:"window",...n},o=Yd(r.paramMediator,i,a=>{a.includes("url")?Q(this,gh,gv).call(this).then(()=>this.reloadLastDomain()):a.includes("windowSize")&&this.reloadLastDomain()});super(r,o.channel);J(this,gh);Kt(this,"parser");Kt(this,"bbi");Kt(this,"parseLine");if(this.params=o,!this.params.url)throw new Error("No URL provided for BigBedSource");this.setupDebouncing(this.params),Q(this,gh,gv).call(this)}get label(){return"bigBedSource"}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,o)=>this.bbi.getFeatures(i.chrom,i.startPos,i.endPos,{signal:o}).then(a=>a.map(s=>this.parseLine(i.chrom,s))));r&&this.publishData(r)}}gh=new WeakSet,gv=function(){return this.initializedPromise=new Promise((n,r)=>{Promise.all([Promise.resolve().then(()=>Nre),Promise.resolve().then(()=>cI),Promise.resolve().then(()=>df)]).then(([i,{BigBed:o},{RemoteFile:a}])=>{const s=i.default;this.bbi=new o({filehandle:new a(Da(In(this.params.url),this.view.getBaseUrl()))}),this.setLoadingStatus("loading"),this.bbi.getHeader().then(async l=>{this.parser=new s({autoSql:l.autoSql});try{const c=EH(this.parser);this.parseLine=(u,f)=>c(u,f.start,f.end,f.rest)}catch{this.parseLine=(u,f)=>this.parser.parseLine(`${u} ${f.start} ${f.end} ${f.rest}`)}this.setLoadingStatus("complete"),n()}).catch(l=>{this.load(),this.setLoadingStatus("error",`${In(this.params.url)}: ${l.message}`),r(l)})})}),this.initializedPromise};function EH(e){const t=e.autoSql.fields.filter(v=>v.type).slice(3);let n=0,r="",i=0,o={};const a=" ",s=a.charCodeAt(0),l=48,c=45;function u(){let v=r.indexOf(a,n);v<0&&(v=i);const x=r.substring(n,v);return n=v+1,x}function f(){let v=0,x=r.charCodeAt(n),A=1;x===c&&(A=-1,n++,x=r.charCodeAt(n));do{if(x===s){n++;break}v=v*10+x-l,x=r.charCodeAt(++n)}while(n<i);return v*A}const h=t.map(v=>`${JSON.stringify(v.name)}: ${v.isNumeric?"0":"emptyString"}`),d=new Function(`
|
@@ -1983,7 +1983,7 @@ chrM 16299`};function s$(e){if(!(e in BS))throw new Error(`Unknown assembly: ${e
|
|
1983
1983
|
`)}
|
1984
1984
|
}`)(f,u));function b(v){r=v,i=v.length,n=0}function m(v,x,A,S){b(S),o=d(v,x,A);for(const E of g)E(o);return o}return m}function SH(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,r)=>e.slice(r*t,r*t+t))}class _H extends zu{constructor(n,r){const i={channel:"x",windowSize:2e4,debounce:200,debounceMode:"domain",...n};super(r,i.channel);J(this,vs);Kt(this,"chrPrefixFixer",n=>n);if(this.params=i,!this.params.url)throw new Error("No URL provided for BamSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(o=>{Promise.all([Promise.resolve().then(()=>aie),Promise.resolve().then(()=>df)]).then(([{BamFile:a},{RemoteFile:s}])=>{const l=c=>new s(Da(c,this.view.getBaseUrl()));se(this,vs,new a({bamFilehandle:l(this.params.url),baiFilehandle:l(this.params.indexUrl??this.params.url+".bai")})),B(this,vs).getHeader().then(c=>{var h,d;const u=this.genome.hasChrPrefix(),f=(d=(h=B(this,vs).indexToChr)==null?void 0:h[0])==null?void 0:d.refName.startsWith("chr");u&&!f?this.chrPrefixFixer=p=>p.replace("chr",""):!u&&f&&(this.chrPrefixFixer=p=>"chr"+p),o()})})})}get label(){return"bamSource"}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,o)=>B(this,vs).getRecordsForRange(this.chrPrefixFixer(i.chrom),i.startPos,i.endPos,{signal:o}).then(a=>a.map(s=>({chrom:i.chrom,start:s.get("start"),end:s.get("end"),name:s.get("name"),MD:s.get("MD"),cigar:s.get("cigar"),mapq:s.get("mq"),strand:s.get("strand")===1?"+":"-"}))));r&&this.publishData(r)}}vs=new WeakMap;class CH extends zu{constructor(n,r){const i={channel:"x",windowSize:3e6,debounce:200,debounceMode:"domain",...n};super(r,i.channel);J(this,mh);if(this.params=i,!this.params.url)throw new Error("No URL provided for TabixSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(o=>{Promise.all([Promise.resolve().then(()=>h6),Promise.resolve().then(()=>mie),Promise.resolve().then(()=>df)]).then(([{Buffer:a},{TabixIndexedFile:s},{RemoteFile:l}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=a));const c=u=>new l(Da(u,this.view.getBaseUrl()));se(this,mh,new s({filehandle:c(this.params.url),tbiFilehandle:c(this.params.indexUrl??this.params.url+".tbi")})),o()})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,o)=>{const a=[];return await B(this,mh).getLines(i.chrom,i.startPos,i.endPos,{lineCallback:s=>{a.push(s)},signal:o}),this._parseFeatures(a)});r&&this.publishData(r)}_parseFeatures(n){return[]}}mh=new WeakMap;class kH extends CH{constructor(n,r){super(n,r);J(this,bh);Promise.resolve().then(()=>eoe).then(i=>{se(this,bh,i.default)})}get label(){return"gff3Source"}_parseFeatures(n){var i;return(i=B(this,bh))==null?void 0:i.parseStringSync(n.join(`
|
1985
1985
|
`),{parseSequences:!1})}}bh=new WeakMap;function o4(e,t){if(r4(e))return new i4(e,t);if(dH(e))return new pH(e,t);if(gH(e))return new mH(e,t);if(TH(e))return OH(e.lazy,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function TH(e){return"lazy"in e}function IH(e){return(e==null?void 0:e.type)=="axisTicks"}function RH(e){return(e==null?void 0:e.type)=="axisGenome"}function DH(e){return(e==null?void 0:e.type)=="indexedFasta"}function BH(e){return(e==null?void 0:e.type)=="bigwig"}function FH(e){return(e==null?void 0:e.type)=="bigbed"}function MH(e){return(e==null?void 0:e.type)=="bam"}function PH(e){return(e==null?void 0:e.type)=="gff3"}function OH(e,t){if(IH(e))return new bH(e,t);if(RH(e))return new yH(e,t);if(DH(e))return new wH(e,t);if(BH(e))return new vH(e,t);if(FH(e))return new AH(e,t);if(MH(e))return new _H(e,t);if(PH(e))return new kH(e,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function LH(e){const t=a4(e).filter(r=>typeof r=="string"),n=new Function("source","return { "+t.map(r=>JSON.stringify(r)).map(r=>`${r}: source[${r}]`).join(`,
|
1986
|
-
`)+" };");return n.properties=t,n}function a4(e){let t=[];do t=t.concat(Object.keys(e)),e=Object.getPrototypeOf(e);while(e&&e!==Object.prototype);return Array.from(new Set(t))}class r0 extends kt{constructor(){super({type:"clone"});J(this,cc);J(this,yh,n=>n);const n=r=>{const i=a4(r);(!B(this,cc)||!id(i,B(this,cc)))&&(se(this,cc,i),se(this,yh,LH(r)));const o=B(this,yh);this.handle=a=>this._propagate(o(a)),this.handle(r)};this.handle=n,this.beginBatch=r=>{PE(r)&&(this.handle=n),super.beginBatch(r)}}get behavior(){return qr}}cc=new WeakMap,yh=new WeakMap;function NH(e){return"name"in e}class s4 extends Fa{constructor(n,r,i){super(r);J(this,wh);this.provider=i,this.params=n}get identifier(){return this.params.name}get label(){return"namedSource"}updateDynamicData(n){se(this,wh,n),this.loadSynchronously()}loadSynchronously(){const n=B(this,wh)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=t4(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()}}wh=new WeakMap;class l4{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,o]of this._dataSourcesByHost.entries())if(o instanceof s4&&t==o.identifier){if(n&&n!==o)throw new Error(`Found multiple instances of named data: ${t}. Data flow optimization is broken (it's a bug).`);n=o,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 c4(e,t){const n=new Map,r=[];for(const i of e)n.set(i,{ref:i,children:[]});for(const i of n.values()){const o=n.get(t(i.ref));o?o.children.push(i):r.push(i)}return r}function u4(e,t,n){var i,o;const r=(i=t.preOrder)==null?void 0:i.call(t,e);if(r)return r;for(const a of n(e)){const s=u4(a,t,n);if(s==="stop")return s}return(o=t.postOrder)==null?void 0:o.call(t,e)}function f4(e,t){return u4(e,t,n=>n.children)}function h4(e,t){const n=[],r=[];let i;const o=t??new l4,a=[];function s(d,p=()=>{}){if(!i)throw p()||new Error("Cannot append data flow node, no parent exist!");return i.addChild(d),i=d,n.push(d),d}function l(d,p){return s(d,()=>new Error("Cannot append a transform because no (inherited) data are available! "))}function c(d,p){for(const g of d){let b;try{b=lH(g,p)}catch(m){throw console.warn(m),new Error(`Cannot initialize "${g.type}" transform: ${m}`)}b.behavior&yo&&l(new r0),l(b)}}function u(){return n.findLastIndex(d=>d instanceof C1)>n.findLastIndex(d=>d instanceof Fa)}const f=d=>{if(d.spec.data){const p=NH(d.spec.data)?new s4(d.spec.data,d,d.context.getNamedDataFromProvider):o4(d.spec.data,d);i=p,n.push(p),o.addDataSource(p,d)}if(d.spec.transform&&c(d.spec.transform,d),d instanceof Tt){if(!i)throw new Error(`A unit view (${d.getPathString()}) has no (inherited) data source`);const p=zH(d);if(p){a.push(p.rewrite);for(const b of p.transforms)l(b)}d.mark.isPickingParticipant()&&!u()&&(l(new r0),l(new C1({type:"identifier"})));const g=new Lu({type:"collect",groupby:d.getFacetFields(),sort:UH(d,p==null?void 0:p.rewrittenEncoding)});s(g),o.addCollector(g,d)}},h=c4(e.getDescendants(),d=>d.dataParent);for(const d of h)f4(d,{preOrder:p=>{r.push({view:p.ref,nodeStackDepth:n.length}),f(p.ref)},postOrder:()=>{const{nodeStackDepth:p}=r.pop();n.length=p,i=n.at(-1)}});return a.forEach(d=>d()),o}function zH(e){var o;const t=[],n={},r=[];for(const[a,s]of Object.entries(e.getEncoding())){const l=a;Cu(l)&&qE(s)&&r.push({channel:l,chromPosDef:s})}const i=_c(r,a=>Ta(a.channel),a=>a.chromPosDef.chrom);for(const[a,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=v=>v.replace(/[^A-Za-z0-9_]/g,""),b=["_linearized_",g(p.chrom),"_",g(p.pos)].join(""),m={...((o=e.spec.encoding)==null?void 0:o[d])??e.getEncoding()[d]??{},field:b};delete m.chrom,delete m.pos,!m.type&&p.type&&(m.type=p.type),n[d]=m,u.push(p.pos),h.push(p.offset??0),f.push(b)}t.push(new r0),t.push(new QS({type:"linearizeGenomicCoordinate",channel:a,chrom:l,pos:u,offset:h,as:f},e))}return t.length?{transforms:t,rewrittenEncoding:n,rewrite:()=>{e.spec.encoding={...e.spec.encoding,...n},nU(e.mark,"encoding")}}:void 0}function UH(e,t){var r;const n={...e.getEncoding(),...t}.x;if(Rn(n)&&(r=e.getScaleResolution("x"))!=null&&r.isZoomable()){if(Wr(n))return"buildIndex"in n&&n.buildIndex?{field:n.field}:null;if(!Su(n)){if(_u(n))throw new Error("A zoomable x channel must be mapped to a field.")}}}function $H(e,...t){let n=e;for(const o of t)n.addChild(o),n=o;let r;n instanceof Lu?r=n:(r=new Lu,n.addChild(r));let i;return e instanceof Fa?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 d4(e,t=void 0){if(e.parent!==t)return!1;for(const n of e.children)if(!d4(n,e))return!1;return!0}function J1(e,t=!1){if(e.behavior&_1&&(t=!0),e instanceof r0)if(t)t=!1;else{const n=e.children[0];e.excise(),n&&J1(n,t);return}e.behavior&qr&&(t=!1);for(let n=0,r=e.children.length;n<r;n++)J1(e.children[n],t||r>1)}function HH(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 o=n.get(i.identifier);o&&(o.adoptChildrenOf(i),i=o),e.addDataSource(i,r)}}function GH(e){if(J1(e),!d4(e))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function VH(e){HH(e);for(const t of e.dataSources)GH(t)}function p4(e){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)}})}function jH(e){for(const t of Ks){const n=e.getScaleResolution(t);n&&!n.name&&n.isZoomable()&&(n.name=`${t}_at_root`)}}function qH(e){const t=[];return e.visit(n=>{if(n instanceof Tt){const r=n.getEncoding();for(const[i,o]of Object.entries(r))Wr(o)&&"type"in o&&t.push({view:n,channel:i,field:o.field,type:o.type});return VS}}),t}async function WH(e,t,n){const r=e.import;if(!("url"in r))throw new Error("Not an url import: "+JSON.stringify(r));const i=Fu(t,r.url);let o;try{const a=await fetch(i);if(!a.ok)throw new Error(`${a.status} ${a.statusText}`);o=await a.json()}catch(a){throw new Error(`Could not load imported view spec: ${i}. Reason: ${a.message}`)}if(n.isViewSpec(o))return o.baseUrl=Fu(FS(r.url),o.baseUrl),o;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(e)}`)}function g4(e){const t=[];return e.visit(n=>{t.push(n)}),new Set([...lR(t,n=>n.length,n=>n.name)].filter(([n,r])=>r==1&&n!==void 0).map(([n,r])=>n))}function YH(e){const t=e.getSize(),n=e.getPadding(),r=(i,o)=>i.grow>0?void 0:i.px+o;return{width:r(t.width,n.horizontalTotal),height:r(t.height,n.verticalTotal)}}function Ti(e){return()=>e}const Rr=class Rr{static create(t,n,r,i){return new Rr(Ti(t),Ti(n),Ti(r),Ti(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"?Ti(i):typeof i=="function"?i:this._passThrough(r)};return new Rr(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new Rr(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 Rr(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||t==null?this:new Rr(()=>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))}union(t){return this===t||t==null?this:new Rr(()=>Math.min(this.x,t.x),()=>Math.min(this.y,t.y),()=>Math.max(this.x2,t.x2)-Math.min(this.x,t.x),()=>Math.max(this.y2,t.y2)-Math.min(this.y,t.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new Rr(Ti(this.x),Ti(this.y),Ti(this.width),Ti(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}`}toRoundedString(){return`Rectangle: x: ${Math.round(this.x)}, y: ${Math.round(this.y)}, width: ${Math.round(this.width)}, height: ${Math.round(this.height)}`}};Kt(Rr,"ZERO",Rr.create(0,0,0,0));let vr=Rr;class m4{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class b4 extends m4{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})}render(){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=a=>()=>{t&&a()},i=a=>()=>{t&&n&&a()},o=_c(this.buffer.reverse(),a=>a.mark);for(const[a,s]of[...o.entries()].reverse()){if(!a.isReady())continue;this.batch.push(()=>{t=a.unitView.getEffectiveOpacity()>0}),this.batch.push(...a.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=a.setViewport(u,c.clipRect)})),this.batch.push(i(c.callback)),l=c.coords}}}}class ZH extends m4{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 QH{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 Yr{static fromMouseEvent(t){return new Yr(t.clientX,t.clientY)}constructor(t,n){this.x=t,this.y=n}subtract(t){return new Yr(this.x-t.x,this.y-t.y)}add(t){return new Yr(this.x-t.x,this.y-t.y)}multiply(t){return new Yr(this.x*t,this.y*t)}get length(){return Math.sqrt(this.x**2+this.y**2)}equals(t){return t?t===this||t.x===this.x&&t.y===this.y:!1}}const XH=e=>new Promise(t=>setTimeout(t,e));function i0(e){const t=e.requestAnimationFrame||window.requestAnimationFrame,n=e.signal,r=()=>new Promise((i,o)=>{if(n!=null&&n.aborted)return o("aborted");const a=performance.now(),s=a+(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-a)/(s-a),h=g=>g*(c-l)+l,d=g=>Math.max(0,Math.min(1,g)),p=g=>{n!=null&&n.aborted?o("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"):XH(e.delay).then(r):r()}class KH{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 i0({requestAnimationFrame:n=>this.requestTransition(n),...t})}}function eb(e,t,n,r,i){let o=0,a=!0,s=structuredClone(i),l=s;function c(h,d,p,g){return d+(h-d)*Math.pow(2,-p/g)}function u(h){if(a)return;const d=h-o;o=h;for(const g of Object.keys(l))s[g]=c(s[g],l[g],d,n);t(s);let p=-1/0;for(const g of Object.keys(l))p=Math.max(p,Math.abs(l[g]-s[g]));p<r?(s=l,t(s),a=!0,p!=0&&e.requestRender()):e.requestTransition(g=>u(g))}function f(h){l=h,a&&(a=!1,o=+document.timeline.currentTime,u(o))}return f.stop=()=>{a=!0},f}class JH{constructor(t){this.genomes=new Map,this.baseUrl=t}async initialize(t){const n=new c$(t);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.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 eG="data:image/png;base64,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",tG={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class nG{constructor(t){this._webGLHelper=t,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new gi([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:O1(XS),texture:t?this._createTextureNow(eG):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(We(r)&&(r=tG[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:t,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(t,n){try{const r=await this._loadMetadata(n.family),i=iG(r,n),o=this.fontRepository+y4(n.family)+"/"+i.replace(/\.\w+/,""),a=this._createTexture(o+".png"),s=this._loadFont(o+".json");t.texture=await a,t.metrics=await s}catch{console.warn(`Cannot load font: "${n.family}". Using the embedded default font.`),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=>O1(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=y4(t);let r=this._metadataPromises.get(n);if(!r){const i=this.fontRepository+n+"/METADATA.pb";r=fetch(i).then(o=>{if(!o.ok)throw new Error("Could not load font metadata. Response status: "+o.status+", url: "+i);return o}).then(o=>o.text()).then(o=>rG(o)).catch(o=>{console.warn(o.message)}),this._metadataPromises.set(n,r)}return r}getDefaultFont(){return this._defaultFontEntry}_createTexture(t){const n=this._webGLHelper.gl;return new Promise((r,i)=>{iu(n,{src:t,min:n.LINEAR},(o,a,s)=>{o?i(o):r(a)})})}_createTextureNow(t){const n=this._webGLHelper.gl;let r;const i=new Promise((o,a)=>{r=iu(n,{src:t,min:n.LINEAR},(s,l,c)=>{s?a(s):o(l)})});return this._promises.push(i),r}}function y4(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function rG(e){const t=e.split(`
|
1986
|
+
`)+" };");return n.properties=t,n}function a4(e){let t=[];do t=t.concat(Object.keys(e)),e=Object.getPrototypeOf(e);while(e&&e!==Object.prototype);return Array.from(new Set(t))}class r0 extends kt{constructor(){super({type:"clone"});J(this,cc);J(this,yh,n=>n);const n=r=>{const i=a4(r);(!B(this,cc)||!id(i,B(this,cc)))&&(se(this,cc,i),se(this,yh,LH(r)));const o=B(this,yh);this.handle=a=>this._propagate(o(a)),this.handle(r)};this.handle=n,this.beginBatch=r=>{PE(r)&&(this.handle=n),super.beginBatch(r)}}get behavior(){return qr}}cc=new WeakMap,yh=new WeakMap;function NH(e){return"name"in e}class s4 extends Fa{constructor(n,r,i){super(r);J(this,wh);this.provider=i,this.params=n}get identifier(){return this.params.name}get label(){return"namedSource"}updateDynamicData(n){se(this,wh,n),this.loadSynchronously()}loadSynchronously(){const n=B(this,wh)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=t4(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()}}wh=new WeakMap;class l4{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,o]of this._dataSourcesByHost.entries())if(o instanceof s4&&t==o.identifier){if(n&&n!==o)throw new Error(`Found multiple instances of named data: ${t}. Data flow optimization is broken (it's a bug).`);n=o,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 c4(e,t){const n=new Map,r=[];for(const i of e)n.set(i,{ref:i,children:[]});for(const i of n.values()){const o=n.get(t(i.ref));o?o.children.push(i):r.push(i)}return r}function u4(e,t,n){var i,o;const r=(i=t.preOrder)==null?void 0:i.call(t,e);if(r)return r;for(const a of n(e)){const s=u4(a,t,n);if(s==="stop")return s}return(o=t.postOrder)==null?void 0:o.call(t,e)}function f4(e,t){return u4(e,t,n=>n.children)}function h4(e,t){const n=[],r=[];let i;const o=t??new l4,a=[];function s(d,p=()=>{}){if(!i)throw p()||new Error("Cannot append data flow node, no parent exist!");return i.addChild(d),i=d,n.push(d),d}function l(d,p){return s(d,()=>new Error("Cannot append a transform because no (inherited) data are available! "))}function c(d,p){for(const g of d){let b;try{b=lH(g,p)}catch(m){throw console.warn(m),new Error(`Cannot initialize "${g.type}" transform: ${m}`)}b.behavior&yo&&l(new r0),l(b)}}function u(){return n.findLastIndex(d=>d instanceof C1)>n.findLastIndex(d=>d instanceof Fa)}const f=d=>{if(d.spec.data){const p=NH(d.spec.data)?new s4(d.spec.data,d,d.context.getNamedDataFromProvider):o4(d.spec.data,d);i=p,n.push(p),o.addDataSource(p,d)}if(d.spec.transform&&c(d.spec.transform,d),d instanceof Tt){if(!i)throw new Error(`A unit view (${d.getPathString()}) has no (inherited) data source`);const p=zH(d);if(p){a.push(p.rewrite);for(const b of p.transforms)l(b)}d.mark.isPickingParticipant()&&!u()&&(l(new r0),l(new C1({type:"identifier"})));const g=new Lu({type:"collect",groupby:d.getFacetFields(),sort:UH(d,p==null?void 0:p.rewrittenEncoding)});s(g),o.addCollector(g,d)}},h=c4(e.getDescendants(),d=>d.dataParent);for(const d of h)f4(d,{preOrder:p=>{r.push({view:p.ref,nodeStackDepth:n.length}),f(p.ref)},postOrder:()=>{const{nodeStackDepth:p}=r.pop();n.length=p,i=n.at(-1)}});return a.forEach(d=>d()),o}function zH(e){var o;const t=[],n={},r=[];for(const[a,s]of Object.entries(e.getEncoding())){const l=a;Cu(l)&&qE(s)&&r.push({channel:l,chromPosDef:s})}const i=_c(r,a=>Ta(a.channel),a=>a.chromPosDef.chrom);for(const[a,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=v=>v.replace(/[^A-Za-z0-9_]/g,""),b=["_linearized_",g(p.chrom),"_",g(p.pos)].join(""),m={...((o=e.spec.encoding)==null?void 0:o[d])??e.getEncoding()[d]??{},field:b};delete m.chrom,delete m.pos,!m.type&&p.type&&(m.type=p.type),n[d]=m,u.push(p.pos),h.push(p.offset??0),f.push(b)}t.push(new r0),t.push(new QS({type:"linearizeGenomicCoordinate",channel:a,chrom:l,pos:u,offset:h,as:f},e))}return t.length?{transforms:t,rewrittenEncoding:n,rewrite:()=>{e.spec.encoding={...e.spec.encoding,...n},nU(e.mark,"encoding")}}:void 0}function UH(e,t){var r;const n={...e.getEncoding(),...t}.x;if(Rn(n)&&(r=e.getScaleResolution("x"))!=null&&r.isZoomable()){if(Wr(n))return"buildIndex"in n&&n.buildIndex?{field:n.field}:null;if(!Su(n)){if(_u(n))throw new Error("A zoomable x channel must be mapped to a field.")}}}function $H(e,...t){let n=e;for(const o of t)n.addChild(o),n=o;let r;n instanceof Lu?r=n:(r=new Lu,n.addChild(r));let i;return e instanceof Fa?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 d4(e,t=void 0){if(e.parent!==t)return!1;for(const n of e.children)if(!d4(n,e))return!1;return!0}function J1(e,t=!1){if(e.behavior&_1&&(t=!0),e instanceof r0)if(t)t=!1;else{const n=e.children[0];e.excise(),n&&J1(n,t);return}e.behavior&qr&&(t=!1);for(let n=0,r=e.children.length;n<r;n++)J1(e.children[n],t||r>1)}function HH(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 o=n.get(i.identifier);o&&(o.adoptChildrenOf(i),i=o),e.addDataSource(i,r)}}function GH(e){if(J1(e),!d4(e))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function VH(e){HH(e);for(const t of e.dataSources)GH(t)}function p4(e){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)}})}function jH(e){for(const t of Ks){const n=e.getScaleResolution(t);n&&!n.name&&n.isZoomable()&&(n.name=`${t}_at_root`)}}function qH(e){const t=[];return e.visit(n=>{if(n instanceof Tt){const r=n.getEncoding();for(const[i,o]of Object.entries(r))Wr(o)&&"type"in o&&t.push({view:n,channel:i,field:o.field,type:o.type});return VS}}),t}async function WH(e,t,n){const r=e.import;if(!("url"in r))throw new Error("Not an url import: "+JSON.stringify(r));const i=Fu(t,r.url);let o;try{const a=await fetch(i);if(!a.ok)throw new Error(`${a.status} ${a.statusText}`);o=await a.json()}catch(a){throw new Error(`Could not load imported view spec: ${i}. Reason: ${a.message}`)}if(n.isViewSpec(o))return o.baseUrl=Fu(FS(r.url),o.baseUrl),o;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(e)}`)}function g4(e){const t=[];return e.visit(n=>{t.push(n)}),new Set([...lR(t,n=>n.length,n=>n.name)].filter(([n,r])=>r==1&&n!==void 0).map(([n,r])=>n))}function YH(e){const t=e.getSize(),n=e.getPadding(),r=(i,o)=>i.grow>0?void 0:i.px+o;return{width:r(t.width,n.horizontalTotal),height:r(t.height,n.verticalTotal)}}function Ti(e){return()=>e}const Rr=class Rr{static create(t,n,r,i){return new Rr(Ti(t),Ti(n),Ti(r),Ti(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"?Ti(i):typeof i=="function"?i:this._passThrough(r)};return new Rr(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new Rr(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 Rr(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||t==null?this:new Rr(()=>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))}union(t){return this===t||t==null?this:new Rr(()=>Math.min(this.x,t.x),()=>Math.min(this.y,t.y),()=>Math.max(this.x2,t.x2)-Math.min(this.x,t.x),()=>Math.max(this.y2,t.y2)-Math.min(this.y,t.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new Rr(Ti(this.x),Ti(this.y),Ti(this.width),Ti(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}`}toRoundedString(){return`Rectangle: x: ${Math.round(this.x)}, y: ${Math.round(this.y)}, width: ${Math.round(this.width)}, height: ${Math.round(this.height)}`}};Kt(Rr,"ZERO",Rr.create(0,0,0,0));let vr=Rr;class m4{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class b4 extends m4{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})}render(){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=a=>()=>{t&&a()},i=a=>()=>{t&&n&&a()},o=_c(this.buffer.reverse(),a=>a.mark);for(const[a,s]of[...o.entries()].reverse()){if(!a.isReady())continue;this.batch.push(()=>{t=a.unitView.getEffectiveOpacity()>0}),this.batch.push(...a.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=a.setViewport(u,c.clipRect)})),this.batch.push(i(c.callback)),l=c.coords}}}}class ZH extends m4{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 QH{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 Yr{static fromMouseEvent(t){return new Yr(t.clientX,t.clientY)}constructor(t,n){this.x=t,this.y=n}subtract(t){return new Yr(this.x-t.x,this.y-t.y)}add(t){return new Yr(this.x-t.x,this.y-t.y)}multiply(t){return new Yr(this.x*t,this.y*t)}get length(){return Math.sqrt(this.x**2+this.y**2)}equals(t){return t?t===this||t.x===this.x&&t.y===this.y:!1}}const XH=e=>new Promise(t=>setTimeout(t,e));function i0(e){const t=e.requestAnimationFrame||window.requestAnimationFrame,n=e.signal,r=()=>new Promise((i,o)=>{if(n!=null&&n.aborted)return o("aborted");const a=performance.now(),s=a+(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-a)/(s-a),h=g=>g*(c-l)+l,d=g=>Math.max(0,Math.min(1,g)),p=g=>{n!=null&&n.aborted?o("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"):XH(e.delay).then(r):r()}class KH{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 i0({requestAnimationFrame:n=>this.requestTransition(n),...t})}}function eb(e,t,n,r,i){let o=0,a=!0,s=structuredClone(i),l=s;function c(h,d,p,g){return d+(h-d)*Math.pow(2,-p/g)}function u(h){if(a)return;const d=h-o;o=h;for(const g of Object.keys(l))s[g]=c(s[g],l[g],d,n);t(s);let p=-1/0;for(const g of Object.keys(l))p=Math.max(p,Math.abs(l[g]-s[g]));p<r?(s=l,t(s),a=!0,p!=0&&e.requestRender()):e.requestTransition(g=>u(g))}function f(h){l=h,a&&(a=!1,o=+document.timeline.currentTime,u(o))}return f.stop=()=>{a=!0},f}class JH{constructor(t){this.genomes=new Map,this.baseUrl=t}async initialize(t){const n=new c$(t);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.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 eG="data:image/png;base64,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",tG={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class nG{constructor(t){this._webGLHelper=t,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new gi([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:O1(XS),texture:t?this._createTextureNow(eG):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(Xe(r)&&(r=tG[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:t,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(t,n){try{const r=await this._loadMetadata(n.family),i=iG(r,n),o=this.fontRepository+y4(n.family)+"/"+i.replace(/\.\w+/,""),a=this._createTexture(o+".png"),s=this._loadFont(o+".json");t.texture=await a,t.metrics=await s}catch{console.warn(`Cannot load font: "${n.family}". Using the embedded default font.`),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=>O1(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=y4(t);let r=this._metadataPromises.get(n);if(!r){const i=this.fontRepository+n+"/METADATA.pb";r=fetch(i).then(o=>{if(!o.ok)throw new Error("Could not load font metadata. Response status: "+o.status+", url: "+i);return o}).then(o=>o.text()).then(o=>rG(o)).catch(o=>{console.warn(o.message)}),this._metadataPromises.set(n,r)}return r}getDefaultFont(){return this._defaultFontEntry}_createTexture(t){const n=this._webGLHelper.gl;return new Promise((r,i)=>{iu(n,{src:t,min:n.LINEAR},(o,a,s)=>{o?i(o):r(a)})})}_createTextureNow(t){const n=this._webGLHelper.gl;let r;const i=new Promise((o,a)=>{r=iu(n,{src:t,min:n.LINEAR},(s,l,c)=>{s?a(s):o(l)})});return this._promises.push(i),r}}function y4(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function rG(e){const t=e.split(`
|
1987
1987
|
`),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 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 iG(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 o=Math.abs(t.weight-i.weight);o<r&&(r=o,n=i)}return n==null?void 0:n.filename}function oG(e,t){const n=[];let r;for(const i of e.split(`
|
1988
1988
|
`))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 aG{constructor(t,n){this.animator=t,this.disabled=!!n,this.maxDistance=500,this.callback=null,this.targetValue=0,this.lastValue=0,this.smoother=eb(t,r=>{var o;const i=r.x-this.lastValue;this.lastValue=r.x,(o=this.callback)==null||o.call(this,i)},40,.1,{x:0})}cancel(){this.lastValue!==this.targetValue&&(this.targetValue=Tv([this.lastValue,this.targetValue],.3),this.smoother({x:this.targetValue}))}setMomentum(t,n){if(this.disabled){n(t);return}this.callback=n;const r=Ci(this.targetValue+t-this.lastValue,-this.maxDistance,this.maxDistance);this.targetValue=this.lastValue+r,this.smoother({x:this.targetValue})}}function sG(e){const t={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in e){const o=i;!r.includes(i)&&n.includes(typeof e[o])&&(t[o]=e[o])}return t}const w4=new Map;async function lG(e,t,n){const r=e.symbol;let i=w4.get(r)??await fG(e.symbol);return i?(w4.set(r,i),U`
|
1989
1989
|
<div class="title">
|
@@ -1992,7 +1992,7 @@ chrM 16299`};function s$(e){if(!(e in BS))throw new Error(`Unknown assembly: ${e
|
|
1992
1992
|
</div>
|
1993
1993
|
<p class="summary">${i.summary}</p>
|
1994
1994
|
<p class="source">Source: NCBI RefSeq Gene</p>
|
1995
|
-
`):null}async function cG(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(a=>a.json())).result[r]:null}const uG=Ma(cG,500);function fG(e){return uG(e)}const hG=Bt(".4~r"),dG=Bt(".4~e");function tb(e){return e==null?U` <span class="na">NA</span> `:
|
1995
|
+
`):null}async function cG(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(a=>a.json())).result[r]:null}const uG=Ma(cG,500);function fG(e){return uG(e)}const hG=Bt(".4~r"),dG=Bt(".4~e");function tb(e){return e==null?U` <span class="na">NA</span> `:Xe(e)?e.substring(0,30):Number.isInteger(e)?""+e:vt(e)?Math.abs(e)>Math.pow(10,8)||Math.abs(e)<Math.pow(10,-8)?dG(e):hG(e):Ac(e)?e?"True":"False":Jt(e)?U`${e.map((t,n)=>[tb(t),n<e.length-1?", ":ye])}`:"?"+typeof e+" "+e}async function pG(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.dataAccessor)!=null&&u.fields.includes(l))switch(f){case"color":case"fill":case"stroke":return U`
|
1996
1996
|
<span
|
1997
1997
|
class="color-legend"
|
1998
1998
|
style=${`background-color: ${h(c)}`}
|
@@ -2010,7 +2010,7 @@ chrM 16299`};function s$(e){if(!(e in BS))throw new Error(`Unknown assembly: ${e
|
|
2010
2010
|
<div class="title">
|
2011
2011
|
<strong>${a}</strong>
|
2012
2012
|
</div>
|
2013
|
-
`:"";return U`${s}${o}`}class Ii extends qS{constructor(t,n,r,i,o,a){super(t,n,r,i,o,a),this.spec=t}async initializeChildren(){}*[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===Ba)return n;if(n!==VS){t.beforeChildren&&t.beforeChildren(this);for(const r of this){const i=r.visit(t);if(i===Ba)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 Ii)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,Ba}),n}getDefaultResolution(t,n){return"shared"}}class Pa extends Ii{constructor(n,r,i,o,a,s){super(n,r,i,o,a,{layersChildren:!0,...s});J(this,qi,[]);this.spec=n,this.needsAxes={x:!0,y:!0}}async initializeChildren(){se(this,qi,await Promise.all(this.spec.layer.map((n,r)=>this.context.createOrImportView(n,this,this,"grid"+r,i=>{if(!s0(i)&&!a0(i))throw new Ra("LayerView accepts only unit or layer specs as children!",this)}))))}get children(){return B(this,qi).slice()}*[Symbol.iterator](){for(const n of B(this,qi))yield n}render(n,r,i={}){if(super.render(n,r,i),!!this.isConfiguredVisible()){n.pushView(this,r);for(const o of B(this,qi))o.render(n,r,i);n.popView(this)}}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0);for(let r=B(this,qi).length-1;r>=0;r--)if(B(this,qi)[r].propagateInteractionEvent(n),n.stopped)return;this.handleInteractionEvent(void 0,n,!1)}}qi=new WeakMap;class v4{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 o=[];t.push(o);for(let a=0;a<n;a++){const s=i*n+a;s<this.n&&o.push(s)}}return t}get colIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const o=[];t.push(o);for(let a=0;a<r;a++){const s=a*n+i;s<this.n&&o.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)]}}const gG="chromosome_ticks_and_labels",mG={x:"width",y:"height"};function nb(e){return e=="x"?"y":"x"}const o0={x:["bottom","top"],y:["left","right"]},rb=Object.fromEntries(Object.entries(o0).map(([e,t])=>t.map(n=>[n,e])).flat(1));function vo(e){return rb[e]}class ib extends Pa{constructor(t,n,r,i,o,a){const s=n=="locus",l={...s?yG:x4,...bG(n,t),...t};super(s?wG(l,n):A4(l,n),r,i,o,`axis_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...a}),this.axisProps=l}getSize(){const t={px:this.getPerpendicularSize()},n={grow:1};return rb[this.axisProps.orient]=="x"?new ki(n,t):new ki(t,n)}getPerpendicularSize(){return ob(this.axisProps)}isPickingSupported(){return!1}}function ob(e){const t=vo(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 x4={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 bG(e,t){const n=t.orient,r=e=="nominal"||e=="ordinal";let i="center",o="middle",a=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(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 A4(e,t){const n={...e,extent:ob(e)},r=vo(n.orient),i=nb(r),o=n.orient=="bottom"||n.orient=="right"?1:-1,a=n.orient=="bottom"||n.orient=="left"?1:0,s=()=>({name:"domain",data:{values:[{}]},mark:{type:"rule",clip:!1,strokeDash:n.domainDash,strokeCap:n.domainCap,color:n.domainColor,[i]:a,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)*o,[i]:a,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:a},[i+"2"]:{value:a-n.tickSize/n.extent*(a?1:-1)}}}),u=()=>({name:"title",data:{values:[{}]},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}}),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"}},[mG[nb(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 yG={...x4,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 wG(e,t){const n={...e,extent:ob(e)},r=vo(n.orient),i=nb(r),o=n.orient=="bottom"||n.orient=="left"?1:0,a=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:e.chromTickDash,strokeDashOffset:e.chromTickDashOffset,[i]:o,[i+"2"]:o-n.chromTickSize/n.extent*(o?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=A4({...e,...l},t);if(e.chromTicks||e.chromLabels){const u={name:gG,data:{lazy:{type:"axisGenome",channel:vo(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&u.layer.push(a()),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 vG extends Pa{constructor(t,n,r,i,o,a){const l={...n=="locus"?xG:E4,...t};super(_G(l,n),r,i,o,`axisGrid_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...a}),this.axisProps=l}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const E4={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},xG={...E4,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function AG(e,t){const n=e,r=vo(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 EG(e,t){const n=e,r=vo(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 SG(e,t){const n=e,r=vo(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 _G(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(SG(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(EG(n,t)),n.grid&&n.gridOpacity>0&&r.push(AG(n,t)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[vo(e.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const S4={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"},CG={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},kG={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},TG={start:0,middle:.5,end:1},IG={start:"left",middle:"center",end:"right"};function RG(e){if(!e)return;const t=We(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":CG,overlay:kG}[t.style]??{},r={...S4,...n,...t};let i={},o={x:0,y:0};const a=TG[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={...S4,...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,...o,...l,text:s.text,align:s.align??IG[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}}}class DG{constructor(t){J(this,xs);J(this,Yo,0);J(this,Zo,0);se(this,xs,new Array(t))}push(t){B(this,xs)[B(this,Yo)]=t,se(this,Yo,(B(this,Yo)+1)%this.size),se(this,Zo,Math.min(B(this,Zo)+1,this.size))}get(){const t=B(this,xs);return B(this,Zo)<this.size?t.slice(0,B(this,Zo)):t.slice(B(this,Yo),this.size).concat(t.slice(0,B(this,Yo)))}get size(){return B(this,xs).length}get length(){return B(this,Zo)}}xs=new WeakMap,Yo=new WeakMap,Zo=new WeakMap;let Oa,_4=0;function C4(){return performance.now()-_4<50}function BG(e){return function(...t){_4=performance.now(),e(...t)}}function k4(e,t,n,r,i){if(n=BG(n),e.type=="wheel"){e.uiEvent.preventDefault();const o=e.uiEvent,a=o.deltaMode?120:1;if(!o.deltaX&&!o.deltaY)return;Oa==null||Oa.stop();let{x:s,y:l}=e.point;if(r){const c=r.mark.encoders;c.x&&!c.x2&&!c.x.constant&&(s=+c.x(r.datum)*t.width+t.x),c.y&&!c.y2&&!c.y.constant&&(l=(1-+c.y(r.datum))*t.height+t.y)}Math.abs(o.deltaX)<Math.abs(o.deltaY)?n({x:s,y:l,xDelta:0,yDelta:0,zDelta:o.deltaY*a/300}):n({x:s,y:l,xDelta:-o.deltaX*a,yDelta:0,zDelta:0})}else if(e.type=="mousedown"&&e.uiEvent.button===0){Oa&&Oa.stop();const o=new DG(30),a=e.uiEvent;a.preventDefault();let s=Yr.fromMouseEvent(a);const l=f=>{const h=Yr.fromMouseEvent(f);o.push({point:h,timestamp:performance.now()});const d=h.subtract(s);n({x:s.x,y:s.y,xDelta:d.x,yDelta:d.y,zDelta:0}),s=h},c=()=>{const h=performance.now(),d=o.get().filter(x=>h-x.timestamp<160);if(d.length<5||!i||FG(d))return;const p=d.at(-1),g=d[0],b=p.point.subtract(g.point).multiply(1/(p.timestamp-g.timestamp));let m=s.x,v=s.y;Oa=eb(i,x=>{n({x:x.x,y:x.y,xDelta:m-x.x,yDelta:v-x.y,zDelta:0}),m=x.x,v=x.y},150,.5,{x:m,y:v}),Oa({x:s.x-b.x*250,y:s.y-b.y*250})},u=()=>{document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",u),c()};document.addEventListener("mouseup",u,!1),document.addEventListener("mousemove",l,!1)}}function FG(e){const t=e[Math.floor(e.length/2)],n=t.point.subtract(e[0].point).multiply(t.timestamp-e[0].timestamp),r=e.at(-1).point.subtract(t.point).multiply(e.at(-1).timestamp-t.timestamp),i=n.length;return r.length/i<.4}class MG extends Ii{constructor(n,r,i,o,a,s,l){super(n,r,i,o,a,l);J(this,Fe);J(this,uc,1/0);J(this,fc,10);J(this,$n,[]);J(this,As,{});J(this,hc,0);this.spec=n,se(this,fc,n.spacing??10),se(this,uc,s),se(this,$n,[]),this.wrappingFacet=!1}appendChild(n){n.layoutParent??(n.layoutParent=this),B(this,$n).push(new sb(n,this,B(this,hc))),M7(this,hc)._++}setChildren(n){se(this,$n,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=B(this,$n).findIndex(o=>o.view==n);if(i>=0)B(this,$n)[i]=new sb(r,this,B(this,hc));else throw new Error("Not my child view!")}get children(){return B(this,$n).map(n=>n.view)}get childCount(){return B(this,$n).length}async createAxes(){const n=[];for(const r of Ks){const i=this.resolutions.axis[r];if(i){const o=i.getAxisProps();if(o){const a={title:i.getTitle(),orient:o0[r][0],...o},s=new ib(a,i.scaleResolution.type,this.context,this,this);n.push(s.initializeChildren()),B(this,As)[r]=s}}}return Promise.all([...n,...B(this,$n).map(r=>r.createAxes())])}*[Symbol.iterator](){for(const n of B(this,$n))yield*n.getChildren();for(const n of Object.values(B(this,As)))yield n}getOverhang(){return Q(this,Fe,j7).call(this).union(Q(this,Fe,hg).call(this))}getSize(){return this._cache("size",()=>new ki(Q(this,Fe,bv).call(this,"column"),Q(this,Fe,bv).call(this,"row")).addPadding(Q(this,Fe,hg).call(this)))}render(n,r,i={}){if(super.render(n,r,i),!this.isConfiguredVisible())return;this.layoutParent||(r=r.shrink(this.getPadding())),r=r.shrink(Q(this,Fe,hg).call(this)),n.pushView(this,r);const o={devicePixelRatio:this.context.devicePixelRatio},a=Pu(Q(this,Fe,mv).call(this,"column"),r.width,o),s=Pu(Q(this,Fe,mv).call(this,"row"),r.height,o),l=new v4(B(this,Fe,ks).length,B(this,uc)??1/0),c=u=>Math.round(u*devicePixelRatio)/devicePixelRatio;for(const[u,f]of B(this,Fe,ks).entries()){const{view:h,axes:d,gridLines:p,background:g,backgroundStroke:b,title:m}=f,[v,x]=l.getCellCoords(u),A=a[Q(this,Fe,yv).call(this,"column",v)],S=s[Q(this,Fe,yv).call(this,"row",x)],E=h.getViewportSize(),_=h.getSize(),R=h.getOverhang(),F=A.location-R.left,H=S.location-R.top,O=(Me,z)=>(Me[z].grow?(z=="width"?A:S).size:Me[z].px)+R[z],Z=O(E,"width"),ne=O(E,"height"),le=O(_,"width"),ie=O(_,"height"),pe=f.scrollbars.horizontal,ge=f.scrollbars.vertical,Ee=pe?()=>c(pe.viewportOffset):()=>0,Re=ge?()=>c(ge.viewportOffset):()=>0,M=new vr(()=>r.x+F,()=>r.y+H,()=>Z,()=>ne),Se=h.isScrollable(),Te=Se?new vr(()=>r.x+F-Ee(),()=>r.y+H-Re(),()=>le,()=>ie):M;f.coords=M;const P=i.clipRect?M.intersect(i.clipRect):M;g==null||g.render(n,P,{...i,clipRect:void 0});for(const Me of Object.values(p))Me.render(n,M,i);const ot=OG(h)||Se;ot&&h.render(n,Te,{...i,clipRect:P}),b==null||b.render(n,P,{...i,clipRect:void 0});for(const[Me,z]of Object.entries(d)){const $=Me=="left"||Me=="right"?"vertical":"horizontal",X=f.scrollbars[$],q=X?M.modify($=="vertical"?{y:()=>Te.y,height:ie}:{x:()=>Te.x,width:le}):M,ee=ab(q,Me,z);let I=i.clipRect;X&&(I=ee.intersect(I).intersect(X?M.modify($=="vertical"?{x:-1e5,width:2e5}:{y:-1e5,height:2e5}):void 0)),z.render(n,ee,{...i,clipRect:I})}for(const Me of Object.values(B(this,As))){const $=Me.axisProps.orient;($=="left"&&v==0||$=="right"&&v==l.nCols-1||$=="top"&&x==0||$=="bottom"&&x==l.nRows-1)&&Me.render(n,ab(M.shrink(f.view.getOverhang()),$,Me),i)}ot||h.render(n,Te,i);for(const Me of Object.values(f.scrollbars))Me.updateScrollbar(M,Te),Me.render(n,r,i);m==null||m.render(n,M,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=B(this,Fe,ks).find(o=>o.coords.containsPoint(n.point.x,n.point.y));for(const o of Object.values((r==null?void 0:r.scrollbars)??{}))if(o.coords.containsPoint(n.point.x,n.point.y)&&(o.propagateInteractionEvent(n),n.stopped))return;const i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof Tt||i instanceof Pa)&&k4(n,r.coords,o=>Q(this,Fe,q7).call(this,r.coords,r.view,o),this.context.getCurrentHover(),this.context.animator)),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}uc=new WeakMap,fc=new WeakMap,$n=new WeakMap,As=new WeakMap,hc=new WeakMap,Fe=new WeakSet,ks=function(){return B(this,$n).filter(n=>n.view.isConfiguredVisible())},V7=function(){return new v4(B(this,Fe,ks).length,B(this,uc)??1/0)},Rh=function(n){const r=n=="column"?"width":"height",i=(o,a)=>o.map(s=>{const c=B(this,Fe,ks)[s].getOverhangAndPadding();return n=="column"?a?c.right:c.left:a?c.bottom:c.top}).reduce((s,l)=>Math.max(s,l),0);return this._cache(`size/directionSizes/${n}`,()=>B(this,Fe,V7)[n=="column"?"colIndices":"rowIndices"].map(o=>({axisBefore:i(o,0),axisAfter:i(o,1),view:C$(o.map(a=>B(this,Fe,ks)[a].view.getViewportSize()[r]))})))},mv=function(n){const r=Q(this,Fe,Rh).call(this,n),i=[];i.push(Ou);for(const[o,a]of r.entries())o>0&&i.push({px:B(this,fc),grow:0}),(o==0||this.wrappingFacet)&&i.push(Ou),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(Ou);return i},bv=function(n){let r=0,i=0;const o=n=="row"?this.spec.height:this.spec.width;if(o||o===0)return HS(o);const a=Q(this,Fe,Rh).call(this,n);for(const[s,l]of a.entries())s>0&&(i+=B(this,fc)),(s==0||this.wrappingFacet)&&(i+=0),i+=l.axisBefore,i+=l.view.px??0,r+=l.view.grow??0,i+=l.axisAfter,(s==a.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},yv=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},j7=function(){const n=Q(this,Fe,Rh).call(this,"column"),r=Q(this,Fe,Rh).call(this,"row");return!n.length||!r.length?Nt.zero():new Nt(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)},hg=function(){const n=r=>{const i=rb[r],o=B(this,As)[i];return(o==null?void 0:o.axisProps.orient)!==r?0:Math.max(o.getPerpendicularSize()+o.axisProps.offset,0)};return new Nt(n("top"),n("right"),n("bottom"),n("left"))},q7=function(n,r,i){for(const[o,a]of Object.entries(PG(r))){if(a.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 a)u.zoom(2**i.zDelta,o=="y"?1-s[o]:s[o],o=="x"?c.x:-c.y)}this.context.animator.requestRender()};function T4(e){if(!(!e||!e.fill||e.fillOpacity===0))return{configurableVisibility:!1,data:{values:[{}]},mark:{color:e.fill,opacity:e.fillOpacity??1,type:"rect",clip:!1,tooltip:null,minHeight:1,minOpacity:0}}}function I4(e){if(!(!e||!e.stroke||e.strokeWidth===0||e.strokeOpacity===0))return{configurableVisibility:!1,resolve:{scale:{x:"excluded",y:"excluded"},axis:{x:"excluded",y:"excluded"}},data:{values:[{x:0,y:0,x2:1,y2:0},{x:1,y:0,x2:1,y2:1},{x:1,y:1,x2:0,y2:1},{x:0,y:1,x2:0,y2:0}]},mark:{size:e.strokeWidth??1,color:e.stroke??"lightgray",strokeCap:"square",opacity:e.strokeOpacity??1,type:"rule",clip:!1,tooltip:null},encoding:{x:{field:"x",type:"quantitative",scale:null},y:{field:"y",type:"quantitative",scale:null},x2:{field:"x2"},y2:{field:"y2"}}}}function PG(e){const t={x:new Set,y:new Set};return e.visit(n=>{for(const[r,i]of Object.entries(t)){const o=n.getScaleResolution(r);o&&o.isZoomable()&&i.add(o)}}),t}function OG(e){let t=!0;return e.visit(n=>{n instanceof Tt&&t&&(t=n.mark.properties.clip===!0)}),t}function ab(e,t,n){const r=n.axisProps,i=n.getPerpendicularSize();if(t=="bottom")return e.translate(0,e.height+r.offset).modify({height:i});if(t=="top")return e.translate(0,-i-r.offset).modify({height:i});if(t=="left")return e.translate(-i-r.offset,0).modify({width:i});if(t=="right")return e.translate(e.width+r.offset,0).modify({width:i})}class sb{constructor(t,n,r){if(this.layoutParent=n,this.view=t,this.serial=r,this.background=void 0,this.backgroundStroke=void 0,this.axes={},this.gridLines={},this.scrollbars={},this.title=void 0,this.coords=vr.ZERO,t.needsAxes.x||t.needsAxes.y){const i=t.spec,o="view"in i?i==null?void 0:i.view:void 0,a=T4(o);a&&(this.background=new Tt(a,n.context,n,t,"background"+r,{blockEncodingInheritance:!0}));const s=I4(o);s&&(this.backgroundStroke=new Tt(s,n.context,n,t,"backgroundStroke"+r,{blockEncodingInheritance:!0}));const l=RG(t.spec.title);if(l){const c=new Tt(l,n.context,n,t,"title"+r,{blockEncodingInheritance:!0});this.title=c}}t.spec.viewportWidth!=null&&(this.scrollbars.horizontal=new R4(this,"horizontal")),t.spec.viewportHeight!=null&&(this.scrollbars.vertical=new R4(this,"vertical"))}*getChildren(){this.background&&(yield this.background),this.backgroundStroke&&(yield this.backgroundStroke),this.title&&(yield this.title),yield*Object.values(this.axes),yield*Object.values(this.gridLines),yield this.view,yield*Object.values(this.scrollbars)}async createAxes(){const{view:t,axes:n,gridLines:r}=this,i=(s,l)=>{const c=s.getAxisProps();if(c===null)return;const u=c?{...c}:{};if(!u.orient){for(const f of o0[l])if(!n[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()),!o0[l].includes(u.orient))throw new Error(`Invalid axis orientation "${u.orient}" on channel "${l}"!`);return u},o=async(s,l,c)=>{const u=i(s,l);if(u){if(n[u.orient])throw new Error(`An axis with the orient "${u.orient}" already exists!`);const f=new ib(u,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,c);n[u.orient]=f,await f.initializeChildren()}},a=async(s,l,c)=>{const u=i(s,l);if(u&&(u.grid||u.chromGrid)){const f=new vG(u,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,c);r[u.orient]=f,await f.initializeChildren()}};for(const s of["x","y"])if(t.needsAxes[s]){const l=t.resolutions.axis[s];if(!l)continue;await o(l,s,t)}for(const s of["x","y"])if(t.needsAxes[s]&&t.getConfiguredOrDefaultResolution(s,"axis")!="excluded"){const l=t.getAxisResolution(s);if(!l)continue;await a(l,s,t)}if(t instanceof Pa){for(const s of t)for(const[l,c]of Object.entries(s.resolutions.axis)){const u=c.getAxisProps();u&&u.orient&&await o(c,l,s)}for(const s of t)for(const[l,c]of Object.entries(s.resolutions.axis)){const u=c.getAxisProps();u&&!u.orient&&await o(c,l,s)}}[...Object.values(n),...Object.values(r)].forEach(s=>s.visit(l=>{l instanceof Tt&&l.resolve("scale")}))}getOverhang(){const t=n=>{const r=this.axes[n];return r?Math.max(r.getPerpendicularSize()+r.axisProps.offset,0):0};return new Nt(t("top"),t("right"),t("bottom"),t("left")).add(this.view.getOverhang())}getOverhangAndPadding(){return this.getOverhang().add(this.view.getPadding())}}class R4 extends Tt{constructor(n,r){const i={scrollbarSize:8,scrollbarPadding:2};super({data:{values:[{}]},mark:{type:"rect",fill:"#b0b0b0",fillOpacity:.6,stroke:"white",strokeWidth:1,strokeOpacity:1,cornerRadius:5,clip:!1},configurableVisibility:!1},n.layoutParent.context,n.layoutParent,n.view,"scrollbar-"+r,{blockEncodingInheritance:!0});J(this,dc);J(this,vh,vr.ZERO);J(this,Qo,0);J(this,Es,0);Kt(this,"viewportOffset",0);this.config=i,se(this,dc,r),this.interpolateViewportOffset=eb(this.context.animator,o=>{this.viewportOffset=o.x},50,.4,{x:this.viewportOffset}),this.addInteractionEventListener("mousedown",(o,a)=>{if(a.stopPropagation(),B(this,Qo)<=0)return;const s=d=>r=="vertical"?d.clientY:d.clientX,l=a.uiEvent;l.preventDefault();const c=this.scrollOffset,u=s(l),f=d=>{const p=Ci(s(d)-u+c,0,B(this,Qo));this.interpolateViewportOffset({x:p/B(this,Qo)*B(this,Es)})},h=()=>{document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",h)};document.addEventListener("mouseup",h,!1),document.addEventListener("mousemove",f,!1)})}get scrollOffset(){return this.viewportOffset/B(this,Es)*B(this,Qo)}render(n,r,i){super.render(n,B(this,vh),i)}updateScrollbar(n,r){const i=this.config.scrollbarPadding,o=this.config.scrollbarSize,a=B(this,dc)=="horizontal"?"width":"height",s=Math.min(1,n[a]/r[a]),l=n[a]-2*i,c=s*l;se(this,Qo,l-c),se(this,Es,r[a]-n[a]),this.viewportOffset=Ci(this.viewportOffset,0,B(this,Es)),se(this,vh,B(this,dc)=="vertical"?new vr(()=>n.x+n.width-o-i,()=>n.y+i+this.scrollOffset,()=>o,()=>c):new vr(()=>n.x+i+this.scrollOffset,()=>n.y+n.height-o-i,()=>c,()=>o))}}dc=new WeakMap,vh=new WeakMap,Qo=new WeakMap,Es=new WeakMap;class il extends MG{constructor(t,n,r,i,o){super(t,n,r,i,o,lb(t)?t.columns:l0(t)?1:1/0),this.spec=t}async initializeChildren(){const t=this.spec,n=lb(t)?t.concat:l0(t)?t.vconcat:t.hconcat;this.setChildren(await Promise.all(n.map((r,i)=>this.context.createOrImportView(r,this,this,"grid"+i)))),await this.createAxes()}getDefaultResolution(t,n){return n=="axis"?"independent":l0(this.spec)&&t==="x"||F4(this.spec)&&t==="y"?"shared":"independent"}}const D4="viewRoot";class LG{constructor(t={}){J(this,pc,new Map);this.options={allowImport:!0,wrapRoot:!0,...t};const n=r=>(i,o,a,s,l)=>new r(i,o,a,s,i.name??l);this.addViewType(s0,n(Pa)),this.addViewType(a0,n(Tt)),this.addViewType(l0,n(il)),this.addViewType(F4,n(il)),this.addViewType(lb,n(il)),this.addViewType(M4,()=>{throw new Error("SampleView is not supported by the @genome-spy/core package. Use @genome-spy/app instead!")})}addViewType(t,n){B(this,pc).set(t,n)}createView(t,n,r,i,o){for(const[a,s]of B(this,pc))if(a(t))return s(t,n,r,i,o);throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(t)]))}isViewSpec(t){const n=[...B(this,pc).keys()].filter(r=>r(t));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}async createOrImportView(t,n,r,i,o,a){let s;if(UG(t)){let c;if("url"in t.import)if(this.options.allowImport)c=await WH(t,i.getBaseUrl(),n);else throw new Ra("Importing views is not allowed!",r);else if("template"in t.import)c=B4(t.import.template,i);else throw new Error("Invalid import: "+JSON.stringify(t));a==null||a(c),NG(c,t),s=c}else s=t;!i&&this.options.wrapRoot&&(a0(s)||s0(s))&&o===D4&&(s={name:"implicitRoot",vconcat:[s]});const l=this.createView(s,n,r,i,o);return l instanceof Ii&&await l.initializeChildren(),l}}pc=new WeakMap;function B4(e,t){var r,i;const n=(i=(r=t.spec)==null?void 0:r.templates)==null?void 0:i[e];if(n)return structuredClone(n);if(t.dataParent)return B4(e,t.dataParent);throw new Error(`Cannot find template "${e}" in current view or its ancestors!`)}function NG(e,t){t.name!=null&&(e.name=t.name);const n=Jt(t.params)?t.params:en(t.params)?Object.entries(t.params).map(([r,i])=>({name:r,value:i})):[];if(n.length){e.params??(e.params=[]);for(const r of n){const i=e.params.findIndex(o=>o.name==r.name);i>=0&&(e.params[i]=r)}for(const r of n)e.params.some(i=>i.name==r.name)||e.params.push(r)}}function a0(e){return"mark"in e&&(We(e.mark)||en(e.mark))}function s0(e){return"layer"in e&&en(e.layer)}function zG(e){return e&&(a0(e)||s0(e))&&"aggregateSamples"in e}function UG(e){return"import"in e}function l0(e){return"vconcat"in e&&Jt(e.vconcat)}function F4(e){return"hconcat"in e&&Jt(e.hconcat)}function lb(e){return"concat"in e&&Jt(e.concat)}function M4(e){return"samples"in e&&en(e.samples)&&"spec"in e&&en(e.spec)}function P4(e){const t=Math.floor(Math.random()*16777215).toString(16),n=[];for(const r of e.paramConfigs.values()){if(!I1(r))continue;const i=r.bind;if(!i||!("input"in i))continue;const o=r.name,a=e.getSetter(o),s=e.getValue(o),l=i.name??o,c=i.debounce?Ma(a,i.debounce,!1):a,u=`${t}-param-${o}`;if(i.input=="range")n.push(U`<label for=${u}>${l}</label>
|
2013
|
+
`:"";return U`${s}${o}`}class Ii extends qS{constructor(t,n,r,i,o,a){super(t,n,r,i,o,a),this.spec=t}async initializeChildren(){}*[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===Ba)return n;if(n!==VS){t.beforeChildren&&t.beforeChildren(this);for(const r of this){const i=r.visit(t);if(i===Ba)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 Ii)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,Ba}),n}getDefaultResolution(t,n){return"shared"}}class Pa extends Ii{constructor(n,r,i,o,a,s){super(n,r,i,o,a,{layersChildren:!0,...s});J(this,qi,[]);this.spec=n,this.needsAxes={x:!0,y:!0}}async initializeChildren(){se(this,qi,await Promise.all(this.spec.layer.map((n,r)=>this.context.createOrImportView(n,this,this,"grid"+r,i=>{if(!s0(i)&&!a0(i))throw new Ra("LayerView accepts only unit or layer specs as children!",this)}))))}get children(){return B(this,qi).slice()}*[Symbol.iterator](){for(const n of B(this,qi))yield n}render(n,r,i={}){if(super.render(n,r,i),!!this.isConfiguredVisible()){n.pushView(this,r);for(const o of B(this,qi))o.render(n,r,i);n.popView(this)}}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0);for(let r=B(this,qi).length-1;r>=0;r--)if(B(this,qi)[r].propagateInteractionEvent(n),n.stopped)return;this.handleInteractionEvent(void 0,n,!1)}}qi=new WeakMap;class v4{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 o=[];t.push(o);for(let a=0;a<n;a++){const s=i*n+a;s<this.n&&o.push(s)}}return t}get colIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const o=[];t.push(o);for(let a=0;a<r;a++){const s=a*n+i;s<this.n&&o.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)]}}const gG="chromosome_ticks_and_labels",mG={x:"width",y:"height"};function nb(e){return e=="x"?"y":"x"}const o0={x:["bottom","top"],y:["left","right"]},rb=Object.fromEntries(Object.entries(o0).map(([e,t])=>t.map(n=>[n,e])).flat(1));function vo(e){return rb[e]}class ib extends Pa{constructor(t,n,r,i,o,a){const s=n=="locus",l={...s?yG:x4,...bG(n,t),...t};super(s?wG(l,n):A4(l,n),r,i,o,`axis_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...a}),this.axisProps=l}getSize(){const t={px:this.getPerpendicularSize()},n={grow:1};return rb[this.axisProps.orient]=="x"?new ki(n,t):new ki(t,n)}getPerpendicularSize(){return ob(this.axisProps)}isPickingSupported(){return!1}}function ob(e){const t=vo(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 x4={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 bG(e,t){const n=t.orient,r=e=="nominal"||e=="ordinal";let i="center",o="middle",a=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(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 A4(e,t){const n={...e,extent:ob(e)},r=vo(n.orient),i=nb(r),o=n.orient=="bottom"||n.orient=="right"?1:-1,a=n.orient=="bottom"||n.orient=="left"?1:0,s=()=>({name:"domain",data:{values:[{}]},mark:{type:"rule",clip:!1,strokeDash:n.domainDash,strokeCap:n.domainCap,color:n.domainColor,[i]:a,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)*o,[i]:a,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:a},[i+"2"]:{value:a-n.tickSize/n.extent*(a?1:-1)}}}),u=()=>({name:"title",data:{values:[{}]},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}}),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"}},[mG[nb(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 yG={...x4,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 wG(e,t){const n={...e,extent:ob(e)},r=vo(n.orient),i=nb(r),o=n.orient=="bottom"||n.orient=="left"?1:0,a=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:e.chromTickDash,strokeDashOffset:e.chromTickDashOffset,[i]:o,[i+"2"]:o-n.chromTickSize/n.extent*(o?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=A4({...e,...l},t);if(e.chromTicks||e.chromLabels){const u={name:gG,data:{lazy:{type:"axisGenome",channel:vo(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&u.layer.push(a()),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 vG extends Pa{constructor(t,n,r,i,o,a){const l={...n=="locus"?xG:E4,...t};super(_G(l,n),r,i,o,`axisGrid_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...a}),this.axisProps=l}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const E4={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},xG={...E4,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function AG(e,t){const n=e,r=vo(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 EG(e,t){const n=e,r=vo(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 SG(e,t){const n=e,r=vo(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 _G(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(SG(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(EG(n,t)),n.grid&&n.gridOpacity>0&&r.push(AG(n,t)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[vo(e.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const S4={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"},CG={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},kG={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},TG={start:0,middle:.5,end:1},IG={start:"left",middle:"center",end:"right"};function RG(e){if(!e)return;const t=Xe(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":CG,overlay:kG}[t.style]??{},r={...S4,...n,...t};let i={},o={x:0,y:0};const a=TG[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={...S4,...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,...o,...l,text:s.text,align:s.align??IG[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}}}class DG{constructor(t){J(this,xs);J(this,Yo,0);J(this,Zo,0);se(this,xs,new Array(t))}push(t){B(this,xs)[B(this,Yo)]=t,se(this,Yo,(B(this,Yo)+1)%this.size),se(this,Zo,Math.min(B(this,Zo)+1,this.size))}get(){const t=B(this,xs);return B(this,Zo)<this.size?t.slice(0,B(this,Zo)):t.slice(B(this,Yo),this.size).concat(t.slice(0,B(this,Yo)))}get size(){return B(this,xs).length}get length(){return B(this,Zo)}}xs=new WeakMap,Yo=new WeakMap,Zo=new WeakMap;let Oa,_4=0;function C4(){return performance.now()-_4<50}function BG(e){return function(...t){_4=performance.now(),e(...t)}}function k4(e,t,n,r,i){if(n=BG(n),e.type=="wheel"){e.uiEvent.preventDefault();const o=e.uiEvent,a=o.deltaMode?120:1;if(!o.deltaX&&!o.deltaY)return;Oa==null||Oa.stop();let{x:s,y:l}=e.point;if(r){const c=r.mark.encoders;c.x&&!c.x2&&!c.x.constant&&(s=+c.x(r.datum)*t.width+t.x),c.y&&!c.y2&&!c.y.constant&&(l=(1-+c.y(r.datum))*t.height+t.y)}Math.abs(o.deltaX)<Math.abs(o.deltaY)?n({x:s,y:l,xDelta:0,yDelta:0,zDelta:o.deltaY*a/300}):n({x:s,y:l,xDelta:-o.deltaX*a,yDelta:0,zDelta:0})}else if(e.type=="mousedown"&&e.uiEvent.button===0){Oa&&Oa.stop();const o=new DG(30),a=e.uiEvent;a.preventDefault();let s=Yr.fromMouseEvent(a);const l=f=>{const h=Yr.fromMouseEvent(f);o.push({point:h,timestamp:performance.now()});const d=h.subtract(s);n({x:s.x,y:s.y,xDelta:d.x,yDelta:d.y,zDelta:0}),s=h},c=()=>{const h=performance.now(),d=o.get().filter(x=>h-x.timestamp<160);if(d.length<5||!i||FG(d))return;const p=d.at(-1),g=d[0],b=p.point.subtract(g.point).multiply(1/(p.timestamp-g.timestamp));let m=s.x,v=s.y;Oa=eb(i,x=>{n({x:x.x,y:x.y,xDelta:m-x.x,yDelta:v-x.y,zDelta:0}),m=x.x,v=x.y},150,.5,{x:m,y:v}),Oa({x:s.x-b.x*250,y:s.y-b.y*250})},u=()=>{document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",u),c()};document.addEventListener("mouseup",u,!1),document.addEventListener("mousemove",l,!1)}}function FG(e){const t=e[Math.floor(e.length/2)],n=t.point.subtract(e[0].point).multiply(t.timestamp-e[0].timestamp),r=e.at(-1).point.subtract(t.point).multiply(e.at(-1).timestamp-t.timestamp),i=n.length;return r.length/i<.4}class MG extends Ii{constructor(n,r,i,o,a,s,l){super(n,r,i,o,a,l);J(this,Fe);J(this,uc,1/0);J(this,fc,10);J(this,$n,[]);J(this,As,{});J(this,hc,0);this.spec=n,se(this,fc,n.spacing??10),se(this,uc,s),se(this,$n,[]),this.wrappingFacet=!1}appendChild(n){n.layoutParent??(n.layoutParent=this),B(this,$n).push(new sb(n,this,B(this,hc))),M7(this,hc)._++}setChildren(n){se(this,$n,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=B(this,$n).findIndex(o=>o.view==n);if(i>=0)B(this,$n)[i]=new sb(r,this,B(this,hc));else throw new Error("Not my child view!")}get children(){return B(this,$n).map(n=>n.view)}get childCount(){return B(this,$n).length}async createAxes(){const n=[];for(const r of Ks){const i=this.resolutions.axis[r];if(i){const o=i.getAxisProps();if(o){const a={title:i.getTitle(),orient:o0[r][0],...o},s=new ib(a,i.scaleResolution.type,this.context,this,this);n.push(s.initializeChildren()),B(this,As)[r]=s}}}return Promise.all([...n,...B(this,$n).map(r=>r.createAxes())])}*[Symbol.iterator](){for(const n of B(this,$n))yield*n.getChildren();for(const n of Object.values(B(this,As)))yield n}getOverhang(){return Q(this,Fe,j7).call(this).union(Q(this,Fe,hg).call(this))}getSize(){return this._cache("size",()=>new ki(Q(this,Fe,bv).call(this,"column"),Q(this,Fe,bv).call(this,"row")).addPadding(Q(this,Fe,hg).call(this)))}render(n,r,i={}){if(super.render(n,r,i),!this.isConfiguredVisible())return;this.layoutParent||(r=r.shrink(this.getPadding())),r=r.shrink(Q(this,Fe,hg).call(this)),n.pushView(this,r);const o={devicePixelRatio:this.context.devicePixelRatio},a=Pu(Q(this,Fe,mv).call(this,"column"),r.width,o),s=Pu(Q(this,Fe,mv).call(this,"row"),r.height,o),l=new v4(B(this,Fe,ks).length,B(this,uc)??1/0),c=u=>Math.round(u*devicePixelRatio)/devicePixelRatio;for(const[u,f]of B(this,Fe,ks).entries()){const{view:h,axes:d,gridLines:p,background:g,backgroundStroke:b,title:m}=f,[v,x]=l.getCellCoords(u),A=a[Q(this,Fe,yv).call(this,"column",v)],S=s[Q(this,Fe,yv).call(this,"row",x)],E=h.getViewportSize(),_=h.getSize(),R=h.getOverhang(),F=A.location-R.left,H=S.location-R.top,O=(Me,z)=>(Me[z].grow?(z=="width"?A:S).size:Me[z].px)+R[z],Z=O(E,"width"),ne=O(E,"height"),le=O(_,"width"),ie=O(_,"height"),pe=f.scrollbars.horizontal,ge=f.scrollbars.vertical,Ee=pe?()=>c(pe.viewportOffset):()=>0,Re=ge?()=>c(ge.viewportOffset):()=>0,M=new vr(()=>r.x+F,()=>r.y+H,()=>Z,()=>ne),Se=h.isScrollable(),Te=Se?new vr(()=>r.x+F-Ee(),()=>r.y+H-Re(),()=>le,()=>ie):M;f.coords=M;const P=i.clipRect?M.intersect(i.clipRect):M;g==null||g.render(n,P,{...i,clipRect:void 0});for(const Me of Object.values(p))Me.render(n,M,i);const ot=OG(h)||Se;ot&&h.render(n,Te,{...i,clipRect:P}),b==null||b.render(n,P,{...i,clipRect:void 0});for(const[Me,z]of Object.entries(d)){const $=Me=="left"||Me=="right"?"vertical":"horizontal",X=f.scrollbars[$],q=X?M.modify($=="vertical"?{y:()=>Te.y,height:ie}:{x:()=>Te.x,width:le}):M,ee=ab(q,Me,z);let I=i.clipRect;X&&(I=ee.intersect(I).intersect(X?M.modify($=="vertical"?{x:-1e5,width:2e5}:{y:-1e5,height:2e5}):void 0)),z.render(n,ee,{...i,clipRect:I})}for(const Me of Object.values(B(this,As))){const $=Me.axisProps.orient;($=="left"&&v==0||$=="right"&&v==l.nCols-1||$=="top"&&x==0||$=="bottom"&&x==l.nRows-1)&&Me.render(n,ab(M.shrink(f.view.getOverhang()),$,Me),i)}ot||h.render(n,Te,i);for(const Me of Object.values(f.scrollbars))Me.updateScrollbar(M,Te),Me.render(n,r,i);m==null||m.render(n,M,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=B(this,Fe,ks).find(o=>o.coords.containsPoint(n.point.x,n.point.y));for(const o of Object.values((r==null?void 0:r.scrollbars)??{}))if(o.coords.containsPoint(n.point.x,n.point.y)&&(o.propagateInteractionEvent(n),n.stopped))return;const i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof Tt||i instanceof Pa)&&k4(n,r.coords,o=>Q(this,Fe,q7).call(this,r.coords,r.view,o),this.context.getCurrentHover(),this.context.animator)),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}uc=new WeakMap,fc=new WeakMap,$n=new WeakMap,As=new WeakMap,hc=new WeakMap,Fe=new WeakSet,ks=function(){return B(this,$n).filter(n=>n.view.isConfiguredVisible())},V7=function(){return new v4(B(this,Fe,ks).length,B(this,uc)??1/0)},Rh=function(n){const r=n=="column"?"width":"height",i=(o,a)=>o.map(s=>{const c=B(this,Fe,ks)[s].getOverhangAndPadding();return n=="column"?a?c.right:c.left:a?c.bottom:c.top}).reduce((s,l)=>Math.max(s,l),0);return this._cache(`size/directionSizes/${n}`,()=>B(this,Fe,V7)[n=="column"?"colIndices":"rowIndices"].map(o=>({axisBefore:i(o,0),axisAfter:i(o,1),view:C$(o.map(a=>B(this,Fe,ks)[a].view.getViewportSize()[r]))})))},mv=function(n){const r=Q(this,Fe,Rh).call(this,n),i=[];i.push(Ou);for(const[o,a]of r.entries())o>0&&i.push({px:B(this,fc),grow:0}),(o==0||this.wrappingFacet)&&i.push(Ou),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(Ou);return i},bv=function(n){let r=0,i=0;const o=n=="row"?this.spec.height:this.spec.width;if(o||o===0)return HS(o);const a=Q(this,Fe,Rh).call(this,n);for(const[s,l]of a.entries())s>0&&(i+=B(this,fc)),(s==0||this.wrappingFacet)&&(i+=0),i+=l.axisBefore,i+=l.view.px??0,r+=l.view.grow??0,i+=l.axisAfter,(s==a.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},yv=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},j7=function(){const n=Q(this,Fe,Rh).call(this,"column"),r=Q(this,Fe,Rh).call(this,"row");return!n.length||!r.length?Nt.zero():new Nt(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)},hg=function(){const n=r=>{const i=rb[r],o=B(this,As)[i];return(o==null?void 0:o.axisProps.orient)!==r?0:Math.max(o.getPerpendicularSize()+o.axisProps.offset,0)};return new Nt(n("top"),n("right"),n("bottom"),n("left"))},q7=function(n,r,i){for(const[o,a]of Object.entries(PG(r))){if(a.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 a)u.zoom(2**i.zDelta,o=="y"?1-s[o]:s[o],o=="x"?c.x:-c.y)}this.context.animator.requestRender()};function T4(e){if(!(!e||!e.fill||e.fillOpacity===0))return{configurableVisibility:!1,data:{values:[{}]},mark:{color:e.fill,opacity:e.fillOpacity??1,type:"rect",clip:!1,tooltip:null,minHeight:1,minOpacity:0}}}function I4(e){if(!(!e||!e.stroke||e.strokeWidth===0||e.strokeOpacity===0))return{configurableVisibility:!1,resolve:{scale:{x:"excluded",y:"excluded"},axis:{x:"excluded",y:"excluded"}},data:{values:[{x:0,y:0,x2:1,y2:0},{x:1,y:0,x2:1,y2:1},{x:1,y:1,x2:0,y2:1},{x:0,y:1,x2:0,y2:0}]},mark:{size:e.strokeWidth??1,color:e.stroke??"lightgray",strokeCap:"square",opacity:e.strokeOpacity??1,type:"rule",clip:!1,tooltip:null},encoding:{x:{field:"x",type:"quantitative",scale:null},y:{field:"y",type:"quantitative",scale:null},x2:{field:"x2"},y2:{field:"y2"}}}}function PG(e){const t={x:new Set,y:new Set};return e.visit(n=>{for(const[r,i]of Object.entries(t)){const o=n.getScaleResolution(r);o&&o.isZoomable()&&i.add(o)}}),t}function OG(e){let t=!0;return e.visit(n=>{n instanceof Tt&&t&&(t=n.mark.properties.clip===!0)}),t}function ab(e,t,n){const r=n.axisProps,i=n.getPerpendicularSize();if(t=="bottom")return e.translate(0,e.height+r.offset).modify({height:i});if(t=="top")return e.translate(0,-i-r.offset).modify({height:i});if(t=="left")return e.translate(-i-r.offset,0).modify({width:i});if(t=="right")return e.translate(e.width+r.offset,0).modify({width:i})}class sb{constructor(t,n,r){if(this.layoutParent=n,this.view=t,this.serial=r,this.background=void 0,this.backgroundStroke=void 0,this.axes={},this.gridLines={},this.scrollbars={},this.title=void 0,this.coords=vr.ZERO,t.needsAxes.x||t.needsAxes.y){const i=t.spec,o="view"in i?i==null?void 0:i.view:void 0,a=T4(o);a&&(this.background=new Tt(a,n.context,n,t,"background"+r,{blockEncodingInheritance:!0}));const s=I4(o);s&&(this.backgroundStroke=new Tt(s,n.context,n,t,"backgroundStroke"+r,{blockEncodingInheritance:!0}));const l=RG(t.spec.title);if(l){const c=new Tt(l,n.context,n,t,"title"+r,{blockEncodingInheritance:!0});this.title=c}}t.spec.viewportWidth!=null&&(this.scrollbars.horizontal=new R4(this,"horizontal")),t.spec.viewportHeight!=null&&(this.scrollbars.vertical=new R4(this,"vertical"))}*getChildren(){this.background&&(yield this.background),this.backgroundStroke&&(yield this.backgroundStroke),this.title&&(yield this.title),yield*Object.values(this.axes),yield*Object.values(this.gridLines),yield this.view,yield*Object.values(this.scrollbars)}async createAxes(){const{view:t,axes:n,gridLines:r}=this,i=(s,l)=>{const c=s.getAxisProps();if(c===null)return;const u=c?{...c}:{};if(!u.orient){for(const f of o0[l])if(!n[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()),!o0[l].includes(u.orient))throw new Error(`Invalid axis orientation "${u.orient}" on channel "${l}"!`);return u},o=async(s,l,c)=>{const u=i(s,l);if(u){if(n[u.orient])throw new Error(`An axis with the orient "${u.orient}" already exists!`);const f=new ib(u,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,c);n[u.orient]=f,await f.initializeChildren()}},a=async(s,l,c)=>{const u=i(s,l);if(u&&(u.grid||u.chromGrid)){const f=new vG(u,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,c);r[u.orient]=f,await f.initializeChildren()}};for(const s of["x","y"])if(t.needsAxes[s]){const l=t.resolutions.axis[s];if(!l)continue;await o(l,s,t)}for(const s of["x","y"])if(t.needsAxes[s]&&t.getConfiguredOrDefaultResolution(s,"axis")!="excluded"){const l=t.getAxisResolution(s);if(!l)continue;await a(l,s,t)}if(t instanceof Pa){for(const s of t)for(const[l,c]of Object.entries(s.resolutions.axis)){const u=c.getAxisProps();u&&u.orient&&await o(c,l,s)}for(const s of t)for(const[l,c]of Object.entries(s.resolutions.axis)){const u=c.getAxisProps();u&&!u.orient&&await o(c,l,s)}}[...Object.values(n),...Object.values(r)].forEach(s=>s.visit(l=>{l instanceof Tt&&l.resolve("scale")}))}getOverhang(){const t=n=>{const r=this.axes[n];return r?Math.max(r.getPerpendicularSize()+r.axisProps.offset,0):0};return new Nt(t("top"),t("right"),t("bottom"),t("left")).add(this.view.getOverhang())}getOverhangAndPadding(){return this.getOverhang().add(this.view.getPadding())}}class R4 extends Tt{constructor(n,r){const i={scrollbarSize:8,scrollbarPadding:2};super({data:{values:[{}]},mark:{type:"rect",fill:"#b0b0b0",fillOpacity:.6,stroke:"white",strokeWidth:1,strokeOpacity:1,cornerRadius:5,clip:!1},configurableVisibility:!1},n.layoutParent.context,n.layoutParent,n.view,"scrollbar-"+r,{blockEncodingInheritance:!0});J(this,dc);J(this,vh,vr.ZERO);J(this,Qo,0);J(this,Es,0);Kt(this,"viewportOffset",0);this.config=i,se(this,dc,r),this.interpolateViewportOffset=eb(this.context.animator,o=>{this.viewportOffset=o.x},50,.4,{x:this.viewportOffset}),this.addInteractionEventListener("mousedown",(o,a)=>{if(a.stopPropagation(),B(this,Qo)<=0)return;const s=d=>r=="vertical"?d.clientY:d.clientX,l=a.uiEvent;l.preventDefault();const c=this.scrollOffset,u=s(l),f=d=>{const p=Ci(s(d)-u+c,0,B(this,Qo));this.interpolateViewportOffset({x:p/B(this,Qo)*B(this,Es)})},h=()=>{document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",h)};document.addEventListener("mouseup",h,!1),document.addEventListener("mousemove",f,!1)})}get scrollOffset(){return this.viewportOffset/B(this,Es)*B(this,Qo)}render(n,r,i){super.render(n,B(this,vh),i)}updateScrollbar(n,r){const i=this.config.scrollbarPadding,o=this.config.scrollbarSize,a=B(this,dc)=="horizontal"?"width":"height",s=Math.min(1,n[a]/r[a]),l=n[a]-2*i,c=s*l;se(this,Qo,l-c),se(this,Es,r[a]-n[a]),this.viewportOffset=Ci(this.viewportOffset,0,B(this,Es)),se(this,vh,B(this,dc)=="vertical"?new vr(()=>n.x+n.width-o-i,()=>n.y+i+this.scrollOffset,()=>o,()=>c):new vr(()=>n.x+i+this.scrollOffset,()=>n.y+n.height-o-i,()=>c,()=>o))}}dc=new WeakMap,vh=new WeakMap,Qo=new WeakMap,Es=new WeakMap;class il extends MG{constructor(t,n,r,i,o){super(t,n,r,i,o,lb(t)?t.columns:l0(t)?1:1/0),this.spec=t}async initializeChildren(){const t=this.spec,n=lb(t)?t.concat:l0(t)?t.vconcat:t.hconcat;this.setChildren(await Promise.all(n.map((r,i)=>this.context.createOrImportView(r,this,this,"grid"+i)))),await this.createAxes()}getDefaultResolution(t,n){return n=="axis"?"independent":l0(this.spec)&&t==="x"||F4(this.spec)&&t==="y"?"shared":"independent"}}const D4="viewRoot";class LG{constructor(t={}){J(this,pc,new Map);this.options={allowImport:!0,wrapRoot:!0,...t};const n=r=>(i,o,a,s,l)=>new r(i,o,a,s,i.name??l);this.addViewType(s0,n(Pa)),this.addViewType(a0,n(Tt)),this.addViewType(l0,n(il)),this.addViewType(F4,n(il)),this.addViewType(lb,n(il)),this.addViewType(M4,()=>{throw new Error("SampleView is not supported by the @genome-spy/core package. Use @genome-spy/app instead!")})}addViewType(t,n){B(this,pc).set(t,n)}createView(t,n,r,i,o){for(const[a,s]of B(this,pc))if(a(t))return s(t,n,r,i,o);throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(t)]))}isViewSpec(t){const n=[...B(this,pc).keys()].filter(r=>r(t));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}async createOrImportView(t,n,r,i,o,a){let s;if(UG(t)){let c;if("url"in t.import)if(this.options.allowImport)c=await WH(t,i.getBaseUrl(),n);else throw new Ra("Importing views is not allowed!",r);else if("template"in t.import)c=B4(t.import.template,i);else throw new Error("Invalid import: "+JSON.stringify(t));a==null||a(c),NG(c,t),s=c}else s=t;!i&&this.options.wrapRoot&&(a0(s)||s0(s))&&o===D4&&(s={name:"implicitRoot",vconcat:[s]});const l=this.createView(s,n,r,i,o);return l instanceof Ii&&await l.initializeChildren(),l}}pc=new WeakMap;function B4(e,t){var r,i;const n=(i=(r=t.spec)==null?void 0:r.templates)==null?void 0:i[e];if(n)return structuredClone(n);if(t.dataParent)return B4(e,t.dataParent);throw new Error(`Cannot find template "${e}" in current view or its ancestors!`)}function NG(e,t){t.name!=null&&(e.name=t.name);const n=Jt(t.params)?t.params:en(t.params)?Object.entries(t.params).map(([r,i])=>({name:r,value:i})):[];if(n.length){e.params??(e.params=[]);for(const r of n){const i=e.params.findIndex(o=>o.name==r.name);i>=0&&(e.params[i]=r)}for(const r of n)e.params.some(i=>i.name==r.name)||e.params.push(r)}}function a0(e){return"mark"in e&&(Xe(e.mark)||en(e.mark))}function s0(e){return"layer"in e&&en(e.layer)}function zG(e){return e&&(a0(e)||s0(e))&&"aggregateSamples"in e}function UG(e){return"import"in e}function l0(e){return"vconcat"in e&&Jt(e.vconcat)}function F4(e){return"hconcat"in e&&Jt(e.hconcat)}function lb(e){return"concat"in e&&Jt(e.concat)}function M4(e){return"samples"in e&&en(e.samples)&&"spec"in e&&en(e.spec)}function P4(e){const t=Math.floor(Math.random()*16777215).toString(16),n=[];for(const r of e.paramConfigs.values()){if(!I1(r))continue;const i=r.bind;if(!i||!("input"in i))continue;const o=r.name,a=e.getSetter(o),s=e.getValue(o),l=i.name??o,c=i.debounce?Ma(a,i.debounce,!1):a,u=`${t}-param-${o}`;if(i.input=="range")n.push(U`<label for=${u}>${l}</label>
|
2014
2014
|
<div>
|
2015
2015
|
<input
|
2016
2016
|
id=${u}
|
@@ -3304,7 +3304,7 @@ svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
|
|
3304
3304
|
<strong>${o.displayName||o.id}</strong>
|
3305
3305
|
</div>
|
3306
3306
|
${s}
|
3307
|
-
`};function IY(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==x2.QUANTITATIVE&&(i.encoding.x={field:`attributes["${e}"]`,type:t.type,scale:t.barScale,axis:null}),i}function RY(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 DY(e){return e!==""&&!(typeof e=="number"&&isNaN(e))&&e!==null}const gk=Object.freeze({name:"sample",attribute:{type:dk},accessor:e=>e,type:"identifier",scale:void 0});class BY extends Pa{constructor(n,r){super({title:{text:"Groups",orient:"none"},padding:{right:0},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:Ji(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]}}}}]},n.context,n,r,"sample-groups");J(this,og);this.sampleView=n,this._addBroadcastHandler("layoutComputed",()=>{this.updateRange()}),this.addInteractionEventListener("contextmenu",(i,o)=>{const a=o.uiEvent,s=this.context.getCurrentHover();if(!s)return;const l=s.datum._rawGroup;let c;for(const d of r2(this.sampleView.sampleHierarchy.rootGroup))if(d.at(-1)===l){c=d.slice(1);break}const u=n.actions.removeGroup({path:c.map(d=>d.name)}),f=n.provenance.getActionInfo(u),h=n.provenance.storeHelper.getDispatcher();v2({items:[{label:f.title,icon:f.icon,callback:()=>h(u)}]},a)})}updateRange(){var a,s;const n=(a=this.sampleView.locationManager.getLocations())==null?void 0:a.groups;if(!(n!=null&&n.length))return;const r=((s=this.sampleView)==null?void 0:s.childCoords.height)??0,i=this.getScaleResolution("y"),o=[];for(const l of n)o.push(1-(l.locSize.location+l.locSize.size)/r),o.push(1-l.locSize.location/r);i.scale.range(o)}updateGroups(){var a;const n=((a=this.sampleView.locationManager.getLocations())==null?void 0:a.groups)??[],r=this.context.dataFlow.findDataSourceByKey(this);if(!r)return;const i=Q(this,og,i9).call(this),o=n.map(s=>({_index:s.key.index,_depth:s.key.depth,_rawGroup:s.key.group,attribute:i[s.key.depth],name:s.key.group.name,...s.key.group.name!=s.key.group.title?{title:s.key.group.title}:{},n:s.key.n}));r.updateDynamicData(o),this.getScaleResolution("x").reconfigure(),this.getScaleResolution("y").reconfigure(),n.length&&this.updateRange(),Gn([...this.getLayoutAncestors()]).visit(s=>Ru(s,"size"))}}og=new WeakSet,i9=function(){const n=document.createElement("div");return[null,...this.sampleView.sampleHierarchy.groupMetadata].map(r=>{if(!r)return"unknown";const i=this.sampleView.compositeAttributeInfoSource.getAttributeInfo(r.attribute).title;return i?We(i)?i:(Et(i,n),n.textContent.replace(/\s+/g," ").trim()):"unknown"})};class FY{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 X0(e,t,n){let r=n&&e(n);return i=>{const o=e(i);o!==r&&(t(o,r),r=o)}}class MY{constructor(t){J(this,Ah);J(this,fr,0);J(this,Ko,0);J(this,Ss,0);J(this,mc);J(this,bc);J(this,Yi);J(this,yc);J(this,$t);se(this,$t,t)}isCloseup(){return B(this,fr)===1}resetLocations(){se(this,Yi,void 0)}reset(){se(this,fr,0),this.resetLocations()}handleWheelEvent(t){se(this,Ko,Ci(B(this,Ko)+t.deltaY,0,B(this,Ss)-B(this,$t).getHeight()))}togglePeek(t,n,r){if(B(this,fr)>0&&B(this,fr)<1||t!==void 0&&t==!!B(this,fr))return;const i=B(this,$t).viewContext,o=B(this,$t).getHeight(),a={requestAnimationFrame:s=>i.animator.requestTransition(s),onUpdate:s=>{se(this,fr,Math.pow(s,2)),Q(this,Ah,vv).call(this),i.animator.requestRender()},from:B(this,fr)};if(B(this,fr)==0){let s;if(r)s=(c=>c.location+c.size/2)(B(this,yc).samples.find(c=>c.key==r).locSize);else{const l=this.getSummaryAt(n);l&&(s=B(this,yc).summaries[l.index].locSize.location-(l.location.locSize.location-n))}s?se(this,Ko,s-n):se(this,Ko,(B(this,Ss)-o)/2),B(this,Ss)>o?i0({...a,to:1,duration:500,easingFunction:y$}):i0({...a,from:0,to:1,duration:300,easingFunction:c=>(1-Math.pow(c*2-1,2))*.5})}else i0({...a,to:0,duration:400,easingFunction:g$})}getLocations(){if(B(this,Yi))return B(this,Yi);const t=B(this,$t).getHeight();if(!t)return;const n=B(this,$t).getSampleHierarchy(),r=n2(n),i=B(this,$t).getSummaryHeight(),o=mk(r,{viewHeight:t,groupSpacing:5,summaryHeight:i}),a=mk(r,{sampleHeight:35,groupSpacing:15,summaryHeight:i}),s=()=>-B(this,Ko),l=()=>B(this,fr);se(this,yc,a),se(this,Ss,a.summaries.map(f=>f.locSize.location+f.locSize.size).reduce((f,h)=>Math.max(f,h),0));const c=(f,h)=>{const d=[];for(let p=0;p<f.length;p++){const g=f[p].key;d.push({key:g,locSize:I$(f[p].locSize,R$(h[p].locSize,s),l)})}return d},u=c(o.groups,a.groups);return se(this,Yi,{samples:c(o.samples,a.samples),summaries:c(o.summaries,a.summaries),groups:u}),Q(this,Ah,vv).call(this),B(this,Yi)}getGroupBackgroundRects(t){const n=this.getLocations().groups,r=n.map(s=>s.key.depth).reduce((s,l)=>Math.max(s,l),0),i=n.filter(s=>s.key.depth==r),o=B(this,$t).getSummaryHeight();t=t.flatten();const a=B(this,$t).isStickySummaries()&&o>0?t.shrink(new Nt(o,0,0,0)):t;return[...i.values()].map(s=>{const l=()=>{const c=s.locSize.location;return t.y+c+o};return{coords:t.modify({y:l,height:()=>s.locSize.size-o}).intersect(a),clipRect:a}})}updateFacetTexture(){const t=B(this,$t).getSampleHierarchy().sampleData;if(!B(this,bc)){const o=t&&Object.values(t.entities);se(this,bc,new Float32Array(Math.ceil(o.length*2/4)*4))}const n=B(this,bc);n.fill(0);const r=t==null?void 0:t.entities;if(r){const o=this.getLocations().samples,a=B(this,$t).getHeight();for(const s of o){const l=r[s.key].indexNumber;n[l*2+0]=s.locSize.location/a,n[l*2+1]=s.locSize.size/a}}const i=B(this,$t).viewContext.glHelper.gl;se(this,mc,tl(i,{internalFormat:i.RG32F,format:i.RG,height:1},n,B(this,mc)))}getFacetTexture(){return B(this,mc)}getSummaryAt(t){const n=this.getLocations().summaries,r=n.findIndex(i=>GS(i.locSize,t));return r>=0?{index:r,location:n[r]}:void 0}clipBySummary(t){if(B(this,$t).isStickySummaries()){const n=B(this,$t).getSummaryHeight();if(n>0)return t.modify({y:()=>t.y+n,height:()=>t.height-n})}return t}}fr=new WeakMap,Ko=new WeakMap,Ss=new WeakMap,mc=new WeakMap,bc=new WeakMap,Yi=new WeakMap,yc=new WeakMap,$t=new WeakMap,Ah=new WeakSet,vv=function(){var n;const t=((n=B(this,Yi).samples[0])==null?void 0:n.locSize.size)??0;B(this,$t).onLocationUpdate({sampleHeight:t})};function mk(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 o=h=>Gn(h),a=e.map(h=>({path:h,sampleGroup:o(h),samples:o(h).samples})).filter(h=>h.samples.length),s=n?h=>({px:h.length*n+i,grow:0}):h=>({px:i,grow:h.length}),l=[];Pu(a.map(h=>s(h.samples)),t,{spacing:r}).forEach((h,d)=>{l.push({key:a[d].path,locSize:h})});const c=[];for(const[h,d]of a.entries()){const p={grow:1},g=d.samples;Pu(g.map(b=>p),Math.max(0,l[h].locSize.size-i),{offset:l[h].locSize.location+i}).forEach((b,m)=>{const{size:v,location:x}=b,A=v*.1*S1(15,22,v);b.location=x+A,b.size=v-2*A,c.push({key:g[m],locSize:b})})}function*u(){const h=[];for(const d of l){const p=d.key,g=Gn(p);for(;h.length<=p.length&&h.length&&p[h.length-1]!=h[h.length-1].group;)yield h.pop();for(let b=0;b<h.length;b++){const m=h[b];m.locSize.size=d.locSize.location-m.locSize.location+d.locSize.size}for(let b=h.length;b<p.length;b++)h.push({group:p[b],locSize:{...d.locSize},depth:h.length,n:0});for(const b of h)b.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 PY(e,t){return t.find(n=>GS(n.locSize,e))}function OY(e,t){const n=t.specifier,r=e.findDescendantByName(n.view),i=r.getScaleResolution("x");let o;if(n0(n.locus)){const f=i.getGenome();if(f)o=f.toContinuous(n.locus.chrom,n.locus.pos);else throw new Error("Encountered a chromosomal locus but no genome is available!")}else o=n.locus;const a=f=>{var h;return(h=r.mark.findDatumAt(f,o))==null?void 0:h[n.field]},[s,l]=Object.entries(r.getEncoding()).find(([f,h])=>"field"in h&&h.field==n.field),c=Js(s)?r.getScaleResolution(s).scale:void 0;return{name:n.field,attribute:t,title:U` <em class="attribute">${n.field}</em>
|
3307
|
+
`};function IY(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==x2.QUANTITATIVE&&(i.encoding.x={field:`attributes["${e}"]`,type:t.type,scale:t.barScale,axis:null}),i}function RY(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 DY(e){return e!==""&&!(typeof e=="number"&&isNaN(e))&&e!==null}const gk=Object.freeze({name:"sample",attribute:{type:dk},accessor:e=>e,type:"identifier",scale:void 0});class BY extends Pa{constructor(n,r){super({title:{text:"Groups",orient:"none"},padding:{right:0},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:Ji(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]}}}}]},n.context,n,r,"sample-groups");J(this,og);this.sampleView=n,this._addBroadcastHandler("layoutComputed",()=>{this.updateRange()}),this.addInteractionEventListener("contextmenu",(i,o)=>{const a=o.uiEvent,s=this.context.getCurrentHover();if(!s)return;const l=s.datum._rawGroup;let c;for(const d of r2(this.sampleView.sampleHierarchy.rootGroup))if(d.at(-1)===l){c=d.slice(1);break}const u=n.actions.removeGroup({path:c.map(d=>d.name)}),f=n.provenance.getActionInfo(u),h=n.provenance.storeHelper.getDispatcher();v2({items:[{label:f.title,icon:f.icon,callback:()=>h(u)}]},a)})}updateRange(){var a,s;const n=(a=this.sampleView.locationManager.getLocations())==null?void 0:a.groups;if(!(n!=null&&n.length))return;const r=((s=this.sampleView)==null?void 0:s.childCoords.height)??0,i=this.getScaleResolution("y"),o=[];for(const l of n)o.push(1-(l.locSize.location+l.locSize.size)/r),o.push(1-l.locSize.location/r);i.scale.range(o)}updateGroups(){var a;const n=((a=this.sampleView.locationManager.getLocations())==null?void 0:a.groups)??[],r=this.context.dataFlow.findDataSourceByKey(this);if(!r)return;const i=Q(this,og,i9).call(this),o=n.map(s=>({_index:s.key.index,_depth:s.key.depth,_rawGroup:s.key.group,attribute:i[s.key.depth],name:s.key.group.name,...s.key.group.name!=s.key.group.title?{title:s.key.group.title}:{},n:s.key.n}));r.updateDynamicData(o),this.getScaleResolution("x").reconfigure(),this.getScaleResolution("y").reconfigure(),n.length&&this.updateRange(),Gn([...this.getLayoutAncestors()]).visit(s=>Ru(s,"size"))}}og=new WeakSet,i9=function(){const n=document.createElement("div");return[null,...this.sampleView.sampleHierarchy.groupMetadata].map(r=>{if(!r)return"unknown";const i=this.sampleView.compositeAttributeInfoSource.getAttributeInfo(r.attribute).title;return i?Xe(i)?i:(Et(i,n),n.textContent.replace(/\s+/g," ").trim()):"unknown"})};class FY{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 X0(e,t,n){let r=n&&e(n);return i=>{const o=e(i);o!==r&&(t(o,r),r=o)}}class MY{constructor(t){J(this,Ah);J(this,fr,0);J(this,Ko,0);J(this,Ss,0);J(this,mc);J(this,bc);J(this,Yi);J(this,yc);J(this,$t);se(this,$t,t)}isCloseup(){return B(this,fr)===1}resetLocations(){se(this,Yi,void 0)}reset(){se(this,fr,0),this.resetLocations()}handleWheelEvent(t){se(this,Ko,Ci(B(this,Ko)+t.deltaY,0,B(this,Ss)-B(this,$t).getHeight()))}togglePeek(t,n,r){if(B(this,fr)>0&&B(this,fr)<1||t!==void 0&&t==!!B(this,fr))return;const i=B(this,$t).viewContext,o=B(this,$t).getHeight(),a={requestAnimationFrame:s=>i.animator.requestTransition(s),onUpdate:s=>{se(this,fr,Math.pow(s,2)),Q(this,Ah,vv).call(this),i.animator.requestRender()},from:B(this,fr)};if(B(this,fr)==0){let s;if(r)s=(c=>c.location+c.size/2)(B(this,yc).samples.find(c=>c.key==r).locSize);else{const l=this.getSummaryAt(n);l&&(s=B(this,yc).summaries[l.index].locSize.location-(l.location.locSize.location-n))}s?se(this,Ko,s-n):se(this,Ko,(B(this,Ss)-o)/2),B(this,Ss)>o?i0({...a,to:1,duration:500,easingFunction:y$}):i0({...a,from:0,to:1,duration:300,easingFunction:c=>(1-Math.pow(c*2-1,2))*.5})}else i0({...a,to:0,duration:400,easingFunction:g$})}getLocations(){if(B(this,Yi))return B(this,Yi);const t=B(this,$t).getHeight();if(!t)return;const n=B(this,$t).getSampleHierarchy(),r=n2(n),i=B(this,$t).getSummaryHeight(),o=mk(r,{viewHeight:t,groupSpacing:5,summaryHeight:i}),a=mk(r,{sampleHeight:35,groupSpacing:15,summaryHeight:i}),s=()=>-B(this,Ko),l=()=>B(this,fr);se(this,yc,a),se(this,Ss,a.summaries.map(f=>f.locSize.location+f.locSize.size).reduce((f,h)=>Math.max(f,h),0));const c=(f,h)=>{const d=[];for(let p=0;p<f.length;p++){const g=f[p].key;d.push({key:g,locSize:I$(f[p].locSize,R$(h[p].locSize,s),l)})}return d},u=c(o.groups,a.groups);return se(this,Yi,{samples:c(o.samples,a.samples),summaries:c(o.summaries,a.summaries),groups:u}),Q(this,Ah,vv).call(this),B(this,Yi)}getGroupBackgroundRects(t){const n=this.getLocations().groups,r=n.map(s=>s.key.depth).reduce((s,l)=>Math.max(s,l),0),i=n.filter(s=>s.key.depth==r),o=B(this,$t).getSummaryHeight();t=t.flatten();const a=B(this,$t).isStickySummaries()&&o>0?t.shrink(new Nt(o,0,0,0)):t;return[...i.values()].map(s=>{const l=()=>{const c=s.locSize.location;return t.y+c+o};return{coords:t.modify({y:l,height:()=>s.locSize.size-o}).intersect(a),clipRect:a}})}updateFacetTexture(){const t=B(this,$t).getSampleHierarchy().sampleData;if(!B(this,bc)){const o=t&&Object.values(t.entities);se(this,bc,new Float32Array(Math.ceil(o.length*2/4)*4))}const n=B(this,bc);n.fill(0);const r=t==null?void 0:t.entities;if(r){const o=this.getLocations().samples,a=B(this,$t).getHeight();for(const s of o){const l=r[s.key].indexNumber;n[l*2+0]=s.locSize.location/a,n[l*2+1]=s.locSize.size/a}}const i=B(this,$t).viewContext.glHelper.gl;se(this,mc,tl(i,{internalFormat:i.RG32F,format:i.RG,height:1},n,B(this,mc)))}getFacetTexture(){return B(this,mc)}getSummaryAt(t){const n=this.getLocations().summaries,r=n.findIndex(i=>GS(i.locSize,t));return r>=0?{index:r,location:n[r]}:void 0}clipBySummary(t){if(B(this,$t).isStickySummaries()){const n=B(this,$t).getSummaryHeight();if(n>0)return t.modify({y:()=>t.y+n,height:()=>t.height-n})}return t}}fr=new WeakMap,Ko=new WeakMap,Ss=new WeakMap,mc=new WeakMap,bc=new WeakMap,Yi=new WeakMap,yc=new WeakMap,$t=new WeakMap,Ah=new WeakSet,vv=function(){var n;const t=((n=B(this,Yi).samples[0])==null?void 0:n.locSize.size)??0;B(this,$t).onLocationUpdate({sampleHeight:t})};function mk(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 o=h=>Gn(h),a=e.map(h=>({path:h,sampleGroup:o(h),samples:o(h).samples})).filter(h=>h.samples.length),s=n?h=>({px:h.length*n+i,grow:0}):h=>({px:i,grow:h.length}),l=[];Pu(a.map(h=>s(h.samples)),t,{spacing:r}).forEach((h,d)=>{l.push({key:a[d].path,locSize:h})});const c=[];for(const[h,d]of a.entries()){const p={grow:1},g=d.samples;Pu(g.map(b=>p),Math.max(0,l[h].locSize.size-i),{offset:l[h].locSize.location+i}).forEach((b,m)=>{const{size:v,location:x}=b,A=v*.1*S1(15,22,v);b.location=x+A,b.size=v-2*A,c.push({key:g[m],locSize:b})})}function*u(){const h=[];for(const d of l){const p=d.key,g=Gn(p);for(;h.length<=p.length&&h.length&&p[h.length-1]!=h[h.length-1].group;)yield h.pop();for(let b=0;b<h.length;b++){const m=h[b];m.locSize.size=d.locSize.location-m.locSize.location+d.locSize.size}for(let b=h.length;b<p.length;b++)h.push({group:p[b],locSize:{...d.locSize},depth:h.length,n:0});for(const b of h)b.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 PY(e,t){return t.find(n=>GS(n.locSize,e))}function OY(e,t){const n=t.specifier,r=e.findDescendantByName(n.view),i=r.getScaleResolution("x");let o;if(n0(n.locus)){const f=i.getGenome();if(f)o=f.toContinuous(n.locus.chrom,n.locus.pos);else throw new Error("Encountered a chromosomal locus but no genome is available!")}else o=n.locus;const a=f=>{var h;return(h=r.mark.findDatumAt(f,o))==null?void 0:h[n.field]},[s,l]=Object.entries(r.getEncoding()).find(([f,h])=>"field"in h&&h.field==n.field),c=Js(s)?r.getScaleResolution(s).scale:void 0;return{name:n.field,attribute:t,title:U` <em class="attribute">${n.field}</em>
|
3308
3308
|
<span class="viewTitle">(${r.getTitleText()??r.name})</span>
|
3309
3309
|
${n0(n.locus)?U`at
|
3310
3310
|
<span class="locus"
|
@@ -3358,7 +3358,7 @@ svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
|
|
3358
3358
|
/>
|
3359
3359
|
${rZ([123],()=>this._getSearchHelp())}
|
3360
3360
|
</div>
|
3361
|
-
`}}customElements.define("genome-spy-search-field",iZ);function oZ(e,t){return new Promise(n=>{let r=0;const i=700/e.length+30;function o(){t.value=e.substring(0,r),r>=e.length?setTimeout(n,500):(r++,setTimeout(o,Math.random()*i*2))}o()})}function Ck(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,Ba}}),t}const kk={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.56.
|
3361
|
+
`}}customElements.define("genome-spy-search-field",iZ);function oZ(e,t){return new Promise(n=>{let r=0;const i=700/e.length+30;function o(){t.value=e.substring(0,r),r>=e.length?setTimeout(n,500):(r++,setTimeout(o,Math.random()*i*2))}o()})}function Ck(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,Ba}}),t}const kk={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.56.1",main:"dist/index.js",type:"module",files:["dist/"],repository:{type:"git",url:"github:genome-spy/genome-spy",directory:"packages/app"},scripts:{dev:"node dev-server.mjs",build:"vite build","test:tsc":"tsc -p tsconfig.json --noEmit",prepublishOnly:"npm run build"},dependencies:{"@floating-ui/dom":"^1.6.1","@fortawesome/fontawesome-free":"^6.4.2","@fortawesome/fontawesome-svg-core":"^6.4.2","@fortawesome/free-solid-svg-icons":"^6.4.2","@genome-spy/core":"^0.56.1","@reduxjs/toolkit":"^1.8.4",idb:"^7.1.1",lit:"^3.1.2","lz-string":"^1.4.4",mapsort:"^1.0.5",micromark:"^4.0.0","redux-batched-actions":"^0.5.0","redux-undo":"^1.0.1"},gitHead:"453d25739c7996fc60fe5fa125784c8532b40e4f"};/**
|
3362
3362
|
* @license
|
3363
3363
|
* Copyright 2020 Google LLC
|
3364
3364
|
* SPDX-License-Identifier: BSD-3-Clause
|
@@ -3438,8 +3438,8 @@ svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
|
|
3438
3438
|
* @license
|
3439
3439
|
* Copyright 2017 Google LLC
|
3440
3440
|
* SPDX-License-Identifier: BSD-3-Clause
|
3441
|
-
*/const Bk=e=>!nq(e)&&typeof e.then=="function",Fk=1073741823,dZ=fa(class extends _k{constructor(){super(...arguments),this._$Cwt=Fk,this._$Cbt=[],this._$CK=new fZ(this),this._$CX=new hZ}render(...t){return t.find(n=>!Bk(n))??Gt}update(t,n){const r=this._$Cbt;let i=r.length;this._$Cbt=n;const o=this._$CK,a=this._$CX;this.isConnected||this.disconnected();for(let s=0;s<n.length&&!(s>this._$Cwt);s++){const l=n[s];if(!Bk(l))return this._$Cwt=s,l;s<i&&l===r[s]||(this._$Cwt=Fk,i=0,Promise.resolve(l).then(async c=>{for(;a.get();)await a.get();const u=o.deref();if(u!==void 0){const f=u._$Cbt.indexOf(l);f>-1&&f<u._$Cwt&&(u._$Cwt=f,u.setValue(c))}}))}return Gt}disconnected(){this._$CK.disconnect(),this._$CX.pause()}reconnected(){this._$CK.reconnect(this),this._$CX.resume()}}),Mk=document.createElement("i");function Pk(e){const t="&"+e+";";Mk.innerHTML=t;const n=Mk.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function Oi(e,t,n,r){const i=e.length;let o=0,a;if(t<0?t=-t>i?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);o<r.length;)a=r.slice(o,o+1e4),a.unshift(t,0),e.splice(...a),o+=1e4,t+=1e4}function sn(e,t){return e.length>0?(Oi(e,e.length,0,t),e):t}const B2={}.hasOwnProperty;function pZ(e){const t={};let n=-1;for(;++n<e.length;)gZ(t,e[n]);return t}function gZ(e,t){let n;for(n in t){const i=(B2.call(e,n)?e[n]:void 0)||(e[n]={}),o=t[n];let a;if(o)for(a in o){B2.call(i,a)||(i[a]=[]);const s=o[a];mZ(i[a],Array.isArray(s)?s:s?[s]:[])}}}function mZ(e,t){let n=-1;const r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);Oi(e,0,0,r)}function bZ(e){const t={};let n=-1;for(;++n<e.length;)yZ(t,e[n]);return t}function yZ(e,t){let n;for(n in t){const i=(B2.call(e,n)?e[n]:void 0)||(e[n]={}),o=t[n];let a;if(o)for(a in o)i[a]=o[a]}}function wZ(e,t){const n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}const vZ={'"':"quot","&":"amp","<":"lt",">":"gt"};function Ok(e){return e.replace(/["&<>]/g,t);function t(n){return"&"+vZ[n]+";"}}function cf(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Xr=Bo(/[A-Za-z]/),Pn=Bo(/[\dA-Za-z]/),xZ=Bo(/[#-'*+\--9=?A-Z^-~]/);function F2(e){return e!==null&&(e<32||e===127)}const M2=Bo(/\d/),AZ=Bo(/[\dA-Fa-f]/),EZ=Bo(/[!-/:-@[-`{-~]/);function ve(e){return e!==null&&e<-2}function vn(e){return e!==null&&(e<0||e===32)}function He(e){return e===-2||e===-1||e===32}const SZ=Bo(new RegExp("\\p{P}|\\p{S}","u")),_Z=Bo(/\s/);function Bo(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function tp(e,t){const n=Ok(CZ(e||""));if(!t)return n;const r=n.indexOf(":"),i=n.indexOf("?"),o=n.indexOf("#"),a=n.indexOf("/");return r<0||a>-1&&r>a||i>-1&&r>i||o>-1&&r>o||t.test(n.slice(0,r))?n:""}function CZ(e){const t=[];let n=-1,r=0,i=0;for(;++n<e.length;){const o=e.charCodeAt(n);let a="";if(o===37&&Pn(e.charCodeAt(n+1))&&Pn(e.charCodeAt(n+2)))i=2;else if(o<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(o))||(a=String.fromCharCode(o));else if(o>55295&&o<57344){const s=e.charCodeAt(n+1);o<56320&&s>56319&&s<57344?(a=String.fromCharCode(o,s),i=1):a="�"}else a=String.fromCharCode(o);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+i+1,a=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}const Lk={}.hasOwnProperty,Nk=/^(https?|ircs?|mailto|xmpp)$/i,kZ=/^https?$/i;function TZ(e){const t=e||{};let n=!0;const r={},i=[[]],o=[],a=[],l=bZ([{enter:{blockQuote:ie,codeFenced:Re,codeFencedFenceInfo:b,codeFencedFenceMeta:b,codeIndented:Te,codeText:
|
3442
|
-
`)}function S(){const te=i[i.length-1],he=te[te.length-1],Xt=he?he.charCodeAt(he.length-1):null;Xt===10||Xt===13||Xt===null||A()}function E(te){return g("ignoreEncode")?te:Ok(te)}function _(){m()}function R(te){a.push(!te._loose),S(),v("<ol"),p("expectFirstItem",!0)}function F(te){a.push(!te._loose),S(),v("<ul"),p("expectFirstItem",!0)}function H(te){if(g("expectFirstItem")){const he=Number.parseInt(this.sliceSerialize(te),10);he!==1&&v(' start="'+E(String(he))+'"')}}function O(){g("expectFirstItem")?v(">"):le(),S(),v("<li>"),p("expectFirstItem"),p("lastWasTag")}function Z(){le(),a.pop(),A(),v("</ol>")}function ne(){le(),a.pop(),A(),v("</ul>")}function le(){g("lastWasTag")&&!g("slurpAllLineEndings")&&S(),v("</li>"),p("slurpAllLineEndings")}function ie(){a.push(!1),S(),v("<blockquote>")}function pe(){a.pop(),S(),v("</blockquote>"),p("slurpAllLineEndings")}function ge(){a[a.length-1]||(S(),v("<p>")),p("slurpAllLineEndings")}function Ee(){a[a.length-1]?p("slurpAllLineEndings",!0):v("</p>")}function Re(){S(),v("<pre><code"),p("fencesCount",0)}function M(){const te=m();v(' class="language-'+te+'"')}function Se(){const te=g("fencesCount")||0;te||(v(">"),p("slurpOneLineEnding",!0)),p("fencesCount",te+1)}function Te(){S(),v("<pre><code>")}function P(){const te=g("fencesCount");te!==void 0&&te<2&&c.tightStack.length>0&&!g("lastWasTag")&&A(),g("flowCodeSeenData")&&S(),v("</code></pre>"),te!==void 0&&te<2&&S(),p("flowCodeSeenData"),p("fencesCount"),p("slurpOneLineEnding")}function ot(){o.push({image:!0}),n=void 0}function Me(){o.push({})}function z(te){o[o.length-1].labelId=this.sliceSerialize(te)}function $(){o[o.length-1].label=m()}function X(te){o[o.length-1].referenceId=this.sliceSerialize(te)}function q(){b(),o[o.length-1].destination=""}function ee(){b(),p("ignoreEncode",!0)}function I(){o[o.length-1].destination=m(),p("ignoreEncode")}function k(){o[o.length-1].title=m()}function W(){let te=o.length-1;const he=o[te],Xt=he.referenceId||he.labelId,L=he.destination===void 0?r[cf(Xt)]:he;for(n=!0;te--;)if(o[te].image){n=void 0;break}he.image?(v('<img src="'+tp(L.destination,t.allowDangerousProtocol?void 0:kZ)+'" alt="'),x(he.label),v('"')):v('<a href="'+tp(L.destination,t.allowDangerousProtocol?void 0:Nk)+'"'),v(L.title?' title="'+L.title+'"':""),he.image?v(" />"):(v(">"),x(he.label),v("</a>")),o.pop()}function K(){b(),o.push({})}function _e(te){m(),o[o.length-1].labelId=this.sliceSerialize(te)}function de(){b(),p("ignoreEncode",!0)}function Ce(){o[o.length-1].destination=m(),p("ignoreEncode")}function cn(){o[o.length-1].title=m()}function ui(){const te=o[o.length-1],he=cf(te.labelId);m(),Lk.call(r,he)||(r[he]=o[o.length-1]),o.pop()}function fi(){p("slurpAllLineEndings",!0)}function hi(te){g("headingRank")||(p("headingRank",this.sliceSerialize(te).length),S(),v("<h"+g("headingRank")+">"))}function Ht(){b(),p("slurpAllLineEndings")}function Fr(){p("slurpAllLineEndings",!0)}function di(){v("</h"+g("headingRank")+">"),p("headingRank")}function un(te){p("headingRank",this.sliceSerialize(te).charCodeAt(0)===61?1:2)}function hr(){const te=m();S(),v("<h"+g("headingRank")+">"),x(te),v("</h"+g("headingRank")+">"),p("slurpAllLineEndings"),p("headingRank")}function C(te){x(E(this.sliceSerialize(te)))}function y(te){if(!g("slurpAllLineEndings")){if(g("slurpOneLineEnding")){p("slurpOneLineEnding");return}if(g("inCodeText")){x(" ");return}x(E(this.sliceSerialize(te)))}}function w(te){x(E(this.sliceSerialize(te))),p("flowCodeSeenData",!0)}function D(){v("<br />")}function N(){S(),Y()}function G(){p("ignoreEncode")}function Y(){t.allowDangerousHtml&&p("ignoreEncode",!0)}function ke(){v("<em>")}function et(){v("<strong>")}function Qe(){p("inCodeText",!0),v("<code>")}function at(){p("inCodeText"),v("</code>")}function Ue(){v("</em>")}function ag(){v("</strong>")}function Zw(){S(),v("<hr />")}function sg(te){p("characterReferenceType",te.type)}function lg(te){let he=this.sliceSerialize(te);he=g("characterReferenceType")?wZ(he,g("characterReferenceType")==="characterReferenceMarkerNumeric"?10:16):Pk(he),x(E(he)),p("characterReferenceType")}function cg(te){const he=this.sliceSerialize(te);v('<a href="'+tp(he,t.allowDangerousProtocol?void 0:Nk)+'">'),x(E(he)),v("</a>")}function Qw(te){const he=this.sliceSerialize(te);v('<a href="'+tp("mailto:"+he)+'">'),x(E(he)),v("</a>")}}function nt(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let o=0;return a;function a(l){return He(l)?(e.enter(n),s(l)):t(l)}function s(l){return He(l)&&o++<i?(e.consume(l),s):(e.exit(n),t(l))}}const IZ={tokenize:RZ};function RZ(e){const t=e.attempt(this.parser.constructs.contentInitial,r,i);let n;return t;function r(s){if(s===null){e.consume(s);return}return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),nt(e,t,"linePrefix")}function i(s){return e.enter("paragraph"),o(s)}function o(s){const l=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=l),n=l,a(s)}function a(s){if(s===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(s);return}return ve(s)?(e.consume(s),e.exit("chunkText"),o):(e.consume(s),a)}}const DZ={tokenize:BZ},zk={tokenize:FZ};function BZ(e){const t=this,n=[];let r=0,i,o,a;return s;function s(x){if(r<n.length){const A=n[r];return t.containerState=A[1],e.attempt(A[0].continuation,l,c)(x)}return c(x)}function l(x){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&v();const A=t.events.length;let S=A,E;for(;S--;)if(t.events[S][0]==="exit"&&t.events[S][1].type==="chunkFlow"){E=t.events[S][1].end;break}m(r);let _=A;for(;_<t.events.length;)t.events[_][1].end=Object.assign({},E),_++;return Oi(t.events,S+1,0,t.events.slice(A)),t.events.length=_,c(x)}return s(x)}function c(x){if(r===n.length){if(!i)return h(x);if(i.currentConstruct&&i.currentConstruct.concrete)return p(x);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(zk,u,f)(x)}function u(x){return i&&v(),m(r),h(x)}function f(x){return t.parser.lazy[t.now().line]=r!==n.length,a=t.now().offset,p(x)}function h(x){return t.containerState={},e.attempt(zk,d,p)(x)}function d(x){return r++,n.push([t.currentConstruct,t.containerState]),h(x)}function p(x){if(x===null){i&&v(),m(0),e.consume(x);return}return i=i||t.parser.flow(t.now()),e.enter("chunkFlow",{contentType:"flow",previous:o,_tokenizer:i}),g(x)}function g(x){if(x===null){b(e.exit("chunkFlow"),!0),m(0),e.consume(x);return}return ve(x)?(e.consume(x),b(e.exit("chunkFlow")),r=0,t.interrupt=void 0,s):(e.consume(x),g)}function b(x,A){const S=t.sliceStream(x);if(A&&S.push(null),x.previous=o,o&&(o.next=x),o=x,i.defineSkip(x.start),i.write(S),t.parser.lazy[x.start.line]){let E=i.events.length;for(;E--;)if(i.events[E][1].start.offset<a&&(!i.events[E][1].end||i.events[E][1].end.offset>a))return;const _=t.events.length;let R=_,F,H;for(;R--;)if(t.events[R][0]==="exit"&&t.events[R][1].type==="chunkFlow"){if(F){H=t.events[R][1].end;break}F=!0}for(m(r),E=_;E<t.events.length;)t.events[E][1].end=Object.assign({},H),E++;Oi(t.events,R+1,0,t.events.slice(_)),t.events.length=E}}function m(x){let A=n.length;for(;A-- >x;){const S=n[A];t.containerState=S[1],S[0].exit.call(t,e)}n.length=x}function v(){i.write([null]),o=void 0,i=void 0,t.containerState._closeFlow=void 0}}function FZ(e,t,n){return nt(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Uk(e){if(e===null||vn(e)||_Z(e))return 1;if(SZ(e))return 2}function P2(e,t,n){const r=[];let i=-1;for(;++i<e.length;){const o=e[i].resolveAll;o&&!r.includes(o)&&(t=o(t,n),r.push(o))}return t}const O2={name:"attention",tokenize:PZ,resolveAll:MZ};function MZ(e,t){let n=-1,r,i,o,a,s,l,c,u;for(;++n<e.length;)if(e[n][0]==="enter"&&e[n][1].type==="attentionSequence"&&e[n][1]._close){for(r=n;r--;)if(e[r][0]==="exit"&&e[r][1].type==="attentionSequence"&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;l=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const f=Object.assign({},e[r][1].end),h=Object.assign({},e[n][1].start);$k(f,-l),$k(h,l),a={type:l>1?"strongSequence":"emphasisSequence",start:f,end:Object.assign({},e[r][1].end)},s={type:l>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[n][1].start),end:h},o={type:l>1?"strongText":"emphasisText",start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},i={type:l>1?"strong":"emphasis",start:Object.assign({},a.start),end:Object.assign({},s.end)},e[r][1].end=Object.assign({},a.start),e[n][1].start=Object.assign({},s.end),c=[],e[r][1].end.offset-e[r][1].start.offset&&(c=sn(c,[["enter",e[r][1],t],["exit",e[r][1],t]])),c=sn(c,[["enter",i,t],["enter",a,t],["exit",a,t],["enter",o,t]]),c=sn(c,P2(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),c=sn(c,[["exit",o,t],["enter",s,t],["exit",s,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(u=2,c=sn(c,[["enter",e[n][1],t],["exit",e[n][1],t]])):u=0,Oi(e,r-1,n-r+3,c),n=r+c.length-u-2;break}}for(n=-1;++n<e.length;)e[n][1].type==="attentionSequence"&&(e[n][1].type="data");return e}function PZ(e,t){const n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=Uk(r);let o;return a;function a(l){return o=l,e.enter("attentionSequence"),s(l)}function s(l){if(l===o)return e.consume(l),s;const c=e.exit("attentionSequence"),u=Uk(l),f=!u||u===2&&i||n.includes(l),h=!i||i===2&&u||n.includes(r);return c._open=!!(o===42?f:f&&(i||!h)),c._close=!!(o===42?h:h&&(u||!f)),t(l)}}function $k(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const OZ={name:"autolink",tokenize:LZ};function LZ(e,t,n){let r=0;return i;function i(d){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(d),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),o}function o(d){return Xr(d)?(e.consume(d),a):d===64?n(d):c(d)}function a(d){return d===43||d===45||d===46||Pn(d)?(r=1,s(d)):c(d)}function s(d){return d===58?(e.consume(d),r=0,l):(d===43||d===45||d===46||Pn(d))&&r++<32?(e.consume(d),s):(r=0,c(d))}function l(d){return d===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(d),e.exit("autolinkMarker"),e.exit("autolink"),t):d===null||d===32||d===60||F2(d)?n(d):(e.consume(d),l)}function c(d){return d===64?(e.consume(d),u):xZ(d)?(e.consume(d),c):n(d)}function u(d){return Pn(d)?f(d):n(d)}function f(d){return d===46?(e.consume(d),r=0,u):d===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(d),e.exit("autolinkMarker"),e.exit("autolink"),t):h(d)}function h(d){if((d===45||Pn(d))&&r++<63){const p=d===45?h:f;return e.consume(d),p}return n(d)}}const np={tokenize:NZ,partial:!0};function NZ(e,t,n){return r;function r(o){return He(o)?nt(e,i,"linePrefix")(o):i(o)}function i(o){return o===null||ve(o)?t(o):n(o)}}const Hk={name:"blockQuote",tokenize:zZ,continuation:{tokenize:UZ},exit:$Z};function zZ(e,t,n){const r=this;return i;function i(a){if(a===62){const s=r.containerState;return s.open||(e.enter("blockQuote",{_container:!0}),s.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(a),e.exit("blockQuoteMarker"),o}return n(a)}function o(a){return He(a)?(e.enter("blockQuotePrefixWhitespace"),e.consume(a),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(a))}}function UZ(e,t,n){const r=this;return i;function i(a){return He(a)?nt(e,o,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a):o(a)}function o(a){return e.attempt(Hk,t,n)(a)}}function $Z(e){e.exit("blockQuote")}const Gk={name:"characterEscape",tokenize:HZ};function HZ(e,t,n){return r;function r(o){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(o),e.exit("escapeMarker"),i}function i(o){return EZ(o)?(e.enter("characterEscapeValue"),e.consume(o),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(o)}}const Vk={name:"characterReference",tokenize:GZ};function GZ(e,t,n){const r=this;let i=0,o,a;return s;function s(f){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(f),e.exit("characterReferenceMarker"),l}function l(f){return f===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(f),e.exit("characterReferenceMarkerNumeric"),c):(e.enter("characterReferenceValue"),o=31,a=Pn,u(f))}function c(f){return f===88||f===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(f),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),o=6,a=AZ,u):(e.enter("characterReferenceValue"),o=7,a=M2,u(f))}function u(f){if(f===59&&i){const h=e.exit("characterReferenceValue");return a===Pn&&!Pk(r.sliceSerialize(h))?n(f):(e.enter("characterReferenceMarker"),e.consume(f),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return a(f)&&i++<o?(e.consume(f),u):n(f)}}const jk={tokenize:jZ,partial:!0},qk={name:"codeFenced",tokenize:VZ,concrete:!0};function VZ(e,t,n){const r=this,i={tokenize:S,partial:!0};let o=0,a=0,s;return l;function l(E){return c(E)}function c(E){const _=r.events[r.events.length-1];return o=_&&_[1].type==="linePrefix"?_[2].sliceSerialize(_[1],!0).length:0,s=E,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),u(E)}function u(E){return E===s?(a++,e.consume(E),u):a<3?n(E):(e.exit("codeFencedFenceSequence"),He(E)?nt(e,f,"whitespace")(E):f(E))}function f(E){return E===null||ve(E)?(e.exit("codeFencedFence"),r.interrupt?t(E):e.check(jk,g,A)(E)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),h(E))}function h(E){return E===null||ve(E)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),f(E)):He(E)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),nt(e,d,"whitespace")(E)):E===96&&E===s?n(E):(e.consume(E),h)}function d(E){return E===null||ve(E)?f(E):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),p(E))}function p(E){return E===null||ve(E)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),f(E)):E===96&&E===s?n(E):(e.consume(E),p)}function g(E){return e.attempt(i,A,b)(E)}function b(E){return e.enter("lineEnding"),e.consume(E),e.exit("lineEnding"),m}function m(E){return o>0&&He(E)?nt(e,v,"linePrefix",o+1)(E):v(E)}function v(E){return E===null||ve(E)?e.check(jk,g,A)(E):(e.enter("codeFlowValue"),x(E))}function x(E){return E===null||ve(E)?(e.exit("codeFlowValue"),v(E)):(e.consume(E),x)}function A(E){return e.exit("codeFenced"),t(E)}function S(E,_,R){let F=0;return H;function H(ie){return E.enter("lineEnding"),E.consume(ie),E.exit("lineEnding"),O}function O(ie){return E.enter("codeFencedFence"),He(ie)?nt(E,Z,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(ie):Z(ie)}function Z(ie){return ie===s?(E.enter("codeFencedFenceSequence"),ne(ie)):R(ie)}function ne(ie){return ie===s?(F++,E.consume(ie),ne):F>=a?(E.exit("codeFencedFenceSequence"),He(ie)?nt(E,le,"whitespace")(ie):le(ie)):R(ie)}function le(ie){return ie===null||ve(ie)?(E.exit("codeFencedFence"),_(ie)):R(ie)}}}function jZ(e,t,n){const r=this;return i;function i(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o)}function o(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const L2={name:"codeIndented",tokenize:WZ},qZ={tokenize:YZ,partial:!0};function WZ(e,t,n){const r=this;return i;function i(c){return e.enter("codeIndented"),nt(e,o,"linePrefix",5)(c)}function o(c){const u=r.events[r.events.length-1];return u&&u[1].type==="linePrefix"&&u[2].sliceSerialize(u[1],!0).length>=4?a(c):n(c)}function a(c){return c===null?l(c):ve(c)?e.attempt(qZ,a,l)(c):(e.enter("codeFlowValue"),s(c))}function s(c){return c===null||ve(c)?(e.exit("codeFlowValue"),a(c)):(e.consume(c),s)}function l(c){return e.exit("codeIndented"),t(c)}}function YZ(e,t,n){const r=this;return i;function i(a){return r.parser.lazy[r.now().line]?n(a):ve(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):nt(e,o,"linePrefix",5)(a)}function o(a){const s=r.events[r.events.length-1];return s&&s[1].type==="linePrefix"&&s[2].sliceSerialize(s[1],!0).length>=4?t(a):ve(a)?i(a):n(a)}}const ZZ={name:"codeText",tokenize:KZ,resolve:QZ,previous:XZ};function QZ(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r<t;)if(e[r][1].type==="codeTextData"){e[n][1].type="codeTextPadding",e[t][1].type="codeTextPadding",n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)i===void 0?r!==t&&e[r][1].type!=="lineEnding"&&(i=r):(r===t||e[r][1].type==="lineEnding")&&(e[i][1].type="codeTextData",r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),t-=r-i-2,r=i+2),i=void 0);return e}function XZ(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function KZ(e,t,n){let r=0,i,o;return a;function a(f){return e.enter("codeText"),e.enter("codeTextSequence"),s(f)}function s(f){return f===96?(e.consume(f),r++,s):(e.exit("codeTextSequence"),l(f))}function l(f){return f===null?n(f):f===32?(e.enter("space"),e.consume(f),e.exit("space"),l):f===96?(o=e.enter("codeTextSequence"),i=0,u(f)):ve(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),l):(e.enter("codeTextData"),c(f))}function c(f){return f===null||f===32||f===96||ve(f)?(e.exit("codeTextData"),l(f)):(e.consume(f),c)}function u(f){return f===96?(e.consume(f),i++,u):i===r?(e.exit("codeTextSequence"),e.exit("codeText"),t(f)):(o.type="codeTextData",c(f))}}class JZ{constructor(t){this.left=t?[...t]:[],this.right=[]}get(t){if(t<0||t>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return t<this.left.length?this.left[t]:this.right[this.right.length-t+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(t,n){const r=n??Number.POSITIVE_INFINITY;return r<this.left.length?this.left.slice(t,r):t>this.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const i=n||0;this.setCursor(Math.trunc(t));const o=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&uf(this.left,r),o.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),uf(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),uf(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t<this.left.length){const n=this.left.splice(t,Number.POSITIVE_INFINITY);uf(this.right,n.reverse())}else{const n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);uf(this.left,n.reverse())}}}function uf(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function Wk(e){const t={};let n=-1,r,i,o,a,s,l,c;const u=new JZ(e);for(;++n<u.length;){for(;n in t;)n=t[n];if(r=u.get(n),n&&r[1].type==="chunkFlow"&&u.get(n-1)[1].type==="listItemPrefix"&&(l=r[1]._tokenizer.events,o=0,o<l.length&&l[o][1].type==="lineEndingBlank"&&(o+=2),o<l.length&&l[o][1].type==="content"))for(;++o<l.length&&l[o][1].type!=="content";)l[o][1].type==="chunkText"&&(l[o][1]._isInFirstContentOfListItem=!0,o++);if(r[0]==="enter")r[1].contentType&&(Object.assign(t,eQ(u,n)),n=t[n],c=!0);else if(r[1]._container){for(o=n,i=void 0;o--&&(a=u.get(o),a[1].type==="lineEnding"||a[1].type==="lineEndingBlank");)a[0]==="enter"&&(i&&(u.get(i)[1].type="lineEndingBlank"),a[1].type="lineEnding",i=o);i&&(r[1].end=Object.assign({},u.get(i)[1].start),s=u.slice(i,n),s.unshift(r),u.splice(i,n-i+1,s))}}return Oi(e,0,Number.POSITIVE_INFINITY,u.slice(0)),!c}function eQ(e,t){const n=e.get(t)[1],r=e.get(t)[2];let i=t-1;const o=[],a=n._tokenizer||r.parser[n.contentType](n.start),s=a.events,l=[],c={};let u,f,h=-1,d=n,p=0,g=0;const b=[g];for(;d;){for(;e.get(++i)[1]!==d;);o.push(i),d._tokenizer||(u=r.sliceStream(d),d.next||u.push(null),f&&a.defineSkip(d.start),d._isInFirstContentOfListItem&&(a._gfmTasklistFirstContentOfListItem=!0),a.write(u),d._isInFirstContentOfListItem&&(a._gfmTasklistFirstContentOfListItem=void 0)),f=d,d=d.next}for(d=n;++h<s.length;)s[h][0]==="exit"&&s[h-1][0]==="enter"&&s[h][1].type===s[h-1][1].type&&s[h][1].start.line!==s[h][1].end.line&&(g=h+1,b.push(g),d._tokenizer=void 0,d.previous=void 0,d=d.next);for(a.events=[],d?(d._tokenizer=void 0,d.previous=void 0):b.pop(),h=b.length;h--;){const m=s.slice(b[h],b[h+1]),v=o.pop();l.push([v,v+m.length-1]),e.splice(v,2,m)}for(l.reverse(),h=-1;++h<l.length;)c[p+l[h][0]]=p+l[h][1],p+=l[h][1]-l[h][0]-1;return c}const tQ={tokenize:iQ,resolve:rQ},nQ={tokenize:oQ,partial:!0};function rQ(e){return Wk(e),e}function iQ(e,t){let n;return r;function r(s){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),i(s)}function i(s){return s===null?o(s):ve(s)?e.check(nQ,a,o)(s):(e.consume(s),i)}function o(s){return e.exit("chunkContent"),e.exit("content"),t(s)}function a(s){return e.consume(s),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,i}}function oQ(e,t,n){const r=this;return i;function i(a){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),nt(e,o,"linePrefix")}function o(a){if(a===null||ve(a))return n(a);const s=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&s&&s[1].type==="linePrefix"&&s[2].sliceSerialize(s[1],!0).length>=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function Yk(e,t,n,r,i,o,a,s,l){const c=l||Number.POSITIVE_INFINITY;let u=0;return f;function f(m){return m===60?(e.enter(r),e.enter(i),e.enter(o),e.consume(m),e.exit(o),h):m===null||m===32||m===41||F2(m)?n(m):(e.enter(r),e.enter(a),e.enter(s),e.enter("chunkString",{contentType:"string"}),g(m))}function h(m){return m===62?(e.enter(o),e.consume(m),e.exit(o),e.exit(i),e.exit(r),t):(e.enter(s),e.enter("chunkString",{contentType:"string"}),d(m))}function d(m){return m===62?(e.exit("chunkString"),e.exit(s),h(m)):m===null||m===60||ve(m)?n(m):(e.consume(m),m===92?p:d)}function p(m){return m===60||m===62||m===92?(e.consume(m),d):d(m)}function g(m){return!u&&(m===null||m===41||vn(m))?(e.exit("chunkString"),e.exit(s),e.exit(a),e.exit(r),t(m)):u<c&&m===40?(e.consume(m),u++,g):m===41?(e.consume(m),u--,g):m===null||m===32||m===40||F2(m)?n(m):(e.consume(m),m===92?b:g)}function b(m){return m===40||m===41||m===92?(e.consume(m),g):g(m)}}function Zk(e,t,n,r,i,o){const a=this;let s=0,l;return c;function c(d){return e.enter(r),e.enter(i),e.consume(d),e.exit(i),e.enter(o),u}function u(d){return s>999||d===null||d===91||d===93&&!l||d===94&&!s&&"_hiddenFootnoteSupport"in a.parser.constructs?n(d):d===93?(e.exit(o),e.enter(i),e.consume(d),e.exit(i),e.exit(r),t):ve(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),u):(e.enter("chunkString",{contentType:"string"}),f(d))}function f(d){return d===null||d===91||d===93||ve(d)||s++>999?(e.exit("chunkString"),u(d)):(e.consume(d),l||(l=!He(d)),d===92?h:f)}function h(d){return d===91||d===92||d===93?(e.consume(d),s++,f):f(d)}}function Qk(e,t,n,r,i,o){let a;return s;function s(h){return h===34||h===39||h===40?(e.enter(r),e.enter(i),e.consume(h),e.exit(i),a=h===40?41:h,l):n(h)}function l(h){return h===a?(e.enter(i),e.consume(h),e.exit(i),e.exit(r),t):(e.enter(o),c(h))}function c(h){return h===a?(e.exit(o),l(a)):h===null?n(h):ve(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),nt(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),u(h))}function u(h){return h===a||h===null||ve(h)?(e.exit("chunkString"),c(h)):(e.consume(h),h===92?f:u)}function f(h){return h===a||h===92?(e.consume(h),u):u(h)}}function ff(e,t){let n;return r;function r(i){return ve(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):He(i)?nt(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const aQ={name:"definition",tokenize:lQ},sQ={tokenize:cQ,partial:!0};function lQ(e,t,n){const r=this;let i;return o;function o(d){return e.enter("definition"),a(d)}function a(d){return Zk.call(r,e,s,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(d)}function s(d){return i=cf(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),d===58?(e.enter("definitionMarker"),e.consume(d),e.exit("definitionMarker"),l):n(d)}function l(d){return vn(d)?ff(e,c)(d):c(d)}function c(d){return Yk(e,u,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(d)}function u(d){return e.attempt(sQ,f,f)(d)}function f(d){return He(d)?nt(e,h,"whitespace")(d):h(d)}function h(d){return d===null||ve(d)?(e.exit("definition"),r.parser.defined.push(i),t(d)):n(d)}}function cQ(e,t,n){return r;function r(s){return vn(s)?ff(e,i)(s):n(s)}function i(s){return Qk(e,o,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(s)}function o(s){return He(s)?nt(e,a,"whitespace")(s):a(s)}function a(s){return s===null||ve(s)?t(s):n(s)}}const uQ={name:"hardBreakEscape",tokenize:fQ};function fQ(e,t,n){return r;function r(o){return e.enter("hardBreakEscape"),e.consume(o),i}function i(o){return ve(o)?(e.exit("hardBreakEscape"),t(o)):n(o)}}const hQ={name:"headingAtx",tokenize:pQ,resolve:dQ};function dQ(e,t){let n=e.length-2,r=3,i,o;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},o={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},Oi(e,r,n-r+1,[["enter",i,t],["enter",o,t],["exit",o,t],["exit",i,t]])),e}function pQ(e,t,n){let r=0;return i;function i(u){return e.enter("atxHeading"),o(u)}function o(u){return e.enter("atxHeadingSequence"),a(u)}function a(u){return u===35&&r++<6?(e.consume(u),a):u===null||vn(u)?(e.exit("atxHeadingSequence"),s(u)):n(u)}function s(u){return u===35?(e.enter("atxHeadingSequence"),l(u)):u===null||ve(u)?(e.exit("atxHeading"),t(u)):He(u)?nt(e,s,"whitespace")(u):(e.enter("atxHeadingText"),c(u))}function l(u){return u===35?(e.consume(u),l):(e.exit("atxHeadingSequence"),s(u))}function c(u){return u===null||u===35||vn(u)?(e.exit("atxHeadingText"),s(u)):(e.consume(u),c)}}const gQ=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Xk=["pre","script","style","textarea"],mQ={name:"htmlFlow",tokenize:vQ,resolveTo:wQ,concrete:!0},bQ={tokenize:AQ,partial:!0},yQ={tokenize:xQ,partial:!0};function wQ(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function vQ(e,t,n){const r=this;let i,o,a,s,l;return c;function c(P){return u(P)}function u(P){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(P),f}function f(P){return P===33?(e.consume(P),h):P===47?(e.consume(P),o=!0,g):P===63?(e.consume(P),i=3,r.interrupt?t:M):Xr(P)?(e.consume(P),a=String.fromCharCode(P),b):n(P)}function h(P){return P===45?(e.consume(P),i=2,d):P===91?(e.consume(P),i=5,s=0,p):Xr(P)?(e.consume(P),i=4,r.interrupt?t:M):n(P)}function d(P){return P===45?(e.consume(P),r.interrupt?t:M):n(P)}function p(P){const ot="CDATA[";return P===ot.charCodeAt(s++)?(e.consume(P),s===ot.length?r.interrupt?t:Z:p):n(P)}function g(P){return Xr(P)?(e.consume(P),a=String.fromCharCode(P),b):n(P)}function b(P){if(P===null||P===47||P===62||vn(P)){const ot=P===47,Me=a.toLowerCase();return!ot&&!o&&Xk.includes(Me)?(i=1,r.interrupt?t(P):Z(P)):gQ.includes(a.toLowerCase())?(i=6,ot?(e.consume(P),m):r.interrupt?t(P):Z(P)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(P):o?v(P):x(P))}return P===45||Pn(P)?(e.consume(P),a+=String.fromCharCode(P),b):n(P)}function m(P){return P===62?(e.consume(P),r.interrupt?t:Z):n(P)}function v(P){return He(P)?(e.consume(P),v):H(P)}function x(P){return P===47?(e.consume(P),H):P===58||P===95||Xr(P)?(e.consume(P),A):He(P)?(e.consume(P),x):H(P)}function A(P){return P===45||P===46||P===58||P===95||Pn(P)?(e.consume(P),A):S(P)}function S(P){return P===61?(e.consume(P),E):He(P)?(e.consume(P),S):x(P)}function E(P){return P===null||P===60||P===61||P===62||P===96?n(P):P===34||P===39?(e.consume(P),l=P,_):He(P)?(e.consume(P),E):R(P)}function _(P){return P===l?(e.consume(P),l=null,F):P===null||ve(P)?n(P):(e.consume(P),_)}function R(P){return P===null||P===34||P===39||P===47||P===60||P===61||P===62||P===96||vn(P)?S(P):(e.consume(P),R)}function F(P){return P===47||P===62||He(P)?x(P):n(P)}function H(P){return P===62?(e.consume(P),O):n(P)}function O(P){return P===null||ve(P)?Z(P):He(P)?(e.consume(P),O):n(P)}function Z(P){return P===45&&i===2?(e.consume(P),pe):P===60&&i===1?(e.consume(P),ge):P===62&&i===4?(e.consume(P),Se):P===63&&i===3?(e.consume(P),M):P===93&&i===5?(e.consume(P),Re):ve(P)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(bQ,Te,ne)(P)):P===null||ve(P)?(e.exit("htmlFlowData"),ne(P)):(e.consume(P),Z)}function ne(P){return e.check(yQ,le,Te)(P)}function le(P){return e.enter("lineEnding"),e.consume(P),e.exit("lineEnding"),ie}function ie(P){return P===null||ve(P)?ne(P):(e.enter("htmlFlowData"),Z(P))}function pe(P){return P===45?(e.consume(P),M):Z(P)}function ge(P){return P===47?(e.consume(P),a="",Ee):Z(P)}function Ee(P){if(P===62){const ot=a.toLowerCase();return Xk.includes(ot)?(e.consume(P),Se):Z(P)}return Xr(P)&&a.length<8?(e.consume(P),a+=String.fromCharCode(P),Ee):Z(P)}function Re(P){return P===93?(e.consume(P),M):Z(P)}function M(P){return P===62?(e.consume(P),Se):P===45&&i===2?(e.consume(P),M):Z(P)}function Se(P){return P===null||ve(P)?(e.exit("htmlFlowData"),Te(P)):(e.consume(P),Se)}function Te(P){return e.exit("htmlFlow"),t(P)}}function xQ(e,t,n){const r=this;return i;function i(a){return ve(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o):n(a)}function o(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function AQ(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(np,t,n)}}const EQ={name:"htmlText",tokenize:SQ};function SQ(e,t,n){const r=this;let i,o,a;return s;function s(M){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(M),l}function l(M){return M===33?(e.consume(M),c):M===47?(e.consume(M),S):M===63?(e.consume(M),x):Xr(M)?(e.consume(M),R):n(M)}function c(M){return M===45?(e.consume(M),u):M===91?(e.consume(M),o=0,p):Xr(M)?(e.consume(M),v):n(M)}function u(M){return M===45?(e.consume(M),d):n(M)}function f(M){return M===null?n(M):M===45?(e.consume(M),h):ve(M)?(a=f,ge(M)):(e.consume(M),f)}function h(M){return M===45?(e.consume(M),d):f(M)}function d(M){return M===62?pe(M):M===45?h(M):f(M)}function p(M){const Se="CDATA[";return M===Se.charCodeAt(o++)?(e.consume(M),o===Se.length?g:p):n(M)}function g(M){return M===null?n(M):M===93?(e.consume(M),b):ve(M)?(a=g,ge(M)):(e.consume(M),g)}function b(M){return M===93?(e.consume(M),m):g(M)}function m(M){return M===62?pe(M):M===93?(e.consume(M),m):g(M)}function v(M){return M===null||M===62?pe(M):ve(M)?(a=v,ge(M)):(e.consume(M),v)}function x(M){return M===null?n(M):M===63?(e.consume(M),A):ve(M)?(a=x,ge(M)):(e.consume(M),x)}function A(M){return M===62?pe(M):x(M)}function S(M){return Xr(M)?(e.consume(M),E):n(M)}function E(M){return M===45||Pn(M)?(e.consume(M),E):_(M)}function _(M){return ve(M)?(a=_,ge(M)):He(M)?(e.consume(M),_):pe(M)}function R(M){return M===45||Pn(M)?(e.consume(M),R):M===47||M===62||vn(M)?F(M):n(M)}function F(M){return M===47?(e.consume(M),pe):M===58||M===95||Xr(M)?(e.consume(M),H):ve(M)?(a=F,ge(M)):He(M)?(e.consume(M),F):pe(M)}function H(M){return M===45||M===46||M===58||M===95||Pn(M)?(e.consume(M),H):O(M)}function O(M){return M===61?(e.consume(M),Z):ve(M)?(a=O,ge(M)):He(M)?(e.consume(M),O):F(M)}function Z(M){return M===null||M===60||M===61||M===62||M===96?n(M):M===34||M===39?(e.consume(M),i=M,ne):ve(M)?(a=Z,ge(M)):He(M)?(e.consume(M),Z):(e.consume(M),le)}function ne(M){return M===i?(e.consume(M),i=void 0,ie):M===null?n(M):ve(M)?(a=ne,ge(M)):(e.consume(M),ne)}function le(M){return M===null||M===34||M===39||M===60||M===61||M===96?n(M):M===47||M===62||vn(M)?F(M):(e.consume(M),le)}function ie(M){return M===47||M===62||vn(M)?F(M):n(M)}function pe(M){return M===62?(e.consume(M),e.exit("htmlTextData"),e.exit("htmlText"),t):n(M)}function ge(M){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(M),e.exit("lineEnding"),Ee}function Ee(M){return He(M)?nt(e,Re,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(M):Re(M)}function Re(M){return e.enter("htmlTextData"),a(M)}}const N2={name:"labelEnd",tokenize:RQ,resolveTo:IQ,resolveAll:TQ},_Q={tokenize:DQ},CQ={tokenize:BQ},kQ={tokenize:FQ};function TQ(e){let t=-1;for(;++t<e.length;){const n=e[t][1];(n.type==="labelImage"||n.type==="labelLink"||n.type==="labelEnd")&&(e.splice(t+1,n.type==="labelImage"?4:2),n.type="data",t++)}return e}function IQ(e,t){let n=e.length,r=0,i,o,a,s;for(;n--;)if(i=e[n][1],o){if(i.type==="link"||i.type==="labelLink"&&i._inactive)break;e[n][0]==="enter"&&i.type==="labelLink"&&(i._inactive=!0)}else if(a){if(e[n][0]==="enter"&&(i.type==="labelImage"||i.type==="labelLink")&&!i._balanced&&(o=n,i.type!=="labelLink")){r=2;break}}else i.type==="labelEnd"&&(a=n);const l={type:e[o][1].type==="labelLink"?"link":"image",start:Object.assign({},e[o][1].start),end:Object.assign({},e[e.length-1][1].end)},c={type:"label",start:Object.assign({},e[o][1].start),end:Object.assign({},e[a][1].end)},u={type:"labelText",start:Object.assign({},e[o+r+2][1].end),end:Object.assign({},e[a-2][1].start)};return s=[["enter",l,t],["enter",c,t]],s=sn(s,e.slice(o+1,o+r+3)),s=sn(s,[["enter",u,t]]),s=sn(s,P2(t.parser.constructs.insideSpan.null,e.slice(o+r+4,a-3),t)),s=sn(s,[["exit",u,t],e[a-2],e[a-1],["exit",c,t]]),s=sn(s,e.slice(a+1)),s=sn(s,[["exit",l,t]]),Oi(e,o,e.length,s),e}function RQ(e,t,n){const r=this;let i=r.events.length,o,a;for(;i--;)if((r.events[i][1].type==="labelImage"||r.events[i][1].type==="labelLink")&&!r.events[i][1]._balanced){o=r.events[i][1];break}return s;function s(h){return o?o._inactive?f(h):(a=r.parser.defined.includes(cf(r.sliceSerialize({start:o.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(h),e.exit("labelMarker"),e.exit("labelEnd"),l):n(h)}function l(h){return h===40?e.attempt(_Q,u,a?u:f)(h):h===91?e.attempt(CQ,u,a?c:f)(h):a?u(h):f(h)}function c(h){return e.attempt(kQ,u,f)(h)}function u(h){return t(h)}function f(h){return o._balanced=!0,n(h)}}function DQ(e,t,n){return r;function r(f){return e.enter("resource"),e.enter("resourceMarker"),e.consume(f),e.exit("resourceMarker"),i}function i(f){return vn(f)?ff(e,o)(f):o(f)}function o(f){return f===41?u(f):Yk(e,a,s,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(f)}function a(f){return vn(f)?ff(e,l)(f):u(f)}function s(f){return n(f)}function l(f){return f===34||f===39||f===40?Qk(e,c,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(f):u(f)}function c(f){return vn(f)?ff(e,u)(f):u(f)}function u(f){return f===41?(e.enter("resourceMarker"),e.consume(f),e.exit("resourceMarker"),e.exit("resource"),t):n(f)}}function BQ(e,t,n){const r=this;return i;function i(s){return Zk.call(r,e,o,a,"reference","referenceMarker","referenceString")(s)}function o(s){return r.parser.defined.includes(cf(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(s):n(s)}function a(s){return n(s)}}function FQ(e,t,n){return r;function r(o){return e.enter("reference"),e.enter("referenceMarker"),e.consume(o),e.exit("referenceMarker"),i}function i(o){return o===93?(e.enter("referenceMarker"),e.consume(o),e.exit("referenceMarker"),e.exit("reference"),t):n(o)}}const MQ={name:"labelStartImage",tokenize:PQ,resolveAll:N2.resolveAll};function PQ(e,t,n){const r=this;return i;function i(s){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(s),e.exit("labelImageMarker"),o}function o(s){return s===91?(e.enter("labelMarker"),e.consume(s),e.exit("labelMarker"),e.exit("labelImage"),a):n(s)}function a(s){return s===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(s):t(s)}}const OQ={name:"labelStartLink",tokenize:LQ,resolveAll:N2.resolveAll};function LQ(e,t,n){const r=this;return i;function i(a){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(a),e.exit("labelMarker"),e.exit("labelLink"),o}function o(a){return a===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(a):t(a)}}const z2={name:"lineEnding",tokenize:NQ};function NQ(e,t){return n;function n(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),nt(e,t,"linePrefix")}}const rp={name:"thematicBreak",tokenize:zQ};function zQ(e,t,n){let r=0,i;return o;function o(c){return e.enter("thematicBreak"),a(c)}function a(c){return i=c,s(c)}function s(c){return c===i?(e.enter("thematicBreakSequence"),l(c)):r>=3&&(c===null||ve(c))?(e.exit("thematicBreak"),t(c)):n(c)}function l(c){return c===i?(e.consume(c),r++,l):(e.exit("thematicBreakSequence"),He(c)?nt(e,s,"whitespace")(c):s(c))}}const xn={name:"list",tokenize:HQ,continuation:{tokenize:GQ},exit:jQ},UQ={tokenize:qQ,partial:!0},$Q={tokenize:VQ,partial:!0};function HQ(e,t,n){const r=this,i=r.events[r.events.length-1];let o=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,a=0;return s;function s(d){const p=r.containerState.type||(d===42||d===43||d===45?"listUnordered":"listOrdered");if(p==="listUnordered"?!r.containerState.marker||d===r.containerState.marker:M2(d)){if(r.containerState.type||(r.containerState.type=p,e.enter(p,{_container:!0})),p==="listUnordered")return e.enter("listItemPrefix"),d===42||d===45?e.check(rp,n,c)(d):c(d);if(!r.interrupt||d===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),l(d)}return n(d)}function l(d){return M2(d)&&++a<10?(e.consume(d),l):(!r.interrupt||a<2)&&(r.containerState.marker?d===r.containerState.marker:d===41||d===46)?(e.exit("listItemValue"),c(d)):n(d)}function c(d){return e.enter("listItemMarker"),e.consume(d),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||d,e.check(np,r.interrupt?n:u,e.attempt(UQ,h,f))}function u(d){return r.containerState.initialBlankLine=!0,o++,h(d)}function f(d){return He(d)?(e.enter("listItemPrefixWhitespace"),e.consume(d),e.exit("listItemPrefixWhitespace"),h):n(d)}function h(d){return r.containerState.size=o+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(d)}}function GQ(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(np,i,o);function i(s){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,nt(e,t,"listItemIndent",r.containerState.size+1)(s)}function o(s){return r.containerState.furtherBlankLines||!He(s)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(s)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt($Q,t,a)(s))}function a(s){return r.containerState._closeFlow=!0,r.interrupt=void 0,nt(e,e.attempt(xn,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(s)}}function VQ(e,t,n){const r=this;return nt(e,i,"listItemIndent",r.containerState.size+1);function i(o){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(o):n(o)}}function jQ(e){e.exit(this.containerState.type)}function qQ(e,t,n){const r=this;return nt(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(o){const a=r.events[r.events.length-1];return!He(o)&&a&&a[1].type==="listItemPrefixWhitespace"?t(o):n(o)}}const Kk={name:"setextUnderline",tokenize:YQ,resolveTo:WQ};function WQ(e,t){let n=e.length,r,i,o;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!o&&e[n][1].type==="definition"&&(o=n);const a={type:"setextHeading",start:Object.assign({},e[i][1].start),end:Object.assign({},e[e.length-1][1].end)};return e[i][1].type="setextHeadingText",o?(e.splice(i,0,["enter",a,t]),e.splice(o+1,0,["exit",e[r][1],t]),e[r][1].end=Object.assign({},e[o][1].end)):e[r][1]=a,e.push(["exit",a,t]),e}function YQ(e,t,n){const r=this;let i;return o;function o(c){let u=r.events.length,f;for(;u--;)if(r.events[u][1].type!=="lineEnding"&&r.events[u][1].type!=="linePrefix"&&r.events[u][1].type!=="content"){f=r.events[u][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||f)?(e.enter("setextHeadingLine"),i=c,a(c)):n(c)}function a(c){return e.enter("setextHeadingLineSequence"),s(c)}function s(c){return c===i?(e.consume(c),s):(e.exit("setextHeadingLineSequence"),He(c)?nt(e,l,"lineSuffix")(c):l(c))}function l(c){return c===null||ve(c)?(e.exit("setextHeadingLine"),t(c)):n(c)}}const ZQ={tokenize:QQ};function QQ(e){const t=this,n=e.attempt(np,r,e.attempt(this.parser.constructs.flowInitial,i,nt(e,e.attempt(this.parser.constructs.flow,i,e.attempt(tQ,i)),"linePrefix")));return n;function r(o){if(o===null){e.consume(o);return}return e.enter("lineEndingBlank"),e.consume(o),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const XQ={resolveAll:e6()},KQ=Jk("string"),JQ=Jk("text");function Jk(e){return{tokenize:t,resolveAll:e6(e==="text"?eX:void 0)};function t(n){const r=this,i=this.parser.constructs[e],o=n.attempt(i,a,s);return a;function a(u){return c(u)?o(u):s(u)}function s(u){if(u===null){n.consume(u);return}return n.enter("data"),n.consume(u),l}function l(u){return c(u)?(n.exit("data"),o(u)):(n.consume(u),l)}function c(u){if(u===null)return!0;const f=i[u];let h=-1;if(f)for(;++h<f.length;){const d=f[h];if(!d.previous||d.previous.call(r,r.previous))return!0}return!1}}}function e6(e){return t;function t(n,r){let i=-1,o;for(;++i<=n.length;)o===void 0?n[i]&&n[i][1].type==="data"&&(o=i,i++):(!n[i]||n[i][1].type!=="data")&&(i!==o+2&&(n[o][1].end=n[i-1][1].end,n.splice(o+2,i-o-2),i=o+2),o=void 0);return e?e(n,r):n}}function eX(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type==="lineEnding")&&e[n-1][1].type==="data"){const r=e[n-1][1],i=t.sliceStream(r);let o=i.length,a=-1,s=0,l;for(;o--;){const c=i[o];if(typeof c=="string"){for(a=c.length;c.charCodeAt(a-1)===32;)s++,a--;if(a)break;a=-1}else if(c===-2)l=!0,s++;else if(c!==-1){o++;break}}if(s){const c={type:n===e.length||l||s<2?"lineSuffix":"hardBreakTrailing",start:{line:r.end.line,column:r.end.column-s,offset:r.end.offset-s,_index:r.start._index+o,_bufferIndex:o?a:r.start._bufferIndex+a},end:Object.assign({},r.end)};r.end=Object.assign({},c.start),r.start.offset===r.end.offset?Object.assign(r,c):(e.splice(n,0,["enter",c,t],["exit",c,t]),n+=2)}n++}return e}function tX(e,t,n){let r=Object.assign(n?Object.assign({},n):{line:1,column:1,offset:0},{_index:0,_bufferIndex:-1});const i={},o=[];let a=[],s=[];const l={consume:v,enter:x,exit:A,attempt:_(S),check:_(E),interrupt:_(E,{interrupt:!0})},c={previous:null,code:null,containerState:{},events:[],parser:e,sliceStream:d,sliceSerialize:h,now:p,defineSkip:g,write:f};let u=t.tokenize.call(c,l);return t.resolveAll&&o.push(t),c;function f(O){return a=sn(a,O),b(),a[a.length-1]!==null?[]:(R(t,0),c.events=P2(o,c.events,c),c.events)}function h(O,Z){return rX(d(O),Z)}function d(O){return nX(a,O)}function p(){const{line:O,column:Z,offset:ne,_index:le,_bufferIndex:ie}=r;return{line:O,column:Z,offset:ne,_index:le,_bufferIndex:ie}}function g(O){i[O.line]=O.column,H()}function b(){let O;for(;r._index<a.length;){const Z=a[r._index];if(typeof Z=="string")for(O=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===O&&r._bufferIndex<Z.length;)m(Z.charCodeAt(r._bufferIndex));else m(Z)}}function m(O){u=u(O)}function v(O){ve(O)?(r.line++,r.column=1,r.offset+=O===-3?2:1,H()):O!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===a[r._index].length&&(r._bufferIndex=-1,r._index++)),c.previous=O}function x(O,Z){const ne=Z||{};return ne.type=O,ne.start=p(),c.events.push(["enter",ne,c]),s.push(ne),ne}function A(O){const Z=s.pop();return Z.end=p(),c.events.push(["exit",Z,c]),Z}function S(O,Z){R(O,Z.from)}function E(O,Z){Z.restore()}function _(O,Z){return ne;function ne(le,ie,pe){let ge,Ee,Re,M;return Array.isArray(le)?Te(le):"tokenize"in le?Te([le]):Se(le);function Se(z){return $;function $(X){const q=X!==null&&z[X],ee=X!==null&&z.null,I=[...Array.isArray(q)?q:q?[q]:[],...Array.isArray(ee)?ee:ee?[ee]:[]];return Te(I)(X)}}function Te(z){return ge=z,Ee=0,z.length===0?pe:P(z[Ee])}function P(z){return $;function $(X){return M=F(),Re=z,z.partial||(c.currentConstruct=z),z.name&&c.parser.constructs.disable.null.includes(z.name)?Me():z.tokenize.call(Z?Object.assign(Object.create(c),Z):c,l,ot,Me)(X)}}function ot(z){return O(Re,M),ie}function Me(z){return M.restore(),++Ee<ge.length?P(ge[Ee]):pe}}}function R(O,Z){O.resolveAll&&!o.includes(O)&&o.push(O),O.resolve&&Oi(c.events,Z,c.events.length-Z,O.resolve(c.events.slice(Z),c)),O.resolveTo&&(c.events=O.resolveTo(c.events,c))}function F(){const O=p(),Z=c.previous,ne=c.currentConstruct,le=c.events.length,ie=Array.from(s);return{restore:pe,from:le};function pe(){r=O,c.previous=Z,c.currentConstruct=ne,c.events.length=le,s=ie,H()}}function H(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function nX(e,t){const n=t.start._index,r=t.start._bufferIndex,i=t.end._index,o=t.end._bufferIndex;let a;if(n===i)a=[e[n].slice(r,o)];else{if(a=e.slice(n,i),r>-1){const s=a[0];typeof s=="string"?a[0]=s.slice(r):a.shift()}o>0&&a.push(e[i].slice(0,o))}return a}function rX(e,t){let n=-1;const r=[];let i;for(;++n<e.length;){const o=e[n];let a;if(typeof o=="string")a=o;else switch(o){case-5:{a="\r";break}case-4:{a=`
|
3441
|
+
*/const Bk=e=>!nq(e)&&typeof e.then=="function",Fk=1073741823,dZ=fa(class extends _k{constructor(){super(...arguments),this._$Cwt=Fk,this._$Cbt=[],this._$CK=new fZ(this),this._$CX=new hZ}render(...t){return t.find(n=>!Bk(n))??Gt}update(t,n){const r=this._$Cbt;let i=r.length;this._$Cbt=n;const o=this._$CK,a=this._$CX;this.isConnected||this.disconnected();for(let s=0;s<n.length&&!(s>this._$Cwt);s++){const l=n[s];if(!Bk(l))return this._$Cwt=s,l;s<i&&l===r[s]||(this._$Cwt=Fk,i=0,Promise.resolve(l).then(async c=>{for(;a.get();)await a.get();const u=o.deref();if(u!==void 0){const f=u._$Cbt.indexOf(l);f>-1&&f<u._$Cwt&&(u._$Cwt=f,u.setValue(c))}}))}return Gt}disconnected(){this._$CK.disconnect(),this._$CX.pause()}reconnected(){this._$CK.reconnect(this),this._$CX.resume()}}),Mk=document.createElement("i");function Pk(e){const t="&"+e+";";Mk.innerHTML=t;const n=Mk.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function Oi(e,t,n,r){const i=e.length;let o=0,a;if(t<0?t=-t>i?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);o<r.length;)a=r.slice(o,o+1e4),a.unshift(t,0),e.splice(...a),o+=1e4,t+=1e4}function sn(e,t){return e.length>0?(Oi(e,e.length,0,t),e):t}const B2={}.hasOwnProperty;function pZ(e){const t={};let n=-1;for(;++n<e.length;)gZ(t,e[n]);return t}function gZ(e,t){let n;for(n in t){const i=(B2.call(e,n)?e[n]:void 0)||(e[n]={}),o=t[n];let a;if(o)for(a in o){B2.call(i,a)||(i[a]=[]);const s=o[a];mZ(i[a],Array.isArray(s)?s:s?[s]:[])}}}function mZ(e,t){let n=-1;const r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);Oi(e,0,0,r)}function bZ(e){const t={};let n=-1;for(;++n<e.length;)yZ(t,e[n]);return t}function yZ(e,t){let n;for(n in t){const i=(B2.call(e,n)?e[n]:void 0)||(e[n]={}),o=t[n];let a;if(o)for(a in o)i[a]=o[a]}}function wZ(e,t){const n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}const vZ={'"':"quot","&":"amp","<":"lt",">":"gt"};function Ok(e){return e.replace(/["&<>]/g,t);function t(n){return"&"+vZ[n]+";"}}function cf(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Xr=Bo(/[A-Za-z]/),Pn=Bo(/[\dA-Za-z]/),xZ=Bo(/[#-'*+\--9=?A-Z^-~]/);function F2(e){return e!==null&&(e<32||e===127)}const M2=Bo(/\d/),AZ=Bo(/[\dA-Fa-f]/),EZ=Bo(/[!-/:-@[-`{-~]/);function ve(e){return e!==null&&e<-2}function vn(e){return e!==null&&(e<0||e===32)}function He(e){return e===-2||e===-1||e===32}const SZ=Bo(new RegExp("\\p{P}|\\p{S}","u")),_Z=Bo(/\s/);function Bo(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function tp(e,t){const n=Ok(CZ(e||""));if(!t)return n;const r=n.indexOf(":"),i=n.indexOf("?"),o=n.indexOf("#"),a=n.indexOf("/");return r<0||a>-1&&r>a||i>-1&&r>i||o>-1&&r>o||t.test(n.slice(0,r))?n:""}function CZ(e){const t=[];let n=-1,r=0,i=0;for(;++n<e.length;){const o=e.charCodeAt(n);let a="";if(o===37&&Pn(e.charCodeAt(n+1))&&Pn(e.charCodeAt(n+2)))i=2;else if(o<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(o))||(a=String.fromCharCode(o));else if(o>55295&&o<57344){const s=e.charCodeAt(n+1);o<56320&&s>56319&&s<57344?(a=String.fromCharCode(o,s),i=1):a="�"}else a=String.fromCharCode(o);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+i+1,a=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}const Lk={}.hasOwnProperty,Nk=/^(https?|ircs?|mailto|xmpp)$/i,kZ=/^https?$/i;function TZ(e){const t=e||{};let n=!0;const r={},i=[[]],o=[],a=[],l=bZ([{enter:{blockQuote:ie,codeFenced:Re,codeFencedFenceInfo:b,codeFencedFenceMeta:b,codeIndented:Te,codeText:Ze,content:fi,definition:K,definitionDestinationString:de,definitionLabelString:b,definitionTitleString:b,emphasis:ke,htmlFlow:N,htmlText:Y,image:ot,label:b,link:Me,listItemMarker:O,listItemValue:H,listOrdered:R,listUnordered:F,paragraph:ge,reference:b,resource:q,resourceDestinationString:ee,resourceTitleString:b,setextHeading:Ht,strong:et},exit:{atxHeading:di,atxHeadingSequence:hi,autolinkEmail:Qw,autolinkProtocol:cg,blockQuote:pe,characterEscapeValue:C,characterReferenceMarkerHexadecimal:sg,characterReferenceMarkerNumeric:sg,characterReferenceValue:lg,codeFenced:P,codeFencedFence:Se,codeFencedFenceInfo:M,codeFencedFenceMeta:_,codeFlowValue:w,codeIndented:P,codeText:at,codeTextData:C,data:C,definition:ui,definitionDestinationString:Ce,definitionLabelString:_e,definitionTitleString:cn,emphasis:Ue,hardBreakEscape:D,hardBreakTrailing:D,htmlFlow:G,htmlFlowData:C,htmlText:G,htmlTextData:C,image:W,label:$,labelText:z,lineEnding:y,link:W,listOrdered:Z,listUnordered:ne,paragraph:Ee,reference:_,referenceString:X,resource:_,resourceDestinationString:I,resourceTitleString:k,setextHeading:hr,setextHeadingLineSequence:un,setextHeadingText:Fr,strong:ag,thematicBreak:Zw}}].concat(t.htmlExtensions||[])),c={tightStack:a,definitions:r},u={lineEndingIfNeeded:S,options:t,encode:E,raw:x,tag:v,buffer:b,resume:m,setData:p,getData:g};let f=t.defaultLineEnding;return h;function h(te){let he=-1,Xt=0;const L=[];let st=[],kn=[];for(;++he<te.length;)!f&&(te[he][1].type==="lineEnding"||te[he][1].type==="lineEndingBlank")&&(f=te[he][2].sliceSerialize(te[he][1])),(te[he][1].type==="listOrdered"||te[he][1].type==="listUnordered")&&(te[he][0]==="enter"?L.push(he):d(te.slice(L.pop(),he))),te[he][1].type==="definition"&&(te[he][0]==="enter"?(kn=sn(kn,te.slice(Xt,he)),Xt=he):(st=sn(st,te.slice(Xt,he+1)),Xt=he+1));st=sn(st,kn),st=sn(st,te.slice(Xt)),he=-1;const At=st;for(l.enter.null&&l.enter.null.call(u);++he<te.length;){const vc=l[At[he][0]],me=At[he][1].type,_s=vc[me];Lk.call(vc,me)&&_s&&_s.call(Object.assign({sliceSerialize:At[he][2].sliceSerialize},u),At[he][1])}return l.exit.null&&l.exit.null.call(u),i[0].join("")}function d(te){const he=te.length;let Xt=0,L=0,st=!1,kn;for(;++Xt<he;){const At=te[Xt];if(At[1]._container)kn=void 0,At[0]==="enter"?L++:L--;else switch(At[1].type){case"listItemPrefix":{At[0]==="exit"&&(kn=!0);break}case"linePrefix":break;case"lineEndingBlank":{At[0]==="enter"&&!L&&(kn?kn=void 0:st=!0);break}default:kn=void 0}}te[0][1]._loose=st}function p(te,he){c[te]=he}function g(te){return c[te]}function b(){i.push([])}function m(){return i.pop().join("")}function v(te){n&&(p("lastWasTag",!0),i[i.length-1].push(te))}function x(te){p("lastWasTag"),i[i.length-1].push(te)}function A(){x(f||`
|
3442
|
+
`)}function S(){const te=i[i.length-1],he=te[te.length-1],Xt=he?he.charCodeAt(he.length-1):null;Xt===10||Xt===13||Xt===null||A()}function E(te){return g("ignoreEncode")?te:Ok(te)}function _(){m()}function R(te){a.push(!te._loose),S(),v("<ol"),p("expectFirstItem",!0)}function F(te){a.push(!te._loose),S(),v("<ul"),p("expectFirstItem",!0)}function H(te){if(g("expectFirstItem")){const he=Number.parseInt(this.sliceSerialize(te),10);he!==1&&v(' start="'+E(String(he))+'"')}}function O(){g("expectFirstItem")?v(">"):le(),S(),v("<li>"),p("expectFirstItem"),p("lastWasTag")}function Z(){le(),a.pop(),A(),v("</ol>")}function ne(){le(),a.pop(),A(),v("</ul>")}function le(){g("lastWasTag")&&!g("slurpAllLineEndings")&&S(),v("</li>"),p("slurpAllLineEndings")}function ie(){a.push(!1),S(),v("<blockquote>")}function pe(){a.pop(),S(),v("</blockquote>"),p("slurpAllLineEndings")}function ge(){a[a.length-1]||(S(),v("<p>")),p("slurpAllLineEndings")}function Ee(){a[a.length-1]?p("slurpAllLineEndings",!0):v("</p>")}function Re(){S(),v("<pre><code"),p("fencesCount",0)}function M(){const te=m();v(' class="language-'+te+'"')}function Se(){const te=g("fencesCount")||0;te||(v(">"),p("slurpOneLineEnding",!0)),p("fencesCount",te+1)}function Te(){S(),v("<pre><code>")}function P(){const te=g("fencesCount");te!==void 0&&te<2&&c.tightStack.length>0&&!g("lastWasTag")&&A(),g("flowCodeSeenData")&&S(),v("</code></pre>"),te!==void 0&&te<2&&S(),p("flowCodeSeenData"),p("fencesCount"),p("slurpOneLineEnding")}function ot(){o.push({image:!0}),n=void 0}function Me(){o.push({})}function z(te){o[o.length-1].labelId=this.sliceSerialize(te)}function $(){o[o.length-1].label=m()}function X(te){o[o.length-1].referenceId=this.sliceSerialize(te)}function q(){b(),o[o.length-1].destination=""}function ee(){b(),p("ignoreEncode",!0)}function I(){o[o.length-1].destination=m(),p("ignoreEncode")}function k(){o[o.length-1].title=m()}function W(){let te=o.length-1;const he=o[te],Xt=he.referenceId||he.labelId,L=he.destination===void 0?r[cf(Xt)]:he;for(n=!0;te--;)if(o[te].image){n=void 0;break}he.image?(v('<img src="'+tp(L.destination,t.allowDangerousProtocol?void 0:kZ)+'" alt="'),x(he.label),v('"')):v('<a href="'+tp(L.destination,t.allowDangerousProtocol?void 0:Nk)+'"'),v(L.title?' title="'+L.title+'"':""),he.image?v(" />"):(v(">"),x(he.label),v("</a>")),o.pop()}function K(){b(),o.push({})}function _e(te){m(),o[o.length-1].labelId=this.sliceSerialize(te)}function de(){b(),p("ignoreEncode",!0)}function Ce(){o[o.length-1].destination=m(),p("ignoreEncode")}function cn(){o[o.length-1].title=m()}function ui(){const te=o[o.length-1],he=cf(te.labelId);m(),Lk.call(r,he)||(r[he]=o[o.length-1]),o.pop()}function fi(){p("slurpAllLineEndings",!0)}function hi(te){g("headingRank")||(p("headingRank",this.sliceSerialize(te).length),S(),v("<h"+g("headingRank")+">"))}function Ht(){b(),p("slurpAllLineEndings")}function Fr(){p("slurpAllLineEndings",!0)}function di(){v("</h"+g("headingRank")+">"),p("headingRank")}function un(te){p("headingRank",this.sliceSerialize(te).charCodeAt(0)===61?1:2)}function hr(){const te=m();S(),v("<h"+g("headingRank")+">"),x(te),v("</h"+g("headingRank")+">"),p("slurpAllLineEndings"),p("headingRank")}function C(te){x(E(this.sliceSerialize(te)))}function y(te){if(!g("slurpAllLineEndings")){if(g("slurpOneLineEnding")){p("slurpOneLineEnding");return}if(g("inCodeText")){x(" ");return}x(E(this.sliceSerialize(te)))}}function w(te){x(E(this.sliceSerialize(te))),p("flowCodeSeenData",!0)}function D(){v("<br />")}function N(){S(),Y()}function G(){p("ignoreEncode")}function Y(){t.allowDangerousHtml&&p("ignoreEncode",!0)}function ke(){v("<em>")}function et(){v("<strong>")}function Ze(){p("inCodeText",!0),v("<code>")}function at(){p("inCodeText"),v("</code>")}function Ue(){v("</em>")}function ag(){v("</strong>")}function Zw(){S(),v("<hr />")}function sg(te){p("characterReferenceType",te.type)}function lg(te){let he=this.sliceSerialize(te);he=g("characterReferenceType")?wZ(he,g("characterReferenceType")==="characterReferenceMarkerNumeric"?10:16):Pk(he),x(E(he)),p("characterReferenceType")}function cg(te){const he=this.sliceSerialize(te);v('<a href="'+tp(he,t.allowDangerousProtocol?void 0:Nk)+'">'),x(E(he)),v("</a>")}function Qw(te){const he=this.sliceSerialize(te);v('<a href="'+tp("mailto:"+he)+'">'),x(E(he)),v("</a>")}}function nt(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let o=0;return a;function a(l){return He(l)?(e.enter(n),s(l)):t(l)}function s(l){return He(l)&&o++<i?(e.consume(l),s):(e.exit(n),t(l))}}const IZ={tokenize:RZ};function RZ(e){const t=e.attempt(this.parser.constructs.contentInitial,r,i);let n;return t;function r(s){if(s===null){e.consume(s);return}return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),nt(e,t,"linePrefix")}function i(s){return e.enter("paragraph"),o(s)}function o(s){const l=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=l),n=l,a(s)}function a(s){if(s===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(s);return}return ve(s)?(e.consume(s),e.exit("chunkText"),o):(e.consume(s),a)}}const DZ={tokenize:BZ},zk={tokenize:FZ};function BZ(e){const t=this,n=[];let r=0,i,o,a;return s;function s(x){if(r<n.length){const A=n[r];return t.containerState=A[1],e.attempt(A[0].continuation,l,c)(x)}return c(x)}function l(x){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&v();const A=t.events.length;let S=A,E;for(;S--;)if(t.events[S][0]==="exit"&&t.events[S][1].type==="chunkFlow"){E=t.events[S][1].end;break}m(r);let _=A;for(;_<t.events.length;)t.events[_][1].end=Object.assign({},E),_++;return Oi(t.events,S+1,0,t.events.slice(A)),t.events.length=_,c(x)}return s(x)}function c(x){if(r===n.length){if(!i)return h(x);if(i.currentConstruct&&i.currentConstruct.concrete)return p(x);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(zk,u,f)(x)}function u(x){return i&&v(),m(r),h(x)}function f(x){return t.parser.lazy[t.now().line]=r!==n.length,a=t.now().offset,p(x)}function h(x){return t.containerState={},e.attempt(zk,d,p)(x)}function d(x){return r++,n.push([t.currentConstruct,t.containerState]),h(x)}function p(x){if(x===null){i&&v(),m(0),e.consume(x);return}return i=i||t.parser.flow(t.now()),e.enter("chunkFlow",{contentType:"flow",previous:o,_tokenizer:i}),g(x)}function g(x){if(x===null){b(e.exit("chunkFlow"),!0),m(0),e.consume(x);return}return ve(x)?(e.consume(x),b(e.exit("chunkFlow")),r=0,t.interrupt=void 0,s):(e.consume(x),g)}function b(x,A){const S=t.sliceStream(x);if(A&&S.push(null),x.previous=o,o&&(o.next=x),o=x,i.defineSkip(x.start),i.write(S),t.parser.lazy[x.start.line]){let E=i.events.length;for(;E--;)if(i.events[E][1].start.offset<a&&(!i.events[E][1].end||i.events[E][1].end.offset>a))return;const _=t.events.length;let R=_,F,H;for(;R--;)if(t.events[R][0]==="exit"&&t.events[R][1].type==="chunkFlow"){if(F){H=t.events[R][1].end;break}F=!0}for(m(r),E=_;E<t.events.length;)t.events[E][1].end=Object.assign({},H),E++;Oi(t.events,R+1,0,t.events.slice(_)),t.events.length=E}}function m(x){let A=n.length;for(;A-- >x;){const S=n[A];t.containerState=S[1],S[0].exit.call(t,e)}n.length=x}function v(){i.write([null]),o=void 0,i=void 0,t.containerState._closeFlow=void 0}}function FZ(e,t,n){return nt(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Uk(e){if(e===null||vn(e)||_Z(e))return 1;if(SZ(e))return 2}function P2(e,t,n){const r=[];let i=-1;for(;++i<e.length;){const o=e[i].resolveAll;o&&!r.includes(o)&&(t=o(t,n),r.push(o))}return t}const O2={name:"attention",tokenize:PZ,resolveAll:MZ};function MZ(e,t){let n=-1,r,i,o,a,s,l,c,u;for(;++n<e.length;)if(e[n][0]==="enter"&&e[n][1].type==="attentionSequence"&&e[n][1]._close){for(r=n;r--;)if(e[r][0]==="exit"&&e[r][1].type==="attentionSequence"&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;l=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const f=Object.assign({},e[r][1].end),h=Object.assign({},e[n][1].start);$k(f,-l),$k(h,l),a={type:l>1?"strongSequence":"emphasisSequence",start:f,end:Object.assign({},e[r][1].end)},s={type:l>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[n][1].start),end:h},o={type:l>1?"strongText":"emphasisText",start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},i={type:l>1?"strong":"emphasis",start:Object.assign({},a.start),end:Object.assign({},s.end)},e[r][1].end=Object.assign({},a.start),e[n][1].start=Object.assign({},s.end),c=[],e[r][1].end.offset-e[r][1].start.offset&&(c=sn(c,[["enter",e[r][1],t],["exit",e[r][1],t]])),c=sn(c,[["enter",i,t],["enter",a,t],["exit",a,t],["enter",o,t]]),c=sn(c,P2(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),c=sn(c,[["exit",o,t],["enter",s,t],["exit",s,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(u=2,c=sn(c,[["enter",e[n][1],t],["exit",e[n][1],t]])):u=0,Oi(e,r-1,n-r+3,c),n=r+c.length-u-2;break}}for(n=-1;++n<e.length;)e[n][1].type==="attentionSequence"&&(e[n][1].type="data");return e}function PZ(e,t){const n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=Uk(r);let o;return a;function a(l){return o=l,e.enter("attentionSequence"),s(l)}function s(l){if(l===o)return e.consume(l),s;const c=e.exit("attentionSequence"),u=Uk(l),f=!u||u===2&&i||n.includes(l),h=!i||i===2&&u||n.includes(r);return c._open=!!(o===42?f:f&&(i||!h)),c._close=!!(o===42?h:h&&(u||!f)),t(l)}}function $k(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const OZ={name:"autolink",tokenize:LZ};function LZ(e,t,n){let r=0;return i;function i(d){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(d),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),o}function o(d){return Xr(d)?(e.consume(d),a):d===64?n(d):c(d)}function a(d){return d===43||d===45||d===46||Pn(d)?(r=1,s(d)):c(d)}function s(d){return d===58?(e.consume(d),r=0,l):(d===43||d===45||d===46||Pn(d))&&r++<32?(e.consume(d),s):(r=0,c(d))}function l(d){return d===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(d),e.exit("autolinkMarker"),e.exit("autolink"),t):d===null||d===32||d===60||F2(d)?n(d):(e.consume(d),l)}function c(d){return d===64?(e.consume(d),u):xZ(d)?(e.consume(d),c):n(d)}function u(d){return Pn(d)?f(d):n(d)}function f(d){return d===46?(e.consume(d),r=0,u):d===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(d),e.exit("autolinkMarker"),e.exit("autolink"),t):h(d)}function h(d){if((d===45||Pn(d))&&r++<63){const p=d===45?h:f;return e.consume(d),p}return n(d)}}const np={tokenize:NZ,partial:!0};function NZ(e,t,n){return r;function r(o){return He(o)?nt(e,i,"linePrefix")(o):i(o)}function i(o){return o===null||ve(o)?t(o):n(o)}}const Hk={name:"blockQuote",tokenize:zZ,continuation:{tokenize:UZ},exit:$Z};function zZ(e,t,n){const r=this;return i;function i(a){if(a===62){const s=r.containerState;return s.open||(e.enter("blockQuote",{_container:!0}),s.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(a),e.exit("blockQuoteMarker"),o}return n(a)}function o(a){return He(a)?(e.enter("blockQuotePrefixWhitespace"),e.consume(a),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(a))}}function UZ(e,t,n){const r=this;return i;function i(a){return He(a)?nt(e,o,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a):o(a)}function o(a){return e.attempt(Hk,t,n)(a)}}function $Z(e){e.exit("blockQuote")}const Gk={name:"characterEscape",tokenize:HZ};function HZ(e,t,n){return r;function r(o){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(o),e.exit("escapeMarker"),i}function i(o){return EZ(o)?(e.enter("characterEscapeValue"),e.consume(o),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(o)}}const Vk={name:"characterReference",tokenize:GZ};function GZ(e,t,n){const r=this;let i=0,o,a;return s;function s(f){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(f),e.exit("characterReferenceMarker"),l}function l(f){return f===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(f),e.exit("characterReferenceMarkerNumeric"),c):(e.enter("characterReferenceValue"),o=31,a=Pn,u(f))}function c(f){return f===88||f===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(f),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),o=6,a=AZ,u):(e.enter("characterReferenceValue"),o=7,a=M2,u(f))}function u(f){if(f===59&&i){const h=e.exit("characterReferenceValue");return a===Pn&&!Pk(r.sliceSerialize(h))?n(f):(e.enter("characterReferenceMarker"),e.consume(f),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return a(f)&&i++<o?(e.consume(f),u):n(f)}}const jk={tokenize:jZ,partial:!0},qk={name:"codeFenced",tokenize:VZ,concrete:!0};function VZ(e,t,n){const r=this,i={tokenize:S,partial:!0};let o=0,a=0,s;return l;function l(E){return c(E)}function c(E){const _=r.events[r.events.length-1];return o=_&&_[1].type==="linePrefix"?_[2].sliceSerialize(_[1],!0).length:0,s=E,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),u(E)}function u(E){return E===s?(a++,e.consume(E),u):a<3?n(E):(e.exit("codeFencedFenceSequence"),He(E)?nt(e,f,"whitespace")(E):f(E))}function f(E){return E===null||ve(E)?(e.exit("codeFencedFence"),r.interrupt?t(E):e.check(jk,g,A)(E)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),h(E))}function h(E){return E===null||ve(E)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),f(E)):He(E)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),nt(e,d,"whitespace")(E)):E===96&&E===s?n(E):(e.consume(E),h)}function d(E){return E===null||ve(E)?f(E):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),p(E))}function p(E){return E===null||ve(E)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),f(E)):E===96&&E===s?n(E):(e.consume(E),p)}function g(E){return e.attempt(i,A,b)(E)}function b(E){return e.enter("lineEnding"),e.consume(E),e.exit("lineEnding"),m}function m(E){return o>0&&He(E)?nt(e,v,"linePrefix",o+1)(E):v(E)}function v(E){return E===null||ve(E)?e.check(jk,g,A)(E):(e.enter("codeFlowValue"),x(E))}function x(E){return E===null||ve(E)?(e.exit("codeFlowValue"),v(E)):(e.consume(E),x)}function A(E){return e.exit("codeFenced"),t(E)}function S(E,_,R){let F=0;return H;function H(ie){return E.enter("lineEnding"),E.consume(ie),E.exit("lineEnding"),O}function O(ie){return E.enter("codeFencedFence"),He(ie)?nt(E,Z,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(ie):Z(ie)}function Z(ie){return ie===s?(E.enter("codeFencedFenceSequence"),ne(ie)):R(ie)}function ne(ie){return ie===s?(F++,E.consume(ie),ne):F>=a?(E.exit("codeFencedFenceSequence"),He(ie)?nt(E,le,"whitespace")(ie):le(ie)):R(ie)}function le(ie){return ie===null||ve(ie)?(E.exit("codeFencedFence"),_(ie)):R(ie)}}}function jZ(e,t,n){const r=this;return i;function i(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o)}function o(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const L2={name:"codeIndented",tokenize:WZ},qZ={tokenize:YZ,partial:!0};function WZ(e,t,n){const r=this;return i;function i(c){return e.enter("codeIndented"),nt(e,o,"linePrefix",5)(c)}function o(c){const u=r.events[r.events.length-1];return u&&u[1].type==="linePrefix"&&u[2].sliceSerialize(u[1],!0).length>=4?a(c):n(c)}function a(c){return c===null?l(c):ve(c)?e.attempt(qZ,a,l)(c):(e.enter("codeFlowValue"),s(c))}function s(c){return c===null||ve(c)?(e.exit("codeFlowValue"),a(c)):(e.consume(c),s)}function l(c){return e.exit("codeIndented"),t(c)}}function YZ(e,t,n){const r=this;return i;function i(a){return r.parser.lazy[r.now().line]?n(a):ve(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):nt(e,o,"linePrefix",5)(a)}function o(a){const s=r.events[r.events.length-1];return s&&s[1].type==="linePrefix"&&s[2].sliceSerialize(s[1],!0).length>=4?t(a):ve(a)?i(a):n(a)}}const ZZ={name:"codeText",tokenize:KZ,resolve:QZ,previous:XZ};function QZ(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r<t;)if(e[r][1].type==="codeTextData"){e[n][1].type="codeTextPadding",e[t][1].type="codeTextPadding",n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)i===void 0?r!==t&&e[r][1].type!=="lineEnding"&&(i=r):(r===t||e[r][1].type==="lineEnding")&&(e[i][1].type="codeTextData",r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),t-=r-i-2,r=i+2),i=void 0);return e}function XZ(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function KZ(e,t,n){let r=0,i,o;return a;function a(f){return e.enter("codeText"),e.enter("codeTextSequence"),s(f)}function s(f){return f===96?(e.consume(f),r++,s):(e.exit("codeTextSequence"),l(f))}function l(f){return f===null?n(f):f===32?(e.enter("space"),e.consume(f),e.exit("space"),l):f===96?(o=e.enter("codeTextSequence"),i=0,u(f)):ve(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),l):(e.enter("codeTextData"),c(f))}function c(f){return f===null||f===32||f===96||ve(f)?(e.exit("codeTextData"),l(f)):(e.consume(f),c)}function u(f){return f===96?(e.consume(f),i++,u):i===r?(e.exit("codeTextSequence"),e.exit("codeText"),t(f)):(o.type="codeTextData",c(f))}}class JZ{constructor(t){this.left=t?[...t]:[],this.right=[]}get(t){if(t<0||t>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return t<this.left.length?this.left[t]:this.right[this.right.length-t+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(t,n){const r=n??Number.POSITIVE_INFINITY;return r<this.left.length?this.left.slice(t,r):t>this.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const i=n||0;this.setCursor(Math.trunc(t));const o=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&uf(this.left,r),o.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),uf(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),uf(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t<this.left.length){const n=this.left.splice(t,Number.POSITIVE_INFINITY);uf(this.right,n.reverse())}else{const n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);uf(this.left,n.reverse())}}}function uf(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function Wk(e){const t={};let n=-1,r,i,o,a,s,l,c;const u=new JZ(e);for(;++n<u.length;){for(;n in t;)n=t[n];if(r=u.get(n),n&&r[1].type==="chunkFlow"&&u.get(n-1)[1].type==="listItemPrefix"&&(l=r[1]._tokenizer.events,o=0,o<l.length&&l[o][1].type==="lineEndingBlank"&&(o+=2),o<l.length&&l[o][1].type==="content"))for(;++o<l.length&&l[o][1].type!=="content";)l[o][1].type==="chunkText"&&(l[o][1]._isInFirstContentOfListItem=!0,o++);if(r[0]==="enter")r[1].contentType&&(Object.assign(t,eQ(u,n)),n=t[n],c=!0);else if(r[1]._container){for(o=n,i=void 0;o--&&(a=u.get(o),a[1].type==="lineEnding"||a[1].type==="lineEndingBlank");)a[0]==="enter"&&(i&&(u.get(i)[1].type="lineEndingBlank"),a[1].type="lineEnding",i=o);i&&(r[1].end=Object.assign({},u.get(i)[1].start),s=u.slice(i,n),s.unshift(r),u.splice(i,n-i+1,s))}}return Oi(e,0,Number.POSITIVE_INFINITY,u.slice(0)),!c}function eQ(e,t){const n=e.get(t)[1],r=e.get(t)[2];let i=t-1;const o=[],a=n._tokenizer||r.parser[n.contentType](n.start),s=a.events,l=[],c={};let u,f,h=-1,d=n,p=0,g=0;const b=[g];for(;d;){for(;e.get(++i)[1]!==d;);o.push(i),d._tokenizer||(u=r.sliceStream(d),d.next||u.push(null),f&&a.defineSkip(d.start),d._isInFirstContentOfListItem&&(a._gfmTasklistFirstContentOfListItem=!0),a.write(u),d._isInFirstContentOfListItem&&(a._gfmTasklistFirstContentOfListItem=void 0)),f=d,d=d.next}for(d=n;++h<s.length;)s[h][0]==="exit"&&s[h-1][0]==="enter"&&s[h][1].type===s[h-1][1].type&&s[h][1].start.line!==s[h][1].end.line&&(g=h+1,b.push(g),d._tokenizer=void 0,d.previous=void 0,d=d.next);for(a.events=[],d?(d._tokenizer=void 0,d.previous=void 0):b.pop(),h=b.length;h--;){const m=s.slice(b[h],b[h+1]),v=o.pop();l.push([v,v+m.length-1]),e.splice(v,2,m)}for(l.reverse(),h=-1;++h<l.length;)c[p+l[h][0]]=p+l[h][1],p+=l[h][1]-l[h][0]-1;return c}const tQ={tokenize:iQ,resolve:rQ},nQ={tokenize:oQ,partial:!0};function rQ(e){return Wk(e),e}function iQ(e,t){let n;return r;function r(s){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),i(s)}function i(s){return s===null?o(s):ve(s)?e.check(nQ,a,o)(s):(e.consume(s),i)}function o(s){return e.exit("chunkContent"),e.exit("content"),t(s)}function a(s){return e.consume(s),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,i}}function oQ(e,t,n){const r=this;return i;function i(a){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),nt(e,o,"linePrefix")}function o(a){if(a===null||ve(a))return n(a);const s=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&s&&s[1].type==="linePrefix"&&s[2].sliceSerialize(s[1],!0).length>=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function Yk(e,t,n,r,i,o,a,s,l){const c=l||Number.POSITIVE_INFINITY;let u=0;return f;function f(m){return m===60?(e.enter(r),e.enter(i),e.enter(o),e.consume(m),e.exit(o),h):m===null||m===32||m===41||F2(m)?n(m):(e.enter(r),e.enter(a),e.enter(s),e.enter("chunkString",{contentType:"string"}),g(m))}function h(m){return m===62?(e.enter(o),e.consume(m),e.exit(o),e.exit(i),e.exit(r),t):(e.enter(s),e.enter("chunkString",{contentType:"string"}),d(m))}function d(m){return m===62?(e.exit("chunkString"),e.exit(s),h(m)):m===null||m===60||ve(m)?n(m):(e.consume(m),m===92?p:d)}function p(m){return m===60||m===62||m===92?(e.consume(m),d):d(m)}function g(m){return!u&&(m===null||m===41||vn(m))?(e.exit("chunkString"),e.exit(s),e.exit(a),e.exit(r),t(m)):u<c&&m===40?(e.consume(m),u++,g):m===41?(e.consume(m),u--,g):m===null||m===32||m===40||F2(m)?n(m):(e.consume(m),m===92?b:g)}function b(m){return m===40||m===41||m===92?(e.consume(m),g):g(m)}}function Zk(e,t,n,r,i,o){const a=this;let s=0,l;return c;function c(d){return e.enter(r),e.enter(i),e.consume(d),e.exit(i),e.enter(o),u}function u(d){return s>999||d===null||d===91||d===93&&!l||d===94&&!s&&"_hiddenFootnoteSupport"in a.parser.constructs?n(d):d===93?(e.exit(o),e.enter(i),e.consume(d),e.exit(i),e.exit(r),t):ve(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),u):(e.enter("chunkString",{contentType:"string"}),f(d))}function f(d){return d===null||d===91||d===93||ve(d)||s++>999?(e.exit("chunkString"),u(d)):(e.consume(d),l||(l=!He(d)),d===92?h:f)}function h(d){return d===91||d===92||d===93?(e.consume(d),s++,f):f(d)}}function Qk(e,t,n,r,i,o){let a;return s;function s(h){return h===34||h===39||h===40?(e.enter(r),e.enter(i),e.consume(h),e.exit(i),a=h===40?41:h,l):n(h)}function l(h){return h===a?(e.enter(i),e.consume(h),e.exit(i),e.exit(r),t):(e.enter(o),c(h))}function c(h){return h===a?(e.exit(o),l(a)):h===null?n(h):ve(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),nt(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),u(h))}function u(h){return h===a||h===null||ve(h)?(e.exit("chunkString"),c(h)):(e.consume(h),h===92?f:u)}function f(h){return h===a||h===92?(e.consume(h),u):u(h)}}function ff(e,t){let n;return r;function r(i){return ve(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):He(i)?nt(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const aQ={name:"definition",tokenize:lQ},sQ={tokenize:cQ,partial:!0};function lQ(e,t,n){const r=this;let i;return o;function o(d){return e.enter("definition"),a(d)}function a(d){return Zk.call(r,e,s,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(d)}function s(d){return i=cf(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),d===58?(e.enter("definitionMarker"),e.consume(d),e.exit("definitionMarker"),l):n(d)}function l(d){return vn(d)?ff(e,c)(d):c(d)}function c(d){return Yk(e,u,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(d)}function u(d){return e.attempt(sQ,f,f)(d)}function f(d){return He(d)?nt(e,h,"whitespace")(d):h(d)}function h(d){return d===null||ve(d)?(e.exit("definition"),r.parser.defined.push(i),t(d)):n(d)}}function cQ(e,t,n){return r;function r(s){return vn(s)?ff(e,i)(s):n(s)}function i(s){return Qk(e,o,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(s)}function o(s){return He(s)?nt(e,a,"whitespace")(s):a(s)}function a(s){return s===null||ve(s)?t(s):n(s)}}const uQ={name:"hardBreakEscape",tokenize:fQ};function fQ(e,t,n){return r;function r(o){return e.enter("hardBreakEscape"),e.consume(o),i}function i(o){return ve(o)?(e.exit("hardBreakEscape"),t(o)):n(o)}}const hQ={name:"headingAtx",tokenize:pQ,resolve:dQ};function dQ(e,t){let n=e.length-2,r=3,i,o;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},o={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},Oi(e,r,n-r+1,[["enter",i,t],["enter",o,t],["exit",o,t],["exit",i,t]])),e}function pQ(e,t,n){let r=0;return i;function i(u){return e.enter("atxHeading"),o(u)}function o(u){return e.enter("atxHeadingSequence"),a(u)}function a(u){return u===35&&r++<6?(e.consume(u),a):u===null||vn(u)?(e.exit("atxHeadingSequence"),s(u)):n(u)}function s(u){return u===35?(e.enter("atxHeadingSequence"),l(u)):u===null||ve(u)?(e.exit("atxHeading"),t(u)):He(u)?nt(e,s,"whitespace")(u):(e.enter("atxHeadingText"),c(u))}function l(u){return u===35?(e.consume(u),l):(e.exit("atxHeadingSequence"),s(u))}function c(u){return u===null||u===35||vn(u)?(e.exit("atxHeadingText"),s(u)):(e.consume(u),c)}}const gQ=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Xk=["pre","script","style","textarea"],mQ={name:"htmlFlow",tokenize:vQ,resolveTo:wQ,concrete:!0},bQ={tokenize:AQ,partial:!0},yQ={tokenize:xQ,partial:!0};function wQ(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function vQ(e,t,n){const r=this;let i,o,a,s,l;return c;function c(P){return u(P)}function u(P){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(P),f}function f(P){return P===33?(e.consume(P),h):P===47?(e.consume(P),o=!0,g):P===63?(e.consume(P),i=3,r.interrupt?t:M):Xr(P)?(e.consume(P),a=String.fromCharCode(P),b):n(P)}function h(P){return P===45?(e.consume(P),i=2,d):P===91?(e.consume(P),i=5,s=0,p):Xr(P)?(e.consume(P),i=4,r.interrupt?t:M):n(P)}function d(P){return P===45?(e.consume(P),r.interrupt?t:M):n(P)}function p(P){const ot="CDATA[";return P===ot.charCodeAt(s++)?(e.consume(P),s===ot.length?r.interrupt?t:Z:p):n(P)}function g(P){return Xr(P)?(e.consume(P),a=String.fromCharCode(P),b):n(P)}function b(P){if(P===null||P===47||P===62||vn(P)){const ot=P===47,Me=a.toLowerCase();return!ot&&!o&&Xk.includes(Me)?(i=1,r.interrupt?t(P):Z(P)):gQ.includes(a.toLowerCase())?(i=6,ot?(e.consume(P),m):r.interrupt?t(P):Z(P)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(P):o?v(P):x(P))}return P===45||Pn(P)?(e.consume(P),a+=String.fromCharCode(P),b):n(P)}function m(P){return P===62?(e.consume(P),r.interrupt?t:Z):n(P)}function v(P){return He(P)?(e.consume(P),v):H(P)}function x(P){return P===47?(e.consume(P),H):P===58||P===95||Xr(P)?(e.consume(P),A):He(P)?(e.consume(P),x):H(P)}function A(P){return P===45||P===46||P===58||P===95||Pn(P)?(e.consume(P),A):S(P)}function S(P){return P===61?(e.consume(P),E):He(P)?(e.consume(P),S):x(P)}function E(P){return P===null||P===60||P===61||P===62||P===96?n(P):P===34||P===39?(e.consume(P),l=P,_):He(P)?(e.consume(P),E):R(P)}function _(P){return P===l?(e.consume(P),l=null,F):P===null||ve(P)?n(P):(e.consume(P),_)}function R(P){return P===null||P===34||P===39||P===47||P===60||P===61||P===62||P===96||vn(P)?S(P):(e.consume(P),R)}function F(P){return P===47||P===62||He(P)?x(P):n(P)}function H(P){return P===62?(e.consume(P),O):n(P)}function O(P){return P===null||ve(P)?Z(P):He(P)?(e.consume(P),O):n(P)}function Z(P){return P===45&&i===2?(e.consume(P),pe):P===60&&i===1?(e.consume(P),ge):P===62&&i===4?(e.consume(P),Se):P===63&&i===3?(e.consume(P),M):P===93&&i===5?(e.consume(P),Re):ve(P)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(bQ,Te,ne)(P)):P===null||ve(P)?(e.exit("htmlFlowData"),ne(P)):(e.consume(P),Z)}function ne(P){return e.check(yQ,le,Te)(P)}function le(P){return e.enter("lineEnding"),e.consume(P),e.exit("lineEnding"),ie}function ie(P){return P===null||ve(P)?ne(P):(e.enter("htmlFlowData"),Z(P))}function pe(P){return P===45?(e.consume(P),M):Z(P)}function ge(P){return P===47?(e.consume(P),a="",Ee):Z(P)}function Ee(P){if(P===62){const ot=a.toLowerCase();return Xk.includes(ot)?(e.consume(P),Se):Z(P)}return Xr(P)&&a.length<8?(e.consume(P),a+=String.fromCharCode(P),Ee):Z(P)}function Re(P){return P===93?(e.consume(P),M):Z(P)}function M(P){return P===62?(e.consume(P),Se):P===45&&i===2?(e.consume(P),M):Z(P)}function Se(P){return P===null||ve(P)?(e.exit("htmlFlowData"),Te(P)):(e.consume(P),Se)}function Te(P){return e.exit("htmlFlow"),t(P)}}function xQ(e,t,n){const r=this;return i;function i(a){return ve(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o):n(a)}function o(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function AQ(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(np,t,n)}}const EQ={name:"htmlText",tokenize:SQ};function SQ(e,t,n){const r=this;let i,o,a;return s;function s(M){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(M),l}function l(M){return M===33?(e.consume(M),c):M===47?(e.consume(M),S):M===63?(e.consume(M),x):Xr(M)?(e.consume(M),R):n(M)}function c(M){return M===45?(e.consume(M),u):M===91?(e.consume(M),o=0,p):Xr(M)?(e.consume(M),v):n(M)}function u(M){return M===45?(e.consume(M),d):n(M)}function f(M){return M===null?n(M):M===45?(e.consume(M),h):ve(M)?(a=f,ge(M)):(e.consume(M),f)}function h(M){return M===45?(e.consume(M),d):f(M)}function d(M){return M===62?pe(M):M===45?h(M):f(M)}function p(M){const Se="CDATA[";return M===Se.charCodeAt(o++)?(e.consume(M),o===Se.length?g:p):n(M)}function g(M){return M===null?n(M):M===93?(e.consume(M),b):ve(M)?(a=g,ge(M)):(e.consume(M),g)}function b(M){return M===93?(e.consume(M),m):g(M)}function m(M){return M===62?pe(M):M===93?(e.consume(M),m):g(M)}function v(M){return M===null||M===62?pe(M):ve(M)?(a=v,ge(M)):(e.consume(M),v)}function x(M){return M===null?n(M):M===63?(e.consume(M),A):ve(M)?(a=x,ge(M)):(e.consume(M),x)}function A(M){return M===62?pe(M):x(M)}function S(M){return Xr(M)?(e.consume(M),E):n(M)}function E(M){return M===45||Pn(M)?(e.consume(M),E):_(M)}function _(M){return ve(M)?(a=_,ge(M)):He(M)?(e.consume(M),_):pe(M)}function R(M){return M===45||Pn(M)?(e.consume(M),R):M===47||M===62||vn(M)?F(M):n(M)}function F(M){return M===47?(e.consume(M),pe):M===58||M===95||Xr(M)?(e.consume(M),H):ve(M)?(a=F,ge(M)):He(M)?(e.consume(M),F):pe(M)}function H(M){return M===45||M===46||M===58||M===95||Pn(M)?(e.consume(M),H):O(M)}function O(M){return M===61?(e.consume(M),Z):ve(M)?(a=O,ge(M)):He(M)?(e.consume(M),O):F(M)}function Z(M){return M===null||M===60||M===61||M===62||M===96?n(M):M===34||M===39?(e.consume(M),i=M,ne):ve(M)?(a=Z,ge(M)):He(M)?(e.consume(M),Z):(e.consume(M),le)}function ne(M){return M===i?(e.consume(M),i=void 0,ie):M===null?n(M):ve(M)?(a=ne,ge(M)):(e.consume(M),ne)}function le(M){return M===null||M===34||M===39||M===60||M===61||M===96?n(M):M===47||M===62||vn(M)?F(M):(e.consume(M),le)}function ie(M){return M===47||M===62||vn(M)?F(M):n(M)}function pe(M){return M===62?(e.consume(M),e.exit("htmlTextData"),e.exit("htmlText"),t):n(M)}function ge(M){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(M),e.exit("lineEnding"),Ee}function Ee(M){return He(M)?nt(e,Re,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(M):Re(M)}function Re(M){return e.enter("htmlTextData"),a(M)}}const N2={name:"labelEnd",tokenize:RQ,resolveTo:IQ,resolveAll:TQ},_Q={tokenize:DQ},CQ={tokenize:BQ},kQ={tokenize:FQ};function TQ(e){let t=-1;for(;++t<e.length;){const n=e[t][1];(n.type==="labelImage"||n.type==="labelLink"||n.type==="labelEnd")&&(e.splice(t+1,n.type==="labelImage"?4:2),n.type="data",t++)}return e}function IQ(e,t){let n=e.length,r=0,i,o,a,s;for(;n--;)if(i=e[n][1],o){if(i.type==="link"||i.type==="labelLink"&&i._inactive)break;e[n][0]==="enter"&&i.type==="labelLink"&&(i._inactive=!0)}else if(a){if(e[n][0]==="enter"&&(i.type==="labelImage"||i.type==="labelLink")&&!i._balanced&&(o=n,i.type!=="labelLink")){r=2;break}}else i.type==="labelEnd"&&(a=n);const l={type:e[o][1].type==="labelLink"?"link":"image",start:Object.assign({},e[o][1].start),end:Object.assign({},e[e.length-1][1].end)},c={type:"label",start:Object.assign({},e[o][1].start),end:Object.assign({},e[a][1].end)},u={type:"labelText",start:Object.assign({},e[o+r+2][1].end),end:Object.assign({},e[a-2][1].start)};return s=[["enter",l,t],["enter",c,t]],s=sn(s,e.slice(o+1,o+r+3)),s=sn(s,[["enter",u,t]]),s=sn(s,P2(t.parser.constructs.insideSpan.null,e.slice(o+r+4,a-3),t)),s=sn(s,[["exit",u,t],e[a-2],e[a-1],["exit",c,t]]),s=sn(s,e.slice(a+1)),s=sn(s,[["exit",l,t]]),Oi(e,o,e.length,s),e}function RQ(e,t,n){const r=this;let i=r.events.length,o,a;for(;i--;)if((r.events[i][1].type==="labelImage"||r.events[i][1].type==="labelLink")&&!r.events[i][1]._balanced){o=r.events[i][1];break}return s;function s(h){return o?o._inactive?f(h):(a=r.parser.defined.includes(cf(r.sliceSerialize({start:o.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(h),e.exit("labelMarker"),e.exit("labelEnd"),l):n(h)}function l(h){return h===40?e.attempt(_Q,u,a?u:f)(h):h===91?e.attempt(CQ,u,a?c:f)(h):a?u(h):f(h)}function c(h){return e.attempt(kQ,u,f)(h)}function u(h){return t(h)}function f(h){return o._balanced=!0,n(h)}}function DQ(e,t,n){return r;function r(f){return e.enter("resource"),e.enter("resourceMarker"),e.consume(f),e.exit("resourceMarker"),i}function i(f){return vn(f)?ff(e,o)(f):o(f)}function o(f){return f===41?u(f):Yk(e,a,s,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(f)}function a(f){return vn(f)?ff(e,l)(f):u(f)}function s(f){return n(f)}function l(f){return f===34||f===39||f===40?Qk(e,c,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(f):u(f)}function c(f){return vn(f)?ff(e,u)(f):u(f)}function u(f){return f===41?(e.enter("resourceMarker"),e.consume(f),e.exit("resourceMarker"),e.exit("resource"),t):n(f)}}function BQ(e,t,n){const r=this;return i;function i(s){return Zk.call(r,e,o,a,"reference","referenceMarker","referenceString")(s)}function o(s){return r.parser.defined.includes(cf(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(s):n(s)}function a(s){return n(s)}}function FQ(e,t,n){return r;function r(o){return e.enter("reference"),e.enter("referenceMarker"),e.consume(o),e.exit("referenceMarker"),i}function i(o){return o===93?(e.enter("referenceMarker"),e.consume(o),e.exit("referenceMarker"),e.exit("reference"),t):n(o)}}const MQ={name:"labelStartImage",tokenize:PQ,resolveAll:N2.resolveAll};function PQ(e,t,n){const r=this;return i;function i(s){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(s),e.exit("labelImageMarker"),o}function o(s){return s===91?(e.enter("labelMarker"),e.consume(s),e.exit("labelMarker"),e.exit("labelImage"),a):n(s)}function a(s){return s===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(s):t(s)}}const OQ={name:"labelStartLink",tokenize:LQ,resolveAll:N2.resolveAll};function LQ(e,t,n){const r=this;return i;function i(a){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(a),e.exit("labelMarker"),e.exit("labelLink"),o}function o(a){return a===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(a):t(a)}}const z2={name:"lineEnding",tokenize:NQ};function NQ(e,t){return n;function n(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),nt(e,t,"linePrefix")}}const rp={name:"thematicBreak",tokenize:zQ};function zQ(e,t,n){let r=0,i;return o;function o(c){return e.enter("thematicBreak"),a(c)}function a(c){return i=c,s(c)}function s(c){return c===i?(e.enter("thematicBreakSequence"),l(c)):r>=3&&(c===null||ve(c))?(e.exit("thematicBreak"),t(c)):n(c)}function l(c){return c===i?(e.consume(c),r++,l):(e.exit("thematicBreakSequence"),He(c)?nt(e,s,"whitespace")(c):s(c))}}const xn={name:"list",tokenize:HQ,continuation:{tokenize:GQ},exit:jQ},UQ={tokenize:qQ,partial:!0},$Q={tokenize:VQ,partial:!0};function HQ(e,t,n){const r=this,i=r.events[r.events.length-1];let o=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,a=0;return s;function s(d){const p=r.containerState.type||(d===42||d===43||d===45?"listUnordered":"listOrdered");if(p==="listUnordered"?!r.containerState.marker||d===r.containerState.marker:M2(d)){if(r.containerState.type||(r.containerState.type=p,e.enter(p,{_container:!0})),p==="listUnordered")return e.enter("listItemPrefix"),d===42||d===45?e.check(rp,n,c)(d):c(d);if(!r.interrupt||d===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),l(d)}return n(d)}function l(d){return M2(d)&&++a<10?(e.consume(d),l):(!r.interrupt||a<2)&&(r.containerState.marker?d===r.containerState.marker:d===41||d===46)?(e.exit("listItemValue"),c(d)):n(d)}function c(d){return e.enter("listItemMarker"),e.consume(d),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||d,e.check(np,r.interrupt?n:u,e.attempt(UQ,h,f))}function u(d){return r.containerState.initialBlankLine=!0,o++,h(d)}function f(d){return He(d)?(e.enter("listItemPrefixWhitespace"),e.consume(d),e.exit("listItemPrefixWhitespace"),h):n(d)}function h(d){return r.containerState.size=o+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(d)}}function GQ(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(np,i,o);function i(s){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,nt(e,t,"listItemIndent",r.containerState.size+1)(s)}function o(s){return r.containerState.furtherBlankLines||!He(s)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(s)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt($Q,t,a)(s))}function a(s){return r.containerState._closeFlow=!0,r.interrupt=void 0,nt(e,e.attempt(xn,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(s)}}function VQ(e,t,n){const r=this;return nt(e,i,"listItemIndent",r.containerState.size+1);function i(o){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(o):n(o)}}function jQ(e){e.exit(this.containerState.type)}function qQ(e,t,n){const r=this;return nt(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(o){const a=r.events[r.events.length-1];return!He(o)&&a&&a[1].type==="listItemPrefixWhitespace"?t(o):n(o)}}const Kk={name:"setextUnderline",tokenize:YQ,resolveTo:WQ};function WQ(e,t){let n=e.length,r,i,o;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!o&&e[n][1].type==="definition"&&(o=n);const a={type:"setextHeading",start:Object.assign({},e[i][1].start),end:Object.assign({},e[e.length-1][1].end)};return e[i][1].type="setextHeadingText",o?(e.splice(i,0,["enter",a,t]),e.splice(o+1,0,["exit",e[r][1],t]),e[r][1].end=Object.assign({},e[o][1].end)):e[r][1]=a,e.push(["exit",a,t]),e}function YQ(e,t,n){const r=this;let i;return o;function o(c){let u=r.events.length,f;for(;u--;)if(r.events[u][1].type!=="lineEnding"&&r.events[u][1].type!=="linePrefix"&&r.events[u][1].type!=="content"){f=r.events[u][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||f)?(e.enter("setextHeadingLine"),i=c,a(c)):n(c)}function a(c){return e.enter("setextHeadingLineSequence"),s(c)}function s(c){return c===i?(e.consume(c),s):(e.exit("setextHeadingLineSequence"),He(c)?nt(e,l,"lineSuffix")(c):l(c))}function l(c){return c===null||ve(c)?(e.exit("setextHeadingLine"),t(c)):n(c)}}const ZQ={tokenize:QQ};function QQ(e){const t=this,n=e.attempt(np,r,e.attempt(this.parser.constructs.flowInitial,i,nt(e,e.attempt(this.parser.constructs.flow,i,e.attempt(tQ,i)),"linePrefix")));return n;function r(o){if(o===null){e.consume(o);return}return e.enter("lineEndingBlank"),e.consume(o),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const XQ={resolveAll:e6()},KQ=Jk("string"),JQ=Jk("text");function Jk(e){return{tokenize:t,resolveAll:e6(e==="text"?eX:void 0)};function t(n){const r=this,i=this.parser.constructs[e],o=n.attempt(i,a,s);return a;function a(u){return c(u)?o(u):s(u)}function s(u){if(u===null){n.consume(u);return}return n.enter("data"),n.consume(u),l}function l(u){return c(u)?(n.exit("data"),o(u)):(n.consume(u),l)}function c(u){if(u===null)return!0;const f=i[u];let h=-1;if(f)for(;++h<f.length;){const d=f[h];if(!d.previous||d.previous.call(r,r.previous))return!0}return!1}}}function e6(e){return t;function t(n,r){let i=-1,o;for(;++i<=n.length;)o===void 0?n[i]&&n[i][1].type==="data"&&(o=i,i++):(!n[i]||n[i][1].type!=="data")&&(i!==o+2&&(n[o][1].end=n[i-1][1].end,n.splice(o+2,i-o-2),i=o+2),o=void 0);return e?e(n,r):n}}function eX(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type==="lineEnding")&&e[n-1][1].type==="data"){const r=e[n-1][1],i=t.sliceStream(r);let o=i.length,a=-1,s=0,l;for(;o--;){const c=i[o];if(typeof c=="string"){for(a=c.length;c.charCodeAt(a-1)===32;)s++,a--;if(a)break;a=-1}else if(c===-2)l=!0,s++;else if(c!==-1){o++;break}}if(s){const c={type:n===e.length||l||s<2?"lineSuffix":"hardBreakTrailing",start:{line:r.end.line,column:r.end.column-s,offset:r.end.offset-s,_index:r.start._index+o,_bufferIndex:o?a:r.start._bufferIndex+a},end:Object.assign({},r.end)};r.end=Object.assign({},c.start),r.start.offset===r.end.offset?Object.assign(r,c):(e.splice(n,0,["enter",c,t],["exit",c,t]),n+=2)}n++}return e}function tX(e,t,n){let r=Object.assign(n?Object.assign({},n):{line:1,column:1,offset:0},{_index:0,_bufferIndex:-1});const i={},o=[];let a=[],s=[];const l={consume:v,enter:x,exit:A,attempt:_(S),check:_(E),interrupt:_(E,{interrupt:!0})},c={previous:null,code:null,containerState:{},events:[],parser:e,sliceStream:d,sliceSerialize:h,now:p,defineSkip:g,write:f};let u=t.tokenize.call(c,l);return t.resolveAll&&o.push(t),c;function f(O){return a=sn(a,O),b(),a[a.length-1]!==null?[]:(R(t,0),c.events=P2(o,c.events,c),c.events)}function h(O,Z){return rX(d(O),Z)}function d(O){return nX(a,O)}function p(){const{line:O,column:Z,offset:ne,_index:le,_bufferIndex:ie}=r;return{line:O,column:Z,offset:ne,_index:le,_bufferIndex:ie}}function g(O){i[O.line]=O.column,H()}function b(){let O;for(;r._index<a.length;){const Z=a[r._index];if(typeof Z=="string")for(O=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===O&&r._bufferIndex<Z.length;)m(Z.charCodeAt(r._bufferIndex));else m(Z)}}function m(O){u=u(O)}function v(O){ve(O)?(r.line++,r.column=1,r.offset+=O===-3?2:1,H()):O!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===a[r._index].length&&(r._bufferIndex=-1,r._index++)),c.previous=O}function x(O,Z){const ne=Z||{};return ne.type=O,ne.start=p(),c.events.push(["enter",ne,c]),s.push(ne),ne}function A(O){const Z=s.pop();return Z.end=p(),c.events.push(["exit",Z,c]),Z}function S(O,Z){R(O,Z.from)}function E(O,Z){Z.restore()}function _(O,Z){return ne;function ne(le,ie,pe){let ge,Ee,Re,M;return Array.isArray(le)?Te(le):"tokenize"in le?Te([le]):Se(le);function Se(z){return $;function $(X){const q=X!==null&&z[X],ee=X!==null&&z.null,I=[...Array.isArray(q)?q:q?[q]:[],...Array.isArray(ee)?ee:ee?[ee]:[]];return Te(I)(X)}}function Te(z){return ge=z,Ee=0,z.length===0?pe:P(z[Ee])}function P(z){return $;function $(X){return M=F(),Re=z,z.partial||(c.currentConstruct=z),z.name&&c.parser.constructs.disable.null.includes(z.name)?Me():z.tokenize.call(Z?Object.assign(Object.create(c),Z):c,l,ot,Me)(X)}}function ot(z){return O(Re,M),ie}function Me(z){return M.restore(),++Ee<ge.length?P(ge[Ee]):pe}}}function R(O,Z){O.resolveAll&&!o.includes(O)&&o.push(O),O.resolve&&Oi(c.events,Z,c.events.length-Z,O.resolve(c.events.slice(Z),c)),O.resolveTo&&(c.events=O.resolveTo(c.events,c))}function F(){const O=p(),Z=c.previous,ne=c.currentConstruct,le=c.events.length,ie=Array.from(s);return{restore:pe,from:le};function pe(){r=O,c.previous=Z,c.currentConstruct=ne,c.events.length=le,s=ie,H()}}function H(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function nX(e,t){const n=t.start._index,r=t.start._bufferIndex,i=t.end._index,o=t.end._bufferIndex;let a;if(n===i)a=[e[n].slice(r,o)];else{if(a=e.slice(n,i),r>-1){const s=a[0];typeof s=="string"?a[0]=s.slice(r):a.shift()}o>0&&a.push(e[i].slice(0,o))}return a}function rX(e,t){let n=-1;const r=[];let i;for(;++n<e.length;){const o=e[n];let a;if(typeof o=="string")a=o;else switch(o){case-5:{a="\r";break}case-4:{a=`
|
3443
3443
|
`;break}case-3:{a=`\r
|
3444
3444
|
`;break}case-2:{a=t?" ":" ";break}case-1:{if(!t&&i)continue;a=" ";break}default:a=String.fromCharCode(o)}i=o===-2,r.push(a)}return r.join("")}const iX=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:{null:[42,95]},contentInitial:{91:aQ},disable:{null:[]},document:{42:xn,43:xn,45:xn,48:xn,49:xn,50:xn,51:xn,52:xn,53:xn,54:xn,55:xn,56:xn,57:xn,62:Hk},flow:{35:hQ,42:rp,45:[Kk,rp],60:mQ,61:Kk,95:rp,96:qk,126:qk},flowInitial:{[-2]:L2,[-1]:L2,32:L2},insideSpan:{null:[O2,XQ]},string:{38:Vk,92:Gk},text:{[-5]:z2,[-4]:z2,[-3]:z2,33:MQ,38:Vk,42:O2,60:[OZ,EQ],91:OQ,92:[uQ,Gk],93:N2,95:O2,96:ZZ}},Symbol.toStringTag,{value:"Module"}));function oX(e){const n=pZ([iX,...(e||{}).extensions||[]]),r={defined:[],lazy:{},constructs:n,content:i(IZ),document:i(DZ),flow:i(ZQ),string:i(KQ),text:i(JQ)};return r;function i(o){return a;function a(s){return tX(r,o,s)}}}function aX(e){for(;!Wk(e););return e}const t6=/[\0\t\n\r]/g;function sX(){let e=1,t="",n=!0,r;return i;function i(o,a,s){const l=[];let c,u,f,h,d;for(o=t+(typeof o=="string"?o.toString():new TextDecoder(a||void 0).decode(o)),f=0,t="",n&&(o.charCodeAt(0)===65279&&f++,n=void 0);f<o.length;){if(t6.lastIndex=f,c=t6.exec(o),h=c&&c.index!==void 0?c.index:o.length,d=o.charCodeAt(h),!c){t=o.slice(f);break}if(d===10&&f===h&&r)l.push(-3),r=void 0;else switch(r&&(l.push(-5),r=void 0),f<h&&(l.push(o.slice(f,h)),e+=h-f),d){case 0:{l.push(65533),e++;break}case 9:{for(u=Math.ceil(e/4)*4,l.push(-2);e++<u;)l.push(-1);break}case 10:{l.push(-4),e=1;break}default:r=!0,e=1}f=h+1}return s&&(r&&l.push(-5),t&&l.push(t),l.push(null)),l}}function lX(e,t,n){return typeof t!="string"&&(n=t,t=void 0),TZ(n)(aX(oX(n).document().write(sX()(e,t,!0))))}function cX(e,t={}){const n=lX(e),r=new DOMParser().parseFromString(`<!DOCTYPE html><html><body><div>${n}</div></body></html>`,"text/html");r.normalize(),n6(r.body);for(const o of r.querySelectorAll("a[href]"))o.setAttribute("target","blank"),o.setAttribute("rel","noopener noreferrer"),o.setAttribute("href",Da(o.getAttribute("href"),t.baseUrl));for(const o of r.querySelectorAll("img[src]"))o.setAttribute("src",Da(o.getAttribute("src"),t.baseUrl));const i=r.body.removeChild(r.querySelector("body > div"));return i.className="markdown",i}function n6(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--;)n6(e.childNodes[t])}}function r6(e){e.stopPropagation(),e.preventDefault();const n=e.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 ip=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function op(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function uX(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}),n}var U2={exports:{}};U2.exports,function(e){var t=function(){var n=String.fromCharCode,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",o={};function a(l,c){if(!o[l]){o[l]={};for(var u=0;u<l.length;u++)o[l][l.charAt(u)]=u}return o[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 a(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 a(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="",b="",m="",v=2,x=3,A=2,S=[],E=0,_=0,R;for(R=0;R<l.length;R+=1)if(g=l.charAt(R),Object.prototype.hasOwnProperty.call(d,g)||(d[g]=x++,p[g]=!0),b=m+g,Object.prototype.hasOwnProperty.call(d,b))m=b;else{if(Object.prototype.hasOwnProperty.call(p,m)){if(m.charCodeAt(0)<256){for(f=0;f<A;f++)E=E<<1,_==c-1?(_=0,S.push(u(E)),E=0):_++;for(h=m.charCodeAt(0),f=0;f<8;f++)E=E<<1|h&1,_==c-1?(_=0,S.push(u(E)),E=0):_++,h=h>>1}else{for(h=1,f=0;f<A;f++)E=E<<1|h,_==c-1?(_=0,S.push(u(E)),E=0):_++,h=0;for(h=m.charCodeAt(0),f=0;f<16;f++)E=E<<1|h&1,_==c-1?(_=0,S.push(u(E)),E=0):_++,h=h>>1}v--,v==0&&(v=Math.pow(2,A),A++),delete p[m]}else for(h=d[m],f=0;f<A;f++)E=E<<1|h&1,_==c-1?(_=0,S.push(u(E)),E=0):_++,h=h>>1;v--,v==0&&(v=Math.pow(2,A),A++),d[b]=x++,m=String(g)}if(m!==""){if(Object.prototype.hasOwnProperty.call(p,m)){if(m.charCodeAt(0)<256){for(f=0;f<A;f++)E=E<<1,_==c-1?(_=0,S.push(u(E)),E=0):_++;for(h=m.charCodeAt(0),f=0;f<8;f++)E=E<<1|h&1,_==c-1?(_=0,S.push(u(E)),E=0):_++,h=h>>1}else{for(h=1,f=0;f<A;f++)E=E<<1|h,_==c-1?(_=0,S.push(u(E)),E=0):_++,h=0;for(h=m.charCodeAt(0),f=0;f<16;f++)E=E<<1|h&1,_==c-1?(_=0,S.push(u(E)),E=0):_++,h=h>>1}v--,v==0&&(v=Math.pow(2,A),A++),delete p[m]}else for(h=d[m],f=0;f<A;f++)E=E<<1|h&1,_==c-1?(_=0,S.push(u(E)),E=0):_++,h=h>>1;v--,v==0&&(v=Math.pow(2,A),A++)}for(h=2,f=0;f<A;f++)E=E<<1|h&1,_==c-1?(_=0,S.push(u(E)),E=0):_++,h=h>>1;for(;;)if(E=E<<1,_==c-1){S.push(u(E));break}else _++;return S.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="",b=[],m,v,x,A,S,E,_,R={val:u(0),position:c,index:1};for(m=0;m<3;m+=1)f[m]=m;for(x=0,S=Math.pow(2,2),E=1;E!=S;)A=R.val&R.position,R.position>>=1,R.position==0&&(R.position=c,R.val=u(R.index++)),x|=(A>0?1:0)*E,E<<=1;switch(x){case 0:for(x=0,S=Math.pow(2,8),E=1;E!=S;)A=R.val&R.position,R.position>>=1,R.position==0&&(R.position=c,R.val=u(R.index++)),x|=(A>0?1:0)*E,E<<=1;_=n(x);break;case 1:for(x=0,S=Math.pow(2,16),E=1;E!=S;)A=R.val&R.position,R.position>>=1,R.position==0&&(R.position=c,R.val=u(R.index++)),x|=(A>0?1:0)*E,E<<=1;_=n(x);break;case 2:return""}for(f[3]=_,v=_,b.push(_);;){if(R.index>l)return"";for(x=0,S=Math.pow(2,p),E=1;E!=S;)A=R.val&R.position,R.position>>=1,R.position==0&&(R.position=c,R.val=u(R.index++)),x|=(A>0?1:0)*E,E<<=1;switch(_=x){case 0:for(x=0,S=Math.pow(2,8),E=1;E!=S;)A=R.val&R.position,R.position>>=1,R.position==0&&(R.position=c,R.val=u(R.index++)),x|=(A>0?1:0)*E,E<<=1;f[d++]=n(x),_=d-1,h--;break;case 1:for(x=0,S=Math.pow(2,16),E=1;E!=S;)A=R.val&R.position,R.position>>=1,R.position==0&&(R.position=c,R.val=u(R.index++)),x|=(A>0?1:0)*E,E<<=1;f[d++]=n(x),_=d-1,h--;break;case 2:return b.join("")}if(h==0&&(h=Math.pow(2,p),p++),f[_])g=f[_];else if(_===d)g=v+v.charAt(0);else return null;b.push(g),f[d++]=v+g.charAt(0),h--,v=g,h==0&&(h=Math.pow(2,p),p++)}}};return s}();e!=null?e.exports=t:typeof angular<"u"&&angular!=null&&angular.module("LZString",[]).factory("LZString",function(){return t})}(U2);var i6=U2.exports;function fX(){const e=typeof process<"u"?require("util").TextEncoder:TextEncoder;return new e}let o6;function hX(){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 dX(e){o6??(o6=hX());let t=-1;const n=fX().encode(e);for(let r=0;r<n.length;r++)t=t>>>8^o6[(t^n[r])&255];return(t^-1)>>>0}function a6(e){return("00000000"+dX(e).toString(16)).slice(-8)}function s6(e){const t=i6.compressToEncodedURIComponent(JSON.stringify(e));return"#"+t+a6(t)}function pX(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(a6(t)!==n)throw new Error("The state string in the URL is corrupted.");return JSON.parse(i6.decompressFromEncodedURIComponent(t))}let Ya;function gX(e){for(const t of e.genomeSpy.getNamedScaleResolutions().values())t.isZoomable()&&t.resetZoom();e.storeHelper.dispatch([...e.provenance.isUndoable()?[qa.jumpToPast(0)]:[],ml.actions.restoreDefaultVisibilities()])}async function $2(e,t){try{e.actions&&t.provenance.dispatchBookmark(e.actions),t.storeHelper.dispatch(ml.actions.setViewSettings(e.viewSettings));const n=[];for(const[r,i]of Object.entries(e.scaleDomains??{})){const o=t.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),jt(U`<p>Cannot restore the state:</p>
|
3445
3445
|
<p>${n}</p>`),t.provenance.activateState(0)}}async function hf(e,t,n={}){await $2(e,t),(Ya||e.notes||n.mode=="shared"&&(e.name||e.notes))&&await mX(e,t,n)}async function mX(e,t,n={}){Ya??(Ya=Co("tour",t.appContainer)),await bX(e,t,n)}async function bX(e,t,n){const r=n.database,i=r?await r.getNames():[],o=i.indexOf(e.name),a=r?` ${o+1} of ${i.length}`:"",s=`${n.mode=="shared"?"Shared bookmark":"Bookmark"}${a}: ${e.name??"Unnamed"}`,l=e.notes?cX(e.notes,{baseUrl:t.genomeSpy.spec.baseUrl}):U`<span class="no-notes">No notes provided</span>`,c=async()=>{if(Ya==null||Ya.close(),Ya=void 0,n.mode=="tour"){const g=n.afterTourBookmark;if(typeof g=="string"){const b=await n.database.get(g);if(!b)throw new Error(`No such bookmark: ${g}`);$2(b,t)}else g===null||gX(t)}},u=async g=>{const b=await r.get(i[g]);hf(b,t,n),t.appContainer.querySelector("canvas").focus()},f=async()=>{if(await H2(t.localBookmarkDatabase,e,"add"))try{await t.localBookmarkDatabase.put(e)}catch(g){console.warn(g),jt(`Cannot import bookmark: ${g}`)}},h=U` <button class="btn" @click=${c}>
|
@@ -3734,25 +3734,25 @@ ${JSON.stringify(f.stats.first,null,2)}</pre
|
|
3734
3734
|
`:ye}
|
3735
3735
|
${this._getToolButtons()}
|
3736
3736
|
</nav>
|
3737
|
-
`}}customElements.define("genome-spy-toolbar",vX);class xX{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=o=>Object.keys(this._reducers).some(a=>
|
3737
|
+
`}}customElements.define("genome-spy-toolbar",vX);class xX{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=o=>Object.keys(this._reducers).some(a=>Xe(a)&&o.type.startsWith(a)),i=(o,a)=>r(a)?a:o??null;this._reducer=UW(Hb({...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()?[qa.jumpToPast(0)]:[],...t])}isRedoable(){return this.isEnabled()&&this._provenanceState.future.length>0}redo(){this.storeHelper.dispatch(qa.redo())}isUndoable(){return this.isEnabled()&&this._provenanceState.past.length>0}undo(){this.storeHelper.dispatch(qa.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(qa.jumpToPast(t)):t>n&&this.storeHelper.dispatch(qa.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 AX(e,t,n=r=>+r){const r=e.length,i=new Nu,o=new Array(r).fill(0);for(const[s,l]of e.entries())l.length&&i.push(s,n(l[0]));let a=0;for(;(a=i.pop())!==void 0;){const s=e[a];let l=o[a];const c=s[l++];if(t(c),l<s.length){const u=n(s[l]);i.push(a,u),o[a]=l}}}const EX="sampleCount";class SX extends Eu{constructor(n,r){super();J(this,Br);J(this,_h,!0);J(this,Ch);this.view=r;const i=r.context.animator;if(this.provenance=_X(r),!this.provenance)throw new Error("No SampleView was found!");this.provenance.storeHelper.subscribe(o=>{B(this,Br,Av)&&(B(this,_h)&&(se(this,_h,!1),this.reset(),this.complete()),i.requestTransition(()=>{this.reset(),this.complete()}))})}get label(){return"MergeSampleFacets"}initialize(){se(this,Ch,this.paramMediator.allocateSetter(EX,0,!0));const n=this.view.getEncoding().x;if(Wr(n))this.xAccessor=je(n.field);else throw new Error("Sample summarization requires a FieldDef. This is not a FieldDef: "+JSON.stringify(n))}handle(n){}get paramMediator(){return this.view.paramMediator}complete(){B(this,Br,Av)?(Q(this,Br,m9).call(this,this.provenance.getPresentState()[fl]),super.complete(),Q(this,Br,b9).call(this)):super.complete()}beginBatch(n,r){if(r)for(const i of this.children)i.beginBatch(n)}setParent(n){super.setParent(n)}}_h=new WeakMap,Ch=new WeakMap,Br=new WeakSet,Av=function(){return this.view.isConfiguredVisible()},g9=function(){if(this.parent instanceof Lu)return this.parent;throw new Error("MergeFacetsTransform must be a direct child of a Collector")},m9=function(n){const r=[...r2(n.rootGroup)].filter(i=>OC(Gn(i)));for(const[i,o]of r.entries()){const a=Gn(o);if(OC(a)){this.beginBatch({type:"facet",facetId:[i]},!0),B(this,Ch).call(this,a.samples.length);const s=a.samples,l=Q(this,Br,g9).call(this);AX(s.map(c=>l.facetBatches.get([c])??[]),c=>this._propagate(c),this.xAccessor)}}},b9=function(){const n=new Set;this.view.visit(r=>{if(r instanceof Tt&&r.mark.encoding.y){const i=r.getScaleResolution("y");i&&n.add(i)}});for(const r of n)r.reconfigure()};function _X(e){for(const t of e.getLayoutAncestors())if(t instanceof A2)return t.provenance}var CX="BATCHING_REDUCER.BATCH";function kX(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:CX;return{type:t,meta:{batch:!0},payload:e}}function TX(e){return function t(n,r){return r&&r.meta&&r.meta.batch?r.payload.reduce(t,n):e(n,r)}}class IX{constructor(t){this._reducers=t??{},this.store=Zq({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(TX(Hb(this._reducers)))}subscribe(t){this._listeners.add(t)}unsubscribe(t){this._listeners.delete(t)}dispatch(t){Array.isArray(t)?this.store.dispatch(kX(t)):this.store.dispatch(t)}getDispatcher(){return t=>this.dispatch(t)}}class RX extends Ek{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)}}JS.mergeFacets=SX;class u6{constructor(t,n,r={}){const i=this;this.rootSpec=n,this.options=r,r.showInspectorButton??(r.showInspectorButton=!0),r.inputBindingContainer="none",this.storeHelper=new IX,this.storeHelper.addReducer("viewSettings",ml.reducer),this.provenance=new xX(this.storeHelper),this._initializationListeners=[],this.toolbarRef=J0(),this.appContainer=t,this._configureContainer(),this.localBookmarkDatabase=typeof n.specId=="string"?new XY(n.specId):void 0,this.globalBookmarkDatabase=void 0,Et(U`<div class="genome-spy-app">
|
3738
3738
|
<genome-spy-toolbar
|
3739
3739
|
${ep(i.toolbarRef)}
|
3740
3740
|
.app=${i}
|
3741
3741
|
></genome-spy-toolbar>
|
3742
3742
|
<div class="genome-spy-container"></div>
|
3743
3743
|
</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 O4(o("genome-spy-container"),this.rootSpec,r),this.genomeSpy.viewFactory.addViewType(M4,(s,l,c,u,f)=>new A2(s,l,c,u,f,this.provenance));const a=this.genomeSpy.viewVisibilityPredicate;this.genomeSpy.viewVisibilityPredicate=s=>{var l;return((l=this.storeHelper.state.viewSettings)==null?void 0:l.visibilities[s.name])??a(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 a;const t=(a=this.rootSpec.bookmarks)!=null&&a.remote?yB({baseURL:this.rootSpec.baseUrl}).load(this.rootSpec.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(X0(s=>{var l;return(l=s.viewSettings)==null?void 0:l.visibilities},(s,l)=>{this.genomeSpy.viewRoot._invalidateCacheByPrefix("size","progeny");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 RX(s))}catch(s){throw new Error(`Cannot load remote bookmarks: ${s}`)}try{await this._restoreStateFromUrlOrBookmark()}catch(s){jt(s.toString())}this.storeHelper.subscribe(()=>{this._updateStateToUrl()}),window.addEventListener("hashchange",()=>this._restoreStateFromUrl().catch(s=>jt(s.toString())),!1);const r=Ma(()=>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=tn(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 t=(i=this.rootSpec.bookmarks)==null?void 0:i.remote,n=this.globalBookmarkDatabase;if(!await this._restoreStateFromUrl()&&t&&n){const o=t.initialBookmark??(t.tour&&(await n.getNames())[0]);if(o){const a=await n.get(o);if(!a)throw new Error(`No such bookmark: ${o}`);t.tour?await hf(a,this,{mode:"tour",database:n,afterTourBookmark:t.afterTourBookmark}):await $2(a,this)}}}_updateStateToUrl(){const t={actions:[],scaleDomains:{}},n=this.provenance.getBookmarkableActionHistory();n!=null&&n.length&&(t.actions=n);for(const[o,a]of this.genomeSpy.getNamedScaleResolutions().entries())a.isZoomed()||(t.scaleDomains[o]=a.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?s6(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 o=(i=this.rootSpec.bookmarks)==null?void 0:i.remote,a=this.globalBookmarkDatabase;if(o&&a){const s=(await a.getNames()).find(l=>l.replaceAll(" ","-")==n);if(s){const l=await a.get(s);if(!l)throw new Error(`No such bookmark: ${s}`);return await hf(l,this,{mode:"tour",database:a}),!0}else throw new Error(`No such bookmark: ${n}`)}}if(t&&t.length>0)try{const o=pX(t);return hf(o,this,{mode:"shared"}),!0}catch(o){console.error(o),jt(U`<p>Cannot restore the state:</p>
|
3744
|
-
<p>${o}</p>`)}return!1}_configureContainer(){this.isFullPage()?(this.appContainer.style.margin="0",this.appContainer.style.padding="0",this.appContainer.style.overflow="hidden",DX(HG)):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 A2)return t=r,Ba}),t}}function DX(e){const t=document.querySelector("head"),n=document.createElement("link");n.setAttribute("rel","shortcut icon"),n.setAttribute("href",e),t.appendChild(n)}async function BX(e,t,n={}){let r;if(
|
3744
|
+
<p>${o}</p>`)}return!1}_configureContainer(){this.isFullPage()?(this.appContainer.style.margin="0",this.appContainer.style.padding="0",this.appContainer.style.overflow="hidden",DX(HG)):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 A2)return t=r,Ba}),t}}function DX(e){const t=document.querySelector("head"),n=document.createElement("link");n.setAttribute("rel","shortcut icon"),n.setAttribute("href",e),t.appendChild(n)}async function BX(e,t,n={}){let r;if(Xe(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 o=en(t)?t:await GG(t);o.baseUrl??(o.baseUrl=""),o.width??(o.width="container"),o.padding??(o.padding=10),n={powerPreference:"high-performance",...n};const a=new u6(r,o,n);i=a.genomeSpy,FX(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 l=s.get(o);l||(l=new Set,s.set(o,l)),l.add(a)},removeEventListener(o,a){var l;(l=i._eventListeners.get(o))==null||l.delete(a)},getScaleResolutionByName(o){return i.getNamedScaleResolutions().get(o)},updateNamedData:i.updateNamedData.bind(i)}}function FX(e,t){t.namedDataProvider&&e.registerNamedDataProvider(t.namedDataProvider)}var Ne={},ap={};ap.byteLength=OX,ap.toByteArray=NX,ap.fromByteArray=$X;for(var Kr=[],Kn=[],MX=typeof Uint8Array<"u"?Uint8Array:Array,G2="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bl=0,PX=G2.length;bl<PX;++bl)Kr[bl]=G2[bl],Kn[G2.charCodeAt(bl)]=bl;Kn[45]=62,Kn[95]=63;function f6(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 OX(e){var t=f6(e),n=t[0],r=t[1];return(n+r)*3/4-r}function LX(e,t,n){return(t+n)*3/4-n}function NX(e){var t,n=f6(e),r=n[0],i=n[1],o=new MX(LX(e,r,i)),a=0,s=i>0?r-4:r,l;for(l=0;l<s;l+=4)t=Kn[e.charCodeAt(l)]<<18|Kn[e.charCodeAt(l+1)]<<12|Kn[e.charCodeAt(l+2)]<<6|Kn[e.charCodeAt(l+3)],o[a++]=t>>16&255,o[a++]=t>>8&255,o[a++]=t&255;return i===2&&(t=Kn[e.charCodeAt(l)]<<2|Kn[e.charCodeAt(l+1)]>>4,o[a++]=t&255),i===1&&(t=Kn[e.charCodeAt(l)]<<10|Kn[e.charCodeAt(l+1)]<<4|Kn[e.charCodeAt(l+2)]>>2,o[a++]=t>>8&255,o[a++]=t&255),o}function zX(e){return Kr[e>>18&63]+Kr[e>>12&63]+Kr[e>>6&63]+Kr[e&63]}function UX(e,t,n){for(var r,i=[],o=t;o<n;o+=3)r=(e[o]<<16&16711680)+(e[o+1]<<8&65280)+(e[o+2]&255),i.push(zX(r));return i.join("")}function $X(e){for(var t,n=e.length,r=n%3,i=[],o=16383,a=0,s=n-r;a<s;a+=o)i.push(UX(e,a,a+o>s?s:a+o));return r===1?(t=e[n-1],i.push(Kr[t>>2]+Kr[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(Kr[t>>10]+Kr[t>>4&63]+Kr[t<<2&63]+"=")),i.join("")}var V2={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */V2.read=function(e,t,n,r,i){var o,a,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,o=d&(1<<-u)-1,d>>=-u,u+=s;u>0;o=o*256+e[t+f],f+=h,u-=8);for(a=o&(1<<-u)-1,o>>=-u,u+=r;u>0;a=a*256+e[t+f],f+=h,u-=8);if(o===0)o=1-c;else{if(o===l)return a?NaN:(d?-1:1)*(1/0);a=a+Math.pow(2,r),o=o-c}return(d?-1:1)*a*Math.pow(2,o-r)},V2.write=function(e,t,n,r,i,o){var a,s,l,c=o*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:o-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,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-a))<1&&(a--,l*=2),a+f>=1?t+=h/l:t+=h*Math.pow(2,1-f),t*l>=2&&(a++,l/=2),a+f>=u?(s=0,a=u):a+f>=1?(s=(t*l-1)*Math.pow(2,i),a=a+f):(s=t*Math.pow(2,f-1)*Math.pow(2,i),a=0));i>=8;e[n+d]=s&255,d+=p,s/=256,i-=8);for(a=a<<i|s,c+=i;c>0;e[n+d]=a&255,d+=p,a/=256,c-=8);e[n+d-p]|=g*128};/*!
|
3745
3745
|
* The buffer module from node.js, for the browser.
|
3746
3746
|
*
|
3747
3747
|
* @author Feross Aboukhadijeh <https://feross.org>
|
3748
3748
|
* @license MIT
|
3749
|
-
*/(function(e){const t=ap,n=V2,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=s,e.SlowBuffer=v,e.INSPECT_MAX_BYTES=50;const i=2147483647;e.kMaxLength=i,s.TYPED_ARRAY_SUPPORT=o(),!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 o(){try{const C=new Uint8Array(1),y={foo:function(){return 42}};return Object.setPrototypeOf(y,Uint8Array.prototype),Object.setPrototypeOf(C,y),C.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 a(C){if(C>i)throw new RangeError('The value "'+C+'" is invalid for option "size"');const y=new Uint8Array(C);return Object.setPrototypeOf(y,s.prototype),y}function s(C,y,w){if(typeof C=="number"){if(typeof y=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return f(C)}return l(C,y,w)}s.poolSize=8192;function l(C,y,w){if(typeof C=="string")return h(C,y);if(ArrayBuffer.isView(C))return p(C);if(C==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof C);if(Ht(C,ArrayBuffer)||C&&Ht(C.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Ht(C,SharedArrayBuffer)||C&&Ht(C.buffer,SharedArrayBuffer)))return g(C,y,w);if(typeof C=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const D=C.valueOf&&C.valueOf();if(D!=null&&D!==C)return s.from(D,y,w);const N=b(C);if(N)return N;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof C[Symbol.toPrimitive]=="function")return s.from(C[Symbol.toPrimitive]("string"),y,w);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof C)}s.from=function(C,y,w){return l(C,y,w)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function c(C){if(typeof C!="number")throw new TypeError('"size" argument must be of type number');if(C<0)throw new RangeError('The value "'+C+'" is invalid for option "size"')}function u(C,y,w){return c(C),C<=0?a(C):y!==void 0?typeof w=="string"?a(C).fill(y,w):a(C).fill(y):a(C)}s.alloc=function(C,y,w){return u(C,y,w)};function f(C){return c(C),a(C<0?0:m(C)|0)}s.allocUnsafe=function(C){return f(C)},s.allocUnsafeSlow=function(C){return f(C)};function h(C,y){if((typeof y!="string"||y==="")&&(y="utf8"),!s.isEncoding(y))throw new TypeError("Unknown encoding: "+y);const w=x(C,y)|0;let D=a(w);const N=D.write(C,y);return N!==w&&(D=D.slice(0,N)),D}function d(C){const y=C.length<0?0:m(C.length)|0,w=a(y);for(let D=0;D<y;D+=1)w[D]=C[D]&255;return w}function p(C){if(Ht(C,Uint8Array)){const y=new Uint8Array(C);return g(y.buffer,y.byteOffset,y.byteLength)}return d(C)}function g(C,y,w){if(y<0||C.byteLength<y)throw new RangeError('"offset" is outside of buffer bounds');if(C.byteLength<y+(w||0))throw new RangeError('"length" is outside of buffer bounds');let D;return y===void 0&&w===void 0?D=new Uint8Array(C):w===void 0?D=new Uint8Array(C,y):D=new Uint8Array(C,y,w),Object.setPrototypeOf(D,s.prototype),D}function b(C){if(s.isBuffer(C)){const y=m(C.length)|0,w=a(y);return w.length===0||C.copy(w,0,0,y),w}if(C.length!==void 0)return typeof C.length!="number"||Fr(C.length)?a(0):d(C);if(C.type==="Buffer"&&Array.isArray(C.data))return d(C.data)}function m(C){if(C>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return C|0}function v(C){return+C!=C&&(C=0),s.alloc(+C)}s.isBuffer=function(y){return y!=null&&y._isBuffer===!0&&y!==s.prototype},s.compare=function(y,w){if(Ht(y,Uint8Array)&&(y=s.from(y,y.offset,y.byteLength)),Ht(w,Uint8Array)&&(w=s.from(w,w.offset,w.byteLength)),!s.isBuffer(y)||!s.isBuffer(w))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(y===w)return 0;let D=y.length,N=w.length;for(let G=0,Y=Math.min(D,N);G<Y;++G)if(y[G]!==w[G]){D=y[G],N=w[G];break}return D<N?-1:N<D?1:0},s.isEncoding=function(y){switch(String(y).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(y,w){if(!Array.isArray(y))throw new TypeError('"list" argument must be an Array of Buffers');if(y.length===0)return s.alloc(0);let D;if(w===void 0)for(w=0,D=0;D<y.length;++D)w+=y[D].length;const N=s.allocUnsafe(w);let G=0;for(D=0;D<y.length;++D){let Y=y[D];if(Ht(Y,Uint8Array))G+Y.length>N.length?(s.isBuffer(Y)||(Y=s.from(Y)),Y.copy(N,G)):Uint8Array.prototype.set.call(N,Y,G);else if(s.isBuffer(Y))Y.copy(N,G);else throw new TypeError('"list" argument must be an Array of Buffers');G+=Y.length}return N};function x(C,y){if(s.isBuffer(C))return C.length;if(ArrayBuffer.isView(C)||Ht(C,ArrayBuffer))return C.byteLength;if(typeof C!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof C);const w=C.length,D=arguments.length>2&&arguments[2]===!0;if(!D&&w===0)return 0;let N=!1;for(;;)switch(y){case"ascii":case"latin1":case"binary":return w;case"utf8":case"utf-8":return Ce(C).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return w*2;case"hex":return w>>>1;case"base64":return fi(C).length;default:if(N)return D?-1:Ce(C).length;y=(""+y).toLowerCase(),N=!0}}s.byteLength=x;function A(C,y,w){let D=!1;if((y===void 0||y<0)&&(y=0),y>this.length||((w===void 0||w>this.length)&&(w=this.length),w<=0)||(w>>>=0,y>>>=0,w<=y))return"";for(C||(C="utf8");;)switch(C){case"hex":return Re(this,y,w);case"utf8":case"utf-8":return le(this,y,w);case"ascii":return ge(this,y,w);case"latin1":case"binary":return Ee(this,y,w);case"base64":return ne(this,y,w);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,y,w);default:if(D)throw new TypeError("Unknown encoding: "+C);C=(C+"").toLowerCase(),D=!0}}s.prototype._isBuffer=!0;function S(C,y,w){const D=C[y];C[y]=C[w],C[w]=D}s.prototype.swap16=function(){const y=this.length;if(y%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let w=0;w<y;w+=2)S(this,w,w+1);return this},s.prototype.swap32=function(){const y=this.length;if(y%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let w=0;w<y;w+=4)S(this,w,w+3),S(this,w+1,w+2);return this},s.prototype.swap64=function(){const y=this.length;if(y%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let w=0;w<y;w+=8)S(this,w,w+7),S(this,w+1,w+6),S(this,w+2,w+5),S(this,w+3,w+4);return this},s.prototype.toString=function(){const y=this.length;return y===0?"":arguments.length===0?le(this,0,y):A.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(y){if(!s.isBuffer(y))throw new TypeError("Argument must be a Buffer");return this===y?!0:s.compare(this,y)===0},s.prototype.inspect=function(){let y="";const w=e.INSPECT_MAX_BYTES;return y=this.toString("hex",0,w).replace(/(.{2})/g,"$1 ").trim(),this.length>w&&(y+=" ... "),"<Buffer "+y+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(y,w,D,N,G){if(Ht(y,Uint8Array)&&(y=s.from(y,y.offset,y.byteLength)),!s.isBuffer(y))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof y);if(w===void 0&&(w=0),D===void 0&&(D=y?y.length:0),N===void 0&&(N=0),G===void 0&&(G=this.length),w<0||D>y.length||N<0||G>this.length)throw new RangeError("out of range index");if(N>=G&&w>=D)return 0;if(N>=G)return-1;if(w>=D)return 1;if(w>>>=0,D>>>=0,N>>>=0,G>>>=0,this===y)return 0;let Y=G-N,ke=D-w;const et=Math.min(Y,ke),Qe=this.slice(N,G),at=y.slice(w,D);for(let Ue=0;Ue<et;++Ue)if(Qe[Ue]!==at[Ue]){Y=Qe[Ue],ke=at[Ue];break}return Y<ke?-1:ke<Y?1:0};function E(C,y,w,D,N){if(C.length===0)return-1;if(typeof w=="string"?(D=w,w=0):w>2147483647?w=2147483647:w<-2147483648&&(w=-2147483648),w=+w,Fr(w)&&(w=N?0:C.length-1),w<0&&(w=C.length+w),w>=C.length){if(N)return-1;w=C.length-1}else if(w<0)if(N)w=0;else return-1;if(typeof y=="string"&&(y=s.from(y,D)),s.isBuffer(y))return y.length===0?-1:_(C,y,w,D,N);if(typeof y=="number")return y=y&255,typeof Uint8Array.prototype.indexOf=="function"?N?Uint8Array.prototype.indexOf.call(C,y,w):Uint8Array.prototype.lastIndexOf.call(C,y,w):_(C,[y],w,D,N);throw new TypeError("val must be string, number or Buffer")}function _(C,y,w,D,N){let G=1,Y=C.length,ke=y.length;if(D!==void 0&&(D=String(D).toLowerCase(),D==="ucs2"||D==="ucs-2"||D==="utf16le"||D==="utf-16le")){if(C.length<2||y.length<2)return-1;G=2,Y/=2,ke/=2,w/=2}function et(at,Ue){return G===1?at[Ue]:at.readUInt16BE(Ue*G)}let Qe;if(N){let at=-1;for(Qe=w;Qe<Y;Qe++)if(et(C,Qe)===et(y,at===-1?0:Qe-at)){if(at===-1&&(at=Qe),Qe-at+1===ke)return at*G}else at!==-1&&(Qe-=Qe-at),at=-1}else for(w+ke>Y&&(w=Y-ke),Qe=w;Qe>=0;Qe--){let at=!0;for(let Ue=0;Ue<ke;Ue++)if(et(C,Qe+Ue)!==et(y,Ue)){at=!1;break}if(at)return Qe}return-1}s.prototype.includes=function(y,w,D){return this.indexOf(y,w,D)!==-1},s.prototype.indexOf=function(y,w,D){return E(this,y,w,D,!0)},s.prototype.lastIndexOf=function(y,w,D){return E(this,y,w,D,!1)};function R(C,y,w,D){w=Number(w)||0;const N=C.length-w;D?(D=Number(D),D>N&&(D=N)):D=N;const G=y.length;D>G/2&&(D=G/2);let Y;for(Y=0;Y<D;++Y){const ke=parseInt(y.substr(Y*2,2),16);if(Fr(ke))return Y;C[w+Y]=ke}return Y}function F(C,y,w,D){return hi(Ce(y,C.length-w),C,w,D)}function H(C,y,w,D){return hi(cn(y),C,w,D)}function O(C,y,w,D){return hi(fi(y),C,w,D)}function Z(C,y,w,D){return hi(ui(y,C.length-w),C,w,D)}s.prototype.write=function(y,w,D,N){if(w===void 0)N="utf8",D=this.length,w=0;else if(D===void 0&&typeof w=="string")N=w,D=this.length,w=0;else if(isFinite(w))w=w>>>0,isFinite(D)?(D=D>>>0,N===void 0&&(N="utf8")):(N=D,D=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const G=this.length-w;if((D===void 0||D>G)&&(D=G),y.length>0&&(D<0||w<0)||w>this.length)throw new RangeError("Attempt to write outside buffer bounds");N||(N="utf8");let Y=!1;for(;;)switch(N){case"hex":return R(this,y,w,D);case"utf8":case"utf-8":return F(this,y,w,D);case"ascii":case"latin1":case"binary":return H(this,y,w,D);case"base64":return O(this,y,w,D);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Z(this,y,w,D);default:if(Y)throw new TypeError("Unknown encoding: "+N);N=(""+N).toLowerCase(),Y=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function ne(C,y,w){return y===0&&w===C.length?t.fromByteArray(C):t.fromByteArray(C.slice(y,w))}function le(C,y,w){w=Math.min(C.length,w);const D=[];let N=y;for(;N<w;){const G=C[N];let Y=null,ke=G>239?4:G>223?3:G>191?2:1;if(N+ke<=w){let et,Qe,at,Ue;switch(ke){case 1:G<128&&(Y=G);break;case 2:et=C[N+1],(et&192)===128&&(Ue=(G&31)<<6|et&63,Ue>127&&(Y=Ue));break;case 3:et=C[N+1],Qe=C[N+2],(et&192)===128&&(Qe&192)===128&&(Ue=(G&15)<<12|(et&63)<<6|Qe&63,Ue>2047&&(Ue<55296||Ue>57343)&&(Y=Ue));break;case 4:et=C[N+1],Qe=C[N+2],at=C[N+3],(et&192)===128&&(Qe&192)===128&&(at&192)===128&&(Ue=(G&15)<<18|(et&63)<<12|(Qe&63)<<6|at&63,Ue>65535&&Ue<1114112&&(Y=Ue))}}Y===null?(Y=65533,ke=1):Y>65535&&(Y-=65536,D.push(Y>>>10&1023|55296),Y=56320|Y&1023),D.push(Y),N+=ke}return pe(D)}const ie=4096;function pe(C){const y=C.length;if(y<=ie)return String.fromCharCode.apply(String,C);let w="",D=0;for(;D<y;)w+=String.fromCharCode.apply(String,C.slice(D,D+=ie));return w}function ge(C,y,w){let D="";w=Math.min(C.length,w);for(let N=y;N<w;++N)D+=String.fromCharCode(C[N]&127);return D}function Ee(C,y,w){let D="";w=Math.min(C.length,w);for(let N=y;N<w;++N)D+=String.fromCharCode(C[N]);return D}function Re(C,y,w){const D=C.length;(!y||y<0)&&(y=0),(!w||w<0||w>D)&&(w=D);let N="";for(let G=y;G<w;++G)N+=di[C[G]];return N}function M(C,y,w){const D=C.slice(y,w);let N="";for(let G=0;G<D.length-1;G+=2)N+=String.fromCharCode(D[G]+D[G+1]*256);return N}s.prototype.slice=function(y,w){const D=this.length;y=~~y,w=w===void 0?D:~~w,y<0?(y+=D,y<0&&(y=0)):y>D&&(y=D),w<0?(w+=D,w<0&&(w=0)):w>D&&(w=D),w<y&&(w=y);const N=this.subarray(y,w);return Object.setPrototypeOf(N,s.prototype),N};function Se(C,y,w){if(C%1!==0||C<0)throw new RangeError("offset is not uint");if(C+y>w)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(y,w,D){y=y>>>0,w=w>>>0,D||Se(y,w,this.length);let N=this[y],G=1,Y=0;for(;++Y<w&&(G*=256);)N+=this[y+Y]*G;return N},s.prototype.readUintBE=s.prototype.readUIntBE=function(y,w,D){y=y>>>0,w=w>>>0,D||Se(y,w,this.length);let N=this[y+--w],G=1;for(;w>0&&(G*=256);)N+=this[y+--w]*G;return N},s.prototype.readUint8=s.prototype.readUInt8=function(y,w){return y=y>>>0,w||Se(y,1,this.length),this[y]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(y,w){return y=y>>>0,w||Se(y,2,this.length),this[y]|this[y+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(y,w){return y=y>>>0,w||Se(y,2,this.length),this[y]<<8|this[y+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(y,w){return y=y>>>0,w||Se(y,4,this.length),(this[y]|this[y+1]<<8|this[y+2]<<16)+this[y+3]*16777216},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(y,w){return y=y>>>0,w||Se(y,4,this.length),this[y]*16777216+(this[y+1]<<16|this[y+2]<<8|this[y+3])},s.prototype.readBigUInt64LE=un(function(y){y=y>>>0,W(y,"offset");const w=this[y],D=this[y+7];(w===void 0||D===void 0)&&K(y,this.length-8);const N=w+this[++y]*2**8+this[++y]*2**16+this[++y]*2**24,G=this[++y]+this[++y]*2**8+this[++y]*2**16+D*2**24;return BigInt(N)+(BigInt(G)<<BigInt(32))}),s.prototype.readBigUInt64BE=un(function(y){y=y>>>0,W(y,"offset");const w=this[y],D=this[y+7];(w===void 0||D===void 0)&&K(y,this.length-8);const N=w*2**24+this[++y]*2**16+this[++y]*2**8+this[++y],G=this[++y]*2**24+this[++y]*2**16+this[++y]*2**8+D;return(BigInt(N)<<BigInt(32))+BigInt(G)}),s.prototype.readIntLE=function(y,w,D){y=y>>>0,w=w>>>0,D||Se(y,w,this.length);let N=this[y],G=1,Y=0;for(;++Y<w&&(G*=256);)N+=this[y+Y]*G;return G*=128,N>=G&&(N-=Math.pow(2,8*w)),N},s.prototype.readIntBE=function(y,w,D){y=y>>>0,w=w>>>0,D||Se(y,w,this.length);let N=w,G=1,Y=this[y+--N];for(;N>0&&(G*=256);)Y+=this[y+--N]*G;return G*=128,Y>=G&&(Y-=Math.pow(2,8*w)),Y},s.prototype.readInt8=function(y,w){return y=y>>>0,w||Se(y,1,this.length),this[y]&128?(255-this[y]+1)*-1:this[y]},s.prototype.readInt16LE=function(y,w){y=y>>>0,w||Se(y,2,this.length);const D=this[y]|this[y+1]<<8;return D&32768?D|4294901760:D},s.prototype.readInt16BE=function(y,w){y=y>>>0,w||Se(y,2,this.length);const D=this[y+1]|this[y]<<8;return D&32768?D|4294901760:D},s.prototype.readInt32LE=function(y,w){return y=y>>>0,w||Se(y,4,this.length),this[y]|this[y+1]<<8|this[y+2]<<16|this[y+3]<<24},s.prototype.readInt32BE=function(y,w){return y=y>>>0,w||Se(y,4,this.length),this[y]<<24|this[y+1]<<16|this[y+2]<<8|this[y+3]},s.prototype.readBigInt64LE=un(function(y){y=y>>>0,W(y,"offset");const w=this[y],D=this[y+7];(w===void 0||D===void 0)&&K(y,this.length-8);const N=this[y+4]+this[y+5]*2**8+this[y+6]*2**16+(D<<24);return(BigInt(N)<<BigInt(32))+BigInt(w+this[++y]*2**8+this[++y]*2**16+this[++y]*2**24)}),s.prototype.readBigInt64BE=un(function(y){y=y>>>0,W(y,"offset");const w=this[y],D=this[y+7];(w===void 0||D===void 0)&&K(y,this.length-8);const N=(w<<24)+this[++y]*2**16+this[++y]*2**8+this[++y];return(BigInt(N)<<BigInt(32))+BigInt(this[++y]*2**24+this[++y]*2**16+this[++y]*2**8+D)}),s.prototype.readFloatLE=function(y,w){return y=y>>>0,w||Se(y,4,this.length),n.read(this,y,!0,23,4)},s.prototype.readFloatBE=function(y,w){return y=y>>>0,w||Se(y,4,this.length),n.read(this,y,!1,23,4)},s.prototype.readDoubleLE=function(y,w){return y=y>>>0,w||Se(y,8,this.length),n.read(this,y,!0,52,8)},s.prototype.readDoubleBE=function(y,w){return y=y>>>0,w||Se(y,8,this.length),n.read(this,y,!1,52,8)};function Te(C,y,w,D,N,G){if(!s.isBuffer(C))throw new TypeError('"buffer" argument must be a Buffer instance');if(y>N||y<G)throw new RangeError('"value" argument is out of bounds');if(w+D>C.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(y,w,D,N){if(y=+y,w=w>>>0,D=D>>>0,!N){const ke=Math.pow(2,8*D)-1;Te(this,y,w,D,ke,0)}let G=1,Y=0;for(this[w]=y&255;++Y<D&&(G*=256);)this[w+Y]=y/G&255;return w+D},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(y,w,D,N){if(y=+y,w=w>>>0,D=D>>>0,!N){const ke=Math.pow(2,8*D)-1;Te(this,y,w,D,ke,0)}let G=D-1,Y=1;for(this[w+G]=y&255;--G>=0&&(Y*=256);)this[w+G]=y/Y&255;return w+D},s.prototype.writeUint8=s.prototype.writeUInt8=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,1,255,0),this[w]=y&255,w+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,2,65535,0),this[w]=y&255,this[w+1]=y>>>8,w+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,2,65535,0),this[w]=y>>>8,this[w+1]=y&255,w+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,4,4294967295,0),this[w+3]=y>>>24,this[w+2]=y>>>16,this[w+1]=y>>>8,this[w]=y&255,w+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,4,4294967295,0),this[w]=y>>>24,this[w+1]=y>>>16,this[w+2]=y>>>8,this[w+3]=y&255,w+4};function P(C,y,w,D,N){k(y,D,N,C,w,7);let G=Number(y&BigInt(4294967295));C[w++]=G,G=G>>8,C[w++]=G,G=G>>8,C[w++]=G,G=G>>8,C[w++]=G;let Y=Number(y>>BigInt(32)&BigInt(4294967295));return C[w++]=Y,Y=Y>>8,C[w++]=Y,Y=Y>>8,C[w++]=Y,Y=Y>>8,C[w++]=Y,w}function ot(C,y,w,D,N){k(y,D,N,C,w,7);let G=Number(y&BigInt(4294967295));C[w+7]=G,G=G>>8,C[w+6]=G,G=G>>8,C[w+5]=G,G=G>>8,C[w+4]=G;let Y=Number(y>>BigInt(32)&BigInt(4294967295));return C[w+3]=Y,Y=Y>>8,C[w+2]=Y,Y=Y>>8,C[w+1]=Y,Y=Y>>8,C[w]=Y,w+8}s.prototype.writeBigUInt64LE=un(function(y,w=0){return P(this,y,w,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=un(function(y,w=0){return ot(this,y,w,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(y,w,D,N){if(y=+y,w=w>>>0,!N){const et=Math.pow(2,8*D-1);Te(this,y,w,D,et-1,-et)}let G=0,Y=1,ke=0;for(this[w]=y&255;++G<D&&(Y*=256);)y<0&&ke===0&&this[w+G-1]!==0&&(ke=1),this[w+G]=(y/Y>>0)-ke&255;return w+D},s.prototype.writeIntBE=function(y,w,D,N){if(y=+y,w=w>>>0,!N){const et=Math.pow(2,8*D-1);Te(this,y,w,D,et-1,-et)}let G=D-1,Y=1,ke=0;for(this[w+G]=y&255;--G>=0&&(Y*=256);)y<0&&ke===0&&this[w+G+1]!==0&&(ke=1),this[w+G]=(y/Y>>0)-ke&255;return w+D},s.prototype.writeInt8=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,1,127,-128),y<0&&(y=255+y+1),this[w]=y&255,w+1},s.prototype.writeInt16LE=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,2,32767,-32768),this[w]=y&255,this[w+1]=y>>>8,w+2},s.prototype.writeInt16BE=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,2,32767,-32768),this[w]=y>>>8,this[w+1]=y&255,w+2},s.prototype.writeInt32LE=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,4,2147483647,-2147483648),this[w]=y&255,this[w+1]=y>>>8,this[w+2]=y>>>16,this[w+3]=y>>>24,w+4},s.prototype.writeInt32BE=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,4,2147483647,-2147483648),y<0&&(y=4294967295+y+1),this[w]=y>>>24,this[w+1]=y>>>16,this[w+2]=y>>>8,this[w+3]=y&255,w+4},s.prototype.writeBigInt64LE=un(function(y,w=0){return P(this,y,w,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=un(function(y,w=0){return ot(this,y,w,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Me(C,y,w,D,N,G){if(w+D>C.length)throw new RangeError("Index out of range");if(w<0)throw new RangeError("Index out of range")}function z(C,y,w,D,N){return y=+y,w=w>>>0,N||Me(C,y,w,4),n.write(C,y,w,D,23,4),w+4}s.prototype.writeFloatLE=function(y,w,D){return z(this,y,w,!0,D)},s.prototype.writeFloatBE=function(y,w,D){return z(this,y,w,!1,D)};function $(C,y,w,D,N){return y=+y,w=w>>>0,N||Me(C,y,w,8),n.write(C,y,w,D,52,8),w+8}s.prototype.writeDoubleLE=function(y,w,D){return $(this,y,w,!0,D)},s.prototype.writeDoubleBE=function(y,w,D){return $(this,y,w,!1,D)},s.prototype.copy=function(y,w,D,N){if(!s.isBuffer(y))throw new TypeError("argument should be a Buffer");if(D||(D=0),!N&&N!==0&&(N=this.length),w>=y.length&&(w=y.length),w||(w=0),N>0&&N<D&&(N=D),N===D||y.length===0||this.length===0)return 0;if(w<0)throw new RangeError("targetStart out of bounds");if(D<0||D>=this.length)throw new RangeError("Index out of range");if(N<0)throw new RangeError("sourceEnd out of bounds");N>this.length&&(N=this.length),y.length-w<N-D&&(N=y.length-w+D);const G=N-D;return this===y&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(w,D,N):Uint8Array.prototype.set.call(y,this.subarray(D,N),w),G},s.prototype.fill=function(y,w,D,N){if(typeof y=="string"){if(typeof w=="string"?(N=w,w=0,D=this.length):typeof D=="string"&&(N=D,D=this.length),N!==void 0&&typeof N!="string")throw new TypeError("encoding must be a string");if(typeof N=="string"&&!s.isEncoding(N))throw new TypeError("Unknown encoding: "+N);if(y.length===1){const Y=y.charCodeAt(0);(N==="utf8"&&Y<128||N==="latin1")&&(y=Y)}}else typeof y=="number"?y=y&255:typeof y=="boolean"&&(y=Number(y));if(w<0||this.length<w||this.length<D)throw new RangeError("Out of range index");if(D<=w)return this;w=w>>>0,D=D===void 0?this.length:D>>>0,y||(y=0);let G;if(typeof y=="number")for(G=w;G<D;++G)this[G]=y;else{const Y=s.isBuffer(y)?y:s.from(y,N),ke=Y.length;if(ke===0)throw new TypeError('The value "'+y+'" is invalid for argument "value"');for(G=0;G<D-w;++G)this[G+w]=Y[G%ke]}return this};const X={};function q(C,y,w){X[C]=class extends w{constructor(){super(),Object.defineProperty(this,"message",{value:y.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${C}]`,this.stack,delete this.name}get code(){return C}set code(N){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:N,writable:!0})}toString(){return`${this.name} [${C}]: ${this.message}`}}}q("ERR_BUFFER_OUT_OF_BOUNDS",function(C){return C?`${C} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),q("ERR_INVALID_ARG_TYPE",function(C,y){return`The "${C}" argument must be of type number. Received type ${typeof y}`},TypeError),q("ERR_OUT_OF_RANGE",function(C,y,w){let D=`The value of "${C}" is out of range.`,N=w;return Number.isInteger(w)&&Math.abs(w)>2**32?N=ee(String(w)):typeof w=="bigint"&&(N=String(w),(w>BigInt(2)**BigInt(32)||w<-(BigInt(2)**BigInt(32)))&&(N=ee(N)),N+="n"),D+=` It must be ${y}. Received ${N}`,D},RangeError);function ee(C){let y="",w=C.length;const D=C[0]==="-"?1:0;for(;w>=D+4;w-=3)y=`_${C.slice(w-3,w)}${y}`;return`${C.slice(0,w)}${y}`}function I(C,y,w){W(y,"offset"),(C[y]===void 0||C[y+w]===void 0)&&K(y,C.length-(w+1))}function k(C,y,w,D,N,G){if(C>w||C<y){const Y=typeof y=="bigint"?"n":"";let ke;throw y===0||y===BigInt(0)?ke=`>= 0${Y} and < 2${Y} ** ${(G+1)*8}${Y}`:ke=`>= -(2${Y} ** ${(G+1)*8-1}${Y}) and < 2 ** ${(G+1)*8-1}${Y}`,new X.ERR_OUT_OF_RANGE("value",ke,C)}I(D,N,G)}function W(C,y){if(typeof C!="number")throw new X.ERR_INVALID_ARG_TYPE(y,"number",C)}function K(C,y,w){throw Math.floor(C)!==C?(W(C,w),new X.ERR_OUT_OF_RANGE("offset","an integer",C)):y<0?new X.ERR_BUFFER_OUT_OF_BOUNDS:new X.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${y}`,C)}const _e=/[^+/0-9A-Za-z-_]/g;function de(C){if(C=C.split("=")[0],C=C.trim().replace(_e,""),C.length<2)return"";for(;C.length%4!==0;)C=C+"=";return C}function Ce(C,y){y=y||1/0;let w;const D=C.length;let N=null;const G=[];for(let Y=0;Y<D;++Y){if(w=C.charCodeAt(Y),w>55295&&w<57344){if(!N){if(w>56319){(y-=3)>-1&&G.push(239,191,189);continue}else if(Y+1===D){(y-=3)>-1&&G.push(239,191,189);continue}N=w;continue}if(w<56320){(y-=3)>-1&&G.push(239,191,189),N=w;continue}w=(N-55296<<10|w-56320)+65536}else N&&(y-=3)>-1&&G.push(239,191,189);if(N=null,w<128){if((y-=1)<0)break;G.push(w)}else if(w<2048){if((y-=2)<0)break;G.push(w>>6|192,w&63|128)}else if(w<65536){if((y-=3)<0)break;G.push(w>>12|224,w>>6&63|128,w&63|128)}else if(w<1114112){if((y-=4)<0)break;G.push(w>>18|240,w>>12&63|128,w>>6&63|128,w&63|128)}else throw new Error("Invalid code point")}return G}function cn(C){const y=[];for(let w=0;w<C.length;++w)y.push(C.charCodeAt(w)&255);return y}function ui(C,y){let w,D,N;const G=[];for(let Y=0;Y<C.length&&!((y-=2)<0);++Y)w=C.charCodeAt(Y),D=w>>8,N=w%256,G.push(N),G.push(D);return G}function fi(C){return t.toByteArray(de(C))}function hi(C,y,w,D){let N;for(N=0;N<D&&!(N+w>=y.length||N>=C.length);++N)y[N+w]=C[N];return N}function Ht(C,y){return C instanceof y||C!=null&&C.constructor!=null&&C.constructor.name!=null&&C.constructor.name===y.name}function Fr(C){return C!==C}const di=function(){const C="0123456789abcdef",y=new Array(256);for(let w=0;w<16;++w){const D=w*16;for(let N=0;N<16;++N)y[D+N]=C[w]+C[N]}return y}();function un(C){return typeof BigInt>"u"?hr:C}function hr(){throw new Error("BigInt not supported")}})(Ne);const h6=$e({__proto__:null,default:op(Ne)},[Ne]),zt={},HX=Object.freeze(Object.defineProperty({__proto__:null,default:zt},Symbol.toStringTag,{value:"Module"}));class Za{async getBufferFromResponse(t){const n=await t.arrayBuffer();return Ne.Buffer.from(n)}constructor(t,n={}){this.baseOverrides={},this.url=t;const r=n.fetch||globalThis.fetch.bind(globalThis);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,o={}){const{headers:a={},signal:s,overrides:l={}}=o;r<1/0?a.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(a.range=`bytes=${i}-`);const c={...this.baseOverrides,...l,headers:{...a,...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!=null&&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:o,overrides:a={}}=r,s={headers:i,method:"GET",redirect:"follow",mode:"cors",signal:o,...this.baseOverrides,...a},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=Ne.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(){}}function d6(e){const t=new FileReader;return new Promise((n,r)=>{t.onerror=()=>{t.abort(),r(new Error("problem reading blob"))},t.onabort=()=>{r(new Error("blob reading was aborted"))},t.onload=()=>{t.result&&typeof t.result!="string"?n(t.result):r(new Error("unknown error reading blob"))},t.readAsArrayBuffer(e)})}function GX(e){const t=new FileReader;return new Promise((n,r)=>{t.onerror=()=>{t.abort(),r(new Error("problem reading blob"))},t.onabort=()=>{r(new Error("blob reading was aborted"))},t.onload=()=>{t.result&&typeof t.result=="string"?n(t.result):r(new Error("unknown error reading blob"))},t.readAsText(e)})}class VX{constructor(t){this.blob=t,this.size=t.size}async read(t,n=0,r,i=0){if(!r)return{bytesRead:0,buffer:t};const o=i,a=o+r,s=await d6(this.blob.slice(o,a)),l=Ne.Buffer.from(s);return{bytesRead:l.copy(t,n),buffer:l}}async readFile(t){const n=typeof t=="string"?t:t==null?void 0:t.encoding;if(n==="utf8")return GX(this.blob);if(n)throw new Error(`unsupported encoding: ${n}`);const r=await d6(this.blob);return Ne.Buffer.from(r)}async stat(){return{size:this.size}}async close(){}}function p6(e,t={}){return new Za(e,t)}function jX(e,t,n,r={}){if(n!==void 0)return n;if(e!==void 0)return p6(e,r);if(t!==void 0)return new zt(t,r);throw new Error("no url, path, or filehandle provided, cannot open")}const df=Object.freeze(Object.defineProperty({__proto__:null,BlobFile:VX,LocalFile:zt,RemoteFile:Za,fromUrl:p6,open:jX},Symbol.toStringTag,{value:"Module"}));var Li={};(function(e){var t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function n(o,a){return Object.prototype.hasOwnProperty.call(o,a)}e.assign=function(o){for(var a=Array.prototype.slice.call(arguments,1);a.length;){var s=a.shift();if(s){if(typeof s!="object")throw new TypeError(s+"must be non-object");for(var l in s)n(s,l)&&(o[l]=s[l])}}return o},e.shrinkBuf=function(o,a){return o.length===a?o:o.subarray?o.subarray(0,a):(o.length=a,o)};var r={arraySet:function(o,a,s,l,c){if(a.subarray&&o.subarray){o.set(a.subarray(s,s+l),c);return}for(var u=0;u<l;u++)o[c+u]=a[s+u]},flattenChunks:function(o){var a,s,l,c,u,f;for(l=0,a=0,s=o.length;a<s;a++)l+=o[a].length;for(f=new Uint8Array(l),c=0,a=0,s=o.length;a<s;a++)u=o[a],f.set(u,c),c+=u.length;return f}},i={arraySet:function(o,a,s,l,c){for(var u=0;u<l;u++)o[c+u]=a[s+u]},flattenChunks:function(o){return[].concat.apply([],o)}};e.setTyped=function(o){o?(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)})(Li);var pf={},Jr={},yl={},qX=Li,WX=4,g6=0,m6=1,YX=2;function wl(e){for(var t=e.length;--t>=0;)e[t]=0}var ZX=0,b6=1,QX=2,XX=3,KX=258,j2=29,gf=256,mf=gf+1+j2,vl=30,q2=19,y6=2*mf+1,Qa=15,W2=16,JX=7,Y2=256,w6=16,v6=17,x6=18,Z2=[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],sp=[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],eK=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],A6=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],tK=512,Ni=new Array((mf+2)*2);wl(Ni);var bf=new Array(vl*2);wl(bf);var yf=new Array(tK);wl(yf);var wf=new Array(KX-XX+1);wl(wf);var Q2=new Array(j2);wl(Q2);var lp=new Array(vl);wl(lp);function X2(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 E6,S6,_6;function K2(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function C6(e){return e<256?yf[e]:yf[256+(e>>>7)]}function vf(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function An(e,t,n){e.bi_valid>W2-n?(e.bi_buf|=t<<e.bi_valid&65535,vf(e,e.bi_buf),e.bi_buf=t>>W2-e.bi_valid,e.bi_valid+=n-W2):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function ei(e,t,n){An(e,n[t*2],n[t*2+1])}function k6(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function nK(e){e.bi_valid===16?(vf(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 rK(e,t){var n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,o=t.stat_desc.has_stree,a=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<=Qa;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,c=e.heap_max+1;c<y6;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=a[u-s]),p=n[u*2],e.opt_len+=p*(h+d),o&&(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 T6(e,t,n){var r=new Array(Qa+1),i=0,o,a;for(o=1;o<=Qa;o++)r[o]=i=i+n[o-1]<<1;for(a=0;a<=t;a++){var s=e[a*2+1];s!==0&&(e[a*2]=k6(r[s]++,s))}}function iK(){var e,t,n,r,i,o=new Array(Qa+1);for(n=0,r=0;r<j2-1;r++)for(Q2[r]=n,e=0;e<1<<Z2[r];e++)wf[n++]=r;for(wf[n-1]=r,i=0,r=0;r<16;r++)for(lp[r]=i,e=0;e<1<<sp[r];e++)yf[i++]=r;for(i>>=7;r<vl;r++)for(lp[r]=i<<7,e=0;e<1<<sp[r]-7;e++)yf[256+i++]=r;for(t=0;t<=Qa;t++)o[t]=0;for(e=0;e<=143;)Ni[e*2+1]=8,e++,o[8]++;for(;e<=255;)Ni[e*2+1]=9,e++,o[9]++;for(;e<=279;)Ni[e*2+1]=7,e++,o[7]++;for(;e<=287;)Ni[e*2+1]=8,e++,o[8]++;for(T6(Ni,mf+1,o),e=0;e<vl;e++)bf[e*2+1]=5,bf[e*2]=k6(e,5);E6=new X2(Ni,Z2,gf+1,mf,Qa),S6=new X2(bf,sp,0,vl,Qa),_6=new X2(new Array(0),eK,0,q2,JX)}function I6(e){var t;for(t=0;t<mf;t++)e.dyn_ltree[t*2]=0;for(t=0;t<vl;t++)e.dyn_dtree[t*2]=0;for(t=0;t<q2;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Y2*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function R6(e){e.bi_valid>8?vf(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 oK(e,t,n,r){R6(e),vf(e,n),vf(e,~n),qX.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function D6(e,t,n,r){var i=t*2,o=n*2;return e[i]<e[o]||e[i]===e[o]&&r[t]<=r[n]}function J2(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&D6(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!D6(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function B6(e,t,n){var r,i,o=0,a,s;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+o*2]<<8|e.pending_buf[e.d_buf+o*2+1],i=e.pending_buf[e.l_buf+o],o++,r===0?ei(e,i,t):(a=wf[i],ei(e,a+gf+1,t),s=Z2[a],s!==0&&(i-=Q2[a],An(e,i,s)),r--,a=C6(r),ei(e,a,n),s=sp[a],s!==0&&(r-=lp[a],An(e,r,s)));while(o<e.last_lit);ei(e,Y2,t)}function ey(e,t){var n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,o=t.stat_desc.elems,a,s,l=-1,c;for(e.heap_len=0,e.heap_max=y6,a=0;a<o;a++)n[a*2]!==0?(e.heap[++e.heap_len]=l=a,e.depth[a]=0):n[a*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,a=e.heap_len>>1;a>=1;a--)J2(e,n,a);c=o;do a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],J2(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,n[c*2]=n[a*2]+n[s*2],e.depth[c]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,n[a*2+1]=n[s*2+1]=c,e.heap[1]=c++,J2(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],rK(e,t),T6(n,l,e.bl_count)}function F6(e,t,n){var r,i=-1,o,a=t[0*2+1],s=0,l=7,c=4;for(a===0&&(l=138,c=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)o=a,a=t[(r+1)*2+1],!(++s<l&&o===a)&&(s<c?e.bl_tree[o*2]+=s:o!==0?(o!==i&&e.bl_tree[o*2]++,e.bl_tree[w6*2]++):s<=10?e.bl_tree[v6*2]++:e.bl_tree[x6*2]++,s=0,i=o,a===0?(l=138,c=3):o===a?(l=6,c=3):(l=7,c=4))}function M6(e,t,n){var r,i=-1,o,a=t[0*2+1],s=0,l=7,c=4;for(a===0&&(l=138,c=3),r=0;r<=n;r++)if(o=a,a=t[(r+1)*2+1],!(++s<l&&o===a)){if(s<c)do ei(e,o,e.bl_tree);while(--s!==0);else o!==0?(o!==i&&(ei(e,o,e.bl_tree),s--),ei(e,w6,e.bl_tree),An(e,s-3,2)):s<=10?(ei(e,v6,e.bl_tree),An(e,s-3,3)):(ei(e,x6,e.bl_tree),An(e,s-11,7));s=0,i=o,a===0?(l=138,c=3):o===a?(l=6,c=3):(l=7,c=4)}}function aK(e){var t;for(F6(e,e.dyn_ltree,e.l_desc.max_code),F6(e,e.dyn_dtree,e.d_desc.max_code),ey(e,e.bl_desc),t=q2-1;t>=3&&e.bl_tree[A6[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function sK(e,t,n,r){var i;for(An(e,t-257,5),An(e,n-1,5),An(e,r-4,4),i=0;i<r;i++)An(e,e.bl_tree[A6[i]*2+1],3);M6(e,e.dyn_ltree,t-1),M6(e,e.dyn_dtree,n-1)}function lK(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return g6;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return m6;for(n=32;n<gf;n++)if(e.dyn_ltree[n*2]!==0)return m6;return g6}var P6=!1;function cK(e){P6||(iK(),P6=!0),e.l_desc=new K2(e.dyn_ltree,E6),e.d_desc=new K2(e.dyn_dtree,S6),e.bl_desc=new K2(e.bl_tree,_6),e.bi_buf=0,e.bi_valid=0,I6(e)}function O6(e,t,n,r){An(e,(ZX<<1)+(r?1:0),3),oK(e,t,n)}function uK(e){An(e,b6<<1,3),ei(e,Y2,Ni),nK(e)}function fK(e,t,n,r){var i,o,a=0;e.level>0?(e.strm.data_type===YX&&(e.strm.data_type=lK(e)),ey(e,e.l_desc),ey(e,e.d_desc),a=aK(e),i=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=i&&(i=o)):i=o=n+5,n+4<=i&&t!==-1?O6(e,t,n,r):e.strategy===WX||o===i?(An(e,(b6<<1)+(r?1:0),3),B6(e,Ni,bf)):(An(e,(QX<<1)+(r?1:0),3),sK(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),B6(e,e.dyn_ltree,e.dyn_dtree)),I6(e),r&&R6(e)}function hK(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[(wf[n]+gf+1)*2]++,e.dyn_dtree[C6(t)*2]++),e.last_lit===e.lit_bufsize-1}yl._tr_init=cK,yl._tr_stored_block=O6,yl._tr_flush_block=fK,yl._tr_tally=hK,yl._tr_align=uK;function dK(e,t,n,r){for(var i=e&65535|0,o=e>>>16&65535|0,a=0;n!==0;){a=n>2e3?2e3:n,n-=a;do i=i+t[r++]|0,o=o+i|0;while(--a);i%=65521,o%=65521}return i|o<<16|0}var L6=dK;function pK(){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 gK=pK();function mK(e,t,n,r){var i=gK,o=r+n;e^=-1;for(var a=r;a<o;a++)e=e>>>8^i[(e^t[a])&255];return e^-1}var N6=mK,ty={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"},pn=Li,Jn=yl,z6=L6,Fo=N6,bK=ty,Xa=0,yK=1,wK=3,Mo=4,U6=5,ti=0,$6=1,er=-2,vK=-3,ny=-5,xK=-1,AK=1,cp=2,EK=3,SK=4,_K=0,CK=2,up=8,kK=9,TK=15,IK=8,RK=29,DK=256,ry=DK+1+RK,BK=30,FK=19,MK=2*ry+1,PK=15,De=3,Po=258,_r=Po+De+1,OK=32,fp=42,iy=69,hp=73,dp=91,pp=103,Ka=113,xf=666,Rt=1,Af=2,Ja=3,xl=4,LK=3;function Oo(e,t){return e.msg=bK[t],t}function H6(e){return(e<<1)-(e>4?9:0)}function Lo(e){for(var t=e.length;--t>=0;)e[t]=0}function No(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(pn.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 Wt(e,t){Jn._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,No(e.strm)}function ze(e,t){e.pending_buf[e.pending++]=t}function Ef(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function NK(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,pn.arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=z6(e.adler,t,i,n):e.state.wrap===2&&(e.adler=Fo(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function G6(e,t){var n=e.max_chain_length,r=e.strstart,i,o,a=e.prev_length,s=e.nice_match,l=e.strstart>e.w_size-_r?e.strstart-(e.w_size-_r):0,c=e.window,u=e.w_mask,f=e.prev,h=e.strstart+Po,d=c[r+a-1],p=c[r+a];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(c[i+a]!==p||c[i+a-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(o=Po-(h-r),r=h-Po,o>a){if(e.match_start=t,a=o,o>=s)break;d=c[r+a-1],p=c[r+a]}}while((t=f[t&u])>l&&--n!==0);return a<=e.lookahead?a:e.lookahead}function es(e){var t=e.w_size,n,r,i,o,a;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-_r)){pn.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);o+=t}if(e.strm.avail_in===0)break;if(r=NK(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=r,e.lookahead+e.insert>=De)for(a=e.strstart-e.insert,e.ins_h=e.window[a],e.ins_h=(e.ins_h<<e.hash_shift^e.window[a+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[a+De-1])&e.hash_mask,e.prev[a&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=a,a++,e.insert--,!(e.lookahead+e.insert<De)););}while(e.lookahead<_r&&e.strm.avail_in!==0)}function zK(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(es(e),e.lookahead===0&&t===Xa)return Rt;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,Wt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-_r&&(Wt(e,!1),e.strm.avail_out===0))return Rt}return e.insert=0,t===Mo?(Wt(e,!0),e.strm.avail_out===0?Ja:xl):(e.strstart>e.block_start&&(Wt(e,!1),e.strm.avail_out===0),Rt)}function oy(e,t){for(var n,r;;){if(e.lookahead<_r){if(es(e),e.lookahead<_r&&t===Xa)return Rt;if(e.lookahead===0)break}if(n=0,e.lookahead>=De&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+De-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-_r&&(e.match_length=G6(e,n)),e.match_length>=De)if(r=Jn._tr_tally(e,e.strstart-e.match_start,e.match_length-De),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=De){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+De-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=Jn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Wt(e,!1),e.strm.avail_out===0))return Rt}return e.insert=e.strstart<De-1?e.strstart:De-1,t===Mo?(Wt(e,!0),e.strm.avail_out===0?Ja:xl):e.last_lit&&(Wt(e,!1),e.strm.avail_out===0)?Rt:Af}function Al(e,t){for(var n,r,i;;){if(e.lookahead<_r){if(es(e),e.lookahead<_r&&t===Xa)return Rt;if(e.lookahead===0)break}if(n=0,e.lookahead>=De&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+De-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=De-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-_r&&(e.match_length=G6(e,n),e.match_length<=5&&(e.strategy===AK||e.match_length===De&&e.strstart-e.match_start>4096)&&(e.match_length=De-1)),e.prev_length>=De&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-De,r=Jn._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-De),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+De-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=De-1,e.strstart++,r&&(Wt(e,!1),e.strm.avail_out===0))return Rt}else if(e.match_available){if(r=Jn._tr_tally(e,0,e.window[e.strstart-1]),r&&Wt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Rt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=Jn._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<De-1?e.strstart:De-1,t===Mo?(Wt(e,!0),e.strm.avail_out===0?Ja:xl):e.last_lit&&(Wt(e,!1),e.strm.avail_out===0)?Rt:Af}function UK(e,t){for(var n,r,i,o,a=e.window;;){if(e.lookahead<=Po){if(es(e),e.lookahead<=Po&&t===Xa)return Rt;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=De&&e.strstart>0&&(i=e.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){o=e.strstart+Po;do;while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&i<o);e.match_length=Po-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=De?(n=Jn._tr_tally(e,1,e.match_length-De),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Jn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Wt(e,!1),e.strm.avail_out===0))return Rt}return e.insert=0,t===Mo?(Wt(e,!0),e.strm.avail_out===0?Ja:xl):e.last_lit&&(Wt(e,!1),e.strm.avail_out===0)?Rt:Af}function $K(e,t){for(var n;;){if(e.lookahead===0&&(es(e),e.lookahead===0)){if(t===Xa)return Rt;break}if(e.match_length=0,n=Jn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Wt(e,!1),e.strm.avail_out===0))return Rt}return e.insert=0,t===Mo?(Wt(e,!0),e.strm.avail_out===0?Ja:xl):e.last_lit&&(Wt(e,!1),e.strm.avail_out===0)?Rt:Af}function ni(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 El;El=[new ni(0,0,0,0,zK),new ni(4,4,8,4,oy),new ni(4,5,16,8,oy),new ni(4,6,32,32,oy),new ni(4,4,16,16,Al),new ni(8,16,32,32,Al),new ni(8,16,128,128,Al),new ni(8,32,128,256,Al),new ni(32,128,258,1024,Al),new ni(32,258,258,4096,Al)];function HK(e){e.window_size=2*e.w_size,Lo(e.head),e.max_lazy_match=El[e.level].max_lazy,e.good_match=El[e.level].good_length,e.nice_match=El[e.level].nice_length,e.max_chain_length=El[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=De-1,e.match_available=0,e.ins_h=0}function GK(){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=up,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 pn.Buf16(MK*2),this.dyn_dtree=new pn.Buf16((2*BK+1)*2),this.bl_tree=new pn.Buf16((2*FK+1)*2),Lo(this.dyn_ltree),Lo(this.dyn_dtree),Lo(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new pn.Buf16(PK+1),this.heap=new pn.Buf16(2*ry+1),Lo(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new pn.Buf16(2*ry+1),Lo(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 V6(e){var t;return!e||!e.state?Oo(e,er):(e.total_in=e.total_out=0,e.data_type=CK,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?fp:Ka,e.adler=t.wrap===2?0:1,t.last_flush=Xa,Jn._tr_init(t),ti)}function j6(e){var t=V6(e);return t===ti&&HK(e.state),t}function VK(e,t){return!e||!e.state||e.state.wrap!==2?er:(e.state.gzhead=t,ti)}function q6(e,t,n,r,i,o){if(!e)return er;var a=1;if(t===xK&&(t=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),i<1||i>kK||n!==up||r<8||r>15||t<0||t>9||o<0||o>SK)return Oo(e,er);r===8&&(r=9);var s=new GK;return e.state=s,s.strm=e,s.wrap=a,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+De-1)/De),s.window=new pn.Buf8(s.w_size*2),s.head=new pn.Buf16(s.hash_size),s.prev=new pn.Buf16(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new pn.Buf8(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=3*s.lit_bufsize,s.level=t,s.strategy=o,s.method=n,j6(e)}function jK(e,t){return q6(e,t,up,TK,IK,_K)}function qK(e,t){var n,r,i,o;if(!e||!e.state||t>U6||t<0)return e?Oo(e,er):er;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===xf&&t!==Mo)return Oo(e,e.avail_out===0?ny:er);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===fp)if(r.wrap===2)e.adler=0,ze(r,31),ze(r,139),ze(r,8),r.gzhead?(ze(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)),ze(r,r.gzhead.time&255),ze(r,r.gzhead.time>>8&255),ze(r,r.gzhead.time>>16&255),ze(r,r.gzhead.time>>24&255),ze(r,r.level===9?2:r.strategy>=cp||r.level<2?4:0),ze(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(ze(r,r.gzhead.extra.length&255),ze(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=Fo(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=iy):(ze(r,0),ze(r,0),ze(r,0),ze(r,0),ze(r,0),ze(r,r.level===9?2:r.strategy>=cp||r.level<2?4:0),ze(r,LK),r.status=Ka);else{var a=up+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=cp||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,a|=s<<6,r.strstart!==0&&(a|=OK),a+=31-a%31,r.status=Ka,Ef(r,a),r.strstart!==0&&(Ef(r,e.adler>>>16),Ef(r,e.adler&65535)),e.adler=1}if(r.status===iy)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=Fo(e.adler,r.pending_buf,r.pending-i,i)),No(e),i=r.pending,r.pending===r.pending_buf_size));)ze(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=Fo(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=hp)}else r.status=hp;if(r.status===hp)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Fo(e.adler,r.pending_buf,r.pending-i,i)),No(e),i=r.pending,r.pending===r.pending_buf_size)){o=1;break}r.gzindex<r.gzhead.name.length?o=r.gzhead.name.charCodeAt(r.gzindex++)&255:o=0,ze(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=Fo(e.adler,r.pending_buf,r.pending-i,i)),o===0&&(r.gzindex=0,r.status=dp)}else r.status=dp;if(r.status===dp)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Fo(e.adler,r.pending_buf,r.pending-i,i)),No(e),i=r.pending,r.pending===r.pending_buf_size)){o=1;break}r.gzindex<r.gzhead.comment.length?o=r.gzhead.comment.charCodeAt(r.gzindex++)&255:o=0,ze(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=Fo(e.adler,r.pending_buf,r.pending-i,i)),o===0&&(r.status=pp)}else r.status=pp;if(r.status===pp&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&No(e),r.pending+2<=r.pending_buf_size&&(ze(r,e.adler&255),ze(r,e.adler>>8&255),e.adler=0,r.status=Ka)):r.status=Ka),r.pending!==0){if(No(e),e.avail_out===0)return r.last_flush=-1,ti}else if(e.avail_in===0&&H6(t)<=H6(n)&&t!==Mo)return Oo(e,ny);if(r.status===xf&&e.avail_in!==0)return Oo(e,ny);if(e.avail_in!==0||r.lookahead!==0||t!==Xa&&r.status!==xf){var l=r.strategy===cp?$K(r,t):r.strategy===EK?UK(r,t):El[r.level].func(r,t);if((l===Ja||l===xl)&&(r.status=xf),l===Rt||l===Ja)return e.avail_out===0&&(r.last_flush=-1),ti;if(l===Af&&(t===yK?Jn._tr_align(r):t!==U6&&(Jn._tr_stored_block(r,0,0,!1),t===wK&&(Lo(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),No(e),e.avail_out===0))return r.last_flush=-1,ti}return t!==Mo?ti:r.wrap<=0?$6:(r.wrap===2?(ze(r,e.adler&255),ze(r,e.adler>>8&255),ze(r,e.adler>>16&255),ze(r,e.adler>>24&255),ze(r,e.total_in&255),ze(r,e.total_in>>8&255),ze(r,e.total_in>>16&255),ze(r,e.total_in>>24&255)):(Ef(r,e.adler>>>16),Ef(r,e.adler&65535)),No(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?ti:$6)}function WK(e){var t;return!e||!e.state?er:(t=e.state.status,t!==fp&&t!==iy&&t!==hp&&t!==dp&&t!==pp&&t!==Ka&&t!==xf?Oo(e,er):(e.state=null,t===Ka?Oo(e,vK):ti))}function YK(e,t){var n=t.length,r,i,o,a,s,l,c,u;if(!e||!e.state||(r=e.state,a=r.wrap,a===2||a===1&&r.status!==fp||r.lookahead))return er;for(a===1&&(e.adler=z6(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(a===0&&(Lo(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new pn.Buf8(r.w_size),pn.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,es(r);r.lookahead>=De;){i=r.strstart,o=r.lookahead-(De-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+De-1])&r.hash_mask,r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++;while(--o);r.strstart=i,r.lookahead=De-1,es(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=De-1,r.match_available=0,e.next_in=l,e.input=c,e.avail_in=s,r.wrap=a,ti}Jr.deflateInit=jK,Jr.deflateInit2=q6,Jr.deflateReset=j6,Jr.deflateResetKeep=V6,Jr.deflateSetHeader=VK,Jr.deflate=qK,Jr.deflateEnd=WK,Jr.deflateSetDictionary=YK,Jr.deflateInfo="pako deflate (from Nodeca project)";var ts={},gp=Li,W6=!0,Y6=!0;try{String.fromCharCode.apply(null,[0])}catch{W6=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Y6=!1}for(var Sf=new gp.Buf8(256),zo=0;zo<256;zo++)Sf[zo]=zo>=252?6:zo>=248?5:zo>=240?4:zo>=224?3:zo>=192?2:1;Sf[254]=Sf[254]=1,ts.string2buf=function(e){var t,n,r,i,o,a=e.length,s=0;for(i=0;i<a;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<a&&(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 gp.Buf8(s),o=0,i=0;o<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<a&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[o++]=n:n<2048?(t[o++]=192|n>>>6,t[o++]=128|n&63):n<65536?(t[o++]=224|n>>>12,t[o++]=128|n>>>6&63,t[o++]=128|n&63):(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63,t[o++]=128|n>>>6&63,t[o++]=128|n&63);return t};function Z6(e,t){if(t<65534&&(e.subarray&&Y6||!e.subarray&&W6))return String.fromCharCode.apply(null,gp.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}ts.buf2binstring=function(e){return Z6(e,e.length)},ts.binstring2buf=function(e){for(var t=new gp.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},ts.buf2string=function(e,t){var n,r,i,o,a=t||e.length,s=new Array(a*2);for(r=0,n=0;n<a;){if(i=e[n++],i<128){s[r++]=i;continue}if(o=Sf[i],o>4){s[r++]=65533,n+=o-1;continue}for(i&=o===2?31:o===3?15:7;o>1&&n<a;)i=i<<6|e[n++]&63,o--;if(o>1){s[r++]=65533;continue}i<65536?s[r++]=i:(i-=65536,s[r++]=55296|i>>10&1023,s[r++]=56320|i&1023)}return Z6(s,r)},ts.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+Sf[e[n]]>t?n:t};function ZK(){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 Q6=ZK,_f=Jr,Cf=Li,ay=ts,sy=ty,QK=Q6,X6=Object.prototype.toString,XK=0,ly=4,Sl=0,K6=1,J6=2,KK=-1,JK=0,eJ=8;function ns(e){if(!(this instanceof ns))return new ns(e);this.options=Cf.assign({level:KK,method:eJ,chunkSize:16384,windowBits:15,memLevel:8,strategy:JK,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 QK,this.strm.avail_out=0;var n=_f.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Sl)throw new Error(sy[n]);if(t.header&&_f.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=ay.string2buf(t.dictionary):X6.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=_f.deflateSetDictionary(this.strm,r),n!==Sl)throw new Error(sy[n]);this._dict_set=!0}}ns.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i,o;if(this.ended)return!1;o=t===~~t?t:t===!0?ly:XK,typeof e=="string"?n.input=ay.string2buf(e):X6.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 Cf.Buf8(r),n.next_out=0,n.avail_out=r),i=_f.deflate(n,o),i!==K6&&i!==Sl)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(o===ly||o===J6))&&(this.options.to==="string"?this.onData(ay.buf2binstring(Cf.shrinkBuf(n.output,n.next_out))):this.onData(Cf.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==K6);return o===ly?(i=_f.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===Sl):(o===J6&&(this.onEnd(Sl),n.avail_out=0),!0)},ns.prototype.onData=function(e){this.chunks.push(e)},ns.prototype.onEnd=function(e){e===Sl&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Cf.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function cy(e,t){var n=new ns(t);if(n.push(e,!0),n.err)throw n.msg||sy[n.err];return n.result}function tJ(e,t){return t=t||{},t.raw=!0,cy(e,t)}function nJ(e,t){return t=t||{},t.gzip=!0,cy(e,t)}pf.Deflate=ns,pf.deflate=cy,pf.deflateRaw=tJ,pf.gzip=nJ;var kf={},Cr={},mp=30,rJ=12,iJ=function(t,n){var r,i,o,a,s,l,c,u,f,h,d,p,g,b,m,v,x,A,S,E,_,R,F,H,O;r=t.state,i=t.next_in,H=t.input,o=i+(t.avail_in-5),a=t.next_out,O=t.output,s=a-(n-t.avail_out),l=a+(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,b=r.lencode,m=r.distcode,v=(1<<r.lenbits)-1,x=(1<<r.distbits)-1;e:do{g<15&&(p+=H[i++]<<g,g+=8,p+=H[i++]<<g,g+=8),A=b[p&v];t:for(;;){if(S=A>>>24,p>>>=S,g-=S,S=A>>>16&255,S===0)O[a++]=A&65535;else if(S&16){E=A&65535,S&=15,S&&(g<S&&(p+=H[i++]<<g,g+=8),E+=p&(1<<S)-1,p>>>=S,g-=S),g<15&&(p+=H[i++]<<g,g+=8,p+=H[i++]<<g,g+=8),A=m[p&x];n:for(;;){if(S=A>>>24,p>>>=S,g-=S,S=A>>>16&255,S&16){if(_=A&65535,S&=15,g<S&&(p+=H[i++]<<g,g+=8,g<S&&(p+=H[i++]<<g,g+=8)),_+=p&(1<<S)-1,_>c){t.msg="invalid distance too far back",r.mode=mp;break e}if(p>>>=S,g-=S,S=a-s,_>S){if(S=_-S,S>f&&r.sane){t.msg="invalid distance too far back",r.mode=mp;break e}if(R=0,F=d,h===0){if(R+=u-S,S<E){E-=S;do O[a++]=d[R++];while(--S);R=a-_,F=O}}else if(h<S){if(R+=u+h-S,S-=h,S<E){E-=S;do O[a++]=d[R++];while(--S);if(R=0,h<E){S=h,E-=S;do O[a++]=d[R++];while(--S);R=a-_,F=O}}}else if(R+=h-S,S<E){E-=S;do O[a++]=d[R++];while(--S);R=a-_,F=O}for(;E>2;)O[a++]=F[R++],O[a++]=F[R++],O[a++]=F[R++],E-=3;E&&(O[a++]=F[R++],E>1&&(O[a++]=F[R++]))}else{R=a-_;do O[a++]=O[R++],O[a++]=O[R++],O[a++]=O[R++],E-=3;while(E>2);E&&(O[a++]=O[R++],E>1&&(O[a++]=O[R++]))}}else if(S&64){t.msg="invalid distance code",r.mode=mp;break e}else{A=m[(A&65535)+(p&(1<<S)-1)];continue n}break}}else if(S&64)if(S&32){r.mode=rJ;break e}else{t.msg="invalid literal/length code",r.mode=mp;break e}else{A=b[(A&65535)+(p&(1<<S)-1)];continue t}break}}while(i<o&&a<l);E=g>>3,i-=E,g-=E<<3,p&=(1<<g)-1,t.next_in=i,t.next_out=a,t.avail_in=i<o?5+(o-i):5-(i-o),t.avail_out=a<l?257+(l-a):257-(a-l),r.hold=p,r.bits=g},e5=Li,_l=15,t5=852,n5=592,r5=0,uy=1,i5=2,oJ=[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],aJ=[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],sJ=[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],lJ=[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],cJ=function(t,n,r,i,o,a,s,l){var c=l.bits,u=0,f=0,h=0,d=0,p=0,g=0,b=0,m=0,v=0,x=0,A,S,E,_,R,F=null,H=0,O,Z=new e5.Buf16(_l+1),ne=new e5.Buf16(_l+1),le=null,ie=0,pe,ge,Ee;for(u=0;u<=_l;u++)Z[u]=0;for(f=0;f<i;f++)Z[n[r+f]]++;for(p=c,d=_l;d>=1&&Z[d]===0;d--);if(p>d&&(p=d),d===0)return o[a++]=1<<24|64<<16|0,o[a++]=1<<24|64<<16|0,l.bits=1,0;for(h=1;h<d&&Z[h]===0;h++);for(p<h&&(p=h),m=1,u=1;u<=_l;u++)if(m<<=1,m-=Z[u],m<0)return-1;if(m>0&&(t===r5||d!==1))return-1;for(ne[1]=0,u=1;u<_l;u++)ne[u+1]=ne[u]+Z[u];for(f=0;f<i;f++)n[r+f]!==0&&(s[ne[n[r+f]]++]=f);if(t===r5?(F=le=s,O=19):t===uy?(F=oJ,H-=257,le=aJ,ie-=257,O=256):(F=sJ,le=lJ,O=-1),x=0,f=0,u=h,R=a,g=p,b=0,E=-1,v=1<<p,_=v-1,t===uy&&v>t5||t===i5&&v>n5)return 1;for(;;){pe=u-b,s[f]<O?(ge=0,Ee=s[f]):s[f]>O?(ge=le[ie+s[f]],Ee=F[H+s[f]]):(ge=96,Ee=0),A=1<<u-b,S=1<<g,h=S;do S-=A,o[R+(x>>b)+S]=pe<<24|ge<<16|Ee|0;while(S!==0);for(A=1<<u-1;x&A;)A>>=1;if(A!==0?(x&=A-1,x+=A):x=0,f++,--Z[u]===0){if(u===d)break;u=n[r+s[f]]}if(u>p&&(x&_)!==E){for(b===0&&(b=p),R+=h,g=u-b,m=1<<g;g+b<d&&(m-=Z[g+b],!(m<=0));)g++,m<<=1;if(v+=1<<g,t===uy&&v>t5||t===i5&&v>n5)return 1;E=x&_,o[E]=p<<24|g<<16|R-a|0}}return x!==0&&(o[R+x]=u-b<<24|64<<16|0),l.bits=p,0},On=Li,fy=L6,ri=N6,uJ=iJ,Tf=cJ,fJ=0,o5=1,a5=2,s5=4,hJ=5,bp=6,rs=0,dJ=1,pJ=2,tr=-2,l5=-3,c5=-4,gJ=-5,u5=8,f5=1,h5=2,d5=3,p5=4,g5=5,m5=6,b5=7,y5=8,w5=9,v5=10,yp=11,zi=12,hy=13,x5=14,dy=15,A5=16,E5=17,S5=18,_5=19,wp=20,vp=21,C5=22,k5=23,T5=24,I5=25,R5=26,py=27,D5=28,B5=29,dt=30,F5=31,mJ=32,bJ=852,yJ=592,wJ=15,vJ=wJ;function M5(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function xJ(){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 On.Buf16(320),this.work=new On.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function P5(e){var t;return!e||!e.state?tr:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=f5,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new On.Buf32(bJ),t.distcode=t.distdyn=new On.Buf32(yJ),t.sane=1,t.back=-1,rs)}function O5(e){var t;return!e||!e.state?tr:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,P5(e))}function L5(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))?tr:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,O5(e))}function N5(e,t){var n,r;return e?(r=new xJ,e.state=r,r.window=null,n=L5(e,t),n!==rs&&(e.state=null),n):tr}function AJ(e){return N5(e,vJ)}var z5=!0,gy,my;function EJ(e){if(z5){var t;for(gy=new On.Buf32(512),my=new On.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(Tf(o5,e.lens,0,288,gy,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Tf(a5,e.lens,0,32,my,0,e.work,{bits:5}),z5=!1}e.lencode=gy,e.lenbits=9,e.distcode=my,e.distbits=5}function U5(e,t,n,r){var i,o=e.state;return o.window===null&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new On.Buf8(o.wsize)),r>=o.wsize?(On.arraySet(o.window,t,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),On.arraySet(o.window,t,n-r,i,o.wnext),r-=i,r?(On.arraySet(o.window,t,n-r,r,0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=i))),0}function SJ(e,t){var n,r,i,o,a,s,l,c,u,f,h,d,p,g,b=0,m,v,x,A,S,E,_,R,F=new On.Buf8(4),H,O,Z=[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 tr;n=e.state,n.mode===zi&&(n.mode=hy),a=e.next_out,i=e.output,l=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,f=s,h=l,R=rs;e:for(;;)switch(n.mode){case f5:if(n.wrap===0){n.mode=hy;break}for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(n.wrap&2&&c===35615){n.check=0,F[0]=c&255,F[1]=c>>>8&255,n.check=ri(n.check,F,2,0),c=0,u=0,n.mode=h5;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=dt;break}if((c&15)!==u5){e.msg="unknown compression method",n.mode=dt;break}if(c>>>=4,u-=4,_=(c&15)+8,n.wbits===0)n.wbits=_;else if(_>n.wbits){e.msg="invalid window size",n.mode=dt;break}n.dmax=1<<_,e.adler=n.check=1,n.mode=c&512?v5:zi,c=0,u=0;break;case h5:for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(n.flags=c,(n.flags&255)!==u5){e.msg="unknown compression method",n.mode=dt;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=dt;break}n.head&&(n.head.text=c>>8&1),n.flags&512&&(F[0]=c&255,F[1]=c>>>8&255,n.check=ri(n.check,F,2,0)),c=0,u=0,n.mode=d5;case d5:for(;u<32;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}n.head&&(n.head.time=c),n.flags&512&&(F[0]=c&255,F[1]=c>>>8&255,F[2]=c>>>16&255,F[3]=c>>>24&255,n.check=ri(n.check,F,4,0)),c=0,u=0,n.mode=p5;case p5:for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}n.head&&(n.head.xflags=c&255,n.head.os=c>>8),n.flags&512&&(F[0]=c&255,F[1]=c>>>8&255,n.check=ri(n.check,F,2,0)),c=0,u=0,n.mode=g5;case g5:if(n.flags&1024){for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}n.length=c,n.head&&(n.head.extra_len=c),n.flags&512&&(F[0]=c&255,F[1]=c>>>8&255,n.check=ri(n.check,F,2,0)),c=0,u=0}else n.head&&(n.head.extra=null);n.mode=m5;case m5:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(_=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),On.arraySet(n.head.extra,r,o,d,_)),n.flags&512&&(n.check=ri(n.check,r,d,o)),s-=d,o+=d,n.length-=d),n.length))break e;n.length=0,n.mode=b5;case b5:if(n.flags&2048){if(s===0)break e;d=0;do _=r[o+d++],n.head&&_&&n.length<65536&&(n.head.name+=String.fromCharCode(_));while(_&&d<s);if(n.flags&512&&(n.check=ri(n.check,r,d,o)),s-=d,o+=d,_)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=y5;case y5:if(n.flags&4096){if(s===0)break e;d=0;do _=r[o+d++],n.head&&_&&n.length<65536&&(n.head.comment+=String.fromCharCode(_));while(_&&d<s);if(n.flags&512&&(n.check=ri(n.check,r,d,o)),s-=d,o+=d,_)break e}else n.head&&(n.head.comment=null);n.mode=w5;case w5:if(n.flags&512){for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(c!==(n.check&65535)){e.msg="header crc mismatch",n.mode=dt;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=zi;break;case v5:for(;u<32;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}e.adler=n.check=M5(c),c=0,u=0,n.mode=yp;case yp:if(n.havedict===0)return e.next_out=a,e.avail_out=l,e.next_in=o,e.avail_in=s,n.hold=c,n.bits=u,pJ;e.adler=n.check=1,n.mode=zi;case zi:if(t===hJ||t===bp)break e;case hy:if(n.last){c>>>=u&7,u-=u&7,n.mode=py;break}for(;u<3;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}switch(n.last=c&1,c>>>=1,u-=1,c&3){case 0:n.mode=x5;break;case 1:if(EJ(n),n.mode=wp,t===bp){c>>>=2,u-=2;break e}break;case 2:n.mode=E5;break;case 3:e.msg="invalid block type",n.mode=dt}c>>>=2,u-=2;break;case x5:for(c>>>=u&7,u-=u&7;u<32;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if((c&65535)!==(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=dt;break}if(n.length=c&65535,c=0,u=0,n.mode=dy,t===bp)break e;case dy:n.mode=A5;case A5:if(d=n.length,d){if(d>s&&(d=s),d>l&&(d=l),d===0)break e;On.arraySet(i,r,o,d,a),s-=d,o+=d,l-=d,a+=d,n.length-=d;break}n.mode=zi;break;case E5:for(;u<14;){if(s===0)break e;s--,c+=r[o++]<<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=dt;break}n.have=0,n.mode=S5;case S5:for(;n.have<n.ncode;){for(;u<3;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}n.lens[Z[n.have++]]=c&7,c>>>=3,u-=3}for(;n.have<19;)n.lens[Z[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,H={bits:n.lenbits},R=Tf(fJ,n.lens,0,19,n.lencode,0,n.work,H),n.lenbits=H.bits,R){e.msg="invalid code lengths set",n.mode=dt;break}n.have=0,n.mode=_5;case _5:for(;n.have<n.nlen+n.ndist;){for(;b=n.lencode[c&(1<<n.lenbits)-1],m=b>>>24,v=b>>>16&255,x=b&65535,!(m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(x<16)c>>>=m,u-=m,n.lens[n.have++]=x;else{if(x===16){for(O=m+2;u<O;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(c>>>=m,u-=m,n.have===0){e.msg="invalid bit length repeat",n.mode=dt;break}_=n.lens[n.have-1],d=3+(c&3),c>>>=2,u-=2}else if(x===17){for(O=m+3;u<O;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}c>>>=m,u-=m,_=0,d=3+(c&7),c>>>=3,u-=3}else{for(O=m+7;u<O;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}c>>>=m,u-=m,_=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=dt;break}for(;d--;)n.lens[n.have++]=_}}if(n.mode===dt)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=dt;break}if(n.lenbits=9,H={bits:n.lenbits},R=Tf(o5,n.lens,0,n.nlen,n.lencode,0,n.work,H),n.lenbits=H.bits,R){e.msg="invalid literal/lengths set",n.mode=dt;break}if(n.distbits=6,n.distcode=n.distdyn,H={bits:n.distbits},R=Tf(a5,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,H),n.distbits=H.bits,R){e.msg="invalid distances set",n.mode=dt;break}if(n.mode=wp,t===bp)break e;case wp:n.mode=vp;case vp:if(s>=6&&l>=258){e.next_out=a,e.avail_out=l,e.next_in=o,e.avail_in=s,n.hold=c,n.bits=u,uJ(e,h),a=e.next_out,i=e.output,l=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,n.mode===zi&&(n.back=-1);break}for(n.back=0;b=n.lencode[c&(1<<n.lenbits)-1],m=b>>>24,v=b>>>16&255,x=b&65535,!(m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(v&&!(v&240)){for(A=m,S=v,E=x;b=n.lencode[E+((c&(1<<A+S)-1)>>A)],m=b>>>24,v=b>>>16&255,x=b&65535,!(A+m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}c>>>=A,u-=A,n.back+=A}if(c>>>=m,u-=m,n.back+=m,n.length=x,v===0){n.mode=R5;break}if(v&32){n.back=-1,n.mode=zi;break}if(v&64){e.msg="invalid literal/length code",n.mode=dt;break}n.extra=v&15,n.mode=C5;case C5:if(n.extra){for(O=n.extra;u<O;){if(s===0)break e;s--,c+=r[o++]<<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=k5;case k5:for(;b=n.distcode[c&(1<<n.distbits)-1],m=b>>>24,v=b>>>16&255,x=b&65535,!(m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(!(v&240)){for(A=m,S=v,E=x;b=n.distcode[E+((c&(1<<A+S)-1)>>A)],m=b>>>24,v=b>>>16&255,x=b&65535,!(A+m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}c>>>=A,u-=A,n.back+=A}if(c>>>=m,u-=m,n.back+=m,v&64){e.msg="invalid distance code",n.mode=dt;break}n.offset=x,n.extra=v&15,n.mode=T5;case T5:if(n.extra){for(O=n.extra;u<O;){if(s===0)break e;s--,c+=r[o++]<<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=dt;break}n.mode=I5;case I5: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=dt;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=a-n.offset,d=n.length;d>l&&(d=l),l-=d,n.length-=d;do i[a++]=g[p++];while(--d);n.length===0&&(n.mode=vp);break;case R5:if(l===0)break e;i[a++]=n.length,l--,n.mode=vp;break;case py:if(n.wrap){for(;u<32;){if(s===0)break e;s--,c|=r[o++]<<u,u+=8}if(h-=l,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?ri(n.check,i,h,a-h):fy(n.check,i,h,a-h)),h=l,(n.flags?c:M5(c))!==n.check){e.msg="incorrect data check",n.mode=dt;break}c=0,u=0}n.mode=D5;case D5:if(n.wrap&&n.flags){for(;u<32;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(c!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=dt;break}c=0,u=0}n.mode=B5;case B5:R=dJ;break e;case dt:R=l5;break e;case F5:return c5;case mJ:default:return tr}return e.next_out=a,e.avail_out=l,e.next_in=o,e.avail_in=s,n.hold=c,n.bits=u,(n.wsize||h!==e.avail_out&&n.mode<dt&&(n.mode<py||t!==s5))&&U5(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?ri(n.check,i,h,e.next_out-h):fy(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===zi?128:0)+(n.mode===wp||n.mode===dy?256:0),(f===0&&h===0||t===s5)&&R===rs&&(R=gJ),R}function _J(e){if(!e||!e.state)return tr;var t=e.state;return t.window&&(t.window=null),e.state=null,rs}function CJ(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?tr:(n.head=t,t.done=!1,rs)}function kJ(e,t){var n=t.length,r,i,o;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==yp)?tr:r.mode===yp&&(i=1,i=fy(i,t,n,0),i!==r.check)?l5:(o=U5(e,t,n,n),o?(r.mode=F5,c5):(r.havedict=1,rs))}Cr.inflateReset=O5,Cr.inflateReset2=L5,Cr.inflateResetKeep=P5,Cr.inflateInit=AJ,Cr.inflateInit2=N5,Cr.inflate=SJ,Cr.inflateEnd=_J,Cr.inflateGetHeader=CJ,Cr.inflateSetDictionary=kJ,Cr.inflateInfo="pako inflate (from Nodeca project)";var $5={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 TJ(){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 IJ=TJ,Cl=Cr,If=Li,xp=ts,xt=$5,by=ty,RJ=Q6,DJ=IJ,H5=Object.prototype.toString;function is(e){if(!(this instanceof is))return new is(e);this.options=If.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 RJ,this.strm.avail_out=0;var n=Cl.inflateInit2(this.strm,t.windowBits);if(n!==xt.Z_OK)throw new Error(by[n]);if(this.header=new DJ,Cl.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=xp.string2buf(t.dictionary):H5.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=Cl.inflateSetDictionary(this.strm,t.dictionary),n!==xt.Z_OK)))throw new Error(by[n])}is.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,o,a,s,l,c,u=!1;if(this.ended)return!1;a=t===~~t?t:t===!0?xt.Z_FINISH:xt.Z_NO_FLUSH,typeof e=="string"?n.input=xp.binstring2buf(e):H5.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 If.Buf8(r),n.next_out=0,n.avail_out=r),o=Cl.inflate(n,xt.Z_NO_FLUSH),o===xt.Z_NEED_DICT&&i&&(o=Cl.inflateSetDictionary(this.strm,i)),o===xt.Z_BUF_ERROR&&u===!0&&(o=xt.Z_OK,u=!1),o!==xt.Z_STREAM_END&&o!==xt.Z_OK)return this.onEnd(o),this.ended=!0,!1;n.next_out&&(n.avail_out===0||o===xt.Z_STREAM_END||n.avail_in===0&&(a===xt.Z_FINISH||a===xt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=xp.utf8border(n.output,n.next_out),l=n.next_out-s,c=xp.buf2string(n.output,s),n.next_out=l,n.avail_out=r-l,l&&If.arraySet(n.output,n.output,s,l,0),this.onData(c)):this.onData(If.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)&&o!==xt.Z_STREAM_END);return o===xt.Z_STREAM_END&&(a=xt.Z_FINISH),a===xt.Z_FINISH?(o=Cl.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,o===xt.Z_OK):(a===xt.Z_SYNC_FLUSH&&(this.onEnd(xt.Z_OK),n.avail_out=0),!0)},is.prototype.onData=function(e){this.chunks.push(e)},is.prototype.onEnd=function(e){e===xt.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=If.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function yy(e,t){var n=new is(t);if(n.push(e,!0),n.err)throw n.msg||by[n.err];return n.result}function BJ(e,t){return t=t||{},t.raw=!0,yy(e,t)}kf.Inflate=is,kf.inflate=yy,kf.inflateRaw=BJ,kf.ungzip=yy;var FJ=Li.assign,MJ=pf,PJ=kf,OJ=$5,G5={};FJ(G5,MJ,PJ,OJ);var Ap=G5;async function Uo(e){try{let t,n=0,r=0;const i=[];let o=0,a;do{const l=e.subarray(n);if(a=new Ap.Inflate,{strm:t}=a,a.push(l,Ap.Z_SYNC_FLUSH),a.err)throw new Error(a.msg);n+=t.next_in,i[r]=a.result,o+=i[r].length,r+=1}while(t.avail_in);const s=new Uint8Array(o);for(let l=0,c=0;l<i.length;l++)s.set(i[l],c),c+=i[l].length;return Ne.Buffer.from(s)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function V5(e,t){try{let n;const{minv:r,maxv:i}=t;let o=r.blockPosition,a=r.dataPosition;const s=[],l=[],c=[];let u=0,f=0;do{const p=e.subarray(o-r.blockPosition),g=new Ap.Inflate;if({strm:n}=g,g.push(p,Ap.Z_SYNC_FLUSH),g.err)throw new Error(g.msg);const b=g.result;s.push(b);let m=b.length;l.push(o),c.push(a),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),m=s[0].length);const v=o;if(o+=n.next_in,a+=m,v>=i.blockPosition){s[f]=s[f].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),l.push(o),c.push(a),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:Ne.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}}var LJ=rt,nr=null;try{nr=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 rt(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}rt.prototype.__isLong__,Object.defineProperty(rt.prototype,"__isLong__",{value:!0});function En(e){return(e&&e.__isLong__)===!0}rt.isLong=En;var j5={},q5={};function os(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=q5[e],r)?r:(n=it(e,(e|0)<0?-1:0,!0),i&&(q5[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=j5[e],r)?r:(n=it(e,e<0?-1:0,!1),i&&(j5[e]=n),n))}rt.fromInt=os;function rr(e,t){if(isNaN(e))return t?as:ir;if(t){if(e<0)return as;if(e>=Y5)return J5}else{if(e<=-Z5)return Sn;if(e+1>=Z5)return K5}return e<0?rr(-e,t).neg():it(e%kl|0,e/kl|0,t)}rt.fromNumber=rr;function it(e,t,n){return new rt(e,t,n)}rt.fromBits=it;var Ep=Math.pow;function wy(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return ir;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 wy(e.substring(1),t,n).neg();for(var i=rr(Ep(n,8)),o=ir,a=0;a<e.length;a+=8){var s=Math.min(8,e.length-a),l=parseInt(e.substring(a,a+s),n);if(s<8){var c=rr(Ep(n,s));o=o.mul(c).add(rr(l))}else o=o.mul(i),o=o.add(rr(l))}return o.unsigned=t,o}rt.fromString=wy;function kr(e,t){return typeof e=="number"?rr(e,t):typeof e=="string"?wy(e,t):it(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}rt.fromValue=kr;var W5=65536,NJ=1<<24,kl=W5*W5,Y5=kl*kl,Z5=Y5/2,Q5=os(NJ),ir=os(0);rt.ZERO=ir;var as=os(0,!0);rt.UZERO=as;var Tl=os(1);rt.ONE=Tl;var X5=os(1,!0);rt.UONE=X5;var vy=os(-1);rt.NEG_ONE=vy;var K5=it(-1,2147483647,!1);rt.MAX_VALUE=K5;var J5=it(-1,-1,!0);rt.MAX_UNSIGNED_VALUE=J5;var Sn=it(0,-2147483648,!1);rt.MIN_VALUE=Sn;var re=rt.prototype;re.toInt=function(){return this.unsigned?this.low>>>0:this.low},re.toNumber=function(){return this.unsigned?(this.high>>>0)*kl+(this.low>>>0):this.high*kl+(this.low>>>0)},re.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(Sn)){var n=rr(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 o=rr(Ep(t,6),this.unsigned),a=this,s="";;){var l=a.div(o),c=a.sub(l.mul(o)).toInt()>>>0,u=c.toString(t);if(a=l,a.isZero())return u+s;for(;u.length<6;)u="0"+u;s=""+u+s}},re.getHighBits=function(){return this.high},re.getHighBitsUnsigned=function(){return this.high>>>0},re.getLowBits=function(){return this.low},re.getLowBitsUnsigned=function(){return this.low>>>0},re.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Sn)?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},re.isZero=function(){return this.high===0&&this.low===0},re.eqz=re.isZero,re.isNegative=function(){return!this.unsigned&&this.high<0},re.isPositive=function(){return this.unsigned||this.high>=0},re.isOdd=function(){return(this.low&1)===1},re.isEven=function(){return(this.low&1)===0},re.equals=function(t){return En(t)||(t=kr(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},re.eq=re.equals,re.notEquals=function(t){return!this.eq(t)},re.neq=re.notEquals,re.ne=re.notEquals,re.lessThan=function(t){return this.comp(t)<0},re.lt=re.lessThan,re.lessThanOrEqual=function(t){return this.comp(t)<=0},re.lte=re.lessThanOrEqual,re.le=re.lessThanOrEqual,re.greaterThan=function(t){return this.comp(t)>0},re.gt=re.greaterThan,re.greaterThanOrEqual=function(t){return this.comp(t)>=0},re.gte=re.greaterThanOrEqual,re.ge=re.greaterThanOrEqual,re.compare=function(t){if(En(t)||(t=kr(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},re.comp=re.compare,re.negate=function(){return!this.unsigned&&this.eq(Sn)?Sn:this.not().add(Tl)},re.neg=re.negate,re.add=function(t){En(t)||(t=kr(t));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,o=this.low&65535,a=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+=o+c,h+=d>>>16,d&=65535,h+=i+l,f+=h>>>16,h&=65535,f+=r+s,u+=f>>>16,f&=65535,u+=n+a,u&=65535,it(h<<16|d,u<<16|f,this.unsigned)},re.subtract=function(t){return En(t)||(t=kr(t)),this.add(t.neg())},re.sub=re.subtract,re.multiply=function(t){if(this.isZero())return ir;if(En(t)||(t=kr(t)),nr){var n=nr.mul(this.low,this.high,t.low,t.high);return it(n,nr.get_high(),this.unsigned)}if(t.isZero())return ir;if(this.eq(Sn))return t.isOdd()?Sn:ir;if(t.eq(Sn))return this.isOdd()?Sn:ir;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(Q5)&&t.lt(Q5))return rr(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,o=this.low>>>16,a=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+=a*u,d+=p>>>16,p&=65535,d+=o*u,h+=d>>>16,d&=65535,d+=a*c,h+=d>>>16,d&=65535,h+=i*u,f+=h>>>16,h&=65535,h+=o*c,f+=h>>>16,h&=65535,h+=a*l,f+=h>>>16,h&=65535,f+=r*u+i*c+o*l+a*s,f&=65535,it(d<<16|p,f<<16|h,this.unsigned)},re.mul=re.multiply,re.divide=function(t){if(En(t)||(t=kr(t)),t.isZero())throw Error("division by zero");if(nr){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?nr.div_u:nr.div_s)(this.low,this.high,t.low,t.high);return it(n,nr.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?as:ir;var r,i,o;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return as;if(t.gt(this.shru(1)))return X5;o=as}else{if(this.eq(Sn)){if(t.eq(Tl)||t.eq(vy))return Sn;if(t.eq(Sn))return Tl;var a=this.shr(1);return r=a.div(t).shl(1),r.eq(ir)?t.isNegative()?Tl:vy:(i=this.sub(t.mul(r)),o=r.add(i.div(t)),o)}else if(t.eq(Sn))return this.unsigned?as:ir;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();o=ir}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:Ep(2,s-48),c=rr(r),u=c.mul(t);u.isNegative()||u.gt(i);)r-=l,c=rr(r,this.unsigned),u=c.mul(t);c.isZero()&&(c=Tl),o=o.add(c),i=i.sub(u)}return o},re.div=re.divide,re.modulo=function(t){if(En(t)||(t=kr(t)),nr){var n=(this.unsigned?nr.rem_u:nr.rem_s)(this.low,this.high,t.low,t.high);return it(n,nr.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},re.mod=re.modulo,re.rem=re.modulo,re.not=function(){return it(~this.low,~this.high,this.unsigned)},re.and=function(t){return En(t)||(t=kr(t)),it(this.low&t.low,this.high&t.high,this.unsigned)},re.or=function(t){return En(t)||(t=kr(t)),it(this.low|t.low,this.high|t.high,this.unsigned)},re.xor=function(t){return En(t)||(t=kr(t)),it(this.low^t.low,this.high^t.high,this.unsigned)},re.shiftLeft=function(t){return En(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?it(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):it(0,this.low<<t-32,this.unsigned)},re.shl=re.shiftLeft,re.shiftRight=function(t){return En(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?it(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):it(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},re.shr=re.shiftRight,re.shiftRightUnsigned=function(t){if(En(t)&&(t=t.toInt()),t&=63,t===0)return this;var n=this.high;if(t<32){var r=this.low;return it(r>>>t|n<<32-t,n>>>t,this.unsigned)}else return t===32?it(n,0,this.unsigned):it(n>>>t-32,0,this.unsigned)},re.shru=re.shiftRightUnsigned,re.shr_u=re.shiftRightUnsigned,re.toSigned=function(){return this.unsigned?it(this.low,this.high,!1):this},re.toUnsigned=function(){return this.unsigned?this:it(this.low,this.high,!0)},re.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},re.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]},re.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]},rt.fromBytes=function(t,n,r){return r?rt.fromBytesLE(t,n):rt.fromBytesBE(t,n)},rt.fromBytesLE=function(t,n){return new rt(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)},rt.fromBytesBE=function(t,n){return new rt(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)};const Sp=op(LJ),_p=1;class zJ{constructor({filehandle:t,path:n}){if(t)this.filehandle=t;else if(n)this.filehandle=new zt(n);else throw new TypeError("either filehandle or path must be defined")}_readLongWithOverflow(t,n=0,r=!0){const i=Sp.fromBytesLE(t.slice(n,n+8),r);if(i.greaterThan(Number.MAX_SAFE_INTEGER)||i.lessThan(Number.MIN_SAFE_INTEGER))throw new TypeError("integer overflow");return i.toNumber()}_getIndex(){return this.index||(this.index=this._readIndex()),this.index}async _readIndex(){let t=Ne.Buffer.allocUnsafe(8);await this.filehandle.read(t,0,8,0);const n=this._readLongWithOverflow(t,0,!0);if(!n)return[[0,0]];const r=new Array(n+1);r[0]=[0,0];const i=8*2*n;if(i>Number.MAX_SAFE_INTEGER)throw new TypeError("integer overflow");t=Ne.Buffer.allocUnsafe(i),await this.filehandle.read(t,0,i,8);for(let o=0;o<n;o+=1){const a=this._readLongWithOverflow(t,o*16),s=this._readLongWithOverflow(t,o*16+8);r[o+1]=[a,s]}return r}async getLastBlock(){const t=await this._getIndex();if(t.length)return t[t.length-1]}async getRelevantBlocksForRead(t,n){const r=n+t;if(t===0)return[];const i=await this._getIndex(),o=[],a=(h,d)=>{const p=h[_p],g=d?d[_p]:1/0;return p<=n&&g>n?0:p<n?-1:1};let s=0,l=i.length-1,c=Math.floor(i.length/2),u=a(i[c],i[c+1]);for(;u!==0;)u>0?l=c-1:u<0&&(s=c+1),c=Math.ceil((l-s)/2)+s,u=a(i[c],i[c+1]);o.push(i[c]);let f=c+1;for(;f<i.length&&(o.push(i[f]),!(i[f][_p]>=r));f+=1);return o[o.length-1][_p]<r&&o.push([]),o}}class e8{constructor({filehandle:t,path:n,gziFilehandle:r,gziPath:i}){if(t)this.filehandle=t;else if(n)this.filehandle=new zt(n);else throw new TypeError("either filehandle or path must be defined");if(!r&&!i&&!n)throw new TypeError("either gziFilehandle or gziPath must be defined");this.gzi=new zJ({filehandle:r,path:!r&&!i&&n?i:`${n}.gzi`})}async stat(){const t=await this.filehandle.stat();return Object.assign(t,{size:await this.getUncompressedFileSize(),blocks:void 0,blksize:void 0})}async getUncompressedFileSize(){const[,t]=await this.gzi.getLastBlock(),{size:n}=await this.filehandle.stat(),r=Ne.Buffer.allocUnsafe(4),{bytesRead:i}=await this.filehandle.read(r,0,4,n-28-4);if(i!==4)throw new Error("read error");const o=r.readUInt32LE(0);return t+o}async _readAndUncompressBlock(t,[n],[r]){let i=r;i||(i=(await this.filehandle.stat()).size);const o=i-n;return await this.filehandle.read(t,0,o,n),await Uo(t.slice(0,o))}async read(t,n,r,i){const o=await this.gzi.getRelevantBlocksForRead(r,i),a=Ne.Buffer.allocUnsafe(32768*2);let s=n,l=0;for(let c=0;c<o.length-1;c+=1){const u=await this._readAndUncompressBlock(a,o[c],o[c+1]),[,f]=o[c],h=f>=i?0:i-f,d=Math.min(i+r,f+u.length)-f;h>=0&&h<u.length&&(u.copy(t,s,h,d),s+=d-h,l+=d-h)}return{bytesRead:l,buffer:t}}}function t8(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function UJ(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 o=n.toString("utf8").split(/\r?\n/).filter(a=>/\S/.test(a)).map(a=>a.split(" ")).filter(a=>a[0]!=="").map(a=>((!i||i.name!==a[0])&&(i={name:a[0],id:r},r+=1),{id:i.id,name:a[0],length:+a[1],start:0,end:+a[1],offset:+a[2],lineLength:+a[3],lineBytes:+a[4]}));return{name:Object.fromEntries(o.map(a=>[a.name,a])),id:Object.fromEntries(o.map(a=>[a.id,a]))}}class n8{constructor({fasta:t,fai:n,path:r,faiPath:i}){if(t)this.fasta=t;else if(r)this.fasta=new zt(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 zt(i);else if(r)this.fai=new zt(`${r}.fai`);else throw new Error("Need to pass filehandle for or path to localfile")}async _getIndexes(t){return this.indexes||(this.indexes=UJ(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 o=0;o<i.length;o+=1)n[i[o].name]=i[o].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 o=(await this._getIndexes(i)).id[t];if(o)return this._fetchFromIndexEntry(o,n,r,i)}async getResiduesByName(t,n,r,i){const o=(await this._getIndexes(i)).name[t];if(o)return this._fetchFromIndexEntry(o,n,r,i)}async getSequence(t,n,r,i){return this.getResiduesByName(t,n,r,i)}async _fetchFromIndexEntry(t,n=0,r,i){let o=r;if(n<0)throw new TypeError("regionStart cannot be less than 0");if((o===void 0||o>t.length)&&(o=t.length),n>=o)return"";const a=t8(t,n),s=t8(t,o)-a,l=Buffer.allocUnsafe(s);return await this.fasta.read(l,0,s,a,i),l.toString("utf8").replace(/\s+/g,"")}}class $J extends n8{constructor({fasta:t,path:n,fai:r,faiPath:i,gzi:o,gziPath:a}){super({fasta:t,path:n,fai:r,faiPath:i}),t&&o?this.fasta=new e8({filehandle:t,gziFilehandle:o}):n&&a&&(this.fasta=new e8({path:n,gziPath:a}))}}function r8(e){return e.split(">").filter(t=>/\S/.test(t)).map(t=>{const[n,...r]=t.split(`
|
3749
|
+
*/(function(e){const t=ap,n=V2,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=s,e.SlowBuffer=v,e.INSPECT_MAX_BYTES=50;const i=2147483647;e.kMaxLength=i,s.TYPED_ARRAY_SUPPORT=o(),!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 o(){try{const C=new Uint8Array(1),y={foo:function(){return 42}};return Object.setPrototypeOf(y,Uint8Array.prototype),Object.setPrototypeOf(C,y),C.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 a(C){if(C>i)throw new RangeError('The value "'+C+'" is invalid for option "size"');const y=new Uint8Array(C);return Object.setPrototypeOf(y,s.prototype),y}function s(C,y,w){if(typeof C=="number"){if(typeof y=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return f(C)}return l(C,y,w)}s.poolSize=8192;function l(C,y,w){if(typeof C=="string")return h(C,y);if(ArrayBuffer.isView(C))return p(C);if(C==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof C);if(Ht(C,ArrayBuffer)||C&&Ht(C.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Ht(C,SharedArrayBuffer)||C&&Ht(C.buffer,SharedArrayBuffer)))return g(C,y,w);if(typeof C=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const D=C.valueOf&&C.valueOf();if(D!=null&&D!==C)return s.from(D,y,w);const N=b(C);if(N)return N;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof C[Symbol.toPrimitive]=="function")return s.from(C[Symbol.toPrimitive]("string"),y,w);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof C)}s.from=function(C,y,w){return l(C,y,w)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function c(C){if(typeof C!="number")throw new TypeError('"size" argument must be of type number');if(C<0)throw new RangeError('The value "'+C+'" is invalid for option "size"')}function u(C,y,w){return c(C),C<=0?a(C):y!==void 0?typeof w=="string"?a(C).fill(y,w):a(C).fill(y):a(C)}s.alloc=function(C,y,w){return u(C,y,w)};function f(C){return c(C),a(C<0?0:m(C)|0)}s.allocUnsafe=function(C){return f(C)},s.allocUnsafeSlow=function(C){return f(C)};function h(C,y){if((typeof y!="string"||y==="")&&(y="utf8"),!s.isEncoding(y))throw new TypeError("Unknown encoding: "+y);const w=x(C,y)|0;let D=a(w);const N=D.write(C,y);return N!==w&&(D=D.slice(0,N)),D}function d(C){const y=C.length<0?0:m(C.length)|0,w=a(y);for(let D=0;D<y;D+=1)w[D]=C[D]&255;return w}function p(C){if(Ht(C,Uint8Array)){const y=new Uint8Array(C);return g(y.buffer,y.byteOffset,y.byteLength)}return d(C)}function g(C,y,w){if(y<0||C.byteLength<y)throw new RangeError('"offset" is outside of buffer bounds');if(C.byteLength<y+(w||0))throw new RangeError('"length" is outside of buffer bounds');let D;return y===void 0&&w===void 0?D=new Uint8Array(C):w===void 0?D=new Uint8Array(C,y):D=new Uint8Array(C,y,w),Object.setPrototypeOf(D,s.prototype),D}function b(C){if(s.isBuffer(C)){const y=m(C.length)|0,w=a(y);return w.length===0||C.copy(w,0,0,y),w}if(C.length!==void 0)return typeof C.length!="number"||Fr(C.length)?a(0):d(C);if(C.type==="Buffer"&&Array.isArray(C.data))return d(C.data)}function m(C){if(C>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return C|0}function v(C){return+C!=C&&(C=0),s.alloc(+C)}s.isBuffer=function(y){return y!=null&&y._isBuffer===!0&&y!==s.prototype},s.compare=function(y,w){if(Ht(y,Uint8Array)&&(y=s.from(y,y.offset,y.byteLength)),Ht(w,Uint8Array)&&(w=s.from(w,w.offset,w.byteLength)),!s.isBuffer(y)||!s.isBuffer(w))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(y===w)return 0;let D=y.length,N=w.length;for(let G=0,Y=Math.min(D,N);G<Y;++G)if(y[G]!==w[G]){D=y[G],N=w[G];break}return D<N?-1:N<D?1:0},s.isEncoding=function(y){switch(String(y).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(y,w){if(!Array.isArray(y))throw new TypeError('"list" argument must be an Array of Buffers');if(y.length===0)return s.alloc(0);let D;if(w===void 0)for(w=0,D=0;D<y.length;++D)w+=y[D].length;const N=s.allocUnsafe(w);let G=0;for(D=0;D<y.length;++D){let Y=y[D];if(Ht(Y,Uint8Array))G+Y.length>N.length?(s.isBuffer(Y)||(Y=s.from(Y)),Y.copy(N,G)):Uint8Array.prototype.set.call(N,Y,G);else if(s.isBuffer(Y))Y.copy(N,G);else throw new TypeError('"list" argument must be an Array of Buffers');G+=Y.length}return N};function x(C,y){if(s.isBuffer(C))return C.length;if(ArrayBuffer.isView(C)||Ht(C,ArrayBuffer))return C.byteLength;if(typeof C!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof C);const w=C.length,D=arguments.length>2&&arguments[2]===!0;if(!D&&w===0)return 0;let N=!1;for(;;)switch(y){case"ascii":case"latin1":case"binary":return w;case"utf8":case"utf-8":return Ce(C).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return w*2;case"hex":return w>>>1;case"base64":return fi(C).length;default:if(N)return D?-1:Ce(C).length;y=(""+y).toLowerCase(),N=!0}}s.byteLength=x;function A(C,y,w){let D=!1;if((y===void 0||y<0)&&(y=0),y>this.length||((w===void 0||w>this.length)&&(w=this.length),w<=0)||(w>>>=0,y>>>=0,w<=y))return"";for(C||(C="utf8");;)switch(C){case"hex":return Re(this,y,w);case"utf8":case"utf-8":return le(this,y,w);case"ascii":return ge(this,y,w);case"latin1":case"binary":return Ee(this,y,w);case"base64":return ne(this,y,w);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,y,w);default:if(D)throw new TypeError("Unknown encoding: "+C);C=(C+"").toLowerCase(),D=!0}}s.prototype._isBuffer=!0;function S(C,y,w){const D=C[y];C[y]=C[w],C[w]=D}s.prototype.swap16=function(){const y=this.length;if(y%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let w=0;w<y;w+=2)S(this,w,w+1);return this},s.prototype.swap32=function(){const y=this.length;if(y%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let w=0;w<y;w+=4)S(this,w,w+3),S(this,w+1,w+2);return this},s.prototype.swap64=function(){const y=this.length;if(y%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let w=0;w<y;w+=8)S(this,w,w+7),S(this,w+1,w+6),S(this,w+2,w+5),S(this,w+3,w+4);return this},s.prototype.toString=function(){const y=this.length;return y===0?"":arguments.length===0?le(this,0,y):A.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(y){if(!s.isBuffer(y))throw new TypeError("Argument must be a Buffer");return this===y?!0:s.compare(this,y)===0},s.prototype.inspect=function(){let y="";const w=e.INSPECT_MAX_BYTES;return y=this.toString("hex",0,w).replace(/(.{2})/g,"$1 ").trim(),this.length>w&&(y+=" ... "),"<Buffer "+y+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(y,w,D,N,G){if(Ht(y,Uint8Array)&&(y=s.from(y,y.offset,y.byteLength)),!s.isBuffer(y))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof y);if(w===void 0&&(w=0),D===void 0&&(D=y?y.length:0),N===void 0&&(N=0),G===void 0&&(G=this.length),w<0||D>y.length||N<0||G>this.length)throw new RangeError("out of range index");if(N>=G&&w>=D)return 0;if(N>=G)return-1;if(w>=D)return 1;if(w>>>=0,D>>>=0,N>>>=0,G>>>=0,this===y)return 0;let Y=G-N,ke=D-w;const et=Math.min(Y,ke),Ze=this.slice(N,G),at=y.slice(w,D);for(let Ue=0;Ue<et;++Ue)if(Ze[Ue]!==at[Ue]){Y=Ze[Ue],ke=at[Ue];break}return Y<ke?-1:ke<Y?1:0};function E(C,y,w,D,N){if(C.length===0)return-1;if(typeof w=="string"?(D=w,w=0):w>2147483647?w=2147483647:w<-2147483648&&(w=-2147483648),w=+w,Fr(w)&&(w=N?0:C.length-1),w<0&&(w=C.length+w),w>=C.length){if(N)return-1;w=C.length-1}else if(w<0)if(N)w=0;else return-1;if(typeof y=="string"&&(y=s.from(y,D)),s.isBuffer(y))return y.length===0?-1:_(C,y,w,D,N);if(typeof y=="number")return y=y&255,typeof Uint8Array.prototype.indexOf=="function"?N?Uint8Array.prototype.indexOf.call(C,y,w):Uint8Array.prototype.lastIndexOf.call(C,y,w):_(C,[y],w,D,N);throw new TypeError("val must be string, number or Buffer")}function _(C,y,w,D,N){let G=1,Y=C.length,ke=y.length;if(D!==void 0&&(D=String(D).toLowerCase(),D==="ucs2"||D==="ucs-2"||D==="utf16le"||D==="utf-16le")){if(C.length<2||y.length<2)return-1;G=2,Y/=2,ke/=2,w/=2}function et(at,Ue){return G===1?at[Ue]:at.readUInt16BE(Ue*G)}let Ze;if(N){let at=-1;for(Ze=w;Ze<Y;Ze++)if(et(C,Ze)===et(y,at===-1?0:Ze-at)){if(at===-1&&(at=Ze),Ze-at+1===ke)return at*G}else at!==-1&&(Ze-=Ze-at),at=-1}else for(w+ke>Y&&(w=Y-ke),Ze=w;Ze>=0;Ze--){let at=!0;for(let Ue=0;Ue<ke;Ue++)if(et(C,Ze+Ue)!==et(y,Ue)){at=!1;break}if(at)return Ze}return-1}s.prototype.includes=function(y,w,D){return this.indexOf(y,w,D)!==-1},s.prototype.indexOf=function(y,w,D){return E(this,y,w,D,!0)},s.prototype.lastIndexOf=function(y,w,D){return E(this,y,w,D,!1)};function R(C,y,w,D){w=Number(w)||0;const N=C.length-w;D?(D=Number(D),D>N&&(D=N)):D=N;const G=y.length;D>G/2&&(D=G/2);let Y;for(Y=0;Y<D;++Y){const ke=parseInt(y.substr(Y*2,2),16);if(Fr(ke))return Y;C[w+Y]=ke}return Y}function F(C,y,w,D){return hi(Ce(y,C.length-w),C,w,D)}function H(C,y,w,D){return hi(cn(y),C,w,D)}function O(C,y,w,D){return hi(fi(y),C,w,D)}function Z(C,y,w,D){return hi(ui(y,C.length-w),C,w,D)}s.prototype.write=function(y,w,D,N){if(w===void 0)N="utf8",D=this.length,w=0;else if(D===void 0&&typeof w=="string")N=w,D=this.length,w=0;else if(isFinite(w))w=w>>>0,isFinite(D)?(D=D>>>0,N===void 0&&(N="utf8")):(N=D,D=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const G=this.length-w;if((D===void 0||D>G)&&(D=G),y.length>0&&(D<0||w<0)||w>this.length)throw new RangeError("Attempt to write outside buffer bounds");N||(N="utf8");let Y=!1;for(;;)switch(N){case"hex":return R(this,y,w,D);case"utf8":case"utf-8":return F(this,y,w,D);case"ascii":case"latin1":case"binary":return H(this,y,w,D);case"base64":return O(this,y,w,D);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Z(this,y,w,D);default:if(Y)throw new TypeError("Unknown encoding: "+N);N=(""+N).toLowerCase(),Y=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function ne(C,y,w){return y===0&&w===C.length?t.fromByteArray(C):t.fromByteArray(C.slice(y,w))}function le(C,y,w){w=Math.min(C.length,w);const D=[];let N=y;for(;N<w;){const G=C[N];let Y=null,ke=G>239?4:G>223?3:G>191?2:1;if(N+ke<=w){let et,Ze,at,Ue;switch(ke){case 1:G<128&&(Y=G);break;case 2:et=C[N+1],(et&192)===128&&(Ue=(G&31)<<6|et&63,Ue>127&&(Y=Ue));break;case 3:et=C[N+1],Ze=C[N+2],(et&192)===128&&(Ze&192)===128&&(Ue=(G&15)<<12|(et&63)<<6|Ze&63,Ue>2047&&(Ue<55296||Ue>57343)&&(Y=Ue));break;case 4:et=C[N+1],Ze=C[N+2],at=C[N+3],(et&192)===128&&(Ze&192)===128&&(at&192)===128&&(Ue=(G&15)<<18|(et&63)<<12|(Ze&63)<<6|at&63,Ue>65535&&Ue<1114112&&(Y=Ue))}}Y===null?(Y=65533,ke=1):Y>65535&&(Y-=65536,D.push(Y>>>10&1023|55296),Y=56320|Y&1023),D.push(Y),N+=ke}return pe(D)}const ie=4096;function pe(C){const y=C.length;if(y<=ie)return String.fromCharCode.apply(String,C);let w="",D=0;for(;D<y;)w+=String.fromCharCode.apply(String,C.slice(D,D+=ie));return w}function ge(C,y,w){let D="";w=Math.min(C.length,w);for(let N=y;N<w;++N)D+=String.fromCharCode(C[N]&127);return D}function Ee(C,y,w){let D="";w=Math.min(C.length,w);for(let N=y;N<w;++N)D+=String.fromCharCode(C[N]);return D}function Re(C,y,w){const D=C.length;(!y||y<0)&&(y=0),(!w||w<0||w>D)&&(w=D);let N="";for(let G=y;G<w;++G)N+=di[C[G]];return N}function M(C,y,w){const D=C.slice(y,w);let N="";for(let G=0;G<D.length-1;G+=2)N+=String.fromCharCode(D[G]+D[G+1]*256);return N}s.prototype.slice=function(y,w){const D=this.length;y=~~y,w=w===void 0?D:~~w,y<0?(y+=D,y<0&&(y=0)):y>D&&(y=D),w<0?(w+=D,w<0&&(w=0)):w>D&&(w=D),w<y&&(w=y);const N=this.subarray(y,w);return Object.setPrototypeOf(N,s.prototype),N};function Se(C,y,w){if(C%1!==0||C<0)throw new RangeError("offset is not uint");if(C+y>w)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(y,w,D){y=y>>>0,w=w>>>0,D||Se(y,w,this.length);let N=this[y],G=1,Y=0;for(;++Y<w&&(G*=256);)N+=this[y+Y]*G;return N},s.prototype.readUintBE=s.prototype.readUIntBE=function(y,w,D){y=y>>>0,w=w>>>0,D||Se(y,w,this.length);let N=this[y+--w],G=1;for(;w>0&&(G*=256);)N+=this[y+--w]*G;return N},s.prototype.readUint8=s.prototype.readUInt8=function(y,w){return y=y>>>0,w||Se(y,1,this.length),this[y]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(y,w){return y=y>>>0,w||Se(y,2,this.length),this[y]|this[y+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(y,w){return y=y>>>0,w||Se(y,2,this.length),this[y]<<8|this[y+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(y,w){return y=y>>>0,w||Se(y,4,this.length),(this[y]|this[y+1]<<8|this[y+2]<<16)+this[y+3]*16777216},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(y,w){return y=y>>>0,w||Se(y,4,this.length),this[y]*16777216+(this[y+1]<<16|this[y+2]<<8|this[y+3])},s.prototype.readBigUInt64LE=un(function(y){y=y>>>0,W(y,"offset");const w=this[y],D=this[y+7];(w===void 0||D===void 0)&&K(y,this.length-8);const N=w+this[++y]*2**8+this[++y]*2**16+this[++y]*2**24,G=this[++y]+this[++y]*2**8+this[++y]*2**16+D*2**24;return BigInt(N)+(BigInt(G)<<BigInt(32))}),s.prototype.readBigUInt64BE=un(function(y){y=y>>>0,W(y,"offset");const w=this[y],D=this[y+7];(w===void 0||D===void 0)&&K(y,this.length-8);const N=w*2**24+this[++y]*2**16+this[++y]*2**8+this[++y],G=this[++y]*2**24+this[++y]*2**16+this[++y]*2**8+D;return(BigInt(N)<<BigInt(32))+BigInt(G)}),s.prototype.readIntLE=function(y,w,D){y=y>>>0,w=w>>>0,D||Se(y,w,this.length);let N=this[y],G=1,Y=0;for(;++Y<w&&(G*=256);)N+=this[y+Y]*G;return G*=128,N>=G&&(N-=Math.pow(2,8*w)),N},s.prototype.readIntBE=function(y,w,D){y=y>>>0,w=w>>>0,D||Se(y,w,this.length);let N=w,G=1,Y=this[y+--N];for(;N>0&&(G*=256);)Y+=this[y+--N]*G;return G*=128,Y>=G&&(Y-=Math.pow(2,8*w)),Y},s.prototype.readInt8=function(y,w){return y=y>>>0,w||Se(y,1,this.length),this[y]&128?(255-this[y]+1)*-1:this[y]},s.prototype.readInt16LE=function(y,w){y=y>>>0,w||Se(y,2,this.length);const D=this[y]|this[y+1]<<8;return D&32768?D|4294901760:D},s.prototype.readInt16BE=function(y,w){y=y>>>0,w||Se(y,2,this.length);const D=this[y+1]|this[y]<<8;return D&32768?D|4294901760:D},s.prototype.readInt32LE=function(y,w){return y=y>>>0,w||Se(y,4,this.length),this[y]|this[y+1]<<8|this[y+2]<<16|this[y+3]<<24},s.prototype.readInt32BE=function(y,w){return y=y>>>0,w||Se(y,4,this.length),this[y]<<24|this[y+1]<<16|this[y+2]<<8|this[y+3]},s.prototype.readBigInt64LE=un(function(y){y=y>>>0,W(y,"offset");const w=this[y],D=this[y+7];(w===void 0||D===void 0)&&K(y,this.length-8);const N=this[y+4]+this[y+5]*2**8+this[y+6]*2**16+(D<<24);return(BigInt(N)<<BigInt(32))+BigInt(w+this[++y]*2**8+this[++y]*2**16+this[++y]*2**24)}),s.prototype.readBigInt64BE=un(function(y){y=y>>>0,W(y,"offset");const w=this[y],D=this[y+7];(w===void 0||D===void 0)&&K(y,this.length-8);const N=(w<<24)+this[++y]*2**16+this[++y]*2**8+this[++y];return(BigInt(N)<<BigInt(32))+BigInt(this[++y]*2**24+this[++y]*2**16+this[++y]*2**8+D)}),s.prototype.readFloatLE=function(y,w){return y=y>>>0,w||Se(y,4,this.length),n.read(this,y,!0,23,4)},s.prototype.readFloatBE=function(y,w){return y=y>>>0,w||Se(y,4,this.length),n.read(this,y,!1,23,4)},s.prototype.readDoubleLE=function(y,w){return y=y>>>0,w||Se(y,8,this.length),n.read(this,y,!0,52,8)},s.prototype.readDoubleBE=function(y,w){return y=y>>>0,w||Se(y,8,this.length),n.read(this,y,!1,52,8)};function Te(C,y,w,D,N,G){if(!s.isBuffer(C))throw new TypeError('"buffer" argument must be a Buffer instance');if(y>N||y<G)throw new RangeError('"value" argument is out of bounds');if(w+D>C.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(y,w,D,N){if(y=+y,w=w>>>0,D=D>>>0,!N){const ke=Math.pow(2,8*D)-1;Te(this,y,w,D,ke,0)}let G=1,Y=0;for(this[w]=y&255;++Y<D&&(G*=256);)this[w+Y]=y/G&255;return w+D},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(y,w,D,N){if(y=+y,w=w>>>0,D=D>>>0,!N){const ke=Math.pow(2,8*D)-1;Te(this,y,w,D,ke,0)}let G=D-1,Y=1;for(this[w+G]=y&255;--G>=0&&(Y*=256);)this[w+G]=y/Y&255;return w+D},s.prototype.writeUint8=s.prototype.writeUInt8=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,1,255,0),this[w]=y&255,w+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,2,65535,0),this[w]=y&255,this[w+1]=y>>>8,w+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,2,65535,0),this[w]=y>>>8,this[w+1]=y&255,w+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,4,4294967295,0),this[w+3]=y>>>24,this[w+2]=y>>>16,this[w+1]=y>>>8,this[w]=y&255,w+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,4,4294967295,0),this[w]=y>>>24,this[w+1]=y>>>16,this[w+2]=y>>>8,this[w+3]=y&255,w+4};function P(C,y,w,D,N){k(y,D,N,C,w,7);let G=Number(y&BigInt(4294967295));C[w++]=G,G=G>>8,C[w++]=G,G=G>>8,C[w++]=G,G=G>>8,C[w++]=G;let Y=Number(y>>BigInt(32)&BigInt(4294967295));return C[w++]=Y,Y=Y>>8,C[w++]=Y,Y=Y>>8,C[w++]=Y,Y=Y>>8,C[w++]=Y,w}function ot(C,y,w,D,N){k(y,D,N,C,w,7);let G=Number(y&BigInt(4294967295));C[w+7]=G,G=G>>8,C[w+6]=G,G=G>>8,C[w+5]=G,G=G>>8,C[w+4]=G;let Y=Number(y>>BigInt(32)&BigInt(4294967295));return C[w+3]=Y,Y=Y>>8,C[w+2]=Y,Y=Y>>8,C[w+1]=Y,Y=Y>>8,C[w]=Y,w+8}s.prototype.writeBigUInt64LE=un(function(y,w=0){return P(this,y,w,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=un(function(y,w=0){return ot(this,y,w,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(y,w,D,N){if(y=+y,w=w>>>0,!N){const et=Math.pow(2,8*D-1);Te(this,y,w,D,et-1,-et)}let G=0,Y=1,ke=0;for(this[w]=y&255;++G<D&&(Y*=256);)y<0&&ke===0&&this[w+G-1]!==0&&(ke=1),this[w+G]=(y/Y>>0)-ke&255;return w+D},s.prototype.writeIntBE=function(y,w,D,N){if(y=+y,w=w>>>0,!N){const et=Math.pow(2,8*D-1);Te(this,y,w,D,et-1,-et)}let G=D-1,Y=1,ke=0;for(this[w+G]=y&255;--G>=0&&(Y*=256);)y<0&&ke===0&&this[w+G+1]!==0&&(ke=1),this[w+G]=(y/Y>>0)-ke&255;return w+D},s.prototype.writeInt8=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,1,127,-128),y<0&&(y=255+y+1),this[w]=y&255,w+1},s.prototype.writeInt16LE=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,2,32767,-32768),this[w]=y&255,this[w+1]=y>>>8,w+2},s.prototype.writeInt16BE=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,2,32767,-32768),this[w]=y>>>8,this[w+1]=y&255,w+2},s.prototype.writeInt32LE=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,4,2147483647,-2147483648),this[w]=y&255,this[w+1]=y>>>8,this[w+2]=y>>>16,this[w+3]=y>>>24,w+4},s.prototype.writeInt32BE=function(y,w,D){return y=+y,w=w>>>0,D||Te(this,y,w,4,2147483647,-2147483648),y<0&&(y=4294967295+y+1),this[w]=y>>>24,this[w+1]=y>>>16,this[w+2]=y>>>8,this[w+3]=y&255,w+4},s.prototype.writeBigInt64LE=un(function(y,w=0){return P(this,y,w,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=un(function(y,w=0){return ot(this,y,w,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Me(C,y,w,D,N,G){if(w+D>C.length)throw new RangeError("Index out of range");if(w<0)throw new RangeError("Index out of range")}function z(C,y,w,D,N){return y=+y,w=w>>>0,N||Me(C,y,w,4),n.write(C,y,w,D,23,4),w+4}s.prototype.writeFloatLE=function(y,w,D){return z(this,y,w,!0,D)},s.prototype.writeFloatBE=function(y,w,D){return z(this,y,w,!1,D)};function $(C,y,w,D,N){return y=+y,w=w>>>0,N||Me(C,y,w,8),n.write(C,y,w,D,52,8),w+8}s.prototype.writeDoubleLE=function(y,w,D){return $(this,y,w,!0,D)},s.prototype.writeDoubleBE=function(y,w,D){return $(this,y,w,!1,D)},s.prototype.copy=function(y,w,D,N){if(!s.isBuffer(y))throw new TypeError("argument should be a Buffer");if(D||(D=0),!N&&N!==0&&(N=this.length),w>=y.length&&(w=y.length),w||(w=0),N>0&&N<D&&(N=D),N===D||y.length===0||this.length===0)return 0;if(w<0)throw new RangeError("targetStart out of bounds");if(D<0||D>=this.length)throw new RangeError("Index out of range");if(N<0)throw new RangeError("sourceEnd out of bounds");N>this.length&&(N=this.length),y.length-w<N-D&&(N=y.length-w+D);const G=N-D;return this===y&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(w,D,N):Uint8Array.prototype.set.call(y,this.subarray(D,N),w),G},s.prototype.fill=function(y,w,D,N){if(typeof y=="string"){if(typeof w=="string"?(N=w,w=0,D=this.length):typeof D=="string"&&(N=D,D=this.length),N!==void 0&&typeof N!="string")throw new TypeError("encoding must be a string");if(typeof N=="string"&&!s.isEncoding(N))throw new TypeError("Unknown encoding: "+N);if(y.length===1){const Y=y.charCodeAt(0);(N==="utf8"&&Y<128||N==="latin1")&&(y=Y)}}else typeof y=="number"?y=y&255:typeof y=="boolean"&&(y=Number(y));if(w<0||this.length<w||this.length<D)throw new RangeError("Out of range index");if(D<=w)return this;w=w>>>0,D=D===void 0?this.length:D>>>0,y||(y=0);let G;if(typeof y=="number")for(G=w;G<D;++G)this[G]=y;else{const Y=s.isBuffer(y)?y:s.from(y,N),ke=Y.length;if(ke===0)throw new TypeError('The value "'+y+'" is invalid for argument "value"');for(G=0;G<D-w;++G)this[G+w]=Y[G%ke]}return this};const X={};function q(C,y,w){X[C]=class extends w{constructor(){super(),Object.defineProperty(this,"message",{value:y.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${C}]`,this.stack,delete this.name}get code(){return C}set code(N){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:N,writable:!0})}toString(){return`${this.name} [${C}]: ${this.message}`}}}q("ERR_BUFFER_OUT_OF_BOUNDS",function(C){return C?`${C} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),q("ERR_INVALID_ARG_TYPE",function(C,y){return`The "${C}" argument must be of type number. Received type ${typeof y}`},TypeError),q("ERR_OUT_OF_RANGE",function(C,y,w){let D=`The value of "${C}" is out of range.`,N=w;return Number.isInteger(w)&&Math.abs(w)>2**32?N=ee(String(w)):typeof w=="bigint"&&(N=String(w),(w>BigInt(2)**BigInt(32)||w<-(BigInt(2)**BigInt(32)))&&(N=ee(N)),N+="n"),D+=` It must be ${y}. Received ${N}`,D},RangeError);function ee(C){let y="",w=C.length;const D=C[0]==="-"?1:0;for(;w>=D+4;w-=3)y=`_${C.slice(w-3,w)}${y}`;return`${C.slice(0,w)}${y}`}function I(C,y,w){W(y,"offset"),(C[y]===void 0||C[y+w]===void 0)&&K(y,C.length-(w+1))}function k(C,y,w,D,N,G){if(C>w||C<y){const Y=typeof y=="bigint"?"n":"";let ke;throw y===0||y===BigInt(0)?ke=`>= 0${Y} and < 2${Y} ** ${(G+1)*8}${Y}`:ke=`>= -(2${Y} ** ${(G+1)*8-1}${Y}) and < 2 ** ${(G+1)*8-1}${Y}`,new X.ERR_OUT_OF_RANGE("value",ke,C)}I(D,N,G)}function W(C,y){if(typeof C!="number")throw new X.ERR_INVALID_ARG_TYPE(y,"number",C)}function K(C,y,w){throw Math.floor(C)!==C?(W(C,w),new X.ERR_OUT_OF_RANGE("offset","an integer",C)):y<0?new X.ERR_BUFFER_OUT_OF_BOUNDS:new X.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${y}`,C)}const _e=/[^+/0-9A-Za-z-_]/g;function de(C){if(C=C.split("=")[0],C=C.trim().replace(_e,""),C.length<2)return"";for(;C.length%4!==0;)C=C+"=";return C}function Ce(C,y){y=y||1/0;let w;const D=C.length;let N=null;const G=[];for(let Y=0;Y<D;++Y){if(w=C.charCodeAt(Y),w>55295&&w<57344){if(!N){if(w>56319){(y-=3)>-1&&G.push(239,191,189);continue}else if(Y+1===D){(y-=3)>-1&&G.push(239,191,189);continue}N=w;continue}if(w<56320){(y-=3)>-1&&G.push(239,191,189),N=w;continue}w=(N-55296<<10|w-56320)+65536}else N&&(y-=3)>-1&&G.push(239,191,189);if(N=null,w<128){if((y-=1)<0)break;G.push(w)}else if(w<2048){if((y-=2)<0)break;G.push(w>>6|192,w&63|128)}else if(w<65536){if((y-=3)<0)break;G.push(w>>12|224,w>>6&63|128,w&63|128)}else if(w<1114112){if((y-=4)<0)break;G.push(w>>18|240,w>>12&63|128,w>>6&63|128,w&63|128)}else throw new Error("Invalid code point")}return G}function cn(C){const y=[];for(let w=0;w<C.length;++w)y.push(C.charCodeAt(w)&255);return y}function ui(C,y){let w,D,N;const G=[];for(let Y=0;Y<C.length&&!((y-=2)<0);++Y)w=C.charCodeAt(Y),D=w>>8,N=w%256,G.push(N),G.push(D);return G}function fi(C){return t.toByteArray(de(C))}function hi(C,y,w,D){let N;for(N=0;N<D&&!(N+w>=y.length||N>=C.length);++N)y[N+w]=C[N];return N}function Ht(C,y){return C instanceof y||C!=null&&C.constructor!=null&&C.constructor.name!=null&&C.constructor.name===y.name}function Fr(C){return C!==C}const di=function(){const C="0123456789abcdef",y=new Array(256);for(let w=0;w<16;++w){const D=w*16;for(let N=0;N<16;++N)y[D+N]=C[w]+C[N]}return y}();function un(C){return typeof BigInt>"u"?hr:C}function hr(){throw new Error("BigInt not supported")}})(Ne);const h6=$e({__proto__:null,default:op(Ne)},[Ne]),zt={},HX=Object.freeze(Object.defineProperty({__proto__:null,default:zt},Symbol.toStringTag,{value:"Module"}));class Za{async getBufferFromResponse(t){const n=await t.arrayBuffer();return Ne.Buffer.from(n)}constructor(t,n={}){this.baseOverrides={},this.url=t;const r=n.fetch||globalThis.fetch.bind(globalThis);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,o={}){const{headers:a={},signal:s,overrides:l={}}=o;r<1/0?a.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(a.range=`bytes=${i}-`);const c={...this.baseOverrides,...l,headers:{...a,...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!=null&&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:o,overrides:a={}}=r,s={headers:i,method:"GET",redirect:"follow",mode:"cors",signal:o,...this.baseOverrides,...a},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=Ne.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(){}}function d6(e){const t=new FileReader;return new Promise((n,r)=>{t.onerror=()=>{t.abort(),r(new Error("problem reading blob"))},t.onabort=()=>{r(new Error("blob reading was aborted"))},t.onload=()=>{t.result&&typeof t.result!="string"?n(t.result):r(new Error("unknown error reading blob"))},t.readAsArrayBuffer(e)})}function GX(e){const t=new FileReader;return new Promise((n,r)=>{t.onerror=()=>{t.abort(),r(new Error("problem reading blob"))},t.onabort=()=>{r(new Error("blob reading was aborted"))},t.onload=()=>{t.result&&typeof t.result=="string"?n(t.result):r(new Error("unknown error reading blob"))},t.readAsText(e)})}class VX{constructor(t){this.blob=t,this.size=t.size}async read(t,n=0,r,i=0){if(!r)return{bytesRead:0,buffer:t};const o=i,a=o+r,s=await d6(this.blob.slice(o,a)),l=Ne.Buffer.from(s);return{bytesRead:l.copy(t,n),buffer:l}}async readFile(t){const n=typeof t=="string"?t:t==null?void 0:t.encoding;if(n==="utf8")return GX(this.blob);if(n)throw new Error(`unsupported encoding: ${n}`);const r=await d6(this.blob);return Ne.Buffer.from(r)}async stat(){return{size:this.size}}async close(){}}function p6(e,t={}){return new Za(e,t)}function jX(e,t,n,r={}){if(n!==void 0)return n;if(e!==void 0)return p6(e,r);if(t!==void 0)return new zt(t,r);throw new Error("no url, path, or filehandle provided, cannot open")}const df=Object.freeze(Object.defineProperty({__proto__:null,BlobFile:VX,LocalFile:zt,RemoteFile:Za,fromUrl:p6,open:jX},Symbol.toStringTag,{value:"Module"}));var Li={};(function(e){var t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function n(o,a){return Object.prototype.hasOwnProperty.call(o,a)}e.assign=function(o){for(var a=Array.prototype.slice.call(arguments,1);a.length;){var s=a.shift();if(s){if(typeof s!="object")throw new TypeError(s+"must be non-object");for(var l in s)n(s,l)&&(o[l]=s[l])}}return o},e.shrinkBuf=function(o,a){return o.length===a?o:o.subarray?o.subarray(0,a):(o.length=a,o)};var r={arraySet:function(o,a,s,l,c){if(a.subarray&&o.subarray){o.set(a.subarray(s,s+l),c);return}for(var u=0;u<l;u++)o[c+u]=a[s+u]},flattenChunks:function(o){var a,s,l,c,u,f;for(l=0,a=0,s=o.length;a<s;a++)l+=o[a].length;for(f=new Uint8Array(l),c=0,a=0,s=o.length;a<s;a++)u=o[a],f.set(u,c),c+=u.length;return f}},i={arraySet:function(o,a,s,l,c){for(var u=0;u<l;u++)o[c+u]=a[s+u]},flattenChunks:function(o){return[].concat.apply([],o)}};e.setTyped=function(o){o?(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)})(Li);var pf={},Jr={},yl={},qX=Li,WX=4,g6=0,m6=1,YX=2;function wl(e){for(var t=e.length;--t>=0;)e[t]=0}var ZX=0,b6=1,QX=2,XX=3,KX=258,j2=29,gf=256,mf=gf+1+j2,vl=30,q2=19,y6=2*mf+1,Qa=15,W2=16,JX=7,Y2=256,w6=16,v6=17,x6=18,Z2=[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],sp=[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],eK=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],A6=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],tK=512,Ni=new Array((mf+2)*2);wl(Ni);var bf=new Array(vl*2);wl(bf);var yf=new Array(tK);wl(yf);var wf=new Array(KX-XX+1);wl(wf);var Q2=new Array(j2);wl(Q2);var lp=new Array(vl);wl(lp);function X2(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 E6,S6,_6;function K2(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function C6(e){return e<256?yf[e]:yf[256+(e>>>7)]}function vf(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function An(e,t,n){e.bi_valid>W2-n?(e.bi_buf|=t<<e.bi_valid&65535,vf(e,e.bi_buf),e.bi_buf=t>>W2-e.bi_valid,e.bi_valid+=n-W2):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function ei(e,t,n){An(e,n[t*2],n[t*2+1])}function k6(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function nK(e){e.bi_valid===16?(vf(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 rK(e,t){var n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,o=t.stat_desc.has_stree,a=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<=Qa;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,c=e.heap_max+1;c<y6;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=a[u-s]),p=n[u*2],e.opt_len+=p*(h+d),o&&(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 T6(e,t,n){var r=new Array(Qa+1),i=0,o,a;for(o=1;o<=Qa;o++)r[o]=i=i+n[o-1]<<1;for(a=0;a<=t;a++){var s=e[a*2+1];s!==0&&(e[a*2]=k6(r[s]++,s))}}function iK(){var e,t,n,r,i,o=new Array(Qa+1);for(n=0,r=0;r<j2-1;r++)for(Q2[r]=n,e=0;e<1<<Z2[r];e++)wf[n++]=r;for(wf[n-1]=r,i=0,r=0;r<16;r++)for(lp[r]=i,e=0;e<1<<sp[r];e++)yf[i++]=r;for(i>>=7;r<vl;r++)for(lp[r]=i<<7,e=0;e<1<<sp[r]-7;e++)yf[256+i++]=r;for(t=0;t<=Qa;t++)o[t]=0;for(e=0;e<=143;)Ni[e*2+1]=8,e++,o[8]++;for(;e<=255;)Ni[e*2+1]=9,e++,o[9]++;for(;e<=279;)Ni[e*2+1]=7,e++,o[7]++;for(;e<=287;)Ni[e*2+1]=8,e++,o[8]++;for(T6(Ni,mf+1,o),e=0;e<vl;e++)bf[e*2+1]=5,bf[e*2]=k6(e,5);E6=new X2(Ni,Z2,gf+1,mf,Qa),S6=new X2(bf,sp,0,vl,Qa),_6=new X2(new Array(0),eK,0,q2,JX)}function I6(e){var t;for(t=0;t<mf;t++)e.dyn_ltree[t*2]=0;for(t=0;t<vl;t++)e.dyn_dtree[t*2]=0;for(t=0;t<q2;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Y2*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function R6(e){e.bi_valid>8?vf(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 oK(e,t,n,r){R6(e),vf(e,n),vf(e,~n),qX.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function D6(e,t,n,r){var i=t*2,o=n*2;return e[i]<e[o]||e[i]===e[o]&&r[t]<=r[n]}function J2(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&D6(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!D6(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function B6(e,t,n){var r,i,o=0,a,s;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+o*2]<<8|e.pending_buf[e.d_buf+o*2+1],i=e.pending_buf[e.l_buf+o],o++,r===0?ei(e,i,t):(a=wf[i],ei(e,a+gf+1,t),s=Z2[a],s!==0&&(i-=Q2[a],An(e,i,s)),r--,a=C6(r),ei(e,a,n),s=sp[a],s!==0&&(r-=lp[a],An(e,r,s)));while(o<e.last_lit);ei(e,Y2,t)}function ey(e,t){var n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,o=t.stat_desc.elems,a,s,l=-1,c;for(e.heap_len=0,e.heap_max=y6,a=0;a<o;a++)n[a*2]!==0?(e.heap[++e.heap_len]=l=a,e.depth[a]=0):n[a*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,a=e.heap_len>>1;a>=1;a--)J2(e,n,a);c=o;do a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],J2(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,n[c*2]=n[a*2]+n[s*2],e.depth[c]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,n[a*2+1]=n[s*2+1]=c,e.heap[1]=c++,J2(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],rK(e,t),T6(n,l,e.bl_count)}function F6(e,t,n){var r,i=-1,o,a=t[0*2+1],s=0,l=7,c=4;for(a===0&&(l=138,c=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)o=a,a=t[(r+1)*2+1],!(++s<l&&o===a)&&(s<c?e.bl_tree[o*2]+=s:o!==0?(o!==i&&e.bl_tree[o*2]++,e.bl_tree[w6*2]++):s<=10?e.bl_tree[v6*2]++:e.bl_tree[x6*2]++,s=0,i=o,a===0?(l=138,c=3):o===a?(l=6,c=3):(l=7,c=4))}function M6(e,t,n){var r,i=-1,o,a=t[0*2+1],s=0,l=7,c=4;for(a===0&&(l=138,c=3),r=0;r<=n;r++)if(o=a,a=t[(r+1)*2+1],!(++s<l&&o===a)){if(s<c)do ei(e,o,e.bl_tree);while(--s!==0);else o!==0?(o!==i&&(ei(e,o,e.bl_tree),s--),ei(e,w6,e.bl_tree),An(e,s-3,2)):s<=10?(ei(e,v6,e.bl_tree),An(e,s-3,3)):(ei(e,x6,e.bl_tree),An(e,s-11,7));s=0,i=o,a===0?(l=138,c=3):o===a?(l=6,c=3):(l=7,c=4)}}function aK(e){var t;for(F6(e,e.dyn_ltree,e.l_desc.max_code),F6(e,e.dyn_dtree,e.d_desc.max_code),ey(e,e.bl_desc),t=q2-1;t>=3&&e.bl_tree[A6[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function sK(e,t,n,r){var i;for(An(e,t-257,5),An(e,n-1,5),An(e,r-4,4),i=0;i<r;i++)An(e,e.bl_tree[A6[i]*2+1],3);M6(e,e.dyn_ltree,t-1),M6(e,e.dyn_dtree,n-1)}function lK(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return g6;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return m6;for(n=32;n<gf;n++)if(e.dyn_ltree[n*2]!==0)return m6;return g6}var P6=!1;function cK(e){P6||(iK(),P6=!0),e.l_desc=new K2(e.dyn_ltree,E6),e.d_desc=new K2(e.dyn_dtree,S6),e.bl_desc=new K2(e.bl_tree,_6),e.bi_buf=0,e.bi_valid=0,I6(e)}function O6(e,t,n,r){An(e,(ZX<<1)+(r?1:0),3),oK(e,t,n)}function uK(e){An(e,b6<<1,3),ei(e,Y2,Ni),nK(e)}function fK(e,t,n,r){var i,o,a=0;e.level>0?(e.strm.data_type===YX&&(e.strm.data_type=lK(e)),ey(e,e.l_desc),ey(e,e.d_desc),a=aK(e),i=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=i&&(i=o)):i=o=n+5,n+4<=i&&t!==-1?O6(e,t,n,r):e.strategy===WX||o===i?(An(e,(b6<<1)+(r?1:0),3),B6(e,Ni,bf)):(An(e,(QX<<1)+(r?1:0),3),sK(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),B6(e,e.dyn_ltree,e.dyn_dtree)),I6(e),r&&R6(e)}function hK(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[(wf[n]+gf+1)*2]++,e.dyn_dtree[C6(t)*2]++),e.last_lit===e.lit_bufsize-1}yl._tr_init=cK,yl._tr_stored_block=O6,yl._tr_flush_block=fK,yl._tr_tally=hK,yl._tr_align=uK;function dK(e,t,n,r){for(var i=e&65535|0,o=e>>>16&65535|0,a=0;n!==0;){a=n>2e3?2e3:n,n-=a;do i=i+t[r++]|0,o=o+i|0;while(--a);i%=65521,o%=65521}return i|o<<16|0}var L6=dK;function pK(){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 gK=pK();function mK(e,t,n,r){var i=gK,o=r+n;e^=-1;for(var a=r;a<o;a++)e=e>>>8^i[(e^t[a])&255];return e^-1}var N6=mK,ty={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"},pn=Li,Jn=yl,z6=L6,Fo=N6,bK=ty,Xa=0,yK=1,wK=3,Mo=4,U6=5,ti=0,$6=1,er=-2,vK=-3,ny=-5,xK=-1,AK=1,cp=2,EK=3,SK=4,_K=0,CK=2,up=8,kK=9,TK=15,IK=8,RK=29,DK=256,ry=DK+1+RK,BK=30,FK=19,MK=2*ry+1,PK=15,De=3,Po=258,_r=Po+De+1,OK=32,fp=42,iy=69,hp=73,dp=91,pp=103,Ka=113,xf=666,Rt=1,Af=2,Ja=3,xl=4,LK=3;function Oo(e,t){return e.msg=bK[t],t}function H6(e){return(e<<1)-(e>4?9:0)}function Lo(e){for(var t=e.length;--t>=0;)e[t]=0}function No(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(pn.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 Wt(e,t){Jn._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,No(e.strm)}function ze(e,t){e.pending_buf[e.pending++]=t}function Ef(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function NK(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,pn.arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=z6(e.adler,t,i,n):e.state.wrap===2&&(e.adler=Fo(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function G6(e,t){var n=e.max_chain_length,r=e.strstart,i,o,a=e.prev_length,s=e.nice_match,l=e.strstart>e.w_size-_r?e.strstart-(e.w_size-_r):0,c=e.window,u=e.w_mask,f=e.prev,h=e.strstart+Po,d=c[r+a-1],p=c[r+a];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(c[i+a]!==p||c[i+a-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(o=Po-(h-r),r=h-Po,o>a){if(e.match_start=t,a=o,o>=s)break;d=c[r+a-1],p=c[r+a]}}while((t=f[t&u])>l&&--n!==0);return a<=e.lookahead?a:e.lookahead}function es(e){var t=e.w_size,n,r,i,o,a;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-_r)){pn.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);o+=t}if(e.strm.avail_in===0)break;if(r=NK(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=r,e.lookahead+e.insert>=De)for(a=e.strstart-e.insert,e.ins_h=e.window[a],e.ins_h=(e.ins_h<<e.hash_shift^e.window[a+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[a+De-1])&e.hash_mask,e.prev[a&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=a,a++,e.insert--,!(e.lookahead+e.insert<De)););}while(e.lookahead<_r&&e.strm.avail_in!==0)}function zK(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(es(e),e.lookahead===0&&t===Xa)return Rt;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,Wt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-_r&&(Wt(e,!1),e.strm.avail_out===0))return Rt}return e.insert=0,t===Mo?(Wt(e,!0),e.strm.avail_out===0?Ja:xl):(e.strstart>e.block_start&&(Wt(e,!1),e.strm.avail_out===0),Rt)}function oy(e,t){for(var n,r;;){if(e.lookahead<_r){if(es(e),e.lookahead<_r&&t===Xa)return Rt;if(e.lookahead===0)break}if(n=0,e.lookahead>=De&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+De-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-_r&&(e.match_length=G6(e,n)),e.match_length>=De)if(r=Jn._tr_tally(e,e.strstart-e.match_start,e.match_length-De),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=De){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+De-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=Jn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Wt(e,!1),e.strm.avail_out===0))return Rt}return e.insert=e.strstart<De-1?e.strstart:De-1,t===Mo?(Wt(e,!0),e.strm.avail_out===0?Ja:xl):e.last_lit&&(Wt(e,!1),e.strm.avail_out===0)?Rt:Af}function Al(e,t){for(var n,r,i;;){if(e.lookahead<_r){if(es(e),e.lookahead<_r&&t===Xa)return Rt;if(e.lookahead===0)break}if(n=0,e.lookahead>=De&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+De-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=De-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-_r&&(e.match_length=G6(e,n),e.match_length<=5&&(e.strategy===AK||e.match_length===De&&e.strstart-e.match_start>4096)&&(e.match_length=De-1)),e.prev_length>=De&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-De,r=Jn._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-De),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+De-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=De-1,e.strstart++,r&&(Wt(e,!1),e.strm.avail_out===0))return Rt}else if(e.match_available){if(r=Jn._tr_tally(e,0,e.window[e.strstart-1]),r&&Wt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Rt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=Jn._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<De-1?e.strstart:De-1,t===Mo?(Wt(e,!0),e.strm.avail_out===0?Ja:xl):e.last_lit&&(Wt(e,!1),e.strm.avail_out===0)?Rt:Af}function UK(e,t){for(var n,r,i,o,a=e.window;;){if(e.lookahead<=Po){if(es(e),e.lookahead<=Po&&t===Xa)return Rt;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=De&&e.strstart>0&&(i=e.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){o=e.strstart+Po;do;while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&i<o);e.match_length=Po-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=De?(n=Jn._tr_tally(e,1,e.match_length-De),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Jn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Wt(e,!1),e.strm.avail_out===0))return Rt}return e.insert=0,t===Mo?(Wt(e,!0),e.strm.avail_out===0?Ja:xl):e.last_lit&&(Wt(e,!1),e.strm.avail_out===0)?Rt:Af}function $K(e,t){for(var n;;){if(e.lookahead===0&&(es(e),e.lookahead===0)){if(t===Xa)return Rt;break}if(e.match_length=0,n=Jn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Wt(e,!1),e.strm.avail_out===0))return Rt}return e.insert=0,t===Mo?(Wt(e,!0),e.strm.avail_out===0?Ja:xl):e.last_lit&&(Wt(e,!1),e.strm.avail_out===0)?Rt:Af}function ni(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 El;El=[new ni(0,0,0,0,zK),new ni(4,4,8,4,oy),new ni(4,5,16,8,oy),new ni(4,6,32,32,oy),new ni(4,4,16,16,Al),new ni(8,16,32,32,Al),new ni(8,16,128,128,Al),new ni(8,32,128,256,Al),new ni(32,128,258,1024,Al),new ni(32,258,258,4096,Al)];function HK(e){e.window_size=2*e.w_size,Lo(e.head),e.max_lazy_match=El[e.level].max_lazy,e.good_match=El[e.level].good_length,e.nice_match=El[e.level].nice_length,e.max_chain_length=El[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=De-1,e.match_available=0,e.ins_h=0}function GK(){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=up,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 pn.Buf16(MK*2),this.dyn_dtree=new pn.Buf16((2*BK+1)*2),this.bl_tree=new pn.Buf16((2*FK+1)*2),Lo(this.dyn_ltree),Lo(this.dyn_dtree),Lo(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new pn.Buf16(PK+1),this.heap=new pn.Buf16(2*ry+1),Lo(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new pn.Buf16(2*ry+1),Lo(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 V6(e){var t;return!e||!e.state?Oo(e,er):(e.total_in=e.total_out=0,e.data_type=CK,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?fp:Ka,e.adler=t.wrap===2?0:1,t.last_flush=Xa,Jn._tr_init(t),ti)}function j6(e){var t=V6(e);return t===ti&&HK(e.state),t}function VK(e,t){return!e||!e.state||e.state.wrap!==2?er:(e.state.gzhead=t,ti)}function q6(e,t,n,r,i,o){if(!e)return er;var a=1;if(t===xK&&(t=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),i<1||i>kK||n!==up||r<8||r>15||t<0||t>9||o<0||o>SK)return Oo(e,er);r===8&&(r=9);var s=new GK;return e.state=s,s.strm=e,s.wrap=a,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+De-1)/De),s.window=new pn.Buf8(s.w_size*2),s.head=new pn.Buf16(s.hash_size),s.prev=new pn.Buf16(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new pn.Buf8(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=3*s.lit_bufsize,s.level=t,s.strategy=o,s.method=n,j6(e)}function jK(e,t){return q6(e,t,up,TK,IK,_K)}function qK(e,t){var n,r,i,o;if(!e||!e.state||t>U6||t<0)return e?Oo(e,er):er;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===xf&&t!==Mo)return Oo(e,e.avail_out===0?ny:er);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===fp)if(r.wrap===2)e.adler=0,ze(r,31),ze(r,139),ze(r,8),r.gzhead?(ze(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)),ze(r,r.gzhead.time&255),ze(r,r.gzhead.time>>8&255),ze(r,r.gzhead.time>>16&255),ze(r,r.gzhead.time>>24&255),ze(r,r.level===9?2:r.strategy>=cp||r.level<2?4:0),ze(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(ze(r,r.gzhead.extra.length&255),ze(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=Fo(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=iy):(ze(r,0),ze(r,0),ze(r,0),ze(r,0),ze(r,0),ze(r,r.level===9?2:r.strategy>=cp||r.level<2?4:0),ze(r,LK),r.status=Ka);else{var a=up+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=cp||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,a|=s<<6,r.strstart!==0&&(a|=OK),a+=31-a%31,r.status=Ka,Ef(r,a),r.strstart!==0&&(Ef(r,e.adler>>>16),Ef(r,e.adler&65535)),e.adler=1}if(r.status===iy)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=Fo(e.adler,r.pending_buf,r.pending-i,i)),No(e),i=r.pending,r.pending===r.pending_buf_size));)ze(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=Fo(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=hp)}else r.status=hp;if(r.status===hp)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Fo(e.adler,r.pending_buf,r.pending-i,i)),No(e),i=r.pending,r.pending===r.pending_buf_size)){o=1;break}r.gzindex<r.gzhead.name.length?o=r.gzhead.name.charCodeAt(r.gzindex++)&255:o=0,ze(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=Fo(e.adler,r.pending_buf,r.pending-i,i)),o===0&&(r.gzindex=0,r.status=dp)}else r.status=dp;if(r.status===dp)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Fo(e.adler,r.pending_buf,r.pending-i,i)),No(e),i=r.pending,r.pending===r.pending_buf_size)){o=1;break}r.gzindex<r.gzhead.comment.length?o=r.gzhead.comment.charCodeAt(r.gzindex++)&255:o=0,ze(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=Fo(e.adler,r.pending_buf,r.pending-i,i)),o===0&&(r.status=pp)}else r.status=pp;if(r.status===pp&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&No(e),r.pending+2<=r.pending_buf_size&&(ze(r,e.adler&255),ze(r,e.adler>>8&255),e.adler=0,r.status=Ka)):r.status=Ka),r.pending!==0){if(No(e),e.avail_out===0)return r.last_flush=-1,ti}else if(e.avail_in===0&&H6(t)<=H6(n)&&t!==Mo)return Oo(e,ny);if(r.status===xf&&e.avail_in!==0)return Oo(e,ny);if(e.avail_in!==0||r.lookahead!==0||t!==Xa&&r.status!==xf){var l=r.strategy===cp?$K(r,t):r.strategy===EK?UK(r,t):El[r.level].func(r,t);if((l===Ja||l===xl)&&(r.status=xf),l===Rt||l===Ja)return e.avail_out===0&&(r.last_flush=-1),ti;if(l===Af&&(t===yK?Jn._tr_align(r):t!==U6&&(Jn._tr_stored_block(r,0,0,!1),t===wK&&(Lo(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),No(e),e.avail_out===0))return r.last_flush=-1,ti}return t!==Mo?ti:r.wrap<=0?$6:(r.wrap===2?(ze(r,e.adler&255),ze(r,e.adler>>8&255),ze(r,e.adler>>16&255),ze(r,e.adler>>24&255),ze(r,e.total_in&255),ze(r,e.total_in>>8&255),ze(r,e.total_in>>16&255),ze(r,e.total_in>>24&255)):(Ef(r,e.adler>>>16),Ef(r,e.adler&65535)),No(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?ti:$6)}function WK(e){var t;return!e||!e.state?er:(t=e.state.status,t!==fp&&t!==iy&&t!==hp&&t!==dp&&t!==pp&&t!==Ka&&t!==xf?Oo(e,er):(e.state=null,t===Ka?Oo(e,vK):ti))}function YK(e,t){var n=t.length,r,i,o,a,s,l,c,u;if(!e||!e.state||(r=e.state,a=r.wrap,a===2||a===1&&r.status!==fp||r.lookahead))return er;for(a===1&&(e.adler=z6(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(a===0&&(Lo(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new pn.Buf8(r.w_size),pn.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,es(r);r.lookahead>=De;){i=r.strstart,o=r.lookahead-(De-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+De-1])&r.hash_mask,r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++;while(--o);r.strstart=i,r.lookahead=De-1,es(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=De-1,r.match_available=0,e.next_in=l,e.input=c,e.avail_in=s,r.wrap=a,ti}Jr.deflateInit=jK,Jr.deflateInit2=q6,Jr.deflateReset=j6,Jr.deflateResetKeep=V6,Jr.deflateSetHeader=VK,Jr.deflate=qK,Jr.deflateEnd=WK,Jr.deflateSetDictionary=YK,Jr.deflateInfo="pako deflate (from Nodeca project)";var ts={},gp=Li,W6=!0,Y6=!0;try{String.fromCharCode.apply(null,[0])}catch{W6=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Y6=!1}for(var Sf=new gp.Buf8(256),zo=0;zo<256;zo++)Sf[zo]=zo>=252?6:zo>=248?5:zo>=240?4:zo>=224?3:zo>=192?2:1;Sf[254]=Sf[254]=1,ts.string2buf=function(e){var t,n,r,i,o,a=e.length,s=0;for(i=0;i<a;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<a&&(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 gp.Buf8(s),o=0,i=0;o<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<a&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[o++]=n:n<2048?(t[o++]=192|n>>>6,t[o++]=128|n&63):n<65536?(t[o++]=224|n>>>12,t[o++]=128|n>>>6&63,t[o++]=128|n&63):(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63,t[o++]=128|n>>>6&63,t[o++]=128|n&63);return t};function Z6(e,t){if(t<65534&&(e.subarray&&Y6||!e.subarray&&W6))return String.fromCharCode.apply(null,gp.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}ts.buf2binstring=function(e){return Z6(e,e.length)},ts.binstring2buf=function(e){for(var t=new gp.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},ts.buf2string=function(e,t){var n,r,i,o,a=t||e.length,s=new Array(a*2);for(r=0,n=0;n<a;){if(i=e[n++],i<128){s[r++]=i;continue}if(o=Sf[i],o>4){s[r++]=65533,n+=o-1;continue}for(i&=o===2?31:o===3?15:7;o>1&&n<a;)i=i<<6|e[n++]&63,o--;if(o>1){s[r++]=65533;continue}i<65536?s[r++]=i:(i-=65536,s[r++]=55296|i>>10&1023,s[r++]=56320|i&1023)}return Z6(s,r)},ts.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+Sf[e[n]]>t?n:t};function ZK(){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 Q6=ZK,_f=Jr,Cf=Li,ay=ts,sy=ty,QK=Q6,X6=Object.prototype.toString,XK=0,ly=4,Sl=0,K6=1,J6=2,KK=-1,JK=0,eJ=8;function ns(e){if(!(this instanceof ns))return new ns(e);this.options=Cf.assign({level:KK,method:eJ,chunkSize:16384,windowBits:15,memLevel:8,strategy:JK,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 QK,this.strm.avail_out=0;var n=_f.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Sl)throw new Error(sy[n]);if(t.header&&_f.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=ay.string2buf(t.dictionary):X6.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=_f.deflateSetDictionary(this.strm,r),n!==Sl)throw new Error(sy[n]);this._dict_set=!0}}ns.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i,o;if(this.ended)return!1;o=t===~~t?t:t===!0?ly:XK,typeof e=="string"?n.input=ay.string2buf(e):X6.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 Cf.Buf8(r),n.next_out=0,n.avail_out=r),i=_f.deflate(n,o),i!==K6&&i!==Sl)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(o===ly||o===J6))&&(this.options.to==="string"?this.onData(ay.buf2binstring(Cf.shrinkBuf(n.output,n.next_out))):this.onData(Cf.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==K6);return o===ly?(i=_f.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===Sl):(o===J6&&(this.onEnd(Sl),n.avail_out=0),!0)},ns.prototype.onData=function(e){this.chunks.push(e)},ns.prototype.onEnd=function(e){e===Sl&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Cf.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function cy(e,t){var n=new ns(t);if(n.push(e,!0),n.err)throw n.msg||sy[n.err];return n.result}function tJ(e,t){return t=t||{},t.raw=!0,cy(e,t)}function nJ(e,t){return t=t||{},t.gzip=!0,cy(e,t)}pf.Deflate=ns,pf.deflate=cy,pf.deflateRaw=tJ,pf.gzip=nJ;var kf={},Cr={},mp=30,rJ=12,iJ=function(t,n){var r,i,o,a,s,l,c,u,f,h,d,p,g,b,m,v,x,A,S,E,_,R,F,H,O;r=t.state,i=t.next_in,H=t.input,o=i+(t.avail_in-5),a=t.next_out,O=t.output,s=a-(n-t.avail_out),l=a+(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,b=r.lencode,m=r.distcode,v=(1<<r.lenbits)-1,x=(1<<r.distbits)-1;e:do{g<15&&(p+=H[i++]<<g,g+=8,p+=H[i++]<<g,g+=8),A=b[p&v];t:for(;;){if(S=A>>>24,p>>>=S,g-=S,S=A>>>16&255,S===0)O[a++]=A&65535;else if(S&16){E=A&65535,S&=15,S&&(g<S&&(p+=H[i++]<<g,g+=8),E+=p&(1<<S)-1,p>>>=S,g-=S),g<15&&(p+=H[i++]<<g,g+=8,p+=H[i++]<<g,g+=8),A=m[p&x];n:for(;;){if(S=A>>>24,p>>>=S,g-=S,S=A>>>16&255,S&16){if(_=A&65535,S&=15,g<S&&(p+=H[i++]<<g,g+=8,g<S&&(p+=H[i++]<<g,g+=8)),_+=p&(1<<S)-1,_>c){t.msg="invalid distance too far back",r.mode=mp;break e}if(p>>>=S,g-=S,S=a-s,_>S){if(S=_-S,S>f&&r.sane){t.msg="invalid distance too far back",r.mode=mp;break e}if(R=0,F=d,h===0){if(R+=u-S,S<E){E-=S;do O[a++]=d[R++];while(--S);R=a-_,F=O}}else if(h<S){if(R+=u+h-S,S-=h,S<E){E-=S;do O[a++]=d[R++];while(--S);if(R=0,h<E){S=h,E-=S;do O[a++]=d[R++];while(--S);R=a-_,F=O}}}else if(R+=h-S,S<E){E-=S;do O[a++]=d[R++];while(--S);R=a-_,F=O}for(;E>2;)O[a++]=F[R++],O[a++]=F[R++],O[a++]=F[R++],E-=3;E&&(O[a++]=F[R++],E>1&&(O[a++]=F[R++]))}else{R=a-_;do O[a++]=O[R++],O[a++]=O[R++],O[a++]=O[R++],E-=3;while(E>2);E&&(O[a++]=O[R++],E>1&&(O[a++]=O[R++]))}}else if(S&64){t.msg="invalid distance code",r.mode=mp;break e}else{A=m[(A&65535)+(p&(1<<S)-1)];continue n}break}}else if(S&64)if(S&32){r.mode=rJ;break e}else{t.msg="invalid literal/length code",r.mode=mp;break e}else{A=b[(A&65535)+(p&(1<<S)-1)];continue t}break}}while(i<o&&a<l);E=g>>3,i-=E,g-=E<<3,p&=(1<<g)-1,t.next_in=i,t.next_out=a,t.avail_in=i<o?5+(o-i):5-(i-o),t.avail_out=a<l?257+(l-a):257-(a-l),r.hold=p,r.bits=g},e5=Li,_l=15,t5=852,n5=592,r5=0,uy=1,i5=2,oJ=[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],aJ=[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],sJ=[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],lJ=[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],cJ=function(t,n,r,i,o,a,s,l){var c=l.bits,u=0,f=0,h=0,d=0,p=0,g=0,b=0,m=0,v=0,x=0,A,S,E,_,R,F=null,H=0,O,Z=new e5.Buf16(_l+1),ne=new e5.Buf16(_l+1),le=null,ie=0,pe,ge,Ee;for(u=0;u<=_l;u++)Z[u]=0;for(f=0;f<i;f++)Z[n[r+f]]++;for(p=c,d=_l;d>=1&&Z[d]===0;d--);if(p>d&&(p=d),d===0)return o[a++]=1<<24|64<<16|0,o[a++]=1<<24|64<<16|0,l.bits=1,0;for(h=1;h<d&&Z[h]===0;h++);for(p<h&&(p=h),m=1,u=1;u<=_l;u++)if(m<<=1,m-=Z[u],m<0)return-1;if(m>0&&(t===r5||d!==1))return-1;for(ne[1]=0,u=1;u<_l;u++)ne[u+1]=ne[u]+Z[u];for(f=0;f<i;f++)n[r+f]!==0&&(s[ne[n[r+f]]++]=f);if(t===r5?(F=le=s,O=19):t===uy?(F=oJ,H-=257,le=aJ,ie-=257,O=256):(F=sJ,le=lJ,O=-1),x=0,f=0,u=h,R=a,g=p,b=0,E=-1,v=1<<p,_=v-1,t===uy&&v>t5||t===i5&&v>n5)return 1;for(;;){pe=u-b,s[f]<O?(ge=0,Ee=s[f]):s[f]>O?(ge=le[ie+s[f]],Ee=F[H+s[f]]):(ge=96,Ee=0),A=1<<u-b,S=1<<g,h=S;do S-=A,o[R+(x>>b)+S]=pe<<24|ge<<16|Ee|0;while(S!==0);for(A=1<<u-1;x&A;)A>>=1;if(A!==0?(x&=A-1,x+=A):x=0,f++,--Z[u]===0){if(u===d)break;u=n[r+s[f]]}if(u>p&&(x&_)!==E){for(b===0&&(b=p),R+=h,g=u-b,m=1<<g;g+b<d&&(m-=Z[g+b],!(m<=0));)g++,m<<=1;if(v+=1<<g,t===uy&&v>t5||t===i5&&v>n5)return 1;E=x&_,o[E]=p<<24|g<<16|R-a|0}}return x!==0&&(o[R+x]=u-b<<24|64<<16|0),l.bits=p,0},On=Li,fy=L6,ri=N6,uJ=iJ,Tf=cJ,fJ=0,o5=1,a5=2,s5=4,hJ=5,bp=6,rs=0,dJ=1,pJ=2,tr=-2,l5=-3,c5=-4,gJ=-5,u5=8,f5=1,h5=2,d5=3,p5=4,g5=5,m5=6,b5=7,y5=8,w5=9,v5=10,yp=11,zi=12,hy=13,x5=14,dy=15,A5=16,E5=17,S5=18,_5=19,wp=20,vp=21,C5=22,k5=23,T5=24,I5=25,R5=26,py=27,D5=28,B5=29,dt=30,F5=31,mJ=32,bJ=852,yJ=592,wJ=15,vJ=wJ;function M5(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function xJ(){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 On.Buf16(320),this.work=new On.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function P5(e){var t;return!e||!e.state?tr:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=f5,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new On.Buf32(bJ),t.distcode=t.distdyn=new On.Buf32(yJ),t.sane=1,t.back=-1,rs)}function O5(e){var t;return!e||!e.state?tr:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,P5(e))}function L5(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))?tr:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,O5(e))}function N5(e,t){var n,r;return e?(r=new xJ,e.state=r,r.window=null,n=L5(e,t),n!==rs&&(e.state=null),n):tr}function AJ(e){return N5(e,vJ)}var z5=!0,gy,my;function EJ(e){if(z5){var t;for(gy=new On.Buf32(512),my=new On.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(Tf(o5,e.lens,0,288,gy,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Tf(a5,e.lens,0,32,my,0,e.work,{bits:5}),z5=!1}e.lencode=gy,e.lenbits=9,e.distcode=my,e.distbits=5}function U5(e,t,n,r){var i,o=e.state;return o.window===null&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new On.Buf8(o.wsize)),r>=o.wsize?(On.arraySet(o.window,t,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),On.arraySet(o.window,t,n-r,i,o.wnext),r-=i,r?(On.arraySet(o.window,t,n-r,r,0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=i))),0}function SJ(e,t){var n,r,i,o,a,s,l,c,u,f,h,d,p,g,b=0,m,v,x,A,S,E,_,R,F=new On.Buf8(4),H,O,Z=[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 tr;n=e.state,n.mode===zi&&(n.mode=hy),a=e.next_out,i=e.output,l=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,f=s,h=l,R=rs;e:for(;;)switch(n.mode){case f5:if(n.wrap===0){n.mode=hy;break}for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(n.wrap&2&&c===35615){n.check=0,F[0]=c&255,F[1]=c>>>8&255,n.check=ri(n.check,F,2,0),c=0,u=0,n.mode=h5;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=dt;break}if((c&15)!==u5){e.msg="unknown compression method",n.mode=dt;break}if(c>>>=4,u-=4,_=(c&15)+8,n.wbits===0)n.wbits=_;else if(_>n.wbits){e.msg="invalid window size",n.mode=dt;break}n.dmax=1<<_,e.adler=n.check=1,n.mode=c&512?v5:zi,c=0,u=0;break;case h5:for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(n.flags=c,(n.flags&255)!==u5){e.msg="unknown compression method",n.mode=dt;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=dt;break}n.head&&(n.head.text=c>>8&1),n.flags&512&&(F[0]=c&255,F[1]=c>>>8&255,n.check=ri(n.check,F,2,0)),c=0,u=0,n.mode=d5;case d5:for(;u<32;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}n.head&&(n.head.time=c),n.flags&512&&(F[0]=c&255,F[1]=c>>>8&255,F[2]=c>>>16&255,F[3]=c>>>24&255,n.check=ri(n.check,F,4,0)),c=0,u=0,n.mode=p5;case p5:for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}n.head&&(n.head.xflags=c&255,n.head.os=c>>8),n.flags&512&&(F[0]=c&255,F[1]=c>>>8&255,n.check=ri(n.check,F,2,0)),c=0,u=0,n.mode=g5;case g5:if(n.flags&1024){for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}n.length=c,n.head&&(n.head.extra_len=c),n.flags&512&&(F[0]=c&255,F[1]=c>>>8&255,n.check=ri(n.check,F,2,0)),c=0,u=0}else n.head&&(n.head.extra=null);n.mode=m5;case m5:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(_=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),On.arraySet(n.head.extra,r,o,d,_)),n.flags&512&&(n.check=ri(n.check,r,d,o)),s-=d,o+=d,n.length-=d),n.length))break e;n.length=0,n.mode=b5;case b5:if(n.flags&2048){if(s===0)break e;d=0;do _=r[o+d++],n.head&&_&&n.length<65536&&(n.head.name+=String.fromCharCode(_));while(_&&d<s);if(n.flags&512&&(n.check=ri(n.check,r,d,o)),s-=d,o+=d,_)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=y5;case y5:if(n.flags&4096){if(s===0)break e;d=0;do _=r[o+d++],n.head&&_&&n.length<65536&&(n.head.comment+=String.fromCharCode(_));while(_&&d<s);if(n.flags&512&&(n.check=ri(n.check,r,d,o)),s-=d,o+=d,_)break e}else n.head&&(n.head.comment=null);n.mode=w5;case w5:if(n.flags&512){for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(c!==(n.check&65535)){e.msg="header crc mismatch",n.mode=dt;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=zi;break;case v5:for(;u<32;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}e.adler=n.check=M5(c),c=0,u=0,n.mode=yp;case yp:if(n.havedict===0)return e.next_out=a,e.avail_out=l,e.next_in=o,e.avail_in=s,n.hold=c,n.bits=u,pJ;e.adler=n.check=1,n.mode=zi;case zi:if(t===hJ||t===bp)break e;case hy:if(n.last){c>>>=u&7,u-=u&7,n.mode=py;break}for(;u<3;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}switch(n.last=c&1,c>>>=1,u-=1,c&3){case 0:n.mode=x5;break;case 1:if(EJ(n),n.mode=wp,t===bp){c>>>=2,u-=2;break e}break;case 2:n.mode=E5;break;case 3:e.msg="invalid block type",n.mode=dt}c>>>=2,u-=2;break;case x5:for(c>>>=u&7,u-=u&7;u<32;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if((c&65535)!==(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=dt;break}if(n.length=c&65535,c=0,u=0,n.mode=dy,t===bp)break e;case dy:n.mode=A5;case A5:if(d=n.length,d){if(d>s&&(d=s),d>l&&(d=l),d===0)break e;On.arraySet(i,r,o,d,a),s-=d,o+=d,l-=d,a+=d,n.length-=d;break}n.mode=zi;break;case E5:for(;u<14;){if(s===0)break e;s--,c+=r[o++]<<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=dt;break}n.have=0,n.mode=S5;case S5:for(;n.have<n.ncode;){for(;u<3;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}n.lens[Z[n.have++]]=c&7,c>>>=3,u-=3}for(;n.have<19;)n.lens[Z[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,H={bits:n.lenbits},R=Tf(fJ,n.lens,0,19,n.lencode,0,n.work,H),n.lenbits=H.bits,R){e.msg="invalid code lengths set",n.mode=dt;break}n.have=0,n.mode=_5;case _5:for(;n.have<n.nlen+n.ndist;){for(;b=n.lencode[c&(1<<n.lenbits)-1],m=b>>>24,v=b>>>16&255,x=b&65535,!(m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(x<16)c>>>=m,u-=m,n.lens[n.have++]=x;else{if(x===16){for(O=m+2;u<O;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(c>>>=m,u-=m,n.have===0){e.msg="invalid bit length repeat",n.mode=dt;break}_=n.lens[n.have-1],d=3+(c&3),c>>>=2,u-=2}else if(x===17){for(O=m+3;u<O;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}c>>>=m,u-=m,_=0,d=3+(c&7),c>>>=3,u-=3}else{for(O=m+7;u<O;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}c>>>=m,u-=m,_=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=dt;break}for(;d--;)n.lens[n.have++]=_}}if(n.mode===dt)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=dt;break}if(n.lenbits=9,H={bits:n.lenbits},R=Tf(o5,n.lens,0,n.nlen,n.lencode,0,n.work,H),n.lenbits=H.bits,R){e.msg="invalid literal/lengths set",n.mode=dt;break}if(n.distbits=6,n.distcode=n.distdyn,H={bits:n.distbits},R=Tf(a5,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,H),n.distbits=H.bits,R){e.msg="invalid distances set",n.mode=dt;break}if(n.mode=wp,t===bp)break e;case wp:n.mode=vp;case vp:if(s>=6&&l>=258){e.next_out=a,e.avail_out=l,e.next_in=o,e.avail_in=s,n.hold=c,n.bits=u,uJ(e,h),a=e.next_out,i=e.output,l=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,n.mode===zi&&(n.back=-1);break}for(n.back=0;b=n.lencode[c&(1<<n.lenbits)-1],m=b>>>24,v=b>>>16&255,x=b&65535,!(m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(v&&!(v&240)){for(A=m,S=v,E=x;b=n.lencode[E+((c&(1<<A+S)-1)>>A)],m=b>>>24,v=b>>>16&255,x=b&65535,!(A+m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}c>>>=A,u-=A,n.back+=A}if(c>>>=m,u-=m,n.back+=m,n.length=x,v===0){n.mode=R5;break}if(v&32){n.back=-1,n.mode=zi;break}if(v&64){e.msg="invalid literal/length code",n.mode=dt;break}n.extra=v&15,n.mode=C5;case C5:if(n.extra){for(O=n.extra;u<O;){if(s===0)break e;s--,c+=r[o++]<<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=k5;case k5:for(;b=n.distcode[c&(1<<n.distbits)-1],m=b>>>24,v=b>>>16&255,x=b&65535,!(m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(!(v&240)){for(A=m,S=v,E=x;b=n.distcode[E+((c&(1<<A+S)-1)>>A)],m=b>>>24,v=b>>>16&255,x=b&65535,!(A+m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}c>>>=A,u-=A,n.back+=A}if(c>>>=m,u-=m,n.back+=m,v&64){e.msg="invalid distance code",n.mode=dt;break}n.offset=x,n.extra=v&15,n.mode=T5;case T5:if(n.extra){for(O=n.extra;u<O;){if(s===0)break e;s--,c+=r[o++]<<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=dt;break}n.mode=I5;case I5: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=dt;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=a-n.offset,d=n.length;d>l&&(d=l),l-=d,n.length-=d;do i[a++]=g[p++];while(--d);n.length===0&&(n.mode=vp);break;case R5:if(l===0)break e;i[a++]=n.length,l--,n.mode=vp;break;case py:if(n.wrap){for(;u<32;){if(s===0)break e;s--,c|=r[o++]<<u,u+=8}if(h-=l,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?ri(n.check,i,h,a-h):fy(n.check,i,h,a-h)),h=l,(n.flags?c:M5(c))!==n.check){e.msg="incorrect data check",n.mode=dt;break}c=0,u=0}n.mode=D5;case D5:if(n.wrap&&n.flags){for(;u<32;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(c!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=dt;break}c=0,u=0}n.mode=B5;case B5:R=dJ;break e;case dt:R=l5;break e;case F5:return c5;case mJ:default:return tr}return e.next_out=a,e.avail_out=l,e.next_in=o,e.avail_in=s,n.hold=c,n.bits=u,(n.wsize||h!==e.avail_out&&n.mode<dt&&(n.mode<py||t!==s5))&&U5(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?ri(n.check,i,h,e.next_out-h):fy(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===zi?128:0)+(n.mode===wp||n.mode===dy?256:0),(f===0&&h===0||t===s5)&&R===rs&&(R=gJ),R}function _J(e){if(!e||!e.state)return tr;var t=e.state;return t.window&&(t.window=null),e.state=null,rs}function CJ(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?tr:(n.head=t,t.done=!1,rs)}function kJ(e,t){var n=t.length,r,i,o;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==yp)?tr:r.mode===yp&&(i=1,i=fy(i,t,n,0),i!==r.check)?l5:(o=U5(e,t,n,n),o?(r.mode=F5,c5):(r.havedict=1,rs))}Cr.inflateReset=O5,Cr.inflateReset2=L5,Cr.inflateResetKeep=P5,Cr.inflateInit=AJ,Cr.inflateInit2=N5,Cr.inflate=SJ,Cr.inflateEnd=_J,Cr.inflateGetHeader=CJ,Cr.inflateSetDictionary=kJ,Cr.inflateInfo="pako inflate (from Nodeca project)";var $5={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 TJ(){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 IJ=TJ,Cl=Cr,If=Li,xp=ts,xt=$5,by=ty,RJ=Q6,DJ=IJ,H5=Object.prototype.toString;function is(e){if(!(this instanceof is))return new is(e);this.options=If.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 RJ,this.strm.avail_out=0;var n=Cl.inflateInit2(this.strm,t.windowBits);if(n!==xt.Z_OK)throw new Error(by[n]);if(this.header=new DJ,Cl.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=xp.string2buf(t.dictionary):H5.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=Cl.inflateSetDictionary(this.strm,t.dictionary),n!==xt.Z_OK)))throw new Error(by[n])}is.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,o,a,s,l,c,u=!1;if(this.ended)return!1;a=t===~~t?t:t===!0?xt.Z_FINISH:xt.Z_NO_FLUSH,typeof e=="string"?n.input=xp.binstring2buf(e):H5.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 If.Buf8(r),n.next_out=0,n.avail_out=r),o=Cl.inflate(n,xt.Z_NO_FLUSH),o===xt.Z_NEED_DICT&&i&&(o=Cl.inflateSetDictionary(this.strm,i)),o===xt.Z_BUF_ERROR&&u===!0&&(o=xt.Z_OK,u=!1),o!==xt.Z_STREAM_END&&o!==xt.Z_OK)return this.onEnd(o),this.ended=!0,!1;n.next_out&&(n.avail_out===0||o===xt.Z_STREAM_END||n.avail_in===0&&(a===xt.Z_FINISH||a===xt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=xp.utf8border(n.output,n.next_out),l=n.next_out-s,c=xp.buf2string(n.output,s),n.next_out=l,n.avail_out=r-l,l&&If.arraySet(n.output,n.output,s,l,0),this.onData(c)):this.onData(If.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)&&o!==xt.Z_STREAM_END);return o===xt.Z_STREAM_END&&(a=xt.Z_FINISH),a===xt.Z_FINISH?(o=Cl.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,o===xt.Z_OK):(a===xt.Z_SYNC_FLUSH&&(this.onEnd(xt.Z_OK),n.avail_out=0),!0)},is.prototype.onData=function(e){this.chunks.push(e)},is.prototype.onEnd=function(e){e===xt.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=If.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function yy(e,t){var n=new is(t);if(n.push(e,!0),n.err)throw n.msg||by[n.err];return n.result}function BJ(e,t){return t=t||{},t.raw=!0,yy(e,t)}kf.Inflate=is,kf.inflate=yy,kf.inflateRaw=BJ,kf.ungzip=yy;var FJ=Li.assign,MJ=pf,PJ=kf,OJ=$5,G5={};FJ(G5,MJ,PJ,OJ);var Ap=G5;async function Uo(e){try{let t,n=0,r=0;const i=[];let o=0,a;do{const l=e.subarray(n);if(a=new Ap.Inflate,{strm:t}=a,a.push(l,Ap.Z_SYNC_FLUSH),a.err)throw new Error(a.msg);n+=t.next_in,i[r]=a.result,o+=i[r].length,r+=1}while(t.avail_in);const s=new Uint8Array(o);for(let l=0,c=0;l<i.length;l++)s.set(i[l],c),c+=i[l].length;return Ne.Buffer.from(s)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function V5(e,t){try{let n;const{minv:r,maxv:i}=t;let o=r.blockPosition,a=r.dataPosition;const s=[],l=[],c=[];let u=0,f=0;do{const p=e.subarray(o-r.blockPosition),g=new Ap.Inflate;if({strm:n}=g,g.push(p,Ap.Z_SYNC_FLUSH),g.err)throw new Error(g.msg);const b=g.result;s.push(b);let m=b.length;l.push(o),c.push(a),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),m=s[0].length);const v=o;if(o+=n.next_in,a+=m,v>=i.blockPosition){s[f]=s[f].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),l.push(o),c.push(a),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:Ne.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}}var LJ=rt,nr=null;try{nr=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 rt(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}rt.prototype.__isLong__,Object.defineProperty(rt.prototype,"__isLong__",{value:!0});function En(e){return(e&&e.__isLong__)===!0}rt.isLong=En;var j5={},q5={};function os(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=q5[e],r)?r:(n=it(e,(e|0)<0?-1:0,!0),i&&(q5[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=j5[e],r)?r:(n=it(e,e<0?-1:0,!1),i&&(j5[e]=n),n))}rt.fromInt=os;function rr(e,t){if(isNaN(e))return t?as:ir;if(t){if(e<0)return as;if(e>=Y5)return J5}else{if(e<=-Z5)return Sn;if(e+1>=Z5)return K5}return e<0?rr(-e,t).neg():it(e%kl|0,e/kl|0,t)}rt.fromNumber=rr;function it(e,t,n){return new rt(e,t,n)}rt.fromBits=it;var Ep=Math.pow;function wy(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return ir;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 wy(e.substring(1),t,n).neg();for(var i=rr(Ep(n,8)),o=ir,a=0;a<e.length;a+=8){var s=Math.min(8,e.length-a),l=parseInt(e.substring(a,a+s),n);if(s<8){var c=rr(Ep(n,s));o=o.mul(c).add(rr(l))}else o=o.mul(i),o=o.add(rr(l))}return o.unsigned=t,o}rt.fromString=wy;function kr(e,t){return typeof e=="number"?rr(e,t):typeof e=="string"?wy(e,t):it(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}rt.fromValue=kr;var W5=65536,NJ=1<<24,kl=W5*W5,Y5=kl*kl,Z5=Y5/2,Q5=os(NJ),ir=os(0);rt.ZERO=ir;var as=os(0,!0);rt.UZERO=as;var Tl=os(1);rt.ONE=Tl;var X5=os(1,!0);rt.UONE=X5;var vy=os(-1);rt.NEG_ONE=vy;var K5=it(-1,2147483647,!1);rt.MAX_VALUE=K5;var J5=it(-1,-1,!0);rt.MAX_UNSIGNED_VALUE=J5;var Sn=it(0,-2147483648,!1);rt.MIN_VALUE=Sn;var re=rt.prototype;re.toInt=function(){return this.unsigned?this.low>>>0:this.low},re.toNumber=function(){return this.unsigned?(this.high>>>0)*kl+(this.low>>>0):this.high*kl+(this.low>>>0)},re.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(Sn)){var n=rr(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 o=rr(Ep(t,6),this.unsigned),a=this,s="";;){var l=a.div(o),c=a.sub(l.mul(o)).toInt()>>>0,u=c.toString(t);if(a=l,a.isZero())return u+s;for(;u.length<6;)u="0"+u;s=""+u+s}},re.getHighBits=function(){return this.high},re.getHighBitsUnsigned=function(){return this.high>>>0},re.getLowBits=function(){return this.low},re.getLowBitsUnsigned=function(){return this.low>>>0},re.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Sn)?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},re.isZero=function(){return this.high===0&&this.low===0},re.eqz=re.isZero,re.isNegative=function(){return!this.unsigned&&this.high<0},re.isPositive=function(){return this.unsigned||this.high>=0},re.isOdd=function(){return(this.low&1)===1},re.isEven=function(){return(this.low&1)===0},re.equals=function(t){return En(t)||(t=kr(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},re.eq=re.equals,re.notEquals=function(t){return!this.eq(t)},re.neq=re.notEquals,re.ne=re.notEquals,re.lessThan=function(t){return this.comp(t)<0},re.lt=re.lessThan,re.lessThanOrEqual=function(t){return this.comp(t)<=0},re.lte=re.lessThanOrEqual,re.le=re.lessThanOrEqual,re.greaterThan=function(t){return this.comp(t)>0},re.gt=re.greaterThan,re.greaterThanOrEqual=function(t){return this.comp(t)>=0},re.gte=re.greaterThanOrEqual,re.ge=re.greaterThanOrEqual,re.compare=function(t){if(En(t)||(t=kr(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},re.comp=re.compare,re.negate=function(){return!this.unsigned&&this.eq(Sn)?Sn:this.not().add(Tl)},re.neg=re.negate,re.add=function(t){En(t)||(t=kr(t));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,o=this.low&65535,a=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+=o+c,h+=d>>>16,d&=65535,h+=i+l,f+=h>>>16,h&=65535,f+=r+s,u+=f>>>16,f&=65535,u+=n+a,u&=65535,it(h<<16|d,u<<16|f,this.unsigned)},re.subtract=function(t){return En(t)||(t=kr(t)),this.add(t.neg())},re.sub=re.subtract,re.multiply=function(t){if(this.isZero())return ir;if(En(t)||(t=kr(t)),nr){var n=nr.mul(this.low,this.high,t.low,t.high);return it(n,nr.get_high(),this.unsigned)}if(t.isZero())return ir;if(this.eq(Sn))return t.isOdd()?Sn:ir;if(t.eq(Sn))return this.isOdd()?Sn:ir;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(Q5)&&t.lt(Q5))return rr(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,o=this.low>>>16,a=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+=a*u,d+=p>>>16,p&=65535,d+=o*u,h+=d>>>16,d&=65535,d+=a*c,h+=d>>>16,d&=65535,h+=i*u,f+=h>>>16,h&=65535,h+=o*c,f+=h>>>16,h&=65535,h+=a*l,f+=h>>>16,h&=65535,f+=r*u+i*c+o*l+a*s,f&=65535,it(d<<16|p,f<<16|h,this.unsigned)},re.mul=re.multiply,re.divide=function(t){if(En(t)||(t=kr(t)),t.isZero())throw Error("division by zero");if(nr){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?nr.div_u:nr.div_s)(this.low,this.high,t.low,t.high);return it(n,nr.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?as:ir;var r,i,o;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return as;if(t.gt(this.shru(1)))return X5;o=as}else{if(this.eq(Sn)){if(t.eq(Tl)||t.eq(vy))return Sn;if(t.eq(Sn))return Tl;var a=this.shr(1);return r=a.div(t).shl(1),r.eq(ir)?t.isNegative()?Tl:vy:(i=this.sub(t.mul(r)),o=r.add(i.div(t)),o)}else if(t.eq(Sn))return this.unsigned?as:ir;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();o=ir}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:Ep(2,s-48),c=rr(r),u=c.mul(t);u.isNegative()||u.gt(i);)r-=l,c=rr(r,this.unsigned),u=c.mul(t);c.isZero()&&(c=Tl),o=o.add(c),i=i.sub(u)}return o},re.div=re.divide,re.modulo=function(t){if(En(t)||(t=kr(t)),nr){var n=(this.unsigned?nr.rem_u:nr.rem_s)(this.low,this.high,t.low,t.high);return it(n,nr.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},re.mod=re.modulo,re.rem=re.modulo,re.not=function(){return it(~this.low,~this.high,this.unsigned)},re.and=function(t){return En(t)||(t=kr(t)),it(this.low&t.low,this.high&t.high,this.unsigned)},re.or=function(t){return En(t)||(t=kr(t)),it(this.low|t.low,this.high|t.high,this.unsigned)},re.xor=function(t){return En(t)||(t=kr(t)),it(this.low^t.low,this.high^t.high,this.unsigned)},re.shiftLeft=function(t){return En(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?it(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):it(0,this.low<<t-32,this.unsigned)},re.shl=re.shiftLeft,re.shiftRight=function(t){return En(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?it(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):it(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},re.shr=re.shiftRight,re.shiftRightUnsigned=function(t){if(En(t)&&(t=t.toInt()),t&=63,t===0)return this;var n=this.high;if(t<32){var r=this.low;return it(r>>>t|n<<32-t,n>>>t,this.unsigned)}else return t===32?it(n,0,this.unsigned):it(n>>>t-32,0,this.unsigned)},re.shru=re.shiftRightUnsigned,re.shr_u=re.shiftRightUnsigned,re.toSigned=function(){return this.unsigned?it(this.low,this.high,!1):this},re.toUnsigned=function(){return this.unsigned?this:it(this.low,this.high,!0)},re.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},re.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]},re.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]},rt.fromBytes=function(t,n,r){return r?rt.fromBytesLE(t,n):rt.fromBytesBE(t,n)},rt.fromBytesLE=function(t,n){return new rt(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)},rt.fromBytesBE=function(t,n){return new rt(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)};const Sp=op(LJ),_p=1;class zJ{constructor({filehandle:t,path:n}){if(t)this.filehandle=t;else if(n)this.filehandle=new zt(n);else throw new TypeError("either filehandle or path must be defined")}_readLongWithOverflow(t,n=0,r=!0){const i=Sp.fromBytesLE(t.slice(n,n+8),r);if(i.greaterThan(Number.MAX_SAFE_INTEGER)||i.lessThan(Number.MIN_SAFE_INTEGER))throw new TypeError("integer overflow");return i.toNumber()}_getIndex(){return this.index||(this.index=this._readIndex()),this.index}async _readIndex(){let t=Ne.Buffer.allocUnsafe(8);await this.filehandle.read(t,0,8,0);const n=this._readLongWithOverflow(t,0,!0);if(!n)return[[0,0]];const r=new Array(n+1);r[0]=[0,0];const i=8*2*n;if(i>Number.MAX_SAFE_INTEGER)throw new TypeError("integer overflow");t=Ne.Buffer.allocUnsafe(i),await this.filehandle.read(t,0,i,8);for(let o=0;o<n;o+=1){const a=this._readLongWithOverflow(t,o*16),s=this._readLongWithOverflow(t,o*16+8);r[o+1]=[a,s]}return r}async getLastBlock(){const t=await this._getIndex();if(t.length)return t[t.length-1]}async getRelevantBlocksForRead(t,n){const r=n+t;if(t===0)return[];const i=await this._getIndex(),o=[],a=(h,d)=>{const p=h[_p],g=d?d[_p]:1/0;return p<=n&&g>n?0:p<n?-1:1};let s=0,l=i.length-1,c=Math.floor(i.length/2),u=a(i[c],i[c+1]);for(;u!==0;)u>0?l=c-1:u<0&&(s=c+1),c=Math.ceil((l-s)/2)+s,u=a(i[c],i[c+1]);o.push(i[c]);let f=c+1;for(;f<i.length&&(o.push(i[f]),!(i[f][_p]>=r));f+=1);return o[o.length-1][_p]<r&&o.push([]),o}}class e8{constructor({filehandle:t,path:n,gziFilehandle:r,gziPath:i}){if(t)this.filehandle=t;else if(n)this.filehandle=new zt(n);else throw new TypeError("either filehandle or path must be defined");if(!r&&!i&&!n)throw new TypeError("either gziFilehandle or gziPath must be defined");this.gzi=new zJ({filehandle:r,path:!r&&!i&&n?i:`${n}.gzi`})}async stat(){const t=await this.filehandle.stat();return Object.assign(t,{size:await this.getUncompressedFileSize(),blocks:void 0,blksize:void 0})}async getUncompressedFileSize(){const[,t]=await this.gzi.getLastBlock(),{size:n}=await this.filehandle.stat(),r=Ne.Buffer.allocUnsafe(4),{bytesRead:i}=await this.filehandle.read(r,0,4,n-28-4);if(i!==4)throw new Error("read error");const o=r.readUInt32LE(0);return t+o}async _readAndUncompressBlock(t,[n],[r]){let i=r;i||(i=(await this.filehandle.stat()).size);const o=i-n;return await this.filehandle.read(t,0,o,n),await Uo(t.slice(0,o))}async read(t,n,r,i){const o=await this.gzi.getRelevantBlocksForRead(r,i),a=Ne.Buffer.allocUnsafe(32768*2);let s=n,l=0;for(let c=0;c<o.length-1;c+=1){const u=await this._readAndUncompressBlock(a,o[c],o[c+1]),[,f]=o[c],h=f>=i?0:i-f,d=Math.min(i+r,f+u.length)-f;h>=0&&h<u.length&&(u.copy(t,s,h,d),s+=d-h,l+=d-h)}return{bytesRead:l,buffer:t}}}function t8(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function UJ(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 o=n.toString("utf8").split(/\r?\n/).filter(a=>/\S/.test(a)).map(a=>a.split(" ")).filter(a=>a[0]!=="").map(a=>((!i||i.name!==a[0])&&(i={name:a[0],id:r},r+=1),{id:i.id,name:a[0],length:+a[1],start:0,end:+a[1],offset:+a[2],lineLength:+a[3],lineBytes:+a[4]}));return{name:Object.fromEntries(o.map(a=>[a.name,a])),id:Object.fromEntries(o.map(a=>[a.id,a]))}}class n8{constructor({fasta:t,fai:n,path:r,faiPath:i}){if(t)this.fasta=t;else if(r)this.fasta=new zt(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 zt(i);else if(r)this.fai=new zt(`${r}.fai`);else throw new Error("Need to pass filehandle for or path to localfile")}async _getIndexes(t){return this.indexes||(this.indexes=UJ(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 o=0;o<i.length;o+=1)n[i[o].name]=i[o].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 o=(await this._getIndexes(i)).id[t];if(o)return this._fetchFromIndexEntry(o,n,r,i)}async getResiduesByName(t,n,r,i){const o=(await this._getIndexes(i)).name[t];if(o)return this._fetchFromIndexEntry(o,n,r,i)}async getSequence(t,n,r,i){return this.getResiduesByName(t,n,r,i)}async _fetchFromIndexEntry(t,n=0,r,i){let o=r;if(n<0)throw new TypeError("regionStart cannot be less than 0");if((o===void 0||o>t.length)&&(o=t.length),n>=o)return"";const a=t8(t,n),s=t8(t,o)-a,l=Buffer.allocUnsafe(s);return await this.fasta.read(l,0,s,a,i),l.toString("utf8").replace(/\s+/g,"")}}class $J extends n8{constructor({fasta:t,path:n,fai:r,faiPath:i,gzi:o,gziPath:a}){super({fasta:t,path:n,fai:r,faiPath:i}),t&&o?this.fasta=new e8({filehandle:t,gziFilehandle:o}):n&&a&&(this.fasta=new e8({path:n,gziPath:a}))}}function r8(e){return e.split(">").filter(t=>/\S/.test(t)).map(t=>{const[n,...r]=t.split(`
|
3750
3750
|
`),[i,...o]=n.split(" "),a=r.join("").replace(/\s/g,"");return{id:i,description:o.join(" "),sequence:a}})}class HJ{constructor({fasta:t,path:n}){if(t)this.fasta=t;else if(n)this.fasta=new zt(n);else throw new Error("Need to pass fasta or path");this.data=this.fasta.readFile().then(r=>{const i=r.toString("utf8");return r8(i)})}async fetch(t,n,r){const o=(await this.data).find(s=>s.id===t),a=r-n;if(!o)throw new Error(`no sequence with id ${t} exists`);return o.sequence.substr(n,a)}async getSequenceNames(){return(await this.data).map(n=>n.id)}}const GJ=Object.freeze(Object.defineProperty({__proto__:null,BgzipIndexedFasta:$J,FetchableSmallFasta:HJ,IndexedFasta:n8,parseSmallFasta:r8},Symbol.toStringTag,{value:"Module"})),Cp=BigInt(32);function VJ(e,t,n){const r=+!!n,i=+!n;return BigInt(e.getInt32(t,n)*i+e.getInt32(t+4,n)*r)<<Cp|BigInt(e.getUint32(t,n)*r+e.getUint32(t+4,n)*i)}function jJ(e,t,n){const r=e.getUint32(t,n),i=e.getUint32(t+4,n),o=+!!n,a=+!n;return BigInt(r*a+i*o)<<Cp|BigInt(r*o+i*a)}function qJ(e,t,n,r){const i=Number(n>>Cp),o=Number(n&BigInt(4294967295));r?(e.setInt32(t+4,i,r),e.setUint32(t,o,r)):(e.setInt32(t,i,r),e.setUint32(t+4,o,r))}function WJ(e,t,n,r){const i=Number(n>>Cp),o=Number(n&BigInt(4294967295));r?(e.setUint32(t+4,i,r),e.setUint32(t,o,r)):(e.setUint32(t,i,r),e.setUint32(t+4,o,r))}"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(e,t){return VJ(this,e,t)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(e,t){return jJ(this,e,t)}),"setBigInt64"in DataView||(DataView.prototype.setBigInt64=function(e,t,n){qJ(this,e,t,n)}),"setBigUint64"in DataView||(DataView.prototype.setBigUint64=function(e,t,n){WJ(this,e,t,n)});class YJ{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+`
|
3751
|
-
`}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 Tr=new Map,ss="___parser_",Ir={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},kp={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"},Tp={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};let Ze=class Pr{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new Pr}primitiveGenerateN(t,n){const r=kp[t],i=Tp[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${Ir[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 Tr.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"&&!Tr.has(n.type)&&!(n.type in Ir))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),o=n.choices[i];if(isNaN(i))throw new Error(`Choice key "${r}" is not a number.`);if(typeof o=="string"&&!Tr.has(o)&&!(o in Ir))throw new Error(`Choice type "${o}" 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 Pr)&&!Tr.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof Pr)&&!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 Ir)&&!Tr.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 YJ(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${ss+this.alias}(0).result;`)):this.addRawCode(n),n}getCode(){return this.getContext("imports").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 ${ss+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=Tr.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(Ir).indexOf(this.type)>=0)t=Ir[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=Ir[this.options.type]:this.options.type instanceof Pr&&(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 Pr;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},o=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 a=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}a=0,c=l=o(i(f)-c)}const d=s?l-a-h:a,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),a+=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,o=i.toLowerCase()==="hex",a='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(o?`${n} = Array.from(buffer.subarray(${r}, ${l}), ${a}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${l}));`)}else if(this.options.length){const s=t.generateOption(this.options.length);t.pushCode(o?`${n} = Array.from(buffer.subarray(offset, offset + ${s}), ${a}).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(o?`${n} = Array.from(buffer.subarray(${r}, offset - 1), ${a}).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(o?`${n} = Array.from(buffer.subarray(${r}, offset), ${a}).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(),o=t.generateTmpVariable();t.pushCode(`var ${i} = offset;`),t.pushCode(`var ${o} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${o} = dataView.getUint8(offset);`);const a=t.addImport(r);t.pushCode(`if (${a}.call(${t.generateVariable()}, ${o}, 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,o=t.generateTmpVariable(),a=t.generateVariable(this.varName),s=t.generateTmpVariable(),l=this.options.key,c=typeof l=="string";if(c?t.pushCode(`${a} = {};`):t.pushCode(`${a} = [];`),typeof this.options.readUntil=="function"?t.pushCode("do {"):this.options.readUntil==="eof"?t.pushCode(`for (var ${o} = 0; offset < buffer.length; ${o}++) {`):r!==void 0?t.pushCode(`for (var ${o} = offset + ${r}; offset < ${o}; ) {`):t.pushCode(`for (var ${o} = ${n}; ${o} > 0; ${o}--) {`),typeof i=="string")if(Tr.get(i)){const u=t.generateTmpVariable();if(t.pushCode(`var ${u} = ${ss+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} - ${o},`)}t.pushCode("});"),t.pushCode(`var ${s} = ${u}.result; offset = ${u}.offset;`),i!==this.alias&&t.addReference(i)}else{const u=kp[i],f=Tp[i];t.pushCode(`var ${s} = dataView.get${u}(offset, ${f});`),t.pushCode(`offset += ${Ir[i]};`)}else if(i instanceof Pr){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} - ${o};`)),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(`${a}[${s}.${l}] = ${s};`):t.pushCode(`${a}.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(Tr.has(r)){const o=t.generateTmpVariable();t.pushCode(`var ${o} = ${ss+r}(offset, {`),t.useContextVariables&&(t.pushCode(`$parent: ${i}.$parent,`),t.pushCode(`$root: ${i}.$root,`)),t.pushCode("});"),t.pushCode(`${i} = ${o}.result; offset = ${o}.offset;`),r!==this.alias&&t.addReference(r)}else{const o=kp[r],a=Tp[r];t.pushCode(`${i} = dataView.get${o}(offset, ${a});`),t.pushCode(`offset += ${Ir[r]}`)}}else r instanceof Pr&&(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 o=parseInt(i,10),a=this.options.choices[o];t.pushCode(`case ${o}:`),this.generateChoiceCase(t,this.varName,a),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 Pr){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(Tr.has(this.options.type)){const r=t.generateTmpVariable();if(t.pushCode(`var ${r} = ${ss+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(),o=t.generateTmpVariable(),a=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 ${o} = offset;`),t.pushCode(`var ${a} = dataView;`),t.pushCode(`buffer = ${r};`),t.pushCode("offset = 0;"),t.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof Pr)this.varName&&t.pushCode(`${n} = {};`),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(Tr.has(this.options.type)){const l=t.generateTmpVariable();t.pushCode(`var ${l} = ${ss+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 = ${a};`),t.pushCode(`offset = ${o};`)}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(),o=t.generateVariable(this.varName);if(t.pushCode(`var ${i} = offset;`),t.pushCode(`offset = ${r};`),this.options.type instanceof Pr){if(t.pushCode(`${o} = {};`),t.useContextVariables){const a=t.generateVariable();t.pushCode(`${o}.$parent = ${a};`),t.pushCode(`${o}.$root = ${a}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),t.useContextVariables&&(t.pushCode(`delete ${o}.$parent;`),t.pushCode(`delete ${o}.$root;`))}else if(Tr.has(this.options.type)){const a=t.generateTmpVariable();if(t.pushCode(`var ${a} = ${ss+this.options.type}(offset, {`),t.useContextVariables){const s=t.generateVariable();t.pushCode(`$parent: ${s},`),t.pushCode(`$root: ${s}.$root,`)}t.pushCode("});"),t.pushCode(`${o} = ${a}.result; offset = ${a}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}else if(Object.keys(Ir).indexOf(this.options.type)>=0){const a=kp[n],s=Tp[n];t.pushCode(`${o} = dataView.get${a}(offset, ${s});`),t.pushCode(`offset += ${Ir[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}};var i8={},xy={},ls={},Rf={};Object.defineProperty(Rf,"__esModule",{value:!0});function Ay(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ZJ(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 Ey(e,t,n){return t&&ZJ(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function QJ(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&&Sy(e,t)}function Il(e){return Il=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Il(e)}function Sy(e,t){return Sy=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Sy(e,t)}function XJ(){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 Df(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function KJ(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 Df(e)}function JJ(e){var t=XJ();return function(){var r=Il(e),i;if(t){var o=Il(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return KJ(this,i)}}function eee(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=Il(e),e!==null););return e}function Ip(){return typeof Reflect<"u"&&Reflect.get?Ip=Reflect.get.bind():Ip=function(t,n,r){var i=eee(t,n);if(i){var o=Object.getOwnPropertyDescriptor(i,n);return o.get?o.get.call(arguments.length<3?t:r):o.value}},Ip.apply(this,arguments)}var o8=function(){function e(){Ay(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return Ey(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],o=0,a=i.length;o<a;o++)if(i[o].callback===r){i.splice(o,1);return}}}},{key:"dispatchEvent",value:function(n){if(n.type in this.listeners){for(var r=this.listeners[n.type],i=r.slice(),o=0,a=i.length;o<a;o++){var s=i[o];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}(),_y=function(e){QJ(n,e);var t=JJ(n);function n(){var r;return Ay(this,n),r=t.call(this),r.listeners||o8.call(Df(r)),Object.defineProperty(Df(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(Df(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(Df(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return Ey(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)),Ip(Il(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(o8),a8=function(){function e(){Ay(this,e),Object.defineProperty(this,"signal",{value:new _y,writable:!0,configurable:!0})}return Ey(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&&(a8.prototype[Symbol.toStringTag]="AbortController",_y.prototype[Symbol.toStringTag]="AbortSignal");function tee(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 nee(e){typeof e=="function"&&(e={fetch:e});var t=e,n=t.fetch,r=t.Request,i=r===void 0?n.Request:r,o=t.AbortController,a=t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,s=a===void 0?!1:a;if(!tee({fetch:n,Request:i,AbortController:o,__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 b=new Promise(function(m,v){p.addEventListener("abort",function(){return v(g)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([b,c(h,d)])}return c(h,d)};return{fetch:u,Request:l}}Rf.AbortController=a8,Rf.AbortSignal=_y,Rf.abortableFetch=nee,Object.defineProperty(ls,"__esModule",{value:!0}),ls.AbortSignal=ls.AbortController=void 0;const s8=Rf;var Rp=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof globalThis<"u")return globalThis;throw new Error("unable to locate global object")};let ree=typeof Rp().AbortController>"u"?s8.AbortController:Rp().AbortController;ls.AbortController=ree;let iee=typeof Rp().AbortController>"u"?s8.AbortSignal:Rp().AbortSignal;ls.AbortSignal=iee;var Cy={};Object.defineProperty(Cy,"__esModule",{value:!0});const oee=ls;class aee{}class see{constructor(){this.signals=new Set,this.abortController=new oee.AbortController}addSignal(t=new aee){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()}}Cy.default=see;var ky={};Object.defineProperty(ky,"__esModule",{value:!0});class lee{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)})}}ky.default=lee;var l8=ip&&ip.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xy,"__esModule",{value:!0});const cee=ls,uee=l8(Cy),fee=l8(ky);class Dp{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 o=new uee.default,a=new fee.default;a.addCallback(i);const s={aborter:o,promise:this.fillCallback(n,o.signal,l=>{a.callback(l)}),settled:!1,statusReporter:a,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 cee.AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const o=this.cache.get(t);return o?o.aborted&&!o.settled?(this.evict(t,o),this.get(t,n,r,i)):o.settled?o.promise:(o.aborter.addSignal(r),o.statusReporter.addCallback(i),Dp.checkSinglePromise(o.promise,r)):(this.fill(t,n,r,i),Dp.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}}xy.default=Dp;var hee=ip&&ip.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(i8,"__esModule",{value:!0});const dee=hee(xy);var Bp=i8.default=dee.default;class pee{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}}var gee=pee;const Fp=op(gee);class Rl{constructor(t){this.ranges=t}get min(){return this.ranges[0].min}get max(){return this.ranges[this.ranges.length-1].max}contains(t){for(const n of this.ranges)if(n.min<=t&&n.max>=t)return!0;return!1}isContiguous(){return this.ranges.length>1}getRanges(){return this.ranges.map(t=>new Rl([{min:t.min,max:t.max}]))}toString(){return this.ranges.map(t=>`[${t.min}-${t.max}]`).join(",")}union(t){const n=[...this.getRanges(),...t.getRanges()].sort((o,a)=>o.min<a.min?-1:o.min>a.min?1:o.max<a.max?-1:a.max>o.max?1:0),r=[];let i=n[0];for(let o=1;o<n.length;o+=1){const a=n[o];a.min>i.max+1?(r.push(i),i=a):a.max>i.max&&(i=new Rl([{min:i.min,max:a.max}]))}return r.push(i),r.length===1?r[0]:new Rl(r)}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const mee=4,c8=0,u8=1,bee=2;function Dl(e){let t=e.length;for(;--t>=0;)e[t]=0}const yee=0,f8=1,wee=2,vee=3,xee=258,Ty=29,Bf=256,Ff=Bf+1+Ty,Bl=30,Iy=19,h8=2*Ff+1,cs=15,Ry=16,Aee=7,Dy=256,d8=16,p8=17,g8=18,By=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]),Mp=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]),Eee=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),m8=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),See=512,Ui=new Array((Ff+2)*2);Dl(Ui);const Mf=new Array(Bl*2);Dl(Mf);const Pf=new Array(See);Dl(Pf);const Of=new Array(xee-vee+1);Dl(Of);const Fy=new Array(Ty);Dl(Fy);const Pp=new Array(Bl);Dl(Pp);function My(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 b8,y8,w8;function Py(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const v8=e=>e<256?Pf[e]:Pf[256+(e>>>7)],Lf=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},_n=(e,t,n)=>{e.bi_valid>Ry-n?(e.bi_buf|=t<<e.bi_valid&65535,Lf(e,e.bi_buf),e.bi_buf=t>>Ry-e.bi_valid,e.bi_valid+=n-Ry):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},ii=(e,t,n)=>{_n(e,n[t*2],n[t*2+1])},x8=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},_ee=e=>{e.bi_valid===16?(Lf(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)},Cee=(e,t)=>{const n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,o=t.stat_desc.has_stree,a=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<=cs;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,c=e.heap_max+1;c<h8;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=a[u-s]),p=n[u*2],e.opt_len+=p*(h+d),o&&(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--)}},A8=(e,t,n)=>{const r=new Array(cs+1);let i=0,o,a;for(o=1;o<=cs;o++)i=i+n[o-1]<<1,r[o]=i;for(a=0;a<=t;a++){let s=e[a*2+1];s!==0&&(e[a*2]=x8(r[s]++,s))}},kee=()=>{let e,t,n,r,i;const o=new Array(cs+1);for(n=0,r=0;r<Ty-1;r++)for(Fy[r]=n,e=0;e<1<<By[r];e++)Of[n++]=r;for(Of[n-1]=r,i=0,r=0;r<16;r++)for(Pp[r]=i,e=0;e<1<<Mp[r];e++)Pf[i++]=r;for(i>>=7;r<Bl;r++)for(Pp[r]=i<<7,e=0;e<1<<Mp[r]-7;e++)Pf[256+i++]=r;for(t=0;t<=cs;t++)o[t]=0;for(e=0;e<=143;)Ui[e*2+1]=8,e++,o[8]++;for(;e<=255;)Ui[e*2+1]=9,e++,o[9]++;for(;e<=279;)Ui[e*2+1]=7,e++,o[7]++;for(;e<=287;)Ui[e*2+1]=8,e++,o[8]++;for(A8(Ui,Ff+1,o),e=0;e<Bl;e++)Mf[e*2+1]=5,Mf[e*2]=x8(e,5);b8=new My(Ui,By,Bf+1,Ff,cs),y8=new My(Mf,Mp,0,Bl,cs),w8=new My(new Array(0),Eee,0,Iy,Aee)},E8=e=>{let t;for(t=0;t<Ff;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Bl;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Iy;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Dy*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},S8=e=>{e.bi_valid>8?Lf(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},_8=(e,t,n,r)=>{const i=t*2,o=n*2;return e[i]<e[o]||e[i]===e[o]&&r[t]<=r[n]},Oy=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&_8(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!_8(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},C8=(e,t,n)=>{let r,i,o=0,a,s;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+o++]&255,r+=(e.pending_buf[e.sym_buf+o++]&255)<<8,i=e.pending_buf[e.sym_buf+o++],r===0?ii(e,i,t):(a=Of[i],ii(e,a+Bf+1,t),s=By[a],s!==0&&(i-=Fy[a],_n(e,i,s)),r--,a=v8(r),ii(e,a,n),s=Mp[a],s!==0&&(r-=Pp[a],_n(e,r,s)));while(o<e.sym_next);ii(e,Dy,t)},Ly=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,o=t.stat_desc.elems;let a,s,l=-1,c;for(e.heap_len=0,e.heap_max=h8,a=0;a<o;a++)n[a*2]!==0?(e.heap[++e.heap_len]=l=a,e.depth[a]=0):n[a*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,a=e.heap_len>>1;a>=1;a--)Oy(e,n,a);c=o;do a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Oy(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,n[c*2]=n[a*2]+n[s*2],e.depth[c]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,n[a*2+1]=n[s*2+1]=c,e.heap[1]=c++,Oy(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],Cee(e,t),A8(n,l,e.bl_count)},k8=(e,t,n)=>{let r,i=-1,o,a=t[0*2+1],s=0,l=7,c=4;for(a===0&&(l=138,c=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)o=a,a=t[(r+1)*2+1],!(++s<l&&o===a)&&(s<c?e.bl_tree[o*2]+=s:o!==0?(o!==i&&e.bl_tree[o*2]++,e.bl_tree[d8*2]++):s<=10?e.bl_tree[p8*2]++:e.bl_tree[g8*2]++,s=0,i=o,a===0?(l=138,c=3):o===a?(l=6,c=3):(l=7,c=4))},T8=(e,t,n)=>{let r,i=-1,o,a=t[0*2+1],s=0,l=7,c=4;for(a===0&&(l=138,c=3),r=0;r<=n;r++)if(o=a,a=t[(r+1)*2+1],!(++s<l&&o===a)){if(s<c)do ii(e,o,e.bl_tree);while(--s!==0);else o!==0?(o!==i&&(ii(e,o,e.bl_tree),s--),ii(e,d8,e.bl_tree),_n(e,s-3,2)):s<=10?(ii(e,p8,e.bl_tree),_n(e,s-3,3)):(ii(e,g8,e.bl_tree),_n(e,s-11,7));s=0,i=o,a===0?(l=138,c=3):o===a?(l=6,c=3):(l=7,c=4)}},Tee=e=>{let t;for(k8(e,e.dyn_ltree,e.l_desc.max_code),k8(e,e.dyn_dtree,e.d_desc.max_code),Ly(e,e.bl_desc),t=Iy-1;t>=3&&e.bl_tree[m8[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},Iee=(e,t,n,r)=>{let i;for(_n(e,t-257,5),_n(e,n-1,5),_n(e,r-4,4),i=0;i<r;i++)_n(e,e.bl_tree[m8[i]*2+1],3);T8(e,e.dyn_ltree,t-1),T8(e,e.dyn_dtree,n-1)},Ree=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return c8;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return u8;for(n=32;n<Bf;n++)if(e.dyn_ltree[n*2]!==0)return u8;return c8};let I8=!1;const Dee=e=>{I8||(kee(),I8=!0),e.l_desc=new Py(e.dyn_ltree,b8),e.d_desc=new Py(e.dyn_dtree,y8),e.bl_desc=new Py(e.bl_tree,w8),e.bi_buf=0,e.bi_valid=0,E8(e)},R8=(e,t,n,r)=>{_n(e,(yee<<1)+(r?1:0),3),S8(e),Lf(e,n),Lf(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},Bee=e=>{_n(e,f8<<1,3),ii(e,Dy,Ui),_ee(e)},Fee=(e,t,n,r)=>{let i,o,a=0;e.level>0?(e.strm.data_type===bee&&(e.strm.data_type=Ree(e)),Ly(e,e.l_desc),Ly(e,e.d_desc),a=Tee(e),i=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=i&&(i=o)):i=o=n+5,n+4<=i&&t!==-1?R8(e,t,n,r):e.strategy===mee||o===i?(_n(e,(f8<<1)+(r?1:0),3),C8(e,Ui,Mf)):(_n(e,(wee<<1)+(r?1:0),3),Iee(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),C8(e,e.dyn_ltree,e.dyn_dtree)),E8(e),r&&S8(e)},Mee=(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[(Of[n]+Bf+1)*2]++,e.dyn_dtree[v8(t)*2]++),e.sym_next===e.sym_end);var Pee=Dee,Oee=R8,Lee=Fee,Nee=Mee,zee=Bee,Uee={_tr_init:Pee,_tr_stored_block:Oee,_tr_flush_block:Lee,_tr_tally:Nee,_tr_align:zee},Nf=(e,t,n,r)=>{let i=e&65535|0,o=e>>>16&65535|0,a=0;for(;n!==0;){a=n>2e3?2e3:n,n-=a;do i=i+t[r++]|0,o=o+i|0;while(--a);i%=65521,o%=65521}return i|o<<16|0};const $ee=()=>{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},Hee=new Uint32Array($ee());var Ut=(e,t,n,r)=>{const i=Hee,o=r+n;e^=-1;for(let a=r;a<o;a++)e=e>>>8^i[(e^t[a])&255];return e^-1},Fl={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"},zf={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:Gee,_tr_stored_block:Ny,_tr_flush_block:Vee,_tr_tally:$o,_tr_align:jee}=Uee,{Z_NO_FLUSH:Ho,Z_PARTIAL_FLUSH:qee,Z_FULL_FLUSH:Wee,Z_FINISH:or,Z_BLOCK:D8,Z_OK:Yt,Z_STREAM_END:B8,Z_STREAM_ERROR:oi,Z_DATA_ERROR:Yee,Z_BUF_ERROR:zy,Z_DEFAULT_COMPRESSION:Zee,Z_FILTERED:Qee,Z_HUFFMAN_ONLY:Op,Z_RLE:Xee,Z_FIXED:Kee,Z_DEFAULT_STRATEGY:Jee,Z_UNKNOWN:ete,Z_DEFLATED:Lp}=zf,tte=9,nte=15,rte=8,Uy=256+1+29,ite=30,ote=19,ate=2*Uy+1,ste=15,Be=3,Go=258,ai=Go+Be+1,lte=32,Ml=42,$y=57,Hy=69,Gy=73,Vy=91,jy=103,us=113,Uf=666,gn=1,Pl=2,fs=3,Ol=4,cte=3,hs=(e,t)=>(e.msg=Fl[t],t),F8=e=>e*2-(e>4?9:0),Vo=e=>{let t=e.length;for(;--t>=0;)e[t]=0},ute=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 jo=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const Ln=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))},Nn=(e,t)=>{Vee(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Ln(e.strm)},Ge=(e,t)=>{e.pending_buf[e.pending++]=t},$f=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},qy=(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=Nf(e.adler,t,i,n):e.state.wrap===2&&(e.adler=Ut(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},M8=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,o,a=e.prev_length,s=e.nice_match;const l=e.strstart>e.w_size-ai?e.strstart-(e.w_size-ai):0,c=e.window,u=e.w_mask,f=e.prev,h=e.strstart+Go;let d=c[r+a-1],p=c[r+a];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(c[i+a]!==p||c[i+a-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(o=Go-(h-r),r=h-Go,o>a){if(e.match_start=t,a=o,o>=s)break;d=c[r+a-1],p=c[r+a]}}while((t=f[t&u])>l&&--n!==0);return a<=e.lookahead?a:e.lookahead},Ll=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-ai)&&(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),ute(e),r+=t),e.strm.avail_in===0)break;if(n=qy(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=Be)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=jo(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=jo(e,e.ins_h,e.window[i+Be-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<Be)););}while(e.lookahead<ai&&e.strm.avail_in!==0)},P8=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,o,a=0,s=e.strm.avail_in;do{if(r=65535,o=e.bi_valid+42>>3,e.strm.avail_out<o||(o=e.strm.avail_out-o,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>o&&(r=o),r<n&&(r===0&&t!==or||t===Ho||r!==i+e.strm.avail_in)))break;a=t===or&&r===i+e.strm.avail_in?1:0,Ny(e,0,0,a),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,Ln(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&&(qy(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(a===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),a?Ol:t!==Ho&&t!==or&&e.strm.avail_in===0&&e.strstart===e.block_start?Pl:(o=e.window_size-e.strstart,e.strm.avail_in>o&&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++,o+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),o>e.strm.avail_in&&(o=e.strm.avail_in),o&&(qy(e.strm,e.window,e.strstart,o),e.strstart+=o,e.insert+=o>e.w_size-e.insert?e.w_size-e.insert:o),e.high_water<e.strstart&&(e.high_water=e.strstart),o=e.bi_valid+42>>3,o=e.pending_buf_size-o>65535?65535:e.pending_buf_size-o,n=o>e.w_size?e.w_size:o,i=e.strstart-e.block_start,(i>=n||(i||t===or)&&t!==Ho&&e.strm.avail_in===0&&i<=o)&&(r=i>o?o:i,a=t===or&&e.strm.avail_in===0&&r===i?1:0,Ny(e,e.block_start,r,a),e.block_start+=r,Ln(e.strm)),a?fs:gn)},Wy=(e,t)=>{let n,r;for(;;){if(e.lookahead<ai){if(Ll(e),e.lookahead<ai&&t===Ho)return gn;if(e.lookahead===0)break}if(n=0,e.lookahead>=Be&&(e.ins_h=jo(e,e.ins_h,e.window[e.strstart+Be-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-ai&&(e.match_length=M8(e,n)),e.match_length>=Be)if(r=$o(e,e.strstart-e.match_start,e.match_length-Be),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=Be){e.match_length--;do e.strstart++,e.ins_h=jo(e,e.ins_h,e.window[e.strstart+Be-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=jo(e,e.ins_h,e.window[e.strstart+1]);else r=$o(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Nn(e,!1),e.strm.avail_out===0))return gn}return e.insert=e.strstart<Be-1?e.strstart:Be-1,t===or?(Nn(e,!0),e.strm.avail_out===0?fs:Ol):e.sym_next&&(Nn(e,!1),e.strm.avail_out===0)?gn:Pl},Nl=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<ai){if(Ll(e),e.lookahead<ai&&t===Ho)return gn;if(e.lookahead===0)break}if(n=0,e.lookahead>=Be&&(e.ins_h=jo(e,e.ins_h,e.window[e.strstart+Be-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=Be-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-ai&&(e.match_length=M8(e,n),e.match_length<=5&&(e.strategy===Qee||e.match_length===Be&&e.strstart-e.match_start>4096)&&(e.match_length=Be-1)),e.prev_length>=Be&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-Be,r=$o(e,e.strstart-1-e.prev_match,e.prev_length-Be),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=jo(e,e.ins_h,e.window[e.strstart+Be-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=Be-1,e.strstart++,r&&(Nn(e,!1),e.strm.avail_out===0))return gn}else if(e.match_available){if(r=$o(e,0,e.window[e.strstart-1]),r&&Nn(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return gn}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=$o(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<Be-1?e.strstart:Be-1,t===or?(Nn(e,!0),e.strm.avail_out===0?fs:Ol):e.sym_next&&(Nn(e,!1),e.strm.avail_out===0)?gn:Pl},fte=(e,t)=>{let n,r,i,o;const a=e.window;for(;;){if(e.lookahead<=Go){if(Ll(e),e.lookahead<=Go&&t===Ho)return gn;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=Be&&e.strstart>0&&(i=e.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){o=e.strstart+Go;do;while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&i<o);e.match_length=Go-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=Be?(n=$o(e,1,e.match_length-Be),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=$o(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Nn(e,!1),e.strm.avail_out===0))return gn}return e.insert=0,t===or?(Nn(e,!0),e.strm.avail_out===0?fs:Ol):e.sym_next&&(Nn(e,!1),e.strm.avail_out===0)?gn:Pl},hte=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(Ll(e),e.lookahead===0)){if(t===Ho)return gn;break}if(e.match_length=0,n=$o(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Nn(e,!1),e.strm.avail_out===0))return gn}return e.insert=0,t===or?(Nn(e,!0),e.strm.avail_out===0?fs:Ol):e.sym_next&&(Nn(e,!1),e.strm.avail_out===0)?gn:Pl};function si(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 Hf=[new si(0,0,0,0,P8),new si(4,4,8,4,Wy),new si(4,5,16,8,Wy),new si(4,6,32,32,Wy),new si(4,4,16,16,Nl),new si(8,16,32,32,Nl),new si(8,16,128,128,Nl),new si(8,32,128,256,Nl),new si(32,128,258,1024,Nl),new si(32,258,258,4096,Nl)],dte=e=>{e.window_size=2*e.w_size,Vo(e.head),e.max_lazy_match=Hf[e.level].max_lazy,e.good_match=Hf[e.level].good_length,e.nice_match=Hf[e.level].nice_length,e.max_chain_length=Hf[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=Be-1,e.match_available=0,e.ins_h=0};function pte(){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=Lp,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(ate*2),this.dyn_dtree=new Uint16Array((2*ite+1)*2),this.bl_tree=new Uint16Array((2*ote+1)*2),Vo(this.dyn_ltree),Vo(this.dyn_dtree),Vo(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(ste+1),this.heap=new Uint16Array(2*Uy+1),Vo(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Uy+1),Vo(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 Gf=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==Ml&&t.status!==$y&&t.status!==Hy&&t.status!==Gy&&t.status!==Vy&&t.status!==jy&&t.status!==us&&t.status!==Uf?1:0},O8=e=>{if(Gf(e))return hs(e,oi);e.total_in=e.total_out=0,e.data_type=ete;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?$y:t.wrap?Ml:us,e.adler=t.wrap===2?0:1,t.last_flush=-2,Gee(t),Yt},L8=e=>{const t=O8(e);return t===Yt&&dte(e.state),t},gte=(e,t)=>Gf(e)||e.state.wrap!==2?oi:(e.state.gzhead=t,Yt),N8=(e,t,n,r,i,o)=>{if(!e)return oi;let a=1;if(t===Zee&&(t=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),i<1||i>tte||n!==Lp||r<8||r>15||t<0||t>9||o<0||o>Kee||r===8&&a!==1)return hs(e,oi);r===8&&(r=9);const s=new pte;return e.state=s,s.strm=e,s.status=Ml,s.wrap=a,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+Be-1)/Be),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=o,s.method=n,L8(e)},mte=(e,t)=>N8(e,t,Lp,nte,rte,Jee),bte=(e,t)=>{if(Gf(e)||t>D8||t<0)return e?hs(e,oi):oi;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===Uf&&t!==or)return hs(e,e.avail_out===0?zy:oi);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(Ln(e),e.avail_out===0)return n.last_flush=-1,Yt}else if(e.avail_in===0&&F8(t)<=F8(r)&&t!==or)return hs(e,zy);if(n.status===Uf&&e.avail_in!==0)return hs(e,zy);if(n.status===Ml&&n.wrap===0&&(n.status=us),n.status===Ml){let i=Lp+(n.w_bits-8<<4)<<8,o=-1;if(n.strategy>=Op||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,i|=o<<6,n.strstart!==0&&(i|=lte),i+=31-i%31,$f(n,i),n.strstart!==0&&($f(n,e.adler>>>16),$f(n,e.adler&65535)),e.adler=1,n.status=us,Ln(e),n.pending!==0)return n.last_flush=-1,Yt}if(n.status===$y){if(e.adler=0,Ge(n,31),Ge(n,139),Ge(n,8),n.gzhead)Ge(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)),Ge(n,n.gzhead.time&255),Ge(n,n.gzhead.time>>8&255),Ge(n,n.gzhead.time>>16&255),Ge(n,n.gzhead.time>>24&255),Ge(n,n.level===9?2:n.strategy>=Op||n.level<2?4:0),Ge(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(Ge(n,n.gzhead.extra.length&255),Ge(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=Ut(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Hy;else if(Ge(n,0),Ge(n,0),Ge(n,0),Ge(n,0),Ge(n,0),Ge(n,n.level===9?2:n.strategy>=Op||n.level<2?4:0),Ge(n,cte),n.status=us,Ln(e),n.pending!==0)return n.last_flush=-1,Yt}if(n.status===Hy){if(n.gzhead.extra){let i=n.pending,o=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+o>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=Ut(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,Ln(e),n.pending!==0)return n.last_flush=-1,Yt;i=0,o-=s}let a=new Uint8Array(n.gzhead.extra);n.pending_buf.set(a.subarray(n.gzindex,n.gzindex+o),n.pending),n.pending+=o,n.gzhead.hcrc&&n.pending>i&&(e.adler=Ut(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Gy}if(n.status===Gy){if(n.gzhead.name){let i=n.pending,o;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=Ut(e.adler,n.pending_buf,n.pending-i,i)),Ln(e),n.pending!==0)return n.last_flush=-1,Yt;i=0}n.gzindex<n.gzhead.name.length?o=n.gzhead.name.charCodeAt(n.gzindex++)&255:o=0,Ge(n,o)}while(o!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=Ut(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Vy}if(n.status===Vy){if(n.gzhead.comment){let i=n.pending,o;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=Ut(e.adler,n.pending_buf,n.pending-i,i)),Ln(e),n.pending!==0)return n.last_flush=-1,Yt;i=0}n.gzindex<n.gzhead.comment.length?o=n.gzhead.comment.charCodeAt(n.gzindex++)&255:o=0,Ge(n,o)}while(o!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=Ut(e.adler,n.pending_buf,n.pending-i,i))}n.status=jy}if(n.status===jy){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(Ln(e),n.pending!==0))return n.last_flush=-1,Yt;Ge(n,e.adler&255),Ge(n,e.adler>>8&255),e.adler=0}if(n.status=us,Ln(e),n.pending!==0)return n.last_flush=-1,Yt}if(e.avail_in!==0||n.lookahead!==0||t!==Ho&&n.status!==Uf){let i=n.level===0?P8(n,t):n.strategy===Op?hte(n,t):n.strategy===Xee?fte(n,t):Hf[n.level].func(n,t);if((i===fs||i===Ol)&&(n.status=Uf),i===gn||i===fs)return e.avail_out===0&&(n.last_flush=-1),Yt;if(i===Pl&&(t===qee?jee(n):t!==D8&&(Ny(n,0,0,!1),t===Wee&&(Vo(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Ln(e),e.avail_out===0))return n.last_flush=-1,Yt}return t!==or?Yt:n.wrap<=0?B8:(n.wrap===2?(Ge(n,e.adler&255),Ge(n,e.adler>>8&255),Ge(n,e.adler>>16&255),Ge(n,e.adler>>24&255),Ge(n,e.total_in&255),Ge(n,e.total_in>>8&255),Ge(n,e.total_in>>16&255),Ge(n,e.total_in>>24&255)):($f(n,e.adler>>>16),$f(n,e.adler&65535)),Ln(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?Yt:B8)},yte=e=>{if(Gf(e))return oi;const t=e.state.status;return e.state=null,t===us?hs(e,Yee):Yt},wte=(e,t)=>{let n=t.length;if(Gf(e))return oi;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==Ml||r.lookahead)return oi;if(i===1&&(e.adler=Nf(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(Vo(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 o=e.avail_in,a=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,Ll(r);r.lookahead>=Be;){let l=r.strstart,c=r.lookahead-(Be-1);do r.ins_h=jo(r,r.ins_h,r.window[l+Be-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=Be-1,Ll(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=Be-1,r.match_available=0,e.next_in=a,e.input=s,e.avail_in=o,r.wrap=i,Yt};var vte=mte,xte=N8,Ate=L8,Ete=O8,Ste=gte,_te=bte,Cte=yte,kte=wte,Tte="pako deflate (from Nodeca project)",Vf={deflateInit:vte,deflateInit2:xte,deflateReset:Ate,deflateResetKeep:Ete,deflateSetHeader:Ste,deflate:_te,deflateEnd:Cte,deflateSetDictionary:kte,deflateInfo:Tte};const Ite=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Rte=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)Ite(n,r)&&(e[r]=n[r])}}return e},Dte=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,o=e.length;r<o;r++){let a=e[r];n.set(a,i),i+=a.length}return n},Np={assign:Rte,flattenChunks:Dte};let z8=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{z8=!1}const jf=new Uint8Array(256);for(let e=0;e<256;e++)jf[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;jf[254]=jf[254]=1;var Bte=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,o,a=e.length,s=0;for(i=0;i<a;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<a&&(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),o=0,i=0;o<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<a&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[o++]=n:n<2048?(t[o++]=192|n>>>6,t[o++]=128|n&63):n<65536?(t[o++]=224|n>>>12,t[o++]=128|n>>>6&63,t[o++]=128|n&63):(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63,t[o++]=128|n>>>6&63,t[o++]=128|n&63);return t};const Fte=(e,t)=>{if(t<65534&&e.subarray&&z8)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 Mte=(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 o=new Array(n*2);for(i=0,r=0;r<n;){let a=e[r++];if(a<128){o[i++]=a;continue}let s=jf[a];if(s>4){o[i++]=65533,r+=s-1;continue}for(a&=s===2?31:s===3?15:7;s>1&&r<n;)a=a<<6|e[r++]&63,s--;if(s>1){o[i++]=65533;continue}a<65536?o[i++]=a:(a-=65536,o[i++]=55296|a>>10&1023,o[i++]=56320|a&1023)}return Fte(o,i)},Pte=(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+jf[e[n]]>t?n:t},qf={string2buf:Bte,buf2string:Mte,utf8border:Pte};function Ote(){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 U8=Ote;const $8=Object.prototype.toString,{Z_NO_FLUSH:Lte,Z_SYNC_FLUSH:Nte,Z_FULL_FLUSH:zte,Z_FINISH:Ute,Z_OK:zp,Z_STREAM_END:$te,Z_DEFAULT_COMPRESSION:Hte,Z_DEFAULT_STRATEGY:Gte,Z_DEFLATED:Vte}=zf;function Yy(e){this.options=Np.assign({level:Hte,method:Vte,chunkSize:16384,windowBits:15,memLevel:8,strategy:Gte},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 U8,this.strm.avail_out=0;let n=Vf.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==zp)throw new Error(Fl[n]);if(t.header&&Vf.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=qf.string2buf(t.dictionary):$8.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=Vf.deflateSetDictionary(this.strm,r),n!==zp)throw new Error(Fl[n]);this._dict_set=!0}}Yy.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let i,o;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?Ute:Lte,typeof e=="string"?n.input=qf.string2buf(e):$8.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),(o===Nte||o===zte)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=Vf.deflate(n,o),i===$te)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=Vf.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===zp;if(n.avail_out===0){this.onData(n.output);continue}if(o>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},Yy.prototype.onData=function(e){this.chunks.push(e)},Yy.prototype.onEnd=function(e){e===zp&&(this.result=Np.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const Up=16209,jte=16191;var qte=function(t,n){let r,i,o,a,s,l,c,u,f,h,d,p,g,b,m,v,x,A,S,E,_,R,F,H;const O=t.state;r=t.next_in,F=t.input,i=r+(t.avail_in-5),o=t.next_out,H=t.output,a=o-(n-t.avail_out),s=o+(t.avail_out-257),l=O.dmax,c=O.wsize,u=O.whave,f=O.wnext,h=O.window,d=O.hold,p=O.bits,g=O.lencode,b=O.distcode,m=(1<<O.lenbits)-1,v=(1<<O.distbits)-1;e:do{p<15&&(d+=F[r++]<<p,p+=8,d+=F[r++]<<p,p+=8),x=g[d&m];t:for(;;){if(A=x>>>24,d>>>=A,p-=A,A=x>>>16&255,A===0)H[o++]=x&65535;else if(A&16){S=x&65535,A&=15,A&&(p<A&&(d+=F[r++]<<p,p+=8),S+=d&(1<<A)-1,d>>>=A,p-=A),p<15&&(d+=F[r++]<<p,p+=8,d+=F[r++]<<p,p+=8),x=b[d&v];n:for(;;){if(A=x>>>24,d>>>=A,p-=A,A=x>>>16&255,A&16){if(E=x&65535,A&=15,p<A&&(d+=F[r++]<<p,p+=8,p<A&&(d+=F[r++]<<p,p+=8)),E+=d&(1<<A)-1,E>l){t.msg="invalid distance too far back",O.mode=Up;break e}if(d>>>=A,p-=A,A=o-a,E>A){if(A=E-A,A>u&&O.sane){t.msg="invalid distance too far back",O.mode=Up;break e}if(_=0,R=h,f===0){if(_+=c-A,A<S){S-=A;do H[o++]=h[_++];while(--A);_=o-E,R=H}}else if(f<A){if(_+=c+f-A,A-=f,A<S){S-=A;do H[o++]=h[_++];while(--A);if(_=0,f<S){A=f,S-=A;do H[o++]=h[_++];while(--A);_=o-E,R=H}}}else if(_+=f-A,A<S){S-=A;do H[o++]=h[_++];while(--A);_=o-E,R=H}for(;S>2;)H[o++]=R[_++],H[o++]=R[_++],H[o++]=R[_++],S-=3;S&&(H[o++]=R[_++],S>1&&(H[o++]=R[_++]))}else{_=o-E;do H[o++]=H[_++],H[o++]=H[_++],H[o++]=H[_++],S-=3;while(S>2);S&&(H[o++]=H[_++],S>1&&(H[o++]=H[_++]))}}else if(A&64){t.msg="invalid distance code",O.mode=Up;break e}else{x=b[(x&65535)+(d&(1<<A)-1)];continue n}break}}else if(A&64)if(A&32){O.mode=jte;break e}else{t.msg="invalid literal/length code",O.mode=Up;break e}else{x=g[(x&65535)+(d&(1<<A)-1)];continue t}break}}while(r<i&&o<s);S=p>>3,r-=S,p-=S<<3,d&=(1<<p)-1,t.next_in=r,t.next_out=o,t.avail_in=r<i?5+(i-r):5-(r-i),t.avail_out=o<s?257+(s-o):257-(o-s),O.hold=d,O.bits=p};const zl=15,H8=852,G8=592,V8=0,Zy=1,j8=2,Wte=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]),Yte=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]),Zte=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]),Qte=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 Wf=(e,t,n,r,i,o,a,s)=>{const l=s.bits;let c=0,u=0,f=0,h=0,d=0,p=0,g=0,b=0,m=0,v=0,x,A,S,E,_,R=null,F;const H=new Uint16Array(zl+1),O=new Uint16Array(zl+1);let Z=null,ne,le,ie;for(c=0;c<=zl;c++)H[c]=0;for(u=0;u<r;u++)H[t[n+u]]++;for(d=l,h=zl;h>=1&&H[h]===0;h--);if(d>h&&(d=h),h===0)return i[o++]=1<<24|64<<16|0,i[o++]=1<<24|64<<16|0,s.bits=1,0;for(f=1;f<h&&H[f]===0;f++);for(d<f&&(d=f),b=1,c=1;c<=zl;c++)if(b<<=1,b-=H[c],b<0)return-1;if(b>0&&(e===V8||h!==1))return-1;for(O[1]=0,c=1;c<zl;c++)O[c+1]=O[c]+H[c];for(u=0;u<r;u++)t[n+u]!==0&&(a[O[t[n+u]]++]=u);if(e===V8?(R=Z=a,F=20):e===Zy?(R=Wte,Z=Yte,F=257):(R=Zte,Z=Qte,F=0),v=0,u=0,c=f,_=o,p=d,g=0,S=-1,m=1<<d,E=m-1,e===Zy&&m>H8||e===j8&&m>G8)return 1;for(;;){ne=c-g,a[u]+1<F?(le=0,ie=a[u]):a[u]>=F?(le=Z[a[u]-F],ie=R[a[u]-F]):(le=96,ie=0),x=1<<c-g,A=1<<p,f=A;do A-=x,i[_+(v>>g)+A]=ne<<24|le<<16|ie|0;while(A!==0);for(x=1<<c-1;v&x;)x>>=1;if(x!==0?(v&=x-1,v+=x):v=0,u++,--H[c]===0){if(c===h)break;c=t[n+a[u]]}if(c>d&&(v&E)!==S){for(g===0&&(g=d),_+=f,p=c-g,b=1<<p;p+g<h&&(b-=H[p+g],!(b<=0));)p++,b<<=1;if(m+=1<<p,e===Zy&&m>H8||e===j8&&m>G8)return 1;S=v&E,i[S]=d<<24|p<<16|_-o|0}}return v!==0&&(i[_+v]=c-g<<24|64<<16|0),s.bits=d,0};const Xte=0,q8=1,W8=2,{Z_FINISH:Y8,Z_BLOCK:Kte,Z_TREES:$p,Z_OK:ds,Z_STREAM_END:Jte,Z_NEED_DICT:ene,Z_STREAM_ERROR:ar,Z_DATA_ERROR:Z8,Z_MEM_ERROR:Q8,Z_BUF_ERROR:tne,Z_DEFLATED:X8}=zf,Hp=16180,K8=16181,J8=16182,eT=16183,tT=16184,nT=16185,rT=16186,iT=16187,oT=16188,aT=16189,Gp=16190,$i=16191,Qy=16192,sT=16193,Xy=16194,lT=16195,cT=16196,uT=16197,fT=16198,Vp=16199,jp=16200,hT=16201,dT=16202,pT=16203,gT=16204,mT=16205,Ky=16206,bT=16207,yT=16208,pt=16209,wT=16210,vT=16211,nne=852,rne=592,ine=15,xT=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function one(){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 ps=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<Hp||t.mode>vT?1:0},AT=e=>{if(ps(e))return ar;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=Hp,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(nne),t.distcode=t.distdyn=new Int32Array(rne),t.sane=1,t.back=-1,ds},ET=e=>{if(ps(e))return ar;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,AT(e)},ST=(e,t)=>{let n;if(ps(e))return ar;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?ar:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,ET(e))},_T=(e,t)=>{if(!e)return ar;const n=new one;e.state=n,n.strm=e,n.window=null,n.mode=Hp;const r=ST(e,t);return r!==ds&&(e.state=null),r},ane=e=>_T(e,ine);let CT=!0,Jy,ew;const sne=e=>{if(CT){Jy=new Int32Array(512),ew=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(Wf(q8,e.lens,0,288,Jy,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Wf(W8,e.lens,0,32,ew,0,e.work,{bits:5}),CT=!1}e.lencode=Jy,e.lenbits=9,e.distcode=ew,e.distbits=5},kT=(e,t,n,r)=>{let i;const o=e.state;return o.window===null&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),r>=o.wsize?(o.window.set(t.subarray(n-o.wsize,n),0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),o.window.set(t.subarray(n-r,n-r+i),o.wnext),r-=i,r?(o.window.set(t.subarray(n-r,n),0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=i))),0},lne=(e,t)=>{let n,r,i,o,a,s,l,c,u,f,h,d,p,g,b=0,m,v,x,A,S,E,_,R;const F=new Uint8Array(4);let H,O;const Z=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(ps(e)||!e.output||!e.input&&e.avail_in!==0)return ar;n=e.state,n.mode===$i&&(n.mode=Qy),a=e.next_out,i=e.output,l=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,f=s,h=l,R=ds;e:for(;;)switch(n.mode){case Hp:if(n.wrap===0){n.mode=Qy;break}for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(n.wrap&2&&c===35615){n.wbits===0&&(n.wbits=15),n.check=0,F[0]=c&255,F[1]=c>>>8&255,n.check=Ut(n.check,F,2,0),c=0,u=0,n.mode=K8;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((c&255)<<8)+(c>>8))%31){e.msg="incorrect header check",n.mode=pt;break}if((c&15)!==X8){e.msg="unknown compression method",n.mode=pt;break}if(c>>>=4,u-=4,_=(c&15)+8,n.wbits===0&&(n.wbits=_),_>15||_>n.wbits){e.msg="invalid window size",n.mode=pt;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=c&512?aT:$i,c=0,u=0;break;case K8:for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(n.flags=c,(n.flags&255)!==X8){e.msg="unknown compression method",n.mode=pt;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=pt;break}n.head&&(n.head.text=c>>8&1),n.flags&512&&n.wrap&4&&(F[0]=c&255,F[1]=c>>>8&255,n.check=Ut(n.check,F,2,0)),c=0,u=0,n.mode=J8;case J8:for(;u<32;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}n.head&&(n.head.time=c),n.flags&512&&n.wrap&4&&(F[0]=c&255,F[1]=c>>>8&255,F[2]=c>>>16&255,F[3]=c>>>24&255,n.check=Ut(n.check,F,4,0)),c=0,u=0,n.mode=eT;case eT:for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}n.head&&(n.head.xflags=c&255,n.head.os=c>>8),n.flags&512&&n.wrap&4&&(F[0]=c&255,F[1]=c>>>8&255,n.check=Ut(n.check,F,2,0)),c=0,u=0,n.mode=tT;case tT:if(n.flags&1024){for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}n.length=c,n.head&&(n.head.extra_len=c),n.flags&512&&n.wrap&4&&(F[0]=c&255,F[1]=c>>>8&255,n.check=Ut(n.check,F,2,0)),c=0,u=0}else n.head&&(n.head.extra=null);n.mode=nT;case nT:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(_=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(o,o+d),_)),n.flags&512&&n.wrap&4&&(n.check=Ut(n.check,r,d,o)),s-=d,o+=d,n.length-=d),n.length))break e;n.length=0,n.mode=rT;case rT:if(n.flags&2048){if(s===0)break e;d=0;do _=r[o+d++],n.head&&_&&n.length<65536&&(n.head.name+=String.fromCharCode(_));while(_&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=Ut(n.check,r,d,o)),s-=d,o+=d,_)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=iT;case iT:if(n.flags&4096){if(s===0)break e;d=0;do _=r[o+d++],n.head&&_&&n.length<65536&&(n.head.comment+=String.fromCharCode(_));while(_&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=Ut(n.check,r,d,o)),s-=d,o+=d,_)break e}else n.head&&(n.head.comment=null);n.mode=oT;case oT:if(n.flags&512){for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(n.wrap&4&&c!==(n.check&65535)){e.msg="header crc mismatch",n.mode=pt;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=$i;break;case aT:for(;u<32;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}e.adler=n.check=xT(c),c=0,u=0,n.mode=Gp;case Gp:if(n.havedict===0)return e.next_out=a,e.avail_out=l,e.next_in=o,e.avail_in=s,n.hold=c,n.bits=u,ene;e.adler=n.check=1,n.mode=$i;case $i:if(t===Kte||t===$p)break e;case Qy:if(n.last){c>>>=u&7,u-=u&7,n.mode=Ky;break}for(;u<3;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}switch(n.last=c&1,c>>>=1,u-=1,c&3){case 0:n.mode=sT;break;case 1:if(sne(n),n.mode=Vp,t===$p){c>>>=2,u-=2;break e}break;case 2:n.mode=cT;break;case 3:e.msg="invalid block type",n.mode=pt}c>>>=2,u-=2;break;case sT:for(c>>>=u&7,u-=u&7;u<32;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if((c&65535)!==(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=pt;break}if(n.length=c&65535,c=0,u=0,n.mode=Xy,t===$p)break e;case Xy:n.mode=lT;case lT:if(d=n.length,d){if(d>s&&(d=s),d>l&&(d=l),d===0)break e;i.set(r.subarray(o,o+d),a),s-=d,o+=d,l-=d,a+=d,n.length-=d;break}n.mode=$i;break;case cT:for(;u<14;){if(s===0)break e;s--,c+=r[o++]<<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=pt;break}n.have=0,n.mode=uT;case uT:for(;n.have<n.ncode;){for(;u<3;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}n.lens[Z[n.have++]]=c&7,c>>>=3,u-=3}for(;n.have<19;)n.lens[Z[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,H={bits:n.lenbits},R=Wf(Xte,n.lens,0,19,n.lencode,0,n.work,H),n.lenbits=H.bits,R){e.msg="invalid code lengths set",n.mode=pt;break}n.have=0,n.mode=fT;case fT:for(;n.have<n.nlen+n.ndist;){for(;b=n.lencode[c&(1<<n.lenbits)-1],m=b>>>24,v=b>>>16&255,x=b&65535,!(m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(x<16)c>>>=m,u-=m,n.lens[n.have++]=x;else{if(x===16){for(O=m+2;u<O;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(c>>>=m,u-=m,n.have===0){e.msg="invalid bit length repeat",n.mode=pt;break}_=n.lens[n.have-1],d=3+(c&3),c>>>=2,u-=2}else if(x===17){for(O=m+3;u<O;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}c>>>=m,u-=m,_=0,d=3+(c&7),c>>>=3,u-=3}else{for(O=m+7;u<O;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}c>>>=m,u-=m,_=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=pt;break}for(;d--;)n.lens[n.have++]=_}}if(n.mode===pt)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=pt;break}if(n.lenbits=9,H={bits:n.lenbits},R=Wf(q8,n.lens,0,n.nlen,n.lencode,0,n.work,H),n.lenbits=H.bits,R){e.msg="invalid literal/lengths set",n.mode=pt;break}if(n.distbits=6,n.distcode=n.distdyn,H={bits:n.distbits},R=Wf(W8,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,H),n.distbits=H.bits,R){e.msg="invalid distances set",n.mode=pt;break}if(n.mode=Vp,t===$p)break e;case Vp:n.mode=jp;case jp:if(s>=6&&l>=258){e.next_out=a,e.avail_out=l,e.next_in=o,e.avail_in=s,n.hold=c,n.bits=u,qte(e,h),a=e.next_out,i=e.output,l=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,n.mode===$i&&(n.back=-1);break}for(n.back=0;b=n.lencode[c&(1<<n.lenbits)-1],m=b>>>24,v=b>>>16&255,x=b&65535,!(m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(v&&!(v&240)){for(A=m,S=v,E=x;b=n.lencode[E+((c&(1<<A+S)-1)>>A)],m=b>>>24,v=b>>>16&255,x=b&65535,!(A+m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}c>>>=A,u-=A,n.back+=A}if(c>>>=m,u-=m,n.back+=m,n.length=x,v===0){n.mode=mT;break}if(v&32){n.back=-1,n.mode=$i;break}if(v&64){e.msg="invalid literal/length code",n.mode=pt;break}n.extra=v&15,n.mode=hT;case hT:if(n.extra){for(O=n.extra;u<O;){if(s===0)break e;s--,c+=r[o++]<<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=dT;case dT:for(;b=n.distcode[c&(1<<n.distbits)-1],m=b>>>24,v=b>>>16&255,x=b&65535,!(m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(!(v&240)){for(A=m,S=v,E=x;b=n.distcode[E+((c&(1<<A+S)-1)>>A)],m=b>>>24,v=b>>>16&255,x=b&65535,!(A+m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}c>>>=A,u-=A,n.back+=A}if(c>>>=m,u-=m,n.back+=m,v&64){e.msg="invalid distance code",n.mode=pt;break}n.offset=x,n.extra=v&15,n.mode=pT;case pT:if(n.extra){for(O=n.extra;u<O;){if(s===0)break e;s--,c+=r[o++]<<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=pt;break}n.mode=gT;case gT: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=pt;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=a-n.offset,d=n.length;d>l&&(d=l),l-=d,n.length-=d;do i[a++]=g[p++];while(--d);n.length===0&&(n.mode=jp);break;case mT:if(l===0)break e;i[a++]=n.length,l--,n.mode=jp;break;case Ky:if(n.wrap){for(;u<32;){if(s===0)break e;s--,c|=r[o++]<<u,u+=8}if(h-=l,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?Ut(n.check,i,h,a-h):Nf(n.check,i,h,a-h)),h=l,n.wrap&4&&(n.flags?c:xT(c))!==n.check){e.msg="incorrect data check",n.mode=pt;break}c=0,u=0}n.mode=bT;case bT:if(n.wrap&&n.flags){for(;u<32;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(n.wrap&4&&c!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=pt;break}c=0,u=0}n.mode=yT;case yT:R=Jte;break e;case pt:R=Z8;break e;case wT:return Q8;case vT:default:return ar}return e.next_out=a,e.avail_out=l,e.next_in=o,e.avail_in=s,n.hold=c,n.bits=u,(n.wsize||h!==e.avail_out&&n.mode<pt&&(n.mode<Ky||t!==Y8))&&kT(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?Ut(n.check,i,h,e.next_out-h):Nf(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===$i?128:0)+(n.mode===Vp||n.mode===Xy?256:0),(f===0&&h===0||t===Y8)&&R===ds&&(R=tne),R},cne=e=>{if(ps(e))return ar;let t=e.state;return t.window&&(t.window=null),e.state=null,ds},une=(e,t)=>{if(ps(e))return ar;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,ds):ar},fne=(e,t)=>{const n=t.length;let r,i,o;return ps(e)||(r=e.state,r.wrap!==0&&r.mode!==Gp)?ar:r.mode===Gp&&(i=1,i=Nf(i,t,n,0),i!==r.check)?Z8:(o=kT(e,t,n,n),o?(r.mode=wT,Q8):(r.havedict=1,ds))};var hne=ET,dne=ST,pne=AT,gne=ane,mne=_T,bne=lne,yne=cne,wne=une,vne=fne,xne="pako inflate (from Nodeca project)",Hi={inflateReset:hne,inflateReset2:dne,inflateResetKeep:pne,inflateInit:gne,inflateInit2:mne,inflate:bne,inflateEnd:yne,inflateGetHeader:wne,inflateSetDictionary:vne,inflateInfo:xne};function Ane(){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 Ene=Ane;const TT=Object.prototype.toString,{Z_NO_FLUSH:Sne,Z_FINISH:_ne,Z_OK:Yf,Z_STREAM_END:tw,Z_NEED_DICT:nw,Z_STREAM_ERROR:Cne,Z_DATA_ERROR:IT,Z_MEM_ERROR:kne}=zf;function Zf(e){this.options=Np.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 U8,this.strm.avail_out=0;let n=Hi.inflateInit2(this.strm,t.windowBits);if(n!==Yf)throw new Error(Fl[n]);if(this.header=new Ene,Hi.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=qf.string2buf(t.dictionary):TT.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=Hi.inflateSetDictionary(this.strm,t.dictionary),n!==Yf)))throw new Error(Fl[n])}Zf.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let o,a,s;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?_ne:Sne,TT.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),o=Hi.inflate(n,a),o===nw&&i&&(o=Hi.inflateSetDictionary(n,i),o===Yf?o=Hi.inflate(n,a):o===IT&&(o=nw));n.avail_in>0&&o===tw&&n.state.wrap>0&&e[n.next_in]!==0;)Hi.inflateReset(n),o=Hi.inflate(n,a);switch(o){case Cne:case IT:case nw:case kne:return this.onEnd(o),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||o===tw))if(this.options.to==="string"){let l=qf.utf8border(n.output,n.next_out),c=n.next_out-l,u=qf.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(!(o===Yf&&s===0)){if(o===tw)return o=Hi.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},Zf.prototype.onData=function(e){this.chunks.push(e)},Zf.prototype.onEnd=function(e){e===Yf&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Np.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function rw(e,t){const n=new Zf(t);if(n.push(e),n.err)throw n.msg||Fl[n.err];return n.result}function Tne(e,t){return t=t||{},t.raw=!0,rw(e,t)}var Ine=Zf,Rne=rw,Dne=Tne,Bne=rw,Fne=zf,Mne={Inflate:Ine,inflate:Rne,inflateRaw:Dne,ungzip:Bne,constants:Fne};const{Inflate:tae,inflate:nae,inflateRaw:Pne,ungzip:rae}=Mne;var One=Pne;function Lne(e){return One(e.subarray(2))}let Nne=class extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}};function zne(e){e.sort((i,o)=>Number(i.offset)-Number(o.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 qp(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new Nne("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const Une=1,$ne=2,Hne=3;function iw(e,t,n,r){return e<r&&t>=n}function Gne(e){const t=e?"big":"little",n=new Ze().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new Ze().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new Ze().endianess(t).array("blocksToFetch",{length:"cnt",type:new Ze().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new Ze().array("recurOffsets",{length:"cnt",type:new Ze().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new Ze().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new Ze().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[Hne]:new Ze().array("items",{length:"itemCount",type:new Ze().floatle("score")}),[$ne]:new Ze().array("items",{length:"itemCount",type:new Ze().endianess(t).int32("start").floatle("score")}),[Une]:new Ze().array("items",{length:"itemCount",type:new Ze().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class RT{constructor(t,n,r,i,o,a){if(this.bbi=t,this.refsByName=n,this.cirTreeOffset=r,this.isBigEndian=i,this.isCompressed=o,this.blockType=a,this.featureCache=new Bp({cache:new Fp({maxSize:1e3}),fill:async(l,c)=>{const u=Number(l.length),f=Number(l.offset),{buffer:h}=await this.bbi.read(Ne.Buffer.alloc(u),0,u,f,{signal:c});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const s=Gne(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(t,n,r,i,o){try{const{refsByName:a,bbi:s,cirTreeOffset:l,isBigEndian:c}=this,u=a[t];u===void 0&&i.complete();const f={chrId:u,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=s.read(Ne.Buffer.alloc(48),0,48,Number(l),o));const{buffer:h}=await this.cirTreePromise,d=c?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],g=0;const b=(A,S,E)=>{try{const _=A.subarray(S),R=this.leafParser.parse(_);if(R.blocksToFetch&&(p=p.concat(R.blocksToFetch.filter(F=>m(F)).map(F=>({offset:F.blockOffset,length:F.blockSize})))),R.recurOffsets){const F=R.recurOffsets.filter(H=>m(H)).map(H=>Number(H.blockOffset));F.length>0&&x(F,E+1)}}catch(_){i.error(_)}},m=A=>{const{startChrom:S,startBase:E,endChrom:_,endBase:R}=A;return(S<u||S===u&&E<=r)&&(_>u||_===u&&R>=n)},v=async(A,S,E)=>{try{const _=S.max-S.min,R=S.min,F=await this.featureCache.get(`${_}_${R}`,{length:_,offset:R},o==null?void 0:o.signal);for(const H of A)S.contains(H)&&(b(F,H-R,E),g-=1,g===0&&this.readFeatures(i,p,{...o,request:f}).catch(O=>i.error(O)))}catch(_){i.error(_)}},x=(A,S)=>{try{g+=A.length;const E=4+Number(d)*32;let _=new Rl([{min:A[0],max:A[0]+E}]);for(let R=1;R<A.length;R+=1){const F=new Rl([{min:A[R],max:A[R]+E}]);_=_.union(F)}_.getRanges().map(R=>v(A,R,S))}catch(E){i.error(E)}};return x([Number(l)+48],1)}catch(a){i.error(a)}}parseSummaryBlock(t,n,r){const i=[];let o=n;const a=new DataView(t.buffer,t.byteOffset,t.length);for(;o<t.byteLength;){const s=a.getUint32(o,!0);o+=4;const l=a.getUint32(o,!0);o+=4;const c=a.getUint32(o,!0);o+=4;const u=a.getUint32(o,!0);o+=4;const f=a.getFloat32(o,!0);o+=4;const h=a.getFloat32(o,!0);o+=4;const d=a.getFloat32(o,!0);o+=4,o+=4,(!r||s===r.chrId&&iw(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 o=[];let a=n;for(;a<t.byteLength;){const s=this.bigBedParser.parse(t.subarray(a));s.uniqueId=`bb-${r+a}`,o.push(s),a+=s.offset}return i?o.filter(s=>iw(s.start,s.end,i.start,i.end)):o}parseBigWigBlock(t,n,r){const i=t.subarray(n),o=new DataView(i.buffer,i.byteOffset,i.length);let a=0;a+=4;const s=o.getInt32(a,!0);a+=8;const l=o.getUint32(a,!0);a+=4;const c=o.getUint32(a,!0);a+=4;const u=o.getUint8(a);a+=2;const f=o.getUint16(a,!0);a+=2;const h=new Array(f);switch(u){case 1:{for(let d=0;d<f;d++){const p=o.getInt32(a,!0);a+=4;const g=o.getInt32(a,!0);a+=4;const b=o.getFloat32(a,!0);a+=4,h[d]={start:p,end:g,score:b}}break}case 2:{for(let d=0;d<f;d++){const p=o.getInt32(a,!0);a+=4;const g=o.getFloat32(a,!0);a+=4,h[d]={score:g,start:p,end:p+c}}break}case 3:{for(let d=0;d<f;d++){const p=o.getFloat32(a,!0);a+=4;const g=s+d*l;h[d]={score:p,start:g,end:g+c}}break}}return r?h.filter(d=>iw(d.start,d.end,r.start,r.end)):h}async readFeatures(t,n,r={}){try{const{blockType:i,isCompressed:o}=this,{signal:a,request:s}=r,l=zne(n);qp(a),await Promise.all(l.map(async c=>{qp(a);const{length:u,offset:f}=c,h=await this.featureCache.get(`${u}_${f}`,c,a);for(const d of c.blocks){qp(a);let p=Number(d.offset)-Number(c.offset),g=h;switch(o&&(g=Lne(h.subarray(p)),p=0),qp(a),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)*256,s));break}default:console.warn(`Don't know what to do with ${i}`)}}})),t.complete()}catch(i){t.error(i)}}}var ow=function(e,t){return ow=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])},ow(e,t)};function aw(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");ow(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function Vne(e,t,n,r){function i(o){return o instanceof n?o:new n(function(a){a(o)})}return new(n||(n=Promise))(function(o,a){function s(u){try{c(r.next(u))}catch(f){a(f)}}function l(u){try{c(r.throw(u))}catch(f){a(f)}}function c(u){u.done?o(u.value):i(u.value).then(s,l)}c((r=r.apply(e,t||[])).next())})}function DT(e,t){var n={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},r,i,o,a;return a={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function s(c){return function(u){return l([c,u])}}function l(c){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(n=0)),n;)try{if(r=1,i&&(o=c[0]&2?i.return:c[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,c[1])).done)return o;switch(i=0,o&&(c=[c[0]&2,o.value]),c[0]){case 0:case 1:o=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(o=n.trys,!(o=o.length>0&&o[o.length-1])&&(c[0]===6||c[0]===2)){n=0;continue}if(c[0]===3&&(!o||c[1]>o[0]&&c[1]<o[3])){n.label=c[1];break}if(c[0]===6&&n.label<o[1]){n.label=o[1],o=c;break}if(o&&n.label<o[2]){n.label=o[2],n.ops.push(c);break}o[2]&&n.ops.pop(),n.trys.pop();continue}c=t.call(e,n)}catch(u){c=[6,u],i=0}finally{r=o=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}function Qf(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 sw(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,o=[],a;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)o.push(i.value)}catch(s){a={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(a)throw a.error}}return o}function lw(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,o;r<i;r++)(o||!(r in t))&&(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}function Ul(e){return this instanceof Ul?(this.v=e,this):new Ul(e)}function jne(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),i,o=[];return i={},a("next"),a("throw"),a("return"),i[Symbol.asyncIterator]=function(){return this},i;function a(h){r[h]&&(i[h]=function(d){return new Promise(function(p,g){o.push([h,d,p,g])>1||s(h,d)})})}function s(h,d){try{l(r[h](d))}catch(p){f(o[0][3],p)}}function l(h){h.value instanceof Ul?Promise.resolve(h.value.v).then(c,u):f(o[0][2],h)}function c(h){s("next",h)}function u(h){s("throw",h)}function f(h,d){h(d),o.shift(),o.length&&s(o[0][0],o[0][1])}}function qne(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 Qf=="function"?Qf(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(o){n[o]=e[o]&&function(a){return new Promise(function(s,l){a=e[o](a),i(s,l,a.done,a.value)})}}function i(o,a,s,l){Promise.resolve(l).then(function(c){o({value:c,done:s})},a)}}typeof SuppressedError=="function"&&SuppressedError;function Dt(e){return typeof e=="function"}function BT(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 cw=BT(function(e){return function(n){e(this),this.message=n?n.length+` errors occurred during unsubscription:
|
3751
|
+
`}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 Tr=new Map,ss="___parser_",Ir={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},kp={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"},Tp={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};let Ye=class Pr{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new Pr}primitiveGenerateN(t,n){const r=kp[t],i=Tp[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${Ir[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 Tr.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"&&!Tr.has(n.type)&&!(n.type in Ir))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),o=n.choices[i];if(isNaN(i))throw new Error(`Choice key "${r}" is not a number.`);if(typeof o=="string"&&!Tr.has(o)&&!(o in Ir))throw new Error(`Choice type "${o}" 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 Pr)&&!Tr.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof Pr)&&!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 Ir)&&!Tr.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 YJ(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${ss+this.alias}(0).result;`)):this.addRawCode(n),n}getCode(){return this.getContext("imports").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 ${ss+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=Tr.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(Ir).indexOf(this.type)>=0)t=Ir[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=Ir[this.options.type]:this.options.type instanceof Pr&&(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 Pr;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},o=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 a=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}a=0,c=l=o(i(f)-c)}const d=s?l-a-h:a,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),a+=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,o=i.toLowerCase()==="hex",a='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(o?`${n} = Array.from(buffer.subarray(${r}, ${l}), ${a}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${l}));`)}else if(this.options.length){const s=t.generateOption(this.options.length);t.pushCode(o?`${n} = Array.from(buffer.subarray(offset, offset + ${s}), ${a}).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(o?`${n} = Array.from(buffer.subarray(${r}, offset - 1), ${a}).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(o?`${n} = Array.from(buffer.subarray(${r}, offset), ${a}).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(),o=t.generateTmpVariable();t.pushCode(`var ${i} = offset;`),t.pushCode(`var ${o} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${o} = dataView.getUint8(offset);`);const a=t.addImport(r);t.pushCode(`if (${a}.call(${t.generateVariable()}, ${o}, 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,o=t.generateTmpVariable(),a=t.generateVariable(this.varName),s=t.generateTmpVariable(),l=this.options.key,c=typeof l=="string";if(c?t.pushCode(`${a} = {};`):t.pushCode(`${a} = [];`),typeof this.options.readUntil=="function"?t.pushCode("do {"):this.options.readUntil==="eof"?t.pushCode(`for (var ${o} = 0; offset < buffer.length; ${o}++) {`):r!==void 0?t.pushCode(`for (var ${o} = offset + ${r}; offset < ${o}; ) {`):t.pushCode(`for (var ${o} = ${n}; ${o} > 0; ${o}--) {`),typeof i=="string")if(Tr.get(i)){const u=t.generateTmpVariable();if(t.pushCode(`var ${u} = ${ss+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} - ${o},`)}t.pushCode("});"),t.pushCode(`var ${s} = ${u}.result; offset = ${u}.offset;`),i!==this.alias&&t.addReference(i)}else{const u=kp[i],f=Tp[i];t.pushCode(`var ${s} = dataView.get${u}(offset, ${f});`),t.pushCode(`offset += ${Ir[i]};`)}else if(i instanceof Pr){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} - ${o};`)),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(`${a}[${s}.${l}] = ${s};`):t.pushCode(`${a}.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(Tr.has(r)){const o=t.generateTmpVariable();t.pushCode(`var ${o} = ${ss+r}(offset, {`),t.useContextVariables&&(t.pushCode(`$parent: ${i}.$parent,`),t.pushCode(`$root: ${i}.$root,`)),t.pushCode("});"),t.pushCode(`${i} = ${o}.result; offset = ${o}.offset;`),r!==this.alias&&t.addReference(r)}else{const o=kp[r],a=Tp[r];t.pushCode(`${i} = dataView.get${o}(offset, ${a});`),t.pushCode(`offset += ${Ir[r]}`)}}else r instanceof Pr&&(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 o=parseInt(i,10),a=this.options.choices[o];t.pushCode(`case ${o}:`),this.generateChoiceCase(t,this.varName,a),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 Pr){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(Tr.has(this.options.type)){const r=t.generateTmpVariable();if(t.pushCode(`var ${r} = ${ss+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(),o=t.generateTmpVariable(),a=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 ${o} = offset;`),t.pushCode(`var ${a} = dataView;`),t.pushCode(`buffer = ${r};`),t.pushCode("offset = 0;"),t.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof Pr)this.varName&&t.pushCode(`${n} = {};`),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(Tr.has(this.options.type)){const l=t.generateTmpVariable();t.pushCode(`var ${l} = ${ss+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 = ${a};`),t.pushCode(`offset = ${o};`)}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(),o=t.generateVariable(this.varName);if(t.pushCode(`var ${i} = offset;`),t.pushCode(`offset = ${r};`),this.options.type instanceof Pr){if(t.pushCode(`${o} = {};`),t.useContextVariables){const a=t.generateVariable();t.pushCode(`${o}.$parent = ${a};`),t.pushCode(`${o}.$root = ${a}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),t.useContextVariables&&(t.pushCode(`delete ${o}.$parent;`),t.pushCode(`delete ${o}.$root;`))}else if(Tr.has(this.options.type)){const a=t.generateTmpVariable();if(t.pushCode(`var ${a} = ${ss+this.options.type}(offset, {`),t.useContextVariables){const s=t.generateVariable();t.pushCode(`$parent: ${s},`),t.pushCode(`$root: ${s}.$root,`)}t.pushCode("});"),t.pushCode(`${o} = ${a}.result; offset = ${a}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}else if(Object.keys(Ir).indexOf(this.options.type)>=0){const a=kp[n],s=Tp[n];t.pushCode(`${o} = dataView.get${a}(offset, ${s});`),t.pushCode(`offset += ${Ir[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}};var i8={},xy={},ls={},Rf={};Object.defineProperty(Rf,"__esModule",{value:!0});function Ay(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ZJ(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 Ey(e,t,n){return t&&ZJ(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function QJ(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&&Sy(e,t)}function Il(e){return Il=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Il(e)}function Sy(e,t){return Sy=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Sy(e,t)}function XJ(){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 Df(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function KJ(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 Df(e)}function JJ(e){var t=XJ();return function(){var r=Il(e),i;if(t){var o=Il(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return KJ(this,i)}}function eee(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=Il(e),e!==null););return e}function Ip(){return typeof Reflect<"u"&&Reflect.get?Ip=Reflect.get.bind():Ip=function(t,n,r){var i=eee(t,n);if(i){var o=Object.getOwnPropertyDescriptor(i,n);return o.get?o.get.call(arguments.length<3?t:r):o.value}},Ip.apply(this,arguments)}var o8=function(){function e(){Ay(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return Ey(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],o=0,a=i.length;o<a;o++)if(i[o].callback===r){i.splice(o,1);return}}}},{key:"dispatchEvent",value:function(n){if(n.type in this.listeners){for(var r=this.listeners[n.type],i=r.slice(),o=0,a=i.length;o<a;o++){var s=i[o];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}(),_y=function(e){QJ(n,e);var t=JJ(n);function n(){var r;return Ay(this,n),r=t.call(this),r.listeners||o8.call(Df(r)),Object.defineProperty(Df(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(Df(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(Df(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return Ey(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)),Ip(Il(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(o8),a8=function(){function e(){Ay(this,e),Object.defineProperty(this,"signal",{value:new _y,writable:!0,configurable:!0})}return Ey(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&&(a8.prototype[Symbol.toStringTag]="AbortController",_y.prototype[Symbol.toStringTag]="AbortSignal");function tee(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 nee(e){typeof e=="function"&&(e={fetch:e});var t=e,n=t.fetch,r=t.Request,i=r===void 0?n.Request:r,o=t.AbortController,a=t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,s=a===void 0?!1:a;if(!tee({fetch:n,Request:i,AbortController:o,__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 b=new Promise(function(m,v){p.addEventListener("abort",function(){return v(g)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([b,c(h,d)])}return c(h,d)};return{fetch:u,Request:l}}Rf.AbortController=a8,Rf.AbortSignal=_y,Rf.abortableFetch=nee,Object.defineProperty(ls,"__esModule",{value:!0}),ls.AbortSignal=ls.AbortController=void 0;const s8=Rf;var Rp=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof globalThis<"u")return globalThis;throw new Error("unable to locate global object")};let ree=typeof Rp().AbortController>"u"?s8.AbortController:Rp().AbortController;ls.AbortController=ree;let iee=typeof Rp().AbortController>"u"?s8.AbortSignal:Rp().AbortSignal;ls.AbortSignal=iee;var Cy={};Object.defineProperty(Cy,"__esModule",{value:!0});const oee=ls;class aee{}class see{constructor(){this.signals=new Set,this.abortController=new oee.AbortController}addSignal(t=new aee){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()}}Cy.default=see;var ky={};Object.defineProperty(ky,"__esModule",{value:!0});class lee{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)})}}ky.default=lee;var l8=ip&&ip.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xy,"__esModule",{value:!0});const cee=ls,uee=l8(Cy),fee=l8(ky);class Dp{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 o=new uee.default,a=new fee.default;a.addCallback(i);const s={aborter:o,promise:this.fillCallback(n,o.signal,l=>{a.callback(l)}),settled:!1,statusReporter:a,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 cee.AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const o=this.cache.get(t);return o?o.aborted&&!o.settled?(this.evict(t,o),this.get(t,n,r,i)):o.settled?o.promise:(o.aborter.addSignal(r),o.statusReporter.addCallback(i),Dp.checkSinglePromise(o.promise,r)):(this.fill(t,n,r,i),Dp.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}}xy.default=Dp;var hee=ip&&ip.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(i8,"__esModule",{value:!0});const dee=hee(xy);var Bp=i8.default=dee.default;class pee{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}}var gee=pee;const Fp=op(gee);class Rl{constructor(t){this.ranges=t}get min(){return this.ranges[0].min}get max(){return this.ranges[this.ranges.length-1].max}contains(t){for(const n of this.ranges)if(n.min<=t&&n.max>=t)return!0;return!1}isContiguous(){return this.ranges.length>1}getRanges(){return this.ranges.map(t=>new Rl([{min:t.min,max:t.max}]))}toString(){return this.ranges.map(t=>`[${t.min}-${t.max}]`).join(",")}union(t){const n=[...this.getRanges(),...t.getRanges()].sort((o,a)=>o.min<a.min?-1:o.min>a.min?1:o.max<a.max?-1:a.max>o.max?1:0),r=[];let i=n[0];for(let o=1;o<n.length;o+=1){const a=n[o];a.min>i.max+1?(r.push(i),i=a):a.max>i.max&&(i=new Rl([{min:i.min,max:a.max}]))}return r.push(i),r.length===1?r[0]:new Rl(r)}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const mee=4,c8=0,u8=1,bee=2;function Dl(e){let t=e.length;for(;--t>=0;)e[t]=0}const yee=0,f8=1,wee=2,vee=3,xee=258,Ty=29,Bf=256,Ff=Bf+1+Ty,Bl=30,Iy=19,h8=2*Ff+1,cs=15,Ry=16,Aee=7,Dy=256,d8=16,p8=17,g8=18,By=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]),Mp=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]),Eee=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),m8=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),See=512,Ui=new Array((Ff+2)*2);Dl(Ui);const Mf=new Array(Bl*2);Dl(Mf);const Pf=new Array(See);Dl(Pf);const Of=new Array(xee-vee+1);Dl(Of);const Fy=new Array(Ty);Dl(Fy);const Pp=new Array(Bl);Dl(Pp);function My(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 b8,y8,w8;function Py(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const v8=e=>e<256?Pf[e]:Pf[256+(e>>>7)],Lf=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},_n=(e,t,n)=>{e.bi_valid>Ry-n?(e.bi_buf|=t<<e.bi_valid&65535,Lf(e,e.bi_buf),e.bi_buf=t>>Ry-e.bi_valid,e.bi_valid+=n-Ry):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},ii=(e,t,n)=>{_n(e,n[t*2],n[t*2+1])},x8=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},_ee=e=>{e.bi_valid===16?(Lf(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)},Cee=(e,t)=>{const n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,o=t.stat_desc.has_stree,a=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<=cs;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,c=e.heap_max+1;c<h8;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=a[u-s]),p=n[u*2],e.opt_len+=p*(h+d),o&&(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--)}},A8=(e,t,n)=>{const r=new Array(cs+1);let i=0,o,a;for(o=1;o<=cs;o++)i=i+n[o-1]<<1,r[o]=i;for(a=0;a<=t;a++){let s=e[a*2+1];s!==0&&(e[a*2]=x8(r[s]++,s))}},kee=()=>{let e,t,n,r,i;const o=new Array(cs+1);for(n=0,r=0;r<Ty-1;r++)for(Fy[r]=n,e=0;e<1<<By[r];e++)Of[n++]=r;for(Of[n-1]=r,i=0,r=0;r<16;r++)for(Pp[r]=i,e=0;e<1<<Mp[r];e++)Pf[i++]=r;for(i>>=7;r<Bl;r++)for(Pp[r]=i<<7,e=0;e<1<<Mp[r]-7;e++)Pf[256+i++]=r;for(t=0;t<=cs;t++)o[t]=0;for(e=0;e<=143;)Ui[e*2+1]=8,e++,o[8]++;for(;e<=255;)Ui[e*2+1]=9,e++,o[9]++;for(;e<=279;)Ui[e*2+1]=7,e++,o[7]++;for(;e<=287;)Ui[e*2+1]=8,e++,o[8]++;for(A8(Ui,Ff+1,o),e=0;e<Bl;e++)Mf[e*2+1]=5,Mf[e*2]=x8(e,5);b8=new My(Ui,By,Bf+1,Ff,cs),y8=new My(Mf,Mp,0,Bl,cs),w8=new My(new Array(0),Eee,0,Iy,Aee)},E8=e=>{let t;for(t=0;t<Ff;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Bl;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Iy;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Dy*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},S8=e=>{e.bi_valid>8?Lf(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},_8=(e,t,n,r)=>{const i=t*2,o=n*2;return e[i]<e[o]||e[i]===e[o]&&r[t]<=r[n]},Oy=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&_8(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!_8(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},C8=(e,t,n)=>{let r,i,o=0,a,s;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+o++]&255,r+=(e.pending_buf[e.sym_buf+o++]&255)<<8,i=e.pending_buf[e.sym_buf+o++],r===0?ii(e,i,t):(a=Of[i],ii(e,a+Bf+1,t),s=By[a],s!==0&&(i-=Fy[a],_n(e,i,s)),r--,a=v8(r),ii(e,a,n),s=Mp[a],s!==0&&(r-=Pp[a],_n(e,r,s)));while(o<e.sym_next);ii(e,Dy,t)},Ly=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,o=t.stat_desc.elems;let a,s,l=-1,c;for(e.heap_len=0,e.heap_max=h8,a=0;a<o;a++)n[a*2]!==0?(e.heap[++e.heap_len]=l=a,e.depth[a]=0):n[a*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,a=e.heap_len>>1;a>=1;a--)Oy(e,n,a);c=o;do a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Oy(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,n[c*2]=n[a*2]+n[s*2],e.depth[c]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,n[a*2+1]=n[s*2+1]=c,e.heap[1]=c++,Oy(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],Cee(e,t),A8(n,l,e.bl_count)},k8=(e,t,n)=>{let r,i=-1,o,a=t[0*2+1],s=0,l=7,c=4;for(a===0&&(l=138,c=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)o=a,a=t[(r+1)*2+1],!(++s<l&&o===a)&&(s<c?e.bl_tree[o*2]+=s:o!==0?(o!==i&&e.bl_tree[o*2]++,e.bl_tree[d8*2]++):s<=10?e.bl_tree[p8*2]++:e.bl_tree[g8*2]++,s=0,i=o,a===0?(l=138,c=3):o===a?(l=6,c=3):(l=7,c=4))},T8=(e,t,n)=>{let r,i=-1,o,a=t[0*2+1],s=0,l=7,c=4;for(a===0&&(l=138,c=3),r=0;r<=n;r++)if(o=a,a=t[(r+1)*2+1],!(++s<l&&o===a)){if(s<c)do ii(e,o,e.bl_tree);while(--s!==0);else o!==0?(o!==i&&(ii(e,o,e.bl_tree),s--),ii(e,d8,e.bl_tree),_n(e,s-3,2)):s<=10?(ii(e,p8,e.bl_tree),_n(e,s-3,3)):(ii(e,g8,e.bl_tree),_n(e,s-11,7));s=0,i=o,a===0?(l=138,c=3):o===a?(l=6,c=3):(l=7,c=4)}},Tee=e=>{let t;for(k8(e,e.dyn_ltree,e.l_desc.max_code),k8(e,e.dyn_dtree,e.d_desc.max_code),Ly(e,e.bl_desc),t=Iy-1;t>=3&&e.bl_tree[m8[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},Iee=(e,t,n,r)=>{let i;for(_n(e,t-257,5),_n(e,n-1,5),_n(e,r-4,4),i=0;i<r;i++)_n(e,e.bl_tree[m8[i]*2+1],3);T8(e,e.dyn_ltree,t-1),T8(e,e.dyn_dtree,n-1)},Ree=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return c8;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return u8;for(n=32;n<Bf;n++)if(e.dyn_ltree[n*2]!==0)return u8;return c8};let I8=!1;const Dee=e=>{I8||(kee(),I8=!0),e.l_desc=new Py(e.dyn_ltree,b8),e.d_desc=new Py(e.dyn_dtree,y8),e.bl_desc=new Py(e.bl_tree,w8),e.bi_buf=0,e.bi_valid=0,E8(e)},R8=(e,t,n,r)=>{_n(e,(yee<<1)+(r?1:0),3),S8(e),Lf(e,n),Lf(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},Bee=e=>{_n(e,f8<<1,3),ii(e,Dy,Ui),_ee(e)},Fee=(e,t,n,r)=>{let i,o,a=0;e.level>0?(e.strm.data_type===bee&&(e.strm.data_type=Ree(e)),Ly(e,e.l_desc),Ly(e,e.d_desc),a=Tee(e),i=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=i&&(i=o)):i=o=n+5,n+4<=i&&t!==-1?R8(e,t,n,r):e.strategy===mee||o===i?(_n(e,(f8<<1)+(r?1:0),3),C8(e,Ui,Mf)):(_n(e,(wee<<1)+(r?1:0),3),Iee(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),C8(e,e.dyn_ltree,e.dyn_dtree)),E8(e),r&&S8(e)},Mee=(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[(Of[n]+Bf+1)*2]++,e.dyn_dtree[v8(t)*2]++),e.sym_next===e.sym_end);var Pee=Dee,Oee=R8,Lee=Fee,Nee=Mee,zee=Bee,Uee={_tr_init:Pee,_tr_stored_block:Oee,_tr_flush_block:Lee,_tr_tally:Nee,_tr_align:zee},Nf=(e,t,n,r)=>{let i=e&65535|0,o=e>>>16&65535|0,a=0;for(;n!==0;){a=n>2e3?2e3:n,n-=a;do i=i+t[r++]|0,o=o+i|0;while(--a);i%=65521,o%=65521}return i|o<<16|0};const $ee=()=>{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},Hee=new Uint32Array($ee());var Ut=(e,t,n,r)=>{const i=Hee,o=r+n;e^=-1;for(let a=r;a<o;a++)e=e>>>8^i[(e^t[a])&255];return e^-1},Fl={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"},zf={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:Gee,_tr_stored_block:Ny,_tr_flush_block:Vee,_tr_tally:$o,_tr_align:jee}=Uee,{Z_NO_FLUSH:Ho,Z_PARTIAL_FLUSH:qee,Z_FULL_FLUSH:Wee,Z_FINISH:or,Z_BLOCK:D8,Z_OK:Yt,Z_STREAM_END:B8,Z_STREAM_ERROR:oi,Z_DATA_ERROR:Yee,Z_BUF_ERROR:zy,Z_DEFAULT_COMPRESSION:Zee,Z_FILTERED:Qee,Z_HUFFMAN_ONLY:Op,Z_RLE:Xee,Z_FIXED:Kee,Z_DEFAULT_STRATEGY:Jee,Z_UNKNOWN:ete,Z_DEFLATED:Lp}=zf,tte=9,nte=15,rte=8,Uy=256+1+29,ite=30,ote=19,ate=2*Uy+1,ste=15,Be=3,Go=258,ai=Go+Be+1,lte=32,Ml=42,$y=57,Hy=69,Gy=73,Vy=91,jy=103,us=113,Uf=666,gn=1,Pl=2,fs=3,Ol=4,cte=3,hs=(e,t)=>(e.msg=Fl[t],t),F8=e=>e*2-(e>4?9:0),Vo=e=>{let t=e.length;for(;--t>=0;)e[t]=0},ute=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 jo=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const Ln=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))},Nn=(e,t)=>{Vee(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Ln(e.strm)},Ge=(e,t)=>{e.pending_buf[e.pending++]=t},$f=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},qy=(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=Nf(e.adler,t,i,n):e.state.wrap===2&&(e.adler=Ut(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},M8=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,o,a=e.prev_length,s=e.nice_match;const l=e.strstart>e.w_size-ai?e.strstart-(e.w_size-ai):0,c=e.window,u=e.w_mask,f=e.prev,h=e.strstart+Go;let d=c[r+a-1],p=c[r+a];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(c[i+a]!==p||c[i+a-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(o=Go-(h-r),r=h-Go,o>a){if(e.match_start=t,a=o,o>=s)break;d=c[r+a-1],p=c[r+a]}}while((t=f[t&u])>l&&--n!==0);return a<=e.lookahead?a:e.lookahead},Ll=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-ai)&&(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),ute(e),r+=t),e.strm.avail_in===0)break;if(n=qy(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=Be)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=jo(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=jo(e,e.ins_h,e.window[i+Be-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<Be)););}while(e.lookahead<ai&&e.strm.avail_in!==0)},P8=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,o,a=0,s=e.strm.avail_in;do{if(r=65535,o=e.bi_valid+42>>3,e.strm.avail_out<o||(o=e.strm.avail_out-o,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>o&&(r=o),r<n&&(r===0&&t!==or||t===Ho||r!==i+e.strm.avail_in)))break;a=t===or&&r===i+e.strm.avail_in?1:0,Ny(e,0,0,a),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,Ln(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&&(qy(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(a===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),a?Ol:t!==Ho&&t!==or&&e.strm.avail_in===0&&e.strstart===e.block_start?Pl:(o=e.window_size-e.strstart,e.strm.avail_in>o&&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++,o+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),o>e.strm.avail_in&&(o=e.strm.avail_in),o&&(qy(e.strm,e.window,e.strstart,o),e.strstart+=o,e.insert+=o>e.w_size-e.insert?e.w_size-e.insert:o),e.high_water<e.strstart&&(e.high_water=e.strstart),o=e.bi_valid+42>>3,o=e.pending_buf_size-o>65535?65535:e.pending_buf_size-o,n=o>e.w_size?e.w_size:o,i=e.strstart-e.block_start,(i>=n||(i||t===or)&&t!==Ho&&e.strm.avail_in===0&&i<=o)&&(r=i>o?o:i,a=t===or&&e.strm.avail_in===0&&r===i?1:0,Ny(e,e.block_start,r,a),e.block_start+=r,Ln(e.strm)),a?fs:gn)},Wy=(e,t)=>{let n,r;for(;;){if(e.lookahead<ai){if(Ll(e),e.lookahead<ai&&t===Ho)return gn;if(e.lookahead===0)break}if(n=0,e.lookahead>=Be&&(e.ins_h=jo(e,e.ins_h,e.window[e.strstart+Be-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-ai&&(e.match_length=M8(e,n)),e.match_length>=Be)if(r=$o(e,e.strstart-e.match_start,e.match_length-Be),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=Be){e.match_length--;do e.strstart++,e.ins_h=jo(e,e.ins_h,e.window[e.strstart+Be-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=jo(e,e.ins_h,e.window[e.strstart+1]);else r=$o(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Nn(e,!1),e.strm.avail_out===0))return gn}return e.insert=e.strstart<Be-1?e.strstart:Be-1,t===or?(Nn(e,!0),e.strm.avail_out===0?fs:Ol):e.sym_next&&(Nn(e,!1),e.strm.avail_out===0)?gn:Pl},Nl=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<ai){if(Ll(e),e.lookahead<ai&&t===Ho)return gn;if(e.lookahead===0)break}if(n=0,e.lookahead>=Be&&(e.ins_h=jo(e,e.ins_h,e.window[e.strstart+Be-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=Be-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-ai&&(e.match_length=M8(e,n),e.match_length<=5&&(e.strategy===Qee||e.match_length===Be&&e.strstart-e.match_start>4096)&&(e.match_length=Be-1)),e.prev_length>=Be&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-Be,r=$o(e,e.strstart-1-e.prev_match,e.prev_length-Be),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=jo(e,e.ins_h,e.window[e.strstart+Be-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=Be-1,e.strstart++,r&&(Nn(e,!1),e.strm.avail_out===0))return gn}else if(e.match_available){if(r=$o(e,0,e.window[e.strstart-1]),r&&Nn(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return gn}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=$o(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<Be-1?e.strstart:Be-1,t===or?(Nn(e,!0),e.strm.avail_out===0?fs:Ol):e.sym_next&&(Nn(e,!1),e.strm.avail_out===0)?gn:Pl},fte=(e,t)=>{let n,r,i,o;const a=e.window;for(;;){if(e.lookahead<=Go){if(Ll(e),e.lookahead<=Go&&t===Ho)return gn;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=Be&&e.strstart>0&&(i=e.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){o=e.strstart+Go;do;while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&i<o);e.match_length=Go-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=Be?(n=$o(e,1,e.match_length-Be),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=$o(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Nn(e,!1),e.strm.avail_out===0))return gn}return e.insert=0,t===or?(Nn(e,!0),e.strm.avail_out===0?fs:Ol):e.sym_next&&(Nn(e,!1),e.strm.avail_out===0)?gn:Pl},hte=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(Ll(e),e.lookahead===0)){if(t===Ho)return gn;break}if(e.match_length=0,n=$o(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Nn(e,!1),e.strm.avail_out===0))return gn}return e.insert=0,t===or?(Nn(e,!0),e.strm.avail_out===0?fs:Ol):e.sym_next&&(Nn(e,!1),e.strm.avail_out===0)?gn:Pl};function si(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 Hf=[new si(0,0,0,0,P8),new si(4,4,8,4,Wy),new si(4,5,16,8,Wy),new si(4,6,32,32,Wy),new si(4,4,16,16,Nl),new si(8,16,32,32,Nl),new si(8,16,128,128,Nl),new si(8,32,128,256,Nl),new si(32,128,258,1024,Nl),new si(32,258,258,4096,Nl)],dte=e=>{e.window_size=2*e.w_size,Vo(e.head),e.max_lazy_match=Hf[e.level].max_lazy,e.good_match=Hf[e.level].good_length,e.nice_match=Hf[e.level].nice_length,e.max_chain_length=Hf[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=Be-1,e.match_available=0,e.ins_h=0};function pte(){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=Lp,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(ate*2),this.dyn_dtree=new Uint16Array((2*ite+1)*2),this.bl_tree=new Uint16Array((2*ote+1)*2),Vo(this.dyn_ltree),Vo(this.dyn_dtree),Vo(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(ste+1),this.heap=new Uint16Array(2*Uy+1),Vo(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Uy+1),Vo(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 Gf=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==Ml&&t.status!==$y&&t.status!==Hy&&t.status!==Gy&&t.status!==Vy&&t.status!==jy&&t.status!==us&&t.status!==Uf?1:0},O8=e=>{if(Gf(e))return hs(e,oi);e.total_in=e.total_out=0,e.data_type=ete;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?$y:t.wrap?Ml:us,e.adler=t.wrap===2?0:1,t.last_flush=-2,Gee(t),Yt},L8=e=>{const t=O8(e);return t===Yt&&dte(e.state),t},gte=(e,t)=>Gf(e)||e.state.wrap!==2?oi:(e.state.gzhead=t,Yt),N8=(e,t,n,r,i,o)=>{if(!e)return oi;let a=1;if(t===Zee&&(t=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),i<1||i>tte||n!==Lp||r<8||r>15||t<0||t>9||o<0||o>Kee||r===8&&a!==1)return hs(e,oi);r===8&&(r=9);const s=new pte;return e.state=s,s.strm=e,s.status=Ml,s.wrap=a,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+Be-1)/Be),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=o,s.method=n,L8(e)},mte=(e,t)=>N8(e,t,Lp,nte,rte,Jee),bte=(e,t)=>{if(Gf(e)||t>D8||t<0)return e?hs(e,oi):oi;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===Uf&&t!==or)return hs(e,e.avail_out===0?zy:oi);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(Ln(e),e.avail_out===0)return n.last_flush=-1,Yt}else if(e.avail_in===0&&F8(t)<=F8(r)&&t!==or)return hs(e,zy);if(n.status===Uf&&e.avail_in!==0)return hs(e,zy);if(n.status===Ml&&n.wrap===0&&(n.status=us),n.status===Ml){let i=Lp+(n.w_bits-8<<4)<<8,o=-1;if(n.strategy>=Op||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,i|=o<<6,n.strstart!==0&&(i|=lte),i+=31-i%31,$f(n,i),n.strstart!==0&&($f(n,e.adler>>>16),$f(n,e.adler&65535)),e.adler=1,n.status=us,Ln(e),n.pending!==0)return n.last_flush=-1,Yt}if(n.status===$y){if(e.adler=0,Ge(n,31),Ge(n,139),Ge(n,8),n.gzhead)Ge(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)),Ge(n,n.gzhead.time&255),Ge(n,n.gzhead.time>>8&255),Ge(n,n.gzhead.time>>16&255),Ge(n,n.gzhead.time>>24&255),Ge(n,n.level===9?2:n.strategy>=Op||n.level<2?4:0),Ge(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(Ge(n,n.gzhead.extra.length&255),Ge(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=Ut(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Hy;else if(Ge(n,0),Ge(n,0),Ge(n,0),Ge(n,0),Ge(n,0),Ge(n,n.level===9?2:n.strategy>=Op||n.level<2?4:0),Ge(n,cte),n.status=us,Ln(e),n.pending!==0)return n.last_flush=-1,Yt}if(n.status===Hy){if(n.gzhead.extra){let i=n.pending,o=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+o>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=Ut(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,Ln(e),n.pending!==0)return n.last_flush=-1,Yt;i=0,o-=s}let a=new Uint8Array(n.gzhead.extra);n.pending_buf.set(a.subarray(n.gzindex,n.gzindex+o),n.pending),n.pending+=o,n.gzhead.hcrc&&n.pending>i&&(e.adler=Ut(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Gy}if(n.status===Gy){if(n.gzhead.name){let i=n.pending,o;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=Ut(e.adler,n.pending_buf,n.pending-i,i)),Ln(e),n.pending!==0)return n.last_flush=-1,Yt;i=0}n.gzindex<n.gzhead.name.length?o=n.gzhead.name.charCodeAt(n.gzindex++)&255:o=0,Ge(n,o)}while(o!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=Ut(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Vy}if(n.status===Vy){if(n.gzhead.comment){let i=n.pending,o;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=Ut(e.adler,n.pending_buf,n.pending-i,i)),Ln(e),n.pending!==0)return n.last_flush=-1,Yt;i=0}n.gzindex<n.gzhead.comment.length?o=n.gzhead.comment.charCodeAt(n.gzindex++)&255:o=0,Ge(n,o)}while(o!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=Ut(e.adler,n.pending_buf,n.pending-i,i))}n.status=jy}if(n.status===jy){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(Ln(e),n.pending!==0))return n.last_flush=-1,Yt;Ge(n,e.adler&255),Ge(n,e.adler>>8&255),e.adler=0}if(n.status=us,Ln(e),n.pending!==0)return n.last_flush=-1,Yt}if(e.avail_in!==0||n.lookahead!==0||t!==Ho&&n.status!==Uf){let i=n.level===0?P8(n,t):n.strategy===Op?hte(n,t):n.strategy===Xee?fte(n,t):Hf[n.level].func(n,t);if((i===fs||i===Ol)&&(n.status=Uf),i===gn||i===fs)return e.avail_out===0&&(n.last_flush=-1),Yt;if(i===Pl&&(t===qee?jee(n):t!==D8&&(Ny(n,0,0,!1),t===Wee&&(Vo(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Ln(e),e.avail_out===0))return n.last_flush=-1,Yt}return t!==or?Yt:n.wrap<=0?B8:(n.wrap===2?(Ge(n,e.adler&255),Ge(n,e.adler>>8&255),Ge(n,e.adler>>16&255),Ge(n,e.adler>>24&255),Ge(n,e.total_in&255),Ge(n,e.total_in>>8&255),Ge(n,e.total_in>>16&255),Ge(n,e.total_in>>24&255)):($f(n,e.adler>>>16),$f(n,e.adler&65535)),Ln(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?Yt:B8)},yte=e=>{if(Gf(e))return oi;const t=e.state.status;return e.state=null,t===us?hs(e,Yee):Yt},wte=(e,t)=>{let n=t.length;if(Gf(e))return oi;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==Ml||r.lookahead)return oi;if(i===1&&(e.adler=Nf(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(Vo(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 o=e.avail_in,a=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,Ll(r);r.lookahead>=Be;){let l=r.strstart,c=r.lookahead-(Be-1);do r.ins_h=jo(r,r.ins_h,r.window[l+Be-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=Be-1,Ll(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=Be-1,r.match_available=0,e.next_in=a,e.input=s,e.avail_in=o,r.wrap=i,Yt};var vte=mte,xte=N8,Ate=L8,Ete=O8,Ste=gte,_te=bte,Cte=yte,kte=wte,Tte="pako deflate (from Nodeca project)",Vf={deflateInit:vte,deflateInit2:xte,deflateReset:Ate,deflateResetKeep:Ete,deflateSetHeader:Ste,deflate:_te,deflateEnd:Cte,deflateSetDictionary:kte,deflateInfo:Tte};const Ite=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Rte=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)Ite(n,r)&&(e[r]=n[r])}}return e},Dte=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,o=e.length;r<o;r++){let a=e[r];n.set(a,i),i+=a.length}return n},Np={assign:Rte,flattenChunks:Dte};let z8=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{z8=!1}const jf=new Uint8Array(256);for(let e=0;e<256;e++)jf[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;jf[254]=jf[254]=1;var Bte=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,o,a=e.length,s=0;for(i=0;i<a;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<a&&(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),o=0,i=0;o<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<a&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[o++]=n:n<2048?(t[o++]=192|n>>>6,t[o++]=128|n&63):n<65536?(t[o++]=224|n>>>12,t[o++]=128|n>>>6&63,t[o++]=128|n&63):(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63,t[o++]=128|n>>>6&63,t[o++]=128|n&63);return t};const Fte=(e,t)=>{if(t<65534&&e.subarray&&z8)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 Mte=(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 o=new Array(n*2);for(i=0,r=0;r<n;){let a=e[r++];if(a<128){o[i++]=a;continue}let s=jf[a];if(s>4){o[i++]=65533,r+=s-1;continue}for(a&=s===2?31:s===3?15:7;s>1&&r<n;)a=a<<6|e[r++]&63,s--;if(s>1){o[i++]=65533;continue}a<65536?o[i++]=a:(a-=65536,o[i++]=55296|a>>10&1023,o[i++]=56320|a&1023)}return Fte(o,i)},Pte=(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+jf[e[n]]>t?n:t},qf={string2buf:Bte,buf2string:Mte,utf8border:Pte};function Ote(){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 U8=Ote;const $8=Object.prototype.toString,{Z_NO_FLUSH:Lte,Z_SYNC_FLUSH:Nte,Z_FULL_FLUSH:zte,Z_FINISH:Ute,Z_OK:zp,Z_STREAM_END:$te,Z_DEFAULT_COMPRESSION:Hte,Z_DEFAULT_STRATEGY:Gte,Z_DEFLATED:Vte}=zf;function Yy(e){this.options=Np.assign({level:Hte,method:Vte,chunkSize:16384,windowBits:15,memLevel:8,strategy:Gte},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 U8,this.strm.avail_out=0;let n=Vf.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==zp)throw new Error(Fl[n]);if(t.header&&Vf.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=qf.string2buf(t.dictionary):$8.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=Vf.deflateSetDictionary(this.strm,r),n!==zp)throw new Error(Fl[n]);this._dict_set=!0}}Yy.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let i,o;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?Ute:Lte,typeof e=="string"?n.input=qf.string2buf(e):$8.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),(o===Nte||o===zte)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=Vf.deflate(n,o),i===$te)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=Vf.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===zp;if(n.avail_out===0){this.onData(n.output);continue}if(o>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},Yy.prototype.onData=function(e){this.chunks.push(e)},Yy.prototype.onEnd=function(e){e===zp&&(this.result=Np.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const Up=16209,jte=16191;var qte=function(t,n){let r,i,o,a,s,l,c,u,f,h,d,p,g,b,m,v,x,A,S,E,_,R,F,H;const O=t.state;r=t.next_in,F=t.input,i=r+(t.avail_in-5),o=t.next_out,H=t.output,a=o-(n-t.avail_out),s=o+(t.avail_out-257),l=O.dmax,c=O.wsize,u=O.whave,f=O.wnext,h=O.window,d=O.hold,p=O.bits,g=O.lencode,b=O.distcode,m=(1<<O.lenbits)-1,v=(1<<O.distbits)-1;e:do{p<15&&(d+=F[r++]<<p,p+=8,d+=F[r++]<<p,p+=8),x=g[d&m];t:for(;;){if(A=x>>>24,d>>>=A,p-=A,A=x>>>16&255,A===0)H[o++]=x&65535;else if(A&16){S=x&65535,A&=15,A&&(p<A&&(d+=F[r++]<<p,p+=8),S+=d&(1<<A)-1,d>>>=A,p-=A),p<15&&(d+=F[r++]<<p,p+=8,d+=F[r++]<<p,p+=8),x=b[d&v];n:for(;;){if(A=x>>>24,d>>>=A,p-=A,A=x>>>16&255,A&16){if(E=x&65535,A&=15,p<A&&(d+=F[r++]<<p,p+=8,p<A&&(d+=F[r++]<<p,p+=8)),E+=d&(1<<A)-1,E>l){t.msg="invalid distance too far back",O.mode=Up;break e}if(d>>>=A,p-=A,A=o-a,E>A){if(A=E-A,A>u&&O.sane){t.msg="invalid distance too far back",O.mode=Up;break e}if(_=0,R=h,f===0){if(_+=c-A,A<S){S-=A;do H[o++]=h[_++];while(--A);_=o-E,R=H}}else if(f<A){if(_+=c+f-A,A-=f,A<S){S-=A;do H[o++]=h[_++];while(--A);if(_=0,f<S){A=f,S-=A;do H[o++]=h[_++];while(--A);_=o-E,R=H}}}else if(_+=f-A,A<S){S-=A;do H[o++]=h[_++];while(--A);_=o-E,R=H}for(;S>2;)H[o++]=R[_++],H[o++]=R[_++],H[o++]=R[_++],S-=3;S&&(H[o++]=R[_++],S>1&&(H[o++]=R[_++]))}else{_=o-E;do H[o++]=H[_++],H[o++]=H[_++],H[o++]=H[_++],S-=3;while(S>2);S&&(H[o++]=H[_++],S>1&&(H[o++]=H[_++]))}}else if(A&64){t.msg="invalid distance code",O.mode=Up;break e}else{x=b[(x&65535)+(d&(1<<A)-1)];continue n}break}}else if(A&64)if(A&32){O.mode=jte;break e}else{t.msg="invalid literal/length code",O.mode=Up;break e}else{x=g[(x&65535)+(d&(1<<A)-1)];continue t}break}}while(r<i&&o<s);S=p>>3,r-=S,p-=S<<3,d&=(1<<p)-1,t.next_in=r,t.next_out=o,t.avail_in=r<i?5+(i-r):5-(r-i),t.avail_out=o<s?257+(s-o):257-(o-s),O.hold=d,O.bits=p};const zl=15,H8=852,G8=592,V8=0,Zy=1,j8=2,Wte=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]),Yte=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]),Zte=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]),Qte=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 Wf=(e,t,n,r,i,o,a,s)=>{const l=s.bits;let c=0,u=0,f=0,h=0,d=0,p=0,g=0,b=0,m=0,v=0,x,A,S,E,_,R=null,F;const H=new Uint16Array(zl+1),O=new Uint16Array(zl+1);let Z=null,ne,le,ie;for(c=0;c<=zl;c++)H[c]=0;for(u=0;u<r;u++)H[t[n+u]]++;for(d=l,h=zl;h>=1&&H[h]===0;h--);if(d>h&&(d=h),h===0)return i[o++]=1<<24|64<<16|0,i[o++]=1<<24|64<<16|0,s.bits=1,0;for(f=1;f<h&&H[f]===0;f++);for(d<f&&(d=f),b=1,c=1;c<=zl;c++)if(b<<=1,b-=H[c],b<0)return-1;if(b>0&&(e===V8||h!==1))return-1;for(O[1]=0,c=1;c<zl;c++)O[c+1]=O[c]+H[c];for(u=0;u<r;u++)t[n+u]!==0&&(a[O[t[n+u]]++]=u);if(e===V8?(R=Z=a,F=20):e===Zy?(R=Wte,Z=Yte,F=257):(R=Zte,Z=Qte,F=0),v=0,u=0,c=f,_=o,p=d,g=0,S=-1,m=1<<d,E=m-1,e===Zy&&m>H8||e===j8&&m>G8)return 1;for(;;){ne=c-g,a[u]+1<F?(le=0,ie=a[u]):a[u]>=F?(le=Z[a[u]-F],ie=R[a[u]-F]):(le=96,ie=0),x=1<<c-g,A=1<<p,f=A;do A-=x,i[_+(v>>g)+A]=ne<<24|le<<16|ie|0;while(A!==0);for(x=1<<c-1;v&x;)x>>=1;if(x!==0?(v&=x-1,v+=x):v=0,u++,--H[c]===0){if(c===h)break;c=t[n+a[u]]}if(c>d&&(v&E)!==S){for(g===0&&(g=d),_+=f,p=c-g,b=1<<p;p+g<h&&(b-=H[p+g],!(b<=0));)p++,b<<=1;if(m+=1<<p,e===Zy&&m>H8||e===j8&&m>G8)return 1;S=v&E,i[S]=d<<24|p<<16|_-o|0}}return v!==0&&(i[_+v]=c-g<<24|64<<16|0),s.bits=d,0};const Xte=0,q8=1,W8=2,{Z_FINISH:Y8,Z_BLOCK:Kte,Z_TREES:$p,Z_OK:ds,Z_STREAM_END:Jte,Z_NEED_DICT:ene,Z_STREAM_ERROR:ar,Z_DATA_ERROR:Z8,Z_MEM_ERROR:Q8,Z_BUF_ERROR:tne,Z_DEFLATED:X8}=zf,Hp=16180,K8=16181,J8=16182,eT=16183,tT=16184,nT=16185,rT=16186,iT=16187,oT=16188,aT=16189,Gp=16190,$i=16191,Qy=16192,sT=16193,Xy=16194,lT=16195,cT=16196,uT=16197,fT=16198,Vp=16199,jp=16200,hT=16201,dT=16202,pT=16203,gT=16204,mT=16205,Ky=16206,bT=16207,yT=16208,pt=16209,wT=16210,vT=16211,nne=852,rne=592,ine=15,xT=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function one(){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 ps=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<Hp||t.mode>vT?1:0},AT=e=>{if(ps(e))return ar;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=Hp,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(nne),t.distcode=t.distdyn=new Int32Array(rne),t.sane=1,t.back=-1,ds},ET=e=>{if(ps(e))return ar;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,AT(e)},ST=(e,t)=>{let n;if(ps(e))return ar;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?ar:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,ET(e))},_T=(e,t)=>{if(!e)return ar;const n=new one;e.state=n,n.strm=e,n.window=null,n.mode=Hp;const r=ST(e,t);return r!==ds&&(e.state=null),r},ane=e=>_T(e,ine);let CT=!0,Jy,ew;const sne=e=>{if(CT){Jy=new Int32Array(512),ew=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(Wf(q8,e.lens,0,288,Jy,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Wf(W8,e.lens,0,32,ew,0,e.work,{bits:5}),CT=!1}e.lencode=Jy,e.lenbits=9,e.distcode=ew,e.distbits=5},kT=(e,t,n,r)=>{let i;const o=e.state;return o.window===null&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),r>=o.wsize?(o.window.set(t.subarray(n-o.wsize,n),0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),o.window.set(t.subarray(n-r,n-r+i),o.wnext),r-=i,r?(o.window.set(t.subarray(n-r,n),0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=i))),0},lne=(e,t)=>{let n,r,i,o,a,s,l,c,u,f,h,d,p,g,b=0,m,v,x,A,S,E,_,R;const F=new Uint8Array(4);let H,O;const Z=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(ps(e)||!e.output||!e.input&&e.avail_in!==0)return ar;n=e.state,n.mode===$i&&(n.mode=Qy),a=e.next_out,i=e.output,l=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,f=s,h=l,R=ds;e:for(;;)switch(n.mode){case Hp:if(n.wrap===0){n.mode=Qy;break}for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(n.wrap&2&&c===35615){n.wbits===0&&(n.wbits=15),n.check=0,F[0]=c&255,F[1]=c>>>8&255,n.check=Ut(n.check,F,2,0),c=0,u=0,n.mode=K8;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((c&255)<<8)+(c>>8))%31){e.msg="incorrect header check",n.mode=pt;break}if((c&15)!==X8){e.msg="unknown compression method",n.mode=pt;break}if(c>>>=4,u-=4,_=(c&15)+8,n.wbits===0&&(n.wbits=_),_>15||_>n.wbits){e.msg="invalid window size",n.mode=pt;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=c&512?aT:$i,c=0,u=0;break;case K8:for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(n.flags=c,(n.flags&255)!==X8){e.msg="unknown compression method",n.mode=pt;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=pt;break}n.head&&(n.head.text=c>>8&1),n.flags&512&&n.wrap&4&&(F[0]=c&255,F[1]=c>>>8&255,n.check=Ut(n.check,F,2,0)),c=0,u=0,n.mode=J8;case J8:for(;u<32;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}n.head&&(n.head.time=c),n.flags&512&&n.wrap&4&&(F[0]=c&255,F[1]=c>>>8&255,F[2]=c>>>16&255,F[3]=c>>>24&255,n.check=Ut(n.check,F,4,0)),c=0,u=0,n.mode=eT;case eT:for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}n.head&&(n.head.xflags=c&255,n.head.os=c>>8),n.flags&512&&n.wrap&4&&(F[0]=c&255,F[1]=c>>>8&255,n.check=Ut(n.check,F,2,0)),c=0,u=0,n.mode=tT;case tT:if(n.flags&1024){for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}n.length=c,n.head&&(n.head.extra_len=c),n.flags&512&&n.wrap&4&&(F[0]=c&255,F[1]=c>>>8&255,n.check=Ut(n.check,F,2,0)),c=0,u=0}else n.head&&(n.head.extra=null);n.mode=nT;case nT:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(_=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(o,o+d),_)),n.flags&512&&n.wrap&4&&(n.check=Ut(n.check,r,d,o)),s-=d,o+=d,n.length-=d),n.length))break e;n.length=0,n.mode=rT;case rT:if(n.flags&2048){if(s===0)break e;d=0;do _=r[o+d++],n.head&&_&&n.length<65536&&(n.head.name+=String.fromCharCode(_));while(_&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=Ut(n.check,r,d,o)),s-=d,o+=d,_)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=iT;case iT:if(n.flags&4096){if(s===0)break e;d=0;do _=r[o+d++],n.head&&_&&n.length<65536&&(n.head.comment+=String.fromCharCode(_));while(_&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=Ut(n.check,r,d,o)),s-=d,o+=d,_)break e}else n.head&&(n.head.comment=null);n.mode=oT;case oT:if(n.flags&512){for(;u<16;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(n.wrap&4&&c!==(n.check&65535)){e.msg="header crc mismatch",n.mode=pt;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=$i;break;case aT:for(;u<32;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}e.adler=n.check=xT(c),c=0,u=0,n.mode=Gp;case Gp:if(n.havedict===0)return e.next_out=a,e.avail_out=l,e.next_in=o,e.avail_in=s,n.hold=c,n.bits=u,ene;e.adler=n.check=1,n.mode=$i;case $i:if(t===Kte||t===$p)break e;case Qy:if(n.last){c>>>=u&7,u-=u&7,n.mode=Ky;break}for(;u<3;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}switch(n.last=c&1,c>>>=1,u-=1,c&3){case 0:n.mode=sT;break;case 1:if(sne(n),n.mode=Vp,t===$p){c>>>=2,u-=2;break e}break;case 2:n.mode=cT;break;case 3:e.msg="invalid block type",n.mode=pt}c>>>=2,u-=2;break;case sT:for(c>>>=u&7,u-=u&7;u<32;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if((c&65535)!==(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=pt;break}if(n.length=c&65535,c=0,u=0,n.mode=Xy,t===$p)break e;case Xy:n.mode=lT;case lT:if(d=n.length,d){if(d>s&&(d=s),d>l&&(d=l),d===0)break e;i.set(r.subarray(o,o+d),a),s-=d,o+=d,l-=d,a+=d,n.length-=d;break}n.mode=$i;break;case cT:for(;u<14;){if(s===0)break e;s--,c+=r[o++]<<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=pt;break}n.have=0,n.mode=uT;case uT:for(;n.have<n.ncode;){for(;u<3;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}n.lens[Z[n.have++]]=c&7,c>>>=3,u-=3}for(;n.have<19;)n.lens[Z[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,H={bits:n.lenbits},R=Wf(Xte,n.lens,0,19,n.lencode,0,n.work,H),n.lenbits=H.bits,R){e.msg="invalid code lengths set",n.mode=pt;break}n.have=0,n.mode=fT;case fT:for(;n.have<n.nlen+n.ndist;){for(;b=n.lencode[c&(1<<n.lenbits)-1],m=b>>>24,v=b>>>16&255,x=b&65535,!(m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(x<16)c>>>=m,u-=m,n.lens[n.have++]=x;else{if(x===16){for(O=m+2;u<O;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(c>>>=m,u-=m,n.have===0){e.msg="invalid bit length repeat",n.mode=pt;break}_=n.lens[n.have-1],d=3+(c&3),c>>>=2,u-=2}else if(x===17){for(O=m+3;u<O;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}c>>>=m,u-=m,_=0,d=3+(c&7),c>>>=3,u-=3}else{for(O=m+7;u<O;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}c>>>=m,u-=m,_=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=pt;break}for(;d--;)n.lens[n.have++]=_}}if(n.mode===pt)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=pt;break}if(n.lenbits=9,H={bits:n.lenbits},R=Wf(q8,n.lens,0,n.nlen,n.lencode,0,n.work,H),n.lenbits=H.bits,R){e.msg="invalid literal/lengths set",n.mode=pt;break}if(n.distbits=6,n.distcode=n.distdyn,H={bits:n.distbits},R=Wf(W8,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,H),n.distbits=H.bits,R){e.msg="invalid distances set",n.mode=pt;break}if(n.mode=Vp,t===$p)break e;case Vp:n.mode=jp;case jp:if(s>=6&&l>=258){e.next_out=a,e.avail_out=l,e.next_in=o,e.avail_in=s,n.hold=c,n.bits=u,qte(e,h),a=e.next_out,i=e.output,l=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,n.mode===$i&&(n.back=-1);break}for(n.back=0;b=n.lencode[c&(1<<n.lenbits)-1],m=b>>>24,v=b>>>16&255,x=b&65535,!(m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(v&&!(v&240)){for(A=m,S=v,E=x;b=n.lencode[E+((c&(1<<A+S)-1)>>A)],m=b>>>24,v=b>>>16&255,x=b&65535,!(A+m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}c>>>=A,u-=A,n.back+=A}if(c>>>=m,u-=m,n.back+=m,n.length=x,v===0){n.mode=mT;break}if(v&32){n.back=-1,n.mode=$i;break}if(v&64){e.msg="invalid literal/length code",n.mode=pt;break}n.extra=v&15,n.mode=hT;case hT:if(n.extra){for(O=n.extra;u<O;){if(s===0)break e;s--,c+=r[o++]<<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=dT;case dT:for(;b=n.distcode[c&(1<<n.distbits)-1],m=b>>>24,v=b>>>16&255,x=b&65535,!(m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(!(v&240)){for(A=m,S=v,E=x;b=n.distcode[E+((c&(1<<A+S)-1)>>A)],m=b>>>24,v=b>>>16&255,x=b&65535,!(A+m<=u);){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}c>>>=A,u-=A,n.back+=A}if(c>>>=m,u-=m,n.back+=m,v&64){e.msg="invalid distance code",n.mode=pt;break}n.offset=x,n.extra=v&15,n.mode=pT;case pT:if(n.extra){for(O=n.extra;u<O;){if(s===0)break e;s--,c+=r[o++]<<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=pt;break}n.mode=gT;case gT: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=pt;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=a-n.offset,d=n.length;d>l&&(d=l),l-=d,n.length-=d;do i[a++]=g[p++];while(--d);n.length===0&&(n.mode=jp);break;case mT:if(l===0)break e;i[a++]=n.length,l--,n.mode=jp;break;case Ky:if(n.wrap){for(;u<32;){if(s===0)break e;s--,c|=r[o++]<<u,u+=8}if(h-=l,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?Ut(n.check,i,h,a-h):Nf(n.check,i,h,a-h)),h=l,n.wrap&4&&(n.flags?c:xT(c))!==n.check){e.msg="incorrect data check",n.mode=pt;break}c=0,u=0}n.mode=bT;case bT:if(n.wrap&&n.flags){for(;u<32;){if(s===0)break e;s--,c+=r[o++]<<u,u+=8}if(n.wrap&4&&c!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=pt;break}c=0,u=0}n.mode=yT;case yT:R=Jte;break e;case pt:R=Z8;break e;case wT:return Q8;case vT:default:return ar}return e.next_out=a,e.avail_out=l,e.next_in=o,e.avail_in=s,n.hold=c,n.bits=u,(n.wsize||h!==e.avail_out&&n.mode<pt&&(n.mode<Ky||t!==Y8))&&kT(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?Ut(n.check,i,h,e.next_out-h):Nf(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===$i?128:0)+(n.mode===Vp||n.mode===Xy?256:0),(f===0&&h===0||t===Y8)&&R===ds&&(R=tne),R},cne=e=>{if(ps(e))return ar;let t=e.state;return t.window&&(t.window=null),e.state=null,ds},une=(e,t)=>{if(ps(e))return ar;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,ds):ar},fne=(e,t)=>{const n=t.length;let r,i,o;return ps(e)||(r=e.state,r.wrap!==0&&r.mode!==Gp)?ar:r.mode===Gp&&(i=1,i=Nf(i,t,n,0),i!==r.check)?Z8:(o=kT(e,t,n,n),o?(r.mode=wT,Q8):(r.havedict=1,ds))};var hne=ET,dne=ST,pne=AT,gne=ane,mne=_T,bne=lne,yne=cne,wne=une,vne=fne,xne="pako inflate (from Nodeca project)",Hi={inflateReset:hne,inflateReset2:dne,inflateResetKeep:pne,inflateInit:gne,inflateInit2:mne,inflate:bne,inflateEnd:yne,inflateGetHeader:wne,inflateSetDictionary:vne,inflateInfo:xne};function Ane(){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 Ene=Ane;const TT=Object.prototype.toString,{Z_NO_FLUSH:Sne,Z_FINISH:_ne,Z_OK:Yf,Z_STREAM_END:tw,Z_NEED_DICT:nw,Z_STREAM_ERROR:Cne,Z_DATA_ERROR:IT,Z_MEM_ERROR:kne}=zf;function Zf(e){this.options=Np.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 U8,this.strm.avail_out=0;let n=Hi.inflateInit2(this.strm,t.windowBits);if(n!==Yf)throw new Error(Fl[n]);if(this.header=new Ene,Hi.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=qf.string2buf(t.dictionary):TT.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=Hi.inflateSetDictionary(this.strm,t.dictionary),n!==Yf)))throw new Error(Fl[n])}Zf.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let o,a,s;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?_ne:Sne,TT.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),o=Hi.inflate(n,a),o===nw&&i&&(o=Hi.inflateSetDictionary(n,i),o===Yf?o=Hi.inflate(n,a):o===IT&&(o=nw));n.avail_in>0&&o===tw&&n.state.wrap>0&&e[n.next_in]!==0;)Hi.inflateReset(n),o=Hi.inflate(n,a);switch(o){case Cne:case IT:case nw:case kne:return this.onEnd(o),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||o===tw))if(this.options.to==="string"){let l=qf.utf8border(n.output,n.next_out),c=n.next_out-l,u=qf.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(!(o===Yf&&s===0)){if(o===tw)return o=Hi.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},Zf.prototype.onData=function(e){this.chunks.push(e)},Zf.prototype.onEnd=function(e){e===Yf&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Np.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function rw(e,t){const n=new Zf(t);if(n.push(e),n.err)throw n.msg||Fl[n.err];return n.result}function Tne(e,t){return t=t||{},t.raw=!0,rw(e,t)}var Ine=Zf,Rne=rw,Dne=Tne,Bne=rw,Fne=zf,Mne={Inflate:Ine,inflate:Rne,inflateRaw:Dne,ungzip:Bne,constants:Fne};const{Inflate:tae,inflate:nae,inflateRaw:Pne,ungzip:rae}=Mne;var One=Pne;function Lne(e){return One(e.subarray(2))}let Nne=class extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}};function zne(e){e.sort((i,o)=>Number(i.offset)-Number(o.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 qp(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new Nne("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const Une=1,$ne=2,Hne=3;function iw(e,t,n,r){return e<r&&t>=n}function Gne(e){const t=e?"big":"little",n=new Ye().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new Ye().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new Ye().endianess(t).array("blocksToFetch",{length:"cnt",type:new Ye().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new Ye().array("recurOffsets",{length:"cnt",type:new Ye().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new Ye().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new Ye().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[Hne]:new Ye().array("items",{length:"itemCount",type:new Ye().floatle("score")}),[$ne]:new Ye().array("items",{length:"itemCount",type:new Ye().endianess(t).int32("start").floatle("score")}),[Une]:new Ye().array("items",{length:"itemCount",type:new Ye().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class RT{constructor(t,n,r,i,o,a){if(this.bbi=t,this.refsByName=n,this.cirTreeOffset=r,this.isBigEndian=i,this.isCompressed=o,this.blockType=a,this.featureCache=new Bp({cache:new Fp({maxSize:1e3}),fill:async(l,c)=>{const u=Number(l.length),f=Number(l.offset),{buffer:h}=await this.bbi.read(Ne.Buffer.alloc(u),0,u,f,{signal:c});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const s=Gne(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(t,n,r,i,o){try{const{refsByName:a,bbi:s,cirTreeOffset:l,isBigEndian:c}=this,u=a[t];u===void 0&&i.complete();const f={chrId:u,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=s.read(Ne.Buffer.alloc(48),0,48,Number(l),o));const{buffer:h}=await this.cirTreePromise,d=c?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],g=0;const b=(A,S,E)=>{try{const _=A.subarray(S),R=this.leafParser.parse(_);if(R.blocksToFetch&&(p=p.concat(R.blocksToFetch.filter(F=>m(F)).map(F=>({offset:F.blockOffset,length:F.blockSize})))),R.recurOffsets){const F=R.recurOffsets.filter(H=>m(H)).map(H=>Number(H.blockOffset));F.length>0&&x(F,E+1)}}catch(_){i.error(_)}},m=A=>{const{startChrom:S,startBase:E,endChrom:_,endBase:R}=A;return(S<u||S===u&&E<=r)&&(_>u||_===u&&R>=n)},v=async(A,S,E)=>{try{const _=S.max-S.min,R=S.min,F=await this.featureCache.get(`${_}_${R}`,{length:_,offset:R},o==null?void 0:o.signal);for(const H of A)S.contains(H)&&(b(F,H-R,E),g-=1,g===0&&this.readFeatures(i,p,{...o,request:f}).catch(O=>i.error(O)))}catch(_){i.error(_)}},x=(A,S)=>{try{g+=A.length;const E=4+Number(d)*32;let _=new Rl([{min:A[0],max:A[0]+E}]);for(let R=1;R<A.length;R+=1){const F=new Rl([{min:A[R],max:A[R]+E}]);_=_.union(F)}_.getRanges().map(R=>v(A,R,S))}catch(E){i.error(E)}};return x([Number(l)+48],1)}catch(a){i.error(a)}}parseSummaryBlock(t,n,r){const i=[];let o=n;const a=new DataView(t.buffer,t.byteOffset,t.length);for(;o<t.byteLength;){const s=a.getUint32(o,!0);o+=4;const l=a.getUint32(o,!0);o+=4;const c=a.getUint32(o,!0);o+=4;const u=a.getUint32(o,!0);o+=4;const f=a.getFloat32(o,!0);o+=4;const h=a.getFloat32(o,!0);o+=4;const d=a.getFloat32(o,!0);o+=4,o+=4,(!r||s===r.chrId&&iw(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 o=[];let a=n;for(;a<t.byteLength;){const s=this.bigBedParser.parse(t.subarray(a));s.uniqueId=`bb-${r+a}`,o.push(s),a+=s.offset}return i?o.filter(s=>iw(s.start,s.end,i.start,i.end)):o}parseBigWigBlock(t,n,r){const i=t.subarray(n),o=new DataView(i.buffer,i.byteOffset,i.length);let a=0;a+=4;const s=o.getInt32(a,!0);a+=8;const l=o.getUint32(a,!0);a+=4;const c=o.getUint32(a,!0);a+=4;const u=o.getUint8(a);a+=2;const f=o.getUint16(a,!0);a+=2;const h=new Array(f);switch(u){case 1:{for(let d=0;d<f;d++){const p=o.getInt32(a,!0);a+=4;const g=o.getInt32(a,!0);a+=4;const b=o.getFloat32(a,!0);a+=4,h[d]={start:p,end:g,score:b}}break}case 2:{for(let d=0;d<f;d++){const p=o.getInt32(a,!0);a+=4;const g=o.getFloat32(a,!0);a+=4,h[d]={score:g,start:p,end:p+c}}break}case 3:{for(let d=0;d<f;d++){const p=o.getFloat32(a,!0);a+=4;const g=s+d*l;h[d]={score:p,start:g,end:g+c}}break}}return r?h.filter(d=>iw(d.start,d.end,r.start,r.end)):h}async readFeatures(t,n,r={}){try{const{blockType:i,isCompressed:o}=this,{signal:a,request:s}=r,l=zne(n);qp(a),await Promise.all(l.map(async c=>{qp(a);const{length:u,offset:f}=c,h=await this.featureCache.get(`${u}_${f}`,c,a);for(const d of c.blocks){qp(a);let p=Number(d.offset)-Number(c.offset),g=h;switch(o&&(g=Lne(h.subarray(p)),p=0),qp(a),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)*256,s));break}default:console.warn(`Don't know what to do with ${i}`)}}})),t.complete()}catch(i){t.error(i)}}}var ow=function(e,t){return ow=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])},ow(e,t)};function aw(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");ow(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function Vne(e,t,n,r){function i(o){return o instanceof n?o:new n(function(a){a(o)})}return new(n||(n=Promise))(function(o,a){function s(u){try{c(r.next(u))}catch(f){a(f)}}function l(u){try{c(r.throw(u))}catch(f){a(f)}}function c(u){u.done?o(u.value):i(u.value).then(s,l)}c((r=r.apply(e,t||[])).next())})}function DT(e,t){var n={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},r,i,o,a;return a={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function s(c){return function(u){return l([c,u])}}function l(c){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(n=0)),n;)try{if(r=1,i&&(o=c[0]&2?i.return:c[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,c[1])).done)return o;switch(i=0,o&&(c=[c[0]&2,o.value]),c[0]){case 0:case 1:o=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(o=n.trys,!(o=o.length>0&&o[o.length-1])&&(c[0]===6||c[0]===2)){n=0;continue}if(c[0]===3&&(!o||c[1]>o[0]&&c[1]<o[3])){n.label=c[1];break}if(c[0]===6&&n.label<o[1]){n.label=o[1],o=c;break}if(o&&n.label<o[2]){n.label=o[2],n.ops.push(c);break}o[2]&&n.ops.pop(),n.trys.pop();continue}c=t.call(e,n)}catch(u){c=[6,u],i=0}finally{r=o=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}function Qf(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 sw(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,o=[],a;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)o.push(i.value)}catch(s){a={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(a)throw a.error}}return o}function lw(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,o;r<i;r++)(o||!(r in t))&&(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}function Ul(e){return this instanceof Ul?(this.v=e,this):new Ul(e)}function jne(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),i,o=[];return i={},a("next"),a("throw"),a("return"),i[Symbol.asyncIterator]=function(){return this},i;function a(h){r[h]&&(i[h]=function(d){return new Promise(function(p,g){o.push([h,d,p,g])>1||s(h,d)})})}function s(h,d){try{l(r[h](d))}catch(p){f(o[0][3],p)}}function l(h){h.value instanceof Ul?Promise.resolve(h.value.v).then(c,u):f(o[0][2],h)}function c(h){s("next",h)}function u(h){s("throw",h)}function f(h,d){h(d),o.shift(),o.length&&s(o[0][0],o[0][1])}}function qne(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 Qf=="function"?Qf(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(o){n[o]=e[o]&&function(a){return new Promise(function(s,l){a=e[o](a),i(s,l,a.done,a.value)})}}function i(o,a,s,l){Promise.resolve(l).then(function(c){o({value:c,done:s})},a)}}typeof SuppressedError=="function"&&SuppressedError;function Dt(e){return typeof e=="function"}function BT(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 cw=BT(function(e){return function(n){e(this),this.message=n?n.length+` errors occurred during unsubscription:
|
3752
3752
|
`+n.map(function(r,i){return i+1+") "+r.toString()}).join(`
|
3753
|
-
`):"",this.name="UnsubscriptionError",this.errors=n}});function FT(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var uw=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,o;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var s=Qf(a),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 a.remove(this);var u=this.initialTeardown;if(Dt(u))try{u()}catch(g){o=g instanceof cw?g.errors:[g]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var h=Qf(f),d=h.next();!d.done;d=h.next()){var p=d.value;try{PT(p)}catch(g){o=o??[],g instanceof cw?o=lw(lw([],sw(o)),sw(g.errors)):o.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(o)throw new cw(o)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)PT(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)&&FT(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&FT(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();uw.EMPTY;function MT(e){return e instanceof uw||e&&"closed"in e&&Dt(e.remove)&&Dt(e.add)&&Dt(e.unsubscribe)}function PT(e){Dt(e)?e():e.unsubscribe()}var OT={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},LT={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return setTimeout.apply(void 0,lw([e,t],sw(n)))},clearTimeout:function(e){var t=LT.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function NT(e){LT.setTimeout(function(){throw e})}function zT(){}function Wne(e){e()}var fw=function(e){aw(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,MT(n)&&n.add(r)):r.destination=Xne,r}return t.create=function(n,r,i){return new Wp(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}(uw),Yne=Function.prototype.bind;function hw(e,t){return Yne.call(e,t)}var Zne=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){Yp(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){Yp(r)}else Yp(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){Yp(n)}},e}(),Wp=function(e){aw(t,e);function t(n,r,i){var o=e.call(this)||this,a;if(Dt(n)||!n)a={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;o&&OT.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return o.unsubscribe()},a={next:n.next&&hw(n.next,s),error:n.error&&hw(n.error,s),complete:n.complete&&hw(n.complete,s)}):a=n}return o.destination=new Zne(a),o}return t}(fw);function Yp(e){NT(e)}function Qne(e){throw e}var Xne={closed:!0,next:zT,error:Qne,complete:zT},dw=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function UT(e){return e}function Kne(e){return e.length===0?UT:e.length===1?e[0]:function(n){return e.reduce(function(r,i){return i(r)},n)}}var sr=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,o=ere(t)?t:new Wp(t,n,r);return Wne(function(){var a=i,s=a.operator,l=a.source;o.add(s?s.call(o,l):l?i._subscribe(o):i._trySubscribe(o))}),o},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=$T(n),new n(function(i,o){var a=new Wp({next:function(s){try{t(s)}catch(l){o(l),a.unsubscribe()}},error:o,complete:i});r.subscribe(a)})},e.prototype._subscribe=function(t){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(t)},e.prototype[dw]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return Kne(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=$T(t),new t(function(r,i){var o;n.subscribe(function(a){return o=a},function(a){return i(a)},function(){return r(o)})})},e.create=function(t){return new e(t)},e}();function $T(e){var t;return(t=e??OT.Promise)!==null&&t!==void 0?t:Promise}function Jne(e){return e&&Dt(e.next)&&Dt(e.error)&&Dt(e.complete)}function ere(e){return e&&e instanceof fw||Jne(e)&&MT(e)}function tre(e){return Dt(e==null?void 0:e.lift)}function $l(e){return function(t){if(tre(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 Xf(e,t,n,r,i){return new nre(e,t,n,r,i)}var nre=function(e){aw(t,e);function t(n,r,i,o,a,s){var l=e.call(this,n)||this;return l.onFinalize=a,l.shouldUnsubscribe=s,l._next=r?function(c){try{r(c)}catch(u){n.error(u)}}:e.prototype._next,l._error=o?function(c){try{o(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}(fw),rre=new sr(function(e){return e.complete()});function ire(e){return e&&Dt(e.schedule)}function HT(e){return e[e.length-1]}function ore(e){return ire(HT(e))?e.pop():void 0}function are(e,t){return typeof HT(e)=="number"?e.pop():t}var GT=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function VT(e){return Dt(e==null?void 0:e.then)}function jT(e){return Dt(e[dw])}function qT(e){return Symbol.asyncIterator&&Dt(e==null?void 0:e[Symbol.asyncIterator])}function WT(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 sre(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var YT=sre();function ZT(e){return Dt(e==null?void 0:e[YT])}function QT(e){return jne(this,arguments,function(){var n,r,i,o;return DT(this,function(a){switch(a.label){case 0:n=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,Ul(n.read())];case 3:return r=a.sent(),i=r.value,o=r.done,o?[4,Ul(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,Ul(i)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function XT(e){return Dt(e==null?void 0:e.getReader)}function Hl(e){if(e instanceof sr)return e;if(e!=null){if(jT(e))return lre(e);if(GT(e))return cre(e);if(VT(e))return ure(e);if(qT(e))return KT(e);if(ZT(e))return fre(e);if(XT(e))return hre(e)}throw WT(e)}function lre(e){return new sr(function(t){var n=e[dw]();if(Dt(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function cre(e){return new sr(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function ure(e){return new sr(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,NT)})}function fre(e){return new sr(function(t){var n,r;try{for(var i=Qf(e),o=i.next();!o.done;o=i.next()){var a=o.value;if(t.next(a),t.closed)return}}catch(s){n={error:s}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}t.complete()})}function KT(e){return new sr(function(t){dre(e,t).catch(function(n){return t.error(n)})})}function hre(e){return KT(QT(e))}function dre(e,t){var n,r,i,o;return Vne(this,void 0,void 0,function(){var a,s;return DT(this,function(l){switch(l.label){case 0:l.trys.push([0,5,6,11]),n=qne(e),l.label=1;case 1:return[4,n.next()];case 2:if(r=l.sent(),!!r.done)return[3,4];if(a=r.value,t.next(a),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&&(o=n.return)?[4,o.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 gs(e,t,n,r,i){r===void 0&&(r=0),i===void 0&&(i=!1);var o=t.schedule(function(){n(),i?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(o),!i)return o}function JT(e,t){return t===void 0&&(t=0),$l(function(n,r){n.subscribe(Xf(r,function(i){return gs(r,e,function(){return r.next(i)},t)},function(){return gs(r,e,function(){return r.complete()},t)},function(i){return gs(r,e,function(){return r.error(i)},t)}))})}function eI(e,t){return t===void 0&&(t=0),$l(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function pre(e,t){return Hl(e).pipe(eI(t),JT(t))}function gre(e,t){return Hl(e).pipe(eI(t),JT(t))}function mre(e,t){return new sr(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function bre(e,t){return new sr(function(n){var r;return gs(n,t,function(){r=e[YT](),gs(n,t,function(){var i,o,a;try{i=r.next(),o=i.value,a=i.done}catch(s){n.error(s);return}a?n.complete():n.next(o)},0,!0)}),function(){return Dt(r==null?void 0:r.return)&&r.return()}})}function tI(e,t){if(!e)throw new Error("Iterable cannot be null");return new sr(function(n){gs(n,t,function(){var r=e[Symbol.asyncIterator]();gs(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function yre(e,t){return tI(QT(e),t)}function wre(e,t){if(e!=null){if(jT(e))return pre(e,t);if(GT(e))return mre(e,t);if(VT(e))return gre(e,t);if(qT(e))return tI(e,t);if(ZT(e))return bre(e,t);if(XT(e))return yre(e,t)}throw WT(e)}function vre(e,t){return t?wre(e,t):Hl(e)}var xre=BT(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function nI(e,t){return new Promise(function(n,r){var i=new Wp({next:function(o){n(o),i.unsubscribe()},error:r,complete:function(){r(new xre)}});e.subscribe(i)})}function rI(e,t){return $l(function(n,r){var i=0;n.subscribe(Xf(r,function(o){r.next(e.call(t,o,i++))}))})}function Are(e,t,n,r,i,o,a,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){c++;var b=!1;Hl(n(g,u++)).subscribe(Xf(t,function(m){t.next(m)},function(){b=!0},void 0,function(){if(b)try{c--;for(var m=function(){var v=l.shift();a||p(v)};l.length&&c<r;)m();h()}catch(v){t.error(v)}}))};return e.subscribe(Xf(t,d,function(){f=!0,h()})),function(){}}function iI(e,t,n){return n===void 0&&(n=1/0),Dt(t)?iI(function(r,i){return rI(function(o,a){return t(r,o,i,a)})(Hl(e(r,i)))},n):(typeof t=="number"&&(n=t),$l(function(r,i){return Are(r,i,e,n)}))}function Ere(e){return e===void 0&&(e=1/0),iI(UT,e)}function Sre(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=ore(e),r=are(e,1/0),i=e;return i.length?i.length===1?Hl(i[0]):Ere(r)(vre(i,n)):rre}function _re(e,t,n,r,i){return function(o,a){var s=n,l=t,c=0;o.subscribe(Xf(a,function(u){var f=c++;l=s?e(l,u,f):(s=!0,u)},function(){s&&a.next(l),a.complete()}))}}function oI(e,t){return $l(_re(e,t,arguments.length>=2,!1,!0))}var Cre=function(e,t){return e.push(t),e};function kre(){return $l(function(e,t){oI(Cre,[])(e).subscribe(t)})}const aI=-2003829722,pw=-2021002517;function Tre(e){return new TextDecoder().decode(e)}function sI(e){const t=e?"big":"little",n=new Ze().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 Ze().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new Ze().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new Ze().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),o=new Ze().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:o}}class lI{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=a=>a,path:i,url:o}=t;if(this.renameRefSeqs=r,n)this.bbi=n;else if(o)this.bbi=new Za(o);else if(i)this.bbi=new zt(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(Ne.Buffer.alloc(n),0,n,0,t),i=this._isBigEndian(r),o=sI(i),a=o.headerParser.parse(r),{magic:s,asOffset:l,totalSummaryOffset:c}=a;if(a.fileType=s===pw?"bigbed":"bigwig",l>n||c>n)return this._getMainHeader(t,n*2);if(l){const u=Number(a.asOffset);a.autoSql=Tre(r.subarray(u,r.indexOf(0,u)))}if(a.totalSummaryOffset>n-8*5)return this._getMainHeader(t,n*2);if(a.totalSummaryOffset){const u=r.subarray(Number(a.totalSummaryOffset)),f=o.totalSummaryParser.parse(u);a.totalSummary={...f,basesCovered:Number(f.basesCovered)}}return{...a,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===aI||n===pw)return!1;if(n=t.readInt32BE(0),n===aI||n===pw)return!0;throw new Error("not a BigWig/BigBed file")}async _readChromTree(t,n){const r=t.isBigEndian,i=r?"big":"little",o=[],a={};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(Ne.Buffer.alloc(c),0,c,Number(l),n),f=sI(r),{keySize:h}=f.chromTreeParser.parse(u),d=new Ze().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new Ze().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),g=32,b=async m=>{let v=m;if(v>=u.length)throw new Error("reading beyond end of buffer");const x=f.isLeafNode.parse(u.subarray(v)),{isLeafNode:A,cnt:S}=x;if(v+=x.offset,A)for(let E=0;E<S;E+=1){const _=d.parse(u.subarray(v));v+=_.offset;const{key:R,refId:F,refSize:H}=_,O={name:R,id:F,length:H};a[this.renameRefSeqs(R)]=F,o[F]=O}else{const E=[];for(let _=0;_<S;_+=1){const R=p.parse(u.subarray(v)),{childOffset:F}=R;v+=R.offset,E.push(b(Number(F)-Number(l)))}await Promise.all(E)}};return await b(g),{refsByName:a,refsByNumber:o}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:o,fileType:a}=await this.getHeader(t);return new RT(this.bbi,r,n,o,i>0,a)}async getFeatureStream(t,n,r,i){await this.getHeader(i);const o=this.renameRefSeqs(t);let a;const{basesPerSpan:s,scale:l}=i||{};return s?a=await this.getView(1/s,i):l?a=await this.getView(l,i):a=await this.getView(1,i),new sr(c=>{a.readWigData(o,n,r,c,i)})}async getFeatures(t,n,r,i){const o=await this.getFeatureStream(t,n,r,i);return(await nI(o.pipe(kre()))).flat()}}class Ire extends lI{async getView(t,n){const{zoomLevels:r,refsByName:i,fileSize:o,isBigEndian:a,uncompressBufSize:s}=await this.getHeader(n),l=1/t;let c=r.length;o||(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 RT(this.bbi,i,h,a,s>0,"summary")}}return this.getUnzoomedView(n)}}function Rre(e){return e.filter(t=>!!t)}class Dre extends lI{constructor(){super(...arguments),this.readIndicesCache=new Bp({cache:new Fp({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(Ne.Buffer.alloc(64),0,64,Number(n)),o=r?"big":"little",a=new Ze().endianess(o).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:l}=a;if(s===0)return[];const c=20,u=c*s,{buffer:f}=await this.bbi.read(Ne.Buffer.alloc(u),0,u,Number(l)),h=new Ze().endianess(o).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 o=i.map(async a=>{const{offset:s,field:l}=a,{buffer:c}=await this.bbi.read(Ne.Buffer.alloc(32),0,32,Number(s),n),u=r?"big":"little",f=new Ze().endianess(u).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=f.parse(c),g=new Ze().endianess(u).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new Ze().array("leafkeys",{length:"cnt",type:new Ze().endianess(u).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new Ze().array("keys",{length:"cnt",type:new Ze().endianess(u).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),b=async v=>{const x=Number(v),A=4+h*(d+p),{buffer:S}=await this.bbi.read(Ne.Buffer.alloc(A),0,A,x,n),E=g.parse(S);if(E.leafkeys){let _;for(let R=0;R<E.leafkeys.length;R+=1){const{key:F}=E.leafkeys[R];if(t.localeCompare(F)<0&&_)return b(_);_=E.leafkeys[R].offset}return b(_)}for(let _=0;_<E.keys.length;_+=1)if(E.keys[_].key===t)return{...E.keys[_],field:l}};return b(Number(s)+32)});return Rre(await Promise.all(o))}async searchExtraIndex(t,n={}){const r=await this.searchExtraIndexBlocks(t,n);if(r.length===0)return[];const i=await this.getUnzoomedView(n),o=r.map(s=>new sr(l=>{i.readFeatures(l,[s],n)}).pipe(oI((l,c)=>l.concat(c)),rI(l=>{for(const c of l)c.field=s.field;return l})));return(await nI(Sre(...o))).filter(s=>{var l;return((l=s.rest)===null||l===void 0?void 0:l.split(" ")[(s.field||0)-3])===t})}}const cI=Object.freeze(Object.defineProperty({__proto__:null,BigBed:Dre,BigWig:Ire},Symbol.toStringTag,{value:"Module"}));function Bre(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function Gl(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,Gl)}Bre(Gl,Error),Gl.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?o(c.parts[f][0])+"-"+o(c.parts[f][1]):o(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 o(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 a(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]=a(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 Fre(e,t){t=t!==void 0?t:{};var n={},r={declaration:T7},i=T7,o="(",a=Je("(",!1),s=")",l=Je(")",!1),c=function(T,V,oe,ae){return{type:T,name:V,comment:oe,fields:ae}},u="simple",f=Je("simple",!1),h="object",d=Je("object",!1),p="table",g=Je("table",!1),b="auto",m=Je("auto",!1),v="primary",x=Je("primary",!1),A="index",S=Je("index",!1),E="unique",_=Je("unique",!1),R=function(T,V){return V},F=function(T,V){return T.name&&V.unshift(T),V},H="#",O=Je("#",!1),Z=";",ne=Je(";",!1),le=function(T,V,oe){return{type:T,name:V,comment:oe}},ie="[",pe=Je("[",!1),ge="]",Ee=Je("]",!1),Re=function(T,V,oe,ae){return{type:T,size:V,name:oe,comment:ae}},M=function(T,V,oe,ae){return{type:T,vals:V,name:oe,comment:ae}},Se=",",Te=Je(",",!1),P=function(T,V){return V.unshift(T),V},ot="int",Me=Je("int",!1),z="uint",$=Je("uint",!1),X="short",q=Je("short",!1),ee="ushort",I=Je("ushort",!1),k="byte",W=Je("byte",!1),K="ubyte",_e=Je("ubyte",!1),de="float",Ce=Je("float",!1),cn="char",ui=Je("char",!1),fi="string",hi=Je("string",!1),Ht="lstring",Fr=Je("lstring",!1),di="enum",un=Je("enum",!1),hr="double",C=Je("double",!1),y="bigint",w=Je("bigint",!1),D="set",N=Je("set",!1),G=function(T,V){return T+" "+V},Y=/^[a-zA-Z_]/,ke=kh([["a","z"],["A","Z"],"_"],!1,!1),et=/^[a-zA-Z0-9_]/,Qe=kh([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),at=function(T){return S7()},Ue=/^[^\n\r]/,ag=kh([`
|
3753
|
+
`):"",this.name="UnsubscriptionError",this.errors=n}});function FT(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var uw=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,o;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var s=Qf(a),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 a.remove(this);var u=this.initialTeardown;if(Dt(u))try{u()}catch(g){o=g instanceof cw?g.errors:[g]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var h=Qf(f),d=h.next();!d.done;d=h.next()){var p=d.value;try{PT(p)}catch(g){o=o??[],g instanceof cw?o=lw(lw([],sw(o)),sw(g.errors)):o.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(o)throw new cw(o)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)PT(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)&&FT(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&FT(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();uw.EMPTY;function MT(e){return e instanceof uw||e&&"closed"in e&&Dt(e.remove)&&Dt(e.add)&&Dt(e.unsubscribe)}function PT(e){Dt(e)?e():e.unsubscribe()}var OT={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},LT={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return setTimeout.apply(void 0,lw([e,t],sw(n)))},clearTimeout:function(e){var t=LT.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function NT(e){LT.setTimeout(function(){throw e})}function zT(){}function Wne(e){e()}var fw=function(e){aw(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,MT(n)&&n.add(r)):r.destination=Xne,r}return t.create=function(n,r,i){return new Wp(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}(uw),Yne=Function.prototype.bind;function hw(e,t){return Yne.call(e,t)}var Zne=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){Yp(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){Yp(r)}else Yp(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){Yp(n)}},e}(),Wp=function(e){aw(t,e);function t(n,r,i){var o=e.call(this)||this,a;if(Dt(n)||!n)a={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;o&&OT.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return o.unsubscribe()},a={next:n.next&&hw(n.next,s),error:n.error&&hw(n.error,s),complete:n.complete&&hw(n.complete,s)}):a=n}return o.destination=new Zne(a),o}return t}(fw);function Yp(e){NT(e)}function Qne(e){throw e}var Xne={closed:!0,next:zT,error:Qne,complete:zT},dw=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function UT(e){return e}function Kne(e){return e.length===0?UT:e.length===1?e[0]:function(n){return e.reduce(function(r,i){return i(r)},n)}}var sr=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,o=ere(t)?t:new Wp(t,n,r);return Wne(function(){var a=i,s=a.operator,l=a.source;o.add(s?s.call(o,l):l?i._subscribe(o):i._trySubscribe(o))}),o},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=$T(n),new n(function(i,o){var a=new Wp({next:function(s){try{t(s)}catch(l){o(l),a.unsubscribe()}},error:o,complete:i});r.subscribe(a)})},e.prototype._subscribe=function(t){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(t)},e.prototype[dw]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return Kne(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=$T(t),new t(function(r,i){var o;n.subscribe(function(a){return o=a},function(a){return i(a)},function(){return r(o)})})},e.create=function(t){return new e(t)},e}();function $T(e){var t;return(t=e??OT.Promise)!==null&&t!==void 0?t:Promise}function Jne(e){return e&&Dt(e.next)&&Dt(e.error)&&Dt(e.complete)}function ere(e){return e&&e instanceof fw||Jne(e)&&MT(e)}function tre(e){return Dt(e==null?void 0:e.lift)}function $l(e){return function(t){if(tre(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 Xf(e,t,n,r,i){return new nre(e,t,n,r,i)}var nre=function(e){aw(t,e);function t(n,r,i,o,a,s){var l=e.call(this,n)||this;return l.onFinalize=a,l.shouldUnsubscribe=s,l._next=r?function(c){try{r(c)}catch(u){n.error(u)}}:e.prototype._next,l._error=o?function(c){try{o(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}(fw),rre=new sr(function(e){return e.complete()});function ire(e){return e&&Dt(e.schedule)}function HT(e){return e[e.length-1]}function ore(e){return ire(HT(e))?e.pop():void 0}function are(e,t){return typeof HT(e)=="number"?e.pop():t}var GT=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function VT(e){return Dt(e==null?void 0:e.then)}function jT(e){return Dt(e[dw])}function qT(e){return Symbol.asyncIterator&&Dt(e==null?void 0:e[Symbol.asyncIterator])}function WT(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 sre(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var YT=sre();function ZT(e){return Dt(e==null?void 0:e[YT])}function QT(e){return jne(this,arguments,function(){var n,r,i,o;return DT(this,function(a){switch(a.label){case 0:n=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,Ul(n.read())];case 3:return r=a.sent(),i=r.value,o=r.done,o?[4,Ul(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,Ul(i)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function XT(e){return Dt(e==null?void 0:e.getReader)}function Hl(e){if(e instanceof sr)return e;if(e!=null){if(jT(e))return lre(e);if(GT(e))return cre(e);if(VT(e))return ure(e);if(qT(e))return KT(e);if(ZT(e))return fre(e);if(XT(e))return hre(e)}throw WT(e)}function lre(e){return new sr(function(t){var n=e[dw]();if(Dt(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function cre(e){return new sr(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function ure(e){return new sr(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,NT)})}function fre(e){return new sr(function(t){var n,r;try{for(var i=Qf(e),o=i.next();!o.done;o=i.next()){var a=o.value;if(t.next(a),t.closed)return}}catch(s){n={error:s}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}t.complete()})}function KT(e){return new sr(function(t){dre(e,t).catch(function(n){return t.error(n)})})}function hre(e){return KT(QT(e))}function dre(e,t){var n,r,i,o;return Vne(this,void 0,void 0,function(){var a,s;return DT(this,function(l){switch(l.label){case 0:l.trys.push([0,5,6,11]),n=qne(e),l.label=1;case 1:return[4,n.next()];case 2:if(r=l.sent(),!!r.done)return[3,4];if(a=r.value,t.next(a),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&&(o=n.return)?[4,o.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 gs(e,t,n,r,i){r===void 0&&(r=0),i===void 0&&(i=!1);var o=t.schedule(function(){n(),i?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(o),!i)return o}function JT(e,t){return t===void 0&&(t=0),$l(function(n,r){n.subscribe(Xf(r,function(i){return gs(r,e,function(){return r.next(i)},t)},function(){return gs(r,e,function(){return r.complete()},t)},function(i){return gs(r,e,function(){return r.error(i)},t)}))})}function eI(e,t){return t===void 0&&(t=0),$l(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function pre(e,t){return Hl(e).pipe(eI(t),JT(t))}function gre(e,t){return Hl(e).pipe(eI(t),JT(t))}function mre(e,t){return new sr(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function bre(e,t){return new sr(function(n){var r;return gs(n,t,function(){r=e[YT](),gs(n,t,function(){var i,o,a;try{i=r.next(),o=i.value,a=i.done}catch(s){n.error(s);return}a?n.complete():n.next(o)},0,!0)}),function(){return Dt(r==null?void 0:r.return)&&r.return()}})}function tI(e,t){if(!e)throw new Error("Iterable cannot be null");return new sr(function(n){gs(n,t,function(){var r=e[Symbol.asyncIterator]();gs(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function yre(e,t){return tI(QT(e),t)}function wre(e,t){if(e!=null){if(jT(e))return pre(e,t);if(GT(e))return mre(e,t);if(VT(e))return gre(e,t);if(qT(e))return tI(e,t);if(ZT(e))return bre(e,t);if(XT(e))return yre(e,t)}throw WT(e)}function vre(e,t){return t?wre(e,t):Hl(e)}var xre=BT(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function nI(e,t){return new Promise(function(n,r){var i=new Wp({next:function(o){n(o),i.unsubscribe()},error:r,complete:function(){r(new xre)}});e.subscribe(i)})}function rI(e,t){return $l(function(n,r){var i=0;n.subscribe(Xf(r,function(o){r.next(e.call(t,o,i++))}))})}function Are(e,t,n,r,i,o,a,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){c++;var b=!1;Hl(n(g,u++)).subscribe(Xf(t,function(m){t.next(m)},function(){b=!0},void 0,function(){if(b)try{c--;for(var m=function(){var v=l.shift();a||p(v)};l.length&&c<r;)m();h()}catch(v){t.error(v)}}))};return e.subscribe(Xf(t,d,function(){f=!0,h()})),function(){}}function iI(e,t,n){return n===void 0&&(n=1/0),Dt(t)?iI(function(r,i){return rI(function(o,a){return t(r,o,i,a)})(Hl(e(r,i)))},n):(typeof t=="number"&&(n=t),$l(function(r,i){return Are(r,i,e,n)}))}function Ere(e){return e===void 0&&(e=1/0),iI(UT,e)}function Sre(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=ore(e),r=are(e,1/0),i=e;return i.length?i.length===1?Hl(i[0]):Ere(r)(vre(i,n)):rre}function _re(e,t,n,r,i){return function(o,a){var s=n,l=t,c=0;o.subscribe(Xf(a,function(u){var f=c++;l=s?e(l,u,f):(s=!0,u)},function(){s&&a.next(l),a.complete()}))}}function oI(e,t){return $l(_re(e,t,arguments.length>=2,!1,!0))}var Cre=function(e,t){return e.push(t),e};function kre(){return $l(function(e,t){oI(Cre,[])(e).subscribe(t)})}const aI=-2003829722,pw=-2021002517;function Tre(e){return new TextDecoder().decode(e)}function sI(e){const t=e?"big":"little",n=new Ye().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 Ye().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new Ye().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new Ye().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),o=new Ye().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:o}}class lI{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=a=>a,path:i,url:o}=t;if(this.renameRefSeqs=r,n)this.bbi=n;else if(o)this.bbi=new Za(o);else if(i)this.bbi=new zt(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(Ne.Buffer.alloc(n),0,n,0,t),i=this._isBigEndian(r),o=sI(i),a=o.headerParser.parse(r),{magic:s,asOffset:l,totalSummaryOffset:c}=a;if(a.fileType=s===pw?"bigbed":"bigwig",l>n||c>n)return this._getMainHeader(t,n*2);if(l){const u=Number(a.asOffset);a.autoSql=Tre(r.subarray(u,r.indexOf(0,u)))}if(a.totalSummaryOffset>n-8*5)return this._getMainHeader(t,n*2);if(a.totalSummaryOffset){const u=r.subarray(Number(a.totalSummaryOffset)),f=o.totalSummaryParser.parse(u);a.totalSummary={...f,basesCovered:Number(f.basesCovered)}}return{...a,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===aI||n===pw)return!1;if(n=t.readInt32BE(0),n===aI||n===pw)return!0;throw new Error("not a BigWig/BigBed file")}async _readChromTree(t,n){const r=t.isBigEndian,i=r?"big":"little",o=[],a={};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(Ne.Buffer.alloc(c),0,c,Number(l),n),f=sI(r),{keySize:h}=f.chromTreeParser.parse(u),d=new Ye().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new Ye().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),g=32,b=async m=>{let v=m;if(v>=u.length)throw new Error("reading beyond end of buffer");const x=f.isLeafNode.parse(u.subarray(v)),{isLeafNode:A,cnt:S}=x;if(v+=x.offset,A)for(let E=0;E<S;E+=1){const _=d.parse(u.subarray(v));v+=_.offset;const{key:R,refId:F,refSize:H}=_,O={name:R,id:F,length:H};a[this.renameRefSeqs(R)]=F,o[F]=O}else{const E=[];for(let _=0;_<S;_+=1){const R=p.parse(u.subarray(v)),{childOffset:F}=R;v+=R.offset,E.push(b(Number(F)-Number(l)))}await Promise.all(E)}};return await b(g),{refsByName:a,refsByNumber:o}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:o,fileType:a}=await this.getHeader(t);return new RT(this.bbi,r,n,o,i>0,a)}async getFeatureStream(t,n,r,i){await this.getHeader(i);const o=this.renameRefSeqs(t);let a;const{basesPerSpan:s,scale:l}=i||{};return s?a=await this.getView(1/s,i):l?a=await this.getView(l,i):a=await this.getView(1,i),new sr(c=>{a.readWigData(o,n,r,c,i)})}async getFeatures(t,n,r,i){const o=await this.getFeatureStream(t,n,r,i);return(await nI(o.pipe(kre()))).flat()}}class Ire extends lI{async getView(t,n){const{zoomLevels:r,refsByName:i,fileSize:o,isBigEndian:a,uncompressBufSize:s}=await this.getHeader(n),l=1/t;let c=r.length;o||(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 RT(this.bbi,i,h,a,s>0,"summary")}}return this.getUnzoomedView(n)}}function Rre(e){return e.filter(t=>!!t)}class Dre extends lI{constructor(){super(...arguments),this.readIndicesCache=new Bp({cache:new Fp({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(Ne.Buffer.alloc(64),0,64,Number(n)),o=r?"big":"little",a=new Ye().endianess(o).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:l}=a;if(s===0)return[];const c=20,u=c*s,{buffer:f}=await this.bbi.read(Ne.Buffer.alloc(u),0,u,Number(l)),h=new Ye().endianess(o).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 o=i.map(async a=>{const{offset:s,field:l}=a,{buffer:c}=await this.bbi.read(Ne.Buffer.alloc(32),0,32,Number(s),n),u=r?"big":"little",f=new Ye().endianess(u).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=f.parse(c),g=new Ye().endianess(u).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new Ye().array("leafkeys",{length:"cnt",type:new Ye().endianess(u).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new Ye().array("keys",{length:"cnt",type:new Ye().endianess(u).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),b=async v=>{const x=Number(v),A=4+h*(d+p),{buffer:S}=await this.bbi.read(Ne.Buffer.alloc(A),0,A,x,n),E=g.parse(S);if(E.leafkeys){let _;for(let R=0;R<E.leafkeys.length;R+=1){const{key:F}=E.leafkeys[R];if(t.localeCompare(F)<0&&_)return b(_);_=E.leafkeys[R].offset}return b(_)}for(let _=0;_<E.keys.length;_+=1)if(E.keys[_].key===t)return{...E.keys[_],field:l}};return b(Number(s)+32)});return Rre(await Promise.all(o))}async searchExtraIndex(t,n={}){const r=await this.searchExtraIndexBlocks(t,n);if(r.length===0)return[];const i=await this.getUnzoomedView(n),o=r.map(s=>new sr(l=>{i.readFeatures(l,[s],n)}).pipe(oI((l,c)=>l.concat(c)),rI(l=>{for(const c of l)c.field=s.field;return l})));return(await nI(Sre(...o))).filter(s=>{var l;return((l=s.rest)===null||l===void 0?void 0:l.split(" ")[(s.field||0)-3])===t})}}const cI=Object.freeze(Object.defineProperty({__proto__:null,BigBed:Dre,BigWig:Ire},Symbol.toStringTag,{value:"Module"}));function Bre(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function Gl(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,Gl)}Bre(Gl,Error),Gl.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?o(c.parts[f][0])+"-"+o(c.parts[f][1]):o(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 o(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 a(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]=a(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 Fre(e,t){t=t!==void 0?t:{};var n={},r={declaration:T7},i=T7,o="(",a=Je("(",!1),s=")",l=Je(")",!1),c=function(T,V,oe,ae){return{type:T,name:V,comment:oe,fields:ae}},u="simple",f=Je("simple",!1),h="object",d=Je("object",!1),p="table",g=Je("table",!1),b="auto",m=Je("auto",!1),v="primary",x=Je("primary",!1),A="index",S=Je("index",!1),E="unique",_=Je("unique",!1),R=function(T,V){return V},F=function(T,V){return T.name&&V.unshift(T),V},H="#",O=Je("#",!1),Z=";",ne=Je(";",!1),le=function(T,V,oe){return{type:T,name:V,comment:oe}},ie="[",pe=Je("[",!1),ge="]",Ee=Je("]",!1),Re=function(T,V,oe,ae){return{type:T,size:V,name:oe,comment:ae}},M=function(T,V,oe,ae){return{type:T,vals:V,name:oe,comment:ae}},Se=",",Te=Je(",",!1),P=function(T,V){return V.unshift(T),V},ot="int",Me=Je("int",!1),z="uint",$=Je("uint",!1),X="short",q=Je("short",!1),ee="ushort",I=Je("ushort",!1),k="byte",W=Je("byte",!1),K="ubyte",_e=Je("ubyte",!1),de="float",Ce=Je("float",!1),cn="char",ui=Je("char",!1),fi="string",hi=Je("string",!1),Ht="lstring",Fr=Je("lstring",!1),di="enum",un=Je("enum",!1),hr="double",C=Je("double",!1),y="bigint",w=Je("bigint",!1),D="set",N=Je("set",!1),G=function(T,V){return T+" "+V},Y=/^[a-zA-Z_]/,ke=kh([["a","z"],["A","Z"],"_"],!1,!1),et=/^[a-zA-Z0-9_]/,Ze=kh([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),at=function(T){return S7()},Ue=/^[^\n\r]/,ag=kh([`
|
3754
3754
|
`,"\r"],!0,!1),Zw=function(T){return T.join("").replace(/^"/,"").replace(/"$/,"")},sg=_7("integer"),lg=/^[0-9]/,cg=kh([["0","9"]],!1,!1),Qw=function(){return parseInt(S7(),10)},te=_7("whitespace"),he=/^[ \t\n\r]/,Xt=kh([" "," ",`
|
3755
|
-
`,"\r"],!1,!1),L=0,st=0,kn=[{line:1,column:1}],At=0,vc=[],me=0,_s;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 S7(){return e.substring(st,L)}function Je(T,V){return{type:"literal",text:T,ignoreCase:V}}function kh(T,V,oe){return{type:"class",parts:T,inverted:V,ignoreCase:oe}}function toe(){return{type:"end"}}function _7(T){return{type:"other",description:T}}function C7(T){var V=kn[T],oe;if(V)return V;for(oe=T-1;!kn[oe];)oe--;for(V=kn[oe],V={line:V.line,column:V.column};oe<T;)e.charCodeAt(oe)===10?(V.line++,V.column=1):V.column++,oe++;return kn[T]=V,V}function k7(T,V){var oe=C7(T),ae=C7(V);return{start:{offset:T,line:oe.line,column:oe.column},end:{offset:V,line:ae.line,column:ae.column}}}function xe(T){L<At||(L>At&&(At=L,vc=[]),vc.push(T))}function noe(T,V,oe){return new Gl(Gl.buildMessage(T,V),T,V,oe)}function T7(){var T,V,oe,ae,be,lt,bt,dr,Jo,Zi,ea,Qi,ta,Xi;return T=L,V=Pe(),V!==n?(oe=I7(),oe!==n?(ae=Pe(),ae!==n?(be=R7(),be!==n?(lt=Pe(),lt!==n?(bt=ug(),bt!==n?(dr=Pe(),dr!==n?(e.charCodeAt(L)===40?(Jo=o,L++):(Jo=n,me===0&&xe(a)),Jo!==n?(Zi=Pe(),Zi!==n?(ea=roe(),ea!==n?(Qi=Pe(),Qi!==n?(e.charCodeAt(L)===41?(ta=s,L++):(ta=n,me===0&&xe(l)),ta!==n?(Xi=Pe(),Xi!==n?(st=T,V=c(oe,be,bt,ea),T=V):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n),T}function I7(){var T;return e.substr(L,6)===u?(T=u,L+=6):(T=n,me===0&&xe(f)),T===n&&(e.substr(L,6)===h?(T=h,L+=6):(T=n,me===0&&xe(d)),T===n&&(e.substr(L,5)===p?(T=p,L+=5):(T=n,me===0&&xe(g)))),T}function R7(){var T,V,oe,ae;return T=Mr(),T===n&&(T=L,V=Mr(),V!==n?(oe=D7(),oe!==n?(V=[V,oe],T=V):(L=T,T=n)):(L=T,T=n),T===n&&(T=L,V=Mr(),V!==n?(e.substr(L,4)===b?(oe=b,L+=4):(oe=n,me===0&&xe(m)),oe!==n?(V=[V,oe],T=V):(L=T,T=n)):(L=T,T=n),T===n&&(T=L,V=Mr(),V!==n?(oe=D7(),oe!==n?(e.substr(L,4)===b?(ae=b,L+=4):(ae=n,me===0&&xe(m)),ae!==n?(V=[V,oe,ae],T=V):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)))),T}function D7(){var T;return e.substr(L,7)===v?(T=v,L+=7):(T=n,me===0&&xe(x)),T===n&&(e.substr(L,5)===A?(T=A,L+=5):(T=n,me===0&&xe(S)),T===n&&(e.substr(L,6)===E?(T=E,L+=6):(T=n,me===0&&xe(_)))),T}function ug(){var T;return T=B7(),T===n&&(T=Pe()),T}function roe(){var T,V,oe,ae,be,lt,bt;if(T=L,V=Xw(),V!==n)if(oe=Pe(),oe!==n){for(ae=[],be=L,lt=Pe(),lt!==n?(bt=Xw(),bt!==n?(st=be,lt=R(V,bt),be=lt):(L=be,be=n)):(L=be,be=n);be!==n;)ae.push(be),be=L,lt=Pe(),lt!==n?(bt=Xw(),bt!==n?(st=be,lt=R(V,bt),be=lt):(L=be,be=n)):(L=be,be=n);ae!==n?(be=Pe(),be!==n?(st=T,V=F(V,ae),T=V):(L=T,T=n)):(L=T,T=n)}else L=T,T=n;else L=T,T=n;return T}function ioe(){var T;return e.charCodeAt(L)===35?(T=H,L++):(T=n,me===0&&xe(O)),T}function ooe(){var T,V,oe,ae,be;return T=L,V=Pe(),V!==n?(oe=ioe(),oe!==n?(ae=B7(),ae!==n?(be=Pe(),be!==n?(V=[V,oe,ae,be],T=V):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n),T}function Xw(){var T,V,oe,ae,be,lt,bt,dr,Jo,Zi,ea,Qi,ta,Xi;return T=L,V=Kw(),V!==n?(oe=Pe(),oe!==n?(ae=Mr(),ae!==n?(be=Pe(),be!==n?(e.charCodeAt(L)===59?(lt=Z,L++):(lt=n,me===0&&xe(ne)),lt!==n?(bt=Pe(),bt!==n?(dr=ug(),dr!==n?(st=T,V=le(V,ae,dr),T=V):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n),T===n&&(T=L,V=Kw(),V!==n?(oe=Pe(),oe!==n?(e.charCodeAt(L)===91?(ae=ie,L++):(ae=n,me===0&&xe(pe)),ae!==n?(be=Pe(),be!==n?(lt=soe(),lt!==n?(bt=Pe(),bt!==n?(e.charCodeAt(L)===93?(dr=ge,L++):(dr=n,me===0&&xe(Ee)),dr!==n?(Jo=Pe(),Jo!==n?(Zi=Mr(),Zi!==n?(ea=Pe(),ea!==n?(e.charCodeAt(L)===59?(Qi=Z,L++):(Qi=n,me===0&&xe(ne)),Qi!==n?(ta=Pe(),ta!==n?(Xi=ug(),Xi!==n?(st=T,V=Re(V,lt,Zi,Xi),T=V):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n),T===n&&(T=L,V=Kw(),V!==n?(oe=Pe(),oe!==n?(e.charCodeAt(L)===40?(ae=o,L++):(ae=n,me===0&&xe(a)),ae!==n?(be=Pe(),be!==n?(lt=aoe(),lt!==n?(bt=Pe(),bt!==n?(e.charCodeAt(L)===41?(dr=s,L++):(dr=n,me===0&&xe(l)),dr!==n?(Jo=Pe(),Jo!==n?(Zi=Mr(),Zi!==n?(ea=Pe(),ea!==n?(e.charCodeAt(L)===59?(Qi=Z,L++):(Qi=n,me===0&&xe(ne)),Qi!==n?(ta=Pe(),ta!==n?(Xi=ug(),Xi!==n?(st=T,V=M(V,lt,Zi,Xi),T=V):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n),T===n&&(T=ooe()))),T}function aoe(){var T,V,oe,ae,be,lt,bt;if(T=L,V=Mr(),V!==n){for(oe=[],ae=L,e.charCodeAt(L)===44?(be=Se,L++):(be=n,me===0&&xe(Te)),be!==n?(lt=Pe(),lt!==n?(bt=Mr(),bt!==n?(st=ae,be=R(V,bt),ae=be):(L=ae,ae=n)):(L=ae,ae=n)):(L=ae,ae=n);ae!==n;)oe.push(ae),ae=L,e.charCodeAt(L)===44?(be=Se,L++):(be=n,me===0&&xe(Te)),be!==n?(lt=Pe(),lt!==n?(bt=Mr(),bt!==n?(st=ae,be=R(V,bt),ae=be):(L=ae,ae=n)):(L=ae,ae=n)):(L=ae,ae=n);oe!==n?(st=T,V=P(V,oe),T=V):(L=T,T=n)}else L=T,T=n;return T}function Kw(){var T,V,oe,ae;return e.substr(L,3)===ot?(T=ot,L+=3):(T=n,me===0&&xe(Me)),T===n&&(e.substr(L,4)===z?(T=z,L+=4):(T=n,me===0&&xe($)),T===n&&(e.substr(L,5)===X?(T=X,L+=5):(T=n,me===0&&xe(q)),T===n&&(e.substr(L,6)===ee?(T=ee,L+=6):(T=n,me===0&&xe(I)),T===n&&(e.substr(L,4)===k?(T=k,L+=4):(T=n,me===0&&xe(W)),T===n&&(e.substr(L,5)===K?(T=K,L+=5):(T=n,me===0&&xe(_e)),T===n&&(e.substr(L,5)===de?(T=de,L+=5):(T=n,me===0&&xe(Ce)),T===n&&(e.substr(L,4)===cn?(T=cn,L+=4):(T=n,me===0&&xe(ui)),T===n&&(e.substr(L,6)===fi?(T=fi,L+=6):(T=n,me===0&&xe(hi)),T===n&&(e.substr(L,7)===Ht?(T=Ht,L+=7):(T=n,me===0&&xe(Fr)),T===n&&(e.substr(L,4)===di?(T=di,L+=4):(T=n,me===0&&xe(un)),T===n&&(e.substr(L,6)===hr?(T=hr,L+=6):(T=n,me===0&&xe(C)),T===n&&(e.substr(L,6)===y?(T=y,L+=6):(T=n,me===0&&xe(w)),T===n&&(e.substr(L,3)===D?(T=D,L+=3):(T=n,me===0&&xe(N)),T===n&&(T=L,V=I7(),V!==n?(oe=Pe(),oe!==n?(ae=R7(),ae!==n?(st=T,V=G(V,ae),T=V):(L=T,T=n)):(L=T,T=n)):(L=T,T=n))))))))))))))),T}function soe(){var T;return T=loe(),T===n&&(T=Mr()),T}function Mr(){var T,V,oe,ae,be;if(T=L,V=L,Y.test(e.charAt(L))?(oe=e.charAt(L),L++):(oe=n,me===0&&xe(ke)),oe!==n){for(ae=[],et.test(e.charAt(L))?(be=e.charAt(L),L++):(be=n,me===0&&xe(
|
3755
|
+
`,"\r"],!1,!1),L=0,st=0,kn=[{line:1,column:1}],At=0,vc=[],me=0,_s;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 S7(){return e.substring(st,L)}function Je(T,V){return{type:"literal",text:T,ignoreCase:V}}function kh(T,V,oe){return{type:"class",parts:T,inverted:V,ignoreCase:oe}}function toe(){return{type:"end"}}function _7(T){return{type:"other",description:T}}function C7(T){var V=kn[T],oe;if(V)return V;for(oe=T-1;!kn[oe];)oe--;for(V=kn[oe],V={line:V.line,column:V.column};oe<T;)e.charCodeAt(oe)===10?(V.line++,V.column=1):V.column++,oe++;return kn[T]=V,V}function k7(T,V){var oe=C7(T),ae=C7(V);return{start:{offset:T,line:oe.line,column:oe.column},end:{offset:V,line:ae.line,column:ae.column}}}function xe(T){L<At||(L>At&&(At=L,vc=[]),vc.push(T))}function noe(T,V,oe){return new Gl(Gl.buildMessage(T,V),T,V,oe)}function T7(){var T,V,oe,ae,be,lt,bt,dr,Jo,Zi,ea,Qi,ta,Xi;return T=L,V=Pe(),V!==n?(oe=I7(),oe!==n?(ae=Pe(),ae!==n?(be=R7(),be!==n?(lt=Pe(),lt!==n?(bt=ug(),bt!==n?(dr=Pe(),dr!==n?(e.charCodeAt(L)===40?(Jo=o,L++):(Jo=n,me===0&&xe(a)),Jo!==n?(Zi=Pe(),Zi!==n?(ea=roe(),ea!==n?(Qi=Pe(),Qi!==n?(e.charCodeAt(L)===41?(ta=s,L++):(ta=n,me===0&&xe(l)),ta!==n?(Xi=Pe(),Xi!==n?(st=T,V=c(oe,be,bt,ea),T=V):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n),T}function I7(){var T;return e.substr(L,6)===u?(T=u,L+=6):(T=n,me===0&&xe(f)),T===n&&(e.substr(L,6)===h?(T=h,L+=6):(T=n,me===0&&xe(d)),T===n&&(e.substr(L,5)===p?(T=p,L+=5):(T=n,me===0&&xe(g)))),T}function R7(){var T,V,oe,ae;return T=Mr(),T===n&&(T=L,V=Mr(),V!==n?(oe=D7(),oe!==n?(V=[V,oe],T=V):(L=T,T=n)):(L=T,T=n),T===n&&(T=L,V=Mr(),V!==n?(e.substr(L,4)===b?(oe=b,L+=4):(oe=n,me===0&&xe(m)),oe!==n?(V=[V,oe],T=V):(L=T,T=n)):(L=T,T=n),T===n&&(T=L,V=Mr(),V!==n?(oe=D7(),oe!==n?(e.substr(L,4)===b?(ae=b,L+=4):(ae=n,me===0&&xe(m)),ae!==n?(V=[V,oe,ae],T=V):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)))),T}function D7(){var T;return e.substr(L,7)===v?(T=v,L+=7):(T=n,me===0&&xe(x)),T===n&&(e.substr(L,5)===A?(T=A,L+=5):(T=n,me===0&&xe(S)),T===n&&(e.substr(L,6)===E?(T=E,L+=6):(T=n,me===0&&xe(_)))),T}function ug(){var T;return T=B7(),T===n&&(T=Pe()),T}function roe(){var T,V,oe,ae,be,lt,bt;if(T=L,V=Xw(),V!==n)if(oe=Pe(),oe!==n){for(ae=[],be=L,lt=Pe(),lt!==n?(bt=Xw(),bt!==n?(st=be,lt=R(V,bt),be=lt):(L=be,be=n)):(L=be,be=n);be!==n;)ae.push(be),be=L,lt=Pe(),lt!==n?(bt=Xw(),bt!==n?(st=be,lt=R(V,bt),be=lt):(L=be,be=n)):(L=be,be=n);ae!==n?(be=Pe(),be!==n?(st=T,V=F(V,ae),T=V):(L=T,T=n)):(L=T,T=n)}else L=T,T=n;else L=T,T=n;return T}function ioe(){var T;return e.charCodeAt(L)===35?(T=H,L++):(T=n,me===0&&xe(O)),T}function ooe(){var T,V,oe,ae,be;return T=L,V=Pe(),V!==n?(oe=ioe(),oe!==n?(ae=B7(),ae!==n?(be=Pe(),be!==n?(V=[V,oe,ae,be],T=V):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n),T}function Xw(){var T,V,oe,ae,be,lt,bt,dr,Jo,Zi,ea,Qi,ta,Xi;return T=L,V=Kw(),V!==n?(oe=Pe(),oe!==n?(ae=Mr(),ae!==n?(be=Pe(),be!==n?(e.charCodeAt(L)===59?(lt=Z,L++):(lt=n,me===0&&xe(ne)),lt!==n?(bt=Pe(),bt!==n?(dr=ug(),dr!==n?(st=T,V=le(V,ae,dr),T=V):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n),T===n&&(T=L,V=Kw(),V!==n?(oe=Pe(),oe!==n?(e.charCodeAt(L)===91?(ae=ie,L++):(ae=n,me===0&&xe(pe)),ae!==n?(be=Pe(),be!==n?(lt=soe(),lt!==n?(bt=Pe(),bt!==n?(e.charCodeAt(L)===93?(dr=ge,L++):(dr=n,me===0&&xe(Ee)),dr!==n?(Jo=Pe(),Jo!==n?(Zi=Mr(),Zi!==n?(ea=Pe(),ea!==n?(e.charCodeAt(L)===59?(Qi=Z,L++):(Qi=n,me===0&&xe(ne)),Qi!==n?(ta=Pe(),ta!==n?(Xi=ug(),Xi!==n?(st=T,V=Re(V,lt,Zi,Xi),T=V):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n),T===n&&(T=L,V=Kw(),V!==n?(oe=Pe(),oe!==n?(e.charCodeAt(L)===40?(ae=o,L++):(ae=n,me===0&&xe(a)),ae!==n?(be=Pe(),be!==n?(lt=aoe(),lt!==n?(bt=Pe(),bt!==n?(e.charCodeAt(L)===41?(dr=s,L++):(dr=n,me===0&&xe(l)),dr!==n?(Jo=Pe(),Jo!==n?(Zi=Mr(),Zi!==n?(ea=Pe(),ea!==n?(e.charCodeAt(L)===59?(Qi=Z,L++):(Qi=n,me===0&&xe(ne)),Qi!==n?(ta=Pe(),ta!==n?(Xi=ug(),Xi!==n?(st=T,V=M(V,lt,Zi,Xi),T=V):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n)):(L=T,T=n),T===n&&(T=ooe()))),T}function aoe(){var T,V,oe,ae,be,lt,bt;if(T=L,V=Mr(),V!==n){for(oe=[],ae=L,e.charCodeAt(L)===44?(be=Se,L++):(be=n,me===0&&xe(Te)),be!==n?(lt=Pe(),lt!==n?(bt=Mr(),bt!==n?(st=ae,be=R(V,bt),ae=be):(L=ae,ae=n)):(L=ae,ae=n)):(L=ae,ae=n);ae!==n;)oe.push(ae),ae=L,e.charCodeAt(L)===44?(be=Se,L++):(be=n,me===0&&xe(Te)),be!==n?(lt=Pe(),lt!==n?(bt=Mr(),bt!==n?(st=ae,be=R(V,bt),ae=be):(L=ae,ae=n)):(L=ae,ae=n)):(L=ae,ae=n);oe!==n?(st=T,V=P(V,oe),T=V):(L=T,T=n)}else L=T,T=n;return T}function Kw(){var T,V,oe,ae;return e.substr(L,3)===ot?(T=ot,L+=3):(T=n,me===0&&xe(Me)),T===n&&(e.substr(L,4)===z?(T=z,L+=4):(T=n,me===0&&xe($)),T===n&&(e.substr(L,5)===X?(T=X,L+=5):(T=n,me===0&&xe(q)),T===n&&(e.substr(L,6)===ee?(T=ee,L+=6):(T=n,me===0&&xe(I)),T===n&&(e.substr(L,4)===k?(T=k,L+=4):(T=n,me===0&&xe(W)),T===n&&(e.substr(L,5)===K?(T=K,L+=5):(T=n,me===0&&xe(_e)),T===n&&(e.substr(L,5)===de?(T=de,L+=5):(T=n,me===0&&xe(Ce)),T===n&&(e.substr(L,4)===cn?(T=cn,L+=4):(T=n,me===0&&xe(ui)),T===n&&(e.substr(L,6)===fi?(T=fi,L+=6):(T=n,me===0&&xe(hi)),T===n&&(e.substr(L,7)===Ht?(T=Ht,L+=7):(T=n,me===0&&xe(Fr)),T===n&&(e.substr(L,4)===di?(T=di,L+=4):(T=n,me===0&&xe(un)),T===n&&(e.substr(L,6)===hr?(T=hr,L+=6):(T=n,me===0&&xe(C)),T===n&&(e.substr(L,6)===y?(T=y,L+=6):(T=n,me===0&&xe(w)),T===n&&(e.substr(L,3)===D?(T=D,L+=3):(T=n,me===0&&xe(N)),T===n&&(T=L,V=I7(),V!==n?(oe=Pe(),oe!==n?(ae=R7(),ae!==n?(st=T,V=G(V,ae),T=V):(L=T,T=n)):(L=T,T=n)):(L=T,T=n))))))))))))))),T}function soe(){var T;return T=loe(),T===n&&(T=Mr()),T}function Mr(){var T,V,oe,ae,be;if(T=L,V=L,Y.test(e.charAt(L))?(oe=e.charAt(L),L++):(oe=n,me===0&&xe(ke)),oe!==n){for(ae=[],et.test(e.charAt(L))?(be=e.charAt(L),L++):(be=n,me===0&&xe(Ze));be!==n;)ae.push(be),et.test(e.charAt(L))?(be=e.charAt(L),L++):(be=n,me===0&&xe(Ze));ae!==n?(oe=[oe,ae],V=oe):(L=V,V=n)}else L=V,V=n;return V!==n&&(st=T,V=at()),T=V,T}function B7(){var T,V,oe;for(T=L,V=[],Ue.test(e.charAt(L))?(oe=e.charAt(L),L++):(oe=n,me===0&&xe(ag));oe!==n;)V.push(oe),Ue.test(e.charAt(L))?(oe=e.charAt(L),L++):(oe=n,me===0&&xe(ag));return V!==n&&(st=T,V=Zw(V)),T=V,T}function loe(){var T,V,oe,ae;if(me++,T=L,V=Pe(),V!==n){if(oe=[],lg.test(e.charAt(L))?(ae=e.charAt(L),L++):(ae=n,me===0&&xe(cg)),ae!==n)for(;ae!==n;)oe.push(ae),lg.test(e.charAt(L))?(ae=e.charAt(L),L++):(ae=n,me===0&&xe(cg));else oe=n;oe!==n?(st=T,V=Qw(),T=V):(L=T,T=n)}else L=T,T=n;return me--,T===n&&(V=n,me===0&&xe(sg)),T}function Pe(){var T,V;for(me++,T=[],he.test(e.charAt(L))?(V=e.charAt(L),L++):(V=n,me===0&&xe(Xt));V!==n;)T.push(V),he.test(e.charAt(L))?(V=e.charAt(L),L++):(V=n,me===0&&xe(Xt));return me--,T===n&&(V=n,me===0&&xe(te)),T}if(_s=i(),_s!==n&&L===e.length)return _s;throw _s!==n&&L<e.length&&xe(toe()),noe(vc,At<e.length?e.charAt(At):null,At<e.length?k7(At,At+1):k7(At,At))}var uI={SyntaxError:Gl,parse:Fre};const Mre=op(uI),gw=Object.fromEntries(Object.entries(Object.freeze(Object.defineProperty({__proto__:null,bigChain:`table bigChain
|
3756
3756
|
"bigChain pairwise alignment"
|
3757
3757
|
(
|
3758
3758
|
string chrom; "Reference sequence chromosome or scaffold"
|