@genome-spy/core 0.42.2 → 0.43.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/bundle/{index-d7k3kkin.js → index-noY1e-G6.js} +365 -361
  2. package/dist/bundle/index.es.js +3348 -3223
  3. package/dist/bundle/index.js +89 -84
  4. package/dist/schema.json +251 -1
  5. package/dist/src/data/collector.d.ts.map +1 -1
  6. package/dist/src/data/collector.js +28 -2
  7. package/dist/src/data/sources/dataSourceFactory.d.ts +7 -7
  8. package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -1
  9. package/dist/src/data/sources/dataSourceFactory.js +9 -9
  10. package/dist/src/data/sources/{dynamic → lazy}/README.md +2 -2
  11. package/dist/src/data/sources/lazy/axisGenomeSource.d.ts.map +1 -0
  12. package/dist/src/data/sources/lazy/axisTickSource.d.ts.map +1 -0
  13. package/dist/src/data/sources/lazy/bamSource.d.ts.map +1 -0
  14. package/dist/src/data/sources/{dynamic → lazy}/bigBedSource.d.ts +6 -0
  15. package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -0
  16. package/dist/src/data/sources/lazy/bigBedSource.js +206 -0
  17. package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -0
  18. package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -0
  19. package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -0
  20. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -0
  21. package/dist/src/data/sources/{dynamic → lazy}/singleAxisLazySource.js +3 -3
  22. package/dist/src/data/sources/lazy/singleAxisWindowedSource.d.ts.map +1 -0
  23. package/dist/src/data/sources/lazy/tabixSource.d.ts.map +1 -0
  24. package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
  25. package/dist/src/data/transforms/regexFold.js +6 -8
  26. package/dist/src/encoder/encoder.d.ts +1 -1
  27. package/dist/src/encoder/encoder.d.ts.map +1 -1
  28. package/dist/src/gl/arrayBuilder.d.ts +11 -5
  29. package/dist/src/gl/arrayBuilder.d.ts.map +1 -1
  30. package/dist/src/gl/arrayBuilder.js +77 -40
  31. package/dist/src/gl/dataToVertices.d.ts +3 -2
  32. package/dist/src/gl/dataToVertices.d.ts.map +1 -1
  33. package/dist/src/gl/dataToVertices.js +52 -17
  34. package/dist/src/gl/glslScaleGenerator.d.ts +12 -0
  35. package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
  36. package/dist/src/gl/glslScaleGenerator.js +38 -4
  37. package/dist/src/gl/includes/scales.glsl.js +1 -1
  38. package/dist/src/marks/link.d.ts.map +1 -1
  39. package/dist/src/marks/link.js +2 -1
  40. package/dist/src/marks/mark.d.ts.map +1 -1
  41. package/dist/src/marks/mark.js +9 -1
  42. package/dist/src/spec/channel.d.ts +14 -1
  43. package/dist/src/view/flowBuilder.d.ts.map +1 -1
  44. package/dist/src/view/flowBuilder.js +11 -4
  45. package/dist/src/view/unitView.d.ts +1 -1
  46. package/dist/src/view/unitView.d.ts.map +1 -1
  47. package/package.json +3 -3
  48. package/dist/src/data/sources/dynamic/axisGenomeSource.d.ts.map +0 -1
  49. package/dist/src/data/sources/dynamic/axisTickSource.d.ts.map +0 -1
  50. package/dist/src/data/sources/dynamic/bamSource.d.ts.map +0 -1
  51. package/dist/src/data/sources/dynamic/bigBedSource.d.ts.map +0 -1
  52. package/dist/src/data/sources/dynamic/bigBedSource.js +0 -84
  53. package/dist/src/data/sources/dynamic/bigWigSource.d.ts.map +0 -1
  54. package/dist/src/data/sources/dynamic/gff3Source.d.ts.map +0 -1
  55. package/dist/src/data/sources/dynamic/indexedFastaSource.d.ts.map +0 -1
  56. package/dist/src/data/sources/dynamic/singleAxisLazySource.d.ts.map +0 -1
  57. package/dist/src/data/sources/dynamic/singleAxisWindowedSource.d.ts.map +0 -1
  58. package/dist/src/data/sources/dynamic/tabixSource.d.ts.map +0 -1
  59. /package/dist/src/data/sources/{dynamic → lazy}/axisGenomeSource.d.ts +0 -0
  60. /package/dist/src/data/sources/{dynamic → lazy}/axisGenomeSource.js +0 -0
  61. /package/dist/src/data/sources/{dynamic → lazy}/axisTickSource.d.ts +0 -0
  62. /package/dist/src/data/sources/{dynamic → lazy}/axisTickSource.js +0 -0
  63. /package/dist/src/data/sources/{dynamic → lazy}/bamSource.d.ts +0 -0
  64. /package/dist/src/data/sources/{dynamic → lazy}/bamSource.js +0 -0
  65. /package/dist/src/data/sources/{dynamic → lazy}/bigWigSource.d.ts +0 -0
  66. /package/dist/src/data/sources/{dynamic → lazy}/bigWigSource.js +0 -0
  67. /package/dist/src/data/sources/{dynamic → lazy}/gff3Source.d.ts +0 -0
  68. /package/dist/src/data/sources/{dynamic → lazy}/gff3Source.js +0 -0
  69. /package/dist/src/data/sources/{dynamic → lazy}/indexedFastaSource.d.ts +0 -0
  70. /package/dist/src/data/sources/{dynamic → lazy}/indexedFastaSource.js +0 -0
  71. /package/dist/src/data/sources/{dynamic → lazy}/singleAxisLazySource.d.ts +0 -0
  72. /package/dist/src/data/sources/{dynamic → lazy}/singleAxisWindowedSource.d.ts +0 -0
  73. /package/dist/src/data/sources/{dynamic → lazy}/singleAxisWindowedSource.js +0 -0
  74. /package/dist/src/data/sources/{dynamic → lazy}/tabixSource.d.ts +0 -0
  75. /package/dist/src/data/sources/{dynamic → lazy}/tabixSource.js +0 -0
@@ -1,23 +1,23 @@
1
- (function(ce,ve){typeof exports=="object"&&typeof module<"u"?ve(exports):typeof define=="function"&&define.amd?define(["exports"],ve):(ce=typeof globalThis<"u"?globalThis:ce||self,ve(ce.genomeSpyEmbed={}))})(this,function(ce){"use strict";var Dz=Object.defineProperty;var Fz=(ce,ve,Ce)=>ve in ce?Dz(ce,ve,{enumerable:!0,configurable:!0,writable:!0,value:Ce}):ce[ve]=Ce;var Kn=(ce,ve,Ce)=>(Fz(ce,typeof ve!="symbol"?ve+"":ve,Ce),Ce),Mg=(ce,ve,Ce)=>{if(!ve.has(ce))throw TypeError("Cannot "+Ce)};var W=(ce,ve,Ce)=>(Mg(ce,ve,"read from private field"),Ce?Ce.call(ce):ve.get(ce)),re=(ce,ve,Ce)=>{if(ve.has(ce))throw TypeError("Cannot add the same private member more than once");ve instanceof WeakSet?ve.add(ce):ve.set(ce,Ce)},Je=(ce,ve,Ce,Ao)=>(Mg(ce,ve,"write to private field"),Ao?Ao.call(ce,Ce):ve.set(ce,Ce),Ce);var r_=(ce,ve,Ce,Ao)=>({set _(au){Je(ce,ve,au,Ce)},get _(){return W(ce,ve,Ao)}}),te=(ce,ve,Ce)=>(Mg(ce,ve,"access private method"),Ce);var Gl,Pg,Hl,Lg,Vl,Ng,Ta,jl,ql,po,iu,Zl,Og,pr,Ia,vt,Qn,gi,Fc,i_,Ba,Uc,gr,vo,Wl,zg,Rc,o_,Bg,Rz,Yl,Ug,Da,Ql,Fa,Ra,go,Xl,$l,Kl,mr,Ma,Pa,Kt,mo,La,br,xo,Mc,a_,bo,ou,Jl,Gg,eu,Hg,tu,Vg,Pc,s_,Na,Gc,Lc,l_,Oa,za,yo,nu,wo;function ve(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 Ce(e,t,n){return e.fields=t||[],e.fname=n,e}function Ao(e){return e==null?null:e.fname}function au(e){return e==null?null:e.fields}function u_(e){return e.length===1?f_(e[0]):c_(e)}const f_=e=>function(t){return t[e]},c_=e=>{const t=e.length;return function(n){for(let r=0;r<t;++r)n=n[e[r]];return n}};function Qe(e){throw Error(e)}function h_(e){const t=[],n=e.length;let r=null,i=0,o="",a,s,u;e=e+"";function l(){t.push(o+e.substring(a,s)),o="",a=s+1}for(a=s=0;s<n;++s)if(u=e[s],u==="\\")o+=e.substring(a,s),o+=e.substring(++s,++s),a=s;else if(u===r)l(),r=null,i=-1;else{if(r)continue;a===i&&u==='"'||a===i&&u==="'"?(a=s+1,r=u):u==="."&&!i?s>a?l():a=s+1:u==="["?(s>a&&l(),i=a=s+1):u==="]"&&(i||Qe("Access path missing open bracket: "+e),i>0&&l(),i=0,a=s+1)}return i&&Qe("Access path missing closing bracket: "+e),r&&Qe("Access path missing closing quote: "+e),s>a&&(s++,l()),t}function su(e,t,n){const r=h_(e);return e=r.length===1?r[0]:e,Ce((n&&n.get||u_)(r),[e],t||e)}su("id");const lu=Ce(e=>e,[],"identity");Ce(()=>0,[],"zero"),Ce(()=>1,[],"one"),Ce(()=>!0,[],"true"),Ce(()=>!1,[],"false");var Ft=Array.isArray;function Rt(e){return e===Object(e)}function gn(e){return e[e.length-1]}function Ua(e){return e==null||e===""?null:+e}const jg=e=>t=>e*Math.exp(t),qg=e=>t=>Math.log(e*t),d_=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),p_=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,uu=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function Hc(e,t,n,r){const i=n(e[0]),o=n(gn(e)),a=(o-i)*t;return[r(i-a),r(o-a)]}function g_(e,t){return Hc(e,t,Ua,lu)}function m_(e,t){var n=Math.sign(e[0]);return Hc(e,t,qg(n),jg(n))}function b_(e,t,n){return Hc(e,t,uu(n),uu(1/n))}function fu(e,t,n,r,i){const o=r(e[0]),a=r(gn(e)),s=t!=null?r(t):(o+a)/2;return[i(s+(o-s)*n),i(s+(a-s)*n)]}function Zg(e,t,n){return fu(e,t,n,Ua,lu)}function Wg(e,t,n){const r=Math.sign(e[0]);return fu(e,t,n,qg(r),jg(r))}function Vc(e,t,n,r){return fu(e,t,n,uu(r),uu(1/r))}function y_(e,t,n,r){return fu(e,t,n,d_(r),p_(r))}function jc(e){return e!=null?Ft(e)?e:[e]:[]}function w_(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 Mt(e){return typeof e=="function"}const v_="descending";function Yg(e,t,n){n=n||{},t=jc(t)||[];const r=[],i=[],o={},a=n.comparator||x_;return jc(e).forEach((s,u)=>{s!=null&&(r.push(t[u]===v_?-1:1),i.push(s=Mt(s)?s:su(s,null,n)),(au(s)||[]).forEach(l=>o[l]=1))}),i.length===0?null:Ce(a(i,r),Object.keys(o))}const Qg=(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),x_=(e,t)=>e.length===1?A_(e[0],t[0]):E_(e,t,e.length),A_=(e,t)=>function(n,r){return Qg(e(n),e(r))*t},E_=(e,t,n)=>(t.push(0),function(r,i){let o,a=0,s=-1;for(;a===0&&++s<n;)o=e[s],a=Qg(o(r),o(i));return a*t[s]});function __(e){return Mt(e)?e:()=>e}function qc(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 S_=Object.prototype.hasOwnProperty;function mi(e,t){return S_.call(e,t)}function Ga(e){return typeof e=="boolean"}function C_(e){return Object.prototype.toString.call(e)==="[object Date]"}function k_(e){return e&&Mt(e[Symbol.iterator])}function Ct(e){return typeof e=="number"}function T_(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function Pe(e){return typeof e=="string"}function Xg(e,t){const n=e[0],r=gn(e),i=+t;return i?i===1?r:n+i*(r-n):n}function cu(e){return e&&gn(e)-e[0]||0}function hu(e){return Ft(e)?"["+e.map(hu)+"]":Rt(e)||Pe(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function I_(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const B_=e=>Ct(e)||C_(e)?e:Date.parse(e);function D_(e,t){return t=t||B_,e==null||e===""?null:t(e)}function F_(e){return e==null||e===""?null:e+""}function du(e){const t={},n=e.length;for(let r=0;r<n;++r)t[e[r]]=!0;return t}var $g={},Zc={},Wc=34,Ha=10,Yc=13;function Kg(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function R_(e,t){var n=Kg(e);return function(r,i){return t(n(r),i,e)}}function Jg(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 Pt(e,t){var n=e+"",r=n.length;return r<t?new Array(t-r+1).join(0)+n:n}function M_(e){return e<0?"-"+Pt(-e,6):e>9999?"+"+Pt(e,6):Pt(e,4)}function P_(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":M_(e.getUTCFullYear())+"-"+Pt(e.getUTCMonth()+1,2)+"-"+Pt(e.getUTCDate(),2)+(i?"T"+Pt(t,2)+":"+Pt(n,2)+":"+Pt(r,2)+"."+Pt(i,3)+"Z":r?"T"+Pt(t,2)+":"+Pt(n,2)+":"+Pt(r,2)+"Z":n||t?"T"+Pt(t,2)+":"+Pt(n,2)+"Z":"")}function em(e){var t=new RegExp('["'+e+`
2
- \r]`),n=e.charCodeAt(0);function r(c,h){var d,p,b=i(c,function(y,w){if(d)return d(y,w-1);p=y,d=h?R_(y,h):Kg(y)});return b.columns=p||[],b}function i(c,h){var d=[],p=c.length,b=0,y=0,w,_=p<=0,C=!1;c.charCodeAt(p-1)===Ha&&--p,c.charCodeAt(p-1)===Yc&&--p;function E(){if(_)return Zc;if(C)return C=!1,$g;var B,I=b,R;if(c.charCodeAt(I)===Wc){for(;b++<p&&c.charCodeAt(b)!==Wc||c.charCodeAt(++b)===Wc;);return(B=b)>=p?_=!0:(R=c.charCodeAt(b++))===Ha?C=!0:R===Yc&&(C=!0,c.charCodeAt(b)===Ha&&++b),c.slice(I+1,B-1).replace(/""/g,'"')}for(;b<p;){if((R=c.charCodeAt(B=b++))===Ha)C=!0;else if(R===Yc)C=!0,c.charCodeAt(b)===Ha&&++b;else if(R!==n)continue;return c.slice(I,B)}return _=!0,c.slice(I,p)}for(;(w=E())!==Zc;){for(var T=[];w!==$g&&w!==Zc;)T.push(w),w=E();h&&(T=h(T,y++))==null||d.push(T)}return d}function o(c,h){return c.map(function(d){return h.map(function(p){return f(d[p])}).join(e)})}function a(c,h){return h==null&&(h=Jg(c)),[h.map(f).join(e)].concat(o(c,h)).join(`
3
- `)}function s(c,h){return h==null&&(h=Jg(c)),o(c,h).join(`
1
+ (function(ce,ve){typeof exports=="object"&&typeof module<"u"?ve(exports):typeof define=="function"&&define.amd?define(["exports"],ve):(ce=typeof globalThis<"u"?globalThis:ce||self,ve(ce.genomeSpyEmbed={}))})(this,function(ce){"use strict";var Gz=Object.defineProperty;var Hz=(ce,ve,Ce)=>ve in ce?Gz(ce,ve,{enumerable:!0,configurable:!0,writable:!0,value:Ce}):ce[ve]=Ce;var Bn=(ce,ve,Ce)=>(Hz(ce,typeof ve!="symbol"?ve+"":ve,Ce),Ce),Og=(ce,ve,Ce)=>{if(!ve.has(ce))throw TypeError("Cannot "+Ce)};var W=(ce,ve,Ce)=>(Og(ce,ve,"read from private field"),Ce?Ce.call(ce):ve.get(ce)),ne=(ce,ve,Ce)=>{if(ve.has(ce))throw TypeError("Cannot add the same private member more than once");ve instanceof WeakSet?ve.add(ce):ve.set(ce,Ce)},Xe=(ce,ve,Ce,xa)=>(Og(ce,ve,"write to private field"),xa?xa.call(ce,Ce):ve.set(ce,Ce),Ce);var s_=(ce,ve,Ce,xa)=>({set _(su){Xe(ce,ve,su,Ce)},get _(){return W(ce,ve,xa)}}),ee=(ce,ve,Ce)=>(Og(ce,ve,"access private method"),Ce);var Gl,Pc,l_,Lc,u_,Hl,zg,Vl,Ug,jl,Gg,ko,ql,Zl,da,au,Wl,Hg,gr,Io,vt,Xn,gi,Nc,f_,Bo,qc,mr,wa,Yl,Vg,Oc,c_,Mg,Vz,Ql,jg,Do,$l,Fo,Ro,pa,Xl,Kl,Jl,br,Mo,Po,Kt,ga,Lo,yr,va,zc,h_,ma,ou,eu,qg,tu,Zg,nu,Wg,Uc,d_,No,Zc,Gc,p_,Oo,zo,ba,ru,ya;function ve(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 a=Object.getOwnPropertyDescriptor(r,i);a&&Object.defineProperty(e,i,a.get?a:{enumerable:!0,get:()=>r[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function Ce(e,t,n){return e.fields=t||[],e.fname=n,e}function xa(e){return e==null?null:e.fname}function su(e){return e==null?null:e.fields}function g_(e){return e.length===1?m_(e[0]):b_(e)}const m_=e=>function(t){return t[e]},b_=e=>{const t=e.length;return function(n){for(let r=0;r<t;++r)n=n[e[r]];return n}};function Qe(e){throw Error(e)}function y_(e){const t=[],n=e.length;let r=null,i=0,a="",o,s,u;e=e+"";function l(){t.push(a+e.substring(o,s)),a="",o=s+1}for(o=s=0;s<n;++s)if(u=e[s],u==="\\")a+=e.substring(o,s),a+=e.substring(++s,++s),o=s;else if(u===r)l(),r=null,i=-1;else{if(r)continue;o===i&&u==='"'||o===i&&u==="'"?(o=s+1,r=u):u==="."&&!i?s>o?l():o=s+1:u==="["?(s>o&&l(),i=o=s+1):u==="]"&&(i||Qe("Access path missing open bracket: "+e),i>0&&l(),i=0,o=s+1)}return i&&Qe("Access path missing closing bracket: "+e),r&&Qe("Access path missing closing quote: "+e),s>o&&(s++,l()),t}function lu(e,t,n){const r=y_(e);return e=r.length===1?r[0]:e,Ce((n&&n.get||g_)(r),[e],t||e)}lu("id");const uu=Ce(e=>e,[],"identity");Ce(()=>0,[],"zero"),Ce(()=>1,[],"one"),Ce(()=>!0,[],"true"),Ce(()=>!1,[],"false");var Ft=Array.isArray;function Rt(e){return e===Object(e)}function gn(e){return e[e.length-1]}function Uo(e){return e==null||e===""?null:+e}const Yg=e=>t=>e*Math.exp(t),Qg=e=>t=>Math.log(e*t),w_=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),v_=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,fu=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function Wc(e,t,n,r){const i=n(e[0]),a=n(gn(e)),o=(a-i)*t;return[r(i-o),r(a-o)]}function x_(e,t){return Wc(e,t,Uo,uu)}function A_(e,t){var n=Math.sign(e[0]);return Wc(e,t,Qg(n),Yg(n))}function E_(e,t,n){return Wc(e,t,fu(n),fu(1/n))}function cu(e,t,n,r,i){const a=r(e[0]),o=r(gn(e)),s=t!=null?r(t):(a+o)/2;return[i(s+(a-s)*n),i(s+(o-s)*n)]}function $g(e,t,n){return cu(e,t,n,Uo,uu)}function Xg(e,t,n){const r=Math.sign(e[0]);return cu(e,t,n,Qg(r),Yg(r))}function Yc(e,t,n,r){return cu(e,t,n,fu(r),fu(1/r))}function __(e,t,n,r){return cu(e,t,n,w_(r),v_(r))}function Qc(e){return e!=null?Ft(e)?e:[e]:[]}function S_(e,t,n){let r=e[0],i=e[1],a;return i<r&&(a=i,i=r,r=a),a=i-r,a>=n-t?[t,n]:[r=Math.min(Math.max(r,t),n-a),r+a]}function Mt(e){return typeof e=="function"}const C_="descending";function Kg(e,t,n){n=n||{},t=Qc(t)||[];const r=[],i=[],a={},o=n.comparator||T_;return Qc(e).forEach((s,u)=>{s!=null&&(r.push(t[u]===C_?-1:1),i.push(s=Mt(s)?s:lu(s,null,n)),(su(s)||[]).forEach(l=>a[l]=1))}),i.length===0?null:Ce(o(i,r),Object.keys(a))}const Jg=(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),T_=(e,t)=>e.length===1?k_(e[0],t[0]):I_(e,t,e.length),k_=(e,t)=>function(n,r){return Jg(e(n),e(r))*t},I_=(e,t,n)=>(t.push(0),function(r,i){let a,o=0,s=-1;for(;o===0&&++s<n;)a=e[s],o=Jg(a(r),a(i));return o*t[s]});function B_(e){return Mt(e)?e:()=>e}function $c(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 D_=Object.prototype.hasOwnProperty;function mi(e,t){return D_.call(e,t)}function Go(e){return typeof e=="boolean"}function F_(e){return Object.prototype.toString.call(e)==="[object Date]"}function R_(e){return e&&Mt(e[Symbol.iterator])}function Ct(e){return typeof e=="number"}function M_(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function Pe(e){return typeof e=="string"}function em(e,t){const n=e[0],r=gn(e),i=+t;return i?i===1?r:n+i*(r-n):n}function hu(e){return e&&gn(e)-e[0]||0}function du(e){return Ft(e)?"["+e.map(du)+"]":Rt(e)||Pe(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function P_(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const L_=e=>Ct(e)||F_(e)?e:Date.parse(e);function N_(e,t){return t=t||L_,e==null||e===""?null:t(e)}function O_(e){return e==null||e===""?null:e+""}function pu(e){const t={},n=e.length;for(let r=0;r<n;++r)t[e[r]]=!0;return t}var tm={},Xc={},Kc=34,Ho=10,Jc=13;function nm(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function z_(e,t){var n=nm(e);return function(r,i){return t(n(r),i,e)}}function rm(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 Pt(e,t){var n=e+"",r=n.length;return r<t?new Array(t-r+1).join(0)+n:n}function U_(e){return e<0?"-"+Pt(-e,6):e>9999?"+"+Pt(e,6):Pt(e,4)}function G_(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":U_(e.getUTCFullYear())+"-"+Pt(e.getUTCMonth()+1,2)+"-"+Pt(e.getUTCDate(),2)+(i?"T"+Pt(t,2)+":"+Pt(n,2)+":"+Pt(r,2)+"."+Pt(i,3)+"Z":r?"T"+Pt(t,2)+":"+Pt(n,2)+":"+Pt(r,2)+"Z":n||t?"T"+Pt(t,2)+":"+Pt(n,2)+"Z":"")}function im(e){var t=new RegExp('["'+e+`
2
+ \r]`),n=e.charCodeAt(0);function r(c,h){var d,p,m=i(c,function(y,w){if(d)return d(y,w-1);p=y,d=h?z_(y,h):nm(y)});return m.columns=p||[],m}function i(c,h){var d=[],p=c.length,m=0,y=0,w,_=p<=0,C=!1;c.charCodeAt(p-1)===Ho&&--p,c.charCodeAt(p-1)===Jc&&--p;function E(){if(_)return Xc;if(C)return C=!1,tm;var B,I=m,R;if(c.charCodeAt(I)===Kc){for(;m++<p&&c.charCodeAt(m)!==Kc||c.charCodeAt(++m)===Kc;);return(B=m)>=p?_=!0:(R=c.charCodeAt(m++))===Ho?C=!0:R===Jc&&(C=!0,c.charCodeAt(m)===Ho&&++m),c.slice(I+1,B-1).replace(/""/g,'"')}for(;m<p;){if((R=c.charCodeAt(B=m++))===Ho)C=!0;else if(R===Jc)C=!0,c.charCodeAt(m)===Ho&&++m;else if(R!==n)continue;return c.slice(I,B)}return _=!0,c.slice(I,p)}for(;(w=E())!==Xc;){for(var k=[];w!==tm&&w!==Xc;)k.push(w),w=E();h&&(k=h(k,y++))==null||d.push(k)}return d}function a(c,h){return c.map(function(d){return h.map(function(p){return f(d[p])}).join(e)})}function o(c,h){return h==null&&(h=rm(c)),[h.map(f).join(e)].concat(a(c,h)).join(`
3
+ `)}function s(c,h){return h==null&&(h=rm(c)),a(c,h).join(`
4
4
  `)}function u(c){return c.map(l).join(`
5
- `)}function l(c){return c.map(f).join(e)}function f(c){return c==null?"":c instanceof Date?P_(c):t.test(c+="")?'"'+c.replace(/"/g,'""')+'"':c}return{parse:r,parseRows:i,format:a,formatBody:s,formatRows:u,formatRow:l,formatValue:f}}var L_=em(" "),N_=L_.parseRows;function O_(e){return e}function z_(e){if(e==null)return O_;var t,n,r=e.scale[0],i=e.scale[1],o=e.translate[0],a=e.translate[1];return function(s,u){u||(t=n=0);var l=2,f=s.length,c=new Array(f);for(c[0]=(t+=s[0])*r+o,c[1]=(n+=s[1])*i+a;l<f;)c[l]=s[l],++l;return c}}function U_(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function G_(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return tm(e,n)})}:tm(e,t)}function tm(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,o=nm(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 nm(e,t){var n=z_(e.transform),r=e.arcs;function i(f,c){c.length&&c.pop();for(var h=r[f<0?~f:f],d=0,p=h.length;d<p;++d)c.push(n(h[d],d));f<0&&U_(c,p)}function o(f){return n(f)}function a(f){for(var c=[],h=0,d=f.length;h<d;++h)i(f[h],c);return c.length<2&&c.push(c[0]),c}function s(f){for(var c=a(f);c.length<4;)c.push(c[0]);return c}function u(f){return f.map(s)}function l(f){var c=f.type,h;switch(c){case"GeometryCollection":return{type:c,geometries:f.geometries.map(l)};case"Point":h=o(f.coordinates);break;case"MultiPoint":h=f.coordinates.map(o);break;case"LineString":h=a(f.arcs);break;case"MultiLineString":h=f.arcs.map(a);break;case"Polygon":h=u(f.arcs);break;case"MultiPolygon":h=f.arcs.map(u);break;default:return null}return{type:c,coordinates:h}}return l(t)}function H_(e,t){var n={},r={},i={},o=[],a=-1;t.forEach(function(l,f){var c=e.arcs[l<0?~l:l],h;c.length<3&&!c[1][0]&&!c[1][1]&&(h=t[++a],t[a]=l,t[f]=h)}),t.forEach(function(l){var f=s(l),c=f[0],h=f[1],d,p;if(d=i[c])if(delete i[d.end],d.push(l),d.end=h,p=r[h]){delete r[p.start];var b=p===d?d:d.concat(p);r[b.start=d.start]=i[b.end=p.end]=b}else r[d.start]=i[d.end]=d;else if(d=r[h])if(delete r[d.start],d.unshift(l),d.start=c,p=i[c]){delete i[p.end];var y=p===d?d:p.concat(d);r[y.start=p.start]=i[y.end=d.end]=y}else r[d.start]=i[d.end]=d;else d=[l],r[d.start=c]=i[d.end=h]=d});function s(l){var f=e.arcs[l<0?~l:l],c=f[0],h;return e.transform?(h=[0,0],f.forEach(function(d){h[0]+=d[0],h[1]+=d[1]})):h=f[f.length-1],l<0?[h,c]:[c,h]}function u(l,f){for(var c in l){var h=l[c];delete f[h.start],delete h.start,delete h.end,h.forEach(function(d){n[d<0?~d:d]=1}),o.push(h)}}return u(i,r),u(r,i),t.forEach(function(l){n[l<0?~l:l]||o.push([l])}),o}function V_(e){return nm(e,j_.apply(this,arguments))}function j_(e,t,n){var r,i,o;if(arguments.length>1)r=q_(e,t,n);else for(i=0,r=new Array(o=e.arcs.length);i<o;++i)r[i]=i;return{type:"MultiLineString",arcs:H_(e,r)}}function q_(e,t,n){var r=[],i=[],o;function a(c){var h=c<0?~c:c;(i[h]||(i[h]=[])).push({i:c,g:o})}function s(c){c.forEach(a)}function u(c){c.forEach(s)}function l(c){c.forEach(u)}function f(c){switch(o=c,c.type){case"GeometryCollection":c.geometries.forEach(f);break;case"LineString":s(c.arcs);break;case"MultiLineString":case"Polygon":u(c.arcs);break;case"MultiPolygon":l(c.arcs);break}}return f(t),i.forEach(n==null?function(c){r.push(c[0].i)}:function(c){n(c[0].g,c[c.length-1].g)&&r.push(c[0].i)}),r}function Va(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Z_(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function pu(e){let t,n,r;e.length!==2?(t=Va,n=(s,u)=>Va(e(s),u),r=(s,u)=>e(s)-u):(t=e===Va||e===Z_?e:W_,n=e,r=e);function i(s,u,l=0,f=s.length){if(l<f){if(t(u,u)!==0)return f;do{const c=l+f>>>1;n(s[c],u)<0?l=c+1:f=c}while(l<f)}return l}function o(s,u,l=0,f=s.length){if(l<f){if(t(u,u)!==0)return f;do{const c=l+f>>>1;n(s[c],u)<=0?l=c+1:f=c}while(l<f)}return l}function a(s,u,l=0,f=s.length){const c=i(s,u,l,f-1);return c>l&&r(s[c-1],u)>-r(s[c],u)?c-1:c}return{left:i,center:a,right:o}}function W_(){return 0}function rm(e){return e===null?NaN:+e}const im=pu(Va),Ar=im.right;im.left,pu(rm).center;function Y_(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 Er extends Map{constructor(t,n=$_){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(om(this,t))}has(t){return super.has(om(this,t))}set(t,n){return super.set(Q_(this,t),n)}delete(t){return super.delete(X_(this,t))}}function om({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function Q_({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function X_({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function $_(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Qc(e){return e}function gu(e,...t){return am(e,Qc,Qc,t)}function K_(e,...t){return am(e,Array.from,Qc,t)}function am(e,t,n,r){return function i(o,a){if(a>=r.length)return n(o);const s=new Er,u=r[a++];let l=-1;for(const f of o){const c=u(f,++l,o),h=s.get(c);h?h.push(f):s.set(c,[f])}for(const[f,c]of s)s.set(f,i(c,a));return t(s)}(e,0)}var Xc=Math.sqrt(50),$c=Math.sqrt(10),Kc=Math.sqrt(2);function mu(e,t,n){var r,i=-1,o,a,s;if(t=+t,e=+e,n=+n,e===t&&n>0)return[e];if((r=t<e)&&(o=e,e=t,t=o),(s=sm(e,t,n))===0||!isFinite(s))return[];if(s>0){let u=Math.round(e/s),l=Math.round(t/s);for(u*s<e&&++u,l*s>t&&--l,a=new Array(o=l-u+1);++i<o;)a[i]=(u+i)*s}else{s=-s;let u=Math.round(e*s),l=Math.round(t*s);for(u/s<e&&++u,l/s>t&&--l,a=new Array(o=l-u+1);++i<o;)a[i]=(u+i)/s}return r&&a.reverse(),a}function sm(e,t,n){var r=(t-e)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=Xc?10:o>=$c?5:o>=Kc?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=Xc?10:o>=$c?5:o>=Kc?2:1)}function bi(e,t,n){var r=Math.abs(t-e)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=Xc?i*=10:o>=$c?i*=5:o>=Kc&&(i*=2),t<e?-i:i}function lm(e,t,n=rm){if(r=e.length){if((t=+t)<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,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 ja(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 bu(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 J_(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function yu(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 Eo(e){return e=yu(Math.abs(e)),e?e[1]:NaN}function e4(e,t){return function(n,r){for(var i=n.length,o=[],a=0,s=e[0],u=0;i>0&&s>0&&(u+s+1>r&&(s=Math.max(1,r-u)),o.push(n.substring(i-=s,i+s)),!((u+=s+1)>r));)s=e[a=(a+1)%e.length];return o.reverse().join(t)}}function t4(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var n4=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function _r(e){if(!(t=n4.exec(e)))throw new Error("invalid format: "+e);var t;return new Jc({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]})}_r.prototype=Jc.prototype;function Jc(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+""}Jc.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 r4(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 um;function i4(e,t){var n=yu(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-(um=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")+yu(e,Math.max(0,t+o-1))[0]}function fm(e,t){var n=yu(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 cm={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:J_,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)=>fm(e*100,t),r:fm,s:i4,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function hm(e){return e}var dm=Array.prototype.map,pm=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function o4(e){var t=e.grouping===void 0||e.thousands===void 0?hm:e4(dm.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?hm:t4(dm.call(e.numerals,String)),a=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",u=e.nan===void 0?"NaN":e.nan+"";function l(c){c=_r(c);var h=c.fill,d=c.align,p=c.sign,b=c.symbol,y=c.zero,w=c.width,_=c.comma,C=c.precision,E=c.trim,T=c.type;T==="n"?(_=!0,T="g"):cm[T]||(C===void 0&&(C=12),E=!0,T="g"),(y||h==="0"&&d==="=")&&(y=!0,h="0",d="=");var B=b==="$"?n:b==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",I=b==="$"?r:/[%p]/.test(T)?a:"",R=cm[T],M=/[defgprs%]/.test(T);C=C===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,C)):Math.max(0,Math.min(20,C));function j(O){var ie=B,se=I,ge,Ie,Xe;if(T==="c")se=R(O)+se,O="";else{O=+O;var De=O<0||1/O<0;if(O=isNaN(O)?u:R(Math.abs(O),C),E&&(O=r4(O)),De&&+O==0&&p!=="+"&&(De=!1),ie=(De?p==="("?p:s:p==="-"||p==="("?"":p)+ie,se=(T==="s"?pm[8+um/3]:"")+se+(De&&p==="("?")":""),M){for(ge=-1,Ie=O.length;++ge<Ie;)if(Xe=O.charCodeAt(ge),48>Xe||Xe>57){se=(Xe===46?i+O.slice(ge+1):O.slice(ge))+se,O=O.slice(0,ge);break}}}_&&!y&&(O=t(O,1/0));var $e=ie.length+O.length+se.length,Ze=$e<w?new Array(w-$e+1).join(h):"";switch(_&&y&&(O=t(Ze+O,Ze.length?w-se.length:1/0),Ze=""),d){case"<":O=ie+O+se+Ze;break;case"=":O=ie+Ze+O+se;break;case"^":O=Ze.slice(0,$e=Ze.length>>1)+ie+O+se+Ze.slice($e);break;default:O=Ze+ie+O+se;break}return o(O)}return j.toString=function(){return c+""},j}function f(c,h){var d=l((c=_r(c),c.type="f",c)),p=Math.max(-8,Math.min(8,Math.floor(Eo(h)/3)))*3,b=Math.pow(10,-p),y=pm[8+p/3];return function(w){return d(b*w)+y}}return{format:l,formatPrefix:f}}var wu,gt,eh;a4({thousands:",",grouping:[3],currency:["$",""]});function a4(e){return wu=o4(e),gt=wu.format,eh=wu.formatPrefix,wu}function gm(e){return Math.max(0,-Eo(Math.abs(e)))}function mm(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Eo(t)/3)))*3-Eo(Math.abs(e)))}function bm(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Eo(t)-Eo(e))+1}var th=new Date,nh=new Date;function st(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=function(o){return e(o=new Date(+o)),o},i.ceil=function(o){return e(o=new Date(o-1)),t(o,1),e(o),o},i.round=function(o){var a=i(o),s=i.ceil(o);return o-a<s-o?a:s},i.offset=function(o,a){return t(o=new Date(+o),a==null?1:Math.floor(a)),o},i.range=function(o,a,s){var u=[],l;if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o<a)||!(s>0))return u;do u.push(l=new Date(+o)),t(o,s),e(o);while(l<o&&o<a);return u},i.filter=function(o){return st(function(a){if(a>=a)for(;e(a),!o(a);)a.setTime(a-1)},function(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=function(o,a){return th.setTime(+o),nh.setTime(+a),e(th),e(nh),Math.floor(n(th,nh))},i.every=function(o){return o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?function(a){return r(a)%o===0}:function(a){return i.count(0,a)%o===0}):i}),i}var vu=st(function(){},function(e,t){e.setTime(+e+t)},function(e,t){return t-e});vu.every=function(e){return e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?st(function(t){t.setTime(Math.floor(t/e)*e)},function(t,n){t.setTime(+t+n*e)},function(t,n){return(n-t)/e}):vu};const rh=vu;vu.range;const Jn=1e3,Jt=Jn*60,er=Jt*60,yi=er*24,ih=yi*7,ym=yi*30,oh=yi*365;var wm=st(function(e){e.setTime(e-e.getMilliseconds())},function(e,t){e.setTime(+e+t*Jn)},function(e,t){return(t-e)/Jn},function(e){return e.getUTCSeconds()});const Sr=wm;wm.range;var vm=st(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*Jn)},function(e,t){e.setTime(+e+t*Jt)},function(e,t){return(t-e)/Jt},function(e){return e.getMinutes()});const ah=vm;vm.range;var xm=st(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*Jn-e.getMinutes()*Jt)},function(e,t){e.setTime(+e+t*er)},function(e,t){return(t-e)/er},function(e){return e.getHours()});const sh=xm;xm.range;var Am=st(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Jt)/yi,e=>e.getDate()-1);const wi=Am;Am.range;function vi(e){return st(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Jt)/ih})}var qa=vi(0),xu=vi(1),s4=vi(2),l4=vi(3),_o=vi(4),u4=vi(5),f4=vi(6);qa.range,xu.range,s4.range,l4.range,_o.range,u4.range,f4.range;var Za=st(function(e){e.setDate(1),e.setHours(0,0,0,0)},function(e,t){e.setMonth(e.getMonth()+t)},function(e,t){return t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12},function(e){return e.getMonth()});Za.range;var lh=st(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()});lh.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:st(function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n*e)})};const Cr=lh;lh.range;var Em=st(function(e){e.setUTCSeconds(0,0)},function(e,t){e.setTime(+e+t*Jt)},function(e,t){return(t-e)/Jt},function(e){return e.getUTCMinutes()});const uh=Em;Em.range;var _m=st(function(e){e.setUTCMinutes(0,0,0)},function(e,t){e.setTime(+e+t*er)},function(e,t){return(t-e)/er},function(e){return e.getUTCHours()});const fh=_m;_m.range;var Sm=st(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/yi},function(e){return e.getUTCDate()-1});const xi=Sm;Sm.range;function Ai(e){return st(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/ih})}var Wa=Ai(0),Au=Ai(1),c4=Ai(2),h4=Ai(3),So=Ai(4),d4=Ai(5),p4=Ai(6);Wa.range,Au.range,c4.range,h4.range,So.range,d4.range,p4.range;var Ya=st(function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCMonth(e.getUTCMonth()+t)},function(e,t){return t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12},function(e){return e.getUTCMonth()});Ya.range;var ch=st(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()});ch.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:st(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})};const kr=ch;ch.range;function Cm(e,t,n,r,i,o){const a=[[Sr,1,Jn],[Sr,5,5*Jn],[Sr,15,15*Jn],[Sr,30,30*Jn],[o,1,Jt],[o,5,5*Jt],[o,15,15*Jt],[o,30,30*Jt],[i,1,er],[i,3,3*er],[i,6,6*er],[i,12,12*er],[r,1,yi],[r,2,2*yi],[n,1,ih],[t,1,ym],[t,3,3*ym],[e,1,oh]];function s(l,f,c){const h=f<l;h&&([l,f]=[f,l]);const d=c&&typeof c.range=="function"?c:u(l,f,c),p=d?d.range(l,+f+1):[];return h?p.reverse():p}function u(l,f,c){const h=Math.abs(f-l)/c,d=pu(([,,y])=>y).right(a,h);if(d===a.length)return e.every(bi(l/oh,f/oh,c));if(d===0)return rh.every(Math.max(bi(l,f,c),1));const[p,b]=a[h/a[d-1][2]<a[d][2]/h?d-1:d];return p.every(b)}return[s,u]}const[g4,m4]=Cm(kr,Ya,Wa,xi,fh,uh),[b4,y4]=Cm(Cr,Za,qa,wi,sh,ah),Qa="year",Xa="quarter",$a="month",Ka="week",Ja="date",Eu="day",hh="dayofyear",es="hours",ts="minutes",ns="seconds",_u="milliseconds";[Qa,Xa,$a,Ka,Ja,Eu,hh,es,ts,ns,_u].reduce((e,t,n)=>(e[t]=1+n,e),{});const w4={[Qa]:Cr,[Xa]:Za.every(3),[$a]:Za,[Ka]:qa,[Ja]:wi,[Eu]:wi,[hh]:wi,[es]:sh,[ts]:ah,[ns]:Sr,[_u]:rh},v4={[Qa]:kr,[Xa]:Ya.every(3),[$a]:Ya,[Ka]:Wa,[Ja]:xi,[Eu]:xi,[hh]:xi,[es]:fh,[ts]:uh,[ns]:Sr,[_u]:rh};function x4(e){return w4[e]}function A4(e){return v4[e]}function dh(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 ph(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 rs(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function km(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,o=e.days,a=e.shortDays,s=e.months,u=e.shortMonths,l=is(i),f=os(i),c=is(o),h=os(o),d=is(a),p=os(a),b=is(s),y=os(s),w=is(u),_=os(u),C={a:De,A:$e,b:Ze,B:Ke,c:null,d:Rm,e:Rm,f:q4,g:tS,G:rS,H:H4,I:V4,j:j4,L:Mm,m:Z4,M:W4,p:Ee,q:_e,Q:Um,s:Gm,S:Y4,u:Q4,U:X4,V:$4,w:K4,W:J4,x:null,X:null,y:eS,Y:nS,Z:iS,"%":zm},E={a:pt,A:qt,b:Oe,B:L,c:null,d:Lm,e:Lm,f:lS,g:yS,G:vS,H:oS,I:aS,j:sS,L:Nm,m:uS,M:fS,p:P,q,Q:Um,s:Gm,S:cS,u:hS,U:dS,V:pS,w:gS,W:mS,x:null,X:null,y:bS,Y:wS,Z:xS,"%":zm},T={a:j,A:O,b:ie,B:se,c:ge,d:Dm,e:Dm,f:O4,g:Bm,G:Im,H:Fm,I:Fm,j:M4,L:N4,m:R4,M:P4,p:M,q:F4,Q:U4,s:G4,S:L4,u:k4,U:T4,V:I4,w:C4,W:B4,x:Ie,X:Xe,y:Bm,Y:Im,Z:D4,"%":z4};C.x=B(n,C),C.X=B(r,C),C.c=B(t,C),E.x=B(n,E),E.X=B(r,E),E.c=B(t,E);function B(H,Y){return function(S){var x=[],G=-1,Z=0,le=H.length,J,ue,Zt;for(S instanceof Date||(S=new Date(+S));++G<le;)H.charCodeAt(G)===37&&(x.push(H.slice(Z,G)),(ue=Tm[J=H.charAt(++G)])!=null?J=H.charAt(++G):ue=J==="e"?" ":"0",(Zt=Y[J])&&(J=Zt(S,ue)),x.push(J),Z=G+1);return x.push(H.slice(Z,G)),x.join("")}}function I(H,Y){return function(S){var x=rs(1900,void 0,1),G=R(x,H,S+="",0),Z,le;if(G!=S.length)return null;if("Q"in x)return new Date(x.Q);if("s"in x)return new Date(x.s*1e3+("L"in x?x.L:0));if(Y&&!("Z"in x)&&(x.Z=0),"p"in x&&(x.H=x.H%12+x.p*12),x.m===void 0&&(x.m="q"in x?x.q:0),"V"in x){if(x.V<1||x.V>53)return null;"w"in x||(x.w=1),"Z"in x?(Z=ph(rs(x.y,0,1)),le=Z.getUTCDay(),Z=le>4||le===0?Au.ceil(Z):Au(Z),Z=xi.offset(Z,(x.V-1)*7),x.y=Z.getUTCFullYear(),x.m=Z.getUTCMonth(),x.d=Z.getUTCDate()+(x.w+6)%7):(Z=dh(rs(x.y,0,1)),le=Z.getDay(),Z=le>4||le===0?xu.ceil(Z):xu(Z),Z=wi.offset(Z,(x.V-1)*7),x.y=Z.getFullYear(),x.m=Z.getMonth(),x.d=Z.getDate()+(x.w+6)%7)}else("W"in x||"U"in x)&&("w"in x||(x.w="u"in x?x.u%7:"W"in x?1:0),le="Z"in x?ph(rs(x.y,0,1)).getUTCDay():dh(rs(x.y,0,1)).getDay(),x.m=0,x.d="W"in x?(x.w+6)%7+x.W*7-(le+5)%7:x.w+x.U*7-(le+6)%7);return"Z"in x?(x.H+=x.Z/100|0,x.M+=x.Z%100,ph(x)):dh(x)}}function R(H,Y,S,x){for(var G=0,Z=Y.length,le=S.length,J,ue;G<Z;){if(x>=le)return-1;if(J=Y.charCodeAt(G++),J===37){if(J=Y.charAt(G++),ue=T[J in Tm?Y.charAt(G++):J],!ue||(x=ue(H,S,x))<0)return-1}else if(J!=S.charCodeAt(x++))return-1}return x}function M(H,Y,S){var x=l.exec(Y.slice(S));return x?(H.p=f.get(x[0].toLowerCase()),S+x[0].length):-1}function j(H,Y,S){var x=d.exec(Y.slice(S));return x?(H.w=p.get(x[0].toLowerCase()),S+x[0].length):-1}function O(H,Y,S){var x=c.exec(Y.slice(S));return x?(H.w=h.get(x[0].toLowerCase()),S+x[0].length):-1}function ie(H,Y,S){var x=w.exec(Y.slice(S));return x?(H.m=_.get(x[0].toLowerCase()),S+x[0].length):-1}function se(H,Y,S){var x=b.exec(Y.slice(S));return x?(H.m=y.get(x[0].toLowerCase()),S+x[0].length):-1}function ge(H,Y,S){return R(H,t,Y,S)}function Ie(H,Y,S){return R(H,n,Y,S)}function Xe(H,Y,S){return R(H,r,Y,S)}function De(H){return a[H.getDay()]}function $e(H){return o[H.getDay()]}function Ze(H){return u[H.getMonth()]}function Ke(H){return s[H.getMonth()]}function Ee(H){return i[+(H.getHours()>=12)]}function _e(H){return 1+~~(H.getMonth()/3)}function pt(H){return a[H.getUTCDay()]}function qt(H){return o[H.getUTCDay()]}function Oe(H){return u[H.getUTCMonth()]}function L(H){return s[H.getUTCMonth()]}function P(H){return i[+(H.getUTCHours()>=12)]}function q(H){return 1+~~(H.getUTCMonth()/3)}return{format:function(H){var Y=B(H+="",C);return Y.toString=function(){return H},Y},parse:function(H){var Y=I(H+="",!1);return Y.toString=function(){return H},Y},utcFormat:function(H){var Y=B(H+="",E);return Y.toString=function(){return H},Y},utcParse:function(H){var Y=I(H+="",!0);return Y.toString=function(){return H},Y}}}var Tm={"-":"",_:" ",0:"0"},lt=/^\s*\d+/,E4=/^%/,_4=/[\\^$*+?|[\]().{}]/g;function be(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 S4(e){return e.replace(_4,"\\$&")}function is(e){return new RegExp("^(?:"+e.map(S4).join("|")+")","i")}function os(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function C4(e,t,n){var r=lt.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function k4(e,t,n){var r=lt.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function T4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function I4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function B4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Im(e,t,n){var r=lt.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Bm(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function D4(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 F4(e,t,n){var r=lt.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function R4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function Dm(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function M4(e,t,n){var r=lt.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Fm(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function P4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function L4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function N4(e,t,n){var r=lt.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function O4(e,t,n){var r=lt.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function z4(e,t,n){var r=E4.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function U4(e,t,n){var r=lt.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function G4(e,t,n){var r=lt.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Rm(e,t){return be(e.getDate(),t,2)}function H4(e,t){return be(e.getHours(),t,2)}function V4(e,t){return be(e.getHours()%12||12,t,2)}function j4(e,t){return be(1+wi.count(Cr(e),e),t,3)}function Mm(e,t){return be(e.getMilliseconds(),t,3)}function q4(e,t){return Mm(e,t)+"000"}function Z4(e,t){return be(e.getMonth()+1,t,2)}function W4(e,t){return be(e.getMinutes(),t,2)}function Y4(e,t){return be(e.getSeconds(),t,2)}function Q4(e){var t=e.getDay();return t===0?7:t}function X4(e,t){return be(qa.count(Cr(e)-1,e),t,2)}function Pm(e){var t=e.getDay();return t>=4||t===0?_o(e):_o.ceil(e)}function $4(e,t){return e=Pm(e),be(_o.count(Cr(e),e)+(Cr(e).getDay()===4),t,2)}function K4(e){return e.getDay()}function J4(e,t){return be(xu.count(Cr(e)-1,e),t,2)}function eS(e,t){return be(e.getFullYear()%100,t,2)}function tS(e,t){return e=Pm(e),be(e.getFullYear()%100,t,2)}function nS(e,t){return be(e.getFullYear()%1e4,t,4)}function rS(e,t){var n=e.getDay();return e=n>=4||n===0?_o(e):_o.ceil(e),be(e.getFullYear()%1e4,t,4)}function iS(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+be(t/60|0,"0",2)+be(t%60,"0",2)}function Lm(e,t){return be(e.getUTCDate(),t,2)}function oS(e,t){return be(e.getUTCHours(),t,2)}function aS(e,t){return be(e.getUTCHours()%12||12,t,2)}function sS(e,t){return be(1+xi.count(kr(e),e),t,3)}function Nm(e,t){return be(e.getUTCMilliseconds(),t,3)}function lS(e,t){return Nm(e,t)+"000"}function uS(e,t){return be(e.getUTCMonth()+1,t,2)}function fS(e,t){return be(e.getUTCMinutes(),t,2)}function cS(e,t){return be(e.getUTCSeconds(),t,2)}function hS(e){var t=e.getUTCDay();return t===0?7:t}function dS(e,t){return be(Wa.count(kr(e)-1,e),t,2)}function Om(e){var t=e.getUTCDay();return t>=4||t===0?So(e):So.ceil(e)}function pS(e,t){return e=Om(e),be(So.count(kr(e),e)+(kr(e).getUTCDay()===4),t,2)}function gS(e){return e.getUTCDay()}function mS(e,t){return be(Au.count(kr(e)-1,e),t,2)}function bS(e,t){return be(e.getUTCFullYear()%100,t,2)}function yS(e,t){return e=Om(e),be(e.getUTCFullYear()%100,t,2)}function wS(e,t){return be(e.getUTCFullYear()%1e4,t,4)}function vS(e,t){var n=e.getUTCDay();return e=n>=4||n===0?So(e):So.ceil(e),be(e.getUTCFullYear()%1e4,t,4)}function xS(){return"+0000"}function zm(){return"%"}function Um(e){return+e}function Gm(e){return Math.floor(+e/1e3)}var Co,gh,Hm,mh,Vm;AS({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 AS(e){return Co=km(e),gh=Co.format,Hm=Co.parse,mh=Co.utcFormat,Vm=Co.utcParse,Co}function as(e){const t={};return n=>t[n]||(t[n]=e(n))}function ES(e,t){return n=>{const r=e(n),i=r.indexOf(t);if(i<0)return r;let o=_S(r,i);const a=o<r.length?r.slice(o):"";for(;--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function _S(e,t){let n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}function SS(e){const t=as(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(r){const i=_r(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return ES(t(i),t(".1f")(1)[1])}else return t(i)},formatSpan(r,i,o,a){a=_r(a??",f");const s=bi(r,i,o),u=Math.max(Math.abs(r),Math.abs(i));let l;if(a.precision==null)switch(a.type){case"s":return isNaN(l=mm(s,u))||(a.precision=l),n(a,u);case"":case"e":case"g":case"p":case"r":{isNaN(l=bm(s,u))||(a.precision=l-(a.type==="e"));break}case"f":case"%":{isNaN(l=gm(s))||(a.precision=l-(a.type==="%")*2);break}}return t(a)}}}CS();function CS(){return SS({format:gt,formatPrefix:eh})}function jm(e,t,n){n=n||{},Rt(n)||Qe("Invalid time multi-format specifier: ".concat(n));const r=t(ns),i=t(ts),o=t(es),a=t(Ja),s=t(Ka),u=t($a),l=t(Xa),f=t(Qa),c=e(n[_u]||".%L"),h=e(n[ns]||":%S"),d=e(n[ts]||"%I:%M"),p=e(n[es]||"%I %p"),b=e(n[Ja]||n[Eu]||"%a %d"),y=e(n[Ka]||"%b %d"),w=e(n[$a]||"%B"),_=e(n[Xa]||"%B"),C=e(n[Qa]||"%Y");return E=>(r(E)<E?c:i(E)<E?h:o(E)<E?d:a(E)<E?p:u(E)<E?s(E)<E?b:y:f(E)<E?l(E)<E?w:_:C)(E)}function qm(e){const t=as(e.format),n=as(e.utcFormat);return{timeFormat:r=>Pe(r)?t(r):jm(t,x4,r),utcFormat:r=>Pe(r)?n(r):jm(n,A4,r),timeParse:as(e.parse),utcParse:as(e.utcParse)}}let bh;kS();function kS(){return bh=qm({format:gh,parse:Hm,utcFormat:mh,utcParse:Vm})}function TS(e){return qm(km(e))}function IS(e){return arguments.length?bh=TS(e):bh}const BS=/^(data:|([A-Za-z]+:)?\/\/)/,DS=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,FS=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Zm="file://";function RS(e,t){return n=>({options:n||{},sanitize:PS,load:MS,fileAccess:!!t,file:LS(t),http:OS(e)})}async function MS(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t)}async function PS(e,t){t=qc({},this.options,t);const n=this.fileAccess,r={href:null};let i,o,a;const s=DS.test(e.replace(FS,""));(e==null||typeof e!="string"||!s)&&Qe("Sanitize failure, invalid URI: "+hu(e));const u=BS.test(e);return(a=t.baseURL)&&!u&&(!e.startsWith("/")&&!a.endsWith("/")&&(e="/"+e),e=a+e),o=(i=e.startsWith(Zm))||t.mode==="file"||t.mode!=="http"&&!u&&n,i?e=e.slice(Zm.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 LS(e){return e?t=>new Promise((n,r)=>{e.readFile(t,(i,o)=>{i?r(i):n(o)})}):NS}async function NS(){Qe("No file system access.")}function OS(e){return e?async function(t,n){const r=qc({},this.options.http,n),i=n&&n.response,o=await e(t,r);return o.ok?Mt(o[i])?o[i]():o.text():Qe(o.status+""+o.statusText)}:zS}async function zS(){Qe("No HTTP fetch method available.")}const US=e=>e!=null&&e===e,GS=e=>e==="true"||e==="false"||e===!0||e===!1,HS=e=>!Number.isNaN(Date.parse(e)),Wm=e=>!Number.isNaN(+e)&&!(e instanceof Date),VS=e=>Wm(e)&&Number.isInteger(+e),Ym={boolean:I_,integer:Ua,number:Ua,date:D_,string:F_,unknown:lu},Su=[GS,VS,Wm,HS],jS=["boolean","integer","number","date"];function qS(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=Su.length,i=Su.map((o,a)=>a+1);for(let o=0,a=0,s,u;o<n;++o)for(u=t?e[o][t]:e[o],s=0;s<r;++s)if(i[s]&&US(u)&&!Su[s](u)&&(i[s]=0,++a,a===Su.length))return"string";return jS[i.reduce((o,a)=>o===0?a:o,0)-1]}function ZS(e,t){return t.reduce((n,r)=>(n[r]=qS(e,r),n),{})}function Qm(e){const t=function(n,r){const i={delimiter:e};return yh(n,r?qc(r,i):i)};return t.responseType="text",t}function yh(e,t){return t.header&&(e=t.header.map(hu).join(t.delimiter)+`
6
- `+e),em(t.delimiter).parse(e+"")}yh.responseType="text";function WS(e){return typeof Buffer=="function"&&Mt(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function wh(e,t){const n=t&&t.property?su(t.property):lu;return Rt(e)&&!WS(e)?YS(n(e),t):n(JSON.parse(e))}wh.responseType="json";function YS(e,t){return!Ft(e)&&k_(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}const QS={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function Xm(e,t){let n,r,i,o;return e=wh(e,t),t&&t.feature?(n=G_,i=t.feature):t&&t.mesh?(n=V_,i=t.mesh,o=QS[t.filter]):Qe("Missing TopoJSON feature or mesh parameter."),r=(r=e.objects[i])?n(e,r,o):Qe("Invalid TopoJSON object: "+i),r&&r.features||[r]}Xm.responseType="json";const vh={dsv:yh,csv:Qm(","),tsv:Qm(" "),json:wh,topojson:Xm};function $m(e,t){return arguments.length>1?(vh[e]=t,this):mi(vh,e)?vh[e]:null}function Km(e,t,n,r){t=t||{};const i=$m(t.type||"json");return i||Qe("Unknown data format type: "+t.type),e=i(e,t),t.parse&&XS(e,t.parse,n,r),mi(e,"columns")&&delete e.columns,e}function XS(e,t,n,r){if(!e.length)return;const i=IS();n=n||i.timeParse,r=r||i.utcParse;let o=e.columns||Object.keys(e[0]),a,s,u,l,f,c;t==="auto"&&(t=ZS(e,o)),o=Object.keys(t);const h=o.map(d=>{const p=t[d];let b,y;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return b=p.split(/:(.+)?/,2),y=b[1],(y[0]==="'"&&y[y.length-1]==="'"||y[0]==='"'&&y[y.length-1]==='"')&&(y=y.slice(1,-1)),(b[0]==="utc"?r:n)(y);if(!Ym[p])throw Error("Illegal format pattern: "+d+":"+p);return Ym[p]});for(u=0,f=e.length,c=o.length;u<f;++u)for(a=e[u],l=0;l<c;++l)s=o[l],a[s]=h[l](a[s])}const Cu=RS(typeof fetch<"u"&&fetch,null);/**
5
+ `)}function l(c){return c.map(f).join(e)}function f(c){return c==null?"":c instanceof Date?G_(c):t.test(c+="")?'"'+c.replace(/"/g,'""')+'"':c}return{parse:r,parseRows:i,format:o,formatBody:s,formatRows:u,formatRow:l,formatValue:f}}var H_=im(" "),V_=H_.parseRows;function j_(e){return e}function q_(e){if(e==null)return j_;var t,n,r=e.scale[0],i=e.scale[1],a=e.translate[0],o=e.translate[1];return function(s,u){u||(t=n=0);var l=2,f=s.length,c=new Array(f);for(c[0]=(t+=s[0])*r+a,c[1]=(n+=s[1])*i+o;l<f;)c[l]=s[l],++l;return c}}function Z_(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function W_(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return am(e,n)})}:am(e,t)}function am(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,a=om(e,t);return n==null&&r==null?{type:"Feature",properties:i,geometry:a}:r==null?{type:"Feature",id:n,properties:i,geometry:a}:{type:"Feature",id:n,bbox:r,properties:i,geometry:a}}function om(e,t){var n=q_(e.transform),r=e.arcs;function i(f,c){c.length&&c.pop();for(var h=r[f<0?~f:f],d=0,p=h.length;d<p;++d)c.push(n(h[d],d));f<0&&Z_(c,p)}function a(f){return n(f)}function o(f){for(var c=[],h=0,d=f.length;h<d;++h)i(f[h],c);return c.length<2&&c.push(c[0]),c}function s(f){for(var c=o(f);c.length<4;)c.push(c[0]);return c}function u(f){return f.map(s)}function l(f){var c=f.type,h;switch(c){case"GeometryCollection":return{type:c,geometries:f.geometries.map(l)};case"Point":h=a(f.coordinates);break;case"MultiPoint":h=f.coordinates.map(a);break;case"LineString":h=o(f.arcs);break;case"MultiLineString":h=f.arcs.map(o);break;case"Polygon":h=u(f.arcs);break;case"MultiPolygon":h=f.arcs.map(u);break;default:return null}return{type:c,coordinates:h}}return l(t)}function Y_(e,t){var n={},r={},i={},a=[],o=-1;t.forEach(function(l,f){var c=e.arcs[l<0?~l:l],h;c.length<3&&!c[1][0]&&!c[1][1]&&(h=t[++o],t[o]=l,t[f]=h)}),t.forEach(function(l){var f=s(l),c=f[0],h=f[1],d,p;if(d=i[c])if(delete i[d.end],d.push(l),d.end=h,p=r[h]){delete r[p.start];var m=p===d?d:d.concat(p);r[m.start=d.start]=i[m.end=p.end]=m}else r[d.start]=i[d.end]=d;else if(d=r[h])if(delete r[d.start],d.unshift(l),d.start=c,p=i[c]){delete i[p.end];var y=p===d?d:p.concat(d);r[y.start=p.start]=i[y.end=d.end]=y}else r[d.start]=i[d.end]=d;else d=[l],r[d.start=c]=i[d.end=h]=d});function s(l){var f=e.arcs[l<0?~l:l],c=f[0],h;return e.transform?(h=[0,0],f.forEach(function(d){h[0]+=d[0],h[1]+=d[1]})):h=f[f.length-1],l<0?[h,c]:[c,h]}function u(l,f){for(var c in l){var h=l[c];delete f[h.start],delete h.start,delete h.end,h.forEach(function(d){n[d<0?~d:d]=1}),a.push(h)}}return u(i,r),u(r,i),t.forEach(function(l){n[l<0?~l:l]||a.push([l])}),a}function Q_(e){return om(e,$_.apply(this,arguments))}function $_(e,t,n){var r,i,a;if(arguments.length>1)r=X_(e,t,n);else for(i=0,r=new Array(a=e.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:Y_(e,r)}}function X_(e,t,n){var r=[],i=[],a;function o(c){var h=c<0?~c:c;(i[h]||(i[h]=[])).push({i:c,g:a})}function s(c){c.forEach(o)}function u(c){c.forEach(s)}function l(c){c.forEach(u)}function f(c){switch(a=c,c.type){case"GeometryCollection":c.geometries.forEach(f);break;case"LineString":s(c.arcs);break;case"MultiLineString":case"Polygon":u(c.arcs);break;case"MultiPolygon":l(c.arcs);break}}return f(t),i.forEach(n==null?function(c){r.push(c[0].i)}:function(c){n(c[0].g,c[c.length-1].g)&&r.push(c[0].i)}),r}function Vo(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function K_(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function gu(e){let t,n,r;e.length!==2?(t=Vo,n=(s,u)=>Vo(e(s),u),r=(s,u)=>e(s)-u):(t=e===Vo||e===K_?e:J_,n=e,r=e);function i(s,u,l=0,f=s.length){if(l<f){if(t(u,u)!==0)return f;do{const c=l+f>>>1;n(s[c],u)<0?l=c+1:f=c}while(l<f)}return l}function a(s,u,l=0,f=s.length){if(l<f){if(t(u,u)!==0)return f;do{const c=l+f>>>1;n(s[c],u)<=0?l=c+1:f=c}while(l<f)}return l}function o(s,u,l=0,f=s.length){const c=i(s,u,l,f-1);return c>l&&r(s[c-1],u)>-r(s[c],u)?c-1:c}return{left:i,center:o,right:a}}function J_(){return 0}function sm(e){return e===null?NaN:+e}const lm=gu(Vo),Er=lm.right;lm.left,gu(sm).center;function e4(e,t){let n,r;if(t===void 0)for(const i of e)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let a of e)(a=t(a,++i,e))!=null&&(n===void 0?a>=a&&(n=r=a):(n>a&&(n=a),r<a&&(r=a)))}return[n,r]}class _r extends Map{constructor(t,n=r4){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(um(this,t))}has(t){return super.has(um(this,t))}set(t,n){return super.set(t4(this,t),n)}delete(t){return super.delete(n4(this,t))}}function um({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function t4({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function n4({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function r4(e){return e!==null&&typeof e=="object"?e.valueOf():e}function eh(e){return e}function mu(e,...t){return fm(e,eh,eh,t)}function i4(e,...t){return fm(e,Array.from,eh,t)}function fm(e,t,n,r){return function i(a,o){if(o>=r.length)return n(a);const s=new _r,u=r[o++];let l=-1;for(const f of a){const c=u(f,++l,a),h=s.get(c);h?h.push(f):s.set(c,[f])}for(const[f,c]of s)s.set(f,i(c,o));return t(s)}(e,0)}var th=Math.sqrt(50),nh=Math.sqrt(10),rh=Math.sqrt(2);function bu(e,t,n){var r,i=-1,a,o,s;if(t=+t,e=+e,n=+n,e===t&&n>0)return[e];if((r=t<e)&&(a=e,e=t,t=a),(s=cm(e,t,n))===0||!isFinite(s))return[];if(s>0){let u=Math.round(e/s),l=Math.round(t/s);for(u*s<e&&++u,l*s>t&&--l,o=new Array(a=l-u+1);++i<a;)o[i]=(u+i)*s}else{s=-s;let u=Math.round(e*s),l=Math.round(t*s);for(u/s<e&&++u,l/s>t&&--l,o=new Array(a=l-u+1);++i<a;)o[i]=(u+i)/s}return r&&o.reverse(),o}function cm(e,t,n){var r=(t-e)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,i);return i>=0?(a>=th?10:a>=nh?5:a>=rh?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=th?10:a>=nh?5:a>=rh?2:1)}function bi(e,t,n){var r=Math.abs(t-e)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;return a>=th?i*=10:a>=nh?i*=5:a>=rh&&(i*=2),t<e?-i:i}function hm(e,t,n=sm){if(r=e.length){if((t=+t)<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e),s=+n(e[a+1],a+1,e);return o+(s-o)*(i-a)}}function jo(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=new Array(i);++r<i;)a[r]=e+r*n;return a}function yu(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 a4(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function wu(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 Aa(e){return e=wu(Math.abs(e)),e?e[1]:NaN}function o4(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],u=0;i>0&&s>0&&(u+s+1>r&&(s=Math.max(1,r-u)),a.push(n.substring(i-=s,i+s)),!((u+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function s4(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var l4=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Sr(e){if(!(t=l4.exec(e)))throw new Error("invalid format: "+e);var t;return new ih({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]})}Sr.prototype=ih.prototype;function ih(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+""}ih.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 u4(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 dm;function f4(e,t){var n=wu(e,t);if(!n)return e+"";var r=n[0],i=n[1],a=i-(dm=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+new Array(a-o+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+wu(e,Math.max(0,t+a-1))[0]}function pm(e,t){var n=wu(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 gm={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:a4,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)=>pm(e*100,t),r:pm,s:f4,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function mm(e){return e}var bm=Array.prototype.map,ym=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function c4(e){var t=e.grouping===void 0||e.thousands===void 0?mm:o4(bm.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?mm:s4(bm.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",u=e.nan===void 0?"NaN":e.nan+"";function l(c){c=Sr(c);var h=c.fill,d=c.align,p=c.sign,m=c.symbol,y=c.zero,w=c.width,_=c.comma,C=c.precision,E=c.trim,k=c.type;k==="n"?(_=!0,k="g"):gm[k]||(C===void 0&&(C=12),E=!0,k="g"),(y||h==="0"&&d==="=")&&(y=!0,h="0",d="=");var B=m==="$"?n:m==="#"&&/[boxX]/.test(k)?"0"+k.toLowerCase():"",I=m==="$"?r:/[%p]/.test(k)?o:"",R=gm[k],L=/[defgprs%]/.test(k);C=C===void 0?6:/[gprs]/.test(k)?Math.max(1,Math.min(21,C)):Math.max(0,Math.min(20,C));function j(M){var ie=B,se=I,ge,Ie,$e;if(k==="c")se=R(M)+se,M="";else{M=+M;var De=M<0||1/M<0;if(M=isNaN(M)?u:R(Math.abs(M),C),E&&(M=u4(M)),De&&+M==0&&p!=="+"&&(De=!1),ie=(De?p==="("?p:s:p==="-"||p==="("?"":p)+ie,se=(k==="s"?ym[8+dm/3]:"")+se+(De&&p==="("?")":""),L){for(ge=-1,Ie=M.length;++ge<Ie;)if($e=M.charCodeAt(ge),48>$e||$e>57){se=($e===46?i+M.slice(ge+1):M.slice(ge))+se,M=M.slice(0,ge);break}}}_&&!y&&(M=t(M,1/0));var Ke=ie.length+M.length+se.length,Ze=Ke<w?new Array(w-Ke+1).join(h):"";switch(_&&y&&(M=t(Ze+M,Ze.length?w-se.length:1/0),Ze=""),d){case"<":M=ie+M+se+Ze;break;case"=":M=ie+Ze+M+se;break;case"^":M=Ze.slice(0,Ke=Ze.length>>1)+ie+M+se+Ze.slice(Ke);break;default:M=Ze+ie+M+se;break}return a(M)}return j.toString=function(){return c+""},j}function f(c,h){var d=l((c=Sr(c),c.type="f",c)),p=Math.max(-8,Math.min(8,Math.floor(Aa(h)/3)))*3,m=Math.pow(10,-p),y=ym[8+p/3];return function(w){return d(m*w)+y}}return{format:l,formatPrefix:f}}var vu,gt,ah;h4({thousands:",",grouping:[3],currency:["$",""]});function h4(e){return vu=c4(e),gt=vu.format,ah=vu.formatPrefix,vu}function wm(e){return Math.max(0,-Aa(Math.abs(e)))}function vm(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Aa(t)/3)))*3-Aa(Math.abs(e)))}function xm(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Aa(t)-Aa(e))+1}var oh=new Date,sh=new Date;function st(e,t,n,r){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=function(a){return e(a=new Date(+a)),a},i.ceil=function(a){return e(a=new Date(a-1)),t(a,1),e(a),a},i.round=function(a){var o=i(a),s=i.ceil(a);return a-o<s-a?o:s},i.offset=function(a,o){return t(a=new Date(+a),o==null?1:Math.floor(o)),a},i.range=function(a,o,s){var u=[],l;if(a=i.ceil(a),s=s==null?1:Math.floor(s),!(a<o)||!(s>0))return u;do u.push(l=new Date(+a)),t(a,s),e(a);while(l<a&&a<o);return u},i.filter=function(a){return st(function(o){if(o>=o)for(;e(o),!a(o);)o.setTime(o-1)},function(o,s){if(o>=o)if(s<0)for(;++s<=0;)for(;t(o,-1),!a(o););else for(;--s>=0;)for(;t(o,1),!a(o););})},n&&(i.count=function(a,o){return oh.setTime(+a),sh.setTime(+o),e(oh),e(sh),Math.floor(n(oh,sh))},i.every=function(a){return a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(r?function(o){return r(o)%a===0}:function(o){return i.count(0,o)%a===0}):i}),i}var xu=st(function(){},function(e,t){e.setTime(+e+t)},function(e,t){return t-e});xu.every=function(e){return e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?st(function(t){t.setTime(Math.floor(t/e)*e)},function(t,n){t.setTime(+t+n*e)},function(t,n){return(n-t)/e}):xu};const lh=xu;xu.range;const er=1e3,Jt=er*60,tr=Jt*60,yi=tr*24,uh=yi*7,Am=yi*30,fh=yi*365;var Em=st(function(e){e.setTime(e-e.getMilliseconds())},function(e,t){e.setTime(+e+t*er)},function(e,t){return(t-e)/er},function(e){return e.getUTCSeconds()});const Cr=Em;Em.range;var _m=st(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*er)},function(e,t){e.setTime(+e+t*Jt)},function(e,t){return(t-e)/Jt},function(e){return e.getMinutes()});const ch=_m;_m.range;var Sm=st(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*er-e.getMinutes()*Jt)},function(e,t){e.setTime(+e+t*tr)},function(e,t){return(t-e)/tr},function(e){return e.getHours()});const hh=Sm;Sm.range;var Cm=st(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Jt)/yi,e=>e.getDate()-1);const wi=Cm;Cm.range;function vi(e){return st(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Jt)/uh})}var qo=vi(0),Au=vi(1),d4=vi(2),p4=vi(3),Ea=vi(4),g4=vi(5),m4=vi(6);qo.range,Au.range,d4.range,p4.range,Ea.range,g4.range,m4.range;var Zo=st(function(e){e.setDate(1),e.setHours(0,0,0,0)},function(e,t){e.setMonth(e.getMonth()+t)},function(e,t){return t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12},function(e){return e.getMonth()});Zo.range;var dh=st(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()});dh.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:st(function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n*e)})};const Tr=dh;dh.range;var Tm=st(function(e){e.setUTCSeconds(0,0)},function(e,t){e.setTime(+e+t*Jt)},function(e,t){return(t-e)/Jt},function(e){return e.getUTCMinutes()});const ph=Tm;Tm.range;var km=st(function(e){e.setUTCMinutes(0,0,0)},function(e,t){e.setTime(+e+t*tr)},function(e,t){return(t-e)/tr},function(e){return e.getUTCHours()});const gh=km;km.range;var Im=st(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/yi},function(e){return e.getUTCDate()-1});const xi=Im;Im.range;function Ai(e){return st(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/uh})}var Wo=Ai(0),Eu=Ai(1),b4=Ai(2),y4=Ai(3),_a=Ai(4),w4=Ai(5),v4=Ai(6);Wo.range,Eu.range,b4.range,y4.range,_a.range,w4.range,v4.range;var Yo=st(function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCMonth(e.getUTCMonth()+t)},function(e,t){return t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12},function(e){return e.getUTCMonth()});Yo.range;var mh=st(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()});mh.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:st(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})};const kr=mh;mh.range;function Bm(e,t,n,r,i,a){const o=[[Cr,1,er],[Cr,5,5*er],[Cr,15,15*er],[Cr,30,30*er],[a,1,Jt],[a,5,5*Jt],[a,15,15*Jt],[a,30,30*Jt],[i,1,tr],[i,3,3*tr],[i,6,6*tr],[i,12,12*tr],[r,1,yi],[r,2,2*yi],[n,1,uh],[t,1,Am],[t,3,3*Am],[e,1,fh]];function s(l,f,c){const h=f<l;h&&([l,f]=[f,l]);const d=c&&typeof c.range=="function"?c:u(l,f,c),p=d?d.range(l,+f+1):[];return h?p.reverse():p}function u(l,f,c){const h=Math.abs(f-l)/c,d=gu(([,,y])=>y).right(o,h);if(d===o.length)return e.every(bi(l/fh,f/fh,c));if(d===0)return lh.every(Math.max(bi(l,f,c),1));const[p,m]=o[h/o[d-1][2]<o[d][2]/h?d-1:d];return p.every(m)}return[s,u]}const[x4,A4]=Bm(kr,Yo,Wo,xi,gh,ph),[E4,_4]=Bm(Tr,Zo,qo,wi,hh,ch),Qo="year",$o="quarter",Xo="month",Ko="week",Jo="date",_u="day",bh="dayofyear",es="hours",ts="minutes",ns="seconds",Su="milliseconds";[Qo,$o,Xo,Ko,Jo,_u,bh,es,ts,ns,Su].reduce((e,t,n)=>(e[t]=1+n,e),{});const S4={[Qo]:Tr,[$o]:Zo.every(3),[Xo]:Zo,[Ko]:qo,[Jo]:wi,[_u]:wi,[bh]:wi,[es]:hh,[ts]:ch,[ns]:Cr,[Su]:lh},C4={[Qo]:kr,[$o]:Yo.every(3),[Xo]:Yo,[Ko]:Wo,[Jo]:xi,[_u]:xi,[bh]:xi,[es]:gh,[ts]:ph,[ns]:Cr,[Su]:lh};function T4(e){return S4[e]}function k4(e){return C4[e]}function yh(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 wh(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 rs(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function Dm(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,u=e.shortMonths,l=is(i),f=as(i),c=is(a),h=as(a),d=is(o),p=as(o),m=is(s),y=as(s),w=is(u),_=as(u),C={a:De,A:Ke,b:Ze,B:Je,c:null,d:Nm,e:Nm,f:X4,g:sS,G:uS,H:Y4,I:Q4,j:$4,L:Om,m:K4,M:J4,p:Ee,q:_e,Q:jm,s:qm,S:eS,u:tS,U:nS,V:rS,w:iS,W:aS,x:null,X:null,y:oS,Y:lS,Z:fS,"%":Vm},E={a:pt,A:qt,b:Oe,B:N,c:null,d:Um,e:Um,f:pS,g:_S,G:CS,H:cS,I:hS,j:dS,L:Gm,m:gS,M:mS,p:P,q,Q:jm,s:qm,S:bS,u:yS,U:wS,V:vS,w:xS,W:AS,x:null,X:null,y:ES,Y:SS,Z:TS,"%":Vm},k={a:j,A:M,b:ie,B:se,c:ge,d:Pm,e:Pm,f:j4,g:Mm,G:Rm,H:Lm,I:Lm,j:U4,L:V4,m:z4,M:G4,p:L,q:O4,Q:Z4,s:W4,S:H4,u:R4,U:M4,V:P4,w:F4,W:L4,x:Ie,X:$e,y:Mm,Y:Rm,Z:N4,"%":q4};C.x=B(n,C),C.X=B(r,C),C.c=B(t,C),E.x=B(n,E),E.X=B(r,E),E.c=B(t,E);function B(H,Y){return function(S){var x=[],G=-1,Z=0,le=H.length,J,ue,Zt;for(S instanceof Date||(S=new Date(+S));++G<le;)H.charCodeAt(G)===37&&(x.push(H.slice(Z,G)),(ue=Fm[J=H.charAt(++G)])!=null?J=H.charAt(++G):ue=J==="e"?" ":"0",(Zt=Y[J])&&(J=Zt(S,ue)),x.push(J),Z=G+1);return x.push(H.slice(Z,G)),x.join("")}}function I(H,Y){return function(S){var x=rs(1900,void 0,1),G=R(x,H,S+="",0),Z,le;if(G!=S.length)return null;if("Q"in x)return new Date(x.Q);if("s"in x)return new Date(x.s*1e3+("L"in x?x.L:0));if(Y&&!("Z"in x)&&(x.Z=0),"p"in x&&(x.H=x.H%12+x.p*12),x.m===void 0&&(x.m="q"in x?x.q:0),"V"in x){if(x.V<1||x.V>53)return null;"w"in x||(x.w=1),"Z"in x?(Z=wh(rs(x.y,0,1)),le=Z.getUTCDay(),Z=le>4||le===0?Eu.ceil(Z):Eu(Z),Z=xi.offset(Z,(x.V-1)*7),x.y=Z.getUTCFullYear(),x.m=Z.getUTCMonth(),x.d=Z.getUTCDate()+(x.w+6)%7):(Z=yh(rs(x.y,0,1)),le=Z.getDay(),Z=le>4||le===0?Au.ceil(Z):Au(Z),Z=wi.offset(Z,(x.V-1)*7),x.y=Z.getFullYear(),x.m=Z.getMonth(),x.d=Z.getDate()+(x.w+6)%7)}else("W"in x||"U"in x)&&("w"in x||(x.w="u"in x?x.u%7:"W"in x?1:0),le="Z"in x?wh(rs(x.y,0,1)).getUTCDay():yh(rs(x.y,0,1)).getDay(),x.m=0,x.d="W"in x?(x.w+6)%7+x.W*7-(le+5)%7:x.w+x.U*7-(le+6)%7);return"Z"in x?(x.H+=x.Z/100|0,x.M+=x.Z%100,wh(x)):yh(x)}}function R(H,Y,S,x){for(var G=0,Z=Y.length,le=S.length,J,ue;G<Z;){if(x>=le)return-1;if(J=Y.charCodeAt(G++),J===37){if(J=Y.charAt(G++),ue=k[J in Fm?Y.charAt(G++):J],!ue||(x=ue(H,S,x))<0)return-1}else if(J!=S.charCodeAt(x++))return-1}return x}function L(H,Y,S){var x=l.exec(Y.slice(S));return x?(H.p=f.get(x[0].toLowerCase()),S+x[0].length):-1}function j(H,Y,S){var x=d.exec(Y.slice(S));return x?(H.w=p.get(x[0].toLowerCase()),S+x[0].length):-1}function M(H,Y,S){var x=c.exec(Y.slice(S));return x?(H.w=h.get(x[0].toLowerCase()),S+x[0].length):-1}function ie(H,Y,S){var x=w.exec(Y.slice(S));return x?(H.m=_.get(x[0].toLowerCase()),S+x[0].length):-1}function se(H,Y,S){var x=m.exec(Y.slice(S));return x?(H.m=y.get(x[0].toLowerCase()),S+x[0].length):-1}function ge(H,Y,S){return R(H,t,Y,S)}function Ie(H,Y,S){return R(H,n,Y,S)}function $e(H,Y,S){return R(H,r,Y,S)}function De(H){return o[H.getDay()]}function Ke(H){return a[H.getDay()]}function Ze(H){return u[H.getMonth()]}function Je(H){return s[H.getMonth()]}function Ee(H){return i[+(H.getHours()>=12)]}function _e(H){return 1+~~(H.getMonth()/3)}function pt(H){return o[H.getUTCDay()]}function qt(H){return a[H.getUTCDay()]}function Oe(H){return u[H.getUTCMonth()]}function N(H){return s[H.getUTCMonth()]}function P(H){return i[+(H.getUTCHours()>=12)]}function q(H){return 1+~~(H.getUTCMonth()/3)}return{format:function(H){var Y=B(H+="",C);return Y.toString=function(){return H},Y},parse:function(H){var Y=I(H+="",!1);return Y.toString=function(){return H},Y},utcFormat:function(H){var Y=B(H+="",E);return Y.toString=function(){return H},Y},utcParse:function(H){var Y=I(H+="",!0);return Y.toString=function(){return H},Y}}}var Fm={"-":"",_:" ",0:"0"},lt=/^\s*\d+/,I4=/^%/,B4=/[\\^$*+?|[\]().{}]/g;function be(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",a=i.length;return r+(a<n?new Array(n-a+1).join(t)+i:i)}function D4(e){return e.replace(B4,"\\$&")}function is(e){return new RegExp("^(?:"+e.map(D4).join("|")+")","i")}function as(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function F4(e,t,n){var r=lt.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function R4(e,t,n){var r=lt.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function M4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function P4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function L4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Rm(e,t,n){var r=lt.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Mm(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function N4(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 O4(e,t,n){var r=lt.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function z4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function Pm(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function U4(e,t,n){var r=lt.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Lm(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function G4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function H4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function V4(e,t,n){var r=lt.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function j4(e,t,n){var r=lt.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function q4(e,t,n){var r=I4.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Z4(e,t,n){var r=lt.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function W4(e,t,n){var r=lt.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Nm(e,t){return be(e.getDate(),t,2)}function Y4(e,t){return be(e.getHours(),t,2)}function Q4(e,t){return be(e.getHours()%12||12,t,2)}function $4(e,t){return be(1+wi.count(Tr(e),e),t,3)}function Om(e,t){return be(e.getMilliseconds(),t,3)}function X4(e,t){return Om(e,t)+"000"}function K4(e,t){return be(e.getMonth()+1,t,2)}function J4(e,t){return be(e.getMinutes(),t,2)}function eS(e,t){return be(e.getSeconds(),t,2)}function tS(e){var t=e.getDay();return t===0?7:t}function nS(e,t){return be(qo.count(Tr(e)-1,e),t,2)}function zm(e){var t=e.getDay();return t>=4||t===0?Ea(e):Ea.ceil(e)}function rS(e,t){return e=zm(e),be(Ea.count(Tr(e),e)+(Tr(e).getDay()===4),t,2)}function iS(e){return e.getDay()}function aS(e,t){return be(Au.count(Tr(e)-1,e),t,2)}function oS(e,t){return be(e.getFullYear()%100,t,2)}function sS(e,t){return e=zm(e),be(e.getFullYear()%100,t,2)}function lS(e,t){return be(e.getFullYear()%1e4,t,4)}function uS(e,t){var n=e.getDay();return e=n>=4||n===0?Ea(e):Ea.ceil(e),be(e.getFullYear()%1e4,t,4)}function fS(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+be(t/60|0,"0",2)+be(t%60,"0",2)}function Um(e,t){return be(e.getUTCDate(),t,2)}function cS(e,t){return be(e.getUTCHours(),t,2)}function hS(e,t){return be(e.getUTCHours()%12||12,t,2)}function dS(e,t){return be(1+xi.count(kr(e),e),t,3)}function Gm(e,t){return be(e.getUTCMilliseconds(),t,3)}function pS(e,t){return Gm(e,t)+"000"}function gS(e,t){return be(e.getUTCMonth()+1,t,2)}function mS(e,t){return be(e.getUTCMinutes(),t,2)}function bS(e,t){return be(e.getUTCSeconds(),t,2)}function yS(e){var t=e.getUTCDay();return t===0?7:t}function wS(e,t){return be(Wo.count(kr(e)-1,e),t,2)}function Hm(e){var t=e.getUTCDay();return t>=4||t===0?_a(e):_a.ceil(e)}function vS(e,t){return e=Hm(e),be(_a.count(kr(e),e)+(kr(e).getUTCDay()===4),t,2)}function xS(e){return e.getUTCDay()}function AS(e,t){return be(Eu.count(kr(e)-1,e),t,2)}function ES(e,t){return be(e.getUTCFullYear()%100,t,2)}function _S(e,t){return e=Hm(e),be(e.getUTCFullYear()%100,t,2)}function SS(e,t){return be(e.getUTCFullYear()%1e4,t,4)}function CS(e,t){var n=e.getUTCDay();return e=n>=4||n===0?_a(e):_a.ceil(e),be(e.getUTCFullYear()%1e4,t,4)}function TS(){return"+0000"}function Vm(){return"%"}function jm(e){return+e}function qm(e){return Math.floor(+e/1e3)}var Sa,vh,Zm,xh,Wm;kS({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 kS(e){return Sa=Dm(e),vh=Sa.format,Zm=Sa.parse,xh=Sa.utcFormat,Wm=Sa.utcParse,Sa}function os(e){const t={};return n=>t[n]||(t[n]=e(n))}function IS(e,t){return n=>{const r=e(n),i=r.indexOf(t);if(i<0)return r;let a=BS(r,i);const o=a<r.length?r.slice(a):"";for(;--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function BS(e,t){let n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}function DS(e){const t=os(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(r){const i=Sr(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return IS(t(i),t(".1f")(1)[1])}else return t(i)},formatSpan(r,i,a,o){o=Sr(o??",f");const s=bi(r,i,a),u=Math.max(Math.abs(r),Math.abs(i));let l;if(o.precision==null)switch(o.type){case"s":return isNaN(l=vm(s,u))||(o.precision=l),n(o,u);case"":case"e":case"g":case"p":case"r":{isNaN(l=xm(s,u))||(o.precision=l-(o.type==="e"));break}case"f":case"%":{isNaN(l=wm(s))||(o.precision=l-(o.type==="%")*2);break}}return t(o)}}}FS();function FS(){return DS({format:gt,formatPrefix:ah})}function Ym(e,t,n){n=n||{},Rt(n)||Qe("Invalid time multi-format specifier: ".concat(n));const r=t(ns),i=t(ts),a=t(es),o=t(Jo),s=t(Ko),u=t(Xo),l=t($o),f=t(Qo),c=e(n[Su]||".%L"),h=e(n[ns]||":%S"),d=e(n[ts]||"%I:%M"),p=e(n[es]||"%I %p"),m=e(n[Jo]||n[_u]||"%a %d"),y=e(n[Ko]||"%b %d"),w=e(n[Xo]||"%B"),_=e(n[$o]||"%B"),C=e(n[Qo]||"%Y");return E=>(r(E)<E?c:i(E)<E?h:a(E)<E?d:o(E)<E?p:u(E)<E?s(E)<E?m:y:f(E)<E?l(E)<E?w:_:C)(E)}function Qm(e){const t=os(e.format),n=os(e.utcFormat);return{timeFormat:r=>Pe(r)?t(r):Ym(t,T4,r),utcFormat:r=>Pe(r)?n(r):Ym(n,k4,r),timeParse:os(e.parse),utcParse:os(e.utcParse)}}let Ah;RS();function RS(){return Ah=Qm({format:vh,parse:Zm,utcFormat:xh,utcParse:Wm})}function MS(e){return Qm(Dm(e))}function PS(e){return arguments.length?Ah=MS(e):Ah}const LS=/^(data:|([A-Za-z]+:)?\/\/)/,NS=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,OS=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,$m="file://";function zS(e,t){return n=>({options:n||{},sanitize:GS,load:US,fileAccess:!!t,file:HS(t),http:jS(e)})}async function US(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t)}async function GS(e,t){t=$c({},this.options,t);const n=this.fileAccess,r={href:null};let i,a,o;const s=NS.test(e.replace(OS,""));(e==null||typeof e!="string"||!s)&&Qe("Sanitize failure, invalid URI: "+du(e));const u=LS.test(e);return(o=t.baseURL)&&!u&&(!e.startsWith("/")&&!o.endsWith("/")&&(e="/"+e),e=o+e),a=(i=e.startsWith($m))||t.mode==="file"||t.mode!=="http"&&!u&&n,i?e=e.slice($m.length):e.startsWith("//")&&(t.defaultProtocol==="file"?(e=e.slice(2),a=!0):e=(t.defaultProtocol||"http")+":"+e),Object.defineProperty(r,"localFile",{value:!!a}),r.href=e,t.target&&(r.target=t.target+""),t.rel&&(r.rel=t.rel+""),t.context==="image"&&t.crossOrigin&&(r.crossOrigin=t.crossOrigin+""),r}function HS(e){return e?t=>new Promise((n,r)=>{e.readFile(t,(i,a)=>{i?r(i):n(a)})}):VS}async function VS(){Qe("No file system access.")}function jS(e){return e?async function(t,n){const r=$c({},this.options.http,n),i=n&&n.response,a=await e(t,r);return a.ok?Mt(a[i])?a[i]():a.text():Qe(a.status+""+a.statusText)}:qS}async function qS(){Qe("No HTTP fetch method available.")}const ZS=e=>e!=null&&e===e,WS=e=>e==="true"||e==="false"||e===!0||e===!1,YS=e=>!Number.isNaN(Date.parse(e)),Xm=e=>!Number.isNaN(+e)&&!(e instanceof Date),QS=e=>Xm(e)&&Number.isInteger(+e),Km={boolean:P_,integer:Uo,number:Uo,date:N_,string:O_,unknown:uu},Cu=[WS,QS,Xm,YS],$S=["boolean","integer","number","date"];function XS(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=Cu.length,i=Cu.map((a,o)=>o+1);for(let a=0,o=0,s,u;a<n;++a)for(u=t?e[a][t]:e[a],s=0;s<r;++s)if(i[s]&&ZS(u)&&!Cu[s](u)&&(i[s]=0,++o,o===Cu.length))return"string";return $S[i.reduce((a,o)=>a===0?o:a,0)-1]}function KS(e,t){return t.reduce((n,r)=>(n[r]=XS(e,r),n),{})}function Jm(e){const t=function(n,r){const i={delimiter:e};return Eh(n,r?$c(r,i):i)};return t.responseType="text",t}function Eh(e,t){return t.header&&(e=t.header.map(du).join(t.delimiter)+`
6
+ `+e),im(t.delimiter).parse(e+"")}Eh.responseType="text";function JS(e){return typeof Buffer=="function"&&Mt(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function _h(e,t){const n=t&&t.property?lu(t.property):uu;return Rt(e)&&!JS(e)?eC(n(e),t):n(JSON.parse(e))}_h.responseType="json";function eC(e,t){return!Ft(e)&&R_(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}const tC={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function e1(e,t){let n,r,i,a;return e=_h(e,t),t&&t.feature?(n=W_,i=t.feature):t&&t.mesh?(n=Q_,i=t.mesh,a=tC[t.filter]):Qe("Missing TopoJSON feature or mesh parameter."),r=(r=e.objects[i])?n(e,r,a):Qe("Invalid TopoJSON object: "+i),r&&r.features||[r]}e1.responseType="json";const Sh={dsv:Eh,csv:Jm(","),tsv:Jm(" "),json:_h,topojson:e1};function t1(e,t){return arguments.length>1?(Sh[e]=t,this):mi(Sh,e)?Sh[e]:null}function n1(e,t,n,r){t=t||{};const i=t1(t.type||"json");return i||Qe("Unknown data format type: "+t.type),e=i(e,t),t.parse&&nC(e,t.parse,n,r),mi(e,"columns")&&delete e.columns,e}function nC(e,t,n,r){if(!e.length)return;const i=PS();n=n||i.timeParse,r=r||i.utcParse;let a=e.columns||Object.keys(e[0]),o,s,u,l,f,c;t==="auto"&&(t=KS(e,a)),a=Object.keys(t);const h=a.map(d=>{const p=t[d];let m,y;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return m=p.split(/:(.+)?/,2),y=m[1],(y[0]==="'"&&y[y.length-1]==="'"||y[0]==='"'&&y[y.length-1]==='"')&&(y=y.slice(1,-1)),(m[0]==="utc"?r:n)(y);if(!Km[p])throw Error("Illegal format pattern: "+d+":"+p);return Km[p]});for(u=0,f=e.length,c=a.length;u<f;++u)for(o=e[u],l=0;l<c;++l)s=a[l],o[s]=h[l](o[s])}const Tu=zS(typeof fetch<"u"&&fetch,null);/**
7
7
  * @license
8
8
  * Copyright 2017 Google LLC
9
9
  * SPDX-License-Identifier: BSD-3-Clause
10
- */const ss=globalThis,ku=ss.trustedTypes,Jm=ku?ku.createPolicy("lit-html",{createHTML:e=>e}):void 0,e1="$lit$",Tr=`lit$${(Math.random()+"").slice(9)}$`,t1="?"+Tr,$S=`<${t1}>`,Ei=document,ls=()=>Ei.createComment(""),us=e=>e===null||typeof e!="object"&&typeof e!="function",n1=Array.isArray,KS=e=>n1(e)||typeof(e==null?void 0:e[Symbol.iterator])=="function",xh=`[
11
- \f\r]`,fs=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,r1=/-->/g,i1=/>/g,_i=RegExp(`>|${xh}(?:([^\\s"'>=/]+)(${xh}*=${xh}*(?:[^
12
- \f\r"'\`<>=]|("|')|))|$)`,"g"),o1=/'/g,a1=/"/g,s1=/^(?:script|style|textarea|title)$/i,JS=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),mn=JS(1),ko=Symbol.for("lit-noChange"),rt=Symbol.for("lit-nothing"),l1=new WeakMap,Si=Ei.createTreeWalker(Ei,129);function u1(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return Jm!==void 0?Jm.createHTML(t):t}const eC=(e,t)=>{const n=e.length-1,r=[];let i,o=t===2?"<svg>":"",a=fs;for(let s=0;s<n;s++){const u=e[s];let l,f,c=-1,h=0;for(;h<u.length&&(a.lastIndex=h,f=a.exec(u),f!==null);)h=a.lastIndex,a===fs?f[1]==="!--"?a=r1:f[1]!==void 0?a=i1:f[2]!==void 0?(s1.test(f[2])&&(i=RegExp("</"+f[2],"g")),a=_i):f[3]!==void 0&&(a=_i):a===_i?f[0]===">"?(a=i??fs,c=-1):f[1]===void 0?c=-2:(c=a.lastIndex-f[2].length,l=f[1],a=f[3]===void 0?_i:f[3]==='"'?a1:o1):a===a1||a===o1?a=_i:a===r1||a===i1?a=fs:(a=_i,i=void 0);const d=a===_i&&e[s+1].startsWith("/>")?" ":"";o+=a===fs?u+$S:c>=0?(r.push(l),u.slice(0,c)+e1+u.slice(c)+Tr+d):u+Tr+(c===-2?s:d)}return[u1(e,o+(e[n]||"<?>")+(t===2?"</svg>":"")),r]};class cs{constructor({strings:t,_$litType$:n},r){let i;this.parts=[];let o=0,a=0;const s=t.length-1,u=this.parts,[l,f]=eC(t,n);if(this.el=cs.createElement(l,r),Si.currentNode=this.el.content,n===2){const c=this.el.content.firstChild;c.replaceWith(...c.childNodes)}for(;(i=Si.nextNode())!==null&&u.length<s;){if(i.nodeType===1){if(i.hasAttributes())for(const c of i.getAttributeNames())if(c.endsWith(e1)){const h=f[a++],d=i.getAttribute(c).split(Tr),p=/([.?@])?(.*)/.exec(h);u.push({type:1,index:o,name:p[2],strings:d,ctor:p[1]==="."?nC:p[1]==="?"?rC:p[1]==="@"?iC:Tu}),i.removeAttribute(c)}else c.startsWith(Tr)&&(u.push({type:6,index:o}),i.removeAttribute(c));if(s1.test(i.tagName)){const c=i.textContent.split(Tr),h=c.length-1;if(h>0){i.textContent=ku?ku.emptyScript:"";for(let d=0;d<h;d++)i.append(c[d],ls()),Si.nextNode(),u.push({type:2,index:++o});i.append(c[h],ls())}}}else if(i.nodeType===8)if(i.data===t1)u.push({type:2,index:o});else{let c=-1;for(;(c=i.data.indexOf(Tr,c+1))!==-1;)u.push({type:7,index:o}),c+=Tr.length-1}o++}}static createElement(t,n){const r=Ei.createElement("template");return r.innerHTML=t,r}}function To(e,t,n=e,r){var a,s;if(t===ko)return t;let i=r!==void 0?(a=n._$Co)==null?void 0:a[r]:n._$Cl;const o=us(t)?void 0:t._$litDirective$;return(i==null?void 0:i.constructor)!==o&&((s=i==null?void 0:i._$AO)==null||s.call(i,!1),o===void 0?i=void 0:(i=new o(e),i._$AT(e,n,r)),r!==void 0?(n._$Co??(n._$Co=[]))[r]=i:n._$Cl=i),i!==void 0&&(t=To(e,i._$AS(e,t.values),i,r)),t}class tC{constructor(t,n){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:n},parts:r}=this._$AD,i=((t==null?void 0:t.creationScope)??Ei).importNode(n,!0);Si.currentNode=i;let o=Si.nextNode(),a=0,s=0,u=r[0];for(;u!==void 0;){if(a===u.index){let l;u.type===2?l=new hs(o,o.nextSibling,this,t):u.type===1?l=new u.ctor(o,u.name,u.strings,this,t):u.type===6&&(l=new oC(o,this,t)),this._$AV.push(l),u=r[++s]}a!==(u==null?void 0:u.index)&&(o=Si.nextNode(),a++)}return Si.currentNode=Ei,i}p(t){let n=0;for(const r of this._$AV)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,n),n+=r.strings.length-2):r._$AI(t[n])),n++}}class hs{get _$AU(){var t;return((t=this._$AM)==null?void 0:t._$AU)??this._$Cv}constructor(t,n,r,i){this.type=2,this._$AH=rt,this._$AN=void 0,this._$AA=t,this._$AB=n,this._$AM=r,this.options=i,this._$Cv=(i==null?void 0:i.isConnected)??!0}get parentNode(){let t=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&(t==null?void 0:t.nodeType)===11&&(t=n.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,n=this){t=To(this,t,n),us(t)?t===rt||t==null||t===""?(this._$AH!==rt&&this._$AR(),this._$AH=rt):t!==this._$AH&&t!==ko&&this._(t):t._$litType$!==void 0?this.g(t):t.nodeType!==void 0?this.$(t):KS(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==rt&&us(this._$AH)?this._$AA.nextSibling.data=t:this.$(Ei.createTextNode(t)),this._$AH=t}g(t){var o;const{values:n,_$litType$:r}=t,i=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=cs.createElement(u1(r.h,r.h[0]),this.options)),r);if(((o=this._$AH)==null?void 0:o._$AD)===i)this._$AH.p(n);else{const a=new tC(i,this),s=a.u(this.options);a.p(n),this.$(s),this._$AH=a}}_$AC(t){let n=l1.get(t.strings);return n===void 0&&l1.set(t.strings,n=new cs(t)),n}T(t){n1(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let r,i=0;for(const o of t)i===n.length?n.push(r=new hs(this.k(ls()),this.k(ls()),this,this.options)):r=n[i],r._$AI(o),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(t=this._$AA.nextSibling,n){var r;for((r=this._$AP)==null?void 0:r.call(this,!1,!0,n);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var n;this._$AM===void 0&&(this._$Cv=t,(n=this._$AP)==null||n.call(this,t))}}let Tu=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,n,r,i,o){this.type=1,this._$AH=rt,this._$AN=void 0,this.element=t,this.name=n,this._$AM=i,this.options=o,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=rt}_$AI(t,n=this,r,i){const o=this.strings;let a=!1;if(o===void 0)t=To(this,t,n,0),a=!us(t)||t!==this._$AH&&t!==ko,a&&(this._$AH=t);else{const s=t;let u,l;for(t=o[0],u=0;u<o.length-1;u++)l=To(this,s[r+u],n,u),l===ko&&(l=this._$AH[u]),a||(a=!us(l)||l!==this._$AH[u]),l===rt?t=rt:t!==rt&&(t+=(l??"")+o[u+1]),this._$AH[u]=l}a&&!i&&this.O(t)}O(t){t===rt?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}};class nC extends Tu{constructor(){super(...arguments),this.type=3}O(t){this.element[this.name]=t===rt?void 0:t}}class rC extends Tu{constructor(){super(...arguments),this.type=4}O(t){this.element.toggleAttribute(this.name,!!t&&t!==rt)}}class iC extends Tu{constructor(t,n,r,i,o){super(t,n,r,i,o),this.type=5}_$AI(t,n=this){if((t=To(this,t,n,0)??rt)===ko)return;const r=this._$AH,i=t===rt&&r!==rt||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,o=t!==rt&&(r===rt||i);i&&this.element.removeEventListener(this.name,this,r),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var n;typeof this._$AH=="function"?this._$AH.call(((n=this.options)==null?void 0:n.host)??this.element,t):this._$AH.handleEvent(t)}}class oC{constructor(t,n,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){To(this,t)}}const Ah=ss.litHtmlPolyfillSupport;Ah==null||Ah(cs,hs),(ss.litHtmlVersions??(ss.litHtmlVersions=[])).push("3.1.0");const Eh=(e,t,n)=>{const r=(n==null?void 0:n.renderBefore)??t;let i=r._$litPart$;if(i===void 0){const o=(n==null?void 0:n.renderBefore)??null;r._$litPart$=i=new hs(t.insertBefore(ls(),o),o,void 0,n??{})}return i._$AI(e),i};/**
10
+ */const ss=globalThis,ku=ss.trustedTypes,r1=ku?ku.createPolicy("lit-html",{createHTML:e=>e}):void 0,i1="$lit$",Ir=`lit$${(Math.random()+"").slice(9)}$`,a1="?"+Ir,rC=`<${a1}>`,Ei=document,ls=()=>Ei.createComment(""),us=e=>e===null||typeof e!="object"&&typeof e!="function",o1=Array.isArray,iC=e=>o1(e)||typeof(e==null?void 0:e[Symbol.iterator])=="function",Ch=`[
11
+ \f\r]`,fs=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,s1=/-->/g,l1=/>/g,_i=RegExp(`>|${Ch}(?:([^\\s"'>=/]+)(${Ch}*=${Ch}*(?:[^
12
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),u1=/'/g,f1=/"/g,c1=/^(?:script|style|textarea|title)$/i,aC=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),mn=aC(1),Ca=Symbol.for("lit-noChange"),rt=Symbol.for("lit-nothing"),h1=new WeakMap,Si=Ei.createTreeWalker(Ei,129);function d1(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return r1!==void 0?r1.createHTML(t):t}const oC=(e,t)=>{const n=e.length-1,r=[];let i,a=t===2?"<svg>":"",o=fs;for(let s=0;s<n;s++){const u=e[s];let l,f,c=-1,h=0;for(;h<u.length&&(o.lastIndex=h,f=o.exec(u),f!==null);)h=o.lastIndex,o===fs?f[1]==="!--"?o=s1:f[1]!==void 0?o=l1:f[2]!==void 0?(c1.test(f[2])&&(i=RegExp("</"+f[2],"g")),o=_i):f[3]!==void 0&&(o=_i):o===_i?f[0]===">"?(o=i??fs,c=-1):f[1]===void 0?c=-2:(c=o.lastIndex-f[2].length,l=f[1],o=f[3]===void 0?_i:f[3]==='"'?f1:u1):o===f1||o===u1?o=_i:o===s1||o===l1?o=fs:(o=_i,i=void 0);const d=o===_i&&e[s+1].startsWith("/>")?" ":"";a+=o===fs?u+rC:c>=0?(r.push(l),u.slice(0,c)+i1+u.slice(c)+Ir+d):u+Ir+(c===-2?s:d)}return[d1(e,a+(e[n]||"<?>")+(t===2?"</svg>":"")),r]};class cs{constructor({strings:t,_$litType$:n},r){let i;this.parts=[];let a=0,o=0;const s=t.length-1,u=this.parts,[l,f]=oC(t,n);if(this.el=cs.createElement(l,r),Si.currentNode=this.el.content,n===2){const c=this.el.content.firstChild;c.replaceWith(...c.childNodes)}for(;(i=Si.nextNode())!==null&&u.length<s;){if(i.nodeType===1){if(i.hasAttributes())for(const c of i.getAttributeNames())if(c.endsWith(i1)){const h=f[o++],d=i.getAttribute(c).split(Ir),p=/([.?@])?(.*)/.exec(h);u.push({type:1,index:a,name:p[2],strings:d,ctor:p[1]==="."?lC:p[1]==="?"?uC:p[1]==="@"?fC:Iu}),i.removeAttribute(c)}else c.startsWith(Ir)&&(u.push({type:6,index:a}),i.removeAttribute(c));if(c1.test(i.tagName)){const c=i.textContent.split(Ir),h=c.length-1;if(h>0){i.textContent=ku?ku.emptyScript:"";for(let d=0;d<h;d++)i.append(c[d],ls()),Si.nextNode(),u.push({type:2,index:++a});i.append(c[h],ls())}}}else if(i.nodeType===8)if(i.data===a1)u.push({type:2,index:a});else{let c=-1;for(;(c=i.data.indexOf(Ir,c+1))!==-1;)u.push({type:7,index:a}),c+=Ir.length-1}a++}}static createElement(t,n){const r=Ei.createElement("template");return r.innerHTML=t,r}}function Ta(e,t,n=e,r){var o,s;if(t===Ca)return t;let i=r!==void 0?(o=n._$Co)==null?void 0:o[r]:n._$Cl;const a=us(t)?void 0:t._$litDirective$;return(i==null?void 0:i.constructor)!==a&&((s=i==null?void 0:i._$AO)==null||s.call(i,!1),a===void 0?i=void 0:(i=new a(e),i._$AT(e,n,r)),r!==void 0?(n._$Co??(n._$Co=[]))[r]=i:n._$Cl=i),i!==void 0&&(t=Ta(e,i._$AS(e,t.values),i,r)),t}class sC{constructor(t,n){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:n},parts:r}=this._$AD,i=((t==null?void 0:t.creationScope)??Ei).importNode(n,!0);Si.currentNode=i;let a=Si.nextNode(),o=0,s=0,u=r[0];for(;u!==void 0;){if(o===u.index){let l;u.type===2?l=new hs(a,a.nextSibling,this,t):u.type===1?l=new u.ctor(a,u.name,u.strings,this,t):u.type===6&&(l=new cC(a,this,t)),this._$AV.push(l),u=r[++s]}o!==(u==null?void 0:u.index)&&(a=Si.nextNode(),o++)}return Si.currentNode=Ei,i}p(t){let n=0;for(const r of this._$AV)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,n),n+=r.strings.length-2):r._$AI(t[n])),n++}}class hs{get _$AU(){var t;return((t=this._$AM)==null?void 0:t._$AU)??this._$Cv}constructor(t,n,r,i){this.type=2,this._$AH=rt,this._$AN=void 0,this._$AA=t,this._$AB=n,this._$AM=r,this.options=i,this._$Cv=(i==null?void 0:i.isConnected)??!0}get parentNode(){let t=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&(t==null?void 0:t.nodeType)===11&&(t=n.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,n=this){t=Ta(this,t,n),us(t)?t===rt||t==null||t===""?(this._$AH!==rt&&this._$AR(),this._$AH=rt):t!==this._$AH&&t!==Ca&&this._(t):t._$litType$!==void 0?this.g(t):t.nodeType!==void 0?this.$(t):iC(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==rt&&us(this._$AH)?this._$AA.nextSibling.data=t:this.$(Ei.createTextNode(t)),this._$AH=t}g(t){var a;const{values:n,_$litType$:r}=t,i=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=cs.createElement(d1(r.h,r.h[0]),this.options)),r);if(((a=this._$AH)==null?void 0:a._$AD)===i)this._$AH.p(n);else{const o=new sC(i,this),s=o.u(this.options);o.p(n),this.$(s),this._$AH=o}}_$AC(t){let n=h1.get(t.strings);return n===void 0&&h1.set(t.strings,n=new cs(t)),n}T(t){o1(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let r,i=0;for(const a of t)i===n.length?n.push(r=new hs(this.k(ls()),this.k(ls()),this,this.options)):r=n[i],r._$AI(a),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(t=this._$AA.nextSibling,n){var r;for((r=this._$AP)==null?void 0:r.call(this,!1,!0,n);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var n;this._$AM===void 0&&(this._$Cv=t,(n=this._$AP)==null||n.call(this,t))}}let Iu=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,n,r,i,a){this.type=1,this._$AH=rt,this._$AN=void 0,this.element=t,this.name=n,this._$AM=i,this.options=a,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=rt}_$AI(t,n=this,r,i){const a=this.strings;let o=!1;if(a===void 0)t=Ta(this,t,n,0),o=!us(t)||t!==this._$AH&&t!==Ca,o&&(this._$AH=t);else{const s=t;let u,l;for(t=a[0],u=0;u<a.length-1;u++)l=Ta(this,s[r+u],n,u),l===Ca&&(l=this._$AH[u]),o||(o=!us(l)||l!==this._$AH[u]),l===rt?t=rt:t!==rt&&(t+=(l??"")+a[u+1]),this._$AH[u]=l}o&&!i&&this.O(t)}O(t){t===rt?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}};class lC extends Iu{constructor(){super(...arguments),this.type=3}O(t){this.element[this.name]=t===rt?void 0:t}}class uC extends Iu{constructor(){super(...arguments),this.type=4}O(t){this.element.toggleAttribute(this.name,!!t&&t!==rt)}}class fC extends Iu{constructor(t,n,r,i,a){super(t,n,r,i,a),this.type=5}_$AI(t,n=this){if((t=Ta(this,t,n,0)??rt)===Ca)return;const r=this._$AH,i=t===rt&&r!==rt||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,a=t!==rt&&(r===rt||i);i&&this.element.removeEventListener(this.name,this,r),a&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var n;typeof this._$AH=="function"?this._$AH.call(((n=this.options)==null?void 0:n.host)??this.element,t):this._$AH.handleEvent(t)}}class cC{constructor(t,n,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){Ta(this,t)}}const Th=ss.litHtmlPolyfillSupport;Th==null||Th(cs,hs),(ss.litHtmlVersions??(ss.litHtmlVersions=[])).push("3.1.0");const kh=(e,t,n)=>{const r=(n==null?void 0:n.renderBefore)??t;let i=r._$litPart$;if(i===void 0){const a=(n==null?void 0:n.renderBefore)??null;r._$litPart$=i=new hs(t.insertBefore(ls(),a),a,void 0,n??{})}return i._$AI(e),i};/**
13
13
  * @license
14
14
  * Copyright 2017 Google LLC
15
15
  * SPDX-License-Identifier: BSD-3-Clause
16
- */const aC={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},sC=e=>(...t)=>({_$litDirective$:e,values:t});let lC=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,r){this._$Ct=t,this._$AM=n,this._$Ci=r}_$AS(t,n){return this.update(t,n)}update(t,n){return this.render(...n)}};/**
16
+ */const hC={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},dC=e=>(...t)=>({_$litDirective$:e,values:t});let pC=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,r){this._$Ct=t,this._$AM=n,this._$Ci=r}_$AS(t,n){return this.update(t,n)}update(t,n){return this.render(...n)}};/**
17
17
  * @license
18
18
  * Copyright 2018 Google LLC
19
19
  * SPDX-License-Identifier: BSD-3-Clause
20
- */const f1="important",uC=" !"+f1,fC=sC(class extends lC{constructor(e){var t;if(super(e),e.type!==aC.ATTRIBUTE||e.name!=="style"||((t=e.strings)==null?void 0:t.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(e){return Object.keys(e).reduce((t,n)=>{const r=e[n];return r==null?t:t+`${n=n.includes("-")?n:n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`},"")}update(e,[t]){const{style:n}=e.element;if(this.ut===void 0)return this.ut=new Set(Object.keys(t)),this.render(t);for(const r of this.ut)t[r]==null&&(this.ut.delete(r),r.includes("-")?n.removeProperty(r):n[r]=null);for(const r in t){const i=t[r];if(i!=null){this.ut.add(r);const o=typeof i=="string"&&i.endsWith(uC);r.includes("-")||o?n.setProperty(r,o?i.slice(0,-11):i,o?f1:""):n[r]=i}}return ko}}),cC="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cstyle%3e.spinner_ajPY{transform-origin:center;animation:spinner_AtaB%20.75s%20infinite%20linear}@keyframes%20spinner_AtaB{100%25{transform:rotate(360deg)}}%3c/style%3e%3cpath%20d='M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z'%20opacity='.25'/%3e%3cpath%20d='M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z'%20class='spinner_ajPY'/%3e%3c/svg%3e",hC=`.genome-spy {
20
+ */const p1="important",gC=" !"+p1,mC=dC(class extends pC{constructor(e){var t;if(super(e),e.type!==hC.ATTRIBUTE||e.name!=="style"||((t=e.strings)==null?void 0:t.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(e){return Object.keys(e).reduce((t,n)=>{const r=e[n];return r==null?t:t+`${n=n.includes("-")?n:n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`},"")}update(e,[t]){const{style:n}=e.element;if(this.ut===void 0)return this.ut=new Set(Object.keys(t)),this.render(t);for(const r of this.ut)t[r]==null&&(this.ut.delete(r),r.includes("-")?n.removeProperty(r):n[r]=null);for(const r in t){const i=t[r];if(i!=null){this.ut.add(r);const a=typeof i=="string"&&i.endsWith(gC);r.includes("-")||a?n.setProperty(r,a?i.slice(0,-11):i,a?p1:""):n[r]=i}}return Ca}}),bC="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cstyle%3e.spinner_ajPY{transform-origin:center;animation:spinner_AtaB%20.75s%20infinite%20linear}@keyframes%20spinner_AtaB{100%25{transform:rotate(360deg)}}%3c/style%3e%3cpath%20d='M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z'%20opacity='.25'/%3e%3cpath%20d='M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z'%20class='spinner_ajPY'/%3e%3c/svg%3e",yC=`.genome-spy {
21
21
  font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
22
22
  position: relative;
23
23
  }
@@ -157,11 +157,11 @@
157
157
  border: 1px solid red;
158
158
  padding: 10px;
159
159
  background: #fff0f0;
160
- }`;function dC(e,t){var n=e.getBoundingClientRect();return[t.clientX-n.left-e.clientLeft,t.clientY-n.top-e.clientTop]}function Iu(e,t){return e.length==t.length&&e.every((n,r)=>e[r]===t[r])}function Lt(e){return Array.isArray(e)?e:typeof e<"u"?[e]:[]}function ds(e){return e[e.length-1]}class pC{constructor(t){this.container=t,this.element=document.createElement("div"),this.element.className="tooltip",this._visible=!0,this.container.appendChild(this.element),this._previousTooltipDatum=void 0,this.enabledStack=[!0],this._penaltyUntil=0,this._lastCoords=void 0,this._previousMove=0,this.clear()}set visible(t){t!=this._visible&&(this.element.style.display=t?null:"none",this._visible=t)}get visible(){return this._visible}get enabled(){return ds(this.enabledStack)??!0}pushEnabledState(t){this.enabledStack.push(t),t||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(t){this.mouseCoords=dC(this.container,t);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&gC(this.mouseCoords,this._lastCoords)>20&&(this._penaltyUntil=n+400),this._lastCoords=this.mouseCoords,this.visible&&this.updatePlacement(),this._previousMove=n}updatePlacement(){const[n,r]=this.mouseCoords;let i=n+20;i>this.container.clientWidth-this.element.offsetWidth&&(i=n-20-this.element.offsetWidth),this.element.style.left=i+"px",this.element.style.top=Math.min(r+20,this.container.clientHeight-this.element.offsetHeight)+"px"}setContent(t){if(!t||!this.enabled||this._isPenalty()){this.visible&&(Eh("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}Eh(t,this.element),this.visible=!0,this.updatePlacement()}clear(){this._previousTooltipDatum=void 0,this.setContent(void 0)}updateWithDatum(t,n){t!==this._previousTooltipDatum&&(this._previousTooltipDatum=t,n||(n=r=>Promise.resolve(mn` ${JSON.stringify(r)} `)),n(t).then(r=>this.setContent(r)).catch(r=>{if(r!=="debounced")throw r}))}_isPenalty(){return this._penaltyUntil&&this._penaltyUntil>performance.now()}}function gC(e,t){let n=0;for(let r=0;r<e.length;r++)n+=(e[r]-t[r])**2;return Math.sqrt(n)}const mC="RawCode",bC="Literal",yC="Property",wC="Identifier",vC="ArrayExpression",xC="BinaryExpression",AC="CallExpression",EC="ConditionalExpression",_C="LogicalExpression",SC="MemberExpression",CC="ObjectExpression",kC="UnaryExpression";function bn(e){this.type=e}bn.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=TC(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};function TC(e){switch(e.type){case vC:return e.elements;case xC:case _C:return[e.left,e.right];case AC:return[e.callee].concat(e.arguments);case EC:return[e.test,e.consequent,e.alternate];case SC:return[e.object,e.property];case CC:return e.properties;case yC:return[e.key,e.value];case kC:return[e.argument];case wC:case bC:case mC:default:return[]}}var Dn,K,U,xt,ke,Bu=1,ps=2,Ci=3,Ir=4,Du=5,ki=6,Nt=7,gs=8,IC=9;Dn={},Dn[Bu]="Boolean",Dn[ps]="<end>",Dn[Ci]="Identifier",Dn[Ir]="Keyword",Dn[Du]="Null",Dn[ki]="Numeric",Dn[Nt]="Punctuator",Dn[gs]="String",Dn[IC]="RegularExpression";var BC="ArrayExpression",DC="BinaryExpression",FC="CallExpression",RC="ConditionalExpression",c1="Identifier",MC="Literal",PC="LogicalExpression",LC="MemberExpression",NC="ObjectExpression",OC="Property",zC="UnaryExpression",ut="Unexpected token %0",UC="Unexpected number",GC="Unexpected string",HC="Unexpected identifier",VC="Unexpected reserved word",jC="Unexpected end of input",_h="Invalid regular expression",Sh="Invalid regular expression: missing /",h1="Octal literals are not allowed in strict mode.",qC="Duplicate data property in object literal not allowed in strict mode",mt="ILLEGAL",ms="Disabled.",ZC=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]"),WC=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 Fu(e,t){if(!e)throw new Error("ASSERT: "+t)}function tr(e){return e>=48&&e<=57}function Ch(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function bs(e){return"01234567".indexOf(e)>=0}function YC(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 ys(e){return e===10||e===13||e===8232||e===8233}function ws(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&ZC.test(String.fromCharCode(e))}function Ru(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&WC.test(String.fromCharCode(e))}const QC={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 d1(){for(;U<xt;){const e=K.charCodeAt(U);if(YC(e)||ys(e))++U;else break}}function kh(e){var t,n,r,i=0;for(n=e==="u"?4:2,t=0;t<n;++t)U<xt&&Ch(K[U])?(r=K[U++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):ye({},ut,mt);return String.fromCharCode(i)}function XC(){var e,t,n,r;for(e=K[U],t=0,e==="}"&&ye({},ut,mt);U<xt&&(e=K[U++],!!Ch(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&ye({},ut,mt),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function p1(){var e,t;for(e=K.charCodeAt(U++),t=String.fromCharCode(e),e===92&&(K.charCodeAt(U)!==117&&ye({},ut,mt),++U,e=kh("u"),(!e||e==="\\"||!ws(e.charCodeAt(0)))&&ye({},ut,mt),t=e);U<xt&&(e=K.charCodeAt(U),!!Ru(e));)++U,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),K.charCodeAt(U)!==117&&ye({},ut,mt),++U,e=kh("u"),(!e||e==="\\"||!Ru(e.charCodeAt(0)))&&ye({},ut,mt),t+=e);return t}function $C(){var e,t;for(e=U++;U<xt;){if(t=K.charCodeAt(U),t===92)return U=e,p1();if(Ru(t))++U;else break}return K.slice(e,U)}function KC(){var e,t,n;return e=U,t=K.charCodeAt(U)===92?p1():$C(),t.length===1?n=Ci:QC.hasOwnProperty(t)?n=Ir:t==="null"?n=Du:t==="true"||t==="false"?n=Bu:n=Ci,{type:n,value:t,start:e,end:U}}function Th(){var e=U,t=K.charCodeAt(U),n,r=K[U],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++U,{type:Nt,value:String.fromCharCode(t),start:e,end:U};default:if(n=K.charCodeAt(U+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 U+=2,{type:Nt,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:U};case 33:case 61:return U+=2,K.charCodeAt(U)===61&&++U,{type:Nt,value:K.slice(e,U),start:e,end:U}}}if(a=K.substr(U,4),a===">>>=")return U+=4,{type:Nt,value:a,start:e,end:U};if(o=a.substr(0,3),o===">>>"||o==="<<="||o===">>=")return U+=3,{type:Nt,value:o,start:e,end:U};if(i=o.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return U+=2,{type:Nt,value:i,start:e,end:U};if(i==="//"&&ye({},ut,mt),"<>=!+-*%&|^/".indexOf(r)>=0)return++U,{type:Nt,value:r,start:e,end:U};ye({},ut,mt)}function JC(e){let t="";for(;U<xt&&Ch(K[U]);)t+=K[U++];return t.length===0&&ye({},ut,mt),ws(K.charCodeAt(U))&&ye({},ut,mt),{type:ki,value:parseInt("0x"+t,16),start:e,end:U}}function e6(e){let t="0"+K[U++];for(;U<xt&&bs(K[U]);)t+=K[U++];return(ws(K.charCodeAt(U))||tr(K.charCodeAt(U)))&&ye({},ut,mt),{type:ki,value:parseInt(t,8),octal:!0,start:e,end:U}}function g1(){var e,t,n;if(n=K[U],Fu(tr(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=U,e="",n!=="."){if(e=K[U++],n=K[U],e==="0"){if(n==="x"||n==="X")return++U,JC(t);if(bs(n))return e6(t);n&&tr(n.charCodeAt(0))&&ye({},ut,mt)}for(;tr(K.charCodeAt(U));)e+=K[U++];n=K[U]}if(n==="."){for(e+=K[U++];tr(K.charCodeAt(U));)e+=K[U++];n=K[U]}if(n==="e"||n==="E")if(e+=K[U++],n=K[U],(n==="+"||n==="-")&&(e+=K[U++]),tr(K.charCodeAt(U)))for(;tr(K.charCodeAt(U));)e+=K[U++];else ye({},ut,mt);return ws(K.charCodeAt(U))&&ye({},ut,mt),{type:ki,value:parseFloat(e),start:t,end:U}}function t6(){var e="",t,n,r,i,o=!1;for(t=K[U],Fu(t==="'"||t==='"',"String literal must starts with a quote"),n=U,++U;U<xt;)if(r=K[U++],r===t){t="";break}else if(r==="\\")if(r=K[U++],!r||!ys(r.charCodeAt(0)))switch(r){case"u":case"x":K[U]==="{"?(++U,e+=XC()):e+=kh(r);break;case"n":e+=`
161
- `;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:bs(r)?(i="01234567".indexOf(r),i!==0&&(o=!0),U<xt&&bs(K[U])&&(o=!0,i=i*8+"01234567".indexOf(K[U++]),"0123".indexOf(r)>=0&&U<xt&&bs(K[U])&&(i=i*8+"01234567".indexOf(K[U++]))),e+=String.fromCharCode(i)):e+=r;break}else r==="\r"&&K[U]===`
162
- `&&++U;else{if(ys(r.charCodeAt(0)))break;e+=r}return t!==""&&ye({},ut,mt),{type:gs,value:e,octal:o,start:n,end:U}}function n6(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";ye({},_h)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{ye({},_h)}try{return new RegExp(e,t)}catch{return null}}function r6(){var e,t,n,r,i;for(e=K[U],Fu(e==="/","Regular expression literal must start with a slash"),t=K[U++],n=!1,r=!1;U<xt;)if(e=K[U++],t+=e,e==="\\")e=K[U++],ys(e.charCodeAt(0))&&ye({},Sh),t+=e;else if(ys(e.charCodeAt(0)))ye({},Sh);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||ye({},Sh),i=t.substr(1,t.length-2),{value:i,literal:t}}function i6(){var e,t,n;for(t="",n="";U<xt&&(e=K[U],!!Ru(e.charCodeAt(0)));)++U,e==="\\"&&U<xt?ye({},ut,mt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&ye({},_h,n),{value:n,literal:t}}function o6(){var e,t,n,r;return ke=null,d1(),e=U,t=r6(),n=i6(),r=n6(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:U}}function a6(e){return e.type===Ci||e.type===Ir||e.type===Bu||e.type===Du}function m1(){if(d1(),U>=xt)return{type:ps,start:U,end:U};const e=K.charCodeAt(U);return ws(e)?KC():e===40||e===41||e===59?Th():e===39||e===34?t6():e===46?tr(K.charCodeAt(U+1))?g1():Th():tr(e)?g1():Th()}function Ot(){const e=ke;return U=e.end,ke=m1(),U=e.end,e}function b1(){const e=U;ke=m1(),U=e}function s6(e){const t=new bn(BC);return t.elements=e,t}function y1(e,t,n){const r=new bn(e==="||"||e==="&&"?PC:DC);return r.operator=e,r.left=t,r.right=n,r}function l6(e,t){const n=new bn(FC);return n.callee=e,n.arguments=t,n}function u6(e,t,n){const r=new bn(RC);return r.test=e,r.consequent=t,r.alternate=n,r}function Ih(e){const t=new bn(c1);return t.name=e,t}function vs(e){const t=new bn(MC);return t.value=e.value,t.raw=K.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function w1(e,t,n){const r=new bn(LC);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function f6(e){const t=new bn(NC);return t.properties=e,t}function v1(e,t,n){const r=new bn(OC);return r.key=t,r.value=n,r.kind=e,r}function c6(e,t){const n=new bn(zC);return n.operator=e,n.argument=t,n.prefix=!0,n}function ye(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,(o,a)=>(Fu(a<r.length,"Message reference must be in range"),r[a]));throw n=new Error(i),n.index=U,n.description=i,n}function Mu(e){e.type===ps&&ye(e,jC),e.type===ki&&ye(e,UC),e.type===gs&&ye(e,GC),e.type===Ci&&ye(e,HC),e.type===Ir&&ye(e,VC),ye(e,ut,e.value)}function At(e){const t=Ot();(t.type!==Nt||t.value!==e)&&Mu(t)}function Ue(e){return ke.type===Nt&&ke.value===e}function Bh(e){return ke.type===Ir&&ke.value===e}function h6(){const e=[];for(U=ke.start,At("[");!Ue("]");)Ue(",")?(Ot(),e.push(null)):(e.push(Ti()),Ue("]")||At(","));return Ot(),s6(e)}function x1(){U=ke.start;const e=Ot();return e.type===gs||e.type===ki?(e.octal&&ye(e,h1),vs(e)):Ih(e.value)}function d6(){var e,t,n,r;if(U=ke.start,e=ke,e.type===Ci)return n=x1(),At(":"),r=Ti(),v1("init",n,r);if(e.type===ps||e.type===Nt)Mu(e);else return t=x1(),At(":"),r=Ti(),v1("init",t,r)}function p6(){var e=[],t,n,r,i={},o=String;for(U=ke.start,At("{");!Ue("}");)t=d6(),t.key.type===c1?n=t.key.name:n=o(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?ye({},qC):i[r]=!0,e.push(t),Ue("}")||At(",");return At("}"),f6(e)}function g6(){At("(");const e=Dh();return At(")"),e}const m6={if:1};function b6(){var e,t,n;if(Ue("("))return g6();if(Ue("["))return h6();if(Ue("{"))return p6();if(e=ke.type,U=ke.start,e===Ci||m6[ke.value])n=Ih(Ot().value);else if(e===gs||e===ki)ke.octal&&ye(ke,h1),n=vs(Ot());else{if(e===Ir)throw new Error(ms);e===Bu?(t=Ot(),t.value=t.value==="true",n=vs(t)):e===Du?(t=Ot(),t.value=null,n=vs(t)):Ue("/")||Ue("/=")?(n=vs(o6()),b1()):Mu(Ot())}return n}function y6(){const e=[];if(At("("),!Ue(")"))for(;U<xt&&(e.push(Ti()),!Ue(")"));)At(",");return At(")"),e}function w6(){U=ke.start;const e=Ot();return a6(e)||Mu(e),Ih(e.value)}function v6(){return At("."),w6()}function x6(){At("[");const e=Dh();return At("]"),e}function A6(){var e,t,n;for(e=b6();;)if(Ue("."))n=v6(),e=w1(".",e,n);else if(Ue("("))t=y6(),e=l6(e,t);else if(Ue("["))n=x6(),e=w1("[",e,n);else break;return e}function A1(){const e=A6();if(ke.type===Nt&&(Ue("++")||Ue("--")))throw new Error(ms);return e}function Pu(){var e,t;if(ke.type!==Nt&&ke.type!==Ir)t=A1();else{if(Ue("++")||Ue("--"))throw new Error(ms);if(Ue("+")||Ue("-")||Ue("~")||Ue("!"))e=Ot(),t=Pu(),t=c6(e.value,t);else{if(Bh("delete")||Bh("void")||Bh("typeof"))throw new Error(ms);t=A1()}}return t}function E1(e){let t=0;if(e.type!==Nt&&e.type!==Ir)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 E6(){var e,t,n,r,i,o,a,s,u,l;if(e=ke,u=Pu(),r=ke,i=E1(r),i===0)return u;for(r.prec=i,Ot(),t=[e,ke],a=Pu(),o=[u,r,a];(i=E1(ke))>0;){for(;o.length>2&&i<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,u=o.pop(),t.pop(),n=y1(s,u,a),o.push(n);r=Ot(),r.prec=i,o.push(r),t.push(ke),n=Pu(),o.push(n)}for(l=o.length-1,n=o[l],t.pop();l>1;)t.pop(),n=y1(o[l-1].value,o[l-2],n),l-=2;return n}function Ti(){var e,t,n;return e=E6(),Ue("?")&&(Ot(),t=Ti(),At(":"),n=Ti(),e=u6(e,t,n)),e}function Dh(){const e=Ti();if(Ue(","))throw new Error(ms);return e}function _6(e){K=e,U=0,xt=K.length,ke=null,b1();const t=Dh();if(ke.type!==ps)throw new Error("Unexpect token after expression.");return t}var S6={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 _1(e){function t(a,s,u,l){let f=e(s[0]);return u&&(f=u+"("+f+")",u.lastIndexOf("new ",0)===0&&(f="("+f+")")),f+"."+a+(l<0?"":l===0?"()":"("+s.slice(1).map(e).join(",")+")")}function n(a,s,u){return l=>t(a,l,s,u)}const r="new Date",i="String",o="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(a){a.length<3&&Qe("Missing arguments to clamp function."),a.length>3&&Qe("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&&Qe("Missing arguments to if function."),a.length>3&&Qe("Too many arguments to if function.");const s=a.map(e);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function C6(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function k6(e){e=e||{};const t=e.allowed?du(e.allowed):{},n=e.forbidden?du(e.forbidden):{},r=e.constants||S6,i=(e.functions||_1)(c),o=e.globalvar,a=e.fieldvar,s=Mt(o)?o:p=>`${o}["${p}"]`;let u={},l={},f=0;function c(p){if(Pe(p))return p;const b=h[p.type];return b==null&&Qe("Unsupported type: "+p.type),b(p)}const h={Literal:p=>p.raw,Identifier:p=>{const b=p.name;return f>0?b:mi(n,b)?Qe("Illegal identifier: "+b):mi(r,b)?r[b]:mi(t,b)?b:(u[b]=1,s(b))},MemberExpression:p=>{const b=!p.computed,y=c(p.object);b&&(f+=1);const w=c(p.property);return y===a&&(l[C6(w)]=1),b&&(f-=1),y+(b?"."+w:"["+w+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&Qe("Illegal callee type: "+p.callee.type);const b=p.callee.name,y=p.arguments,w=mi(i,b)&&i[b];return w||Qe("Unrecognized function: "+b),Mt(w)?w(y):w+"("+y.map(c).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(c).join(",")+"]",BinaryExpression:p=>"("+c(p.left)+" "+p.operator+" "+c(p.right)+")",UnaryExpression:p=>"("+p.operator+c(p.argument)+")",ConditionalExpression:p=>"("+c(p.test)+"?"+c(p.consequent)+":"+c(p.alternate)+")",LogicalExpression:p=>"("+c(p.left)+p.operator+c(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(c).join(",")+"}",Property:p=>{f+=1;const b=c(p.key);return f-=1,b+":"+c(p.value)}};function d(p){const b={code:c(p),globals:Object.keys(u),fields:Object.keys(l)};return u={},l={},b}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 xs(e,t=0,n=1){return Math.max(t,Math.min(n,e))}function T6(e,t,n){return xs((n-e)/(t-e),0,1)}const C1={clamp:xs,isArray:Ft,isBoolean:Ga,isDefined(e){return e!==void 0},isNumber:Ct,isObject:Rt,isRegExp:T_,isString:Pe,isValid(e){return e!=null&&e===e},lerp:Xg,linearstep:T6,smoothstep:S1};function I6(e){const t=_1(e);for(const n in C1)t[n]=`this.${n}`;return t}const B6=k6({forbidden:[],allowed:["datum"],globalvar:"globalObject",fieldvar:"datum",functions:I6});function Lu(e,t={}){try{const n=_6(e),r=B6(n),i=Function("datum","globalObject",`"use strict"; return (${r.code});`).bind(C1),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}`)}}function Fn(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function Br(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 Fh=Symbol("implicit");function Rh(){var e=new Er,t=[],n=[],r=Fh;function i(o){let a=e.get(o);if(a===void 0){if(r!==Fh)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 Er;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 Rh(t,n).unknown(r)},Fn.apply(i,arguments),i}function Io(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function As(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Dr(){}var Ii=.7,Bo=1/Ii,Do="\\s*([+-]?\\d+)\\s*",Es="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Rn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",D6=/^#([0-9a-f]{3,8})$/,F6=new RegExp(`^rgb\\(${Do},${Do},${Do}\\)$`),R6=new RegExp(`^rgb\\(${Rn},${Rn},${Rn}\\)$`),M6=new RegExp(`^rgba\\(${Do},${Do},${Do},${Es}\\)$`),P6=new RegExp(`^rgba\\(${Rn},${Rn},${Rn},${Es}\\)$`),L6=new RegExp(`^hsl\\(${Es},${Rn},${Rn}\\)$`),N6=new RegExp(`^hsla\\(${Es},${Rn},${Rn},${Es}\\)$`),k1={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};Io(Dr,Fr,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:T1,formatHex:T1,formatHex8:O6,formatHsl:z6,formatRgb:I1,toString:I1});function T1(){return this.rgb().formatHex()}function O6(){return this.rgb().formatHex8()}function z6(){return M1(this).formatHsl()}function I1(){return this.rgb().formatRgb()}function Fr(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=D6.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?B1(t):n===3?new ft(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Nu(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Nu(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=F6.exec(e))?new ft(t[1],t[2],t[3],1):(t=R6.exec(e))?new ft(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=M6.exec(e))?Nu(t[1],t[2],t[3],t[4]):(t=P6.exec(e))?Nu(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=L6.exec(e))?R1(t[1],t[2]/100,t[3]/100,1):(t=N6.exec(e))?R1(t[1],t[2]/100,t[3]/100,t[4]):k1.hasOwnProperty(e)?B1(k1[e]):e==="transparent"?new ft(NaN,NaN,NaN,0):null}function B1(e){return new ft(e>>16&255,e>>8&255,e&255,1)}function Nu(e,t,n,r){return r<=0&&(e=t=n=NaN),new ft(e,t,n,r)}function Mh(e){return e instanceof Dr||(e=Fr(e)),e?(e=e.rgb(),new ft(e.r,e.g,e.b,e.opacity)):new ft}function Ou(e,t,n,r){return arguments.length===1?Mh(e):new ft(e,t,n,r??1)}function ft(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Io(ft,Ou,As(Dr,{brighter(e){return e=e==null?Bo:Math.pow(Bo,e),new ft(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Ii:Math.pow(Ii,e),new ft(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ft(Bi(this.r),Bi(this.g),Bi(this.b),zu(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:D1,formatHex:D1,formatHex8:U6,formatRgb:F1,toString:F1}));function D1(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}`}function U6(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}${Di((isNaN(this.opacity)?1:this.opacity)*255)}`}function F1(){const e=zu(this.opacity);return`${e===1?"rgb(":"rgba("}${Bi(this.r)}, ${Bi(this.g)}, ${Bi(this.b)}${e===1?")":`, ${e})`}`}function zu(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Bi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Di(e){return e=Bi(e),(e<16?"0":"")+e.toString(16)}function R1(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new yn(e,t,n,r)}function M1(e){if(e instanceof yn)return new yn(e.h,e.s,e.l,e.opacity);if(e instanceof Dr||(e=Fr(e)),!e)return new yn;if(e instanceof yn)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,u=(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/=u<.5?o+i:2-o-i,a*=60):s=u>0&&u<1?0:a,new yn(a,s,u,e.opacity)}function Ph(e,t,n,r){return arguments.length===1?M1(e):new yn(e,t,n,r??1)}function yn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Io(yn,Ph,As(Dr,{brighter(e){return e=e==null?Bo:Math.pow(Bo,e),new yn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ii:Math.pow(Ii,e),new yn(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 ft(Lh(e>=240?e-240:e+120,i,r),Lh(e,i,r),Lh(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new yn(P1(this.h),Uu(this.s),Uu(this.l),zu(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=zu(this.opacity);return`${e===1?"hsl(":"hsla("}${P1(this.h)}, ${Uu(this.s)*100}%, ${Uu(this.l)*100}%${e===1?")":`, ${e})`}`}}));function P1(e){return e=(e||0)%360,e<0?e+360:e}function Uu(e){return Math.max(0,Math.min(1,e||0))}function Lh(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 L1=Math.PI/180,N1=180/Math.PI,Gu=18,O1=.96422,z1=1,U1=.82521,G1=4/29,Fo=6/29,H1=3*Fo*Fo,G6=Fo*Fo*Fo;function V1(e){if(e instanceof Mn)return new Mn(e.l,e.a,e.b,e.opacity);if(e instanceof nr)return j1(e);e instanceof ft||(e=Mh(e));var t=Gh(e.r),n=Gh(e.g),r=Gh(e.b),i=Oh((.2225045*t+.7168786*n+.0606169*r)/z1),o,a;return t===n&&n===r?o=a=i:(o=Oh((.4360747*t+.3850649*n+.1430804*r)/O1),a=Oh((.0139322*t+.0971045*n+.7141733*r)/U1)),new Mn(116*i-16,500*(o-i),200*(i-a),e.opacity)}function Nh(e,t,n,r){return arguments.length===1?V1(e):new Mn(e,t,n,r??1)}function Mn(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}Io(Mn,Nh,As(Dr,{brighter(e){return new Mn(this.l+Gu*(e??1),this.a,this.b,this.opacity)},darker(e){return new Mn(this.l-Gu*(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=O1*zh(t),e=z1*zh(e),n=U1*zh(n),new ft(Uh(3.1338561*t-1.6168667*e-.4906146*n),Uh(-.9787684*t+1.9161415*e+.033454*n),Uh(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function Oh(e){return e>G6?Math.pow(e,1/3):e/H1+G1}function zh(e){return e>Fo?e*e*e:H1*(e-G1)}function Uh(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function Gh(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function H6(e){if(e instanceof nr)return new nr(e.h,e.c,e.l,e.opacity);if(e instanceof Mn||(e=V1(e)),e.a===0&&e.b===0)return new nr(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*N1;return new nr(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function Hh(e,t,n,r){return arguments.length===1?H6(e):new nr(e,t,n,r??1)}function nr(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function j1(e){if(isNaN(e.h))return new Mn(e.l,0,0,e.opacity);var t=e.h*L1;return new Mn(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}Io(nr,Hh,As(Dr,{brighter(e){return new nr(this.h,this.c,this.l+Gu*(e??1),this.opacity)},darker(e){return new nr(this.h,this.c,this.l-Gu*(e??1),this.opacity)},rgb(){return j1(this).rgb()}}));var q1=-.14861,Vh=1.78277,jh=-.29227,Hu=-.90649,_s=1.97294,Z1=_s*Hu,W1=_s*Vh,Y1=Vh*jh-Hu*q1;function V6(e){if(e instanceof Fi)return new Fi(e.h,e.s,e.l,e.opacity);e instanceof ft||(e=Mh(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(Y1*r+Z1*t-W1*n)/(Y1+Z1-W1),o=r-i,a=(_s*(n-i)-jh*o)/Hu,s=Math.sqrt(a*a+o*o)/(_s*i*(1-i)),u=s?Math.atan2(a,o)*N1-120:NaN;return new Fi(u<0?u+360:u,s,i,e.opacity)}function qh(e,t,n,r){return arguments.length===1?V6(e):new Fi(e,t,n,r??1)}function Fi(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Io(Fi,qh,As(Dr,{brighter(e){return e=e==null?Bo:Math.pow(Bo,e),new Fi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ii:Math.pow(Ii,e),new Fi(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*L1,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new ft(255*(t+n*(q1*r+Vh*i)),255*(t+n*(jh*r+Hu*i)),255*(t+n*(_s*r)),this.opacity)}}));function Q1(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 X1(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 Q1((n-r/t)*t,a,i,o,s)}}function $1(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 Q1((n-r/t)*t,i,o,a,s)}}const Vu=e=>()=>e;function K1(e,t){return function(n){return e+n*t}}function j6(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 ju(e,t){var n=t-e;return n?K1(e,n>180||n<-180?n-360*Math.round(n/360):n):Vu(isNaN(e)?t:e)}function q6(e){return(e=+e)==1?ct:function(t,n){return n-t?j6(t,n,e):Vu(isNaN(t)?n:t)}}function ct(e,t){var n=t-e;return n?K1(e,n):Vu(isNaN(e)?t:e)}const Zh=function e(t){var n=q6(t);function r(i,o){var a=n((i=Ou(i)).r,(o=Ou(o)).r),s=n(i.g,o.g),u=n(i.b,o.b),l=ct(i.opacity,o.opacity);return function(f){return i.r=a(f),i.g=s(f),i.b=u(f),i.opacity=l(f),i+""}}return r.gamma=e,r}(1);function J1(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=Ou(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(u){return s.r=r(u),s.g=i(u),s.b=o(u),s+""}}}var Z6=J1(X1),W6=J1($1);function Wh(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 eb(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Y6(e,t){return(eb(t)?Wh:tb)(e,t)}function tb(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]=Rr(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 nb(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function wn(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function rb(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]=Rr(e[i],t[i]):r[i]=t[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var Yh=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Qh=new RegExp(Yh.source,"g");function Q6(e){return function(){return e}}function X6(e){return function(t){return e(t)+""}}function ib(e,t){var n=Yh.lastIndex=Qh.lastIndex=0,r,i,o,a=-1,s=[],u=[];for(e=e+"",t=t+"";(r=Yh.exec(e))&&(i=Qh.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,u.push({i:a,x:wn(r,i)})),n=Qh.lastIndex;return n<t.length&&(o=t.slice(n),s[a]?s[a]+=o:s[++a]=o),s.length<2?u[0]?X6(u[0].x):Q6(t):(t=u.length,function(l){for(var f=0,c;f<t;++f)s[(c=u[f]).i]=c.x(l);return s.join("")})}function Rr(e,t){var n=typeof t,r;return t==null||n==="boolean"?Vu(t):(n==="number"?wn:n==="string"?(r=Fr(t))?(t=r,Zh):ib:t instanceof Fr?Zh:t instanceof Date?nb:eb(t)?Wh:Array.isArray(t)?tb:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?rb:wn)(e,t)}function $6(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function K6(e,t){var n=ju(+e,+t);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function Ss(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var ob=180/Math.PI,Xh={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ab(e,t,n,r,i,o){var a,s,u;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(u=e*n+t*r)&&(n-=e*u,r-=t*u),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,u/=s),e*r<t*n&&(e=-e,t=-t,u=-u,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(t,e)*ob,skewX:Math.atan(u)*ob,scaleX:a,scaleY:s}}var qu;function J6(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Xh:ab(t.a,t.b,t.c,t.d,t.e,t.f)}function e8(e){return e==null||(qu||(qu=document.createElementNS("http://www.w3.org/2000/svg","g")),qu.setAttribute("transform",e),!(e=qu.transform.baseVal.consolidate()))?Xh:(e=e.matrix,ab(e.a,e.b,e.c,e.d,e.e,e.f))}function sb(e,t,n,r){function i(l){return l.length?l.pop()+" ":""}function o(l,f,c,h,d,p){if(l!==c||f!==h){var b=d.push("translate(",null,t,null,n);p.push({i:b-4,x:wn(l,c)},{i:b-2,x:wn(f,h)})}else(c||h)&&d.push("translate("+c+t+h+n)}function a(l,f,c,h){l!==f?(l-f>180?f+=360:f-l>180&&(l+=360),h.push({i:c.push(i(c)+"rotate(",null,r)-2,x:wn(l,f)})):f&&c.push(i(c)+"rotate("+f+r)}function s(l,f,c,h){l!==f?h.push({i:c.push(i(c)+"skewX(",null,r)-2,x:wn(l,f)}):f&&c.push(i(c)+"skewX("+f+r)}function u(l,f,c,h,d,p){if(l!==c||f!==h){var b=d.push(i(d)+"scale(",null,",",null,")");p.push({i:b-4,x:wn(l,c)},{i:b-2,x:wn(f,h)})}else(c!==1||h!==1)&&d.push(i(d)+"scale("+c+","+h+")")}return function(l,f){var c=[],h=[];return l=e(l),f=e(f),o(l.translateX,l.translateY,f.translateX,f.translateY,c,h),a(l.rotate,f.rotate,c,h),s(l.skewX,f.skewX,c,h),u(l.scaleX,l.scaleY,f.scaleX,f.scaleY,c,h),l=f=null,function(d){for(var p=-1,b=h.length,y;++p<b;)c[(y=h[p]).i]=y.x(d);return c.join("")}}}var t8=sb(J6,"px, ","px)","deg)"),n8=sb(e8,", ",")",")"),r8=1e-12;function lb(e){return((e=Math.exp(e))+1/e)/2}function i8(e){return((e=Math.exp(e))-1/e)/2}function o8(e){return((e=Math.exp(2*e))-1)/(e+1)}const a8=function e(t,n,r){function i(o,a){var s=o[0],u=o[1],l=o[2],f=a[0],c=a[1],h=a[2],d=f-s,p=c-u,b=d*d+p*p,y,w;if(b<r8)w=Math.log(h/l)/t,y=function(I){return[s+I*d,u+I*p,l*Math.exp(t*I*w)]};else{var _=Math.sqrt(b),C=(h*h-l*l+r*b)/(2*l*n*_),E=(h*h-l*l-r*b)/(2*h*n*_),T=Math.log(Math.sqrt(C*C+1)-C),B=Math.log(Math.sqrt(E*E+1)-E);w=(B-T)/t,y=function(I){var R=I*w,M=lb(T),j=l/(n*_)*(M*o8(t*R+T)-i8(T));return[s+j*d,u+j*p,l*M/lb(t*R+T)]}}return y.duration=w*1e3*t/Math.SQRT2,y}return i.rho=function(o){var a=Math.max(.001,+o),s=a*a,u=s*s;return e(a,s,u)},i}(Math.SQRT2,2,4);function ub(e){return function(t,n){var r=e((t=Ph(t)).h,(n=Ph(n)).h),i=ct(t.s,n.s),o=ct(t.l,n.l),a=ct(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 s8=ub(ju);var l8=ub(ct);function u8(e,t){var n=ct((e=Nh(e)).l,(t=Nh(t)).l),r=ct(e.a,t.a),i=ct(e.b,t.b),o=ct(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 fb(e){return function(t,n){var r=e((t=Hh(t)).h,(n=Hh(n)).h),i=ct(t.c,n.c),o=ct(t.l,n.l),a=ct(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 f8=fb(ju);var c8=fb(ct);function cb(e){return function t(n){n=+n;function r(i,o){var a=e((i=qh(i)).h,(o=qh(o)).h),s=ct(i.s,o.s),u=ct(i.l,o.l),l=ct(i.opacity,o.opacity);return function(f){return i.h=a(f),i.s=s(f),i.l=u(Math.pow(f,n)),i.opacity=l(f),i+""}}return r.gamma=t,r}(1)}const h8=cb(ju);var d8=cb(ct);function $h(e,t){t===void 0&&(t=e,e=Rr);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 p8(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const g8=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Rr,interpolateArray:Y6,interpolateBasis:X1,interpolateBasisClosed:$1,interpolateCubehelix:h8,interpolateCubehelixLong:d8,interpolateDate:nb,interpolateDiscrete:$6,interpolateHcl:f8,interpolateHclLong:c8,interpolateHsl:s8,interpolateHslLong:l8,interpolateHue:K6,interpolateLab:u8,interpolateNumber:wn,interpolateNumberArray:Wh,interpolateObject:rb,interpolateRgb:Zh,interpolateRgbBasis:Z6,interpolateRgbBasisClosed:W6,interpolateRound:Ss,interpolateString:ib,interpolateTransformCss:t8,interpolateTransformSvg:n8,interpolateZoom:a8,piecewise:$h,quantize:p8},Symbol.toStringTag,{value:"Module"}));function m8(e){return function(){return e}}function Kh(e){return+e}var hb=[0,1];function zt(e){return e}function Jh(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:m8(isNaN(t)?NaN:.5)}function b8(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function y8(e,t,n){var r=e[0],i=e[1],o=t[0],a=t[1];return i<r?(r=Jh(i,r),o=n(a,o)):(r=Jh(r,i),o=n(o,a)),function(s){return o(r(s))}}function w8(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]=Jh(e[a],e[a+1]),o[a]=n(t[a],t[a+1]);return function(s){var u=Ar(e,s,1,r)-1;return o[u](i[u](s))}}function Cs(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Zu(){var e=hb,t=hb,n=Rr,r,i,o,a=zt,s,u,l;function f(){var h=Math.min(e.length,t.length);return a!==zt&&(a=b8(e[0],e[h-1])),s=h>2?w8:y8,u=l=null,c}function c(h){return h==null||isNaN(h=+h)?o:(u||(u=s(e.map(r),t,n)))(r(a(h)))}return c.invert=function(h){return a(i((l||(l=s(t,e.map(r),wn)))(h)))},c.domain=function(h){return arguments.length?(e=Array.from(h,Kh),f()):e.slice()},c.range=function(h){return arguments.length?(t=Array.from(h),f()):t.slice()},c.rangeRound=function(h){return t=Array.from(h),n=Ss,f()},c.clamp=function(h){return arguments.length?(a=h?!0:zt,f()):a!==zt},c.interpolate=function(h){return arguments.length?(n=h,f()):n},c.unknown=function(h){return arguments.length?(o=h,c):o},function(h,d){return r=h,i=d,f()}}function db(){return Zu()(zt,zt)}function pb(e,t,n,r){var i=bi(e,t,n),o;switch(r=_r(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(o=mm(i,a))&&(r.precision=o),eh(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=bm(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=gm(i))&&(r.precision=o-(r.type==="%")*2);break}}return gt(r)}function Ri(e){var t=e.domain;return e.ticks=function(n){var r=t();return mu(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return pb(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],u,l,f=10;for(s<a&&(l=a,a=s,s=l,l=i,i=o,o=l);f-- >0;){if(l=sm(a,s,n),l===u)return r[i]=a,r[o]=s,t(r);if(l>0)a=Math.floor(a/l)*l,s=Math.ceil(s/l)*l;else if(l<0)a=Math.ceil(a*l)/l,s=Math.floor(s*l)/l;else break;u=l}return e},e}function gb(){var e=db();return e.copy=function(){return Cs(e,gb())},Fn.apply(e,arguments),Ri(e)}function mb(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,Kh),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return mb(e).unknown(t)},e=arguments.length?Array.from(e,Kh):[0,1],Ri(n)}function bb(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 yb(e){return Math.log(e)}function wb(e){return Math.exp(e)}function v8(e){return-Math.log(-e)}function x8(e){return-Math.exp(-e)}function A8(e){return isFinite(e)?+("1e"+e):e<0?0:e}function E8(e){return e===10?A8:e===Math.E?Math.exp:t=>Math.pow(e,t)}function _8(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 vb(e){return(t,n)=>-e(-t,n)}function ed(e){const t=e(yb,wb),n=t.domain;let r=10,i,o;function a(){return i=_8(r),o=E8(r),n()[0]<0?(i=vb(i),o=vb(o),e(v8,x8)):e(yb,wb),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 u=n();let l=u[0],f=u[u.length-1];const c=f<l;c&&([l,f]=[f,l]);let h=i(l),d=i(f),p,b;const y=s==null?10:+s;let w=[];if(!(r%1)&&d-h<y){if(h=Math.floor(h),d=Math.ceil(d),l>0){for(;h<=d;++h)for(p=1;p<r;++p)if(b=h<0?p/o(-h):p*o(h),!(b<l)){if(b>f)break;w.push(b)}}else for(;h<=d;++h)for(p=r-1;p>=1;--p)if(b=h>0?p/o(-h):p*o(h),!(b<l)){if(b>f)break;w.push(b)}w.length*2<y&&(w=mu(l,f,y))}else w=mu(h,d,Math.min(d-h,y)).map(o);return c?w.reverse():w},t.tickFormat=(s,u)=>{if(s==null&&(s=10),u==null&&(u=r===10?"s":","),typeof u!="function"&&(!(r%1)&&(u=_r(u)).precision==null&&(u.trim=!0),u=gt(u)),s===1/0)return u;const l=Math.max(1,r*s/t.ticks().length);return f=>{let c=f/o(Math.round(i(f)));return c*r<r-.5&&(c*=r),c<=l?u(f):""}},t.nice=()=>n(bb(n(),{floor:s=>o(Math.floor(i(s))),ceil:s=>o(Math.ceil(i(s)))})),t}function td(){const e=ed(Zu()).domain([1,10]);return e.copy=()=>Cs(e,td()).base(e.base()),Fn.apply(e,arguments),e}function xb(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Ab(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function nd(e){var t=1,n=e(xb(t),Ab(t));return n.constant=function(r){return arguments.length?e(xb(t=+r),Ab(t)):t},Ri(n)}function Eb(){var e=nd(Zu());return e.copy=function(){return Cs(e,Eb()).constant(e.constant())},Fn.apply(e,arguments)}function _b(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function S8(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function C8(e){return e<0?-e*e:e*e}function rd(e){var t=e(zt,zt),n=1;function r(){return n===1?e(zt,zt):n===.5?e(S8,C8):e(_b(n),_b(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},Ri(t)}function id(){var e=rd(Zu());return e.copy=function(){return Cs(e,id()).exponent(e.exponent())},Fn.apply(e,arguments),e}function k8(){return id.apply(null,arguments).exponent(.5)}function Sb(){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]=lm(e,a/s);return o}function o(a){return a==null||isNaN(a=+a)?r:t[Ar(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(Va),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 Sb().domain(e).range(t).unknown(r)},Fn.apply(o,arguments)}function Cb(){var e=0,t=1,n=1,r=[.5],i=[0,1],o;function a(u){return u!=null&&u<=u?i[Ar(r,u,0,n)]:o}function s(){var u=-1;for(r=new Array(n);++u<n;)r[u]=((u+1)*t-(u-n)*e)/(n+1);return a}return a.domain=function(u){return arguments.length?([e,t]=u,e=+e,t=+t,s()):[e,t]},a.range=function(u){return arguments.length?(n=(i=Array.from(u)).length-1,s()):i.slice()},a.invertExtent=function(u){var l=i.indexOf(u);return l<0?[NaN,NaN]:l<1?[e,r[0]]:l>=n?[r[n-1],t]:[r[l-1],r[l]]},a.unknown=function(u){return arguments.length&&(o=u),a},a.thresholds=function(){return r.slice()},a.copy=function(){return Cb().domain([e,t]).range(i).unknown(o)},Fn.apply(Ri(a),arguments)}function kb(){var e=[.5],t=[0,1],n,r=1;function i(o){return o!=null&&o<=o?t[Ar(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 kb().domain(e).range(t).unknown(n)},Fn.apply(i,arguments)}function T8(e){return new Date(e)}function I8(e){return e instanceof Date?+e:+new Date(+e)}function od(e,t,n,r,i,o,a,s,u,l){var f=db(),c=f.invert,h=f.domain,d=l(".%L"),p=l(":%S"),b=l("%I:%M"),y=l("%I %p"),w=l("%a %d"),_=l("%b %d"),C=l("%B"),E=l("%Y");function T(B){return(u(B)<B?d:s(B)<B?p:a(B)<B?b:o(B)<B?y:r(B)<B?i(B)<B?w:_:n(B)<B?C:E)(B)}return f.invert=function(B){return new Date(c(B))},f.domain=function(B){return arguments.length?h(Array.from(B,I8)):h().map(T8)},f.ticks=function(B){var I=h();return e(I[0],I[I.length-1],B??10)},f.tickFormat=function(B,I){return I==null?T:l(I)},f.nice=function(B){var I=h();return(!B||typeof B.range!="function")&&(B=t(I[0],I[I.length-1],B??10)),B?h(bb(I,B)):f},f.copy=function(){return Cs(f,od(e,t,n,r,i,o,a,s,u,l))},f}function B8(){return Fn.apply(od(b4,y4,Cr,Za,qa,wi,sh,ah,Sr,gh).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function D8(){return Fn.apply(od(g4,m4,kr,Ya,Wa,xi,fh,uh,Sr,mh).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Wu(){var e=0,t=1,n,r,i,o,a=zt,s=!1,u;function l(c){return c==null||isNaN(c=+c)?u:a(i===0?.5:(c=(o(c)-n)*i,s?Math.max(0,Math.min(1,c)):c))}l.domain=function(c){return arguments.length?([e,t]=c,n=o(e=+e),r=o(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(c){return arguments.length?(s=!!c,l):s},l.interpolator=function(c){return arguments.length?(a=c,l):a};function f(c){return function(h){var d,p;return arguments.length?([d,p]=h,a=c(d,p),l):[a(0),a(1)]}}return l.range=f(Rr),l.rangeRound=f(Ss),l.unknown=function(c){return arguments.length?(u=c,l):u},function(c){return o=c,n=c(e),r=c(t),i=n===r?0:1/(r-n),l}}function Mr(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function ad(){var e=Ri(Wu()(zt));return e.copy=function(){return Mr(e,ad())},Br.apply(e,arguments)}function Tb(){var e=ed(Wu()).domain([1,10]);return e.copy=function(){return Mr(e,Tb()).base(e.base())},Br.apply(e,arguments)}function Ib(){var e=nd(Wu());return e.copy=function(){return Mr(e,Ib()).constant(e.constant())},Br.apply(e,arguments)}function sd(){var e=rd(Wu());return e.copy=function(){return Mr(e,sd()).exponent(e.exponent())},Br.apply(e,arguments)}function F8(){return sd.apply(null,arguments).exponent(.5)}function Yu(){var e=0,t=.5,n=1,r=1,i,o,a,s,u,l=zt,f,c=!1,h;function d(b){return isNaN(b=+b)?h:(b=.5+((b=+f(b))-o)*(r*b<r*o?s:u),l(c?Math.max(0,Math.min(1,b)):b))}d.domain=function(b){return arguments.length?([e,t,n]=b,i=f(e=+e),o=f(t=+t),a=f(n=+n),s=i===o?0:.5/(o-i),u=o===a?0:.5/(a-o),r=o<i?-1:1,d):[e,t,n]},d.clamp=function(b){return arguments.length?(c=!!b,d):c},d.interpolator=function(b){return arguments.length?(l=b,d):l};function p(b){return function(y){var w,_,C;return arguments.length?([w,_,C]=y,l=$h(b,[w,_,C]),d):[l(0),l(.5),l(1)]}}return d.range=p(Rr),d.rangeRound=p(Ss),d.unknown=function(b){return arguments.length?(h=b,d):h},function(b){return f=b,i=b(e),o=b(t),a=b(n),s=i===o?0:.5/(o-i),u=o===a?0:.5/(a-o),r=o<i?-1:1,d}}function Bb(){var e=Ri(Yu()(zt));return e.copy=function(){return Mr(e,Bb())},Br.apply(e,arguments)}function Db(){var e=ed(Yu()).domain([.1,1,10]);return e.copy=function(){return Mr(e,Db()).base(e.base())},Br.apply(e,arguments)}function Fb(){var e=nd(Yu());return e.copy=function(){return Mr(e,Fb()).constant(e.constant())},Br.apply(e,arguments)}function ld(){var e=rd(Yu());return e.copy=function(){return Mr(e,ld()).exponent(e.exponent())},Br.apply(e,arguments)}function R8(){return ld.apply(null,arguments).exponent(.5)}function ud(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const M8="identity",Ro="linear",Pr="log",ks="pow",Ts="sqrt",Qu="symlog",Rb="time",Mb="utc",Pn="sequential",Mo="diverging",fd="quantile",Pb="quantize",Lb="threshold",cd="ordinal",hd="point",Nb="band",dd="bin-ordinal",it="continuous",Is="discrete",Bs="discretizing",en="interpolating",Ob="temporal";function P8(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 L8(e){return function(t){const n=e.range();let r=t[0],i=t[1],o=-1,a,s,u,l;for(i<r&&(s=r,r=i,i=s),u=0,l=n.length;u<l;++u)n[u]>=r&&n[u]<=i&&(o<0&&(o=u),a=u);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 pd(){const e=Rh().unknown(void 0),t=e.domain,n=e.range;let r=[0,1],i,o,a=!1,s=0,u=0,l=.5;delete e.unknown;function f(){const c=t().length,h=r[1]<r[0],d=r[1-h],p=ud(c,s,u);let b=r[h-0];i=(d-b)/(p||1),a&&(i=Math.floor(i)),b+=(d-b-i*(c-s))*l,o=i*(1-s),a&&(b=Math.round(b),o=Math.round(o));const y=ja(c).map(w=>b+i*w);return n(h?y.reverse():y)}return e.domain=function(c){return arguments.length?(t(c),f()):t()},e.range=function(c){return arguments.length?(r=[+c[0],+c[1]],f()):r.slice()},e.rangeRound=function(c){return r=[+c[0],+c[1]],a=!0,f()},e.bandwidth=function(){return o},e.step=function(){return i},e.round=function(c){return arguments.length?(a=!!c,f()):a},e.padding=function(c){return arguments.length?(u=Math.max(0,Math.min(1,c)),s=u,f()):s},e.paddingInner=function(c){return arguments.length?(s=Math.max(0,Math.min(1,c)),f()):s},e.paddingOuter=function(c){return arguments.length?(u=Math.max(0,Math.min(1,c)),f()):u},e.align=function(c){return arguments.length?(l=Math.max(0,Math.min(1,c)),f()):l},e.invertRange=function(c){if(c[0]==null||c[1]==null)return;const h=r[1]<r[0],d=h?n().reverse():n(),p=d.length-1;let b=+c[0],y=+c[1],w,_,C;if(!(b!==b||y!==y)&&(y<b&&(C=b,b=y,y=C),!(y<d[0]||b>r[1-h])))return w=Math.max(0,Ar(d,b)-1),_=b===y?w:Ar(d,y)-1,b-d[w]>o+1e-10&&++w,h&&(C=w,w=p-_,_=p-C),w>_?void 0:t().slice(w,_+1)},e.invert=function(c){const h=e.invertRange([c,c]);return h&&h[0]},e.copy=function(){return pd().domain(t()).range(r).round(a).paddingInner(s).paddingOuter(u).align(l)},f()}function zb(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return zb(t())},e}function N8(){return zb(pd().paddingInner(1))}var O8=Array.prototype.map;function z8(e){return O8.call(e,Ua)}const U8=Array.prototype.slice;function Ub(){let e=[],t=[];function n(r){return r==null||r!==r?void 0:t[(Ar(e,r)-1)%t.length]}return n.domain=function(r){return arguments.length?(e=z8(r),n):e.slice()},n.range=function(r){return arguments.length?(t=U8.call(r),n):t.slice()},n.tickFormat=function(r,i){return pb(e[0],gn(e),r??10,i)},n.copy=function(){return Ub().domain(n.domain()).range(n.range())},n}const Xu={};function G8(e,t,n){const r=function(){const o=t();return o.invertRange||(o.invertRange=o.invert?P8(o):o.invertExtent?L8(o):void 0),o.type=e,o};return r.metadata=du(jc(n)),r}function Ae(e,t,n){return arguments.length>1?(Xu[e]=G8(e,t,n),this):H8(e)?Xu[e]:void 0}Ae(M8,mb),Ae(Ro,gb,it),Ae(Pr,td,[it,Pr]),Ae(ks,id,it),Ae(Ts,k8,it),Ae(Qu,Eb,it),Ae(Rb,B8,[it,Ob]),Ae(Mb,D8,[it,Ob]),Ae(Pn,ad,[it,en]),Ae("".concat(Pn,"-").concat(Ro),ad,[it,en]),Ae("".concat(Pn,"-").concat(Pr),Tb,[it,en,Pr]),Ae("".concat(Pn,"-").concat(ks),sd,[it,en]),Ae("".concat(Pn,"-").concat(Ts),F8,[it,en]),Ae("".concat(Pn,"-").concat(Qu),Ib,[it,en]),Ae("".concat(Mo,"-").concat(Ro),Bb,[it,en]),Ae("".concat(Mo,"-").concat(Pr),Db,[it,en,Pr]),Ae("".concat(Mo,"-").concat(ks),ld,[it,en]),Ae("".concat(Mo,"-").concat(Ts),R8,[it,en]),Ae("".concat(Mo,"-").concat(Qu),Fb,[it,en]),Ae(fd,Sb,[Bs,fd]),Ae(Pb,Cb,Bs),Ae(Lb,kb,Bs),Ae(dd,Ub,[Is,Bs]),Ae(cd,Rh,Is),Ae(Nb,pd,Is),Ae(hd,N8,Is);function H8(e){return mi(Xu,e)}function Ds(e,t){const n=Xu[e];return n&&n.metadata[t]}function bt(e){return Ds(e,it)}function Lr(e){return Ds(e,Is)}function Mi(e){return Ds(e,Bs)}function Gb(e){return Ds(e,Pr)}function $u(e){return Ds(e,en)}function V8(e,t){const n=t[0],r=gn(t)-n;return function(i){return e(n+i*r)}}function Ku(e,t,n){return $h(Hb(t||"rgb",n),e)}function j8(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}function Hb(e,t){const n=g8[q8(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function q8(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const Z8={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"},W8={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 Vb(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 jb(e,t){for(const n in e)gd(n,t(e[n]))}const qb={};jb(W8,Vb),jb(Z8,e=>Ku(Vb(e)));function gd(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(qb[e]=t,this):qb[e]}function Y8(){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}function Ju(){const e=t=>t;return e.invert=t=>t,e.copy=Ju,e.invertRange=()=>{},e.type="null",e}function Q8(e,t){const n={};t||(t=e.encoding);for(const[r,i]of Object.entries(t)){if(!i)continue;const o=((Ut(i)&&i.resolutionChannel)??(Oi(r)&&r))||void 0,a=e.unitView.getScaleResolution(o);n[r]=X8(t[r],a==null?void 0:a.getScale(),e.unitView.getAccessor(r),r)}return n}function X8(e,t,n,r){let i;if(vn(e)){const o=e.value;i=a=>o,i.constant=!0,i.constantValue=!0,i.accessor=void 0}else if(n)if(r=="text")i=o=>{},i.accessor=n,i.constant=n.constant;else{if(!t)if(!Oi(r))t=Ju();else throw new Error(`Missing scale! "${r}": ${JSON.stringify(e)}`);if(i=o=>t(n(o)),Lr(t.type)){const o=Y8();o.addAll(t.domain()),i.indexer=o}i.constant=n.constant,i.accessor=n,i.scale=t}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${r}": ${JSON.stringify(e)}`);return i.invert=t?o=>t.invert(o):o=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(e))},i.channelDef=e,i.applyMetadata=o=>{for(const a in i)a in i&&(o[a]=i[a]);return o},i}function vn(e){return e&&"value"in e}function Pi(e){return e&&"field"in e}function Fs(e){return e&&"datum"in e}function Ut(e){return Pi(e)||Fs(e)||bd(e)||Zb(e)}function md(e,t){const n=e.mark.encoding[t];if(Ut(n))return n;throw new Error("Not a channel def with scale!")}function Zb(e){return e&&"chrom"in e}function bd(e){return e&&"expr"in e}const Po=["x","y"],$8=["x2","y2"],K8=[...Po,...$8];function Wb(e){return Po.includes(e)}function Rs(e){return K8.includes(e)}const yd={x:"x2",y:"y2"},Yb=Object.fromEntries(Object.entries(yd).map(e=>[e[1],e[0]]));function Ms(e){return e in Yb}function J8(e){const t=yd[e];if(t)return t;throw new Error(`${e} has no secondary channel!`)}function Li(e){return Yb[e]??e}function Ni(e){return["color","fill","stroke"].includes(Li(e))}function ef(e){return["shape","squeeze"].includes(e)}function Oi(e){return["x","y","x2","y2","color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","angle","dx","dy","sample"].includes(e)}function e5(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 Qb(e){if(!ef(e))throw new Error("Not a discrete channel: "+e);const t=new Map(e5(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 Re(e,t=e){if(/^[A-Za-z0-9_]+$/.test(e)){const n=new Function("datum",`return datum[${JSON.stringify(e)}]`);return Ce(n,[e],t)}else return su(e)}class t5{constructor(){this.accessorCreators=[],this.register(t=>{if(Pi(t))try{const n=Re(t.field);return n.constant=!1,n.fields=au(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(t=>bd(t)?n5(t.expr):void 0),this.register(t=>{if(Fs(t)){const r=__(t.datum);return r.constant=!0,r.fields=[],r}})}register(t){this.accessorCreators.push(t)}createAccessor(t){for(const n of this.accessorCreators){const r=n(t);if(r)return r}}}function n5(e){const n=Lu(e);return n.constant=n.fields.length==0,n}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
160
+ }`;function wC(e,t){var n=e.getBoundingClientRect();return[t.clientX-n.left-e.clientLeft,t.clientY-n.top-e.clientTop]}function Bu(e,t){return e.length==t.length&&e.every((n,r)=>e[r]===t[r])}function Lt(e){return Array.isArray(e)?e:typeof e<"u"?[e]:[]}function ds(e){return e[e.length-1]}class vC{constructor(t){this.container=t,this.element=document.createElement("div"),this.element.className="tooltip",this._visible=!0,this.container.appendChild(this.element),this._previousTooltipDatum=void 0,this.enabledStack=[!0],this._penaltyUntil=0,this._lastCoords=void 0,this._previousMove=0,this.clear()}set visible(t){t!=this._visible&&(this.element.style.display=t?null:"none",this._visible=t)}get visible(){return this._visible}get enabled(){return ds(this.enabledStack)??!0}pushEnabledState(t){this.enabledStack.push(t),t||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(t){this.mouseCoords=wC(this.container,t);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&xC(this.mouseCoords,this._lastCoords)>20&&(this._penaltyUntil=n+400),this._lastCoords=this.mouseCoords,this.visible&&this.updatePlacement(),this._previousMove=n}updatePlacement(){const[n,r]=this.mouseCoords;let i=n+20;i>this.container.clientWidth-this.element.offsetWidth&&(i=n-20-this.element.offsetWidth),this.element.style.left=i+"px",this.element.style.top=Math.min(r+20,this.container.clientHeight-this.element.offsetHeight)+"px"}setContent(t){if(!t||!this.enabled||this._isPenalty()){this.visible&&(kh("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}kh(t,this.element),this.visible=!0,this.updatePlacement()}clear(){this._previousTooltipDatum=void 0,this.setContent(void 0)}updateWithDatum(t,n){t!==this._previousTooltipDatum&&(this._previousTooltipDatum=t,n||(n=r=>Promise.resolve(mn` ${JSON.stringify(r)} `)),n(t).then(r=>this.setContent(r)).catch(r=>{if(r!=="debounced")throw r}))}_isPenalty(){return this._penaltyUntil&&this._penaltyUntil>performance.now()}}function xC(e,t){let n=0;for(let r=0;r<e.length;r++)n+=(e[r]-t[r])**2;return Math.sqrt(n)}const AC="RawCode",EC="Literal",_C="Property",SC="Identifier",CC="ArrayExpression",TC="BinaryExpression",kC="CallExpression",IC="ConditionalExpression",BC="LogicalExpression",DC="MemberExpression",FC="ObjectExpression",RC="UnaryExpression";function bn(e){this.type=e}bn.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=MC(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};function MC(e){switch(e.type){case CC:return e.elements;case TC:case BC:return[e.left,e.right];case kC:return[e.callee].concat(e.arguments);case IC:return[e.test,e.consequent,e.alternate];case DC:return[e.object,e.property];case FC:return e.properties;case _C:return[e.key,e.value];case RC:return[e.argument];case SC:case EC:case AC:default:return[]}}var Fn,K,U,xt,Te,Du=1,ps=2,Ci=3,Br=4,Fu=5,Ti=6,Nt=7,gs=8,PC=9;Fn={},Fn[Du]="Boolean",Fn[ps]="<end>",Fn[Ci]="Identifier",Fn[Br]="Keyword",Fn[Fu]="Null",Fn[Ti]="Numeric",Fn[Nt]="Punctuator",Fn[gs]="String",Fn[PC]="RegularExpression";var LC="ArrayExpression",NC="BinaryExpression",OC="CallExpression",zC="ConditionalExpression",g1="Identifier",UC="Literal",GC="LogicalExpression",HC="MemberExpression",VC="ObjectExpression",jC="Property",qC="UnaryExpression",ut="Unexpected token %0",ZC="Unexpected number",WC="Unexpected string",YC="Unexpected identifier",QC="Unexpected reserved word",$C="Unexpected end of input",Ih="Invalid regular expression",Bh="Invalid regular expression: missing /",m1="Octal literals are not allowed in strict mode.",XC="Duplicate data property in object literal not allowed in strict mode",mt="ILLEGAL",ms="Disabled.",KC=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]"),JC=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 Ru(e,t){if(!e)throw new Error("ASSERT: "+t)}function nr(e){return e>=48&&e<=57}function Dh(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function bs(e){return"01234567".indexOf(e)>=0}function e6(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 ys(e){return e===10||e===13||e===8232||e===8233}function ws(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&KC.test(String.fromCharCode(e))}function Mu(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&JC.test(String.fromCharCode(e))}const t6={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 b1(){for(;U<xt;){const e=K.charCodeAt(U);if(e6(e)||ys(e))++U;else break}}function Fh(e){var t,n,r,i=0;for(n=e==="u"?4:2,t=0;t<n;++t)U<xt&&Dh(K[U])?(r=K[U++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):ye({},ut,mt);return String.fromCharCode(i)}function n6(){var e,t,n,r;for(e=K[U],t=0,e==="}"&&ye({},ut,mt);U<xt&&(e=K[U++],!!Dh(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&ye({},ut,mt),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function y1(){var e,t;for(e=K.charCodeAt(U++),t=String.fromCharCode(e),e===92&&(K.charCodeAt(U)!==117&&ye({},ut,mt),++U,e=Fh("u"),(!e||e==="\\"||!ws(e.charCodeAt(0)))&&ye({},ut,mt),t=e);U<xt&&(e=K.charCodeAt(U),!!Mu(e));)++U,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),K.charCodeAt(U)!==117&&ye({},ut,mt),++U,e=Fh("u"),(!e||e==="\\"||!Mu(e.charCodeAt(0)))&&ye({},ut,mt),t+=e);return t}function r6(){var e,t;for(e=U++;U<xt;){if(t=K.charCodeAt(U),t===92)return U=e,y1();if(Mu(t))++U;else break}return K.slice(e,U)}function i6(){var e,t,n;return e=U,t=K.charCodeAt(U)===92?y1():r6(),t.length===1?n=Ci:t6.hasOwnProperty(t)?n=Br:t==="null"?n=Fu:t==="true"||t==="false"?n=Du:n=Ci,{type:n,value:t,start:e,end:U}}function Rh(){var e=U,t=K.charCodeAt(U),n,r=K[U],i,a,o;switch(t){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++U,{type:Nt,value:String.fromCharCode(t),start:e,end:U};default:if(n=K.charCodeAt(U+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 U+=2,{type:Nt,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:U};case 33:case 61:return U+=2,K.charCodeAt(U)===61&&++U,{type:Nt,value:K.slice(e,U),start:e,end:U}}}if(o=K.substr(U,4),o===">>>=")return U+=4,{type:Nt,value:o,start:e,end:U};if(a=o.substr(0,3),a===">>>"||a==="<<="||a===">>=")return U+=3,{type:Nt,value:a,start:e,end:U};if(i=a.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return U+=2,{type:Nt,value:i,start:e,end:U};if(i==="//"&&ye({},ut,mt),"<>=!+-*%&|^/".indexOf(r)>=0)return++U,{type:Nt,value:r,start:e,end:U};ye({},ut,mt)}function a6(e){let t="";for(;U<xt&&Dh(K[U]);)t+=K[U++];return t.length===0&&ye({},ut,mt),ws(K.charCodeAt(U))&&ye({},ut,mt),{type:Ti,value:parseInt("0x"+t,16),start:e,end:U}}function o6(e){let t="0"+K[U++];for(;U<xt&&bs(K[U]);)t+=K[U++];return(ws(K.charCodeAt(U))||nr(K.charCodeAt(U)))&&ye({},ut,mt),{type:Ti,value:parseInt(t,8),octal:!0,start:e,end:U}}function w1(){var e,t,n;if(n=K[U],Ru(nr(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=U,e="",n!=="."){if(e=K[U++],n=K[U],e==="0"){if(n==="x"||n==="X")return++U,a6(t);if(bs(n))return o6(t);n&&nr(n.charCodeAt(0))&&ye({},ut,mt)}for(;nr(K.charCodeAt(U));)e+=K[U++];n=K[U]}if(n==="."){for(e+=K[U++];nr(K.charCodeAt(U));)e+=K[U++];n=K[U]}if(n==="e"||n==="E")if(e+=K[U++],n=K[U],(n==="+"||n==="-")&&(e+=K[U++]),nr(K.charCodeAt(U)))for(;nr(K.charCodeAt(U));)e+=K[U++];else ye({},ut,mt);return ws(K.charCodeAt(U))&&ye({},ut,mt),{type:Ti,value:parseFloat(e),start:t,end:U}}function s6(){var e="",t,n,r,i,a=!1;for(t=K[U],Ru(t==="'"||t==='"',"String literal must starts with a quote"),n=U,++U;U<xt;)if(r=K[U++],r===t){t="";break}else if(r==="\\")if(r=K[U++],!r||!ys(r.charCodeAt(0)))switch(r){case"u":case"x":K[U]==="{"?(++U,e+=n6()):e+=Fh(r);break;case"n":e+=`
161
+ `;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:bs(r)?(i="01234567".indexOf(r),i!==0&&(a=!0),U<xt&&bs(K[U])&&(a=!0,i=i*8+"01234567".indexOf(K[U++]),"0123".indexOf(r)>=0&&U<xt&&bs(K[U])&&(i=i*8+"01234567".indexOf(K[U++]))),e+=String.fromCharCode(i)):e+=r;break}else r==="\r"&&K[U]===`
162
+ `&&++U;else{if(ys(r.charCodeAt(0)))break;e+=r}return t!==""&&ye({},ut,mt),{type:gs,value:e,octal:a,start:n,end:U}}function l6(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";ye({},Ih)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{ye({},Ih)}try{return new RegExp(e,t)}catch{return null}}function u6(){var e,t,n,r,i;for(e=K[U],Ru(e==="/","Regular expression literal must start with a slash"),t=K[U++],n=!1,r=!1;U<xt;)if(e=K[U++],t+=e,e==="\\")e=K[U++],ys(e.charCodeAt(0))&&ye({},Bh),t+=e;else if(ys(e.charCodeAt(0)))ye({},Bh);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||ye({},Bh),i=t.substr(1,t.length-2),{value:i,literal:t}}function f6(){var e,t,n;for(t="",n="";U<xt&&(e=K[U],!!Mu(e.charCodeAt(0)));)++U,e==="\\"&&U<xt?ye({},ut,mt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&ye({},Ih,n),{value:n,literal:t}}function c6(){var e,t,n,r;return Te=null,b1(),e=U,t=u6(),n=f6(),r=l6(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:U}}function h6(e){return e.type===Ci||e.type===Br||e.type===Du||e.type===Fu}function v1(){if(b1(),U>=xt)return{type:ps,start:U,end:U};const e=K.charCodeAt(U);return ws(e)?i6():e===40||e===41||e===59?Rh():e===39||e===34?s6():e===46?nr(K.charCodeAt(U+1))?w1():Rh():nr(e)?w1():Rh()}function Ot(){const e=Te;return U=e.end,Te=v1(),U=e.end,e}function x1(){const e=U;Te=v1(),U=e}function d6(e){const t=new bn(LC);return t.elements=e,t}function A1(e,t,n){const r=new bn(e==="||"||e==="&&"?GC:NC);return r.operator=e,r.left=t,r.right=n,r}function p6(e,t){const n=new bn(OC);return n.callee=e,n.arguments=t,n}function g6(e,t,n){const r=new bn(zC);return r.test=e,r.consequent=t,r.alternate=n,r}function Mh(e){const t=new bn(g1);return t.name=e,t}function vs(e){const t=new bn(UC);return t.value=e.value,t.raw=K.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function E1(e,t,n){const r=new bn(HC);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function m6(e){const t=new bn(VC);return t.properties=e,t}function _1(e,t,n){const r=new bn(jC);return r.key=t,r.value=n,r.kind=e,r}function b6(e,t){const n=new bn(qC);return n.operator=e,n.argument=t,n.prefix=!0,n}function ye(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,(a,o)=>(Ru(o<r.length,"Message reference must be in range"),r[o]));throw n=new Error(i),n.index=U,n.description=i,n}function Pu(e){e.type===ps&&ye(e,$C),e.type===Ti&&ye(e,ZC),e.type===gs&&ye(e,WC),e.type===Ci&&ye(e,YC),e.type===Br&&ye(e,QC),ye(e,ut,e.value)}function At(e){const t=Ot();(t.type!==Nt||t.value!==e)&&Pu(t)}function Ue(e){return Te.type===Nt&&Te.value===e}function Ph(e){return Te.type===Br&&Te.value===e}function y6(){const e=[];for(U=Te.start,At("[");!Ue("]");)Ue(",")?(Ot(),e.push(null)):(e.push(ki()),Ue("]")||At(","));return Ot(),d6(e)}function S1(){U=Te.start;const e=Ot();return e.type===gs||e.type===Ti?(e.octal&&ye(e,m1),vs(e)):Mh(e.value)}function w6(){var e,t,n,r;if(U=Te.start,e=Te,e.type===Ci)return n=S1(),At(":"),r=ki(),_1("init",n,r);if(e.type===ps||e.type===Nt)Pu(e);else return t=S1(),At(":"),r=ki(),_1("init",t,r)}function v6(){var e=[],t,n,r,i={},a=String;for(U=Te.start,At("{");!Ue("}");)t=w6(),t.key.type===g1?n=t.key.name:n=a(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?ye({},XC):i[r]=!0,e.push(t),Ue("}")||At(",");return At("}"),m6(e)}function x6(){At("(");const e=Lh();return At(")"),e}const A6={if:1};function E6(){var e,t,n;if(Ue("("))return x6();if(Ue("["))return y6();if(Ue("{"))return v6();if(e=Te.type,U=Te.start,e===Ci||A6[Te.value])n=Mh(Ot().value);else if(e===gs||e===Ti)Te.octal&&ye(Te,m1),n=vs(Ot());else{if(e===Br)throw new Error(ms);e===Du?(t=Ot(),t.value=t.value==="true",n=vs(t)):e===Fu?(t=Ot(),t.value=null,n=vs(t)):Ue("/")||Ue("/=")?(n=vs(c6()),x1()):Pu(Ot())}return n}function _6(){const e=[];if(At("("),!Ue(")"))for(;U<xt&&(e.push(ki()),!Ue(")"));)At(",");return At(")"),e}function S6(){U=Te.start;const e=Ot();return h6(e)||Pu(e),Mh(e.value)}function C6(){return At("."),S6()}function T6(){At("[");const e=Lh();return At("]"),e}function k6(){var e,t,n;for(e=E6();;)if(Ue("."))n=C6(),e=E1(".",e,n);else if(Ue("("))t=_6(),e=p6(e,t);else if(Ue("["))n=T6(),e=E1("[",e,n);else break;return e}function C1(){const e=k6();if(Te.type===Nt&&(Ue("++")||Ue("--")))throw new Error(ms);return e}function Lu(){var e,t;if(Te.type!==Nt&&Te.type!==Br)t=C1();else{if(Ue("++")||Ue("--"))throw new Error(ms);if(Ue("+")||Ue("-")||Ue("~")||Ue("!"))e=Ot(),t=Lu(),t=b6(e.value,t);else{if(Ph("delete")||Ph("void")||Ph("typeof"))throw new Error(ms);t=C1()}}return t}function T1(e){let t=0;if(e.type!==Nt&&e.type!==Br)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 I6(){var e,t,n,r,i,a,o,s,u,l;if(e=Te,u=Lu(),r=Te,i=T1(r),i===0)return u;for(r.prec=i,Ot(),t=[e,Te],o=Lu(),a=[u,r,o];(i=T1(Te))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)o=a.pop(),s=a.pop().value,u=a.pop(),t.pop(),n=A1(s,u,o),a.push(n);r=Ot(),r.prec=i,a.push(r),t.push(Te),n=Lu(),a.push(n)}for(l=a.length-1,n=a[l],t.pop();l>1;)t.pop(),n=A1(a[l-1].value,a[l-2],n),l-=2;return n}function ki(){var e,t,n;return e=I6(),Ue("?")&&(Ot(),t=ki(),At(":"),n=ki(),e=g6(e,t,n)),e}function Lh(){const e=ki();if(Ue(","))throw new Error(ms);return e}function B6(e){K=e,U=0,xt=K.length,Te=null,x1();const t=Lh();if(Te.type!==ps)throw new Error("Unexpect token after expression.");return t}var D6={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 k1(e){function t(o,s,u,l){let f=e(s[0]);return u&&(f=u+"("+f+")",u.lastIndexOf("new ",0)===0&&(f="("+f+")")),f+"."+o+(l<0?"":l===0?"()":"("+s.slice(1).map(e).join(",")+")")}function n(o,s,u){return l=>t(o,l,s,u)}const r="new Date",i="String",a="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(o){o.length<3&&Qe("Missing arguments to clamp function."),o.length>3&&Qe("Too many arguments to clamp function.");const s=o.map(e);return"Math.max("+s[1]+", Math.min("+s[2]+","+s[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:a,test:n("test",a),if:function(o){o.length<3&&Qe("Missing arguments to if function."),o.length>3&&Qe("Too many arguments to if function.");const s=o.map(e);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function F6(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function R6(e){e=e||{};const t=e.allowed?pu(e.allowed):{},n=e.forbidden?pu(e.forbidden):{},r=e.constants||D6,i=(e.functions||k1)(c),a=e.globalvar,o=e.fieldvar,s=Mt(a)?a:p=>`${a}["${p}"]`;let u={},l={},f=0;function c(p){if(Pe(p))return p;const m=h[p.type];return m==null&&Qe("Unsupported type: "+p.type),m(p)}const h={Literal:p=>p.raw,Identifier:p=>{const m=p.name;return f>0?m:mi(n,m)?Qe("Illegal identifier: "+m):mi(r,m)?r[m]:mi(t,m)?m:(u[m]=1,s(m))},MemberExpression:p=>{const m=!p.computed,y=c(p.object);m&&(f+=1);const w=c(p.property);return y===o&&(l[F6(w)]=1),m&&(f-=1),y+(m?"."+w:"["+w+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&Qe("Illegal callee type: "+p.callee.type);const m=p.callee.name,y=p.arguments,w=mi(i,m)&&i[m];return w||Qe("Unrecognized function: "+m),Mt(w)?w(y):w+"("+y.map(c).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(c).join(",")+"]",BinaryExpression:p=>"("+c(p.left)+" "+p.operator+" "+c(p.right)+")",UnaryExpression:p=>"("+p.operator+c(p.argument)+")",ConditionalExpression:p=>"("+c(p.test)+"?"+c(p.consequent)+":"+c(p.alternate)+")",LogicalExpression:p=>"("+c(p.left)+p.operator+c(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(c).join(",")+"}",Property:p=>{f+=1;const m=c(p.key);return f-=1,m+":"+c(p.value)}};function d(p){const m={code:c(p),globals:Object.keys(u),fields:Object.keys(l)};return u={},l={},m}return d.functions=i,d.constants=r,d}function I1(e,t,n){return n=(n-e)/(t-e),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}function xs(e,t=0,n=1){return Math.max(t,Math.min(n,e))}function M6(e,t,n){return xs((n-e)/(t-e),0,1)}const B1={clamp:xs,isArray:Ft,isBoolean:Go,isDefined(e){return e!==void 0},isNumber:Ct,isObject:Rt,isRegExp:M_,isString:Pe,isValid(e){return e!=null&&e===e},lerp:em,linearstep:M6,smoothstep:I1};function P6(e){const t=k1(e);for(const n in B1)t[n]=`this.${n}`;return t}const L6=R6({forbidden:[],allowed:["datum"],globalvar:"globalObject",fieldvar:"datum",functions:P6});function Nu(e,t={}){try{const n=B6(e),r=L6(n),i=Function("datum","globalObject",`"use strict"; return (${r.code});`).bind(B1),a=o=>i(o,t);return a.fields=r.fields,a.globals=r.globals,a.code=r.code,a}catch(n){throw new Error(`Invalid expression: ${e}, ${n.message}`)}}function Rn(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function Dr(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 Nh=Symbol("implicit");function Oh(){var e=new _r,t=[],n=[],r=Nh;function i(a){let o=e.get(a);if(o===void 0){if(r!==Nh)return r;e.set(a,o=t.push(a)-1)}return n[o%n.length]}return i.domain=function(a){if(!arguments.length)return t.slice();t=[],e=new _r;for(const o of a)e.has(o)||e.set(o,t.push(o)-1);return i},i.range=function(a){return arguments.length?(n=Array.from(a),i):n.slice()},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return Oh(t,n).unknown(r)},Rn.apply(i,arguments),i}function ka(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function As(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Fr(){}var Ii=.7,Ia=1/Ii,Ba="\\s*([+-]?\\d+)\\s*",Es="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Mn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",N6=/^#([0-9a-f]{3,8})$/,O6=new RegExp(`^rgb\\(${Ba},${Ba},${Ba}\\)$`),z6=new RegExp(`^rgb\\(${Mn},${Mn},${Mn}\\)$`),U6=new RegExp(`^rgba\\(${Ba},${Ba},${Ba},${Es}\\)$`),G6=new RegExp(`^rgba\\(${Mn},${Mn},${Mn},${Es}\\)$`),H6=new RegExp(`^hsl\\(${Es},${Mn},${Mn}\\)$`),V6=new RegExp(`^hsla\\(${Es},${Mn},${Mn},${Es}\\)$`),D1={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};ka(Fr,Rr,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:F1,formatHex:F1,formatHex8:j6,formatHsl:q6,formatRgb:R1,toString:R1});function F1(){return this.rgb().formatHex()}function j6(){return this.rgb().formatHex8()}function q6(){return O1(this).formatHsl()}function R1(){return this.rgb().formatRgb()}function Rr(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=N6.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?M1(t):n===3?new ft(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Ou(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Ou(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=O6.exec(e))?new ft(t[1],t[2],t[3],1):(t=z6.exec(e))?new ft(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=U6.exec(e))?Ou(t[1],t[2],t[3],t[4]):(t=G6.exec(e))?Ou(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=H6.exec(e))?N1(t[1],t[2]/100,t[3]/100,1):(t=V6.exec(e))?N1(t[1],t[2]/100,t[3]/100,t[4]):D1.hasOwnProperty(e)?M1(D1[e]):e==="transparent"?new ft(NaN,NaN,NaN,0):null}function M1(e){return new ft(e>>16&255,e>>8&255,e&255,1)}function Ou(e,t,n,r){return r<=0&&(e=t=n=NaN),new ft(e,t,n,r)}function zh(e){return e instanceof Fr||(e=Rr(e)),e?(e=e.rgb(),new ft(e.r,e.g,e.b,e.opacity)):new ft}function zu(e,t,n,r){return arguments.length===1?zh(e):new ft(e,t,n,r??1)}function ft(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}ka(ft,zu,As(Fr,{brighter(e){return e=e==null?Ia:Math.pow(Ia,e),new ft(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Ii:Math.pow(Ii,e),new ft(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ft(Bi(this.r),Bi(this.g),Bi(this.b),Uu(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:P1,formatHex:P1,formatHex8:Z6,formatRgb:L1,toString:L1}));function P1(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}`}function Z6(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}${Di((isNaN(this.opacity)?1:this.opacity)*255)}`}function L1(){const e=Uu(this.opacity);return`${e===1?"rgb(":"rgba("}${Bi(this.r)}, ${Bi(this.g)}, ${Bi(this.b)}${e===1?")":`, ${e})`}`}function Uu(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Bi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Di(e){return e=Bi(e),(e<16?"0":"")+e.toString(16)}function N1(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new yn(e,t,n,r)}function O1(e){if(e instanceof yn)return new yn(e.h,e.s,e.l,e.opacity);if(e instanceof Fr||(e=Rr(e)),!e)return new yn;if(e instanceof yn)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,u=(a+i)/2;return s?(t===a?o=(n-r)/s+(n<r)*6:n===a?o=(r-t)/s+2:o=(t-n)/s+4,s/=u<.5?a+i:2-a-i,o*=60):s=u>0&&u<1?0:o,new yn(o,s,u,e.opacity)}function Uh(e,t,n,r){return arguments.length===1?O1(e):new yn(e,t,n,r??1)}function yn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}ka(yn,Uh,As(Fr,{brighter(e){return e=e==null?Ia:Math.pow(Ia,e),new yn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ii:Math.pow(Ii,e),new yn(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 ft(Gh(e>=240?e-240:e+120,i,r),Gh(e,i,r),Gh(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new yn(z1(this.h),Gu(this.s),Gu(this.l),Uu(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=Uu(this.opacity);return`${e===1?"hsl(":"hsla("}${z1(this.h)}, ${Gu(this.s)*100}%, ${Gu(this.l)*100}%${e===1?")":`, ${e})`}`}}));function z1(e){return e=(e||0)%360,e<0?e+360:e}function Gu(e){return Math.max(0,Math.min(1,e||0))}function Gh(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 U1=Math.PI/180,G1=180/Math.PI,Hu=18,H1=.96422,V1=1,j1=.82521,q1=4/29,Da=6/29,Z1=3*Da*Da,W6=Da*Da*Da;function W1(e){if(e instanceof Pn)return new Pn(e.l,e.a,e.b,e.opacity);if(e instanceof rr)return Y1(e);e instanceof ft||(e=zh(e));var t=Zh(e.r),n=Zh(e.g),r=Zh(e.b),i=Vh((.2225045*t+.7168786*n+.0606169*r)/V1),a,o;return t===n&&n===r?a=o=i:(a=Vh((.4360747*t+.3850649*n+.1430804*r)/H1),o=Vh((.0139322*t+.0971045*n+.7141733*r)/j1)),new Pn(116*i-16,500*(a-i),200*(i-o),e.opacity)}function Hh(e,t,n,r){return arguments.length===1?W1(e):new Pn(e,t,n,r??1)}function Pn(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}ka(Pn,Hh,As(Fr,{brighter(e){return new Pn(this.l+Hu*(e??1),this.a,this.b,this.opacity)},darker(e){return new Pn(this.l-Hu*(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=H1*jh(t),e=V1*jh(e),n=j1*jh(n),new ft(qh(3.1338561*t-1.6168667*e-.4906146*n),qh(-.9787684*t+1.9161415*e+.033454*n),qh(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function Vh(e){return e>W6?Math.pow(e,1/3):e/Z1+q1}function jh(e){return e>Da?e*e*e:Z1*(e-q1)}function qh(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function Zh(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function Y6(e){if(e instanceof rr)return new rr(e.h,e.c,e.l,e.opacity);if(e instanceof Pn||(e=W1(e)),e.a===0&&e.b===0)return new rr(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*G1;return new rr(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function Wh(e,t,n,r){return arguments.length===1?Y6(e):new rr(e,t,n,r??1)}function rr(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function Y1(e){if(isNaN(e.h))return new Pn(e.l,0,0,e.opacity);var t=e.h*U1;return new Pn(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}ka(rr,Wh,As(Fr,{brighter(e){return new rr(this.h,this.c,this.l+Hu*(e??1),this.opacity)},darker(e){return new rr(this.h,this.c,this.l-Hu*(e??1),this.opacity)},rgb(){return Y1(this).rgb()}}));var Q1=-.14861,Yh=1.78277,Qh=-.29227,Vu=-.90649,_s=1.97294,$1=_s*Vu,X1=_s*Yh,K1=Yh*Qh-Vu*Q1;function Q6(e){if(e instanceof Fi)return new Fi(e.h,e.s,e.l,e.opacity);e instanceof ft||(e=zh(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(K1*r+$1*t-X1*n)/(K1+$1-X1),a=r-i,o=(_s*(n-i)-Qh*a)/Vu,s=Math.sqrt(o*o+a*a)/(_s*i*(1-i)),u=s?Math.atan2(o,a)*G1-120:NaN;return new Fi(u<0?u+360:u,s,i,e.opacity)}function $h(e,t,n,r){return arguments.length===1?Q6(e):new Fi(e,t,n,r??1)}function Fi(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}ka(Fi,$h,As(Fr,{brighter(e){return e=e==null?Ia:Math.pow(Ia,e),new Fi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ii:Math.pow(Ii,e),new Fi(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*U1,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new ft(255*(t+n*(Q1*r+Yh*i)),255*(t+n*(Qh*r+Vu*i)),255*(t+n*(_s*r)),this.opacity)}}));function J1(e,t,n,r,i){var a=e*e,o=a*e;return((1-3*e+3*a-o)*t+(4-6*a+3*o)*n+(1+3*e+3*a-3*o)*r+o*i)/6}function eb(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],a=e[r+1],o=r>0?e[r-1]:2*i-a,s=r<t-1?e[r+2]:2*a-i;return J1((n-r/t)*t,o,i,a,s)}}function tb(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),i=e[(r+t-1)%t],a=e[r%t],o=e[(r+1)%t],s=e[(r+2)%t];return J1((n-r/t)*t,i,a,o,s)}}const ju=e=>()=>e;function nb(e,t){return function(n){return e+n*t}}function $6(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 qu(e,t){var n=t-e;return n?nb(e,n>180||n<-180?n-360*Math.round(n/360):n):ju(isNaN(e)?t:e)}function X6(e){return(e=+e)==1?ct:function(t,n){return n-t?$6(t,n,e):ju(isNaN(t)?n:t)}}function ct(e,t){var n=t-e;return n?nb(e,n):ju(isNaN(e)?t:e)}const Xh=function e(t){var n=X6(t);function r(i,a){var o=n((i=zu(i)).r,(a=zu(a)).r),s=n(i.g,a.g),u=n(i.b,a.b),l=ct(i.opacity,a.opacity);return function(f){return i.r=o(f),i.g=s(f),i.b=u(f),i.opacity=l(f),i+""}}return r.gamma=e,r}(1);function rb(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),a=new Array(n),o,s;for(o=0;o<n;++o)s=zu(t[o]),r[o]=s.r||0,i[o]=s.g||0,a[o]=s.b||0;return r=e(r),i=e(i),a=e(a),s.opacity=1,function(u){return s.r=r(u),s.g=i(u),s.b=a(u),s+""}}}var K6=rb(eb),J6=rb(tb);function Kh(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function ib(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function e8(e,t){return(ib(t)?Kh:ab)(e,t)}function ab(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),a=new Array(n),o;for(o=0;o<r;++o)i[o]=Mr(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(s){for(o=0;o<r;++o)a[o]=i[o](s);return a}}function ob(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function wn(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function sb(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]=Mr(e[i],t[i]):r[i]=t[i];return function(a){for(i in n)r[i]=n[i](a);return r}}var Jh=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ed=new RegExp(Jh.source,"g");function t8(e){return function(){return e}}function n8(e){return function(t){return e(t)+""}}function lb(e,t){var n=Jh.lastIndex=ed.lastIndex=0,r,i,a,o=-1,s=[],u=[];for(e=e+"",t=t+"";(r=Jh.exec(e))&&(i=ed.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,u.push({i:o,x:wn(r,i)})),n=ed.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?u[0]?n8(u[0].x):t8(t):(t=u.length,function(l){for(var f=0,c;f<t;++f)s[(c=u[f]).i]=c.x(l);return s.join("")})}function Mr(e,t){var n=typeof t,r;return t==null||n==="boolean"?ju(t):(n==="number"?wn:n==="string"?(r=Rr(t))?(t=r,Xh):lb:t instanceof Rr?Xh:t instanceof Date?ob:ib(t)?Kh:Array.isArray(t)?ab:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?sb:wn)(e,t)}function r8(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function i8(e,t){var n=qu(+e,+t);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function Ss(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var ub=180/Math.PI,td={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function fb(e,t,n,r,i,a){var o,s,u;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(u=e*n+t*r)&&(n-=e*u,r-=t*u),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,u/=s),e*r<t*n&&(e=-e,t=-t,u=-u,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*ub,skewX:Math.atan(u)*ub,scaleX:o,scaleY:s}}var Zu;function a8(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?td:fb(t.a,t.b,t.c,t.d,t.e,t.f)}function o8(e){return e==null||(Zu||(Zu=document.createElementNS("http://www.w3.org/2000/svg","g")),Zu.setAttribute("transform",e),!(e=Zu.transform.baseVal.consolidate()))?td:(e=e.matrix,fb(e.a,e.b,e.c,e.d,e.e,e.f))}function cb(e,t,n,r){function i(l){return l.length?l.pop()+" ":""}function a(l,f,c,h,d,p){if(l!==c||f!==h){var m=d.push("translate(",null,t,null,n);p.push({i:m-4,x:wn(l,c)},{i:m-2,x:wn(f,h)})}else(c||h)&&d.push("translate("+c+t+h+n)}function o(l,f,c,h){l!==f?(l-f>180?f+=360:f-l>180&&(l+=360),h.push({i:c.push(i(c)+"rotate(",null,r)-2,x:wn(l,f)})):f&&c.push(i(c)+"rotate("+f+r)}function s(l,f,c,h){l!==f?h.push({i:c.push(i(c)+"skewX(",null,r)-2,x:wn(l,f)}):f&&c.push(i(c)+"skewX("+f+r)}function u(l,f,c,h,d,p){if(l!==c||f!==h){var m=d.push(i(d)+"scale(",null,",",null,")");p.push({i:m-4,x:wn(l,c)},{i:m-2,x:wn(f,h)})}else(c!==1||h!==1)&&d.push(i(d)+"scale("+c+","+h+")")}return function(l,f){var c=[],h=[];return l=e(l),f=e(f),a(l.translateX,l.translateY,f.translateX,f.translateY,c,h),o(l.rotate,f.rotate,c,h),s(l.skewX,f.skewX,c,h),u(l.scaleX,l.scaleY,f.scaleX,f.scaleY,c,h),l=f=null,function(d){for(var p=-1,m=h.length,y;++p<m;)c[(y=h[p]).i]=y.x(d);return c.join("")}}}var s8=cb(a8,"px, ","px)","deg)"),l8=cb(o8,", ",")",")"),u8=1e-12;function hb(e){return((e=Math.exp(e))+1/e)/2}function f8(e){return((e=Math.exp(e))-1/e)/2}function c8(e){return((e=Math.exp(2*e))-1)/(e+1)}const h8=function e(t,n,r){function i(a,o){var s=a[0],u=a[1],l=a[2],f=o[0],c=o[1],h=o[2],d=f-s,p=c-u,m=d*d+p*p,y,w;if(m<u8)w=Math.log(h/l)/t,y=function(I){return[s+I*d,u+I*p,l*Math.exp(t*I*w)]};else{var _=Math.sqrt(m),C=(h*h-l*l+r*m)/(2*l*n*_),E=(h*h-l*l-r*m)/(2*h*n*_),k=Math.log(Math.sqrt(C*C+1)-C),B=Math.log(Math.sqrt(E*E+1)-E);w=(B-k)/t,y=function(I){var R=I*w,L=hb(k),j=l/(n*_)*(L*c8(t*R+k)-f8(k));return[s+j*d,u+j*p,l*L/hb(t*R+k)]}}return y.duration=w*1e3*t/Math.SQRT2,y}return i.rho=function(a){var o=Math.max(.001,+a),s=o*o,u=s*s;return e(o,s,u)},i}(Math.SQRT2,2,4);function db(e){return function(t,n){var r=e((t=Uh(t)).h,(n=Uh(n)).h),i=ct(t.s,n.s),a=ct(t.l,n.l),o=ct(t.opacity,n.opacity);return function(s){return t.h=r(s),t.s=i(s),t.l=a(s),t.opacity=o(s),t+""}}}const d8=db(qu);var p8=db(ct);function g8(e,t){var n=ct((e=Hh(e)).l,(t=Hh(t)).l),r=ct(e.a,t.a),i=ct(e.b,t.b),a=ct(e.opacity,t.opacity);return function(o){return e.l=n(o),e.a=r(o),e.b=i(o),e.opacity=a(o),e+""}}function pb(e){return function(t,n){var r=e((t=Wh(t)).h,(n=Wh(n)).h),i=ct(t.c,n.c),a=ct(t.l,n.l),o=ct(t.opacity,n.opacity);return function(s){return t.h=r(s),t.c=i(s),t.l=a(s),t.opacity=o(s),t+""}}}const m8=pb(qu);var b8=pb(ct);function gb(e){return function t(n){n=+n;function r(i,a){var o=e((i=$h(i)).h,(a=$h(a)).h),s=ct(i.s,a.s),u=ct(i.l,a.l),l=ct(i.opacity,a.opacity);return function(f){return i.h=o(f),i.s=s(f),i.l=u(Math.pow(f,n)),i.opacity=l(f),i+""}}return r.gamma=t,r}(1)}const y8=gb(qu);var w8=gb(ct);function nd(e,t){t===void 0&&(t=e,e=Mr);for(var n=0,r=t.length-1,i=t[0],a=new Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(o){var s=Math.max(0,Math.min(r-1,Math.floor(o*=r)));return a[s](o-s)}}function v8(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const x8=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Mr,interpolateArray:e8,interpolateBasis:eb,interpolateBasisClosed:tb,interpolateCubehelix:y8,interpolateCubehelixLong:w8,interpolateDate:ob,interpolateDiscrete:r8,interpolateHcl:m8,interpolateHclLong:b8,interpolateHsl:d8,interpolateHslLong:p8,interpolateHue:i8,interpolateLab:g8,interpolateNumber:wn,interpolateNumberArray:Kh,interpolateObject:sb,interpolateRgb:Xh,interpolateRgbBasis:K6,interpolateRgbBasisClosed:J6,interpolateRound:Ss,interpolateString:lb,interpolateTransformCss:s8,interpolateTransformSvg:l8,interpolateZoom:h8,piecewise:nd,quantize:v8},Symbol.toStringTag,{value:"Module"}));function A8(e){return function(){return e}}function rd(e){return+e}var mb=[0,1];function zt(e){return e}function id(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:A8(isNaN(t)?NaN:.5)}function E8(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function _8(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=id(i,r),a=n(o,a)):(r=id(r,i),a=n(a,o)),function(s){return a(r(s))}}function S8(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),a=new Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)i[o]=id(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(s){var u=Er(e,s,1,r)-1;return a[u](i[u](s))}}function Cs(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Wu(){var e=mb,t=mb,n=Mr,r,i,a,o=zt,s,u,l;function f(){var h=Math.min(e.length,t.length);return o!==zt&&(o=E8(e[0],e[h-1])),s=h>2?S8:_8,u=l=null,c}function c(h){return h==null||isNaN(h=+h)?a:(u||(u=s(e.map(r),t,n)))(r(o(h)))}return c.invert=function(h){return o(i((l||(l=s(t,e.map(r),wn)))(h)))},c.domain=function(h){return arguments.length?(e=Array.from(h,rd),f()):e.slice()},c.range=function(h){return arguments.length?(t=Array.from(h),f()):t.slice()},c.rangeRound=function(h){return t=Array.from(h),n=Ss,f()},c.clamp=function(h){return arguments.length?(o=h?!0:zt,f()):o!==zt},c.interpolate=function(h){return arguments.length?(n=h,f()):n},c.unknown=function(h){return arguments.length?(a=h,c):a},function(h,d){return r=h,i=d,f()}}function bb(){return Wu()(zt,zt)}function yb(e,t,n,r){var i=bi(e,t,n),a;switch(r=Sr(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=vm(i,o))&&(r.precision=a),ah(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=xm(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=wm(i))&&(r.precision=a-(r.type==="%")*2);break}}return gt(r)}function Ri(e){var t=e.domain;return e.ticks=function(n){var r=t();return bu(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return yb(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],u,l,f=10;for(s<o&&(l=o,o=s,s=l,l=i,i=a,a=l);f-- >0;){if(l=cm(o,s,n),l===u)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;u=l}return e},e}function wb(){var e=bb();return e.copy=function(){return Cs(e,wb())},Rn.apply(e,arguments),Ri(e)}function vb(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,rd),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return vb(e).unknown(t)},e=arguments.length?Array.from(e,rd):[0,1],Ri(n)}function xb(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return a<i&&(o=n,n=r,r=o,o=i,i=a,a=o),e[n]=t.floor(i),e[r]=t.ceil(a),e}function Ab(e){return Math.log(e)}function Eb(e){return Math.exp(e)}function C8(e){return-Math.log(-e)}function T8(e){return-Math.exp(-e)}function k8(e){return isFinite(e)?+("1e"+e):e<0?0:e}function I8(e){return e===10?k8:e===Math.E?Math.exp:t=>Math.pow(e,t)}function B8(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 _b(e){return(t,n)=>-e(-t,n)}function ad(e){const t=e(Ab,Eb),n=t.domain;let r=10,i,a;function o(){return i=B8(r),a=I8(r),n()[0]<0?(i=_b(i),a=_b(a),e(C8,T8)):e(Ab,Eb),t}return t.base=function(s){return arguments.length?(r=+s,o()):r},t.domain=function(s){return arguments.length?(n(s),o()):n()},t.ticks=s=>{const u=n();let l=u[0],f=u[u.length-1];const c=f<l;c&&([l,f]=[f,l]);let h=i(l),d=i(f),p,m;const y=s==null?10:+s;let w=[];if(!(r%1)&&d-h<y){if(h=Math.floor(h),d=Math.ceil(d),l>0){for(;h<=d;++h)for(p=1;p<r;++p)if(m=h<0?p/a(-h):p*a(h),!(m<l)){if(m>f)break;w.push(m)}}else for(;h<=d;++h)for(p=r-1;p>=1;--p)if(m=h>0?p/a(-h):p*a(h),!(m<l)){if(m>f)break;w.push(m)}w.length*2<y&&(w=bu(l,f,y))}else w=bu(h,d,Math.min(d-h,y)).map(a);return c?w.reverse():w},t.tickFormat=(s,u)=>{if(s==null&&(s=10),u==null&&(u=r===10?"s":","),typeof u!="function"&&(!(r%1)&&(u=Sr(u)).precision==null&&(u.trim=!0),u=gt(u)),s===1/0)return u;const l=Math.max(1,r*s/t.ticks().length);return f=>{let c=f/a(Math.round(i(f)));return c*r<r-.5&&(c*=r),c<=l?u(f):""}},t.nice=()=>n(xb(n(),{floor:s=>a(Math.floor(i(s))),ceil:s=>a(Math.ceil(i(s)))})),t}function od(){const e=ad(Wu()).domain([1,10]);return e.copy=()=>Cs(e,od()).base(e.base()),Rn.apply(e,arguments),e}function Sb(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Cb(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function sd(e){var t=1,n=e(Sb(t),Cb(t));return n.constant=function(r){return arguments.length?e(Sb(t=+r),Cb(t)):t},Ri(n)}function Tb(){var e=sd(Wu());return e.copy=function(){return Cs(e,Tb()).constant(e.constant())},Rn.apply(e,arguments)}function kb(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function D8(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function F8(e){return e<0?-e*e:e*e}function ld(e){var t=e(zt,zt),n=1;function r(){return n===1?e(zt,zt):n===.5?e(D8,F8):e(kb(n),kb(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},Ri(t)}function ud(){var e=ld(Wu());return e.copy=function(){return Cs(e,ud()).exponent(e.exponent())},Rn.apply(e,arguments),e}function R8(){return ud.apply(null,arguments).exponent(.5)}function Ib(){var e=[],t=[],n=[],r;function i(){var o=0,s=Math.max(1,t.length);for(n=new Array(s-1);++o<s;)n[o-1]=hm(e,o/s);return a}function a(o){return o==null||isNaN(o=+o)?r:t[Er(n,o)]}return a.invertExtent=function(o){var s=t.indexOf(o);return s<0?[NaN,NaN]:[s>0?n[s-1]:e[0],s<n.length?n[s]:e[e.length-1]]},a.domain=function(o){if(!arguments.length)return e.slice();e=[];for(let s of o)s!=null&&!isNaN(s=+s)&&e.push(s);return e.sort(Vo),i()},a.range=function(o){return arguments.length?(t=Array.from(o),i()):t.slice()},a.unknown=function(o){return arguments.length?(r=o,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return Ib().domain(e).range(t).unknown(r)},Rn.apply(a,arguments)}function Bb(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(u){return u!=null&&u<=u?i[Er(r,u,0,n)]:a}function s(){var u=-1;for(r=new Array(n);++u<n;)r[u]=((u+1)*t-(u-n)*e)/(n+1);return o}return o.domain=function(u){return arguments.length?([e,t]=u,e=+e,t=+t,s()):[e,t]},o.range=function(u){return arguments.length?(n=(i=Array.from(u)).length-1,s()):i.slice()},o.invertExtent=function(u){var l=i.indexOf(u);return l<0?[NaN,NaN]:l<1?[e,r[0]]:l>=n?[r[n-1],t]:[r[l-1],r[l]]},o.unknown=function(u){return arguments.length&&(a=u),o},o.thresholds=function(){return r.slice()},o.copy=function(){return Bb().domain([e,t]).range(i).unknown(a)},Rn.apply(Ri(o),arguments)}function Db(){var e=[.5],t=[0,1],n,r=1;function i(a){return a!=null&&a<=a?t[Er(e,a,0,r)]:n}return i.domain=function(a){return arguments.length?(e=Array.from(a),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(a){return arguments.length?(t=Array.from(a),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(a){var o=t.indexOf(a);return[e[o-1],e[o]]},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return Db().domain(e).range(t).unknown(n)},Rn.apply(i,arguments)}function M8(e){return new Date(e)}function P8(e){return e instanceof Date?+e:+new Date(+e)}function fd(e,t,n,r,i,a,o,s,u,l){var f=bb(),c=f.invert,h=f.domain,d=l(".%L"),p=l(":%S"),m=l("%I:%M"),y=l("%I %p"),w=l("%a %d"),_=l("%b %d"),C=l("%B"),E=l("%Y");function k(B){return(u(B)<B?d:s(B)<B?p:o(B)<B?m:a(B)<B?y:r(B)<B?i(B)<B?w:_:n(B)<B?C:E)(B)}return f.invert=function(B){return new Date(c(B))},f.domain=function(B){return arguments.length?h(Array.from(B,P8)):h().map(M8)},f.ticks=function(B){var I=h();return e(I[0],I[I.length-1],B??10)},f.tickFormat=function(B,I){return I==null?k:l(I)},f.nice=function(B){var I=h();return(!B||typeof B.range!="function")&&(B=t(I[0],I[I.length-1],B??10)),B?h(xb(I,B)):f},f.copy=function(){return Cs(f,fd(e,t,n,r,i,a,o,s,u,l))},f}function L8(){return Rn.apply(fd(E4,_4,Tr,Zo,qo,wi,hh,ch,Cr,vh).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function N8(){return Rn.apply(fd(x4,A4,kr,Yo,Wo,xi,gh,ph,Cr,xh).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Yu(){var e=0,t=1,n,r,i,a,o=zt,s=!1,u;function l(c){return c==null||isNaN(c=+c)?u:o(i===0?.5:(c=(a(c)-n)*i,s?Math.max(0,Math.min(1,c)):c))}l.domain=function(c){return arguments.length?([e,t]=c,n=a(e=+e),r=a(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(c){return arguments.length?(s=!!c,l):s},l.interpolator=function(c){return arguments.length?(o=c,l):o};function f(c){return function(h){var d,p;return arguments.length?([d,p]=h,o=c(d,p),l):[o(0),o(1)]}}return l.range=f(Mr),l.rangeRound=f(Ss),l.unknown=function(c){return arguments.length?(u=c,l):u},function(c){return a=c,n=c(e),r=c(t),i=n===r?0:1/(r-n),l}}function Pr(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function cd(){var e=Ri(Yu()(zt));return e.copy=function(){return Pr(e,cd())},Dr.apply(e,arguments)}function Fb(){var e=ad(Yu()).domain([1,10]);return e.copy=function(){return Pr(e,Fb()).base(e.base())},Dr.apply(e,arguments)}function Rb(){var e=sd(Yu());return e.copy=function(){return Pr(e,Rb()).constant(e.constant())},Dr.apply(e,arguments)}function hd(){var e=ld(Yu());return e.copy=function(){return Pr(e,hd()).exponent(e.exponent())},Dr.apply(e,arguments)}function O8(){return hd.apply(null,arguments).exponent(.5)}function Qu(){var e=0,t=.5,n=1,r=1,i,a,o,s,u,l=zt,f,c=!1,h;function d(m){return isNaN(m=+m)?h:(m=.5+((m=+f(m))-a)*(r*m<r*a?s:u),l(c?Math.max(0,Math.min(1,m)):m))}d.domain=function(m){return arguments.length?([e,t,n]=m,i=f(e=+e),a=f(t=+t),o=f(n=+n),s=i===a?0:.5/(a-i),u=a===o?0:.5/(o-a),r=a<i?-1:1,d):[e,t,n]},d.clamp=function(m){return arguments.length?(c=!!m,d):c},d.interpolator=function(m){return arguments.length?(l=m,d):l};function p(m){return function(y){var w,_,C;return arguments.length?([w,_,C]=y,l=nd(m,[w,_,C]),d):[l(0),l(.5),l(1)]}}return d.range=p(Mr),d.rangeRound=p(Ss),d.unknown=function(m){return arguments.length?(h=m,d):h},function(m){return f=m,i=m(e),a=m(t),o=m(n),s=i===a?0:.5/(a-i),u=a===o?0:.5/(o-a),r=a<i?-1:1,d}}function Mb(){var e=Ri(Qu()(zt));return e.copy=function(){return Pr(e,Mb())},Dr.apply(e,arguments)}function Pb(){var e=ad(Qu()).domain([.1,1,10]);return e.copy=function(){return Pr(e,Pb()).base(e.base())},Dr.apply(e,arguments)}function Lb(){var e=sd(Qu());return e.copy=function(){return Pr(e,Lb()).constant(e.constant())},Dr.apply(e,arguments)}function dd(){var e=ld(Qu());return e.copy=function(){return Pr(e,dd()).exponent(e.exponent())},Dr.apply(e,arguments)}function z8(){return dd.apply(null,arguments).exponent(.5)}function pd(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const U8="identity",Fa="linear",Lr="log",Ts="pow",ks="sqrt",$u="symlog",Nb="time",Ob="utc",Ln="sequential",Ra="diverging",gd="quantile",zb="quantize",Ub="threshold",md="ordinal",bd="point",Gb="band",yd="bin-ordinal",it="continuous",Is="discrete",Bs="discretizing",en="interpolating",Hb="temporal";function G8(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 H8(e){return function(t){const n=e.range();let r=t[0],i=t[1],a=-1,o,s,u,l;for(i<r&&(s=r,r=i,i=s),u=0,l=n.length;u<l;++u)n[u]>=r&&n[u]<=i&&(a<0&&(a=u),o=u);if(!(a<0))return r=e.invertExtent(n[a]),i=e.invertExtent(n[o]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function wd(){const e=Oh().unknown(void 0),t=e.domain,n=e.range;let r=[0,1],i,a,o=!1,s=0,u=0,l=.5;delete e.unknown;function f(){const c=t().length,h=r[1]<r[0],d=r[1-h],p=pd(c,s,u);let m=r[h-0];i=(d-m)/(p||1),o&&(i=Math.floor(i)),m+=(d-m-i*(c-s))*l,a=i*(1-s),o&&(m=Math.round(m),a=Math.round(a));const y=jo(c).map(w=>m+i*w);return n(h?y.reverse():y)}return e.domain=function(c){return arguments.length?(t(c),f()):t()},e.range=function(c){return arguments.length?(r=[+c[0],+c[1]],f()):r.slice()},e.rangeRound=function(c){return r=[+c[0],+c[1]],o=!0,f()},e.bandwidth=function(){return a},e.step=function(){return i},e.round=function(c){return arguments.length?(o=!!c,f()):o},e.padding=function(c){return arguments.length?(u=Math.max(0,Math.min(1,c)),s=u,f()):s},e.paddingInner=function(c){return arguments.length?(s=Math.max(0,Math.min(1,c)),f()):s},e.paddingOuter=function(c){return arguments.length?(u=Math.max(0,Math.min(1,c)),f()):u},e.align=function(c){return arguments.length?(l=Math.max(0,Math.min(1,c)),f()):l},e.invertRange=function(c){if(c[0]==null||c[1]==null)return;const h=r[1]<r[0],d=h?n().reverse():n(),p=d.length-1;let m=+c[0],y=+c[1],w,_,C;if(!(m!==m||y!==y)&&(y<m&&(C=m,m=y,y=C),!(y<d[0]||m>r[1-h])))return w=Math.max(0,Er(d,m)-1),_=m===y?w:Er(d,y)-1,m-d[w]>a+1e-10&&++w,h&&(C=w,w=p-_,_=p-C),w>_?void 0:t().slice(w,_+1)},e.invert=function(c){const h=e.invertRange([c,c]);return h&&h[0]},e.copy=function(){return wd().domain(t()).range(r).round(o).paddingInner(s).paddingOuter(u).align(l)},f()}function Vb(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return Vb(t())},e}function V8(){return Vb(wd().paddingInner(1))}var j8=Array.prototype.map;function q8(e){return j8.call(e,Uo)}const Z8=Array.prototype.slice;function jb(){let e=[],t=[];function n(r){return r==null||r!==r?void 0:t[(Er(e,r)-1)%t.length]}return n.domain=function(r){return arguments.length?(e=q8(r),n):e.slice()},n.range=function(r){return arguments.length?(t=Z8.call(r),n):t.slice()},n.tickFormat=function(r,i){return yb(e[0],gn(e),r??10,i)},n.copy=function(){return jb().domain(n.domain()).range(n.range())},n}const Xu={};function W8(e,t,n){const r=function(){const a=t();return a.invertRange||(a.invertRange=a.invert?G8(a):a.invertExtent?H8(a):void 0),a.type=e,a};return r.metadata=pu(Qc(n)),r}function Ae(e,t,n){return arguments.length>1?(Xu[e]=W8(e,t,n),this):Y8(e)?Xu[e]:void 0}Ae(U8,vb),Ae(Fa,wb,it),Ae(Lr,od,[it,Lr]),Ae(Ts,ud,it),Ae(ks,R8,it),Ae($u,Tb,it),Ae(Nb,L8,[it,Hb]),Ae(Ob,N8,[it,Hb]),Ae(Ln,cd,[it,en]),Ae("".concat(Ln,"-").concat(Fa),cd,[it,en]),Ae("".concat(Ln,"-").concat(Lr),Fb,[it,en,Lr]),Ae("".concat(Ln,"-").concat(Ts),hd,[it,en]),Ae("".concat(Ln,"-").concat(ks),O8,[it,en]),Ae("".concat(Ln,"-").concat($u),Rb,[it,en]),Ae("".concat(Ra,"-").concat(Fa),Mb,[it,en]),Ae("".concat(Ra,"-").concat(Lr),Pb,[it,en,Lr]),Ae("".concat(Ra,"-").concat(Ts),dd,[it,en]),Ae("".concat(Ra,"-").concat(ks),z8,[it,en]),Ae("".concat(Ra,"-").concat($u),Lb,[it,en]),Ae(gd,Ib,[Bs,gd]),Ae(zb,Bb,Bs),Ae(Ub,Db,Bs),Ae(yd,jb,[Is,Bs]),Ae(md,Oh,Is),Ae(Gb,wd,Is),Ae(bd,V8,Is);function Y8(e){return mi(Xu,e)}function Ds(e,t){const n=Xu[e];return n&&n.metadata[t]}function bt(e){return Ds(e,it)}function Nn(e){return Ds(e,Is)}function Mi(e){return Ds(e,Bs)}function qb(e){return Ds(e,Lr)}function Ku(e){return Ds(e,en)}function Q8(e,t){const n=t[0],r=gn(t)-n;return function(i){return e(n+i*r)}}function Ju(e,t,n){return nd(Zb(t||"rgb",n),e)}function $8(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}function Zb(e,t){const n=x8[X8(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function X8(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const K8={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"},J8={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 Wb(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 Yb(e,t){for(const n in e)vd(n,t(e[n]))}const Qb={};Yb(J8,Wb),Yb(K8,e=>Ju(Wb(e)));function vd(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(Qb[e]=t,this):Qb[e]}function e5(){let e=0,t,n=0;const r=new Map,i=a=>(a===t||(n=r.get(a),n===void 0&&(n=e++,r.set(a,n)),t=a),n);return i.addAll=a=>{for(const o of a)i(o)},i.invert=a=>{for(const o of r.entries())if(o[1]==a)return o[0]},i.domain=()=>[...r.keys()],i}function ef(){const e=t=>t;return e.invert=t=>t,e.copy=ef,e.invertRange=()=>{},e.type="null",e}function t5(e,t){const n={};t||(t=e.encoding);for(const[r,i]of Object.entries(t)){if(!i)continue;const a=((Ut(i)&&i.resolutionChannel)??(Oi(r)&&r))||void 0,o=e.unitView.getScaleResolution(a);n[r]=n5(t[r],o==null?void 0:o.getScale(),e.unitView.getAccessor(r),r)}return n}function n5(e,t,n,r){let i;if(vn(e)){const a=e.value;i=o=>a,i.constant=!0,i.constantValue=!0,i.accessor=void 0}else if(n)if(r=="text")i=a=>{},i.accessor=n,i.constant=n.constant;else{if(!t)if(!Oi(r))t=ef();else throw new Error(`Missing scale! "${r}": ${JSON.stringify(e)}`);if(i=a=>t(n(a)),Nn(t.type)){const a=e5();a.addAll(t.domain()),i.indexer=a}i.constant=n.constant,i.accessor=n,i.scale=t}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${r}": ${JSON.stringify(e)}`);return i.invert=t?a=>t.invert(a):a=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(e))},i.channelDef=e,i.applyMetadata=a=>{for(const o in i)o in i&&(a[o]=i[o]);return a},i}function vn(e){return e&&"value"in e}function Pi(e){return e&&"field"in e}function Fs(e){return e&&"datum"in e}function Ut(e){return Pi(e)||Fs(e)||tf(e)||$b(e)}function xd(e,t){const n=e.mark.encoding[t];if(Ut(n))return n;throw new Error("Not a channel def with scale!")}function $b(e){return e&&"chrom"in e}function tf(e){return e&&"expr"in e}const Ma=["x","y"],r5=["x2","y2"],i5=[...Ma,...r5];function Xb(e){return Ma.includes(e)}function Rs(e){return i5.includes(e)}const Ad={x:"x2",y:"y2"},Kb=Object.fromEntries(Object.entries(Ad).map(e=>[e[1],e[0]]));function Ms(e){return e in Kb}function a5(e){const t=Ad[e];if(t)return t;throw new Error(`${e} has no secondary channel!`)}function Li(e){return Kb[e]??e}function Ni(e){return["color","fill","stroke"].includes(Li(e))}function nf(e){return["shape","squeeze"].includes(e)}function Oi(e){return["x","y","x2","y2","color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","angle","dx","dy","sample"].includes(e)}function o5(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 Jb(e){if(!nf(e))throw new Error("Not a discrete channel: "+e);const t=new Map(o5(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 Re(e,t=e){if(/^[A-Za-z0-9_]+$/.test(e)){const n=new Function("datum",`return datum[${JSON.stringify(e)}]`);return Ce(n,[e],t)}else return lu(e)}class s5{constructor(){this.accessorCreators=[],this.register(t=>{if(Pi(t))try{const n=Re(t.field);return n.constant=!1,n.fields=su(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(t=>tf(t)?l5(t.expr):void 0),this.register(t=>{if(Fs(t)){const r=B_(t.datum);return r.constant=!0,r.fields=[],r}})}register(t){this.accessorCreators.push(t)}createAccessor(t){for(const n of this.accessorCreators){const r=n(t);if(r)return r}}}function l5(e){const n=Nu(e);return n.constant=n.fields.length==0,n}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
163
163
  Available via the MIT license.
164
- see: http://github.com/greggman/twgl.js for details */const wd=5120,Ps=5121,vd=5122,xd=5123,Ad=5124,Ed=5125,_d=5126,r5=32819,i5=32820,o5=33635,a5=5131,s5=33640,l5=35899,u5=35902,f5=36269,c5=34042,Xb={};{const e=Xb;e[wd]=Int8Array,e[Ps]=Uint8Array,e[vd]=Int16Array,e[xd]=Uint16Array,e[Ad]=Int32Array,e[Ed]=Uint32Array,e[_d]=Float32Array,e[r5]=Uint16Array,e[i5]=Uint16Array,e[o5]=Uint16Array,e[a5]=Uint16Array,e[s5]=Uint32Array,e[l5]=Uint32Array,e[u5]=Uint32Array,e[f5]=Uint32Array,e[c5]=Uint32Array}function Sd(e){if(e instanceof Int8Array)return wd;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)return Ps;if(e instanceof Int16Array)return vd;if(e instanceof Uint16Array)return xd;if(e instanceof Int32Array)return Ad;if(e instanceof Uint32Array)return Ed;if(e instanceof Float32Array)return _d;throw new Error("unsupported typed array type")}function h5(e){if(e===Int8Array)return wd;if(e===Uint8Array||e===Uint8ClampedArray)return Ps;if(e===Int16Array)return vd;if(e===Uint16Array)return xd;if(e===Int32Array)return Ad;if(e===Uint32Array)return Ed;if(e===Float32Array)return _d;throw new Error("unsupported typed array type")}function d5(e){const t=Xb[e];if(!t)throw new Error("unknown gl type");return t}const tf=typeof SharedArrayBuffer<"u"?function(t){return t&&t.buffer&&(t.buffer instanceof ArrayBuffer||t.buffer instanceof SharedArrayBuffer)}:function(t){return t&&t.buffer&&t.buffer instanceof ArrayBuffer};function p5(...e){console.error(...e)}function $b(...e){console.warn(...e)}function g5(e,t){return typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer}function Kb(e,t){return typeof WebGLRenderbuffer<"u"&&t instanceof WebGLRenderbuffer}function nf(e,t){return typeof WebGLTexture<"u"&&t instanceof WebGLTexture}function m5(e,t){return typeof WebGLSampler<"u"&&t instanceof WebGLSampler}const Jb=35044,Ln=34962,b5=34963,y5=34660,w5=5120,v5=5121,x5=5122,A5=5123,E5=5124,_5=5125,S5=5126,e2={attribPrefix:""};function t2(e,t,n,r,i){e.bindBuffer(t,n),e.bufferData(t,r,i||Jb)}function n2(e,t,n,r){if(g5(e,t))return t;n=n||Ln;const i=e.createBuffer();return t2(e,n,i,t,r),i}function r2(e){return e==="indices"}function C5(e){return e instanceof Int8Array||e instanceof Uint8Array}function k5(e){return e===Int8Array||e===Uint8Array}function T5(e){return e.length?e:e.data}const I5=/coord|texture/i,B5=/color|colour/i;function i2(e,t){let n;if(I5.test(e)?n=2:B5.test(e)?n=4:n=3,t%n>0)throw new Error(`Can not guess numComponents for attribute '${e}'. Tried ${n} but ${t} values is not evenly divisible by ${n}. You should specify it.`);return n}function D5(e,t){return e.numComponents||e.size||i2(t,T5(e).length)}function Cd(e,t){if(tf(e))return e;if(tf(e.data))return e.data;Array.isArray(e)&&(e={data:e});let n=e.type;return n||(r2(t)?n=Uint16Array:n=Float32Array),new n(e.data)}function F5(e,t){const n={};return Object.keys(t).forEach(function(r){if(!r2(r)){const i=t[r],o=i.attrib||i.name||i.attribName||e2.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!tf(i.value))throw new Error("array.value is not array or typedarray");n[o]={value:i.value}}else{let a,s,u,l;if(i.buffer&&i.buffer instanceof WebGLBuffer)a=i.buffer,l=i.numComponents||i.size,s=i.type,u=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const f=i.data||i,c=i.type||Float32Array,h=f*c.BYTES_PER_ELEMENT;s=h5(c),u=i.normalize!==void 0?i.normalize:k5(c),l=i.numComponents||i.size||i2(r,f),a=e.createBuffer(),e.bindBuffer(Ln,a),e.bufferData(Ln,h,i.drawType||Jb)}else{const f=Cd(i,r);a=n2(e,f,void 0,i.drawType),s=Sd(f),u=i.normalize!==void 0?i.normalize:C5(f),l=D5(i,r)}n[o]={buffer:a,numComponents:l,type:s,normalize:u,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),e.bindBuffer(Ln,null),n}function R5(e,t,n,r){n=Cd(n),r!==void 0?(e.bindBuffer(Ln,t.buffer),e.bufferSubData(Ln,r,n)):t2(e,Ln,t.buffer,n,t.drawType)}function M5(e,t){return t===w5||t===v5?1:t===x5||t===A5?2:t===E5||t===_5||t===S5?4:0}const kd=["position","positions","a_position"];function P5(e,t){let n,r;for(r=0;r<kd.length&&(n=kd[r],!(n in t||(n=e2.attribPrefix+n,n in t)));++r);r===kd.length&&(n=Object.keys(t)[0]);const i=t[n];e.bindBuffer(Ln,i.buffer);const o=e.getBufferParameter(Ln,y5);e.bindBuffer(Ln,null);const a=M5(e,i.type),s=o/a,u=i.numComponents||i.size,l=s/u;if(l%1!==0)throw new Error(`numComponents ${u} not correct for length ${length}`);return l}function L5(e,t,n){const r=F5(e,t),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const o=t.indices;if(o){const a=Cd(o,"indices");i.indices=n2(e,a,b5),i.numElements=a.length,i.elementType=Sd(a)}else i.numElements||(i.numElements=P5(e,i.attribs));return i}function Lo(e){return!!e.texStorage2D}const Td=function(){const e={},t={};function n(r){const i=r.constructor.name;if(!e[i]){for(const o in r)if(typeof r[o]=="number"){const a=t[r[o]];t[r[o]]=a?`${a} | ${o}`:o}e[i]=!0}}return function(i,o){return n(i),t[o]||(typeof o=="number"?`0x${o.toString(16)}`:o)}}(),Nr={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},No=tf,o2=function(){let e;return function(){return e=e||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),e}}(),a2=6406,Nn=6407,He=6408,s2=6409,l2=6410,Ls=6402,u2=34041,rf=33071,N5=9728,O5=9729,rr=3553,ir=34067,Or=32879,zr=35866,of=34069,z5=34070,U5=34071,G5=34072,H5=34073,V5=34074,Id=10241,Bd=10240,af=10242,sf=10243,f2=32882,j5=33082,q5=33083,Z5=33084,W5=33085,Dd=3317,c2=3314,h2=32878,d2=3316,p2=3315,g2=32877,Y5=37443,Q5=37441,X5=37440,$5=33321,K5=36756,J5=33325,ek=33326,tk=33330,nk=33329,rk=33338,ik=33337,ok=33340,ak=33339,sk=33323,lk=36757,uk=33327,fk=33328,ck=33336,hk=33335,dk=33332,pk=33331,gk=33334,mk=33333,bk=32849,yk=35905,wk=36194,vk=36758,xk=35898,Ak=35901,Ek=34843,_k=34837,Sk=36221,Ck=36239,kk=36215,Tk=36233,Ik=36209,Bk=36227,Dk=32856,Fk=35907,Rk=36759,Mk=32855,Pk=32854,Lk=32857,Nk=34842,Ok=34836,zk=36220,Uk=36238,Gk=36975,Hk=36214,Vk=36232,jk=36226,qk=36208,Zk=33189,Wk=33190,Yk=36012,Qk=36013,Xk=35056,Ur=5120,Ve=5121,lf=5122,Oo=5123,uf=5124,zi=5125,Et=5126,m2=32819,b2=32820,y2=33635,xn=5131,Ns=36193,Fd=33640,$k=35899,Kk=35902,Jk=36269,eT=34042,ff=33319,zo=33320,cf=6403,Uo=36244,Go=36248,Ui=36249;let Rd;function hf(e){if(!Rd){const t={};t[a2]={textureFormat:a2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,xn,Ns,Et]},t[s2]={textureFormat:s2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,xn,Ns,Et]},t[l2]={textureFormat:l2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[Ve,xn,Ns,Et]},t[Nn]={textureFormat:Nn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[Ve,xn,Ns,Et,y2]},t[He]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[Ve,xn,Ns,Et,m2,b2]},t[Ls]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[zi,Oo]},t[$5]={textureFormat:cf,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[Ve]},t[K5]={textureFormat:cf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[Ur]},t[J5]={textureFormat:cf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[Et,xn]},t[ek]={textureFormat:cf,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[Et]},t[tk]={textureFormat:Uo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ve]},t[nk]={textureFormat:Uo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ur]},t[dk]={textureFormat:Uo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Oo]},t[pk]={textureFormat:Uo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[lf]},t[gk]={textureFormat:Uo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[zi]},t[mk]={textureFormat:Uo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[uf]},t[sk]={textureFormat:ff,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[Ve]},t[lk]={textureFormat:ff,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[Ur]},t[uk]={textureFormat:ff,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[Et,xn]},t[fk]={textureFormat:ff,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[Et]},t[ck]={textureFormat:zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ve]},t[hk]={textureFormat:zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ur]},t[rk]={textureFormat:zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Oo]},t[ik]={textureFormat:zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[lf]},t[ok]={textureFormat:zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[zi]},t[ak]={textureFormat:zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[uf]},t[bk]={textureFormat:Nn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},t[yk]={textureFormat:Nn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},t[wk]={textureFormat:Nn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[Ve,y2]},t[vk]={textureFormat:Nn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ur]},t[xk]={textureFormat:Nn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Et,xn,$k]},t[Ak]={textureFormat:Nn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Et,xn,Kk]},t[Ek]={textureFormat:Nn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[Et,xn]},t[_k]={textureFormat:Nn,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Et]},t[Sk]={textureFormat:Go,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ve]},t[Ck]={textureFormat:Go,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ur]},t[kk]={textureFormat:Go,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Oo]},t[Tk]={textureFormat:Go,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[lf]},t[Ik]={textureFormat:Go,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[zi]},t[Bk]={textureFormat:Go,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[uf]},t[Dk]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},t[Fk]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},t[Rk]={textureFormat:He,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[Ur]},t[Mk]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[Ve,b2,Fd]},t[Pk]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[Ve,m2]},t[Lk]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Fd]},t[Nk]={textureFormat:He,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[Et,xn]},t[Ok]={textureFormat:He,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[Et]},t[zk]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ve]},t[Uk]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ur]},t[Gk]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Fd]},t[Hk]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Oo]},t[Vk]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[lf]},t[jk]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[uf]},t[qk]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[zi]},t[Zk]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Oo,zi]},t[Wk]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[zi]},t[Yk]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Et]},t[Xk]={textureFormat:u2,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[eT]},t[Qk]={textureFormat:u2,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Jk]},Object.keys(t).forEach(function(n){const r=t[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,o){const a=r.type[o];r.bytesPerElementMap[a]=i})}),Rd=t}return Rd[e]}function tT(e,t){const n=hf(e);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[t];if(r===void 0)throw"unknown internal format";return r}function Ho(e){const t=hf(e);if(!t)throw"unknown internal format";return{format:t.textureFormat,type:t.type[0]}}function w2(e){return(e&e-1)===0}function nT(e,t,n,r){if(!Lo(e))return w2(t)&&w2(n);const i=hf(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function rT(e){const t=hf(e);if(!t)throw"unknown internal format";return t.textureFilterable}function v2(e,t,n){return No(t)?Sd(t):n||Ve}function df(e,t,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const o=Math.sqrt(i/(t===ir?6:1));o%1===0?(n=o,r=o):(n=i,r=1)}else if(r){if(!n&&(n=i/r,n%1))throw"can't guess dimensions"}else if(r=i/n,r%1)throw"can't guess dimensions";return{width:n,height:r}}function Vo(e,t){t.colorspaceConversion!==void 0&&e.pixelStorei(Y5,t.colorspaceConversion),t.premultiplyAlpha!==void 0&&e.pixelStorei(Q5,t.premultiplyAlpha),t.flipY!==void 0&&e.pixelStorei(X5,t.flipY)}function x2(e){e.pixelStorei(Dd,4),Lo(e)&&(e.pixelStorei(c2,0),e.pixelStorei(h2,0),e.pixelStorei(d2,0),e.pixelStorei(p2,0),e.pixelStorei(g2,0))}function iT(e,t,n,r){r.minMag&&(n.call(e,t,Id,r.minMag),n.call(e,t,Bd,r.minMag)),r.min&&n.call(e,t,Id,r.min),r.mag&&n.call(e,t,Bd,r.mag),r.wrap&&(n.call(e,t,af,r.wrap),n.call(e,t,sf,r.wrap),(t===Or||m5(e,t))&&n.call(e,t,f2,r.wrap)),r.wrapR&&n.call(e,t,f2,r.wrapR),r.wrapS&&n.call(e,t,af,r.wrapS),r.wrapT&&n.call(e,t,sf,r.wrapT),r.minLod&&n.call(e,t,j5,r.minLod),r.maxLod&&n.call(e,t,q5,r.maxLod),r.baseLevel&&n.call(e,t,Z5,r.baseLevel),r.maxLevel&&n.call(e,t,W5,r.maxLevel)}function A2(e,t,n){const r=n.target||rr;e.bindTexture(r,t),iT(e,r,e.texParameteri,n)}function oT(e){return e=e||Nr.textureColor,No(e)?e:new Uint8Array([e[0]*255,e[1]*255,e[2]*255,e[3]*255])}function Md(e,t,n,r,i,o){n=n||Nr.textureOptions,o=o||He;const a=n.target||rr;if(r=r||n.width,i=i||n.height,e.bindTexture(a,t),nT(e,r,i,o))e.generateMipmap(a);else{const s=rT(o)?O5:N5;e.texParameteri(a,Id,s),e.texParameteri(a,Bd,s),e.texParameteri(a,af,rf),e.texParameteri(a,sf,rf)}}function Os(e){return e.auto===!0||e.auto===void 0&&e.level===void 0}function Pd(e,t){return t=t||{},t.cubeFaceOrder||[of,z5,U5,G5,H5,V5]}function Ld(e,t){const r=Pd(e,t).map(function(i,o){return{face:i,ndx:o}});return r.sort(function(i,o){return i.face-o.face}),r}function E2(e,t,n,r){r=r||Nr.textureOptions;const i=r.target||rr,o=r.level||0;let a=n.width,s=n.height;const u=r.internalFormat||r.format||He,l=Ho(u),f=r.format||l.format,c=r.type||l.type;if(Vo(e,r),e.bindTexture(i,t),i===ir){const h=n.width,d=n.height;let p,b;if(h/6===d)p=d,b=[0,0,1,0,2,0,3,0,4,0,5,0];else if(d/6===h)p=h,b=[0,0,0,1,0,2,0,3,0,4,0,5];else if(h/3===d/2)p=h/3,b=[0,0,1,0,2,0,0,1,1,1,2,1];else if(h/2===d/3)p=h/2,b=[0,0,1,0,0,1,1,1,0,2,1,2];else throw"can't figure out cube map from element: "+(n.src?n.src:n.nodeName);const y=o2();y?(y.canvas.width=p,y.canvas.height=p,a=p,s=p,Ld(e,r).forEach(function(w){const _=b[w.ndx*2+0]*p,C=b[w.ndx*2+1]*p;y.drawImage(n,_,C,p,p,0,0,p,p),e.texImage2D(w.face,o,u,f,c,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(a=p,s=p,Ld(e,r).forEach(function(w){const _=b[w.ndx*2+0]*p,C=b[w.ndx*2+1]*p;e.texImage2D(w.face,o,u,p,p,0,f,c,null),createImageBitmap(n,_,C,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(E){Vo(e,r),e.bindTexture(i,t),e.texImage2D(w.face,o,u,f,c,E),Os(r)&&Md(e,t,r,a,s,u)})}))}else if(i===Or||i===zr){const h=Math.min(n.width,n.height),d=Math.max(n.width,n.height),p=d/h;if(p%1!==0)throw"can not compute 3D dimensions of element";const b=n.width===d?1:0,y=n.height===d?1:0;e.pixelStorei(Dd,1),e.pixelStorei(c2,n.width),e.pixelStorei(h2,0),e.pixelStorei(g2,0),e.texImage3D(i,o,u,h,h,h,0,f,c,null);for(let w=0;w<p;++w){const _=w*h*b,C=w*h*y;e.pixelStorei(d2,_),e.pixelStorei(p2,C),e.texSubImage3D(i,o,0,0,w,h,h,1,f,c,n)}x2(e)}else e.texImage2D(i,o,u,f,c,n);Os(r)&&Md(e,t,r,a,s,u),A2(e,t,r)}function zs(){}function aT(e){if(typeof document<"u"){const t=document.createElement("a");return t.href=e,t.hostname===location.hostname&&t.port===location.port&&t.protocol===location.protocol}else{const t=new URL(location.href).origin;return new URL(e,location.href).origin===t}}function sT(e,t){return t===void 0&&!aT(e)?"anonymous":t}function lT(e,t,n){n=n||zs;let r;if(t=t!==void 0?t:Nr.crossOrigin,t=sT(e,t),typeof Image<"u"){r=new Image,t!==void 0&&(r.crossOrigin=t);const i=function(){r.removeEventListener("error",o),r.removeEventListener("load",a),r=null},o=function(){const u="couldn't load image: "+e;p5(u),n(u,r),i()},a=function(){n(null,r),i()};return r.addEventListener("error",o),r.addEventListener("load",a),r.src=e,r}else if(typeof ImageBitmap<"u"){let i,o;const a=function(){n(i,o)},s={};t&&(s.mode="cors"),fetch(e,s).then(function(u){if(!u.ok)throw u;return u.blob()}).then(function(u){return createImageBitmap(u,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(u){o=u,setTimeout(a)}).catch(function(u){i=u,setTimeout(a)}),r=null}return r}function _2(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof ImageData<"u"&&e instanceof ImageData||typeof HTMLElement<"u"&&e instanceof HTMLElement}function Nd(e,t,n){return _2(e)?(setTimeout(function(){n(null,e)}),e):lT(e,t,n)}function Od(e,t,n){n=n||Nr.textureOptions;const r=n.target||rr;if(e.bindTexture(r,t),n.color===!1)return;const i=oT(n.color);if(r===ir)for(let o=0;o<6;++o)e.texImage2D(of+o,0,He,1,1,0,He,Ve,i);else r===Or||r===zr?e.texImage3D(r,0,He,1,1,1,0,He,Ve,i):e.texImage2D(r,0,He,1,1,0,He,Ve,i)}function uT(e,t,n,r){return r=r||zs,n=n||Nr.textureOptions,Od(e,t,n),n=Object.assign({},n),Nd(n.src,n.crossOrigin,function(o,a){o?r(o,t,a):(E2(e,t,a,n),r(null,t,a))})}function fT(e,t,n,r){r=r||zs;const i=n.src;if(i.length!==6)throw"there must be 6 urls for a cubemap";const o=n.level||0,a=n.internalFormat||n.format||He,s=Ho(a),u=n.format||s.format,l=n.type||Ve,f=n.target||rr;if(f!==ir)throw"target must be TEXTURE_CUBE_MAP";Od(e,t,n),n=Object.assign({},n);let c=6;const h=[],d=Pd(e,n);let p;function b(y){return function(w,_){--c,w?h.push(w):_.width!==_.height?h.push("cubemap face img is not a square: "+_.src):(Vo(e,n),e.bindTexture(f,t),c===5?Pd().forEach(function(C){e.texImage2D(C,o,a,u,l,_)}):e.texImage2D(y,o,a,u,l,_),Os(n)&&e.generateMipmap(f)),c===0&&r(h.length?h:void 0,t,p)}}p=i.map(function(y,w){return Nd(y,n.crossOrigin,b(d[w]))})}function cT(e,t,n,r){r=r||zs;const i=n.src,o=n.internalFormat||n.format||He,a=Ho(o),s=n.format||a.format,u=n.type||Ve,l=n.target||zr;if(l!==Or&&l!==zr)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";Od(e,t,n),n=Object.assign({},n);let f=i.length;const c=[];let h;const d=n.level||0;let p=n.width,b=n.height;const y=i.length;let w=!0;function _(C){return function(E,T){if(--f,E)c.push(E);else{if(Vo(e,n),e.bindTexture(l,t),w){w=!1,p=n.width||T.width,b=n.height||T.height,e.texImage3D(l,d,o,p,b,y,0,s,u,null);for(let B=0;B<y;++B)e.texSubImage3D(l,d,0,0,B,p,b,1,s,u,T)}else{let B=T,I;(T.width!==p||T.height!==b)&&(I=o2(),B=I.canvas,I.canvas.width=p,I.canvas.height=b,I.drawImage(T,0,0,p,b)),e.texSubImage3D(l,d,0,0,C,p,b,1,s,u,B),I&&B===I.canvas&&(I.canvas.width=0,I.canvas.height=0)}Os(n)&&e.generateMipmap(l)}f===0&&r(c.length?c:void 0,t,h)}}h=i.map(function(C,E){return Nd(C,n.crossOrigin,_(E))})}function S2(e,t,n,r){r=r||Nr.textureOptions;const i=r.target||rr;e.bindTexture(i,t);let o=r.width,a=r.height,s=r.depth;const u=r.level||0,l=r.internalFormat||r.format||He,f=Ho(l),c=r.format||f.format,h=r.type||v2(e,n,f.type);if(No(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=d5(h);n=new y(n)}const d=tT(l,h),p=n.byteLength/d;if(p%1)throw"length wrong size for format: "+Td(e,c);let b;if(i===Or||i===zr)if(!o&&!a&&!s){const y=Math.cbrt(p);if(y%1!==0)throw"can't guess cube size of array of numElements: "+p;o=y,a=y,s=y}else o&&(!a||!s)?(b=df(e,i,a,s,p/o),a=b.width,s=b.height):a&&(!o||!s)?(b=df(e,i,o,s,p/a),o=b.width,s=b.height):(b=df(e,i,o,a,p/s),o=b.width,a=b.height);else b=df(e,i,o,a,p),o=b.width,a=b.height;if(x2(e),e.pixelStorei(Dd,r.unpackAlignment||1),Vo(e,r),i===ir){const y=d/n.BYTES_PER_ELEMENT,w=p/6*y;Ld(e,r).forEach(_=>{const C=w*_.ndx,E=n.subarray(C,C+w);e.texImage2D(_.face,u,l,o,a,0,c,h,E)})}else i===Or||i===zr?e.texImage3D(i,u,l,o,a,s,0,c,h,n):e.texImage2D(i,u,l,o,a,0,c,h,n);return{width:o,height:a,depth:s,type:h}}function hT(e,t,n){const r=n.target||rr;e.bindTexture(r,t);const i=n.level||0,o=n.internalFormat||n.format||He,a=Ho(o),s=n.format||a.format,u=n.type||a.type;if(Vo(e,n),r===ir)for(let l=0;l<6;++l)e.texImage2D(of+l,i,o,n.width,n.height,0,s,u,null);else r===Or||r===zr?e.texImage3D(r,i,o,n.width,n.height,n.depth,0,s,u,null):e.texImage2D(r,i,o,n.width,n.height,0,s,u,null)}function Us(e,t,n){n=n||zs,t=t||Nr.textureOptions;const r=e.createTexture(),i=t.target||rr;let o=t.width||1,a=t.height||1;const s=t.internalFormat||He;e.bindTexture(i,r),i===ir&&(e.texParameteri(i,af,rf),e.texParameteri(i,sf,rf));let u=t.src;if(u)if(typeof u=="function"&&(u=u(e,t)),typeof u=="string")uT(e,r,t,n);else if(No(u)||Array.isArray(u)&&(typeof u[0]=="number"||Array.isArray(u[0])||No(u[0]))){const l=S2(e,r,u,t);o=l.width,a=l.height}else Array.isArray(u)&&(typeof u[0]=="string"||_2(u[0]))?i===ir?fT(e,r,t,n):cT(e,r,t,n):(E2(e,r,u,t),o=u.width,a=u.height);else hT(e,r,t);return Os(t)&&Md(e,r,t,o,a,s),A2(e,r,t),r}function dT(e,t,n,r,i,o){r=r||n.width,i=i||n.height,o=o||n.depth;const a=n.target||rr;e.bindTexture(a,t);const s=n.level||0,u=n.internalFormat||n.format||He,l=Ho(u),f=n.format||l.format;let c;const h=n.src;if(h&&(No(h)||Array.isArray(h)&&typeof h[0]=="number")?c=n.type||v2(e,h,l.type):c=n.type||l.type,a===ir)for(let d=0;d<6;++d)e.texImage2D(of+d,s,u,r,i,0,f,c,null);else a===Or||a===zr?e.texImage3D(a,s,u,r,i,o,0,f,c,null):e.texImage2D(a,s,u,r,i,0,f,c,null)}const pT=$b,pf=33984,gT=35048,gf=34962,mT=34963,zd=35345,C2=35718,bT=35721,yT=35971,wT=35382,vT=35396,xT=35398,AT=35392,ET=35395,mf=5126,k2=35664,T2=35665,I2=35666,Ud=5124,B2=35667,D2=35668,F2=35669,R2=35670,M2=35671,P2=35672,L2=35673,N2=35674,O2=35675,z2=35676,_T=35678,ST=35680,CT=35679,kT=35682,TT=35685,IT=35686,BT=35687,DT=35688,FT=35689,RT=35690,MT=36289,PT=36292,LT=36293,Gd=5125,U2=36294,G2=36295,H2=36296,NT=36298,OT=36299,zT=36300,UT=36303,GT=36306,HT=36307,VT=36308,jT=36311,bf=3553,yf=34067,Hd=32879,wf=35866,ae={};function V2(e,t){return ae[t].bindPoint}function qT(e,t){return function(n){e.uniform1f(t,n)}}function ZT(e,t){return function(n){e.uniform1fv(t,n)}}function WT(e,t){return function(n){e.uniform2fv(t,n)}}function YT(e,t){return function(n){e.uniform3fv(t,n)}}function QT(e,t){return function(n){e.uniform4fv(t,n)}}function j2(e,t){return function(n){e.uniform1i(t,n)}}function q2(e,t){return function(n){e.uniform1iv(t,n)}}function Z2(e,t){return function(n){e.uniform2iv(t,n)}}function W2(e,t){return function(n){e.uniform3iv(t,n)}}function Y2(e,t){return function(n){e.uniform4iv(t,n)}}function XT(e,t){return function(n){e.uniform1ui(t,n)}}function $T(e,t){return function(n){e.uniform1uiv(t,n)}}function KT(e,t){return function(n){e.uniform2uiv(t,n)}}function JT(e,t){return function(n){e.uniform3uiv(t,n)}}function eI(e,t){return function(n){e.uniform4uiv(t,n)}}function tI(e,t){return function(n){e.uniformMatrix2fv(t,!1,n)}}function nI(e,t){return function(n){e.uniformMatrix3fv(t,!1,n)}}function rI(e,t){return function(n){e.uniformMatrix4fv(t,!1,n)}}function iI(e,t){return function(n){e.uniformMatrix2x3fv(t,!1,n)}}function oI(e,t){return function(n){e.uniformMatrix3x2fv(t,!1,n)}}function aI(e,t){return function(n){e.uniformMatrix2x4fv(t,!1,n)}}function sI(e,t){return function(n){e.uniformMatrix4x2fv(t,!1,n)}}function lI(e,t){return function(n){e.uniformMatrix3x4fv(t,!1,n)}}function uI(e,t){return function(n){e.uniformMatrix4x3fv(t,!1,n)}}function kt(e,t,n,r){const i=V2(e,t);return Lo(e)?function(o){let a,s;nf(e,o)?(a=o,s=null):(a=o.texture,s=o.sampler),e.uniform1i(r,n),e.activeTexture(pf+n),e.bindTexture(i,a),e.bindSampler(n,s)}:function(o){e.uniform1i(r,n),e.activeTexture(pf+n),e.bindTexture(i,o)}}function Tt(e,t,n,r,i){const o=V2(e,t),a=new Int32Array(i);for(let s=0;s<i;++s)a[s]=n+s;return Lo(e)?function(s){e.uniform1iv(r,a),s.forEach(function(u,l){e.activeTexture(pf+a[l]);let f,c;nf(e,u)?(f=u,c=null):(f=u.texture,c=u.sampler),e.bindSampler(n,c),e.bindTexture(o,f)})}:function(s){e.uniform1iv(r,a),s.forEach(function(u,l){e.activeTexture(pf+a[l]),e.bindTexture(o,u)})}}ae[mf]={Type:Float32Array,size:4,setter:qT,arraySetter:ZT},ae[k2]={Type:Float32Array,size:8,setter:WT,cols:2},ae[T2]={Type:Float32Array,size:12,setter:YT,cols:3},ae[I2]={Type:Float32Array,size:16,setter:QT,cols:4},ae[Ud]={Type:Int32Array,size:4,setter:j2,arraySetter:q2},ae[B2]={Type:Int32Array,size:8,setter:Z2,cols:2},ae[D2]={Type:Int32Array,size:12,setter:W2,cols:3},ae[F2]={Type:Int32Array,size:16,setter:Y2,cols:4},ae[Gd]={Type:Uint32Array,size:4,setter:XT,arraySetter:$T},ae[U2]={Type:Uint32Array,size:8,setter:KT,cols:2},ae[G2]={Type:Uint32Array,size:12,setter:JT,cols:3},ae[H2]={Type:Uint32Array,size:16,setter:eI,cols:4},ae[R2]={Type:Uint32Array,size:4,setter:j2,arraySetter:q2},ae[M2]={Type:Uint32Array,size:8,setter:Z2,cols:2},ae[P2]={Type:Uint32Array,size:12,setter:W2,cols:3},ae[L2]={Type:Uint32Array,size:16,setter:Y2,cols:4},ae[N2]={Type:Float32Array,size:32,setter:tI,rows:2,cols:2},ae[O2]={Type:Float32Array,size:48,setter:nI,rows:3,cols:3},ae[z2]={Type:Float32Array,size:64,setter:rI,rows:4,cols:4},ae[TT]={Type:Float32Array,size:32,setter:iI,rows:2,cols:3},ae[IT]={Type:Float32Array,size:32,setter:aI,rows:2,cols:4},ae[BT]={Type:Float32Array,size:48,setter:oI,rows:3,cols:2},ae[DT]={Type:Float32Array,size:48,setter:lI,rows:3,cols:4},ae[FT]={Type:Float32Array,size:64,setter:sI,rows:4,cols:2},ae[RT]={Type:Float32Array,size:64,setter:uI,rows:4,cols:3},ae[_T]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:bf},ae[ST]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:yf},ae[CT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:Hd},ae[kT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:bf},ae[MT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:wf},ae[PT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:wf},ae[LT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:yf},ae[NT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:bf},ae[OT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:Hd},ae[zT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:yf},ae[UT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:wf},ae[GT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:bf},ae[HT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:Hd},ae[VT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:yf},ae[jT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:wf};function vf(e,t){return function(n){if(n.value)switch(e.disableVertexAttribArray(t),n.value.length){case 4:e.vertexAttrib4fv(t,n.value);break;case 3:e.vertexAttrib3fv(t,n.value);break;case 2:e.vertexAttrib2fv(t,n.value);break;case 1:e.vertexAttrib1fv(t,n.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else e.bindBuffer(gf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,n.numComponents||n.size,n.type||mf,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Gr(e,t){return function(n){if(n.value)if(e.disableVertexAttribArray(t),n.value.length===4)e.vertexAttrib4iv(t,n.value);else throw new Error("The length of an integer constant value must be 4!");else e.bindBuffer(gf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||Ud,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function xf(e,t){return function(n){if(n.value)if(e.disableVertexAttribArray(t),n.value.length===4)e.vertexAttrib4uiv(t,n.value);else throw new Error("The length of an unsigned integer constant value must be 4!");else e.bindBuffer(gf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||Gd,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Vd(e,t,n){const r=n.size,i=n.count;return function(o){e.bindBuffer(gf,o.buffer);const a=o.size||o.numComponents||r,s=a/i,u=o.type||mf,f=ae[u].size*a,c=o.normalize||!1,h=o.offset||0,d=f/i;for(let p=0;p<i;++p)e.enableVertexAttribArray(t+p),e.vertexAttribPointer(t+p,s,u,c,f,h+d*p),o.divisor!==void 0&&e.vertexAttribDivisor(t+p,o.divisor)}}const nt={};nt[mf]={size:4,setter:vf},nt[k2]={size:8,setter:vf},nt[T2]={size:12,setter:vf},nt[I2]={size:16,setter:vf},nt[Ud]={size:4,setter:Gr},nt[B2]={size:8,setter:Gr},nt[D2]={size:12,setter:Gr},nt[F2]={size:16,setter:Gr},nt[Gd]={size:4,setter:xf},nt[U2]={size:8,setter:xf},nt[G2]={size:12,setter:xf},nt[H2]={size:16,setter:xf},nt[R2]={size:4,setter:Gr},nt[M2]={size:8,setter:Gr},nt[P2]={size:12,setter:Gr},nt[L2]={size:16,setter:Gr},nt[N2]={size:4,setter:Vd,count:2},nt[O2]={size:9,setter:Vd,count:3},nt[z2]={size:16,setter:Vd,count:4};function Q2(e){const t=e.name;return t.startsWith("gl_")||t.startsWith("webgl_")}const fI=/(\.|\[|]|\w+)/g,cI=e=>e>="0"&&e<="9";function X2(e,t,n,r){const i=e.split(fI).filter(s=>s!=="");let o=0,a="";for(;;){const s=i[o++];a+=s;const u=cI(s[0]),l=u?parseInt(s):s;if(u&&(a+=i[o++]),o===i.length){n[l]=t;break}else{const c=i[o++],h=c==="[",d=n[l]||(h?[]:{});n[l]=d,n=d,r[a]=r[a]||function(p){return function(b){J2(p,b)}}(d),a+=c}}}function hI(e,t){let n=0;function r(s,u,l){const f=u.name.endsWith("[0]"),c=u.type,h=ae[c];if(!h)throw new Error(`unknown type: 0x${c.toString(16)}`);let d;if(h.bindPoint){const p=n;n+=u.size,f?d=h.arraySetter(e,c,p,l,u.size):d=h.setter(e,c,p,l,u.size)}else h.arraySetter&&f?d=h.arraySetter(e,l):d=h.setter(e,l);return d.location=l,d}const i={},o={},a=e.getProgramParameter(t,C2);for(let s=0;s<a;++s){const u=e.getActiveUniform(t,s);if(Q2(u))continue;let l=u.name;l.endsWith("[0]")&&(l=l.substr(0,l.length-3));const f=e.getUniformLocation(t,u.name);if(f){const c=r(t,u,f);i[l]=c,X2(l,c,o,i)}}return i}function dI(e,t){const n={},r=e.getProgramParameter(t,yT);for(let i=0;i<r;++i){const o=e.getTransformFeedbackVarying(t,i);n[o.name]={index:i,type:o.type,size:o.size}}return n}function pI(e,t){const n=e.getProgramParameter(t,C2),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const u=e.getActiveUniform(t,s);r[s].name=u.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const u=s[0],l=s[1];e.getActiveUniforms(t,i,e[u]).forEach(function(f,c){r[c][l]=f})});const o={},a=e.getProgramParameter(t,wT);for(let s=0;s<a;++s){const u=e.getActiveUniformBlockName(t,s),l={index:e.getUniformBlockIndex(t,u),usedByVertexShader:e.getActiveUniformBlockParameter(t,s,vT),usedByFragmentShader:e.getActiveUniformBlockParameter(t,s,xT),size:e.getActiveUniformBlockParameter(t,s,AT),uniformIndices:e.getActiveUniformBlockParameter(t,s,ET)};l.used=l.usedByVertexShader||l.usedByFragmentShader,o[u]=l}return{blockSpecs:o,uniformData:r}}const $2=/\[\d+\]\.$/,gI=(e,t)=>((e+(t-1))/t|0)*t;function mI(e,t,n,r){if(t||n){r=r||1;const o=e.length/4;return function(a){let s=0,u=0;for(let l=0;l<o;++l){for(let f=0;f<r;++f)e[s++]=a[u++];s+=4-r}}}else return function(i){i.length?e.set(i):e[0]=i}}function bI(e,t,n,r){const i=n.blockSpecs,o=n.uniformData,a=i[r];if(!a)return pT("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(a.size),u=e.createBuffer(),l=a.index;e.bindBuffer(zd,u),e.uniformBlockBinding(t,a.index,l);let f=r+".";$2.test(f)&&(f=f.replace($2,"."));const c={},h={},d={};return a.uniformIndices.forEach(function(p){const b=o[p];let y=b.name;y.startsWith(f)&&(y=y.substr(f.length));const w=y.endsWith("[0]");w&&(y=y.substr(0,y.length-3));const _=ae[b.type],C=_.Type,E=w?gI(_.size,16)*b.size:_.size*b.size,T=new C(s,b.offset,E/C.BYTES_PER_ELEMENT);c[y]=T;const B=mI(T,w,_.rows,_.cols);h[y]=B,X2(y,B,d,h)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:u,uniforms:c,setters:h}}function jd(e,t,n){return bI(e,t.program,t.uniformBlockSpec,n)}function K2(e,t,n){const i=(t.uniformBlockSpec||t).blockSpecs[n.name];if(i){const o=i.index;return e.bindBufferRange(zd,o,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function qd(e,t,n){K2(e,t,n)&&e.bufferData(zd,n.array,gT)}function jo(e,t){const n=e.setters;for(const r in t){const i=n[r];if(i){const o=t[r];i(o)}}}function J2(e,t){for(const n in t){const r=e[n];typeof r=="function"?r(t[n]):J2(e[n],t[n])}}function Gi(e,...t){const n=e.uniformSetters||e,r=t.length;for(let i=0;i<r;++i){const o=t[i];if(Array.isArray(o)){const a=o.length;for(let s=0;s<a;++s)Gi(n,o[s])}else for(const a in o){const s=n[a];s&&s(o[a])}}}function yI(e,t){const n={},r=e.getProgramParameter(t,bT);for(let i=0;i<r;++i){const o=e.getActiveAttrib(t,i);if(Q2(o))continue;const a=e.getAttribLocation(t,o.name),s=nt[o.type],u=s.setter(e,a,s);u.location=a,n[o.name]=u}return n}function wI(e,t){for(const n in t){const r=e[n];r&&r(t[n])}}function Hi(e,t,n){n.vertexArrayObject?e.bindVertexArray(n.vertexArrayObject):(wI(t.attribSetters||t,n.attribs),n.indices&&e.bindBuffer(mT,n.indices))}function vI(e,t){const n=hI(e,t),r=yI(e,t),i={program:t,uniformSetters:n,attribSetters:r};return Lo(e)&&(i.uniformBlockSpec=pI(e,t),i.transformFeedbackInfo=dI(e,t)),i}const xI=4,ey=5123;function Af(e,t,n,r,i,o){n=n===void 0?xI:n;const a=t.indices,s=t.elementType,u=r===void 0?t.numElements:r;i=i===void 0?0:i,s||a?o!==void 0?e.drawElementsInstanced(n,u,s===void 0?ey:t.elementType,i,o):e.drawElements(n,u,s===void 0?ey:t.elementType,i):o!==void 0?e.drawArraysInstanced(n,i,u,o):e.drawArrays(n,i,u)}const AI=36160,Vi=36161,EI=3553,_I=5121,SI=6402,CI=6408,kI=33190,TI=36012,II=35056,BI=36013,DI=32854,FI=32855,RI=36194,ty=33189,ny=6401,ry=36168,Zd=34041,MI=36064,Ef=36096,iy=36128,Wd=33306,Yd=33071,Qd=9729,oy=[{format:CI,type:_I,min:Qd,wrap:Yd},{format:Zd}],An={};An[Zd]=Wd,An[ny]=iy,An[ry]=iy,An[SI]=Ef,An[ty]=Ef,An[kI]=Ef,An[TI]=Ef,An[II]=Wd,An[BI]=Wd;function PI(e,t){return An[e]||An[t]}const Hr={};Hr[DI]=!0,Hr[FI]=!0,Hr[RI]=!0,Hr[Zd]=!0,Hr[ty]=!0,Hr[ny]=!0,Hr[ry]=!0;function LI(e){return Hr[e]}function NI(e,t,n,r){const i=AI,o=e.createFramebuffer();e.bindFramebuffer(i,o),n=n||e.drawingBufferWidth,r=r||e.drawingBufferHeight,t=t||oy;let a=0;const s={framebuffer:o,attachments:[],width:n,height:r};return t.forEach(function(u){let l=u.attachment;const f=u.samples,c=u.format;let h=u.attachmentPoint||PI(c,u.internalFormat);if(h||(h=MI+a++),!l)if(f!==void 0||LI(c))l=e.createRenderbuffer(),e.bindRenderbuffer(Vi,l),f>1?e.renderbufferStorageMultisample(Vi,f,c,n,r):e.renderbufferStorage(Vi,c,n,r);else{const d=Object.assign({},u);d.width=n,d.height=r,d.auto===void 0&&(d.auto=!1,d.min=d.min||d.minMag||Qd,d.mag=d.mag||d.minMag||Qd,d.wrapS=d.wrapS||d.wrap||Yd,d.wrapT=d.wrapT||d.wrap||Yd),l=Us(e,d)}if(Kb(e,l))e.framebufferRenderbuffer(i,h,Vi,l);else if(nf(e,l))u.layer!==void 0?e.framebufferTextureLayer(i,h,l,u.level||0,u.layer):e.framebufferTexture2D(i,h,u.target||EI,l,u.level||0);else throw new Error("unknown attachment type");s.attachments.push(l)}),s}function OI(e,t,n,r,i){r=r||e.drawingBufferWidth,i=i||e.drawingBufferHeight,t.width=r,t.height=i,n=n||oy,n.forEach(function(o,a){const s=t.attachments[a],u=o.format,l=o.samples;if(l!==void 0||Kb(e,s))e.bindRenderbuffer(Vi,s),l>1?e.renderbufferStorageMultisample(Vi,l,u,r,i):e.renderbufferStorage(Vi,u,r,i);else if(nf(e,s))dT(e,s,o,r,i);else throw new Error("unknown attachment type")})}function zI(e,t,n){const r=e.createVertexArray();return e.bindVertexArray(r),t.length||(t=[t]),t.forEach(function(i){Hi(e,i,n)}),e.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const UI=/^(.*?)_/;function GI(e,t){Td(e,0);const n=e.getExtension(t);if(n){const r={},i=UI.exec(t)[1],o="_"+i;for(const a in n){const s=n[a],u=typeof s=="function",l=u?i:o;let f=a;a.endsWith(l)&&(f=a.substring(0,a.length-l.length)),e[f]!==void 0?!u&&e[f]!==s&&$b(f,e[f],s,a):u?e[f]=function(c){return function(){return c.apply(n,arguments)}}(s):(e[f]=s,r[f]=s)}r.constructor={name:n.constructor.name},Td(r,0)}return n}const ay=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_color_buffer_float","EXT_color_buffer_half_float","EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2","EXT_frag_depth","EXT_sRGB","EXT_shader_texture_lod","EXT_texture_filter_anisotropic","OES_element_index_uint","OES_standard_derivatives","OES_texture_float","OES_texture_float_linear","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_pvrtc","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_depth_texture","WEBGL_draw_buffers"];function sy(e){for(let t=0;t<ay.length;++t)GI(e,ay[t])}function HI(e,t){const n=["webgl2","webgl","experimental-webgl"];let r=null;for(let i=0;i<n.length;++i)if(r=e.getContext(n[i],t),r){sy(r);break}return r}function VI(e,t){return HI(e,t)}const jI=`uniform Mark{uniform float uMinWidth;uniform float uMinHeight;uniform float uMinOpacity;uniform float uCornerRadiusTopRight;uniform float uCornerRadiusBottomRight;uniform float uCornerRadiusTopLeft;uniform float uCornerRadiusBottomLeft;};out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out float vHalfStrokeWidth;out vec4 vCornerRadii;
164
+ see: http://github.com/greggman/twgl.js for details */const Ed=5120,Ps=5121,_d=5122,Sd=5123,Cd=5124,Td=5125,kd=5126,u5=32819,f5=32820,c5=33635,h5=5131,d5=33640,p5=35899,g5=35902,m5=36269,b5=34042,e2={};{const e=e2;e[Ed]=Int8Array,e[Ps]=Uint8Array,e[_d]=Int16Array,e[Sd]=Uint16Array,e[Cd]=Int32Array,e[Td]=Uint32Array,e[kd]=Float32Array,e[u5]=Uint16Array,e[f5]=Uint16Array,e[c5]=Uint16Array,e[h5]=Uint16Array,e[d5]=Uint32Array,e[p5]=Uint32Array,e[g5]=Uint32Array,e[m5]=Uint32Array,e[b5]=Uint32Array}function Id(e){if(e instanceof Int8Array)return Ed;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)return Ps;if(e instanceof Int16Array)return _d;if(e instanceof Uint16Array)return Sd;if(e instanceof Int32Array)return Cd;if(e instanceof Uint32Array)return Td;if(e instanceof Float32Array)return kd;throw new Error("unsupported typed array type")}function y5(e){if(e===Int8Array)return Ed;if(e===Uint8Array||e===Uint8ClampedArray)return Ps;if(e===Int16Array)return _d;if(e===Uint16Array)return Sd;if(e===Int32Array)return Cd;if(e===Uint32Array)return Td;if(e===Float32Array)return kd;throw new Error("unsupported typed array type")}function w5(e){const t=e2[e];if(!t)throw new Error("unknown gl type");return t}const rf=typeof SharedArrayBuffer<"u"?function(t){return t&&t.buffer&&(t.buffer instanceof ArrayBuffer||t.buffer instanceof SharedArrayBuffer)}:function(t){return t&&t.buffer&&t.buffer instanceof ArrayBuffer};function v5(...e){console.error(...e)}function t2(...e){console.warn(...e)}function x5(e,t){return typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer}function n2(e,t){return typeof WebGLRenderbuffer<"u"&&t instanceof WebGLRenderbuffer}function af(e,t){return typeof WebGLTexture<"u"&&t instanceof WebGLTexture}function A5(e,t){return typeof WebGLSampler<"u"&&t instanceof WebGLSampler}const r2=35044,On=34962,E5=34963,_5=34660,S5=5120,C5=5121,T5=5122,k5=5123,I5=5124,B5=5125,D5=5126,i2={attribPrefix:""};function a2(e,t,n,r,i){e.bindBuffer(t,n),e.bufferData(t,r,i||r2)}function o2(e,t,n,r){if(x5(e,t))return t;n=n||On;const i=e.createBuffer();return a2(e,n,i,t,r),i}function s2(e){return e==="indices"}function F5(e){return e instanceof Int8Array||e instanceof Uint8Array}function R5(e){return e===Int8Array||e===Uint8Array}function M5(e){return e.length?e:e.data}const P5=/coord|texture/i,L5=/color|colour/i;function l2(e,t){let n;if(P5.test(e)?n=2:L5.test(e)?n=4:n=3,t%n>0)throw new Error(`Can not guess numComponents for attribute '${e}'. Tried ${n} but ${t} values is not evenly divisible by ${n}. You should specify it.`);return n}function N5(e,t){return e.numComponents||e.size||l2(t,M5(e).length)}function Bd(e,t){if(rf(e))return e;if(rf(e.data))return e.data;Array.isArray(e)&&(e={data:e});let n=e.type;return n||(s2(t)?n=Uint16Array:n=Float32Array),new n(e.data)}function O5(e,t){const n={};return Object.keys(t).forEach(function(r){if(!s2(r)){const i=t[r],a=i.attrib||i.name||i.attribName||i2.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!rf(i.value))throw new Error("array.value is not array or typedarray");n[a]={value:i.value}}else{let o,s,u,l;if(i.buffer&&i.buffer instanceof WebGLBuffer)o=i.buffer,l=i.numComponents||i.size,s=i.type,u=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const f=i.data||i,c=i.type||Float32Array,h=f*c.BYTES_PER_ELEMENT;s=y5(c),u=i.normalize!==void 0?i.normalize:R5(c),l=i.numComponents||i.size||l2(r,f),o=e.createBuffer(),e.bindBuffer(On,o),e.bufferData(On,h,i.drawType||r2)}else{const f=Bd(i,r);o=o2(e,f,void 0,i.drawType),s=Id(f),u=i.normalize!==void 0?i.normalize:F5(f),l=N5(i,r)}n[a]={buffer:o,numComponents:l,type:s,normalize:u,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),e.bindBuffer(On,null),n}function z5(e,t,n,r){n=Bd(n),r!==void 0?(e.bindBuffer(On,t.buffer),e.bufferSubData(On,r,n)):a2(e,On,t.buffer,n,t.drawType)}function U5(e,t){return t===S5||t===C5?1:t===T5||t===k5?2:t===I5||t===B5||t===D5?4:0}const Dd=["position","positions","a_position"];function G5(e,t){let n,r;for(r=0;r<Dd.length&&(n=Dd[r],!(n in t||(n=i2.attribPrefix+n,n in t)));++r);r===Dd.length&&(n=Object.keys(t)[0]);const i=t[n];e.bindBuffer(On,i.buffer);const a=e.getBufferParameter(On,_5);e.bindBuffer(On,null);const o=U5(e,i.type),s=a/o,u=i.numComponents||i.size,l=s/u;if(l%1!==0)throw new Error(`numComponents ${u} not correct for length ${length}`);return l}function H5(e,t,n){const r=O5(e,t),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const a=t.indices;if(a){const o=Bd(a,"indices");i.indices=o2(e,o,E5),i.numElements=o.length,i.elementType=Id(o)}else i.numElements||(i.numElements=G5(e,i.attribs));return i}function Pa(e){return!!e.texStorage2D}const Fd=function(){const e={},t={};function n(r){const i=r.constructor.name;if(!e[i]){for(const a in r)if(typeof r[a]=="number"){const o=t[r[a]];t[r[a]]=o?`${o} | ${a}`:a}e[i]=!0}}return function(i,a){return n(i),t[a]||(typeof a=="number"?`0x${a.toString(16)}`:a)}}(),Nr={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},La=rf,u2=function(){let e;return function(){return e=e||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),e}}(),f2=6406,zn=6407,He=6408,c2=6409,h2=6410,Ls=6402,d2=34041,of=33071,V5=9728,j5=9729,ir=3553,ar=34067,Or=32879,zr=35866,sf=34069,q5=34070,Z5=34071,W5=34072,Y5=34073,Q5=34074,Rd=10241,Md=10240,lf=10242,uf=10243,p2=32882,$5=33082,X5=33083,K5=33084,J5=33085,Pd=3317,g2=3314,m2=32878,b2=3316,y2=3315,w2=32877,eT=37443,tT=37441,nT=37440,rT=33321,iT=36756,aT=33325,oT=33326,sT=33330,lT=33329,uT=33338,fT=33337,cT=33340,hT=33339,dT=33323,pT=36757,gT=33327,mT=33328,bT=33336,yT=33335,wT=33332,vT=33331,xT=33334,AT=33333,ET=32849,_T=35905,ST=36194,CT=36758,TT=35898,kT=35901,IT=34843,BT=34837,DT=36221,FT=36239,RT=36215,MT=36233,PT=36209,LT=36227,NT=32856,OT=35907,zT=36759,UT=32855,GT=32854,HT=32857,VT=34842,jT=34836,qT=36220,ZT=36238,WT=36975,YT=36214,QT=36232,$T=36226,XT=36208,KT=33189,JT=33190,ek=36012,tk=36013,nk=35056,Ur=5120,Ve=5121,ff=5122,Na=5123,cf=5124,zi=5125,Et=5126,v2=32819,x2=32820,A2=33635,xn=5131,Ns=36193,Ld=33640,rk=35899,ik=35902,ak=36269,ok=34042,hf=33319,Oa=33320,df=6403,za=36244,Ua=36248,Ui=36249;let Nd;function pf(e){if(!Nd){const t={};t[f2]={textureFormat:f2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,xn,Ns,Et]},t[c2]={textureFormat:c2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,xn,Ns,Et]},t[h2]={textureFormat:h2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[Ve,xn,Ns,Et]},t[zn]={textureFormat:zn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[Ve,xn,Ns,Et,A2]},t[He]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[Ve,xn,Ns,Et,v2,x2]},t[Ls]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[zi,Na]},t[rT]={textureFormat:df,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[Ve]},t[iT]={textureFormat:df,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[Ur]},t[aT]={textureFormat:df,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[Et,xn]},t[oT]={textureFormat:df,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[Et]},t[sT]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ve]},t[lT]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ur]},t[wT]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Na]},t[vT]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[ff]},t[xT]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[zi]},t[AT]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[cf]},t[dT]={textureFormat:hf,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[Ve]},t[pT]={textureFormat:hf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[Ur]},t[gT]={textureFormat:hf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[Et,xn]},t[mT]={textureFormat:hf,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[Et]},t[bT]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ve]},t[yT]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ur]},t[uT]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Na]},t[fT]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ff]},t[cT]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[zi]},t[hT]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[cf]},t[ET]={textureFormat:zn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},t[_T]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},t[ST]={textureFormat:zn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[Ve,A2]},t[CT]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ur]},t[TT]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Et,xn,rk]},t[kT]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Et,xn,ik]},t[IT]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[Et,xn]},t[BT]={textureFormat:zn,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Et]},t[DT]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ve]},t[FT]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ur]},t[RT]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Na]},t[MT]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[ff]},t[PT]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[zi]},t[LT]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[cf]},t[NT]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},t[OT]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},t[zT]={textureFormat:He,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[Ur]},t[UT]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[Ve,x2,Ld]},t[GT]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[Ve,v2]},t[HT]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ld]},t[VT]={textureFormat:He,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[Et,xn]},t[jT]={textureFormat:He,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[Et]},t[qT]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ve]},t[ZT]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ur]},t[WT]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ld]},t[YT]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Na]},t[QT]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[ff]},t[$T]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[cf]},t[XT]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[zi]},t[KT]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Na,zi]},t[JT]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[zi]},t[ek]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Et]},t[nk]={textureFormat:d2,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ok]},t[tk]={textureFormat:d2,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ak]},Object.keys(t).forEach(function(n){const r=t[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,a){const o=r.type[a];r.bytesPerElementMap[o]=i})}),Nd=t}return Nd[e]}function sk(e,t){const n=pf(e);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[t];if(r===void 0)throw"unknown internal format";return r}function Ga(e){const t=pf(e);if(!t)throw"unknown internal format";return{format:t.textureFormat,type:t.type[0]}}function E2(e){return(e&e-1)===0}function lk(e,t,n,r){if(!Pa(e))return E2(t)&&E2(n);const i=pf(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function uk(e){const t=pf(e);if(!t)throw"unknown internal format";return t.textureFilterable}function _2(e,t,n){return La(t)?Id(t):n||Ve}function gf(e,t,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const a=Math.sqrt(i/(t===ar?6:1));a%1===0?(n=a,r=a):(n=i,r=1)}else if(r){if(!n&&(n=i/r,n%1))throw"can't guess dimensions"}else if(r=i/n,r%1)throw"can't guess dimensions";return{width:n,height:r}}function Ha(e,t){t.colorspaceConversion!==void 0&&e.pixelStorei(eT,t.colorspaceConversion),t.premultiplyAlpha!==void 0&&e.pixelStorei(tT,t.premultiplyAlpha),t.flipY!==void 0&&e.pixelStorei(nT,t.flipY)}function S2(e){e.pixelStorei(Pd,4),Pa(e)&&(e.pixelStorei(g2,0),e.pixelStorei(m2,0),e.pixelStorei(b2,0),e.pixelStorei(y2,0),e.pixelStorei(w2,0))}function fk(e,t,n,r){r.minMag&&(n.call(e,t,Rd,r.minMag),n.call(e,t,Md,r.minMag)),r.min&&n.call(e,t,Rd,r.min),r.mag&&n.call(e,t,Md,r.mag),r.wrap&&(n.call(e,t,lf,r.wrap),n.call(e,t,uf,r.wrap),(t===Or||A5(e,t))&&n.call(e,t,p2,r.wrap)),r.wrapR&&n.call(e,t,p2,r.wrapR),r.wrapS&&n.call(e,t,lf,r.wrapS),r.wrapT&&n.call(e,t,uf,r.wrapT),r.minLod&&n.call(e,t,$5,r.minLod),r.maxLod&&n.call(e,t,X5,r.maxLod),r.baseLevel&&n.call(e,t,K5,r.baseLevel),r.maxLevel&&n.call(e,t,J5,r.maxLevel)}function C2(e,t,n){const r=n.target||ir;e.bindTexture(r,t),fk(e,r,e.texParameteri,n)}function ck(e){return e=e||Nr.textureColor,La(e)?e:new Uint8Array([e[0]*255,e[1]*255,e[2]*255,e[3]*255])}function Od(e,t,n,r,i,a){n=n||Nr.textureOptions,a=a||He;const o=n.target||ir;if(r=r||n.width,i=i||n.height,e.bindTexture(o,t),lk(e,r,i,a))e.generateMipmap(o);else{const s=uk(a)?j5:V5;e.texParameteri(o,Rd,s),e.texParameteri(o,Md,s),e.texParameteri(o,lf,of),e.texParameteri(o,uf,of)}}function Os(e){return e.auto===!0||e.auto===void 0&&e.level===void 0}function zd(e,t){return t=t||{},t.cubeFaceOrder||[sf,q5,Z5,W5,Y5,Q5]}function Ud(e,t){const r=zd(e,t).map(function(i,a){return{face:i,ndx:a}});return r.sort(function(i,a){return i.face-a.face}),r}function T2(e,t,n,r){r=r||Nr.textureOptions;const i=r.target||ir,a=r.level||0;let o=n.width,s=n.height;const u=r.internalFormat||r.format||He,l=Ga(u),f=r.format||l.format,c=r.type||l.type;if(Ha(e,r),e.bindTexture(i,t),i===ar){const h=n.width,d=n.height;let p,m;if(h/6===d)p=d,m=[0,0,1,0,2,0,3,0,4,0,5,0];else if(d/6===h)p=h,m=[0,0,0,1,0,2,0,3,0,4,0,5];else if(h/3===d/2)p=h/3,m=[0,0,1,0,2,0,0,1,1,1,2,1];else if(h/2===d/3)p=h/2,m=[0,0,1,0,0,1,1,1,0,2,1,2];else throw"can't figure out cube map from element: "+(n.src?n.src:n.nodeName);const y=u2();y?(y.canvas.width=p,y.canvas.height=p,o=p,s=p,Ud(e,r).forEach(function(w){const _=m[w.ndx*2+0]*p,C=m[w.ndx*2+1]*p;y.drawImage(n,_,C,p,p,0,0,p,p),e.texImage2D(w.face,a,u,f,c,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(o=p,s=p,Ud(e,r).forEach(function(w){const _=m[w.ndx*2+0]*p,C=m[w.ndx*2+1]*p;e.texImage2D(w.face,a,u,p,p,0,f,c,null),createImageBitmap(n,_,C,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(E){Ha(e,r),e.bindTexture(i,t),e.texImage2D(w.face,a,u,f,c,E),Os(r)&&Od(e,t,r,o,s,u)})}))}else if(i===Or||i===zr){const h=Math.min(n.width,n.height),d=Math.max(n.width,n.height),p=d/h;if(p%1!==0)throw"can not compute 3D dimensions of element";const m=n.width===d?1:0,y=n.height===d?1:0;e.pixelStorei(Pd,1),e.pixelStorei(g2,n.width),e.pixelStorei(m2,0),e.pixelStorei(w2,0),e.texImage3D(i,a,u,h,h,h,0,f,c,null);for(let w=0;w<p;++w){const _=w*h*m,C=w*h*y;e.pixelStorei(b2,_),e.pixelStorei(y2,C),e.texSubImage3D(i,a,0,0,w,h,h,1,f,c,n)}S2(e)}else e.texImage2D(i,a,u,f,c,n);Os(r)&&Od(e,t,r,o,s,u),C2(e,t,r)}function zs(){}function hk(e){if(typeof document<"u"){const t=document.createElement("a");return t.href=e,t.hostname===location.hostname&&t.port===location.port&&t.protocol===location.protocol}else{const t=new URL(location.href).origin;return new URL(e,location.href).origin===t}}function dk(e,t){return t===void 0&&!hk(e)?"anonymous":t}function pk(e,t,n){n=n||zs;let r;if(t=t!==void 0?t:Nr.crossOrigin,t=dk(e,t),typeof Image<"u"){r=new Image,t!==void 0&&(r.crossOrigin=t);const i=function(){r.removeEventListener("error",a),r.removeEventListener("load",o),r=null},a=function(){const u="couldn't load image: "+e;v5(u),n(u,r),i()},o=function(){n(null,r),i()};return r.addEventListener("error",a),r.addEventListener("load",o),r.src=e,r}else if(typeof ImageBitmap<"u"){let i,a;const o=function(){n(i,a)},s={};t&&(s.mode="cors"),fetch(e,s).then(function(u){if(!u.ok)throw u;return u.blob()}).then(function(u){return createImageBitmap(u,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(u){a=u,setTimeout(o)}).catch(function(u){i=u,setTimeout(o)}),r=null}return r}function k2(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof ImageData<"u"&&e instanceof ImageData||typeof HTMLElement<"u"&&e instanceof HTMLElement}function Gd(e,t,n){return k2(e)?(setTimeout(function(){n(null,e)}),e):pk(e,t,n)}function Hd(e,t,n){n=n||Nr.textureOptions;const r=n.target||ir;if(e.bindTexture(r,t),n.color===!1)return;const i=ck(n.color);if(r===ar)for(let a=0;a<6;++a)e.texImage2D(sf+a,0,He,1,1,0,He,Ve,i);else r===Or||r===zr?e.texImage3D(r,0,He,1,1,1,0,He,Ve,i):e.texImage2D(r,0,He,1,1,0,He,Ve,i)}function gk(e,t,n,r){return r=r||zs,n=n||Nr.textureOptions,Hd(e,t,n),n=Object.assign({},n),Gd(n.src,n.crossOrigin,function(a,o){a?r(a,t,o):(T2(e,t,o,n),r(null,t,o))})}function mk(e,t,n,r){r=r||zs;const i=n.src;if(i.length!==6)throw"there must be 6 urls for a cubemap";const a=n.level||0,o=n.internalFormat||n.format||He,s=Ga(o),u=n.format||s.format,l=n.type||Ve,f=n.target||ir;if(f!==ar)throw"target must be TEXTURE_CUBE_MAP";Hd(e,t,n),n=Object.assign({},n);let c=6;const h=[],d=zd(e,n);let p;function m(y){return function(w,_){--c,w?h.push(w):_.width!==_.height?h.push("cubemap face img is not a square: "+_.src):(Ha(e,n),e.bindTexture(f,t),c===5?zd().forEach(function(C){e.texImage2D(C,a,o,u,l,_)}):e.texImage2D(y,a,o,u,l,_),Os(n)&&e.generateMipmap(f)),c===0&&r(h.length?h:void 0,t,p)}}p=i.map(function(y,w){return Gd(y,n.crossOrigin,m(d[w]))})}function bk(e,t,n,r){r=r||zs;const i=n.src,a=n.internalFormat||n.format||He,o=Ga(a),s=n.format||o.format,u=n.type||Ve,l=n.target||zr;if(l!==Or&&l!==zr)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";Hd(e,t,n),n=Object.assign({},n);let f=i.length;const c=[];let h;const d=n.level||0;let p=n.width,m=n.height;const y=i.length;let w=!0;function _(C){return function(E,k){if(--f,E)c.push(E);else{if(Ha(e,n),e.bindTexture(l,t),w){w=!1,p=n.width||k.width,m=n.height||k.height,e.texImage3D(l,d,a,p,m,y,0,s,u,null);for(let B=0;B<y;++B)e.texSubImage3D(l,d,0,0,B,p,m,1,s,u,k)}else{let B=k,I;(k.width!==p||k.height!==m)&&(I=u2(),B=I.canvas,I.canvas.width=p,I.canvas.height=m,I.drawImage(k,0,0,p,m)),e.texSubImage3D(l,d,0,0,C,p,m,1,s,u,B),I&&B===I.canvas&&(I.canvas.width=0,I.canvas.height=0)}Os(n)&&e.generateMipmap(l)}f===0&&r(c.length?c:void 0,t,h)}}h=i.map(function(C,E){return Gd(C,n.crossOrigin,_(E))})}function I2(e,t,n,r){r=r||Nr.textureOptions;const i=r.target||ir;e.bindTexture(i,t);let a=r.width,o=r.height,s=r.depth;const u=r.level||0,l=r.internalFormat||r.format||He,f=Ga(l),c=r.format||f.format,h=r.type||_2(e,n,f.type);if(La(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=w5(h);n=new y(n)}const d=sk(l,h),p=n.byteLength/d;if(p%1)throw"length wrong size for format: "+Fd(e,c);let m;if(i===Or||i===zr)if(!a&&!o&&!s){const y=Math.cbrt(p);if(y%1!==0)throw"can't guess cube size of array of numElements: "+p;a=y,o=y,s=y}else a&&(!o||!s)?(m=gf(e,i,o,s,p/a),o=m.width,s=m.height):o&&(!a||!s)?(m=gf(e,i,a,s,p/o),a=m.width,s=m.height):(m=gf(e,i,a,o,p/s),a=m.width,o=m.height);else m=gf(e,i,a,o,p),a=m.width,o=m.height;if(S2(e),e.pixelStorei(Pd,r.unpackAlignment||1),Ha(e,r),i===ar){const y=d/n.BYTES_PER_ELEMENT,w=p/6*y;Ud(e,r).forEach(_=>{const C=w*_.ndx,E=n.subarray(C,C+w);e.texImage2D(_.face,u,l,a,o,0,c,h,E)})}else i===Or||i===zr?e.texImage3D(i,u,l,a,o,s,0,c,h,n):e.texImage2D(i,u,l,a,o,0,c,h,n);return{width:a,height:o,depth:s,type:h}}function yk(e,t,n){const r=n.target||ir;e.bindTexture(r,t);const i=n.level||0,a=n.internalFormat||n.format||He,o=Ga(a),s=n.format||o.format,u=n.type||o.type;if(Ha(e,n),r===ar)for(let l=0;l<6;++l)e.texImage2D(sf+l,i,a,n.width,n.height,0,s,u,null);else r===Or||r===zr?e.texImage3D(r,i,a,n.width,n.height,n.depth,0,s,u,null):e.texImage2D(r,i,a,n.width,n.height,0,s,u,null)}function Us(e,t,n){n=n||zs,t=t||Nr.textureOptions;const r=e.createTexture(),i=t.target||ir;let a=t.width||1,o=t.height||1;const s=t.internalFormat||He;e.bindTexture(i,r),i===ar&&(e.texParameteri(i,lf,of),e.texParameteri(i,uf,of));let u=t.src;if(u)if(typeof u=="function"&&(u=u(e,t)),typeof u=="string")gk(e,r,t,n);else if(La(u)||Array.isArray(u)&&(typeof u[0]=="number"||Array.isArray(u[0])||La(u[0]))){const l=I2(e,r,u,t);a=l.width,o=l.height}else Array.isArray(u)&&(typeof u[0]=="string"||k2(u[0]))?i===ar?mk(e,r,t,n):bk(e,r,t,n):(T2(e,r,u,t),a=u.width,o=u.height);else yk(e,r,t);return Os(t)&&Od(e,r,t,a,o,s),C2(e,r,t),r}function wk(e,t,n,r,i,a){r=r||n.width,i=i||n.height,a=a||n.depth;const o=n.target||ir;e.bindTexture(o,t);const s=n.level||0,u=n.internalFormat||n.format||He,l=Ga(u),f=n.format||l.format;let c;const h=n.src;if(h&&(La(h)||Array.isArray(h)&&typeof h[0]=="number")?c=n.type||_2(e,h,l.type):c=n.type||l.type,o===ar)for(let d=0;d<6;++d)e.texImage2D(sf+d,s,u,r,i,0,f,c,null);else o===Or||o===zr?e.texImage3D(o,s,u,r,i,a,0,f,c,null):e.texImage2D(o,s,u,r,i,0,f,c,null)}const vk=t2,mf=33984,xk=35048,bf=34962,Ak=34963,Vd=35345,B2=35718,Ek=35721,_k=35971,Sk=35382,Ck=35396,Tk=35398,kk=35392,Ik=35395,yf=5126,D2=35664,F2=35665,R2=35666,jd=5124,M2=35667,P2=35668,L2=35669,N2=35670,O2=35671,z2=35672,U2=35673,G2=35674,H2=35675,V2=35676,Bk=35678,Dk=35680,Fk=35679,Rk=35682,Mk=35685,Pk=35686,Lk=35687,Nk=35688,Ok=35689,zk=35690,Uk=36289,Gk=36292,Hk=36293,qd=5125,j2=36294,q2=36295,Z2=36296,Vk=36298,jk=36299,qk=36300,Zk=36303,Wk=36306,Yk=36307,Qk=36308,$k=36311,wf=3553,vf=34067,Zd=32879,xf=35866,oe={};function W2(e,t){return oe[t].bindPoint}function Xk(e,t){return function(n){e.uniform1f(t,n)}}function Kk(e,t){return function(n){e.uniform1fv(t,n)}}function Jk(e,t){return function(n){e.uniform2fv(t,n)}}function eI(e,t){return function(n){e.uniform3fv(t,n)}}function tI(e,t){return function(n){e.uniform4fv(t,n)}}function Y2(e,t){return function(n){e.uniform1i(t,n)}}function Q2(e,t){return function(n){e.uniform1iv(t,n)}}function $2(e,t){return function(n){e.uniform2iv(t,n)}}function X2(e,t){return function(n){e.uniform3iv(t,n)}}function K2(e,t){return function(n){e.uniform4iv(t,n)}}function nI(e,t){return function(n){e.uniform1ui(t,n)}}function rI(e,t){return function(n){e.uniform1uiv(t,n)}}function iI(e,t){return function(n){e.uniform2uiv(t,n)}}function aI(e,t){return function(n){e.uniform3uiv(t,n)}}function oI(e,t){return function(n){e.uniform4uiv(t,n)}}function sI(e,t){return function(n){e.uniformMatrix2fv(t,!1,n)}}function lI(e,t){return function(n){e.uniformMatrix3fv(t,!1,n)}}function uI(e,t){return function(n){e.uniformMatrix4fv(t,!1,n)}}function fI(e,t){return function(n){e.uniformMatrix2x3fv(t,!1,n)}}function cI(e,t){return function(n){e.uniformMatrix3x2fv(t,!1,n)}}function hI(e,t){return function(n){e.uniformMatrix2x4fv(t,!1,n)}}function dI(e,t){return function(n){e.uniformMatrix4x2fv(t,!1,n)}}function pI(e,t){return function(n){e.uniformMatrix3x4fv(t,!1,n)}}function gI(e,t){return function(n){e.uniformMatrix4x3fv(t,!1,n)}}function Tt(e,t,n,r){const i=W2(e,t);return Pa(e)?function(a){let o,s;af(e,a)?(o=a,s=null):(o=a.texture,s=a.sampler),e.uniform1i(r,n),e.activeTexture(mf+n),e.bindTexture(i,o),e.bindSampler(n,s)}:function(a){e.uniform1i(r,n),e.activeTexture(mf+n),e.bindTexture(i,a)}}function kt(e,t,n,r,i){const a=W2(e,t),o=new Int32Array(i);for(let s=0;s<i;++s)o[s]=n+s;return Pa(e)?function(s){e.uniform1iv(r,o),s.forEach(function(u,l){e.activeTexture(mf+o[l]);let f,c;af(e,u)?(f=u,c=null):(f=u.texture,c=u.sampler),e.bindSampler(n,c),e.bindTexture(a,f)})}:function(s){e.uniform1iv(r,o),s.forEach(function(u,l){e.activeTexture(mf+o[l]),e.bindTexture(a,u)})}}oe[yf]={Type:Float32Array,size:4,setter:Xk,arraySetter:Kk},oe[D2]={Type:Float32Array,size:8,setter:Jk,cols:2},oe[F2]={Type:Float32Array,size:12,setter:eI,cols:3},oe[R2]={Type:Float32Array,size:16,setter:tI,cols:4},oe[jd]={Type:Int32Array,size:4,setter:Y2,arraySetter:Q2},oe[M2]={Type:Int32Array,size:8,setter:$2,cols:2},oe[P2]={Type:Int32Array,size:12,setter:X2,cols:3},oe[L2]={Type:Int32Array,size:16,setter:K2,cols:4},oe[qd]={Type:Uint32Array,size:4,setter:nI,arraySetter:rI},oe[j2]={Type:Uint32Array,size:8,setter:iI,cols:2},oe[q2]={Type:Uint32Array,size:12,setter:aI,cols:3},oe[Z2]={Type:Uint32Array,size:16,setter:oI,cols:4},oe[N2]={Type:Uint32Array,size:4,setter:Y2,arraySetter:Q2},oe[O2]={Type:Uint32Array,size:8,setter:$2,cols:2},oe[z2]={Type:Uint32Array,size:12,setter:X2,cols:3},oe[U2]={Type:Uint32Array,size:16,setter:K2,cols:4},oe[G2]={Type:Float32Array,size:32,setter:sI,rows:2,cols:2},oe[H2]={Type:Float32Array,size:48,setter:lI,rows:3,cols:3},oe[V2]={Type:Float32Array,size:64,setter:uI,rows:4,cols:4},oe[Mk]={Type:Float32Array,size:32,setter:fI,rows:2,cols:3},oe[Pk]={Type:Float32Array,size:32,setter:hI,rows:2,cols:4},oe[Lk]={Type:Float32Array,size:48,setter:cI,rows:3,cols:2},oe[Nk]={Type:Float32Array,size:48,setter:pI,rows:3,cols:4},oe[Ok]={Type:Float32Array,size:64,setter:dI,rows:4,cols:2},oe[zk]={Type:Float32Array,size:64,setter:gI,rows:4,cols:3},oe[Bk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:wf},oe[Dk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:vf},oe[Fk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:Zd},oe[Rk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:wf},oe[Uk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:xf},oe[Gk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:xf},oe[Hk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:vf},oe[Vk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:wf},oe[jk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:Zd},oe[qk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:vf},oe[Zk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:xf},oe[Wk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:wf},oe[Yk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:Zd},oe[Qk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:vf},oe[$k]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:xf};function Af(e,t){return function(n){if(n.value)switch(e.disableVertexAttribArray(t),n.value.length){case 4:e.vertexAttrib4fv(t,n.value);break;case 3:e.vertexAttrib3fv(t,n.value);break;case 2:e.vertexAttrib2fv(t,n.value);break;case 1:e.vertexAttrib1fv(t,n.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else e.bindBuffer(bf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,n.numComponents||n.size,n.type||yf,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Gr(e,t){return function(n){if(n.value)if(e.disableVertexAttribArray(t),n.value.length===4)e.vertexAttrib4iv(t,n.value);else throw new Error("The length of an integer constant value must be 4!");else e.bindBuffer(bf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||jd,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Ef(e,t){return function(n){if(n.value)if(e.disableVertexAttribArray(t),n.value.length===4)e.vertexAttrib4uiv(t,n.value);else throw new Error("The length of an unsigned integer constant value must be 4!");else e.bindBuffer(bf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||qd,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Wd(e,t,n){const r=n.size,i=n.count;return function(a){e.bindBuffer(bf,a.buffer);const o=a.size||a.numComponents||r,s=o/i,u=a.type||yf,f=oe[u].size*o,c=a.normalize||!1,h=a.offset||0,d=f/i;for(let p=0;p<i;++p)e.enableVertexAttribArray(t+p),e.vertexAttribPointer(t+p,s,u,c,f,h+d*p),a.divisor!==void 0&&e.vertexAttribDivisor(t+p,a.divisor)}}const nt={};nt[yf]={size:4,setter:Af},nt[D2]={size:8,setter:Af},nt[F2]={size:12,setter:Af},nt[R2]={size:16,setter:Af},nt[jd]={size:4,setter:Gr},nt[M2]={size:8,setter:Gr},nt[P2]={size:12,setter:Gr},nt[L2]={size:16,setter:Gr},nt[qd]={size:4,setter:Ef},nt[j2]={size:8,setter:Ef},nt[q2]={size:12,setter:Ef},nt[Z2]={size:16,setter:Ef},nt[N2]={size:4,setter:Gr},nt[O2]={size:8,setter:Gr},nt[z2]={size:12,setter:Gr},nt[U2]={size:16,setter:Gr},nt[G2]={size:4,setter:Wd,count:2},nt[H2]={size:9,setter:Wd,count:3},nt[V2]={size:16,setter:Wd,count:4};function J2(e){const t=e.name;return t.startsWith("gl_")||t.startsWith("webgl_")}const mI=/(\.|\[|]|\w+)/g,bI=e=>e>="0"&&e<="9";function ey(e,t,n,r){const i=e.split(mI).filter(s=>s!=="");let a=0,o="";for(;;){const s=i[a++];o+=s;const u=bI(s[0]),l=u?parseInt(s):s;if(u&&(o+=i[a++]),a===i.length){n[l]=t;break}else{const c=i[a++],h=c==="[",d=n[l]||(h?[]:{});n[l]=d,n=d,r[o]=r[o]||function(p){return function(m){ry(p,m)}}(d),o+=c}}}function yI(e,t){let n=0;function r(s,u,l){const f=u.name.endsWith("[0]"),c=u.type,h=oe[c];if(!h)throw new Error(`unknown type: 0x${c.toString(16)}`);let d;if(h.bindPoint){const p=n;n+=u.size,f?d=h.arraySetter(e,c,p,l,u.size):d=h.setter(e,c,p,l,u.size)}else h.arraySetter&&f?d=h.arraySetter(e,l):d=h.setter(e,l);return d.location=l,d}const i={},a={},o=e.getProgramParameter(t,B2);for(let s=0;s<o;++s){const u=e.getActiveUniform(t,s);if(J2(u))continue;let l=u.name;l.endsWith("[0]")&&(l=l.substr(0,l.length-3));const f=e.getUniformLocation(t,u.name);if(f){const c=r(t,u,f);i[l]=c,ey(l,c,a,i)}}return i}function wI(e,t){const n={},r=e.getProgramParameter(t,_k);for(let i=0;i<r;++i){const a=e.getTransformFeedbackVarying(t,i);n[a.name]={index:i,type:a.type,size:a.size}}return n}function vI(e,t){const n=e.getProgramParameter(t,B2),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const u=e.getActiveUniform(t,s);r[s].name=u.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const u=s[0],l=s[1];e.getActiveUniforms(t,i,e[u]).forEach(function(f,c){r[c][l]=f})});const a={},o=e.getProgramParameter(t,Sk);for(let s=0;s<o;++s){const u=e.getActiveUniformBlockName(t,s),l={index:e.getUniformBlockIndex(t,u),usedByVertexShader:e.getActiveUniformBlockParameter(t,s,Ck),usedByFragmentShader:e.getActiveUniformBlockParameter(t,s,Tk),size:e.getActiveUniformBlockParameter(t,s,kk),uniformIndices:e.getActiveUniformBlockParameter(t,s,Ik)};l.used=l.usedByVertexShader||l.usedByFragmentShader,a[u]=l}return{blockSpecs:a,uniformData:r}}const ty=/\[\d+\]\.$/,xI=(e,t)=>((e+(t-1))/t|0)*t;function AI(e,t,n,r){if(t||n){r=r||1;const a=e.length/4;return function(o){let s=0,u=0;for(let l=0;l<a;++l){for(let f=0;f<r;++f)e[s++]=o[u++];s+=4-r}}}else return function(i){i.length?e.set(i):e[0]=i}}function EI(e,t,n,r){const i=n.blockSpecs,a=n.uniformData,o=i[r];if(!o)return vk("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(o.size),u=e.createBuffer(),l=o.index;e.bindBuffer(Vd,u),e.uniformBlockBinding(t,o.index,l);let f=r+".";ty.test(f)&&(f=f.replace(ty,"."));const c={},h={},d={};return o.uniformIndices.forEach(function(p){const m=a[p];let y=m.name;y.startsWith(f)&&(y=y.substr(f.length));const w=y.endsWith("[0]");w&&(y=y.substr(0,y.length-3));const _=oe[m.type],C=_.Type,E=w?xI(_.size,16)*m.size:_.size*m.size,k=new C(s,m.offset,E/C.BYTES_PER_ELEMENT);c[y]=k;const B=AI(k,w,_.rows,_.cols);h[y]=B,ey(y,B,d,h)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:u,uniforms:c,setters:h}}function Yd(e,t,n){return EI(e,t.program,t.uniformBlockSpec,n)}function ny(e,t,n){const i=(t.uniformBlockSpec||t).blockSpecs[n.name];if(i){const a=i.index;return e.bindBufferRange(Vd,a,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function Qd(e,t,n){ny(e,t,n)&&e.bufferData(Vd,n.array,xk)}function Va(e,t){const n=e.setters;for(const r in t){const i=n[r];if(i){const a=t[r];i(a)}}}function ry(e,t){for(const n in t){const r=e[n];typeof r=="function"?r(t[n]):ry(e[n],t[n])}}function Gi(e,...t){const n=e.uniformSetters||e,r=t.length;for(let i=0;i<r;++i){const a=t[i];if(Array.isArray(a)){const o=a.length;for(let s=0;s<o;++s)Gi(n,a[s])}else for(const o in a){const s=n[o];s&&s(a[o])}}}function _I(e,t){const n={},r=e.getProgramParameter(t,Ek);for(let i=0;i<r;++i){const a=e.getActiveAttrib(t,i);if(J2(a))continue;const o=e.getAttribLocation(t,a.name),s=nt[a.type],u=s.setter(e,o,s);u.location=o,n[a.name]=u}return n}function SI(e,t){for(const n in t){const r=e[n];r&&r(t[n])}}function Hi(e,t,n){n.vertexArrayObject?e.bindVertexArray(n.vertexArrayObject):(SI(t.attribSetters||t,n.attribs),n.indices&&e.bindBuffer(Ak,n.indices))}function CI(e,t){const n=yI(e,t),r=_I(e,t),i={program:t,uniformSetters:n,attribSetters:r};return Pa(e)&&(i.uniformBlockSpec=vI(e,t),i.transformFeedbackInfo=wI(e,t)),i}const TI=4,iy=5123;function _f(e,t,n,r,i,a){n=n===void 0?TI:n;const o=t.indices,s=t.elementType,u=r===void 0?t.numElements:r;i=i===void 0?0:i,s||o?a!==void 0?e.drawElementsInstanced(n,u,s===void 0?iy:t.elementType,i,a):e.drawElements(n,u,s===void 0?iy:t.elementType,i):a!==void 0?e.drawArraysInstanced(n,i,u,a):e.drawArrays(n,i,u)}const kI=36160,Vi=36161,II=3553,BI=5121,DI=6402,FI=6408,RI=33190,MI=36012,PI=35056,LI=36013,NI=32854,OI=32855,zI=36194,ay=33189,oy=6401,sy=36168,$d=34041,UI=36064,Sf=36096,ly=36128,Xd=33306,Kd=33071,Jd=9729,uy=[{format:FI,type:BI,min:Jd,wrap:Kd},{format:$d}],An={};An[$d]=Xd,An[oy]=ly,An[sy]=ly,An[DI]=Sf,An[ay]=Sf,An[RI]=Sf,An[MI]=Sf,An[PI]=Xd,An[LI]=Xd;function GI(e,t){return An[e]||An[t]}const Hr={};Hr[NI]=!0,Hr[OI]=!0,Hr[zI]=!0,Hr[$d]=!0,Hr[ay]=!0,Hr[oy]=!0,Hr[sy]=!0;function HI(e){return Hr[e]}function VI(e,t,n,r){const i=kI,a=e.createFramebuffer();e.bindFramebuffer(i,a),n=n||e.drawingBufferWidth,r=r||e.drawingBufferHeight,t=t||uy;let o=0;const s={framebuffer:a,attachments:[],width:n,height:r};return t.forEach(function(u){let l=u.attachment;const f=u.samples,c=u.format;let h=u.attachmentPoint||GI(c,u.internalFormat);if(h||(h=UI+o++),!l)if(f!==void 0||HI(c))l=e.createRenderbuffer(),e.bindRenderbuffer(Vi,l),f>1?e.renderbufferStorageMultisample(Vi,f,c,n,r):e.renderbufferStorage(Vi,c,n,r);else{const d=Object.assign({},u);d.width=n,d.height=r,d.auto===void 0&&(d.auto=!1,d.min=d.min||d.minMag||Jd,d.mag=d.mag||d.minMag||Jd,d.wrapS=d.wrapS||d.wrap||Kd,d.wrapT=d.wrapT||d.wrap||Kd),l=Us(e,d)}if(n2(e,l))e.framebufferRenderbuffer(i,h,Vi,l);else if(af(e,l))u.layer!==void 0?e.framebufferTextureLayer(i,h,l,u.level||0,u.layer):e.framebufferTexture2D(i,h,u.target||II,l,u.level||0);else throw new Error("unknown attachment type");s.attachments.push(l)}),s}function jI(e,t,n,r,i){r=r||e.drawingBufferWidth,i=i||e.drawingBufferHeight,t.width=r,t.height=i,n=n||uy,n.forEach(function(a,o){const s=t.attachments[o],u=a.format,l=a.samples;if(l!==void 0||n2(e,s))e.bindRenderbuffer(Vi,s),l>1?e.renderbufferStorageMultisample(Vi,l,u,r,i):e.renderbufferStorage(Vi,u,r,i);else if(af(e,s))wk(e,s,a,r,i);else throw new Error("unknown attachment type")})}function qI(e,t,n){const r=e.createVertexArray();return e.bindVertexArray(r),t.length||(t=[t]),t.forEach(function(i){Hi(e,i,n)}),e.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const ZI=/^(.*?)_/;function WI(e,t){Fd(e,0);const n=e.getExtension(t);if(n){const r={},i=ZI.exec(t)[1],a="_"+i;for(const o in n){const s=n[o],u=typeof s=="function",l=u?i:a;let f=o;o.endsWith(l)&&(f=o.substring(0,o.length-l.length)),e[f]!==void 0?!u&&e[f]!==s&&t2(f,e[f],s,o):u?e[f]=function(c){return function(){return c.apply(n,arguments)}}(s):(e[f]=s,r[f]=s)}r.constructor={name:n.constructor.name},Fd(r,0)}return n}const fy=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_color_buffer_float","EXT_color_buffer_half_float","EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2","EXT_frag_depth","EXT_sRGB","EXT_shader_texture_lod","EXT_texture_filter_anisotropic","OES_element_index_uint","OES_standard_derivatives","OES_texture_float","OES_texture_float_linear","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_pvrtc","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_depth_texture","WEBGL_draw_buffers"];function cy(e){for(let t=0;t<fy.length;++t)WI(e,fy[t])}function YI(e,t){const n=["webgl2","webgl","experimental-webgl"];let r=null;for(let i=0;i<n.length;++i)if(r=e.getContext(n[i],t),r){cy(r);break}return r}function QI(e,t){return YI(e,t)}const $I=`uniform Mark{uniform float uMinWidth;uniform float uMinHeight;uniform float uMinOpacity;uniform float uCornerRadiusTopRight;uniform float uCornerRadiusBottomRight;uniform float uCornerRadiusTopLeft;uniform float uCornerRadiusBottomLeft;};out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out float vHalfStrokeWidth;out vec4 vCornerRadii;
165
165
  #if defined(ROUNDED_CORNERS) || defined(STROKED)
166
166
  out vec2 vPosInPixels;
167
167
  #endif
@@ -169,7 +169,7 @@ out vec2 vHalfSizeInPixels;/***Clamps the minimumSize and returns an opacity tha
169
169
  #if defined(ROUNDED_CORNERS) || defined(STROKED)
170
170
  float aaPadding=1.0/uDevicePixelRatio;float strokeWidth=getScaled_strokeWidth();float strokeOpacity=getScaled_strokeOpacity()*opaFactor;vec2 centeredFrac=frac-0.5;vec2 expand=centeredFrac*(strokeWidth+aaPadding)/uViewportSize;pos+=expand;vec2 sizeInPixels=size*uViewportSize;vPosInPixels=(centeredFrac+expand/size)*sizeInPixels;vHalfSizeInPixels=sizeInPixels/2.0;vCornerRadii=min(cornerRadii,min(vHalfSizeInPixels.x,vHalfSizeInPixels.y));vHalfStrokeWidth=strokeWidth/2.0;vStrokeColor=vec4(getScaled_stroke()*strokeOpacity,strokeOpacity);
171
171
  #endif
172
- gl_Position=unitToNdc(pos);float fillOpacity=getScaled_fillOpacity()*opaFactor;vFillColor=vec4(getScaled_fill()*fillOpacity,fillOpacity);setupPicking();}`,qI=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
172
+ gl_Position=unitToNdc(pos);float fillOpacity=getScaled_fillOpacity()*opaFactor;vFillColor=vec4(getScaled_fill()*fillOpacity,fillOpacity);setupPicking();}`,XI=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
173
173
  in vec2 vPosInPixels;
174
174
  #endif
175
175
  in vec2 vHalfSizeInPixels;in lowp vec4 vFillColor;in lowp vec4 vStrokeColor;in float vHalfStrokeWidth;in vec4 vCornerRadii;out lowp vec4 fragColor;float sdRoundedBox(vec2 p,vec2 b,vec4 r){r.xy=p.x>0.0 ? r.xy : r.zw;r.x=p.y>0.0 ? r.x : r.y;vec2 q=abs(p)-b+r.x;return min(max(q.x,q.y),0.0)+length(max(q,0.0))-r.x;}float sdSharpBox(vec2 p,vec2 b){vec2 q=abs(p)-b;return max(q.x,q.y);}void main(void){
@@ -183,29 +183,34 @@ fragColor=distanceToColor(d,vFillColor,vStrokeColor,vHalfStrokeWidth);if(fragCol
183
183
  #else
184
184
  fragColor=vFillColor;
185
185
  #endif
186
- if(uPickingEnabled){fragColor=vPickingColor;}}`,Xd="attr_",ly="uDomain_",ZI="range_",uy="scale_",fy="getScaled_",$d="uRangeTexture_",cy=3402823466e29;function WI(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 YI(e,t){let n;if(ef(e))n=ji(Qb(e)(t));else if(Pe(t))if(Ni(e))n=XI(t);else throw new Error(`String values are not supported on the "${e}" channel: ${t}`);else if(Ga(t))n=ji(t?1:0);else if(t===null)if(Ni(e))n=ji([0,0,0]);else throw new Error(`null value is not supported on the "${e}" chanel.`);else n=ji(t);return`
186
+ if(uPickingEnabled){fragColor=vPickingColor;}}`,e0="attr_",hy="uDomain_",KI="range_",dy="scale_",py="getScaled_",t0="uRangeTexture_",gy=3402823466e29;function JI(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 eB(e,t){let n;if(nf(e))n=ji(Jb(e)(t));else if(Pe(t))if(Ni(e))n=nB(t);else throw new Error(`String values are not supported on the "${e}" channel: ${t}`);else if(Go(t))n=ji(t?1:0);else if(t===null)if(Ni(e))n=ji([0,0,0]);else throw new Error(`null value is not supported on the "${e}" chanel.`);else n=ji(t);return`
187
187
  #define ${e}_DEFINED
188
- ${n.type} ${fy}${e}() {
188
+ ${n.type} ${py}${e}() {
189
189
  // Constant value
190
190
  return ${n};
191
- }`}function QI(e,t,n,r=[e]){if(vn(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);if(!t)throw new Error("Scale is undefined");const i=Li(e),o=Xd+my(r),a=ly+i,s=ZI+i,u=_f(t.type),l=u?"vec2":"float",f=t.domain?t.domain().length:void 0;let c;const h=[];h.push(""),h.push("/".repeat(70)),h.push(`// Channel: ${e}`),h.push(""),h.push(`#define ${e}_DEFINED`);const{transform:d}=WI(t.type),p=(M,...j)=>$I.apply(null,[M,"value",...j]);let b;switch(d){case"linear":b=p("scaleLinear","domain",s);break;case"log":b=p("scaleLog","domain",s,t.base());break;case"symlog":b=p("scaleSymlog","domain",s,t.constant());break;case"pow":case"sqrt":b=p("scalePow","domain",s,t.exponent());break;case"index":case"locus":b=p("scaleBandHp","domain",s,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"point":case"band":b=p("scaleBand","domain",s,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"ordinal":case"null":case"identity":b=p("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${t.type}! ${e}: ${JSON.stringify(n)}`)}const y=$u(t.type)||bt(t.type)&&Ni(e)?[0,1]:t.range?t.range():void 0;if(y&&e==i&&y.length&&y.every(Ct)){const M=hy(y);h.push(`const ${M.type} ${s} = ${M};`)}const w=Ni(e)?"vec3":"float";let _;if(Ni(e)){const M=$d+i;if(e==i&&h.push(`uniform sampler2D ${M};`),bt(t.type))_=`getInterpolatedColor(${M}, transformed)`;else if(Lr(t.type)||Mi(t.type))_=`getDiscreteColor(${M}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(t.type==="ordinal"||Mi(t.type)){const M=$d+i;e==i&&h.push(`uniform sampler2D ${M};`),_=`getDiscreteColor(${M}, int(transformed)).r`}const C=Fs(n)?`uniform highp ${l} ${o};`:`in highp ${l} ${o};`,E=[],T=bt(t.type)&&f>2,B=Mi(t.type)||T;if(E.push("int slot = 0;"),B){const M=a;E.push(T?`while (slot < ${M}.length() - 2 && value >= ${M}[slot + 1]) { slot++; }`:`while (slot < ${M}.length() && value >= ${M}[slot]) { slot++; }`)}const I=bt(t.type)||Mi(t.type)||["band","point"].includes(t.type);if(b){const M=a;I&&(u?E.push(`vec3 domain = ${M};`):E.push(`vec2 domain = vec2(${M}[slot], ${M}[slot + 1]);`)),E.push(`float transformed = ${b};`),T&&E.push(`transformed = (float(slot) + transformed) / (float(${M}.length() - 1));`)}else E.push("float transformed = float(slot);");"clamp"in t&&t.clamp()&&E.push(`transformed = clampToRange(transformed, ${hy(y)});`),E.push(`return ${_??"transformed"};`),h.push(`
192
- ${w} ${uy}${e}(${l} value) {
193
- ${E.map(M=>` ${M}
191
+ }`}function tB(e,t,n,r=[e]){if(vn(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);if(!t)throw new Error("Scale is undefined");const i=Li(e),a=e0+wy(r),o=hy+i,s=KI+i,u=Nn(t.type),l=Cf(t.type),c=l&&by(t.domain())?"uvec2":l||u?"uint":"float",h=t.domain?t.domain().length:void 0;let d;const p=[];p.push(""),p.push("/".repeat(70)),p.push(`// Channel: ${e}`),p.push(""),p.push(`#define ${e}_DEFINED`);const{transform:m}=JI(t.type),y=(M,...ie)=>rB.apply(null,[M,"value",...ie]);let w;switch(m){case"linear":w=y("scaleLinear","domain",s);break;case"log":w=y("scaleLog","domain",s,t.base());break;case"symlog":w=y("scaleSymlog","domain",s,t.constant());break;case"pow":case"sqrt":w=y("scalePow","domain",s,t.exponent());break;case"index":case"locus":w=y("scaleBandHp","domain",s,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"point":case"band":w=y("scaleBand","domain",s,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"ordinal":case"null":case"identity":w=y("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${t.type}! ${e}: ${JSON.stringify(n)}`)}const _=Ku(t.type)||bt(t.type)&&Ni(e)?[0,1]:t.range?t.range():void 0;if(_&&e==i&&_.length&&_.every(Ct)){const M=my(_);p.push(`const ${M.type} ${s} = ${M};`)}const C=Ni(e)?"vec3":"float";let E;if(Ni(e)){const M=t0+i;if(e==i&&p.push(`uniform sampler2D ${M};`),bt(t.type))E=`getInterpolatedColor(${M}, transformed)`;else if(Nn(t.type)||Mi(t.type))E=`getDiscreteColor(${M}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(t.type==="ordinal"||Mi(t.type)){const M=t0+i;e==i&&p.push(`uniform sampler2D ${M};`),E=`getDiscreteColor(${M}, int(transformed)).r`}const k=Fs(n)?`uniform highp ${c} ${a};`:`in highp ${c} ${a};`,B=[],I=bt(t.type)&&h>2,R=Mi(t.type)||I;if(B.push("int slot = 0;"),R){const M=o;B.push(I?`while (slot < ${M}.length() - 2 && value >= ${M}[slot + 1]) { slot++; }`:`while (slot < ${M}.length() && value >= ${M}[slot]) { slot++; }`)}const L=bt(t.type)||Mi(t.type)||["band","point"].includes(t.type);if(w){const M=o;L&&(l?B.push(`vec3 domain = ${M};`):B.push(`vec2 domain = vec2(${M}[slot], ${M}[slot + 1]);`)),B.push(`float transformed = ${w};`),I&&B.push(`transformed = (float(slot) + transformed) / (float(${M}.length() - 1));`)}else B.push("float transformed = float(slot);");"clamp"in t&&t.clamp()&&B.push(`transformed = clampToRange(transformed, ${my(_)});`),B.push(`return ${E??"transformed"};`),p.push(`
192
+ ${C} ${dy}${e}(${c} value) {
193
+ ${B.map(M=>` ${M}
194
194
  `).join("")}
195
- }`),h.push(`
196
- ${w} ${fy}${e}() {
197
- return ${uy}${e}(${o});
198
- }`);const R=h.join(`
199
- `);if(I&&e==i){const M=bt(t.type)||Mi(t.type)?f:2;c=u?`highp vec3 ${a};`:`mediump float ${a}[${M}];`}return{attributeGlsl:C,glsl:R,domainUniform:c}}function Kd(e){if(!Ct(e))throw new Error(`Not a number: ${e}`);if(e==1/0)return""+cy;if(e==-1/0)return""+-cy;{let t=`${e}`;return/^(-)?\d+$/.test(t)&&(t+=".0"),t}}function ji(e){typeof e=="number"&&(e=[e]);const t=e.length;if(t<1||t>4)throw new Error("Invalid number of components: "+t);let n,r;return t>1?(n=`vec${t}`,r=`${n}(${e.map(Kd).join(", ")})`):(n="float",r=Kd(e[0])),Object.assign(r,{type:n,numComponents:t})}function XI(e){const t=Fr(e).rgb();return ji([t.r,t.g,t.b].map(n=>n/255))}function hy(e){return ji([e[0],ds(e)])}function $I(e,...t){const n=[];for(const r of t)Ct(r)?n.push(Kd(r)):Ft(r)?n.push(ji(r)):n.push(r);return`${e}(${n.join(", ")})`}function _f(e){return e=="index"||e=="locus"}const dy=2**11,KI=dy-1;function py(e,t=[]){const n=e&KI,r=e-n;return t[0]=r,t[1]=n,t}function JI(e){const t=e%dy;return[e-t,t]}function eB(e){return[...JI(e[0]),e[1]-e[0]]}function gy(e){const t=new Er([],JSON.stringify);for(const[n,r]of Object.entries(e)){const i=r.channelDef;if(Pi(i)){const a=[i.field,r.scale?(bt(r.scale.type)||Mi(r.scale.type))??!1:!1];t.set(a,[...t.get(a)??[],n])}}return t}function my(e){return Lt(e).join("_")}class tB{constructor(t){this.size=t,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}addConverter(t,n){const r=this.createUpdater(Xd+t,n.numComponents||1,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?o=>r(i(o)):o=>r(i(o)))}createUpdater(t,n,r){if(!Ct(this.size))throw new Error("The number of vertices must be defined!");let i,o,a=0;const s=new Float32Array(this.size*n);if(this.arrays[t]={data:s,numComponents:n},n==1){let u=0;const l=f=>{u=+f};i=()=>{s[a++]=u},o=l}else{let u=r??[0];const l=r?f=>{}:f=>{u=f};switch(n){case 1:break;case 2:i=()=>{s[a++]=u[0],s[a++]=u[1]},o=l;break;case 3:i=()=>{s[a++]=u[0],s[a++]=u[1],s[a++]=u[2]},o=l;break;case 4:i=()=>{s[a++]=u[0],s[a++]=u[1],s[a++]=u[2],s[a++]=u[3]},o=l;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(i),o}_unrollPushAll(){let t="",n="";for(let i=0;i<this.pushers.length;i++)t+=`const p${i} = that.pushers[${i}];
200
- `,n+=`p${i}();
201
- `;const r=new Function("that",`${t}
202
-
203
- return function unrolledPushAll() {
204
- ${n}
205
- that.vertexCount++;
206
- };
207
- `);this.pushAll=r(this)}pushAll(){this.size>1e5?this._unrollPushAll():this.pushAll=()=>{for(let n=0;n<this.pushers.length;n++)this.pushers[n]();this.vertexCount++},this.pushAll()}updateFromDatum(t){for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](t)}pushFromDatum(t){this.updateFromDatum(t),this.pushAll()}}const qo=5,Jd=127;function e0(e){const t=[];for(let p=0;p<=Jd;p++)t.push(void 0);const n=new Map;for(const p of e.chars)p.id<=Jd?t[p.id]=p:n.set(p.id,p);const r=8722;n.has(r)||n.set(r,t["-".charCodeAt(0)]);function i(p){return(p<=Jd?t[p]:n.get(p))||t[63]}function o(p){return i(p.charCodeAt(0))}const a=e.common.base,s=o("x"),u=o("X"),l=o("q"),f=s.height-qo*2,c=u.height-qo*2,h=l.height-s.height+l.yoffset-s.yoffset;function d(p,b=1){let y=0;for(let w=0;w<p.length;w++)y+=i(p.charCodeAt(w)).xadvance;return y/a*b}return{measureWidth:d,getCharByCode:i,getChar:o,xHeight:f,capHeight:c,descent:h,common:e.common}}const by=2**31-1,nB=-(2**31);function rB(e,t,n,r=n){const i=new Array(e);i.fill(by);let o=nB,a=-1/0,s=!1;const u=new Array(e);u.fill(0);const l=t[0],c=(t[1]-t[0])/e,h=(w,_)=>{const C=(w-l)/c,E=Math.floor(C);return xs(_&&E==C?E-1:E,0,e-1)};function d(w,_,C){if(s)return;if(_>o)o=_;else{s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}const E=n(w);if(E<a){s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}a=E;const T=h(E,!1);i[T]>_&&(i[T]=_),u[T]<C&&(u[T]=C)}function p(w,_,C){if(s)return;if(_>o)o=_;else{s=!0,console.debug("Items (vertices) are not ordered properly. Disabling binned index.");return}const E=n(w),T=r(w);if(E<a){s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}else if(T<E){s=!0,console.debug("End index is less than start index. Disabling binned index. Datum: ",w);return}a=E;const B=h(E,!1),I=h(T,!0);for(let R=B;R<=I;R++)i[R]>_&&(i[R]=_),u[R]<C&&(u[R]=C)}const b=(w,_,C=[0,0])=>{const E=h(w,!1),T=h(_,!0),B=i[E],I=Math.max(u[T],B);return C[0]=B,C[1]=I,C},y=()=>{if(s)return;for(let _=1;_<u.length;_++)u[_]<u[_-1]&&(u[_]=u[_-1]);let w=!0;for(let _=i.length-1;_>0;_--)w&&i[_]==by?(i[_]=u[_],w=!1):i[_-1]>i[_]&&(i[_-1]=i[_]);return b};return d.getIndex=y,p.getIndex=y,n==r?d:p}class Gs{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.scale&&!a.constant));const i=[...gy(t).entries()].filter(([o,a])=>o[1]&&a.length>1).map(([o,a])=>a);this.allocatedVertices=n,this.variableBuilder=new tB(n);for(const[o,a]of Object.entries(this.variableEncoders)){const s=i.find(p=>p.find(b=>b==o));if(s&&o!=s[0])continue;const u=a.accessor,l=[0,0],f=_f(a.scale.type),c=a.indexer,h=c?p=>c(u(p)):f?p=>py(u(p),l):u,d=s?my(s):o;this.variableBuilder.addConverter(d,{f:h,numComponents:f?2:1,arrayReference:f?l:void 0})}this.lastOffset=0,this.rangeMap=new Er([],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){const i=()=>{this.addToXIndex=u=>{},this.xIndexer=void 0};if(!t.length||r-n<0){i();return}const o=u=>{var l;return u&&bt((l=u.scale)==null?void 0:l.type)&&u},a=o(this.variableEncoders.x),s=o(this.variableEncoders.x2);if(a){const u=a.accessor,l=s?s.accessor:u,f=[u(t[n]),l(t[r-1])];if(f[1]>f[0]){this.xIndexer=rB(50,f,u,l);let c=this.variableBuilder.vertexCount;this.addToXIndex=h=>{let d=this.variableBuilder.vertexCount;this.xIndexer(h,c,d),c=d}}else i()}else i()}addToXIndex(t){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class iB extends Gs{constructor({encoders:t,attributes:n,numItems:r}){super({encoders:t,attributes:n,numVertices:r*6})}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.variableBuilder.pushAll(),this.variableBuilder.pushAll(),this.variableBuilder.pushAll(),this.variableBuilder.pushAll(),this.variableBuilder.pushAll(),this.variableBuilder.pushAll(),this.addToXIndex(a)}this.registerBatch(t)}}}class oB extends Gs{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)}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 u=0;u<=s;u++)this.updatePos(u/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(a)}this.registerBatch(t)}}class aB extends Gs{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r})}}class sB extends Gs{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r})}toArrays(){const t=this.variableBuilder.arrays;for(let n of Object.values(t))n.divisor=1;return super.toArrays()}}class lB extends Gs{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=!vn(s)&&"format"in s&&s.format?gt(s.format):u=>u,this.updateVertexCoord=this.variableBuilder.createUpdater("vertexCoord",2),this.updateTextureCoord=this.variableBuilder.createUpdater("textureCoord",2),this.updateWidth=this.variableBuilder.createUpdater("width",1)}addBatch(t,n,r=0,i=n.length){const o=this.properties.align||"left",a=this.properties.logoLetters??!1,s=this.metadata.common.base,u=this.metadata.common.scaleH;let l=-qo;switch(this.properties.baseline){case"top":l+=this.metrics.capHeight;break;case"middle":l+=this.metrics.capHeight/2;break;case"bottom":l-=this.metrics.descent;break}const f=this.encoders.text.accessor||this.encoders.text,c=[0,0];this.updateVertexCoord(c);const h=[0,0];this.updateTextureCoord(h),this.prepareXIndexer(n,r,i);for(let d=r;d<i;d++){const p=n[d],b=this.numberFormat(f(p)),y=Pe(b)?b:b===null?"":""+b;if(y.length==0)continue;this.variableBuilder.updateFromDatum(p);const w=a?y.length:this.metrics.measureWidth(y);this.updateWidth(w);let _=o=="right"?-w:o=="center"?-w/2:0;if(!a){const B=this.metrics.getCharByCode(y.charCodeAt(0));_-=(B.width-B.xadvance)/s/2}let C=-.5,E=1,T=1;for(let B=0;B<y.length;B++){const I=this.metrics.getCharByCode(y.charCodeAt(B)),R=a?1:I.xadvance/s;if(I.id==32){_+=R;continue}a?(T=(I.width+qo*2)/I.width,_=-T/2,E=(I.height+qo*2)/I.height,C=-.5-qo/I.height):(E=I.height/s,C=-(I.height+I.yoffset+l)/s,T=I.width/s);const M=I.x,j=I.y;c[0]=_,c[1]=C+E,h[0]=M/u,h[1]=j/u,this.variableBuilder.pushAll(),c[0]=_+T,c[1]=C+E,h[0]=(M+I.width)/u,h[1]=j/u,this.variableBuilder.pushAll(),c[0]=_,c[1]=C,h[0]=M/u,h[1]=(j+I.height)/u,this.variableBuilder.pushAll(),c[0]=_+T,c[1]=C+E,h[0]=(M+I.width)/u,h[1]=j/u,this.variableBuilder.pushAll(),c[0]=_,c[1]=C,h[0]=M/u,h[1]=(j+I.height)/u,this.variableBuilder.pushAll(),c[0]=_+T,c[1]=C,h[0]=(M+I.width)/u,h[1]=(j+I.height)/u,this.variableBuilder.pushAll(),_+=R}this.addToXIndex(p)}this.registerBatch(t)}}const yy=`#define PI 3.141593
208
- uniform View{mediump vec2 uViewOffset;mediump vec2 uViewScale;mediump vec2 uViewportSize;lowp float uDevicePixelRatio;lowp float uViewOpacity;bool uPickingEnabled;};/***Maps a coordinate on the unit scale to a normalized device coordinate.*(0,0)is at the bottom left corner.*/vec4 unitToNdc(vec2 coord){return vec4((coord*uViewScale+uViewOffset)*2.0-1.0,0.0,1.0);}vec4 unitToNdc(float x,float y){return unitToNdc(vec2(x,y));}vec4 pixelsToNdc(vec2 coord){return unitToNdc(coord/uViewportSize);}vec4 pixelsToNdc(float x,float y){return pixelsToNdc(vec2(x,y));}float linearstep(float edge0,float edge1,float x){return clamp((x-edge0)/(edge1-edge0),0.0,1.0);}/***Specialized linearstep for doing antialiasing*/float distanceToRatio(float d){return clamp(d*uDevicePixelRatio+0.5,0.0,1.0);}vec4 distanceToColor(float d,vec4 fill,vec4 stroke,float halfStrokeWidth){if(halfStrokeWidth>0.0){float sd=abs(d)-halfStrokeWidth;return mix(stroke,d<=0.0 ? fill : vec4(0.0),distanceToRatio(sd));}else{return fill*distanceToRatio(-d);}}`,uB="uniform highp float uZero;vec3 getDiscreteColor(sampler2D s,int index){return texelFetch(s,ivec2(index % textureSize(s,0).x,0),0).rgb;}vec3 getInterpolatedColor(sampler2D s,float unitValue){return texture(s,vec2(unitValue,0.0)).rgb;}float clampToRange(float value,vec2 range){return clamp(value,min(range[0],range[1]),max(range[0],range[1]));}float scaleIdentity(float value){return value;}float scaleLinear(float value,vec2 domain,vec2 range){float domainSpan=domain[1]-domain[0];float rangeSpan=range[1]-range[0];return(value-domain[0])/domainSpan*rangeSpan+range[0];}float scaleLog(float value,vec2 domain,vec2 range,float base){return scaleLinear(log(value)/log(base),log(domain)/log(base),range);}float symlog(float value,float constant){return sign(value)*log(abs(value/constant)+1.0);}float scaleSymlog(float value,vec2 domain,vec2 range,float constant){return scaleLinear(symlog(value,constant),vec2(symlog(domain[0],constant),symlog(domain[1],constant)),range);}float scalePow(float value,vec2 domain,vec2 range,float exponent){return scaleLinear(pow(abs(value),exponent)*sign(value),pow(abs(domain),vec2(exponent))*sign(domain),range);}float scaleBand(float value,vec2 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;float n=domainExtent[1]-domainExtent[0];paddingInner=int(n)>1 ? paddingInner : 0.0;float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);return start+(value-domainExtent[0])*step+bandwidth*band;}float scaleBandHp(vec2 value,vec3 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;vec2 domainStart=domainExtent.xy;float n=domainExtent[2];float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);float inf=1.0/uZero;float hi=max(value[0]-domainStart[0],-inf);float lo=max(value[1]-domainStart[1],-inf);return dot(vec4(start,hi,lo,bandwidth),vec4(1.0,step,step,band));}",fB=`/***Describes where a sample facet should be shown. Interpolating between the*current and target positions/heights allows for transitioning between facet*configurations.*/struct SampleFacetPosition{float pos;float height;float targetPos;float targetHeight;};/***Trasition fraction[0,1]between the current and target configurations.*/uniform float uTransitionOffset;
195
+ }`),p.push(`
196
+ ${C} ${py}${e}() {
197
+ return ${dy}${e}(${a});
198
+ }`);const j=p.join(`
199
+ `);if(L&&e==i){const M=bt(t.type)||Mi(t.type)?h:2;d=l?`highp vec3 ${o};`:`mediump float ${o}[${M}];`}return{attributeGlsl:k,glsl:j,domainUniform:d}}function n0(e){if(!Ct(e))throw new Error(`Not a number: ${e}`);if(e==1/0)return""+gy;if(e==-1/0)return""+-gy;{let t=`${e}`;return/^(-)?\d+$/.test(t)&&(t+=".0"),t}}function ji(e){typeof e=="number"&&(e=[e]);const t=e.length;if(t<1||t>4)throw new Error("Invalid number of components: "+t);let n,r;return t>1?(n=`vec${t}`,r=`${n}(${e.map(n0).join(", ")})`):(n="float",r=n0(e[0])),Object.assign(r,{type:n,numComponents:t})}function nB(e){const t=Rr(e).rgb();return ji([t.r,t.g,t.b].map(n=>n/255))}function my(e){return ji([e[0],ds(e)])}function rB(e,...t){const n=[];for(const r of t)Ct(r)?n.push(n0(r)):Ft(r)?n.push(ji(r)):n.push(r);return`${e}(${n.join(", ")})`}function Cf(e){return e=="index"||e=="locus"}function by(e){return e[1]>2**32}const Tf=2**12,iB=Tf-1;function aB(e,t=[]){const n=e&iB,r=e-n;return t[0]=r,t[1]=n,t}function oB(e,t=[]){const n=e%Tf,r=(e-n)/Tf;return t[0]=r,t[1]=n,t}function sB(e){const t=e%Tf;return[e-t,t]}function lB(e){return[...sB(e[0]),e[1]-e[0]]}function yy(e){const t=new _r([],JSON.stringify);for(const[n,r]of Object.entries(e)){const i=r.channelDef;if(Pi(i)){const o=[i.field,r.scale?(bt(r.scale.type)||Mi(r.scale.type))??!1:!1];t.set(o,[...t.get(o)??[],n])}}return t}function wy(e){return Lt(e).join("_")}const vy=1e4;class uB{constructor(t){ne(this,Pc);ne(this,Lc);ne(this,Gl,!1);this.size=t,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}configure(){if(W(this,Gl))throw new Error("Already configured!");ee(this,Pc,l_).call(this),ee(this,Lc,u_).call(this),Xe(this,Gl,!0)}addConverter(t,n){const r=this.createUpdater(e0+t,n.numComponents||1,n.targetArrayType??Float32Array,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?a=>r(i(a)):a=>r(i(a)))}createUpdater(t,n,r=Float32Array,i=void 0){if(!Ct(this.size))throw new Error("The number of vertices must be defined!");let a,o,s=0;const u=new r(this.size*n);if(this.arrays[t]={data:u,numComponents:n},n==1){let l=0;const f=c=>{l=+c};a=()=>{u[s++]=l},o=f}else{let l=i??[0];const f=i?c=>{}:c=>{l=c};switch(n){case 1:break;case 2:a=()=>{u[s++]=l[0],u[s++]=l[1]},o=f;break;case 3:a=()=>{u[s++]=l[0],u[s++]=l[1],u[s++]=l[2]},o=f;break;case 4:a=()=>{u[s++]=l[0],u[s++]=l[1],u[s++]=l[2],u[s++]=l[3]},o=f;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(a),o}pushAll(){throw new Error("Call configure() first!")}updateFromDatum(t){throw new Error("Call configure() first!")}pushFromDatum(t){this.updateFromDatum(t),this.pushAll()}}Gl=new WeakMap,Pc=new WeakSet,l_=function(){if(this.size>vy){const t=this.pushers.map((r,i)=>`const p${i} = that.pushers[${i}];`).join(`
200
+ `),n=this.pushers.map((r,i)=>` p${i}();`).join(`
201
+ `);this.pushAll=new Function("that",`${t}
202
+ return function unrolledPushAll() {
203
+ ${n}
204
+ that.vertexCount++;
205
+ };`)(this)}else this.pushAll=()=>{for(let t=0;t<this.pushers.length;t++)this.pushers[t]();this.vertexCount++}},Lc=new WeakSet,u_=function(){if(this.size>vy){const t=this.dataUpdaters.map((r,i)=>`const u${i} = that.dataUpdaters[${i}];`).join(`
206
+ `),n=this.dataUpdaters.map((r,i)=>` u${i}(datum);`).join(`
207
+ `);this.updateFromDatum=new Function("that","datum",`${t}
208
+ return function unrolledUpdateFromDatum(datum) {
209
+ ${n}
210
+ };`)(this)}else this.updateFromDatum=t=>{for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](t)}};const ja=5,r0=127;function i0(e){const t=[];for(let p=0;p<=r0;p++)t.push(void 0);const n=new Map;for(const p of e.chars)p.id<=r0?t[p.id]=p:n.set(p.id,p);const r=8722;n.has(r)||n.set(r,t["-".charCodeAt(0)]);function i(p){return(p<=r0?t[p]:n.get(p))||t[63]}function a(p){return i(p.charCodeAt(0))}const o=e.common.base,s=a("x"),u=a("X"),l=a("q"),f=s.height-ja*2,c=u.height-ja*2,h=l.height-s.height+l.yoffset-s.yoffset;function d(p,m=1){let y=0;for(let w=0;w<p.length;w++)y+=i(p.charCodeAt(w)).xadvance;return y/o*m}return{measureWidth:d,getCharByCode:i,getChar:a,xHeight:f,capHeight:c,descent:h,common:e.common}}const xy=2**31-1,fB=-(2**31);function cB(e,t,n,r=n){const i=new Array(e);i.fill(xy);let a=fB,o=-1/0,s=!1;const u=new Array(e);u.fill(0);const l=t[0],c=(t[1]-t[0])/e,h=(w,_)=>{const C=(w-l)/c,E=Math.floor(C);return xs(_&&E==C?E-1:E,0,e-1)};function d(w,_,C){if(s)return;if(_>a)a=_;else{s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}const E=n(w);if(E<o){s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}o=E;const k=h(E,!1);i[k]>_&&(i[k]=_),u[k]<C&&(u[k]=C)}function p(w,_,C){if(s)return;if(_>a)a=_;else{s=!0,console.debug("Items (vertices) are not ordered properly. Disabling binned index.");return}const E=n(w),k=r(w);if(E<o){s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}else if(k<E){s=!0,console.debug("End index is less than start index. Disabling binned index. Datum: ",w);return}o=E;const B=h(E,!1),I=h(k,!0);for(let R=B;R<=I;R++)i[R]>_&&(i[R]=_),u[R]<C&&(u[R]=C)}const m=(w,_,C=[0,0])=>{const E=h(w,!1),k=h(_,!0),B=i[E],I=Math.max(u[k],B);return C[0]=B,C[1]=I,C},y=()=>{if(s)return;for(let _=1;_<u.length;_++)u[_]<u[_-1]&&(u[_]=u[_-1]);let w=!0;for(let _=i.length-1;_>0;_--)w&&i[_]==xy?(i[_]=u[_],w=!1):i[_-1]>i[_]&&(i[_-1]=i[_]);return m};return d.getIndex=y,p.getIndex=y,n==r?d:p}class Gs{constructor({encoders:t,numVertices:n=void 0,attributes:r=[]}){this.encoders=t,this.variableEncoders=Object.fromEntries(Object.entries(t).filter(([a,o])=>r.includes(a)&&o&&o.scale&&!o.constant));const i=[...yy(t).entries()].filter(([a,o])=>a[1]&&o.length>1).map(([a,o])=>o);this.allocatedVertices=n,this.variableBuilder=new uB(n);for(const[a,o]of Object.entries(this.variableEncoders)){const s=i.find(m=>m.find(y=>y==a));if(s&&a!=s[0])continue;const u=o.accessor,l=Cf(o.scale.type),f=l&&by(o.scale.domain()),c=[0,0],h=o.indexer,d=h?m=>h(u(m)):f?m=>oB(u(m),c):u,p=s?wy(s):a;this.variableBuilder.addConverter(p,{f:d,numComponents:f?2:1,arrayReference:f?c:void 0,targetArrayType:Nn(o.scale.type)?Uint16Array:l?Uint32Array:Float32Array})}this.lastOffset=0,this.rangeMap=new _r([],JSON.stringify)}registerBatch(t){var a;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(t,{offset:n,count:i,xIndex:(a=this.xIndexer)==null?void 0:a.getIndex()}),this.lastOffset=r}addBatches(t){for(const[n,r]of t)this.addBatch(n,r)}addBatch(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.pushFromDatum(o),this.addToXIndex(o)}this.registerBatch(t)}prepareXIndexer(t,n=0,r=n+t.length){var l;const i=()=>{this.addToXIndex=f=>{},this.xIndexer=void 0},a=(l=this.encoders.x)==null?void 0:l.channelDef;if(!("buildIndex"in a)||!a.buildIndex||!t.length||r-n<0){i();return}const o=f=>{var c;return f&&bt((c=f.scale)==null?void 0:c.type)&&f},s=o(this.variableEncoders.x),u=o(this.variableEncoders.x2);if(s){const f=s.accessor,c=u?u.accessor:f,h=[f(t[n]),c(t[r-1])];if(h[1]>h[0]){this.xIndexer=cB(50,h,f,c);let d=this.variableBuilder.vertexCount;this.addToXIndex=p=>{let m=this.variableBuilder.vertexCount;this.xIndexer(p,d,m),d=m}}else i()}else i()}addToXIndex(t){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class hB extends Gs{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() {
211
+ pushAll(); pushAll(); pushAll(); pushAll(); pushAll(); pushAll();
212
+ };`)(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 a=r;a<i;a++){const o=n[a];this.variableBuilder.updateFromDatum(o),this.pushAllSixTimes(),this.addToXIndex(o)}this.registerBatch(t)}}}class dB extends Gs{constructor({encoders:t,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:a}){super({encoders:t,attributes:n,numVertices:r==1/0?a*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateSide=this.variableBuilder.createUpdater("side",1),this.updatePos=this.variableBuilder.createUpdater("pos",1),this.variableBuilder.configure()}addBatch(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.updateFromDatum(o),this.updateSide(-.5),this.updatePos(0),this.variableBuilder.pushAll();const s=1;for(let u=0;u<=s;u++)this.updatePos(u/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(o)}this.registerBatch(t)}}class pB extends Gs{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r}),this.variableBuilder.configure()}}class gB extends Gs{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 mB extends Gs{constructor({encoders:t,attributes:n,fontMetrics:r,properties:i,numCharacters:a=void 0}){super({encoders:t,attributes:n,numVertices:a*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=t.text.channelDef;this.numberFormat=!vn(s)&&"format"in s&&s.format?gt(s.format):u=>u,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 a=this.properties.align||"left",o=this.properties.logoLetters??!1,s=this.metadata.common.base,u=this.metadata.common.scaleH;let l=-ja;switch(this.properties.baseline){case"top":l+=this.metrics.capHeight;break;case"middle":l+=this.metrics.capHeight/2;break;case"bottom":l-=this.metrics.descent;break}const f=this.encoders.text.accessor||this.encoders.text,c=[0,0];this.updateVertexCoord(c);const h=[0,0];this.updateTextureCoord(h),this.prepareXIndexer(n,r,i);for(let d=r;d<i;d++){const p=n[d],m=this.numberFormat(f(p)),y=Pe(m)?m:m===null?"":""+m;if(y.length==0)continue;this.variableBuilder.updateFromDatum(p);const w=o?y.length:this.metrics.measureWidth(y);this.updateWidth(w);let _=a=="right"?-w:a=="center"?-w/2:0;if(!o){const B=this.metrics.getCharByCode(y.charCodeAt(0));_-=(B.width-B.xadvance)/s/2}let C=-.5,E=1,k=1;for(let B=0;B<y.length;B++){const I=this.metrics.getCharByCode(y.charCodeAt(B)),R=o?1:I.xadvance/s;if(I.id==32){_+=R;continue}o?(k=(I.width+ja*2)/I.width,_=-k/2,E=(I.height+ja*2)/I.height,C=-.5-ja/I.height):(E=I.height/s,C=-(I.height+I.yoffset+l)/s,k=I.width/s);const L=I.x,j=I.y;c[0]=_,c[1]=C+E,h[0]=L/u,h[1]=j/u,this.variableBuilder.pushAll(),c[0]=_+k,c[1]=C+E,h[0]=(L+I.width)/u,h[1]=j/u,this.variableBuilder.pushAll(),c[0]=_,c[1]=C,h[0]=L/u,h[1]=(j+I.height)/u,this.variableBuilder.pushAll(),c[0]=_+k,c[1]=C+E,h[0]=(L+I.width)/u,h[1]=j/u,this.variableBuilder.pushAll(),c[0]=_,c[1]=C,h[0]=L/u,h[1]=(j+I.height)/u,this.variableBuilder.pushAll(),c[0]=_+k,c[1]=C,h[0]=(L+I.width)/u,h[1]=(j+I.height)/u,this.variableBuilder.pushAll(),_+=R}this.addToXIndex(p)}this.registerBatch(t)}}const Ay=`#define PI 3.141593
213
+ uniform View{mediump vec2 uViewOffset;mediump vec2 uViewScale;mediump vec2 uViewportSize;lowp float uDevicePixelRatio;lowp float uViewOpacity;bool uPickingEnabled;};/***Maps a coordinate on the unit scale to a normalized device coordinate.*(0,0)is at the bottom left corner.*/vec4 unitToNdc(vec2 coord){return vec4((coord*uViewScale+uViewOffset)*2.0-1.0,0.0,1.0);}vec4 unitToNdc(float x,float y){return unitToNdc(vec2(x,y));}vec4 pixelsToNdc(vec2 coord){return unitToNdc(coord/uViewportSize);}vec4 pixelsToNdc(float x,float y){return pixelsToNdc(vec2(x,y));}float linearstep(float edge0,float edge1,float x){return clamp((x-edge0)/(edge1-edge0),0.0,1.0);}/***Specialized linearstep for doing antialiasing*/float distanceToRatio(float d){return clamp(d*uDevicePixelRatio+0.5,0.0,1.0);}vec4 distanceToColor(float d,vec4 fill,vec4 stroke,float halfStrokeWidth){if(halfStrokeWidth>0.0){float sd=abs(d)-halfStrokeWidth;return mix(stroke,d<=0.0 ? fill : vec4(0.0),distanceToRatio(sd));}else{return fill*distanceToRatio(-d);}}`,bB="uniform highp float uZero;vec3 getDiscreteColor(sampler2D s,int index){return texelFetch(s,ivec2(index % textureSize(s,0).x,0),0).rgb;}vec3 getInterpolatedColor(sampler2D s,float unitValue){return texture(s,vec2(unitValue,0.0)).rgb;}float clampToRange(float value,vec2 range){return clamp(value,min(range[0],range[1]),max(range[0],range[1]));}float scaleIdentity(float value){return value;}float scaleIdentity(uint value){return float(value);}float scaleLinear(float value,vec2 domain,vec2 range){float domainSpan=domain[1]-domain[0];float rangeSpan=range[1]-range[0];return(value-domain[0])/domainSpan*rangeSpan+range[0];}float scaleLog(float value,vec2 domain,vec2 range,float base){return scaleLinear(log(value)/log(base),log(domain)/log(base),range);}float symlog(float value,float constant){return sign(value)*log(abs(value/constant)+1.0);}float scaleSymlog(float value,vec2 domain,vec2 range,float constant){return scaleLinear(symlog(value,constant),vec2(symlog(domain[0],constant),symlog(domain[1],constant)),range);}float scalePow(float value,vec2 domain,vec2 range,float exponent){return scaleLinear(pow(abs(value),exponent)*sign(value),pow(abs(domain),vec2(exponent))*sign(domain),range);}float scaleBand(uint value,vec2 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;float n=domainExtent[1]-domainExtent[0];paddingInner=int(n)>1 ? paddingInner : 0.0;float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);return start+(float(value)-domainExtent[0])*step+bandwidth*band;}const int lowBits=12;const float lowDivisor=pow(2.0,float(lowBits));const uint lowMask=uint(lowDivisor-1.0);vec2 splitUint(uint value){uint valueLo=value&lowMask;uint valueHi=value-valueLo;return vec2(float(valueHi),float(valueLo));}/***High precision variant of scaleBand for index/locus scales*/float scaleBandHp(uint value,vec3 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;vec2 domainStart=domainExtent.xy;float n=domainExtent[2];float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);vec2 splitValue=splitUint(value);float inf=1.0/uZero;float hi=max(splitValue[0]-domainStart[0],-inf);float lo=max(splitValue[1]-domainStart[1],-inf);return dot(vec4(start,hi,lo,bandwidth),vec4(1.0,step,step,band));}/***High precision variant of scaleBand for index/locus scales for large*domains where 32bit uints are not sufficient to represent the domain.*/float scaleBandHp(uvec2 value,vec3 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;vec2 domainStart=domainExtent.xy;float n=domainExtent[2];float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);vec2 splitValue=vec2(float(value[0])*lowDivisor,float(value[1]));float inf=1.0/uZero;float hi=max(splitValue[0]-domainStart[0],-inf);float lo=max(splitValue[1]-domainStart[1],-inf);return dot(vec4(start,hi,lo,bandwidth),vec4(1.0,step,step,band));}",yB=`/***Describes where a sample facet should be shown. Interpolating between the*current and target positions/heights allows for transitioning between facet*configurations.*/struct SampleFacetPosition{float pos;float height;float targetPos;float targetHeight;};/***Trasition fraction[0,1]between the current and target configurations.*/uniform float uTransitionOffset;
209
214
  #if !defined(SAMPLE_FACET_UNIFORM) && !defined(SAMPLE_FACET_TEXTURE)
210
215
  SampleFacetPosition getSampleFacetPos(){return SampleFacetPosition(0.0,1.0,0.0,1.0);}
211
216
  #elif defined(SAMPLE_FACET_UNIFORM)
@@ -213,37 +218,37 @@ SampleFacetPosition getSampleFacetPos(){return SampleFacetPosition(0.0,1.0,0.0,1
213
218
  #elif defined(SAMPLE_FACET_TEXTURE)
214
219
  uniform sampler2D uSampleFacetTexture;SampleFacetPosition getSampleFacetPos(){vec4 texel=texelFetch(uSampleFacetTexture,ivec2(int(attr_facetIndex),0),0);return SampleFacetPosition(1.0-texel.r-texel.g,texel.g,1.0-texel.r-texel.g,texel.g);}
215
220
  #endif
216
- bool isFacetedSamples(SampleFacetPosition facetPos){return facetPos!=SampleFacetPosition(0.0,1.0,0.0,1.0);}bool isFacetedSamples(){return isFacetedSamples(getSampleFacetPos());}bool isInTransit(){return uTransitionOffset>0.0;}float getTransitionFraction(float xPos){return smoothstep(0.0,0.7+uTransitionOffset,(xPos-uTransitionOffset)*2.0);}vec2 applySampleFacet(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return pos;}else if(isInTransit()){vec2 interpolated=mix(vec2(facetPos.pos,facetPos.height),vec2(facetPos.targetPos,facetPos.targetHeight),getTransitionFraction(pos.x));return vec2(pos.x,interpolated[0]+pos.y*interpolated[1]);}else{return vec2(pos.x,facetPos.pos+pos.y*facetPos.height);}}float getSampleFacetHeight(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return 1.0;}else if(isInTransit()){return mix(facetPos.height,facetPos.targetHeight,getTransitionFraction(pos.x));}else{return facetPos.height;}}`,cB=`/**Based on concepts presented at:*https:*https:*/out highp vec4 vPickingColor;/***Passes the unique id to the fragment shader as a color if picking is enabled.*Returns true if picking is enabled.*/bool setupPicking(){if(uPickingEnabled){
221
+ bool isFacetedSamples(SampleFacetPosition facetPos){return facetPos!=SampleFacetPosition(0.0,1.0,0.0,1.0);}bool isFacetedSamples(){return isFacetedSamples(getSampleFacetPos());}bool isInTransit(){return uTransitionOffset>0.0;}float getTransitionFraction(float xPos){return smoothstep(0.0,0.7+uTransitionOffset,(xPos-uTransitionOffset)*2.0);}vec2 applySampleFacet(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return pos;}else if(isInTransit()){vec2 interpolated=mix(vec2(facetPos.pos,facetPos.height),vec2(facetPos.targetPos,facetPos.targetHeight),getTransitionFraction(pos.x));return vec2(pos.x,interpolated[0]+pos.y*interpolated[1]);}else{return vec2(pos.x,facetPos.pos+pos.y*facetPos.height);}}float getSampleFacetHeight(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return 1.0;}else if(isInTransit()){return mix(facetPos.height,facetPos.targetHeight,getTransitionFraction(pos.x));}else{return facetPos.height;}}`,wB=`/**Based on concepts presented at:*https:*https:*/out highp vec4 vPickingColor;/***Passes the unique id to the fragment shader as a color if picking is enabled.*Returns true if picking is enabled.*/bool setupPicking(){if(uPickingEnabled){
217
222
  #ifdef uniqueId_DEFINED
218
223
  int id=int(getScaled_uniqueId());vPickingColor=vec4(ivec4(id>>0,id>>8,id>>16,0xFF)&0xFF)/float(0xFF);
219
224
  #else
220
225
  vPickingColor=vec4(1.0);
221
226
  #endif
222
- return true;}return false;}`,hB="in highp vec4 vPickingColor;",Sf=Symbol("cacheMap");function Zo(e,t,n){let r=Hs(e).get(t);return r===void 0&&(r=n(t),Hs(e).set(t,r)),r}function wy(e,t){Hs(e).delete(t)}function Cf(e,t){const n=Hs(e);for(const r of n.keys())r.startsWith(t)&&n.delete(r);Hs(e).delete(t)}function vy(e){e[Sf]=new Map}function Hs(e){return e[Sf]||vy(e),e[Sf]}function dB(e,t,n,r){const i=Pe(e)?e:e.name,o=!Pe(e)&&e.extent||[0,1];if(n===void 0&&!Pe(e)&&(n=e.count),i){const a=gd(i);if(Mt(a)){const s=xy(a,{extent:o,count:n});return kf(t,{minMag:t.LINEAR,format:t.RGB,height:1,wrap:t.CLAMP_TO_EDGE},s,r)}else{if(Ft(a))return t0(a,t);throw new Error("Unknown scheme: "+i)}}}function pB(e,t="rgb",n,r){const i=Ku(e,Pe(t)?t:t.type,Pe(t)?void 0:t.gamma),o=xy(i);return kf(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},o,r)}function gB(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 kf(t,{minMag:t.NEAREST,format:t.RED,internalFormat:t.R32F,height:1},o,r)}function t0(e,t,n,r){const i=Ay(e,n);return kf(t,{minMag:t.NEAREST,format:t.RGB,height:1},i,r)}function xy(e,{extent:t=[0,1],reverse:n=!1,count:r=256}={}){const i=t[0],o=ds(t)-i,a=ja(r).map(s=>s/(r-1)).map(s=>i+s/o).map(e);return n&&a.reverse(),Ay(a)}function Ay(e,t){const n=Math.max(e.length,t||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const o=Fr(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 mB{constructor(t,n,r){this._container=t,this._sizeSource=n??(()=>({width:void 0,height:void 0})),this._shaderCache=new Map,this.rangeTextures=new WeakMap;const i=document.createElement("canvas");t.appendChild(i);const o=VI(i,{antialias:!0,depth:!1,premultipliedAlpha:!0});if(!o)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!Lo(o))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");if(sy(o),o.blendFunc(o.ONE,o.ONE_MINUS_SRC_ALPHA),this.canvas=i,this.gl=o,this._pickingAttachmentOptions=[{format:o.RGBA,type:o.UNSIGNED_BYTE,minMag:o.LINEAR,wrap:o.CLAMP_TO_EDGE}],this._pickingBufferInfo=NI(o,this._pickingAttachmentOptions),o.bindFramebuffer(o.FRAMEBUFFER,null),this.adjustGl(),this._updateDpr(),this._clearColor=[0,0,0,0],r){const a=Fr(r).rgb();this._clearColor=[a.r/255,a.g/255,a.b/255,a.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;";Ft(n)&&(n=n.join(`
227
+ return true;}return false;}`,vB="in highp vec4 vPickingColor;",kf=Symbol("cacheMap");function qa(e,t,n){let r=Hs(e).get(t);return r===void 0&&(r=n(t),Hs(e).set(t,r)),r}function Ey(e,t){Hs(e).delete(t)}function If(e,t){const n=Hs(e);for(const r of n.keys())r.startsWith(t)&&n.delete(r);Hs(e).delete(t)}function _y(e){e[kf]=new Map}function Hs(e){return e[kf]||_y(e),e[kf]}function xB(e,t,n,r){const i=Pe(e)?e:e.name,a=!Pe(e)&&e.extent||[0,1];if(n===void 0&&!Pe(e)&&(n=e.count),i){const o=vd(i);if(Mt(o)){const s=Sy(o,{extent:a,count:n});return Bf(t,{minMag:t.LINEAR,format:t.RGB,height:1,wrap:t.CLAMP_TO_EDGE},s,r)}else{if(Ft(o))return a0(o,t);throw new Error("Unknown scheme: "+i)}}}function AB(e,t="rgb",n,r){const i=Ju(e,Pe(t)?t:t.type,Pe(t)?void 0:t.gamma),a=Sy(i);return Bf(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},a,r)}function EB(e,t,n,r){const i=Math.max(e.length,n||0),a=new Float32Array(i);for(let o=0;o<i;o++)a[o]=e[o%e.length];return Bf(t,{minMag:t.NEAREST,format:t.RED,internalFormat:t.R32F,height:1},a,r)}function a0(e,t,n,r){const i=Cy(e,n);return Bf(t,{minMag:t.NEAREST,format:t.RGB,height:1},i,r)}function Sy(e,{extent:t=[0,1],reverse:n=!1,count:r=256}={}){const i=t[0],a=ds(t)-i,o=jo(r).map(s=>s/(r-1)).map(s=>i+s/a).map(e);return n&&o.reverse(),Cy(o)}function Cy(e,t){const n=Math.max(e.length,t||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const a=Rr(e[i%e.length]).rgb();r[i*3+0]=a.r,r[i*3+1]=a.g,r[i*3+2]=a.b}return r}class _B{constructor(t,n,r){this._container=t,this._sizeSource=n??(()=>({width:void 0,height:void 0})),this._shaderCache=new Map,this.rangeTextures=new WeakMap;const i=document.createElement("canvas");t.appendChild(i);const a=QI(i,{antialias:!0,depth:!1,premultipliedAlpha:!0});if(!a)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!Pa(a))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");if(cy(a),a.blendFunc(a.ONE,a.ONE_MINUS_SRC_ALPHA),this.canvas=i,this.gl=a,this._pickingAttachmentOptions=[{format:a.RGBA,type:a.UNSIGNED_BYTE,minMag:a.LINEAR,wrap:a.CLAMP_TO_EDGE}],this._pickingBufferInfo=VI(a,this._pickingAttachmentOptions),a.bindFramebuffer(a.FRAMEBUFFER,null),this.adjustGl(),this._updateDpr(),this._clearColor=[0,0,0,0],r){const o=Rr(r).rgb();this._clearColor=[o.r/255,o.g/255,o.b/255,o.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;";Ft(n)&&(n=n.join(`
223
228
 
224
- `));const o=this.gl,a=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let s=this._shaderCache.get(a);if(!s){const u=[r,i,n].join(`
229
+ `));const a=this.gl,o=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let s=this._shaderCache.get(o);if(!s){const u=[r,i,n].join(`
225
230
 
226
- `);s=o.createShader(t),o.shaderSource(s,u),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,OI(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 Lr(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(Ni(o)){const a=t.getScaleProps(),s=t.getScale(),u=s.range();let l;if(a.scheme)if(s.type=="threshold"&&u)l=t0(u,this.gl,s.domain().length,r);else{let f=Pe(a.scheme)?void 0:a.scheme.count;f=i(f,s),l=dB(a.scheme,this.gl,f,r)}else $u(s.type)||bt(s.type)&&u.length>2?l=pB(u,a.interpolate,this.gl,r):l=t0(u,this.gl,s.domain().length,r);this.rangeTextures.set(t,l)}else{const a=t.getScale();if(a.type==="ordinal"||Mi(a.type)){const s=ef(o)?Qb(o):l=>l,u=t.getScale().range();this.rangeTextures.set(t,gB(u.map(s),this.gl,a.domain().length,r))}}}}function bB(e,t="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...t.matchAll(r)],o=new Map(i.map((a,s)=>{const u=parseInt(a[1]),l=i[s+1],f=l?l.index:t.length,c=t.substring(a.index,f);return[u-1,c]}));return e.split(`
227
- `).map((a,s)=>{const u=o.get(s);return`${s+1+n}: ${a}${u?`
231
+ `);s=a.createShader(t),a.shaderSource(s,u),a.compileShader(s),this._shaderCache.set(o,s)}return s}adjustGl(){const t=this.getLogicalCanvasSize();this.canvas.style.width=`${t.width}px`,this.canvas.style.height=`${t.height}px`;const n=this.getPhysicalCanvasSize(t);this.canvas.width=n.width,this.canvas.height=n.height,jI(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,a=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(t,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,a),r.bindFramebuffer(r.FRAMEBUFFER,null),a}clearAll(){const t=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();t.viewport(0,0,n,r),t.disable(t.SCISSOR_TEST),t.clearColor(...this._clearColor),t.clear(t.COLOR_BUFFER_BIT)}createRangeTexture(t,n=!1){const r=this.rangeTextures.get(t);if(!n&&r)return;function i(o,s){return Nn(s.type)?s.domain().length:s.type=="threshold"?s.domain().length+1:s.type=="quantize"||s.type=="quantile"?o??4:o}const a=t.channel;if(Ni(a)){const o=t.getScaleProps(),s=t.getScale(),u=s.range();let l;if(o.scheme)if(s.type=="threshold"&&u)l=a0(u,this.gl,s.domain().length,r);else{let f=Pe(o.scheme)?void 0:o.scheme.count;f=i(f,s),l=xB(o.scheme,this.gl,f,r)}else Ku(s.type)||bt(s.type)&&u.length>2?l=AB(u,o.interpolate,this.gl,r):l=a0(u,this.gl,s.domain().length,r);this.rangeTextures.set(t,l)}else{const o=t.getScale();if(o.type==="ordinal"||Mi(o.type)){const s=nf(a)?Jb(a):l=>l,u=t.getScale().range();this.rangeTextures.set(t,EB(u.map(s),this.gl,o.domain().length,r))}}}}function SB(e,t="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...t.matchAll(r)],a=new Map(i.map((o,s)=>{const u=parseInt(o[1]),l=i[s+1],f=l?l.index:t.length,c=t.substring(o.index,f);return[u-1,c]}));return e.split(`
232
+ `).map((o,s)=>{const u=a.get(s);return`${s+1+n}: ${o}${u?`
228
233
 
229
234
  ^^^ ${u}`:""}`}).join(`
230
- `)}function yB(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 u of[t,n])e.getShaderParameter(u,e.COMPILE_STATUS)||(o=e.getShaderInfoLog(u),a=bB(e.getShaderSource(u),o,0)+`
231
- Error compiling: ${o}`,e.deleteShader(u));e.deleteProgram(r)}if(o)return{message:o,detail:a}}return{program:r,getProgramErrors:i}}function kf(e,t,n,r){return r?S2(e,r,n,t):r=Us(e,{...t,src:n}),r}function wB(...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 vB(e){return Pe(e)||Ct(e)||Ga(e)}class qi extends Error{constructor(t,n){super(t),this.name="ViewError",this.view=n}}const xB="SAMPLE_FACET_UNIFORM",Ey="SAMPLE_FACET_TEXTURE";class Vs{constructor(t){this.unitView=t,this.encoders=void 0,this.bufferInfo=void 0,this.programInfo=void 0,this.vertexArrayInfo=void 0,this.domainUniformInfo=void 0,this.viewUniformInfo=void 0,this.markUniformInfo=void 0,this.markUniformsAltered=!0,this.rangeMap=new AB,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=wB(typeof this.unitView.spec.mark=="object"?()=>this.unitView.spec.mark:()=>({}),()=>this.defaultProperties)}get opaque(){return!1}getAttributes(){throw new Error("Not implemented!")}getSupportedChannels(){return["sample","facetIndex","x","y","color","opacity","search","uniqueId"]}getDefaultEncoding(){const t={sample:void 0,uniqueId:void 0};return this.isPickingParticipant()&&(t.uniqueId={field:"_uniqueId"}),t}fixEncoding(t){return t}get encoding(){return Zo(this,"encoding",()=>{const t=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=a=>{const s=this.properties[a];return vB(s)&&{value:s}},i=Object.fromEntries(this.getSupportedChannels().map(a=>[a,r(a)]).filter(a=>a[1].value!==void 0)),o=this.fixEncoding({...t,...i,...n});for(const a of Object.keys(o))this.getSupportedChannels().includes(a)||delete o[a];return o})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=Q8(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return Ey;if(this.unitView.getLayoutAncestors().find(t=>"samples"in t.spec))return xB}createAndLinkShaders(t,n,r=[]){const i=this.getAttributes(),o="// view: "+this.unitView.getPathString();this.domainUniforms=[];let a=[];const s=new Set,u=gy(this.encoders),l=this.getSampleFacetMode();l&&r.push(`#define ${l}`);for(const b of i){let y;if(b in this.encoding)y=b;else continue;const w=this.encoding[y];if(w)if(vn(w))a.push(YI(y,w.value));else{const _=Ut(w)&&w.resolutionChannel||y,C=Oi(_)?this.unitView.getScaleResolution(_).getScale():Ju(),E=Pi(w)?u.get([w.field,!0]):[y],T=QI(y,C,w,E);a.push(T.glsl),T.domainUniform&&this.domainUniforms.push(T.domainUniform),T.attributeGlsl&&s.add(T.attributeGlsl)}}const f=this.domainUniforms.length?`layout(std140) uniform Domains {
232
- `+this.domainUniforms.map(b=>` ${b}
235
+ `)}function CB(e,t,n){const r=e.createProgram();e.attachShader(r,t),e.attachShader(r,n),e.linkProgram(r);function i(){let a,o;if(!e.getProgramParameter(r,e.LINK_STATUS)){a=e.getProgramInfoLog(r);for(const u of[t,n])e.getShaderParameter(u,e.COMPILE_STATUS)||(a=e.getShaderInfoLog(u),o=SB(e.getShaderSource(u),a,0)+`
236
+ Error compiling: ${a}`,e.deleteShader(u));e.deleteProgram(r)}if(a)return{message:a,detail:o}}return{program:r,getProgramErrors:i}}function Bf(e,t,n,r){return r?I2(e,r,n,t):r=Us(e,{...t,src:n}),r}function TB(...e){const t={get(n,r,i){for(const a of e){const s=a()[r];if(s!==void 0)return s}},has(n,r,i){for(const a of e){const o=a();if(r in o)return!0}return!1}};return new Proxy({},t)}function kB(e){return Pe(e)||Ct(e)||Go(e)}class qi extends Error{constructor(t,n){super(t),this.name="ViewError",this.view=n}}const IB="SAMPLE_FACET_UNIFORM",Ty="SAMPLE_FACET_TEXTURE";class Vs{constructor(t){this.unitView=t,this.encoders=void 0,this.bufferInfo=void 0,this.programInfo=void 0,this.vertexArrayInfo=void 0,this.domainUniformInfo=void 0,this.viewUniformInfo=void 0,this.markUniformInfo=void 0,this.markUniformsAltered=!0,this.rangeMap=new BB,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=TB(typeof this.unitView.spec.mark=="object"?()=>this.unitView.spec.mark:()=>({}),()=>this.defaultProperties)}get opaque(){return!1}getAttributes(){throw new Error("Not implemented!")}getSupportedChannels(){return["sample","facetIndex","x","y","color","opacity","search","uniqueId"]}getDefaultEncoding(){const t={sample:void 0,uniqueId:void 0};return this.isPickingParticipant()&&(t.uniqueId={field:"_uniqueId"}),t}fixEncoding(t){return t}get encoding(){return qa(this,"encoding",()=>{var o;const t=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=s=>{const u=this.properties[s];return kB(u)&&{value:u}},i=Object.fromEntries(this.getSupportedChannels().map(s=>[s,r(s)]).filter(s=>s[1].value!==void 0)),a=this.fixEncoding({...t,...i,...n});for(const s of Object.keys(a))this.getSupportedChannels().includes(s)||delete a[s];return a.x&&((o=a.x).buildIndex??(o.buildIndex=!0)),a})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=t5(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return Ty;if(this.unitView.getLayoutAncestors().find(t=>"samples"in t.spec))return IB}createAndLinkShaders(t,n,r=[]){const i=this.getAttributes(),a="// view: "+this.unitView.getPathString();this.domainUniforms=[];let o=[];const s=new Set,u=yy(this.encoders),l=this.getSampleFacetMode();l&&r.push(`#define ${l}`);for(const m of i){let y;if(m in this.encoding)y=m;else continue;const w=this.encoding[y];if(w)if(vn(w))o.push(eB(y,w.value));else{const _=Ut(w)&&w.resolutionChannel||y,C=Oi(_)?this.unitView.getScaleResolution(_).getScale():ef(),E=Pi(w)?u.get([w.field,!0]):[y],k=tB(y,C,w,E!=null&&E.includes(y)?E:[y]);o.push(k.glsl),k.domainUniform&&this.domainUniforms.push(k.domainUniform),k.attributeGlsl&&s.add(k.attributeGlsl)}}const f=this.domainUniforms.length?`layout(std140) uniform Domains {
237
+ `+this.domainUniforms.map(m=>` ${m}
233
238
  `).join("")+`};
234
239
 
235
240
  `:"",h=[`precision highp float;
236
- `,o,...r,yy,uB,f,[...s].join(`
237
- `),...a,fB,cB,t],d=[o,...r,yy,hB,n],p=this.gl;this.programStatus=yB(p,this.glHelper.compileShader(p.VERTEX_SHADER,h),this.glHelper.compileShader(p.FRAGMENT_SHADER,d))}finalizeGraphicsInitialization(){const t=this.programStatus.getProgramErrors();if(t){t.detail&&console.warn(t.detail);const n=new Error("Cannot create shader program: "+t.message);throw n.view=this.unitView,n}this.programInfo=vI(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=jd(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=jd(this.gl,this.programInfo,"View"),this.markUniformInfo=jd(this.gl,this.programInfo,"Mark"),this.gl.useProgram(this.programInfo.program),this._setDatums(),Gi(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0,uZero:0})}registerMarkUniform(t,n,r=i=>i){const i=this.markUniformInfo.setters[t];if(_y(n)){const o=this.unitView.context.paramBroker.createExpression(n.expr),a=()=>{i(r(o(null))),this.markUniformsAltered=!0};o.addListener(a),a()}else i(r(n)),this.markUniformsAltered=!0}_setDatums(){for(const[t,n]of Object.entries(this.encoding))if(Fs(n)){const r=this.encoders[t],i=r.indexer?r.indexer(n.datum):_f(r.scale.type)?py(+n.datum):+n.datum;Gi(this.programInfo,{[Xd+t]:i})}}deleteGraphicsData(){if(this.bufferInfo){const t=this.gl;for(let n=0;n<8;n++)t.disableVertexAttribArray(n);Object.values(this.bufferInfo.attribs).forEach(n=>this.gl.deleteBuffer(n.buffer)),this.bufferInfo.indices&&this.gl.deleteBuffer(this.bufferInfo.indices),this.bufferInfo=void 0}}updateBufferInfo(t){if(this.gl.bindVertexArray(null),this.bufferInfo&&t.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(t.arrays))r.data&&R5(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=L5(this.gl,t.arrays,{numElements:t.vertexCount}),this.bufferInfo.allocatedVertices=t.allocatedVertices,this.vertexArrayInfo=void 0}get glHelper(){return this.getContext().glHelper}get gl(){return this.glHelper.gl}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}isReady(){return this.bufferInfo&&this.programInfo}isPickingParticipant(){if(this.properties.tooltip===null)return!1;for(const t of this.unitView.getLayoutAncestors())if(!t.isPickingSupported())return!1;return!0}bindOrSetMarkUniformBlock(){this.markUniformsAltered?(qd(this.gl,this.programInfo,this.markUniformInfo),this.markUniformsAltered=!1):K2(this.gl,this.programInfo,this.markUniformInfo)}prepareRender(t){const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=zI(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[a,s]of Object.entries(this.domainUniformInfo.setters)){const u=a.substring(ly.length),l=this.encoding[u],f=Ut(l)&&l.resolutionChannel||u;if(Oi(f)){const c=this.unitView.getScaleResolution(f).getScale();i.push(()=>{const h=Lr(c.type)?[0,c.domain().length]:c.domain();s(_f(c.type)?eB(h):h)})}}i.push(()=>qd(r,this.programInfo,this.domainUniformInfo))}for(const[a,s]of Object.entries(this.encoding))if(Ut(s)){const u=Ut(s)&&s.resolutionChannel||a;if(Oi(u)){const l=this.unitView.getScaleResolution(u),f=n.rangeTextures.get(l);f&&i.push(()=>Gi(this.programInfo,{[$d+a]:f}))}}this.getSampleFacetMode()==Ey&&i.push(()=>{let a;for(const s of this.unitView.getLayoutAncestors())if(a=s.getSampleFacetTexture(),a)break;if(!a)throw new Error("No facet texture available. This is bug.");Gi(this.programInfo,{uSampleFacetTexture:a})});const o=(t.picking??!1)&&this.isPickingParticipant();return i.push(()=>jo(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:o})),this.opaque||t.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(t){const n=t.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,o=n.locSize?n.locSize.size:1;if(i>1||i+o<0)return!1;const a=n.targetLocSize?n.targetLocSize.location:i,s=n.targetLocSize?n.targetLocSize.size:o;this.gl.uniform4f(r.location,i,o,a,s)}return!0}render(t){}createRenderCallback(t,n){var c;if(!this.bufferInfo)throw new qi(`${this.getType()} mark has no data. This is bug.`,this.unitView);const r=this;let i;const o=(c=this.unitView.getScaleResolution("x"))==null?void 0:c.getScale(),a=o&&bt(o.type),s=["index","locus"].includes(o==null?void 0:o.type)?-1:0,u=[0,0];i=h=>{if(a&&h.xIndex){const d=o.domain(),p=h.xIndex(d[0]+s,d[1],u),b=p[0],y=p[1]-b;y>0&&t(b,y)}else t(h.offset,h.count)};const l=this.rangeMap.get(void 0).count==0?n.facetId:void 0,f=this.rangeMap.get(l);return n.sampleFacetRenderingOptions?function(){f.count&&r.prepareSampleFacetRendering(n)&&i(f)}:function(){f.count&&i(f)}}setViewport(t,n){t=t.flatten();const r=this.unitView.context.devicePixelRatio,i=this.gl,o=this.properties,a=this.glHelper.getLogicalCanvasSize(),s=.5,u=(o.xOffset??0)+s,l=(o.yOffset??0)+s;let f,c=t;if(o.clip!=="never"&&(o.clip||n)){let h=0,d=0,p;if(n){if(c=t.intersect(n).flatten(),!c.isDefined())return!1;p=[t.width/c.width,t.height/c.height],d=Math.max(0,t.y2-n.y2),h=Math.min(0,t.x-n.x)}else p=[1,1];const b=[c.x,a.height-c.y2,c.width,c.height].map(C=>C*r),y=b.map(C=>Math.round(C)),[w,_]=b.map((C,E)=>C-y[E]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),f={uViewOffset:[(u+h+w/r)/c.width,-(l+d-_/r)/c.height],uViewScale:p}}else{if(!t.isDefined())return!1;i.viewport(0,0,a.width*r,a.height*r),i.disable(i.SCISSOR_TEST),f={uViewOffset:[(t.x+u)/a.width,(a.height-t.y-l-t.height)/a.height],uViewScale:[t.width/a.width,t.height/a.height]}}return jo(this.viewUniformInfo,{...f,uViewportSize:[t.width,t.height],uDevicePixelRatio:r}),qd(this.gl,this.programInfo,this.viewUniformInfo),!0}findDatumAt(t,n){}}class AB extends Er{constructor(){super([],JSON.stringify)}get(t){let n=super.get(t);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(t,n)),n}migrateEntries(t){for(const[n,r]of t.entries())Object.assign(this.get(n),r)}}function _y(e){return typeof e=="object"&&"expr"in e&&Pe(e.expr)}function n0(e,t){const n=J8(t);let r=e[t]&&{...e[t]},i=e[n]&&{...e[n]};if(!(vn(r)||vn(i))){if(r){if(!Ut(e[t]))return;if(i){if(r.type!="quantitative"){const o=(1-(r.band||1))/2;r.band=o,i.band=-o}}else if(r.type=="quantitative")i={datum:0};else{i={...r};const o=(1-(r.band??1))/2;r.band=0+o,i.band=1-o}}else r={value:0},i={value:1};e[t]=r,e[n]=i}}function Sy(e,t){e.stroke||(t?e.stroke={value:null}:e.stroke={resolutionChannel:"color",...e.color}),vn(e.stroke)&&e.stroke.value===null&&(e.strokeWidth={value:0}),e.strokeOpacity||(e.strokeOpacity={resolutionChannel:"opacity",...e.opacity})}function Cy(e,t){vn(e.fill)&&e.fill.value===null?e.fillOpacity={value:0}:e.fill||(e.fill={resolutionChannel:"color",...e.color},!t&&!e.fillOpacity&&(e.fillOpacity={value:0})),e.fillOpacity||(t?e.fillOpacity={resolutionChannel:"opacity",...e.opacity}:e.fillOpacity={value:0})}class EB extends Vs{constructor(n){super(n);re(this,Gl);re(this,Hl);Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,filled:!0,color:"#4c78a8",opacity:1,strokeWidth:3,cornerRadius:0,minWidth:.5,minHeight:.5,minOpacity:1,tessellationZoomThreshold:10,tessellationTiles:35}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}get opaque(){return Zo(this,"opaque",()=>!te(this,Gl,Pg).call(this)&&!te(this,Hl,Lg).call(this)&&vn(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(n){return n0(n,"x"),n0(n,"y"),Sy(n,this.properties.filled),Cy(n,this.properties.filled),delete n.color,delete n.opacity,n}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}async initializeGraphics(){await super.initializeGraphics();const n=[];te(this,Gl,Pg).call(this)&&n.push("ROUNDED_CORNERS"),te(this,Hl,Lg).call(this)&&n.push("STROKED"),this.createAndLinkShaders(jI,qI,n.map(r=>"#define "+r))}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const n=this.properties;this.registerMarkUniform("uMinWidth",n.minWidth),this.registerMarkUniform("uMinHeight",n.minHeight),this.registerMarkUniform("uMinOpacity",n.minOpacity),this.registerMarkUniform("uCornerRadiusTopRight",n.cornerRadiusTopRight??n.cornerRadius??0),this.registerMarkUniform("uCornerRadiusBottomRight",n.cornerRadiusBottomRight??n.cornerRadius??0),this.registerMarkUniform("uCornerRadiusTopLeft",n.cornerRadiusTopLeft??n.cornerRadius??0),this.registerMarkUniform("uCornerRadiusBottomLeft",n.cornerRadiusBottomLeft??n.cornerRadius??0)}updateGraphicsData(){const n=this.unitView.getCollector(),r=n.getItemCount(),i=new iB({encoders:this.encoders,attributes:this.getAttributes(),numItems:r});i.addBatches(n.facetBatches);const o=i.toArrays();this.rangeMap.migrateEntries(o.rangeMap),this.updateBufferInfo(o)}prepareRender(n){const r=super.prepareRender(n);return r.push(()=>this.bindOrSetMarkUniformBlock()),r.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),r}render(n){const r=this.gl;return this.createRenderCallback((i,o)=>{Af(r,this.vertexArrayInfo,r.TRIANGLE_STRIP,o,i)},n)}findDatumAt(n,r){n=Lt(n);const i=this.unitView.getCollector().facetBatches.get(n);if(!i)return;const o=this.encoders,a=o.x.scale.type;if(Lr(a)){const s=o.x.accessor;return i.find(u=>r==s(u))}else{const s=o.x.accessor,u=o.x2.accessor;return i.find(l=>r>=s(l)&&r<u(l))}}}Gl=new WeakSet,Pg=function(){const n=this.properties;return n.cornerRadius||n.cornerRadiusBottomLeft||n.cornerRadiusBottomRight||n.cornerRadiusTopLeft||n.cornerRadiusTopRight},Hl=new WeakSet,Lg=function(){const n=this.encoding.strokeWidth;return!(vn(n)&&!n.value)};const _B=`out float vRadius;out float vRadiusWithPadding;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out lowp float vShape;out lowp float vHalfStrokeWidth;out mat2 vRotationMatrix;const float CIRCLE=0.0;const float SQUARE=1.0;const float CROSS=2.0;const float DIAMOND=3.0;const float TRIANGLE_UP=4.0;const float TRIANGLE_RIGHT=5.0;const float TRIANGLE_DOWN=6.0;const float TRIANGLE_LEFT=7.0;const float TICK_UP=8.0;const float TICK_RIGHT=9.0;const float TICK_DOWN=10.0;const float TICK_LEFT=11.0;float computeSemanticThresholdFactor(){return getScaled_semanticScore()>=uSemanticThreshold ? 1.0 : 0.0;}/***Computes a scaling factor for the points in a sample-faceted view.*/float getDownscaleFactor(vec2 pos){if(!isFacetedSamples()){return 1.0;}float sampleFacetHeight=getSampleFacetHeight(pos);float maxPointDiameter=sqrt(uMaxPointSize);float factor=sampleFacetHeight*uViewportSize.y*uMaxRelativePointDiameter;return clamp(0.0,maxPointDiameter,factor)/maxPointDiameter;}vec2 getDxDy(){
241
+ `,a,...r,Ay,bB,f,[...s].join(`
242
+ `),...o,yB,wB,t],d=[a,...r,Ay,vB,n],p=this.gl;this.programStatus=CB(p,this.glHelper.compileShader(p.VERTEX_SHADER,h),this.glHelper.compileShader(p.FRAGMENT_SHADER,d))}finalizeGraphicsInitialization(){const t=this.programStatus.getProgramErrors();if(t){t.detail&&console.warn(t.detail);const n=new Error("Cannot create shader program: "+t.message);throw n.view=this.unitView,n}this.programInfo=CI(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=Yd(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=Yd(this.gl,this.programInfo,"View"),this.markUniformInfo=Yd(this.gl,this.programInfo,"Mark"),this.gl.useProgram(this.programInfo.program),this._setDatums(),Gi(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0,uZero:0})}registerMarkUniform(t,n,r=i=>i){const i=this.markUniformInfo.setters[t];if(ky(n)){const a=this.unitView.context.paramBroker.createExpression(n.expr),o=()=>{i(r(a(null))),this.markUniformsAltered=!0};a.addListener(o),o()}else i(r(n)),this.markUniformsAltered=!0}_setDatums(){for(const[t,n]of Object.entries(this.encoding))if(Fs(n)){const r=this.encoders[t],i=r.indexer?r.indexer(n.datum):Cf(r.scale.type)?aB(+n.datum):+n.datum;Gi(this.programInfo,{[e0+t]:i})}}deleteGraphicsData(){if(this.bufferInfo){const t=this.gl;for(let n=0;n<8;n++)t.disableVertexAttribArray(n);Object.values(this.bufferInfo.attribs).forEach(n=>this.gl.deleteBuffer(n.buffer)),this.bufferInfo.indices&&this.gl.deleteBuffer(this.bufferInfo.indices),this.bufferInfo=void 0}}updateBufferInfo(t){if(this.gl.bindVertexArray(null),this.bufferInfo&&t.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(t.arrays))r.data&&z5(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=H5(this.gl,t.arrays,{numElements:t.vertexCount}),this.bufferInfo.allocatedVertices=t.allocatedVertices,this.vertexArrayInfo=void 0}get glHelper(){return this.getContext().glHelper}get gl(){return this.glHelper.gl}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}isReady(){return this.bufferInfo&&this.programInfo}isPickingParticipant(){if(this.properties.tooltip===null)return!1;for(const t of this.unitView.getLayoutAncestors())if(!t.isPickingSupported())return!1;return!0}bindOrSetMarkUniformBlock(){this.markUniformsAltered?(Qd(this.gl,this.programInfo,this.markUniformInfo),this.markUniformsAltered=!1):ny(this.gl,this.programInfo,this.markUniformInfo)}prepareRender(t){const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=qI(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[o,s]of Object.entries(this.domainUniformInfo.setters)){const u=o.substring(hy.length),l=this.encoding[u],f=Ut(l)&&l.resolutionChannel||u;if(Oi(f)){const c=this.unitView.getScaleResolution(f).getScale();i.push(()=>{const h=Nn(c.type)?[0,c.domain().length]:c.domain();s(Cf(c.type)?lB(h):h)})}}i.push(()=>Qd(r,this.programInfo,this.domainUniformInfo))}for(const[o,s]of Object.entries(this.encoding))if(Ut(s)){const u=Ut(s)&&s.resolutionChannel||o;if(Oi(u)){const l=this.unitView.getScaleResolution(u),f=n.rangeTextures.get(l);f&&i.push(()=>Gi(this.programInfo,{[t0+o]:f}))}}this.getSampleFacetMode()==Ty&&i.push(()=>{let o;for(const s of this.unitView.getLayoutAncestors())if(o=s.getSampleFacetTexture(),o)break;if(!o)throw new Error("No facet texture available. This is bug.");Gi(this.programInfo,{uSampleFacetTexture:o})});const a=(t.picking??!1)&&this.isPickingParticipant();return i.push(()=>Va(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:a})),this.opaque||t.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(t){const n=t.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,a=n.locSize?n.locSize.size:1;if(i>1||i+a<0)return!1;const o=n.targetLocSize?n.targetLocSize.location:i,s=n.targetLocSize?n.targetLocSize.size:a;this.gl.uniform4f(r.location,i,a,o,s)}return!0}render(t){}createRenderCallback(t,n){var c;if(!this.bufferInfo)throw new qi(`${this.getType()} mark has no data. This is bug.`,this.unitView);const r=this;let i;const a=(c=this.unitView.getScaleResolution("x"))==null?void 0:c.getScale(),o=a&&bt(a.type),s=["index","locus"].includes(a==null?void 0:a.type)?-1:0,u=[0,0];i=h=>{if(o&&h.xIndex){const d=a.domain(),p=h.xIndex(d[0]+s,d[1],u),m=p[0],y=p[1]-m;y>0&&t(m,y)}else t(h.offset,h.count)};const l=this.rangeMap.get(void 0).count==0?n.facetId:void 0,f=this.rangeMap.get(l);return n.sampleFacetRenderingOptions?function(){f.count&&r.prepareSampleFacetRendering(n)&&i(f)}:function(){f.count&&i(f)}}setViewport(t,n){t=t.flatten();const r=this.unitView.context.devicePixelRatio,i=this.gl,a=this.properties,o=this.glHelper.getLogicalCanvasSize(),s=.5,u=(a.xOffset??0)+s,l=(a.yOffset??0)+s;let f,c=t;if(a.clip!=="never"&&(a.clip||n)){let h=0,d=0,p;if(n){if(c=t.intersect(n).flatten(),!c.isDefined())return!1;p=[t.width/c.width,t.height/c.height],d=Math.max(0,t.y2-n.y2),h=Math.min(0,t.x-n.x)}else p=[1,1];const m=[c.x,o.height-c.y2,c.width,c.height].map(C=>C*r),y=m.map(C=>Math.round(C)),[w,_]=m.map((C,E)=>C-y[E]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),f={uViewOffset:[(u+h+w/r)/c.width,-(l+d-_/r)/c.height],uViewScale:p}}else{if(!t.isDefined())return!1;i.viewport(0,0,o.width*r,o.height*r),i.disable(i.SCISSOR_TEST),f={uViewOffset:[(t.x+u)/o.width,(o.height-t.y-l-t.height)/o.height],uViewScale:[t.width/o.width,t.height/o.height]}}return Va(this.viewUniformInfo,{...f,uViewportSize:[t.width,t.height],uDevicePixelRatio:r}),Qd(this.gl,this.programInfo,this.viewUniformInfo),!0}findDatumAt(t,n){}}class BB extends _r{constructor(){super([],JSON.stringify)}get(t){let n=super.get(t);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(t,n)),n}migrateEntries(t){for(const[n,r]of t.entries())Object.assign(this.get(n),r)}}function ky(e){return typeof e=="object"&&"expr"in e&&Pe(e.expr)}function o0(e,t){const n=a5(t);let r=e[t]&&{...e[t]},i=e[n]&&{...e[n]};if(!(vn(r)||vn(i))){if(r){if(!Ut(e[t]))return;if(i){if(r.type!="quantitative"){const a=(1-(r.band||1))/2;r.band=a,i.band=-a}}else if(r.type=="quantitative")i={datum:0};else{i={...r};const a=(1-(r.band??1))/2;r.band=0+a,i.band=1-a}}else r={value:0},i={value:1};e[t]=r,e[n]=i}}function Iy(e,t){e.stroke||(t?e.stroke={value:null}:e.stroke={resolutionChannel:"color",...e.color}),vn(e.stroke)&&e.stroke.value===null&&(e.strokeWidth={value:0}),e.strokeOpacity||(e.strokeOpacity={resolutionChannel:"opacity",...e.opacity})}function By(e,t){vn(e.fill)&&e.fill.value===null?e.fillOpacity={value:0}:e.fill||(e.fill={resolutionChannel:"color",...e.color},!t&&!e.fillOpacity&&(e.fillOpacity={value:0})),e.fillOpacity||(t?e.fillOpacity={resolutionChannel:"opacity",...e.opacity}:e.fillOpacity={value:0})}class DB extends Vs{constructor(n){super(n);ne(this,Hl);ne(this,Vl);Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,filled:!0,color:"#4c78a8",opacity:1,strokeWidth:3,cornerRadius:0,minWidth:.5,minHeight:.5,minOpacity:1,tessellationZoomThreshold:10,tessellationTiles:35}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}get opaque(){return qa(this,"opaque",()=>!ee(this,Hl,zg).call(this)&&!ee(this,Vl,Ug).call(this)&&vn(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(n){return o0(n,"x"),o0(n,"y"),Iy(n,this.properties.filled),By(n,this.properties.filled),delete n.color,delete n.opacity,n}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}async initializeGraphics(){await super.initializeGraphics();const n=[];ee(this,Hl,zg).call(this)&&n.push("ROUNDED_CORNERS"),ee(this,Vl,Ug).call(this)&&n.push("STROKED"),this.createAndLinkShaders($I,XI,n.map(r=>"#define "+r))}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const n=this.properties;this.registerMarkUniform("uMinWidth",n.minWidth),this.registerMarkUniform("uMinHeight",n.minHeight),this.registerMarkUniform("uMinOpacity",n.minOpacity),this.registerMarkUniform("uCornerRadiusTopRight",n.cornerRadiusTopRight??n.cornerRadius??0),this.registerMarkUniform("uCornerRadiusBottomRight",n.cornerRadiusBottomRight??n.cornerRadius??0),this.registerMarkUniform("uCornerRadiusTopLeft",n.cornerRadiusTopLeft??n.cornerRadius??0),this.registerMarkUniform("uCornerRadiusBottomLeft",n.cornerRadiusBottomLeft??n.cornerRadius??0)}updateGraphicsData(){const n=this.unitView.getCollector(),r=n.getItemCount(),i=new hB({encoders:this.encoders,attributes:this.getAttributes(),numItems:r});i.addBatches(n.facetBatches);const a=i.toArrays();this.rangeMap.migrateEntries(a.rangeMap),this.updateBufferInfo(a)}prepareRender(n){const r=super.prepareRender(n);return r.push(()=>this.bindOrSetMarkUniformBlock()),r.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),r}render(n){const r=this.gl;return this.createRenderCallback((i,a)=>{_f(r,this.vertexArrayInfo,r.TRIANGLE_STRIP,a,i)},n)}findDatumAt(n,r){n=Lt(n);const i=this.unitView.getCollector().facetBatches.get(n);if(!i)return;const a=this.encoders,o=a.x.scale.type;if(Nn(o)){const s=a.x.accessor;return i.find(u=>r==s(u))}else{const s=a.x.accessor,u=a.x2.accessor;return i.find(l=>r>=s(l)&&r<u(l))}}}Hl=new WeakSet,zg=function(){const n=this.properties;return n.cornerRadius||n.cornerRadiusBottomLeft||n.cornerRadiusBottomRight||n.cornerRadiusTopLeft||n.cornerRadiusTopRight},Vl=new WeakSet,Ug=function(){const n=this.encoding.strokeWidth;return!(vn(n)&&!n.value)};const FB=`out float vRadius;out float vRadiusWithPadding;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out lowp float vShape;out lowp float vHalfStrokeWidth;out mat2 vRotationMatrix;const float CIRCLE=0.0;const float SQUARE=1.0;const float CROSS=2.0;const float DIAMOND=3.0;const float TRIANGLE_UP=4.0;const float TRIANGLE_RIGHT=5.0;const float TRIANGLE_DOWN=6.0;const float TRIANGLE_LEFT=7.0;const float TICK_UP=8.0;const float TICK_RIGHT=9.0;const float TICK_DOWN=10.0;const float TICK_LEFT=11.0;float computeSemanticThresholdFactor(){return getScaled_semanticScore()>=uSemanticThreshold ? 1.0 : 0.0;}/***Computes a scaling factor for the points in a sample-faceted view.*/float getDownscaleFactor(vec2 pos){if(!isFacetedSamples()){return 1.0;}float sampleFacetHeight=getSampleFacetHeight(pos);float maxPointDiameter=sqrt(uMaxPointSize);float factor=sampleFacetHeight*uViewportSize.y*uMaxRelativePointDiameter;return clamp(0.0,maxPointDiameter,factor)/maxPointDiameter;}vec2 getDxDy(){
238
243
  #if defined(dx_DEFINED) || defined(dy_DEFINED)
239
244
  return vec2(getScaled_dx(),getScaled_dy())/uViewportSize;
240
245
  #else
241
246
  return vec2(0.0,0.0);
242
247
  #endif
243
- }void main(void){float shapeAngle=0.0;float semanticThresholdFactor=computeSemanticThresholdFactor();if(semanticThresholdFactor<=0.0){gl_PointSize=0.0;gl_Position=vec4(100.0,0.0,0.0,0.0);return;}float size=getScaled_size();vec2 pos=vec2(getScaled_x(),getScaled_y())+getDxDy();gl_Position=unitToNdc(applySampleFacet(pos));float strokeWidth=getScaled_strokeWidth();float diameter=sqrt(size)*uScaleFactor*semanticThresholdFactor*getDownscaleFactor(pos);float opacity=uViewOpacity;if(strokeWidth<=0.0||uInwardStroke){float minDiameter=1.0/uDevicePixelRatio;if(diameter<minDiameter){opacity*=pow(diameter/minDiameter,2.5);diameter=minDiameter;}}float fillOpa=getScaled_fillOpacity()*opacity;float strokeOpa=getScaled_strokeOpacity()*opacity;vShape=getScaled_shape();bool circle=vShape==0.0;if(vShape>TICK_UP&&vShape<=TICK_LEFT){shapeAngle=(vShape-TICK_UP)*90.0;vShape=TICK_UP;}else if(vShape>TRIANGLE_UP&&vShape<=TRIANGLE_LEFT){shapeAngle=(vShape-TRIANGLE_UP)*90.0;vShape=TRIANGLE_UP;}float angleInDegrees=getScaled_angle();float angle=-(shapeAngle+angleInDegrees)*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);vRotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);float roomForRotation=circle ? 1.0 : sin(mod(angle,PI/2.0)+PI/4.0)/sin(PI/4.0);float aaPadding=1.0/uDevicePixelRatio;float rotationPadding=(diameter*roomForRotation)-diameter;float strokePadding=uInwardStroke ? 0.0 : strokeWidth*(circle ? 1.0 : sqrt(3.0));float padding=rotationPadding+strokePadding+aaPadding;gl_PointSize=(diameter+padding)*uDevicePixelRatio;vRadius=diameter/2.0;vRadiusWithPadding=vRadius+padding/2.0;vHalfStrokeWidth=strokeWidth/2.0;vFillColor=vec4(getScaled_fill()*fillOpa,fillOpa);vStrokeColor=vec4(getScaled_stroke()*strokeOpa,strokeOpa);setupPicking();}`,SB="const lowp vec4 white=vec4(1.0);const lowp vec4 black=vec4(0.0,0.0,0.0,1.0);in float vRadius;in float vRadiusWithPadding;in lowp vec4 vFillColor;in lowp vec4 vStrokeColor;in lowp float vShape;in lowp float vHalfStrokeWidth;in mat2 vRotationMatrix;out lowp vec4 fragColor;const float CIRCLE=0.0;const float SQUARE=1.0;const float CROSS=2.0;const float DIAMOND=3.0;const float TRIANGLE_UP=4.0;const float TICK_UP=8.0;float circle(vec2 p,float r){return length(p)-r;}float square(vec2 p,float r){p=abs(p);return max(p.x,p.y)-r;}float tickUp(vec2 p,float r){float halfR=r*0.5;p.y+=halfR;p=abs(p);return max(p.x-r*0.15,p.y-halfR);}float equilateralTriangle(vec2 p,float r){p.y=-p.y;float k=sqrt(3.0);float kr=k*r;p.y-=kr/2.0;return max((abs(p.x)*k+p.y)/2.0,-p.y-kr);}float crossShape(vec2 p,float r){p=abs(p);vec2 b=vec2(0.4,1.0)*r;vec2 v=abs(p)-b.xy;vec2 h=abs(p)-b.yx;return min(max(v.x,v.y),max(h.x,h.y));}float diamond(vec2 p,float r){p=abs(p);return(max(abs(p.x-p.y),abs(p.x+p.y))-r)/sqrt(2.0);}void main(){float d;vec2 p=vRotationMatrix*(2.0*gl_PointCoord-1.0)*vRadiusWithPadding;float r=vRadius;if(vShape==CIRCLE){d=circle(p,r);}else if(vShape==SQUARE){d=square(p,r);}else if(vShape==CROSS){d=crossShape(p,r);}else if(vShape==DIAMOND){d=diamond(p,r);}else if(vShape==TRIANGLE_UP){d=equilateralTriangle(p,r);}else if(vShape==TICK_UP){d=tickUp(p,r);}else{d=0.0;}if(!uPickingEnabled){lowp vec4 fillColor=mix(vFillColor,white,-d*uGradientStrength/vRadius);fragColor=distanceToColor(d+(uInwardStroke ? vHalfStrokeWidth : 0.0),fillColor,vStrokeColor,vHalfStrokeWidth);}else if(d-vHalfStrokeWidth<=0.0){fragColor=vPickingColor;}else{discard;}}",CB="uniform Mark{/***The stroke should only grow inwards,e.g,the diameter/outline is not affected by the stroke width.*Thus,a point that has a zero size has no visible stroke. This allows strokes to be used with*geometric zoom,etc.*/uniform bool uInwardStroke;uniform lowp float uMaxRelativePointDiameter;uniform mediump float uScaleFactor;uniform mediump float uMaxPointSize;uniform mediump float uZoomLevel;uniform highp float uSemanticThreshold;uniform mediump float uGradientStrength;};",On=1,Vr=2,r0=4,kB={};class et{get behavior(){return 0}constructor(){this.children=[],this.parent=void 0,this.completed=!1}reset(){this.completed=!1;for(const t of this.children)t.reset()}initialize(){}_updatePropagator(){this._propagate=Function("children",ja(this.children.length).map(t=>`const child${t} = children[${t}];`).join(`
244
- `)+`return function propagate(datum) {${ja(this.children.length).map(t=>`child${t}.handle(datum);`).join(`
248
+ }void main(void){float shapeAngle=0.0;float semanticThresholdFactor=computeSemanticThresholdFactor();if(semanticThresholdFactor<=0.0){gl_PointSize=0.0;gl_Position=vec4(100.0,0.0,0.0,0.0);return;}float size=getScaled_size();vec2 pos=vec2(getScaled_x(),getScaled_y())+getDxDy();gl_Position=unitToNdc(applySampleFacet(pos));float strokeWidth=getScaled_strokeWidth();float diameter=sqrt(size)*uScaleFactor*semanticThresholdFactor*getDownscaleFactor(pos);float opacity=uViewOpacity;if(strokeWidth<=0.0||uInwardStroke){float minDiameter=1.0/uDevicePixelRatio;if(diameter<minDiameter){opacity*=pow(diameter/minDiameter,2.5);diameter=minDiameter;}}float fillOpa=getScaled_fillOpacity()*opacity;float strokeOpa=getScaled_strokeOpacity()*opacity;vShape=getScaled_shape();bool circle=vShape==0.0;if(vShape>TICK_UP&&vShape<=TICK_LEFT){shapeAngle=(vShape-TICK_UP)*90.0;vShape=TICK_UP;}else if(vShape>TRIANGLE_UP&&vShape<=TRIANGLE_LEFT){shapeAngle=(vShape-TRIANGLE_UP)*90.0;vShape=TRIANGLE_UP;}float angleInDegrees=getScaled_angle();float angle=-(shapeAngle+angleInDegrees)*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);vRotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);float roomForRotation=circle ? 1.0 : sin(mod(angle,PI/2.0)+PI/4.0)/sin(PI/4.0);float aaPadding=1.0/uDevicePixelRatio;float rotationPadding=(diameter*roomForRotation)-diameter;float strokePadding=uInwardStroke ? 0.0 : strokeWidth*(circle ? 1.0 : sqrt(3.0));float padding=rotationPadding+strokePadding+aaPadding;gl_PointSize=(diameter+padding)*uDevicePixelRatio;vRadius=diameter/2.0;vRadiusWithPadding=vRadius+padding/2.0;vHalfStrokeWidth=strokeWidth/2.0;vFillColor=vec4(getScaled_fill()*fillOpa,fillOpa);vStrokeColor=vec4(getScaled_stroke()*strokeOpa,strokeOpa);setupPicking();}`,RB="const lowp vec4 white=vec4(1.0);const lowp vec4 black=vec4(0.0,0.0,0.0,1.0);in float vRadius;in float vRadiusWithPadding;in lowp vec4 vFillColor;in lowp vec4 vStrokeColor;in lowp float vShape;in lowp float vHalfStrokeWidth;in mat2 vRotationMatrix;out lowp vec4 fragColor;const float CIRCLE=0.0;const float SQUARE=1.0;const float CROSS=2.0;const float DIAMOND=3.0;const float TRIANGLE_UP=4.0;const float TICK_UP=8.0;float circle(vec2 p,float r){return length(p)-r;}float square(vec2 p,float r){p=abs(p);return max(p.x,p.y)-r;}float tickUp(vec2 p,float r){float halfR=r*0.5;p.y+=halfR;p=abs(p);return max(p.x-r*0.15,p.y-halfR);}float equilateralTriangle(vec2 p,float r){p.y=-p.y;float k=sqrt(3.0);float kr=k*r;p.y-=kr/2.0;return max((abs(p.x)*k+p.y)/2.0,-p.y-kr);}float crossShape(vec2 p,float r){p=abs(p);vec2 b=vec2(0.4,1.0)*r;vec2 v=abs(p)-b.xy;vec2 h=abs(p)-b.yx;return min(max(v.x,v.y),max(h.x,h.y));}float diamond(vec2 p,float r){p=abs(p);return(max(abs(p.x-p.y),abs(p.x+p.y))-r)/sqrt(2.0);}void main(){float d;vec2 p=vRotationMatrix*(2.0*gl_PointCoord-1.0)*vRadiusWithPadding;float r=vRadius;if(vShape==CIRCLE){d=circle(p,r);}else if(vShape==SQUARE){d=square(p,r);}else if(vShape==CROSS){d=crossShape(p,r);}else if(vShape==DIAMOND){d=diamond(p,r);}else if(vShape==TRIANGLE_UP){d=equilateralTriangle(p,r);}else if(vShape==TICK_UP){d=tickUp(p,r);}else{d=0.0;}if(!uPickingEnabled){lowp vec4 fillColor=mix(vFillColor,white,-d*uGradientStrength/vRadius);fragColor=distanceToColor(d+(uInwardStroke ? vHalfStrokeWidth : 0.0),fillColor,vStrokeColor,vHalfStrokeWidth);}else if(d-vHalfStrokeWidth<=0.0){fragColor=vPickingColor;}else{discard;}}",MB="uniform Mark{/***The stroke should only grow inwards,e.g,the diameter/outline is not affected by the stroke width.*Thus,a point that has a zero size has no visible stroke. This allows strokes to be used with*geometric zoom,etc.*/uniform bool uInwardStroke;uniform lowp float uMaxRelativePointDiameter;uniform mediump float uScaleFactor;uniform mediump float uMaxPointSize;uniform mediump float uZoomLevel;uniform highp float uSemanticThreshold;uniform mediump float uGradientStrength;};",Un=1,Vr=2,s0=4,PB={};class et{get behavior(){return 0}constructor(){this.children=[],this.parent=void 0,this.completed=!1}reset(){this.completed=!1;for(const t of this.children)t.reset()}initialize(){}_updatePropagator(){this._propagate=Function("children",jo(this.children.length).map(t=>`const child${t} = children[${t}];`).join(`
249
+ `)+`return function propagate(datum) {${jo(this.children.length).map(t=>`child${t}.handle(datum);`).join(`
245
250
  `)}}`)(this.children)}setParent(t){this.parent=t}addChild(t){if(t.parent)throw new Error("Cannot add the child! It already has a parent.");return this.children.push(t),t.setParent(this),this._updatePropagator(),this}adopt(t){t.parent&&t.parent.removeChild(t),this.addChild(t)}adoptChildrenOf(t){for(const n of t.children)this.adopt(n)}insertAsParent(t){if(this.isRoot())throw new Error("Cannot insert a new parent for a root node!");t.parent=this.parent,this.parent.children[this.parent.children.indexOf(this)]=t,this.parent._updatePropagator(),this.parent=void 0,t.addChild(this)}removeChild(t){const n=this.children.indexOf(t);if(n>-1)this.children.splice(n,1),t.parent=void 0,this._updatePropagator();else throw new Error("Trying to remove an unknown child node!")}excise(){if(this.isRoot())throw new Error("Cannot excise root node!");if(this.isTerminal())this.parent.removeChild(this);else if(this.children.length==1){const t=this.children[0];t.setParent(this.parent),this.parent.children[this.parent.children.indexOf(this)]=t,this.parent._updatePropagator(),this.setParent(void 0),this.children.length=0}else throw new Error("Cannot excise a node that has multiple children!")}isRoot(){return!this.parent}isBranching(){return this.children.length>1}isTerminal(){return this.children.length==0}visit(t){t(this);for(const n of this.children)n.visit(t);t.afterChildren&&t.afterChildren(this)}subtreeToString(t=0){const n=this.children.map(r=>r.subtreeToString(t+1)).join("");return`${" ".repeat(t*2)}* ${this.constructor.name}${("identifier"in this&&this.identifier?": "+this.identifier:"")??""}
246
- ${n}`}getGlobalObject(){return this.parent?this.parent.getGlobalObject():kB}handle(t){this._propagate(t)}complete(){this.completed=!0;for(const t of this.children)t.complete()}beginBatch(t){for(const n of this.children)n.beginBatch(t)}_propagate(t){}}function ky(e){return e.type=="file"}function TB(e){return e.type=="facet"}class Ty extends et{constructor(t){super(),this.k=t.size||500,this.reset()}reset(){super.reset(),this.reservoir=[],this.W=void 0,this.ingester=this._initialIngester}_initialIngester(t){this.reservoir.push(t),this.reservoir.length==this.k&&(this.W=Math.exp(Math.log(Math.random())/this.k),this.i=this.k,this.next=this.i,this.ingester=this._finalIngester,this._setNextStop())}_finalIngester(t){++this.i==this.next&&(this.reservoir[Math.floor(Math.random()*this.k)]=t,this.W*=Math.exp(Math.log(Math.random())/this.k),this._setNextStop())}_setNextStop(){this.next+=Math.floor(Math.log(Math.random())/Math.log(1-this.W))+1}handle(t){this.ingester(t)}complete(){for(const t of this.reservoir)this._propagate(t);super.complete()}}function IB(e,t,n){const r=new Ty({type:"sample",size:e});for(const i of t)r.handle(n(i));return r.complete(),r.reservoir}const BB={};class DB extends Vs{constructor(t){super(t),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,color:"#4c78a8",filled:!0,opacity:1,size:100,semanticScore:0,shape:"circle",strokeWidth:2,fillGradientStrength:0,dx:0,dy:0,angle:0,sampleFacetPadding:.1,semanticZoomFraction:.02}))}getAttributes(){return["inwardStroke","uniqueId","facetIndex","x","y","size","semanticScore","shape","strokeWidth","gradientStrength","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"size","semanticScore","shape","strokeWidth","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getDefaultEncoding(){return{...super.getDefaultEncoding(),...BB}}fixEncoding(t){return Sy(t,this.properties.filled),Cy(t,this.properties.filled),delete t.color,delete t.opacity,t}initializeData(){super.initializeData();const t=this.unitView.getAccessor("semanticScore");t&&(this.sampledSemanticScores=Float32Array.from(IB(1e4,this.unitView.getCollector().getData(),t)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(_B,SB,[CB])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;jo(this.markUniformInfo,{uInwardStroke:!!t.inwardStroke,uGradientStrength:+t.fillGradientStrength,uMaxRelativePointDiameter:1-2*t.sampleFacetPadding})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new aB({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}_getGeometricScaleFactor(){const t=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/t),1/3)}_getMaxPointSize(){const t=this.encoders.size;return t.constant?t(null):t.scale.range().reduce((n,r)=>Math.max(n,r))}getSemanticThreshold(){if(this.sampledSemanticScores){const t=Math.max(0,1-this.properties.semanticZoomFraction*this.unitView.getZoomLevel());if(t<=0)return-1/0;if(t>=1)return 1/0;{const n=this.sampledSemanticScores;return lm(n,t)}}else return-1}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>{jo(this.markUniformInfo,{uMaxPointSize:this._getMaxPointSize(),uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()}),this.markUniformsAltered=!0}),n.push(()=>this.bindOrSetMarkUniformBlock()),n.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&Af(n,this.vertexArrayInfo,n.POINTS,i,r)},t)}}const FB="const int BUTT=0;const int SQUARE=1;const int ROUND=2;in float pos;in float side;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;out highp vec2 vPosInPixels;void main(void){float pixelSize=1.0/uDevicePixelRatio;float size=getScaled_size();float opacity=getScaled_opacity()*uViewOpacity;if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()));vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()));vec2 tangent=b-a;float offset=0.0;float relativeDiff=0.0;if(uMinLength>0.0||uStrokeCap!=BUTT){float len=length(tangent*uViewportSize);float diff=max(0.0,uMinLength-len);if(uStrokeCap!=BUTT){diff+=size;}relativeDiff=diff/len;offset=relativeDiff*(pos-0.5);}vec2 p=pos<1.0? a+tangent*(pos+offset): b+tangent*offset;float aaPadding=pixelSize;vec2 normal=normalize(vec2(-tangent.y,tangent.x)/uViewportSize);p+=normal*side*(size+aaPadding)/uViewportSize;gl_Position=unitToNdc(p);vColor=vec4(getScaled_color()*opacity,opacity);vSize=size;vNormalLengthInPixels=side*(size+aaPadding);vPosInPixels=vec2(pos,(1.0-pos))*(1.0+relativeDiff)*length(tangent*uViewportSize)-vec2(uStrokeCap!=BUTT ? size/2.0 : 0.0);setupPicking();}",RB="const int BUTT=0;const int SQUARE=1;const int ROUND=2;uniform sampler2D uDashTexture;in vec4 vColor;in float vSize;in vec2 vPosInPixels;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distanceFromEnd=-min(vPosInPixels[0],vPosInPixels[1]);float distance;if(distanceFromEnd>0.0&&uStrokeCap==ROUND){distance=length(vec2(distanceFromEnd,vNormalLengthInPixels));}else{distance=abs(vNormalLengthInPixels);}float opacity=clamp(((vSize/2.0-distance)*dpr),-0.5,0.5)+0.5;if(uDashTextureSize>0.0){float pos=(vPosInPixels[0]+uStrokeDashOffset)*dpr;float floored=floor(pos);vec2 texelPositions=(floored+vec2(0.5,1.5))/dpr/uDashTextureSize;opacity*=mix(texture(uDashTexture,vec2(texelPositions[0],0)).r,texture(uDashTexture,vec2(texelPositions[1],0)).r,clamp((pos-floored),0.0,1.0));}fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}",MB="uniform Mark{uniform mediump float uMinLength;uniform mediump float uDashTextureSize;uniform lowp int uStrokeCap;uniform mediump float uStrokeDashOffset;};";class PB extends Vs{constructor(t){super(t),this.dashTextureSize=0,Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,size:1,color:"black",opacity:1,minLength:0,strokeDash:null,strokeDashOffset:0,strokeCap:"butt"}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(t){if(!(t.x&&t.y&&t.x2&&t.y2))if(t.x&&t.x2&&!t.y)t.y={value:.5},t.y2=t.y;else if(t.y&&t.y2&&!t.x)t.x={value:.5},t.x2=t.x;else if(t.x&&!t.y)t.y={value:0},t.y2={value:1},t.x2=t.x;else if(t.y&&!t.x)t.x={value:0},t.x2={value:1},t.y2=t.y;else if(t.x&&t.y&&t.y2)t.x2=t.x;else if(t.y&&t.x&&t.x2)t.y2=t.y;else if(t.y&&t.x)if(!t.x2&&Ut(t.y)&&t.y.type=="quantitative")t.x2=t.x,t.y2={datum:0};else if(!t.y2&&Ut(t.x)&&t.x.type=="quantitative")t.y2=t.y,t.x2={datum:0};else throw new Error("A bug!");else throw new Error("Invalid x and y encodings for rule mark: "+JSON.stringify(t));return t}async initializeGraphics(){if(await super.initializeGraphics(),this.properties.strokeDash){const t=this.gl,n=LB(this.properties.strokeDash);this.dashTexture=Us(t,{mag:t.NEAREST,min:t.NEAREST,internalFormat:t.R8,format:t.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(FB,RB,[MB])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniform("uMinLength",t.minLength),this.registerMarkUniform("uStrokeCap",t.strokeCap??"butt",n=>["butt","square","round"].indexOf(n)),jo(this.markUniformInfo,{uDashTextureSize:+this.dashTextureSize}),this.markUniformsAltered=!0}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new oB({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>this.bindOrSetMarkUniformBlock()),this.dashTexture&&n.push(()=>Gi(this.programInfo,{uDashTexture:this.dashTexture})),n.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Af(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),t)}}function LB(e){if(e.length==0||e.length%2||e.findIndex(o=>Math.round(o)!=o||o<1||o>1e3)>=0)throw new Error("Invalid stroke dash pattern: "+JSON.stringify(e));const t=e.reduce((o,a)=>o+a),n=new Uint8Array(t);let r=!0,i=0;for(let o of e){for(;o;)n[i++]=r&&255||0,o--;r=!r}return n}const NB="uniform Mark{uniform float uArcHeightFactor;uniform float uMinArcHeight;uniform float uMinPickingSize;uniform int uShape;uniform int uOrient;uniform bool uClampApex;uniform float uMaxChordLength;uniform vec2 uArcFadingDistance;};in vec2 strip;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;const int SHAPE_ARC=0;const int SHAPE_DOME=1;const int SHAPE_DIAGONAL=2;const int SHAPE_LINE=3;const int ORIENT_VERTICAL=0;const int ORIENT_HORIZONTAL=1;float distanceFromLine(vec2 pointOnLine1,vec2 pointOnLine2,vec2 point){vec2 a=point-pointOnLine1;vec2 b=pointOnLine2-pointOnLine1;vec2 proj=dot(a,b)/dot(b,b)*b;return length(a-proj);}bool isInsideViewport(vec2 point,float marginFactor){vec2 margin=uViewportSize*vec2(marginFactor);return point.x>=-margin.x&&point.x<=uViewportSize.x+margin.x&&point.y>=-margin.y&&point.y<=uViewportSize.y+margin.y;}void main(void){float pixelSize=1.0/uDevicePixelRatio;float opacity=getScaled_opacity()*uViewOpacity;vec2 p1,p2,p3,p4;vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()))*uViewportSize;vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()))*uViewportSize;if(uShape<=SHAPE_DOME){if(uShape==SHAPE_DOME){vec2 height=vec2(0.0);if(uOrient==ORIENT_VERTICAL){p1=vec2(min(a.x,b.x),b.y);p4=vec2(max(a.x,b.x),b.y);height=vec2(0.0,a.y-b.y);if(uClampApex){if(p4.x>0.0){p1.x=max(p1.x,-p4.x);}if(p1.x<uViewportSize.x){p4.x=min(p4.x,2.0*uViewportSize.x-p1.x);}}}else{p1=vec2(b.x,min(a.y,b.y));p4=vec2(b.x,max(a.y,b.y));height=vec2(a.x-b.x,0.0);if(uClampApex){if(p4.y>0.0){p1.y=max(p1.y,-p4.y);}if(p1.y<uViewportSize.y){p4.y=min(p4.y,2.0*uViewportSize.y-p1.y);}}}vec2 controlOffset=height/0.75;p2=p1+controlOffset;p3=p4+controlOffset;}if(uShape==SHAPE_ARC){p1=a;p4=b;vec2 chordVector=p4-p1;vec2 unitChordVector=normalize(chordVector);vec2 chordNormal=vec2(-unitChordVector.y,unitChordVector.x);float chordLength=length(chordVector);if(chordLength>uMaxChordLength){if(isInsideViewport(p1,2.0)){chordLength=uMaxChordLength;p4=p1+unitChordVector*uMaxChordLength;}else if(isInsideViewport(p4,2.0)){chordLength=uMaxChordLength;p1=p4-unitChordVector*uMaxChordLength;}}float height=max(chordLength/2.0*uArcHeightFactor,uMinArcHeight);vec2 controlOffset=chordNormal*height/0.75;p2=p1+controlOffset;p3=p4+controlOffset;}}else if(uShape==SHAPE_DIAGONAL){if(uOrient==ORIENT_VERTICAL){p1=a;p2=vec2(a.x,(a.y+b.y)/2.0);p3=vec2(b.x,(a.y+b.y)/2.0);p4=b;}else{p1=a;p2=vec2((a.x+b.x)/2.0,a.y);p3=vec2((a.x+b.x)/2.0,b.y);p4=b;}}else if(uShape==SHAPE_LINE){p1=a;p2=(a+b)/2.0;p3=p2;p4=b;}float t=smoothstep(0.0,1.0,strip.x);vec2 C1=p4-3.0*p3+3.0*p2-p1;vec2 C2=3.0*p3-6.0*p2+3.0*p1;vec2 C3=3.0*p2-3.0*p1;vec2 C4=p1;vec2 p;if(t==0.0){p=p1;}else if(t==1.0){p=p4;}else{p=C1*t*t*t+C2*t*t+C3*t+C4;}vec2 tangent=normalize(3.0*C1*t*t+2.0*C2*t+C3);vec2 normal=vec2(-tangent.y,tangent.x);float size=getScaled_size();if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}float paddedSize=uPickingEnabled? max(size,uMinPickingSize): size+pixelSize;vNormalLengthInPixels=strip.y*paddedSize;if(uShape==SHAPE_ARC&&uArcFadingDistance[0]>0.0&&uArcFadingDistance[1]>0.0){float d=distanceFromLine(p1,p4,p);float distanceOpacity=smoothstep(uArcFadingDistance[1],uArcFadingDistance[0],d);opacity*=distanceOpacity;if(distanceOpacity<=0.0){vNormalLengthInPixels=0.0;}}p+=normal*vNormalLengthInPixels;gl_Position=pixelsToNdc(p);vec3 color=getScaled_color();vColor=vec4(color*opacity,opacity);vSize=paddedSize;setupPicking();}",OB="in vec4 vColor;in float vSize;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distance=abs(vNormalLengthInPixels);float opacity=clamp(((vSize/2.0-distance)*dpr),0.0,1.0);fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}",zB=["arc","dome","diagonal","line"],UB=["vertical","horizontal"];class GB extends Vs{constructor(t){super(t),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:0,x2:void 0,y:0,y2:void 0,size:1,color:"black",opacity:1,segments:101,arcHeightFactor:1,minArcHeight:1.5,minPickingSize:3,clampApex:!1,maxChordLength:5e4,arcFadingDistance:!1,linkShape:"arc",orient:"vertical"})),this._baseInstanceExt=this.gl.getExtension("WEBGL_draw_instanced_base_vertex_base_instance")}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","height","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(t){return t.x2||(Ut(t.x)?t.x2={datum:0}:t.x2=t.x),t.y2||(Ut(t.y)?t.y2={datum:0}:t.y2=t.y),t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(NB,OB)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniform("uArcFadingDistance",t.arcFadingDistance,n=>n||[0,0]),this.registerMarkUniform("uArcHeightFactor",t.arcHeightFactor),this.registerMarkUniform("uMinArcHeight",t.minArcHeight),this.registerMarkUniform("uMinPickingSize",t.minPickingSize),this.registerMarkUniform("uShape",t.linkShape,n=>zB.indexOf(n)),this.registerMarkUniform("uOrient",t.orient,n=>UB.indexOf(n)),this.registerMarkUniform("uClampApex",t.clampApex,n=>!!n),this.registerMarkUniform("uMaxChordLength",t.maxChordLength)}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new sB({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();i.arrays.strip={data:HB(this.properties.segments),numComponents:2},this.rangeMap.migrateEntries(i.rangeMap),this.arrays=Object.fromEntries(Object.entries(i.arrays).map(([o,a])=>[o,{...a,data:void 0}])),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>this.bindOrSetMarkUniformBlock()),this._baseInstanceExt?n.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)):n.push(()=>this.gl.bindVertexArray(null)),n}render(t){const n=this.gl,r=(this.properties.segments+1)*2;return this._baseInstanceExt?this.createRenderCallback((i,o)=>{this._baseInstanceExt.drawArraysInstancedBaseInstanceWEBGL(n.TRIANGLE_STRIP,0,r,o,i)},t):this.createRenderCallback((i,o)=>{for(const a of Object.entries(this.bufferInfo.attribs)){const[s,u]=a;u.buffer&&u.numComponents&&u.divisor&&(u.offset=i*this.arrays[s].numComponents*4)}Hi(n,this.programInfo,this.bufferInfo),n.drawArraysInstanced(n.TRIANGLE_STRIP,0,r,o)},t)}}function HB(e){let t=0;const n=[];for(;t<=e;t++)n.push(t/e,.5),n.push(t/e,-.5);return n}const VB=`in mediump vec2 vertexCoord;in lowp vec2 textureCoord;in float width;out vec2 vTexCoord;out vec4 vColor;out float vSlope;out float vEdgeFadeOpacity;struct RangeResult{float pos;float scale;};float minValue(vec4 v){return min(min(v.x,v.y),min(v.z,v.w));}float maxValue(vec4 v){return max(max(v.x,v.y),max(v.z,v.w));}/***All measures are in[0,1]*/RangeResult positionInsideRange(float a,float b,float width,float padding,int align,bool flush){float span=b-a;float paddedWidth=width+2.0*padding;if(a>1.0||b<0.0){return RangeResult(0.0,0.0);}float extra=max(0.0,span-paddedWidth);float pos;if(align==0){float centre=a+b;if(flush){float leftOver=max(0.0,paddedWidth-centre);centre+=min(leftOver,extra);float rightOver=max(0.0,paddedWidth+centre-2.0);centre-=min(rightOver,extra);}pos=centre/2.0;}else if(align<0){float edge=a;if(flush){float over=max(0.0,-edge);edge+=min(over,extra);}pos=edge+padding;}else{float edge=b;if(flush){float over=max(0.0,edge-1.0);edge-=min(over,extra);}pos=edge-padding;}float scale=clamp((span-padding)/paddedWidth,0.0,1.0);return RangeResult(pos,scale);}vec2 calculateRotatedDimensions(float width,mat2 rotationMatrix){vec2 a=abs(rotationMatrix*vec2(width/2.0,0.5));vec2 b=abs(rotationMatrix*vec2(width/2.0,-0.5));return vec2(max(a.x,b.x),max(a.y,b.y))*2.0;}ivec2 fixAlignForAngle(ivec2 align,float angleInDegrees){float a=mod(angleInDegrees+45.0,360.0);int x=align.x;int y=-align.y;if(a<90.0){return ivec2(x,y);}else if(a<180.0){return ivec2(y,-x);}else if(a<270.0){return ivec2(-x,y);}else{return ivec2(-y,x);}}void main(void){float opacity=getScaled_opacity()*uViewOpacity;vec2 size=vec2(getScaled_size());float x=getScaled_x();float y=getScaled_y();float scale=1.0;float angleInDegrees=getScaled_angle();float angle=-angleInDegrees*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);mat2 rotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);vec2 flushSize=calculateRotatedDimensions(width,rotationMatrix);
251
+ ${n}`}getGlobalObject(){return this.parent?this.parent.getGlobalObject():PB}handle(t){this._propagate(t)}complete(){this.completed=!0;for(const t of this.children)t.complete()}beginBatch(t){for(const n of this.children)n.beginBatch(t)}_propagate(t){}}function Dy(e){return e.type=="file"}function LB(e){return e.type=="facet"}class Fy extends et{constructor(t){super(),this.k=t.size||500,this.reset()}reset(){super.reset(),this.reservoir=[],this.W=void 0,this.ingester=this._initialIngester}_initialIngester(t){this.reservoir.push(t),this.reservoir.length==this.k&&(this.W=Math.exp(Math.log(Math.random())/this.k),this.i=this.k,this.next=this.i,this.ingester=this._finalIngester,this._setNextStop())}_finalIngester(t){++this.i==this.next&&(this.reservoir[Math.floor(Math.random()*this.k)]=t,this.W*=Math.exp(Math.log(Math.random())/this.k),this._setNextStop())}_setNextStop(){this.next+=Math.floor(Math.log(Math.random())/Math.log(1-this.W))+1}handle(t){this.ingester(t)}complete(){for(const t of this.reservoir)this._propagate(t);super.complete()}}function NB(e,t,n){const r=new Fy({type:"sample",size:e});for(const i of t)r.handle(n(i));return r.complete(),r.reservoir}const OB={};class zB extends Vs{constructor(t){super(t),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,color:"#4c78a8",filled:!0,opacity:1,size:100,semanticScore:0,shape:"circle",strokeWidth:2,fillGradientStrength:0,dx:0,dy:0,angle:0,sampleFacetPadding:.1,semanticZoomFraction:.02}))}getAttributes(){return["inwardStroke","uniqueId","facetIndex","x","y","size","semanticScore","shape","strokeWidth","gradientStrength","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"size","semanticScore","shape","strokeWidth","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getDefaultEncoding(){return{...super.getDefaultEncoding(),...OB}}fixEncoding(t){return Iy(t,this.properties.filled),By(t,this.properties.filled),delete t.color,delete t.opacity,t}initializeData(){super.initializeData();const t=this.unitView.getAccessor("semanticScore");t&&(this.sampledSemanticScores=Float32Array.from(NB(1e4,this.unitView.getCollector().getData(),t)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(FB,RB,[MB])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Va(this.markUniformInfo,{uInwardStroke:!!t.inwardStroke,uGradientStrength:+t.fillGradientStrength,uMaxRelativePointDiameter:1-2*t.sampleFacetPadding})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new pB({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}_getGeometricScaleFactor(){const t=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/t),1/3)}_getMaxPointSize(){const t=this.encoders.size;return t.constant?t(null):t.scale.range().reduce((n,r)=>Math.max(n,r))}getSemanticThreshold(){if(this.sampledSemanticScores){const t=Math.max(0,1-this.properties.semanticZoomFraction*this.unitView.getZoomLevel());if(t<=0)return-1/0;if(t>=1)return 1/0;{const n=this.sampledSemanticScores;return hm(n,t)}}else return-1}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>{Va(this.markUniformInfo,{uMaxPointSize:this._getMaxPointSize(),uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()}),this.markUniformsAltered=!0}),n.push(()=>this.bindOrSetMarkUniformBlock()),n.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&_f(n,this.vertexArrayInfo,n.POINTS,i,r)},t)}}const UB="const int BUTT=0;const int SQUARE=1;const int ROUND=2;in float pos;in float side;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;out highp vec2 vPosInPixels;void main(void){float pixelSize=1.0/uDevicePixelRatio;float size=getScaled_size();float opacity=getScaled_opacity()*uViewOpacity;if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()));vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()));vec2 tangent=b-a;float offset=0.0;float relativeDiff=0.0;if(uMinLength>0.0||uStrokeCap!=BUTT){float len=length(tangent*uViewportSize);float diff=max(0.0,uMinLength-len);if(uStrokeCap!=BUTT){diff+=size;}relativeDiff=diff/len;offset=relativeDiff*(pos-0.5);}vec2 p=pos<1.0? a+tangent*(pos+offset): b+tangent*offset;float aaPadding=pixelSize;vec2 normal=normalize(vec2(-tangent.y,tangent.x)/uViewportSize);p+=normal*side*(size+aaPadding)/uViewportSize;gl_Position=unitToNdc(p);vColor=vec4(getScaled_color()*opacity,opacity);vSize=size;vNormalLengthInPixels=side*(size+aaPadding);vPosInPixels=vec2(pos,(1.0-pos))*(1.0+relativeDiff)*length(tangent*uViewportSize)-vec2(uStrokeCap!=BUTT ? size/2.0 : 0.0);setupPicking();}",GB="const int BUTT=0;const int SQUARE=1;const int ROUND=2;uniform sampler2D uDashTexture;in vec4 vColor;in float vSize;in vec2 vPosInPixels;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distanceFromEnd=-min(vPosInPixels[0],vPosInPixels[1]);float distance;if(distanceFromEnd>0.0&&uStrokeCap==ROUND){distance=length(vec2(distanceFromEnd,vNormalLengthInPixels));}else{distance=abs(vNormalLengthInPixels);}float opacity=clamp(((vSize/2.0-distance)*dpr),-0.5,0.5)+0.5;if(uDashTextureSize>0.0){float pos=(vPosInPixels[0]+uStrokeDashOffset)*dpr;float floored=floor(pos);vec2 texelPositions=(floored+vec2(0.5,1.5))/dpr/uDashTextureSize;opacity*=mix(texture(uDashTexture,vec2(texelPositions[0],0)).r,texture(uDashTexture,vec2(texelPositions[1],0)).r,clamp((pos-floored),0.0,1.0));}fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}",HB="uniform Mark{uniform mediump float uMinLength;uniform mediump float uDashTextureSize;uniform lowp int uStrokeCap;uniform mediump float uStrokeDashOffset;};";class VB extends Vs{constructor(t){super(t),this.dashTextureSize=0,Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,size:1,color:"black",opacity:1,minLength:0,strokeDash:null,strokeDashOffset:0,strokeCap:"butt"}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(t){if(!(t.x&&t.y&&t.x2&&t.y2))if(t.x&&t.x2&&!t.y)t.y={value:.5},t.y2=t.y;else if(t.y&&t.y2&&!t.x)t.x={value:.5},t.x2=t.x;else if(t.x&&!t.y)t.y={value:0},t.y2={value:1},t.x2=t.x;else if(t.y&&!t.x)t.x={value:0},t.x2={value:1},t.y2=t.y;else if(t.x&&t.y&&t.y2)t.x2=t.x;else if(t.y&&t.x&&t.x2)t.y2=t.y;else if(t.y&&t.x)if(!t.x2&&Ut(t.y)&&t.y.type=="quantitative")t.x2=t.x,t.y2={datum:0};else if(!t.y2&&Ut(t.x)&&t.x.type=="quantitative")t.y2=t.y,t.x2={datum:0};else throw new Error("A bug!");else throw new Error("Invalid x and y encodings for rule mark: "+JSON.stringify(t));return t}async initializeGraphics(){if(await super.initializeGraphics(),this.properties.strokeDash){const t=this.gl,n=jB(this.properties.strokeDash);this.dashTexture=Us(t,{mag:t.NEAREST,min:t.NEAREST,internalFormat:t.R8,format:t.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(UB,GB,[HB])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniform("uMinLength",t.minLength),this.registerMarkUniform("uStrokeCap",t.strokeCap??"butt",n=>["butt","square","round"].indexOf(n)),Va(this.markUniformInfo,{uDashTextureSize:+this.dashTextureSize}),this.markUniformsAltered=!0}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new dB({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>this.bindOrSetMarkUniformBlock()),this.dashTexture&&n.push(()=>Gi(this.programInfo,{uDashTexture:this.dashTexture})),n.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>_f(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),t)}}function jB(e){if(e.length==0||e.length%2||e.findIndex(a=>Math.round(a)!=a||a<1||a>1e3)>=0)throw new Error("Invalid stroke dash pattern: "+JSON.stringify(e));const t=e.reduce((a,o)=>a+o),n=new Uint8Array(t);let r=!0,i=0;for(let a of e){for(;a;)n[i++]=r&&255||0,a--;r=!r}return n}const qB="uniform Mark{uniform float uArcHeightFactor;uniform float uMinArcHeight;uniform float uMinPickingSize;uniform int uShape;uniform int uOrient;uniform bool uClampApex;uniform float uMaxChordLength;uniform vec2 uArcFadingDistance;};in vec2 strip;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;const int SHAPE_ARC=0;const int SHAPE_DOME=1;const int SHAPE_DIAGONAL=2;const int SHAPE_LINE=3;const int ORIENT_VERTICAL=0;const int ORIENT_HORIZONTAL=1;float distanceFromLine(vec2 pointOnLine1,vec2 pointOnLine2,vec2 point){vec2 a=point-pointOnLine1;vec2 b=pointOnLine2-pointOnLine1;vec2 proj=dot(a,b)/dot(b,b)*b;return length(a-proj);}bool isInsideViewport(vec2 point,float marginFactor){vec2 margin=uViewportSize*vec2(marginFactor);return point.x>=-margin.x&&point.x<=uViewportSize.x+margin.x&&point.y>=-margin.y&&point.y<=uViewportSize.y+margin.y;}void main(void){float pixelSize=1.0/uDevicePixelRatio;float opacity=getScaled_opacity()*uViewOpacity;vec2 p1,p2,p3,p4;vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()))*uViewportSize;vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()))*uViewportSize;if(uShape<=SHAPE_DOME){if(uShape==SHAPE_DOME){vec2 height=vec2(0.0);if(uOrient==ORIENT_VERTICAL){p1=vec2(min(a.x,b.x),b.y);p4=vec2(max(a.x,b.x),b.y);height=vec2(0.0,a.y-b.y);if(uClampApex){if(p4.x>0.0){p1.x=max(p1.x,-p4.x);}if(p1.x<uViewportSize.x){p4.x=min(p4.x,2.0*uViewportSize.x-p1.x);}}}else{p1=vec2(b.x,min(a.y,b.y));p4=vec2(b.x,max(a.y,b.y));height=vec2(a.x-b.x,0.0);if(uClampApex){if(p4.y>0.0){p1.y=max(p1.y,-p4.y);}if(p1.y<uViewportSize.y){p4.y=min(p4.y,2.0*uViewportSize.y-p1.y);}}}vec2 controlOffset=height/0.75;p2=p1+controlOffset;p3=p4+controlOffset;}if(uShape==SHAPE_ARC){p1=a;p4=b;vec2 chordVector=p4-p1;vec2 unitChordVector=normalize(chordVector);vec2 chordNormal=vec2(-unitChordVector.y,unitChordVector.x);float chordLength=length(chordVector);if(chordLength>uMaxChordLength){if(isInsideViewport(p1,2.0)){chordLength=uMaxChordLength;p4=p1+unitChordVector*uMaxChordLength;}else if(isInsideViewport(p4,2.0)){chordLength=uMaxChordLength;p1=p4-unitChordVector*uMaxChordLength;}}float height=max(chordLength/2.0*uArcHeightFactor,uMinArcHeight);vec2 controlOffset=chordNormal*height/0.75;p2=p1+controlOffset;p3=p4+controlOffset;}}else if(uShape==SHAPE_DIAGONAL){if(uOrient==ORIENT_VERTICAL){p1=a;p2=vec2(a.x,(a.y+b.y)/2.0);p3=vec2(b.x,(a.y+b.y)/2.0);p4=b;}else{p1=a;p2=vec2((a.x+b.x)/2.0,a.y);p3=vec2((a.x+b.x)/2.0,b.y);p4=b;}}else if(uShape==SHAPE_LINE){p1=a;p2=(a+b)/2.0;p3=p2;p4=b;}float t=smoothstep(0.0,1.0,strip.x);vec2 C1=p4-3.0*p3+3.0*p2-p1;vec2 C2=3.0*p3-6.0*p2+3.0*p1;vec2 C3=3.0*p2-3.0*p1;vec2 C4=p1;vec2 p;if(t==0.0){p=p1;}else if(t==1.0){p=p4;}else{p=C1*t*t*t+C2*t*t+C3*t+C4;}vec2 tangent=normalize(3.0*C1*t*t+2.0*C2*t+C3);vec2 normal=vec2(-tangent.y,tangent.x);float size=getScaled_size();if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}float paddedSize=uPickingEnabled? max(size,uMinPickingSize): size+pixelSize;vNormalLengthInPixels=strip.y*paddedSize;if(uShape==SHAPE_ARC&&uArcFadingDistance[0]>0.0&&uArcFadingDistance[1]>0.0){float d=distanceFromLine(p1,p4,p);float distanceOpacity=smoothstep(uArcFadingDistance[1],uArcFadingDistance[0],d);opacity*=distanceOpacity;if(distanceOpacity<=0.0){vNormalLengthInPixels=0.0;}}p+=normal*vNormalLengthInPixels;gl_Position=pixelsToNdc(p);vec3 color=getScaled_color();vColor=vec4(color*opacity,opacity);vSize=paddedSize;setupPicking();}",ZB="in vec4 vColor;in float vSize;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distance=abs(vNormalLengthInPixels);float opacity=clamp(((vSize/2.0-distance)*dpr),0.0,1.0);fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}",WB=["arc","dome","diagonal","line"],YB=["vertical","horizontal"];class QB extends Vs{constructor(t){super(t),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:0,x2:void 0,y:0,y2:void 0,size:1,color:"black",opacity:1,segments:101,arcHeightFactor:1,minArcHeight:1.5,minPickingSize:3,clampApex:!1,maxChordLength:5e4,arcFadingDistance:!1,linkShape:"arc",orient:"vertical"})),this._baseInstanceExt=this.gl.getExtension("WEBGL_draw_instanced_base_vertex_base_instance")}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","height","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(t){return t.x2||(Ut(t.x)?t.x2={datum:0}:t.x2=t.x),t.y2||(Ut(t.y)?t.y2={datum:0}:t.y2=t.y),t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(qB,ZB)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniform("uArcFadingDistance",t.arcFadingDistance,n=>n||[0,0]),this.registerMarkUniform("uArcHeightFactor",t.arcHeightFactor),this.registerMarkUniform("uMinArcHeight",t.minArcHeight),this.registerMarkUniform("uMinPickingSize",t.minPickingSize),this.registerMarkUniform("uShape",t.linkShape,n=>WB.indexOf(n)),this.registerMarkUniform("uOrient",t.orient,n=>YB.indexOf(n)),this.registerMarkUniform("uClampApex",t.clampApex,n=>!!n),this.registerMarkUniform("uMaxChordLength",t.maxChordLength)}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new gB({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();i.arrays.strip={data:$B(this.properties.segments),numComponents:2},this.rangeMap.migrateEntries(i.rangeMap),this.arrays=Object.fromEntries(Object.entries(i.arrays).map(([a,o])=>[a,{...o,data:void 0}])),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>this.bindOrSetMarkUniformBlock()),this._baseInstanceExt?n.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)):n.push(()=>this.gl.bindVertexArray(null)),n}render(t){const n=this.gl,r=(this.properties.segments+1)*2;return this._baseInstanceExt?this.createRenderCallback((i,a)=>{this._baseInstanceExt.drawArraysInstancedBaseInstanceWEBGL(n.TRIANGLE_STRIP,0,r,a,i)},t):this.createRenderCallback((i,a)=>{for(const o of Object.entries(this.bufferInfo.attribs)){const[s,u]=o;u.buffer&&u.numComponents&&u.divisor&&(u.offset=i*this.arrays[s].numComponents*4)}Hi(n,this.programInfo,this.bufferInfo),n.drawArraysInstanced(n.TRIANGLE_STRIP,0,r,a)},t)}}function $B(e){let t=0;const n=[];for(;t<=e;t++)n.push(t/e,.5),n.push(t/e,-.5);return new Float32Array(n)}const XB=`in mediump vec2 vertexCoord;in lowp vec2 textureCoord;in float width;out vec2 vTexCoord;out vec4 vColor;out float vSlope;out float vEdgeFadeOpacity;struct RangeResult{float pos;float scale;};float minValue(vec4 v){return min(min(v.x,v.y),min(v.z,v.w));}float maxValue(vec4 v){return max(max(v.x,v.y),max(v.z,v.w));}/***All measures are in[0,1]*/RangeResult positionInsideRange(float a,float b,float width,float padding,int align,bool flush){float span=b-a;float paddedWidth=width+2.0*padding;if(a>1.0||b<0.0){return RangeResult(0.0,0.0);}float extra=max(0.0,span-paddedWidth);float pos;if(align==0){float centre=a+b;if(flush){float leftOver=max(0.0,paddedWidth-centre);centre+=min(leftOver,extra);float rightOver=max(0.0,paddedWidth+centre-2.0);centre-=min(rightOver,extra);}pos=centre/2.0;}else if(align<0){float edge=a;if(flush){float over=max(0.0,-edge);edge+=min(over,extra);}pos=edge+padding;}else{float edge=b;if(flush){float over=max(0.0,edge-1.0);edge-=min(over,extra);}pos=edge-padding;}float scale=clamp((span-padding)/paddedWidth,0.0,1.0);return RangeResult(pos,scale);}vec2 calculateRotatedDimensions(float width,mat2 rotationMatrix){vec2 a=abs(rotationMatrix*vec2(width/2.0,0.5));vec2 b=abs(rotationMatrix*vec2(width/2.0,-0.5));return vec2(max(a.x,b.x),max(a.y,b.y))*2.0;}ivec2 fixAlignForAngle(ivec2 align,float angleInDegrees){float a=mod(angleInDegrees+45.0,360.0);int x=align.x;int y=-align.y;if(a<90.0){return ivec2(x,y);}else if(a<180.0){return ivec2(y,-x);}else if(a<270.0){return ivec2(-x,y);}else{return ivec2(-y,x);}}void main(void){float opacity=getScaled_opacity()*uViewOpacity;vec2 size=vec2(getScaled_size());float x=getScaled_x();float y=getScaled_y();float scale=1.0;float angleInDegrees=getScaled_angle();float angle=-angleInDegrees*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);mat2 rotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);vec2 flushSize=calculateRotatedDimensions(width,rotationMatrix);
247
252
  #if defined(x2_DEFINED) || defined(y2_DEFINED)
248
253
  ivec2 align=fixAlignForAngle(uAlign,angleInDegrees);
249
254
  #else
@@ -256,7 +261,7 @@ vec2 pos=applySampleFacet(vec2(x,y));
256
261
  #ifdef y2_DEFINED
257
262
  float y2=getScaled_y2();vec2 pos2=applySampleFacet(vec2(x,y2));if(uLogoLetter){size.y=(pos2.y-pos.y)*uViewportSize.y;pos.y+=(pos2.y-pos.y)/2.0;}else{RangeResult result=positionInsideRange(min(pos.y,pos2.y),max(pos.y,pos2.y),size.y*scale*flushSize.y/uViewportSize.y,uPaddingY/uViewportSize.y,align.y,uFlushY);pos.y=result.pos;scale*=result.scale;}
258
263
  #endif
259
- if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scaleFadeExtent[0]){gl_Position=vec4(0.0);return;}size*=scale;opacity*=linearstep(scaleFadeExtent[0],scaleFadeExtent[1],scale);}else if(scale<1.0){gl_Position=vec4(0.0);return;}}vec2 charPos=rotationMatrix*(vertexCoord*size+uD);vec2 unitPos=pos+charPos/uViewportSize;gl_Position=unitToNdc(unitPos);vSlope=max(1.0,min(size.x,size.y)/uSdfNumerator);vColor=vec4(getScaled_color()*opacity,opacity);vTexCoord=textureCoord;if(maxValue(uViewportEdgeFadeDistance)>-pow(10.0,10.0)){vEdgeFadeOpacity=minValue(((vec4(1.0,1.0,0.0,0.0)+vec4(-1.0,-1.0,1.0,1.0)*unitPos.yxyx)*uViewportSize.yxyx-uViewportEdgeFadeDistance)/uViewportEdgeFadeWidth);}else{vEdgeFadeOpacity=1.0;}setupPicking();}`,jB="uniform sampler2D uTexture;in vec2 vTexCoord;in float vEdgeFadeOpacity;in vec4 vColor;in float vSlope;out lowp vec4 fragColor;float median(float r,float g,float b){return max(min(r,g),min(max(r,g),b));}void main(){vec3 c=texture(uTexture,vTexCoord).rgb;float sigDist=1.0-median(c.r,c.g,c.b);float slope=uLogoLetter? 0.7/length(vec2(dFdy(sigDist),dFdx(sigDist))): vSlope;float opa=clamp((sigDist-0.5)*slope+0.5,0.0,1.0);opa*=pow(clamp(vEdgeFadeOpacity,0.0,1.0),2.2);fragColor=vColor*opa;if(uPickingEnabled){fragColor=vPickingColor;}}",qB="uniform Mark{uniform mediump float uSdfNumerator;uniform mediump vec2 uD;uniform mediump vec4 uViewportEdgeFadeWidth;uniform mediump vec4 uViewportEdgeFadeDistance;uniform bool uSqueeze;uniform bool uLogoLetter;uniform lowp ivec2 uAlign;uniform mediump float uPaddingX;uniform bool uFlushX;uniform mediump float uPaddingY;uniform bool uFlushY;};",ZB={left:-1,center:0,right:1},WB={top:-1,middle:0,bottom:1,alphabetic:1};class YB extends Vs{constructor(t){super(t),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,x2:void 0,y2:void 0,text:"",size:11,color:"black",opacity:1,font:void 0,fontStyle:void 0,fontWeight:void 0,align:"center",baseline:"middle",dx:0,dy:0,angle:0,fitToBand:!1,squeeze:!0,paddingX:0,paddingY:0,flushX:!0,flushY:!0,logoLetters:!1,viewportEdgeFadeWidthTop:0,viewportEdgeFadeWidthRight:0,viewportEdgeFadeWidthBottom:0,viewportEdgeFadeWidthLeft:0,viewportEdgeFadeDistanceTop:-1/0,viewportEdgeFadeDistanceRight:-1/0,viewportEdgeFadeDistanceBottom:-1/0,viewportEdgeFadeDistanceLeft:-1/0})),this.font=this.properties.font?t.context.fontManager.getFont(this.properties.font,this.properties.fontStyle,this.properties.fontWeight):t.context.fontManager.getDefaultFont()}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","color","size","opacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size","text","angle"]}fixEncoding(t){for(const n of Po)this.properties.fitToBand&&n0(t,n);return t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(VB,jB,[qB])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniform("uSdfNumerator",{expr:"devicePixelRatio"},n=>{let r=.35;return this.properties.logoLetters&&(r/=2),this.font.metrics.common.base/(n/r)}),jo(this.markUniformInfo,{uPaddingX:t.paddingX,uPaddingY:t.paddingY,uFlushX:!!t.flushX,uFlushY:!!t.flushY,uAlign:[ZB[t.align],WB[t.baseline]],uD:[t.dx,-t.dy],uLogoLetter:!!t.logoLetters,uSqueeze:!!t.squeeze,uViewportEdgeFadeWidth:[t.viewportEdgeFadeWidthTop,t.viewportEdgeFadeWidthRight,t.viewportEdgeFadeWidthBottom,t.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[t.viewportEdgeFadeDistanceTop,t.viewportEdgeFadeDistanceRight,t.viewportEdgeFadeDistanceBottom,t.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getData(),r=this.encoding,i=this.encoders.text.accessor||this.encoders.text;let o=0;const a="format"in r.text?gt(r.text.format):l=>l;for(const l of n){const f=a(i(l)),c=Pe(f)?f:f===null?"":""+f;o+=c&&c.length||0}const s=new lB({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(o,this.properties.minBufferSize||0)});s.addBatches(t.facetBatches);const u=s.toArrays();this.rangeMap.migrateEntries(u.rangeMap),this.updateBufferInfo(u)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>{Gi(this.programInfo,{uTexture:this.font.texture})}),n.push(()=>this.bindOrSetMarkUniformBlock()),n.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Af(n,this.vertexArrayInfo,n.TRIANGLES,i,r),t)}}function Iy(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+=Tf(p.px)+(i0(p)?0:n),s+=Tf(p.grow);a-=n;const u=Math.max(0,t-a),l=r!==void 0?p=>Math.round(p*r)/r:p=>p,f=[],c=[],h=p=>{const b=f.length;if(!b)return;const y=(p?n:0)*(o?-1:1);d-=y;for(let w=0;w<b;w++)c.push({location:d+(w+1)/(b+1)*y,size:0});d+=y,f.length=0};let d=o?Math.max(t,a):0+i;if(e.length==1&&i0(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const b=e[p];if(i0(b))f.push(b);else{h(c.length>0);const y=Tf(b.px)+(s?Tf(b.grow)/s*u:0);o&&(d-=y),c.push({location:l(d),size:l(y)}),o?d-=n:d+=y+n}}return d+=o?n:-n,h(!1),c}function QB(e){let t=0,n=0;for(const r of e)t=Math.max(t,r.px??0),n=Math.max(n,r.grow??0);return{px:t,grow:n}}const Ig=class Ig{constructor(t,n){re(this,Vl);this.width=t,this.height=n}addPadding(t){return te(this,Vl,Ng).call(this,t.width,t.height)}subtractPadding(t){return te(this,Vl,Ng).call(this,-t.width,-t.height)}};Vl=new WeakSet,Ng=function(t,n){return new Ig({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};let jr=Ig;const js=Object.freeze({px:0,grow:0}),By=new jr(js,js);function i0(e){return!e.px&&!e.grow}function Tf(e){return e||0}function XB(e){return e&&(Ct(e.px)||Ct(e.grow))}function Dy(e){if(Ry(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(XB(e))return e;if(Ct(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}`)}class _t{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 _t(this.top+t,this.right+t,this.bottom+t,this.left+t)}add(t){return new _t(this.top+t.top,this.right+t.right,this.bottom+t.bottom,this.left+t.left)}subtract(t){return new _t(this.top-t.top,this.right-t.right,this.bottom-t.bottom,this.left-t.left)}union(t){return new _t(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 _t(0,this.right,0,this.left)}getVertical(){return new _t(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):o0}static createFromRecord(t){return new _t(t.top,t.right,t.bottom,t.left)}static zero(){return o0}static createUniformPadding(t){return new _t(t,t,t,t)}}const o0=_t.createUniformPadding(0);Object.freeze(o0);const $B=/^([A-Za-z]+:)?\/\//;function KB(e,t){if(t&&$B.test(t))return t;const n=e();return n&&t?n.endsWith("/")?n+t:n+"/"+t:n??t}const JB="VISIT_SKIP",qs="VISIT_STOP",Fy=e=>e;class eD{constructor(t,n,r,i,o,a={}){re(this,po);re(this,Zl);re(this,Ta,{});re(this,jl,{});re(this,ql,{});Kn(this,"opacityFunction",Fy);Kn(this,"coords");if(!t)throw new Error("View spec must be defined!");this.context=n,this.layoutParent=r,this.dataParent=i,this.name=t.name||o,this.spec=t,this.resolutions={scale:{},axis:{}},vy(this),this.options={blockEncodingInheritance:!1,contributesToScaleDomain:!0,...a},this.needsAxes={x:!1,y:!1}}getPadding(){return this._cache("size/padding",()=>_t.createFromConfig(this.spec.padding))}getOverhang(){return _t.zero()}isScrollable(){return this.spec.viewportWidth!=null||this.spec.viewportHeight!=null}getSize(){return this._cache("size/size",()=>this.isConfiguredVisible()?new jr(te(this,po,iu).call(this,"width"),te(this,po,iu).call(this,"height")):By)}getViewportSize(){if(!this.isScrollable())return this.getSize();if(!this.isConfiguredVisible())return By;const t=this.getSize();return new jr(te(this,po,iu).call(this,"viewportWidth")??t.width,te(this,po,iu).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 te(this,Zl,Og).call(this,"layoutParent")}getDataAncestors(){return te(this,Zl,Og).call(this,"dataParent")}handleBroadcast(t){for(const n of W(this,Ta)[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=W(this,Ta)[t];r||(r=[],W(this,Ta)[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?W(this,jl):W(this,ql);for(const o of i[n.type]||[])o(t,n)}addInteractionEventListener(t,n,r){const i=r?W(this,jl):W(this,ql);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!==qs)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===Fy)&&(this.opacityFunction=nD(this))}onBeforeRender(){}render(t,n,r={}){this.coords=r.clipRect?n.intersect(r.clipRect):n}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 Pi(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(t){const n=Li(t);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(t){const n=Li(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 KB(()=>{var t;return(t=this.dataParent)==null?void 0:t.getBaseUrl()},this.spec.baseUrl)}isPickingSupported(){return!0}getTitleText(){const t=this.spec.title;if(t)return Pe(t)?t:t.text}_cache(t,n){return Zo(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":Cf(this,t);break;case"ancestors":for(const r of this.getLayoutAncestors())Cf(r,t);break;case"progeny":this.visit(r=>Cf(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}Ta=new WeakMap,jl=new WeakMap,ql=new WeakMap,po=new WeakSet,iu=function(t){var i;let n=this.spec[t];const r=t=="viewportWidth"||t=="viewportHeight";if(Ry(n)){if(r)throw new qi(`Cannot use step-based size with "${t}"!`,this);const o=n.step,a=(i=this.getScaleResolution(t=="width"?"x":"y"))==null?void 0:i.getScale();if(a){let s=0;if(Lr(a.type))s=a.domain().length;else if(["locus","index"].includes(a.type)){const l=a.domain();s=ds(l)-l[0]}else throw new qi(`Cannot use step-based size with "${a.type}" scale!`,this);const u=a;return s=ud(s,u.paddingInner(),u.paddingOuter()),{px:s*o,grow:0}}else throw new qi("Cannot use 'step' size with missing scale!",this)}else return(n&&Dy(n))??(r?void 0:{px:0,grow:1})},Zl=new WeakSet,Og=function(t){const n=[];let r=this;do n.push(r),r=r[t];while(r);return n};function tD(e){return"unitsPerPixel"in e}function nD(e){const t=e.spec.opacity;if(t!==void 0){if(Ct(t))return n=>n*t;if(tD(t)){const n=o=>{var s;const a=(s=e.getScaleResolution(o))==null?void 0:s.getScale();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 qi("Cannot find a resolved quantitative scale for dynamic opacity!",e);const i=td().domain(t.unitsPerPixel).range(t.values).clamp(!0);return o=>{const s=cu(r.domain())/1e3;return i(s)*o}}else if(_y(t)){const n=e.context.paramBroker.createExpression(t.expr);return r=>n(null)*r}}return n=>n}const Ry=e=>!!(e!=null&&e.step);class Zi extends eD{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===qs)return n;if(n!==JB){t.beforeChildren&&t.beforeChildren(this);for(const r of this){const i=r.visit(t);if(i===qs)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 Zi)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,qs}),n}getDefaultResolution(t,n){return"shared"}}const My=1;function a0(){let e=[0,1],t=[0,1],n=1,r=1,i=0,o=0,a=.5,s=0;const l=f=>(f+a-e[0])/n*r+t[0];return l.invert=f=>(f-t[0])/r*n+e[0]-a,l.domain=function(f){if(arguments.length){e=Y_(f),n=e[1]-e[0];const c=e[0]===0&&e[0]===0;if(n<My&&!c){n=My;const h=(e[0]+e[1])/2;e[0]=h-n/2,e[1]=h+n/2}return l}else return e.slice()},l.range=function(f){return arguments.length?(t=[...f],r=t[1]-t[0],l):t},l.numberingOffset=function(f){return arguments.length?(s=f,l):s},l.padding=function(f){return arguments.length?(o=f,i=Math.min(1,f),l):i},l.paddingInner=function(f){return arguments.length?(i=Math.min(1,f),l):i},l.paddingOuter=function(f){return arguments.length?(o=f,l):o},l.align=function(f){return arguments.length?(a=Math.max(0,Math.min(1,f)),l):a},l.step=()=>r/n,l.bandwidth=()=>l.step(),l.ticks=f=>{const c=l.align(),h=l.numberingOffset();return mu(e[0]-c+h,e[1]-c+h,Math.min(f,Math.ceil(n))).filter(Number.isInteger).map(d=>d-s)},l.tickFormat=(f,c)=>{if(c)throw new Error("Index scale's tickFormat does not support a specifier!");const d=bi(e[0],e[1],Math.min(f,Math.ceil(n)))<1e5?gt(","):gt(".3s");return p=>d(p+s)},l.copy=()=>a0().domain(e).range(t).paddingInner(i).paddingOuter(o).numberingOffset(s),l}function rD(){const e=a0().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(f=>t.toChromosome(f)),u=Math.max(1,bi(i[0],i[1],r)),l=[];for(let f=a.index;f<=s.index;f++){const c=t.chromosomes[f],h=Math.max(c.continuousStart+u,i[0]-(i[0]-c.continuousStart)%u),d=Math.min(c.continuousEnd-u/4,i[1]+1);for(let p=h;p<=d;p+=u){const b=p-o;b>=i[0]&&b<i[1]&&l.push(b)}}return l},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(),l=bi(o[0],o[1],Math.min(r,Math.ceil(a)))<1e6?gt(","):gt(".3s"),f=c=>c-t.toChromosome(c).continuousStart;return c=>l(f(c)+s)};const n=e.copy;return e.copy=()=>n().genome(t),e}function iD(e){return e.type=="locus"}function If(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||Wo(a)&&Wo(s)||Wo(a)&&s===!0||a===!0&&Rt(s),o=a=>{for(let s in a){const u=a[s];if(!n.includes(s)&&u!==void 0)if(r[s]!==void 0&&!i(r[s],u))console.warn(`Conflicting property ${s} of ${t}: (${JSON.stringify(r[s])} and ${JSON.stringify(a[s])}). Using ${JSON.stringify(r[s])}.`);else{const l=r[s];if(Wo(l))Wo(u)&&(r[s]=If([l,u],s));else if(Wo(u)){if(!(l===!0||l===void 0))throw new Error("Bug in merge! Target is: "+l);r[s]=If([{},u],s)}else r[s]=u}}};for(const a of e)o(a);return r}function Wo(e){return Rt(e)&&!Array.isArray(e)}/*!
264
+ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scaleFadeExtent[0]){gl_Position=vec4(0.0);return;}size*=scale;opacity*=linearstep(scaleFadeExtent[0],scaleFadeExtent[1],scale);}else if(scale<1.0){gl_Position=vec4(0.0);return;}}vec2 charPos=rotationMatrix*(vertexCoord*size+uD);vec2 unitPos=pos+charPos/uViewportSize;gl_Position=unitToNdc(unitPos);vSlope=max(1.0,min(size.x,size.y)/uSdfNumerator);vColor=vec4(getScaled_color()*opacity,opacity);vTexCoord=textureCoord;if(maxValue(uViewportEdgeFadeDistance)>-pow(10.0,10.0)){vEdgeFadeOpacity=minValue(((vec4(1.0,1.0,0.0,0.0)+vec4(-1.0,-1.0,1.0,1.0)*unitPos.yxyx)*uViewportSize.yxyx-uViewportEdgeFadeDistance)/uViewportEdgeFadeWidth);}else{vEdgeFadeOpacity=1.0;}setupPicking();}`,KB="uniform sampler2D uTexture;in vec2 vTexCoord;in float vEdgeFadeOpacity;in vec4 vColor;in float vSlope;out lowp vec4 fragColor;float median(float r,float g,float b){return max(min(r,g),min(max(r,g),b));}void main(){vec3 c=texture(uTexture,vTexCoord).rgb;float sigDist=1.0-median(c.r,c.g,c.b);float slope=uLogoLetter? 0.7/length(vec2(dFdy(sigDist),dFdx(sigDist))): vSlope;float opa=clamp((sigDist-0.5)*slope+0.5,0.0,1.0);opa*=pow(clamp(vEdgeFadeOpacity,0.0,1.0),2.2);fragColor=vColor*opa;if(uPickingEnabled){fragColor=vPickingColor;}}",JB="uniform Mark{uniform mediump float uSdfNumerator;uniform mediump vec2 uD;uniform mediump vec4 uViewportEdgeFadeWidth;uniform mediump vec4 uViewportEdgeFadeDistance;uniform bool uSqueeze;uniform bool uLogoLetter;uniform lowp ivec2 uAlign;uniform mediump float uPaddingX;uniform bool uFlushX;uniform mediump float uPaddingY;uniform bool uFlushY;};",eD={left:-1,center:0,right:1},tD={top:-1,middle:0,bottom:1,alphabetic:1};class nD extends Vs{constructor(t){super(t),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,x2:void 0,y2:void 0,text:"",size:11,color:"black",opacity:1,font:void 0,fontStyle:void 0,fontWeight:void 0,align:"center",baseline:"middle",dx:0,dy:0,angle:0,fitToBand:!1,squeeze:!0,paddingX:0,paddingY:0,flushX:!0,flushY:!0,logoLetters:!1,viewportEdgeFadeWidthTop:0,viewportEdgeFadeWidthRight:0,viewportEdgeFadeWidthBottom:0,viewportEdgeFadeWidthLeft:0,viewportEdgeFadeDistanceTop:-1/0,viewportEdgeFadeDistanceRight:-1/0,viewportEdgeFadeDistanceBottom:-1/0,viewportEdgeFadeDistanceLeft:-1/0})),this.font=this.properties.font?t.context.fontManager.getFont(this.properties.font,this.properties.fontStyle,this.properties.fontWeight):t.context.fontManager.getDefaultFont()}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","color","size","opacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size","text","angle"]}fixEncoding(t){for(const n of Ma)this.properties.fitToBand&&o0(t,n);return t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(XB,KB,[JB])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniform("uSdfNumerator",{expr:"devicePixelRatio"},n=>{let r=.35;return this.properties.logoLetters&&(r/=2),this.font.metrics.common.base/(n/r)}),Va(this.markUniformInfo,{uPaddingX:t.paddingX,uPaddingY:t.paddingY,uFlushX:!!t.flushX,uFlushY:!!t.flushY,uAlign:[eD[t.align],tD[t.baseline]],uD:[t.dx,-t.dy],uLogoLetter:!!t.logoLetters,uSqueeze:!!t.squeeze,uViewportEdgeFadeWidth:[t.viewportEdgeFadeWidthTop,t.viewportEdgeFadeWidthRight,t.viewportEdgeFadeWidthBottom,t.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[t.viewportEdgeFadeDistanceTop,t.viewportEdgeFadeDistanceRight,t.viewportEdgeFadeDistanceBottom,t.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getData(),r=this.encoding,i=this.encoders.text.accessor||this.encoders.text;let a=0;const o="format"in r.text?gt(r.text.format):l=>l;for(const l of n){const f=o(i(l)),c=Pe(f)?f:f===null?"":""+f;a+=c&&c.length||0}const s=new mB({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(a,this.properties.minBufferSize||0)});s.addBatches(t.facetBatches);const u=s.toArrays();this.rangeMap.migrateEntries(u.rangeMap),this.updateBufferInfo(u)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>{Gi(this.programInfo,{uTexture:this.font.texture})}),n.push(()=>this.bindOrSetMarkUniformBlock()),n.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>_f(n,this.vertexArrayInfo,n.TRIANGLES,i,r),t)}}function Ry(e,t,{spacing:n,devicePixelRatio:r,offset:i,reverse:a}={}){n=n||0,i=i||0;let o=0,s=0;for(const p of e)o+=Df(p.px)+(l0(p)?0:n),s+=Df(p.grow);o-=n;const u=Math.max(0,t-o),l=r!==void 0?p=>Math.round(p*r)/r:p=>p,f=[],c=[],h=p=>{const m=f.length;if(!m)return;const y=(p?n:0)*(a?-1:1);d-=y;for(let w=0;w<m;w++)c.push({location:d+(w+1)/(m+1)*y,size:0});d+=y,f.length=0};let d=a?Math.max(t,o):0+i;if(e.length==1&&l0(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const m=e[p];if(l0(m))f.push(m);else{h(c.length>0);const y=Df(m.px)+(s?Df(m.grow)/s*u:0);a&&(d-=y),c.push({location:l(d),size:l(y)}),a?d-=n:d+=y+n}}return d+=a?n:-n,h(!1),c}function rD(e){let t=0,n=0;for(const r of e)t=Math.max(t,r.px??0),n=Math.max(n,r.grow??0);return{px:t,grow:n}}const Rg=class Rg{constructor(t,n){ne(this,jl);this.width=t,this.height=n}addPadding(t){return ee(this,jl,Gg).call(this,t.width,t.height)}subtractPadding(t){return ee(this,jl,Gg).call(this,-t.width,-t.height)}};jl=new WeakSet,Gg=function(t,n){return new Rg({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};let jr=Rg;const js=Object.freeze({px:0,grow:0}),My=new jr(js,js);function l0(e){return!e.px&&!e.grow}function Df(e){return e||0}function iD(e){return e&&(Ct(e.px)||Ct(e.grow))}function Py(e){if(Ny(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(iD(e))return e;if(Ct(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}`)}class _t{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 _t(this.top+t,this.right+t,this.bottom+t,this.left+t)}add(t){return new _t(this.top+t.top,this.right+t.right,this.bottom+t.bottom,this.left+t.left)}subtract(t){return new _t(this.top-t.top,this.right-t.right,this.bottom-t.bottom,this.left-t.left)}union(t){return new _t(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 _t(0,this.right,0,this.left)}getVertical(){return new _t(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):u0}static createFromRecord(t){return new _t(t.top,t.right,t.bottom,t.left)}static zero(){return u0}static createUniformPadding(t){return new _t(t,t,t,t)}}const u0=_t.createUniformPadding(0);Object.freeze(u0);const aD=/^([A-Za-z]+:)?\/\//;function oD(e,t){if(t&&aD.test(t))return t;const n=e();return n&&t?n.endsWith("/")?n+t:n+"/"+t:n??t}const sD="VISIT_SKIP",qs="VISIT_STOP",Ly=e=>e;class lD{constructor(t,n,r,i,a,o={}){ne(this,da);ne(this,Wl);ne(this,ko,{});ne(this,ql,{});ne(this,Zl,{});Bn(this,"opacityFunction",Ly);Bn(this,"coords");if(!t)throw new Error("View spec must be defined!");this.context=n,this.layoutParent=r,this.dataParent=i,this.name=t.name||a,this.spec=t,this.resolutions={scale:{},axis:{}},_y(this),this.options={blockEncodingInheritance:!1,contributesToScaleDomain:!0,...o},this.needsAxes={x:!1,y:!1}}getPadding(){return this._cache("size/padding",()=>_t.createFromConfig(this.spec.padding))}getOverhang(){return _t.zero()}isScrollable(){return this.spec.viewportWidth!=null||this.spec.viewportHeight!=null}getSize(){return this._cache("size/size",()=>this.isConfiguredVisible()?new jr(ee(this,da,au).call(this,"width"),ee(this,da,au).call(this,"height")):My)}getViewportSize(){if(!this.isScrollable())return this.getSize();if(!this.isConfiguredVisible())return My;const t=this.getSize();return new jr(ee(this,da,au).call(this,"viewportWidth")??t.width,ee(this,da,au).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 ee(this,Wl,Hg).call(this,"layoutParent")}getDataAncestors(){return ee(this,Wl,Hg).call(this,"dataParent")}handleBroadcast(t){for(const n of W(this,ko)[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=W(this,ko)[t];r||(r=[],W(this,ko)[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?W(this,ql):W(this,Zl);for(const a of i[n.type]||[])a(t,n)}addInteractionEventListener(t,n,r){const i=r?W(this,ql):W(this,Zl);let a=i[t];a||(a=[],i[t]=a),a.push(n)}visit(t){try{const n=t(this);if(t.postOrder&&t.postOrder(this),n!==qs)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===Ly)&&(this.opacityFunction=fD(this))}onBeforeRender(){}render(t,n,r={}){this.coords=r.clipRect?n.intersect(r.clipRect):n}getEncoding(){const t=this.dataParent&&!this.options.blockEncodingInheritance?this.dataParent.getEncoding():{},n=this.spec.encoding||{},r={...t,...n};for(const[i,a]of Object.entries(r))a===null&&delete r[i];return r}getFacetAccessor(t){if(this.layoutParent)return this.layoutParent.getFacetAccessor(this)}getFacetFields(t){var r;const n=this.getEncoding().sample;return Pi(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(t){const n=Li(t);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(t){const n=Li(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 oD(()=>{var t;return(t=this.dataParent)==null?void 0:t.getBaseUrl()},this.spec.baseUrl)}isPickingSupported(){return!0}getTitleText(){const t=this.spec.title;if(t)return Pe(t)?t:t.text}_cache(t,n){return qa(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":If(this,t);break;case"ancestors":for(const r of this.getLayoutAncestors())If(r,t);break;case"progeny":this.visit(r=>If(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}ko=new WeakMap,ql=new WeakMap,Zl=new WeakMap,da=new WeakSet,au=function(t){var i;let n=this.spec[t];const r=t=="viewportWidth"||t=="viewportHeight";if(Ny(n)){if(r)throw new qi(`Cannot use step-based size with "${t}"!`,this);const a=n.step,o=(i=this.getScaleResolution(t=="width"?"x":"y"))==null?void 0:i.getScale();if(o){let s=0;if(Nn(o.type))s=o.domain().length;else if(["locus","index"].includes(o.type)){const l=o.domain();s=ds(l)-l[0]}else throw new qi(`Cannot use step-based size with "${o.type}" scale!`,this);const u=o;return s=pd(s,u.paddingInner(),u.paddingOuter()),{px:s*a,grow:0}}else throw new qi("Cannot use 'step' size with missing scale!",this)}else return(n&&Py(n))??(r?void 0:{px:0,grow:1})},Wl=new WeakSet,Hg=function(t){const n=[];let r=this;do n.push(r),r=r[t];while(r);return n};function uD(e){return"unitsPerPixel"in e}function fD(e){const t=e.spec.opacity;if(t!==void 0){if(Ct(t))return n=>n*t;if(uD(t)){const n=a=>{var s;const o=(s=e.getScaleResolution(a))==null?void 0:s.getScale();if(["linear","index","locus"].includes(o==null?void 0:o.type))return o},r=t.channel?n(t.channel):n("x")??n("y");if(!r)throw new qi("Cannot find a resolved quantitative scale for dynamic opacity!",e);const i=od().domain(t.unitsPerPixel).range(t.values).clamp(!0);return a=>{const s=hu(r.domain())/1e3;return i(s)*a}}else if(ky(t)){const n=e.context.paramBroker.createExpression(t.expr);return r=>n(null)*r}}return n=>n}const Ny=e=>!!(e!=null&&e.step);class Zi extends lD{constructor(t,n,r,i,a,o){super(t,n,r,i,a,o),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===qs)return n;if(n!==sD){t.beforeChildren&&t.beforeChildren(this);for(const r of this){const i=r.visit(t);if(i===qs)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 Zi)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,qs}),n}getDefaultResolution(t,n){return"shared"}}const Oy=1;function f0(){let e=[0,1],t=[0,1],n=1,r=1,i=0,a=0,o=.5,s=0;const l=f=>(f+o-e[0])/n*r+t[0];return l.invert=f=>(f-t[0])/r*n+e[0]-o,l.domain=function(f){if(arguments.length){e=e4(f),n=e[1]-e[0];const c=e[0]===0&&e[0]===0;if(n<Oy&&!c){n=Oy;const h=(e[0]+e[1])/2;e[0]=h-n/2,e[1]=h+n/2}return l}else return e.slice()},l.range=function(f){return arguments.length?(t=[...f],r=t[1]-t[0],l):t},l.numberingOffset=function(f){return arguments.length?(s=f,l):s},l.padding=function(f){return arguments.length?(a=f,i=Math.min(1,f),l):i},l.paddingInner=function(f){return arguments.length?(i=Math.min(1,f),l):i},l.paddingOuter=function(f){return arguments.length?(a=f,l):a},l.align=function(f){return arguments.length?(o=Math.max(0,Math.min(1,f)),l):o},l.step=()=>r/n,l.bandwidth=()=>l.step(),l.ticks=f=>{const c=l.align(),h=l.numberingOffset();return bu(e[0]-c+h,e[1]-c+h,Math.min(f,Math.ceil(n))).filter(Number.isInteger).map(d=>d-s)},l.tickFormat=(f,c)=>{if(c)throw new Error("Index scale's tickFormat does not support a specifier!");const d=bi(e[0],e[1],Math.min(f,Math.ceil(n)))<1e5?gt(","):gt(".3s");return p=>d(p+s)},l.copy=()=>f0().domain(e).range(t).paddingInner(i).paddingOuter(a).numberingOffset(s),l}function cD(){const e=f0().numberingOffset(1);let t;e.genome=function(r){return arguments.length?(t=r,e):t},e.ticks=r=>{if(!t)return[];const i=e.domain(),a=e.numberingOffset(),[o,s]=[Math.max(i[0],0),Math.min(i[1],t.totalSize-1)].map(f=>t.toChromosome(f)),u=Math.max(1,bi(i[0],i[1],r)),l=[];for(let f=o.index;f<=s.index;f++){const c=t.chromosomes[f],h=Math.max(c.continuousStart+u,i[0]-(i[0]-c.continuousStart)%u),d=Math.min(c.continuousEnd-u/4,i[1]+1);for(let p=h;p<=d;p+=u){const m=p-a;m>=i[0]&&m<i[1]&&l.push(m)}}return l},e.tickFormat=(r,i)=>{if(!t)return;if(i)throw new Error("Locus scale's tickFormat does not support a specifier!");const a=e.domain(),o=a[1]-a[0],s=e.numberingOffset(),l=bi(a[0],a[1],Math.min(r,Math.ceil(o)))<1e6?gt(","):gt(".3s"),f=c=>c-t.toChromosome(c).continuousStart;return c=>l(f(c)+s)};const n=e.copy;return e.copy=()=>n().genome(t),e}function hD(e){return e.type=="locus"}function Ff(e,t,n){if(n=n||[],e.some(o=>o===null)){if(e.every(o=>o===null))return null;throw console.warn(e),new Error("Cannot merge objects with nulls!")}const r={},i=(o,s)=>o===s||Za(o)&&Za(s)||Za(o)&&s===!0||o===!0&&Rt(s),a=o=>{for(let s in o){const u=o[s];if(!n.includes(s)&&u!==void 0)if(r[s]!==void 0&&!i(r[s],u))console.warn(`Conflicting property ${s} of ${t}: (${JSON.stringify(r[s])} and ${JSON.stringify(o[s])}). Using ${JSON.stringify(r[s])}.`);else{const l=r[s];if(Za(l))Za(u)&&(r[s]=Ff([l,u],s));else if(Za(u)){if(!(l===!0||l===void 0))throw new Error("Bug in merge! Target is: "+l);r[s]=Ff([{},u],s)}else r[s]=u}}};for(const o of e)a(o);return r}function Za(e){return Rt(e)&&!Array.isArray(e)}/*!
260
265
  * Adapted from vega-encode:
261
266
  * https://github.com/vega/vega/blob/master/packages/vega-encode/src/ticks.js
262
267
  *
@@ -264,7 +269,7 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
264
269
  * All rights reserved.
265
270
  *
266
271
  * BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
267
- */function Py(e,t,n){return Ct(t)&&n!=null&&(t=Math.min(t,~~(cu(e.domain())/n)||1)),Rt(t)&&(t.step,t=t.interval),t}function Ly(e,t,n){var r=e.range(),i=Math.floor(r[0]),o=Math.ceil(gn(r));if(i>o&&(r=o,o=i,i=r),t=t.filter(function(s){return s=e(s),i<=s&&s<=o}),n>0&&t.length>1){for(var a=[t[0],gn(t)];t.length>n&&t.length>=3;)t=t.filter(function(s,u){return!(u%2)});t.length<3&&(t=a)}return t}function oD(e,t){return e.bins?Ly(e,aD(e.bins,t)):e.ticks?e.ticks(t):e.domain()}function aD(e,t){var n=e.length,r=~~(n/(t||n));return r<2?e.slice():e.filter(function(i,o){return!(o%r)})}function sD(e,t,n){var r=e.tickFormat?e.tickFormat(t,n):n?gt(n):String;if(Gb(e.type)){var i=uD(n);r=e.bins?i:lD(r,i)}return r}function lD(e,t){return function(n){return e(n)?t(n):""}}function uD(e){var t=_r(e||",");if(t.precision==null){switch(t.precision=12,t.type){case"%":t.precision-=2;break;case"e":t.precision-=1;break}return fD(gt(t),gt(".1f")(1)[1])}else return gt(t)}function fD(e,t){return function(n){var r=e(n),i=r.indexOf(t),o,a;if(i<0)return r;for(o=cD(r,i),a=o<r.length?r.slice(o):"";--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function cD(e,t){var n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}/*!
272
+ */function zy(e,t,n){return Ct(t)&&n!=null&&(t=Math.min(t,~~(hu(e.domain())/n)||1)),Rt(t)&&(t.step,t=t.interval),t}function Uy(e,t,n){var r=e.range(),i=Math.floor(r[0]),a=Math.ceil(gn(r));if(i>a&&(r=a,a=i,i=r),t=t.filter(function(s){return s=e(s),i<=s&&s<=a}),n>0&&t.length>1){for(var o=[t[0],gn(t)];t.length>n&&t.length>=3;)t=t.filter(function(s,u){return!(u%2)});t.length<3&&(t=o)}return t}function dD(e,t){return e.bins?Uy(e,pD(e.bins,t)):e.ticks?e.ticks(t):e.domain()}function pD(e,t){var n=e.length,r=~~(n/(t||n));return r<2?e.slice():e.filter(function(i,a){return!(a%r)})}function gD(e,t,n){var r=e.tickFormat?e.tickFormat(t,n):n?gt(n):String;if(qb(e.type)){var i=bD(n);r=e.bins?i:mD(r,i)}return r}function mD(e,t){return function(n){return e(n)?t(n):""}}function bD(e){var t=Sr(e||",");if(t.precision==null){switch(t.precision=12,t.type){case"%":t.precision-=2;break;case"e":t.precision-=1;break}return yD(gt(t),gt(".1f")(1)[1])}else return gt(t)}function yD(e,t){return function(n){var r=e(n),i=r.indexOf(t),a,o;if(i<0)return r;for(a=wD(r,i),o=a<r.length?r.slice(a):"";--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function wD(e,t){var n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}/*!
268
273
  * Adapted from vega-encode:
269
274
  * https://github.com/vega/vega/blob/master/packages/vega-encode/src/Scale.js
270
275
  *
@@ -272,57 +277,57 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
272
277
  * All rights reserved.
273
278
  *
274
279
  * BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
275
- */const hD="locus",dD="index";var pD=5;function gD(e){const t=e.type;return!e.bins&&(t===Ro||t===ks||t===Ts)}function Ny(e){return bt(e)&&![Pn,dD,hD].includes(e)}function Oy(e){return e||{warn:(t,...n)=>console.warn(t,...n)}}var mD=du(["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 zy(e,t,n){n=Oy(n);for(const r in e)if(!mD[r]){if(r==="padding"&&Ny(t.type))continue;Mt(t[r])?t[r](e[r]):n.warn("Unsupported scale property: "+r)}_D(t,e,ED(t,e,vD(t,e,n)))}function bD(e,t){const n=yD(e),r=Ae(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return!e.domain&&bt(i.type)&&(e.domain=[0,0]),zy(e,i,t),i}function yD(e){var t=e.type,n="",r;return t===Pn?Pn+"-"+Ro:(wD(e)&&(r=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=r===2?Pn+"-":r===3?Mo+"-":""),(n+t||Ro).toLowerCase())}function wD(e){const t=e.type;return bt(t)&&t!==Rb&&t!==Mb&&(e.scheme||e.range&&e.range.length&&e.range.every(Pe))}function vD(e,t,n){if(!e.domain)return 0;n=Oy(n);var r=xD(e,t.domainRaw,n);if(r>-1)return r;var i=t.domain,o=e.type,a=t.zero||t.zero===void 0&&gD(e),s,u;return i?(Ny(o)&&t.padding&&i[0]!==gn(i)&&(i=AD(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&&(u=t.domainMid,(u<i[0]||u>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",u),i.splice(s,0,u))),e.domain(Uy(o,i,n)),o===cd&&e.unknown(t.domainImplicit?Fh:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&Py(e,t.nice)||null),i.length):0}function xD(e,t,n){return t?(e.domain(Uy(e.type,t,n)),t.length):-1}function AD(e,t,n,r,i,o){var a=Math.abs(gn(n)-n[0]),s=a/(a-2*r),u=e===Pr?Wg(t,null,s):e===Ts?Vc(t,null,s,.5):e===ks?Vc(t,null,s,i||1):e===Qu?y_(t,null,s,o||1):Zg(t,null,s);return t=t.slice(),t[0]=u[0],t[t.length-1]=u[1],t}function Uy(e,t,n){if(Gb(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: "+hu(t))}return t}function ED(e,t,n){let r=t.bins;if(r&&!Ft(r)){const i=(r.start==null||r.stop==null)&&e.domain(),o=r.start==null?i[0]:r.start,a=r.stop==null?gn(i):r.stop,s=r.step;s||Qe("Scale bins parameter missing step property."),r=ja(o,a+s,s)}return r?e.bins=r:e.bins&&delete e.bins,e.type===dd&&(r?!t.domain&&!t.domainRaw&&(e.domain(r),n=r.length):e.bins=e.domain()),n}function _D(e,t,n){var r=e.type,i=t.round||!1,o=t.range;if(t.rangeStep!=null)o=SD(r,t,n);else if(t.scheme&&(o=CD(r,t,n),Mt(o))){if(e.interpolator)return e.interpolator(o);Qe(`Scale type ${r} does not support interpolating color schemes.`)}if(o&&$u(r))return e.interpolator(Ku(s0(o,t.reverse),t.interpolate,t.interpolateGamma));o&&t.interpolate&&e.interpolate?e.interpolate(Hb(t.interpolate,t.interpolateGamma)):Mt(e.round)?e.round(i):Mt(e.rangeRound)&&e.interpolate(i?Ss:Rr),o&&e.range(s0(o,t.reverse))}function SD(e,t,n){e!==Nb&&e!==hd&&Qe("Only band and point scales support rangeStep.");var r=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,i=e===hd?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*ud(n,i,r)]}function CD(e,t,n){var r=t.schemeExtent,i,o;return Ft(t.scheme)?o=Ku(t.scheme,t.interpolate,t.interpolateGamma):(i=t.scheme.toLowerCase(),o=gd(i),o||Qe(`Unrecognized scheme name: ${t.scheme}`)),n=e===Lb?n+1:e===dd?n-1:e===fd||e===Pb?+t.schemeCount||pD:n,$u(e)?Gy(o,r,t.reverse):Mt(o)?j8(Gy(o,r),n):e===cd?o:o.slice(0,n)}function Gy(e,t,n){return Mt(e)&&(t||n)?V8(e,s0(t||[0,1],n)):e}function s0(e,t){return t?e.slice().reverse():e}const Hy=gt(",d");function kD(e,t){return e.chrom+":"+Hy(Math.floor(e.pos+1))+"-"+(e.chrom!=t.chrom?t.chrom+":":"")+Hy(Math.ceil(t.pos))}const TD="https://genomespy.app/data/genomes/";class ID{constructor(t){if(this.config=t,!this.config.contigs&&typeof this.config.name!="string")throw new Error("No name has been defined for the genome assembly!");this.chromosomes=[],this.cumulativeChromPositions=new Map,this.chromosomesByName=new Map,this.startByIndex=[],this.totalSize=0,this.config.contigs&&this.setChromSizes(this.config.contigs)}get name(){return this.config.name}async load(t){if(!this.config.contigs){this.config.baseUrl?this.baseUrl=/^http(s)?/.test(this.config.baseUrl)?this.config.baseUrl:t+"/"+this.config.baseUrl:this.baseUrl=TD;try{this.setChromSizes(BD(await Cu({baseURL:this.baseUrl}).load(`${this.config.name}/${this.name}.chrom.sizes`)))}catch(n){throw new Error(`Could not load chrom sizes: ${n.message}`)}}}hasChrPrefix(){return this.chromosomes.some(t=>t.name.startsWith("chr"))}setChromSizes(t){let n=0;this.startByIndex=[0];for(let r=0;r<t.length;r++){this.startByIndex.push(n);const i=t[r].size,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=Ar(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 kD(...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 BD(e){return N_(e).filter(t=>/^chr[0-9A-Z]+$/.test(t[0])).map(([t,n])=>({name:t,size:parseInt(n)}))}function Vy(e){return Rt(e)&&"chrom"in e}function DD(e){return e.every(Vy)}class Zs extends Array{constructor(){super(),this.type=void 0}extend(t){return this}extendAll(t){if(t instanceof Zs&&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 l0 extends Zs{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 jy extends Zs{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 qy extends jy{constructor(){super(),this.type="nominal"}}class FD extends Zs{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 Zy={quantitative:l0,index:l0,locus:l0,nominal:qy,ordinal:jy};function Wy(e,t){if(e=="quantitative"&&RD(t)){const n=new FD(t);return n.type=e,n}else if(Zy[e]){const n=new Zy[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function RD(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function MD(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}function PD(e,t,n){return e*Math.pow(t/e,n)}Ae("index",a0,["continuous"]),Ae("locus",rD,["continuous"]),Ae("null",Ju,[]);const Yy="quantitative",Qy="ordinal",Xy="nominal",$y="locus",LD="index";class ND{constructor(t){re(this,Qn);re(this,Fc);re(this,Ba);re(this,gr);re(this,Wl);re(this,Rc);re(this,Bg);re(this,Yl);re(this,pr,void 0);re(this,Ia,new Set);re(this,vt,void 0);this.channel=t,this.members=[],this.type=null,this.name=void 0}addEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);W(this,Ia).add(n)}removeEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);W(this,Ia).delete(n)}pushUnitView(t,n){var a;const r=md(t,n),i=r.type,o=(a=r==null?void 0:r.scale)==null?void 0:a.name;if(o){if(this.name!==void 0&&o!=this.name)throw new Error(`Shared scales have conflicting names: "${o}" vs. "${this.name}"!`);this.name=o}if(!this.type)this.type=i;else if(i!==this.type&&!Ms(n))throw new Error(`Can not use shared scale for different data types: ${this.type} vs. ${i}. Use "resolve: independent" for channel ${this.channel}`);this.members.push({view:t,channel:n})}isExplicitDomain(){return!!this.getConfiguredDomain()}isDomainInitialized(){const t=W(this,vt);if(!t)return!1;const n=t.domain();return bt(t.type)?n.length>2||n.length==2&&(n[0]!==0||n[1]!==0):n.length>0}getScaleProps(){return Zo(this,"scaleProps",()=>{const t=te(this,Fc,i_).call(this);if(t===null||t.type=="null")return{type:"null"};const n={...te(this,Rc,o_).call(this,this.type),...t};n.type||(n.type=OD(this.channel,this.type));const r=te(this,Ba,Uc).call(this);return r&&r.length>0?n.domain=r:Lr(n.type)&&(n.domain=new qy),!n.domain&&n.domainMid!==void 0&&(n.domain=[n.domainMin??0,n.domainMax??1]),this.channel=="y"&&Lr(n.type)&&n.reverse==null&&(n.reverse=!0),n.range&&n.scheme&&delete n.scheme,!("zoom"in n)&&["index","locus"].includes(n.type)&&(n.zoom=!0),zD(n,this.channel),n})}getConfiguredDomain(){return te(this,Yl,Ug).call(this,t=>Ms(t.channel)?void 0:t.view.getConfiguredDomain(t.channel))}getDataDomain(){return te(this,Yl,Ug).call(this,t=>Ms(t.channel)?void 0:t.view.extractDataDomain(t.channel))}reconfigure(){if(W(this,vt)&&W(this,vt).type!="null"){const t=this.isDomainInitialized(),n=W(this,vt).domain();wy(this,"scaleProps");const r=this.getScaleProps();if(zy(r,W(this,vt)),bt(W(this,vt).type)&&Je(this,pr,te(this,Wl,zg).call(this)),!t){te(this,Qn,gi).call(this);return}const i=W(this,vt).domain();Iu(i,n)||(this.isZoomable()?W(this,vt).domain(n):te(this,gr,vo).call(this)?(W(this,vt).domain(n),this.zoomTo(i,500)):te(this,Qn,gi).call(this))}}getScale(){if(W(this,vt))return W(this,vt);const t=this.getScaleProps(),n=bD(t);return Je(this,vt,n),iD(n)&&n.genome(this.getGenome()),bt(n.type)&&Je(this,pr,te(this,Wl,zg).call(this)),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var t;return((t=this.getGenome())==null?void 0:t.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return te(this,gr,vo).call(this)&&Iu(te(this,Ba,Uc).call(this),this.getDomain())}isZoomable(){return te(this,gr,vo).call(this)&&!!this.getScaleProps().zoom}zoom(t,n,r){if(!te(this,gr,vo).call(this))return!1;const i=this.getScale(),o=i.domain();let a=[...o],s=i.invert(n);switch(this.getScaleProps().reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":a=g_(a,r||0),a=Zg(a,s,t);break;case"log":a=m_(a,r||0),a=Wg(a,s,t);break;case"pow":case"sqrt":{const u=i;a=b_(a,r||0,u.exponent()),a=Vc(a,s,t,u.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return W(this,pr)&&(a=w_(a,W(this,pr)[0],W(this,pr)[1])),[0,1].some(u=>a[u]!=o[u])?(i.domain(a),te(this,Qn,gi).call(this),!0):!1}async zoomTo(t,n=!1){var s;if(Ga(n)&&(n=n?700:0),!te(this,gr,vo).call(this))throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(t),i=(s=this.members[0])==null?void 0:s.view.context.animator,o=this.getScale(),a=o.domain();if(n>0&&a.length==2){const u=a[1]-a[0],l=a[0]+u/2,f=r[1]-r[0],c=r[0]+f/2;await i.transition({duration:n,easingFunction:MD,onUpdate:h=>{const d=PD(u,f,h),p=(u-d)/(u-f),b=p*c+(1-p)*l;o.domain([b-d/2,b+d/2]),te(this,Qn,gi).call(this)}}),o.domain(r),te(this,Qn,gi).call(this)}else o.domain(r),i==null||i.requestRender(),te(this,Qn,gi).call(this)}resetZoom(){if(!te(this,gr,vo).call(this))throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=te(this,Ba,Uc).call(this);return[0,1].some(r=>n[r]!=t[r])?(W(this,vt).domain(n),te(this,Qn,gi).call(this),!0):!1}getZoomLevel(){return this.isZoomable()?cu(W(this,pr))/cu(this.getScale().domain()):1}getGenome(){var n;if(this.type!=="locus")return;const t=(n=this.members[0].view.context.genomeStore)==null?void 0:n.getGenome();if(!t)throw new Error("No genome has been defined!");return t}invertToComplex(t){const n=this.getScale();if("invert"in n){const r=n.invert(t);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(t){const n=this.getGenome();return n?n.toChromosomal(t):t}fromComplex(t){return Vy(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&DD(t)?this.getGenome().toContinuousInterval(t):t}}pr=new WeakMap,Ia=new WeakMap,vt=new WeakMap,Qn=new WeakSet,gi=function(){for(const t of W(this,Ia).values())t({type:"domain",scaleResolution:this})},Fc=new WeakSet,i_=function(){return Zo(this,"mergedScaleProps",()=>{const t=this.members.map(n=>md(n.view,n.channel).scale).filter(n=>n!==void 0);return If(t,"scale",["domain"])})},Ba=new WeakSet,Uc=function(){return this.getConfiguredDomain()??(this.type==$y?this.getGenome().getExtent():this.getDataDomain())},gr=new WeakSet,vo=function(){const t=this.getScale().type;return bt(t)},Wl=new WeakSet,zg=function(){const t=this.getScaleProps(),n=t.zoom;if(UD(n)&&Ft(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():W(this,vt).domain()},Rc=new WeakSet,o_=function(t){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),Rs(n)?r.nice=!this.isExplicitDomain():Ni(n)?r.scheme=t==Xy?"tableau10":t==Qy?"blues":"viridis":ef(n)?r.range=n=="shape"?["circle","square","triangle-up","cross","diamond"]:[]:n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r},Bg=new WeakSet,Rz=function(){return this.members.map(t=>t.view.getPathString()).join(", ")},Yl=new WeakSet,Ug=function(t){const n=this.members.filter(r=>!r.view.getLayoutAncestors().some(i=>!i.options.contributesToScaleDomain)).map(t).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))};function OD(e,t){if(t==LD||t==$y){if(Wb(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][[Xy,Qy,Yy].indexOf(t)]:t==Yy?"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 zD(e,t){Rs(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&bt(e.type)&&(e.clamp=!0)}function UD(e){return Rt(e)}function u0(e){const t=new Set;function n(r){for(const i of Object.values(r.resolutions.scale))t.add(i)}for(const r of Lt(e)){r.visit(n);for(const i of r.getDataAncestors()){if(!i.options.contributesToScaleDomain)break;n(i)}}t.forEach(r=>r.reconfigure())}function f0(...e){for(const t of e)if(t!==void 0)return t}class GD{constructor(t){this.channel=t,this.members=[]}get scaleResolution(){var t;return(t=ds(this.members))==null?void 0:t.view.getScaleResolution(this.channel)}pushUnitView(t,n){const r=t.getScaleResolution(this.channel);if(!r)throw new Error("Cannot find a scale resolution!");if(this.scaleResolution&&r!==this.scaleResolution)throw new Error("Shared axes must have a shared scale!");this.members.push({view:t,channel:n})}getAxisProps(){return Zo(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:If(t.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const t=o=>{var s;const a=md(o.view,o.channel);if(!vn(a))return{member:o,explicitTitle:f0("axis"in a?(s=a.axis)==null?void 0:s.title:void 0,a.title),implicitTitle:f0(Pi(a)?a.field:void 0,bd(a)?a.expr:void 0)}},n=this.members.map(t),r=n.filter(o=>{var a;if(Ms(o.member.channel)&&!o.explicitTitle){const s=Li(o.member.channel);return((a=n.find(u=>u.member.view==o.member.view&&u.member.channel==s))==null?void 0:a.explicitTitle)===void 0}return!0}),i=new Set(r.map(o=>f0(o.explicitTitle,o.implicitTitle)).filter(Pe));return i.size?[...i].join(", "):null}}const HD={point:DB,rect:EB,rule:PB,link:GB,text:YB};class Yt extends Zi{constructor(t,n,r,i,o,a){super(t,n,r,i,o,a),this.spec=t;const s=HD[this.getMarkType()];if(s)this.mark=new s(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.resolve(),this.needsAxes={x:!0,y:!0}}render(t,n,r={}){super.render(t,n,r),this.isConfiguredVisible()&&(t.pushView(this,n),t.renderMark(this.mark,r),t.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(t){t||(this.resolve("scale"),this.resolve("axis"));const n=this.mark.encoding;for(const[r,i]of Object.entries(n)){if(!Ut(i))continue;const o=Li(i.resolutionChannel??r);if(!Oi(o)||t=="axis"&&!Rs(o))continue;let a=this;for(;(a.getConfiguredOrDefaultResolution(o,t)=="forced"||a.dataParent instanceof Zi&&["shared","excluded","forced"].includes(a.dataParent.getConfiguredOrDefaultResolution(o,t)))&&a.getConfiguredOrDefaultResolution(o,t)!="excluded";)a=a.dataParent;t=="axis"&&Rs(r)&&Wb(o)?(a.resolutions[t][o]||(a.resolutions[t][o]=new GD(o)),a.resolutions[t][o].pushUnitView(this,r)):t=="scale"&&Oi(r)&&(a.resolutions[t][o]||(a.resolutions[t][o]=new ND(o)),a.resolutions[t][o].pushUnitView(this,r))}}getAccessor(t){return this._cache("accessor/"+t,()=>{const n=this.mark.encoding;if(n&&n[t])return this.context.accessorFactory.createAccessor(n[t])})}getFacetAccessor(t){const n=this.getAccessor("sample");return n||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}_validateDomainQuery(t){if(Ms(t))throw new Error(`getDomain(${t}), must only be called for primary channels!`);const n=this.mark.encoding[t];if(!Ut(n))throw new Error("The channel has no scale, cannot get domain!");return n}getConfiguredDomain(t){const n=this._validateDomainQuery(t),r=n&&n.scale&&n.scale.domain;if(r){const i=this.getScaleResolution(n.resolutionChannel??t);return Wy(n.type??"nominal",i.fromComplexInterval(r))}}extractDataDomain(t){const r=this._validateDomainQuery(t).type??"nominal",i=s=>{let u;const l=this.mark.encoding[s];if(l){const f=this.context.accessorFactory.createAccessor(l);if(f)if(u=Wy(r),f.constant)u.extend(f({}));else{const c=this.getCollector();c!=null&&c.completed&&c.visitData(h=>u.extend(f(h)))}}return u};let o=i(t);const a=yd[t];if(a){const s=i(a);s&&o.extendAll(s)}return o}getZoomLevel(){const t=n=>{var r;return((r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())??1};return Po.map(t).reduce((n,r)=>n*r,1)}propagateInteractionEvent(t){this.handleInteractionEvent(void 0,t,!0),t.target=this,!t.stopped&&this.handleInteractionEvent(void 0,t,!1)}getDefaultResolution(t,n){return t=="x"?"shared":"independent"}}function*c0(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of c0(r,[...t,n]))yield i;else yield[[...t,n],r]}class Ky extends et{get behavior(){return r0}constructor(t){super(),this.params=t??{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new Er([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(t){this._data.push(t)}beginBatch(t){TB(t)&&(this._data=[],this.facetBatches.set(Lt(t.facetId),this._data))}complete(){var i,o;const t=(i=this.params)==null?void 0:i.sort,n=t?Yg(t.field,t.order):void 0,r=a=>{n&&a.sort(n)};if((o=this.params.groupby)!=null&&o.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const a=this.params.groupby.map(u=>Re(u)),s=gu(this._data,...a);this.facetBatches.clear();for(const[u,l]of c0(s))this.facetBatches.set(u,l)}for(const a of this.facetBatches.values())r(a);if(this.children.length)for(const[a,s]of this.facetBatches.entries()){if(a){const u={type:"facet",facetId:a};for(const l of this.children)l.beginBatch(u)}for(const u of s)this._propagate(u)}super.complete();for(const a of this.observers)a(this)}getData(){switch(this._checkStatus(),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const t=this.facetBatches;return{[Symbol.iterator]:function*(){for(const r of t.values())for(let i=0;i<r.length;i++)yield r[i]}}}}}visitData(t){this._checkStatus();for(const n of this.facetBatches.values())for(let r=0;r<n.length;r++)t(n[r])}getItemCount(){let t=0;for(const n of this.facetBatches.values())t+=n.length;return t}_checkStatus(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")}}class Bf{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 u=this.ids[a],l=this.values[a];const f=this.values[s];if(s<this.length&&f<l&&(a=s,u=this.ids[s],l=f),l>=r)break;this.ids[o]=u,this.values[o]=l,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 VD extends et{get behavior(){return On}constructor(t){super(),this.params=t,this.startAccessor=Re(t.start),this.endAccessor=Re(t.end),this.chromAccessor=t.chrom?Re(t.chrom):n=>{},this.weightAccessor=t.weight?Re(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 Bf}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 u,l,f,c=0,h;const d=this.ends;d.clear();const p=(y,w,_)=>{if(y==w)return;let C=!1;u&&(u[t]===_?(u[n]=w,C=!0):u[t]!=0&&this._propagate(u)),C||(u=this.createSegment(y,w,_,f))},b=()=>{let y;for(;(y=d.peekValue())!==void 0;)p(h,y,c),h=y,c-=d.pop();h=void 0,u&&(this._propagate(u),u=void 0)};this.handle=y=>{const w=i(y);let _;for(;(_=d.peekValue())!==void 0&&_<w;)p(h,_,c),h=_,c-=d.pop();if(r){let E=a(y);E!==l&&(b(),f=E,l=f)}h!==void 0&&p(h,w,c),h=w;const C=s(y);c+=C,d.push(C,o(y))},this.complete=()=>{b(),super.complete()}}}function jD(e,t,n=0,r=e.length){const i=new Bf,o=r-n;let a;for(a=0;a<t&&a<o;a++)i.push(a,e[n+a]);for(;a<o;a++){const l=e[n+a];l>=i.peekValue()&&(i.push(a,l),i.pop())}const s=[];let u;for(;(u=i.pop())!==void 0;)s.push(n+u);return s.reverse()}class qD{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 ZD extends et{get behavior(){return r0}constructor(t,n){if(super(),this.params=t,this._data=[],this.channel=t.channel??"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=Re(this.params.pos),this.posBisector=pu(this.posAccessor),this.scoreAccessor=Re(this.params.score),this.widthAccessor=Re(this.params.width),this.laneAccessor=this.params.lane?Re(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 qD(200));this.schedule(),super.complete()}_filterAndPropagate(){var a;super.reset();const t=this.resolution.getScale(),n=(a=this.resolution.members[0].view.coords)==null?void 0:a[this.channel=="x"?"width":"height"];if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=t.domain(),i=70,o=jD(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of o){const u=this._data[s],l=t(this.posAccessor(u))*n,f=this.widthAccessor(u)/2+this.padding;this.reservationMaps.get(this.laneAccessor(u)).reserve(l-f,l+f)&&this._propagate(u)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(t){this._data.push(t)}}class WD extends et{constructor(t){super(),this.params=t,this.predicate=void 0}initialize(){this.predicate=Lu(this.params.expr,this.getGlobalObject())}handle(t){this.predicate(t)&&this._propagate(t)}}class YD extends et{get behavior(){return On}constructor(t){super();const n=t.index;if(t.fields){const r=Lt(t.fields).map(o=>Re(o)),i=Lt(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((u,l)=>u(o)??[]),s=a[0].length;for(let u=0;u<s;u++){const l=Object.assign({},o);for(let f=0;f<r.length;f++)l[i[f]]=u<a[f].length?a[f][u]:null;n&&(l[n]=u),this._propagate(l)}}}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 QD="0".charCodeAt(0);function*XD(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-QD}yield r}class $D extends et{get behavior(){return On}constructor(t){super();const n=Re(t.exons??"exons"),r=Re(t.start??"start"),[i,o]=t.as||["exonStart","exonEnd"];this.handle=a=>{let s=r(a),u=s,l=!0;const f=n(a);for(const c of XD(f)){if(l)u=s+c;else{s=u+c;const h=Object.assign({},a);h[i]=u,h[o]=s,this._propagate(h)}l=!l}}}}class KD extends et{get behavior(){return On}constructor(t){super();const n=Lt(t.field).map(o=>Re(o)),r=Lt(t.separator),i=Lt(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(u=>!u(o)))return;const a=n.map((u,l)=>u(o).split(r[l]));JD(a,o);const s=a[0].length;for(let u=0;u<s;u++){const l=Object.assign({},o);for(let f=0;f<n.length;f++)l[i[f]]=a[f][u];this._propagate(l)}}}}function JD(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 e9 extends et{get behavior(){return Vr}constructor(t){super(),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=Lu(this.params.expr,this.getGlobalObject())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class Jy extends et{get behavior(){return Vr}constructor(t,n){super();const r=t.channel??"x";if(!["x","y"].includes(r))throw new Error("Invalid channel: "+r);const i=n.getScaleResolution(r).getGenome();if(!i)throw new Error("LinearizeGenomicCoordinate transform requires a locus scale!");const o=Re(t.chrom),a=Lt(t.pos).map(p=>Re(p)),s=Lt(t.as);if(a.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const u=Lt(t.offset);let l;if(u.length==0)l=new Array(a.length).fill(0);else if(u.length==1)l=new Array(a.length).fill(u[0]);else if(u.length==a.length)l=u;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(t.offset)}!`);const f=new Function("datum","chromOffset","posAccessors",s.map((p,b)=>`datum[${JSON.stringify(p)}] = chromOffset + +posAccessors[${b}](datum) - ${l[b]};`).join(`
276
- `));let c,h=0;const d=p=>{if(p!==c){if(h=i.cumulativeChromPositions.get(p),h===void 0)throw new Error("Unknown chromosome/contig: "+p);c=p}return h};this.handle=p=>{f(p,d(o(p)),a),this._propagate(p)}}}const ew={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 t9 extends et{get behavior(){return Vr}constructor(t){super();const n=e0(ew),r=Re(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 n9=65536;class r9 extends et{get behavior(){return Vr}constructor(t){super(),this.params=t}reset(){super.reset(),this.initialize()}initialize(){const t=this.params,n=t.as||"lane",r=Ct(t.spacing)?t.spacing:1,i=Re(t.start),o=Re(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const a=new Float64Array(n9),s=Re(t.preference),u=t.preferredOrder;let l=1/0;this.handle=f=>{const c=i(f);c<l&&a.fill(-1/0),l=c;const h=u.indexOf(s(f));let d=-1;if(h>=0&&a[h]<c)d=h;else{const p=i(f);for(d=0;d<a.length&&!(a[d]<p);d++);if(d>=a.length)throw new Error("Out of lanes!")}a[d]=o(f)+r,f[n]=d,this._propagate(f)}}else{const a=new Bf,s=new Bf;let u=-1/0,l=0;this.handle=f=>{const c=i(f);for(;a.length&&(a.peekValue()<=c||c<u);){const d=a.pop();s.push(d,d)}u=c;let h=s.pop();h===void 0&&(h=l++),f[n]=h,this._propagate(f),a.push(h,o(f)+r)}}}}class i9 extends et{get behavior(){return On}constructor(t){if(super(),t.as&&t.as.length!=t.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=t.fields.map(i=>Re(i)),r=t.as?t.as:n.map(Ao);this.handle=i=>{const o={};for(let a=0;a<n.length;a++)o[r[a]]=n[a](i);this._propagate(o)}}}class o9 extends et{get behavior(){return Vr}constructor(t){super();const n=new RegExp(t.regex),r=typeof t.as=="string"?[t.as]:t.as,i=Re(t.field);this.handle=o=>{const a=i(o);if(Pe(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 u=0;u<r.length;u++)o[r[u]]=s[u+1]}else if(t.skipInvalidInput)for(let u=0;u<r.length;u++)o[r[u]]=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 a9 extends et{get behavior(){return On}constructor(t){super();const n=Lt(t.columnRegex).map(h=>new RegExp(h)),r=Lt(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,u;const l=h=>{var y;const d=Object.keys(h);for(const w of n)if(!d.some(_=>w.test(_)))throw new Error(`No columns matching the regex ${w.toString()} found in the data!`);const p=new Map;for(const[w,_]of n.entries())for(const C of d){const E=(y=_.exec(C))==null?void 0:y[1];if(E!==void 0){let T=p.get(E);T||(T=[],p.set(E,T)),T[w]=C}}a=[...p.entries()],s=d.filter(w=>!n.some(_=>_.test(w))&&!(i&&i.test(w)));const b=[...s.map(w=>JSON.stringify(w)+": datum["+JSON.stringify(w)+"]"),JSON.stringify(o)+": sampleId",...r.map(w=>JSON.stringify(w)+": null")];u=new Function("datum","sampleId",`return {
277
- `+b.join(`,
280
+ */const vD="locus",xD="index";var AD=5;function ED(e){const t=e.type;return!e.bins&&(t===Fa||t===Ts||t===ks)}function Gy(e){return bt(e)&&![Ln,xD,vD].includes(e)}function Hy(e){return e||{warn:(t,...n)=>console.warn(t,...n)}}var _D=pu(["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 Vy(e,t,n){n=Hy(n);for(const r in e)if(!_D[r]){if(r==="padding"&&Gy(t.type))continue;Mt(t[r])?t[r](e[r]):n.warn("Unsupported scale property: "+r)}FD(t,e,DD(t,e,kD(t,e,n)))}function SD(e,t){const n=CD(e),r=Ae(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return!e.domain&&bt(i.type)&&(e.domain=[0,0]),Vy(e,i,t),i}function CD(e){var t=e.type,n="",r;return t===Ln?Ln+"-"+Fa:(TD(e)&&(r=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=r===2?Ln+"-":r===3?Ra+"-":""),(n+t||Fa).toLowerCase())}function TD(e){const t=e.type;return bt(t)&&t!==Nb&&t!==Ob&&(e.scheme||e.range&&e.range.length&&e.range.every(Pe))}function kD(e,t,n){if(!e.domain)return 0;n=Hy(n);var r=ID(e,t.domainRaw,n);if(r>-1)return r;var i=t.domain,a=e.type,o=t.zero||t.zero===void 0&&ED(e),s,u;return i?(Gy(a)&&t.padding&&i[0]!==gn(i)&&(i=BD(a,i,t.range,t.padding,t.exponent,t.constant)),(o||t.domainMin!=null||t.domainMax!=null||t.domainMid!=null)&&(s=(i=i.slice()).length-1||1,o&&(i[0]>0&&(i[0]=0),i[s]<0&&(i[s]=0)),t.domainMin!=null&&(i[0]=t.domainMin),t.domainMax!=null&&(i[s]=t.domainMax),t.domainMid!=null&&(u=t.domainMid,(u<i[0]||u>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",u),i.splice(s,0,u))),e.domain(jy(a,i,n)),a===md&&e.unknown(t.domainImplicit?Nh:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&zy(e,t.nice)||null),i.length):0}function ID(e,t,n){return t?(e.domain(jy(e.type,t,n)),t.length):-1}function BD(e,t,n,r,i,a){var o=Math.abs(gn(n)-n[0]),s=o/(o-2*r),u=e===Lr?Xg(t,null,s):e===ks?Yc(t,null,s,.5):e===Ts?Yc(t,null,s,i||1):e===$u?__(t,null,s,a||1):$g(t,null,s);return t=t.slice(),t[0]=u[0],t[t.length-1]=u[1],t}function jy(e,t,n){if(qb(e)){var r=Math.abs(t.reduce(function(i,a){return i+(a<0?-1:a>0?1:0)},0));r!==t.length&&n.warn("Log scale domain includes zero: "+du(t))}return t}function DD(e,t,n){let r=t.bins;if(r&&!Ft(r)){const i=(r.start==null||r.stop==null)&&e.domain(),a=r.start==null?i[0]:r.start,o=r.stop==null?gn(i):r.stop,s=r.step;s||Qe("Scale bins parameter missing step property."),r=jo(a,o+s,s)}return r?e.bins=r:e.bins&&delete e.bins,e.type===yd&&(r?!t.domain&&!t.domainRaw&&(e.domain(r),n=r.length):e.bins=e.domain()),n}function FD(e,t,n){var r=e.type,i=t.round||!1,a=t.range;if(t.rangeStep!=null)a=RD(r,t,n);else if(t.scheme&&(a=MD(r,t,n),Mt(a))){if(e.interpolator)return e.interpolator(a);Qe(`Scale type ${r} does not support interpolating color schemes.`)}if(a&&Ku(r))return e.interpolator(Ju(c0(a,t.reverse),t.interpolate,t.interpolateGamma));a&&t.interpolate&&e.interpolate?e.interpolate(Zb(t.interpolate,t.interpolateGamma)):Mt(e.round)?e.round(i):Mt(e.rangeRound)&&e.interpolate(i?Ss:Mr),a&&e.range(c0(a,t.reverse))}function RD(e,t,n){e!==Gb&&e!==bd&&Qe("Only band and point scales support rangeStep.");var r=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,i=e===bd?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*pd(n,i,r)]}function MD(e,t,n){var r=t.schemeExtent,i,a;return Ft(t.scheme)?a=Ju(t.scheme,t.interpolate,t.interpolateGamma):(i=t.scheme.toLowerCase(),a=vd(i),a||Qe(`Unrecognized scheme name: ${t.scheme}`)),n=e===Ub?n+1:e===yd?n-1:e===gd||e===zb?+t.schemeCount||AD:n,Ku(e)?qy(a,r,t.reverse):Mt(a)?$8(qy(a,r),n):e===md?a:a.slice(0,n)}function qy(e,t,n){return Mt(e)&&(t||n)?Q8(e,c0(t||[0,1],n)):e}function c0(e,t){return t?e.slice().reverse():e}const Zy=gt(",d");function PD(e,t){return e.chrom+":"+Zy(Math.floor(e.pos+1))+"-"+(e.chrom!=t.chrom?t.chrom+":":"")+Zy(Math.ceil(t.pos))}const LD="https://genomespy.app/data/genomes/";class ND{constructor(t){if(this.config=t,!this.config.contigs&&typeof this.config.name!="string")throw new Error("No name has been defined for the genome assembly!");this.chromosomes=[],this.cumulativeChromPositions=new Map,this.chromosomesByName=new Map,this.startByIndex=[],this.totalSize=0,this.config.contigs&&this.setChromSizes(this.config.contigs)}get name(){return this.config.name}async load(t){if(!this.config.contigs){this.config.baseUrl?this.baseUrl=/^http(s)?/.test(this.config.baseUrl)?this.config.baseUrl:t+"/"+this.config.baseUrl:this.baseUrl=LD;try{this.setChromSizes(OD(await Tu({baseURL:this.baseUrl}).load(`${this.config.name}/${this.name}.chrom.sizes`)))}catch(n){throw new Error(`Could not load chrom sizes: ${n.message}`)}}}hasChrPrefix(){return this.chromosomes.some(t=>t.name.startsWith("chr"))}setChromSizes(t){let n=0;this.startByIndex=[0];for(let r=0;r<t.length;r++){this.startByIndex.push(n);const i=t[r].size,a={...t[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(a);const o=a.name.replace(/^chr/i,"");for(const s of["chr"+o,"CHR"+o,"Chr"+o,a.number,""+a.number,o,a.name])this.cumulativeChromPositions.set(s,n),this.chromosomesByName.set(s,a);n+=a.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(t,n){let r=this.cumulativeChromPositions.get(t);if(r===void 0)throw new Error("Unknown chromosome/contig: "+t);return r+ +n}toChromosome(t){if(t>this.totalSize)return;t=Math.floor(t);const n=Er(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 PD(...this.toChromosomalInterval(t))}toChromosomalInterval(t){const n=this.toChromosomal(t[0]+.5),r=this.toChromosomal(t[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(t){var i;let[n,r]=t;return r||(r=n),[this.toContinuous(n.chrom,n.pos??0),this.toContinuous(r.chrom,r.pos??((i=this.chromosomesByName.get(r.chrom))==null?void 0:i.size))]}toDiscreteChromosomeIntervals(t){const n=t[0],r=t[1],i=[];if(n.chrom===r.chrom)i.push({chrom:n.chrom,startPos:n.pos,endPos:r.pos});else{const a=this.chromosomes.findIndex(s=>s.name===n.chrom),o=this.chromosomes.findIndex(s=>s.name===r.chrom);i.push({chrom:n.chrom,startPos:n.pos,endPos:this.chromosomes[a].size});for(let s=a+1;s<o;s++)i.push({chrom:this.chromosomes[s].name,startPos:0,endPos:this.chromosomes[s].size});i.push({chrom:r.chrom,startPos:0,endPos:r.pos})}return i}continuousToDiscreteChromosomeIntervals(t){return this.toDiscreteChromosomeIntervals([this.toChromosomal(t[0]),this.toChromosomal(t[1])])}parseInterval(t){const n=t.match(/^(chr[0-9A-Z]+)(?::([0-9,]+)(?:-(?:(chr[0-9A-Z]+):)?([0-9,]+))?)?$/);if(n){const r=n[1];if(n.slice(2).every(s=>s===void 0)){const s=this.getChromosome(r);return s?[s.continuousStart,s.continuousEnd]:void 0}const i=n[3]||r,a=parseInt(n[2].replace(/,/g,"")),o=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):a;return[this.toContinuous(r,a-1),this.toContinuous(i,o)]}}}function OD(e){return V_(e).filter(t=>/^chr[0-9A-Z]+$/.test(t[0])).map(([t,n])=>({name:t,size:parseInt(n)}))}function Wy(e){return Rt(e)&&"chrom"in e}function zD(e){return e.every(Wy)}class Zs extends Array{constructor(){super(),this.type=void 0}extend(t){return this}extendAll(t){if(t instanceof Zs&&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 h0 extends Zs{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 Yy extends Zs{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 Qy extends Yy{constructor(){super(),this.type="nominal"}}class UD extends Zs{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 $y={quantitative:h0,index:h0,locus:h0,nominal:Qy,ordinal:Yy};function Xy(e,t){if(e=="quantitative"&&GD(t)){const n=new UD(t);return n.type=e,n}else if($y[e]){const n=new $y[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function GD(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function HD(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}function VD(e,t,n){return e*Math.pow(t/e,n)}Ae("index",f0,["continuous"]),Ae("locus",cD,["continuous"]),Ae("null",ef,[]);const Ky="quantitative",Jy="ordinal",ew="nominal",tw="locus",jD="index";class qD{constructor(t){ne(this,Xn);ne(this,Nc);ne(this,Bo);ne(this,mr);ne(this,Yl);ne(this,Oc);ne(this,Mg);ne(this,Ql);ne(this,gr,void 0);ne(this,Io,new Set);ne(this,vt,void 0);this.channel=t,this.members=[],this.type=null,this.name=void 0}addEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);W(this,Io).add(n)}removeEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);W(this,Io).delete(n)}pushUnitView(t,n){var o;const r=xd(t,n),i=r.type,a=(o=r==null?void 0:r.scale)==null?void 0:o.name;if(a){if(this.name!==void 0&&a!=this.name)throw new Error(`Shared scales have conflicting names: "${a}" vs. "${this.name}"!`);this.name=a}if(!this.type)this.type=i;else if(i!==this.type&&!Ms(n))throw new Error(`Can not use shared scale for different data types: ${this.type} vs. ${i}. Use "resolve: independent" for channel ${this.channel}`);this.members.push({view:t,channel:n})}isExplicitDomain(){return!!this.getConfiguredDomain()}isDomainInitialized(){const t=W(this,vt);if(!t)return!1;const n=t.domain();return bt(t.type)?n.length>2||n.length==2&&(n[0]!==0||n[1]!==0):n.length>0}getScaleProps(){return qa(this,"scaleProps",()=>{const t=ee(this,Nc,f_).call(this);if(t===null||t.type=="null")return{type:"null"};const n={...ee(this,Oc,c_).call(this,this.type),...t};n.type||(n.type=ZD(this.channel,this.type));const r=ee(this,Bo,qc).call(this);return r&&r.length>0?n.domain=r:Nn(n.type)&&(n.domain=new Qy),!n.domain&&n.domainMid!==void 0&&(n.domain=[n.domainMin??0,n.domainMax??1]),this.channel=="y"&&Nn(n.type)&&n.reverse==null&&(n.reverse=!0),n.range&&n.scheme&&delete n.scheme,!("zoom"in n)&&["index","locus"].includes(n.type)&&(n.zoom=!0),WD(n,this.channel),n})}getConfiguredDomain(){return ee(this,Ql,jg).call(this,t=>Ms(t.channel)?void 0:t.view.getConfiguredDomain(t.channel))}getDataDomain(){return ee(this,Ql,jg).call(this,t=>Ms(t.channel)?void 0:t.view.extractDataDomain(t.channel))}reconfigure(){if(W(this,vt)&&W(this,vt).type!="null"){const t=this.isDomainInitialized(),n=W(this,vt).domain();Ey(this,"scaleProps");const r=this.getScaleProps();if(Vy(r,W(this,vt)),bt(W(this,vt).type)&&Xe(this,gr,ee(this,Yl,Vg).call(this)),!t){ee(this,Xn,gi).call(this);return}const i=W(this,vt).domain();Bu(i,n)||(this.isZoomable()?W(this,vt).domain(n):ee(this,mr,wa).call(this)?(W(this,vt).domain(n),this.zoomTo(i,500)):ee(this,Xn,gi).call(this))}}getScale(){if(W(this,vt))return W(this,vt);const t=this.getScaleProps(),n=SD(t);return Xe(this,vt,n),hD(n)&&n.genome(this.getGenome()),bt(n.type)&&Xe(this,gr,ee(this,Yl,Vg).call(this)),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var t;return((t=this.getGenome())==null?void 0:t.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return ee(this,mr,wa).call(this)&&Bu(ee(this,Bo,qc).call(this),this.getDomain())}isZoomable(){return ee(this,mr,wa).call(this)&&!!this.getScaleProps().zoom}zoom(t,n,r){if(!ee(this,mr,wa).call(this))return!1;const i=this.getScale(),a=i.domain();let o=[...a],s=i.invert(n);switch(this.getScaleProps().reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":o=x_(o,r||0),o=$g(o,s,t);break;case"log":o=A_(o,r||0),o=Xg(o,s,t);break;case"pow":case"sqrt":{const u=i;o=E_(o,r||0,u.exponent()),o=Yc(o,s,t,u.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return W(this,gr)&&(o=S_(o,W(this,gr)[0],W(this,gr)[1])),[0,1].some(u=>o[u]!=a[u])?(i.domain(o),ee(this,Xn,gi).call(this),!0):!1}async zoomTo(t,n=!1){var s;if(Go(n)&&(n=n?700:0),!ee(this,mr,wa).call(this))throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(t),i=(s=this.members[0])==null?void 0:s.view.context.animator,a=this.getScale(),o=a.domain();if(n>0&&o.length==2){const u=o[1]-o[0],l=o[0]+u/2,f=r[1]-r[0],c=r[0]+f/2;await i.transition({duration:n,easingFunction:HD,onUpdate:h=>{const d=VD(u,f,h),p=(u-d)/(u-f),m=p*c+(1-p)*l;a.domain([m-d/2,m+d/2]),ee(this,Xn,gi).call(this)}}),a.domain(r),ee(this,Xn,gi).call(this)}else a.domain(r),i==null||i.requestRender(),ee(this,Xn,gi).call(this)}resetZoom(){if(!ee(this,mr,wa).call(this))throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=ee(this,Bo,qc).call(this);return[0,1].some(r=>n[r]!=t[r])?(W(this,vt).domain(n),ee(this,Xn,gi).call(this),!0):!1}getZoomLevel(){return this.isZoomable()?hu(W(this,gr))/hu(this.getScale().domain()):1}getGenome(){var n;if(this.type!=="locus")return;const t=(n=this.members[0].view.context.genomeStore)==null?void 0:n.getGenome();if(!t)throw new Error("No genome has been defined!");return t}invertToComplex(t){const n=this.getScale();if("invert"in n){const r=n.invert(t);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(t){const n=this.getGenome();return n?n.toChromosomal(t):t}fromComplex(t){return Wy(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&zD(t)?this.getGenome().toContinuousInterval(t):t}}gr=new WeakMap,Io=new WeakMap,vt=new WeakMap,Xn=new WeakSet,gi=function(){for(const t of W(this,Io).values())t({type:"domain",scaleResolution:this})},Nc=new WeakSet,f_=function(){return qa(this,"mergedScaleProps",()=>{const t=this.members.map(n=>xd(n.view,n.channel).scale).filter(n=>n!==void 0);return Ff(t,"scale",["domain"])})},Bo=new WeakSet,qc=function(){return this.getConfiguredDomain()??(this.type==tw?this.getGenome().getExtent():this.getDataDomain())},mr=new WeakSet,wa=function(){const t=this.getScale().type;return bt(t)},Yl=new WeakSet,Vg=function(){const t=this.getScaleProps(),n=t.zoom;if(YD(n)&&Ft(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():W(this,vt).domain()},Oc=new WeakSet,c_=function(t){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),Rs(n)?r.nice=!this.isExplicitDomain():Ni(n)?r.scheme=t==ew?"tableau10":t==Jy?"blues":"viridis":nf(n)?r.range=n=="shape"?["circle","square","triangle-up","cross","diamond"]:[]:n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r},Mg=new WeakSet,Vz=function(){return this.members.map(t=>t.view.getPathString()).join(", ")},Ql=new WeakSet,jg=function(t){const n=this.members.filter(r=>!r.view.getLayoutAncestors().some(i=>!i.options.contributesToScaleDomain)).map(t).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))};function ZD(e,t){if(t==jD||t==tw){if(Xb(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][[ew,Jy,Ky].indexOf(t)]:t==Ky?"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 WD(e,t){Rs(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&bt(e.type)&&(e.clamp=!0)}function YD(e){return Rt(e)}function d0(e){const t=new Set;function n(r){for(const i of Object.values(r.resolutions.scale))t.add(i)}for(const r of Lt(e)){r.visit(n);for(const i of r.getDataAncestors()){if(!i.options.contributesToScaleDomain)break;n(i)}}t.forEach(r=>r.reconfigure())}function p0(...e){for(const t of e)if(t!==void 0)return t}class QD{constructor(t){this.channel=t,this.members=[]}get scaleResolution(){var t;return(t=ds(this.members))==null?void 0:t.view.getScaleResolution(this.channel)}pushUnitView(t,n){const r=t.getScaleResolution(this.channel);if(!r)throw new Error("Cannot find a scale resolution!");if(this.scaleResolution&&r!==this.scaleResolution)throw new Error("Shared axes must have a shared scale!");this.members.push({view:t,channel:n})}getAxisProps(){return qa(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:Ff(t.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const t=a=>{var s;const o=xd(a.view,a.channel);if(!vn(o))return{member:a,explicitTitle:p0("axis"in o?(s=o.axis)==null?void 0:s.title:void 0,o.title),implicitTitle:p0(Pi(o)?o.field:void 0,tf(o)?o.expr:void 0)}},n=this.members.map(t),r=n.filter(a=>{var o;if(Ms(a.member.channel)&&!a.explicitTitle){const s=Li(a.member.channel);return((o=n.find(u=>u.member.view==a.member.view&&u.member.channel==s))==null?void 0:o.explicitTitle)===void 0}return!0}),i=new Set(r.map(a=>p0(a.explicitTitle,a.implicitTitle)).filter(Pe));return i.size?[...i].join(", "):null}}const $D={point:zB,rect:DB,rule:VB,link:QB,text:nD};class Yt extends Zi{constructor(t,n,r,i,a,o){super(t,n,r,i,a,o),this.spec=t;const s=$D[this.getMarkType()];if(s)this.mark=new s(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.resolve(),this.needsAxes={x:!0,y:!0}}render(t,n,r={}){super.render(t,n,r),this.isConfiguredVisible()&&(t.pushView(this,n),t.renderMark(this.mark,r),t.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(t){t||(this.resolve("scale"),this.resolve("axis"));const n=this.mark.encoding;for(const[r,i]of Object.entries(n)){if(!Ut(i))continue;const a=Li(i.resolutionChannel??r);if(!Oi(a)||t=="axis"&&!Rs(a))continue;let o=this;for(;(o.getConfiguredOrDefaultResolution(a,t)=="forced"||o.dataParent instanceof Zi&&["shared","excluded","forced"].includes(o.dataParent.getConfiguredOrDefaultResolution(a,t)))&&o.getConfiguredOrDefaultResolution(a,t)!="excluded";)o=o.dataParent;t=="axis"&&Rs(r)&&Xb(a)?(o.resolutions[t][a]||(o.resolutions[t][a]=new QD(a)),o.resolutions[t][a].pushUnitView(this,r)):t=="scale"&&Oi(r)&&(o.resolutions[t][a]||(o.resolutions[t][a]=new qD(a)),o.resolutions[t][a].pushUnitView(this,r))}}getAccessor(t){return this._cache("accessor/"+t,()=>{const n=this.mark.encoding;if(n&&n[t])return this.context.accessorFactory.createAccessor(n[t])})}getFacetAccessor(t){const n=this.getAccessor("sample");return n||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}_validateDomainQuery(t){if(Ms(t))throw new Error(`getDomain(${t}), must only be called for primary channels!`);const n=this.mark.encoding[t];if(!Ut(n))throw new Error("The channel has no scale, cannot get domain!");return n}getConfiguredDomain(t){const n=this._validateDomainQuery(t),r=n&&n.scale&&n.scale.domain;if(r){const i=this.getScaleResolution(n.resolutionChannel??t);return Xy(n.type??"nominal",i.fromComplexInterval(r))}}extractDataDomain(t){const r=this._validateDomainQuery(t).type??"nominal",i=s=>{let u;const l=this.mark.encoding[s];if(l){const f=this.context.accessorFactory.createAccessor(l);if(f)if(u=Xy(r),f.constant)u.extend(f({}));else{const c=this.getCollector();c!=null&&c.completed&&c.visitData(h=>u.extend(f(h)))}}return u};let a=i(t);const o=Ad[t];if(o){const s=i(o);s&&a.extendAll(s)}return a}getZoomLevel(){const t=n=>{var r;return((r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())??1};return Ma.map(t).reduce((n,r)=>n*r,1)}propagateInteractionEvent(t){this.handleInteractionEvent(void 0,t,!0),t.target=this,!t.stopped&&this.handleInteractionEvent(void 0,t,!1)}getDefaultResolution(t,n){return t=="x"?"shared":"independent"}}function*g0(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of g0(r,[...t,n]))yield i;else yield[[...t,n],r]}class nw extends et{get behavior(){return s0}constructor(t){super(),this.params=t??{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new _r([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(t){this._data.push(t)}beginBatch(t){LB(t)&&(this._data=[],this.facetBatches.set(Lt(t.facetId),this._data))}complete(){var i,a;const t=(i=this.params)==null?void 0:i.sort,n=t?Kg(t.field,t.order):void 0,r=o=>{n&&o.sort(n)};if((a=this.params.groupby)!=null&&a.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const o=this.params.groupby.map(u=>Re(u)),s=o.length>1?mu(this._data,...o):XD(this._data,o[0]);this.facetBatches.clear();for(const[u,l]of g0(s))this.facetBatches.set(u,l)}for(const o of this.facetBatches.values())r(o);if(this.children.length)for(const[o,s]of this.facetBatches.entries()){if(o){const u={type:"facet",facetId:o};for(const l of this.children)l.beginBatch(u)}for(const u of s)this._propagate(u)}super.complete();for(const o of this.observers)o(this)}getData(){switch(this._checkStatus(),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const t=this.facetBatches;return{[Symbol.iterator]:function*(){for(const r of t.values())for(let i=0;i<r.length;i++)yield r[i]}}}}}visitData(t){this._checkStatus();for(const n of this.facetBatches.values())for(let r=0;r<n.length;r++)t(n[r])}getItemCount(){let t=0;for(const n of this.facetBatches.values())t+=n.length;return t}_checkStatus(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")}}function XD(e,t){const n=new Map;for(let r=0,i=e.length;r<i;r++){const a=e[r],o=t(a);let s=n.get(o);s||(s=[],n.set(o,s)),s.push(a)}return n}class Rf{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(t,n){let r=this.length++;for(;r>0;){const i=r-1>>1,a=this.values[i];if(n>=a)break;this.ids[r]=this.ids[i],this.values[r]=a,r=i}this.ids[r]=t,this.values[r]=n}pop(){if(this.length===0)return;const t=this.ids[0];if(this.length--,this.length>0){const n=this.ids[0]=this.ids[this.length],r=this.values[0]=this.values[this.length],i=this.length>>1;let a=0;for(;a<i;){let o=(a<<1)+1;const s=o+1;let u=this.ids[o],l=this.values[o];const f=this.values[s];if(s<this.length&&f<l&&(o=s,u=this.ids[s],l=f),l>=r)break;this.ids[a]=u,this.values[a]=l,a=o}this.ids[a]=n,this.values[a]=r}return t}peek(){if(this.length!==0)return this.ids[0]}peekValue(){if(this.length!==0)return this.values[0]}shrink(){this.ids.length=this.values.length=this.length}}class KD extends et{get behavior(){return Un}constructor(t){super(),this.params=t,this.startAccessor=Re(t.start),this.endAccessor=Re(t.end),this.chromAccessor=t.chrom?Re(t.chrom):n=>{},this.weightAccessor=t.weight?Re(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 Rf}reset(){super.reset(),this.initialize()}initialize(){const t=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,a=this.endAccessor,o=this.chromAccessor,s=this.weightAccessor;let u,l,f,c=0,h;const d=this.ends;d.clear();const p=(y,w,_)=>{if(y==w)return;let C=!1;u&&(u[t]===_?(u[n]=w,C=!0):u[t]!=0&&this._propagate(u)),C||(u=this.createSegment(y,w,_,f))},m=()=>{let y;for(;(y=d.peekValue())!==void 0;)p(h,y,c),h=y,c-=d.pop();h=void 0,u&&(this._propagate(u),u=void 0)};this.handle=y=>{const w=i(y);let _;for(;(_=d.peekValue())!==void 0&&_<w;)p(h,_,c),h=_,c-=d.pop();if(r){let E=o(y);E!==l&&(m(),f=E,l=f)}h!==void 0&&p(h,w,c),h=w;const C=s(y);c+=C,d.push(C,a(y))},this.complete=()=>{m(),super.complete()}}}function JD(e,t,n=0,r=e.length){const i=new Rf,a=r-n;let o;for(o=0;o<t&&o<a;o++)i.push(o,e[n+o]);for(;o<a;o++){const l=e[n+o];l>=i.peekValue()&&(i.push(o,l),i.pop())}const s=[];let u;for(;(u=i.pop())!==void 0;)s.push(n+u);return s.reverse()}class e9{constructor(t,n=-1/0,r=1/0){this.maxSize=t,this.lowerLimit=n,this.upperLimit=r;const i=this.maxSize*2+1;this.lowerLimits=new Float64Array(i),this.upperLimits=new Float64Array(i),this.lowerChildren=new Int32Array(i),this.upperChildren=new Int32Array(i),this.reset()}reset(){this.lowerLimits.fill(0),this.upperLimits.fill(0),this.lowerChildren.fill(0),this.upperChildren.fill(0),this.n=1,this.lowerLimits[0]=this.lowerLimit,this.upperLimits[0]=this.upperLimit}_findSlot(t,n,r=0){if(t>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const a=this._findSlot(t,n,i);return a>=0?a:this._findSlot(t,n,this.upperChildren[r])}else return r}else return-1}reserve(t,n){if(n-t<=0)throw new Error("Cannot reserve an empty or negative-size slot!");if(this.n+1>this.lowerLimits.length)return!1;const r=this._findSlot(t,n);if(r<0)return!1;const i=this.n++,a=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=t,this.lowerLimits[a]=n,this.upperLimits[a]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=a,!0}}class t9 extends et{get behavior(){return s0}constructor(t,n){if(super(),this.params=t,this._data=[],this.channel=t.channel??"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=Re(this.params.pos),this.posBisector=gu(this.posAccessor),this.scoreAccessor=Re(this.params.score),this.widthAccessor=Re(this.params.width),this.laneAccessor=this.params.lane?Re(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 e9(200));this.schedule(),super.complete()}_filterAndPropagate(){var o;super.reset();const t=this.resolution.getScale(),n=(o=this.resolution.members[0].view.coords)==null?void 0:o[this.channel=="x"?"width":"height"];if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=t.domain(),i=70,a=JD(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of a){const u=this._data[s],l=t(this.posAccessor(u))*n,f=this.widthAccessor(u)/2+this.padding;this.reservationMaps.get(this.laneAccessor(u)).reserve(l-f,l+f)&&this._propagate(u)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(t){this._data.push(t)}}class n9 extends et{constructor(t){super(),this.params=t,this.predicate=void 0}initialize(){this.predicate=Nu(this.params.expr,this.getGlobalObject())}handle(t){this.predicate(t)&&this._propagate(t)}}class r9 extends et{get behavior(){return Un}constructor(t){super();const n=t.index;if(t.fields){const r=Lt(t.fields).map(a=>Re(a)),i=Lt(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=a=>{const o=r.map((u,l)=>u(a)??[]),s=o[0].length;for(let u=0;u<s;u++){const l=Object.assign({},a);for(let f=0;f<r.length;f++)l[i[f]]=u<o[f].length?o[f][u]:null;n&&(l[n]=u),this._propagate(l)}}}else this.handle=r=>{for(let i=0;i<r.length;i++){const a=Object.assign({},r[i]);n&&(a[n]=i),this._propagate(a)}}}}const i9="0".charCodeAt(0);function*a9(e,t=","){const n=t.charCodeAt(0);let r=0;for(let i=0;i<e.length;i++){const a=e.charCodeAt(i);a==n?(yield r,r=0):r=r*10+a-i9}yield r}class o9 extends et{get behavior(){return Un}constructor(t){super();const n=Re(t.exons??"exons"),r=Re(t.start??"start"),[i,a]=t.as||["exonStart","exonEnd"];this.handle=o=>{let s=r(o),u=s,l=!0;const f=n(o);for(const c of a9(f)){if(l)u=s+c;else{s=u+c;const h=Object.assign({},o);h[i]=u,h[a]=s,this._propagate(h)}l=!l}}}}class s9 extends et{get behavior(){return Un}constructor(t){super();const n=Lt(t.field).map(a=>Re(a)),r=Lt(t.separator),i=Lt(t.as||t.field);if(n.length!==r.length||n.length!==i.length)throw new Error(`Lengths of "separator" (${r.length}), "fields" (${n.length}), and "as" (${i.length}) do not match!`);this.handle=a=>{if(n.some(u=>!u(a)))return;const o=n.map((u,l)=>u(a).split(r[l]));l9(o,a);const s=o[0].length;for(let u=0;u<s;u++){const l=Object.assign({},a);for(let f=0;f<n.length;f++)l[i[f]]=o[f][u];this._propagate(l)}}}}function l9(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 u9 extends et{get behavior(){return Vr}constructor(t){super(),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=Nu(this.params.expr,this.getGlobalObject())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class rw extends et{get behavior(){return Vr}constructor(t,n){super();const r=t.channel??"x";if(!["x","y"].includes(r))throw new Error("Invalid channel: "+r);const i=n.getScaleResolution(r).getGenome();if(!i)throw new Error("LinearizeGenomicCoordinate transform requires a locus scale!");const a=Re(t.chrom),o=Lt(t.pos).map(p=>Re(p)),s=Lt(t.as);if(o.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const u=Lt(t.offset);let l;if(u.length==0)l=new Array(o.length).fill(0);else if(u.length==1)l=new Array(o.length).fill(u[0]);else if(u.length==o.length)l=u;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(t.offset)}!`);const f=new Function("datum","chromOffset","posAccessors",s.map((p,m)=>`datum[${JSON.stringify(p)}] = chromOffset + +posAccessors[${m}](datum) - ${l[m]};`).join(`
281
+ `));let c,h=0;const d=p=>{if(p!==c){if(h=i.cumulativeChromPositions.get(p),h===void 0)throw new Error("Unknown chromosome/contig: "+p);c=p}return h};this.handle=p=>{f(p,d(a(p)),o),this._propagate(p)}}}const iw={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 f9 extends et{get behavior(){return Vr}constructor(t){super();const n=i0(iw),r=Re(t.field),i=t.as,a=t.fontSize;this.handle=o=>{const s=r(o);s!==void 0?o[i]=n.measureWidth(s,a):o[i]=0,this._propagate(o)}}}const c9=65536;class h9 extends et{get behavior(){return Vr}constructor(t){super(),this.params=t}reset(){super.reset(),this.initialize()}initialize(){const t=this.params,n=t.as||"lane",r=Ct(t.spacing)?t.spacing:1,i=Re(t.start),a=Re(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const o=new Float64Array(c9),s=Re(t.preference),u=t.preferredOrder;let l=1/0;this.handle=f=>{const c=i(f);c<l&&o.fill(-1/0),l=c;const h=u.indexOf(s(f));let d=-1;if(h>=0&&o[h]<c)d=h;else{const p=i(f);for(d=0;d<o.length&&!(o[d]<p);d++);if(d>=o.length)throw new Error("Out of lanes!")}o[d]=a(f)+r,f[n]=d,this._propagate(f)}}else{const o=new Rf,s=new Rf;let u=-1/0,l=0;this.handle=f=>{const c=i(f);for(;o.length&&(o.peekValue()<=c||c<u);){const d=o.pop();s.push(d,d)}u=c;let h=s.pop();h===void 0&&(h=l++),f[n]=h,this._propagate(f),o.push(h,a(f)+r)}}}}class d9 extends et{get behavior(){return Un}constructor(t){if(super(),t.as&&t.as.length!=t.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=t.fields.map(i=>Re(i)),r=t.as?t.as:n.map(xa);this.handle=i=>{const a={};for(let o=0;o<n.length;o++)a[r[o]]=n[o](i);this._propagate(a)}}}class p9 extends et{get behavior(){return Vr}constructor(t){super();const n=new RegExp(t.regex),r=typeof t.as=="string"?[t.as]:t.as,i=Re(t.field);this.handle=a=>{const o=i(a);if(Pe(o)){const s=o.match(n);if(s){if(s.length-1!=r.length)throw new Error('The number of RegEx groups and the length of "as" do not match!');for(let u=0;u<r.length;u++)a[r[u]]=s[u+1]}else if(t.skipInvalidInput)for(let u=0;u<r.length;u++)a[r[u]]=void 0;else throw new Error(`"${o}" does not match the given regex: ${n.toString()}`)}else if(!t.skipInvalidInput)throw new Error(`Trying to match a non-string field. Encountered type: ${typeof o}, field content: "${o}".`);this._propagate(a)}}}class g9 extends et{get behavior(){return Un}constructor(t){super();const n=Lt(t.columnRegex).map(h=>new RegExp(h)),r=Lt(t.asValue);if(n.length!=r.length)throw new Error('Lengths of "columnRegex" and "as" are not equal!');const i=t.skipRegex?new RegExp(t.skipRegex):void 0,a=t.asKey||"sample";let o,s,u;const l=h=>{var y;const d=Object.keys(h);for(const w of n)if(!d.some(_=>w.test(_)))throw new Error(`No columns matching the regex ${w.toString()} found in the data!`);const p=new Map;for(const[w,_]of n.entries())for(const C of d){const E=(y=_.exec(C))==null?void 0:y[1];if(E!==void 0){let k=p.get(E);k||(k=[],p.set(E,k)),k[w]=C}}o=[...p.entries()],s=d.filter(w=>!n.some(_=>_.test(w))&&!(i&&i.test(w)));const m=[...s.map(w=>JSON.stringify(w)+": datum["+JSON.stringify(w)+"]"),JSON.stringify(a)+": sampleId",...r.map((w,_)=>JSON.stringify(w)+`: datum[attrs[${_}]]`)];u=new Function("datum","sampleId","attrs",`return {
282
+ `+m.join(`,
278
283
  `)+`
279
- };`)},f=h=>{a||l(h);for(const[d,p]of a){const b=u(h,d);for(let y=0;y<p.length;y++)b[r[y]]=h[p[y]];this._propagate(b)}},c=h=>{l(h),f(h),this.handle=f};this.handle=c,this.beginBatch=h=>{ky(h)&&(this.handle=c),super.beginBatch(h)}}}class s9 extends et{get behavior(){return Vr}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const t=this.params,n=t.as||["y0","y1"],r=t.sort?Yg(t.sort.field,t.sort.order):void 0,i=t.field?Re(t.field):()=>1,o=t.groupby.map(f=>Re(f)),a=K_(this.buffer,f=>o.map(c=>c(f)).join()).map(f=>f[1]);let s=f=>!0;if(t.baseField){const f=Re(t.baseField);s=c=>f(c)!==null}let u,l;switch(t.offset){case"normalize":u=(f,c)=>f/c,l=(f,c)=>bu(f,c);break;case"center":u=(f,c)=>f-c/2,l=(f,c)=>bu(f,c);break;case"information":{const f=Math.log2(t.cardinality??4);u=(c,h)=>c/h,l=(c,h)=>{const p=bu(c,_=>+!s(_)),b=bu(c,h),y=b-p;let w=0;for(let _=0;_<c.length;_++){const C=c[_];if(s(C)){const E=h(C)/y;w-=E*Math.log2(E)}}return y/(f-(w+0))*(y/b)}}break;default:u=(f,c)=>f,l=(f,c)=>1}for(const f of a){r&&f.sort(r);const c=l(f,i);let h=0;for(const d of f){const p=h+i(d);s(d)&&(d[n[0]]=u(h,c),d[n[1]]=u(p,c),this._propagate(d),h=p)}}super.complete()}}class l9 extends et{get behavior(){return On}constructor(t){super();const n=Re(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 u=0;u<s.length;u++){const l=Object.assign({},a);l[r]=u,l[i]=s.charAt(u),this._propagate(l)}}}}class u9 extends et{get behavior(){return On}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const n=this.params.groupby,r=n.map(o=>Re(o)),i=gu(this.buffer,...r);for(const[o,a]of c0(i)){const s={count:a.length};for(let u=0;u<n.length;u++)s[n[u]]=o[u];this._propagate(s)}super.complete()}}const f9="_uniqueId",tw=1e4,nw=[null];class rw extends et{get behavior(){return Vr}constructor(t){super(),this.params=t,this.as=t.as??f9,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%tw==0&&(this._id=this._getBlock()*tw),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const t=nw.length;return nw[t]=this,this._blocks.push(t),this._usedBlocks++,t}}const c9={aggregate:u9,collect:Ky,coverage:VD,filterScoredLabels:ZD,filter:WD,flatten:YD,flattenCompressedExons:$D,flattenDelimited:KD,flattenSequence:l9,formula:e9,identifier:rw,linearizeGenomicCoordinate:Jy,measureText:t9,pileup:r9,project:i9,regexExtract:o9,regexFold:a9,sample:Ty,stack:s9};function h9(e,t){const n=c9[e.type];if(n)return new n(e,t);throw new Error("Unknown transform: "+e.type)}function iw(e){if(!sw(e)&&!aw(e))return;const t={...e.format};if(t.type??(t.type=aw(e)&&d9(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 d9(e){var t;if(Array.isArray(e)&&(e=e[0]),e)return(t=e.match(/\.(csv|tsv|json)/))==null?void 0:t[1]}const ow=e=>typeof e!="object"?p9:g9,p9=e=>({data:e}),g9=e=>e;function aw(e){return"url"in e}class Ws extends et{get identifier(){}handle(t){throw new Error("Source does not handle incoming data!")}async load(){}}function sw(e){return"values"in e}class m9 extends Ws{constructor(t,n){var r;if(super(),this.params=t,typeof t.values=="string"&&!((r=t==null?void 0:t.format)!=null&&r.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}loadSynchronously(){const t=this.params.values;let n=[],r=i=>i;if(Array.isArray(t))t.length>0&&(n=t,r=ow(t[0]));else if(typeof t=="object")n=[t];else if(typeof t=="string")n=Km(t,iw(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 b9(e){return"url"in e}class y9 extends Ws{constructor(t,n){super(),this.params=t,this.baseUrl=n==null?void 0:n.getBaseUrl()}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const t=this.params.url,n=Array.isArray(t)?t:[t],r=async o=>Cu({baseURL:this.baseUrl}).load(o).catch(a=>{throw new Error(`Cannot fetch: ${this.baseUrl}${o}: ${a.message}`)}),i=(o,a)=>{try{const s=Km(o,iw(this.params));this.beginBatch({type:"file",url:a});for(const u of s)this._propagate(u)}catch(s){throw new Error(`Cannot parse: ${a}: ${s.message}`)}};this.reset(),await Promise.all(n.map(o=>r(o).then(i))),this.complete()}}function w9(e){return"sequence"in e}class v9 extends Ws{constructor(t,n){if(super(),this.sequence=t.sequence,!("start"in this.sequence))throw new Error("'start' is missing from sequence parameters!");if(!("stop"in this.sequence))throw new Error("'stop' is missing from sequence parameters!")}loadSynchronously(){const t=this.sequence.as||"data",n=this.sequence.step||1,r=this.sequence.stop;this.reset(),this.beginBatch({type:"file"});for(let i=this.sequence.start;i<r;i+=n)this._propagate({[t]:i});this.complete()}async load(){this.loadSynchronously()}}class h0 extends Ws{constructor(n,r){super();Kn(this,"initializedPromise",Promise.resolve());if(this.view=n,r){if(r!=="x"&&r!=="y")throw new Error(`Invalid channel specified for the dynamic data source: ${r}. Must be either "x" or "y"`)}else throw new Error('No channel has been specified for the dynamic data source. Must be either "x" or "y".');if(this.channel=r,this.scaleResolution=this.view.getScaleResolution(r),!this.scaleResolution){const o=[`The dynamic data source cannot find a resolved scale for channel "${r}".`];throw this.view instanceof Yt||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)}getAxisLength(){const n=this.scaleResolution.members.map(r=>{var i;return(i=r.view.coords)==null?void 0:i[this.channel==="x"?"width":"height"]}).filter(r=>r>0);return n.length?n.reduce((r,i)=>Math.min(r,i),1e4):0}get genome(){return this.scaleResolution.getGenome()}async onDomainChanged(n,r){}setLoadingStatus(n){this.view.context.setDataLoadingStatus(this.view,n)}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(),u0(this.view),this.requestRender()}}class x9 extends h0{constructor(n,r){const i={axis:{},...n};super(r,i.channel);Kn(this,"ticks",[]);this.params=n}async onDomainChanged(){const n=this.scaleResolution.getScale(),r=this.params.axis,i=this.getAxisLength(),o=l=>25+60*S1(100,700,l),a=Ct(r.tickCount)?r.tickCount:Math.round(i/o(i)),s=Py(n,a,r.tickMinStep),u=r.values?Ly(n,r.values,s):oD(n,s);if(!Iu(u,this.ticks)){this.ticks=u;const l=sD(n,a,r.format);this.publishData([u.map(f=>({value:f,label:l(f)}))])}}}class A9 extends h0{constructor(t,n){super(n,t.channel)}async load(){this.publishData([this.genome.chromosomes])}}function Ys(e,t){return!t||/^(data:|([A-Za-z]+:)?\/\/)/.test(e)||e.startsWith("/")?e:(t.endsWith("/")||(t+="/"),t+e)}function d0(e,t,n=!0){let r,i=a=>{};return function(...s){return new Promise((u,l)=>{const f=()=>{clearTimeout(r),i=c=>{},u(e(...s))};n&&i("debounced"),clearTimeout(r),i=l,r=window.setTimeout(f,t)})}}class Qs extends h0{constructor(){super(...arguments);re(this,Da,new AbortController);re(this,Ql,[0,0]);Kn(this,"params")}setupDebouncing(n){n.debounce>0&&(n.debounceMode=="domain"?this.onDomainChanged=d0(this.onDomainChanged.bind(this),n.debounce,!1):n.debounceMode=="window"&&(this.loadInterval=d0(this.loadInterval.bind(this),n.debounce,!1)))}async onDomainChanged(n){var o;const r=((o=this.params)==null?void 0:o.windowSize)??-1;if(n[1]-n[0]>r)return;const i=this.quantizeInterval(n,r);this.checkAndUpdateLastInterval(i)&&(await this.initializedPromise,this.loadInterval(i))}async loadInterval(n){}async discretizeAndLoad(n,r){W(this,Da).abort(),this.setLoadingStatus(!0),Je(this,Da,new AbortController);const i=W(this,Da).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(!1),a}catch(a){if(!i.aborted)throw this.setLoadingStatus(!1),a}}quantizeInterval(n,r){return[Math.max(Math.floor(n[0]/r-1)*r,0),Math.min(Math.ceil(n[1]/r+1)*r,this.genome.totalSize)]}checkAndUpdateLastInterval(n){return Iu(W(this,Ql),n)?!1:(Je(this,Ql,n),!0)}}Da=new WeakMap,Ql=new WeakMap;class E9 extends Qs{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(()=>Dw),Promise.resolve().then(()=>uM),Promise.resolve().then(()=>Ks)]).then(([{Buffer:o},{IndexedFasta:a},{RemoteFile:s}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=o));const u=l=>new s(Ys(l,this.view.getBaseUrl()));this.fasta=new a({fasta:u(this.params.url),fai:u(this.params.indexUrl??this.params.url+".fai")}),i()})})}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 _9 extends Qs{constructor(n,r){const i={pixelsPerBin:2,channel:"x",debounce:200,debounceMode:"window",...n};super(r,i.channel);re(this,Fa,[]);re(this,Ra,void 0);if(this.params=i,!this.params.url)throw new Error("No URL provided for BigWigSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(o=>{Promise.all([Promise.resolve().then(()=>I3),Promise.resolve().then(()=>Ks)]).then(([{BigWig:a},{RemoteFile:s}])=>{Je(this,Ra,new a({filehandle:new s(Ys(this.params.url,this.view.getBaseUrl()))})),W(this,Ra).getHeader().then(u=>{Je(this,Fa,u.zoomLevels.map(l=>l.reductionLevel).reverse()),W(this,Fa).push(1),o()})})})}async onDomainChanged(n){await this.initializedPromise;const r=this.getAxisLength()||700,i=S9(n,r,W(this,Fa)),o=Math.max(i*r,5e3),a=this.quantizeInterval(n,o);this.checkAndUpdateLastInterval(a)&&this.loadInterval(a,i)}async loadInterval(n,r){const i=.5/r/this.params.pixelsPerBin,o=await this.discretizeAndLoad(n,(a,s)=>W(this,Ra).getFeatures(a.chrom,a.startPos,a.endPos,{scale:i,signal:s}).then(u=>u.map(l=>({chrom:a.chrom,start:l.start,end:l.end,score:l.score}))));o&&this.publishData(o)}}Fa=new WeakMap,Ra=new WeakMap;function S9(e,t,n){const r=(e[1]-e[0])/t;return n.find(i=>i<r)??n.at(-1)}class C9 extends Qs{constructor(n,r){const i={channel:"x",windowSize:1e6,debounce:200,debounceMode:"window",...n};super(r,i.channel);Kn(this,"parser");Kn(this,"bbi");if(this.params=i,!this.params.url)throw new Error("No URL provided for BigBedSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(o=>{Promise.all([Promise.resolve().then(()=>iO),Promise.resolve().then(()=>I3),Promise.resolve().then(()=>Ks)]).then(([a,{BigBed:s},{RemoteFile:u}])=>{const l=a.default;this.bbi=new s({filehandle:new u(Ys(this.params.url,this.view.getBaseUrl()))}),this.bbi.getHeader().then(async f=>{this.parser=new l({autoSql:f.autoSql}),o()})})})}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.parser.parseLine(`${i.chrom} ${s.start} ${s.end} ${s.rest}`,{uniqueId:s.uniqueId}))));r&&this.publishData(r)}}class k9 extends Qs{constructor(n,r){const i={channel:"x",windowSize:2e4,debounce:200,debounceMode:"domain",...n};super(r,i.channel);re(this,go,void 0);Kn(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(()=>_O),Promise.resolve().then(()=>Ks)]).then(([{BamFile:a},{RemoteFile:s}])=>{const u=l=>new s(Ys(l,this.view.getBaseUrl()));Je(this,go,new a({bamFilehandle:u(this.params.url),baiFilehandle:u(this.params.indexUrl??this.params.url+".bai")})),W(this,go).getHeader().then(l=>{var h,d;const f=this.genome.hasChrPrefix(),c=(d=(h=W(this,go).indexToChr)==null?void 0:h[0])==null?void 0:d.refName.startsWith("chr");f&&!c?this.chrPrefixFixer=p=>p.replace("chr",""):!f&&c&&(this.chrPrefixFixer=p=>"chr"+p),o()})})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,o)=>W(this,go).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)}}go=new WeakMap;class T9 extends Qs{constructor(n,r){const i={channel:"x",windowSize:3e6,debounce:200,debounceMode:"domain",...n};super(r,i.channel);re(this,Xl,void 0);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(()=>Dw),Promise.resolve().then(()=>MO),Promise.resolve().then(()=>Ks)]).then(([{Buffer:a},{TabixIndexedFile:s},{RemoteFile:u}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=a));const l=f=>new u(Ys(f,this.view.getBaseUrl()));Je(this,Xl,new s({filehandle:l(this.params.url),tbiFilehandle:l(this.params.indexUrl??this.params.url+".tbi")})),o()})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,o)=>{const a=[];return await W(this,Xl).getLines(i.chrom,i.startPos,i.endPos,{lineCallback:s=>{a.push(s)},signal:o}),this._parseFeatures(a)});r&&this.publishData(r)}_parseFeatures(n){return[]}}Xl=new WeakMap;class I9 extends T9{constructor(n,r){super(n,r);re(this,$l,void 0);Promise.resolve().then(()=>yz).then(i=>{Je(this,$l,i.default)})}_parseFeatures(n){var i;return(i=W(this,$l))==null?void 0:i.parseStringSync(n.join(`
280
- `),{parseSequences:!1})}}$l=new WeakMap;function B9(e,t){if(sw(e))return new m9(e,t);if(b9(e))return new y9(e,t);if(w9(e))return new v9(e,t);if(D9(e))return z9(e.lazy,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function D9(e){return"lazy"in e}function F9(e){return(e==null?void 0:e.type)=="axisTicks"}function R9(e){return(e==null?void 0:e.type)=="axisGenome"}function M9(e){return(e==null?void 0:e.type)=="indexedFasta"}function P9(e){return(e==null?void 0:e.type)=="bigwig"}function L9(e){return(e==null?void 0:e.type)=="bigbed"}function N9(e){return(e==null?void 0:e.type)=="bam"}function O9(e){return(e==null?void 0:e.type)=="gff3"}function z9(e,t){if(F9(e))return new x9(e,t);if(R9(e))return new A9(e,t);if(M9(e))return new E9(e,t);if(P9(e))return new _9(e,t);if(L9(e))return new C9(e,t);if(N9(e))return new k9(e,t);if(O9(e))return new I9(e,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function U9(e){const t=Object.keys(e).filter(r=>typeof r=="string"),n=new Function("source","return { "+t.map(r=>JSON.stringify(r)).map(r=>`${r}: source[${r}]`).join(`,
281
- `)+" };");return n.properties=t,n}class Df extends et{get behavior(){return On}constructor(){super();const t=n=>{const r=U9(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=t,this.beginBatch=n=>{ky(n)&&(this.handle=t),super.beginBatch(n)}}}function G9(e){return"name"in e}class lw extends Ws{constructor(n,r,i){super();re(this,Kl,void 0);this.provider=i,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){Je(this,Kl,n),this.loadSynchronously()}loadSynchronously(){const n=W(this,Kl)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=ow(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()}}Kl=new WeakMap;class uw{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 lw&&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 H9(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 fw(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=fw(a,t,n);if(s==="stop")return s}return(o=t.postOrder)==null?void 0:o.call(t,e)}function V9(e,t){return fw(e,t,n=>n.children)}function j9(e,t){const n=[];let r;const i=t??new uw,o=[];function a(c,h=()=>{}){if(!r)throw h()||new Error("Cannot append data flow node, no parent exist!");return r.addChild(c),r=c,c}function s(c,h){return a(c,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${h?JSON.stringify(h):""}`))}function u(c,h){for(const d of c){let p;try{p=h9(d,h)}catch(b){throw console.warn(b),new Error(`Cannot initialize "${d.type}" transform: ${b}`)}p.behavior&Vr&&s(new Df),s(p)}}const l=c=>{if(n.push(r),c.spec.data){const h=G9(c.spec.data)?new lw(c.spec.data,c,c.context.getNamedDataFromProvider):B9(c.spec.data,c);r=h,i.addDataSource(h,c)}if(c.spec.transform&&u(c.spec.transform,c),c instanceof Yt){if(!r)throw new Error(`A unit view (${c.getPathString()}) has no (inherited) data source`);const h=q9(c);if(h){o.push(h.rewrite);for(const p of h.transforms)s(p)}c.mark.isPickingParticipant()&&(s(new Df),s(new rw({type:"identifier"})));const d=new Ky({type:"collect",groupby:c.getFacetFields(),sort:Z9(c,h==null?void 0:h.rewrittenEncoding)});a(d),i.addCollector(d,c)}},f=H9(e.getDescendants(),c=>c.dataParent);for(const c of f)V9(c,{preOrder:h=>l(h.ref),postOrder:()=>{r=n.pop()}});return o.forEach(c=>c()),i}function q9(e){var o;const t=[],n={},r=[];for(const[a,s]of Object.entries(e.getEncoding())){const u=a;Rs(u)&&Zb(s)&&r.push({channel:u,chromPosDef:s})}const i=gu(r,a=>Li(a.channel),a=>a.chromPosDef.chrom);for(const[a,s]of i.entries())for(const[u,l]of s.entries()){const f=[],c=[],h=[];for(const{channel:d,chromPosDef:p}of l){const b=_=>_.replace(/[^A-Za-z0-9_]/g,""),y=["_linearized_",b(p.chrom),"_",b(p.pos)].join(""),w={...((o=e.spec.encoding)==null?void 0:o[d])??e.getEncoding()[d]??{},field:y};delete w.chrom,delete w.pos,!w.type&&p.type&&(w.type=p.type),n[d]=w,f.push(p.pos),h.push(p.offset??0),c.push(y)}t.push(new Df),t.push(new Jy({type:"linearizeGenomicCoordinate",channel:a,chrom:u,pos:f,offset:h,as:c},e))}return t.length?{transforms:t,rewrittenEncoding:n,rewrite:()=>{e.spec.encoding={...e.spec.encoding,...n},wy(e.mark,"encoding")}}:void 0}function Z9(e,t){var r;const n={...e.getEncoding(),...t}.x;if(Ut(n)&&(r=e.getScaleResolution("x"))!=null&&r.isZoomable()){if(Pi(n))return{field:n.field};if(!Fs(n))throw new Error("A zoomable x channel must be mapped to a field.")}}function cw(e,t=void 0){if(e.parent!==t)return!1;for(const n of e.children)if(!cw(n,e))return!1;return!0}function p0(e,t=!1){if(e.behavior&r0&&(t=!0),e instanceof Df)if(t)t=!1;else{const n=e.children[0];e.excise(),n&&p0(n,t);return}e.behavior&On&&(t=!1);for(let n=0,r=e.children.length;n<r;n++)p0(e.children[n],t||r>1)}function W9(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 Y9(e){if(p0(e),!cw(e))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function Q9(e){for(const t of e.dataSources)Y9(t);W9(e)}function X9(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 $9(e){for(const t of Po){const n=e.getScaleResolution(t);n&&!n.name&&n.isZoomable()&&(n.name=`${t}_at_root`)}}async function K9(e,t,n){var a;if(!e.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(e));const r=Cu({baseURL:t}),i=e.import.url,o=JSON.parse(await r.load(i).catch(s=>{throw new Error(`Could not load imported view spec: ${i}
282
- Reason: ${s.message}`)}));if(n.isViewSpec(o))return o.baseUrl=(a=i.match(/^[^?#]*\//))==null?void 0:a[0],o;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(e)}`)}function J9(e){const t=e.getSize().addPadding(e.getOverhang()),n=r=>r.grow>0?void 0:r.px;return{width:n(t.width),height:n(t.height)}}function or(e){return()=>e}const Tn=class Tn{static create(t,n,r,i){return new Tn(or(t),or(n),or(r),or(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"?or(i):typeof i=="function"?i:this._passThrough(r)};return new Tn(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new Tn(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 Tn(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 Tn(()=>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 Tn(()=>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 Tn(or(this.x),or(this.y),or(this.width),or(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)}`}};Kn(Tn,"ZERO",Tn.create(0,0,0,0));let ar=Tn;class hw{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class dw extends hw{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=gu(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(l=>r(l)));let u;for(const l of s){const f=l.coords;f.equals(u)||this.batch.push(r(()=>{n=a.setViewport(f,l.clipRect)})),this.batch.push(i(l.callback)),u=l.coords}}}}class eF extends hw{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 tF{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 nF{constructor(t,n){this.x=t,this.y=n}equals(t){return t?t===this||t.x===this.x&&t.y===this.y:!1}}const rF=e=>new Promise(t=>setTimeout(t,e));function iF(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),u=typeof e.from=="number"?e.from:0,l=typeof e.to=="number"?e.to:1,f=e.easingFunction||(b=>b),c=b=>(b-a)/(s-a),h=b=>b*(l-u)+u,d=b=>Math.max(0,Math.min(1,b)),p=b=>{n!=null&&n.aborted?o("aborted"):(e.onUpdate(h(f(d(c(b))))),b<s?t(p):(e.onUpdate(h(f(1))),i()))};t(p)});return e.delay?n!=null&&n.aborted?Promise.reject("aborted"):rF(e.delay).then(r):r()}class oF{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 iF({requestAnimationFrame:n=>this.requestTransition(n),...t})}}class aF{constructor(t){this.genomes=new Map,this.baseUrl=t}async initialize(t){const n=new ID(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 sF="data:image/png;base64,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",lF={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class uF{constructor(t){this._webGLHelper=t,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new Er([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:e0(ew),texture:t?this._createTextureNow(sF):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(Pe(r)&&(r=lF[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=cF(r,n),o=this.fontRepository+pw(n.family)+"/"+i.replace(/\.\w+/,""),a=this._createTexture(o+".png"),s=this._loadFont(o+".json");t.texture=await a,t.metrics=await s}catch(r){console.log("Cannot load font. Using default.",r),t.metrics=this._defaultFontEntry.metrics,t.texture=this._defaultFontEntry.texture}}_loadFont(t){let n=this._fontPromises.get(t);return n||(n=fetch(t).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>e0(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=pw(t);let r=this._metadataPromises.get(n);return r||(r=fetch(this.fontRepository+n+"/METADATA.pb").then(i=>{if(!i.ok)throw new Error("Could not load font metadata: "+i.status);return i}).then(i=>i.text()).then(i=>fF(i)).catch(i=>{console.warn(i)}),this._metadataPromises.set(n,r)),r}getDefaultFont(){return this._defaultFontEntry}_createTexture(t){const n=this._webGLHelper.gl;return new Promise((r,i)=>{Us(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=Us(n,{src:t,min:n.LINEAR},(s,u,l)=>{s?a(s):o(u)})});return this._promises.push(i),r}}function pw(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function fF(e){const t=e.split(`
283
- `),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 cF(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 hF(e,t){const n=[];let r;for(const i of e.split(`
284
- `))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 dF{constructor(t,n){this.animator=t,this.disabled=!!n,this.damping=.015,this.acceleration=.3,this.accelerationThreshold=100,this.lowerLimit=.5,this.loop=!1,this.momentum=0,this.timestamp=0,this.callback=null,this._transitionCallback=this.animate.bind(this),this.clear()}clear(){this.momentum=0,this.timestamp=null,this.loop=null,this.callback=null}cancel(){this.loop&&(this.animator.cancelTransition(this._transitionCallback),this.clear())}setMomentum(t,n){if(this.disabled){n(t);return}t*this.momentum<0?this.momentum=0:Math.abs(t)>this.accelerationThreshold?this.momentum=Xg([this.momentum,t],this.acceleration):this.momentum=t,this.callback=n,this.loop||this.animate()}animate(t){this.callback(this.momentum);const n=t-this.timestamp||0;this.timestamp=t;const r=Math.abs(this.momentum);this.momentum=Math.sign(this.momentum)*Math.max(0,r-((r*this.damping)**1.5+.04)*n),Math.abs(this.momentum)>this.lowerLimit?(this.loop=!0,this.animator.requestTransition(this._transitionCallback)):this.clear()}}function pF(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 gw=new Map;async function gF(e,t,n){const r=e.symbol;let i=gw.get(r)??await yF(e.symbol);return i?(gw.set(r,i),mn`
284
+ };`)},f=h=>{o||l(h);for(let d=0;d<o.length;d++){const[p,m]=o[d],y=u(h,p,m);this._propagate(y)}},c=h=>{l(h),f(h),this.handle=f};this.handle=c,this.beginBatch=h=>{Dy(h)&&(this.handle=c),super.beginBatch(h)}}}class m9 extends et{get behavior(){return Vr}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const t=this.params,n=t.as||["y0","y1"],r=t.sort?Kg(t.sort.field,t.sort.order):void 0,i=t.field?Re(t.field):()=>1,a=t.groupby.map(f=>Re(f)),o=i4(this.buffer,f=>a.map(c=>c(f)).join()).map(f=>f[1]);let s=f=>!0;if(t.baseField){const f=Re(t.baseField);s=c=>f(c)!==null}let u,l;switch(t.offset){case"normalize":u=(f,c)=>f/c,l=(f,c)=>yu(f,c);break;case"center":u=(f,c)=>f-c/2,l=(f,c)=>yu(f,c);break;case"information":{const f=Math.log2(t.cardinality??4);u=(c,h)=>c/h,l=(c,h)=>{const p=yu(c,_=>+!s(_)),m=yu(c,h),y=m-p;let w=0;for(let _=0;_<c.length;_++){const C=c[_];if(s(C)){const E=h(C)/y;w-=E*Math.log2(E)}}return y/(f-(w+0))*(y/m)}}break;default:u=(f,c)=>f,l=(f,c)=>1}for(const f of o){r&&f.sort(r);const c=l(f,i);let h=0;for(const d of f){const p=h+i(d);s(d)&&(d[n[0]]=u(h,c),d[n[1]]=u(p,c),this._propagate(d),h=p)}}super.complete()}}class b9 extends et{get behavior(){return Un}constructor(t){super();const n=Re(t.field??"sequence"),[r,i]=t.as??["pos","sequence"];this.handle=a=>{const o=Object.assign({},a,{[i]:"",[r]:0}),s=n(a);for(let u=0;u<s.length;u++){const l=Object.assign({},o);l[r]=u,l[i]=s.charAt(u),this._propagate(l)}}}}class y9 extends et{get behavior(){return Un}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const n=this.params.groupby,r=n.map(a=>Re(a)),i=mu(this.buffer,...r);for(const[a,o]of g0(i)){const s={count:o.length};for(let u=0;u<n.length;u++)s[n[u]]=a[u];this._propagate(s)}super.complete()}}const w9="_uniqueId",aw=1e4,ow=[null];class sw extends et{get behavior(){return Vr}constructor(t){super(),this.params=t,this.as=t.as??w9,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%aw==0&&(this._id=this._getBlock()*aw),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const t=ow.length;return ow[t]=this,this._blocks.push(t),this._usedBlocks++,t}}const v9={aggregate:y9,collect:nw,coverage:KD,filterScoredLabels:t9,filter:n9,flatten:r9,flattenCompressedExons:o9,flattenDelimited:s9,flattenSequence:b9,formula:u9,identifier:sw,linearizeGenomicCoordinate:rw,measureText:f9,pileup:h9,project:d9,regexExtract:p9,regexFold:g9,sample:Fy,stack:m9};function x9(e,t){const n=v9[e.type];if(n)return new n(e,t);throw new Error("Unknown transform: "+e.type)}function lw(e){if(!cw(e)&&!fw(e))return;const t={...e.format};if(t.type??(t.type=fw(e)&&A9(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 A9(e){var t;if(Array.isArray(e)&&(e=e[0]),e)return(t=e.match(/\.(csv|tsv|json)/))==null?void 0:t[1]}const uw=e=>typeof e!="object"?E9:_9,E9=e=>({data:e}),_9=e=>e;function fw(e){return"url"in e}class Ws extends et{get identifier(){}handle(t){throw new Error("Source does not handle incoming data!")}async load(){}}function cw(e){return"values"in e}class S9 extends Ws{constructor(t,n){var r;if(super(),this.params=t,typeof t.values=="string"&&!((r=t==null?void 0:t.format)!=null&&r.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}loadSynchronously(){const t=this.params.values;let n=[],r=i=>i;if(Array.isArray(t))t.length>0&&(n=t,r=uw(t[0]));else if(typeof t=="object")n=[t];else if(typeof t=="string")n=n1(t,lw(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 C9(e){return"url"in e}class T9 extends Ws{constructor(t,n){super(),this.params=t,this.baseUrl=n==null?void 0:n.getBaseUrl()}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const t=this.params.url,n=Array.isArray(t)?t:[t],r=async a=>Tu({baseURL:this.baseUrl}).load(a).catch(o=>{throw new Error(`Cannot fetch: ${this.baseUrl}${a}: ${o.message}`)}),i=(a,o)=>{try{const s=n1(a,lw(this.params));this.beginBatch({type:"file",url:o});for(const u of s)this._propagate(u)}catch(s){throw new Error(`Cannot parse: ${o}: ${s.message}`)}};this.reset(),await Promise.all(n.map(a=>r(a).then(i))),this.complete()}}function k9(e){return"sequence"in e}class I9 extends Ws{constructor(t,n){if(super(),this.sequence=t.sequence,!("start"in this.sequence))throw new Error("'start' is missing from sequence parameters!");if(!("stop"in this.sequence))throw new Error("'stop' is missing from sequence parameters!")}loadSynchronously(){const t=this.sequence.as||"data",n=this.sequence.step||1,r=this.sequence.stop;this.reset(),this.beginBatch({type:"file"});for(let i=this.sequence.start;i<r;i+=n)this._propagate({[t]:i});this.complete()}async load(){this.loadSynchronously()}}class m0 extends Ws{constructor(n,r){super();Bn(this,"initializedPromise",Promise.resolve());if(this.view=n,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 a=[`The lazy data source cannot find a resolved scale for channel "${r}".`];throw this.view instanceof Yt||a.push('Make sure the view has a "shared" scale resolution as it is not a unit view.'),new Error(a.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)}getAxisLength(){const n=this.scaleResolution.members.map(r=>{var i;return(i=r.view.coords)==null?void 0:i[this.channel==="x"?"width":"height"]}).filter(r=>r>0);return n.length?n.reduce((r,i)=>Math.min(r,i),1e4):0}get genome(){return this.scaleResolution.getGenome()}async onDomainChanged(n,r){}setLoadingStatus(n){this.view.context.setDataLoadingStatus(this.view,n)}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(),d0(this.view),this.requestRender()}}class B9 extends m0{constructor(n,r){const i={axis:{},...n};super(r,i.channel);Bn(this,"ticks",[]);this.params=n}async onDomainChanged(){const n=this.scaleResolution.getScale(),r=this.params.axis,i=this.getAxisLength(),a=l=>25+60*I1(100,700,l),o=Ct(r.tickCount)?r.tickCount:Math.round(i/a(i)),s=zy(n,o,r.tickMinStep),u=r.values?Uy(n,r.values,s):dD(n,s);if(!Bu(u,this.ticks)){this.ticks=u;const l=gD(n,o,r.format);this.publishData([u.map(f=>({value:f,label:l(f)}))])}}}class D9 extends m0{constructor(t,n){super(n,t.channel)}async load(){this.publishData([this.genome.chromosomes])}}function Ys(e,t){return!t||/^(data:|([A-Za-z]+:)?\/\/)/.test(e)||e.startsWith("/")?e:(t.endsWith("/")||(t+="/"),t+e)}function b0(e,t,n=!0){let r,i=o=>{};return function(...s){return new Promise((u,l)=>{const f=()=>{clearTimeout(r),i=c=>{},u(e(...s))};n&&i("debounced"),clearTimeout(r),i=l,r=window.setTimeout(f,t)})}}class Qs extends m0{constructor(){super(...arguments);ne(this,Do,new AbortController);ne(this,$l,[0,0]);Bn(this,"params")}setupDebouncing(n){n.debounce>0&&(n.debounceMode=="domain"?this.onDomainChanged=b0(this.onDomainChanged.bind(this),n.debounce,!1):n.debounceMode=="window"&&(this.loadInterval=b0(this.loadInterval.bind(this),n.debounce,!1)))}async onDomainChanged(n){var a;const r=((a=this.params)==null?void 0:a.windowSize)??-1;if(n[1]-n[0]>r)return;const i=this.quantizeInterval(n,r);this.checkAndUpdateLastInterval(i)&&(await this.initializedPromise,this.loadInterval(i))}async loadInterval(n){}async discretizeAndLoad(n,r){W(this,Do).abort(),this.setLoadingStatus(!0),Xe(this,Do,new AbortController);const i=W(this,Do).signal,a=this.genome.continuousToDiscreteChromosomeIntervals(n);try{const o=await Promise.all(a.map(async s=>r(s,i)));if(!i.aborted)return this.setLoadingStatus(!1),o}catch(o){if(!i.aborted)throw this.setLoadingStatus(!1),o}}quantizeInterval(n,r){return[Math.max(Math.floor(n[0]/r-1)*r,0),Math.min(Math.ceil(n[1]/r+1)*r,this.genome.totalSize)]}checkAndUpdateLastInterval(n){return Bu(W(this,$l),n)?!1:(Xe(this,$l,n),!0)}}Do=new WeakMap,$l=new WeakMap;class F9 extends Qs{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(()=>Pw),Promise.resolve().then(()=>wM),Promise.resolve().then(()=>Ks)]).then(([{Buffer:a},{IndexedFasta:o},{RemoteFile:s}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=a));const u=l=>new s(Ys(l,this.view.getBaseUrl()));this.fasta=new o({fasta:u(this.params.url),fai:u(this.params.indexUrl??this.params.url+".fai")}),i()})})}async loadInterval(t){const n=await this.discretizeAndLoad(t,async(r,i)=>this.fasta.getSequence(r.chrom,r.startPos,r.endPos,{signal:i}).then(a=>({chrom:r.chrom,start:r.startPos,sequence:a})));n&&this.publishData([n])}}class R9 extends Qs{constructor(n,r){const i={pixelsPerBin:2,channel:"x",debounce:200,debounceMode:"window",...n};super(r,i.channel);ne(this,Fo,[]);ne(this,Ro,void 0);if(this.params=i,!this.params.url)throw new Error("No URL provided for BigWigSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(a=>{Promise.all([Promise.resolve().then(()=>R3),Promise.resolve().then(()=>Ks)]).then(([{BigWig:o},{RemoteFile:s}])=>{Xe(this,Ro,new o({filehandle:new s(Ys(this.params.url,this.view.getBaseUrl()))})),W(this,Ro).getHeader().then(u=>{Xe(this,Fo,u.zoomLevels.map(l=>l.reductionLevel).reverse()),W(this,Fo).push(1),a()})})})}async onDomainChanged(n){await this.initializedPromise;const r=this.getAxisLength()||700,i=M9(n,r,W(this,Fo)),a=Math.max(i*r,5e3),o=this.quantizeInterval(n,a);this.checkAndUpdateLastInterval(o)&&this.loadInterval(o,i)}async loadInterval(n,r){const i=.5/r/this.params.pixelsPerBin,a=await this.discretizeAndLoad(n,(o,s)=>W(this,Ro).getFeatures(o.chrom,o.startPos,o.endPos,{scale:i,signal:s}).then(u=>u.map(l=>({chrom:o.chrom,start:l.start,end:l.end,score:l.score}))));a&&this.publishData(a)}}Fo=new WeakMap,Ro=new WeakMap;function M9(e,t,n){const r=(e[1]-e[0])/t;return n.find(i=>i<r)??n.at(-1)}class P9 extends Qs{constructor(n,r){const i={channel:"x",windowSize:1e6,debounce:200,debounceMode:"window",...n};super(r,i.channel);Bn(this,"parser");Bn(this,"bbi");Bn(this,"parseLine");if(this.params=i,!this.params.url)throw new Error("No URL provided for BigBedSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(a=>{Promise.all([Promise.resolve().then(()=>pO),Promise.resolve().then(()=>R3),Promise.resolve().then(()=>Ks)]).then(([o,{BigBed:s},{RemoteFile:u}])=>{const l=o.default;this.bbi=new s({filehandle:new u(Ys(this.params.url,this.view.getBaseUrl()))}),this.bbi.getHeader().then(async f=>{this.parser=new l({autoSql:f.autoSql});try{const c=L9(this.parser);this.parseLine=(h,d)=>c(h,d.start,d.end,d.rest)}catch{this.parseLine=(h,d)=>this.parser.parseLine(`${h} ${d.start} ${d.end} ${d.rest}`)}a()})})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,a)=>this.bbi.getFeatures(i.chrom,i.startPos,i.endPos,{signal:a}).then(o=>o.map(s=>this.parseLine(i.chrom,s))));r&&this.publishData(r)}}function L9(e){const t=e.autoSql.fields.filter(m=>m.type).slice(3);let n=0,r="",i=0,a={};const o=" ",s=o.charCodeAt(0),u="0".charCodeAt(0),l="-".charCodeAt(0);function f(){let m=r.indexOf(o,n);m<0&&(m=i);const y=r.substring(n,m);return n=m+1,y}function c(){let m=0,y=r.charCodeAt(n),w=1;y===l&&(w=-1,n++,y=r.charCodeAt(n));do{if(y===s){n++;break}m=m*10+y-u,y=r.charCodeAt(++n)}while(n<i);return m*w}const h=t.map(m=>{const{name:y,type:w}=m;if(["ubyte","int","uint"].includes(w))return()=>{a[y]=c()};if(m.isNumeric)return()=>{a[y]=Number(f())};if(["char","string","lstring"].includes(w))return()=>{a[y]=f()};throw new Error("Unsupported type: "+w)});function d(m){r=m,i=m.length,n=0}function p(m,y,w,_){d(_),a={chrom:m,chromStart:y,chromEnd:w};for(let C=0,E=h.length;C<E;C++)h[C]();return a}return p}class N9 extends Qs{constructor(n,r){const i={channel:"x",windowSize:2e4,debounce:200,debounceMode:"domain",...n};super(r,i.channel);ne(this,pa,void 0);Bn(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(a=>{Promise.all([Promise.resolve().then(()=>MO),Promise.resolve().then(()=>Ks)]).then(([{BamFile:o},{RemoteFile:s}])=>{const u=l=>new s(Ys(l,this.view.getBaseUrl()));Xe(this,pa,new o({bamFilehandle:u(this.params.url),baiFilehandle:u(this.params.indexUrl??this.params.url+".bai")})),W(this,pa).getHeader().then(l=>{var h,d;const f=this.genome.hasChrPrefix(),c=(d=(h=W(this,pa).indexToChr)==null?void 0:h[0])==null?void 0:d.refName.startsWith("chr");f&&!c?this.chrPrefixFixer=p=>p.replace("chr",""):!f&&c&&(this.chrPrefixFixer=p=>"chr"+p),a()})})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,a)=>W(this,pa).getRecordsForRange(this.chrPrefixFixer(i.chrom),i.startPos,i.endPos,{signal:a}).then(o=>o.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)}}pa=new WeakMap;class O9 extends Qs{constructor(n,r){const i={channel:"x",windowSize:3e6,debounce:200,debounceMode:"domain",...n};super(r,i.channel);ne(this,Xl,void 0);if(this.params=i,!this.params.url)throw new Error("No URL provided for TabixSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(a=>{Promise.all([Promise.resolve().then(()=>Pw),Promise.resolve().then(()=>jO),Promise.resolve().then(()=>Ks)]).then(([{Buffer:o},{TabixIndexedFile:s},{RemoteFile:u}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=o));const l=f=>new u(Ys(f,this.view.getBaseUrl()));Xe(this,Xl,new s({filehandle:l(this.params.url),tbiFilehandle:l(this.params.indexUrl??this.params.url+".tbi")})),a()})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,a)=>{const o=[];return await W(this,Xl).getLines(i.chrom,i.startPos,i.endPos,{lineCallback:s=>{o.push(s)},signal:a}),this._parseFeatures(o)});r&&this.publishData(r)}_parseFeatures(n){return[]}}Xl=new WeakMap;class z9 extends O9{constructor(n,r){super(n,r);ne(this,Kl,void 0);Promise.resolve().then(()=>kz).then(i=>{Xe(this,Kl,i.default)})}_parseFeatures(n){var i;return(i=W(this,Kl))==null?void 0:i.parseStringSync(n.join(`
285
+ `),{parseSequences:!1})}}Kl=new WeakMap;function U9(e,t){if(cw(e))return new S9(e,t);if(C9(e))return new T9(e,t);if(k9(e))return new I9(e,t);if(G9(e))return Q9(e.lazy,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function G9(e){return"lazy"in e}function H9(e){return(e==null?void 0:e.type)=="axisTicks"}function V9(e){return(e==null?void 0:e.type)=="axisGenome"}function j9(e){return(e==null?void 0:e.type)=="indexedFasta"}function q9(e){return(e==null?void 0:e.type)=="bigwig"}function Z9(e){return(e==null?void 0:e.type)=="bigbed"}function W9(e){return(e==null?void 0:e.type)=="bam"}function Y9(e){return(e==null?void 0:e.type)=="gff3"}function Q9(e,t){if(H9(e))return new B9(e,t);if(V9(e))return new D9(e,t);if(j9(e))return new F9(e,t);if(q9(e))return new R9(e,t);if(Z9(e))return new P9(e,t);if(W9(e))return new N9(e,t);if(Y9(e))return new z9(e,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function $9(e){const t=Object.keys(e).filter(r=>typeof r=="string"),n=new Function("source","return { "+t.map(r=>JSON.stringify(r)).map(r=>`${r}: source[${r}]`).join(`,
286
+ `)+" };");return n.properties=t,n}class Mf extends et{get behavior(){return Un}constructor(){super();const t=n=>{const r=$9(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=t,this.beginBatch=n=>{Dy(n)&&(this.handle=t),super.beginBatch(n)}}}function X9(e){return"name"in e}class hw extends Ws{constructor(n,r,i){super();ne(this,Jl,void 0);this.provider=i,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){Xe(this,Jl,n),this.loadSynchronously()}loadSynchronously(){const n=W(this,Jl)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=uw(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()}}Jl=new WeakMap;class dw{constructor(){this._dataSourcesByHost=new Map,this._collectorsByHost=new Map,this._observers=new Map}get dataSources(){return[...new Set(this._dataSourcesByHost.values()).values()]}get collectors(){return[...this._collectorsByHost.values()]}addObserver(t,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(t)}_relayObserverCallback(t,n){const r=this._observers.get(n);if(r)for(const i of r)i(t)}addDataSource(t,n){this._dataSourcesByHost.set(n,t)}findDataSourceByKey(t){return this._dataSourcesByHost.get(t)}findNamedDataSource(t){let n,r=[];for(const[i,a]of this._dataSourcesByHost.entries())if(a instanceof hw&&t==a.identifier){if(n&&n!==a)throw new Error(`Found multiple instances of named data: ${t}. Data flow optimization is broken (it's a bug).`);n=a,r.push(i)}if(n)return{dataSource:n,hosts:r}}addCollector(t,n){this._collectorsByHost.set(n,t),t.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(t){return this._collectorsByHost.get(t)}initialize(){for(const t of this.dataSources)t.visit(n=>n.initialize())}}function K9(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 a=n.get(t(i.ref));a?a.children.push(i):r.push(i)}return r}function pw(e,t,n){var i,a;const r=(i=t.preOrder)==null?void 0:i.call(t,e);if(r)return r;for(const o of n(e)){const s=pw(o,t,n);if(s==="stop")return s}return(a=t.postOrder)==null?void 0:a.call(t,e)}function J9(e,t){return pw(e,t,n=>n.children)}function eF(e,t){const n=[];let r;const i=t??new dw,a=[];function o(c,h=()=>{}){if(!r)throw h()||new Error("Cannot append data flow node, no parent exist!");return r.addChild(c),r=c,c}function s(c,h){return o(c,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${h?JSON.stringify(h):""}`))}function u(c,h){for(const d of c){let p;try{p=x9(d,h)}catch(m){throw console.warn(m),new Error(`Cannot initialize "${d.type}" transform: ${m}`)}p.behavior&Vr&&s(new Mf),s(p)}}const l=c=>{if(n.push(r),c.spec.data){const h=X9(c.spec.data)?new hw(c.spec.data,c,c.context.getNamedDataFromProvider):U9(c.spec.data,c);r=h,i.addDataSource(h,c)}if(c.spec.transform&&u(c.spec.transform,c),c instanceof Yt){if(!r)throw new Error(`A unit view (${c.getPathString()}) has no (inherited) data source`);const h=tF(c);if(h){a.push(h.rewrite);for(const p of h.transforms)s(p)}c.mark.isPickingParticipant()&&(s(new Mf),s(new sw({type:"identifier"})));const d=new nw({type:"collect",groupby:c.getFacetFields(),sort:nF(c,h==null?void 0:h.rewrittenEncoding)});o(d),i.addCollector(d,c)}},f=K9(e.getDescendants(),c=>c.dataParent);for(const c of f)J9(c,{preOrder:h=>l(h.ref),postOrder:()=>{r=n.pop()}});return a.forEach(c=>c()),i}function tF(e){var a;const t=[],n={},r=[];for(const[o,s]of Object.entries(e.getEncoding())){const u=o;Rs(u)&&$b(s)&&r.push({channel:u,chromPosDef:s})}const i=mu(r,o=>Li(o.channel),o=>o.chromPosDef.chrom);for(const[o,s]of i.entries())for(const[u,l]of s.entries()){const f=[],c=[],h=[];for(const{channel:d,chromPosDef:p}of l){const m=_=>_.replace(/[^A-Za-z0-9_]/g,""),y=["_linearized_",m(p.chrom),"_",m(p.pos)].join(""),w={...((a=e.spec.encoding)==null?void 0:a[d])??e.getEncoding()[d]??{},field:y};delete w.chrom,delete w.pos,!w.type&&p.type&&(w.type=p.type),n[d]=w,f.push(p.pos),h.push(p.offset??0),c.push(y)}t.push(new Mf),t.push(new rw({type:"linearizeGenomicCoordinate",channel:o,chrom:u,pos:f,offset:h,as:c},e))}return t.length?{transforms:t,rewrittenEncoding:n,rewrite:()=>{e.spec.encoding={...e.spec.encoding,...n},Ey(e.mark,"encoding")}}:void 0}function nF(e,t){var r;const n={...e.getEncoding(),...t}.x;if(Ut(n)&&(r=e.getScaleResolution("x"))!=null&&r.isZoomable()){if(Pi(n))return"buildIndex"in n&&n.buildIndex?{field:n.field}:null;if(!Fs(n)){if(tf(n))throw new Error("A zoomable x channel must be mapped to a field.")}}}function gw(e,t=void 0){if(e.parent!==t)return!1;for(const n of e.children)if(!gw(n,e))return!1;return!0}function y0(e,t=!1){if(e.behavior&s0&&(t=!0),e instanceof Mf)if(t)t=!1;else{const n=e.children[0];e.excise(),n&&y0(n,t);return}e.behavior&Un&&(t=!1);for(let n=0,r=e.children.length;n<r;n++)y0(e.children[n],t||r>1)}function rF(e){const t=[...e._dataSourcesByHost.entries()],n=new Map;for(const r of t){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}e._dataSourcesByHost.clear();for(let[r,i]of t){const a=n.get(i.identifier);a&&(a.adoptChildrenOf(i),i=a),e.addDataSource(i,r)}}function iF(e){if(y0(e),!gw(e))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function aF(e){for(const t of e.dataSources)iF(t);rF(e)}function oF(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 sF(e){for(const t of Ma){const n=e.getScaleResolution(t);n&&!n.name&&n.isZoomable()&&(n.name=`${t}_at_root`)}}async function lF(e,t,n){var o;if(!e.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(e));const r=Tu({baseURL:t}),i=e.import.url,a=JSON.parse(await r.load(i).catch(s=>{throw new Error(`Could not load imported view spec: ${i}
287
+ Reason: ${s.message}`)}));if(n.isViewSpec(a))return a.baseUrl=(o=i.match(/^[^?#]*\//))==null?void 0:o[0],a;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(e)}`)}function uF(e){const t=e.getSize().addPadding(e.getOverhang()),n=r=>r.grow>0?void 0:r.px;return{width:n(t.width),height:n(t.height)}}function or(e){return()=>e}const kn=class kn{static create(t,n,r,i){return new kn(or(t),or(n),or(r),or(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"?or(i):typeof i=="function"?i:this._passThrough(r)};return new kn(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new kn(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 kn(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 kn(()=>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 kn(()=>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 kn(or(this.x),or(this.y),or(this.width),or(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)}`}};Bn(kn,"ZERO",kn.create(0,0,0,0));let sr=kn;class mw{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class bw extends mw{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=o=>()=>{t&&o()},i=o=>()=>{t&&n&&o()},a=mu(this.buffer.reverse(),o=>o.mark);for(const[o,s]of[...a.entries()].reverse()){if(!o.isReady())continue;this.batch.push(()=>{t=o.unitView.getEffectiveOpacity()>0}),this.batch.push(...o.prepareRender(this.globalOptions).map(l=>r(l)));let u;for(const l of s){const f=l.coords;f.equals(u)||this.batch.push(r(()=>{n=o.setViewport(f,l.clipRect)})),this.batch.push(i(l.callback)),u=l.coords}}}}class fF extends mw{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 cF{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 hF{constructor(t,n){this.x=t,this.y=n}equals(t){return t?t===this||t.x===this.x&&t.y===this.y:!1}}const dF=e=>new Promise(t=>setTimeout(t,e));function pF(e){const t=e.requestAnimationFrame||window.requestAnimationFrame,n=e.signal,r=()=>new Promise((i,a)=>{if(n!=null&&n.aborted)return a("aborted");const o=performance.now(),s=o+(e.duration||1e3),u=typeof e.from=="number"?e.from:0,l=typeof e.to=="number"?e.to:1,f=e.easingFunction||(m=>m),c=m=>(m-o)/(s-o),h=m=>m*(l-u)+u,d=m=>Math.max(0,Math.min(1,m)),p=m=>{n!=null&&n.aborted?a("aborted"):(e.onUpdate(h(f(d(c(m))))),m<s?t(p):(e.onUpdate(h(f(1))),i()))};t(p)});return e.delay?n!=null&&n.aborted?Promise.reject("aborted"):dF(e.delay).then(r):r()}class gF{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 pF({requestAnimationFrame:n=>this.requestTransition(n),...t})}}class mF{constructor(t){this.genomes=new Map,this.baseUrl=t}async initialize(t){const n=new ND(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 bF="data:image/png;base64,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",yF={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class wF{constructor(t){this._webGLHelper=t,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new _r([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:i0(iw),texture:t?this._createTextureNow(bF):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(Pe(r)&&(r=yF[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:t,style:n,weight:r};let a=this._fonts.get(i);return a||(a={metrics:void 0,texture:void 0},this._fonts.set(i,a),this._promises.push(this._loadFontEntry(a,i))),a}async _loadFontEntry(t,n){try{const r=await this._loadMetadata(n.family),i=xF(r,n),a=this.fontRepository+yw(n.family)+"/"+i.replace(/\.\w+/,""),o=this._createTexture(a+".png"),s=this._loadFont(a+".json");t.texture=await o,t.metrics=await s}catch(r){console.log("Cannot load font. Using default.",r),t.metrics=this._defaultFontEntry.metrics,t.texture=this._defaultFontEntry.texture}}_loadFont(t){let n=this._fontPromises.get(t);return n||(n=fetch(t).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>i0(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=yw(t);let r=this._metadataPromises.get(n);return r||(r=fetch(this.fontRepository+n+"/METADATA.pb").then(i=>{if(!i.ok)throw new Error("Could not load font metadata: "+i.status);return i}).then(i=>i.text()).then(i=>vF(i)).catch(i=>{console.warn(i)}),this._metadataPromises.set(n,r)),r}getDefaultFont(){return this._defaultFontEntry}_createTexture(t){const n=this._webGLHelper.gl;return new Promise((r,i)=>{Us(n,{src:t,min:n.LINEAR},(a,o,s)=>{a?i(a):r(o)})})}_createTextureNow(t){const n=this._webGLHelper.gl;let r;const i=new Promise((a,o)=>{r=Us(n,{src:t,min:n.LINEAR},(s,u,l)=>{s?o(s):a(u)})});return this._promises.push(i),r}}function yw(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function vF(e){const t=e.split(`
288
+ `),n=[];let r;for(const i of t)if(i.startsWith("fonts {")&&(r={name:void 0,style:void 0,weight:void 0,filename:void 0,post_script_name:void 0,full_name:void 0,copyright:void 0}),i.startsWith("}")&&(n.push(r),r=void 0),r){let a=i.match(/^\s*([A-Za-z_]+):[ ]?"(.*)"$/);if(a){const o=a[1];r[o]=a[2]}if(a=i.match(/^\s*([A-Za-z_]+):[ ]?(\d+)$/),a){const o=a[1];r[o]=+a[2]}}return n}function xF(e,t){let n,r=Number.POSITIVE_INFINITY;for(const i of e)if(t.family.localeCompare(i.name,void 0,{sensitivity:"accent"})==0&&t.style==i.style){const a=Math.abs(t.weight-i.weight);a<r&&(r=a,n=i)}return n==null?void 0:n.filename}function AF(e,t){const n=[];let r;for(const i of e.split(`
289
+ `))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 EF{constructor(t,n){this.animator=t,this.disabled=!!n,this.damping=.015,this.acceleration=.3,this.accelerationThreshold=100,this.lowerLimit=.5,this.loop=!1,this.momentum=0,this.timestamp=0,this.callback=null,this._transitionCallback=this.animate.bind(this),this.clear()}clear(){this.momentum=0,this.timestamp=null,this.loop=null,this.callback=null}cancel(){this.loop&&(this.animator.cancelTransition(this._transitionCallback),this.clear())}setMomentum(t,n){if(this.disabled){n(t);return}t*this.momentum<0?this.momentum=0:Math.abs(t)>this.accelerationThreshold?this.momentum=em([this.momentum,t],this.acceleration):this.momentum=t,this.callback=n,this.loop||this.animate()}animate(t){this.callback(this.momentum);const n=t-this.timestamp||0;this.timestamp=t;const r=Math.abs(this.momentum);this.momentum=Math.sign(this.momentum)*Math.max(0,r-((r*this.damping)**1.5+.04)*n),Math.abs(this.momentum)>this.lowerLimit?(this.loop=!0,this.animator.requestTransition(this._transitionCallback)):this.clear()}}function _F(e){const t={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in e){const a=i;!r.includes(i)&&n.includes(typeof e[a])&&(t[a]=e[a])}return t}const ww=new Map;async function SF(e,t,n){const r=e.symbol;let i=ww.get(r)??await kF(e.symbol);return i?(ww.set(r,i),mn`
285
290
  <div class="title">
286
291
  <strong>${i.name}</strong>
287
292
  ${i.description}
288
293
  </div>
289
294
  <p class="summary">${i.summary}</p>
290
295
  <p class="source">Source: NCBI RefSeq Gene</p>
291
- `):null}async function mF(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 bF=d0(mF,500);function yF(e){return bF(e)}const wF=gt(".4~r"),vF=gt(".4~e");function mw(e){return e==null?mn` <span class="na">NA</span> `:Pe(e)?e.substring(0,30):Number.isInteger(e)?""+e:Ct(e)?Math.abs(e)>Math.pow(10,8)||Math.abs(e)<Math.pow(10,-8)?vF(e):wF(e):Ga(e)?e?"True":"False":Ft(e)?mn`${e.map((t,n)=>[mw(t),n<e.length-1?", ":rt])}`:"?"+typeof e+" "+e}async function xF(e,t,n){const r=(u,l)=>{var f;for(const[c,h]of Object.entries(t.encoders))if((f=h==null?void 0:h.accessor)!=null&&f.fields.includes(u))switch(c){case"color":case"fill":case"stroke":return mn`
296
+ `):null}async function CF(e){console.log("Searching: "+e);const t={mode:"cors"},r=(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=gene&term=${e}[GENE]&sort=relevance&retmode=json`,t).then(i=>i.json())).esearchresult.idlist[0];return r?(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=gene&id=${r}&retmode=json`,t).then(o=>o.json())).result[r]:null}const TF=b0(CF,500);function kF(e){return TF(e)}const IF=gt(".4~r"),BF=gt(".4~e");function vw(e){return e==null?mn` <span class="na">NA</span> `:Pe(e)?e.substring(0,30):Number.isInteger(e)?""+e:Ct(e)?Math.abs(e)>Math.pow(10,8)||Math.abs(e)<Math.pow(10,-8)?BF(e):IF(e):Go(e)?e?"True":"False":Ft(e)?mn`${e.map((t,n)=>[vw(t),n<e.length-1?", ":rt])}`:"?"+typeof e+" "+e}async function DF(e,t,n){const r=(u,l)=>{var f;for(const[c,h]of Object.entries(t.encoders))if((f=h==null?void 0:h.accessor)!=null&&f.fields.includes(u))switch(c){case"color":case"fill":case"stroke":return mn`
292
297
  <span
293
298
  class="color-legend"
294
299
  style=${`background-color: ${h(l)}`}
295
300
  ></span>
296
- `}return""},i=Object.entries(e).filter(([u,l])=>!u.startsWith("_"));if(i.length===0)return;const o=mn`
301
+ `}return""},i=Object.entries(e).filter(([u,l])=>!u.startsWith("_"));if(i.length===0)return;const a=mn`
297
302
  <table class="attributes">
298
303
  ${i.map(([u,l])=>mn`
299
304
  <tr>
300
305
  <th>${u}</th>
301
- <td>${mw(l)} ${r(u,e)}</td>
306
+ <td>${vw(l)} ${r(u,e)}</td>
302
307
  </tr>
303
308
  `)}
304
309
  </table>
305
- `,a=t.unitView.getTitleText(),s=a?mn`
310
+ `,o=t.unitView.getTitleText(),s=o?mn`
306
311
  <div class="title">
307
- <strong>${a}</strong>
312
+ <strong>${o}</strong>
308
313
  </div>
309
- `:"";return mn`${s}${o}`}class Xs extends Zi{constructor(n,r,i,o,a,s){super(n,r,i,o,a,s);re(this,mr,[]);this.spec=n,this.needsAxes={x:!0,y:!0}}async initializeChildren(){Je(this,mr,await Promise.all(this.spec.layer.map((n,r)=>this.context.createOrImportView(n,this,this,"grid"+r,i=>{if(!v0(i)&&!w0(i))throw new qi("LayerView accepts only unit or layer specs as children!",this)}))))}get children(){return W(this,mr).slice()}*[Symbol.iterator](){for(const n of W(this,mr))yield n}render(n,r,i={}){if(super.render(n,r,i),!!this.isConfiguredVisible()){n.pushView(this,r);for(const o of W(this,mr))o.render(n,r,i);n.popView(this)}}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0);for(let r=W(this,mr).length-1;r>=0;r--)if(W(this,mr)[r].propagateInteractionEvent(n),n.stopped)return;this.handleInteractionEvent(void 0,n,!1)}}mr=new WeakMap;class bw{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 AF="chromosome_ticks_and_labels",EF={x:"width",y:"height"};function g0(e){return e=="x"?"y":"x"}const Ff={x:["bottom","top"],y:["left","right"]},m0=Object.fromEntries(Object.entries(Ff).map(([e,t])=>t.map(n=>[n,e])).flat(1));function qr(e){return m0[e]}class yw extends Xs{constructor(t,n,r,i,o,a){const s=n=="locus",u={...s?SF:ww,..._F(n,t),...t};super(s?CF(u,n):vw(u,n),r,i,o,`axis_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...a}),this.axisProps=u}getSize(){const t={px:this.getPerpendicularSize()},n={grow:1};return m0[this.axisProps.orient]=="x"?new jr(n,t):new jr(t,n)}getPerpendicularSize(){return b0(this.axisProps)}isPickingSupported(){return!1}}function b0(e){const t=qr(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 ww={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 _F(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 vw(e,t){const n={...e,extent:b0(e)},r=qr(n.orient),i=g0(r),o=n.orient=="bottom"||n.orient=="right"?1:-1,a=n.orient=="bottom"||n.orient=="left"?1:0,s=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:n.domainDash,strokeCap:n.domainCap,color:n.domainColor,[i]:a,size:n.domainWidth}}),u=()=>({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"}}}),l=()=>({name:"ticks",mark:{type:"rule",clip:!1,strokeDash:n.tickDash,strokeCap:n.tickCap,color:n.tickColor,size:n.tickWidth,minBufferSize:300},encoding:{[i]:{value:a},[i+"2"]:{value:a-n.tickSize/n.extent*(a?1:-1)}}}),f=()=>({name:"title",data:{values:[0]},mark:{type:"text",clip:!1,align:"center",baseline:n.orient=="bottom"?"bottom":"top",angle:[0,90,0,-90][["top","right","bottom","left"].indexOf(n.orient)],text:n.title,color:n.titleColor,[r]:.5,[i]:1-a}}),c=()=>{const d={name:"ticks_and_labels",encoding:{[r]:{field:"value",type:t}},layer:[]};return n.ticks&&d.layer.push(l()),n.labels&&d.layer.push(u()),d},h={resolve:{scale:{[r]:"forced"}},[EF[g0(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(c()),n.title&&h.layer.push(f()),h}const SF={...ww,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 CF(e,t){const n={...e,extent:b0(e)},r=qr(n.orient),i=g0(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 f;switch(n.orient){case"top":f={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":f={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":f={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":f={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:f={}}return{name:"chromosome_labels",mark:{type:"text",size:n.chromLabelFontSize,font:n.chromLabelFont,fontWeight:n.chromLabelFontWeight,fontStyle:n.chromLabelFontStyle,color:n.chromLabelColor,align:e.chromLabelAlign,baseline:"alphabetic",clip:!1,...f},encoding:{[r+"2"]:{field:"continuousEnd",type:t},text:{field:"name"}}}};let u;switch(n.orient){case"bottom":case"top":u={};break;case"left":u={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":u={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:u={}}const l=vw({...e,...u},t);if(e.chromTicks||e.chromLabels){const f={name:AF,data:{lazy:{type:"axisGenome",channel:qr(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&f.layer.push(a()),e.chromLabels){f.layer.push(s());let c;l.layer.filter(h=>h.name=="ticks_and_labels").forEach(h=>h.layer.filter(d=>d.name=="labels").forEach(d=>{c=d.mark})),c&&(n.orient=="top"||n.orient=="bottom"?(c.viewportEdgeFadeWidthLeft=30,c.viewportEdgeFadeDistanceLeft=40):(c.viewportEdgeFadeWidthBottom=30,c.viewportEdgeFadeDistanceBottom=40))}l.layer.push(f)}return l}class kF extends Xs{constructor(t,n,r,i,o,a){const u={...n=="locus"?TF:xw,...t};super(FF(u,n),r,i,o,`axisGrid_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...a}),this.axisProps=u}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const xw={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},TF={...xw,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function IF(e,t){const n=e,r=qr(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 BF(e,t){const n=e,r=qr(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 DF(e,t){const n=e,r=qr(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 FF(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(DF(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(BF(n,t)),n.grid&&n.gridOpacity>0&&r.push(IF(n,t)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[qr(e.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const Aw={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"},RF={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},MF={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},PF={start:0,middle:.5,end:1},LF={start:"left",middle:"center",end:"right"};function NF(e){if(!e)return;const t=Pe(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":RF,overlay:MF}[t.style]??{},r={...Aw,...n,...t};let i={},o={x:0,y:0};const a=PF[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={...Aw,...i,...n,...t},u={xOffset:0,yOffset:0};switch(r.orient){case"top":u.yOffset=-s.offset;break;case"right":u.xOffset=s.offset;break;case"bottom":u.yOffset=s.offset;break;case"left":u.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...o,...u,text:s.text,align:s.align??LF[s.anchor],angle:s.angle,baseline:s.baseline,dx:s.dx,dy:s.dy,color:s.color,font:s.font,size:s.fontSize,fontStyle:s.fontStyle,fontWeight:s.fontWeight}}}function OF(e,t,n,r){if(e.type=="wheel"){e.uiEvent.preventDefault();const i=e.uiEvent,o=i.deltaMode?120:1;let{x:a,y:s}=e.point;if(r){const u=r.mark.encoders;u.x&&!u.x2&&!u.x.constantValue&&(a=+u.x(r.datum)*t.width+t.x),u.y&&!u.y2&&!u.y.constantValue&&(s=(1-+u.y(r.datum))*t.height+t.y)}Math.abs(i.deltaX)<Math.abs(i.deltaY)?n({x:a,y:s,xDelta:0,yDelta:0,zDelta:i.deltaY*o/300}):n({x:a,y:s,xDelta:-i.deltaX*o,yDelta:0,zDelta:0})}else if(e.type=="mousedown"&&e.uiEvent.button===0){const i=e.uiEvent;i.preventDefault();let o=i;const a=u=>{n({x:o.clientX,y:o.clientY,xDelta:u.clientX-o.clientX,yDelta:u.clientY-o.clientY,zDelta:0}),o=u},s=u=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",a,!1)}}class zF extends Zi{constructor(n,r,i,o,a,s,u){super(n,r,i,o,a,u);re(this,br);re(this,Mc);re(this,bo);re(this,Jl);re(this,eu);re(this,tu);re(this,Pc);re(this,Na);re(this,Lc);re(this,Ma,1/0);re(this,Pa,10);re(this,Kt,[]);re(this,mo,{});re(this,La,0);this.spec=n,Je(this,Pa,n.spacing??10),Je(this,Ma,s),Je(this,Kt,[]),this.wrappingFacet=!1}appendChild(n){n.layoutParent??(n.layoutParent=this),W(this,Kt).push(new _w(n,this,W(this,La))),r_(this,La)._++}setChildren(n){Je(this,Kt,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=W(this,Kt).findIndex(o=>o.view==n);if(i>=0)W(this,Kt)[i]=new _w(r,this,W(this,La));else throw new Error("Not my child view!")}get children(){return W(this,Kt).map(n=>n.view)}get childCount(){return W(this,Kt).length}async createAxes(){const n=[];for(const r of Po){const i=this.resolutions.axis[r];if(i){const o=i.getAxisProps();if(o){const a={title:i.getTitle(),orient:Ff[r][0],...o},s=new yw(a,i.scaleResolution.type,this.context,this,this);n.push(s.initializeChildren()),W(this,mo)[r]=s}}}return Promise.all([...n,...W(this,Kt).map(r=>r.createAxes())])}*[Symbol.iterator](){for(const n of W(this,Kt))yield*n.getChildren();for(const n of Object.values(W(this,mo)))yield n}getOverhang(){return te(this,Pc,s_).call(this).union(te(this,Na,Gc).call(this))}getSize(){return this._cache("size",()=>new jr(te(this,eu,Hg).call(this,"column"),te(this,eu,Hg).call(this,"row")).addPadding(te(this,Na,Gc).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(te(this,Na,Gc).call(this)),n.pushView(this,r);const o={devicePixelRatio:this.context.devicePixelRatio},a=Iy(te(this,Jl,Gg).call(this,"column"),r.width,o),s=Iy(te(this,Jl,Gg).call(this,"row"),r.height,o),u=new bw(W(this,br,xo).length,W(this,Ma)??1/0),l=f=>Math.round(f*devicePixelRatio)/devicePixelRatio;for(const[f,c]of W(this,br,xo).entries()){const{view:h,axes:d,gridLines:p,background:b,backgroundStroke:y,title:w}=c,[_,C]=u.getCellCoords(f),E=a[te(this,tu,Vg).call(this,"column",_)],T=s[te(this,tu,Vg).call(this,"row",C)],B=h.getViewportSize(),I=h.getSize(),R=h.getOverhang(),M=E.location-R.left,j=T.location-R.top,O=(Oe,L)=>(Oe[L].grow?(L=="width"?E:T).size:Oe[L].px)+R[L],ie=O(B,"width"),se=O(B,"height"),ge=O(I,"width"),Ie=O(I,"height"),Xe=c.scrollbars.horizontal,De=c.scrollbars.vertical,$e=Xe?()=>l(Xe.viewportOffset):()=>0,Ze=De?()=>l(De.viewportOffset):()=>0,Ke=new ar(()=>r.x+M,()=>r.y+j,()=>ie,()=>se),Ee=h.isScrollable(),_e=Ee?new ar(()=>r.x+M-$e(),()=>r.y+j-Ze(),()=>ge,()=>Ie):Ke;c.coords=Ke;const pt=i.clipRect?Ke.intersect(i.clipRect):Ke;b==null||b.render(n,pt,{...i,clipRect:void 0});for(const Oe of Object.values(p))Oe.render(n,Ke,i);const qt=VF(h)||Ee;qt&&h.render(n,_e,{...i,clipRect:pt}),y==null||y.render(n,pt,{...i,clipRect:void 0});for(const[Oe,L]of Object.entries(d)){const P=Oe=="left"||Oe=="right"?"vertical":"horizontal",q=c.scrollbars[P],H=q?Ke.modify(P=="vertical"?{y:()=>_e.y,height:Ie}:{x:()=>_e.x,width:ge}):Ke,Y=Ew(H,Oe,L);let S=i.clipRect;q&&(S=Y.intersect(S).intersect(q?Ke.modify(P=="vertical"?{x:-1e5,width:2e5}:{y:-1e5,height:2e5}):void 0)),L.render(n,Y,{...i,clipRect:S})}for(const Oe of Object.values(W(this,mo))){const P=Oe.axisProps.orient;(P=="left"&&_==0||P=="right"&&_==u.nCols-1||P=="top"&&C==0||P=="bottom"&&C==u.nRows-1)&&Oe.render(n,Ew(Ke.shrink(c.view.getOverhang()),P,Oe),i)}qt||h.render(n,_e,i);for(const Oe of Object.values(c.scrollbars))Oe.updateScrollbar(Ke,_e),Oe.render(n,r,i);w==null||w.render(n,Ke,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=W(this,br,xo).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 Yt||i instanceof Xs)&&OF(n,r.coords,o=>te(this,Lc,l_).call(this,r.coords,r.view,o),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}Ma=new WeakMap,Pa=new WeakMap,Kt=new WeakMap,mo=new WeakMap,La=new WeakMap,br=new WeakSet,xo=function(){return W(this,Kt).filter(n=>n.view.isConfiguredVisible())},Mc=new WeakSet,a_=function(){return new bw(W(this,br,xo).length,W(this,Ma)??1/0)},bo=new WeakSet,ou=function(n){const r=n=="column"?"width":"height",i=(o,a)=>o.map(s=>{const l=W(this,br,xo)[s].getOverhangAndPadding();return n=="column"?a?l.right:l.left:a?l.bottom:l.top}).reduce((s,u)=>Math.max(s,u),0);return this._cache(`size/directionSizes/${n}`,()=>W(this,Mc,a_)[n=="column"?"colIndices":"rowIndices"].map(o=>({axisBefore:i(o,0),axisAfter:i(o,1),view:QB(o.map(a=>W(this,br,xo)[a].view.getViewportSize()[r]))})))},Jl=new WeakSet,Gg=function(n){const r=te(this,bo,ou).call(this,n),i=[];i.push(js);for(const[o,a]of r.entries())o>0&&i.push({px:W(this,Pa),grow:0}),(o==0||this.wrappingFacet)&&i.push(js),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(js);return i},eu=new WeakSet,Hg=function(n){let r=0,i=0;const o=n=="row"?this.spec.height:this.spec.width;if(o||o===0)return Dy(o);const a=te(this,bo,ou).call(this,n);for(const[s,u]of a.entries())s>0&&(i+=W(this,Pa)),(s==0||this.wrappingFacet)&&(i+=0),i+=u.axisBefore,i+=u.view.px??0,r+=u.view.grow??0,i+=u.axisAfter,(s==a.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},tu=new WeakSet,Vg=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},Pc=new WeakSet,s_=function(){const n=te(this,bo,ou).call(this,"column"),r=te(this,bo,ou).call(this,"row");return!n.length||!r.length?_t.zero():new _t(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)},Na=new WeakSet,Gc=function(){const n=r=>{const i=m0[r],o=W(this,mo)[i];return(o==null?void 0:o.axisProps.orient)!==r?0:Math.max(o.getPerpendicularSize()+o.axisProps.offset,0)};return new _t(n("top"),n("right"),n("bottom"),n("left"))},Lc=new WeakSet,l_=function(n,r,i){for(const[o,a]of Object.entries(HF(r))){if(a.size<=0)continue;const s=n.normalizePoint(i.x,i.y),u=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),l={x:u.x-s.x,y:u.y-s.y};for(const f of a)f.zoom(2**i.zDelta,o=="y"?1-s[o]:s[o],o=="x"?l.x:-l.y)}this.context.animator.requestRender()};function UF(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 GF(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",strokeOpacity: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 HF(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 VF(e){let t=!0;return e.visit(n=>{n instanceof Yt&&t&&(t=n.mark.properties.clip===!0)}),t}function Ew(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 _w{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=ar.ZERO,t.needsAxes.x||t.needsAxes.y){const i=t.spec,o="view"in i?i==null?void 0:i.view:void 0,a=UF(o);a&&(this.background=new Yt(a,n.context,n,t,"background"+r,{blockEncodingInheritance:!0}));const s=GF(o);s&&(this.backgroundStroke=new Yt(s,n.context,n,t,"backgroundStroke"+r,{blockEncodingInheritance:!0}));const u=NF(t.spec.title);if(u){const l=new Yt(u,n.context,n,t,"title"+r,{blockEncodingInheritance:!0});this.title=l}}t.spec.viewportWidth!=null&&(this.scrollbars.horizontal=new Sw(this,"horizontal")),t.spec.viewportHeight!=null&&(this.scrollbars.vertical=new Sw(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,u)=>{const l=s.getAxisProps();if(l===null)return;const f=l?{...l}:{};if(!f.orient){for(const c of Ff[u])if(!n[c]){f.orient=c;break}if(!f.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(f.title??(f.title=s.getTitle()),!Ff[u].includes(f.orient))throw new Error(`Invalid axis orientation "${f.orient}" on channel "${u}"!`);return f},o=async(s,u,l)=>{const f=i(s,u);if(f){if(n[f.orient])throw new Error(`An axis with the orient "${f.orient}" already exists!`);const c=new yw(f,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);n[f.orient]=c,await c.initializeChildren()}},a=async(s,u,l)=>{const f=i(s,u);if(f&&(f.grid||f.chromGrid)){const c=new kF(f,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);r[f.orient]=c,await c.initializeChildren()}};for(const s of["x","y"])if(t.needsAxes[s]){const u=t.resolutions.axis[s];if(!u)continue;await o(u,s,t)}for(const s of["x","y"])if(t.needsAxes[s]){const u=t.getAxisResolution(s);if(!u)continue;await a(u,s,t)}if(t instanceof Xs){for(const s of t)for(const[u,l]of Object.entries(s.resolutions.axis)){const f=l.getAxisProps();f&&f.orient&&await o(l,u,s)}for(const s of t)for(const[u,l]of Object.entries(s.resolutions.axis)){const f=l.getAxisProps();f&&!f.orient&&await o(l,u,s)}}[...Object.values(n),...Object.values(r)].forEach(s=>s.visit(u=>{u instanceof Yt&&u.resolve("scale")}))}getOverhang(){const t=n=>{const r=this.axes[n];return r?Math.max(r.getPerpendicularSize()+r.axisProps.offset,0):0};return new _t(t("top"),t("right"),t("bottom"),t("left")).add(this.view.getOverhang())}getOverhangAndPadding(){return this.getOverhang().add(this.view.getPadding())}}class Sw extends Yt{constructor(t,n){const r={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},t.layoutParent.context,t.layoutParent,t.view,"scrollbar-"+n,{blockEncodingInheritance:!0}),this.config=r,this.scrollDirection=n,this.viewportOffset=0,this.maxScrollOffset=0,this.scrollbarCoords=ar.ZERO,this.addInteractionEventListener("mousedown",(i,o)=>{if(o.stopPropagation(),this.maxScrollOffset<=0)return;const a=h=>n=="vertical"?h.clientY:h.clientX,s=o.uiEvent;s.preventDefault();const u=this.getScrollOffset(),l=a(s),f=h=>{const d=xs(a(h)-l+u,0,this.maxScrollOffset);this.viewportOffset=d/this.maxScrollOffset*this.maxViewportOffset,this.context.animator.requestRender()},c=()=>{document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",c)};document.addEventListener("mouseup",c,!1),document.addEventListener("mousemove",f,!1)})}getScrollOffset(){return this.viewportOffset/this.maxViewportOffset*this.maxScrollOffset}render(t,n,r){super.render(t,this.scrollbarCoords,r)}updateScrollbar(t,n){const r=this.config.scrollbarPadding,i=this.config.scrollbarSize,o=this.scrollDirection=="horizontal"?"width":"height",a=Math.min(1,t[o]/n[o]),s=t[o]-2*r,u=a*s;this.maxScrollOffset=s-u,this.maxViewportOffset=n[o]-t[o],this.viewportOffset=xs(this.viewportOffset,0,this.maxViewportOffset),this.scrollbarCoords=this.scrollDirection=="vertical"?new ar(()=>t.x+t.width-i-r,()=>t.y+r+this.getScrollOffset(),()=>i,()=>u):new ar(()=>t.x+r+this.getScrollOffset(),()=>t.y+t.height-i-r,()=>u,()=>i)}}class y0 extends zF{constructor(t,n,r,i,o){super(t,n,r,i,o,x0(t)?t.columns:Rf(t)?1:1/0),this.spec=t}async initializeChildren(){const t=this.spec,n=x0(t)?t.concat:Rf(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":Rf(this.spec)&&t==="x"||kw(this.spec)&&t==="y"?"shared":"independent"}}const Cw="viewRoot";class jF{constructor(t={}){re(this,Oa,new Map);this.options={allowImport:!0,wrapRoot:!0,...t};const n=r=>(i,o,a,s,u)=>new r(i,o,a,s,i.name??u);this.addViewType(v0,n(Xs)),this.addViewType(w0,n(Yt)),this.addViewType(Rf,n(y0)),this.addViewType(kw,n(y0)),this.addViewType(x0,n(y0)),this.addViewType(ZF,()=>{throw new Error("SampleView is not supported by the @genome-spy/core package. Use @genome-spy/app instead!")})}addViewType(t,n){W(this,Oa).set(t,n)}createView(t,n,r,i,o){for(const[a,s]of W(this,Oa))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=[...W(this,Oa).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(qF(t))if(this.options.allowImport)s=await K9(t,i.getBaseUrl(),n),a&&a(s);else throw new qi("Importing views is not allowed!",r);else s=t;!i&&this.options.wrapRoot&&(w0(s)||v0(s))&&o===Cw&&(s={name:"implicitRoot",vconcat:[s]});const u=this.createView(s,n,r,i,o);return u instanceof Zi&&await u.initializeChildren(),u}}Oa=new WeakMap;function w0(e){return"mark"in e&&(Pe(e.mark)||Rt(e.mark))}function v0(e){return"layer"in e&&Rt(e.layer)}function qF(e){return"import"in e}function Rf(e){return"vconcat"in e&&Ft(e.vconcat)}function kw(e){return"hconcat"in e&&Ft(e.hconcat)}function x0(e){return"concat"in e&&Ft(e.concat)}function ZF(e){return"samples"in e&&Rt(e.samples)&&"spec"in e&&Rt(e.spec)}class WF{constructor(){re(this,za,void 0);re(this,yo,void 0);re(this,nu,void 0);re(this,wo,void 0);Je(this,za,new Map),Je(this,yo,new Set),Je(this,wo,new Map),Je(this,nu,new Proxy(W(this,za),{get(t,n){return Pe(n)?t.get(n):void 0}}))}allocateSetter(t){if(W(this,yo).has(t))throw new Error("Setter already allocated for parameter: "+t);return W(this,yo).add(t),n=>{W(this,za).set(t,n);const r=W(this,wo).get(t);if(r)for(const i of r)i()}}createExpression(t){const n=Lu(t,W(this,nu));for(const r of n.globals)if(!W(this,yo).has(r))throw new Error(`Unknown variable "${r}" in expression: ${t}`);return n.addListener=r=>{for(const i of n.globals){const o=W(this,wo).get(i)??new Set;W(this,wo).set(i,o),o.add(r)}},n}}za=new WeakMap,yo=new WeakMap,nu=new WeakMap,wo=new WeakMap,$m("fasta",hF);class Tw{constructor(t,n,r={}){this.container=t,this._destructionCallbacks=[];const i=document.createElement("style");i.innerHTML=hC,t.appendChild(i),this.spec=n,this.accessorFactory=new t5,this.viewFactory=new jF,this.namedDataProviders=[],this.animator=new oF(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=o=>o.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new dF(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this._extraBroadcastListeners=new Map,this.tooltipHandlers={default:xF,refseqgene:gF,...r.tooltipHandlers??{}},this.viewRoot=void 0,this._paramBroker=new WF,this._loadingViews=new Map}registerNamedDataProvider(t){this.namedDataProviders.unshift(t)}getNamedDataFromProvider(t){for(const n of this.namedDataProviders){const r=n(t);if(r)return r}}updateNamedData(t,n){const r=this.viewRoot.context.dataFlow.findNamedDataSource(t);if(!r)throw new Error("No such named data source: "+t);r.dataSource.updateDynamicData(n),u0(r.hosts),this.animator.requestRender()}broadcast(t,n){var i;const r={type:t,payload:n};this.viewRoot.visit(o=>o.handleBroadcast(r)),(i=this._extraBroadcastListeners.get(t))==null||i.forEach(o=>o(r))}_updateLoadingIndicators(){const t=[],n=()=>[...this._loadingViews.values()].some(r=>r);for(const[r,i]of this._loadingViews){const o=r.coords;if(o){const a={left:`${o.x}px`,top:`${o.y}px`,width:`${o.width}px`,height:`${o.height}px`};t.push(mn`<div style=${fC(a)}>
314
+ `:"";return mn`${s}${a}`}class $s extends Zi{constructor(n,r,i,a,o,s){super(n,r,i,a,o,s);ne(this,br,[]);this.spec=n,this.needsAxes={x:!0,y:!0}}async initializeChildren(){Xe(this,br,await Promise.all(this.spec.layer.map((n,r)=>this.context.createOrImportView(n,this,this,"grid"+r,i=>{if(!_0(i)&&!E0(i))throw new qi("LayerView accepts only unit or layer specs as children!",this)}))))}get children(){return W(this,br).slice()}*[Symbol.iterator](){for(const n of W(this,br))yield n}render(n,r,i={}){if(super.render(n,r,i),!!this.isConfiguredVisible()){n.pushView(this,r);for(const a of W(this,br))a.render(n,r,i);n.popView(this)}}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0);for(let r=W(this,br).length-1;r>=0;r--)if(W(this,br)[r].propagateInteractionEvent(n),n.stopped)return;this.handleInteractionEvent(void 0,n,!1)}}br=new WeakMap;class xw{constructor(t,n){this.n=t,this.maxCols=n??1/0}get nRows(){return this.maxCols==1/0?1:Math.ceil(this.n/this.maxCols)}get nCols(){return Math.min(this.n,this.maxCols)}get rowIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const a=[];t.push(a);for(let o=0;o<n;o++){const s=i*n+o;s<this.n&&a.push(s)}}return t}get colIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const a=[];t.push(a);for(let o=0;o<r;o++){const s=o*n+i;s<this.n&&a.push(s)}}return t}getCellIndex(t,n){let r=0;if(this.maxCols==1/0)r=n==0?t:void 0;else{if(t>=this.maxCols)return;r=n*this.nCols+t}return r<this.n?r:void 0}getCellCoords(t){if(!(t<0||t>=this.n))return[t%this.nCols,Math.floor(t/this.nCols)]}}const FF="chromosome_ticks_and_labels",RF={x:"width",y:"height"};function w0(e){return e=="x"?"y":"x"}const Pf={x:["bottom","top"],y:["left","right"]},v0=Object.fromEntries(Object.entries(Pf).map(([e,t])=>t.map(n=>[n,e])).flat(1));function qr(e){return v0[e]}class Aw extends $s{constructor(t,n,r,i,a,o){const s=n=="locus",u={...s?PF:Ew,...MF(n,t),...t};super(s?LF(u,n):_w(u,n),r,i,a,`axis_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...o}),this.axisProps=u}getSize(){const t={px:this.getPerpendicularSize()},n={grow:1};return v0[this.axisProps.orient]=="x"?new jr(n,t):new jr(t,n)}getPerpendicularSize(){return x0(this.axisProps)}isPickingSupported(){return!1}}function x0(e){const t=qr(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 Ew={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 MF(e,t){const n=t.orient,r=e=="nominal"||e=="ordinal";let i="center",a="middle",o=t.labelAngle??((n=="top"||n=="bottom")&&r?-90:0);switch(n){case"left":i="right";break;case"right":i="left";break;case"top":case"bottom":Math.abs(o)>30?(i=o>0==(n=="bottom")?"left":"right",a="middle"):a=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:o,labelBaseline:a}}function _w(e,t){const n={...e,extent:x0(e)},r=qr(n.orient),i=w0(r),a=n.orient=="bottom"||n.orient=="right"?1:-1,o=n.orient=="bottom"||n.orient=="left"?1:0,s=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:n.domainDash,strokeCap:n.domainCap,color:n.domainColor,[i]:o,size:n.domainWidth}}),u=()=>({name:"labels",mark:{type:"text",clip:!1,align:n.labelAlign,angle:n.labelAngle,baseline:n.labelBaseline,[i+"Offset"]:(n.tickSize+n.labelPadding)*a,[i]:o,size:n.labelFontSize,color:n.labelColor,minBufferSize:1500},encoding:{[r]:{field:"value",type:t},text:{field:"label"}}}),l=()=>({name:"ticks",mark:{type:"rule",clip:!1,strokeDash:n.tickDash,strokeCap:n.tickCap,color:n.tickColor,size:n.tickWidth,minBufferSize:300},encoding:{[i]:{value:o},[i+"2"]:{value:o-n.tickSize/n.extent*(o?1:-1)}}}),f=()=>({name:"title",data:{values:[0]},mark:{type:"text",clip:!1,align:"center",baseline:n.orient=="bottom"?"bottom":"top",angle:[0,90,0,-90][["top","right","bottom","left"].indexOf(n.orient)],text:n.title,color:n.titleColor,[r]:.5,[i]:1-o}}),c=()=>{const d={name:"ticks_and_labels",encoding:{[r]:{field:"value",type:t}},layer:[]};return n.ticks&&d.layer.push(l()),n.labels&&d.layer.push(u()),d},h={resolve:{scale:{[r]:"forced"}},[RF[w0(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(c()),n.title&&h.layer.push(f()),h}const PF={...Ew,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 LF(e,t){const n={...e,extent:x0(e)},r=qr(n.orient),i=w0(r),a=n.orient=="bottom"||n.orient=="left"?1:0,o=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:e.chromTickDash,strokeDashOffset:e.chromTickDashOffset,[i]:a,[i+"2"]:a-n.chromTickSize/n.extent*(a?1:-1),color:e.chromTickColor,size:n.chromTickWidth}}),s=()=>{let f;switch(n.orient){case"top":f={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":f={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":f={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":f={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:f={}}return{name:"chromosome_labels",mark:{type:"text",size:n.chromLabelFontSize,font:n.chromLabelFont,fontWeight:n.chromLabelFontWeight,fontStyle:n.chromLabelFontStyle,color:n.chromLabelColor,align:e.chromLabelAlign,baseline:"alphabetic",clip:!1,...f},encoding:{[r+"2"]:{field:"continuousEnd",type:t},text:{field:"name"}}}};let u;switch(n.orient){case"bottom":case"top":u={};break;case"left":u={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":u={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:u={}}const l=_w({...e,...u},t);if(e.chromTicks||e.chromLabels){const f={name:FF,data:{lazy:{type:"axisGenome",channel:qr(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&f.layer.push(o()),e.chromLabels){f.layer.push(s());let c;l.layer.filter(h=>h.name=="ticks_and_labels").forEach(h=>h.layer.filter(d=>d.name=="labels").forEach(d=>{c=d.mark})),c&&(n.orient=="top"||n.orient=="bottom"?(c.viewportEdgeFadeWidthLeft=30,c.viewportEdgeFadeDistanceLeft=40):(c.viewportEdgeFadeWidthBottom=30,c.viewportEdgeFadeDistanceBottom=40))}l.layer.push(f)}return l}class NF extends $s{constructor(t,n,r,i,a,o){const u={...n=="locus"?OF:Sw,...t};super(HF(u,n),r,i,a,`axisGrid_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...o}),this.axisProps=u}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const Sw={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},OF={...Sw,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function zF(e,t){const n=e,r=qr(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 UF(e,t){const n=e,r=qr(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 GF(e,t){const n=e,r=qr(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 HF(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(GF(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(UF(n,t)),n.grid&&n.gridOpacity>0&&r.push(zF(n,t)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[qr(e.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const Cw={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"},VF={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},jF={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},qF={start:0,middle:.5,end:1},ZF={start:"left",middle:"center",end:"right"};function WF(e){if(!e)return;const t=Pe(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":VF,overlay:jF}[t.style]??{},r={...Cw,...n,...t};let i={},a={x:0,y:0};const o=qF[r.anchor??"middle"];switch(r.orient){case"top":a={x:o,y:1},i={baseline:"alphabetic",angle:0};break;case"right":a={x:1,y:1-o},i={baseline:"alphabetic",angle:90};break;case"bottom":a={x:o,y:0},i={baseline:"top",angle:0};break;case"left":a={x:0,y:o},i={baseline:"alphabetic",angle:-90};break}const s={...Cw,...i,...n,...t},u={xOffset:0,yOffset:0};switch(r.orient){case"top":u.yOffset=-s.offset;break;case"right":u.xOffset=s.offset;break;case"bottom":u.yOffset=s.offset;break;case"left":u.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...a,...u,text:s.text,align:s.align??ZF[s.anchor],angle:s.angle,baseline:s.baseline,dx:s.dx,dy:s.dy,color:s.color,font:s.font,size:s.fontSize,fontStyle:s.fontStyle,fontWeight:s.fontWeight}}}function YF(e,t,n,r){if(e.type=="wheel"){e.uiEvent.preventDefault();const i=e.uiEvent,a=i.deltaMode?120:1;let{x:o,y:s}=e.point;if(r){const u=r.mark.encoders;u.x&&!u.x2&&!u.x.constantValue&&(o=+u.x(r.datum)*t.width+t.x),u.y&&!u.y2&&!u.y.constantValue&&(s=(1-+u.y(r.datum))*t.height+t.y)}Math.abs(i.deltaX)<Math.abs(i.deltaY)?n({x:o,y:s,xDelta:0,yDelta:0,zDelta:i.deltaY*a/300}):n({x:o,y:s,xDelta:-i.deltaX*a,yDelta:0,zDelta:0})}else if(e.type=="mousedown"&&e.uiEvent.button===0){const i=e.uiEvent;i.preventDefault();let a=i;const o=u=>{n({x:a.clientX,y:a.clientY,xDelta:u.clientX-a.clientX,yDelta:u.clientY-a.clientY,zDelta:0}),a=u},s=u=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",o,!1)}}class QF extends Zi{constructor(n,r,i,a,o,s,u){super(n,r,i,a,o,u);ne(this,yr);ne(this,zc);ne(this,ma);ne(this,eu);ne(this,tu);ne(this,nu);ne(this,Uc);ne(this,No);ne(this,Gc);ne(this,Mo,1/0);ne(this,Po,10);ne(this,Kt,[]);ne(this,ga,{});ne(this,Lo,0);this.spec=n,Xe(this,Po,n.spacing??10),Xe(this,Mo,s),Xe(this,Kt,[]),this.wrappingFacet=!1}appendChild(n){n.layoutParent??(n.layoutParent=this),W(this,Kt).push(new kw(n,this,W(this,Lo))),s_(this,Lo)._++}setChildren(n){Xe(this,Kt,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=W(this,Kt).findIndex(a=>a.view==n);if(i>=0)W(this,Kt)[i]=new kw(r,this,W(this,Lo));else throw new Error("Not my child view!")}get children(){return W(this,Kt).map(n=>n.view)}get childCount(){return W(this,Kt).length}async createAxes(){const n=[];for(const r of Ma){const i=this.resolutions.axis[r];if(i){const a=i.getAxisProps();if(a){const o={title:i.getTitle(),orient:Pf[r][0],...a},s=new Aw(o,i.scaleResolution.type,this.context,this,this);n.push(s.initializeChildren()),W(this,ga)[r]=s}}}return Promise.all([...n,...W(this,Kt).map(r=>r.createAxes())])}*[Symbol.iterator](){for(const n of W(this,Kt))yield*n.getChildren();for(const n of Object.values(W(this,ga)))yield n}getOverhang(){return ee(this,Uc,d_).call(this).union(ee(this,No,Zc).call(this))}getSize(){return this._cache("size",()=>new jr(ee(this,tu,Zg).call(this,"column"),ee(this,tu,Zg).call(this,"row")).addPadding(ee(this,No,Zc).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(ee(this,No,Zc).call(this)),n.pushView(this,r);const a={devicePixelRatio:this.context.devicePixelRatio},o=Ry(ee(this,eu,qg).call(this,"column"),r.width,a),s=Ry(ee(this,eu,qg).call(this,"row"),r.height,a),u=new xw(W(this,yr,va).length,W(this,Mo)??1/0),l=f=>Math.round(f*devicePixelRatio)/devicePixelRatio;for(const[f,c]of W(this,yr,va).entries()){const{view:h,axes:d,gridLines:p,background:m,backgroundStroke:y,title:w}=c,[_,C]=u.getCellCoords(f),E=o[ee(this,nu,Wg).call(this,"column",_)],k=s[ee(this,nu,Wg).call(this,"row",C)],B=h.getViewportSize(),I=h.getSize(),R=h.getOverhang(),L=E.location-R.left,j=k.location-R.top,M=(Oe,N)=>(Oe[N].grow?(N=="width"?E:k).size:Oe[N].px)+R[N],ie=M(B,"width"),se=M(B,"height"),ge=M(I,"width"),Ie=M(I,"height"),$e=c.scrollbars.horizontal,De=c.scrollbars.vertical,Ke=$e?()=>l($e.viewportOffset):()=>0,Ze=De?()=>l(De.viewportOffset):()=>0,Je=new sr(()=>r.x+L,()=>r.y+j,()=>ie,()=>se),Ee=h.isScrollable(),_e=Ee?new sr(()=>r.x+L-Ke(),()=>r.y+j-Ze(),()=>ge,()=>Ie):Je;c.coords=Je;const pt=i.clipRect?Je.intersect(i.clipRect):Je;m==null||m.render(n,pt,{...i,clipRect:void 0});for(const Oe of Object.values(p))Oe.render(n,Je,i);const qt=JF(h)||Ee;qt&&h.render(n,_e,{...i,clipRect:pt}),y==null||y.render(n,pt,{...i,clipRect:void 0});for(const[Oe,N]of Object.entries(d)){const P=Oe=="left"||Oe=="right"?"vertical":"horizontal",q=c.scrollbars[P],H=q?Je.modify(P=="vertical"?{y:()=>_e.y,height:Ie}:{x:()=>_e.x,width:ge}):Je,Y=Tw(H,Oe,N);let S=i.clipRect;q&&(S=Y.intersect(S).intersect(q?Je.modify(P=="vertical"?{x:-1e5,width:2e5}:{y:-1e5,height:2e5}):void 0)),N.render(n,Y,{...i,clipRect:S})}for(const Oe of Object.values(W(this,ga))){const P=Oe.axisProps.orient;(P=="left"&&_==0||P=="right"&&_==u.nCols-1||P=="top"&&C==0||P=="bottom"&&C==u.nRows-1)&&Oe.render(n,Tw(Je.shrink(c.view.getOverhang()),P,Oe),i)}qt||h.render(n,_e,i);for(const Oe of Object.values(c.scrollbars))Oe.updateScrollbar(Je,_e),Oe.render(n,r,i);w==null||w.render(n,Je,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=W(this,yr,va).find(a=>a.coords.containsPoint(n.point.x,n.point.y));for(const a of Object.values((r==null?void 0:r.scrollbars)??{}))if(a.coords.containsPoint(n.point.x,n.point.y)&&(a.propagateInteractionEvent(n),n.stopped))return;const i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof Yt||i instanceof $s)&&YF(n,r.coords,a=>ee(this,Gc,p_).call(this,r.coords,r.view,a),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}Mo=new WeakMap,Po=new WeakMap,Kt=new WeakMap,ga=new WeakMap,Lo=new WeakMap,yr=new WeakSet,va=function(){return W(this,Kt).filter(n=>n.view.isConfiguredVisible())},zc=new WeakSet,h_=function(){return new xw(W(this,yr,va).length,W(this,Mo)??1/0)},ma=new WeakSet,ou=function(n){const r=n=="column"?"width":"height",i=(a,o)=>a.map(s=>{const l=W(this,yr,va)[s].getOverhangAndPadding();return n=="column"?o?l.right:l.left:o?l.bottom:l.top}).reduce((s,u)=>Math.max(s,u),0);return this._cache(`size/directionSizes/${n}`,()=>W(this,zc,h_)[n=="column"?"colIndices":"rowIndices"].map(a=>({axisBefore:i(a,0),axisAfter:i(a,1),view:rD(a.map(o=>W(this,yr,va)[o].view.getViewportSize()[r]))})))},eu=new WeakSet,qg=function(n){const r=ee(this,ma,ou).call(this,n),i=[];i.push(js);for(const[a,o]of r.entries())a>0&&i.push({px:W(this,Po),grow:0}),(a==0||this.wrappingFacet)&&i.push(js),i.push({px:o.axisBefore,grow:0}),i.push(o.view),i.push({px:o.axisAfter,grow:0}),(a==r.length-1||this.wrappingFacet)&&i.push(js);return i},tu=new WeakSet,Zg=function(n){let r=0,i=0;const a=n=="row"?this.spec.height:this.spec.width;if(a||a===0)return Py(a);const o=ee(this,ma,ou).call(this,n);for(const[s,u]of o.entries())s>0&&(i+=W(this,Po)),(s==0||this.wrappingFacet)&&(i+=0),i+=u.axisBefore,i+=u.view.px??0,r+=u.view.grow??0,i+=u.axisAfter,(s==o.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},nu=new WeakSet,Wg=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},Uc=new WeakSet,d_=function(){const n=ee(this,ma,ou).call(this,"column"),r=ee(this,ma,ou).call(this,"row");return!n.length||!r.length?_t.zero():new _t(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)},No=new WeakSet,Zc=function(){const n=r=>{const i=v0[r],a=W(this,ga)[i];return(a==null?void 0:a.axisProps.orient)!==r?0:Math.max(a.getPerpendicularSize()+a.axisProps.offset,0)};return new _t(n("top"),n("right"),n("bottom"),n("left"))},Gc=new WeakSet,p_=function(n,r,i){for(const[a,o]of Object.entries(KF(r))){if(o.size<=0)continue;const s=n.normalizePoint(i.x,i.y),u=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),l={x:u.x-s.x,y:u.y-s.y};for(const f of o)f.zoom(2**i.zDelta,a=="y"?1-s[a]:s[a],a=="x"?l.x:-l.y)}this.context.animator.requestRender()};function $F(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 XF(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",strokeOpacity: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 KF(e){const t={x:new Set,y:new Set};return e.visit(n=>{for(const[r,i]of Object.entries(t)){const a=n.getScaleResolution(r);a&&a.isZoomable()&&i.add(a)}}),t}function JF(e){let t=!0;return e.visit(n=>{n instanceof Yt&&t&&(t=n.mark.properties.clip===!0)}),t}function Tw(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 kw{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=sr.ZERO,t.needsAxes.x||t.needsAxes.y){const i=t.spec,a="view"in i?i==null?void 0:i.view:void 0,o=$F(a);o&&(this.background=new Yt(o,n.context,n,t,"background"+r,{blockEncodingInheritance:!0}));const s=XF(a);s&&(this.backgroundStroke=new Yt(s,n.context,n,t,"backgroundStroke"+r,{blockEncodingInheritance:!0}));const u=WF(t.spec.title);if(u){const l=new Yt(u,n.context,n,t,"title"+r,{blockEncodingInheritance:!0});this.title=l}}t.spec.viewportWidth!=null&&(this.scrollbars.horizontal=new Iw(this,"horizontal")),t.spec.viewportHeight!=null&&(this.scrollbars.vertical=new Iw(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,u)=>{const l=s.getAxisProps();if(l===null)return;const f=l?{...l}:{};if(!f.orient){for(const c of Pf[u])if(!n[c]){f.orient=c;break}if(!f.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(f.title??(f.title=s.getTitle()),!Pf[u].includes(f.orient))throw new Error(`Invalid axis orientation "${f.orient}" on channel "${u}"!`);return f},a=async(s,u,l)=>{const f=i(s,u);if(f){if(n[f.orient])throw new Error(`An axis with the orient "${f.orient}" already exists!`);const c=new Aw(f,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);n[f.orient]=c,await c.initializeChildren()}},o=async(s,u,l)=>{const f=i(s,u);if(f&&(f.grid||f.chromGrid)){const c=new NF(f,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);r[f.orient]=c,await c.initializeChildren()}};for(const s of["x","y"])if(t.needsAxes[s]){const u=t.resolutions.axis[s];if(!u)continue;await a(u,s,t)}for(const s of["x","y"])if(t.needsAxes[s]){const u=t.getAxisResolution(s);if(!u)continue;await o(u,s,t)}if(t instanceof $s){for(const s of t)for(const[u,l]of Object.entries(s.resolutions.axis)){const f=l.getAxisProps();f&&f.orient&&await a(l,u,s)}for(const s of t)for(const[u,l]of Object.entries(s.resolutions.axis)){const f=l.getAxisProps();f&&!f.orient&&await a(l,u,s)}}[...Object.values(n),...Object.values(r)].forEach(s=>s.visit(u=>{u instanceof Yt&&u.resolve("scale")}))}getOverhang(){const t=n=>{const r=this.axes[n];return r?Math.max(r.getPerpendicularSize()+r.axisProps.offset,0):0};return new _t(t("top"),t("right"),t("bottom"),t("left")).add(this.view.getOverhang())}getOverhangAndPadding(){return this.getOverhang().add(this.view.getPadding())}}class Iw extends Yt{constructor(t,n){const r={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},t.layoutParent.context,t.layoutParent,t.view,"scrollbar-"+n,{blockEncodingInheritance:!0}),this.config=r,this.scrollDirection=n,this.viewportOffset=0,this.maxScrollOffset=0,this.scrollbarCoords=sr.ZERO,this.addInteractionEventListener("mousedown",(i,a)=>{if(a.stopPropagation(),this.maxScrollOffset<=0)return;const o=h=>n=="vertical"?h.clientY:h.clientX,s=a.uiEvent;s.preventDefault();const u=this.getScrollOffset(),l=o(s),f=h=>{const d=xs(o(h)-l+u,0,this.maxScrollOffset);this.viewportOffset=d/this.maxScrollOffset*this.maxViewportOffset,this.context.animator.requestRender()},c=()=>{document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",c)};document.addEventListener("mouseup",c,!1),document.addEventListener("mousemove",f,!1)})}getScrollOffset(){return this.viewportOffset/this.maxViewportOffset*this.maxScrollOffset}render(t,n,r){super.render(t,this.scrollbarCoords,r)}updateScrollbar(t,n){const r=this.config.scrollbarPadding,i=this.config.scrollbarSize,a=this.scrollDirection=="horizontal"?"width":"height",o=Math.min(1,t[a]/n[a]),s=t[a]-2*r,u=o*s;this.maxScrollOffset=s-u,this.maxViewportOffset=n[a]-t[a],this.viewportOffset=xs(this.viewportOffset,0,this.maxViewportOffset),this.scrollbarCoords=this.scrollDirection=="vertical"?new sr(()=>t.x+t.width-i-r,()=>t.y+r+this.getScrollOffset(),()=>i,()=>u):new sr(()=>t.x+r+this.getScrollOffset(),()=>t.y+t.height-i-r,()=>u,()=>i)}}class A0 extends QF{constructor(t,n,r,i,a){super(t,n,r,i,a,S0(t)?t.columns:Lf(t)?1:1/0),this.spec=t}async initializeChildren(){const t=this.spec,n=S0(t)?t.concat:Lf(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":Lf(this.spec)&&t==="x"||Dw(this.spec)&&t==="y"?"shared":"independent"}}const Bw="viewRoot";class eR{constructor(t={}){ne(this,Oo,new Map);this.options={allowImport:!0,wrapRoot:!0,...t};const n=r=>(i,a,o,s,u)=>new r(i,a,o,s,i.name??u);this.addViewType(_0,n($s)),this.addViewType(E0,n(Yt)),this.addViewType(Lf,n(A0)),this.addViewType(Dw,n(A0)),this.addViewType(S0,n(A0)),this.addViewType(nR,()=>{throw new Error("SampleView is not supported by the @genome-spy/core package. Use @genome-spy/app instead!")})}addViewType(t,n){W(this,Oo).set(t,n)}createView(t,n,r,i,a){for(const[o,s]of W(this,Oo))if(o(t))return s(t,n,r,i,a);throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(t)]))}isViewSpec(t){const n=[...W(this,Oo).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,a,o){let s;if(tR(t))if(this.options.allowImport)s=await lF(t,i.getBaseUrl(),n),o&&o(s);else throw new qi("Importing views is not allowed!",r);else s=t;!i&&this.options.wrapRoot&&(E0(s)||_0(s))&&a===Bw&&(s={name:"implicitRoot",vconcat:[s]});const u=this.createView(s,n,r,i,a);return u instanceof Zi&&await u.initializeChildren(),u}}Oo=new WeakMap;function E0(e){return"mark"in e&&(Pe(e.mark)||Rt(e.mark))}function _0(e){return"layer"in e&&Rt(e.layer)}function tR(e){return"import"in e}function Lf(e){return"vconcat"in e&&Ft(e.vconcat)}function Dw(e){return"hconcat"in e&&Ft(e.hconcat)}function S0(e){return"concat"in e&&Ft(e.concat)}function nR(e){return"samples"in e&&Rt(e.samples)&&"spec"in e&&Rt(e.spec)}class rR{constructor(){ne(this,zo,void 0);ne(this,ba,void 0);ne(this,ru,void 0);ne(this,ya,void 0);Xe(this,zo,new Map),Xe(this,ba,new Set),Xe(this,ya,new Map),Xe(this,ru,new Proxy(W(this,zo),{get(t,n){return Pe(n)?t.get(n):void 0}}))}allocateSetter(t){if(W(this,ba).has(t))throw new Error("Setter already allocated for parameter: "+t);return W(this,ba).add(t),n=>{W(this,zo).set(t,n);const r=W(this,ya).get(t);if(r)for(const i of r)i()}}createExpression(t){const n=Nu(t,W(this,ru));for(const r of n.globals)if(!W(this,ba).has(r))throw new Error(`Unknown variable "${r}" in expression: ${t}`);return n.addListener=r=>{for(const i of n.globals){const a=W(this,ya).get(i)??new Set;W(this,ya).set(i,a),a.add(r)}},n}}zo=new WeakMap,ba=new WeakMap,ru=new WeakMap,ya=new WeakMap,t1("fasta",AF);class Fw{constructor(t,n,r={}){this.container=t,this._destructionCallbacks=[];const i=document.createElement("style");i.innerHTML=yC,t.appendChild(i),this.spec=n,this.accessorFactory=new s5,this.viewFactory=new eR,this.namedDataProviders=[],this.animator=new gF(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=a=>a.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new EF(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this._extraBroadcastListeners=new Map,this.tooltipHandlers={default:DF,refseqgene:SF,...r.tooltipHandlers??{}},this.viewRoot=void 0,this._paramBroker=new rR,this._loadingViews=new Map}registerNamedDataProvider(t){this.namedDataProviders.unshift(t)}getNamedDataFromProvider(t){for(const n of this.namedDataProviders){const r=n(t);if(r)return r}}updateNamedData(t,n){const r=this.viewRoot.context.dataFlow.findNamedDataSource(t);if(!r)throw new Error("No such named data source: "+t);r.dataSource.updateDynamicData(n),d0(r.hosts),this.animator.requestRender()}broadcast(t,n){var i;const r={type:t,payload:n};this.viewRoot.visit(a=>a.handleBroadcast(r)),(i=this._extraBroadcastListeners.get(t))==null||i.forEach(a=>a(r))}_updateLoadingIndicators(){const t=[],n=()=>[...this._loadingViews.values()].some(r=>r);for(const[r,i]of this._loadingViews){const a=r.coords;if(a){const o={left:`${a.x}px`,top:`${a.y}px`,width:`${a.width}px`,height:`${a.height}px`};t.push(mn`<div style=${mC(o)}>
310
315
  <div class=${i?"loading":""}>
311
- <img src="${cC}" alt="" />
316
+ <img src="${bC}" alt="" />
312
317
  <span>Loading...</span>
313
318
  </div>
314
- </div>`)}}n()?this.loadingIndicatorsElement.style.display="block":setTimeout(()=>{n()||(this.loadingIndicatorsElement.style.display="none")},3e3),Eh(t,this.loadingIndicatorsElement)}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new mB(this.container,()=>this.viewRoot?J9(this.viewRoot):{width:void 0,height:void 0},this.spec.background);const t=()=>{this._glHelper.invalidateSize(),r(window.devicePixelRatio),this.computeLayout(),this.renderAll()},n=new ResizeObserver(t);n.observe(this.container),this._destructionCallbacks.push(()=>n.disconnect());const r=this._paramBroker.allocateSetter("devicePixelRatio");r(window.devicePixelRatio);let i=null;const o=()=>{i!=null&&(i(),t());const a=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);a.addEventListener("change",o),i=()=>{a.removeEventListener("change",o)}};o(),i&&this._destructionCallbacks.push(i),this.loadingMessageElement=document.createElement("div"),this.loadingMessageElement.className="loading-message",this.loadingMessageElement.innerHTML='<div class="message">Loading<span class="ellipsis">...</span></div>',this.container.appendChild(this.loadingMessageElement),this.loadingIndicatorsElement=document.createElement("div"),this.loadingIndicatorsElement.className="loading-indicators",this.container.appendChild(this.loadingIndicatorsElement),this.tooltip=new pC(this.container),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})}destroy(){this.container.classList.remove("genome-spy"),this.container.classList.remove("loading");for(const[t,n]of this._keyboardListeners)for(const r of n)document.removeEventListener(t,r);for(this._destructionCallbacks.forEach(t=>t()),this._glHelper.finalize();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new aF(this.spec.baseUrl),await this.genomeStore.initialize(this.spec.genome));const t=this,n={dataFlow:new uw,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new uF(this._glHelper),get devicePixelRatio(){return t._glHelper.dpr},paramBroker:this._paramBroker,requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,setDataLoadingStatus:(u,l)=>{this._loadingViews.set(u,l),this._updateLoadingIndicators()},addKeyboardListener:(u,l)=>{document.addEventListener(u,l);let f=this._keyboardListeners.get(u);f||(f=[],this._keyboardListeners.set(u,f)),f.push(l)},addBroadcastListener(u,l){const f=t._extraBroadcastListeners;let c=f.get(u);c||(c=new Set,f.set(u,c)),c.add(l)},removeBroadcastListener(u,l){var c;(c=t._extraBroadcastListeners.get(u))==null||c.delete(l)},isViewConfiguredVisible:t.viewVisibilityPredicate,isViewSpec:u=>t.viewFactory.isViewSpec(u),createView:function(u,l,f,c){return t.viewFactory.createView(u,n,l,f,c)},createOrImportView:async function(u,l,f,c,h){return t.viewFactory.createOrImportView(u,n,l,f,c,h)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(u=>r.datasets[u]),this.viewRoot=await n.createOrImportView(r,null,null,Cw),X9(this.viewRoot),$9(this.viewRoot);const i=this.viewRoot.getDescendants();i.forEach(u=>u.configureViewOpacity()),this._glHelper.invalidateSize();const o=i.filter(u=>u instanceof Yt),a=j9(this.viewRoot,n.dataFlow);Q9(a),this.broadcast("dataFlowBuilt",a),o.forEach(u=>u.mark.initializeEncoders());const s=Promise.all(o.map(u=>u.mark.initializeGraphics()));for(const u of o)a.addObserver(l=>{u.mark.initializeData(),u.mark.updateGraphicsData()},u);await n.fontManager.waitUntilReady(),a.initialize(),await Promise.all(a.dataSources.map(u=>u.load())),u0(this.viewRoot),this.broadcast("dataLoaded"),await s,this.viewRoot.visit(u=>{for(const l of Object.values(u.resolutions.scale))this._glHelper.createRangeTexture(l)});for(const u of o)u.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(u=>Cf(u,"size")),this._glHelper.invalidateSize()}async launch(){try{return this._prepareContainer(),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),!0}catch(t){const n=`${t.view?`At "${t.view.getPathString()}": `:""}${t.toString()}`;return console.error(t.stack),YF(this.container,n),!1}finally{this.container.classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const t=this._glHelper.canvas,n=r=>{var i;if(r instanceof MouseEvent){r.type=="mousemove"&&(this.tooltip.handleMouseMove(r),this._tooltipUpdateRequested=!1,r.buttons==0&&this.renderPickingFramebuffer());const o=t.getBoundingClientRect(),a=new nF(r.clientX-o.left-t.clientLeft,r.clientY-o.top-t.clientTop),s=u=>{this.viewRoot.propagateInteractionEvent(new tF(a,u)),this._tooltipUpdateRequested||this.tooltip.clear()};if(r.type!="wheel"&&this._wheelInertia.cancel(),r.type=="mousemove")this._handlePicking(a.x,a.y);else if(r.type=="mousedown"||r.type=="mouseup")this.renderPickingFramebuffer();else if(r.type=="wheel"){this._tooltipUpdateRequested=!1;const u=r;if(Math.abs(u.deltaX)>Math.abs(u.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const l=pF(u);this._wheelInertia.setMomentum(u.deltaY*(u.deltaMode?80:1),f=>{const c=new WheelEvent("wheel",{...l,deltaMode:0,deltaX:0,deltaY:f});s(c)}),u.preventDefault();return}}if(r.type=="click"){const u=this._currentHover?{type:r.type,viewPath:this._currentHover.mark.unitView.getLayoutAncestors().map(l=>l.name).reverse(),datum:this._currentHover.datum}:{type:r.type,viewPath:null,datum:null};(i=this._eventListeners.get("click"))==null||i.forEach(l=>l(u))}s(r)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(r=>t.addEventListener(r,n)),t.addEventListener("mousedown",()=>{document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),t.addEventListener("dragstart",r=>r.stopPropagation())}_handlePicking(t,n){var o;const r=this._glHelper.readPickingPixel(t,n),i=r[0]|r[1]<<8|r[2]<<16;if(i==0){this._currentHover=null;return}if(i!==((o=this._currentHover)==null?void 0:o.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(a=>{if(a instanceof Yt){if(a.mark.isPickingParticipant()){const s=a.mark.encoders.uniqueId.accessor;a.getCollector().visitData(u=>{s(u)==i&&(this._currentHover={mark:a.mark,datum:u,uniqueId:i})})}if(this._currentHover)return qs}}),this._currentHover){const a=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!a.isPickingParticipant())return;const u=a.properties.tooltip;if(u!==null){const l=(u==null?void 0:u.handler)??"default",f=this.tooltipHandlers[l];if(!f)throw new Error("No such tooltip handler: "+l);return f(s,a,u==null?void 0:u.params)}})}}updateTooltip(t,n){if(!this._tooltipUpdateRequested||!t)this.tooltip.updateWithDatum(t,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const t=this.viewRoot;if(!t)return;this.broadcast("layout");const n=this._glHelper.getLogicalCanvasSize();if(isNaN(n.width)||isNaN(n.height)){console.log(`NaN in canvas size: ${n.width}x${n.height}. Skipping computeLayout().`);return}this._renderingContext=new dw({picking:!1},this._glHelper),this._pickingContext=new dw({picking:!0},this._glHelper),t.render(new eF(this._renderingContext,this._pickingContext),ar.create(0,0,n.width,n.height)),this.broadcast("layoutComputed")}renderAll(){var t;(t=this._renderingContext)==null||t.render(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){this._dirtyPickingBuffer&&(this._pickingContext.render(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const t=[];return this.viewRoot.visit(n=>{n instanceof Yt&&n.getAccessor("search")&&t.push(n)}),t}getNamedScaleResolutions(){const t=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&t.set(r.name,r)}),t}}function YF(e,t){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=t,n.appendChild(r),e.appendChild(n)}const QF="data:image/svg+xml,%3csvg%20viewBox='0%200%2032%2032'%20xmlns='http://www.w3.org/2000/svg'%20fill-rule='evenodd'%20clip-rule='evenodd'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-miterlimit='1.5'%3e%3cpath%20d='M4.7%2021.2s.4%202.3%201.3%203.6C7%2026%209.8%2028%209.8%2028s3.4-2.6%206.4-8.5c0%200%201%20.1%201.9-.4.9-.6.8-.4%201-1.2%200%200%202.9.5%206.6%200%202.1-.3%204.3-1%206.2-2.5%200%200-1.1-1.7-2.5-5.1-.5-1.3-2-1.8-4.6-4.6l-8.2%208.6-11.9%206.9z'%20fill-opacity='.1'/%3e%3cpath%20d='M12.7%2014.8s-4-1.8-12%202.7c0%200%201%203.7%202.5%205.3%201.4%201.5%202.3%203.6%204.6%204.6%200%200%204.7-3%206.9-9.2l3-2s4.7%202.8%2012.6-1.6c0%200-.6-3.3-3-6-2.6-3-3.8-4.7-3.8-4.7s-4.1%202.3-7.5%209.3l-3.3%201.6z'%20fill='%237fbbdd'/%3e%3cpath%20d='M12.4%2015.5c-.7-.5-2.4-.8-4.4-.4-2%20.4-4%201.3-4.8%201.8-.5.3-1.2%201-1.2%201.4%200%20.7.3%201.8.8%202.4.3.3.7.5%201.4.6.8%200%202.5-1.4%203.5-2%201-.6%201.6-.8%202.7-1.2l-2.9%202.4c-1.3%201.2-2.2%201.5-2.4%202.3%200%20.5%200%201.4.5%201.8.4.5.6.8%201.6.8.6%200%201%200%202.6-1.5.9-.9%202.3-3%202.7-3.7.6-1.1%201-2.2.7-3-.2-1-.4-1.4-.8-1.7zM17.4%2014.2c-.3-.5-.9-1.2-.2-2.5l1.9-3c.5-.8%202-2.3%202.6-2.6.6-.4%201.5-.6%202-.2.6.4%201%201%201.3%201.5.4.6.7%201.3.2%202-.7%201-1.6.9-2.8%201.7-1.2.8-1.9%201.2-2.5%201.9l3.8-1.8c1.3-.6%202.7-1.1%203.4-.7.8.5.8.7%201%201.4.3%201-.2%201.9-.8%202.4-.5.6-1.5.9-2.6%201.2-1.4.4-4.5%201-5.8.5-1.3-.5-1.3-1.4-1.5-1.8z'%20fill='%23fff'/%3e%3cpath%20d='M12.7%2014.8s-4-1.8-12%202.7c0%200%201%203.7%202.5%205.3%201.4%201.5%202.3%203.6%204.6%204.6%200%200%204.7-3%206.9-9.2l3-2s4.7%202.8%2012.6-1.6c0%200-.6-3.3-3-6-2.6-3-3.8-4.7-3.8-4.7s-4.1%202.3-7.5%209.3l-3.3%201.6z'%20fill='none'%20stroke='%23000'%20stroke-width='.5'/%3e%3cpath%20d='M12.4%2014.9s2.1-2%203-2c1.1%200%202.3%202.7%202.3%203.5%200%20.8-2.1%202.4-3.1%202.3%200%200%200-1.2-.7-2.6-.8-1.3-1.5-1.2-1.5-1.2z'%20fill='%237fbbdd'/%3e%3cpath%20d='M13.8%2015.3c.9.8.6%202%201.4%201.8%201-.2%201.4-.8%201.3-1.5%200-.7%200-.8-.4-1.6-.3-.7-1-1.1-2-.5-.7.5-1.4%201.3-1.4%201.3s.2-.3%201.1.5z'%20fill='%23fff'/%3e%3cpath%20d='M12.4%2014.9s2.1-2%203-2c1.1%200%202.3%202.7%202.3%203.5%200%20.8-2.1%202.4-3.1%202.3%200%200%200-1.2-.7-2.6-.8-1.3-1.5-1.2-1.5-1.2z'%20fill='none'%20stroke='%23000'%20stroke-width='.5'/%3e%3c/svg%3e",XF="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2064%2064'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;'%3e%3cg%20transform='matrix(0.10221,0.00683825,-0.0067136,0.100347,-8.03424,-13.2222)'%3e%3cpath%20d='M208.629,548.17C208.629,548.17%20219.768,594.389%20239.814,619.222C259.86,644.055%20319.119,680.831%20319.119,680.831C319.119,680.831%20385.557,622.915%20437.87,498.346C437.87,498.346%20456.021,499.236%20473.808,486.446C491.594,473.656%20490.239,478.534%20494.883,461.62C494.883,461.62%20551.848,467.937%20625.826,451.863C667.634,442.778%20710.238,425.649%20747.382,393.142C747.382,393.142%20721.992,360.244%20689.422,291.45C677.029,265.275%20647.518,257.098%20590.747,203.309L438.083,391.273L208.629,548.17Z'%20style='fill-opacity:0.11;'/%3e%3c/g%3e%3cg%20transform='matrix(0.081985,-0.0582493,0.0582493,0.081985,-40.4754,34.7668)'%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'%20style='fill:rgb(127,187,221);'/%3e%3cclipPath%20id='_clip1'%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23_clip1)'%3e%3cg%20transform='matrix(0.758637,0.45892,-0.45892,0.758637,425.635,-121.213)'%3e%3cpath%20d='M386.873,397.241C371.345,383.628%20335.138,374.782%20290.644,380.543C246.149,386.304%20196.827,402.266%20178.802,412.065C168.202,417.828%20151.494,429.354%20150.682,439.334C149.527,453.528%20153.593,477.066%20165.625,491.284C171.69,498.451%20179.927,503.445%20193.838,505.423C211.701,507.963%20252.714,480.627%20275.399,469.22C299.332,457.187%20313.981,454.56%20338.386,447.014C338.386,447.014%20291.346,478.587%20270.205,494.393C239.61,517.268%20218.575,522.444%20212.859,539.897C209.766,549.34%20212.237,567.767%20220.354,577.538C229.427,588.461%20233.197,595.069%20254.591,597.624C267.303,599.143%20276.685,598.802%20314.37,568.95C336.06,551.767%20370.297,509.817%20381.412,494.616C397.581,472.506%20405.165,451.462%20402.656,435.04C399.045,411.391%20394.259,403.716%20386.873,397.241Z'%20style='fill:white;'/%3e%3c/g%3e%3cg%20transform='matrix(0.752145,0.454993,-0.454993,0.752145,468.36,-108.293)'%3e%3cpath%20d='M484.733,378.934C479.33,367.886%20467.092,350.452%20483.886,325.205C502.172,297.717%20514.898,280.938%20528.117,264.632C541.335,248.326%20574.793,218.447%20587.739,212.53C600.684,206.613%20621.026,203.852%20631.889,212.841C642.874,221.93%20648.416,233.377%20654.92,245.478C662.331,259.267%20667.318,274.808%20656.518,288.278C641.093,307.515%20622.242,305.294%20594.912,319.844C567.244,334.573%20552.644,342.943%20539.244,355.703C539.244,355.703%20591.431,334.114%20621.229,324.474C651.027,314.833%20680.952,304.461%20695.995,315.975C711.038,327.49%20710.631,331.463%20714.425,347.187C719.107,366.59%20707.231,385.165%20694.294,395.838C681.356,406.51%20659.958,411.756%20636.875,416.852C606.42,423.576%20540.278,431.917%20512.819,419.366C485.361,406.815%20488.488,386.613%20484.733,378.934Z'%20style='fill:white;'/%3e%3c/g%3e%3c/g%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'%20style='fill:none;stroke:black;stroke-width:16.57px;'/%3e%3c/g%3e%3cg%20transform='matrix(0.100298,-0.00740488,0.00740488,0.100298,-15.7457,-5.17528)'%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'%20style='fill:rgb(127,187,221);'/%3e%3cclipPath%20id='_clip2'%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23_clip2)'%3e%3cg%20transform='matrix(0.909069,3.67641e-17,-3.79818e-17,0.85852,37.051,52.1829)'%3e%3cpath%20d='M413.282,402.697C430.77,421.58%20423.307,448.426%20441.683,446.137C463.409,443.431%20472.604,430.356%20473.316,413.402C474.028,396.448%20472.245,393.911%20466.172,375.321C460.099,356.731%20447.953,352.176%20422.842,357.179C401.957,361.339%20405.039,360.215%20398.735,367.228C392.43,374.242%20384.315,393.182%20384.315,393.182C384.315,393.182%20392.715,380.492%20413.282,402.697Z'%20style='fill:white;'/%3e%3c/g%3e%3c/g%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'%20style='fill:none;stroke:black;stroke-width:16.57px;'/%3e%3c/g%3e%3c/svg%3e";async function $F(e,t,n={}){let r;if(Pe(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=Rt(t)?t:await Iw(t);if(o.baseUrl??(o.baseUrl=""),o.width??(o.width="container"),o.padding??(o.padding=10),r==document.body){const a=document.createElement("div");a.style.position="fixed",a.style.inset="0",a.style.overflow="hidden",r.appendChild(a),r=a}i=new Tw(r,o,n),KF(i,n),await i.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 u=s.get(o);u||(u=new Set,s.set(o,u)),u.add(a)},removeEventListener(o,a){var u;(u=i._eventListeners.get(o))==null||u.delete(a)},getScaleResolutionByName(o){return i.getNamedScaleResolutions().get(o)},updateNamedData:i.updateNamedData.bind(i)}}function KF(e,t){t.namedDataProvider&&e.registerNamedDataProvider(t.namedDataProvider)}async function Iw(e){let t;try{t=JSON.parse(await Cu().load(e))}catch(n){throw new Error(`Could not load or parse configuration: ${e}, reason: ${n.message}`)}if(!t.baseUrl){const n=e.match(/^[^?#]*\//);t.baseUrl=n&&n[0]||"./"}return t}var Mf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function $s(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function JF(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 pe={},Pf={};Pf.byteLength=nR,Pf.toByteArray=iR,Pf.fromByteArray=sR;for(var zn=[],tn=[],eR=typeof Uint8Array<"u"?Uint8Array:Array,A0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Yo=0,tR=A0.length;Yo<tR;++Yo)zn[Yo]=A0[Yo],tn[A0.charCodeAt(Yo)]=Yo;tn["-".charCodeAt(0)]=62,tn["_".charCodeAt(0)]=63;function Bw(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 nR(e){var t=Bw(e),n=t[0],r=t[1];return(n+r)*3/4-r}function rR(e,t,n){return(t+n)*3/4-n}function iR(e){var t,n=Bw(e),r=n[0],i=n[1],o=new eR(rR(e,r,i)),a=0,s=i>0?r-4:r,u;for(u=0;u<s;u+=4)t=tn[e.charCodeAt(u)]<<18|tn[e.charCodeAt(u+1)]<<12|tn[e.charCodeAt(u+2)]<<6|tn[e.charCodeAt(u+3)],o[a++]=t>>16&255,o[a++]=t>>8&255,o[a++]=t&255;return i===2&&(t=tn[e.charCodeAt(u)]<<2|tn[e.charCodeAt(u+1)]>>4,o[a++]=t&255),i===1&&(t=tn[e.charCodeAt(u)]<<10|tn[e.charCodeAt(u+1)]<<4|tn[e.charCodeAt(u+2)]>>2,o[a++]=t>>8&255,o[a++]=t&255),o}function oR(e){return zn[e>>18&63]+zn[e>>12&63]+zn[e>>6&63]+zn[e&63]}function aR(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(oR(r));return i.join("")}function sR(e){for(var t,n=e.length,r=n%3,i=[],o=16383,a=0,s=n-r;a<s;a+=o)i.push(aR(e,a,a+o>s?s:a+o));return r===1?(t=e[n-1],i.push(zn[t>>2]+zn[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(zn[t>>10]+zn[t>>4&63]+zn[t<<2&63]+"=")),i.join("")}var E0={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */E0.read=function(e,t,n,r,i){var o,a,s=i*8-r-1,u=(1<<s)-1,l=u>>1,f=-7,c=n?i-1:0,h=n?-1:1,d=e[t+c];for(c+=h,o=d&(1<<-f)-1,d>>=-f,f+=s;f>0;o=o*256+e[t+c],c+=h,f-=8);for(a=o&(1<<-f)-1,o>>=-f,f+=r;f>0;a=a*256+e[t+c],c+=h,f-=8);if(o===0)o=1-l;else{if(o===u)return a?NaN:(d?-1:1)*(1/0);a=a+Math.pow(2,r),o=o-l}return(d?-1:1)*a*Math.pow(2,o-r)},E0.write=function(e,t,n,r,i,o){var a,s,u,l=o*8-i-1,f=(1<<l)-1,c=f>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,p=r?1:-1,b=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=f):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),a+c>=1?t+=h/u:t+=h*Math.pow(2,1-c),t*u>=2&&(a++,u/=2),a+c>=f?(s=0,a=f):a+c>=1?(s=(t*u-1)*Math.pow(2,i),a=a+c):(s=t*Math.pow(2,c-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,l+=i;l>0;e[n+d]=a&255,d+=p,a/=256,l-=8);e[n+d-p]|=b*128};/*!
319
+ </div>`)}}n()?this.loadingIndicatorsElement.style.display="block":setTimeout(()=>{n()||(this.loadingIndicatorsElement.style.display="none")},3e3),kh(t,this.loadingIndicatorsElement)}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new _B(this.container,()=>this.viewRoot?uF(this.viewRoot):{width:void 0,height:void 0},this.spec.background);const t=()=>{this._glHelper.invalidateSize(),r(window.devicePixelRatio),this.computeLayout(),this.renderAll()},n=new ResizeObserver(t);n.observe(this.container),this._destructionCallbacks.push(()=>n.disconnect());const r=this._paramBroker.allocateSetter("devicePixelRatio");r(window.devicePixelRatio);let i=null;const a=()=>{i!=null&&(i(),t());const o=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);o.addEventListener("change",a),i=()=>{o.removeEventListener("change",a)}};a(),i&&this._destructionCallbacks.push(i),this.loadingMessageElement=document.createElement("div"),this.loadingMessageElement.className="loading-message",this.loadingMessageElement.innerHTML='<div class="message">Loading<span class="ellipsis">...</span></div>',this.container.appendChild(this.loadingMessageElement),this.loadingIndicatorsElement=document.createElement("div"),this.loadingIndicatorsElement.className="loading-indicators",this.container.appendChild(this.loadingIndicatorsElement),this.tooltip=new vC(this.container),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})}destroy(){this.container.classList.remove("genome-spy"),this.container.classList.remove("loading");for(const[t,n]of this._keyboardListeners)for(const r of n)document.removeEventListener(t,r);for(this._destructionCallbacks.forEach(t=>t()),this._glHelper.finalize();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new mF(this.spec.baseUrl),await this.genomeStore.initialize(this.spec.genome));const t=this,n={dataFlow:new dw,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new wF(this._glHelper),get devicePixelRatio(){return t._glHelper.dpr},paramBroker:this._paramBroker,requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,setDataLoadingStatus:(u,l)=>{this._loadingViews.set(u,l),this._updateLoadingIndicators()},addKeyboardListener:(u,l)=>{document.addEventListener(u,l);let f=this._keyboardListeners.get(u);f||(f=[],this._keyboardListeners.set(u,f)),f.push(l)},addBroadcastListener(u,l){const f=t._extraBroadcastListeners;let c=f.get(u);c||(c=new Set,f.set(u,c)),c.add(l)},removeBroadcastListener(u,l){var c;(c=t._extraBroadcastListeners.get(u))==null||c.delete(l)},isViewConfiguredVisible:t.viewVisibilityPredicate,isViewSpec:u=>t.viewFactory.isViewSpec(u),createView:function(u,l,f,c){return t.viewFactory.createView(u,n,l,f,c)},createOrImportView:async function(u,l,f,c,h){return t.viewFactory.createOrImportView(u,n,l,f,c,h)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(u=>r.datasets[u]),this.viewRoot=await n.createOrImportView(r,null,null,Bw),oF(this.viewRoot),sF(this.viewRoot);const i=this.viewRoot.getDescendants();i.forEach(u=>u.configureViewOpacity()),this._glHelper.invalidateSize();const a=i.filter(u=>u instanceof Yt),o=eF(this.viewRoot,n.dataFlow);aF(o),this.broadcast("dataFlowBuilt",o),a.forEach(u=>u.mark.initializeEncoders());const s=Promise.all(a.map(u=>u.mark.initializeGraphics()));for(const u of a)o.addObserver(l=>{u.mark.initializeData(),u.mark.updateGraphicsData()},u);await n.fontManager.waitUntilReady(),o.initialize(),await Promise.all(o.dataSources.map(u=>u.load())),d0(this.viewRoot),this.broadcast("dataLoaded"),await s,this.viewRoot.visit(u=>{for(const l of Object.values(u.resolutions.scale))this._glHelper.createRangeTexture(l)});for(const u of a)u.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(u=>If(u,"size")),this._glHelper.invalidateSize()}async launch(){try{return this._prepareContainer(),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),!0}catch(t){const n=`${t.view?`At "${t.view.getPathString()}": `:""}${t.toString()}`;return console.error(t.stack),iR(this.container,n),!1}finally{this.container.classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const t=this._glHelper.canvas,n=r=>{var i;if(r instanceof MouseEvent){r.type=="mousemove"&&(this.tooltip.handleMouseMove(r),this._tooltipUpdateRequested=!1,r.buttons==0&&this.renderPickingFramebuffer());const a=t.getBoundingClientRect(),o=new hF(r.clientX-a.left-t.clientLeft,r.clientY-a.top-t.clientTop),s=u=>{this.viewRoot.propagateInteractionEvent(new cF(o,u)),this._tooltipUpdateRequested||this.tooltip.clear()};if(r.type!="wheel"&&this._wheelInertia.cancel(),r.type=="mousemove")this._handlePicking(o.x,o.y);else if(r.type=="mousedown"||r.type=="mouseup")this.renderPickingFramebuffer();else if(r.type=="wheel"){this._tooltipUpdateRequested=!1;const u=r;if(Math.abs(u.deltaX)>Math.abs(u.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const l=_F(u);this._wheelInertia.setMomentum(u.deltaY*(u.deltaMode?80:1),f=>{const c=new WheelEvent("wheel",{...l,deltaMode:0,deltaX:0,deltaY:f});s(c)}),u.preventDefault();return}}if(r.type=="click"){const u=this._currentHover?{type:r.type,viewPath:this._currentHover.mark.unitView.getLayoutAncestors().map(l=>l.name).reverse(),datum:this._currentHover.datum}:{type:r.type,viewPath:null,datum:null};(i=this._eventListeners.get("click"))==null||i.forEach(l=>l(u))}s(r)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(r=>t.addEventListener(r,n)),t.addEventListener("mousedown",()=>{document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),t.addEventListener("dragstart",r=>r.stopPropagation())}_handlePicking(t,n){var a;const r=this._glHelper.readPickingPixel(t,n),i=r[0]|r[1]<<8|r[2]<<16;if(i==0){this._currentHover=null;return}if(i!==((a=this._currentHover)==null?void 0:a.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(o=>{if(o instanceof Yt){if(o.mark.isPickingParticipant()){const s=o.mark.encoders.uniqueId.accessor;o.getCollector().visitData(u=>{s(u)==i&&(this._currentHover={mark:o.mark,datum:u,uniqueId:i})})}if(this._currentHover)return qs}}),this._currentHover){const o=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!o.isPickingParticipant())return;const u=o.properties.tooltip;if(u!==null){const l=(u==null?void 0:u.handler)??"default",f=this.tooltipHandlers[l];if(!f)throw new Error("No such tooltip handler: "+l);return f(s,o,u==null?void 0:u.params)}})}}updateTooltip(t,n){if(!this._tooltipUpdateRequested||!t)this.tooltip.updateWithDatum(t,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const t=this.viewRoot;if(!t)return;this.broadcast("layout");const n=this._glHelper.getLogicalCanvasSize();if(isNaN(n.width)||isNaN(n.height)){console.log(`NaN in canvas size: ${n.width}x${n.height}. Skipping computeLayout().`);return}this._renderingContext=new bw({picking:!1},this._glHelper),this._pickingContext=new bw({picking:!0},this._glHelper),t.render(new fF(this._renderingContext,this._pickingContext),sr.create(0,0,n.width,n.height)),this.broadcast("layoutComputed")}renderAll(){var t;(t=this._renderingContext)==null||t.render(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){this._dirtyPickingBuffer&&(this._pickingContext.render(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const t=[];return this.viewRoot.visit(n=>{n instanceof Yt&&n.getAccessor("search")&&t.push(n)}),t}getNamedScaleResolutions(){const t=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&t.set(r.name,r)}),t}}function iR(e,t){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=t,n.appendChild(r),e.appendChild(n)}const aR="data:image/svg+xml,%3csvg%20viewBox='0%200%2032%2032'%20xmlns='http://www.w3.org/2000/svg'%20fill-rule='evenodd'%20clip-rule='evenodd'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-miterlimit='1.5'%3e%3cpath%20d='M4.7%2021.2s.4%202.3%201.3%203.6C7%2026%209.8%2028%209.8%2028s3.4-2.6%206.4-8.5c0%200%201%20.1%201.9-.4.9-.6.8-.4%201-1.2%200%200%202.9.5%206.6%200%202.1-.3%204.3-1%206.2-2.5%200%200-1.1-1.7-2.5-5.1-.5-1.3-2-1.8-4.6-4.6l-8.2%208.6-11.9%206.9z'%20fill-opacity='.1'/%3e%3cpath%20d='M12.7%2014.8s-4-1.8-12%202.7c0%200%201%203.7%202.5%205.3%201.4%201.5%202.3%203.6%204.6%204.6%200%200%204.7-3%206.9-9.2l3-2s4.7%202.8%2012.6-1.6c0%200-.6-3.3-3-6-2.6-3-3.8-4.7-3.8-4.7s-4.1%202.3-7.5%209.3l-3.3%201.6z'%20fill='%237fbbdd'/%3e%3cpath%20d='M12.4%2015.5c-.7-.5-2.4-.8-4.4-.4-2%20.4-4%201.3-4.8%201.8-.5.3-1.2%201-1.2%201.4%200%20.7.3%201.8.8%202.4.3.3.7.5%201.4.6.8%200%202.5-1.4%203.5-2%201-.6%201.6-.8%202.7-1.2l-2.9%202.4c-1.3%201.2-2.2%201.5-2.4%202.3%200%20.5%200%201.4.5%201.8.4.5.6.8%201.6.8.6%200%201%200%202.6-1.5.9-.9%202.3-3%202.7-3.7.6-1.1%201-2.2.7-3-.2-1-.4-1.4-.8-1.7zM17.4%2014.2c-.3-.5-.9-1.2-.2-2.5l1.9-3c.5-.8%202-2.3%202.6-2.6.6-.4%201.5-.6%202-.2.6.4%201%201%201.3%201.5.4.6.7%201.3.2%202-.7%201-1.6.9-2.8%201.7-1.2.8-1.9%201.2-2.5%201.9l3.8-1.8c1.3-.6%202.7-1.1%203.4-.7.8.5.8.7%201%201.4.3%201-.2%201.9-.8%202.4-.5.6-1.5.9-2.6%201.2-1.4.4-4.5%201-5.8.5-1.3-.5-1.3-1.4-1.5-1.8z'%20fill='%23fff'/%3e%3cpath%20d='M12.7%2014.8s-4-1.8-12%202.7c0%200%201%203.7%202.5%205.3%201.4%201.5%202.3%203.6%204.6%204.6%200%200%204.7-3%206.9-9.2l3-2s4.7%202.8%2012.6-1.6c0%200-.6-3.3-3-6-2.6-3-3.8-4.7-3.8-4.7s-4.1%202.3-7.5%209.3l-3.3%201.6z'%20fill='none'%20stroke='%23000'%20stroke-width='.5'/%3e%3cpath%20d='M12.4%2014.9s2.1-2%203-2c1.1%200%202.3%202.7%202.3%203.5%200%20.8-2.1%202.4-3.1%202.3%200%200%200-1.2-.7-2.6-.8-1.3-1.5-1.2-1.5-1.2z'%20fill='%237fbbdd'/%3e%3cpath%20d='M13.8%2015.3c.9.8.6%202%201.4%201.8%201-.2%201.4-.8%201.3-1.5%200-.7%200-.8-.4-1.6-.3-.7-1-1.1-2-.5-.7.5-1.4%201.3-1.4%201.3s.2-.3%201.1.5z'%20fill='%23fff'/%3e%3cpath%20d='M12.4%2014.9s2.1-2%203-2c1.1%200%202.3%202.7%202.3%203.5%200%20.8-2.1%202.4-3.1%202.3%200%200%200-1.2-.7-2.6-.8-1.3-1.5-1.2-1.5-1.2z'%20fill='none'%20stroke='%23000'%20stroke-width='.5'/%3e%3c/svg%3e",oR="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2064%2064'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;'%3e%3cg%20transform='matrix(0.10221,0.00683825,-0.0067136,0.100347,-8.03424,-13.2222)'%3e%3cpath%20d='M208.629,548.17C208.629,548.17%20219.768,594.389%20239.814,619.222C259.86,644.055%20319.119,680.831%20319.119,680.831C319.119,680.831%20385.557,622.915%20437.87,498.346C437.87,498.346%20456.021,499.236%20473.808,486.446C491.594,473.656%20490.239,478.534%20494.883,461.62C494.883,461.62%20551.848,467.937%20625.826,451.863C667.634,442.778%20710.238,425.649%20747.382,393.142C747.382,393.142%20721.992,360.244%20689.422,291.45C677.029,265.275%20647.518,257.098%20590.747,203.309L438.083,391.273L208.629,548.17Z'%20style='fill-opacity:0.11;'/%3e%3c/g%3e%3cg%20transform='matrix(0.081985,-0.0582493,0.0582493,0.081985,-40.4754,34.7668)'%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'%20style='fill:rgb(127,187,221);'/%3e%3cclipPath%20id='_clip1'%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23_clip1)'%3e%3cg%20transform='matrix(0.758637,0.45892,-0.45892,0.758637,425.635,-121.213)'%3e%3cpath%20d='M386.873,397.241C371.345,383.628%20335.138,374.782%20290.644,380.543C246.149,386.304%20196.827,402.266%20178.802,412.065C168.202,417.828%20151.494,429.354%20150.682,439.334C149.527,453.528%20153.593,477.066%20165.625,491.284C171.69,498.451%20179.927,503.445%20193.838,505.423C211.701,507.963%20252.714,480.627%20275.399,469.22C299.332,457.187%20313.981,454.56%20338.386,447.014C338.386,447.014%20291.346,478.587%20270.205,494.393C239.61,517.268%20218.575,522.444%20212.859,539.897C209.766,549.34%20212.237,567.767%20220.354,577.538C229.427,588.461%20233.197,595.069%20254.591,597.624C267.303,599.143%20276.685,598.802%20314.37,568.95C336.06,551.767%20370.297,509.817%20381.412,494.616C397.581,472.506%20405.165,451.462%20402.656,435.04C399.045,411.391%20394.259,403.716%20386.873,397.241Z'%20style='fill:white;'/%3e%3c/g%3e%3cg%20transform='matrix(0.752145,0.454993,-0.454993,0.752145,468.36,-108.293)'%3e%3cpath%20d='M484.733,378.934C479.33,367.886%20467.092,350.452%20483.886,325.205C502.172,297.717%20514.898,280.938%20528.117,264.632C541.335,248.326%20574.793,218.447%20587.739,212.53C600.684,206.613%20621.026,203.852%20631.889,212.841C642.874,221.93%20648.416,233.377%20654.92,245.478C662.331,259.267%20667.318,274.808%20656.518,288.278C641.093,307.515%20622.242,305.294%20594.912,319.844C567.244,334.573%20552.644,342.943%20539.244,355.703C539.244,355.703%20591.431,334.114%20621.229,324.474C651.027,314.833%20680.952,304.461%20695.995,315.975C711.038,327.49%20710.631,331.463%20714.425,347.187C719.107,366.59%20707.231,385.165%20694.294,395.838C681.356,406.51%20659.958,411.756%20636.875,416.852C606.42,423.576%20540.278,431.917%20512.819,419.366C485.361,406.815%20488.488,386.613%20484.733,378.934Z'%20style='fill:white;'/%3e%3c/g%3e%3c/g%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'%20style='fill:none;stroke:black;stroke-width:16.57px;'/%3e%3c/g%3e%3cg%20transform='matrix(0.100298,-0.00740488,0.00740488,0.100298,-15.7457,-5.17528)'%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'%20style='fill:rgb(127,187,221);'/%3e%3cclipPath%20id='_clip2'%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23_clip2)'%3e%3cg%20transform='matrix(0.909069,3.67641e-17,-3.79818e-17,0.85852,37.051,52.1829)'%3e%3cpath%20d='M413.282,402.697C430.77,421.58%20423.307,448.426%20441.683,446.137C463.409,443.431%20472.604,430.356%20473.316,413.402C474.028,396.448%20472.245,393.911%20466.172,375.321C460.099,356.731%20447.953,352.176%20422.842,357.179C401.957,361.339%20405.039,360.215%20398.735,367.228C392.43,374.242%20384.315,393.182%20384.315,393.182C384.315,393.182%20392.715,380.492%20413.282,402.697Z'%20style='fill:white;'/%3e%3c/g%3e%3c/g%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'%20style='fill:none;stroke:black;stroke-width:16.57px;'/%3e%3c/g%3e%3c/svg%3e";async function sR(e,t,n={}){let r;if(Pe(e)){if(r=document.querySelector(e),!r)throw new Error(`No such element: ${e}`)}else if(e instanceof HTMLElement)r=e;else throw new Error(`Invalid element: ${e}`);let i;try{const a=Rt(t)?t:await Rw(t);if(a.baseUrl??(a.baseUrl=""),a.width??(a.width="container"),a.padding??(a.padding=10),r==document.body){const o=document.createElement("div");o.style.position="fixed",o.style.inset="0",o.style.overflow="hidden",r.appendChild(o),r=o}i=new Fw(r,a,n),lR(i,n),await i.launch()}catch(a){r.innerText=a.toString(),console.error(a)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(a,o){const s=i._eventListeners;let u=s.get(a);u||(u=new Set,s.set(a,u)),u.add(o)},removeEventListener(a,o){var u;(u=i._eventListeners.get(a))==null||u.delete(o)},getScaleResolutionByName(a){return i.getNamedScaleResolutions().get(a)},updateNamedData:i.updateNamedData.bind(i)}}function lR(e,t){t.namedDataProvider&&e.registerNamedDataProvider(t.namedDataProvider)}async function Rw(e){let t;try{t=JSON.parse(await Tu().load(e))}catch(n){throw new Error(`Could not load or parse configuration: ${e}, reason: ${n.message}`)}if(!t.baseUrl){const n=e.match(/^[^?#]*\//);t.baseUrl=n&&n[0]||"./"}return t}var Nf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function Xs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function uR(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 pe={},Of={};Of.byteLength=hR,Of.toByteArray=pR,Of.fromByteArray=bR;for(var Gn=[],tn=[],fR=typeof Uint8Array<"u"?Uint8Array:Array,C0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Wa=0,cR=C0.length;Wa<cR;++Wa)Gn[Wa]=C0[Wa],tn[C0.charCodeAt(Wa)]=Wa;tn["-".charCodeAt(0)]=62,tn["_".charCodeAt(0)]=63;function Mw(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 hR(e){var t=Mw(e),n=t[0],r=t[1];return(n+r)*3/4-r}function dR(e,t,n){return(t+n)*3/4-n}function pR(e){var t,n=Mw(e),r=n[0],i=n[1],a=new fR(dR(e,r,i)),o=0,s=i>0?r-4:r,u;for(u=0;u<s;u+=4)t=tn[e.charCodeAt(u)]<<18|tn[e.charCodeAt(u+1)]<<12|tn[e.charCodeAt(u+2)]<<6|tn[e.charCodeAt(u+3)],a[o++]=t>>16&255,a[o++]=t>>8&255,a[o++]=t&255;return i===2&&(t=tn[e.charCodeAt(u)]<<2|tn[e.charCodeAt(u+1)]>>4,a[o++]=t&255),i===1&&(t=tn[e.charCodeAt(u)]<<10|tn[e.charCodeAt(u+1)]<<4|tn[e.charCodeAt(u+2)]>>2,a[o++]=t>>8&255,a[o++]=t&255),a}function gR(e){return Gn[e>>18&63]+Gn[e>>12&63]+Gn[e>>6&63]+Gn[e&63]}function mR(e,t,n){for(var r,i=[],a=t;a<n;a+=3)r=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(e[a+2]&255),i.push(gR(r));return i.join("")}function bR(e){for(var t,n=e.length,r=n%3,i=[],a=16383,o=0,s=n-r;o<s;o+=a)i.push(mR(e,o,o+a>s?s:o+a));return r===1?(t=e[n-1],i.push(Gn[t>>2]+Gn[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(Gn[t>>10]+Gn[t>>4&63]+Gn[t<<2&63]+"=")),i.join("")}var T0={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */T0.read=function(e,t,n,r,i){var a,o,s=i*8-r-1,u=(1<<s)-1,l=u>>1,f=-7,c=n?i-1:0,h=n?-1:1,d=e[t+c];for(c+=h,a=d&(1<<-f)-1,d>>=-f,f+=s;f>0;a=a*256+e[t+c],c+=h,f-=8);for(o=a&(1<<-f)-1,a>>=-f,f+=r;f>0;o=o*256+e[t+c],c+=h,f-=8);if(a===0)a=1-l;else{if(a===u)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,r),a=a-l}return(d?-1:1)*o*Math.pow(2,a-r)},T0.write=function(e,t,n,r,i,a){var o,s,u,l=a*8-i-1,f=(1<<l)-1,c=f>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:a-1,p=r?1:-1,m=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=f):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+c>=1?t+=h/u:t+=h*Math.pow(2,1-c),t*u>=2&&(o++,u/=2),o+c>=f?(s=0,o=f):o+c>=1?(s=(t*u-1)*Math.pow(2,i),o=o+c):(s=t*Math.pow(2,c-1)*Math.pow(2,i),o=0));i>=8;e[n+d]=s&255,d+=p,s/=256,i-=8);for(o=o<<i|s,l+=i;l>0;e[n+d]=o&255,d+=p,o/=256,l-=8);e[n+d-p]|=m*128};/*!
315
320
  * The buffer module from node.js, for the browser.
316
321
  *
317
322
  * @author Feross Aboukhadijeh <https://feross.org>
318
323
  * @license MIT
319
- */(function(e){const t=Pf,n=E0,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=s,e.SlowBuffer=_,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 v=new Uint8Array(1),g={foo:function(){return 42}};return Object.setPrototypeOf(g,Uint8Array.prototype),Object.setPrototypeOf(v,g),v.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(v){if(v>i)throw new RangeError('The value "'+v+'" is invalid for option "size"');const g=new Uint8Array(v);return Object.setPrototypeOf(g,s.prototype),g}function s(v,g,m){if(typeof v=="number"){if(typeof g=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return c(v)}return u(v,g,m)}s.poolSize=8192;function u(v,g,m){if(typeof v=="string")return h(v,g);if(ArrayBuffer.isView(v))return p(v);if(v==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof v);if(St(v,ArrayBuffer)||v&&St(v.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(St(v,SharedArrayBuffer)||v&&St(v.buffer,SharedArrayBuffer)))return b(v,g,m);if(typeof v=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const k=v.valueOf&&v.valueOf();if(k!=null&&k!==v)return s.from(k,g,m);const F=y(v);if(F)return F;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof v[Symbol.toPrimitive]=="function")return s.from(v[Symbol.toPrimitive]("string"),g,m);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof v)}s.from=function(v,g,m){return u(v,g,m)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function l(v){if(typeof v!="number")throw new TypeError('"size" argument must be of type number');if(v<0)throw new RangeError('The value "'+v+'" is invalid for option "size"')}function f(v,g,m){return l(v),v<=0?a(v):g!==void 0?typeof m=="string"?a(v).fill(g,m):a(v).fill(g):a(v)}s.alloc=function(v,g,m){return f(v,g,m)};function c(v){return l(v),a(v<0?0:w(v)|0)}s.allocUnsafe=function(v){return c(v)},s.allocUnsafeSlow=function(v){return c(v)};function h(v,g){if((typeof g!="string"||g==="")&&(g="utf8"),!s.isEncoding(g))throw new TypeError("Unknown encoding: "+g);const m=C(v,g)|0;let k=a(m);const F=k.write(v,g);return F!==m&&(k=k.slice(0,F)),k}function d(v){const g=v.length<0?0:w(v.length)|0,m=a(g);for(let k=0;k<g;k+=1)m[k]=v[k]&255;return m}function p(v){if(St(v,Uint8Array)){const g=new Uint8Array(v);return b(g.buffer,g.byteOffset,g.byteLength)}return d(v)}function b(v,g,m){if(g<0||v.byteLength<g)throw new RangeError('"offset" is outside of buffer bounds');if(v.byteLength<g+(m||0))throw new RangeError('"length" is outside of buffer bounds');let k;return g===void 0&&m===void 0?k=new Uint8Array(v):m===void 0?k=new Uint8Array(v,g):k=new Uint8Array(v,g,m),Object.setPrototypeOf(k,s.prototype),k}function y(v){if(s.isBuffer(v)){const g=w(v.length)|0,m=a(g);return m.length===0||v.copy(m,0,0,g),m}if(v.length!==void 0)return typeof v.length!="number"||yr(v.length)?a(0):d(v);if(v.type==="Buffer"&&Array.isArray(v.data))return d(v.data)}function w(v){if(v>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return v|0}function _(v){return+v!=v&&(v=0),s.alloc(+v)}s.isBuffer=function(g){return g!=null&&g._isBuffer===!0&&g!==s.prototype},s.compare=function(g,m){if(St(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),St(m,Uint8Array)&&(m=s.from(m,m.offset,m.byteLength)),!s.isBuffer(g)||!s.isBuffer(m))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(g===m)return 0;let k=g.length,F=m.length;for(let N=0,V=Math.min(k,F);N<V;++N)if(g[N]!==m[N]){k=g[N],F=m[N];break}return k<F?-1:F<k?1:0},s.isEncoding=function(g){switch(String(g).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(g,m){if(!Array.isArray(g))throw new TypeError('"list" argument must be an Array of Buffers');if(g.length===0)return s.alloc(0);let k;if(m===void 0)for(m=0,k=0;k<g.length;++k)m+=g[k].length;const F=s.allocUnsafe(m);let N=0;for(k=0;k<g.length;++k){let V=g[k];if(St(V,Uint8Array))N+V.length>F.length?(s.isBuffer(V)||(V=s.from(V)),V.copy(F,N)):Uint8Array.prototype.set.call(F,V,N);else if(s.isBuffer(V))V.copy(F,N);else throw new TypeError('"list" argument must be an Array of Buffers');N+=V.length}return F};function C(v,g){if(s.isBuffer(v))return v.length;if(ArrayBuffer.isView(v)||St(v,ArrayBuffer))return v.byteLength;if(typeof v!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof v);const m=v.length,k=arguments.length>2&&arguments[2]===!0;if(!k&&m===0)return 0;let F=!1;for(;;)switch(g){case"ascii":case"latin1":case"binary":return m;case"utf8":case"utf-8":return ue(v).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m*2;case"hex":return m>>>1;case"base64":return ui(v).length;default:if(F)return k?-1:ue(v).length;g=(""+g).toLowerCase(),F=!0}}s.byteLength=C;function E(v,g,m){let k=!1;if((g===void 0||g<0)&&(g=0),g>this.length||((m===void 0||m>this.length)&&(m=this.length),m<=0)||(m>>>=0,g>>>=0,m<=g))return"";for(v||(v="utf8");;)switch(v){case"hex":return Ze(this,g,m);case"utf8":case"utf-8":return ge(this,g,m);case"ascii":return De(this,g,m);case"latin1":case"binary":return $e(this,g,m);case"base64":return se(this,g,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ke(this,g,m);default:if(k)throw new TypeError("Unknown encoding: "+v);v=(v+"").toLowerCase(),k=!0}}s.prototype._isBuffer=!0;function T(v,g,m){const k=v[g];v[g]=v[m],v[m]=k}s.prototype.swap16=function(){const g=this.length;if(g%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let m=0;m<g;m+=2)T(this,m,m+1);return this},s.prototype.swap32=function(){const g=this.length;if(g%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let m=0;m<g;m+=4)T(this,m,m+3),T(this,m+1,m+2);return this},s.prototype.swap64=function(){const g=this.length;if(g%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let m=0;m<g;m+=8)T(this,m,m+7),T(this,m+1,m+6),T(this,m+2,m+5),T(this,m+3,m+4);return this},s.prototype.toString=function(){const g=this.length;return g===0?"":arguments.length===0?ge(this,0,g):E.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(g){if(!s.isBuffer(g))throw new TypeError("Argument must be a Buffer");return this===g?!0:s.compare(this,g)===0},s.prototype.inspect=function(){let g="";const m=e.INSPECT_MAX_BYTES;return g=this.toString("hex",0,m).replace(/(.{2})/g,"$1 ").trim(),this.length>m&&(g+=" ... "),"<Buffer "+g+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(g,m,k,F,N){if(St(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),!s.isBuffer(g))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof g);if(m===void 0&&(m=0),k===void 0&&(k=g?g.length:0),F===void 0&&(F=0),N===void 0&&(N=this.length),m<0||k>g.length||F<0||N>this.length)throw new RangeError("out of range index");if(F>=N&&m>=k)return 0;if(F>=N)return-1;if(m>=k)return 1;if(m>>>=0,k>>>=0,F>>>=0,N>>>=0,this===g)return 0;let V=N-F,fe=k-m;const Ge=Math.min(V,fe),Me=this.slice(F,N),We=g.slice(m,k);for(let Se=0;Se<Ge;++Se)if(Me[Se]!==We[Se]){V=Me[Se],fe=We[Se];break}return V<fe?-1:fe<V?1:0};function B(v,g,m,k,F){if(v.length===0)return-1;if(typeof m=="string"?(k=m,m=0):m>2147483647?m=2147483647:m<-2147483648&&(m=-2147483648),m=+m,yr(m)&&(m=F?0:v.length-1),m<0&&(m=v.length+m),m>=v.length){if(F)return-1;m=v.length-1}else if(m<0)if(F)m=0;else return-1;if(typeof g=="string"&&(g=s.from(g,k)),s.isBuffer(g))return g.length===0?-1:I(v,g,m,k,F);if(typeof g=="number")return g=g&255,typeof Uint8Array.prototype.indexOf=="function"?F?Uint8Array.prototype.indexOf.call(v,g,m):Uint8Array.prototype.lastIndexOf.call(v,g,m):I(v,[g],m,k,F);throw new TypeError("val must be string, number or Buffer")}function I(v,g,m,k,F){let N=1,V=v.length,fe=g.length;if(k!==void 0&&(k=String(k).toLowerCase(),k==="ucs2"||k==="ucs-2"||k==="utf16le"||k==="utf-16le")){if(v.length<2||g.length<2)return-1;N=2,V/=2,fe/=2,m/=2}function Ge(We,Se){return N===1?We[Se]:We.readUInt16BE(Se*N)}let Me;if(F){let We=-1;for(Me=m;Me<V;Me++)if(Ge(v,Me)===Ge(g,We===-1?0:Me-We)){if(We===-1&&(We=Me),Me-We+1===fe)return We*N}else We!==-1&&(Me-=Me-We),We=-1}else for(m+fe>V&&(m=V-fe),Me=m;Me>=0;Me--){let We=!0;for(let Se=0;Se<fe;Se++)if(Ge(v,Me+Se)!==Ge(g,Se)){We=!1;break}if(We)return Me}return-1}s.prototype.includes=function(g,m,k){return this.indexOf(g,m,k)!==-1},s.prototype.indexOf=function(g,m,k){return B(this,g,m,k,!0)},s.prototype.lastIndexOf=function(g,m,k){return B(this,g,m,k,!1)};function R(v,g,m,k){m=Number(m)||0;const F=v.length-m;k?(k=Number(k),k>F&&(k=F)):k=F;const N=g.length;k>N/2&&(k=N/2);let V;for(V=0;V<k;++V){const fe=parseInt(g.substr(V*2,2),16);if(yr(fe))return V;v[m+V]=fe}return V}function M(v,g,m,k){return fi(ue(g,v.length-m),v,m,k)}function j(v,g,m,k){return fi(Zt(g),v,m,k)}function O(v,g,m,k){return fi(ui(g),v,m,k)}function ie(v,g,m,k){return fi(li(g,v.length-m),v,m,k)}s.prototype.write=function(g,m,k,F){if(m===void 0)F="utf8",k=this.length,m=0;else if(k===void 0&&typeof m=="string")F=m,k=this.length,m=0;else if(isFinite(m))m=m>>>0,isFinite(k)?(k=k>>>0,F===void 0&&(F="utf8")):(F=k,k=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const N=this.length-m;if((k===void 0||k>N)&&(k=N),g.length>0&&(k<0||m<0)||m>this.length)throw new RangeError("Attempt to write outside buffer bounds");F||(F="utf8");let V=!1;for(;;)switch(F){case"hex":return R(this,g,m,k);case"utf8":case"utf-8":return M(this,g,m,k);case"ascii":case"latin1":case"binary":return j(this,g,m,k);case"base64":return O(this,g,m,k);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ie(this,g,m,k);default:if(V)throw new TypeError("Unknown encoding: "+F);F=(""+F).toLowerCase(),V=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function se(v,g,m){return g===0&&m===v.length?t.fromByteArray(v):t.fromByteArray(v.slice(g,m))}function ge(v,g,m){m=Math.min(v.length,m);const k=[];let F=g;for(;F<m;){const N=v[F];let V=null,fe=N>239?4:N>223?3:N>191?2:1;if(F+fe<=m){let Ge,Me,We,Se;switch(fe){case 1:N<128&&(V=N);break;case 2:Ge=v[F+1],(Ge&192)===128&&(Se=(N&31)<<6|Ge&63,Se>127&&(V=Se));break;case 3:Ge=v[F+1],Me=v[F+2],(Ge&192)===128&&(Me&192)===128&&(Se=(N&15)<<12|(Ge&63)<<6|Me&63,Se>2047&&(Se<55296||Se>57343)&&(V=Se));break;case 4:Ge=v[F+1],Me=v[F+2],We=v[F+3],(Ge&192)===128&&(Me&192)===128&&(We&192)===128&&(Se=(N&15)<<18|(Ge&63)<<12|(Me&63)<<6|We&63,Se>65535&&Se<1114112&&(V=Se))}}V===null?(V=65533,fe=1):V>65535&&(V-=65536,k.push(V>>>10&1023|55296),V=56320|V&1023),k.push(V),F+=fe}return Xe(k)}const Ie=4096;function Xe(v){const g=v.length;if(g<=Ie)return String.fromCharCode.apply(String,v);let m="",k=0;for(;k<g;)m+=String.fromCharCode.apply(String,v.slice(k,k+=Ie));return m}function De(v,g,m){let k="";m=Math.min(v.length,m);for(let F=g;F<m;++F)k+=String.fromCharCode(v[F]&127);return k}function $e(v,g,m){let k="";m=Math.min(v.length,m);for(let F=g;F<m;++F)k+=String.fromCharCode(v[F]);return k}function Ze(v,g,m){const k=v.length;(!g||g<0)&&(g=0),(!m||m<0||m>k)&&(m=k);let F="";for(let N=g;N<m;++N)F+=ci[v[N]];return F}function Ke(v,g,m){const k=v.slice(g,m);let F="";for(let N=0;N<k.length-1;N+=2)F+=String.fromCharCode(k[N]+k[N+1]*256);return F}s.prototype.slice=function(g,m){const k=this.length;g=~~g,m=m===void 0?k:~~m,g<0?(g+=k,g<0&&(g=0)):g>k&&(g=k),m<0?(m+=k,m<0&&(m=0)):m>k&&(m=k),m<g&&(m=g);const F=this.subarray(g,m);return Object.setPrototypeOf(F,s.prototype),F};function Ee(v,g,m){if(v%1!==0||v<0)throw new RangeError("offset is not uint");if(v+g>m)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(g,m,k){g=g>>>0,m=m>>>0,k||Ee(g,m,this.length);let F=this[g],N=1,V=0;for(;++V<m&&(N*=256);)F+=this[g+V]*N;return F},s.prototype.readUintBE=s.prototype.readUIntBE=function(g,m,k){g=g>>>0,m=m>>>0,k||Ee(g,m,this.length);let F=this[g+--m],N=1;for(;m>0&&(N*=256);)F+=this[g+--m]*N;return F},s.prototype.readUint8=s.prototype.readUInt8=function(g,m){return g=g>>>0,m||Ee(g,1,this.length),this[g]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(g,m){return g=g>>>0,m||Ee(g,2,this.length),this[g]|this[g+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(g,m){return g=g>>>0,m||Ee(g,2,this.length),this[g]<<8|this[g+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),(this[g]|this[g+1]<<8|this[g+2]<<16)+this[g+3]*16777216},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),this[g]*16777216+(this[g+1]<<16|this[g+2]<<8|this[g+3])},s.prototype.readBigUInt64LE=Wt(function(g){g=g>>>0,G(g,"offset");const m=this[g],k=this[g+7];(m===void 0||k===void 0)&&Z(g,this.length-8);const F=m+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24,N=this[++g]+this[++g]*2**8+this[++g]*2**16+k*2**24;return BigInt(F)+(BigInt(N)<<BigInt(32))}),s.prototype.readBigUInt64BE=Wt(function(g){g=g>>>0,G(g,"offset");const m=this[g],k=this[g+7];(m===void 0||k===void 0)&&Z(g,this.length-8);const F=m*2**24+this[++g]*2**16+this[++g]*2**8+this[++g],N=this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+k;return(BigInt(F)<<BigInt(32))+BigInt(N)}),s.prototype.readIntLE=function(g,m,k){g=g>>>0,m=m>>>0,k||Ee(g,m,this.length);let F=this[g],N=1,V=0;for(;++V<m&&(N*=256);)F+=this[g+V]*N;return N*=128,F>=N&&(F-=Math.pow(2,8*m)),F},s.prototype.readIntBE=function(g,m,k){g=g>>>0,m=m>>>0,k||Ee(g,m,this.length);let F=m,N=1,V=this[g+--F];for(;F>0&&(N*=256);)V+=this[g+--F]*N;return N*=128,V>=N&&(V-=Math.pow(2,8*m)),V},s.prototype.readInt8=function(g,m){return g=g>>>0,m||Ee(g,1,this.length),this[g]&128?(255-this[g]+1)*-1:this[g]},s.prototype.readInt16LE=function(g,m){g=g>>>0,m||Ee(g,2,this.length);const k=this[g]|this[g+1]<<8;return k&32768?k|4294901760:k},s.prototype.readInt16BE=function(g,m){g=g>>>0,m||Ee(g,2,this.length);const k=this[g+1]|this[g]<<8;return k&32768?k|4294901760:k},s.prototype.readInt32LE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),this[g]|this[g+1]<<8|this[g+2]<<16|this[g+3]<<24},s.prototype.readInt32BE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),this[g]<<24|this[g+1]<<16|this[g+2]<<8|this[g+3]},s.prototype.readBigInt64LE=Wt(function(g){g=g>>>0,G(g,"offset");const m=this[g],k=this[g+7];(m===void 0||k===void 0)&&Z(g,this.length-8);const F=this[g+4]+this[g+5]*2**8+this[g+6]*2**16+(k<<24);return(BigInt(F)<<BigInt(32))+BigInt(m+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24)}),s.prototype.readBigInt64BE=Wt(function(g){g=g>>>0,G(g,"offset");const m=this[g],k=this[g+7];(m===void 0||k===void 0)&&Z(g,this.length-8);const F=(m<<24)+this[++g]*2**16+this[++g]*2**8+this[++g];return(BigInt(F)<<BigInt(32))+BigInt(this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+k)}),s.prototype.readFloatLE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),n.read(this,g,!0,23,4)},s.prototype.readFloatBE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),n.read(this,g,!1,23,4)},s.prototype.readDoubleLE=function(g,m){return g=g>>>0,m||Ee(g,8,this.length),n.read(this,g,!0,52,8)},s.prototype.readDoubleBE=function(g,m){return g=g>>>0,m||Ee(g,8,this.length),n.read(this,g,!1,52,8)};function _e(v,g,m,k,F,N){if(!s.isBuffer(v))throw new TypeError('"buffer" argument must be a Buffer instance');if(g>F||g<N)throw new RangeError('"value" argument is out of bounds');if(m+k>v.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(g,m,k,F){if(g=+g,m=m>>>0,k=k>>>0,!F){const fe=Math.pow(2,8*k)-1;_e(this,g,m,k,fe,0)}let N=1,V=0;for(this[m]=g&255;++V<k&&(N*=256);)this[m+V]=g/N&255;return m+k},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(g,m,k,F){if(g=+g,m=m>>>0,k=k>>>0,!F){const fe=Math.pow(2,8*k)-1;_e(this,g,m,k,fe,0)}let N=k-1,V=1;for(this[m+N]=g&255;--N>=0&&(V*=256);)this[m+N]=g/V&255;return m+k},s.prototype.writeUint8=s.prototype.writeUInt8=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,1,255,0),this[m]=g&255,m+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,2,65535,0),this[m]=g&255,this[m+1]=g>>>8,m+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,2,65535,0),this[m]=g>>>8,this[m+1]=g&255,m+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,4,4294967295,0),this[m+3]=g>>>24,this[m+2]=g>>>16,this[m+1]=g>>>8,this[m]=g&255,m+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,4,4294967295,0),this[m]=g>>>24,this[m+1]=g>>>16,this[m+2]=g>>>8,this[m+3]=g&255,m+4};function pt(v,g,m,k,F){x(g,k,F,v,m,7);let N=Number(g&BigInt(4294967295));v[m++]=N,N=N>>8,v[m++]=N,N=N>>8,v[m++]=N,N=N>>8,v[m++]=N;let V=Number(g>>BigInt(32)&BigInt(4294967295));return v[m++]=V,V=V>>8,v[m++]=V,V=V>>8,v[m++]=V,V=V>>8,v[m++]=V,m}function qt(v,g,m,k,F){x(g,k,F,v,m,7);let N=Number(g&BigInt(4294967295));v[m+7]=N,N=N>>8,v[m+6]=N,N=N>>8,v[m+5]=N,N=N>>8,v[m+4]=N;let V=Number(g>>BigInt(32)&BigInt(4294967295));return v[m+3]=V,V=V>>8,v[m+2]=V,V=V>>8,v[m+1]=V,V=V>>8,v[m]=V,m+8}s.prototype.writeBigUInt64LE=Wt(function(g,m=0){return pt(this,g,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=Wt(function(g,m=0){return qt(this,g,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(g,m,k,F){if(g=+g,m=m>>>0,!F){const Ge=Math.pow(2,8*k-1);_e(this,g,m,k,Ge-1,-Ge)}let N=0,V=1,fe=0;for(this[m]=g&255;++N<k&&(V*=256);)g<0&&fe===0&&this[m+N-1]!==0&&(fe=1),this[m+N]=(g/V>>0)-fe&255;return m+k},s.prototype.writeIntBE=function(g,m,k,F){if(g=+g,m=m>>>0,!F){const Ge=Math.pow(2,8*k-1);_e(this,g,m,k,Ge-1,-Ge)}let N=k-1,V=1,fe=0;for(this[m+N]=g&255;--N>=0&&(V*=256);)g<0&&fe===0&&this[m+N+1]!==0&&(fe=1),this[m+N]=(g/V>>0)-fe&255;return m+k},s.prototype.writeInt8=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,1,127,-128),g<0&&(g=255+g+1),this[m]=g&255,m+1},s.prototype.writeInt16LE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,2,32767,-32768),this[m]=g&255,this[m+1]=g>>>8,m+2},s.prototype.writeInt16BE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,2,32767,-32768),this[m]=g>>>8,this[m+1]=g&255,m+2},s.prototype.writeInt32LE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,4,2147483647,-2147483648),this[m]=g&255,this[m+1]=g>>>8,this[m+2]=g>>>16,this[m+3]=g>>>24,m+4},s.prototype.writeInt32BE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,4,2147483647,-2147483648),g<0&&(g=4294967295+g+1),this[m]=g>>>24,this[m+1]=g>>>16,this[m+2]=g>>>8,this[m+3]=g&255,m+4},s.prototype.writeBigInt64LE=Wt(function(g,m=0){return pt(this,g,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=Wt(function(g,m=0){return qt(this,g,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Oe(v,g,m,k,F,N){if(m+k>v.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function L(v,g,m,k,F){return g=+g,m=m>>>0,F||Oe(v,g,m,4),n.write(v,g,m,k,23,4),m+4}s.prototype.writeFloatLE=function(g,m,k){return L(this,g,m,!0,k)},s.prototype.writeFloatBE=function(g,m,k){return L(this,g,m,!1,k)};function P(v,g,m,k,F){return g=+g,m=m>>>0,F||Oe(v,g,m,8),n.write(v,g,m,k,52,8),m+8}s.prototype.writeDoubleLE=function(g,m,k){return P(this,g,m,!0,k)},s.prototype.writeDoubleBE=function(g,m,k){return P(this,g,m,!1,k)},s.prototype.copy=function(g,m,k,F){if(!s.isBuffer(g))throw new TypeError("argument should be a Buffer");if(k||(k=0),!F&&F!==0&&(F=this.length),m>=g.length&&(m=g.length),m||(m=0),F>0&&F<k&&(F=k),F===k||g.length===0||this.length===0)return 0;if(m<0)throw new RangeError("targetStart out of bounds");if(k<0||k>=this.length)throw new RangeError("Index out of range");if(F<0)throw new RangeError("sourceEnd out of bounds");F>this.length&&(F=this.length),g.length-m<F-k&&(F=g.length-m+k);const N=F-k;return this===g&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(m,k,F):Uint8Array.prototype.set.call(g,this.subarray(k,F),m),N},s.prototype.fill=function(g,m,k,F){if(typeof g=="string"){if(typeof m=="string"?(F=m,m=0,k=this.length):typeof k=="string"&&(F=k,k=this.length),F!==void 0&&typeof F!="string")throw new TypeError("encoding must be a string");if(typeof F=="string"&&!s.isEncoding(F))throw new TypeError("Unknown encoding: "+F);if(g.length===1){const V=g.charCodeAt(0);(F==="utf8"&&V<128||F==="latin1")&&(g=V)}}else typeof g=="number"?g=g&255:typeof g=="boolean"&&(g=Number(g));if(m<0||this.length<m||this.length<k)throw new RangeError("Out of range index");if(k<=m)return this;m=m>>>0,k=k===void 0?this.length:k>>>0,g||(g=0);let N;if(typeof g=="number")for(N=m;N<k;++N)this[N]=g;else{const V=s.isBuffer(g)?g:s.from(g,F),fe=V.length;if(fe===0)throw new TypeError('The value "'+g+'" is invalid for argument "value"');for(N=0;N<k-m;++N)this[N+m]=V[N%fe]}return this};const q={};function H(v,g,m){q[v]=class extends m{constructor(){super(),Object.defineProperty(this,"message",{value:g.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${v}]`,this.stack,delete this.name}get code(){return v}set code(F){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:F,writable:!0})}toString(){return`${this.name} [${v}]: ${this.message}`}}}H("ERR_BUFFER_OUT_OF_BOUNDS",function(v){return v?`${v} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),H("ERR_INVALID_ARG_TYPE",function(v,g){return`The "${v}" argument must be of type number. Received type ${typeof g}`},TypeError),H("ERR_OUT_OF_RANGE",function(v,g,m){let k=`The value of "${v}" is out of range.`,F=m;return Number.isInteger(m)&&Math.abs(m)>2**32?F=Y(String(m)):typeof m=="bigint"&&(F=String(m),(m>BigInt(2)**BigInt(32)||m<-(BigInt(2)**BigInt(32)))&&(F=Y(F)),F+="n"),k+=` It must be ${g}. Received ${F}`,k},RangeError);function Y(v){let g="",m=v.length;const k=v[0]==="-"?1:0;for(;m>=k+4;m-=3)g=`_${v.slice(m-3,m)}${g}`;return`${v.slice(0,m)}${g}`}function S(v,g,m){G(g,"offset"),(v[g]===void 0||v[g+m]===void 0)&&Z(g,v.length-(m+1))}function x(v,g,m,k,F,N){if(v>m||v<g){const V=typeof g=="bigint"?"n":"";let fe;throw N>3?g===0||g===BigInt(0)?fe=`>= 0${V} and < 2${V} ** ${(N+1)*8}${V}`:fe=`>= -(2${V} ** ${(N+1)*8-1}${V}) and < 2 ** ${(N+1)*8-1}${V}`:fe=`>= ${g}${V} and <= ${m}${V}`,new q.ERR_OUT_OF_RANGE("value",fe,v)}S(k,F,N)}function G(v,g){if(typeof v!="number")throw new q.ERR_INVALID_ARG_TYPE(g,"number",v)}function Z(v,g,m){throw Math.floor(v)!==v?(G(v,m),new q.ERR_OUT_OF_RANGE(m||"offset","an integer",v)):g<0?new q.ERR_BUFFER_OUT_OF_BOUNDS:new q.ERR_OUT_OF_RANGE(m||"offset",`>= ${m?1:0} and <= ${g}`,v)}const le=/[^+/0-9A-Za-z-_]/g;function J(v){if(v=v.split("=")[0],v=v.trim().replace(le,""),v.length<2)return"";for(;v.length%4!==0;)v=v+"=";return v}function ue(v,g){g=g||1/0;let m;const k=v.length;let F=null;const N=[];for(let V=0;V<k;++V){if(m=v.charCodeAt(V),m>55295&&m<57344){if(!F){if(m>56319){(g-=3)>-1&&N.push(239,191,189);continue}else if(V+1===k){(g-=3)>-1&&N.push(239,191,189);continue}F=m;continue}if(m<56320){(g-=3)>-1&&N.push(239,191,189),F=m;continue}m=(F-55296<<10|m-56320)+65536}else F&&(g-=3)>-1&&N.push(239,191,189);if(F=null,m<128){if((g-=1)<0)break;N.push(m)}else if(m<2048){if((g-=2)<0)break;N.push(m>>6|192,m&63|128)}else if(m<65536){if((g-=3)<0)break;N.push(m>>12|224,m>>6&63|128,m&63|128)}else if(m<1114112){if((g-=4)<0)break;N.push(m>>18|240,m>>12&63|128,m>>6&63|128,m&63|128)}else throw new Error("Invalid code point")}return N}function Zt(v){const g=[];for(let m=0;m<v.length;++m)g.push(v.charCodeAt(m)&255);return g}function li(v,g){let m,k,F;const N=[];for(let V=0;V<v.length&&!((g-=2)<0);++V)m=v.charCodeAt(V),k=m>>8,F=m%256,N.push(F),N.push(k);return N}function ui(v){return t.toByteArray(J(v))}function fi(v,g,m,k){let F;for(F=0;F<k&&!(F+m>=g.length||F>=v.length);++F)g[F+m]=v[F];return F}function St(v,g){return v instanceof g||v!=null&&v.constructor!=null&&v.constructor.name!=null&&v.constructor.name===g.name}function yr(v){return v!==v}const ci=function(){const v="0123456789abcdef",g=new Array(256);for(let m=0;m<16;++m){const k=m*16;for(let F=0;F<16;++F)g[k+F]=v[m]+v[F]}return g}();function Wt(v){return typeof BigInt>"u"?Xn:v}function Xn(){throw new Error("BigInt not supported")}})(pe);const Dw=ve({__proto__:null,default:$s(pe)},[pe]),ht={},lR=Object.freeze(Object.defineProperty({__proto__:null,default:ht},Symbol.toStringTag,{value:"Module"})),_0=typeof window<"u"?window:typeof self<"u"?self:{fetch:void 0};class Wi{async getBufferFromResponse(t){if(typeof t.buffer=="function")return t.buffer();if(typeof t.arrayBuffer=="function"){const n=await t.arrayBuffer();return pe.Buffer.from(n)}else throw new TypeError("invalid HTTP response object, has no buffer method, and no arrayBuffer method")}constructor(t,n={}){this.baseOverrides={},this.url=t;const r=n.fetch||_0.fetch&&_0.fetch.bind(_0);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:u={}}=o;r<1/0?a.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(a.range=`bytes=${i}-`);const l={...this.baseOverrides,...u,headers:{...a,...u.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:s},f=await this.fetch(this.url,l);if(!f.ok)throw new Error(`HTTP ${f.status} ${f.statusText} ${this.url}`);if(f.status===200&&i===0||f.status===206){const c=await this.getBufferFromResponse(f),h=c.copy(t,n,0,Math.min(r,c.length)),d=f.headers.get("content-range"),p=/\/(\d+)$/.exec(d||"");return p&&p[1]&&(this._stat={size:parseInt(p[1],10)}),{bytesRead:h,buffer:t}}throw f.status===200?new Error("${this.url} fetch returned status 200, expected 206"):new Error(`HTTP ${f.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},u=await this.fetch(this.url,s);if(!u)throw new Error("generic-filehandle failed to fetch");if(u.status!==200)throw Object.assign(new Error(`HTTP ${u.status} fetching ${this.url}`),{status:u.status});if(n==="utf8")return u.text();if(n)throw new Error(`unsupported encoding: ${n}`);return this.getBufferFromResponse(u)}async stat(){if(!this._stat){const t=pe.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 Fw(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 uR(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 fR{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 Fw(this.blob.slice(o,a)),u=pe.Buffer.from(s);return{bytesRead:u.copy(t,n),buffer:u}}async readFile(t){let n;if(typeof t=="string"?n=t:n=t&&t.encoding,n==="utf8")return uR(this.blob);if(n)throw new Error(`unsupported encoding: ${n}`);const r=await Fw(this.blob);return pe.Buffer.from(r)}async stat(){return{size:this.size}}async close(){}}function Rw(e,t={}){return new Wi(e,t)}function cR(e,t,n,r={}){if(n!==void 0)return n;if(e!==void 0)return Rw(e,r);if(t!==void 0)return new ht(t,r);throw new Error("no url, path, or filehandle provided, cannot open")}const Ks=Object.freeze(Object.defineProperty({__proto__:null,BlobFile:fR,LocalFile:ht,RemoteFile:Wi,fromUrl:Rw,open:cR},Symbol.toStringTag,{value:"Module"}));var sr={};(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 u in s)n(s,u)&&(o[u]=s[u])}}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,u,l){if(a.subarray&&o.subarray){o.set(a.subarray(s,s+u),l);return}for(var f=0;f<u;f++)o[l+f]=a[s+f]},flattenChunks:function(o){var a,s,u,l,f,c;for(u=0,a=0,s=o.length;a<s;a++)u+=o[a].length;for(c=new Uint8Array(u),l=0,a=0,s=o.length;a<s;a++)f=o[a],c.set(f,l),l+=f.length;return c}},i={arraySet:function(o,a,s,u,l){for(var f=0;f<u;f++)o[l+f]=a[s+f]},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)})(sr);var Js={},Un={},Qo={},hR=sr,dR=4,Mw=0,Pw=1,pR=2;function Xo(e){for(var t=e.length;--t>=0;)e[t]=0}var gR=0,Lw=1,mR=2,bR=3,yR=258,S0=29,el=256,tl=el+1+S0,$o=30,C0=19,Nw=2*tl+1,Yi=15,k0=16,wR=7,T0=256,Ow=16,zw=17,Uw=18,I0=[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],Lf=[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],vR=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Gw=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],xR=512,lr=new Array((tl+2)*2);Xo(lr);var nl=new Array($o*2);Xo(nl);var rl=new Array(xR);Xo(rl);var il=new Array(yR-bR+1);Xo(il);var B0=new Array(S0);Xo(B0);var Nf=new Array($o);Xo(Nf);function D0(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 Hw,Vw,jw;function F0(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function qw(e){return e<256?rl[e]:rl[256+(e>>>7)]}function ol(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function Gt(e,t,n){e.bi_valid>k0-n?(e.bi_buf|=t<<e.bi_valid&65535,ol(e,e.bi_buf),e.bi_buf=t>>k0-e.bi_valid,e.bi_valid+=n-k0):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function Gn(e,t,n){Gt(e,n[t*2],n[t*2+1])}function Zw(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function AR(e){e.bi_valid===16?(ol(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 ER(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,u=t.stat_desc.max_length,l,f,c,h,d,p,b=0;for(h=0;h<=Yi;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Nw;l++)f=e.heap[l],h=n[n[f*2+1]*2+1]+1,h>u&&(h=u,b++),n[f*2+1]=h,!(f>r)&&(e.bl_count[h]++,d=0,f>=s&&(d=a[f-s]),p=n[f*2],e.opt_len+=p*(h+d),o&&(e.static_len+=p*(i[f*2+1]+d)));if(b!==0){do{for(h=u-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[u]--,b-=2}while(b>0);for(h=u;h!==0;h--)for(f=e.bl_count[h];f!==0;)c=e.heap[--l],!(c>r)&&(n[c*2+1]!==h&&(e.opt_len+=(h-n[c*2+1])*n[c*2],n[c*2+1]=h),f--)}}function Ww(e,t,n){var r=new Array(Yi+1),i=0,o,a;for(o=1;o<=Yi;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]=Zw(r[s]++,s))}}function _R(){var e,t,n,r,i,o=new Array(Yi+1);for(n=0,r=0;r<S0-1;r++)for(B0[r]=n,e=0;e<1<<I0[r];e++)il[n++]=r;for(il[n-1]=r,i=0,r=0;r<16;r++)for(Nf[r]=i,e=0;e<1<<Lf[r];e++)rl[i++]=r;for(i>>=7;r<$o;r++)for(Nf[r]=i<<7,e=0;e<1<<Lf[r]-7;e++)rl[256+i++]=r;for(t=0;t<=Yi;t++)o[t]=0;for(e=0;e<=143;)lr[e*2+1]=8,e++,o[8]++;for(;e<=255;)lr[e*2+1]=9,e++,o[9]++;for(;e<=279;)lr[e*2+1]=7,e++,o[7]++;for(;e<=287;)lr[e*2+1]=8,e++,o[8]++;for(Ww(lr,tl+1,o),e=0;e<$o;e++)nl[e*2+1]=5,nl[e*2]=Zw(e,5);Hw=new D0(lr,I0,el+1,tl,Yi),Vw=new D0(nl,Lf,0,$o,Yi),jw=new D0(new Array(0),vR,0,C0,wR)}function Yw(e){var t;for(t=0;t<tl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<$o;t++)e.dyn_dtree[t*2]=0;for(t=0;t<C0;t++)e.bl_tree[t*2]=0;e.dyn_ltree[T0*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Qw(e){e.bi_valid>8?ol(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 SR(e,t,n,r){Qw(e),r&&(ol(e,n),ol(e,~n)),hR.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function Xw(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 R0(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&Xw(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Xw(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function $w(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?Gn(e,i,t):(a=il[i],Gn(e,a+el+1,t),s=I0[a],s!==0&&(i-=B0[a],Gt(e,i,s)),r--,a=qw(r),Gn(e,a,n),s=Lf[a],s!==0&&(r-=Nf[a],Gt(e,r,s)));while(o<e.last_lit);Gn(e,T0,t)}function M0(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,u=-1,l;for(e.heap_len=0,e.heap_max=Nw,a=0;a<o;a++)n[a*2]!==0?(e.heap[++e.heap_len]=u=a,e.depth[a]=0):n[a*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=u,a=e.heap_len>>1;a>=1;a--)R0(e,n,a);l=o;do a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],R0(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,n[l*2]=n[a*2]+n[s*2],e.depth[l]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,n[a*2+1]=n[s*2+1]=l,e.heap[1]=l++,R0(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],ER(e,t),Ww(n,u,e.bl_count)}function Kw(e,t,n){var r,i=-1,o,a=t[0*2+1],s=0,u=7,l=4;for(a===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)o=a,a=t[(r+1)*2+1],!(++s<u&&o===a)&&(s<l?e.bl_tree[o*2]+=s:o!==0?(o!==i&&e.bl_tree[o*2]++,e.bl_tree[Ow*2]++):s<=10?e.bl_tree[zw*2]++:e.bl_tree[Uw*2]++,s=0,i=o,a===0?(u=138,l=3):o===a?(u=6,l=3):(u=7,l=4))}function Jw(e,t,n){var r,i=-1,o,a=t[0*2+1],s=0,u=7,l=4;for(a===0&&(u=138,l=3),r=0;r<=n;r++)if(o=a,a=t[(r+1)*2+1],!(++s<u&&o===a)){if(s<l)do Gn(e,o,e.bl_tree);while(--s!==0);else o!==0?(o!==i&&(Gn(e,o,e.bl_tree),s--),Gn(e,Ow,e.bl_tree),Gt(e,s-3,2)):s<=10?(Gn(e,zw,e.bl_tree),Gt(e,s-3,3)):(Gn(e,Uw,e.bl_tree),Gt(e,s-11,7));s=0,i=o,a===0?(u=138,l=3):o===a?(u=6,l=3):(u=7,l=4)}}function CR(e){var t;for(Kw(e,e.dyn_ltree,e.l_desc.max_code),Kw(e,e.dyn_dtree,e.d_desc.max_code),M0(e,e.bl_desc),t=C0-1;t>=3&&e.bl_tree[Gw[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function kR(e,t,n,r){var i;for(Gt(e,t-257,5),Gt(e,n-1,5),Gt(e,r-4,4),i=0;i<r;i++)Gt(e,e.bl_tree[Gw[i]*2+1],3);Jw(e,e.dyn_ltree,t-1),Jw(e,e.dyn_dtree,n-1)}function TR(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Mw;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Pw;for(n=32;n<el;n++)if(e.dyn_ltree[n*2]!==0)return Pw;return Mw}var ev=!1;function IR(e){ev||(_R(),ev=!0),e.l_desc=new F0(e.dyn_ltree,Hw),e.d_desc=new F0(e.dyn_dtree,Vw),e.bl_desc=new F0(e.bl_tree,jw),e.bi_buf=0,e.bi_valid=0,Yw(e)}function tv(e,t,n,r){Gt(e,(gR<<1)+(r?1:0),3),SR(e,t,n,!0)}function BR(e){Gt(e,Lw<<1,3),Gn(e,T0,lr),AR(e)}function DR(e,t,n,r){var i,o,a=0;e.level>0?(e.strm.data_type===pR&&(e.strm.data_type=TR(e)),M0(e,e.l_desc),M0(e,e.d_desc),a=CR(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?tv(e,t,n,r):e.strategy===dR||o===i?(Gt(e,(Lw<<1)+(r?1:0),3),$w(e,lr,nl)):(Gt(e,(mR<<1)+(r?1:0),3),kR(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),$w(e,e.dyn_ltree,e.dyn_dtree)),Yw(e),r&&Qw(e)}function FR(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[(il[n]+el+1)*2]++,e.dyn_dtree[qw(t)*2]++),e.last_lit===e.lit_bufsize-1}Qo._tr_init=IR,Qo._tr_stored_block=tv,Qo._tr_flush_block=DR,Qo._tr_tally=FR,Qo._tr_align=BR;function RR(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 nv=RR;function MR(){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 PR=MR();function LR(e,t,n,r){var i=PR,o=r+n;e^=-1;for(var a=r;a<o;a++)e=e>>>8^i[(e^t[a])&255];return e^-1}var rv=LR,P0={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"},It=sr,nn=Qo,iv=nv,Zr=rv,NR=P0,Qi=0,OR=1,zR=3,Wr=4,ov=5,Hn=0,av=1,rn=-2,UR=-3,L0=-5,GR=-1,HR=1,Of=2,VR=3,jR=4,qR=0,ZR=2,zf=8,WR=9,YR=15,QR=8,XR=29,$R=256,N0=$R+1+XR,KR=30,JR=19,e7=2*N0+1,t7=15,he=3,Yr=258,En=Yr+he+1,n7=32,Uf=42,O0=69,Gf=73,Hf=91,Vf=103,Xi=113,al=666,ot=1,sl=2,$i=3,Ko=4,r7=3;function Qr(e,t){return e.msg=NR[t],t}function sv(e){return(e<<1)-(e>4?9:0)}function Xr(e){for(var t=e.length;--t>=0;)e[t]=0}function $r(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(It.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 yt(e,t){nn._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,$r(e.strm)}function we(e,t){e.pending_buf[e.pending++]=t}function ll(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function i7(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,It.arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=iv(e.adler,t,i,n):e.state.wrap===2&&(e.adler=Zr(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function lv(e,t){var n=e.max_chain_length,r=e.strstart,i,o,a=e.prev_length,s=e.nice_match,u=e.strstart>e.w_size-En?e.strstart-(e.w_size-En):0,l=e.window,f=e.w_mask,c=e.prev,h=e.strstart+Yr,d=l[r+a-1],p=l[r+a];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(l[i+a]!==p||l[i+a-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(o=Yr-(h-r),r=h-Yr,o>a){if(e.match_start=t,a=o,o>=s)break;d=l[r+a-1],p=l[r+a]}}while((t=c[t&f])>u&&--n!==0);return a<=e.lookahead?a:e.lookahead}function Ki(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-En)){It.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=i7(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=r,e.lookahead+e.insert>=he)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+he-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<he)););}while(e.lookahead<En&&e.strm.avail_in!==0)}function o7(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Ki(e),e.lookahead===0&&t===Qi)return ot;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,yt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-En&&(yt(e,!1),e.strm.avail_out===0))return ot}return e.insert=0,t===Wr?(yt(e,!0),e.strm.avail_out===0?$i:Ko):(e.strstart>e.block_start&&(yt(e,!1),e.strm.avail_out===0),ot)}function z0(e,t){for(var n,r;;){if(e.lookahead<En){if(Ki(e),e.lookahead<En&&t===Qi)return ot;if(e.lookahead===0)break}if(n=0,e.lookahead>=he&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-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-En&&(e.match_length=lv(e,n)),e.match_length>=he)if(r=nn._tr_tally(e,e.strstart-e.match_start,e.match_length-he),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=he){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-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=nn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(yt(e,!1),e.strm.avail_out===0))return ot}return e.insert=e.strstart<he-1?e.strstart:he-1,t===Wr?(yt(e,!0),e.strm.avail_out===0?$i:Ko):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?ot:sl}function Jo(e,t){for(var n,r,i;;){if(e.lookahead<En){if(Ki(e),e.lookahead<En&&t===Qi)return ot;if(e.lookahead===0)break}if(n=0,e.lookahead>=he&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-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=he-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-En&&(e.match_length=lv(e,n),e.match_length<=5&&(e.strategy===HR||e.match_length===he&&e.strstart-e.match_start>4096)&&(e.match_length=he-1)),e.prev_length>=he&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-he,r=nn._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-he),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-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=he-1,e.strstart++,r&&(yt(e,!1),e.strm.avail_out===0))return ot}else if(e.match_available){if(r=nn._tr_tally(e,0,e.window[e.strstart-1]),r&&yt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return ot}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=nn._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<he-1?e.strstart:he-1,t===Wr?(yt(e,!0),e.strm.avail_out===0?$i:Ko):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?ot:sl}function a7(e,t){for(var n,r,i,o,a=e.window;;){if(e.lookahead<=Yr){if(Ki(e),e.lookahead<=Yr&&t===Qi)return ot;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=he&&e.strstart>0&&(i=e.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){o=e.strstart+Yr;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=Yr-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=he?(n=nn._tr_tally(e,1,e.match_length-he),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=nn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(yt(e,!1),e.strm.avail_out===0))return ot}return e.insert=0,t===Wr?(yt(e,!0),e.strm.avail_out===0?$i:Ko):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?ot:sl}function s7(e,t){for(var n;;){if(e.lookahead===0&&(Ki(e),e.lookahead===0)){if(t===Qi)return ot;break}if(e.match_length=0,n=nn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(yt(e,!1),e.strm.avail_out===0))return ot}return e.insert=0,t===Wr?(yt(e,!0),e.strm.avail_out===0?$i:Ko):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?ot:sl}function Vn(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 ea;ea=[new Vn(0,0,0,0,o7),new Vn(4,4,8,4,z0),new Vn(4,5,16,8,z0),new Vn(4,6,32,32,z0),new Vn(4,4,16,16,Jo),new Vn(8,16,32,32,Jo),new Vn(8,16,128,128,Jo),new Vn(8,32,128,256,Jo),new Vn(32,128,258,1024,Jo),new Vn(32,258,258,4096,Jo)];function l7(e){e.window_size=2*e.w_size,Xr(e.head),e.max_lazy_match=ea[e.level].max_lazy,e.good_match=ea[e.level].good_length,e.nice_match=ea[e.level].nice_length,e.max_chain_length=ea[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=he-1,e.match_available=0,e.ins_h=0}function u7(){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=zf,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 It.Buf16(e7*2),this.dyn_dtree=new It.Buf16((2*KR+1)*2),this.bl_tree=new It.Buf16((2*JR+1)*2),Xr(this.dyn_ltree),Xr(this.dyn_dtree),Xr(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new It.Buf16(t7+1),this.heap=new It.Buf16(2*N0+1),Xr(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new It.Buf16(2*N0+1),Xr(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 uv(e){var t;return!e||!e.state?Qr(e,rn):(e.total_in=e.total_out=0,e.data_type=ZR,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Uf:Xi,e.adler=t.wrap===2?0:1,t.last_flush=Qi,nn._tr_init(t),Hn)}function fv(e){var t=uv(e);return t===Hn&&l7(e.state),t}function f7(e,t){return!e||!e.state||e.state.wrap!==2?rn:(e.state.gzhead=t,Hn)}function cv(e,t,n,r,i,o){if(!e)return rn;var a=1;if(t===GR&&(t=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),i<1||i>WR||n!==zf||r<8||r>15||t<0||t>9||o<0||o>jR)return Qr(e,rn);r===8&&(r=9);var s=new u7;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+he-1)/he),s.window=new It.Buf8(s.w_size*2),s.head=new It.Buf16(s.hash_size),s.prev=new It.Buf16(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new It.Buf8(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=(1+2)*s.lit_bufsize,s.level=t,s.strategy=o,s.method=n,fv(e)}function c7(e,t){return cv(e,t,zf,YR,QR,qR)}function h7(e,t){var n,r,i,o;if(!e||!e.state||t>ov||t<0)return e?Qr(e,rn):rn;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===al&&t!==Wr)return Qr(e,e.avail_out===0?L0:rn);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===Uf)if(r.wrap===2)e.adler=0,we(r,31),we(r,139),we(r,8),r.gzhead?(we(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)),we(r,r.gzhead.time&255),we(r,r.gzhead.time>>8&255),we(r,r.gzhead.time>>16&255),we(r,r.gzhead.time>>24&255),we(r,r.level===9?2:r.strategy>=Of||r.level<2?4:0),we(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(we(r,r.gzhead.extra.length&255),we(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=Zr(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=O0):(we(r,0),we(r,0),we(r,0),we(r,0),we(r,0),we(r,r.level===9?2:r.strategy>=Of||r.level<2?4:0),we(r,r7),r.status=Xi);else{var a=zf+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=Of||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,a|=s<<6,r.strstart!==0&&(a|=n7),a+=31-a%31,r.status=Xi,ll(r,a),r.strstart!==0&&(ll(r,e.adler>>>16),ll(r,e.adler&65535)),e.adler=1}if(r.status===O0)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=Zr(e.adler,r.pending_buf,r.pending-i,i)),$r(e),i=r.pending,r.pending===r.pending_buf_size));)we(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=Gf)}else r.status=Gf;if(r.status===Gf)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),$r(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,we(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),o===0&&(r.gzindex=0,r.status=Hf)}else r.status=Hf;if(r.status===Hf)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),$r(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,we(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),o===0&&(r.status=Vf)}else r.status=Vf;if(r.status===Vf&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&$r(e),r.pending+2<=r.pending_buf_size&&(we(r,e.adler&255),we(r,e.adler>>8&255),e.adler=0,r.status=Xi)):r.status=Xi),r.pending!==0){if($r(e),e.avail_out===0)return r.last_flush=-1,Hn}else if(e.avail_in===0&&sv(t)<=sv(n)&&t!==Wr)return Qr(e,L0);if(r.status===al&&e.avail_in!==0)return Qr(e,L0);if(e.avail_in!==0||r.lookahead!==0||t!==Qi&&r.status!==al){var u=r.strategy===Of?s7(r,t):r.strategy===VR?a7(r,t):ea[r.level].func(r,t);if((u===$i||u===Ko)&&(r.status=al),u===ot||u===$i)return e.avail_out===0&&(r.last_flush=-1),Hn;if(u===sl&&(t===OR?nn._tr_align(r):t!==ov&&(nn._tr_stored_block(r,0,0,!1),t===zR&&(Xr(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),$r(e),e.avail_out===0))return r.last_flush=-1,Hn}return t!==Wr?Hn:r.wrap<=0?av:(r.wrap===2?(we(r,e.adler&255),we(r,e.adler>>8&255),we(r,e.adler>>16&255),we(r,e.adler>>24&255),we(r,e.total_in&255),we(r,e.total_in>>8&255),we(r,e.total_in>>16&255),we(r,e.total_in>>24&255)):(ll(r,e.adler>>>16),ll(r,e.adler&65535)),$r(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?Hn:av)}function d7(e){var t;return!e||!e.state?rn:(t=e.state.status,t!==Uf&&t!==O0&&t!==Gf&&t!==Hf&&t!==Vf&&t!==Xi&&t!==al?Qr(e,rn):(e.state=null,t===Xi?Qr(e,UR):Hn))}function p7(e,t){var n=t.length,r,i,o,a,s,u,l,f;if(!e||!e.state||(r=e.state,a=r.wrap,a===2||a===1&&r.status!==Uf||r.lookahead))return rn;for(a===1&&(e.adler=iv(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(a===0&&(Xr(r.head),r.strstart=0,r.block_start=0,r.insert=0),f=new It.Buf8(r.w_size),It.arraySet(f,t,n-r.w_size,r.w_size,0),t=f,n=r.w_size),s=e.avail_in,u=e.next_in,l=e.input,e.avail_in=n,e.next_in=0,e.input=t,Ki(r);r.lookahead>=he;){i=r.strstart,o=r.lookahead-(he-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+he-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=he-1,Ki(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=he-1,r.match_available=0,e.next_in=u,e.input=l,e.avail_in=s,r.wrap=a,Hn}Un.deflateInit=c7,Un.deflateInit2=cv,Un.deflateReset=fv,Un.deflateResetKeep=uv,Un.deflateSetHeader=f7,Un.deflate=h7,Un.deflateEnd=d7,Un.deflateSetDictionary=p7,Un.deflateInfo="pako deflate (from Nodeca project)";var Ji={},jf=sr,hv=!0,dv=!0;try{String.fromCharCode.apply(null,[0])}catch{hv=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{dv=!1}for(var ul=new jf.Buf8(256),Kr=0;Kr<256;Kr++)ul[Kr]=Kr>=252?6:Kr>=248?5:Kr>=240?4:Kr>=224?3:Kr>=192?2:1;ul[254]=ul[254]=1,Ji.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 jf.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 pv(e,t){if(t<65534&&(e.subarray&&dv||!e.subarray&&hv))return String.fromCharCode.apply(null,jf.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}Ji.buf2binstring=function(e){return pv(e,e.length)},Ji.binstring2buf=function(e){for(var t=new jf.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},Ji.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=ul[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 pv(s,r)},Ji.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+ul[e[n]]>t?n:t};function g7(){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 gv=g7,fl=Un,cl=sr,U0=Ji,G0=P0,m7=gv,mv=Object.prototype.toString,b7=0,H0=4,ta=0,bv=1,yv=2,y7=-1,w7=0,v7=8;function eo(e){if(!(this instanceof eo))return new eo(e);this.options=cl.assign({level:y7,method:v7,chunkSize:16384,windowBits:15,memLevel:8,strategy:w7,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 m7,this.strm.avail_out=0;var n=fl.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==ta)throw new Error(G0[n]);if(t.header&&fl.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=U0.string2buf(t.dictionary):mv.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=fl.deflateSetDictionary(this.strm,r),n!==ta)throw new Error(G0[n]);this._dict_set=!0}}eo.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?H0:b7,typeof e=="string"?n.input=U0.string2buf(e):mv.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 cl.Buf8(r),n.next_out=0,n.avail_out=r),i=fl.deflate(n,o),i!==bv&&i!==ta)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(o===H0||o===yv))&&(this.options.to==="string"?this.onData(U0.buf2binstring(cl.shrinkBuf(n.output,n.next_out))):this.onData(cl.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==bv);return o===H0?(i=fl.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===ta):(o===yv&&(this.onEnd(ta),n.avail_out=0),!0)},eo.prototype.onData=function(e){this.chunks.push(e)},eo.prototype.onEnd=function(e){e===ta&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=cl.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function V0(e,t){var n=new eo(t);if(n.push(e,!0),n.err)throw n.msg||G0[n.err];return n.result}function x7(e,t){return t=t||{},t.raw=!0,V0(e,t)}function A7(e,t){return t=t||{},t.gzip=!0,V0(e,t)}Js.Deflate=eo,Js.deflate=V0,Js.deflateRaw=x7,Js.gzip=A7;var hl={},_n={},qf=30,E7=12,_7=function(t,n){var r,i,o,a,s,u,l,f,c,h,d,p,b,y,w,_,C,E,T,B,I,R,M,j,O;r=t.state,i=t.next_in,j=t.input,o=i+(t.avail_in-5),a=t.next_out,O=t.output,s=a-(n-t.avail_out),u=a+(t.avail_out-257),l=r.dmax,f=r.wsize,c=r.whave,h=r.wnext,d=r.window,p=r.hold,b=r.bits,y=r.lencode,w=r.distcode,_=(1<<r.lenbits)-1,C=(1<<r.distbits)-1;e:do{b<15&&(p+=j[i++]<<b,b+=8,p+=j[i++]<<b,b+=8),E=y[p&_];t:for(;;){if(T=E>>>24,p>>>=T,b-=T,T=E>>>16&255,T===0)O[a++]=E&65535;else if(T&16){B=E&65535,T&=15,T&&(b<T&&(p+=j[i++]<<b,b+=8),B+=p&(1<<T)-1,p>>>=T,b-=T),b<15&&(p+=j[i++]<<b,b+=8,p+=j[i++]<<b,b+=8),E=w[p&C];n:for(;;){if(T=E>>>24,p>>>=T,b-=T,T=E>>>16&255,T&16){if(I=E&65535,T&=15,b<T&&(p+=j[i++]<<b,b+=8,b<T&&(p+=j[i++]<<b,b+=8)),I+=p&(1<<T)-1,I>l){t.msg="invalid distance too far back",r.mode=qf;break e}if(p>>>=T,b-=T,T=a-s,I>T){if(T=I-T,T>c&&r.sane){t.msg="invalid distance too far back",r.mode=qf;break e}if(R=0,M=d,h===0){if(R+=f-T,T<B){B-=T;do O[a++]=d[R++];while(--T);R=a-I,M=O}}else if(h<T){if(R+=f+h-T,T-=h,T<B){B-=T;do O[a++]=d[R++];while(--T);if(R=0,h<B){T=h,B-=T;do O[a++]=d[R++];while(--T);R=a-I,M=O}}}else if(R+=h-T,T<B){B-=T;do O[a++]=d[R++];while(--T);R=a-I,M=O}for(;B>2;)O[a++]=M[R++],O[a++]=M[R++],O[a++]=M[R++],B-=3;B&&(O[a++]=M[R++],B>1&&(O[a++]=M[R++]))}else{R=a-I;do O[a++]=O[R++],O[a++]=O[R++],O[a++]=O[R++],B-=3;while(B>2);B&&(O[a++]=O[R++],B>1&&(O[a++]=O[R++]))}}else if(T&64){t.msg="invalid distance code",r.mode=qf;break e}else{E=w[(E&65535)+(p&(1<<T)-1)];continue n}break}}else if(T&64)if(T&32){r.mode=E7;break e}else{t.msg="invalid literal/length code",r.mode=qf;break e}else{E=y[(E&65535)+(p&(1<<T)-1)];continue t}break}}while(i<o&&a<u);B=b>>3,i-=B,b-=B<<3,p&=(1<<b)-1,t.next_in=i,t.next_out=a,t.avail_in=i<o?5+(o-i):5-(i-o),t.avail_out=a<u?257+(u-a):257-(a-u),r.hold=p,r.bits=b},wv=sr,na=15,vv=852,xv=592,Av=0,j0=1,Ev=2,S7=[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],C7=[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],k7=[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],T7=[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],I7=function(t,n,r,i,o,a,s,u){var l=u.bits,f=0,c=0,h=0,d=0,p=0,b=0,y=0,w=0,_=0,C=0,E,T,B,I,R,M=null,j=0,O,ie=new wv.Buf16(na+1),se=new wv.Buf16(na+1),ge=null,Ie=0,Xe,De,$e;for(f=0;f<=na;f++)ie[f]=0;for(c=0;c<i;c++)ie[n[r+c]]++;for(p=l,d=na;d>=1&&ie[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,u.bits=1,0;for(h=1;h<d&&ie[h]===0;h++);for(p<h&&(p=h),w=1,f=1;f<=na;f++)if(w<<=1,w-=ie[f],w<0)return-1;if(w>0&&(t===Av||d!==1))return-1;for(se[1]=0,f=1;f<na;f++)se[f+1]=se[f]+ie[f];for(c=0;c<i;c++)n[r+c]!==0&&(s[se[n[r+c]]++]=c);if(t===Av?(M=ge=s,O=19):t===j0?(M=S7,j-=257,ge=C7,Ie-=257,O=256):(M=k7,ge=T7,O=-1),C=0,c=0,f=h,R=a,b=p,y=0,B=-1,_=1<<p,I=_-1,t===j0&&_>vv||t===Ev&&_>xv)return 1;for(;;){Xe=f-y,s[c]<O?(De=0,$e=s[c]):s[c]>O?(De=ge[Ie+s[c]],$e=M[j+s[c]]):(De=32+64,$e=0),E=1<<f-y,T=1<<b,h=T;do T-=E,o[R+(C>>y)+T]=Xe<<24|De<<16|$e|0;while(T!==0);for(E=1<<f-1;C&E;)E>>=1;if(E!==0?(C&=E-1,C+=E):C=0,c++,--ie[f]===0){if(f===d)break;f=n[r+s[c]]}if(f>p&&(C&I)!==B){for(y===0&&(y=p),R+=h,b=f-y,w=1<<b;b+y<d&&(w-=ie[b+y],!(w<=0));)b++,w<<=1;if(_+=1<<b,t===j0&&_>vv||t===Ev&&_>xv)return 1;B=C&I,o[B]=p<<24|b<<16|R-a|0}}return C!==0&&(o[R+C]=f-y<<24|64<<16|0),u.bits=p,0},Qt=sr,q0=nv,jn=rv,B7=_7,dl=I7,D7=0,_v=1,Sv=2,Cv=4,F7=5,Zf=6,to=0,R7=1,M7=2,on=-2,kv=-3,Tv=-4,P7=-5,Iv=8,Bv=1,Dv=2,Fv=3,Rv=4,Mv=5,Pv=6,Lv=7,Nv=8,Ov=9,zv=10,Wf=11,ur=12,Z0=13,Uv=14,W0=15,Gv=16,Hv=17,Vv=18,jv=19,Yf=20,Qf=21,qv=22,Zv=23,Wv=24,Yv=25,Qv=26,Y0=27,Xv=28,$v=29,je=30,Kv=31,L7=32,N7=852,O7=592,z7=15,U7=z7;function Jv(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function G7(){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 Qt.Buf16(320),this.work=new Qt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function ex(e){var t;return!e||!e.state?on:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Bv,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Qt.Buf32(N7),t.distcode=t.distdyn=new Qt.Buf32(O7),t.sane=1,t.back=-1,to)}function tx(e){var t;return!e||!e.state?on:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,ex(e))}function nx(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))?on:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,tx(e))}function rx(e,t){var n,r;return e?(r=new G7,e.state=r,r.window=null,n=nx(e,t),n!==to&&(e.state=null),n):on}function H7(e){return rx(e,U7)}var ix=!0,Q0,X0;function V7(e){if(ix){var t;for(Q0=new Qt.Buf32(512),X0=new Qt.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(dl(_v,e.lens,0,288,Q0,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;dl(Sv,e.lens,0,32,X0,0,e.work,{bits:5}),ix=!1}e.lencode=Q0,e.lenbits=9,e.distcode=X0,e.distbits=5}function ox(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 Qt.Buf8(o.wsize)),r>=o.wsize?(Qt.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),Qt.arraySet(o.window,t,n-r,i,o.wnext),r-=i,r?(Qt.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 j7(e,t){var n,r,i,o,a,s,u,l,f,c,h,d,p,b,y=0,w,_,C,E,T,B,I,R,M=new Qt.Buf8(4),j,O,ie=[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 on;n=e.state,n.mode===ur&&(n.mode=Z0),a=e.next_out,i=e.output,u=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,l=n.hold,f=n.bits,c=s,h=u,R=to;e:for(;;)switch(n.mode){case Bv:if(n.wrap===0){n.mode=Z0;break}for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(n.wrap&2&&l===35615){n.check=0,M[0]=l&255,M[1]=l>>>8&255,n.check=jn(n.check,M,2,0),l=0,f=0,n.mode=Dv;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=je;break}if((l&15)!==Iv){e.msg="unknown compression method",n.mode=je;break}if(l>>>=4,f-=4,I=(l&15)+8,n.wbits===0)n.wbits=I;else if(I>n.wbits){e.msg="invalid window size",n.mode=je;break}n.dmax=1<<I,e.adler=n.check=1,n.mode=l&512?zv:ur,l=0,f=0;break;case Dv:for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(n.flags=l,(n.flags&255)!==Iv){e.msg="unknown compression method",n.mode=je;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=je;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=jn(n.check,M,2,0)),l=0,f=0,n.mode=Fv;case Fv:for(;f<32;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}n.head&&(n.head.time=l),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,M[2]=l>>>16&255,M[3]=l>>>24&255,n.check=jn(n.check,M,4,0)),l=0,f=0,n.mode=Rv;case Rv:for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=jn(n.check,M,2,0)),l=0,f=0,n.mode=Mv;case Mv:if(n.flags&1024){for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=jn(n.check,M,2,0)),l=0,f=0}else n.head&&(n.head.extra=null);n.mode=Pv;case Pv:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(I=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Qt.arraySet(n.head.extra,r,o,d,I)),n.flags&512&&(n.check=jn(n.check,r,d,o)),s-=d,o+=d,n.length-=d),n.length))break e;n.length=0,n.mode=Lv;case Lv:if(n.flags&2048){if(s===0)break e;d=0;do I=r[o+d++],n.head&&I&&n.length<65536&&(n.head.name+=String.fromCharCode(I));while(I&&d<s);if(n.flags&512&&(n.check=jn(n.check,r,d,o)),s-=d,o+=d,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=Nv;case Nv:if(n.flags&4096){if(s===0)break e;d=0;do I=r[o+d++],n.head&&I&&n.length<65536&&(n.head.comment+=String.fromCharCode(I));while(I&&d<s);if(n.flags&512&&(n.check=jn(n.check,r,d,o)),s-=d,o+=d,I)break e}else n.head&&(n.head.comment=null);n.mode=Ov;case Ov:if(n.flags&512){for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=je;break}l=0,f=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=ur;break;case zv:for(;f<32;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}e.adler=n.check=Jv(l),l=0,f=0,n.mode=Wf;case Wf:if(n.havedict===0)return e.next_out=a,e.avail_out=u,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=f,M7;e.adler=n.check=1,n.mode=ur;case ur:if(t===F7||t===Zf)break e;case Z0:if(n.last){l>>>=f&7,f-=f&7,n.mode=Y0;break}for(;f<3;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}switch(n.last=l&1,l>>>=1,f-=1,l&3){case 0:n.mode=Uv;break;case 1:if(V7(n),n.mode=Yf,t===Zf){l>>>=2,f-=2;break e}break;case 2:n.mode=Hv;break;case 3:e.msg="invalid block type",n.mode=je}l>>>=2,f-=2;break;case Uv:for(l>>>=f&7,f-=f&7;f<32;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=je;break}if(n.length=l&65535,l=0,f=0,n.mode=W0,t===Zf)break e;case W0:n.mode=Gv;case Gv:if(d=n.length,d){if(d>s&&(d=s),d>u&&(d=u),d===0)break e;Qt.arraySet(i,r,o,d,a),s-=d,o+=d,u-=d,a+=d,n.length-=d;break}n.mode=ur;break;case Hv:for(;f<14;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(n.nlen=(l&31)+257,l>>>=5,f-=5,n.ndist=(l&31)+1,l>>>=5,f-=5,n.ncode=(l&15)+4,l>>>=4,f-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=je;break}n.have=0,n.mode=Vv;case Vv:for(;n.have<n.ncode;){for(;f<3;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}n.lens[ie[n.have++]]=l&7,l>>>=3,f-=3}for(;n.have<19;)n.lens[ie[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,j={bits:n.lenbits},R=dl(D7,n.lens,0,19,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid code lengths set",n.mode=je;break}n.have=0,n.mode=jv;case jv:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(C<16)l>>>=w,f-=w,n.lens[n.have++]=C;else{if(C===16){for(O=w+2;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(l>>>=w,f-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=je;break}I=n.lens[n.have-1],d=3+(l&3),l>>>=2,f-=2}else if(C===17){for(O=w+3;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}l>>>=w,f-=w,I=0,d=3+(l&7),l>>>=3,f-=3}else{for(O=w+7;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}l>>>=w,f-=w,I=0,d=11+(l&127),l>>>=7,f-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=je;break}for(;d--;)n.lens[n.have++]=I}}if(n.mode===je)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=je;break}if(n.lenbits=9,j={bits:n.lenbits},R=dl(_v,n.lens,0,n.nlen,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid literal/lengths set",n.mode=je;break}if(n.distbits=6,n.distcode=n.distdyn,j={bits:n.distbits},R=dl(Sv,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,j),n.distbits=j.bits,R){e.msg="invalid distances set",n.mode=je;break}if(n.mode=Yf,t===Zf)break e;case Yf:n.mode=Qf;case Qf:if(s>=6&&u>=258){e.next_out=a,e.avail_out=u,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=f,B7(e,h),a=e.next_out,i=e.output,u=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,l=n.hold,f=n.bits,n.mode===ur&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(_&&!(_&240)){for(E=w,T=_,B=C;y=n.lencode[B+((l&(1<<E+T)-1)>>E)],w=y>>>24,_=y>>>16&255,C=y&65535,!(E+w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}l>>>=E,f-=E,n.back+=E}if(l>>>=w,f-=w,n.back+=w,n.length=C,_===0){n.mode=Qv;break}if(_&32){n.back=-1,n.mode=ur;break}if(_&64){e.msg="invalid literal/length code",n.mode=je;break}n.extra=_&15,n.mode=qv;case qv:if(n.extra){for(O=n.extra;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,f-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=Zv;case Zv:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(!(_&240)){for(E=w,T=_,B=C;y=n.distcode[B+((l&(1<<E+T)-1)>>E)],w=y>>>24,_=y>>>16&255,C=y&65535,!(E+w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}l>>>=E,f-=E,n.back+=E}if(l>>>=w,f-=w,n.back+=w,_&64){e.msg="invalid distance code",n.mode=je;break}n.offset=C,n.extra=_&15,n.mode=Wv;case Wv:if(n.extra){for(O=n.extra;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,f-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=je;break}n.mode=Yv;case Yv:if(u===0)break e;if(d=h-u,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=je;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),b=n.window}else b=i,p=a-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[a++]=b[p++];while(--d);n.length===0&&(n.mode=Qf);break;case Qv:if(u===0)break e;i[a++]=n.length,u--,n.mode=Qf;break;case Y0:if(n.wrap){for(;f<32;){if(s===0)break e;s--,l|=r[o++]<<f,f+=8}if(h-=u,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?jn(n.check,i,h,a-h):q0(n.check,i,h,a-h)),h=u,(n.flags?l:Jv(l))!==n.check){e.msg="incorrect data check",n.mode=je;break}l=0,f=0}n.mode=Xv;case Xv:if(n.wrap&&n.flags){for(;f<32;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=je;break}l=0,f=0}n.mode=$v;case $v:R=R7;break e;case je:R=kv;break e;case Kv:return Tv;case L7:default:return on}return e.next_out=a,e.avail_out=u,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=f,(n.wsize||h!==e.avail_out&&n.mode<je&&(n.mode<Y0||t!==Cv))&&ox(e,e.output,e.next_out,h-e.avail_out),c-=e.avail_in,h-=e.avail_out,e.total_in+=c,e.total_out+=h,n.total+=h,n.wrap&&h&&(e.adler=n.check=n.flags?jn(n.check,i,h,e.next_out-h):q0(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===ur?128:0)+(n.mode===Yf||n.mode===W0?256:0),(c===0&&h===0||t===Cv)&&R===to&&(R=P7),R}function q7(e){if(!e||!e.state)return on;var t=e.state;return t.window&&(t.window=null),e.state=null,to}function Z7(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?on:(n.head=t,t.done=!1,to)}function W7(e,t){var n=t.length,r,i,o;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==Wf)?on:r.mode===Wf&&(i=1,i=q0(i,t,n,0),i!==r.check)?kv:(o=ox(e,t,n,n),o?(r.mode=Kv,Tv):(r.havedict=1,to))}_n.inflateReset=tx,_n.inflateReset2=nx,_n.inflateResetKeep=ex,_n.inflateInit=H7,_n.inflateInit2=rx,_n.inflate=j7,_n.inflateEnd=q7,_n.inflateGetHeader=Z7,_n.inflateSetDictionary=W7,_n.inflateInfo="pako inflate (from Nodeca project)";var ax={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 Y7(){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 Q7=Y7,ra=_n,pl=sr,Xf=Ji,tt=ax,$0=P0,X7=gv,$7=Q7,sx=Object.prototype.toString;function no(e){if(!(this instanceof no))return new no(e);this.options=pl.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 X7,this.strm.avail_out=0;var n=ra.inflateInit2(this.strm,t.windowBits);if(n!==tt.Z_OK)throw new Error($0[n]);if(this.header=new $7,ra.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Xf.string2buf(t.dictionary):sx.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=ra.inflateSetDictionary(this.strm,t.dictionary),n!==tt.Z_OK)))throw new Error($0[n])}no.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,o,a,s,u,l,f=!1;if(this.ended)return!1;a=t===~~t?t:t===!0?tt.Z_FINISH:tt.Z_NO_FLUSH,typeof e=="string"?n.input=Xf.binstring2buf(e):sx.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 pl.Buf8(r),n.next_out=0,n.avail_out=r),o=ra.inflate(n,tt.Z_NO_FLUSH),o===tt.Z_NEED_DICT&&i&&(o=ra.inflateSetDictionary(this.strm,i)),o===tt.Z_BUF_ERROR&&f===!0&&(o=tt.Z_OK,f=!1),o!==tt.Z_STREAM_END&&o!==tt.Z_OK)return this.onEnd(o),this.ended=!0,!1;n.next_out&&(n.avail_out===0||o===tt.Z_STREAM_END||n.avail_in===0&&(a===tt.Z_FINISH||a===tt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=Xf.utf8border(n.output,n.next_out),u=n.next_out-s,l=Xf.buf2string(n.output,s),n.next_out=u,n.avail_out=r-u,u&&pl.arraySet(n.output,n.output,s,u,0),this.onData(l)):this.onData(pl.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(f=!0)}while((n.avail_in>0||n.avail_out===0)&&o!==tt.Z_STREAM_END);return o===tt.Z_STREAM_END&&(a=tt.Z_FINISH),a===tt.Z_FINISH?(o=ra.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,o===tt.Z_OK):(a===tt.Z_SYNC_FLUSH&&(this.onEnd(tt.Z_OK),n.avail_out=0),!0)},no.prototype.onData=function(e){this.chunks.push(e)},no.prototype.onEnd=function(e){e===tt.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=pl.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function K0(e,t){var n=new no(t);if(n.push(e,!0),n.err)throw n.msg||$0[n.err];return n.result}function K7(e,t){return t=t||{},t.raw=!0,K0(e,t)}hl.Inflate=no,hl.inflate=K0,hl.inflateRaw=K7,hl.ungzip=K0;var J7=sr.assign,eM=Js,tM=hl,nM=ax,lx={};J7(lx,eM,tM,nM);var $f=lx;async function Jr(e){try{let t,n=0,r=0;const i=[];let o=0,a;do{const u=e.subarray(n);if(a=new $f.Inflate,{strm:t}=a,a.push(u,$f.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 u=0,l=0;u<i.length;u++)s.set(i[u],l),l+=i[u].length;return pe.Buffer.from(s)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function ux(e,t){try{let n;const{minv:r,maxv:i}=t;let o=r.blockPosition,a=r.dataPosition;const s=[],u=[],l=[];let f=0,c=0;do{const p=e.subarray(o-r.blockPosition),b=new $f.Inflate;if({strm:n}=b,b.push(p,$f.Z_SYNC_FLUSH),b.err)throw new Error(b.msg);const y=b.result;s.push(y);let w=y.length;u.push(o),l.push(a),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),w=s[0].length);const _=o;if(o+=n.next_in,a+=w,_>=i.blockPosition){s[c]=s[c].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),u.push(o),l.push(a),f+=s[c].length;break}f+=s[c].length,c++}while(n.avail_in);const h=new Uint8Array(f);for(let p=0,b=0;p<s.length;p++)h.set(s[p],b),b+=s[p].length;return{buffer:pe.Buffer.from(h),cpositions:u,dpositions:l}}catch(n){throw`${n}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):n}}var rM=Le,an=null;try{an=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Le(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}Le.prototype.__isLong__,Object.defineProperty(Le.prototype,"__isLong__",{value:!0});function Ht(e){return(e&&e.__isLong__)===!0}Le.isLong=Ht;var fx={},cx={};function ro(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=cx[e],r)?r:(n=Ne(e,(e|0)<0?-1:0,!0),i&&(cx[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=fx[e],r)?r:(n=Ne(e,e<0?-1:0,!1),i&&(fx[e]=n),n))}Le.fromInt=ro;function sn(e,t){if(isNaN(e))return t?io:ln;if(t){if(e<0)return io;if(e>=dx)return yx}else{if(e<=-px)return Vt;if(e+1>=px)return bx}return e<0?sn(-e,t).neg():Ne(e%ia|0,e/ia|0,t)}Le.fromNumber=sn;function Ne(e,t,n){return new Le(e,t,n)}Le.fromBits=Ne;var Kf=Math.pow;function J0(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return ln;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 J0(e.substring(1),t,n).neg();for(var i=sn(Kf(n,8)),o=ln,a=0;a<e.length;a+=8){var s=Math.min(8,e.length-a),u=parseInt(e.substring(a,a+s),n);if(s<8){var l=sn(Kf(n,s));o=o.mul(l).add(sn(u))}else o=o.mul(i),o=o.add(sn(u))}return o.unsigned=t,o}Le.fromString=J0;function Sn(e,t){return typeof e=="number"?sn(e,t):typeof e=="string"?J0(e,t):Ne(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Le.fromValue=Sn;var hx=65536,iM=1<<24,ia=hx*hx,dx=ia*ia,px=dx/2,gx=ro(iM),ln=ro(0);Le.ZERO=ln;var io=ro(0,!0);Le.UZERO=io;var oa=ro(1);Le.ONE=oa;var mx=ro(1,!0);Le.UONE=mx;var ep=ro(-1);Le.NEG_ONE=ep;var bx=Ne(-1,2147483647,!1);Le.MAX_VALUE=bx;var yx=Ne(-1,-1,!0);Le.MAX_UNSIGNED_VALUE=yx;var Vt=Ne(0,-2147483648,!1);Le.MIN_VALUE=Vt;var Q=Le.prototype;Q.toInt=function(){return this.unsigned?this.low>>>0:this.low},Q.toNumber=function(){return this.unsigned?(this.high>>>0)*ia+(this.low>>>0):this.high*ia+(this.low>>>0)},Q.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(Vt)){var n=sn(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=sn(Kf(t,6),this.unsigned),a=this,s="";;){var u=a.div(o),l=a.sub(u.mul(o)).toInt()>>>0,f=l.toString(t);if(a=u,a.isZero())return f+s;for(;f.length<6;)f="0"+f;s=""+f+s}},Q.getHighBits=function(){return this.high},Q.getHighBitsUnsigned=function(){return this.high>>>0},Q.getLowBits=function(){return this.low},Q.getLowBitsUnsigned=function(){return this.low>>>0},Q.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Vt)?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},Q.isZero=function(){return this.high===0&&this.low===0},Q.eqz=Q.isZero,Q.isNegative=function(){return!this.unsigned&&this.high<0},Q.isPositive=function(){return this.unsigned||this.high>=0},Q.isOdd=function(){return(this.low&1)===1},Q.isEven=function(){return(this.low&1)===0},Q.equals=function(t){return Ht(t)||(t=Sn(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},Q.eq=Q.equals,Q.notEquals=function(t){return!this.eq(t)},Q.neq=Q.notEquals,Q.ne=Q.notEquals,Q.lessThan=function(t){return this.comp(t)<0},Q.lt=Q.lessThan,Q.lessThanOrEqual=function(t){return this.comp(t)<=0},Q.lte=Q.lessThanOrEqual,Q.le=Q.lessThanOrEqual,Q.greaterThan=function(t){return this.comp(t)>0},Q.gt=Q.greaterThan,Q.greaterThanOrEqual=function(t){return this.comp(t)>=0},Q.gte=Q.greaterThanOrEqual,Q.ge=Q.greaterThanOrEqual,Q.compare=function(t){if(Ht(t)||(t=Sn(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},Q.comp=Q.compare,Q.negate=function(){return!this.unsigned&&this.eq(Vt)?Vt:this.not().add(oa)},Q.neg=Q.negate,Q.add=function(t){Ht(t)||(t=Sn(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,u=t.low>>>16,l=t.low&65535,f=0,c=0,h=0,d=0;return d+=o+l,h+=d>>>16,d&=65535,h+=i+u,c+=h>>>16,h&=65535,c+=r+s,f+=c>>>16,c&=65535,f+=n+a,f&=65535,Ne(h<<16|d,f<<16|c,this.unsigned)},Q.subtract=function(t){return Ht(t)||(t=Sn(t)),this.add(t.neg())},Q.sub=Q.subtract,Q.multiply=function(t){if(this.isZero())return ln;if(Ht(t)||(t=Sn(t)),an){var n=an.mul(this.low,this.high,t.low,t.high);return Ne(n,an.get_high(),this.unsigned)}if(t.isZero())return ln;if(this.eq(Vt))return t.isOdd()?Vt:ln;if(t.eq(Vt))return this.isOdd()?Vt:ln;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(gx)&&t.lt(gx))return sn(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,u=t.high&65535,l=t.low>>>16,f=t.low&65535,c=0,h=0,d=0,p=0;return p+=a*f,d+=p>>>16,p&=65535,d+=o*f,h+=d>>>16,d&=65535,d+=a*l,h+=d>>>16,d&=65535,h+=i*f,c+=h>>>16,h&=65535,h+=o*l,c+=h>>>16,h&=65535,h+=a*u,c+=h>>>16,h&=65535,c+=r*f+i*l+o*u+a*s,c&=65535,Ne(d<<16|p,c<<16|h,this.unsigned)},Q.mul=Q.multiply,Q.divide=function(t){if(Ht(t)||(t=Sn(t)),t.isZero())throw Error("division by zero");if(an){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?an.div_u:an.div_s)(this.low,this.high,t.low,t.high);return Ne(n,an.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?io:ln;var r,i,o;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return io;if(t.gt(this.shru(1)))return mx;o=io}else{if(this.eq(Vt)){if(t.eq(oa)||t.eq(ep))return Vt;if(t.eq(Vt))return oa;var a=this.shr(1);return r=a.div(t).shl(1),r.eq(ln)?t.isNegative()?oa:ep:(i=this.sub(t.mul(r)),o=r.add(i.div(t)),o)}else if(t.eq(Vt))return this.unsigned?io:ln;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();o=ln}for(i=this;i.gte(t);){r=Math.max(1,Math.floor(i.toNumber()/t.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),u=s<=48?1:Kf(2,s-48),l=sn(r),f=l.mul(t);f.isNegative()||f.gt(i);)r-=u,l=sn(r,this.unsigned),f=l.mul(t);l.isZero()&&(l=oa),o=o.add(l),i=i.sub(f)}return o},Q.div=Q.divide,Q.modulo=function(t){if(Ht(t)||(t=Sn(t)),an){var n=(this.unsigned?an.rem_u:an.rem_s)(this.low,this.high,t.low,t.high);return Ne(n,an.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},Q.mod=Q.modulo,Q.rem=Q.modulo,Q.not=function(){return Ne(~this.low,~this.high,this.unsigned)},Q.and=function(t){return Ht(t)||(t=Sn(t)),Ne(this.low&t.low,this.high&t.high,this.unsigned)},Q.or=function(t){return Ht(t)||(t=Sn(t)),Ne(this.low|t.low,this.high|t.high,this.unsigned)},Q.xor=function(t){return Ht(t)||(t=Sn(t)),Ne(this.low^t.low,this.high^t.high,this.unsigned)},Q.shiftLeft=function(t){return Ht(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Ne(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):Ne(0,this.low<<t-32,this.unsigned)},Q.shl=Q.shiftLeft,Q.shiftRight=function(t){return Ht(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Ne(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):Ne(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},Q.shr=Q.shiftRight,Q.shiftRightUnsigned=function(t){if(Ht(t)&&(t=t.toInt()),t&=63,t===0)return this;var n=this.high;if(t<32){var r=this.low;return Ne(r>>>t|n<<32-t,n>>>t,this.unsigned)}else return t===32?Ne(n,0,this.unsigned):Ne(n>>>t-32,0,this.unsigned)},Q.shru=Q.shiftRightUnsigned,Q.shr_u=Q.shiftRightUnsigned,Q.toSigned=function(){return this.unsigned?Ne(this.low,this.high,!1):this},Q.toUnsigned=function(){return this.unsigned?this:Ne(this.low,this.high,!0)},Q.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},Q.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]},Q.toBytesBE=function(){var t=this.high,n=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Le.fromBytes=function(t,n,r){return r?Le.fromBytesLE(t,n):Le.fromBytesBE(t,n)},Le.fromBytesLE=function(t,n){return new Le(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)},Le.fromBytesBE=function(t,n){return new Le(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)};const Jf=$s(rM),ec=1;class oM{constructor({filehandle:t,path:n}){if(t)this.filehandle=t;else if(n)this.filehandle=new ht(n);else throw new TypeError("either filehandle or path must be defined")}_readLongWithOverflow(t,n=0,r=!0){const i=Jf.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=pe.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=pe.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[ec],b=d?d[ec]:1/0;return p<=n&&b>n?0:p<n?-1:1};let s=0,u=i.length-1,l=Math.floor(i.length/2),f=a(i[l],i[l+1]);for(;f!==0;)f>0?u=l-1:f<0&&(s=l+1),l=Math.ceil((u-s)/2)+s,f=a(i[l],i[l+1]);o.push(i[l]);let c=l+1;for(;c<i.length&&(o.push(i[c]),!(i[c][ec]>=r));c+=1);return o[o.length-1][ec]<r&&o.push([]),o}}class wx{constructor({filehandle:t,path:n,gziFilehandle:r,gziPath:i}){if(t)this.filehandle=t;else if(n)this.filehandle=new ht(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 oM({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=pe.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 Jr(t.slice(0,o))}async read(t,n,r,i){const o=await this.gzi.getRelevantBlocksForRead(r,i),a=pe.Buffer.allocUnsafe(32768*2);let s=n,u=0;for(let l=0;l<o.length-1;l+=1){const f=await this._readAndUncompressBlock(a,o[l],o[l+1]),[,c]=o[l],h=c>=i?0:i-c,d=Math.min(i+r,c+f.length)-c;h>=0&&h<f.length&&(f.copy(t,s,h,d),s+=d-h,u+=d-h)}return{bytesRead:u,buffer:t}}}function vx(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function aM(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 xx{constructor({fasta:t,fai:n,path:r,faiPath:i,chunkSizeLimit:o=1e6}){if(t)this.fasta=t;else if(r)this.fasta=new ht(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 ht(i);else if(r)this.fai=new ht(`${r}.fai`);else throw new Error("Need to pass filehandle for or path to localfile");this.chunkSizeLimit=o}async _getIndexes(t){return this.indexes||(this.indexes=aM(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=vx(t,n),s=vx(t,o)-a;if(s>this.chunkSizeLimit)throw new Error(`data size of ${s.toLocaleString()} bytes exceeded chunk size limit of ${this.chunkSizeLimit.toLocaleString()} bytes`);const u=Buffer.allocUnsafe(s);return await this.fasta.read(u,0,s,a,i),u.toString("utf8").replace(/\s+/g,"")}}class sM extends xx{constructor({fasta:t,path:n,fai:r,faiPath:i,gzi:o,gziPath:a,chunkSizeLimit:s}){super({fasta:t,path:n,fai:r,faiPath:i,chunkSizeLimit:s}),t&&o?this.fasta=new wx({filehandle:t,gziFilehandle:o}):n&&a&&(this.fasta=new wx({path:n,gziPath:a}))}}function Ax(e){return e.split(">").filter(t=>/\S/.test(t)).map(t=>{const[n,...r]=t.split(`
320
- `),[i,...o]=n.split(" "),a=r.join("").replace(/\s/g,"");return{id:i,description:o.join(" "),sequence:a}})}class lM{constructor({fasta:t,path:n}){if(t)this.fasta=t;else if(n)this.fasta=new ht(n);else throw new Error("Need to pass fasta or path");this.data=this.fasta.readFile().then(r=>{const i=r.toString("utf8");return Ax(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 uM=Object.freeze(Object.defineProperty({__proto__:null,BgzipIndexedFasta:sM,FetchableSmallFasta:lM,IndexedFasta:xx,parseSmallFasta:Ax},Symbol.toStringTag,{value:"Module"})),tc=BigInt(32);function fM(e,t,n){const r=+!!n,i=+!n;return BigInt(e.getInt32(t,n)*i+e.getInt32(t+4,n)*r)<<tc|BigInt(e.getUint32(t,n)*r+e.getUint32(t+4,n)*i)}function cM(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)<<tc|BigInt(r*o+i*a)}function hM(e,t,n,r){const i=Number(n>>tc),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 dM(e,t,n,r){const i=Number(n>>tc),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 fM(this,e,t)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(e,t){return cM(this,e,t)}),"setBigInt64"in DataView||(DataView.prototype.setBigInt64=function(e,t,n){hM(this,e,t,n)}),"setBigUint64"in DataView||(DataView.prototype.setBigUint64=function(e,t,n){dM(this,e,t,n)});class pM{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+`
321
- `}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 Cn=new Map,oo="___parser_",kn={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},nc={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"},rc={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 Te=class Bn{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new Bn}primitiveGenerateN(t,n){const r=nc[t],i=rc[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${kn[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 Cn.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"&&!Cn.has(n.type)&&!(n.type in kn))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"&&!Cn.has(o)&&!(o in kn))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 Bn)&&!Cn.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof Bn)&&!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 kn)&&!Cn.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 pM(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${oo+this.alias}(0).result;`)):this.addRawCode(n),n}getCode(){const t="imports";return this.getContext(t).code}addRawCode(t){t.pushCode("var offset = 0;"),t.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),t.pushCode("vars.$parent = null;"),t.pushCode("vars.$root = vars;"),this.generate(t),this.resolveReferences(t),t.pushCode("delete vars.$parent;"),t.pushCode("delete vars.$root;"),t.pushCode("return vars;")}addAliasedCode(t){return t.pushCode(`function ${oo+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=Cn.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(kn).indexOf(this.type)>=0)t=kn[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=kn[this.options.type]:this.options.type instanceof Bn&&(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 Bn;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=(f=0)=>{let c=0;for(let h=f;h<t.bitFields.length;h++){const d=t.bitFields[h].options.length;if(c+d>32)break;c+=d}return c},o=f=>(f<=8?(t.pushCode(`${r} = dataView.getUint8(offset);`),f=8):f<=16?(t.pushCode(`${r} = dataView.getUint16(offset);`),f=16):f<=24?(t.pushCode(`${r} = (dataView.getUint16(offset) << 8) | dataView.getUint8(offset + 2);`),f=24):(t.pushCode(`${r} = dataView.getUint32(offset);`),f=32),t.pushCode(`offset += ${f/8};`),f);let a=0;const s=this.endian==="be";let u=0,l=0;t.bitFields.forEach((f,c)=>{let h=f.options.length;if(h>l){if(l){const b=-1>>>32-l;t.pushCode(`${f.varName} = (${r} & 0x${b.toString(16)}) << ${h-l};`),h-=l}a=0,l=u=o(i(c)-l)}const d=s?u-a-h:a,p=-1>>>32-h;t.pushCode(`${f.varName} ${h<f.options.length?"|=":"="} ${r} >> ${d} & 0x${p.toString(16)};`),f.options.length===32&&t.pushCode(`${f.varName} >>>= 0`),f.options.assert&&f.generateAssert(t),f.options.formatter&&f.generateFormatter(t,f.varName,f.options.formatter),a+=h,l-=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 u=`offset - ${r} < ${s} ? offset - 1 : offset`;t.pushCode(o?`${n} = Array.from(buffer.subarray(${r}, ${u}), ${a}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${u}));`)}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(),u=this.options.key,l=typeof u=="string";if(l?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(Cn.get(i)){const f=t.generateTmpVariable();if(t.pushCode(`var ${f} = ${oo+i}(offset, {`),t.useContextVariables){const c=t.generateVariable();t.pushCode(`$parent: ${c},`),t.pushCode(`$root: ${c}.$root,`),!this.options.readUntil&&r===void 0&&t.pushCode(`$index: ${n} - ${o},`)}t.pushCode("});"),t.pushCode(`var ${s} = ${f}.result; offset = ${f}.offset;`),i!==this.alias&&t.addReference(i)}else{const f=nc[i],c=rc[i];t.pushCode(`var ${s} = dataView.get${f}(offset, ${c});`),t.pushCode(`offset += ${kn[i]};`)}else if(i instanceof Bn){t.pushCode(`var ${s} = {};`);const f=t.generateVariable();t.pushScope(s),t.useContextVariables&&(t.pushCode(`${s}.$parent = ${f};`),t.pushCode(`${s}.$root = ${f}.$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(l?t.pushCode(`${a}[${s}.${u}] = ${s};`):t.pushCode(`${a}.push(${s});`),t.pushCode("}"),typeof this.options.readUntil=="function"){const f=this.options.readUntil,c=t.addImport(f);t.pushCode(`while (!${c}.call(${t.generateVariable()}, ${s}, buffer.subarray(offset)));`)}}generateChoiceCase(t,n,r){if(typeof r=="string"){const i=t.generateVariable(this.varName);if(Cn.has(r)){const o=t.generateTmpVariable();t.pushCode(`var ${o} = ${oo+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=nc[r],a=rc[r];t.pushCode(`${i} = dataView.get${o}(offset, ${a});`),t.pushCode(`offset += ${kn[r]}`)}}else r instanceof Bn&&(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 Bn){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(Cn.has(this.options.type)){const r=t.generateTmpVariable();if(t.pushCode(`var ${r} = ${oo+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 u=this.options.readUntil,l=t.generateTmpVariable(),f=t.generateTmpVariable();t.pushCode(`var ${l} = offset;`),t.pushCode(`var ${f} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${f} = dataView.getUint8(offset);`);const c=t.addImport(u);t.pushCode(`if (${c}.call(${t.generateVariable()}, ${f}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${r} = buffer.subarray(${l}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${r} = buffer.subarray(offset);`);else{const u=t.generateOption(this.options.length);t.pushCode(`${r} = buffer.subarray(offset, offset + ${u});`),t.pushCode(`offset += ${u};`)}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 Bn)this.varName&&t.pushCode(`${n} = {};`),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(Cn.has(this.options.type)){const u=t.generateTmpVariable();t.pushCode(`var ${u} = ${oo+this.options.type}(0);`),t.pushCode(`${n} = ${u}.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 Bn){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(Cn.has(this.options.type)){const a=t.generateTmpVariable();if(t.pushCode(`var ${a} = ${oo+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(kn).indexOf(this.options.type)>=0){const a=nc[n],s=rc[n];t.pushCode(`${o} = dataView.get${a}(offset, ${s});`),t.pushCode(`offset += ${kn[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}};var Ex={},tp={},ao={},gl={};Object.defineProperty(gl,"__esModule",{value:!0});function np(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _x(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 rp(e,t,n){return t&&_x(e.prototype,t),n&&_x(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function gM(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&&ip(e,t)}function aa(e){return aa=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},aa(e)}function ip(e,t){return ip=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},ip(e,t)}function mM(){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 ml(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function bM(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 ml(e)}function yM(e){var t=mM();return function(){var r=aa(e),i;if(t){var o=aa(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return bM(this,i)}}function wM(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=aa(e),e!==null););return e}function ic(){return typeof Reflect<"u"&&Reflect.get?ic=Reflect.get.bind():ic=function(t,n,r){var i=wM(t,n);if(i){var o=Object.getOwnPropertyDescriptor(i,n);return o.get?o.get.call(arguments.length<3?t:r):o.value}},ic.apply(this,arguments)}var Sx=function(){function e(){np(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return rp(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(u){Promise.resolve().then(function(){throw u})}s.options&&s.options.once&&this.removeEventListener(n.type,s.callback)}return!n.defaultPrevented}}}]),e}(),op=function(e){gM(n,e);var t=yM(n);function n(){var r;return np(this,n),r=t.call(this),r.listeners||Sx.call(ml(r)),Object.defineProperty(ml(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(ml(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(ml(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return rp(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)),ic(aa(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(Sx),Cx=function(){function e(){np(this,e),Object.defineProperty(this,"signal",{value:new op,writable:!0,configurable:!0})}return rp(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&&(Cx.prototype[Symbol.toStringTag]="AbortController",op.prototype[Symbol.toStringTag]="AbortSignal");function vM(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 xM(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(!vM({fetch:n,Request:i,AbortController:o,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:s}))return{fetch:n,Request:u};var u=i;(u&&!u.prototype.hasOwnProperty("signal")||s)&&(u=function(h,d){var p;d&&d.signal&&(p=d.signal,delete d.signal);var b=new i(h,d);return p&&Object.defineProperty(b,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),b},u.prototype=i.prototype);var l=n,f=function(h,d){var p=u&&u.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(p){var b;try{b=new DOMException("Aborted","AbortError")}catch{b=new Error("Aborted"),b.name="AbortError"}if(p.aborted)return Promise.reject(b);var y=new Promise(function(w,_){p.addEventListener("abort",function(){return _(b)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([y,l(h,d)])}return l(h,d)};return{fetch:f,Request:u}}gl.AbortController=Cx,gl.AbortSignal=op,gl.abortableFetch=xM,Object.defineProperty(ao,"__esModule",{value:!0}),ao.AbortSignal=ao.AbortController=void 0;const kx=gl;var oc=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 AM=typeof oc().AbortController>"u"?kx.AbortController:oc().AbortController;ao.AbortController=AM;let EM=typeof oc().AbortController>"u"?kx.AbortSignal:oc().AbortSignal;ao.AbortSignal=EM;var ap={};Object.defineProperty(ap,"__esModule",{value:!0});const _M=ao;class SM{}class CM{constructor(){this.signals=new Set,this.abortController=new _M.AbortController}addSignal(t=new SM){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()}}ap.default=CM;var sp={};Object.defineProperty(sp,"__esModule",{value:!0});class kM{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)})}}sp.default=kM;var Tx=Mf&&Mf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(tp,"__esModule",{value:!0});const TM=ao,IM=Tx(ap),BM=Tx(sp);class ac{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 IM.default,a=new BM.default;a.addCallback(i);const s={aborter:o,promise:this.fillCallback(n,o.signal,u=>{a.callback(u)}),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(u=>{throw console.error(u),u}),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 TM.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),ac.checkSinglePromise(o.promise,r)):(this.fill(t,n,r,i),ac.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}}tp.default=ac;var DM=Mf&&Mf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ex,"__esModule",{value:!0});const FM=DM(tp);var sc=Ex.default=FM.default;class RM{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 MM=RM;const lc=$s(MM);class ei{constructor(t,n){this.ranges=arguments.length===2?[{min:t,max:n}]:0 in t?Object.assign({},t):[t]}min(){return this.ranges[0].min}max(){return this.ranges[this.ranges.length-1].max}contains(t){for(let n=0;n<this.ranges.length;n+=1){const r=this.ranges[n];if(r.min<=t&&r.max>=t)return!0}return!1}isContiguous(){return this.ranges.length>1}getRanges(){return this.ranges.map(t=>new ei(t.min,t.max))}toString(){return this.ranges.map(t=>`[${t.min}-${t.max}]`).join(",")}union(t){const n=this.getRanges().concat(t.getRanges()).sort(this.rangeOrder),r=[];let i=n[0];for(let 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 ei(i.min(),a.max()))}return r.push(i),r.length===1?r[0]:new ei(r)}intersection(t){let n=this,r=t;const i=this.ranges(),o=r.ranges(),a=i.length,s=o.length;let u=0,l=0;const f=[];for(;u<a&&l<s;){n=i[u],r=o[l];const c=Math.max(n.min(),r.min()),h=Math.min(n.max(),r.max());h>=c&&f.push(new ei(c,h)),n.max()>r.max()?l+=1:u+=1}if(f.length===0)throw new Error("found range of length 0");return f.length===1?f[0]:new ei(f)}coverage(){let t=0;const n=this.ranges();for(const r of n)t+=r.max()-r.min()+1;return t}rangeOrder(t,n){let r=t,i=n;return arguments.length<2&&(i=r,r=this),r.min()<i.min()?-1:r.min()>i.min()?1:r.max()<i.max()?-1:i.max()>r.max()?1:0}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const PM=4,Ix=0,Bx=1,LM=2;function sa(e){let t=e.length;for(;--t>=0;)e[t]=0}const NM=0,Dx=1,OM=2,zM=3,UM=258,lp=29,bl=256,yl=bl+1+lp,la=30,up=19,Fx=2*yl+1,so=15,fp=16,GM=7,cp=256,Rx=16,Mx=17,Px=18,hp=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]),uc=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]),HM=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Lx=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),VM=512,fr=new Array((yl+2)*2);sa(fr);const wl=new Array(la*2);sa(wl);const vl=new Array(VM);sa(vl);const xl=new Array(UM-zM+1);sa(xl);const dp=new Array(lp);sa(dp);const fc=new Array(la);sa(fc);function pp(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 Nx,Ox,zx;function gp(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const Ux=e=>e<256?vl[e]:vl[256+(e>>>7)],Al=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},jt=(e,t,n)=>{e.bi_valid>fp-n?(e.bi_buf|=t<<e.bi_valid&65535,Al(e,e.bi_buf),e.bi_buf=t>>fp-e.bi_valid,e.bi_valid+=n-fp):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},qn=(e,t,n)=>{jt(e,n[t*2],n[t*2+1])},Gx=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},jM=e=>{e.bi_valid===16?(Al(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)},qM=(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,u=t.stat_desc.max_length;let l,f,c,h,d,p,b=0;for(h=0;h<=so;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Fx;l++)f=e.heap[l],h=n[n[f*2+1]*2+1]+1,h>u&&(h=u,b++),n[f*2+1]=h,!(f>r)&&(e.bl_count[h]++,d=0,f>=s&&(d=a[f-s]),p=n[f*2],e.opt_len+=p*(h+d),o&&(e.static_len+=p*(i[f*2+1]+d)));if(b!==0){do{for(h=u-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[u]--,b-=2}while(b>0);for(h=u;h!==0;h--)for(f=e.bl_count[h];f!==0;)c=e.heap[--l],!(c>r)&&(n[c*2+1]!==h&&(e.opt_len+=(h-n[c*2+1])*n[c*2],n[c*2+1]=h),f--)}},Hx=(e,t,n)=>{const r=new Array(so+1);let i=0,o,a;for(o=1;o<=so;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]=Gx(r[s]++,s))}},ZM=()=>{let e,t,n,r,i;const o=new Array(so+1);for(n=0,r=0;r<lp-1;r++)for(dp[r]=n,e=0;e<1<<hp[r];e++)xl[n++]=r;for(xl[n-1]=r,i=0,r=0;r<16;r++)for(fc[r]=i,e=0;e<1<<uc[r];e++)vl[i++]=r;for(i>>=7;r<la;r++)for(fc[r]=i<<7,e=0;e<1<<uc[r]-7;e++)vl[256+i++]=r;for(t=0;t<=so;t++)o[t]=0;for(e=0;e<=143;)fr[e*2+1]=8,e++,o[8]++;for(;e<=255;)fr[e*2+1]=9,e++,o[9]++;for(;e<=279;)fr[e*2+1]=7,e++,o[7]++;for(;e<=287;)fr[e*2+1]=8,e++,o[8]++;for(Hx(fr,yl+1,o),e=0;e<la;e++)wl[e*2+1]=5,wl[e*2]=Gx(e,5);Nx=new pp(fr,hp,bl+1,yl,so),Ox=new pp(wl,uc,0,la,so),zx=new pp(new Array(0),HM,0,up,GM)},Vx=e=>{let t;for(t=0;t<yl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<la;t++)e.dyn_dtree[t*2]=0;for(t=0;t<up;t++)e.bl_tree[t*2]=0;e.dyn_ltree[cp*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},jx=e=>{e.bi_valid>8?Al(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},qx=(e,t,n,r)=>{const i=t*2,o=n*2;return e[i]<e[o]||e[i]===e[o]&&r[t]<=r[n]},mp=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&qx(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!qx(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},Zx=(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?qn(e,i,t):(a=xl[i],qn(e,a+bl+1,t),s=hp[a],s!==0&&(i-=dp[a],jt(e,i,s)),r--,a=Ux(r),qn(e,a,n),s=uc[a],s!==0&&(r-=fc[a],jt(e,r,s)));while(o<e.sym_next);qn(e,cp,t)},bp=(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,u=-1,l;for(e.heap_len=0,e.heap_max=Fx,a=0;a<o;a++)n[a*2]!==0?(e.heap[++e.heap_len]=u=a,e.depth[a]=0):n[a*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=u,a=e.heap_len>>1;a>=1;a--)mp(e,n,a);l=o;do a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],mp(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,n[l*2]=n[a*2]+n[s*2],e.depth[l]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,n[a*2+1]=n[s*2+1]=l,e.heap[1]=l++,mp(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],qM(e,t),Hx(n,u,e.bl_count)},Wx=(e,t,n)=>{let r,i=-1,o,a=t[0*2+1],s=0,u=7,l=4;for(a===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)o=a,a=t[(r+1)*2+1],!(++s<u&&o===a)&&(s<l?e.bl_tree[o*2]+=s:o!==0?(o!==i&&e.bl_tree[o*2]++,e.bl_tree[Rx*2]++):s<=10?e.bl_tree[Mx*2]++:e.bl_tree[Px*2]++,s=0,i=o,a===0?(u=138,l=3):o===a?(u=6,l=3):(u=7,l=4))},Yx=(e,t,n)=>{let r,i=-1,o,a=t[0*2+1],s=0,u=7,l=4;for(a===0&&(u=138,l=3),r=0;r<=n;r++)if(o=a,a=t[(r+1)*2+1],!(++s<u&&o===a)){if(s<l)do qn(e,o,e.bl_tree);while(--s!==0);else o!==0?(o!==i&&(qn(e,o,e.bl_tree),s--),qn(e,Rx,e.bl_tree),jt(e,s-3,2)):s<=10?(qn(e,Mx,e.bl_tree),jt(e,s-3,3)):(qn(e,Px,e.bl_tree),jt(e,s-11,7));s=0,i=o,a===0?(u=138,l=3):o===a?(u=6,l=3):(u=7,l=4)}},WM=e=>{let t;for(Wx(e,e.dyn_ltree,e.l_desc.max_code),Wx(e,e.dyn_dtree,e.d_desc.max_code),bp(e,e.bl_desc),t=up-1;t>=3&&e.bl_tree[Lx[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},YM=(e,t,n,r)=>{let i;for(jt(e,t-257,5),jt(e,n-1,5),jt(e,r-4,4),i=0;i<r;i++)jt(e,e.bl_tree[Lx[i]*2+1],3);Yx(e,e.dyn_ltree,t-1),Yx(e,e.dyn_dtree,n-1)},QM=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Ix;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Bx;for(n=32;n<bl;n++)if(e.dyn_ltree[n*2]!==0)return Bx;return Ix};let Qx=!1;const XM=e=>{Qx||(ZM(),Qx=!0),e.l_desc=new gp(e.dyn_ltree,Nx),e.d_desc=new gp(e.dyn_dtree,Ox),e.bl_desc=new gp(e.bl_tree,zx),e.bi_buf=0,e.bi_valid=0,Vx(e)},Xx=(e,t,n,r)=>{jt(e,(NM<<1)+(r?1:0),3),jx(e),Al(e,n),Al(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},$M=e=>{jt(e,Dx<<1,3),qn(e,cp,fr),jM(e)},KM=(e,t,n,r)=>{let i,o,a=0;e.level>0?(e.strm.data_type===LM&&(e.strm.data_type=QM(e)),bp(e,e.l_desc),bp(e,e.d_desc),a=WM(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?Xx(e,t,n,r):e.strategy===PM||o===i?(jt(e,(Dx<<1)+(r?1:0),3),Zx(e,fr,wl)):(jt(e,(OM<<1)+(r?1:0),3),YM(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),Zx(e,e.dyn_ltree,e.dyn_dtree)),Vx(e),r&&jx(e)},JM=(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[(xl[n]+bl+1)*2]++,e.dyn_dtree[Ux(t)*2]++),e.sym_next===e.sym_end);var eP=XM,tP=Xx,nP=KM,rP=JM,iP=$M,oP={_tr_init:eP,_tr_stored_block:tP,_tr_flush_block:nP,_tr_tally:rP,_tr_align:iP},El=(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 aP=()=>{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},sP=new Uint32Array(aP());var dt=(e,t,n,r)=>{const i=sP,o=r+n;e^=-1;for(let a=r;a<o;a++)e=e>>>8^i[(e^t[a])&255];return e^-1},ua={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"},_l={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:lP,_tr_stored_block:yp,_tr_flush_block:uP,_tr_tally:ti,_tr_align:fP}=oP,{Z_NO_FLUSH:ni,Z_PARTIAL_FLUSH:cP,Z_FULL_FLUSH:hP,Z_FINISH:un,Z_BLOCK:$x,Z_OK:wt,Z_STREAM_END:Kx,Z_STREAM_ERROR:Zn,Z_DATA_ERROR:dP,Z_BUF_ERROR:wp,Z_DEFAULT_COMPRESSION:pP,Z_FILTERED:gP,Z_HUFFMAN_ONLY:cc,Z_RLE:mP,Z_FIXED:bP,Z_DEFAULT_STRATEGY:yP,Z_UNKNOWN:wP,Z_DEFLATED:hc}=_l,vP=9,xP=15,AP=8,EP=29,vp=256+1+EP,_P=30,SP=19,CP=2*vp+1,kP=15,de=3,ri=258,Wn=ri+de+1,TP=32,fa=42,xp=57,Ap=69,Ep=73,_p=91,Sp=103,lo=113,Sl=666,Bt=1,ca=2,uo=3,ha=4,IP=3,fo=(e,t)=>(e.msg=ua[t],t),Jx=e=>e*2-(e>4?9:0),ii=e=>{let t=e.length;for(;--t>=0;)e[t]=0},BP=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 oi=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const Xt=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))},$t=(e,t)=>{uP(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Xt(e.strm)},xe=(e,t)=>{e.pending_buf[e.pending++]=t},Cl=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},Cp=(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=El(e.adler,t,i,n):e.state.wrap===2&&(e.adler=dt(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},eA=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,o,a=e.prev_length,s=e.nice_match;const u=e.strstart>e.w_size-Wn?e.strstart-(e.w_size-Wn):0,l=e.window,f=e.w_mask,c=e.prev,h=e.strstart+ri;let d=l[r+a-1],p=l[r+a];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(l[i+a]!==p||l[i+a-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(o=ri-(h-r),r=h-ri,o>a){if(e.match_start=t,a=o,o>=s)break;d=l[r+a-1],p=l[r+a]}}while((t=c[t&f])>u&&--n!==0);return a<=e.lookahead?a:e.lookahead},da=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Wn)&&(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),BP(e),r+=t),e.strm.avail_in===0)break;if(n=Cp(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=de)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=oi(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=oi(e,e.ins_h,e.window[i+de-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<de)););}while(e.lookahead<Wn&&e.strm.avail_in!==0)},tA=(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!==un||t===ni||r!==i+e.strm.avail_in)))break;a=t===un&&r===i+e.strm.avail_in?1:0,yp(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,Xt(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&&(Cp(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?ha:t!==ni&&t!==un&&e.strm.avail_in===0&&e.strstart===e.block_start?ca:(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&&(Cp(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===un)&&t!==ni&&e.strm.avail_in===0&&i<=o)&&(r=i>o?o:i,a=t===un&&e.strm.avail_in===0&&r===i?1:0,yp(e,e.block_start,r,a),e.block_start+=r,Xt(e.strm)),a?uo:Bt)},kp=(e,t)=>{let n,r;for(;;){if(e.lookahead<Wn){if(da(e),e.lookahead<Wn&&t===ni)return Bt;if(e.lookahead===0)break}if(n=0,e.lookahead>=de&&(e.ins_h=oi(e,e.ins_h,e.window[e.strstart+de-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-Wn&&(e.match_length=eA(e,n)),e.match_length>=de)if(r=ti(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=oi(e,e.ins_h,e.window[e.strstart+de-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=oi(e,e.ins_h,e.window[e.strstart+1]);else r=ti(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&($t(e,!1),e.strm.avail_out===0))return Bt}return e.insert=e.strstart<de-1?e.strstart:de-1,t===un?($t(e,!0),e.strm.avail_out===0?uo:ha):e.sym_next&&($t(e,!1),e.strm.avail_out===0)?Bt:ca},pa=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<Wn){if(da(e),e.lookahead<Wn&&t===ni)return Bt;if(e.lookahead===0)break}if(n=0,e.lookahead>=de&&(e.ins_h=oi(e,e.ins_h,e.window[e.strstart+de-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=de-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Wn&&(e.match_length=eA(e,n),e.match_length<=5&&(e.strategy===gP||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=ti(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=oi(e,e.ins_h,e.window[e.strstart+de-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=de-1,e.strstart++,r&&($t(e,!1),e.strm.avail_out===0))return Bt}else if(e.match_available){if(r=ti(e,0,e.window[e.strstart-1]),r&&$t(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Bt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=ti(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<de-1?e.strstart:de-1,t===un?($t(e,!0),e.strm.avail_out===0?uo:ha):e.sym_next&&($t(e,!1),e.strm.avail_out===0)?Bt:ca},DP=(e,t)=>{let n,r,i,o;const a=e.window;for(;;){if(e.lookahead<=ri){if(da(e),e.lookahead<=ri&&t===ni)return Bt;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+ri;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=ri-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=de?(n=ti(e,1,e.match_length-de),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=ti(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&($t(e,!1),e.strm.avail_out===0))return Bt}return e.insert=0,t===un?($t(e,!0),e.strm.avail_out===0?uo:ha):e.sym_next&&($t(e,!1),e.strm.avail_out===0)?Bt:ca},FP=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(da(e),e.lookahead===0)){if(t===ni)return Bt;break}if(e.match_length=0,n=ti(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&($t(e,!1),e.strm.avail_out===0))return Bt}return e.insert=0,t===un?($t(e,!0),e.strm.avail_out===0?uo:ha):e.sym_next&&($t(e,!1),e.strm.avail_out===0)?Bt:ca};function Yn(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 kl=[new Yn(0,0,0,0,tA),new Yn(4,4,8,4,kp),new Yn(4,5,16,8,kp),new Yn(4,6,32,32,kp),new Yn(4,4,16,16,pa),new Yn(8,16,32,32,pa),new Yn(8,16,128,128,pa),new Yn(8,32,128,256,pa),new Yn(32,128,258,1024,pa),new Yn(32,258,258,4096,pa)],RP=e=>{e.window_size=2*e.w_size,ii(e.head),e.max_lazy_match=kl[e.level].max_lazy,e.good_match=kl[e.level].good_length,e.nice_match=kl[e.level].nice_length,e.max_chain_length=kl[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 MP(){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=hc,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(CP*2),this.dyn_dtree=new Uint16Array((2*_P+1)*2),this.bl_tree=new Uint16Array((2*SP+1)*2),ii(this.dyn_ltree),ii(this.dyn_dtree),ii(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(kP+1),this.heap=new Uint16Array(2*vp+1),ii(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*vp+1),ii(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 Tl=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==fa&&t.status!==xp&&t.status!==Ap&&t.status!==Ep&&t.status!==_p&&t.status!==Sp&&t.status!==lo&&t.status!==Sl?1:0},nA=e=>{if(Tl(e))return fo(e,Zn);e.total_in=e.total_out=0,e.data_type=wP;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?xp:t.wrap?fa:lo,e.adler=t.wrap===2?0:1,t.last_flush=-2,lP(t),wt},rA=e=>{const t=nA(e);return t===wt&&RP(e.state),t},PP=(e,t)=>Tl(e)||e.state.wrap!==2?Zn:(e.state.gzhead=t,wt),iA=(e,t,n,r,i,o)=>{if(!e)return Zn;let a=1;if(t===pP&&(t=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),i<1||i>vP||n!==hc||r<8||r>15||t<0||t>9||o<0||o>bP||r===8&&a!==1)return fo(e,Zn);r===8&&(r=9);const s=new MP;return e.state=s,s.strm=e,s.status=fa,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 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,rA(e)},LP=(e,t)=>iA(e,t,hc,xP,AP,yP),NP=(e,t)=>{if(Tl(e)||t>$x||t<0)return e?fo(e,Zn):Zn;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===Sl&&t!==un)return fo(e,e.avail_out===0?wp:Zn);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(Xt(e),e.avail_out===0)return n.last_flush=-1,wt}else if(e.avail_in===0&&Jx(t)<=Jx(r)&&t!==un)return fo(e,wp);if(n.status===Sl&&e.avail_in!==0)return fo(e,wp);if(n.status===fa&&n.wrap===0&&(n.status=lo),n.status===fa){let i=hc+(n.w_bits-8<<4)<<8,o=-1;if(n.strategy>=cc||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,i|=o<<6,n.strstart!==0&&(i|=TP),i+=31-i%31,Cl(n,i),n.strstart!==0&&(Cl(n,e.adler>>>16),Cl(n,e.adler&65535)),e.adler=1,n.status=lo,Xt(e),n.pending!==0)return n.last_flush=-1,wt}if(n.status===xp){if(e.adler=0,xe(n,31),xe(n,139),xe(n,8),n.gzhead)xe(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)),xe(n,n.gzhead.time&255),xe(n,n.gzhead.time>>8&255),xe(n,n.gzhead.time>>16&255),xe(n,n.gzhead.time>>24&255),xe(n,n.level===9?2:n.strategy>=cc||n.level<2?4:0),xe(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(xe(n,n.gzhead.extra.length&255),xe(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=dt(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Ap;else if(xe(n,0),xe(n,0),xe(n,0),xe(n,0),xe(n,0),xe(n,n.level===9?2:n.strategy>=cc||n.level<2?4:0),xe(n,IP),n.status=lo,Xt(e),n.pending!==0)return n.last_flush=-1,wt}if(n.status===Ap){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=dt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,Xt(e),n.pending!==0)return n.last_flush=-1,wt;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=dt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Ep}if(n.status===Ep){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=dt(e.adler,n.pending_buf,n.pending-i,i)),Xt(e),n.pending!==0)return n.last_flush=-1,wt;i=0}n.gzindex<n.gzhead.name.length?o=n.gzhead.name.charCodeAt(n.gzindex++)&255:o=0,xe(n,o)}while(o!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=_p}if(n.status===_p){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=dt(e.adler,n.pending_buf,n.pending-i,i)),Xt(e),n.pending!==0)return n.last_flush=-1,wt;i=0}n.gzindex<n.gzhead.comment.length?o=n.gzhead.comment.charCodeAt(n.gzindex++)&255:o=0,xe(n,o)}while(o!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i))}n.status=Sp}if(n.status===Sp){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(Xt(e),n.pending!==0))return n.last_flush=-1,wt;xe(n,e.adler&255),xe(n,e.adler>>8&255),e.adler=0}if(n.status=lo,Xt(e),n.pending!==0)return n.last_flush=-1,wt}if(e.avail_in!==0||n.lookahead!==0||t!==ni&&n.status!==Sl){let i=n.level===0?tA(n,t):n.strategy===cc?FP(n,t):n.strategy===mP?DP(n,t):kl[n.level].func(n,t);if((i===uo||i===ha)&&(n.status=Sl),i===Bt||i===uo)return e.avail_out===0&&(n.last_flush=-1),wt;if(i===ca&&(t===cP?fP(n):t!==$x&&(yp(n,0,0,!1),t===hP&&(ii(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Xt(e),e.avail_out===0))return n.last_flush=-1,wt}return t!==un?wt:n.wrap<=0?Kx:(n.wrap===2?(xe(n,e.adler&255),xe(n,e.adler>>8&255),xe(n,e.adler>>16&255),xe(n,e.adler>>24&255),xe(n,e.total_in&255),xe(n,e.total_in>>8&255),xe(n,e.total_in>>16&255),xe(n,e.total_in>>24&255)):(Cl(n,e.adler>>>16),Cl(n,e.adler&65535)),Xt(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?wt:Kx)},OP=e=>{if(Tl(e))return Zn;const t=e.state.status;return e.state=null,t===lo?fo(e,dP):wt},zP=(e,t)=>{let n=t.length;if(Tl(e))return Zn;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==fa||r.lookahead)return Zn;if(i===1&&(e.adler=El(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(ii(r.head),r.strstart=0,r.block_start=0,r.insert=0);let u=new Uint8Array(r.w_size);u.set(t.subarray(n-r.w_size,n),0),t=u,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,da(r);r.lookahead>=de;){let u=r.strstart,l=r.lookahead-(de-1);do r.ins_h=oi(r,r.ins_h,r.window[u+de-1]),r.prev[u&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=u,u++;while(--l);r.strstart=u,r.lookahead=de-1,da(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=a,e.input=s,e.avail_in=o,r.wrap=i,wt};var UP=LP,GP=iA,HP=rA,VP=nA,jP=PP,qP=NP,ZP=OP,WP=zP,YP="pako deflate (from Nodeca project)",Il={deflateInit:UP,deflateInit2:GP,deflateReset:HP,deflateResetKeep:VP,deflateSetHeader:jP,deflate:qP,deflateEnd:ZP,deflateSetDictionary:WP,deflateInfo:YP};const QP=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var XP=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)QP(n,r)&&(e[r]=n[r])}}return e},$P=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},dc={assign:XP,flattenChunks:$P};let oA=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{oA=!1}const Bl=new Uint8Array(256);for(let e=0;e<256;e++)Bl[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Bl[254]=Bl[254]=1;var KP=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 JP=(e,t)=>{if(t<65534&&e.subarray&&oA)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 eL=(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=Bl[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 JP(o,i)},tL=(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+Bl[e[n]]>t?n:t},Dl={string2buf:KP,buf2string:eL,utf8border:tL};function nL(){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 aA=nL;const sA=Object.prototype.toString,{Z_NO_FLUSH:rL,Z_SYNC_FLUSH:iL,Z_FULL_FLUSH:oL,Z_FINISH:aL,Z_OK:pc,Z_STREAM_END:sL,Z_DEFAULT_COMPRESSION:lL,Z_DEFAULT_STRATEGY:uL,Z_DEFLATED:fL}=_l;function Tp(e){this.options=dc.assign({level:lL,method:fL,chunkSize:16384,windowBits:15,memLevel:8,strategy:uL},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 aA,this.strm.avail_out=0;let n=Il.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==pc)throw new Error(ua[n]);if(t.header&&Il.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=Dl.string2buf(t.dictionary):sA.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=Il.deflateSetDictionary(this.strm,r),n!==pc)throw new Error(ua[n]);this._dict_set=!0}}Tp.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?aL:rL,typeof e=="string"?n.input=Dl.string2buf(e):sA.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===iL||o===oL)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=Il.deflate(n,o),i===sL)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=Il.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===pc;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},Tp.prototype.onData=function(e){this.chunks.push(e)},Tp.prototype.onEnd=function(e){e===pc&&(this.result=dc.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const gc=16209,cL=16191;var hL=function(t,n){let r,i,o,a,s,u,l,f,c,h,d,p,b,y,w,_,C,E,T,B,I,R,M,j;const O=t.state;r=t.next_in,M=t.input,i=r+(t.avail_in-5),o=t.next_out,j=t.output,a=o-(n-t.avail_out),s=o+(t.avail_out-257),u=O.dmax,l=O.wsize,f=O.whave,c=O.wnext,h=O.window,d=O.hold,p=O.bits,b=O.lencode,y=O.distcode,w=(1<<O.lenbits)-1,_=(1<<O.distbits)-1;e:do{p<15&&(d+=M[r++]<<p,p+=8,d+=M[r++]<<p,p+=8),C=b[d&w];t:for(;;){if(E=C>>>24,d>>>=E,p-=E,E=C>>>16&255,E===0)j[o++]=C&65535;else if(E&16){T=C&65535,E&=15,E&&(p<E&&(d+=M[r++]<<p,p+=8),T+=d&(1<<E)-1,d>>>=E,p-=E),p<15&&(d+=M[r++]<<p,p+=8,d+=M[r++]<<p,p+=8),C=y[d&_];n:for(;;){if(E=C>>>24,d>>>=E,p-=E,E=C>>>16&255,E&16){if(B=C&65535,E&=15,p<E&&(d+=M[r++]<<p,p+=8,p<E&&(d+=M[r++]<<p,p+=8)),B+=d&(1<<E)-1,B>u){t.msg="invalid distance too far back",O.mode=gc;break e}if(d>>>=E,p-=E,E=o-a,B>E){if(E=B-E,E>f&&O.sane){t.msg="invalid distance too far back",O.mode=gc;break e}if(I=0,R=h,c===0){if(I+=l-E,E<T){T-=E;do j[o++]=h[I++];while(--E);I=o-B,R=j}}else if(c<E){if(I+=l+c-E,E-=c,E<T){T-=E;do j[o++]=h[I++];while(--E);if(I=0,c<T){E=c,T-=E;do j[o++]=h[I++];while(--E);I=o-B,R=j}}}else if(I+=c-E,E<T){T-=E;do j[o++]=h[I++];while(--E);I=o-B,R=j}for(;T>2;)j[o++]=R[I++],j[o++]=R[I++],j[o++]=R[I++],T-=3;T&&(j[o++]=R[I++],T>1&&(j[o++]=R[I++]))}else{I=o-B;do j[o++]=j[I++],j[o++]=j[I++],j[o++]=j[I++],T-=3;while(T>2);T&&(j[o++]=j[I++],T>1&&(j[o++]=j[I++]))}}else if(E&64){t.msg="invalid distance code",O.mode=gc;break e}else{C=y[(C&65535)+(d&(1<<E)-1)];continue n}break}}else if(E&64)if(E&32){O.mode=cL;break e}else{t.msg="invalid literal/length code",O.mode=gc;break e}else{C=b[(C&65535)+(d&(1<<E)-1)];continue t}break}}while(r<i&&o<s);T=p>>3,r-=T,p-=T<<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 ga=15,lA=852,uA=592,fA=0,Ip=1,cA=2,dL=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]),pL=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]),gL=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]),mL=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 Fl=(e,t,n,r,i,o,a,s)=>{const u=s.bits;let l=0,f=0,c=0,h=0,d=0,p=0,b=0,y=0,w=0,_=0,C,E,T,B,I,R=null,M;const j=new Uint16Array(ga+1),O=new Uint16Array(ga+1);let ie=null,se,ge,Ie;for(l=0;l<=ga;l++)j[l]=0;for(f=0;f<r;f++)j[t[n+f]]++;for(d=u,h=ga;h>=1&&j[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(c=1;c<h&&j[c]===0;c++);for(d<c&&(d=c),y=1,l=1;l<=ga;l++)if(y<<=1,y-=j[l],y<0)return-1;if(y>0&&(e===fA||h!==1))return-1;for(O[1]=0,l=1;l<ga;l++)O[l+1]=O[l]+j[l];for(f=0;f<r;f++)t[n+f]!==0&&(a[O[t[n+f]]++]=f);if(e===fA?(R=ie=a,M=20):e===Ip?(R=dL,ie=pL,M=257):(R=gL,ie=mL,M=0),_=0,f=0,l=c,I=o,p=d,b=0,T=-1,w=1<<d,B=w-1,e===Ip&&w>lA||e===cA&&w>uA)return 1;for(;;){se=l-b,a[f]+1<M?(ge=0,Ie=a[f]):a[f]>=M?(ge=ie[a[f]-M],Ie=R[a[f]-M]):(ge=32+64,Ie=0),C=1<<l-b,E=1<<p,c=E;do E-=C,i[I+(_>>b)+E]=se<<24|ge<<16|Ie|0;while(E!==0);for(C=1<<l-1;_&C;)C>>=1;if(C!==0?(_&=C-1,_+=C):_=0,f++,--j[l]===0){if(l===h)break;l=t[n+a[f]]}if(l>d&&(_&B)!==T){for(b===0&&(b=d),I+=c,p=l-b,y=1<<p;p+b<h&&(y-=j[p+b],!(y<=0));)p++,y<<=1;if(w+=1<<p,e===Ip&&w>lA||e===cA&&w>uA)return 1;T=_&B,i[T]=d<<24|p<<16|I-o|0}}return _!==0&&(i[I+_]=l-b<<24|64<<16|0),s.bits=d,0};const bL=0,hA=1,dA=2,{Z_FINISH:pA,Z_BLOCK:yL,Z_TREES:mc,Z_OK:co,Z_STREAM_END:wL,Z_NEED_DICT:vL,Z_STREAM_ERROR:fn,Z_DATA_ERROR:gA,Z_MEM_ERROR:mA,Z_BUF_ERROR:xL,Z_DEFLATED:bA}=_l,bc=16180,yA=16181,wA=16182,vA=16183,xA=16184,AA=16185,EA=16186,_A=16187,SA=16188,CA=16189,yc=16190,cr=16191,Bp=16192,kA=16193,Dp=16194,TA=16195,IA=16196,BA=16197,DA=16198,wc=16199,vc=16200,FA=16201,RA=16202,MA=16203,PA=16204,LA=16205,Fp=16206,NA=16207,OA=16208,qe=16209,zA=16210,UA=16211,AL=852,EL=592,_L=15,GA=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function SL(){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 ho=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<bc||t.mode>UA?1:0},HA=e=>{if(ho(e))return fn;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=bc,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(AL),t.distcode=t.distdyn=new Int32Array(EL),t.sane=1,t.back=-1,co},VA=e=>{if(ho(e))return fn;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,HA(e)},jA=(e,t)=>{let n;if(ho(e))return fn;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?fn:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,VA(e))},qA=(e,t)=>{if(!e)return fn;const n=new SL;e.state=n,n.strm=e,n.window=null,n.mode=bc;const r=jA(e,t);return r!==co&&(e.state=null),r},CL=e=>qA(e,_L);let ZA=!0,Rp,Mp;const kL=e=>{if(ZA){Rp=new Int32Array(512),Mp=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(Fl(hA,e.lens,0,288,Rp,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Fl(dA,e.lens,0,32,Mp,0,e.work,{bits:5}),ZA=!1}e.lencode=Rp,e.lenbits=9,e.distcode=Mp,e.distbits=5},WA=(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},TL=(e,t)=>{let n,r,i,o,a,s,u,l,f,c,h,d,p,b,y=0,w,_,C,E,T,B,I,R;const M=new Uint8Array(4);let j,O;const ie=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(ho(e)||!e.output||!e.input&&e.avail_in!==0)return fn;n=e.state,n.mode===cr&&(n.mode=Bp),a=e.next_out,i=e.output,u=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,l=n.hold,f=n.bits,c=s,h=u,R=co;e:for(;;)switch(n.mode){case bc:if(n.wrap===0){n.mode=Bp;break}for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(n.wrap&2&&l===35615){n.wbits===0&&(n.wbits=15),n.check=0,M[0]=l&255,M[1]=l>>>8&255,n.check=dt(n.check,M,2,0),l=0,f=0,n.mode=yA;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=qe;break}if((l&15)!==bA){e.msg="unknown compression method",n.mode=qe;break}if(l>>>=4,f-=4,I=(l&15)+8,n.wbits===0&&(n.wbits=I),I>15||I>n.wbits){e.msg="invalid window size",n.mode=qe;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=l&512?CA:cr,l=0,f=0;break;case yA:for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(n.flags=l,(n.flags&255)!==bA){e.msg="unknown compression method",n.mode=qe;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=qe;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=dt(n.check,M,2,0)),l=0,f=0,n.mode=wA;case wA:for(;f<32;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}n.head&&(n.head.time=l),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,M[2]=l>>>16&255,M[3]=l>>>24&255,n.check=dt(n.check,M,4,0)),l=0,f=0,n.mode=vA;case vA:for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=dt(n.check,M,2,0)),l=0,f=0,n.mode=xA;case xA:if(n.flags&1024){for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=dt(n.check,M,2,0)),l=0,f=0}else n.head&&(n.head.extra=null);n.mode=AA;case AA:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(I=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),I)),n.flags&512&&n.wrap&4&&(n.check=dt(n.check,r,d,o)),s-=d,o+=d,n.length-=d),n.length))break e;n.length=0,n.mode=EA;case EA:if(n.flags&2048){if(s===0)break e;d=0;do I=r[o+d++],n.head&&I&&n.length<65536&&(n.head.name+=String.fromCharCode(I));while(I&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=dt(n.check,r,d,o)),s-=d,o+=d,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=_A;case _A:if(n.flags&4096){if(s===0)break e;d=0;do I=r[o+d++],n.head&&I&&n.length<65536&&(n.head.comment+=String.fromCharCode(I));while(I&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=dt(n.check,r,d,o)),s-=d,o+=d,I)break e}else n.head&&(n.head.comment=null);n.mode=SA;case SA:if(n.flags&512){for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(n.wrap&4&&l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=qe;break}l=0,f=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=cr;break;case CA:for(;f<32;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}e.adler=n.check=GA(l),l=0,f=0,n.mode=yc;case yc:if(n.havedict===0)return e.next_out=a,e.avail_out=u,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=f,vL;e.adler=n.check=1,n.mode=cr;case cr:if(t===yL||t===mc)break e;case Bp:if(n.last){l>>>=f&7,f-=f&7,n.mode=Fp;break}for(;f<3;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}switch(n.last=l&1,l>>>=1,f-=1,l&3){case 0:n.mode=kA;break;case 1:if(kL(n),n.mode=wc,t===mc){l>>>=2,f-=2;break e}break;case 2:n.mode=IA;break;case 3:e.msg="invalid block type",n.mode=qe}l>>>=2,f-=2;break;case kA:for(l>>>=f&7,f-=f&7;f<32;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=qe;break}if(n.length=l&65535,l=0,f=0,n.mode=Dp,t===mc)break e;case Dp:n.mode=TA;case TA:if(d=n.length,d){if(d>s&&(d=s),d>u&&(d=u),d===0)break e;i.set(r.subarray(o,o+d),a),s-=d,o+=d,u-=d,a+=d,n.length-=d;break}n.mode=cr;break;case IA:for(;f<14;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(n.nlen=(l&31)+257,l>>>=5,f-=5,n.ndist=(l&31)+1,l>>>=5,f-=5,n.ncode=(l&15)+4,l>>>=4,f-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=qe;break}n.have=0,n.mode=BA;case BA:for(;n.have<n.ncode;){for(;f<3;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}n.lens[ie[n.have++]]=l&7,l>>>=3,f-=3}for(;n.have<19;)n.lens[ie[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,j={bits:n.lenbits},R=Fl(bL,n.lens,0,19,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid code lengths set",n.mode=qe;break}n.have=0,n.mode=DA;case DA:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(C<16)l>>>=w,f-=w,n.lens[n.have++]=C;else{if(C===16){for(O=w+2;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(l>>>=w,f-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=qe;break}I=n.lens[n.have-1],d=3+(l&3),l>>>=2,f-=2}else if(C===17){for(O=w+3;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}l>>>=w,f-=w,I=0,d=3+(l&7),l>>>=3,f-=3}else{for(O=w+7;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}l>>>=w,f-=w,I=0,d=11+(l&127),l>>>=7,f-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=qe;break}for(;d--;)n.lens[n.have++]=I}}if(n.mode===qe)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=qe;break}if(n.lenbits=9,j={bits:n.lenbits},R=Fl(hA,n.lens,0,n.nlen,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid literal/lengths set",n.mode=qe;break}if(n.distbits=6,n.distcode=n.distdyn,j={bits:n.distbits},R=Fl(dA,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,j),n.distbits=j.bits,R){e.msg="invalid distances set",n.mode=qe;break}if(n.mode=wc,t===mc)break e;case wc:n.mode=vc;case vc:if(s>=6&&u>=258){e.next_out=a,e.avail_out=u,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=f,hL(e,h),a=e.next_out,i=e.output,u=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,l=n.hold,f=n.bits,n.mode===cr&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(_&&!(_&240)){for(E=w,T=_,B=C;y=n.lencode[B+((l&(1<<E+T)-1)>>E)],w=y>>>24,_=y>>>16&255,C=y&65535,!(E+w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}l>>>=E,f-=E,n.back+=E}if(l>>>=w,f-=w,n.back+=w,n.length=C,_===0){n.mode=LA;break}if(_&32){n.back=-1,n.mode=cr;break}if(_&64){e.msg="invalid literal/length code",n.mode=qe;break}n.extra=_&15,n.mode=FA;case FA:if(n.extra){for(O=n.extra;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,f-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=RA;case RA:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(!(_&240)){for(E=w,T=_,B=C;y=n.distcode[B+((l&(1<<E+T)-1)>>E)],w=y>>>24,_=y>>>16&255,C=y&65535,!(E+w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}l>>>=E,f-=E,n.back+=E}if(l>>>=w,f-=w,n.back+=w,_&64){e.msg="invalid distance code",n.mode=qe;break}n.offset=C,n.extra=_&15,n.mode=MA;case MA:if(n.extra){for(O=n.extra;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,f-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=qe;break}n.mode=PA;case PA:if(u===0)break e;if(d=h-u,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=qe;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),b=n.window}else b=i,p=a-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[a++]=b[p++];while(--d);n.length===0&&(n.mode=vc);break;case LA:if(u===0)break e;i[a++]=n.length,u--,n.mode=vc;break;case Fp:if(n.wrap){for(;f<32;){if(s===0)break e;s--,l|=r[o++]<<f,f+=8}if(h-=u,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?dt(n.check,i,h,a-h):El(n.check,i,h,a-h)),h=u,n.wrap&4&&(n.flags?l:GA(l))!==n.check){e.msg="incorrect data check",n.mode=qe;break}l=0,f=0}n.mode=NA;case NA:if(n.wrap&&n.flags){for(;f<32;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(n.wrap&4&&l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=qe;break}l=0,f=0}n.mode=OA;case OA:R=wL;break e;case qe:R=gA;break e;case zA:return mA;case UA:default:return fn}return e.next_out=a,e.avail_out=u,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=f,(n.wsize||h!==e.avail_out&&n.mode<qe&&(n.mode<Fp||t!==pA))&&WA(e,e.output,e.next_out,h-e.avail_out),c-=e.avail_in,h-=e.avail_out,e.total_in+=c,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?dt(n.check,i,h,e.next_out-h):El(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===cr?128:0)+(n.mode===wc||n.mode===Dp?256:0),(c===0&&h===0||t===pA)&&R===co&&(R=xL),R},IL=e=>{if(ho(e))return fn;let t=e.state;return t.window&&(t.window=null),e.state=null,co},BL=(e,t)=>{if(ho(e))return fn;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,co):fn},DL=(e,t)=>{const n=t.length;let r,i,o;return ho(e)||(r=e.state,r.wrap!==0&&r.mode!==yc)?fn:r.mode===yc&&(i=1,i=El(i,t,n,0),i!==r.check)?gA:(o=WA(e,t,n,n),o?(r.mode=zA,mA):(r.havedict=1,co))};var FL=VA,RL=jA,ML=HA,PL=CL,LL=qA,NL=TL,OL=IL,zL=BL,UL=DL,GL="pako inflate (from Nodeca project)",hr={inflateReset:FL,inflateReset2:RL,inflateResetKeep:ML,inflateInit:PL,inflateInit2:LL,inflate:NL,inflateEnd:OL,inflateGetHeader:zL,inflateSetDictionary:UL,inflateInfo:GL};function HL(){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 VL=HL;const YA=Object.prototype.toString,{Z_NO_FLUSH:jL,Z_FINISH:qL,Z_OK:Rl,Z_STREAM_END:Pp,Z_NEED_DICT:Lp,Z_STREAM_ERROR:ZL,Z_DATA_ERROR:QA,Z_MEM_ERROR:WL}=_l;function Ml(e){this.options=dc.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 aA,this.strm.avail_out=0;let n=hr.inflateInit2(this.strm,t.windowBits);if(n!==Rl)throw new Error(ua[n]);if(this.header=new VL,hr.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Dl.string2buf(t.dictionary):YA.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=hr.inflateSetDictionary(this.strm,t.dictionary),n!==Rl)))throw new Error(ua[n])}Ml.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?qL:jL,YA.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=hr.inflate(n,a),o===Lp&&i&&(o=hr.inflateSetDictionary(n,i),o===Rl?o=hr.inflate(n,a):o===QA&&(o=Lp));n.avail_in>0&&o===Pp&&n.state.wrap>0&&e[n.next_in]!==0;)hr.inflateReset(n),o=hr.inflate(n,a);switch(o){case ZL:case QA:case Lp:case WL:return this.onEnd(o),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||o===Pp))if(this.options.to==="string"){let u=Dl.utf8border(n.output,n.next_out),l=n.next_out-u,f=Dl.buf2string(n.output,u);n.next_out=l,n.avail_out=r-l,l&&n.output.set(n.output.subarray(u,u+l),0),this.onData(f)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(o===Rl&&s===0)){if(o===Pp)return o=hr.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},Ml.prototype.onData=function(e){this.chunks.push(e)},Ml.prototype.onEnd=function(e){e===Rl&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=dc.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Np(e,t){const n=new Ml(t);if(n.push(e),n.err)throw n.msg||ua[n.err];return n.result}function YL(e,t){return t=t||{},t.raw=!0,Np(e,t)}var QL=Ml,XL=Np,$L=YL,KL=Np,JL=_l,eN={Inflate:QL,inflate:XL,inflateRaw:$L,ungzip:KL,constants:JL};const{Inflate:Wz,inflate:Yz,inflateRaw:tN,ungzip:Qz}=eN;var nN=tN;function rN(e){return nN(e.subarray(2))}let iN=class extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}};function oN(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 xc(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new iN("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const aN=1,sN=2,lN=3;function Op(e,t,n,r){return e<r&&t>=n}function uN(e){const t=e?"big":"little",n=new Te().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new Te().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new Te().endianess(t).array("blocksToFetch",{length:"cnt",type:new Te().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new Te().array("recurOffsets",{length:"cnt",type:new Te().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new Te().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new Te().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[lN]:new Te().array("items",{length:"itemCount",type:new Te().floatle("score")}),[sN]:new Te().array("items",{length:"itemCount",type:new Te().endianess(t).int32("start").floatle("score")}),[aN]:new Te().array("items",{length:"itemCount",type:new Te().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class XA{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 sc({cache:new lc({maxSize:1e3}),fill:async(u,l)=>{const f=Number(u.length),c=Number(u.offset),{buffer:h}=await this.bbi.read(pe.Buffer.alloc(f),0,f,c,{signal:l});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const s=uN(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(t,n,r,i,o){try{const{refsByName:a,bbi:s,cirTreeOffset:u,isBigEndian:l}=this,f=a[t];f===void 0&&i.complete();const c={chrId:f,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=s.read(pe.Buffer.alloc(48),0,48,Number(u),o));const{buffer:h}=await this.cirTreePromise,d=l?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],b=0;const y=(E,T,B)=>{try{const I=E.subarray(T),R=this.leafParser.parse(I);if(R.blocksToFetch&&(p=p.concat(R.blocksToFetch.filter(M=>w(M)).map(M=>({offset:M.blockOffset,length:M.blockSize})))),R.recurOffsets){const M=R.recurOffsets.filter(j=>w(j)).map(j=>Number(j.blockOffset));M.length>0&&C(M,B+1)}}catch(I){i.error(I)}},w=E=>{const{startChrom:T,startBase:B,endChrom:I,endBase:R}=E;return(T<f||T===f&&B<=r)&&(I>f||I===f&&R>=n)},_=async(E,T,B)=>{try{const I=T.max()-T.min(),R=T.min(),M=await this.featureCache.get(`${I}_${R}`,{length:I,offset:R},o==null?void 0:o.signal);for(const j of E)T.contains(j)&&(y(M,j-R,B),b-=1,b===0&&this.readFeatures(i,p,{...o,request:c}))}catch(I){i.error(I)}},C=(E,T)=>{try{b+=E.length;const B=4+Number(d)*32;let I=new ei(E[0],E[0]+B);for(let R=1;R<E.length;R+=1){const M=new ei(E[R],E[R]+B);I=I.union(M)}I.getRanges().map(R=>_(E,R,T))}catch(B){i.error(B)}};return C([Number(u)+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 u=a.getUint32(o,!0);o+=4;const l=a.getUint32(o,!0);o+=4;const f=a.getUint32(o,!0);o+=4;const c=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&&Op(u,l,r.start,r.end))&&i.push({start:u,end:l,maxScore:h,minScore:c,summary:!0,score:d/(f||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));o.push({...s,uniqueId:`bb-${r+a}`}),a+=s.offset}return i?o.filter(s=>Op(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 u=o.getUint32(a,!0);a+=4;const l=o.getUint32(a,!0);a+=4;const f=o.getUint8(a);a+=2;const c=o.getUint16(a,!0);a+=2;const h=new Array(c);switch(f){case 1:{for(let d=0;d<c;d++){const p=o.getInt32(a,!0);a+=4;const b=o.getInt32(a,!0);a+=4;const y=o.getFloat32(a,!0);a+=4,h[d]={start:p,end:b,score:y}}break}case 2:{for(let d=0;d<c;d++){const p=o.getInt32(a,!0);a+=4;const b=o.getFloat32(a,!0);a+=4,h[d]={score:b,start:p,end:p+l}}break}case 3:{for(let d=0;d<c;d++){const p=o.getFloat32(a,!0);a+=4;const b=s+d*u;h[d]={score:p,start:b,end:b+l}}break}}return r?h.filter(d=>Op(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,u=oN(n);xc(a),await Promise.all(u.map(async l=>{xc(a);const{length:f,offset:c}=l,h=await this.featureCache.get(`${f}_${c}`,l,a);for(const d of l.blocks){xc(a);let p=Number(d.offset)-Number(l.offset),b=h;switch(o&&(b=rN(h.subarray(p)),p=0),xc(a),i){case"summary":{t.next(this.parseSummaryBlock(b,p,s));break}case"bigwig":{t.next(this.parseBigWigBlock(b,p,s));break}case"bigbed":{t.next(this.parseBigBedBlock(b,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 zp=function(e,t){return zp=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])},zp(e,t)};function Up(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");zp(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function fN(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(f){try{l(r.next(f))}catch(c){a(c)}}function u(f){try{l(r.throw(f))}catch(c){a(c)}}function l(f){f.done?o(f.value):i(f.value).then(s,u)}l((r=r.apply(e,t||[])).next())})}function $A(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(l){return function(f){return u([l,f])}}function u(l){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(n=0)),n;)try{if(r=1,i&&(o=l[0]&2?i.return:l[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,l[1])).done)return o;switch(i=0,o&&(l=[l[0]&2,o.value]),l[0]){case 0:case 1:o=l;break;case 4:return n.label++,{value:l[1],done:!1};case 5:n.label++,i=l[1],l=[0];continue;case 7:l=n.ops.pop(),n.trys.pop();continue;default:if(o=n.trys,!(o=o.length>0&&o[o.length-1])&&(l[0]===6||l[0]===2)){n=0;continue}if(l[0]===3&&(!o||l[1]>o[0]&&l[1]<o[3])){n.label=l[1];break}if(l[0]===6&&n.label<o[1]){n.label=o[1],o=l;break}if(o&&n.label<o[2]){n.label=o[2],n.ops.push(l);break}o[2]&&n.ops.pop(),n.trys.pop();continue}l=t.call(e,n)}catch(f){l=[6,f],i=0}finally{r=o=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function Pl(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 Gp(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 Hp(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 ma(e){return this instanceof ma?(this.v=e,this):new ma(e)}function cN(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,b){o.push([h,d,p,b])>1||s(h,d)})})}function s(h,d){try{u(r[h](d))}catch(p){c(o[0][3],p)}}function u(h){h.value instanceof ma?Promise.resolve(h.value.v).then(l,f):c(o[0][2],h)}function l(h){s("next",h)}function f(h){s("throw",h)}function c(h,d){h(d),o.shift(),o.length&&s(o[0][0],o[0][1])}}function hN(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 Pl=="function"?Pl(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,u){a=e[o](a),i(s,u,a.done,a.value)})}}function i(o,a,s,u){Promise.resolve(u).then(function(l){o({value:l,done:s})},a)}}typeof SuppressedError=="function"&&SuppressedError;function at(e){return typeof e=="function"}function KA(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 Vp=KA(function(e){return function(n){e(this),this.message=n?n.length+` errors occurred during unsubscription:
324
+ */(function(e){const t=Of,n=T0,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=s,e.SlowBuffer=_,e.INSPECT_MAX_BYTES=50;const i=2147483647;e.kMaxLength=i,s.TYPED_ARRAY_SUPPORT=a(),!s.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function a(){try{const v=new Uint8Array(1),g={foo:function(){return 42}};return Object.setPrototypeOf(g,Uint8Array.prototype),Object.setPrototypeOf(v,g),v.foo()===42}catch{return!1}}Object.defineProperty(s.prototype,"parent",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,"offset",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}});function o(v){if(v>i)throw new RangeError('The value "'+v+'" is invalid for option "size"');const g=new Uint8Array(v);return Object.setPrototypeOf(g,s.prototype),g}function s(v,g,b){if(typeof v=="number"){if(typeof g=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return c(v)}return u(v,g,b)}s.poolSize=8192;function u(v,g,b){if(typeof v=="string")return h(v,g);if(ArrayBuffer.isView(v))return p(v);if(v==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof v);if(St(v,ArrayBuffer)||v&&St(v.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(St(v,SharedArrayBuffer)||v&&St(v.buffer,SharedArrayBuffer)))return m(v,g,b);if(typeof v=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const T=v.valueOf&&v.valueOf();if(T!=null&&T!==v)return s.from(T,g,b);const F=y(v);if(F)return F;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof v[Symbol.toPrimitive]=="function")return s.from(v[Symbol.toPrimitive]("string"),g,b);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof v)}s.from=function(v,g,b){return u(v,g,b)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function l(v){if(typeof v!="number")throw new TypeError('"size" argument must be of type number');if(v<0)throw new RangeError('The value "'+v+'" is invalid for option "size"')}function f(v,g,b){return l(v),v<=0?o(v):g!==void 0?typeof b=="string"?o(v).fill(g,b):o(v).fill(g):o(v)}s.alloc=function(v,g,b){return f(v,g,b)};function c(v){return l(v),o(v<0?0:w(v)|0)}s.allocUnsafe=function(v){return c(v)},s.allocUnsafeSlow=function(v){return c(v)};function h(v,g){if((typeof g!="string"||g==="")&&(g="utf8"),!s.isEncoding(g))throw new TypeError("Unknown encoding: "+g);const b=C(v,g)|0;let T=o(b);const F=T.write(v,g);return F!==b&&(T=T.slice(0,F)),T}function d(v){const g=v.length<0?0:w(v.length)|0,b=o(g);for(let T=0;T<g;T+=1)b[T]=v[T]&255;return b}function p(v){if(St(v,Uint8Array)){const g=new Uint8Array(v);return m(g.buffer,g.byteOffset,g.byteLength)}return d(v)}function m(v,g,b){if(g<0||v.byteLength<g)throw new RangeError('"offset" is outside of buffer bounds');if(v.byteLength<g+(b||0))throw new RangeError('"length" is outside of buffer bounds');let T;return g===void 0&&b===void 0?T=new Uint8Array(v):b===void 0?T=new Uint8Array(v,g):T=new Uint8Array(v,g,b),Object.setPrototypeOf(T,s.prototype),T}function y(v){if(s.isBuffer(v)){const g=w(v.length)|0,b=o(g);return b.length===0||v.copy(b,0,0,g),b}if(v.length!==void 0)return typeof v.length!="number"||wr(v.length)?o(0):d(v);if(v.type==="Buffer"&&Array.isArray(v.data))return d(v.data)}function w(v){if(v>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return v|0}function _(v){return+v!=v&&(v=0),s.alloc(+v)}s.isBuffer=function(g){return g!=null&&g._isBuffer===!0&&g!==s.prototype},s.compare=function(g,b){if(St(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),St(b,Uint8Array)&&(b=s.from(b,b.offset,b.byteLength)),!s.isBuffer(g)||!s.isBuffer(b))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(g===b)return 0;let T=g.length,F=b.length;for(let O=0,V=Math.min(T,F);O<V;++O)if(g[O]!==b[O]){T=g[O],F=b[O];break}return T<F?-1:F<T?1:0},s.isEncoding=function(g){switch(String(g).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(g,b){if(!Array.isArray(g))throw new TypeError('"list" argument must be an Array of Buffers');if(g.length===0)return s.alloc(0);let T;if(b===void 0)for(b=0,T=0;T<g.length;++T)b+=g[T].length;const F=s.allocUnsafe(b);let O=0;for(T=0;T<g.length;++T){let V=g[T];if(St(V,Uint8Array))O+V.length>F.length?(s.isBuffer(V)||(V=s.from(V)),V.copy(F,O)):Uint8Array.prototype.set.call(F,V,O);else if(s.isBuffer(V))V.copy(F,O);else throw new TypeError('"list" argument must be an Array of Buffers');O+=V.length}return F};function C(v,g){if(s.isBuffer(v))return v.length;if(ArrayBuffer.isView(v)||St(v,ArrayBuffer))return v.byteLength;if(typeof v!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof v);const b=v.length,T=arguments.length>2&&arguments[2]===!0;if(!T&&b===0)return 0;let F=!1;for(;;)switch(g){case"ascii":case"latin1":case"binary":return b;case"utf8":case"utf-8":return ue(v).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return b*2;case"hex":return b>>>1;case"base64":return ui(v).length;default:if(F)return T?-1:ue(v).length;g=(""+g).toLowerCase(),F=!0}}s.byteLength=C;function E(v,g,b){let T=!1;if((g===void 0||g<0)&&(g=0),g>this.length||((b===void 0||b>this.length)&&(b=this.length),b<=0)||(b>>>=0,g>>>=0,b<=g))return"";for(v||(v="utf8");;)switch(v){case"hex":return Ze(this,g,b);case"utf8":case"utf-8":return ge(this,g,b);case"ascii":return De(this,g,b);case"latin1":case"binary":return Ke(this,g,b);case"base64":return se(this,g,b);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Je(this,g,b);default:if(T)throw new TypeError("Unknown encoding: "+v);v=(v+"").toLowerCase(),T=!0}}s.prototype._isBuffer=!0;function k(v,g,b){const T=v[g];v[g]=v[b],v[b]=T}s.prototype.swap16=function(){const g=this.length;if(g%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let b=0;b<g;b+=2)k(this,b,b+1);return this},s.prototype.swap32=function(){const g=this.length;if(g%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let b=0;b<g;b+=4)k(this,b,b+3),k(this,b+1,b+2);return this},s.prototype.swap64=function(){const g=this.length;if(g%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let b=0;b<g;b+=8)k(this,b,b+7),k(this,b+1,b+6),k(this,b+2,b+5),k(this,b+3,b+4);return this},s.prototype.toString=function(){const g=this.length;return g===0?"":arguments.length===0?ge(this,0,g):E.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(g){if(!s.isBuffer(g))throw new TypeError("Argument must be a Buffer");return this===g?!0:s.compare(this,g)===0},s.prototype.inspect=function(){let g="";const b=e.INSPECT_MAX_BYTES;return g=this.toString("hex",0,b).replace(/(.{2})/g,"$1 ").trim(),this.length>b&&(g+=" ... "),"<Buffer "+g+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(g,b,T,F,O){if(St(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),!s.isBuffer(g))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof g);if(b===void 0&&(b=0),T===void 0&&(T=g?g.length:0),F===void 0&&(F=0),O===void 0&&(O=this.length),b<0||T>g.length||F<0||O>this.length)throw new RangeError("out of range index");if(F>=O&&b>=T)return 0;if(F>=O)return-1;if(b>=T)return 1;if(b>>>=0,T>>>=0,F>>>=0,O>>>=0,this===g)return 0;let V=O-F,fe=T-b;const Ge=Math.min(V,fe),Me=this.slice(F,O),We=g.slice(b,T);for(let Se=0;Se<Ge;++Se)if(Me[Se]!==We[Se]){V=Me[Se],fe=We[Se];break}return V<fe?-1:fe<V?1:0};function B(v,g,b,T,F){if(v.length===0)return-1;if(typeof b=="string"?(T=b,b=0):b>2147483647?b=2147483647:b<-2147483648&&(b=-2147483648),b=+b,wr(b)&&(b=F?0:v.length-1),b<0&&(b=v.length+b),b>=v.length){if(F)return-1;b=v.length-1}else if(b<0)if(F)b=0;else return-1;if(typeof g=="string"&&(g=s.from(g,T)),s.isBuffer(g))return g.length===0?-1:I(v,g,b,T,F);if(typeof g=="number")return g=g&255,typeof Uint8Array.prototype.indexOf=="function"?F?Uint8Array.prototype.indexOf.call(v,g,b):Uint8Array.prototype.lastIndexOf.call(v,g,b):I(v,[g],b,T,F);throw new TypeError("val must be string, number or Buffer")}function I(v,g,b,T,F){let O=1,V=v.length,fe=g.length;if(T!==void 0&&(T=String(T).toLowerCase(),T==="ucs2"||T==="ucs-2"||T==="utf16le"||T==="utf-16le")){if(v.length<2||g.length<2)return-1;O=2,V/=2,fe/=2,b/=2}function Ge(We,Se){return O===1?We[Se]:We.readUInt16BE(Se*O)}let Me;if(F){let We=-1;for(Me=b;Me<V;Me++)if(Ge(v,Me)===Ge(g,We===-1?0:Me-We)){if(We===-1&&(We=Me),Me-We+1===fe)return We*O}else We!==-1&&(Me-=Me-We),We=-1}else for(b+fe>V&&(b=V-fe),Me=b;Me>=0;Me--){let We=!0;for(let Se=0;Se<fe;Se++)if(Ge(v,Me+Se)!==Ge(g,Se)){We=!1;break}if(We)return Me}return-1}s.prototype.includes=function(g,b,T){return this.indexOf(g,b,T)!==-1},s.prototype.indexOf=function(g,b,T){return B(this,g,b,T,!0)},s.prototype.lastIndexOf=function(g,b,T){return B(this,g,b,T,!1)};function R(v,g,b,T){b=Number(b)||0;const F=v.length-b;T?(T=Number(T),T>F&&(T=F)):T=F;const O=g.length;T>O/2&&(T=O/2);let V;for(V=0;V<T;++V){const fe=parseInt(g.substr(V*2,2),16);if(wr(fe))return V;v[b+V]=fe}return V}function L(v,g,b,T){return fi(ue(g,v.length-b),v,b,T)}function j(v,g,b,T){return fi(Zt(g),v,b,T)}function M(v,g,b,T){return fi(ui(g),v,b,T)}function ie(v,g,b,T){return fi(li(g,v.length-b),v,b,T)}s.prototype.write=function(g,b,T,F){if(b===void 0)F="utf8",T=this.length,b=0;else if(T===void 0&&typeof b=="string")F=b,T=this.length,b=0;else if(isFinite(b))b=b>>>0,isFinite(T)?(T=T>>>0,F===void 0&&(F="utf8")):(F=T,T=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const O=this.length-b;if((T===void 0||T>O)&&(T=O),g.length>0&&(T<0||b<0)||b>this.length)throw new RangeError("Attempt to write outside buffer bounds");F||(F="utf8");let V=!1;for(;;)switch(F){case"hex":return R(this,g,b,T);case"utf8":case"utf-8":return L(this,g,b,T);case"ascii":case"latin1":case"binary":return j(this,g,b,T);case"base64":return M(this,g,b,T);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ie(this,g,b,T);default:if(V)throw new TypeError("Unknown encoding: "+F);F=(""+F).toLowerCase(),V=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function se(v,g,b){return g===0&&b===v.length?t.fromByteArray(v):t.fromByteArray(v.slice(g,b))}function ge(v,g,b){b=Math.min(v.length,b);const T=[];let F=g;for(;F<b;){const O=v[F];let V=null,fe=O>239?4:O>223?3:O>191?2:1;if(F+fe<=b){let Ge,Me,We,Se;switch(fe){case 1:O<128&&(V=O);break;case 2:Ge=v[F+1],(Ge&192)===128&&(Se=(O&31)<<6|Ge&63,Se>127&&(V=Se));break;case 3:Ge=v[F+1],Me=v[F+2],(Ge&192)===128&&(Me&192)===128&&(Se=(O&15)<<12|(Ge&63)<<6|Me&63,Se>2047&&(Se<55296||Se>57343)&&(V=Se));break;case 4:Ge=v[F+1],Me=v[F+2],We=v[F+3],(Ge&192)===128&&(Me&192)===128&&(We&192)===128&&(Se=(O&15)<<18|(Ge&63)<<12|(Me&63)<<6|We&63,Se>65535&&Se<1114112&&(V=Se))}}V===null?(V=65533,fe=1):V>65535&&(V-=65536,T.push(V>>>10&1023|55296),V=56320|V&1023),T.push(V),F+=fe}return $e(T)}const Ie=4096;function $e(v){const g=v.length;if(g<=Ie)return String.fromCharCode.apply(String,v);let b="",T=0;for(;T<g;)b+=String.fromCharCode.apply(String,v.slice(T,T+=Ie));return b}function De(v,g,b){let T="";b=Math.min(v.length,b);for(let F=g;F<b;++F)T+=String.fromCharCode(v[F]&127);return T}function Ke(v,g,b){let T="";b=Math.min(v.length,b);for(let F=g;F<b;++F)T+=String.fromCharCode(v[F]);return T}function Ze(v,g,b){const T=v.length;(!g||g<0)&&(g=0),(!b||b<0||b>T)&&(b=T);let F="";for(let O=g;O<b;++O)F+=ci[v[O]];return F}function Je(v,g,b){const T=v.slice(g,b);let F="";for(let O=0;O<T.length-1;O+=2)F+=String.fromCharCode(T[O]+T[O+1]*256);return F}s.prototype.slice=function(g,b){const T=this.length;g=~~g,b=b===void 0?T:~~b,g<0?(g+=T,g<0&&(g=0)):g>T&&(g=T),b<0?(b+=T,b<0&&(b=0)):b>T&&(b=T),b<g&&(b=g);const F=this.subarray(g,b);return Object.setPrototypeOf(F,s.prototype),F};function Ee(v,g,b){if(v%1!==0||v<0)throw new RangeError("offset is not uint");if(v+g>b)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(g,b,T){g=g>>>0,b=b>>>0,T||Ee(g,b,this.length);let F=this[g],O=1,V=0;for(;++V<b&&(O*=256);)F+=this[g+V]*O;return F},s.prototype.readUintBE=s.prototype.readUIntBE=function(g,b,T){g=g>>>0,b=b>>>0,T||Ee(g,b,this.length);let F=this[g+--b],O=1;for(;b>0&&(O*=256);)F+=this[g+--b]*O;return F},s.prototype.readUint8=s.prototype.readUInt8=function(g,b){return g=g>>>0,b||Ee(g,1,this.length),this[g]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(g,b){return g=g>>>0,b||Ee(g,2,this.length),this[g]|this[g+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(g,b){return g=g>>>0,b||Ee(g,2,this.length),this[g]<<8|this[g+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(g,b){return g=g>>>0,b||Ee(g,4,this.length),(this[g]|this[g+1]<<8|this[g+2]<<16)+this[g+3]*16777216},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(g,b){return g=g>>>0,b||Ee(g,4,this.length),this[g]*16777216+(this[g+1]<<16|this[g+2]<<8|this[g+3])},s.prototype.readBigUInt64LE=Wt(function(g){g=g>>>0,G(g,"offset");const b=this[g],T=this[g+7];(b===void 0||T===void 0)&&Z(g,this.length-8);const F=b+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24,O=this[++g]+this[++g]*2**8+this[++g]*2**16+T*2**24;return BigInt(F)+(BigInt(O)<<BigInt(32))}),s.prototype.readBigUInt64BE=Wt(function(g){g=g>>>0,G(g,"offset");const b=this[g],T=this[g+7];(b===void 0||T===void 0)&&Z(g,this.length-8);const F=b*2**24+this[++g]*2**16+this[++g]*2**8+this[++g],O=this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+T;return(BigInt(F)<<BigInt(32))+BigInt(O)}),s.prototype.readIntLE=function(g,b,T){g=g>>>0,b=b>>>0,T||Ee(g,b,this.length);let F=this[g],O=1,V=0;for(;++V<b&&(O*=256);)F+=this[g+V]*O;return O*=128,F>=O&&(F-=Math.pow(2,8*b)),F},s.prototype.readIntBE=function(g,b,T){g=g>>>0,b=b>>>0,T||Ee(g,b,this.length);let F=b,O=1,V=this[g+--F];for(;F>0&&(O*=256);)V+=this[g+--F]*O;return O*=128,V>=O&&(V-=Math.pow(2,8*b)),V},s.prototype.readInt8=function(g,b){return g=g>>>0,b||Ee(g,1,this.length),this[g]&128?(255-this[g]+1)*-1:this[g]},s.prototype.readInt16LE=function(g,b){g=g>>>0,b||Ee(g,2,this.length);const T=this[g]|this[g+1]<<8;return T&32768?T|4294901760:T},s.prototype.readInt16BE=function(g,b){g=g>>>0,b||Ee(g,2,this.length);const T=this[g+1]|this[g]<<8;return T&32768?T|4294901760:T},s.prototype.readInt32LE=function(g,b){return g=g>>>0,b||Ee(g,4,this.length),this[g]|this[g+1]<<8|this[g+2]<<16|this[g+3]<<24},s.prototype.readInt32BE=function(g,b){return g=g>>>0,b||Ee(g,4,this.length),this[g]<<24|this[g+1]<<16|this[g+2]<<8|this[g+3]},s.prototype.readBigInt64LE=Wt(function(g){g=g>>>0,G(g,"offset");const b=this[g],T=this[g+7];(b===void 0||T===void 0)&&Z(g,this.length-8);const F=this[g+4]+this[g+5]*2**8+this[g+6]*2**16+(T<<24);return(BigInt(F)<<BigInt(32))+BigInt(b+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24)}),s.prototype.readBigInt64BE=Wt(function(g){g=g>>>0,G(g,"offset");const b=this[g],T=this[g+7];(b===void 0||T===void 0)&&Z(g,this.length-8);const F=(b<<24)+this[++g]*2**16+this[++g]*2**8+this[++g];return(BigInt(F)<<BigInt(32))+BigInt(this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+T)}),s.prototype.readFloatLE=function(g,b){return g=g>>>0,b||Ee(g,4,this.length),n.read(this,g,!0,23,4)},s.prototype.readFloatBE=function(g,b){return g=g>>>0,b||Ee(g,4,this.length),n.read(this,g,!1,23,4)},s.prototype.readDoubleLE=function(g,b){return g=g>>>0,b||Ee(g,8,this.length),n.read(this,g,!0,52,8)},s.prototype.readDoubleBE=function(g,b){return g=g>>>0,b||Ee(g,8,this.length),n.read(this,g,!1,52,8)};function _e(v,g,b,T,F,O){if(!s.isBuffer(v))throw new TypeError('"buffer" argument must be a Buffer instance');if(g>F||g<O)throw new RangeError('"value" argument is out of bounds');if(b+T>v.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(g,b,T,F){if(g=+g,b=b>>>0,T=T>>>0,!F){const fe=Math.pow(2,8*T)-1;_e(this,g,b,T,fe,0)}let O=1,V=0;for(this[b]=g&255;++V<T&&(O*=256);)this[b+V]=g/O&255;return b+T},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(g,b,T,F){if(g=+g,b=b>>>0,T=T>>>0,!F){const fe=Math.pow(2,8*T)-1;_e(this,g,b,T,fe,0)}let O=T-1,V=1;for(this[b+O]=g&255;--O>=0&&(V*=256);)this[b+O]=g/V&255;return b+T},s.prototype.writeUint8=s.prototype.writeUInt8=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,1,255,0),this[b]=g&255,b+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,2,65535,0),this[b]=g&255,this[b+1]=g>>>8,b+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,2,65535,0),this[b]=g>>>8,this[b+1]=g&255,b+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,4,4294967295,0),this[b+3]=g>>>24,this[b+2]=g>>>16,this[b+1]=g>>>8,this[b]=g&255,b+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,4,4294967295,0),this[b]=g>>>24,this[b+1]=g>>>16,this[b+2]=g>>>8,this[b+3]=g&255,b+4};function pt(v,g,b,T,F){x(g,T,F,v,b,7);let O=Number(g&BigInt(4294967295));v[b++]=O,O=O>>8,v[b++]=O,O=O>>8,v[b++]=O,O=O>>8,v[b++]=O;let V=Number(g>>BigInt(32)&BigInt(4294967295));return v[b++]=V,V=V>>8,v[b++]=V,V=V>>8,v[b++]=V,V=V>>8,v[b++]=V,b}function qt(v,g,b,T,F){x(g,T,F,v,b,7);let O=Number(g&BigInt(4294967295));v[b+7]=O,O=O>>8,v[b+6]=O,O=O>>8,v[b+5]=O,O=O>>8,v[b+4]=O;let V=Number(g>>BigInt(32)&BigInt(4294967295));return v[b+3]=V,V=V>>8,v[b+2]=V,V=V>>8,v[b+1]=V,V=V>>8,v[b]=V,b+8}s.prototype.writeBigUInt64LE=Wt(function(g,b=0){return pt(this,g,b,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=Wt(function(g,b=0){return qt(this,g,b,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(g,b,T,F){if(g=+g,b=b>>>0,!F){const Ge=Math.pow(2,8*T-1);_e(this,g,b,T,Ge-1,-Ge)}let O=0,V=1,fe=0;for(this[b]=g&255;++O<T&&(V*=256);)g<0&&fe===0&&this[b+O-1]!==0&&(fe=1),this[b+O]=(g/V>>0)-fe&255;return b+T},s.prototype.writeIntBE=function(g,b,T,F){if(g=+g,b=b>>>0,!F){const Ge=Math.pow(2,8*T-1);_e(this,g,b,T,Ge-1,-Ge)}let O=T-1,V=1,fe=0;for(this[b+O]=g&255;--O>=0&&(V*=256);)g<0&&fe===0&&this[b+O+1]!==0&&(fe=1),this[b+O]=(g/V>>0)-fe&255;return b+T},s.prototype.writeInt8=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,1,127,-128),g<0&&(g=255+g+1),this[b]=g&255,b+1},s.prototype.writeInt16LE=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,2,32767,-32768),this[b]=g&255,this[b+1]=g>>>8,b+2},s.prototype.writeInt16BE=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,2,32767,-32768),this[b]=g>>>8,this[b+1]=g&255,b+2},s.prototype.writeInt32LE=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,4,2147483647,-2147483648),this[b]=g&255,this[b+1]=g>>>8,this[b+2]=g>>>16,this[b+3]=g>>>24,b+4},s.prototype.writeInt32BE=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,4,2147483647,-2147483648),g<0&&(g=4294967295+g+1),this[b]=g>>>24,this[b+1]=g>>>16,this[b+2]=g>>>8,this[b+3]=g&255,b+4},s.prototype.writeBigInt64LE=Wt(function(g,b=0){return pt(this,g,b,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=Wt(function(g,b=0){return qt(this,g,b,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Oe(v,g,b,T,F,O){if(b+T>v.length)throw new RangeError("Index out of range");if(b<0)throw new RangeError("Index out of range")}function N(v,g,b,T,F){return g=+g,b=b>>>0,F||Oe(v,g,b,4),n.write(v,g,b,T,23,4),b+4}s.prototype.writeFloatLE=function(g,b,T){return N(this,g,b,!0,T)},s.prototype.writeFloatBE=function(g,b,T){return N(this,g,b,!1,T)};function P(v,g,b,T,F){return g=+g,b=b>>>0,F||Oe(v,g,b,8),n.write(v,g,b,T,52,8),b+8}s.prototype.writeDoubleLE=function(g,b,T){return P(this,g,b,!0,T)},s.prototype.writeDoubleBE=function(g,b,T){return P(this,g,b,!1,T)},s.prototype.copy=function(g,b,T,F){if(!s.isBuffer(g))throw new TypeError("argument should be a Buffer");if(T||(T=0),!F&&F!==0&&(F=this.length),b>=g.length&&(b=g.length),b||(b=0),F>0&&F<T&&(F=T),F===T||g.length===0||this.length===0)return 0;if(b<0)throw new RangeError("targetStart out of bounds");if(T<0||T>=this.length)throw new RangeError("Index out of range");if(F<0)throw new RangeError("sourceEnd out of bounds");F>this.length&&(F=this.length),g.length-b<F-T&&(F=g.length-b+T);const O=F-T;return this===g&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(b,T,F):Uint8Array.prototype.set.call(g,this.subarray(T,F),b),O},s.prototype.fill=function(g,b,T,F){if(typeof g=="string"){if(typeof b=="string"?(F=b,b=0,T=this.length):typeof T=="string"&&(F=T,T=this.length),F!==void 0&&typeof F!="string")throw new TypeError("encoding must be a string");if(typeof F=="string"&&!s.isEncoding(F))throw new TypeError("Unknown encoding: "+F);if(g.length===1){const V=g.charCodeAt(0);(F==="utf8"&&V<128||F==="latin1")&&(g=V)}}else typeof g=="number"?g=g&255:typeof g=="boolean"&&(g=Number(g));if(b<0||this.length<b||this.length<T)throw new RangeError("Out of range index");if(T<=b)return this;b=b>>>0,T=T===void 0?this.length:T>>>0,g||(g=0);let O;if(typeof g=="number")for(O=b;O<T;++O)this[O]=g;else{const V=s.isBuffer(g)?g:s.from(g,F),fe=V.length;if(fe===0)throw new TypeError('The value "'+g+'" is invalid for argument "value"');for(O=0;O<T-b;++O)this[O+b]=V[O%fe]}return this};const q={};function H(v,g,b){q[v]=class extends b{constructor(){super(),Object.defineProperty(this,"message",{value:g.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${v}]`,this.stack,delete this.name}get code(){return v}set code(F){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:F,writable:!0})}toString(){return`${this.name} [${v}]: ${this.message}`}}}H("ERR_BUFFER_OUT_OF_BOUNDS",function(v){return v?`${v} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),H("ERR_INVALID_ARG_TYPE",function(v,g){return`The "${v}" argument must be of type number. Received type ${typeof g}`},TypeError),H("ERR_OUT_OF_RANGE",function(v,g,b){let T=`The value of "${v}" is out of range.`,F=b;return Number.isInteger(b)&&Math.abs(b)>2**32?F=Y(String(b)):typeof b=="bigint"&&(F=String(b),(b>BigInt(2)**BigInt(32)||b<-(BigInt(2)**BigInt(32)))&&(F=Y(F)),F+="n"),T+=` It must be ${g}. Received ${F}`,T},RangeError);function Y(v){let g="",b=v.length;const T=v[0]==="-"?1:0;for(;b>=T+4;b-=3)g=`_${v.slice(b-3,b)}${g}`;return`${v.slice(0,b)}${g}`}function S(v,g,b){G(g,"offset"),(v[g]===void 0||v[g+b]===void 0)&&Z(g,v.length-(b+1))}function x(v,g,b,T,F,O){if(v>b||v<g){const V=typeof g=="bigint"?"n":"";let fe;throw O>3?g===0||g===BigInt(0)?fe=`>= 0${V} and < 2${V} ** ${(O+1)*8}${V}`:fe=`>= -(2${V} ** ${(O+1)*8-1}${V}) and < 2 ** ${(O+1)*8-1}${V}`:fe=`>= ${g}${V} and <= ${b}${V}`,new q.ERR_OUT_OF_RANGE("value",fe,v)}S(T,F,O)}function G(v,g){if(typeof v!="number")throw new q.ERR_INVALID_ARG_TYPE(g,"number",v)}function Z(v,g,b){throw Math.floor(v)!==v?(G(v,b),new q.ERR_OUT_OF_RANGE(b||"offset","an integer",v)):g<0?new q.ERR_BUFFER_OUT_OF_BOUNDS:new q.ERR_OUT_OF_RANGE(b||"offset",`>= ${b?1:0} and <= ${g}`,v)}const le=/[^+/0-9A-Za-z-_]/g;function J(v){if(v=v.split("=")[0],v=v.trim().replace(le,""),v.length<2)return"";for(;v.length%4!==0;)v=v+"=";return v}function ue(v,g){g=g||1/0;let b;const T=v.length;let F=null;const O=[];for(let V=0;V<T;++V){if(b=v.charCodeAt(V),b>55295&&b<57344){if(!F){if(b>56319){(g-=3)>-1&&O.push(239,191,189);continue}else if(V+1===T){(g-=3)>-1&&O.push(239,191,189);continue}F=b;continue}if(b<56320){(g-=3)>-1&&O.push(239,191,189),F=b;continue}b=(F-55296<<10|b-56320)+65536}else F&&(g-=3)>-1&&O.push(239,191,189);if(F=null,b<128){if((g-=1)<0)break;O.push(b)}else if(b<2048){if((g-=2)<0)break;O.push(b>>6|192,b&63|128)}else if(b<65536){if((g-=3)<0)break;O.push(b>>12|224,b>>6&63|128,b&63|128)}else if(b<1114112){if((g-=4)<0)break;O.push(b>>18|240,b>>12&63|128,b>>6&63|128,b&63|128)}else throw new Error("Invalid code point")}return O}function Zt(v){const g=[];for(let b=0;b<v.length;++b)g.push(v.charCodeAt(b)&255);return g}function li(v,g){let b,T,F;const O=[];for(let V=0;V<v.length&&!((g-=2)<0);++V)b=v.charCodeAt(V),T=b>>8,F=b%256,O.push(F),O.push(T);return O}function ui(v){return t.toByteArray(J(v))}function fi(v,g,b,T){let F;for(F=0;F<T&&!(F+b>=g.length||F>=v.length);++F)g[F+b]=v[F];return F}function St(v,g){return v instanceof g||v!=null&&v.constructor!=null&&v.constructor.name!=null&&v.constructor.name===g.name}function wr(v){return v!==v}const ci=function(){const v="0123456789abcdef",g=new Array(256);for(let b=0;b<16;++b){const T=b*16;for(let F=0;F<16;++F)g[T+F]=v[b]+v[F]}return g}();function Wt(v){return typeof BigInt>"u"?Kn:v}function Kn(){throw new Error("BigInt not supported")}})(pe);const Pw=ve({__proto__:null,default:Xs(pe)},[pe]),ht={},yR=Object.freeze(Object.defineProperty({__proto__:null,default:ht},Symbol.toStringTag,{value:"Module"})),k0=typeof window<"u"?window:typeof self<"u"?self:{fetch:void 0};class Wi{async getBufferFromResponse(t){if(typeof t.buffer=="function")return t.buffer();if(typeof t.arrayBuffer=="function"){const n=await t.arrayBuffer();return pe.Buffer.from(n)}else throw new TypeError("invalid HTTP response object, has no buffer method, and no arrayBuffer method")}constructor(t,n={}){this.baseOverrides={},this.url=t;const r=n.fetch||k0.fetch&&k0.fetch.bind(k0);if(!r)throw new TypeError("no fetch function supplied, and none found in global environment");n.overrides&&(this.baseOverrides=n.overrides),this.fetchImplementation=r}async fetch(t,n){let r;try{r=await this.fetchImplementation(t,n)}catch(i){if(`${i}`.includes("Failed to fetch"))console.warn(`generic-filehandle: refetching ${t} to attempt to work around chrome CORS header caching bug`),r=await this.fetchImplementation(t,{...n,cache:"reload"});else throw i}return r}async read(t,n=0,r,i=0,a={}){const{headers:o={},signal:s,overrides:u={}}=a;r<1/0?o.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(o.range=`bytes=${i}-`);const l={...this.baseOverrides,...u,headers:{...o,...u.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:s},f=await this.fetch(this.url,l);if(!f.ok)throw new Error(`HTTP ${f.status} ${f.statusText} ${this.url}`);if(f.status===200&&i===0||f.status===206){const c=await this.getBufferFromResponse(f),h=c.copy(t,n,0,Math.min(r,c.length)),d=f.headers.get("content-range"),p=/\/(\d+)$/.exec(d||"");return p&&p[1]&&(this._stat={size:parseInt(p[1],10)}),{bytesRead:h,buffer:t}}throw f.status===200?new Error("${this.url} fetch returned status 200, expected 206"):new Error(`HTTP ${f.status} fetching ${this.url}`)}async readFile(t={}){let n,r;typeof t=="string"?(n=t,r={}):(n=t.encoding,r=t,delete r.encoding);const{headers:i={},signal:a,overrides:o={}}=r,s={headers:i,method:"GET",redirect:"follow",mode:"cors",signal:a,...this.baseOverrides,...o},u=await this.fetch(this.url,s);if(!u)throw new Error("generic-filehandle failed to fetch");if(u.status!==200)throw Object.assign(new Error(`HTTP ${u.status} fetching ${this.url}`),{status:u.status});if(n==="utf8")return u.text();if(n)throw new Error(`unsupported encoding: ${n}`);return this.getBufferFromResponse(u)}async stat(){if(!this._stat){const t=pe.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 Lw(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 wR(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 vR{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 a=i,o=a+r,s=await Lw(this.blob.slice(a,o)),u=pe.Buffer.from(s);return{bytesRead:u.copy(t,n),buffer:u}}async readFile(t){let n;if(typeof t=="string"?n=t:n=t&&t.encoding,n==="utf8")return wR(this.blob);if(n)throw new Error(`unsupported encoding: ${n}`);const r=await Lw(this.blob);return pe.Buffer.from(r)}async stat(){return{size:this.size}}async close(){}}function Nw(e,t={}){return new Wi(e,t)}function xR(e,t,n,r={}){if(n!==void 0)return n;if(e!==void 0)return Nw(e,r);if(t!==void 0)return new ht(t,r);throw new Error("no url, path, or filehandle provided, cannot open")}const Ks=Object.freeze(Object.defineProperty({__proto__:null,BlobFile:vR,LocalFile:ht,RemoteFile:Wi,fromUrl:Nw,open:xR},Symbol.toStringTag,{value:"Module"}));var lr={};(function(e){var t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function n(a,o){return Object.prototype.hasOwnProperty.call(a,o)}e.assign=function(a){for(var o=Array.prototype.slice.call(arguments,1);o.length;){var s=o.shift();if(s){if(typeof s!="object")throw new TypeError(s+"must be non-object");for(var u in s)n(s,u)&&(a[u]=s[u])}}return a},e.shrinkBuf=function(a,o){return a.length===o?a:a.subarray?a.subarray(0,o):(a.length=o,a)};var r={arraySet:function(a,o,s,u,l){if(o.subarray&&a.subarray){a.set(o.subarray(s,s+u),l);return}for(var f=0;f<u;f++)a[l+f]=o[s+f]},flattenChunks:function(a){var o,s,u,l,f,c;for(u=0,o=0,s=a.length;o<s;o++)u+=a[o].length;for(c=new Uint8Array(u),l=0,o=0,s=a.length;o<s;o++)f=a[o],c.set(f,l),l+=f.length;return c}},i={arraySet:function(a,o,s,u,l){for(var f=0;f<u;f++)a[l+f]=o[s+f]},flattenChunks:function(a){return[].concat.apply([],a)}};e.setTyped=function(a){a?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,r)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,i))},e.setTyped(t)})(lr);var Js={},Hn={},Ya={},AR=lr,ER=4,Ow=0,zw=1,_R=2;function Qa(e){for(var t=e.length;--t>=0;)e[t]=0}var SR=0,Uw=1,CR=2,TR=3,kR=258,I0=29,el=256,tl=el+1+I0,$a=30,B0=19,Gw=2*tl+1,Yi=15,D0=16,IR=7,F0=256,Hw=16,Vw=17,jw=18,R0=[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],zf=[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],BR=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],qw=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],DR=512,ur=new Array((tl+2)*2);Qa(ur);var nl=new Array($a*2);Qa(nl);var rl=new Array(DR);Qa(rl);var il=new Array(kR-TR+1);Qa(il);var M0=new Array(I0);Qa(M0);var Uf=new Array($a);Qa(Uf);function P0(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 Zw,Ww,Yw;function L0(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Qw(e){return e<256?rl[e]:rl[256+(e>>>7)]}function al(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function Gt(e,t,n){e.bi_valid>D0-n?(e.bi_buf|=t<<e.bi_valid&65535,al(e,e.bi_buf),e.bi_buf=t>>D0-e.bi_valid,e.bi_valid+=n-D0):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function Vn(e,t,n){Gt(e,n[t*2],n[t*2+1])}function $w(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function FR(e){e.bi_valid===16?(al(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 RR(e,t){var n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,u=t.stat_desc.max_length,l,f,c,h,d,p,m=0;for(h=0;h<=Yi;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Gw;l++)f=e.heap[l],h=n[n[f*2+1]*2+1]+1,h>u&&(h=u,m++),n[f*2+1]=h,!(f>r)&&(e.bl_count[h]++,d=0,f>=s&&(d=o[f-s]),p=n[f*2],e.opt_len+=p*(h+d),a&&(e.static_len+=p*(i[f*2+1]+d)));if(m!==0){do{for(h=u-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[u]--,m-=2}while(m>0);for(h=u;h!==0;h--)for(f=e.bl_count[h];f!==0;)c=e.heap[--l],!(c>r)&&(n[c*2+1]!==h&&(e.opt_len+=(h-n[c*2+1])*n[c*2],n[c*2+1]=h),f--)}}function Xw(e,t,n){var r=new Array(Yi+1),i=0,a,o;for(a=1;a<=Yi;a++)r[a]=i=i+n[a-1]<<1;for(o=0;o<=t;o++){var s=e[o*2+1];s!==0&&(e[o*2]=$w(r[s]++,s))}}function MR(){var e,t,n,r,i,a=new Array(Yi+1);for(n=0,r=0;r<I0-1;r++)for(M0[r]=n,e=0;e<1<<R0[r];e++)il[n++]=r;for(il[n-1]=r,i=0,r=0;r<16;r++)for(Uf[r]=i,e=0;e<1<<zf[r];e++)rl[i++]=r;for(i>>=7;r<$a;r++)for(Uf[r]=i<<7,e=0;e<1<<zf[r]-7;e++)rl[256+i++]=r;for(t=0;t<=Yi;t++)a[t]=0;for(e=0;e<=143;)ur[e*2+1]=8,e++,a[8]++;for(;e<=255;)ur[e*2+1]=9,e++,a[9]++;for(;e<=279;)ur[e*2+1]=7,e++,a[7]++;for(;e<=287;)ur[e*2+1]=8,e++,a[8]++;for(Xw(ur,tl+1,a),e=0;e<$a;e++)nl[e*2+1]=5,nl[e*2]=$w(e,5);Zw=new P0(ur,R0,el+1,tl,Yi),Ww=new P0(nl,zf,0,$a,Yi),Yw=new P0(new Array(0),BR,0,B0,IR)}function Kw(e){var t;for(t=0;t<tl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<$a;t++)e.dyn_dtree[t*2]=0;for(t=0;t<B0;t++)e.bl_tree[t*2]=0;e.dyn_ltree[F0*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Jw(e){e.bi_valid>8?al(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 PR(e,t,n,r){Jw(e),r&&(al(e,n),al(e,~n)),AR.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function ev(e,t,n,r){var i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]}function N0(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&ev(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!ev(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function tv(e,t,n){var r,i,a=0,o,s;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+a*2]<<8|e.pending_buf[e.d_buf+a*2+1],i=e.pending_buf[e.l_buf+a],a++,r===0?Vn(e,i,t):(o=il[i],Vn(e,o+el+1,t),s=R0[o],s!==0&&(i-=M0[o],Gt(e,i,s)),r--,o=Qw(r),Vn(e,o,n),s=zf[o],s!==0&&(r-=Uf[o],Gt(e,r,s)));while(a<e.last_lit);Vn(e,F0,t)}function O0(e,t){var n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems,o,s,u=-1,l;for(e.heap_len=0,e.heap_max=Gw,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=u=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=u,o=e.heap_len>>1;o>=1;o--)N0(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],N0(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,N0(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],RR(e,t),Xw(n,u,e.bl_count)}function nv(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[Hw*2]++):s<=10?e.bl_tree[Vw*2]++:e.bl_tree[jw*2]++,s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4))}function rv(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)){if(s<l)do Vn(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Vn(e,a,e.bl_tree),s--),Vn(e,Hw,e.bl_tree),Gt(e,s-3,2)):s<=10?(Vn(e,Vw,e.bl_tree),Gt(e,s-3,3)):(Vn(e,jw,e.bl_tree),Gt(e,s-11,7));s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4)}}function LR(e){var t;for(nv(e,e.dyn_ltree,e.l_desc.max_code),nv(e,e.dyn_dtree,e.d_desc.max_code),O0(e,e.bl_desc),t=B0-1;t>=3&&e.bl_tree[qw[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function NR(e,t,n,r){var i;for(Gt(e,t-257,5),Gt(e,n-1,5),Gt(e,r-4,4),i=0;i<r;i++)Gt(e,e.bl_tree[qw[i]*2+1],3);rv(e,e.dyn_ltree,t-1),rv(e,e.dyn_dtree,n-1)}function OR(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Ow;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return zw;for(n=32;n<el;n++)if(e.dyn_ltree[n*2]!==0)return zw;return Ow}var iv=!1;function zR(e){iv||(MR(),iv=!0),e.l_desc=new L0(e.dyn_ltree,Zw),e.d_desc=new L0(e.dyn_dtree,Ww),e.bl_desc=new L0(e.bl_tree,Yw),e.bi_buf=0,e.bi_valid=0,Kw(e)}function av(e,t,n,r){Gt(e,(SR<<1)+(r?1:0),3),PR(e,t,n,!0)}function UR(e){Gt(e,Uw<<1,3),Vn(e,F0,ur),FR(e)}function GR(e,t,n,r){var i,a,o=0;e.level>0?(e.strm.data_type===_R&&(e.strm.data_type=OR(e)),O0(e,e.l_desc),O0(e,e.d_desc),o=LR(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?av(e,t,n,r):e.strategy===ER||a===i?(Gt(e,(Uw<<1)+(r?1:0),3),tv(e,ur,nl)):(Gt(e,(CR<<1)+(r?1:0),3),NR(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),tv(e,e.dyn_ltree,e.dyn_dtree)),Kw(e),r&&Jw(e)}function HR(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[(il[n]+el+1)*2]++,e.dyn_dtree[Qw(t)*2]++),e.last_lit===e.lit_bufsize-1}Ya._tr_init=zR,Ya._tr_stored_block=av,Ya._tr_flush_block=GR,Ya._tr_tally=HR,Ya._tr_align=UR;function VR(e,t,n,r){for(var i=e&65535|0,a=e>>>16&65535|0,o=0;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0}var ov=VR;function jR(){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 qR=jR();function ZR(e,t,n,r){var i=qR,a=r+n;e^=-1;for(var o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1}var sv=ZR,z0={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"},It=lr,nn=Ya,lv=ov,Zr=sv,WR=z0,Qi=0,YR=1,QR=3,Wr=4,uv=5,jn=0,fv=1,rn=-2,$R=-3,U0=-5,XR=-1,KR=1,Gf=2,JR=3,e7=4,t7=0,n7=2,Hf=8,r7=9,i7=15,a7=8,o7=29,s7=256,G0=s7+1+o7,l7=30,u7=19,f7=2*G0+1,c7=15,he=3,Yr=258,En=Yr+he+1,h7=32,Vf=42,H0=69,jf=73,qf=91,Zf=103,$i=113,ol=666,at=1,sl=2,Xi=3,Xa=4,d7=3;function Qr(e,t){return e.msg=WR[t],t}function cv(e){return(e<<1)-(e>4?9:0)}function $r(e){for(var t=e.length;--t>=0;)e[t]=0}function Xr(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(It.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 yt(e,t){nn._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Xr(e.strm)}function we(e,t){e.pending_buf[e.pending++]=t}function ll(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function p7(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,It.arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=lv(e.adler,t,i,n):e.state.wrap===2&&(e.adler=Zr(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function hv(e,t){var n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match,u=e.strstart>e.w_size-En?e.strstart-(e.w_size-En):0,l=e.window,f=e.w_mask,c=e.prev,h=e.strstart+Yr,d=l[r+o-1],p=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(l[i+o]!==p||l[i+o-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(a=Yr-(h-r),r=h-Yr,a>o){if(e.match_start=t,o=a,a>=s)break;d=l[r+o-1],p=l[r+o]}}while((t=c[t&f])>u&&--n!==0);return o<=e.lookahead?o:e.lookahead}function Ki(e){var t=e.w_size,n,r,i,a,o;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-En)){It.arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,r=e.hash_size,n=r;do i=e.head[--n],e.head[n]=i>=t?i-t:0;while(--r);r=t,n=r;do i=e.prev[--n],e.prev[n]=i>=t?i-t:0;while(--r);a+=t}if(e.strm.avail_in===0)break;if(r=p7(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=r,e.lookahead+e.insert>=he)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+he-1])&e.hash_mask,e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,!(e.lookahead+e.insert<he)););}while(e.lookahead<En&&e.strm.avail_in!==0)}function g7(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Ki(e),e.lookahead===0&&t===Qi)return at;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((e.strstart===0||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,yt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-En&&(yt(e,!1),e.strm.avail_out===0))return at}return e.insert=0,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Xa):(e.strstart>e.block_start&&(yt(e,!1),e.strm.avail_out===0),at)}function V0(e,t){for(var n,r;;){if(e.lookahead<En){if(Ki(e),e.lookahead<En&&t===Qi)return at;if(e.lookahead===0)break}if(n=0,e.lookahead>=he&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-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-En&&(e.match_length=hv(e,n)),e.match_length>=he)if(r=nn._tr_tally(e,e.strstart-e.match_start,e.match_length-he),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=he){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-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=nn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(yt(e,!1),e.strm.avail_out===0))return at}return e.insert=e.strstart<he-1?e.strstart:he-1,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Xa):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?at:sl}function Ka(e,t){for(var n,r,i;;){if(e.lookahead<En){if(Ki(e),e.lookahead<En&&t===Qi)return at;if(e.lookahead===0)break}if(n=0,e.lookahead>=he&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-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=he-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-En&&(e.match_length=hv(e,n),e.match_length<=5&&(e.strategy===KR||e.match_length===he&&e.strstart-e.match_start>4096)&&(e.match_length=he-1)),e.prev_length>=he&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-he,r=nn._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-he),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-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=he-1,e.strstart++,r&&(yt(e,!1),e.strm.avail_out===0))return at}else if(e.match_available){if(r=nn._tr_tally(e,0,e.window[e.strstart-1]),r&&yt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return at}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=nn._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<he-1?e.strstart:he-1,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Xa):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?at:sl}function m7(e,t){for(var n,r,i,a,o=e.window;;){if(e.lookahead<=Yr){if(Ki(e),e.lookahead<=Yr&&t===Qi)return at;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=he&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+Yr;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=Yr-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=he?(n=nn._tr_tally(e,1,e.match_length-he),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=nn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(yt(e,!1),e.strm.avail_out===0))return at}return e.insert=0,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Xa):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?at:sl}function b7(e,t){for(var n;;){if(e.lookahead===0&&(Ki(e),e.lookahead===0)){if(t===Qi)return at;break}if(e.match_length=0,n=nn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(yt(e,!1),e.strm.avail_out===0))return at}return e.insert=0,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Xa):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?at:sl}function qn(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 Ja;Ja=[new qn(0,0,0,0,g7),new qn(4,4,8,4,V0),new qn(4,5,16,8,V0),new qn(4,6,32,32,V0),new qn(4,4,16,16,Ka),new qn(8,16,32,32,Ka),new qn(8,16,128,128,Ka),new qn(8,32,128,256,Ka),new qn(32,128,258,1024,Ka),new qn(32,258,258,4096,Ka)];function y7(e){e.window_size=2*e.w_size,$r(e.head),e.max_lazy_match=Ja[e.level].max_lazy,e.good_match=Ja[e.level].good_length,e.nice_match=Ja[e.level].nice_length,e.max_chain_length=Ja[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=he-1,e.match_available=0,e.ins_h=0}function w7(){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=Hf,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 It.Buf16(f7*2),this.dyn_dtree=new It.Buf16((2*l7+1)*2),this.bl_tree=new It.Buf16((2*u7+1)*2),$r(this.dyn_ltree),$r(this.dyn_dtree),$r(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new It.Buf16(c7+1),this.heap=new It.Buf16(2*G0+1),$r(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new It.Buf16(2*G0+1),$r(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 dv(e){var t;return!e||!e.state?Qr(e,rn):(e.total_in=e.total_out=0,e.data_type=n7,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Vf:$i,e.adler=t.wrap===2?0:1,t.last_flush=Qi,nn._tr_init(t),jn)}function pv(e){var t=dv(e);return t===jn&&y7(e.state),t}function v7(e,t){return!e||!e.state||e.state.wrap!==2?rn:(e.state.gzhead=t,jn)}function gv(e,t,n,r,i,a){if(!e)return rn;var o=1;if(t===XR&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>r7||n!==Hf||r<8||r>15||t<0||t>9||a<0||a>e7)return Qr(e,rn);r===8&&(r=9);var s=new w7;return e.state=s,s.strm=e,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+he-1)/he),s.window=new It.Buf8(s.w_size*2),s.head=new It.Buf16(s.hash_size),s.prev=new It.Buf16(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new It.Buf8(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=(1+2)*s.lit_bufsize,s.level=t,s.strategy=a,s.method=n,pv(e)}function x7(e,t){return gv(e,t,Hf,i7,a7,t7)}function A7(e,t){var n,r,i,a;if(!e||!e.state||t>uv||t<0)return e?Qr(e,rn):rn;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===ol&&t!==Wr)return Qr(e,e.avail_out===0?U0:rn);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===Vf)if(r.wrap===2)e.adler=0,we(r,31),we(r,139),we(r,8),r.gzhead?(we(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)),we(r,r.gzhead.time&255),we(r,r.gzhead.time>>8&255),we(r,r.gzhead.time>>16&255),we(r,r.gzhead.time>>24&255),we(r,r.level===9?2:r.strategy>=Gf||r.level<2?4:0),we(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(we(r,r.gzhead.extra.length&255),we(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=Zr(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=H0):(we(r,0),we(r,0),we(r,0),we(r,0),we(r,0),we(r,r.level===9?2:r.strategy>=Gf||r.level<2?4:0),we(r,d7),r.status=$i);else{var o=Hf+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=Gf||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,o|=s<<6,r.strstart!==0&&(o|=h7),o+=31-o%31,r.status=$i,ll(r,o),r.strstart!==0&&(ll(r,e.adler>>>16),ll(r,e.adler&65535)),e.adler=1}if(r.status===H0)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=Zr(e.adler,r.pending_buf,r.pending-i,i)),Xr(e),i=r.pending,r.pending===r.pending_buf_size));)we(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=jf)}else r.status=jf;if(r.status===jf)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),Xr(e),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.name.length?a=r.gzhead.name.charCodeAt(r.gzindex++)&255:a=0,we(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.gzindex=0,r.status=qf)}else r.status=qf;if(r.status===qf)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),Xr(e),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.comment.length?a=r.gzhead.comment.charCodeAt(r.gzindex++)&255:a=0,we(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.status=Zf)}else r.status=Zf;if(r.status===Zf&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&Xr(e),r.pending+2<=r.pending_buf_size&&(we(r,e.adler&255),we(r,e.adler>>8&255),e.adler=0,r.status=$i)):r.status=$i),r.pending!==0){if(Xr(e),e.avail_out===0)return r.last_flush=-1,jn}else if(e.avail_in===0&&cv(t)<=cv(n)&&t!==Wr)return Qr(e,U0);if(r.status===ol&&e.avail_in!==0)return Qr(e,U0);if(e.avail_in!==0||r.lookahead!==0||t!==Qi&&r.status!==ol){var u=r.strategy===Gf?b7(r,t):r.strategy===JR?m7(r,t):Ja[r.level].func(r,t);if((u===Xi||u===Xa)&&(r.status=ol),u===at||u===Xi)return e.avail_out===0&&(r.last_flush=-1),jn;if(u===sl&&(t===YR?nn._tr_align(r):t!==uv&&(nn._tr_stored_block(r,0,0,!1),t===QR&&($r(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),Xr(e),e.avail_out===0))return r.last_flush=-1,jn}return t!==Wr?jn:r.wrap<=0?fv:(r.wrap===2?(we(r,e.adler&255),we(r,e.adler>>8&255),we(r,e.adler>>16&255),we(r,e.adler>>24&255),we(r,e.total_in&255),we(r,e.total_in>>8&255),we(r,e.total_in>>16&255),we(r,e.total_in>>24&255)):(ll(r,e.adler>>>16),ll(r,e.adler&65535)),Xr(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?jn:fv)}function E7(e){var t;return!e||!e.state?rn:(t=e.state.status,t!==Vf&&t!==H0&&t!==jf&&t!==qf&&t!==Zf&&t!==$i&&t!==ol?Qr(e,rn):(e.state=null,t===$i?Qr(e,$R):jn))}function _7(e,t){var n=t.length,r,i,a,o,s,u,l,f;if(!e||!e.state||(r=e.state,o=r.wrap,o===2||o===1&&r.status!==Vf||r.lookahead))return rn;for(o===1&&(e.adler=lv(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(o===0&&($r(r.head),r.strstart=0,r.block_start=0,r.insert=0),f=new It.Buf8(r.w_size),It.arraySet(f,t,n-r.w_size,r.w_size,0),t=f,n=r.w_size),s=e.avail_in,u=e.next_in,l=e.input,e.avail_in=n,e.next_in=0,e.input=t,Ki(r);r.lookahead>=he;){i=r.strstart,a=r.lookahead-(he-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+he-1])&r.hash_mask,r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++;while(--a);r.strstart=i,r.lookahead=he-1,Ki(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=he-1,r.match_available=0,e.next_in=u,e.input=l,e.avail_in=s,r.wrap=o,jn}Hn.deflateInit=x7,Hn.deflateInit2=gv,Hn.deflateReset=pv,Hn.deflateResetKeep=dv,Hn.deflateSetHeader=v7,Hn.deflate=A7,Hn.deflateEnd=E7,Hn.deflateSetDictionary=_7,Hn.deflateInfo="pako deflate (from Nodeca project)";var Ji={},Wf=lr,mv=!0,bv=!0;try{String.fromCharCode.apply(null,[0])}catch{mv=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{bv=!1}for(var ul=new Wf.Buf8(256),Kr=0;Kr<256;Kr++)ul[Kr]=Kr>=252?6:Kr>=248?5:Kr>=240?4:Kr>=224?3:Kr>=192?2:1;ul[254]=ul[254]=1,Ji.string2buf=function(e){var t,n,r,i,a,o=e.length,s=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Wf.Buf8(s),a=0,i=0;a<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t};function yv(e,t){if(t<65534&&(e.subarray&&bv||!e.subarray&&mv))return String.fromCharCode.apply(null,Wf.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}Ji.buf2binstring=function(e){return yv(e,e.length)},Ji.binstring2buf=function(e){for(var t=new Wf.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},Ji.buf2string=function(e,t){var n,r,i,a,o=t||e.length,s=new Array(o*2);for(r=0,n=0;n<o;){if(i=e[n++],i<128){s[r++]=i;continue}if(a=ul[i],a>4){s[r++]=65533,n+=a-1;continue}for(i&=a===2?31:a===3?15:7;a>1&&n<o;)i=i<<6|e[n++]&63,a--;if(a>1){s[r++]=65533;continue}i<65536?s[r++]=i:(i-=65536,s[r++]=55296|i>>10&1023,s[r++]=56320|i&1023)}return yv(s,r)},Ji.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+ul[e[n]]>t?n:t};function S7(){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 wv=S7,fl=Hn,cl=lr,j0=Ji,q0=z0,C7=wv,vv=Object.prototype.toString,T7=0,Z0=4,eo=0,xv=1,Av=2,k7=-1,I7=0,B7=8;function ea(e){if(!(this instanceof ea))return new ea(e);this.options=cl.assign({level:k7,method:B7,chunkSize:16384,windowBits:15,memLevel:8,strategy:I7,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 C7,this.strm.avail_out=0;var n=fl.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==eo)throw new Error(q0[n]);if(t.header&&fl.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=j0.string2buf(t.dictionary):vv.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=fl.deflateSetDictionary(this.strm,r),n!==eo)throw new Error(q0[n]);this._dict_set=!0}}ea.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i,a;if(this.ended)return!1;a=t===~~t?t:t===!0?Z0:T7,typeof e=="string"?n.input=j0.string2buf(e):vv.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 cl.Buf8(r),n.next_out=0,n.avail_out=r),i=fl.deflate(n,a),i!==xv&&i!==eo)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(a===Z0||a===Av))&&(this.options.to==="string"?this.onData(j0.buf2binstring(cl.shrinkBuf(n.output,n.next_out))):this.onData(cl.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==xv);return a===Z0?(i=fl.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===eo):(a===Av&&(this.onEnd(eo),n.avail_out=0),!0)},ea.prototype.onData=function(e){this.chunks.push(e)},ea.prototype.onEnd=function(e){e===eo&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=cl.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function W0(e,t){var n=new ea(t);if(n.push(e,!0),n.err)throw n.msg||q0[n.err];return n.result}function D7(e,t){return t=t||{},t.raw=!0,W0(e,t)}function F7(e,t){return t=t||{},t.gzip=!0,W0(e,t)}Js.Deflate=ea,Js.deflate=W0,Js.deflateRaw=D7,Js.gzip=F7;var hl={},_n={},Yf=30,R7=12,M7=function(t,n){var r,i,a,o,s,u,l,f,c,h,d,p,m,y,w,_,C,E,k,B,I,R,L,j,M;r=t.state,i=t.next_in,j=t.input,a=i+(t.avail_in-5),o=t.next_out,M=t.output,s=o-(n-t.avail_out),u=o+(t.avail_out-257),l=r.dmax,f=r.wsize,c=r.whave,h=r.wnext,d=r.window,p=r.hold,m=r.bits,y=r.lencode,w=r.distcode,_=(1<<r.lenbits)-1,C=(1<<r.distbits)-1;e:do{m<15&&(p+=j[i++]<<m,m+=8,p+=j[i++]<<m,m+=8),E=y[p&_];t:for(;;){if(k=E>>>24,p>>>=k,m-=k,k=E>>>16&255,k===0)M[o++]=E&65535;else if(k&16){B=E&65535,k&=15,k&&(m<k&&(p+=j[i++]<<m,m+=8),B+=p&(1<<k)-1,p>>>=k,m-=k),m<15&&(p+=j[i++]<<m,m+=8,p+=j[i++]<<m,m+=8),E=w[p&C];n:for(;;){if(k=E>>>24,p>>>=k,m-=k,k=E>>>16&255,k&16){if(I=E&65535,k&=15,m<k&&(p+=j[i++]<<m,m+=8,m<k&&(p+=j[i++]<<m,m+=8)),I+=p&(1<<k)-1,I>l){t.msg="invalid distance too far back",r.mode=Yf;break e}if(p>>>=k,m-=k,k=o-s,I>k){if(k=I-k,k>c&&r.sane){t.msg="invalid distance too far back",r.mode=Yf;break e}if(R=0,L=d,h===0){if(R+=f-k,k<B){B-=k;do M[o++]=d[R++];while(--k);R=o-I,L=M}}else if(h<k){if(R+=f+h-k,k-=h,k<B){B-=k;do M[o++]=d[R++];while(--k);if(R=0,h<B){k=h,B-=k;do M[o++]=d[R++];while(--k);R=o-I,L=M}}}else if(R+=h-k,k<B){B-=k;do M[o++]=d[R++];while(--k);R=o-I,L=M}for(;B>2;)M[o++]=L[R++],M[o++]=L[R++],M[o++]=L[R++],B-=3;B&&(M[o++]=L[R++],B>1&&(M[o++]=L[R++]))}else{R=o-I;do M[o++]=M[R++],M[o++]=M[R++],M[o++]=M[R++],B-=3;while(B>2);B&&(M[o++]=M[R++],B>1&&(M[o++]=M[R++]))}}else if(k&64){t.msg="invalid distance code",r.mode=Yf;break e}else{E=w[(E&65535)+(p&(1<<k)-1)];continue n}break}}else if(k&64)if(k&32){r.mode=R7;break e}else{t.msg="invalid literal/length code",r.mode=Yf;break e}else{E=y[(E&65535)+(p&(1<<k)-1)];continue t}break}}while(i<a&&o<u);B=m>>3,i-=B,m-=B<<3,p&=(1<<m)-1,t.next_in=i,t.next_out=o,t.avail_in=i<a?5+(a-i):5-(i-a),t.avail_out=o<u?257+(u-o):257-(o-u),r.hold=p,r.bits=m},Ev=lr,to=15,_v=852,Sv=592,Cv=0,Y0=1,Tv=2,P7=[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],L7=[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],N7=[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],O7=[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],z7=function(t,n,r,i,a,o,s,u){var l=u.bits,f=0,c=0,h=0,d=0,p=0,m=0,y=0,w=0,_=0,C=0,E,k,B,I,R,L=null,j=0,M,ie=new Ev.Buf16(to+1),se=new Ev.Buf16(to+1),ge=null,Ie=0,$e,De,Ke;for(f=0;f<=to;f++)ie[f]=0;for(c=0;c<i;c++)ie[n[r+c]]++;for(p=l,d=to;d>=1&&ie[d]===0;d--);if(p>d&&(p=d),d===0)return a[o++]=1<<24|64<<16|0,a[o++]=1<<24|64<<16|0,u.bits=1,0;for(h=1;h<d&&ie[h]===0;h++);for(p<h&&(p=h),w=1,f=1;f<=to;f++)if(w<<=1,w-=ie[f],w<0)return-1;if(w>0&&(t===Cv||d!==1))return-1;for(se[1]=0,f=1;f<to;f++)se[f+1]=se[f]+ie[f];for(c=0;c<i;c++)n[r+c]!==0&&(s[se[n[r+c]]++]=c);if(t===Cv?(L=ge=s,M=19):t===Y0?(L=P7,j-=257,ge=L7,Ie-=257,M=256):(L=N7,ge=O7,M=-1),C=0,c=0,f=h,R=o,m=p,y=0,B=-1,_=1<<p,I=_-1,t===Y0&&_>_v||t===Tv&&_>Sv)return 1;for(;;){$e=f-y,s[c]<M?(De=0,Ke=s[c]):s[c]>M?(De=ge[Ie+s[c]],Ke=L[j+s[c]]):(De=32+64,Ke=0),E=1<<f-y,k=1<<m,h=k;do k-=E,a[R+(C>>y)+k]=$e<<24|De<<16|Ke|0;while(k!==0);for(E=1<<f-1;C&E;)E>>=1;if(E!==0?(C&=E-1,C+=E):C=0,c++,--ie[f]===0){if(f===d)break;f=n[r+s[c]]}if(f>p&&(C&I)!==B){for(y===0&&(y=p),R+=h,m=f-y,w=1<<m;m+y<d&&(w-=ie[m+y],!(w<=0));)m++,w<<=1;if(_+=1<<m,t===Y0&&_>_v||t===Tv&&_>Sv)return 1;B=C&I,a[B]=p<<24|m<<16|R-o|0}}return C!==0&&(a[R+C]=f-y<<24|64<<16|0),u.bits=p,0},Qt=lr,Q0=ov,Zn=sv,U7=M7,dl=z7,G7=0,kv=1,Iv=2,Bv=4,H7=5,Qf=6,ta=0,V7=1,j7=2,an=-2,Dv=-3,Fv=-4,q7=-5,Rv=8,Mv=1,Pv=2,Lv=3,Nv=4,Ov=5,zv=6,Uv=7,Gv=8,Hv=9,Vv=10,$f=11,fr=12,$0=13,jv=14,X0=15,qv=16,Zv=17,Wv=18,Yv=19,Xf=20,Kf=21,Qv=22,$v=23,Xv=24,Kv=25,Jv=26,K0=27,ex=28,tx=29,je=30,nx=31,Z7=32,W7=852,Y7=592,Q7=15,$7=Q7;function rx(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function X7(){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 Qt.Buf16(320),this.work=new Qt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function ix(e){var t;return!e||!e.state?an:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Mv,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Qt.Buf32(W7),t.distcode=t.distdyn=new Qt.Buf32(Y7),t.sane=1,t.back=-1,ta)}function ax(e){var t;return!e||!e.state?an:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,ix(e))}function ox(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))?an:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,ax(e))}function sx(e,t){var n,r;return e?(r=new X7,e.state=r,r.window=null,n=ox(e,t),n!==ta&&(e.state=null),n):an}function K7(e){return sx(e,$7)}var lx=!0,J0,ep;function J7(e){if(lx){var t;for(J0=new Qt.Buf32(512),ep=new Qt.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(dl(kv,e.lens,0,288,J0,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;dl(Iv,e.lens,0,32,ep,0,e.work,{bits:5}),lx=!1}e.lencode=J0,e.lenbits=9,e.distcode=ep,e.distbits=5}function ux(e,t,n,r){var i,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Qt.Buf8(a.wsize)),r>=a.wsize?(Qt.arraySet(a.window,t,n-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),Qt.arraySet(a.window,t,n-r,i,a.wnext),r-=i,r?(Qt.arraySet(a.window,t,n-r,r,0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0}function eM(e,t){var n,r,i,a,o,s,u,l,f,c,h,d,p,m,y=0,w,_,C,E,k,B,I,R,L=new Qt.Buf8(4),j,M,ie=[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 an;n=e.state,n.mode===fr&&(n.mode=$0),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,f=n.bits,c=s,h=u,R=ta;e:for(;;)switch(n.mode){case Mv:if(n.wrap===0){n.mode=$0;break}for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.wrap&2&&l===35615){n.check=0,L[0]=l&255,L[1]=l>>>8&255,n.check=Zn(n.check,L,2,0),l=0,f=0,n.mode=Pv;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=je;break}if((l&15)!==Rv){e.msg="unknown compression method",n.mode=je;break}if(l>>>=4,f-=4,I=(l&15)+8,n.wbits===0)n.wbits=I;else if(I>n.wbits){e.msg="invalid window size",n.mode=je;break}n.dmax=1<<I,e.adler=n.check=1,n.mode=l&512?Vv:fr,l=0,f=0;break;case Pv:for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.flags=l,(n.flags&255)!==Rv){e.msg="unknown compression method",n.mode=je;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=je;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&(L[0]=l&255,L[1]=l>>>8&255,n.check=Zn(n.check,L,2,0)),l=0,f=0,n.mode=Lv;case Lv:for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.head&&(n.head.time=l),n.flags&512&&(L[0]=l&255,L[1]=l>>>8&255,L[2]=l>>>16&255,L[3]=l>>>24&255,n.check=Zn(n.check,L,4,0)),l=0,f=0,n.mode=Nv;case Nv:for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&(L[0]=l&255,L[1]=l>>>8&255,n.check=Zn(n.check,L,2,0)),l=0,f=0,n.mode=Ov;case Ov:if(n.flags&1024){for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&(L[0]=l&255,L[1]=l>>>8&255,n.check=Zn(n.check,L,2,0)),l=0,f=0}else n.head&&(n.head.extra=null);n.mode=zv;case zv:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(I=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Qt.arraySet(n.head.extra,r,a,d,I)),n.flags&512&&(n.check=Zn(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=Uv;case Uv:if(n.flags&2048){if(s===0)break e;d=0;do I=r[a+d++],n.head&&I&&n.length<65536&&(n.head.name+=String.fromCharCode(I));while(I&&d<s);if(n.flags&512&&(n.check=Zn(n.check,r,d,a)),s-=d,a+=d,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=Gv;case Gv:if(n.flags&4096){if(s===0)break e;d=0;do I=r[a+d++],n.head&&I&&n.length<65536&&(n.head.comment+=String.fromCharCode(I));while(I&&d<s);if(n.flags&512&&(n.check=Zn(n.check,r,d,a)),s-=d,a+=d,I)break e}else n.head&&(n.head.comment=null);n.mode=Hv;case Hv:if(n.flags&512){for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=je;break}l=0,f=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=fr;break;case Vv:for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}e.adler=n.check=rx(l),l=0,f=0,n.mode=$f;case $f:if(n.havedict===0)return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,j7;e.adler=n.check=1,n.mode=fr;case fr:if(t===H7||t===Qf)break e;case $0:if(n.last){l>>>=f&7,f-=f&7,n.mode=K0;break}for(;f<3;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}switch(n.last=l&1,l>>>=1,f-=1,l&3){case 0:n.mode=jv;break;case 1:if(J7(n),n.mode=Xf,t===Qf){l>>>=2,f-=2;break e}break;case 2:n.mode=Zv;break;case 3:e.msg="invalid block type",n.mode=je}l>>>=2,f-=2;break;case jv:for(l>>>=f&7,f-=f&7;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=je;break}if(n.length=l&65535,l=0,f=0,n.mode=X0,t===Qf)break e;case X0:n.mode=qv;case qv:if(d=n.length,d){if(d>s&&(d=s),d>u&&(d=u),d===0)break e;Qt.arraySet(i,r,a,d,o),s-=d,a+=d,u-=d,o+=d,n.length-=d;break}n.mode=fr;break;case Zv:for(;f<14;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.nlen=(l&31)+257,l>>>=5,f-=5,n.ndist=(l&31)+1,l>>>=5,f-=5,n.ncode=(l&15)+4,l>>>=4,f-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=je;break}n.have=0,n.mode=Wv;case Wv:for(;n.have<n.ncode;){for(;f<3;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.lens[ie[n.have++]]=l&7,l>>>=3,f-=3}for(;n.have<19;)n.lens[ie[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,j={bits:n.lenbits},R=dl(G7,n.lens,0,19,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid code lengths set",n.mode=je;break}n.have=0,n.mode=Yv;case Yv:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(C<16)l>>>=w,f-=w,n.lens[n.have++]=C;else{if(C===16){for(M=w+2;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(l>>>=w,f-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=je;break}I=n.lens[n.have-1],d=3+(l&3),l>>>=2,f-=2}else if(C===17){for(M=w+3;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=w,f-=w,I=0,d=3+(l&7),l>>>=3,f-=3}else{for(M=w+7;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=w,f-=w,I=0,d=11+(l&127),l>>>=7,f-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=je;break}for(;d--;)n.lens[n.have++]=I}}if(n.mode===je)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=je;break}if(n.lenbits=9,j={bits:n.lenbits},R=dl(kv,n.lens,0,n.nlen,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid literal/lengths set",n.mode=je;break}if(n.distbits=6,n.distcode=n.distdyn,j={bits:n.distbits},R=dl(Iv,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,j),n.distbits=j.bits,R){e.msg="invalid distances set",n.mode=je;break}if(n.mode=Xf,t===Qf)break e;case Xf:n.mode=Kf;case Kf:if(s>=6&&u>=258){e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,U7(e,h),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,f=n.bits,n.mode===fr&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(_&&!(_&240)){for(E=w,k=_,B=C;y=n.lencode[B+((l&(1<<E+k)-1)>>E)],w=y>>>24,_=y>>>16&255,C=y&65535,!(E+w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=E,f-=E,n.back+=E}if(l>>>=w,f-=w,n.back+=w,n.length=C,_===0){n.mode=Jv;break}if(_&32){n.back=-1,n.mode=fr;break}if(_&64){e.msg="invalid literal/length code",n.mode=je;break}n.extra=_&15,n.mode=Qv;case Qv:if(n.extra){for(M=n.extra;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,f-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=$v;case $v:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(!(_&240)){for(E=w,k=_,B=C;y=n.distcode[B+((l&(1<<E+k)-1)>>E)],w=y>>>24,_=y>>>16&255,C=y&65535,!(E+w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=E,f-=E,n.back+=E}if(l>>>=w,f-=w,n.back+=w,_&64){e.msg="invalid distance code",n.mode=je;break}n.offset=C,n.extra=_&15,n.mode=Xv;case Xv:if(n.extra){for(M=n.extra;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,f-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=je;break}n.mode=Kv;case Kv:if(u===0)break e;if(d=h-u,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=je;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),m=n.window}else m=i,p=o-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[o++]=m[p++];while(--d);n.length===0&&(n.mode=Kf);break;case Jv:if(u===0)break e;i[o++]=n.length,u--,n.mode=Kf;break;case K0:if(n.wrap){for(;f<32;){if(s===0)break e;s--,l|=r[a++]<<f,f+=8}if(h-=u,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?Zn(n.check,i,h,o-h):Q0(n.check,i,h,o-h)),h=u,(n.flags?l:rx(l))!==n.check){e.msg="incorrect data check",n.mode=je;break}l=0,f=0}n.mode=ex;case ex:if(n.wrap&&n.flags){for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=je;break}l=0,f=0}n.mode=tx;case tx:R=V7;break e;case je:R=Dv;break e;case nx:return Fv;case Z7:default:return an}return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,(n.wsize||h!==e.avail_out&&n.mode<je&&(n.mode<K0||t!==Bv))&&ux(e,e.output,e.next_out,h-e.avail_out),c-=e.avail_in,h-=e.avail_out,e.total_in+=c,e.total_out+=h,n.total+=h,n.wrap&&h&&(e.adler=n.check=n.flags?Zn(n.check,i,h,e.next_out-h):Q0(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===fr?128:0)+(n.mode===Xf||n.mode===X0?256:0),(c===0&&h===0||t===Bv)&&R===ta&&(R=q7),R}function tM(e){if(!e||!e.state)return an;var t=e.state;return t.window&&(t.window=null),e.state=null,ta}function nM(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?an:(n.head=t,t.done=!1,ta)}function rM(e,t){var n=t.length,r,i,a;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==$f)?an:r.mode===$f&&(i=1,i=Q0(i,t,n,0),i!==r.check)?Dv:(a=ux(e,t,n,n),a?(r.mode=nx,Fv):(r.havedict=1,ta))}_n.inflateReset=ax,_n.inflateReset2=ox,_n.inflateResetKeep=ix,_n.inflateInit=K7,_n.inflateInit2=sx,_n.inflate=eM,_n.inflateEnd=tM,_n.inflateGetHeader=nM,_n.inflateSetDictionary=rM,_n.inflateInfo="pako inflate (from Nodeca project)";var fx={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 iM(){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 aM=iM,no=_n,pl=lr,Jf=Ji,tt=fx,tp=z0,oM=wv,sM=aM,cx=Object.prototype.toString;function na(e){if(!(this instanceof na))return new na(e);this.options=pl.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 oM,this.strm.avail_out=0;var n=no.inflateInit2(this.strm,t.windowBits);if(n!==tt.Z_OK)throw new Error(tp[n]);if(this.header=new sM,no.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Jf.string2buf(t.dictionary):cx.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=no.inflateSetDictionary(this.strm,t.dictionary),n!==tt.Z_OK)))throw new Error(tp[n])}na.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,a,o,s,u,l,f=!1;if(this.ended)return!1;o=t===~~t?t:t===!0?tt.Z_FINISH:tt.Z_NO_FLUSH,typeof e=="string"?n.input=Jf.binstring2buf(e):cx.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 pl.Buf8(r),n.next_out=0,n.avail_out=r),a=no.inflate(n,tt.Z_NO_FLUSH),a===tt.Z_NEED_DICT&&i&&(a=no.inflateSetDictionary(this.strm,i)),a===tt.Z_BUF_ERROR&&f===!0&&(a=tt.Z_OK,f=!1),a!==tt.Z_STREAM_END&&a!==tt.Z_OK)return this.onEnd(a),this.ended=!0,!1;n.next_out&&(n.avail_out===0||a===tt.Z_STREAM_END||n.avail_in===0&&(o===tt.Z_FINISH||o===tt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=Jf.utf8border(n.output,n.next_out),u=n.next_out-s,l=Jf.buf2string(n.output,s),n.next_out=u,n.avail_out=r-u,u&&pl.arraySet(n.output,n.output,s,u,0),this.onData(l)):this.onData(pl.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(f=!0)}while((n.avail_in>0||n.avail_out===0)&&a!==tt.Z_STREAM_END);return a===tt.Z_STREAM_END&&(o=tt.Z_FINISH),o===tt.Z_FINISH?(a=no.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===tt.Z_OK):(o===tt.Z_SYNC_FLUSH&&(this.onEnd(tt.Z_OK),n.avail_out=0),!0)},na.prototype.onData=function(e){this.chunks.push(e)},na.prototype.onEnd=function(e){e===tt.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=pl.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function np(e,t){var n=new na(t);if(n.push(e,!0),n.err)throw n.msg||tp[n.err];return n.result}function lM(e,t){return t=t||{},t.raw=!0,np(e,t)}hl.Inflate=na,hl.inflate=np,hl.inflateRaw=lM,hl.ungzip=np;var uM=lr.assign,fM=Js,cM=hl,hM=fx,hx={};uM(hx,fM,cM,hM);var ec=hx;async function Jr(e){try{let t,n=0,r=0;const i=[];let a=0,o;do{const u=e.subarray(n);if(o=new ec.Inflate,{strm:t}=o,o.push(u,ec.Z_SYNC_FLUSH),o.err)throw new Error(o.msg);n+=t.next_in,i[r]=o.result,a+=i[r].length,r+=1}while(t.avail_in);const s=new Uint8Array(a);for(let u=0,l=0;u<i.length;u++)s.set(i[u],l),l+=i[u].length;return pe.Buffer.from(s)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function dx(e,t){try{let n;const{minv:r,maxv:i}=t;let a=r.blockPosition,o=r.dataPosition;const s=[],u=[],l=[];let f=0,c=0;do{const p=e.subarray(a-r.blockPosition),m=new ec.Inflate;if({strm:n}=m,m.push(p,ec.Z_SYNC_FLUSH),m.err)throw new Error(m.msg);const y=m.result;s.push(y);let w=y.length;u.push(a),l.push(o),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),w=s[0].length);const _=a;if(a+=n.next_in,o+=w,_>=i.blockPosition){s[c]=s[c].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),u.push(a),l.push(o),f+=s[c].length;break}f+=s[c].length,c++}while(n.avail_in);const h=new Uint8Array(f);for(let p=0,m=0;p<s.length;p++)h.set(s[p],m),m+=s[p].length;return{buffer:pe.Buffer.from(h),cpositions:u,dpositions:l}}catch(n){throw`${n}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):n}}var dM=Le,on=null;try{on=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Le(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}Le.prototype.__isLong__,Object.defineProperty(Le.prototype,"__isLong__",{value:!0});function Ht(e){return(e&&e.__isLong__)===!0}Le.isLong=Ht;var px={},gx={};function ra(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=gx[e],r)?r:(n=Ne(e,(e|0)<0?-1:0,!0),i&&(gx[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=px[e],r)?r:(n=Ne(e,e<0?-1:0,!1),i&&(px[e]=n),n))}Le.fromInt=ra;function sn(e,t){if(isNaN(e))return t?ia:ln;if(t){if(e<0)return ia;if(e>=bx)return Ax}else{if(e<=-yx)return Vt;if(e+1>=yx)return xx}return e<0?sn(-e,t).neg():Ne(e%ro|0,e/ro|0,t)}Le.fromNumber=sn;function Ne(e,t,n){return new Le(e,t,n)}Le.fromBits=Ne;var tc=Math.pow;function rp(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return ln;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 rp(e.substring(1),t,n).neg();for(var i=sn(tc(n,8)),a=ln,o=0;o<e.length;o+=8){var s=Math.min(8,e.length-o),u=parseInt(e.substring(o,o+s),n);if(s<8){var l=sn(tc(n,s));a=a.mul(l).add(sn(u))}else a=a.mul(i),a=a.add(sn(u))}return a.unsigned=t,a}Le.fromString=rp;function Sn(e,t){return typeof e=="number"?sn(e,t):typeof e=="string"?rp(e,t):Ne(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Le.fromValue=Sn;var mx=65536,pM=1<<24,ro=mx*mx,bx=ro*ro,yx=bx/2,wx=ra(pM),ln=ra(0);Le.ZERO=ln;var ia=ra(0,!0);Le.UZERO=ia;var io=ra(1);Le.ONE=io;var vx=ra(1,!0);Le.UONE=vx;var ip=ra(-1);Le.NEG_ONE=ip;var xx=Ne(-1,2147483647,!1);Le.MAX_VALUE=xx;var Ax=Ne(-1,-1,!0);Le.MAX_UNSIGNED_VALUE=Ax;var Vt=Ne(0,-2147483648,!1);Le.MIN_VALUE=Vt;var Q=Le.prototype;Q.toInt=function(){return this.unsigned?this.low>>>0:this.low},Q.toNumber=function(){return this.unsigned?(this.high>>>0)*ro+(this.low>>>0):this.high*ro+(this.low>>>0)},Q.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(Vt)){var n=sn(t),r=this.div(n),i=r.mul(n).sub(this);return r.toString(t)+i.toInt().toString(t)}else return"-"+this.neg().toString(t);for(var a=sn(tc(t,6),this.unsigned),o=this,s="";;){var u=o.div(a),l=o.sub(u.mul(a)).toInt()>>>0,f=l.toString(t);if(o=u,o.isZero())return f+s;for(;f.length<6;)f="0"+f;s=""+f+s}},Q.getHighBits=function(){return this.high},Q.getHighBitsUnsigned=function(){return this.high>>>0},Q.getLowBits=function(){return this.low},Q.getLowBitsUnsigned=function(){return this.low>>>0},Q.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Vt)?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},Q.isZero=function(){return this.high===0&&this.low===0},Q.eqz=Q.isZero,Q.isNegative=function(){return!this.unsigned&&this.high<0},Q.isPositive=function(){return this.unsigned||this.high>=0},Q.isOdd=function(){return(this.low&1)===1},Q.isEven=function(){return(this.low&1)===0},Q.equals=function(t){return Ht(t)||(t=Sn(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},Q.eq=Q.equals,Q.notEquals=function(t){return!this.eq(t)},Q.neq=Q.notEquals,Q.ne=Q.notEquals,Q.lessThan=function(t){return this.comp(t)<0},Q.lt=Q.lessThan,Q.lessThanOrEqual=function(t){return this.comp(t)<=0},Q.lte=Q.lessThanOrEqual,Q.le=Q.lessThanOrEqual,Q.greaterThan=function(t){return this.comp(t)>0},Q.gt=Q.greaterThan,Q.greaterThanOrEqual=function(t){return this.comp(t)>=0},Q.gte=Q.greaterThanOrEqual,Q.ge=Q.greaterThanOrEqual,Q.compare=function(t){if(Ht(t)||(t=Sn(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},Q.comp=Q.compare,Q.negate=function(){return!this.unsigned&&this.eq(Vt)?Vt:this.not().add(io)},Q.neg=Q.negate,Q.add=function(t){Ht(t)||(t=Sn(t));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,a=this.low&65535,o=t.high>>>16,s=t.high&65535,u=t.low>>>16,l=t.low&65535,f=0,c=0,h=0,d=0;return d+=a+l,h+=d>>>16,d&=65535,h+=i+u,c+=h>>>16,h&=65535,c+=r+s,f+=c>>>16,c&=65535,f+=n+o,f&=65535,Ne(h<<16|d,f<<16|c,this.unsigned)},Q.subtract=function(t){return Ht(t)||(t=Sn(t)),this.add(t.neg())},Q.sub=Q.subtract,Q.multiply=function(t){if(this.isZero())return ln;if(Ht(t)||(t=Sn(t)),on){var n=on.mul(this.low,this.high,t.low,t.high);return Ne(n,on.get_high(),this.unsigned)}if(t.isZero())return ln;if(this.eq(Vt))return t.isOdd()?Vt:ln;if(t.eq(Vt))return this.isOdd()?Vt:ln;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(wx)&&t.lt(wx))return sn(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=t.high>>>16,u=t.high&65535,l=t.low>>>16,f=t.low&65535,c=0,h=0,d=0,p=0;return p+=o*f,d+=p>>>16,p&=65535,d+=a*f,h+=d>>>16,d&=65535,d+=o*l,h+=d>>>16,d&=65535,h+=i*f,c+=h>>>16,h&=65535,h+=a*l,c+=h>>>16,h&=65535,h+=o*u,c+=h>>>16,h&=65535,c+=r*f+i*l+a*u+o*s,c&=65535,Ne(d<<16|p,c<<16|h,this.unsigned)},Q.mul=Q.multiply,Q.divide=function(t){if(Ht(t)||(t=Sn(t)),t.isZero())throw Error("division by zero");if(on){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?on.div_u:on.div_s)(this.low,this.high,t.low,t.high);return Ne(n,on.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?ia:ln;var r,i,a;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return ia;if(t.gt(this.shru(1)))return vx;a=ia}else{if(this.eq(Vt)){if(t.eq(io)||t.eq(ip))return Vt;if(t.eq(Vt))return io;var o=this.shr(1);return r=o.div(t).shl(1),r.eq(ln)?t.isNegative()?io:ip:(i=this.sub(t.mul(r)),a=r.add(i.div(t)),a)}else if(t.eq(Vt))return this.unsigned?ia:ln;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();a=ln}for(i=this;i.gte(t);){r=Math.max(1,Math.floor(i.toNumber()/t.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),u=s<=48?1:tc(2,s-48),l=sn(r),f=l.mul(t);f.isNegative()||f.gt(i);)r-=u,l=sn(r,this.unsigned),f=l.mul(t);l.isZero()&&(l=io),a=a.add(l),i=i.sub(f)}return a},Q.div=Q.divide,Q.modulo=function(t){if(Ht(t)||(t=Sn(t)),on){var n=(this.unsigned?on.rem_u:on.rem_s)(this.low,this.high,t.low,t.high);return Ne(n,on.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},Q.mod=Q.modulo,Q.rem=Q.modulo,Q.not=function(){return Ne(~this.low,~this.high,this.unsigned)},Q.and=function(t){return Ht(t)||(t=Sn(t)),Ne(this.low&t.low,this.high&t.high,this.unsigned)},Q.or=function(t){return Ht(t)||(t=Sn(t)),Ne(this.low|t.low,this.high|t.high,this.unsigned)},Q.xor=function(t){return Ht(t)||(t=Sn(t)),Ne(this.low^t.low,this.high^t.high,this.unsigned)},Q.shiftLeft=function(t){return Ht(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Ne(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):Ne(0,this.low<<t-32,this.unsigned)},Q.shl=Q.shiftLeft,Q.shiftRight=function(t){return Ht(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Ne(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):Ne(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},Q.shr=Q.shiftRight,Q.shiftRightUnsigned=function(t){if(Ht(t)&&(t=t.toInt()),t&=63,t===0)return this;var n=this.high;if(t<32){var r=this.low;return Ne(r>>>t|n<<32-t,n>>>t,this.unsigned)}else return t===32?Ne(n,0,this.unsigned):Ne(n>>>t-32,0,this.unsigned)},Q.shru=Q.shiftRightUnsigned,Q.shr_u=Q.shiftRightUnsigned,Q.toSigned=function(){return this.unsigned?Ne(this.low,this.high,!1):this},Q.toUnsigned=function(){return this.unsigned?this:Ne(this.low,this.high,!0)},Q.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},Q.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]},Q.toBytesBE=function(){var t=this.high,n=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Le.fromBytes=function(t,n,r){return r?Le.fromBytesLE(t,n):Le.fromBytesBE(t,n)},Le.fromBytesLE=function(t,n){return new Le(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)},Le.fromBytesBE=function(t,n){return new Le(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)};const nc=Xs(dM),rc=1;class gM{constructor({filehandle:t,path:n}){if(t)this.filehandle=t;else if(n)this.filehandle=new ht(n);else throw new TypeError("either filehandle or path must be defined")}_readLongWithOverflow(t,n=0,r=!0){const i=nc.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=pe.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=pe.Buffer.allocUnsafe(i),await this.filehandle.read(t,0,i,8);for(let a=0;a<n;a+=1){const o=this._readLongWithOverflow(t,a*16),s=this._readLongWithOverflow(t,a*16+8);r[a+1]=[o,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(),a=[],o=(h,d)=>{const p=h[rc],m=d?d[rc]:1/0;return p<=n&&m>n?0:p<n?-1:1};let s=0,u=i.length-1,l=Math.floor(i.length/2),f=o(i[l],i[l+1]);for(;f!==0;)f>0?u=l-1:f<0&&(s=l+1),l=Math.ceil((u-s)/2)+s,f=o(i[l],i[l+1]);a.push(i[l]);let c=l+1;for(;c<i.length&&(a.push(i[c]),!(i[c][rc]>=r));c+=1);return a[a.length-1][rc]<r&&a.push([]),a}}class Ex{constructor({filehandle:t,path:n,gziFilehandle:r,gziPath:i}){if(t)this.filehandle=t;else if(n)this.filehandle=new ht(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 gM({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=pe.Buffer.allocUnsafe(4),{bytesRead:i}=await this.filehandle.read(r,0,4,n-28-4);if(i!==4)throw new Error("read error");const a=r.readUInt32LE(0);return t+a}async _readAndUncompressBlock(t,[n],[r]){let i=r;i||(i=(await this.filehandle.stat()).size);const a=i-n;return await this.filehandle.read(t,0,a,n),await Jr(t.slice(0,a))}async read(t,n,r,i){const a=await this.gzi.getRelevantBlocksForRead(r,i),o=pe.Buffer.allocUnsafe(32768*2);let s=n,u=0;for(let l=0;l<a.length-1;l+=1){const f=await this._readAndUncompressBlock(o,a[l],a[l+1]),[,c]=a[l],h=c>=i?0:i-c,d=Math.min(i+r,c+f.length)-c;h>=0&&h<f.length&&(f.copy(t,s,h,d),s+=d-h,u+=d-h)}return{bytesRead:u,buffer:t}}}function _x(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function mM(e,t){const n=await e.readFile(t);if(!(n&&n.length))throw new Error("No data read from FASTA index (FAI) file");let r=0,i;const a=n.toString("utf8").split(/\r?\n/).filter(o=>/\S/.test(o)).map(o=>o.split(" ")).filter(o=>o[0]!=="").map(o=>((!i||i.name!==o[0])&&(i={name:o[0],id:r},r+=1),{id:i.id,name:o[0],length:+o[1],start:0,end:+o[1],offset:+o[2],lineLength:+o[3],lineBytes:+o[4]}));return{name:Object.fromEntries(a.map(o=>[o.name,o])),id:Object.fromEntries(a.map(o=>[o.id,o]))}}class Sx{constructor({fasta:t,fai:n,path:r,faiPath:i,chunkSizeLimit:a=1e6}){if(t)this.fasta=t;else if(r)this.fasta=new ht(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 ht(i);else if(r)this.fai=new ht(`${r}.fai`);else throw new Error("Need to pass filehandle for or path to localfile");this.chunkSizeLimit=a}async _getIndexes(t){return this.indexes||(this.indexes=mM(this.fai,t)),this.indexes}async getSequenceNames(t){return Object.keys((await this._getIndexes(t)).name)}async getSequenceSizes(t){const n={},r=await this._getIndexes(t),i=Object.values(r.id);for(let a=0;a<i.length;a+=1)n[i[a].name]=i[a].length;return n}async getSequenceSize(t,n){var r;return(r=(await this._getIndexes(n)).name[t])===null||r===void 0?void 0:r.length}async hasReferenceSequence(t,n){return!!(await this._getIndexes(n)).name[t]}async getResiduesById(t,n,r,i){const a=(await this._getIndexes(i)).id[t];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getResiduesByName(t,n,r,i){const a=(await this._getIndexes(i)).name[t];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getSequence(t,n,r,i){return this.getResiduesByName(t,n,r,i)}async _fetchFromIndexEntry(t,n=0,r,i){let a=r;if(n<0)throw new TypeError("regionStart cannot be less than 0");if((a===void 0||a>t.length)&&(a=t.length),n>=a)return"";const o=_x(t,n),s=_x(t,a)-o;if(s>this.chunkSizeLimit)throw new Error(`data size of ${s.toLocaleString()} bytes exceeded chunk size limit of ${this.chunkSizeLimit.toLocaleString()} bytes`);const u=Buffer.allocUnsafe(s);return await this.fasta.read(u,0,s,o,i),u.toString("utf8").replace(/\s+/g,"")}}class bM extends Sx{constructor({fasta:t,path:n,fai:r,faiPath:i,gzi:a,gziPath:o,chunkSizeLimit:s}){super({fasta:t,path:n,fai:r,faiPath:i,chunkSizeLimit:s}),t&&a?this.fasta=new Ex({filehandle:t,gziFilehandle:a}):n&&o&&(this.fasta=new Ex({path:n,gziPath:o}))}}function Cx(e){return e.split(">").filter(t=>/\S/.test(t)).map(t=>{const[n,...r]=t.split(`
325
+ `),[i,...a]=n.split(" "),o=r.join("").replace(/\s/g,"");return{id:i,description:a.join(" "),sequence:o}})}class yM{constructor({fasta:t,path:n}){if(t)this.fasta=t;else if(n)this.fasta=new ht(n);else throw new Error("Need to pass fasta or path");this.data=this.fasta.readFile().then(r=>{const i=r.toString("utf8");return Cx(i)})}async fetch(t,n,r){const a=(await this.data).find(s=>s.id===t),o=r-n;if(!a)throw new Error(`no sequence with id ${t} exists`);return a.sequence.substr(n,o)}async getSequenceNames(){return(await this.data).map(n=>n.id)}}const wM=Object.freeze(Object.defineProperty({__proto__:null,BgzipIndexedFasta:bM,FetchableSmallFasta:yM,IndexedFasta:Sx,parseSmallFasta:Cx},Symbol.toStringTag,{value:"Module"})),ic=BigInt(32);function vM(e,t,n){const r=+!!n,i=+!n;return BigInt(e.getInt32(t,n)*i+e.getInt32(t+4,n)*r)<<ic|BigInt(e.getUint32(t,n)*r+e.getUint32(t+4,n)*i)}function xM(e,t,n){const r=e.getUint32(t,n),i=e.getUint32(t+4,n),a=+!!n,o=+!n;return BigInt(r*o+i*a)<<ic|BigInt(r*a+i*o)}function AM(e,t,n,r){const i=Number(n>>ic),a=Number(n&BigInt(4294967295));r?(e.setInt32(t+4,i,r),e.setUint32(t,a,r)):(e.setInt32(t,i,r),e.setUint32(t+4,a,r))}function EM(e,t,n,r){const i=Number(n>>ic),a=Number(n&BigInt(4294967295));r?(e.setUint32(t+4,i,r),e.setUint32(t,a,r)):(e.setUint32(t,i,r),e.setUint32(t+4,a,r))}"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(e,t){return vM(this,e,t)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(e,t){return xM(this,e,t)}),"setBigInt64"in DataView||(DataView.prototype.setBigInt64=function(e,t,n){AM(this,e,t,n)}),"setBigUint64"in DataView||(DataView.prototype.setBigUint64=function(e,t,n){EM(this,e,t,n)});class _M{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+`
326
+ `}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 Cn=new Map,aa="___parser_",Tn={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},ac={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"},oc={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 ke=class Dn{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new Dn}primitiveGenerateN(t,n){const r=ac[t],i=oc[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${Tn[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 Cn.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"&&!Cn.has(n.type)&&!(n.type in Tn))throw new Error(`Array element type "${n.type}" is unkown.`);return this.setNextParser("array",t,n)}choice(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n)throw new Error("tag and choices are are required for choice.");if(!n.tag)throw new Error("tag is requird for choice.");if(!n.choices)throw new Error("choices is required for choice.");for(const r in n.choices){const i=parseInt(r,10),a=n.choices[i];if(isNaN(i))throw new Error(`Choice key "${r}" is not a number.`);if(typeof a=="string"&&!Cn.has(a)&&!(a in Tn))throw new Error(`Choice type "${a}" is unkown.`)}return this.setNextParser("choice",t,n)}nest(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n||!n.type)throw new Error("type is required for nest.");if(!(n.type instanceof Dn)&&!Cn.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof Dn)&&!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 Tn)&&!Cn.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 _M(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${aa+this.alias}(0).result;`)):this.addRawCode(n),n}getCode(){const t="imports";return this.getContext(t).code}addRawCode(t){t.pushCode("var offset = 0;"),t.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),t.pushCode("vars.$parent = null;"),t.pushCode("vars.$root = vars;"),this.generate(t),this.resolveReferences(t),t.pushCode("delete vars.$parent;"),t.pushCode("delete vars.$root;"),t.pushCode("return vars;")}addAliasedCode(t){return t.pushCode(`function ${aa+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=Cn.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(Tn).indexOf(this.type)>=0)t=Tn[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=Tn[this.options.type]:this.options.type instanceof Dn&&(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 Dn;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=(f=0)=>{let c=0;for(let h=f;h<t.bitFields.length;h++){const d=t.bitFields[h].options.length;if(c+d>32)break;c+=d}return c},a=f=>(f<=8?(t.pushCode(`${r} = dataView.getUint8(offset);`),f=8):f<=16?(t.pushCode(`${r} = dataView.getUint16(offset);`),f=16):f<=24?(t.pushCode(`${r} = (dataView.getUint16(offset) << 8) | dataView.getUint8(offset + 2);`),f=24):(t.pushCode(`${r} = dataView.getUint32(offset);`),f=32),t.pushCode(`offset += ${f/8};`),f);let o=0;const s=this.endian==="be";let u=0,l=0;t.bitFields.forEach((f,c)=>{let h=f.options.length;if(h>l){if(l){const m=-1>>>32-l;t.pushCode(`${f.varName} = (${r} & 0x${m.toString(16)}) << ${h-l};`),h-=l}o=0,l=u=a(i(c)-l)}const d=s?u-o-h:o,p=-1>>>32-h;t.pushCode(`${f.varName} ${h<f.options.length?"|=":"="} ${r} >> ${d} & 0x${p.toString(16)};`),f.options.length===32&&t.pushCode(`${f.varName} >>>= 0`),f.options.assert&&f.generateAssert(t),f.options.formatter&&f.generateFormatter(t,f.varName,f.options.formatter),o+=h,l-=h}),t.bitFields=[]}}generateSeek(t){const n=t.generateOption(this.options.length);t.pushCode(`offset += ${n};`)}generateString(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable(),i=this.options.encoding,a=i.toLowerCase()==="hex",o='b => b.toString(16).padStart(2, "0")';if(this.options.length&&this.options.zeroTerminated){const s=this.options.length;t.pushCode(`var ${r} = offset;`),t.pushCode(`while(dataView.getUint8(offset++) !== 0 && offset - ${r} < ${s});`);const u=`offset - ${r} < ${s} ? offset - 1 : offset`;t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, ${u}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${u}));`)}else if(this.options.length){const s=t.generateOption(this.options.length);t.pushCode(a?`${n} = Array.from(buffer.subarray(offset, offset + ${s}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(offset, offset + ${s}));`),t.pushCode(`offset += ${s};`)}else this.options.zeroTerminated?(t.pushCode(`var ${r} = offset;`),t.pushCode("while(dataView.getUint8(offset++) !== 0);"),t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset - 1), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset - 1));`)):this.options.greedy&&(t.pushCode(`var ${r} = offset;`),t.pushCode("while(buffer.length > offset++);"),t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset));`));this.options.stripNull&&t.pushCode(`${n} = ${n}.replace(/\\x00+$/g, '')`)}generateBuffer(t){const n=t.generateVariable(this.varName);if(typeof this.options.readUntil=="function"){const r=this.options.readUntil,i=t.generateTmpVariable(),a=t.generateTmpVariable();t.pushCode(`var ${i} = offset;`),t.pushCode(`var ${a} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${a} = dataView.getUint8(offset);`);const o=t.addImport(r);t.pushCode(`if (${o}.call(${t.generateVariable()}, ${a}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${n} = buffer.subarray(${i}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${n} = buffer.subarray(offset);`);else{const r=t.generateOption(this.options.length);t.pushCode(`${n} = buffer.subarray(offset, offset + ${r});`),t.pushCode(`offset += ${r};`)}this.options.clone&&t.pushCode(`${n} = buffer.constructor.from(${n});`)}generateArray(t){const n=t.generateOption(this.options.length),r=t.generateOption(this.options.lengthInBytes),i=this.options.type,a=t.generateTmpVariable(),o=t.generateVariable(this.varName),s=t.generateTmpVariable(),u=this.options.key,l=typeof u=="string";if(l?t.pushCode(`${o} = {};`):t.pushCode(`${o} = [];`),typeof this.options.readUntil=="function"?t.pushCode("do {"):this.options.readUntil==="eof"?t.pushCode(`for (var ${a} = 0; offset < buffer.length; ${a}++) {`):r!==void 0?t.pushCode(`for (var ${a} = offset + ${r}; offset < ${a}; ) {`):t.pushCode(`for (var ${a} = ${n}; ${a} > 0; ${a}--) {`),typeof i=="string")if(Cn.get(i)){const f=t.generateTmpVariable();if(t.pushCode(`var ${f} = ${aa+i}(offset, {`),t.useContextVariables){const c=t.generateVariable();t.pushCode(`$parent: ${c},`),t.pushCode(`$root: ${c}.$root,`),!this.options.readUntil&&r===void 0&&t.pushCode(`$index: ${n} - ${a},`)}t.pushCode("});"),t.pushCode(`var ${s} = ${f}.result; offset = ${f}.offset;`),i!==this.alias&&t.addReference(i)}else{const f=ac[i],c=oc[i];t.pushCode(`var ${s} = dataView.get${f}(offset, ${c});`),t.pushCode(`offset += ${Tn[i]};`)}else if(i instanceof Dn){t.pushCode(`var ${s} = {};`);const f=t.generateVariable();t.pushScope(s),t.useContextVariables&&(t.pushCode(`${s}.$parent = ${f};`),t.pushCode(`${s}.$root = ${f}.$root;`),!this.options.readUntil&&r===void 0&&t.pushCode(`${s}.$index = ${n} - ${a};`)),i.generate(t),t.useContextVariables&&(t.pushCode(`delete ${s}.$parent;`),t.pushCode(`delete ${s}.$root;`),t.pushCode(`delete ${s}.$index;`)),t.popScope()}if(l?t.pushCode(`${o}[${s}.${u}] = ${s};`):t.pushCode(`${o}.push(${s});`),t.pushCode("}"),typeof this.options.readUntil=="function"){const f=this.options.readUntil,c=t.addImport(f);t.pushCode(`while (!${c}.call(${t.generateVariable()}, ${s}, buffer.subarray(offset)));`)}}generateChoiceCase(t,n,r){if(typeof r=="string"){const i=t.generateVariable(this.varName);if(Cn.has(r)){const a=t.generateTmpVariable();t.pushCode(`var ${a} = ${aa+r}(offset, {`),t.useContextVariables&&(t.pushCode(`$parent: ${i}.$parent,`),t.pushCode(`$root: ${i}.$root,`)),t.pushCode("});"),t.pushCode(`${i} = ${a}.result; offset = ${a}.offset;`),r!==this.alias&&t.addReference(r)}else{const a=ac[r],o=oc[r];t.pushCode(`${i} = dataView.get${a}(offset, ${o});`),t.pushCode(`offset += ${Tn[r]}`)}}else r instanceof Dn&&(t.pushPath(n),r.generate(t),t.popPath(n))}generateChoice(t){const n=t.generateOption(this.options.tag),r=t.generateVariable(this.varName);if(this.varName&&(t.pushCode(`${r} = {};`),t.useContextVariables)){const i=t.generateVariable();t.pushCode(`${r}.$parent = ${i};`),t.pushCode(`${r}.$root = ${i}.$root;`)}t.pushCode(`switch(${n}) {`);for(const i in this.options.choices){const a=parseInt(i,10),o=this.options.choices[a];t.pushCode(`case ${a}:`),this.generateChoiceCase(t,this.varName,o),t.pushCode("break;")}t.pushCode("default:"),this.options.defaultChoice?this.generateChoiceCase(t,this.varName,this.options.defaultChoice):t.generateError(`"Met undefined tag value " + ${n} + " at choice"`),t.pushCode("}"),this.varName&&t.useContextVariables&&(t.pushCode(`delete ${r}.$parent;`),t.pushCode(`delete ${r}.$root;`))}generateNest(t){const n=t.generateVariable(this.varName);if(this.options.type instanceof Dn){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(Cn.has(this.options.type)){const r=t.generateTmpVariable();if(t.pushCode(`var ${r} = ${aa+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 u=this.options.readUntil,l=t.generateTmpVariable(),f=t.generateTmpVariable();t.pushCode(`var ${l} = offset;`),t.pushCode(`var ${f} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${f} = dataView.getUint8(offset);`);const c=t.addImport(u);t.pushCode(`if (${c}.call(${t.generateVariable()}, ${f}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${r} = buffer.subarray(${l}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${r} = buffer.subarray(offset);`);else{const u=t.generateOption(this.options.length);t.pushCode(`${r} = buffer.subarray(offset, offset + ${u});`),t.pushCode(`offset += ${u};`)}this.options.clone&&t.pushCode(`${r} = buffer.constructor.from(${r});`);const i=t.generateTmpVariable(),a=t.generateTmpVariable(),o=t.generateTmpVariable(),s=t.addImport(this.options.wrapper);if(t.pushCode(`${r} = ${s}.call(this, ${r}).subarray(0);`),t.pushCode(`var ${i} = buffer;`),t.pushCode(`var ${a} = offset;`),t.pushCode(`var ${o} = dataView;`),t.pushCode(`buffer = ${r};`),t.pushCode("offset = 0;"),t.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof Dn)this.varName&&t.pushCode(`${n} = {};`),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(Cn.has(this.options.type)){const u=t.generateTmpVariable();t.pushCode(`var ${u} = ${aa+this.options.type}(0);`),t.pushCode(`${n} = ${u}.result;`),this.options.type!==this.alias&&t.addReference(this.options.type)}t.pushCode(`buffer = ${i};`),t.pushCode(`dataView = ${o};`),t.pushCode(`offset = ${a};`)}generateFormatter(t,n,r){if(typeof r=="function"){const i=t.addImport(r);t.pushCode(`${n} = ${i}.call(${t.generateVariable()}, ${n});`)}}generatePointer(t){const n=this.options.type,r=t.generateOption(this.options.offset),i=t.generateTmpVariable(),a=t.generateVariable(this.varName);if(t.pushCode(`var ${i} = offset;`),t.pushCode(`offset = ${r};`),this.options.type instanceof Dn){if(t.pushCode(`${a} = {};`),t.useContextVariables){const o=t.generateVariable();t.pushCode(`${a}.$parent = ${o};`),t.pushCode(`${a}.$root = ${o}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),t.useContextVariables&&(t.pushCode(`delete ${a}.$parent;`),t.pushCode(`delete ${a}.$root;`))}else if(Cn.has(this.options.type)){const o=t.generateTmpVariable();if(t.pushCode(`var ${o} = ${aa+this.options.type}(offset, {`),t.useContextVariables){const s=t.generateVariable();t.pushCode(`$parent: ${s},`),t.pushCode(`$root: ${s}.$root,`)}t.pushCode("});"),t.pushCode(`${a} = ${o}.result; offset = ${o}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}else if(Object.keys(Tn).indexOf(this.options.type)>=0){const o=ac[n],s=oc[n];t.pushCode(`${a} = dataView.get${o}(offset, ${s});`),t.pushCode(`offset += ${Tn[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}};var Tx={},ap={},oa={},gl={};Object.defineProperty(gl,"__esModule",{value:!0});function op(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function kx(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 sp(e,t,n){return t&&kx(e.prototype,t),n&&kx(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function SM(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&&lp(e,t)}function ao(e){return ao=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},ao(e)}function lp(e,t){return lp=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},lp(e,t)}function CM(){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 ml(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function TM(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 ml(e)}function kM(e){var t=CM();return function(){var r=ao(e),i;if(t){var a=ao(this).constructor;i=Reflect.construct(r,arguments,a)}else i=r.apply(this,arguments);return TM(this,i)}}function IM(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=ao(e),e!==null););return e}function sc(){return typeof Reflect<"u"&&Reflect.get?sc=Reflect.get.bind():sc=function(t,n,r){var i=IM(t,n);if(i){var a=Object.getOwnPropertyDescriptor(i,n);return a.get?a.get.call(arguments.length<3?t:r):a.value}},sc.apply(this,arguments)}var Ix=function(){function e(){op(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return sp(e,[{key:"addEventListener",value:function(n,r,i){n in this.listeners||(this.listeners[n]=[]),this.listeners[n].push({callback:r,options:i})}},{key:"removeEventListener",value:function(n,r){if(n in this.listeners){for(var i=this.listeners[n],a=0,o=i.length;a<o;a++)if(i[a].callback===r){i.splice(a,1);return}}}},{key:"dispatchEvent",value:function(n){if(n.type in this.listeners){for(var r=this.listeners[n.type],i=r.slice(),a=0,o=i.length;a<o;a++){var s=i[a];try{s.callback.call(this,n)}catch(u){Promise.resolve().then(function(){throw u})}s.options&&s.options.once&&this.removeEventListener(n.type,s.callback)}return!n.defaultPrevented}}}]),e}(),up=function(e){SM(n,e);var t=kM(n);function n(){var r;return op(this,n),r=t.call(this),r.listeners||Ix.call(ml(r)),Object.defineProperty(ml(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(ml(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(ml(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return sp(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)),sc(ao(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(Ix),Bx=function(){function e(){op(this,e),Object.defineProperty(this,"signal",{value:new up,writable:!0,configurable:!0})}return sp(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&&(Bx.prototype[Symbol.toStringTag]="AbortController",up.prototype[Symbol.toStringTag]="AbortSignal");function BM(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 DM(e){typeof e=="function"&&(e={fetch:e});var t=e,n=t.fetch,r=t.Request,i=r===void 0?n.Request:r,a=t.AbortController,o=t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,s=o===void 0?!1:o;if(!BM({fetch:n,Request:i,AbortController:a,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:s}))return{fetch:n,Request:u};var u=i;(u&&!u.prototype.hasOwnProperty("signal")||s)&&(u=function(h,d){var p;d&&d.signal&&(p=d.signal,delete d.signal);var m=new i(h,d);return p&&Object.defineProperty(m,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),m},u.prototype=i.prototype);var l=n,f=function(h,d){var p=u&&u.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(p){var m;try{m=new DOMException("Aborted","AbortError")}catch{m=new Error("Aborted"),m.name="AbortError"}if(p.aborted)return Promise.reject(m);var y=new Promise(function(w,_){p.addEventListener("abort",function(){return _(m)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([y,l(h,d)])}return l(h,d)};return{fetch:f,Request:u}}gl.AbortController=Bx,gl.AbortSignal=up,gl.abortableFetch=DM,Object.defineProperty(oa,"__esModule",{value:!0}),oa.AbortSignal=oa.AbortController=void 0;const Dx=gl;var lc=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 FM=typeof lc().AbortController>"u"?Dx.AbortController:lc().AbortController;oa.AbortController=FM;let RM=typeof lc().AbortController>"u"?Dx.AbortSignal:lc().AbortSignal;oa.AbortSignal=RM;var fp={};Object.defineProperty(fp,"__esModule",{value:!0});const MM=oa;class PM{}class LM{constructor(){this.signals=new Set,this.abortController=new MM.AbortController}addSignal(t=new PM){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()}}fp.default=LM;var cp={};Object.defineProperty(cp,"__esModule",{value:!0});class NM{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)})}}cp.default=NM;var Fx=Nf&&Nf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ap,"__esModule",{value:!0});const OM=oa,zM=Fx(fp),UM=Fx(cp);class uc{constructor({fill:t,cache:n}){if(typeof t!="function")throw new TypeError("must pass a fill function");if(typeof n!="object")throw new TypeError("must pass a cache object");if(typeof n.get!="function"||typeof n.set!="function"||typeof n.delete!="function")throw new TypeError("cache must implement get(key), set(key, val), and and delete(key)");this.cache=n,this.fillCallback=t}static isAbortException(t){return t.name==="AbortError"||t.code==="ERR_ABORTED"||t.message==="AbortError: aborted"||t.message==="Error: aborted"}evict(t,n){this.cache.get(t)===n&&this.cache.delete(t)}fill(t,n,r,i){const a=new zM.default,o=new UM.default;o.addCallback(i);const s={aborter:a,promise:this.fillCallback(n,a.signal,u=>{o.callback(u)}),settled:!1,statusReporter:o,get aborted(){return this.aborter.signal.aborted}};s.aborter.addSignal(r),s.aborter.signal.addEventListener("abort",()=>{s.settled||this.evict(t,s)}),s.promise.then(()=>{s.settled=!0},()=>{s.settled=!0,this.evict(t,s)}).catch(u=>{throw console.error(u),u}),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 OM.AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const a=this.cache.get(t);return a?a.aborted&&!a.settled?(this.evict(t,a),this.get(t,n,r,i)):a.settled?a.promise:(a.aborter.addSignal(r),a.statusReporter.addCallback(i),uc.checkSinglePromise(a.promise,r)):(this.fill(t,n,r,i),uc.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}}ap.default=uc;var GM=Nf&&Nf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Tx,"__esModule",{value:!0});const HM=GM(ap);var fc=Tx.default=HM.default;class VM{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 jM=VM;const cc=Xs(jM);class ei{constructor(t,n){this.ranges=arguments.length===2?[{min:t,max:n}]:0 in t?Object.assign({},t):[t]}min(){return this.ranges[0].min}max(){return this.ranges[this.ranges.length-1].max}contains(t){for(let n=0;n<this.ranges.length;n+=1){const r=this.ranges[n];if(r.min<=t&&r.max>=t)return!0}return!1}isContiguous(){return this.ranges.length>1}getRanges(){return this.ranges.map(t=>new ei(t.min,t.max))}toString(){return this.ranges.map(t=>`[${t.min}-${t.max}]`).join(",")}union(t){const n=this.getRanges().concat(t.getRanges()).sort(this.rangeOrder),r=[];let i=n[0];for(let a=1;a<n.length;a+=1){const o=n[a];o.min()>i.max()+1?(r.push(i),i=o):o.max()>i.max()&&(i=new ei(i.min(),o.max()))}return r.push(i),r.length===1?r[0]:new ei(r)}intersection(t){let n=this,r=t;const i=this.ranges(),a=r.ranges(),o=i.length,s=a.length;let u=0,l=0;const f=[];for(;u<o&&l<s;){n=i[u],r=a[l];const c=Math.max(n.min(),r.min()),h=Math.min(n.max(),r.max());h>=c&&f.push(new ei(c,h)),n.max()>r.max()?l+=1:u+=1}if(f.length===0)throw new Error("found range of length 0");return f.length===1?f[0]:new ei(f)}coverage(){let t=0;const n=this.ranges();for(const r of n)t+=r.max()-r.min()+1;return t}rangeOrder(t,n){let r=t,i=n;return arguments.length<2&&(i=r,r=this),r.min()<i.min()?-1:r.min()>i.min()?1:r.max()<i.max()?-1:i.max()>r.max()?1:0}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const qM=4,Rx=0,Mx=1,ZM=2;function oo(e){let t=e.length;for(;--t>=0;)e[t]=0}const WM=0,Px=1,YM=2,QM=3,$M=258,hp=29,bl=256,yl=bl+1+hp,so=30,dp=19,Lx=2*yl+1,sa=15,pp=16,XM=7,gp=256,Nx=16,Ox=17,zx=18,mp=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]),hc=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]),KM=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Ux=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),JM=512,cr=new Array((yl+2)*2);oo(cr);const wl=new Array(so*2);oo(wl);const vl=new Array(JM);oo(vl);const xl=new Array($M-QM+1);oo(xl);const bp=new Array(hp);oo(bp);const dc=new Array(so);oo(dc);function yp(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 Gx,Hx,Vx;function wp(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const jx=e=>e<256?vl[e]:vl[256+(e>>>7)],Al=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},jt=(e,t,n)=>{e.bi_valid>pp-n?(e.bi_buf|=t<<e.bi_valid&65535,Al(e,e.bi_buf),e.bi_buf=t>>pp-e.bi_valid,e.bi_valid+=n-pp):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},Wn=(e,t,n)=>{jt(e,n[t*2],n[t*2+1])},qx=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},eP=e=>{e.bi_valid===16?(Al(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)},tP=(e,t)=>{const n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,u=t.stat_desc.max_length;let l,f,c,h,d,p,m=0;for(h=0;h<=sa;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Lx;l++)f=e.heap[l],h=n[n[f*2+1]*2+1]+1,h>u&&(h=u,m++),n[f*2+1]=h,!(f>r)&&(e.bl_count[h]++,d=0,f>=s&&(d=o[f-s]),p=n[f*2],e.opt_len+=p*(h+d),a&&(e.static_len+=p*(i[f*2+1]+d)));if(m!==0){do{for(h=u-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[u]--,m-=2}while(m>0);for(h=u;h!==0;h--)for(f=e.bl_count[h];f!==0;)c=e.heap[--l],!(c>r)&&(n[c*2+1]!==h&&(e.opt_len+=(h-n[c*2+1])*n[c*2],n[c*2+1]=h),f--)}},Zx=(e,t,n)=>{const r=new Array(sa+1);let i=0,a,o;for(a=1;a<=sa;a++)i=i+n[a-1]<<1,r[a]=i;for(o=0;o<=t;o++){let s=e[o*2+1];s!==0&&(e[o*2]=qx(r[s]++,s))}},nP=()=>{let e,t,n,r,i;const a=new Array(sa+1);for(n=0,r=0;r<hp-1;r++)for(bp[r]=n,e=0;e<1<<mp[r];e++)xl[n++]=r;for(xl[n-1]=r,i=0,r=0;r<16;r++)for(dc[r]=i,e=0;e<1<<hc[r];e++)vl[i++]=r;for(i>>=7;r<so;r++)for(dc[r]=i<<7,e=0;e<1<<hc[r]-7;e++)vl[256+i++]=r;for(t=0;t<=sa;t++)a[t]=0;for(e=0;e<=143;)cr[e*2+1]=8,e++,a[8]++;for(;e<=255;)cr[e*2+1]=9,e++,a[9]++;for(;e<=279;)cr[e*2+1]=7,e++,a[7]++;for(;e<=287;)cr[e*2+1]=8,e++,a[8]++;for(Zx(cr,yl+1,a),e=0;e<so;e++)wl[e*2+1]=5,wl[e*2]=qx(e,5);Gx=new yp(cr,mp,bl+1,yl,sa),Hx=new yp(wl,hc,0,so,sa),Vx=new yp(new Array(0),KM,0,dp,XM)},Wx=e=>{let t;for(t=0;t<yl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<so;t++)e.dyn_dtree[t*2]=0;for(t=0;t<dp;t++)e.bl_tree[t*2]=0;e.dyn_ltree[gp*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Yx=e=>{e.bi_valid>8?Al(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Qx=(e,t,n,r)=>{const i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]},vp=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&Qx(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Qx(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},$x=(e,t,n)=>{let r,i,a=0,o,s;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+a++]&255,r+=(e.pending_buf[e.sym_buf+a++]&255)<<8,i=e.pending_buf[e.sym_buf+a++],r===0?Wn(e,i,t):(o=xl[i],Wn(e,o+bl+1,t),s=mp[o],s!==0&&(i-=bp[o],jt(e,i,s)),r--,o=jx(r),Wn(e,o,n),s=hc[o],s!==0&&(r-=dc[o],jt(e,r,s)));while(a<e.sym_next);Wn(e,gp,t)},xp=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems;let o,s,u=-1,l;for(e.heap_len=0,e.heap_max=Lx,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=u=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=u,o=e.heap_len>>1;o>=1;o--)vp(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],vp(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,vp(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],tP(e,t),Zx(n,u,e.bl_count)},Xx=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[Nx*2]++):s<=10?e.bl_tree[Ox*2]++:e.bl_tree[zx*2]++,s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4))},Kx=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)){if(s<l)do Wn(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Wn(e,a,e.bl_tree),s--),Wn(e,Nx,e.bl_tree),jt(e,s-3,2)):s<=10?(Wn(e,Ox,e.bl_tree),jt(e,s-3,3)):(Wn(e,zx,e.bl_tree),jt(e,s-11,7));s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4)}},rP=e=>{let t;for(Xx(e,e.dyn_ltree,e.l_desc.max_code),Xx(e,e.dyn_dtree,e.d_desc.max_code),xp(e,e.bl_desc),t=dp-1;t>=3&&e.bl_tree[Ux[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},iP=(e,t,n,r)=>{let i;for(jt(e,t-257,5),jt(e,n-1,5),jt(e,r-4,4),i=0;i<r;i++)jt(e,e.bl_tree[Ux[i]*2+1],3);Kx(e,e.dyn_ltree,t-1),Kx(e,e.dyn_dtree,n-1)},aP=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Rx;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Mx;for(n=32;n<bl;n++)if(e.dyn_ltree[n*2]!==0)return Mx;return Rx};let Jx=!1;const oP=e=>{Jx||(nP(),Jx=!0),e.l_desc=new wp(e.dyn_ltree,Gx),e.d_desc=new wp(e.dyn_dtree,Hx),e.bl_desc=new wp(e.bl_tree,Vx),e.bi_buf=0,e.bi_valid=0,Wx(e)},eA=(e,t,n,r)=>{jt(e,(WM<<1)+(r?1:0),3),Yx(e),Al(e,n),Al(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},sP=e=>{jt(e,Px<<1,3),Wn(e,gp,cr),eP(e)},lP=(e,t,n,r)=>{let i,a,o=0;e.level>0?(e.strm.data_type===ZM&&(e.strm.data_type=aP(e)),xp(e,e.l_desc),xp(e,e.d_desc),o=rP(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?eA(e,t,n,r):e.strategy===qM||a===i?(jt(e,(Px<<1)+(r?1:0),3),$x(e,cr,wl)):(jt(e,(YM<<1)+(r?1:0),3),iP(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),$x(e,e.dyn_ltree,e.dyn_dtree)),Wx(e),r&&Yx(e)},uP=(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[(xl[n]+bl+1)*2]++,e.dyn_dtree[jx(t)*2]++),e.sym_next===e.sym_end);var fP=oP,cP=eA,hP=lP,dP=uP,pP=sP,gP={_tr_init:fP,_tr_stored_block:cP,_tr_flush_block:hP,_tr_tally:dP,_tr_align:pP},El=(e,t,n,r)=>{let i=e&65535|0,a=e>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0};const mP=()=>{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},bP=new Uint32Array(mP());var dt=(e,t,n,r)=>{const i=bP,a=r+n;e^=-1;for(let o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1},lo={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"},_l={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:yP,_tr_stored_block:Ap,_tr_flush_block:wP,_tr_tally:ti,_tr_align:vP}=gP,{Z_NO_FLUSH:ni,Z_PARTIAL_FLUSH:xP,Z_FULL_FLUSH:AP,Z_FINISH:un,Z_BLOCK:tA,Z_OK:wt,Z_STREAM_END:nA,Z_STREAM_ERROR:Yn,Z_DATA_ERROR:EP,Z_BUF_ERROR:Ep,Z_DEFAULT_COMPRESSION:_P,Z_FILTERED:SP,Z_HUFFMAN_ONLY:pc,Z_RLE:CP,Z_FIXED:TP,Z_DEFAULT_STRATEGY:kP,Z_UNKNOWN:IP,Z_DEFLATED:gc}=_l,BP=9,DP=15,FP=8,RP=29,_p=256+1+RP,MP=30,PP=19,LP=2*_p+1,NP=15,de=3,ri=258,Qn=ri+de+1,OP=32,uo=42,Sp=57,Cp=69,Tp=73,kp=91,Ip=103,la=113,Sl=666,Bt=1,fo=2,ua=3,co=4,zP=3,fa=(e,t)=>(e.msg=lo[t],t),rA=e=>e*2-(e>4?9:0),ii=e=>{let t=e.length;for(;--t>=0;)e[t]=0},UP=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 ai=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const $t=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))},Xt=(e,t)=>{wP(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,$t(e.strm)},xe=(e,t)=>{e.pending_buf[e.pending++]=t},Cl=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},Bp=(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=El(e.adler,t,i,n):e.state.wrap===2&&(e.adler=dt(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},iA=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match;const u=e.strstart>e.w_size-Qn?e.strstart-(e.w_size-Qn):0,l=e.window,f=e.w_mask,c=e.prev,h=e.strstart+ri;let d=l[r+o-1],p=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(l[i+o]!==p||l[i+o-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(a=ri-(h-r),r=h-ri,a>o){if(e.match_start=t,o=a,a>=s)break;d=l[r+o-1],p=l[r+o]}}while((t=c[t&f])>u&&--n!==0);return o<=e.lookahead?o:e.lookahead},ho=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Qn)&&(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),UP(e),r+=t),e.strm.avail_in===0)break;if(n=Bp(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=de)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=ai(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=ai(e,e.ins_h,e.window[i+de-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<de)););}while(e.lookahead<Qn&&e.strm.avail_in!==0)},aA=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,a,o=0,s=e.strm.avail_in;do{if(r=65535,a=e.bi_valid+42>>3,e.strm.avail_out<a||(a=e.strm.avail_out-a,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>a&&(r=a),r<n&&(r===0&&t!==un||t===ni||r!==i+e.strm.avail_in)))break;o=t===un&&r===i+e.strm.avail_in?1:0,Ap(e,0,0,o),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,$t(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&&(Bp(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(o===0);return s-=e.strm.avail_in,s&&(s>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=s&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-s,e.strm.next_in),e.strstart),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),o?co:t!==ni&&t!==un&&e.strm.avail_in===0&&e.strstart===e.block_start?fo:(a=e.window_size-e.strstart,e.strm.avail_in>a&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,a+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),a>e.strm.avail_in&&(a=e.strm.avail_in),a&&(Bp(e.strm,e.window,e.strstart,a),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.high_water<e.strstart&&(e.high_water=e.strstart),a=e.bi_valid+42>>3,a=e.pending_buf_size-a>65535?65535:e.pending_buf_size-a,n=a>e.w_size?e.w_size:a,i=e.strstart-e.block_start,(i>=n||(i||t===un)&&t!==ni&&e.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=t===un&&e.strm.avail_in===0&&r===i?1:0,Ap(e,e.block_start,r,o),e.block_start+=r,$t(e.strm)),o?ua:Bt)},Dp=(e,t)=>{let n,r;for(;;){if(e.lookahead<Qn){if(ho(e),e.lookahead<Qn&&t===ni)return Bt;if(e.lookahead===0)break}if(n=0,e.lookahead>=de&&(e.ins_h=ai(e,e.ins_h,e.window[e.strstart+de-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-Qn&&(e.match_length=iA(e,n)),e.match_length>=de)if(r=ti(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=ai(e,e.ins_h,e.window[e.strstart+de-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=ai(e,e.ins_h,e.window[e.strstart+1]);else r=ti(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Xt(e,!1),e.strm.avail_out===0))return Bt}return e.insert=e.strstart<de-1?e.strstart:de-1,t===un?(Xt(e,!0),e.strm.avail_out===0?ua:co):e.sym_next&&(Xt(e,!1),e.strm.avail_out===0)?Bt:fo},po=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<Qn){if(ho(e),e.lookahead<Qn&&t===ni)return Bt;if(e.lookahead===0)break}if(n=0,e.lookahead>=de&&(e.ins_h=ai(e,e.ins_h,e.window[e.strstart+de-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=de-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Qn&&(e.match_length=iA(e,n),e.match_length<=5&&(e.strategy===SP||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=ti(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=ai(e,e.ins_h,e.window[e.strstart+de-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=de-1,e.strstart++,r&&(Xt(e,!1),e.strm.avail_out===0))return Bt}else if(e.match_available){if(r=ti(e,0,e.window[e.strstart-1]),r&&Xt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Bt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=ti(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<de-1?e.strstart:de-1,t===un?(Xt(e,!0),e.strm.avail_out===0?ua:co):e.sym_next&&(Xt(e,!1),e.strm.avail_out===0)?Bt:fo},GP=(e,t)=>{let n,r,i,a;const o=e.window;for(;;){if(e.lookahead<=ri){if(ho(e),e.lookahead<=ri&&t===ni)return Bt;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=de&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+ri;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=ri-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=de?(n=ti(e,1,e.match_length-de),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=ti(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Xt(e,!1),e.strm.avail_out===0))return Bt}return e.insert=0,t===un?(Xt(e,!0),e.strm.avail_out===0?ua:co):e.sym_next&&(Xt(e,!1),e.strm.avail_out===0)?Bt:fo},HP=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(ho(e),e.lookahead===0)){if(t===ni)return Bt;break}if(e.match_length=0,n=ti(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Xt(e,!1),e.strm.avail_out===0))return Bt}return e.insert=0,t===un?(Xt(e,!0),e.strm.avail_out===0?ua:co):e.sym_next&&(Xt(e,!1),e.strm.avail_out===0)?Bt:fo};function $n(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 Tl=[new $n(0,0,0,0,aA),new $n(4,4,8,4,Dp),new $n(4,5,16,8,Dp),new $n(4,6,32,32,Dp),new $n(4,4,16,16,po),new $n(8,16,32,32,po),new $n(8,16,128,128,po),new $n(8,32,128,256,po),new $n(32,128,258,1024,po),new $n(32,258,258,4096,po)],VP=e=>{e.window_size=2*e.w_size,ii(e.head),e.max_lazy_match=Tl[e.level].max_lazy,e.good_match=Tl[e.level].good_length,e.nice_match=Tl[e.level].nice_length,e.max_chain_length=Tl[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 jP(){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=gc,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(LP*2),this.dyn_dtree=new Uint16Array((2*MP+1)*2),this.bl_tree=new Uint16Array((2*PP+1)*2),ii(this.dyn_ltree),ii(this.dyn_dtree),ii(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(NP+1),this.heap=new Uint16Array(2*_p+1),ii(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*_p+1),ii(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 kl=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==uo&&t.status!==Sp&&t.status!==Cp&&t.status!==Tp&&t.status!==kp&&t.status!==Ip&&t.status!==la&&t.status!==Sl?1:0},oA=e=>{if(kl(e))return fa(e,Yn);e.total_in=e.total_out=0,e.data_type=IP;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?Sp:t.wrap?uo:la,e.adler=t.wrap===2?0:1,t.last_flush=-2,yP(t),wt},sA=e=>{const t=oA(e);return t===wt&&VP(e.state),t},qP=(e,t)=>kl(e)||e.state.wrap!==2?Yn:(e.state.gzhead=t,wt),lA=(e,t,n,r,i,a)=>{if(!e)return Yn;let o=1;if(t===_P&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>BP||n!==gc||r<8||r>15||t<0||t>9||a<0||a>TP||r===8&&o!==1)return fa(e,Yn);r===8&&(r=9);const s=new jP;return e.state=s,s.strm=e,s.status=uo,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+de-1)/de),s.window=new Uint8Array(s.w_size*2),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=(s.lit_bufsize-1)*3,s.level=t,s.strategy=a,s.method=n,sA(e)},ZP=(e,t)=>lA(e,t,gc,DP,FP,kP),WP=(e,t)=>{if(kl(e)||t>tA||t<0)return e?fa(e,Yn):Yn;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===Sl&&t!==un)return fa(e,e.avail_out===0?Ep:Yn);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if($t(e),e.avail_out===0)return n.last_flush=-1,wt}else if(e.avail_in===0&&rA(t)<=rA(r)&&t!==un)return fa(e,Ep);if(n.status===Sl&&e.avail_in!==0)return fa(e,Ep);if(n.status===uo&&n.wrap===0&&(n.status=la),n.status===uo){let i=gc+(n.w_bits-8<<4)<<8,a=-1;if(n.strategy>=pc||n.level<2?a=0:n.level<6?a=1:n.level===6?a=2:a=3,i|=a<<6,n.strstart!==0&&(i|=OP),i+=31-i%31,Cl(n,i),n.strstart!==0&&(Cl(n,e.adler>>>16),Cl(n,e.adler&65535)),e.adler=1,n.status=la,$t(e),n.pending!==0)return n.last_flush=-1,wt}if(n.status===Sp){if(e.adler=0,xe(n,31),xe(n,139),xe(n,8),n.gzhead)xe(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)),xe(n,n.gzhead.time&255),xe(n,n.gzhead.time>>8&255),xe(n,n.gzhead.time>>16&255),xe(n,n.gzhead.time>>24&255),xe(n,n.level===9?2:n.strategy>=pc||n.level<2?4:0),xe(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(xe(n,n.gzhead.extra.length&255),xe(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=dt(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Cp;else if(xe(n,0),xe(n,0),xe(n,0),xe(n,0),xe(n,0),xe(n,n.level===9?2:n.strategy>=pc||n.level<2?4:0),xe(n,zP),n.status=la,$t(e),n.pending!==0)return n.last_flush=-1,wt}if(n.status===Cp){if(n.gzhead.extra){let i=n.pending,a=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+a>n.pending_buf_size;){let s=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,$t(e),n.pending!==0)return n.last_flush=-1,wt;i=0,a-=s}let o=new Uint8Array(n.gzhead.extra);n.pending_buf.set(o.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending+=a,n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Tp}if(n.status===Tp){if(n.gzhead.name){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i)),$t(e),n.pending!==0)return n.last_flush=-1,wt;i=0}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,xe(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=kp}if(n.status===kp){if(n.gzhead.comment){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i)),$t(e),n.pending!==0)return n.last_flush=-1,wt;i=0}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,xe(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i))}n.status=Ip}if(n.status===Ip){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&($t(e),n.pending!==0))return n.last_flush=-1,wt;xe(n,e.adler&255),xe(n,e.adler>>8&255),e.adler=0}if(n.status=la,$t(e),n.pending!==0)return n.last_flush=-1,wt}if(e.avail_in!==0||n.lookahead!==0||t!==ni&&n.status!==Sl){let i=n.level===0?aA(n,t):n.strategy===pc?HP(n,t):n.strategy===CP?GP(n,t):Tl[n.level].func(n,t);if((i===ua||i===co)&&(n.status=Sl),i===Bt||i===ua)return e.avail_out===0&&(n.last_flush=-1),wt;if(i===fo&&(t===xP?vP(n):t!==tA&&(Ap(n,0,0,!1),t===AP&&(ii(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),$t(e),e.avail_out===0))return n.last_flush=-1,wt}return t!==un?wt:n.wrap<=0?nA:(n.wrap===2?(xe(n,e.adler&255),xe(n,e.adler>>8&255),xe(n,e.adler>>16&255),xe(n,e.adler>>24&255),xe(n,e.total_in&255),xe(n,e.total_in>>8&255),xe(n,e.total_in>>16&255),xe(n,e.total_in>>24&255)):(Cl(n,e.adler>>>16),Cl(n,e.adler&65535)),$t(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?wt:nA)},YP=e=>{if(kl(e))return Yn;const t=e.state.status;return e.state=null,t===la?fa(e,EP):wt},QP=(e,t)=>{let n=t.length;if(kl(e))return Yn;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==uo||r.lookahead)return Yn;if(i===1&&(e.adler=El(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(ii(r.head),r.strstart=0,r.block_start=0,r.insert=0);let u=new Uint8Array(r.w_size);u.set(t.subarray(n-r.w_size,n),0),t=u,n=r.w_size}const a=e.avail_in,o=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,ho(r);r.lookahead>=de;){let u=r.strstart,l=r.lookahead-(de-1);do r.ins_h=ai(r,r.ins_h,r.window[u+de-1]),r.prev[u&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=u,u++;while(--l);r.strstart=u,r.lookahead=de-1,ho(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=o,e.input=s,e.avail_in=a,r.wrap=i,wt};var $P=ZP,XP=lA,KP=sA,JP=oA,eL=qP,tL=WP,nL=YP,rL=QP,iL="pako deflate (from Nodeca project)",Il={deflateInit:$P,deflateInit2:XP,deflateReset:KP,deflateResetKeep:JP,deflateSetHeader:eL,deflate:tL,deflateEnd:nL,deflateSetDictionary:rL,deflateInfo:iL};const aL=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var oL=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)aL(n,r)&&(e[r]=n[r])}}return e},sL=e=>{let t=0;for(let r=0,i=e.length;r<i;r++)t+=e[r].length;const n=new Uint8Array(t);for(let r=0,i=0,a=e.length;r<a;r++){let o=e[r];n.set(o,i),i+=o.length}return n},mc={assign:oL,flattenChunks:sL};let uA=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{uA=!1}const Bl=new Uint8Array(256);for(let e=0;e<256;e++)Bl[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Bl[254]=Bl[254]=1;var lL=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,a,o=e.length,s=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(s),a=0,i=0;a<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t};const uL=(e,t)=>{if(t<65534&&e.subarray&&uA)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 fL=(e,t)=>{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,i;const a=new Array(n*2);for(i=0,r=0;r<n;){let o=e[r++];if(o<128){a[i++]=o;continue}let s=Bl[o];if(s>4){a[i++]=65533,r+=s-1;continue}for(o&=s===2?31:s===3?15:7;s>1&&r<n;)o=o<<6|e[r++]&63,s--;if(s>1){a[i++]=65533;continue}o<65536?a[i++]=o:(o-=65536,a[i++]=55296|o>>10&1023,a[i++]=56320|o&1023)}return uL(a,i)},cL=(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+Bl[e[n]]>t?n:t},Dl={string2buf:lL,buf2string:fL,utf8border:cL};function hL(){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 fA=hL;const cA=Object.prototype.toString,{Z_NO_FLUSH:dL,Z_SYNC_FLUSH:pL,Z_FULL_FLUSH:gL,Z_FINISH:mL,Z_OK:bc,Z_STREAM_END:bL,Z_DEFAULT_COMPRESSION:yL,Z_DEFAULT_STRATEGY:wL,Z_DEFLATED:vL}=_l;function Fp(e){this.options=mc.assign({level:yL,method:vL,chunkSize:16384,windowBits:15,memLevel:8,strategy:wL},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 fA,this.strm.avail_out=0;let n=Il.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==bc)throw new Error(lo[n]);if(t.header&&Il.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=Dl.string2buf(t.dictionary):cA.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=Il.deflateSetDictionary(this.strm,r),n!==bc)throw new Error(lo[n]);this._dict_set=!0}}Fp.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let i,a;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?mL:dL,typeof e=="string"?n.input=Dl.string2buf(e):cA.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(a===pL||a===gL)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=Il.deflate(n,a),i===bL)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=Il.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===bc;if(n.avail_out===0){this.onData(n.output);continue}if(a>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0},Fp.prototype.onData=function(e){this.chunks.push(e)},Fp.prototype.onEnd=function(e){e===bc&&(this.result=mc.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const yc=16209,xL=16191;var AL=function(t,n){let r,i,a,o,s,u,l,f,c,h,d,p,m,y,w,_,C,E,k,B,I,R,L,j;const M=t.state;r=t.next_in,L=t.input,i=r+(t.avail_in-5),a=t.next_out,j=t.output,o=a-(n-t.avail_out),s=a+(t.avail_out-257),u=M.dmax,l=M.wsize,f=M.whave,c=M.wnext,h=M.window,d=M.hold,p=M.bits,m=M.lencode,y=M.distcode,w=(1<<M.lenbits)-1,_=(1<<M.distbits)-1;e:do{p<15&&(d+=L[r++]<<p,p+=8,d+=L[r++]<<p,p+=8),C=m[d&w];t:for(;;){if(E=C>>>24,d>>>=E,p-=E,E=C>>>16&255,E===0)j[a++]=C&65535;else if(E&16){k=C&65535,E&=15,E&&(p<E&&(d+=L[r++]<<p,p+=8),k+=d&(1<<E)-1,d>>>=E,p-=E),p<15&&(d+=L[r++]<<p,p+=8,d+=L[r++]<<p,p+=8),C=y[d&_];n:for(;;){if(E=C>>>24,d>>>=E,p-=E,E=C>>>16&255,E&16){if(B=C&65535,E&=15,p<E&&(d+=L[r++]<<p,p+=8,p<E&&(d+=L[r++]<<p,p+=8)),B+=d&(1<<E)-1,B>u){t.msg="invalid distance too far back",M.mode=yc;break e}if(d>>>=E,p-=E,E=a-o,B>E){if(E=B-E,E>f&&M.sane){t.msg="invalid distance too far back",M.mode=yc;break e}if(I=0,R=h,c===0){if(I+=l-E,E<k){k-=E;do j[a++]=h[I++];while(--E);I=a-B,R=j}}else if(c<E){if(I+=l+c-E,E-=c,E<k){k-=E;do j[a++]=h[I++];while(--E);if(I=0,c<k){E=c,k-=E;do j[a++]=h[I++];while(--E);I=a-B,R=j}}}else if(I+=c-E,E<k){k-=E;do j[a++]=h[I++];while(--E);I=a-B,R=j}for(;k>2;)j[a++]=R[I++],j[a++]=R[I++],j[a++]=R[I++],k-=3;k&&(j[a++]=R[I++],k>1&&(j[a++]=R[I++]))}else{I=a-B;do j[a++]=j[I++],j[a++]=j[I++],j[a++]=j[I++],k-=3;while(k>2);k&&(j[a++]=j[I++],k>1&&(j[a++]=j[I++]))}}else if(E&64){t.msg="invalid distance code",M.mode=yc;break e}else{C=y[(C&65535)+(d&(1<<E)-1)];continue n}break}}else if(E&64)if(E&32){M.mode=xL;break e}else{t.msg="invalid literal/length code",M.mode=yc;break e}else{C=m[(C&65535)+(d&(1<<E)-1)];continue t}break}}while(r<i&&a<s);k=p>>3,r-=k,p-=k<<3,d&=(1<<p)-1,t.next_in=r,t.next_out=a,t.avail_in=r<i?5+(i-r):5-(r-i),t.avail_out=a<s?257+(s-a):257-(a-s),M.hold=d,M.bits=p};const go=15,hA=852,dA=592,pA=0,Rp=1,gA=2,EL=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]),_L=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]),SL=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]),CL=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 Fl=(e,t,n,r,i,a,o,s)=>{const u=s.bits;let l=0,f=0,c=0,h=0,d=0,p=0,m=0,y=0,w=0,_=0,C,E,k,B,I,R=null,L;const j=new Uint16Array(go+1),M=new Uint16Array(go+1);let ie=null,se,ge,Ie;for(l=0;l<=go;l++)j[l]=0;for(f=0;f<r;f++)j[t[n+f]]++;for(d=u,h=go;h>=1&&j[h]===0;h--);if(d>h&&(d=h),h===0)return i[a++]=1<<24|64<<16|0,i[a++]=1<<24|64<<16|0,s.bits=1,0;for(c=1;c<h&&j[c]===0;c++);for(d<c&&(d=c),y=1,l=1;l<=go;l++)if(y<<=1,y-=j[l],y<0)return-1;if(y>0&&(e===pA||h!==1))return-1;for(M[1]=0,l=1;l<go;l++)M[l+1]=M[l]+j[l];for(f=0;f<r;f++)t[n+f]!==0&&(o[M[t[n+f]]++]=f);if(e===pA?(R=ie=o,L=20):e===Rp?(R=EL,ie=_L,L=257):(R=SL,ie=CL,L=0),_=0,f=0,l=c,I=a,p=d,m=0,k=-1,w=1<<d,B=w-1,e===Rp&&w>hA||e===gA&&w>dA)return 1;for(;;){se=l-m,o[f]+1<L?(ge=0,Ie=o[f]):o[f]>=L?(ge=ie[o[f]-L],Ie=R[o[f]-L]):(ge=32+64,Ie=0),C=1<<l-m,E=1<<p,c=E;do E-=C,i[I+(_>>m)+E]=se<<24|ge<<16|Ie|0;while(E!==0);for(C=1<<l-1;_&C;)C>>=1;if(C!==0?(_&=C-1,_+=C):_=0,f++,--j[l]===0){if(l===h)break;l=t[n+o[f]]}if(l>d&&(_&B)!==k){for(m===0&&(m=d),I+=c,p=l-m,y=1<<p;p+m<h&&(y-=j[p+m],!(y<=0));)p++,y<<=1;if(w+=1<<p,e===Rp&&w>hA||e===gA&&w>dA)return 1;k=_&B,i[k]=d<<24|p<<16|I-a|0}}return _!==0&&(i[I+_]=l-m<<24|64<<16|0),s.bits=d,0};const TL=0,mA=1,bA=2,{Z_FINISH:yA,Z_BLOCK:kL,Z_TREES:wc,Z_OK:ca,Z_STREAM_END:IL,Z_NEED_DICT:BL,Z_STREAM_ERROR:fn,Z_DATA_ERROR:wA,Z_MEM_ERROR:vA,Z_BUF_ERROR:DL,Z_DEFLATED:xA}=_l,vc=16180,AA=16181,EA=16182,_A=16183,SA=16184,CA=16185,TA=16186,kA=16187,IA=16188,BA=16189,xc=16190,hr=16191,Mp=16192,DA=16193,Pp=16194,FA=16195,RA=16196,MA=16197,PA=16198,Ac=16199,Ec=16200,LA=16201,NA=16202,OA=16203,zA=16204,UA=16205,Lp=16206,GA=16207,HA=16208,qe=16209,VA=16210,jA=16211,FL=852,RL=592,ML=15,qA=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function PL(){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 ha=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<vc||t.mode>jA?1:0},ZA=e=>{if(ha(e))return fn;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=vc,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(FL),t.distcode=t.distdyn=new Int32Array(RL),t.sane=1,t.back=-1,ca},WA=e=>{if(ha(e))return fn;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,ZA(e)},YA=(e,t)=>{let n;if(ha(e))return fn;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?fn:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,WA(e))},QA=(e,t)=>{if(!e)return fn;const n=new PL;e.state=n,n.strm=e,n.window=null,n.mode=vc;const r=YA(e,t);return r!==ca&&(e.state=null),r},LL=e=>QA(e,ML);let $A=!0,Np,Op;const NL=e=>{if($A){Np=new Int32Array(512),Op=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(Fl(mA,e.lens,0,288,Np,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Fl(bA,e.lens,0,32,Op,0,e.work,{bits:5}),$A=!1}e.lencode=Np,e.lenbits=9,e.distcode=Op,e.distbits=5},XA=(e,t,n,r)=>{let i;const a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),r>=a.wsize?(a.window.set(t.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),a.window.set(t.subarray(n-r,n-r+i),a.wnext),r-=i,r?(a.window.set(t.subarray(n-r,n),0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0},OL=(e,t)=>{let n,r,i,a,o,s,u,l,f,c,h,d,p,m,y=0,w,_,C,E,k,B,I,R;const L=new Uint8Array(4);let j,M;const ie=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(ha(e)||!e.output||!e.input&&e.avail_in!==0)return fn;n=e.state,n.mode===hr&&(n.mode=Mp),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,f=n.bits,c=s,h=u,R=ca;e:for(;;)switch(n.mode){case vc:if(n.wrap===0){n.mode=Mp;break}for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.wrap&2&&l===35615){n.wbits===0&&(n.wbits=15),n.check=0,L[0]=l&255,L[1]=l>>>8&255,n.check=dt(n.check,L,2,0),l=0,f=0,n.mode=AA;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=qe;break}if((l&15)!==xA){e.msg="unknown compression method",n.mode=qe;break}if(l>>>=4,f-=4,I=(l&15)+8,n.wbits===0&&(n.wbits=I),I>15||I>n.wbits){e.msg="invalid window size",n.mode=qe;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=l&512?BA:hr,l=0,f=0;break;case AA:for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.flags=l,(n.flags&255)!==xA){e.msg="unknown compression method",n.mode=qe;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=qe;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&n.wrap&4&&(L[0]=l&255,L[1]=l>>>8&255,n.check=dt(n.check,L,2,0)),l=0,f=0,n.mode=EA;case EA:for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.head&&(n.head.time=l),n.flags&512&&n.wrap&4&&(L[0]=l&255,L[1]=l>>>8&255,L[2]=l>>>16&255,L[3]=l>>>24&255,n.check=dt(n.check,L,4,0)),l=0,f=0,n.mode=_A;case _A:for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&n.wrap&4&&(L[0]=l&255,L[1]=l>>>8&255,n.check=dt(n.check,L,2,0)),l=0,f=0,n.mode=SA;case SA:if(n.flags&1024){for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&n.wrap&4&&(L[0]=l&255,L[1]=l>>>8&255,n.check=dt(n.check,L,2,0)),l=0,f=0}else n.head&&(n.head.extra=null);n.mode=CA;case CA:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(I=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(a,a+d),I)),n.flags&512&&n.wrap&4&&(n.check=dt(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=TA;case TA:if(n.flags&2048){if(s===0)break e;d=0;do I=r[a+d++],n.head&&I&&n.length<65536&&(n.head.name+=String.fromCharCode(I));while(I&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=dt(n.check,r,d,a)),s-=d,a+=d,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=kA;case kA:if(n.flags&4096){if(s===0)break e;d=0;do I=r[a+d++],n.head&&I&&n.length<65536&&(n.head.comment+=String.fromCharCode(I));while(I&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=dt(n.check,r,d,a)),s-=d,a+=d,I)break e}else n.head&&(n.head.comment=null);n.mode=IA;case IA:if(n.flags&512){for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.wrap&4&&l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=qe;break}l=0,f=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=hr;break;case BA:for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}e.adler=n.check=qA(l),l=0,f=0,n.mode=xc;case xc:if(n.havedict===0)return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,BL;e.adler=n.check=1,n.mode=hr;case hr:if(t===kL||t===wc)break e;case Mp:if(n.last){l>>>=f&7,f-=f&7,n.mode=Lp;break}for(;f<3;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}switch(n.last=l&1,l>>>=1,f-=1,l&3){case 0:n.mode=DA;break;case 1:if(NL(n),n.mode=Ac,t===wc){l>>>=2,f-=2;break e}break;case 2:n.mode=RA;break;case 3:e.msg="invalid block type",n.mode=qe}l>>>=2,f-=2;break;case DA:for(l>>>=f&7,f-=f&7;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=qe;break}if(n.length=l&65535,l=0,f=0,n.mode=Pp,t===wc)break e;case Pp:n.mode=FA;case FA:if(d=n.length,d){if(d>s&&(d=s),d>u&&(d=u),d===0)break e;i.set(r.subarray(a,a+d),o),s-=d,a+=d,u-=d,o+=d,n.length-=d;break}n.mode=hr;break;case RA:for(;f<14;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.nlen=(l&31)+257,l>>>=5,f-=5,n.ndist=(l&31)+1,l>>>=5,f-=5,n.ncode=(l&15)+4,l>>>=4,f-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=qe;break}n.have=0,n.mode=MA;case MA:for(;n.have<n.ncode;){for(;f<3;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.lens[ie[n.have++]]=l&7,l>>>=3,f-=3}for(;n.have<19;)n.lens[ie[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,j={bits:n.lenbits},R=Fl(TL,n.lens,0,19,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid code lengths set",n.mode=qe;break}n.have=0,n.mode=PA;case PA:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(C<16)l>>>=w,f-=w,n.lens[n.have++]=C;else{if(C===16){for(M=w+2;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(l>>>=w,f-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=qe;break}I=n.lens[n.have-1],d=3+(l&3),l>>>=2,f-=2}else if(C===17){for(M=w+3;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=w,f-=w,I=0,d=3+(l&7),l>>>=3,f-=3}else{for(M=w+7;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=w,f-=w,I=0,d=11+(l&127),l>>>=7,f-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=qe;break}for(;d--;)n.lens[n.have++]=I}}if(n.mode===qe)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=qe;break}if(n.lenbits=9,j={bits:n.lenbits},R=Fl(mA,n.lens,0,n.nlen,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid literal/lengths set",n.mode=qe;break}if(n.distbits=6,n.distcode=n.distdyn,j={bits:n.distbits},R=Fl(bA,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,j),n.distbits=j.bits,R){e.msg="invalid distances set",n.mode=qe;break}if(n.mode=Ac,t===wc)break e;case Ac:n.mode=Ec;case Ec:if(s>=6&&u>=258){e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,AL(e,h),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,f=n.bits,n.mode===hr&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(_&&!(_&240)){for(E=w,k=_,B=C;y=n.lencode[B+((l&(1<<E+k)-1)>>E)],w=y>>>24,_=y>>>16&255,C=y&65535,!(E+w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=E,f-=E,n.back+=E}if(l>>>=w,f-=w,n.back+=w,n.length=C,_===0){n.mode=UA;break}if(_&32){n.back=-1,n.mode=hr;break}if(_&64){e.msg="invalid literal/length code",n.mode=qe;break}n.extra=_&15,n.mode=LA;case LA:if(n.extra){for(M=n.extra;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,f-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=NA;case NA:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(!(_&240)){for(E=w,k=_,B=C;y=n.distcode[B+((l&(1<<E+k)-1)>>E)],w=y>>>24,_=y>>>16&255,C=y&65535,!(E+w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=E,f-=E,n.back+=E}if(l>>>=w,f-=w,n.back+=w,_&64){e.msg="invalid distance code",n.mode=qe;break}n.offset=C,n.extra=_&15,n.mode=OA;case OA:if(n.extra){for(M=n.extra;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,f-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=qe;break}n.mode=zA;case zA:if(u===0)break e;if(d=h-u,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=qe;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),m=n.window}else m=i,p=o-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[o++]=m[p++];while(--d);n.length===0&&(n.mode=Ec);break;case UA:if(u===0)break e;i[o++]=n.length,u--,n.mode=Ec;break;case Lp:if(n.wrap){for(;f<32;){if(s===0)break e;s--,l|=r[a++]<<f,f+=8}if(h-=u,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?dt(n.check,i,h,o-h):El(n.check,i,h,o-h)),h=u,n.wrap&4&&(n.flags?l:qA(l))!==n.check){e.msg="incorrect data check",n.mode=qe;break}l=0,f=0}n.mode=GA;case GA:if(n.wrap&&n.flags){for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.wrap&4&&l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=qe;break}l=0,f=0}n.mode=HA;case HA:R=IL;break e;case qe:R=wA;break e;case VA:return vA;case jA:default:return fn}return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,(n.wsize||h!==e.avail_out&&n.mode<qe&&(n.mode<Lp||t!==yA))&&XA(e,e.output,e.next_out,h-e.avail_out),c-=e.avail_in,h-=e.avail_out,e.total_in+=c,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?dt(n.check,i,h,e.next_out-h):El(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===hr?128:0)+(n.mode===Ac||n.mode===Pp?256:0),(c===0&&h===0||t===yA)&&R===ca&&(R=DL),R},zL=e=>{if(ha(e))return fn;let t=e.state;return t.window&&(t.window=null),e.state=null,ca},UL=(e,t)=>{if(ha(e))return fn;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,ca):fn},GL=(e,t)=>{const n=t.length;let r,i,a;return ha(e)||(r=e.state,r.wrap!==0&&r.mode!==xc)?fn:r.mode===xc&&(i=1,i=El(i,t,n,0),i!==r.check)?wA:(a=XA(e,t,n,n),a?(r.mode=VA,vA):(r.havedict=1,ca))};var HL=WA,VL=YA,jL=ZA,qL=LL,ZL=QA,WL=OL,YL=zL,QL=UL,$L=GL,XL="pako inflate (from Nodeca project)",dr={inflateReset:HL,inflateReset2:VL,inflateResetKeep:jL,inflateInit:qL,inflateInit2:ZL,inflate:WL,inflateEnd:YL,inflateGetHeader:QL,inflateSetDictionary:$L,inflateInfo:XL};function KL(){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 JL=KL;const KA=Object.prototype.toString,{Z_NO_FLUSH:eN,Z_FINISH:tN,Z_OK:Rl,Z_STREAM_END:zp,Z_NEED_DICT:Up,Z_STREAM_ERROR:nN,Z_DATA_ERROR:JA,Z_MEM_ERROR:rN}=_l;function Ml(e){this.options=mc.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 fA,this.strm.avail_out=0;let n=dr.inflateInit2(this.strm,t.windowBits);if(n!==Rl)throw new Error(lo[n]);if(this.header=new JL,dr.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Dl.string2buf(t.dictionary):KA.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=dr.inflateSetDictionary(this.strm,t.dictionary),n!==Rl)))throw new Error(lo[n])}Ml.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let a,o,s;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?tN:eN,KA.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),a=dr.inflate(n,o),a===Up&&i&&(a=dr.inflateSetDictionary(n,i),a===Rl?a=dr.inflate(n,o):a===JA&&(a=Up));n.avail_in>0&&a===zp&&n.state.wrap>0&&e[n.next_in]!==0;)dr.inflateReset(n),a=dr.inflate(n,o);switch(a){case nN:case JA:case Up:case rN:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||a===zp))if(this.options.to==="string"){let u=Dl.utf8border(n.output,n.next_out),l=n.next_out-u,f=Dl.buf2string(n.output,u);n.next_out=l,n.avail_out=r-l,l&&n.output.set(n.output.subarray(u,u+l),0),this.onData(f)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(a===Rl&&s===0)){if(a===zp)return a=dr.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},Ml.prototype.onData=function(e){this.chunks.push(e)},Ml.prototype.onEnd=function(e){e===Rl&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=mc.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Gp(e,t){const n=new Ml(t);if(n.push(e),n.err)throw n.msg||lo[n.err];return n.result}function iN(e,t){return t=t||{},t.raw=!0,Gp(e,t)}var aN=Ml,oN=Gp,sN=iN,lN=Gp,uN=_l,fN={Inflate:aN,inflate:oN,inflateRaw:sN,ungzip:lN,constants:uN};const{Inflate:iU,inflate:aU,inflateRaw:cN,ungzip:oU}=fN;var hN=cN;function dN(e){return hN(e.subarray(2))}let pN=class extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}};function gN(e){e.sort((i,a)=>Number(i.offset)-Number(a.offset));const t=[];let n,r;for(const i of e)n&&r&&Number(i.offset)-r<=2e3?(n.length=BigInt(Number(n.length)+Number(i.length)-r+Number(i.offset)),n.blocks.push(i)):t.push(n={blocks:[i],length:i.length,offset:i.offset}),r=Number(n.offset)+Number(n.length);return t}function _c(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new pN("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const mN=1,bN=2,yN=3;function Hp(e,t,n,r){return e<r&&t>=n}function wN(e){const t=e?"big":"little",n=new ke().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new ke().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new ke().endianess(t).array("blocksToFetch",{length:"cnt",type:new ke().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new ke().array("recurOffsets",{length:"cnt",type:new ke().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new ke().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new ke().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[yN]:new ke().array("items",{length:"itemCount",type:new ke().floatle("score")}),[bN]:new ke().array("items",{length:"itemCount",type:new ke().endianess(t).int32("start").floatle("score")}),[mN]:new ke().array("items",{length:"itemCount",type:new ke().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class e3{constructor(t,n,r,i,a,o){if(this.bbi=t,this.refsByName=n,this.cirTreeOffset=r,this.isBigEndian=i,this.isCompressed=a,this.blockType=o,this.featureCache=new fc({cache:new cc({maxSize:1e3}),fill:async(u,l)=>{const f=Number(u.length),c=Number(u.offset),{buffer:h}=await this.bbi.read(pe.Buffer.alloc(f),0,f,c,{signal:l});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const s=wN(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(t,n,r,i,a){try{const{refsByName:o,bbi:s,cirTreeOffset:u,isBigEndian:l}=this,f=o[t];f===void 0&&i.complete();const c={chrId:f,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=s.read(pe.Buffer.alloc(48),0,48,Number(u),a));const{buffer:h}=await this.cirTreePromise,d=l?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],m=0;const y=(E,k,B)=>{try{const I=E.subarray(k),R=this.leafParser.parse(I);if(R.blocksToFetch&&(p=p.concat(R.blocksToFetch.filter(L=>w(L)).map(L=>({offset:L.blockOffset,length:L.blockSize})))),R.recurOffsets){const L=R.recurOffsets.filter(j=>w(j)).map(j=>Number(j.blockOffset));L.length>0&&C(L,B+1)}}catch(I){i.error(I)}},w=E=>{const{startChrom:k,startBase:B,endChrom:I,endBase:R}=E;return(k<f||k===f&&B<=r)&&(I>f||I===f&&R>=n)},_=async(E,k,B)=>{try{const I=k.max()-k.min(),R=k.min(),L=await this.featureCache.get(`${I}_${R}`,{length:I,offset:R},a==null?void 0:a.signal);for(const j of E)k.contains(j)&&(y(L,j-R,B),m-=1,m===0&&this.readFeatures(i,p,{...a,request:c}))}catch(I){i.error(I)}},C=(E,k)=>{try{m+=E.length;const B=4+Number(d)*32;let I=new ei(E[0],E[0]+B);for(let R=1;R<E.length;R+=1){const L=new ei(E[R],E[R]+B);I=I.union(L)}I.getRanges().map(R=>_(E,R,k))}catch(B){i.error(B)}};return C([Number(u)+48],1)}catch(o){i.error(o)}}parseSummaryBlock(t,n,r){const i=[];let a=n;const o=new DataView(t.buffer,t.byteOffset,t.length);for(;a<t.byteLength;){const s=o.getUint32(a,!0);a+=4;const u=o.getUint32(a,!0);a+=4;const l=o.getUint32(a,!0);a+=4;const f=o.getUint32(a,!0);a+=4;const c=o.getFloat32(a,!0);a+=4;const h=o.getFloat32(a,!0);a+=4;const d=o.getFloat32(a,!0);a+=4,a+=4,(!r||s===r.chrId&&Hp(u,l,r.start,r.end))&&i.push({start:u,end:l,maxScore:h,minScore:c,summary:!0,score:d/(f||1)})}return i}parseBigBedBlock(t,n,r,i){const a=[];let o=n;for(;o<t.byteLength;){const s=this.bigBedParser.parse(t.subarray(o));s.uniqueId=`bb-${r+o}`,a.push(s),o+=s.offset}return i?a.filter(s=>Hp(s.start,s.end,i.start,i.end)):a}parseBigWigBlock(t,n,r){const i=t.subarray(n),a=new DataView(i.buffer,i.byteOffset,i.length);let o=0;o+=4;const s=a.getInt32(o,!0);o+=8;const u=a.getUint32(o,!0);o+=4;const l=a.getUint32(o,!0);o+=4;const f=a.getUint8(o);o+=2;const c=a.getUint16(o,!0);o+=2;const h=new Array(c);switch(f){case 1:{for(let d=0;d<c;d++){const p=a.getInt32(o,!0);o+=4;const m=a.getInt32(o,!0);o+=4;const y=a.getFloat32(o,!0);o+=4,h[d]={start:p,end:m,score:y}}break}case 2:{for(let d=0;d<c;d++){const p=a.getInt32(o,!0);o+=4;const m=a.getFloat32(o,!0);o+=4,h[d]={score:m,start:p,end:p+l}}break}case 3:{for(let d=0;d<c;d++){const p=a.getFloat32(o,!0);o+=4;const m=s+d*u;h[d]={score:p,start:m,end:m+l}}break}}return r?h.filter(d=>Hp(d.start,d.end,r.start,r.end)):h}async readFeatures(t,n,r={}){try{const{blockType:i,isCompressed:a}=this,{signal:o,request:s}=r,u=gN(n);_c(o),await Promise.all(u.map(async l=>{_c(o);const{length:f,offset:c}=l,h=await this.featureCache.get(`${f}_${c}`,l,o);for(const d of l.blocks){_c(o);let p=Number(d.offset)-Number(l.offset),m=h;switch(a&&(m=dN(h.subarray(p)),p=0),_c(o),i){case"summary":{t.next(this.parseSummaryBlock(m,p,s));break}case"bigwig":{t.next(this.parseBigWigBlock(m,p,s));break}case"bigbed":{t.next(this.parseBigBedBlock(m,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 Vp=function(e,t){return Vp=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])},Vp(e,t)};function jp(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Vp(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function vN(e,t,n,r){function i(a){return a instanceof n?a:new n(function(o){o(a)})}return new(n||(n=Promise))(function(a,o){function s(f){try{l(r.next(f))}catch(c){o(c)}}function u(f){try{l(r.throw(f))}catch(c){o(c)}}function l(f){f.done?a(f.value):i(f.value).then(s,u)}l((r=r.apply(e,t||[])).next())})}function t3(e,t){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,i,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(l){return function(f){return u([l,f])}}function u(l){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(n=0)),n;)try{if(r=1,i&&(a=l[0]&2?i.return:l[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,l[1])).done)return a;switch(i=0,a&&(l=[l[0]&2,a.value]),l[0]){case 0:case 1:a=l;break;case 4:return n.label++,{value:l[1],done:!1};case 5:n.label++,i=l[1],l=[0];continue;case 7:l=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(l[0]===6||l[0]===2)){n=0;continue}if(l[0]===3&&(!a||l[1]>a[0]&&l[1]<a[3])){n.label=l[1];break}if(l[0]===6&&n.label<a[1]){n.label=a[1],a=l;break}if(a&&n.label<a[2]){n.label=a[2],n.ops.push(l);break}a[2]&&n.ops.pop(),n.trys.pop();continue}l=t.call(e,n)}catch(f){l=[6,f],i=0}finally{r=a=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function Pl(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 qp(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(s){o={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a}function Zp(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||(a=Array.prototype.slice.call(t,0,r)),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}function mo(e){return this instanceof mo?(this.v=e,this):new mo(e)}function xN(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),i,a=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(h){r[h]&&(i[h]=function(d){return new Promise(function(p,m){a.push([h,d,p,m])>1||s(h,d)})})}function s(h,d){try{u(r[h](d))}catch(p){c(a[0][3],p)}}function u(h){h.value instanceof mo?Promise.resolve(h.value.v).then(l,f):c(a[0][2],h)}function l(h){s("next",h)}function f(h){s("throw",h)}function c(h,d){h(d),a.shift(),a.length&&s(a[0][0],a[0][1])}}function AN(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 Pl=="function"?Pl(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(a){n[a]=e[a]&&function(o){return new Promise(function(s,u){o=e[a](o),i(s,u,o.done,o.value)})}}function i(a,o,s,u){Promise.resolve(u).then(function(l){a({value:l,done:s})},o)}}typeof SuppressedError=="function"&&SuppressedError;function ot(e){return typeof e=="function"}function n3(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 Wp=n3(function(e){return function(n){e(this),this.message=n?n.length+` errors occurred during unsubscription:
322
327
  `+n.map(function(r,i){return i+1+") "+r.toString()}).join(`
323
- `):"",this.name="UnsubscriptionError",this.errors=n}});function JA(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var jp=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=Pl(a),u=s.next();!u.done;u=s.next()){var l=u.value;l.remove(this)}}catch(b){t={error:b}}finally{try{u&&!u.done&&(n=s.return)&&n.call(s)}finally{if(t)throw t.error}}else a.remove(this);var f=this.initialTeardown;if(at(f))try{f()}catch(b){o=b instanceof Vp?b.errors:[b]}var c=this._finalizers;if(c){this._finalizers=null;try{for(var h=Pl(c),d=h.next();!d.done;d=h.next()){var p=d.value;try{t3(p)}catch(b){o=o??[],b instanceof Vp?o=Hp(Hp([],Gp(o)),Gp(b.errors)):o.push(b)}}}catch(b){r={error:b}}finally{try{d&&!d.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}}if(o)throw new Vp(o)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)t3(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)&&JA(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&JA(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();jp.EMPTY;function e3(e){return e instanceof jp||e&&"closed"in e&&at(e.remove)&&at(e.add)&&at(e.unsubscribe)}function t3(e){at(e)?e():e.unsubscribe()}var n3={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},r3={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return setTimeout.apply(void 0,Hp([e,t],Gp(n)))},clearTimeout:function(e){var t=r3.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function i3(e){r3.setTimeout(function(){throw e})}function o3(){}function dN(e){e()}var qp=function(e){Up(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,e3(n)&&n.add(r)):r.destination=bN,r}return t.create=function(n,r,i){return new Ac(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}(jp),pN=Function.prototype.bind;function Zp(e,t){return pN.call(e,t)}var gN=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){Ec(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){Ec(r)}else Ec(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){Ec(n)}},e}(),Ac=function(e){Up(t,e);function t(n,r,i){var o=e.call(this)||this,a;if(at(n)||!n)a={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;o&&n3.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return o.unsubscribe()},a={next:n.next&&Zp(n.next,s),error:n.error&&Zp(n.error,s),complete:n.complete&&Zp(n.complete,s)}):a=n}return o.destination=new gN(a),o}return t}(qp);function Ec(e){i3(e)}function mN(e){throw e}var bN={closed:!0,next:o3,error:mN,complete:o3},Wp=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function a3(e){return e}function yN(e){return e.length===0?a3:e.length===1?e[0]:function(n){return e.reduce(function(r,i){return i(r)},n)}}var cn=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=vN(t)?t:new Ac(t,n,r);return dN(function(){var a=i,s=a.operator,u=a.source;o.add(s?s.call(o,u):u?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=s3(n),new n(function(i,o){var a=new Ac({next:function(s){try{t(s)}catch(u){o(u),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[Wp]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return yN(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=s3(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 s3(e){var t;return(t=e??n3.Promise)!==null&&t!==void 0?t:Promise}function wN(e){return e&&at(e.next)&&at(e.error)&&at(e.complete)}function vN(e){return e&&e instanceof qp||wN(e)&&e3(e)}function xN(e){return at(e==null?void 0:e.lift)}function ba(e){return function(t){if(xN(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 Ll(e,t,n,r,i){return new AN(e,t,n,r,i)}var AN=function(e){Up(t,e);function t(n,r,i,o,a,s){var u=e.call(this,n)||this;return u.onFinalize=a,u.shouldUnsubscribe=s,u._next=r?function(l){try{r(l)}catch(f){n.error(f)}}:e.prototype._next,u._error=o?function(l){try{o(l)}catch(f){n.error(f)}finally{this.unsubscribe()}}:e.prototype._error,u._complete=i?function(){try{i()}catch(l){n.error(l)}finally{this.unsubscribe()}}:e.prototype._complete,u}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}(qp),EN=new cn(function(e){return e.complete()});function _N(e){return e&&at(e.schedule)}function l3(e){return e[e.length-1]}function SN(e){return _N(l3(e))?e.pop():void 0}function CN(e,t){return typeof l3(e)=="number"?e.pop():t}var u3=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function f3(e){return at(e==null?void 0:e.then)}function c3(e){return at(e[Wp])}function h3(e){return Symbol.asyncIterator&&at(e==null?void 0:e[Symbol.asyncIterator])}function d3(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 kN(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var p3=kN();function g3(e){return at(e==null?void 0:e[p3])}function m3(e){return cN(this,arguments,function(){var n,r,i,o;return $A(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,ma(n.read())];case 3:return r=a.sent(),i=r.value,o=r.done,o?[4,ma(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,ma(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 b3(e){return at(e==null?void 0:e.getReader)}function ya(e){if(e instanceof cn)return e;if(e!=null){if(c3(e))return TN(e);if(u3(e))return IN(e);if(f3(e))return BN(e);if(h3(e))return y3(e);if(g3(e))return DN(e);if(b3(e))return FN(e)}throw d3(e)}function TN(e){return new cn(function(t){var n=e[Wp]();if(at(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function IN(e){return new cn(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function BN(e){return new cn(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,i3)})}function DN(e){return new cn(function(t){var n,r;try{for(var i=Pl(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 y3(e){return new cn(function(t){RN(e,t).catch(function(n){return t.error(n)})})}function FN(e){return y3(m3(e))}function RN(e,t){var n,r,i,o;return fN(this,void 0,void 0,function(){var a,s;return $A(this,function(u){switch(u.label){case 0:u.trys.push([0,5,6,11]),n=hN(e),u.label=1;case 1:return[4,n.next()];case 2:if(r=u.sent(),!!r.done)return[3,4];if(a=r.value,t.next(a),t.closed)return[2];u.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=u.sent(),i={error:s},[3,11];case 6:return u.trys.push([6,,9,10]),r&&!r.done&&(o=n.return)?[4,o.call(n)]:[3,8];case 7:u.sent(),u.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 ai(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 w3(e,t){return t===void 0&&(t=0),ba(function(n,r){n.subscribe(Ll(r,function(i){return ai(r,e,function(){return r.next(i)},t)},function(){return ai(r,e,function(){return r.complete()},t)},function(i){return ai(r,e,function(){return r.error(i)},t)}))})}function v3(e,t){return t===void 0&&(t=0),ba(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function MN(e,t){return ya(e).pipe(v3(t),w3(t))}function PN(e,t){return ya(e).pipe(v3(t),w3(t))}function LN(e,t){return new cn(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function NN(e,t){return new cn(function(n){var r;return ai(n,t,function(){r=e[p3](),ai(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 at(r==null?void 0:r.return)&&r.return()}})}function x3(e,t){if(!e)throw new Error("Iterable cannot be null");return new cn(function(n){ai(n,t,function(){var r=e[Symbol.asyncIterator]();ai(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function ON(e,t){return x3(m3(e),t)}function zN(e,t){if(e!=null){if(c3(e))return MN(e,t);if(u3(e))return LN(e,t);if(f3(e))return PN(e,t);if(h3(e))return x3(e,t);if(g3(e))return NN(e,t);if(b3(e))return ON(e,t)}throw d3(e)}function UN(e,t){return t?zN(e,t):ya(e)}var GN=KA(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function A3(e,t){var n=typeof t=="object";return new Promise(function(r,i){var o=new Ac({next:function(a){r(a),o.unsubscribe()},error:i,complete:function(){n?r(t.defaultValue):i(new GN)}});e.subscribe(o)})}function E3(e,t){return ba(function(n,r){var i=0;n.subscribe(Ll(r,function(o){r.next(e.call(t,o,i++))}))})}function HN(e,t,n,r,i,o,a,s){var u=[],l=0,f=0,c=!1,h=function(){c&&!u.length&&!l&&t.complete()},d=function(b){return l<r?p(b):u.push(b)},p=function(b){o&&t.next(b),l++;var y=!1;ya(n(b,f++)).subscribe(Ll(t,function(w){i==null||i(w),o?d(w):t.next(w)},function(){y=!0},void 0,function(){if(y)try{l--;for(var w=function(){var _=u.shift();a?ai(t,a,function(){return p(_)}):p(_)};u.length&&l<r;)w();h()}catch(_){t.error(_)}}))};return e.subscribe(Ll(t,d,function(){c=!0,h()})),function(){s==null||s()}}function _3(e,t,n){return n===void 0&&(n=1/0),at(t)?_3(function(r,i){return E3(function(o,a){return t(r,o,i,a)})(ya(e(r,i)))},n):(typeof t=="number"&&(n=t),ba(function(r,i){return HN(r,i,e,n)}))}function VN(e){return e===void 0&&(e=1/0),_3(a3,e)}function jN(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=SN(e),r=CN(e,1/0),i=e;return i.length?i.length===1?ya(i[0]):VN(r)(UN(i,n)):EN}function qN(e,t,n,r,i){return function(o,a){var s=n,u=t,l=0;o.subscribe(Ll(a,function(f){var c=l++;u=s?e(u,f,c):(s=!0,f),r&&a.next(u)},i&&function(){s&&a.next(u),a.complete()}))}}function S3(e,t){return ba(qN(e,t,arguments.length>=2,!1,!0))}var ZN=function(e,t){return e.push(t),e};function WN(){return ba(function(e,t){S3(ZN,[])(e).subscribe(t)})}const C3=-2003829722,Yp=-2021002517;function YN(e){return new TextDecoder().decode(e)}function k3(e){const t=e?"big":"little",n=new Te().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 Te().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new Te().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new Te().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),o=new Te().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:o}}class T3{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 Wi(o);else if(i)this.bbi=new ht(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(pe.Buffer.alloc(n),0,n,0,t),i=this._isBigEndian(r),o=k3(i),a=o.headerParser.parse(r),{magic:s,asOffset:u,totalSummaryOffset:l}=a;if(a.fileType=s===Yp?"bigbed":"bigwig",u>n||l>n)return this._getMainHeader(t,n*2);if(u){const f=Number(a.asOffset);a.autoSql=YN(r.subarray(f,r.indexOf(0,f)))}if(a.totalSummaryOffset>n)return this._getMainHeader(t,n*2);if(a.totalSummaryOffset){const f=r.subarray(Number(a.totalSummaryOffset)),c=o.totalSummaryParser.parse(f);a.totalSummary={...c,basesCovered:Number(c.basesCovered)}}return{...a,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===C3||n===Yp)return!1;if(n=t.readInt32BE(0),n===C3||n===Yp)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 u=Number(t.chromTreeOffset);for(;s%4!==0;)s+=1;const l=s-u,{buffer:f}=await this.bbi.read(pe.Buffer.alloc(l),0,l,Number(u),n),c=k3(r),{keySize:h}=c.chromTreeParser.parse(f),d=new Te().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new Te().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),b=32,y=async w=>{let _=w;if(_>=f.length)throw new Error("reading beyond end of buffer");const C=c.isLeafNode.parse(f.subarray(_)),{isLeafNode:E,cnt:T}=C;if(_+=C.offset,E)for(let B=0;B<T;B+=1){const I=d.parse(f.subarray(_));_+=I.offset;const{key:R,refId:M,refSize:j}=I,O={name:R,id:M,length:j};a[this.renameRefSeqs(R)]=M,o[M]=O}else{const B=[];for(let I=0;I<T;I+=1){const R=p.parse(f.subarray(_)),{childOffset:M}=R;_+=R.offset,B.push(y(Number(M)-Number(u)))}await Promise.all(B)}};return await y(b),{refsByName:a,refsByNumber:o}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:o,fileType:a}=await this.getHeader(t);return new XA(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:u}=i||{};return s?a=await this.getView(1/s,i):u?a=await this.getView(u,i):a=await this.getView(1,i),new cn(l=>{a.readWigData(o,n,r,l,i)})}async getFeatures(t,n,r,i){const o=await this.getFeatureStream(t,n,r,i);return(await A3(o.pipe(WN()))).flat()}}class QN extends T3{async getView(t,n){const{zoomLevels:r,refsByName:i,fileSize:o,isBigEndian:a,uncompressBufSize:s}=await this.getHeader(n),u=1/t;let l=r.length;o||(l-=1);for(let f=l;f>=0;f-=1){const c=r[f];if(c&&c.reductionLevel<=2*u){const h=Number(c.indexOffset);return new XA(this.bbi,i,h,a,s>0,"summary")}}return this.getUnzoomedView(n)}}function XN(e){return e.filter(t=>!!t)}class $N extends T3{constructor(){super(...arguments),this.readIndicesCache=new sc({cache:new lc({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(pe.Buffer.alloc(64),0,64,Number(n)),o=r?"big":"little",a=new Te().endianess(o).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:u}=a;if(s===0)return[];const l=20,f=l*s,{buffer:c}=await this.bbi.read(pe.Buffer.alloc(f),0,f,Number(u)),h=new Te().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(c.subarray(p*l)));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:u}=a,{buffer:l}=await this.bbi.read(pe.Buffer.alloc(32),0,32,Number(s),n),f=r?"big":"little",c=new Te().endianess(f).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=c.parse(l),b=new Te().endianess(f).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new Te().array("leafkeys",{length:"cnt",type:new Te().endianess(f).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new Te().array("keys",{length:"cnt",type:new Te().endianess(f).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),y=async _=>{const C=Number(_),E=4+h*(d+p),{buffer:T}=await this.bbi.read(pe.Buffer.alloc(E),0,E,C,n),B=b.parse(T);if(B.leafkeys){let I;for(let R=0;R<B.leafkeys.length;R+=1){const{key:M}=B.leafkeys[R];if(t.localeCompare(M)<0&&I)return y(I);I=B.leafkeys[R].offset}return y(I)}for(let I=0;I<B.keys.length;I+=1)if(B.keys[I].key===t)return{...B.keys[I],field:u}},w=32;return y(Number(s)+w)});return XN(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 cn(u=>{i.readFeatures(u,[s],n)}).pipe(S3((u,l)=>u.concat(l)),E3(u=>{for(const l of u)l.field=s.field;return u})));return(await A3(jN(...o))).filter(s=>{var u;return((u=s.rest)===null||u===void 0?void 0:u.split(" ")[(s.field||0)-3])===t})}}const I3=Object.freeze(Object.defineProperty({__proto__:null,BigBed:$N,BigWig:QN},Symbol.toStringTag,{value:"Module"}));function KN(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function wa(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,wa)}KN(wa,Error),wa.buildMessage=function(e,t){var n={literal:function(l){return'"'+i(l.text)+'"'},class:function(l){var f="",c;for(c=0;c<l.parts.length;c++)f+=l.parts[c]instanceof Array?o(l.parts[c][0])+"-"+o(l.parts[c][1]):o(l.parts[c]);return"["+(l.inverted?"^":"")+f+"]"},any:function(l){return"any character"},end:function(l){return"end of input"},other:function(l){return l.description}};function r(l){return l.charCodeAt(0).toString(16).toUpperCase()}function i(l){return l.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(f){return"\\x0"+r(f)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(f){return"\\x"+r(f)})}function o(l){return l.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(f){return"\\x0"+r(f)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(f){return"\\x"+r(f)})}function a(l){return n[l.type](l)}function s(l){var f=new Array(l.length),c,h;for(c=0;c<l.length;c++)f[c]=a(l[c]);if(f.sort(),f.length>0){for(c=1,h=1;c<f.length;c++)f[c-1]!==f[c]&&(f[h]=f[c],h++);f.length=h}switch(f.length){case 1:return f[0];case 2:return f[0]+" or "+f[1];default:return f.slice(0,-1).join(", ")+", or "+f[f.length-1]}}function u(l){return l?'"'+i(l)+'"':"end of input"}return"Expected "+s(e)+" but "+u(t)+" found."};function JN(e,t){t=t!==void 0?t:{};var n={},r={declaration:KE},i=KE,o="(",a=Fe("(",!1),s=")",u=Fe(")",!1),l=function(A,z,X,$){return{type:A,name:z,comment:X,fields:$}},f="simple",c=Fe("simple",!1),h="object",d=Fe("object",!1),p="table",b=Fe("table",!1),y="auto",w=Fe("auto",!1),_="primary",C=Fe("primary",!1),E="index",T=Fe("index",!1),B="unique",I=Fe("unique",!1),R=function(A,z){return z},M=function(A,z){return A.name&&z.unshift(A),z},j="#",O=Fe("#",!1),ie=";",se=Fe(";",!1),ge=function(A,z,X){return{type:A,name:z,comment:X}},Ie="[",Xe=Fe("[",!1),De="]",$e=Fe("]",!1),Ze=function(A,z,X,$){return{type:A,size:z,name:X,comment:$}},Ke=function(A,z,X,$){return{type:A,vals:z,name:X,comment:$}},Ee=",",_e=Fe(",",!1),pt=function(A,z){return z.unshift(A),z},qt="int",Oe=Fe("int",!1),L="uint",P=Fe("uint",!1),q="short",H=Fe("short",!1),Y="ushort",S=Fe("ushort",!1),x="byte",G=Fe("byte",!1),Z="ubyte",le=Fe("ubyte",!1),J="float",ue=Fe("float",!1),Zt="char",li=Fe("char",!1),ui="string",fi=Fe("string",!1),St="lstring",yr=Fe("lstring",!1),ci="enum",Wt=Fe("enum",!1),Xn="double",v=Fe("double",!1),g="bigint",m=Fe("bigint",!1),k="set",F=Fe("set",!1),N=function(A,z){return A+" "+z},V=/^[a-zA-Z_]/,fe=ru([["a","z"],["A","Z"],"_"],!1,!1),Ge=/^[a-zA-Z0-9_]/,Me=ru([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),We=function(A){return YE()},Se=/^[^\n\r]/,VE=ru([`
324
- `,"\r"],!0,!1),wz=function(A){return A.join("").replace(/^"/,"").replace(/"$/,"")},vz=QE("integer"),jE=/^[0-9]/,qE=ru([["0","9"]],!1,!1),xz=function(){return parseInt(YE(),10)},Az=QE("whitespace"),ZE=/^[ \t\n\r]/,WE=ru([" "," ",`
325
- `,"\r"],!1,!1),D=0,Dt=0,Nc=[{line:1,column:1}],$n=0,Dg=[],ne=0,Oc;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 YE(){return e.substring(Dt,D)}function Fe(A,z){return{type:"literal",text:A,ignoreCase:z}}function ru(A,z,X){return{type:"class",parts:A,inverted:z,ignoreCase:X}}function Ez(){return{type:"end"}}function QE(A){return{type:"other",description:A}}function XE(A){var z=Nc[A],X;if(z)return z;for(X=A-1;!Nc[X];)X--;for(z=Nc[X],z={line:z.line,column:z.column};X<A;)e.charCodeAt(X)===10?(z.line++,z.column=1):z.column++,X++;return Nc[A]=z,z}function $E(A,z){var X=XE(A),$=XE(z);return{start:{offset:A,line:X.line,column:X.column},end:{offset:z,line:$.line,column:$.column}}}function oe(A){D<$n||(D>$n&&($n=D,Dg=[]),Dg.push(A))}function _z(A,z,X){return new wa(wa.buildMessage(A,z),A,z,X)}function KE(){var A,z,X,$,ee,ze,Ye,pn,hi,wr,di,vr,pi,xr;return A=D,z=me(),z!==n?(X=JE(),X!==n?($=me(),$!==n?(ee=e_(),ee!==n?(ze=me(),ze!==n?(Ye=zc(),Ye!==n?(pn=me(),pn!==n?(e.charCodeAt(D)===40?(hi=o,D++):(hi=n,ne===0&&oe(a)),hi!==n?(wr=me(),wr!==n?(di=Sz(),di!==n?(vr=me(),vr!==n?(e.charCodeAt(D)===41?(pi=s,D++):(pi=n,ne===0&&oe(u)),pi!==n?(xr=me(),xr!==n?(Dt=A,z=l(X,ee,Ye,di),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A}function JE(){var A;return e.substr(D,6)===f?(A=f,D+=6):(A=n,ne===0&&oe(c)),A===n&&(e.substr(D,6)===h?(A=h,D+=6):(A=n,ne===0&&oe(d)),A===n&&(e.substr(D,5)===p?(A=p,D+=5):(A=n,ne===0&&oe(b)))),A}function e_(){var A,z,X,$;return A=In(),A===n&&(A=D,z=In(),z!==n?(X=t_(),X!==n?(z=[z,X],A=z):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=In(),z!==n?(e.substr(D,4)===y?(X=y,D+=4):(X=n,ne===0&&oe(w)),X!==n?(z=[z,X],A=z):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=In(),z!==n?(X=t_(),X!==n?(e.substr(D,4)===y?($=y,D+=4):($=n,ne===0&&oe(w)),$!==n?(z=[z,X,$],A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)))),A}function t_(){var A;return e.substr(D,7)===_?(A=_,D+=7):(A=n,ne===0&&oe(C)),A===n&&(e.substr(D,5)===E?(A=E,D+=5):(A=n,ne===0&&oe(T)),A===n&&(e.substr(D,6)===B?(A=B,D+=6):(A=n,ne===0&&oe(I)))),A}function zc(){var A;return A=n_(),A===n&&(A=me()),A}function Sz(){var A,z,X,$,ee,ze,Ye;if(A=D,z=Fg(),z!==n)if(X=me(),X!==n){for($=[],ee=D,ze=me(),ze!==n?(Ye=Fg(),Ye!==n?(Dt=ee,ze=R(z,Ye),ee=ze):(D=ee,ee=n)):(D=ee,ee=n);ee!==n;)$.push(ee),ee=D,ze=me(),ze!==n?(Ye=Fg(),Ye!==n?(Dt=ee,ze=R(z,Ye),ee=ze):(D=ee,ee=n)):(D=ee,ee=n);$!==n?(ee=me(),ee!==n?(Dt=A,z=M(z,$),A=z):(D=A,A=n)):(D=A,A=n)}else D=A,A=n;else D=A,A=n;return A}function Cz(){var A;return e.charCodeAt(D)===35?(A=j,D++):(A=n,ne===0&&oe(O)),A}function kz(){var A,z,X,$,ee;return A=D,z=me(),z!==n?(X=Cz(),X!==n?($=n_(),$!==n?(ee=me(),ee!==n?(z=[z,X,$,ee],A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A}function Fg(){var A,z,X,$,ee,ze,Ye,pn,hi,wr,di,vr,pi,xr;return A=D,z=Rg(),z!==n?(X=me(),X!==n?($=In(),$!==n?(ee=me(),ee!==n?(e.charCodeAt(D)===59?(ze=ie,D++):(ze=n,ne===0&&oe(se)),ze!==n?(Ye=me(),Ye!==n?(pn=zc(),pn!==n?(Dt=A,z=ge(z,$,pn),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=Rg(),z!==n?(X=me(),X!==n?(e.charCodeAt(D)===91?($=Ie,D++):($=n,ne===0&&oe(Xe)),$!==n?(ee=me(),ee!==n?(ze=Iz(),ze!==n?(Ye=me(),Ye!==n?(e.charCodeAt(D)===93?(pn=De,D++):(pn=n,ne===0&&oe($e)),pn!==n?(hi=me(),hi!==n?(wr=In(),wr!==n?(di=me(),di!==n?(e.charCodeAt(D)===59?(vr=ie,D++):(vr=n,ne===0&&oe(se)),vr!==n?(pi=me(),pi!==n?(xr=zc(),xr!==n?(Dt=A,z=Ze(z,ze,wr,xr),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=Rg(),z!==n?(X=me(),X!==n?(e.charCodeAt(D)===40?($=o,D++):($=n,ne===0&&oe(a)),$!==n?(ee=me(),ee!==n?(ze=Tz(),ze!==n?(Ye=me(),Ye!==n?(e.charCodeAt(D)===41?(pn=s,D++):(pn=n,ne===0&&oe(u)),pn!==n?(hi=me(),hi!==n?(wr=In(),wr!==n?(di=me(),di!==n?(e.charCodeAt(D)===59?(vr=ie,D++):(vr=n,ne===0&&oe(se)),vr!==n?(pi=me(),pi!==n?(xr=zc(),xr!==n?(Dt=A,z=Ke(z,ze,wr,xr),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A===n&&(A=kz()))),A}function Tz(){var A,z,X,$,ee,ze,Ye;if(A=D,z=In(),z!==n){for(X=[],$=D,e.charCodeAt(D)===44?(ee=Ee,D++):(ee=n,ne===0&&oe(_e)),ee!==n?(ze=me(),ze!==n?(Ye=In(),Ye!==n?(Dt=$,ee=R(z,Ye),$=ee):(D=$,$=n)):(D=$,$=n)):(D=$,$=n);$!==n;)X.push($),$=D,e.charCodeAt(D)===44?(ee=Ee,D++):(ee=n,ne===0&&oe(_e)),ee!==n?(ze=me(),ze!==n?(Ye=In(),Ye!==n?(Dt=$,ee=R(z,Ye),$=ee):(D=$,$=n)):(D=$,$=n)):(D=$,$=n);X!==n?(Dt=A,z=pt(z,X),A=z):(D=A,A=n)}else D=A,A=n;return A}function Rg(){var A,z,X,$;return e.substr(D,3)===qt?(A=qt,D+=3):(A=n,ne===0&&oe(Oe)),A===n&&(e.substr(D,4)===L?(A=L,D+=4):(A=n,ne===0&&oe(P)),A===n&&(e.substr(D,5)===q?(A=q,D+=5):(A=n,ne===0&&oe(H)),A===n&&(e.substr(D,6)===Y?(A=Y,D+=6):(A=n,ne===0&&oe(S)),A===n&&(e.substr(D,4)===x?(A=x,D+=4):(A=n,ne===0&&oe(G)),A===n&&(e.substr(D,5)===Z?(A=Z,D+=5):(A=n,ne===0&&oe(le)),A===n&&(e.substr(D,5)===J?(A=J,D+=5):(A=n,ne===0&&oe(ue)),A===n&&(e.substr(D,4)===Zt?(A=Zt,D+=4):(A=n,ne===0&&oe(li)),A===n&&(e.substr(D,6)===ui?(A=ui,D+=6):(A=n,ne===0&&oe(fi)),A===n&&(e.substr(D,7)===St?(A=St,D+=7):(A=n,ne===0&&oe(yr)),A===n&&(e.substr(D,4)===ci?(A=ci,D+=4):(A=n,ne===0&&oe(Wt)),A===n&&(e.substr(D,6)===Xn?(A=Xn,D+=6):(A=n,ne===0&&oe(v)),A===n&&(e.substr(D,6)===g?(A=g,D+=6):(A=n,ne===0&&oe(m)),A===n&&(e.substr(D,3)===k?(A=k,D+=3):(A=n,ne===0&&oe(F)),A===n&&(A=D,z=JE(),z!==n?(X=me(),X!==n?($=e_(),$!==n?(Dt=A,z=N(z,$),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n))))))))))))))),A}function Iz(){var A;return A=Bz(),A===n&&(A=In()),A}function In(){var A,z,X,$,ee;if(A=D,z=D,V.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,ne===0&&oe(fe)),X!==n){for($=[],Ge.test(e.charAt(D))?(ee=e.charAt(D),D++):(ee=n,ne===0&&oe(Me));ee!==n;)$.push(ee),Ge.test(e.charAt(D))?(ee=e.charAt(D),D++):(ee=n,ne===0&&oe(Me));$!==n?(X=[X,$],z=X):(D=z,z=n)}else D=z,z=n;return z!==n&&(Dt=A,z=We()),A=z,A}function n_(){var A,z,X;for(A=D,z=[],Se.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,ne===0&&oe(VE));X!==n;)z.push(X),Se.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,ne===0&&oe(VE));return z!==n&&(Dt=A,z=wz(z)),A=z,A}function Bz(){var A,z,X,$;if(ne++,A=D,z=me(),z!==n){if(X=[],jE.test(e.charAt(D))?($=e.charAt(D),D++):($=n,ne===0&&oe(qE)),$!==n)for(;$!==n;)X.push($),jE.test(e.charAt(D))?($=e.charAt(D),D++):($=n,ne===0&&oe(qE));else X=n;X!==n?(Dt=A,z=xz(),A=z):(D=A,A=n)}else D=A,A=n;return ne--,A===n&&(z=n,ne===0&&oe(vz)),A}function me(){var A,z;for(ne++,A=[],ZE.test(e.charAt(D))?(z=e.charAt(D),D++):(z=n,ne===0&&oe(WE));z!==n;)A.push(z),ZE.test(e.charAt(D))?(z=e.charAt(D),D++):(z=n,ne===0&&oe(WE));return ne--,A===n&&(z=n,ne===0&&oe(Az)),A}if(Oc=i(),Oc!==n&&D===e.length)return Oc;throw Oc!==n&&D<e.length&&oe(Ez()),_z(Dg,$n<e.length?e.charAt($n):null,$n<e.length?$E($n,$n+1):$E($n,$n))}var B3={SyntaxError:wa,parse:JN};const eO=$s(B3),Qp=Object.fromEntries(Object.entries(Object.freeze(Object.defineProperty({__proto__:null,bigChain:`table bigChain
328
+ `):"",this.name="UnsubscriptionError",this.errors=n}});function r3(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var Yp=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,n,r,i,a;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var s=Pl(o),u=s.next();!u.done;u=s.next()){var l=u.value;l.remove(this)}}catch(m){t={error:m}}finally{try{u&&!u.done&&(n=s.return)&&n.call(s)}finally{if(t)throw t.error}}else o.remove(this);var f=this.initialTeardown;if(ot(f))try{f()}catch(m){a=m instanceof Wp?m.errors:[m]}var c=this._finalizers;if(c){this._finalizers=null;try{for(var h=Pl(c),d=h.next();!d.done;d=h.next()){var p=d.value;try{a3(p)}catch(m){a=a??[],m instanceof Wp?a=Zp(Zp([],qp(a)),qp(m.errors)):a.push(m)}}}catch(m){r={error:m}}finally{try{d&&!d.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}}if(a)throw new Wp(a)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)a3(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)&&r3(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&r3(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();Yp.EMPTY;function i3(e){return e instanceof Yp||e&&"closed"in e&&ot(e.remove)&&ot(e.add)&&ot(e.unsubscribe)}function a3(e){ot(e)?e():e.unsubscribe()}var o3={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},s3={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return setTimeout.apply(void 0,Zp([e,t],qp(n)))},clearTimeout:function(e){var t=s3.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function l3(e){s3.setTimeout(function(){throw e})}function u3(){}function EN(e){e()}var Qp=function(e){jp(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,i3(n)&&n.add(r)):r.destination=TN,r}return t.create=function(n,r,i){return new Sc(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}(Yp),_N=Function.prototype.bind;function $p(e,t){return _N.call(e,t)}var SN=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){Cc(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){Cc(r)}else Cc(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){Cc(n)}},e}(),Sc=function(e){jp(t,e);function t(n,r,i){var a=e.call(this)||this,o;if(ot(n)||!n)o={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;a&&o3.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return a.unsubscribe()},o={next:n.next&&$p(n.next,s),error:n.error&&$p(n.error,s),complete:n.complete&&$p(n.complete,s)}):o=n}return a.destination=new SN(o),a}return t}(Qp);function Cc(e){l3(e)}function CN(e){throw e}var TN={closed:!0,next:u3,error:CN,complete:u3},Xp=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function f3(e){return e}function kN(e){return e.length===0?f3:e.length===1?e[0]:function(n){return e.reduce(function(r,i){return i(r)},n)}}var cn=function(){function e(t){t&&(this._subscribe=t)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(t,n,r){var i=this,a=BN(t)?t:new Sc(t,n,r);return EN(function(){var o=i,s=o.operator,u=o.source;a.add(s?s.call(a,u):u?i._subscribe(a):i._trySubscribe(a))}),a},e.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(n){t.error(n)}},e.prototype.forEach=function(t,n){var r=this;return n=c3(n),new n(function(i,a){var o=new Sc({next:function(s){try{t(s)}catch(u){a(u),o.unsubscribe()}},error:a,complete:i});r.subscribe(o)})},e.prototype._subscribe=function(t){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(t)},e.prototype[Xp]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return kN(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=c3(t),new t(function(r,i){var a;n.subscribe(function(o){return a=o},function(o){return i(o)},function(){return r(a)})})},e.create=function(t){return new e(t)},e}();function c3(e){var t;return(t=e??o3.Promise)!==null&&t!==void 0?t:Promise}function IN(e){return e&&ot(e.next)&&ot(e.error)&&ot(e.complete)}function BN(e){return e&&e instanceof Qp||IN(e)&&i3(e)}function DN(e){return ot(e==null?void 0:e.lift)}function bo(e){return function(t){if(DN(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 Ll(e,t,n,r,i){return new FN(e,t,n,r,i)}var FN=function(e){jp(t,e);function t(n,r,i,a,o,s){var u=e.call(this,n)||this;return u.onFinalize=o,u.shouldUnsubscribe=s,u._next=r?function(l){try{r(l)}catch(f){n.error(f)}}:e.prototype._next,u._error=a?function(l){try{a(l)}catch(f){n.error(f)}finally{this.unsubscribe()}}:e.prototype._error,u._complete=i?function(){try{i()}catch(l){n.error(l)}finally{this.unsubscribe()}}:e.prototype._complete,u}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}(Qp),RN=new cn(function(e){return e.complete()});function MN(e){return e&&ot(e.schedule)}function h3(e){return e[e.length-1]}function PN(e){return MN(h3(e))?e.pop():void 0}function LN(e,t){return typeof h3(e)=="number"?e.pop():t}var d3=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function p3(e){return ot(e==null?void 0:e.then)}function g3(e){return ot(e[Xp])}function m3(e){return Symbol.asyncIterator&&ot(e==null?void 0:e[Symbol.asyncIterator])}function b3(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 NN(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var y3=NN();function w3(e){return ot(e==null?void 0:e[y3])}function v3(e){return xN(this,arguments,function(){var n,r,i,a;return t3(this,function(o){switch(o.label){case 0:n=e.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,mo(n.read())];case 3:return r=o.sent(),i=r.value,a=r.done,a?[4,mo(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,mo(i)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function x3(e){return ot(e==null?void 0:e.getReader)}function yo(e){if(e instanceof cn)return e;if(e!=null){if(g3(e))return ON(e);if(d3(e))return zN(e);if(p3(e))return UN(e);if(m3(e))return A3(e);if(w3(e))return GN(e);if(x3(e))return HN(e)}throw b3(e)}function ON(e){return new cn(function(t){var n=e[Xp]();if(ot(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function zN(e){return new cn(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function UN(e){return new cn(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,l3)})}function GN(e){return new cn(function(t){var n,r;try{for(var i=Pl(e),a=i.next();!a.done;a=i.next()){var o=a.value;if(t.next(o),t.closed)return}}catch(s){n={error:s}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}t.complete()})}function A3(e){return new cn(function(t){VN(e,t).catch(function(n){return t.error(n)})})}function HN(e){return A3(v3(e))}function VN(e,t){var n,r,i,a;return vN(this,void 0,void 0,function(){var o,s;return t3(this,function(u){switch(u.label){case 0:u.trys.push([0,5,6,11]),n=AN(e),u.label=1;case 1:return[4,n.next()];case 2:if(r=u.sent(),!!r.done)return[3,4];if(o=r.value,t.next(o),t.closed)return[2];u.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=u.sent(),i={error:s},[3,11];case 6:return u.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:u.sent(),u.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 oi(e,t,n,r,i){r===void 0&&(r=0),i===void 0&&(i=!1);var a=t.schedule(function(){n(),i?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(a),!i)return a}function E3(e,t){return t===void 0&&(t=0),bo(function(n,r){n.subscribe(Ll(r,function(i){return oi(r,e,function(){return r.next(i)},t)},function(){return oi(r,e,function(){return r.complete()},t)},function(i){return oi(r,e,function(){return r.error(i)},t)}))})}function _3(e,t){return t===void 0&&(t=0),bo(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function jN(e,t){return yo(e).pipe(_3(t),E3(t))}function qN(e,t){return yo(e).pipe(_3(t),E3(t))}function ZN(e,t){return new cn(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function WN(e,t){return new cn(function(n){var r;return oi(n,t,function(){r=e[y3](),oi(n,t,function(){var i,a,o;try{i=r.next(),a=i.value,o=i.done}catch(s){n.error(s);return}o?n.complete():n.next(a)},0,!0)}),function(){return ot(r==null?void 0:r.return)&&r.return()}})}function S3(e,t){if(!e)throw new Error("Iterable cannot be null");return new cn(function(n){oi(n,t,function(){var r=e[Symbol.asyncIterator]();oi(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function YN(e,t){return S3(v3(e),t)}function QN(e,t){if(e!=null){if(g3(e))return jN(e,t);if(d3(e))return ZN(e,t);if(p3(e))return qN(e,t);if(m3(e))return S3(e,t);if(w3(e))return WN(e,t);if(x3(e))return YN(e,t)}throw b3(e)}function $N(e,t){return t?QN(e,t):yo(e)}var XN=n3(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function C3(e,t){var n=typeof t=="object";return new Promise(function(r,i){var a=new Sc({next:function(o){r(o),a.unsubscribe()},error:i,complete:function(){n?r(t.defaultValue):i(new XN)}});e.subscribe(a)})}function T3(e,t){return bo(function(n,r){var i=0;n.subscribe(Ll(r,function(a){r.next(e.call(t,a,i++))}))})}function KN(e,t,n,r,i,a,o,s){var u=[],l=0,f=0,c=!1,h=function(){c&&!u.length&&!l&&t.complete()},d=function(m){return l<r?p(m):u.push(m)},p=function(m){a&&t.next(m),l++;var y=!1;yo(n(m,f++)).subscribe(Ll(t,function(w){i==null||i(w),a?d(w):t.next(w)},function(){y=!0},void 0,function(){if(y)try{l--;for(var w=function(){var _=u.shift();o?oi(t,o,function(){return p(_)}):p(_)};u.length&&l<r;)w();h()}catch(_){t.error(_)}}))};return e.subscribe(Ll(t,d,function(){c=!0,h()})),function(){s==null||s()}}function k3(e,t,n){return n===void 0&&(n=1/0),ot(t)?k3(function(r,i){return T3(function(a,o){return t(r,a,i,o)})(yo(e(r,i)))},n):(typeof t=="number"&&(n=t),bo(function(r,i){return KN(r,i,e,n)}))}function JN(e){return e===void 0&&(e=1/0),k3(f3,e)}function eO(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=PN(e),r=LN(e,1/0),i=e;return i.length?i.length===1?yo(i[0]):JN(r)($N(i,n)):RN}function tO(e,t,n,r,i){return function(a,o){var s=n,u=t,l=0;a.subscribe(Ll(o,function(f){var c=l++;u=s?e(u,f,c):(s=!0,f),r&&o.next(u)},i&&function(){s&&o.next(u),o.complete()}))}}function I3(e,t){return bo(tO(e,t,arguments.length>=2,!1,!0))}var nO=function(e,t){return e.push(t),e};function rO(){return bo(function(e,t){I3(nO,[])(e).subscribe(t)})}const B3=-2003829722,Kp=-2021002517;function iO(e){return new TextDecoder().decode(e)}function D3(e){const t=e?"big":"little",n=new ke().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 ke().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new ke().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new ke().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),a=new ke().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:a}}class F3{getHeader(t){return this.headerP||(this.headerP=this._getHeader(t).catch(n=>{throw this.headerP=void 0,n})),this.headerP}constructor(t){const{filehandle:n,renameRefSeqs:r=o=>o,path:i,url:a}=t;if(this.renameRefSeqs=r,n)this.bbi=n;else if(a)this.bbi=new Wi(a);else if(i)this.bbi=new ht(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(pe.Buffer.alloc(n),0,n,0,t),i=this._isBigEndian(r),a=D3(i),o=a.headerParser.parse(r),{magic:s,asOffset:u,totalSummaryOffset:l}=o;if(o.fileType=s===Kp?"bigbed":"bigwig",u>n||l>n)return this._getMainHeader(t,n*2);if(u){const f=Number(o.asOffset);o.autoSql=iO(r.subarray(f,r.indexOf(0,f)))}if(o.totalSummaryOffset>n-8*5)return this._getMainHeader(t,n*2);if(o.totalSummaryOffset){const f=r.subarray(Number(o.totalSummaryOffset)),c=a.totalSummaryParser.parse(f);o.totalSummary={...c,basesCovered:Number(c.basesCovered)}}return{...o,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===B3||n===Kp)return!1;if(n=t.readInt32BE(0),n===B3||n===Kp)return!0;throw new Error("not a BigWig/BigBed file")}async _readChromTree(t,n){const r=t.isBigEndian,i=r?"big":"little",a=[],o={};let s=Number(t.unzoomedDataOffset);const u=Number(t.chromTreeOffset);for(;s%4!==0;)s+=1;const l=s-u,{buffer:f}=await this.bbi.read(pe.Buffer.alloc(l),0,l,Number(u),n),c=D3(r),{keySize:h}=c.chromTreeParser.parse(f),d=new ke().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new ke().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),m=32,y=async w=>{let _=w;if(_>=f.length)throw new Error("reading beyond end of buffer");const C=c.isLeafNode.parse(f.subarray(_)),{isLeafNode:E,cnt:k}=C;if(_+=C.offset,E)for(let B=0;B<k;B+=1){const I=d.parse(f.subarray(_));_+=I.offset;const{key:R,refId:L,refSize:j}=I,M={name:R,id:L,length:j};o[this.renameRefSeqs(R)]=L,a[L]=M}else{const B=[];for(let I=0;I<k;I+=1){const R=p.parse(f.subarray(_)),{childOffset:L}=R;_+=R.offset,B.push(y(Number(L)-Number(u)))}await Promise.all(B)}};return await y(m),{refsByName:o,refsByNumber:a}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:a,fileType:o}=await this.getHeader(t);return new e3(this.bbi,r,n,a,i>0,o)}async getFeatureStream(t,n,r,i){await this.getHeader(i);const a=this.renameRefSeqs(t);let o;const{basesPerSpan:s,scale:u}=i||{};return s?o=await this.getView(1/s,i):u?o=await this.getView(u,i):o=await this.getView(1,i),new cn(l=>{o.readWigData(a,n,r,l,i)})}async getFeatures(t,n,r,i){const a=await this.getFeatureStream(t,n,r,i);return(await C3(a.pipe(rO()))).flat()}}class aO extends F3{async getView(t,n){const{zoomLevels:r,refsByName:i,fileSize:a,isBigEndian:o,uncompressBufSize:s}=await this.getHeader(n),u=1/t;let l=r.length;a||(l-=1);for(let f=l;f>=0;f-=1){const c=r[f];if(c&&c.reductionLevel<=2*u){const h=Number(c.indexOffset);return new e3(this.bbi,i,h,o,s>0,"summary")}}return this.getUnzoomedView(n)}}function oO(e){return e.filter(t=>!!t)}class sO extends F3{constructor(){super(...arguments),this.readIndicesCache=new fc({cache:new cc({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(pe.Buffer.alloc(64),0,64,Number(n)),a=r?"big":"little",o=new ke().endianess(a).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:u}=o;if(s===0)return[];const l=20,f=l*s,{buffer:c}=await this.bbi.read(pe.Buffer.alloc(f),0,f,Number(u)),h=new ke().endianess(a).int16("type").int16("fieldcount").uint64("offset").skip(4).int16("field"),d=[];for(let p=0;p<s;p+=1)d.push(h.parse(c.subarray(p*l)));return d}async searchExtraIndexBlocks(t,n={}){const{isBigEndian:r}=await this.getHeader(n),i=await this.readIndices(n);if(i.length===0)return[];const a=i.map(async o=>{const{offset:s,field:u}=o,{buffer:l}=await this.bbi.read(pe.Buffer.alloc(32),0,32,Number(s),n),f=r?"big":"little",c=new ke().endianess(f).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=c.parse(l),m=new ke().endianess(f).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new ke().array("leafkeys",{length:"cnt",type:new ke().endianess(f).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new ke().array("keys",{length:"cnt",type:new ke().endianess(f).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),y=async _=>{const C=Number(_),E=4+h*(d+p),{buffer:k}=await this.bbi.read(pe.Buffer.alloc(E),0,E,C,n),B=m.parse(k);if(B.leafkeys){let I;for(let R=0;R<B.leafkeys.length;R+=1){const{key:L}=B.leafkeys[R];if(t.localeCompare(L)<0&&I)return y(I);I=B.leafkeys[R].offset}return y(I)}for(let I=0;I<B.keys.length;I+=1)if(B.keys[I].key===t)return{...B.keys[I],field:u}},w=32;return y(Number(s)+w)});return oO(await Promise.all(a))}async searchExtraIndex(t,n={}){const r=await this.searchExtraIndexBlocks(t,n);if(r.length===0)return[];const i=await this.getUnzoomedView(n),a=r.map(s=>new cn(u=>{i.readFeatures(u,[s],n)}).pipe(I3((u,l)=>u.concat(l)),T3(u=>{for(const l of u)l.field=s.field;return u})));return(await C3(eO(...a))).filter(s=>{var u;return((u=s.rest)===null||u===void 0?void 0:u.split(" ")[(s.field||0)-3])===t})}}const R3=Object.freeze(Object.defineProperty({__proto__:null,BigBed:sO,BigWig:aO},Symbol.toStringTag,{value:"Module"}));function lO(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function wo(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,wo)}lO(wo,Error),wo.buildMessage=function(e,t){var n={literal:function(l){return'"'+i(l.text)+'"'},class:function(l){var f="",c;for(c=0;c<l.parts.length;c++)f+=l.parts[c]instanceof Array?a(l.parts[c][0])+"-"+a(l.parts[c][1]):a(l.parts[c]);return"["+(l.inverted?"^":"")+f+"]"},any:function(l){return"any character"},end:function(l){return"end of input"},other:function(l){return l.description}};function r(l){return l.charCodeAt(0).toString(16).toUpperCase()}function i(l){return l.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(f){return"\\x0"+r(f)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(f){return"\\x"+r(f)})}function a(l){return l.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(f){return"\\x0"+r(f)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(f){return"\\x"+r(f)})}function o(l){return n[l.type](l)}function s(l){var f=new Array(l.length),c,h;for(c=0;c<l.length;c++)f[c]=o(l[c]);if(f.sort(),f.length>0){for(c=1,h=1;c<f.length;c++)f[c-1]!==f[c]&&(f[h]=f[c],h++);f.length=h}switch(f.length){case 1:return f[0];case 2:return f[0]+" or "+f[1];default:return f.slice(0,-1).join(", ")+", or "+f[f.length-1]}}function u(l){return l?'"'+i(l)+'"':"end of input"}return"Expected "+s(e)+" but "+u(t)+" found."};function uO(e,t){t=t!==void 0?t:{};var n={},r={declaration:n_},i=n_,a="(",o=Fe("(",!1),s=")",u=Fe(")",!1),l=function(A,z,$,X){return{type:A,name:z,comment:$,fields:X}},f="simple",c=Fe("simple",!1),h="object",d=Fe("object",!1),p="table",m=Fe("table",!1),y="auto",w=Fe("auto",!1),_="primary",C=Fe("primary",!1),E="index",k=Fe("index",!1),B="unique",I=Fe("unique",!1),R=function(A,z){return z},L=function(A,z){return A.name&&z.unshift(A),z},j="#",M=Fe("#",!1),ie=";",se=Fe(";",!1),ge=function(A,z,$){return{type:A,name:z,comment:$}},Ie="[",$e=Fe("[",!1),De="]",Ke=Fe("]",!1),Ze=function(A,z,$,X){return{type:A,size:z,name:$,comment:X}},Je=function(A,z,$,X){return{type:A,vals:z,name:$,comment:X}},Ee=",",_e=Fe(",",!1),pt=function(A,z){return z.unshift(A),z},qt="int",Oe=Fe("int",!1),N="uint",P=Fe("uint",!1),q="short",H=Fe("short",!1),Y="ushort",S=Fe("ushort",!1),x="byte",G=Fe("byte",!1),Z="ubyte",le=Fe("ubyte",!1),J="float",ue=Fe("float",!1),Zt="char",li=Fe("char",!1),ui="string",fi=Fe("string",!1),St="lstring",wr=Fe("lstring",!1),ci="enum",Wt=Fe("enum",!1),Kn="double",v=Fe("double",!1),g="bigint",b=Fe("bigint",!1),T="set",F=Fe("set",!1),O=function(A,z){return A+" "+z},V=/^[a-zA-Z_]/,fe=iu([["a","z"],["A","Z"],"_"],!1,!1),Ge=/^[a-zA-Z0-9_]/,Me=iu([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),We=function(A){return KE()},Se=/^[^\n\r]/,WE=iu([`
329
+ `,"\r"],!0,!1),Iz=function(A){return A.join("").replace(/^"/,"").replace(/"$/,"")},Bz=JE("integer"),YE=/^[0-9]/,QE=iu([["0","9"]],!1,!1),Dz=function(){return parseInt(KE(),10)},Fz=JE("whitespace"),$E=/^[ \t\n\r]/,XE=iu([" "," ",`
330
+ `,"\r"],!1,!1),D=0,Dt=0,Hc=[{line:1,column:1}],Jn=0,Pg=[],re=0,Vc;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 KE(){return e.substring(Dt,D)}function Fe(A,z){return{type:"literal",text:A,ignoreCase:z}}function iu(A,z,$){return{type:"class",parts:A,inverted:z,ignoreCase:$}}function Rz(){return{type:"end"}}function JE(A){return{type:"other",description:A}}function e_(A){var z=Hc[A],$;if(z)return z;for($=A-1;!Hc[$];)$--;for(z=Hc[$],z={line:z.line,column:z.column};$<A;)e.charCodeAt($)===10?(z.line++,z.column=1):z.column++,$++;return Hc[A]=z,z}function t_(A,z){var $=e_(A),X=e_(z);return{start:{offset:A,line:$.line,column:$.column},end:{offset:z,line:X.line,column:X.column}}}function ae(A){D<Jn||(D>Jn&&(Jn=D,Pg=[]),Pg.push(A))}function Mz(A,z,$){return new wo(wo.buildMessage(A,z),A,z,$)}function n_(){var A,z,$,X,te,ze,Ye,pn,hi,vr,di,xr,pi,Ar;return A=D,z=me(),z!==n?($=r_(),$!==n?(X=me(),X!==n?(te=i_(),te!==n?(ze=me(),ze!==n?(Ye=jc(),Ye!==n?(pn=me(),pn!==n?(e.charCodeAt(D)===40?(hi=a,D++):(hi=n,re===0&&ae(o)),hi!==n?(vr=me(),vr!==n?(di=Pz(),di!==n?(xr=me(),xr!==n?(e.charCodeAt(D)===41?(pi=s,D++):(pi=n,re===0&&ae(u)),pi!==n?(Ar=me(),Ar!==n?(Dt=A,z=l($,te,Ye,di),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A}function r_(){var A;return e.substr(D,6)===f?(A=f,D+=6):(A=n,re===0&&ae(c)),A===n&&(e.substr(D,6)===h?(A=h,D+=6):(A=n,re===0&&ae(d)),A===n&&(e.substr(D,5)===p?(A=p,D+=5):(A=n,re===0&&ae(m)))),A}function i_(){var A,z,$,X;return A=In(),A===n&&(A=D,z=In(),z!==n?($=a_(),$!==n?(z=[z,$],A=z):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=In(),z!==n?(e.substr(D,4)===y?($=y,D+=4):($=n,re===0&&ae(w)),$!==n?(z=[z,$],A=z):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=In(),z!==n?($=a_(),$!==n?(e.substr(D,4)===y?(X=y,D+=4):(X=n,re===0&&ae(w)),X!==n?(z=[z,$,X],A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)))),A}function a_(){var A;return e.substr(D,7)===_?(A=_,D+=7):(A=n,re===0&&ae(C)),A===n&&(e.substr(D,5)===E?(A=E,D+=5):(A=n,re===0&&ae(k)),A===n&&(e.substr(D,6)===B?(A=B,D+=6):(A=n,re===0&&ae(I)))),A}function jc(){var A;return A=o_(),A===n&&(A=me()),A}function Pz(){var A,z,$,X,te,ze,Ye;if(A=D,z=Lg(),z!==n)if($=me(),$!==n){for(X=[],te=D,ze=me(),ze!==n?(Ye=Lg(),Ye!==n?(Dt=te,ze=R(z,Ye),te=ze):(D=te,te=n)):(D=te,te=n);te!==n;)X.push(te),te=D,ze=me(),ze!==n?(Ye=Lg(),Ye!==n?(Dt=te,ze=R(z,Ye),te=ze):(D=te,te=n)):(D=te,te=n);X!==n?(te=me(),te!==n?(Dt=A,z=L(z,X),A=z):(D=A,A=n)):(D=A,A=n)}else D=A,A=n;else D=A,A=n;return A}function Lz(){var A;return e.charCodeAt(D)===35?(A=j,D++):(A=n,re===0&&ae(M)),A}function Nz(){var A,z,$,X,te;return A=D,z=me(),z!==n?($=Lz(),$!==n?(X=o_(),X!==n?(te=me(),te!==n?(z=[z,$,X,te],A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A}function Lg(){var A,z,$,X,te,ze,Ye,pn,hi,vr,di,xr,pi,Ar;return A=D,z=Ng(),z!==n?($=me(),$!==n?(X=In(),X!==n?(te=me(),te!==n?(e.charCodeAt(D)===59?(ze=ie,D++):(ze=n,re===0&&ae(se)),ze!==n?(Ye=me(),Ye!==n?(pn=jc(),pn!==n?(Dt=A,z=ge(z,X,pn),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=Ng(),z!==n?($=me(),$!==n?(e.charCodeAt(D)===91?(X=Ie,D++):(X=n,re===0&&ae($e)),X!==n?(te=me(),te!==n?(ze=zz(),ze!==n?(Ye=me(),Ye!==n?(e.charCodeAt(D)===93?(pn=De,D++):(pn=n,re===0&&ae(Ke)),pn!==n?(hi=me(),hi!==n?(vr=In(),vr!==n?(di=me(),di!==n?(e.charCodeAt(D)===59?(xr=ie,D++):(xr=n,re===0&&ae(se)),xr!==n?(pi=me(),pi!==n?(Ar=jc(),Ar!==n?(Dt=A,z=Ze(z,ze,vr,Ar),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=Ng(),z!==n?($=me(),$!==n?(e.charCodeAt(D)===40?(X=a,D++):(X=n,re===0&&ae(o)),X!==n?(te=me(),te!==n?(ze=Oz(),ze!==n?(Ye=me(),Ye!==n?(e.charCodeAt(D)===41?(pn=s,D++):(pn=n,re===0&&ae(u)),pn!==n?(hi=me(),hi!==n?(vr=In(),vr!==n?(di=me(),di!==n?(e.charCodeAt(D)===59?(xr=ie,D++):(xr=n,re===0&&ae(se)),xr!==n?(pi=me(),pi!==n?(Ar=jc(),Ar!==n?(Dt=A,z=Je(z,ze,vr,Ar),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A===n&&(A=Nz()))),A}function Oz(){var A,z,$,X,te,ze,Ye;if(A=D,z=In(),z!==n){for($=[],X=D,e.charCodeAt(D)===44?(te=Ee,D++):(te=n,re===0&&ae(_e)),te!==n?(ze=me(),ze!==n?(Ye=In(),Ye!==n?(Dt=X,te=R(z,Ye),X=te):(D=X,X=n)):(D=X,X=n)):(D=X,X=n);X!==n;)$.push(X),X=D,e.charCodeAt(D)===44?(te=Ee,D++):(te=n,re===0&&ae(_e)),te!==n?(ze=me(),ze!==n?(Ye=In(),Ye!==n?(Dt=X,te=R(z,Ye),X=te):(D=X,X=n)):(D=X,X=n)):(D=X,X=n);$!==n?(Dt=A,z=pt(z,$),A=z):(D=A,A=n)}else D=A,A=n;return A}function Ng(){var A,z,$,X;return e.substr(D,3)===qt?(A=qt,D+=3):(A=n,re===0&&ae(Oe)),A===n&&(e.substr(D,4)===N?(A=N,D+=4):(A=n,re===0&&ae(P)),A===n&&(e.substr(D,5)===q?(A=q,D+=5):(A=n,re===0&&ae(H)),A===n&&(e.substr(D,6)===Y?(A=Y,D+=6):(A=n,re===0&&ae(S)),A===n&&(e.substr(D,4)===x?(A=x,D+=4):(A=n,re===0&&ae(G)),A===n&&(e.substr(D,5)===Z?(A=Z,D+=5):(A=n,re===0&&ae(le)),A===n&&(e.substr(D,5)===J?(A=J,D+=5):(A=n,re===0&&ae(ue)),A===n&&(e.substr(D,4)===Zt?(A=Zt,D+=4):(A=n,re===0&&ae(li)),A===n&&(e.substr(D,6)===ui?(A=ui,D+=6):(A=n,re===0&&ae(fi)),A===n&&(e.substr(D,7)===St?(A=St,D+=7):(A=n,re===0&&ae(wr)),A===n&&(e.substr(D,4)===ci?(A=ci,D+=4):(A=n,re===0&&ae(Wt)),A===n&&(e.substr(D,6)===Kn?(A=Kn,D+=6):(A=n,re===0&&ae(v)),A===n&&(e.substr(D,6)===g?(A=g,D+=6):(A=n,re===0&&ae(b)),A===n&&(e.substr(D,3)===T?(A=T,D+=3):(A=n,re===0&&ae(F)),A===n&&(A=D,z=r_(),z!==n?($=me(),$!==n?(X=i_(),X!==n?(Dt=A,z=O(z,X),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n))))))))))))))),A}function zz(){var A;return A=Uz(),A===n&&(A=In()),A}function In(){var A,z,$,X,te;if(A=D,z=D,V.test(e.charAt(D))?($=e.charAt(D),D++):($=n,re===0&&ae(fe)),$!==n){for(X=[],Ge.test(e.charAt(D))?(te=e.charAt(D),D++):(te=n,re===0&&ae(Me));te!==n;)X.push(te),Ge.test(e.charAt(D))?(te=e.charAt(D),D++):(te=n,re===0&&ae(Me));X!==n?($=[$,X],z=$):(D=z,z=n)}else D=z,z=n;return z!==n&&(Dt=A,z=We()),A=z,A}function o_(){var A,z,$;for(A=D,z=[],Se.test(e.charAt(D))?($=e.charAt(D),D++):($=n,re===0&&ae(WE));$!==n;)z.push($),Se.test(e.charAt(D))?($=e.charAt(D),D++):($=n,re===0&&ae(WE));return z!==n&&(Dt=A,z=Iz(z)),A=z,A}function Uz(){var A,z,$,X;if(re++,A=D,z=me(),z!==n){if($=[],YE.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,re===0&&ae(QE)),X!==n)for(;X!==n;)$.push(X),YE.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,re===0&&ae(QE));else $=n;$!==n?(Dt=A,z=Dz(),A=z):(D=A,A=n)}else D=A,A=n;return re--,A===n&&(z=n,re===0&&ae(Bz)),A}function me(){var A,z;for(re++,A=[],$E.test(e.charAt(D))?(z=e.charAt(D),D++):(z=n,re===0&&ae(XE));z!==n;)A.push(z),$E.test(e.charAt(D))?(z=e.charAt(D),D++):(z=n,re===0&&ae(XE));return re--,A===n&&(z=n,re===0&&ae(Fz)),A}if(Vc=i(),Vc!==n&&D===e.length)return Vc;throw Vc!==n&&D<e.length&&ae(Rz()),Mz(Pg,Jn<e.length?e.charAt(Jn):null,Jn<e.length?t_(Jn,Jn+1):t_(Jn,Jn))}var M3={SyntaxError:wo,parse:uO};const fO=Xs(M3),Jp=Object.fromEntries(Object.entries(Object.freeze(Object.defineProperty({__proto__:null,bigChain:`table bigChain
326
331
  "bigChain pairwise alignment"
327
332
  (
328
333
  string chrom; "Reference sequence chromosome or scaffold"
@@ -481,17 +486,17 @@ Reason: ${s.message}`)}));if(n.isViewSpec(o))return o.baseUrl=(a=i.match(/^[^?#]
481
486
  float score; "Floating point score."
482
487
  char[1] leftStatus; "Gap/break annotation for preceding block"
483
488
  char[1] rightStatus; "Gap/break annotation for following block"
484
- )`},Symbol.toStringTag,{value:"Module"}))).map(([e,t])=>[e,B3.parse(t.trim())]));function Xp(e){const t=["uint","int","float","long"];return{...e,fields:e.fields.map(n=>({...n,isArray:n.size&&n.type!=="char",arrayIsNumeric:n.size&&t.includes(n.type),isNumeric:!n.size&&t.includes(n.type)}))}}const tO={".":0,"-":-1,"+":1};function nO(e){var t;return e.length>=12&&!Number.isNaN(parseInt(e[9],10))&&((t=e[10])===null||t===void 0?void 0:t.split(",").filter(n=>!!n).length)===parseInt(e[9],10)}class rO{constructor(t={}){if(t.autoSql)this.autoSql=Xp(eO.parse(t.autoSql));else if(t.type){if(!Qp[t.type])throw new Error("Type not found");this.autoSql=Xp(Qp[t.type])}else this.autoSql=Xp(Qp.defaultBedSchema),this.attemptDefaultBed=!0}parseLine(t,n={}){const{autoSql:r}=this,{uniqueId:i}=n,o=Array.isArray(t)?t:t.split(" ");let a={};if(!this.attemptDefaultBed||this.attemptDefaultBed&&nO(o))for(let s=0;s<r.fields.length;s++){const u=r.fields[s];let l=o[s];const{isNumeric:f,isArray:c,arrayIsNumeric:h,name:d}=u;if(l==null)break;if(l!=="."){if(f){const p=Number(l);l=Number.isNaN(p)?l:p}else c&&(l=l.split(","),l[l.length-1]===""&&l.pop(),h&&(l=l.map(p=>Number(p))));a[d]=l}}else{const s=["chrom","chromStart","chromEnd","name"];a=Object.fromEntries(o.map((u,l)=>[s[l]||"field"+l,u])),a.chromStart=+a.chromStart,a.chromEnd=+a.chromEnd,Number.isNaN(Number.parseFloat(a.field4))||(a.score=+a.field4,delete a.field4),(a.field5==="+"||a.field5==="-")&&(a.strand=a.field5,delete a.field5)}return i&&(a.uniqueId=i),a.strand=tO[a.strand]||0,a.chrom=decodeURIComponent(a.chrom),a}}const iO=Object.freeze(Object.defineProperty({__proto__:null,default:rO},Symbol.toStringTag,{value:"Module"}));let D3=class{constructor(t,n){this.blockPosition=t,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(t){return this.blockPosition-t.blockPosition||this.dataPosition-t.dataPosition}static min(...t){let n,r=0;for(;!n;r+=1)n=t[r];for(;r<t.length;r+=1)n.compareTo(t[r])>0&&(n=t[r]);return n}};function va(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new D3(e[t+7]*1099511627776+e[t+6]*4294967296+e[t+5]*16777216+e[t+4]*65536+e[t+3]*256+e[t+2],e[t+1]<<8|e[t])}let F3=class{constructor(t,n,r,i){this.minv=t,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(t){return this.minv.compareTo(t.minv)||this.maxv.compareTo(t.maxv)||this.bin-t.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+65536-this.minv.blockPosition}};function oO(e){return new Promise(t=>setTimeout(t,e))}function aO(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}function sO(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new Error("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}function lO(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function uO(e={}){return"aborted"in e?{signal:e}:e}function R3(e,t){const n=[];let r;if(e.length===0)return e;e.sort((i,o)=>{const a=i.minv.blockPosition-o.minv.blockPosition;return a===0?i.minv.dataPosition-o.minv.dataPosition:a});for(const i of e)(!t||i.maxv.compareTo(t)>0)&&(r===void 0?(n.push(i),r=i):lO(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i));return n}function M3(e,t){return{lineCount:aO(Jf.fromBytesLE(Array.prototype.slice.call(e,t,t+8),!0))}}function _c(e,t){return e?e.compareTo(t)>0?t:e:t}function fO(e,t=n=>n){let n=0,r=0;const i=[],o={};for(let a=0;a<e.length;a+=1)if(!e[a]){if(r<a){let s=e.toString("utf8",r,a);s=t(s),i[n]=s,o[s]=n}r=a+1,n+=1}return{refNameToId:o,refIdToName:i}}let P3=class{constructor({filehandle:t,renameRefSeq:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}};const cO=21578050;function hO(e,t){return e-e%t}function dO(e,t){return e-e%t+t}function pO(e,t){return t-=1,[[0,0],[1+(e>>26),1+(t>>26)],[9+(e>>23),9+(t>>23)],[73+(e>>20),73+(t>>20)],[585+(e>>17),585+(t>>17)],[4681+(e>>14),4681+(t>>14)]]}class xa extends P3{async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async _parse(t){const n=await this.filehandle.readFile(t);if(n.readUInt32LE(0)!==cO)throw new Error("Not a BAI file");const r=n.readInt32LE(4),o=((1<<(5+1)*3)-1)/7;let a=8,s;const u=new Array(r);for(let l=0;l<r;l++){const f=n.readInt32LE(a);let c;a+=4;const h={};for(let b=0;b<f;b+=1){const y=n.readUInt32LE(a);if(a+=4,y===o+1)a+=4,c=M3(n,a+16),a+=32;else{if(y>o+1)throw new Error("bai index contains too many bins, please use CSI");{const w=n.readInt32LE(a);a+=4;const _=new Array(w);for(let C=0;C<w;C++){const E=va(n,a);a+=8;const T=va(n,a);a+=8,s=_c(s,E),_[C]=new F3(E,T,y)}h[y]=_}}}const d=n.readInt32LE(a);a+=4;const p=new Array(d);for(let b=0;b<d;b++){const y=va(n,a);a+=8,s=_c(s,y),p[b]=y}u[l]={binIndex:h,linearIndex:p,stats:c}}return{bai:!0,firstDataLine:s,maxBlockSize:65536,indices:u,refCount:r}}async indexCov(t,n,r,i={}){const a=n!==void 0,u=(await this.parse(i)).indices[t];if(!u)return[];const{linearIndex:l=[],stats:f}=u;if(l.length===0)return[];const c=r===void 0?(l.length-1)*16384:dO(r,16384),h=n===void 0?0:hO(n,16384),d=a?new Array((c-h)/16384):new Array(l.length-1),p=l[l.length-1].blockPosition;if(c>(l.length-1)*16384)throw new Error("query outside of range of linear index");let b=l[h/16384].blockPosition;for(let y=h/16384,w=0;y<c/16384;y++,w++)d[w]={score:l[y+1].blockPosition-b,start:y*16384,end:y*16384+16384},b=l[y+1].blockPosition;return d.map(y=>({...y,score:y.score*((f==null?void 0:f.lineCount)||0)/p}))}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const o=await this.parse(i);if(!o)return[];const a=o.indices[t];if(!a)return[];const s=pO(n,r),u=[];for(const[d,p]of s)for(let b=d;b<=p;b++)if(a.binIndex[b]){const y=a.binIndex[b];for(const w of y)u.push(w)}const l=a.linearIndex.length;let f;const c=Math.min(n>>14,l-1),h=Math.min(r>>14,l-1);for(let d=c;d<=h;++d){const p=a.linearIndex[d];p&&(!f||p.compareTo(f)<0)&&(f=p)}return R3(u,f)}async parse(t={}){return this.setupP||(this.setupP=this._parse(t).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}}var si=pe.Buffer,$p=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];typeof Int32Array<"u"&&($p=new Int32Array($p));function L3(e){if(si.isBuffer(e))return e;var t=typeof si.alloc=="function"&&typeof si.from=="function";if(typeof e=="number")return t?si.alloc(e):new si(e);if(typeof e=="string")return t?si.from(e):new si(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function gO(e){var t=L3(4);return t.writeInt32BE(e,0),t}function Kp(e,t){e=L3(e),si.isBuffer(t)&&(t=t.readUInt32BE(0));for(var n=~~t^-1,r=0;r<e.length;r++)n=$p[(n^e[r])&255]^n>>>8;return n^-1}function Jp(){return gO(Kp.apply(null,arguments))}Jp.signed=function(){return Kp.apply(null,arguments)},Jp.unsigned=function(){return Kp.apply(null,arguments)>>>0};var mO=Jp;const bO=$s(mO),yO=21582659,wO=38359875;function vO(e,t){return e*2**t}function N3(e,t){return Math.floor(e/2**t)}let Sc=class extends P3{constructor(){super(...arguments),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async indexCov(){return[]}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",o={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!o)throw new Error(`invalid Tabix preset format flags ${r}`);const a={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},s=t.readInt32LE(n+16),u=s?String.fromCharCode(s):"",l=t.readInt32LE(n+20),f=t.readInt32LE(n+24);return{columnNumbers:a,coordinateType:i,metaValue:s,metaChar:u,skipLines:l,format:o,formatFlags:r,...fO(t.subarray(n+28,n+28+f),this.renameRefSeq)}}async _parse(t){const n=await this.filehandle.readFile(t),r=await Jr(n);let i;if(r.readUInt32LE(0)===yO)i=1;else if(r.readUInt32LE(0)===wO)i=2;else throw new Error("Not a CSI file");this.minShift=r.readInt32LE(4),this.depth=r.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const o=r.readInt32LE(12),a=o>=30?this.parseAuxData(r,16):void 0,s=r.readInt32LE(16+o);let u=16+o+4,l;const f=new Array(s);for(let c=0;c<s;c++){const h=r.readInt32LE(u);u+=4;const d={};let p;for(let b=0;b<h;b++){const y=r.readUInt32LE(u);if(u+=4,y>this.maxBinNumber)p=M3(r,u+28),u+=28+16;else{l=_c(l,va(r,u)),u+=8;const w=r.readInt32LE(u);u+=4;const _=new Array(w);for(let C=0;C<w;C+=1){const E=va(r,u);u+=8;const T=va(r,u);u+=8,l=_c(l,E),_[C]=new F3(E,T,y)}d[y]=_}}f[c]={binIndex:d,stats:p}}return{csiVersion:i,firstDataLine:l,indices:f,refCount:s,csi:!0,maxBlockSize:65536,...a}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const o=await this.parse(i),a=o==null?void 0:o.indices[t];if(!a)return[];const s=this.reg2bins(n,r);if(s.length===0)return[];const u=[];for(const[l,f]of s)for(let c=l;c<=f;c++)if(a.binIndex[c]){const h=a.binIndex[c];for(const d of h)u.push(d)}return R3(u,new D3(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,o=this.minShift+this.depth*3;const a=[];for(;r<=this.depth;o-=3,i+=vO(1,r*3),r+=1){const s=i+N3(t,o),u=i+N3(n,o);if(u-s+a.length>this.maxBinNumber)throw new Error(`query ${t}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);a.push([s,u])}return a}async parse(t={}){return this.setupP||(this.setupP=this._parse(t).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}};const hn={BAM_FPAIRED:1,BAM_FPROPER_PAIR:2,BAM_FUNMAP:4,BAM_FMUNMAP:8,BAM_FREVERSE:16,BAM_FMREVERSE:32,BAM_FREAD1:64,BAM_FREAD2:128,BAM_FSECONDARY:256,BAM_FQCFAIL:512,BAM_FDUP:1024,BAM_FSUPPLEMENTARY:2048},O3="=ACMGRSVTWYHKDBN".split(""),Nl="MIDNSHP=X???????".split("");class z3{constructor(t){this.data={},this._tagList=[],this._allTagsParsed=!1;const{bytes:n,fileOffset:r}=t,{byteArray:i,start:o}=n;this.data={},this.bytes=n,this._id=r,this._refID=i.readInt32LE(o+4),this.data.start=i.readInt32LE(o+8),this.flags=(i.readInt32LE(o+16)&4294901760)>>16}get(t){return this[t]?this.data[t]?this.data[t]:(this.data[t]=this[t](),this.data[t]):this._get(t.toLowerCase())}end(){return this.get("start")+this.get("length_on_ref")}seq_id(){return this._refID}_get(t){return t in this.data?this.data[t]:(this.data[t]=this._parseTag(t),this.data[t])}_tags(){this._parseAllTags();let t=["seq"];this.isSegmentUnmapped()||t.push("start","end","strand","score","qual","MQ","CIGAR","length_on_ref","template_length"),this.isPaired()&&t.push("next_segment_position","pair_orientation"),t=t.concat(this._tagList||[]);for(const r of Object.keys(this.data))r[0]!=="_"&&r!=="next_seq_id"&&t.push(r);const n={};return t.filter(r=>{if(r in this.data&&this.data[r]===void 0||r==="CG"||r==="cg")return!1;const i=r.toLowerCase(),o=n[i];return n[i]=!0,!o})}parent(){}children(){return this.get("subfeatures")}id(){return this._id}mq(){const t=(this.get("_bin_mq_nl")&65280)>>8;return t===255?void 0:t}score(){return this.get("mq")}qual(){var t;return(t=this.qualRaw())===null||t===void 0?void 0:t.join(" ")}qualRaw(){if(this.isSegmentUnmapped())return;const{start:t,byteArray:n}=this.bytes,r=t+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes"),i=this.get("seq_length");return n.subarray(r,r+i)}strand(){return this.isReverseComplemented()?-1:1}multi_segment_next_segment_strand(){if(!this.isMateUnmapped())return this.isMateReverseComplemented()?-1:1}name(){return this.get("_read_name")}_read_name(){const t=this.get("_l_read_name"),{byteArray:n,start:r}=this.bytes;return n.toString("ascii",r+36,r+36+t-1)}_parseTag(t){if(this._allTagsParsed)return;const{byteArray:n,start:r}=this.bytes;let i=this._tagOffset||r+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes")+this.get("seq_length");const o=this.bytes.end;let a;for(;i<o&&a!==t;){const s=String.fromCharCode(n[i],n[i+1]);a=s.toLowerCase();const u=String.fromCharCode(n[i+2]);i+=3;let l;switch(u){case"A":{l=String.fromCharCode(n[i]),i+=1;break}case"i":{l=n.readInt32LE(i),i+=4;break}case"I":{l=n.readUInt32LE(i),i+=4;break}case"c":{l=n.readInt8(i),i+=1;break}case"C":{l=n.readUInt8(i),i+=1;break}case"s":{l=n.readInt16LE(i),i+=2;break}case"S":{l=n.readUInt16LE(i),i+=2;break}case"f":{l=n.readFloatLE(i),i+=4;break}case"Z":case"H":{for(l="";i<=o;){const f=n[i++];if(f===0)break;l+=String.fromCharCode(f)}break}case"B":{l="";const f=n[i++],c=String.fromCharCode(f),h=n.readInt32LE(i);if(i+=4,c==="i")if(s==="CG")for(let d=0;d<h;d++){const p=n.readInt32LE(i),b=p>>4,y=Nl[p&15];l+=b+y,i+=4}else for(let d=0;d<h;d++)l+=n.readInt32LE(i),d+1<h&&(l+=","),i+=4;if(c==="I")if(s==="CG")for(let d=0;d<h;d++){const p=n.readUInt32LE(i),b=p>>4,y=Nl[p&15];l+=b+y,i+=4}else for(let d=0;d<h;d++)l+=n.readUInt32LE(i),d+1<h&&(l+=","),i+=4;if(c==="s")for(let d=0;d<h;d++)l+=n.readInt16LE(i),d+1<h&&(l+=","),i+=2;if(c==="S")for(let d=0;d<h;d++)l+=n.readUInt16LE(i),d+1<h&&(l+=","),i+=2;if(c==="c")for(let d=0;d<h;d++)l+=n.readInt8(i),d+1<h&&(l+=","),i+=1;if(c==="C")for(let d=0;d<h;d++)l+=n.readUInt8(i),d+1<h&&(l+=","),i+=1;if(c==="f")for(let d=0;d<h;d++)l+=n.readFloatLE(i),d+1<h&&(l+=","),i+=4;break}default:console.warn(`Unknown BAM tag type '${u}', tags may be incomplete`),l=void 0,i=o}if(this._tagOffset=i,this._tagList.push(s),a===t)return l;this.data[a]=l}this._allTagsParsed=!0}_parseAllTags(){this._parseTag("")}_parseCigar(t){return t.match(/\d+\D/g).map(n=>[n.match(/\D/)[0].toUpperCase(),Number.parseInt(n,10)])}isPaired(){return!!(this.flags&hn.BAM_FPAIRED)}isProperlyPaired(){return!!(this.flags&hn.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return!!(this.flags&hn.BAM_FUNMAP)}isMateUnmapped(){return!!(this.flags&hn.BAM_FMUNMAP)}isReverseComplemented(){return!!(this.flags&hn.BAM_FREVERSE)}isMateReverseComplemented(){return!!(this.flags&hn.BAM_FMREVERSE)}isRead1(){return!!(this.flags&hn.BAM_FREAD1)}isRead2(){return!!(this.flags&hn.BAM_FREAD2)}isSecondary(){return!!(this.flags&hn.BAM_FSECONDARY)}isFailedQc(){return!!(this.flags&hn.BAM_FQCFAIL)}isDuplicate(){return!!(this.flags&hn.BAM_FDUP)}isSupplementary(){return!!(this.flags&hn.BAM_FSUPPLEMENTARY)}cigar(){if(this.isSegmentUnmapped())return;const{byteArray:t,start:n}=this.bytes,r=this.get("_n_cigar_op");let i=n+36+this.get("_l_read_name");const o=this.get("seq_length");let a="",s=0,u=t.readInt32LE(i),l=u>>4,f=Nl[u&15];if(f==="S"&&l===o)return i+=4,u=t.readInt32LE(i),l=u>>4,f=Nl[u&15],f!=="N"&&console.warn("CG tag with no N tag"),this.data.length_on_ref=l,this.get("CG");for(let c=0;c<r;++c)u=t.readInt32LE(i),l=u>>4,f=Nl[u&15],a+=l+f,f!=="H"&&f!=="S"&&f!=="I"&&(s+=l),i+=4;return this.data.length_on_ref=s,a}_flags(){}length_on_ref(){return this.data.length_on_ref?this.data.length_on_ref:(this.get("cigar"),this.data.length_on_ref)}_n_cigar_op(){return this.get("_flag_nc")&65535}_l_read_name(){return this.get("_bin_mq_nl")&255}_seq_bytes(){return this.get("seq_length")+1>>1}getReadBases(){return this.seq()}seq(){const{byteArray:t,start:n}=this.bytes,r=n+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4,i=this.get("_seq_bytes"),o=this.get("seq_length");let a="",s=0;for(let u=0;u<i;++u){const l=t[r+u];a+=O3[(l&240)>>4],s++,s<o&&(a+=O3[l&15],s++)}return a}getPairOrientation(){if(!this.isSegmentUnmapped()&&!this.isMateUnmapped()&&this._refID===this._next_refid()){const t=this.isReverseComplemented()?"R":"F",n=this.isMateReverseComplemented()?"R":"F";let r=" ",i=" ";this.isRead1()?(r="1",i="2"):this.isRead2()&&(r="2",i="1");const o=[];return this.template_length()>0?(o[0]=t,o[1]=r,o[2]=n,o[3]=i):(o[2]=t,o[3]=r,o[0]=n,o[1]=i),o.join("")}return""}_bin_mq_nl(){return this.bytes.byteArray.readInt32LE(this.bytes.start+12)}_flag_nc(){return this.bytes.byteArray.readInt32LE(this.bytes.start+16)}seq_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+20)}_next_refid(){return this.bytes.byteArray.readInt32LE(this.bytes.start+24)}_next_pos(){return this.bytes.byteArray.readInt32LE(this.bytes.start+28)}template_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+32)}toJSON(){const t={};for(const n of Object.keys(this))n.charAt(0)==="_"||n==="bytes"||(t[n]=this[n]);return t}}function U3(e){const t=e.split(/\r?\n/),n=[];for(const r of t){const[i,...o]=r.split(/\t/);i&&n.push({tag:i.slice(1),data:o.map(a=>{const[s,u]=a.split(":",2);return{tag:s,value:u}})})}return n}const G3=21840194,H3=65536;async function xO(e){let t=[];for await(const n of e)t=t.concat(n);return t}class AO{read(){throw new Error("never called")}stat(){throw new Error("never called")}readFile(){throw new Error("never called")}close(){throw new Error("never called")}}class V3{constructor({bamFilehandle:t,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:o,baiUrl:a,csiPath:s,csiFilehandle:u,csiUrl:l,htsget:f,yieldThreadTime:c=100,renameRefSeqs:h=d=>d}){if(this.htsget=!1,this.featureCache=new sc({cache:new lc({maxSize:50}),fill:async(d,p)=>{const{chunk:b,opts:y}=d,{data:w,cpositions:_,dpositions:C}=await this._readChunk({chunk:b,opts:{...y,signal:p}});return this.readBamFeatures(w,_,C,b)}}),this.renameRefSeq=h,t)this.bam=t;else if(n)this.bam=new ht(n);else if(r)this.bam=new Wi(r);else if(f)this.htsget=!0,this.bam=new AO;else throw new Error("unable to initialize bam");if(u)this.index=new Sc({filehandle:u});else if(s)this.index=new Sc({filehandle:new ht(s)});else if(l)this.index=new Sc({filehandle:new Wi(l)});else if(o)this.index=new xa({filehandle:o});else if(i)this.index=new xa({filehandle:new ht(i)});else if(a)this.index=new xa({filehandle:new Wi(a)});else if(n)this.index=new xa({filehandle:new ht(`${n}.bai`)});else if(r)this.index=new xa({filehandle:new Wi(`${r}.bai`)});else if(f)this.htsget=!0;else throw new Error("unable to infer index format");this.yieldThreadTime=c}async getHeaderPre(t){const n=uO(t);if(!this.index)return;const r=await this.index.parse(n),i=r.firstDataLine?r.firstDataLine.blockPosition+65535:void 0;let o;if(i){const f=i+H3,c=await this.bam.read(pe.Buffer.alloc(f),0,f,0,n);if(!c.bytesRead)throw new Error("Error reading header");o=c.buffer.subarray(0,Math.min(c.bytesRead,i))}else o=await this.bam.readFile(n);const a=await Jr(o);if(a.readInt32LE(0)!==G3)throw new Error("Not a BAM file");const s=a.readInt32LE(4);this.header=a.toString("utf8",8,8+s);const{chrToIndex:u,indexToChr:l}=await this._readRefSeqs(s+8,65535,n);return this.chrToIndex=u,this.indexToChr=l,U3(this.header)}getHeader(t){return this.headerP||(this.headerP=this.getHeaderPre(t).catch(n=>{throw this.headerP=void 0,n})),this.headerP}async getHeaderText(t={}){return await this.getHeader(t),this.header}async _readRefSeqs(t,n,r){if(t>n)return this._readRefSeqs(t,n*2,r);const i=n+H3,{bytesRead:o,buffer:a}=await this.bam.read(pe.Buffer.alloc(i),0,n,0,r);if(!o)throw new Error("Error reading refseqs from header");const s=await Jr(a.subarray(0,Math.min(o,n))),u=s.readInt32LE(t);let l=t+4;const f={},c=[];for(let h=0;h<u;h+=1){const d=s.readInt32LE(l),p=this.renameRefSeq(s.toString("utf8",l+4,l+4+d-1)),b=s.readInt32LE(l+d+4);if(f[p]=h,c.push({refName:p,length:b}),l=l+8+d,l>s.length)return console.warn(`BAM header is very big. Re-fetching ${n} bytes.`),this._readRefSeqs(t,n*2,r)}return{chrToIndex:f,indexToChr:c}}async getRecordsForRange(t,n,r,i){return xO(this.streamRecordsForRange(t,n,r,i))}async*streamRecordsForRange(t,n,r,i){var o;await this.getHeader(i);const a=(o=this.chrToIndex)===null||o===void 0?void 0:o[t];if(a===void 0||!this.index)yield[];else{const s=await this.index.blocksForRange(a,n-1,r,i);yield*this._fetchChunkFeatures(s,a,n,r,i)}}async*_fetchChunkFeatures(t,n,r,i,o={}){const{viewAsPairs:a}=o,s=[];let u=!1;for(const l of t){const f=await this.featureCache.get(l.toString(),{chunk:l,opts:o},o.signal),c=[];for(const h of f)if(h.seq_id()===n)if(h.get("start")>=i){u=!0;break}else h.get("end")>=r&&c.push(h);if(s.push(c),yield c,u)break}sO(o.signal),a&&(yield this.fetchPairs(n,s,o))}async fetchPairs(t,n,r){const{pairAcrossChr:i,maxInsertSize:o=2e5}=r,a={},s={};n.map(h=>{const d={};for(const p of h){const b=p.name(),y=p.id();d[b]||(d[b]=0),d[b]++,s[y]=1}for(const[p,b]of Object.entries(d))b===1&&(a[p]=!0)});const u=[];n.map(h=>{for(const d of h){const p=d.name(),b=d.get("start"),y=d._next_pos(),w=d._next_refid();this.index&&a[p]&&(i||w===t&&Math.abs(b-y)<o)&&u.push(this.index.blocksForRange(w,y,y+1,r))}});const l=new Map,f=await Promise.all(u);for(const h of f.flat())l.has(h.toString())||l.set(h.toString(),h);return(await Promise.all([...l.values()].map(async h=>{const{data:d,cpositions:p,dpositions:b,chunk:y}=await this._readChunk({chunk:h,opts:r}),w=[];for(const _ of await this.readBamFeatures(d,p,b,y))a[_.get("name")]&&!s[_.id()]&&w.push(_);return w}))).flat()}async _readRegion(t,n,r={}){const{bytesRead:i,buffer:o}=await this.bam.read(pe.Buffer.alloc(n),0,n,t,r);return o.subarray(0,Math.min(i,n))}async _readChunk({chunk:t,opts:n}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n),{buffer:i,cpositions:o,dpositions:a}=await ux(r,t);return{data:i,cpositions:o,dpositions:a,chunk:t}}async readBamFeatures(t,n,r,i){let o=0;const a=[];let s=0,u=+Date.now();for(;o+4<t.length;){const l=t.readInt32LE(o),f=o+4+l-1;if(r){for(;o+i.minv.dataPosition>=r[s++];);s--}if(f<t.length){const c=new z3({bytes:{byteArray:t,start:o,end:f},fileOffset:n.length>0?n[s]*256+(o-r[s])+i.minv.dataPosition+1:bO.signed(t.slice(o,f))});a.push(c),this.yieldThreadTime&&+Date.now()-u>this.yieldThreadTime&&(await oO(1),u=+Date.now())}o=f+1}return a}async hasRefSeq(t){var n,r;const i=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return i===void 0?!1:(r=this.index)===null||r===void 0?void 0:r.hasRefSeq(i)}async lineCount(t){var n;const r=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return r===void 0||!this.index?0:this.index.lineCount(r)}async indexCov(t,n,r){var i;if(!this.index)return[];await this.index.parse();const o=(i=this.chrToIndex)===null||i===void 0?void 0:i[t];return o===void 0?[]:this.index.indexCov(o,n,r)}async blocksForRange(t,n,r,i){var o;if(!this.index)return[];await this.index.parse();const a=(o=this.chrToIndex)===null||o===void 0?void 0:o[t];return a===void 0?[]:this.index.blocksForRange(a,n,r,i)}}async function j3(e,t){const n=await Promise.all(e.map(async r=>{const{url:i,headers:o}=r;if(i.startsWith("data:"))return pe.Buffer.from(i.split(",")[1],"base64");{const{referer:a,...s}=o,u=await fetch(i,{...t,headers:{...t==null?void 0:t.headers,...s}});if(!u.ok)throw new Error(`HTTP ${u.status} fetching ${i}: ${await u.text()}`);return pe.Buffer.from(await u.arrayBuffer())}}));return pe.Buffer.concat(await Promise.all(n.map(r=>Jr(r))))}class EO extends V3{constructor(t){super({htsget:!0}),this.baseUrl=t.baseUrl,this.trackId=t.trackId}async*streamRecordsForRange(t,n,r,i){var o;const s=`${`${this.baseUrl}/${this.trackId}`}?referenceName=${t}&start=${n}&end=${r}&format=BAM`,u=(o=this.chrToIndex)===null||o===void 0?void 0:o[t];if(u===void 0)yield[];else{const l=await fetch(s,{...i});if(!l.ok)throw new Error(`HTTP ${l.status} fetching ${s}: ${await l.text()}`);const f=await l.json(),c=await j3(f.htsget.urls.slice(1),i);yield*this._fetchChunkFeatures([{buffer:c,_fetchedSize:void 0,bin:0,compareTo(){return 0},toUniqueString(){return`${t}_${n}_${r}`},fetchedSize(){return 0},minv:{dataPosition:0,blockPosition:0,compareTo:()=>0},maxv:{dataPosition:Number.MAX_SAFE_INTEGER,blockPosition:0,compareTo:()=>0},toString(){return`${t}_${n}_${r}`}}],u,n,r,i)}}async _readChunk({chunk:t}){if(!t.buffer)throw new Error("expected chunk.buffer in htsget");return{data:t.buffer,cpositions:[],dpositions:[],chunk:t}}async getHeader(t={}){const n=`${this.baseUrl}/${this.trackId}?referenceName=na&class=header`,r=await fetch(n,t);if(!r.ok)throw new Error(`HTTP ${r.status} fetching ${n}: ${await r.text()}`);const i=await r.json(),o=await j3(i.htsget.urls,t);if(o.readInt32LE(0)!==G3)throw new Error("Not a BAM file");const a=o.readInt32LE(4),s=o.toString("utf8",8,8+a),u=U3(s),l=[],f={},c=u.filter(h=>h.tag==="SQ");for(const[h,d]of c.entries()){let p="",b=0;for(const y of d.data)y.tag==="SN"?p=y.value:y.tag==="LN"&&(b=+y.value);f[p]=h,l[h]={refName:p,length:b}}return this.chrToIndex=f,this.indexToChr=l,u}}const _O=Object.freeze(Object.defineProperty({__proto__:null,BAI:xa,BamFile:V3,BamRecord:z3,CSI:Sc,HtsgetFile:EO},Symbol.toStringTag,{value:"Module"}));function q3(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}class SO extends Error{}function Aa(e){if(e&&e.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const t=new SO("aborted");throw t.code="ERR_ABORTED",t}}}function CO(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function Z3(e,t){const n=[];let r=null;return e.length===0?e:(e.sort(function(i,o){const a=i.minv.blockPosition-o.minv.blockPosition;return a!==0?a:i.minv.dataPosition-o.minv.dataPosition}),e.forEach(i=>{(!t||i.maxv.compareTo(t)>0)&&(r===null?(n.push(i),r=i):CO(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}class eg{constructor(t,n){this.blockPosition=t,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(t){return this.blockPosition-t.blockPosition||this.dataPosition-t.dataPosition}static min(...t){let n,r=0;for(;!n;r+=1)n=t[r];for(;r<t.length;r+=1)n.compareTo(t[r])>0&&(n=t[r]);return n}}function Ea(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new eg(e[t+7]*1099511627776+e[t+6]*4294967296+e[t+5]*16777216+e[t+4]*65536+e[t+3]*256+e[t+2],e[t+1]<<8|e[t])}class Cc{constructor(t,n,r,i=void 0){this.minv=t,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(t){return this.minv.compareTo(t.minv)||this.maxv.compareTo(t.maxv)||this.bin-t.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+65536-this.minv.blockPosition}}class W3{constructor({filehandle:t,renameRefSeqs:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}async getMetadata(t={}){const{indices:n,...r}=await this.parse(t);return r}_findFirstData(t,n){return t?t.compareTo(n)>0?n:t:n}async parse(t={}){return this.parseP||(this.parseP=this._parse(t).catch(n=>{throw this.parseP=void 0,n})),this.parseP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}}const kO=21578324,Y3=14;function TO(e,t){return e+=1,t-=1,[[0,0],[1+(e>>26),1+(t>>26)],[9+(e>>23),9+(t>>23)],[73+(e>>20),73+(t>>20)],[585+(e>>17),585+(t>>17)],[4681+(e>>14),4681+(t>>14)]]}class kc extends W3{async lineCount(t,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[t];if(!r.indices[i])return-1;const{stats:a}=r.indices[i];return a?a.lineCount:-1}async _parse(t={}){const n=await this.filehandle.readFile(t),r=await Jr(n);if(Aa(t.signal),r.readUInt32LE(0)!==kO)throw new Error("Not a TBI file");const i=r.readInt32LE(4),o=r.readInt32LE(8),a=o&65536?"zero-based-half-open":"1-based-closed",u={0:"generic",1:"SAM",2:"VCF"}[o&15];if(!u)throw new Error(`invalid Tabix preset format flags ${o}`);const l={ref:r.readInt32LE(12),start:r.readInt32LE(16),end:r.readInt32LE(20)},f=r.readInt32LE(24),c=5,h=((1<<(c+1)*3)-1)/7,d=2**(14+c*3),p=f?String.fromCharCode(f):null,b=r.readInt32LE(28),y=r.readInt32LE(32),{refNameToId:w,refIdToName:_}=this._parseNameBytes(r.slice(36,36+y));let C=36+y,E;return{indices:new Array(i).fill(0).map(()=>{const B=r.readInt32LE(C);C+=4;const I={};let R;for(let O=0;O<B;O+=1){const ie=r.readUInt32LE(C);if(C+=4,ie>h+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(ie===h+1){const se=r.readInt32LE(C);C+=4,se===2&&(R=this.parsePseudoBin(r,C)),C+=16*se}else{const se=r.readInt32LE(C);C+=4;const ge=new Array(se);for(let Ie=0;Ie<se;Ie+=1){const Xe=Ea(r,C),De=Ea(r,C+8);C+=16,E=this._findFirstData(E,Xe),ge[Ie]=new Cc(Xe,De,ie)}I[ie]=ge}}const M=r.readInt32LE(C);C+=4;const j=new Array(M);for(let O=0;O<M;O+=1)j[O]=Ea(r,C),C+=8,E=this._findFirstData(E,j[O]);return{binIndex:I,linearIndex:j,stats:R}}),metaChar:p,maxBinNumber:h,maxRefLength:d,skipLines:b,firstDataLine:E,columnNumbers:l,coordinateType:a,format:u,refIdToName:_,refNameToId:w,maxBlockSize:65536}}parsePseudoBin(t,n){return{lineCount:q3(Jf.fromBytesLE(t.slice(n+16,n+24),!0))}}_parseNameBytes(t){let n=0,r=0;const i=[],o={};for(let a=0;a<t.length;a+=1)if(!t[a]){if(r<a){let s=t.toString("utf8",r,a);s=this.renameRefSeq(s),i[n]=s,o[s]=n}r=a+1,n+=1}return{refNameToId:o,refIdToName:i}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const o=await this.parse(i);if(!o)return[];const a=o.refNameToId[t],s=o.indices[a];if(!s)return[];(s.linearIndex.length?s.linearIndex[n>>Y3>=s.linearIndex.length?s.linearIndex.length-1:n>>Y3]:new eg(0,0))||console.warn("querying outside of possible tabix range");const l=TO(n,r),f=[];for(const[b,y]of l)for(let w=b;w<=y;w++)if(s.binIndex[w])for(const _ of s.binIndex[w])f.push(new Cc(_.minv,_.maxv,w));const c=s.linearIndex.length;let h=null;const d=Math.min(n>>14,c-1),p=Math.min(r>>14,c-1);for(let b=d;b<=p;++b){const y=s.linearIndex[b];y&&(!h||y.compareTo(h)<0)&&(h=y)}return Z3(f,h)}}const IO=21582659,BO=38359875;function DO(e,t){return e*2**t}function Q3(e,t){return Math.floor(e/2**t)}class tg extends W3{constructor(t){super(t),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[t];if(!r.indices[i])return-1;const{stats:a}=r.indices[i];return a?a.lineCount:-1}indexCov(){throw new Error("CSI indexes do not support indexcov")}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",o={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!o)throw new Error(`invalid Tabix preset format flags ${r}`);const a={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},s=t.readInt32LE(n+16),u=s?String.fromCharCode(s):null,l=t.readInt32LE(n+20),f=t.readInt32LE(n+24),{refIdToName:c,refNameToId:h}=this._parseNameBytes(t.slice(n+28,n+28+f));return{refIdToName:c,refNameToId:h,skipLines:l,metaChar:u,columnNumbers:a,format:o,coordinateType:i}}_parseNameBytes(t){let n=0,r=0;const i=[],o={};for(let a=0;a<t.length;a+=1)if(!t[a]){if(r<a){let s=t.toString("utf8",r,a);s=this.renameRefSeq(s),i[n]=s,o[s]=n}r=a+1,n+=1}return{refNameToId:o,refIdToName:i}}async _parse(t={}){const n=await Jr(await this.filehandle.readFile(t));let r;if(n.readUInt32LE(0)===IO)r=1;else if(n.readUInt32LE(0)===BO)r=2;else throw new Error("Not a CSI file");this.minShift=n.readInt32LE(4),this.depth=n.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const i=2**(this.minShift+this.depth*3),o=n.readInt32LE(12),a=o&&o>=30?this.parseAuxData(n,16):{refIdToName:[],refNameToId:{},metaChar:null,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},s=n.readInt32LE(16+o);let u,l=16+o+4;const f=new Array(s).fill(0).map(()=>{const c=n.readInt32LE(l);l+=4;const h={};let d;for(let p=0;p<c;p+=1){const b=n.readUInt32LE(l);if(b>this.maxBinNumber)d=this.parsePseudoBin(n,l+4),l+=4+8+4+16+16;else{const y=Ea(n,l+4);u=this._findFirstData(u,y);const w=n.readInt32LE(l+12);l+=16;const _=new Array(w);for(let C=0;C<w;C+=1){const E=Ea(n,l),T=Ea(n,l+8);l+=16,_[C]=new Cc(E,T,b)}h[b]=_}}return{binIndex:h,stats:d}});return{...a,csi:!0,refCount:s,maxBlockSize:65536,firstDataLine:u,csiVersion:r,indices:f,depth:this.depth,maxBinNumber:this.maxBinNumber,maxRefLength:i}}parsePseudoBin(t,n){return{lineCount:q3(Jf.fromBytesLE(t.slice(n+28,n+36),!0))}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const o=await this.parse(i);if(!o)return[];const a=o.refNameToId[t],s=o.indices[a];if(!s)return[];const u=this.reg2bins(n,r),l=[];for(const[f,c]of u)for(let h=f;h<=c;h++)if(s.binIndex[h])for(const d of s.binIndex[h])l.push(new Cc(d.minv,d.maxv,h));return Z3(l,new eg(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,o=this.minShift+this.depth*3;const a=[];for(;r<=this.depth;o-=3,i+=DO(1,r*3),r+=1){const s=i+Q3(t,o),u=i+Q3(n,o);if(u-s+a.length>this.maxBinNumber)throw new Error(`query ${t}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);a.push([s,u])}return a}}const ng=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function FO(e){return new Promise(t=>setTimeout(t,e))}class RO{constructor({path:t,filehandle:n,tbiPath:r,tbiFilehandle:i,csiPath:o,csiFilehandle:a,yieldTime:s=500,chunkSizeLimit:u=5e7,renameRefSeqs:l=c=>c,chunkCacheSize:f=5*2**20}){if(n)this.filehandle=n;else if(t)this.filehandle=new ht(t);else throw new TypeError("must provide either filehandle or path");if(i)this.index=new kc({filehandle:i,renameRefSeqs:l});else if(a)this.index=new tg({filehandle:a,renameRefSeqs:l});else if(r)this.index=new kc({filehandle:new ht(r),renameRefSeqs:l});else if(o)this.index=new tg({filehandle:new ht(o),renameRefSeqs:l});else if(t)this.index=new kc({filehandle:new ht(`${t}.tbi`),renameRefSeqs:l});else throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, or csiPath");this.chunkSizeLimit=u,this.renameRefSeq=l,this.yieldTime=s,this.chunkCache=new sc({cache:new lc({maxSize:Math.floor(f/65536)}),fill:(c,h)=>this.readChunk(c,{signal:h})})}async getLines(t,n,r,i){var o;let a,s={},u;if(i===void 0)throw new TypeError("line callback must be provided");if(typeof i=="function"?u=i:(s=i,u=i.lineCallback,a=i.signal),t===void 0)throw new TypeError("must provide a reference sequence name");if(!u)throw new TypeError("line callback must be provided");const l=await this.index.getMetadata(s);Aa(a);const f=n??0,c=r??l.maxRefLength;if(!(f<=c))throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(f===c)return;const h=await this.index.blocksForRange(t,f,c,s);Aa(a);for(const p of h){const b=p.fetchedSize();if(b>this.chunkSizeLimit)throw new Error(`Too much data. Chunk size ${b.toLocaleString()} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit.toLocaleString()}.`)}let d=Date.now();for(const p of h){let b;const{buffer:y,cpositions:w,dpositions:_}=await this.chunkCache.get(p.toString(),p,a);Aa(a);let C=0,E=0;for(;C<y.length;){const T=y.indexOf(`
485
- `,C);if(T===-1)break;const B=y.slice(C,T),I=(o=ng==null?void 0:ng.decode(B))!==null&&o!==void 0?o:B.toString();if(_){for(;C+p.minv.dataPosition>=_[E++];);E--}const{startCoordinate:R,overlaps:M}=this.checkLine(l,t,f,c,I);if(b!==void 0&&R!==void 0&&b>R)throw new Error(`Lines not sorted by start coordinate (${b} > ${R}), this file is not usable with Tabix.`);if(b=R,M)u(I.trim(),w[E]*256+(C-_[E])+p.minv.dataPosition+1);else if(R!==void 0&&R>=c)return;this.yieldTime&&d-Date.now()>this.yieldTime&&(d=Date.now(),Aa(a),await FO(1)),C=T+1}}}async getMetadata(t={}){return this.index.getMetadata(t)}async getHeaderBuffer(t={}){const{firstDataLine:n,metaChar:r,maxBlockSize:i}=await this.getMetadata(t);Aa(t.signal);const o=((n==null?void 0:n.blockPosition)||0)+i,a=await this._readRegion(0,o,t),s=await Jr(a);if(r){let u=-1;const l=`
486
- `.charCodeAt(0),f=r.charCodeAt(0);for(let c=0;c<s.length&&!(c===u+1&&s[c]!==f);c+=1)s[c]===l&&(u=c);return s.slice(0,u+1)}return s}async getHeader(t={}){return(await this.getHeaderBuffer(t)).toString("utf8")}async getReferenceSequenceNames(t={}){return(await this.getMetadata(t)).refIdToName}checkLine(t,n,r,i,o){const{columnNumbers:a,metaChar:s,coordinateType:u,format:l}=t;if(s&&o.startsWith(s))return{overlaps:!1};let{ref:f,start:c,end:h}=a;f||(f=0),c||(c=0),h||(h=0),l==="VCF"&&(h=8);const d=Math.max(f,c,h);let p=1,b=0,y="",w=-1/0;for(let _=0;_<o.length+1;_+=1)if(o[_]===" "||_===o.length){if(p===f){if(this.renameRefSeq(o.slice(b,_))!==n)return{overlaps:!1}}else if(p===c){if(w=parseInt(o.slice(b,_),10),u==="1-based-closed"&&(w-=1),w>=i)return{startCoordinate:w,overlaps:!1};if((h===0||h===c)&&w+1<=r)return{startCoordinate:w,overlaps:!1}}else if(l==="VCF"&&p===4)y=o.slice(b,_);else if(p===h&&(l==="VCF"?this._getVcfEnd(w,y,o.slice(b,_)):parseInt(o.slice(b,_),10))<=r)return{overlaps:!1};if(b=_+1,p+=1,p>d)break}return{startCoordinate:w,overlaps:!0}}_getVcfEnd(t,n,r){let i=t+n.length;const o=r.includes("SVTYPE=TRA");if(r[0]!=="."&&!o){let a=";";for(let s=0;s<r.length;s+=1){if(a===";"&&r.slice(s,s+4)==="END="){let u=r.indexOf(";",s);u===-1&&(u=r.length),i=parseInt(r.slice(s+4,u),10);break}a=r[s]}}else if(o)return t+1;return i}async lineCount(t,n={}){return this.index.lineCount(t,n)}async _readRegion(t,n,r={}){const i=pe.Buffer.alloc(n),{bytesRead:o,buffer:a}=await this.filehandle.read(i,0,n,t,r);return a.slice(0,o)}async readChunk(t,n={}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n);return ux(r,t)}}const MO=Object.freeze(Object.defineProperty({__proto__:null,CSI:tg,TBI:kc,TabixIndexedFile:RO},Symbol.toStringTag,{value:"Module"}));var rg={exports:{}},_a=typeof Reflect=="object"?Reflect:null,X3=_a&&typeof _a.apply=="function"?_a.apply:function(t,n,r){return Function.prototype.apply.call(t,n,r)},Tc;_a&&typeof _a.ownKeys=="function"?Tc=_a.ownKeys:Object.getOwnPropertySymbols?Tc=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Tc=function(t){return Object.getOwnPropertyNames(t)};function PO(e){console&&console.warn&&console.warn(e)}var $3=Number.isNaN||function(t){return t!==t};function Be(){Be.init.call(this)}rg.exports=Be,rg.exports.once=zO,Be.EventEmitter=Be,Be.prototype._events=void 0,Be.prototype._eventsCount=0,Be.prototype._maxListeners=void 0;var K3=10;function Ic(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(Be,"defaultMaxListeners",{enumerable:!0,get:function(){return K3},set:function(e){if(typeof e!="number"||e<0||$3(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");K3=e}}),Be.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Be.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||$3(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function J3(e){return e._maxListeners===void 0?Be.defaultMaxListeners:e._maxListeners}Be.prototype.getMaxListeners=function(){return J3(this)},Be.prototype.emit=function(t){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=t==="error",o=this._events;if(o!==void 0)i=i&&o.error===void 0;else if(!i)return!1;if(i){var a;if(n.length>0&&(a=n[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var u=o[t];if(u===void 0)return!1;if(typeof u=="function")X3(u,this,n);else for(var l=u.length,f=iE(u,l),r=0;r<l;++r)X3(f[r],this,n);return!0};function eE(e,t,n,r){var i,o,a;if(Ic(n),o=e._events,o===void 0?(o=e._events=Object.create(null),e._eventsCount=0):(o.newListener!==void 0&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),a=o[t]),a===void 0)a=o[t]=n,++e._eventsCount;else if(typeof a=="function"?a=o[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),i=J3(e),i>0&&a.length>i&&!a.warned){a.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=a.length,PO(s)}return e}Be.prototype.addListener=function(t,n){return eE(this,t,n,!1)},Be.prototype.on=Be.prototype.addListener,Be.prototype.prependListener=function(t,n){return eE(this,t,n,!0)};function LO(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function tE(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=LO.bind(r);return i.listener=n,r.wrapFn=i,i}Be.prototype.once=function(t,n){return Ic(n),this.on(t,tE(this,t,n)),this},Be.prototype.prependOnceListener=function(t,n){return Ic(n),this.prependListener(t,tE(this,t,n)),this},Be.prototype.removeListener=function(t,n){var r,i,o,a,s;if(Ic(n),i=this._events,i===void 0)return this;if(r=i[t],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,r.listener||n));else if(typeof r!="function"){for(o=-1,a=r.length-1;a>=0;a--)if(r[a]===n||r[a].listener===n){s=r[a].listener,o=a;break}if(o<0)return this;o===0?r.shift():NO(r,o),r.length===1&&(i[t]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",t,s||n)}return this},Be.prototype.off=Be.prototype.removeListener,Be.prototype.removeAllListeners=function(t){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[t]),this;if(arguments.length===0){var o=Object.keys(r),a;for(i=0;i<o.length;++i)a=o[i],a!=="removeListener"&&this.removeAllListeners(a);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[t],typeof n=="function")this.removeListener(t,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(t,n[i]);return this};function nE(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?OO(i):iE(i,i.length)}Be.prototype.listeners=function(t){return nE(this,t,!0)},Be.prototype.rawListeners=function(t){return nE(this,t,!1)},Be.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):rE.call(e,t)},Be.prototype.listenerCount=rE;function rE(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}Be.prototype.eventNames=function(){return this._eventsCount>0?Tc(this._events):[]};function iE(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function NO(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function OO(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function zO(e,t){return new Promise(function(n,r){function i(a){e.removeListener(t,o),r(a)}function o(){typeof e.removeListener=="function"&&e.removeListener("error",i),n([].slice.call(arguments))}oE(e,t,o,{once:!0}),t!=="error"&&UO(e,i,{once:!0})})}function UO(e,t,n){typeof e.on=="function"&&oE(e,"error",t,n)}function oE(e,t,n,r){if(typeof e.on=="function")r.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(o){r.once&&e.removeEventListener(t,i),n(o)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var ig=rg.exports,og={exports:{}};typeof Object.create=="function"?og.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:og.exports=function(t,n){if(n){t.super_=n;var r=function(){};r.prototype=n.prototype,t.prototype=new r,t.prototype.constructor=t}};var Sa=og.exports,ag,aE;function sE(){return aE||(aE=1,ag=ig.EventEmitter),ag}const lE=JF(lR);var sg,uE;function GO(){if(uE)return sg;uE=1;function e(p,b){var y=Object.keys(p);if(Object.getOwnPropertySymbols){var w=Object.getOwnPropertySymbols(p);b&&(w=w.filter(function(_){return Object.getOwnPropertyDescriptor(p,_).enumerable})),y.push.apply(y,w)}return y}function t(p){for(var b=1;b<arguments.length;b++){var y=arguments[b]!=null?arguments[b]:{};b%2?e(Object(y),!0).forEach(function(w){n(p,w,y[w])}):Object.getOwnPropertyDescriptors?Object.defineProperties(p,Object.getOwnPropertyDescriptors(y)):e(Object(y)).forEach(function(w){Object.defineProperty(p,w,Object.getOwnPropertyDescriptor(y,w))})}return p}function n(p,b,y){return b=a(b),b in p?Object.defineProperty(p,b,{value:y,enumerable:!0,configurable:!0,writable:!0}):p[b]=y,p}function r(p,b){if(!(p instanceof b))throw new TypeError("Cannot call a class as a function")}function i(p,b){for(var y=0;y<b.length;y++){var w=b[y];w.enumerable=w.enumerable||!1,w.configurable=!0,"value"in w&&(w.writable=!0),Object.defineProperty(p,a(w.key),w)}}function o(p,b,y){return b&&i(p.prototype,b),y&&i(p,y),Object.defineProperty(p,"prototype",{writable:!1}),p}function a(p){var b=s(p,"string");return typeof b=="symbol"?b:String(b)}function s(p,b){if(typeof p!="object"||p===null)return p;var y=p[Symbol.toPrimitive];if(y!==void 0){var w=y.call(p,b||"default");if(typeof w!="object")return w;throw new TypeError("@@toPrimitive must return a primitive value.")}return(b==="string"?String:Number)(p)}var u=pe,l=u.Buffer,f=lE,c=f.inspect,h=c&&c.custom||"inspect";function d(p,b,y){l.prototype.copy.call(p,b,y)}return sg=function(){function p(){r(this,p),this.head=null,this.tail=null,this.length=0}return o(p,[{key:"push",value:function(y){var w={data:y,next:null};this.length>0?this.tail.next=w:this.head=w,this.tail=w,++this.length}},{key:"unshift",value:function(y){var w={data:y,next:this.head};this.length===0&&(this.tail=w),this.head=w,++this.length}},{key:"shift",value:function(){if(this.length!==0){var y=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,y}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(y){if(this.length===0)return"";for(var w=this.head,_=""+w.data;w=w.next;)_+=y+w.data;return _}},{key:"concat",value:function(y){if(this.length===0)return l.alloc(0);for(var w=l.allocUnsafe(y>>>0),_=this.head,C=0;_;)d(_.data,w,C),C+=_.data.length,_=_.next;return w}},{key:"consume",value:function(y,w){var _;return y<this.head.data.length?(_=this.head.data.slice(0,y),this.head.data=this.head.data.slice(y)):y===this.head.data.length?_=this.shift():_=w?this._getString(y):this._getBuffer(y),_}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(y){var w=this.head,_=1,C=w.data;for(y-=C.length;w=w.next;){var E=w.data,T=y>E.length?E.length:y;if(T===E.length?C+=E:C+=E.slice(0,y),y-=T,y===0){T===E.length?(++_,w.next?this.head=w.next:this.head=this.tail=null):(this.head=w,w.data=E.slice(T));break}++_}return this.length-=_,C}},{key:"_getBuffer",value:function(y){var w=l.allocUnsafe(y),_=this.head,C=1;for(_.data.copy(w),y-=_.data.length;_=_.next;){var E=_.data,T=y>E.length?E.length:y;if(E.copy(w,w.length-y,0,T),y-=T,y===0){T===E.length?(++C,_.next?this.head=_.next:this.head=this.tail=null):(this.head=_,_.data=E.slice(T));break}++C}return this.length-=C,w}},{key:h,value:function(y,w){return c(this,t(t({},w),{},{depth:0,customInspect:!1}))}}]),p}(),sg}var lg,fE;function cE(){if(fE)return lg;fE=1;function e(a,s){var u=this,l=this._readableState&&this._readableState.destroyed,f=this._writableState&&this._writableState.destroyed;return l||f?(s?s(a):a&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(i,this,a)):process.nextTick(i,this,a)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(a||null,function(c){!s&&c?u._writableState?u._writableState.errorEmitted?process.nextTick(n,u):(u._writableState.errorEmitted=!0,process.nextTick(t,u,c)):process.nextTick(t,u,c):s?(process.nextTick(n,u),s(c)):process.nextTick(n,u)}),this)}function t(a,s){i(a,s),n(a)}function n(a){a._writableState&&!a._writableState.emitClose||a._readableState&&!a._readableState.emitClose||a.emit("close")}function r(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function i(a,s){a.emit("error",s)}function o(a,s){var u=a._readableState,l=a._writableState;u&&u.autoDestroy||l&&l.autoDestroy?a.destroy(s):a.emit("error",s)}return lg={destroy:e,undestroy:r,errorOrDestroy:o},lg}var ug={},hE;function Ca(){if(hE)return ug;hE=1;function e(s,u){s.prototype=Object.create(u.prototype),s.prototype.constructor=s,s.__proto__=u}var t={};function n(s,u,l){l||(l=Error);function f(h,d,p){return typeof u=="string"?u:u(h,d,p)}var c=function(h){e(d,h);function d(p,b,y){return h.call(this,f(p,b,y))||this}return d}(l);c.prototype.name=l.name,c.prototype.code=s,t[s]=c}function r(s,u){if(Array.isArray(s)){var l=s.length;return s=s.map(function(f){return String(f)}),l>2?"one of ".concat(u," ").concat(s.slice(0,l-1).join(", "),", or ")+s[l-1]:l===2?"one of ".concat(u," ").concat(s[0]," or ").concat(s[1]):"of ".concat(u," ").concat(s[0])}else return"of ".concat(u," ").concat(String(s))}function i(s,u,l){return s.substr(!l||l<0?0:+l,u.length)===u}function o(s,u,l){return(l===void 0||l>s.length)&&(l=s.length),s.substring(l-u.length,l)===u}function a(s,u,l){return typeof l!="number"&&(l=0),l+u.length>s.length?!1:s.indexOf(u,l)!==-1}return n("ERR_INVALID_OPT_VALUE",function(s,u){return'The value "'+u+'" is invalid for option "'+s+'"'},TypeError),n("ERR_INVALID_ARG_TYPE",function(s,u,l){var f;typeof u=="string"&&i(u,"not ")?(f="must not be",u=u.replace(/^not /,"")):f="must be";var c;if(o(s," argument"))c="The ".concat(s," ").concat(f," ").concat(r(u,"type"));else{var h=a(s,".")?"property":"argument";c='The "'.concat(s,'" ').concat(h," ").concat(f," ").concat(r(u,"type"))}return c+=". Received type ".concat(typeof l),c},TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",function(s){return"The "+s+" method is not implemented"}),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",function(s){return"Cannot call "+s+" after a stream was destroyed"}),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",function(s){return"Unknown encoding: "+s},TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),ug.codes=t,ug}var fg,dE;function pE(){if(dE)return fg;dE=1;var e=Ca().codes.ERR_INVALID_OPT_VALUE;function t(r,i,o){return r.highWaterMark!=null?r.highWaterMark:i?r[o]:null}function n(r,i,o,a){var s=t(i,a,o);if(s!=null){if(!(isFinite(s)&&Math.floor(s)===s)||s<0){var u=a?o:"highWaterMark";throw new e(u,s)}return Math.floor(s)}return r.objectMode?16:16*1024}return fg={getHighWaterMark:n},fg}var cg,gE;function HO(){if(gE)return cg;gE=1,cg=e;function e(n,r){if(t("noDeprecation"))return n;var i=!1;function o(){if(!i){if(t("throwDeprecation"))throw new Error(r);t("traceDeprecation")?console.trace(r):console.warn(r),i=!0}return n.apply(this,arguments)}return o}function t(n){try{if(!globalThis.localStorage)return!1}catch{return!1}var r=globalThis.localStorage[n];return r==null?!1:String(r).toLowerCase()==="true"}return cg}var hg,mE;function bE(){if(mE)return hg;mE=1,hg=R;function e(L){var P=this;this.next=null,this.entry=null,this.finish=function(){Oe(P,L)}}var t;R.WritableState=B;var n={deprecate:HO()},r=sE(),i=pe.Buffer,o=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function a(L){return i.from(L)}function s(L){return i.isBuffer(L)||L instanceof o}var u=cE(),l=pE(),f=l.getHighWaterMark,c=Ca().codes,h=c.ERR_INVALID_ARG_TYPE,d=c.ERR_METHOD_NOT_IMPLEMENTED,p=c.ERR_MULTIPLE_CALLBACK,b=c.ERR_STREAM_CANNOT_PIPE,y=c.ERR_STREAM_DESTROYED,w=c.ERR_STREAM_NULL_VALUES,_=c.ERR_STREAM_WRITE_AFTER_END,C=c.ERR_UNKNOWN_ENCODING,E=u.errorOrDestroy;Sa(R,r);function T(){}function B(L,P,q){t=t||ka(),L=L||{},typeof q!="boolean"&&(q=P instanceof t),this.objectMode=!!L.objectMode,q&&(this.objectMode=this.objectMode||!!L.writableObjectMode),this.highWaterMark=f(this,L,"writableHighWaterMark",q),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var H=L.decodeStrings===!1;this.decodeStrings=!H,this.defaultEncoding=L.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Y){Xe(P,Y)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=L.emitClose!==!1,this.autoDestroy=!!L.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}B.prototype.getBuffer=function(){for(var P=this.bufferedRequest,q=[];P;)q.push(P),P=P.next;return q},function(){try{Object.defineProperty(B.prototype,"buffer",{get:n.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var I;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(I=Function.prototype[Symbol.hasInstance],Object.defineProperty(R,Symbol.hasInstance,{value:function(P){return I.call(this,P)?!0:this!==R?!1:P&&P._writableState instanceof B}})):I=function(P){return P instanceof this};function R(L){t=t||ka();var P=this instanceof t;if(!P&&!I.call(R,this))return new R(L);this._writableState=new B(L,this,P),this.writable=!0,L&&(typeof L.write=="function"&&(this._write=L.write),typeof L.writev=="function"&&(this._writev=L.writev),typeof L.destroy=="function"&&(this._destroy=L.destroy),typeof L.final=="function"&&(this._final=L.final)),r.call(this)}R.prototype.pipe=function(){E(this,new b)};function M(L,P){var q=new _;E(L,q),process.nextTick(P,q)}function j(L,P,q,H){var Y;return q===null?Y=new w:typeof q!="string"&&!P.objectMode&&(Y=new h("chunk",["string","Buffer"],q)),Y?(E(L,Y),process.nextTick(H,Y),!1):!0}R.prototype.write=function(L,P,q){var H=this._writableState,Y=!1,S=!H.objectMode&&s(L);return S&&!i.isBuffer(L)&&(L=a(L)),typeof P=="function"&&(q=P,P=null),S?P="buffer":P||(P=H.defaultEncoding),typeof q!="function"&&(q=T),H.ending?M(this,q):(S||j(this,H,L,q))&&(H.pendingcb++,Y=ie(this,H,S,L,P,q)),Y},R.prototype.cork=function(){this._writableState.corked++},R.prototype.uncork=function(){var L=this._writableState;L.corked&&(L.corked--,!L.writing&&!L.corked&&!L.bufferProcessing&&L.bufferedRequest&&Ze(this,L))},R.prototype.setDefaultEncoding=function(P){if(typeof P=="string"&&(P=P.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((P+"").toLowerCase())>-1))throw new C(P);return this._writableState.defaultEncoding=P,this},Object.defineProperty(R.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function O(L,P,q){return!L.objectMode&&L.decodeStrings!==!1&&typeof P=="string"&&(P=i.from(P,q)),P}Object.defineProperty(R.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function ie(L,P,q,H,Y,S){if(!q){var x=O(P,H,Y);H!==x&&(q=!0,Y="buffer",H=x)}var G=P.objectMode?1:H.length;P.length+=G;var Z=P.length<P.highWaterMark;if(Z||(P.needDrain=!0),P.writing||P.corked){var le=P.lastBufferedRequest;P.lastBufferedRequest={chunk:H,encoding:Y,isBuf:q,callback:S,next:null},le?le.next=P.lastBufferedRequest:P.bufferedRequest=P.lastBufferedRequest,P.bufferedRequestCount+=1}else se(L,P,!1,G,H,Y,S);return Z}function se(L,P,q,H,Y,S,x){P.writelen=H,P.writecb=x,P.writing=!0,P.sync=!0,P.destroyed?P.onwrite(new y("write")):q?L._writev(Y,P.onwrite):L._write(Y,S,P.onwrite),P.sync=!1}function ge(L,P,q,H,Y){--P.pendingcb,q?(process.nextTick(Y,H),process.nextTick(pt,L,P),L._writableState.errorEmitted=!0,E(L,H)):(Y(H),L._writableState.errorEmitted=!0,E(L,H),pt(L,P))}function Ie(L){L.writing=!1,L.writecb=null,L.length-=L.writelen,L.writelen=0}function Xe(L,P){var q=L._writableState,H=q.sync,Y=q.writecb;if(typeof Y!="function")throw new p;if(Ie(q),P)ge(L,q,H,P,Y);else{var S=Ke(q)||L.destroyed;!S&&!q.corked&&!q.bufferProcessing&&q.bufferedRequest&&Ze(L,q),H?process.nextTick(De,L,q,S,Y):De(L,q,S,Y)}}function De(L,P,q,H){q||$e(L,P),P.pendingcb--,H(),pt(L,P)}function $e(L,P){P.length===0&&P.needDrain&&(P.needDrain=!1,L.emit("drain"))}function Ze(L,P){P.bufferProcessing=!0;var q=P.bufferedRequest;if(L._writev&&q&&q.next){var H=P.bufferedRequestCount,Y=new Array(H),S=P.corkedRequestsFree;S.entry=q;for(var x=0,G=!0;q;)Y[x]=q,q.isBuf||(G=!1),q=q.next,x+=1;Y.allBuffers=G,se(L,P,!0,P.length,Y,"",S.finish),P.pendingcb++,P.lastBufferedRequest=null,S.next?(P.corkedRequestsFree=S.next,S.next=null):P.corkedRequestsFree=new e(P),P.bufferedRequestCount=0}else{for(;q;){var Z=q.chunk,le=q.encoding,J=q.callback,ue=P.objectMode?1:Z.length;if(se(L,P,!1,ue,Z,le,J),q=q.next,P.bufferedRequestCount--,P.writing)break}q===null&&(P.lastBufferedRequest=null)}P.bufferedRequest=q,P.bufferProcessing=!1}R.prototype._write=function(L,P,q){q(new d("_write()"))},R.prototype._writev=null,R.prototype.end=function(L,P,q){var H=this._writableState;return typeof L=="function"?(q=L,L=null,P=null):typeof P=="function"&&(q=P,P=null),L!=null&&this.write(L,P),H.corked&&(H.corked=1,this.uncork()),H.ending||qt(this,H,q),this},Object.defineProperty(R.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function Ke(L){return L.ending&&L.length===0&&L.bufferedRequest===null&&!L.finished&&!L.writing}function Ee(L,P){L._final(function(q){P.pendingcb--,q&&E(L,q),P.prefinished=!0,L.emit("prefinish"),pt(L,P)})}function _e(L,P){!P.prefinished&&!P.finalCalled&&(typeof L._final=="function"&&!P.destroyed?(P.pendingcb++,P.finalCalled=!0,process.nextTick(Ee,L,P)):(P.prefinished=!0,L.emit("prefinish")))}function pt(L,P){var q=Ke(P);if(q&&(_e(L,P),P.pendingcb===0&&(P.finished=!0,L.emit("finish"),P.autoDestroy))){var H=L._readableState;(!H||H.autoDestroy&&H.endEmitted)&&L.destroy()}return q}function qt(L,P,q){P.ending=!0,pt(L,P),q&&(P.finished?process.nextTick(q):L.once("finish",q)),P.ended=!0,L.writable=!1}function Oe(L,P,q){var H=L.entry;for(L.entry=null;H;){var Y=H.callback;P.pendingcb--,Y(q),H=H.next}P.corkedRequestsFree.next=L}return Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(P){this._writableState&&(this._writableState.destroyed=P)}}),R.prototype.destroy=u.destroy,R.prototype._undestroy=u.undestroy,R.prototype._destroy=function(L,P){P(L)},hg}var dg,yE;function ka(){if(yE)return dg;yE=1;var e=Object.keys||function(l){var f=[];for(var c in l)f.push(c);return f};dg=a;var t=_E(),n=bE();Sa(a,t);for(var r=e(n.prototype),i=0;i<r.length;i++){var o=r[i];a.prototype[o]||(a.prototype[o]=n.prototype[o])}function a(l){if(!(this instanceof a))return new a(l);t.call(this,l),n.call(this,l),this.allowHalfOpen=!0,l&&(l.readable===!1&&(this.readable=!1),l.writable===!1&&(this.writable=!1),l.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",s)))}Object.defineProperty(a.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(a.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(a.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(){this._writableState.ended||process.nextTick(u,this)}function u(l){l.end()}return Object.defineProperty(a.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(f){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=f,this._writableState.destroyed=f)}}),dg}var pg={},gg={exports:{}};(function(e,t){var n=pe,r=n.Buffer;function i(a,s){for(var u in a)s[u]=a[u]}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?e.exports=n:(i(n,t),t.Buffer=o);function o(a,s,u){return r(a,s,u)}i(r,o),o.from=function(a,s,u){if(typeof a=="number")throw new TypeError("Argument must not be a number");return r(a,s,u)},o.alloc=function(a,s,u){if(typeof a!="number")throw new TypeError("Argument must be a number");var l=r(a);return s!==void 0?typeof u=="string"?l.fill(s,u):l.fill(s):l.fill(0),l},o.allocUnsafe=function(a){if(typeof a!="number")throw new TypeError("Argument must be a number");return r(a)},o.allocUnsafeSlow=function(a){if(typeof a!="number")throw new TypeError("Argument must be a number");return n.SlowBuffer(a)}})(gg,gg.exports);var VO=gg.exports,mg=VO.Buffer,wE=mg.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function jO(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function qO(e){var t=jO(e);if(typeof t!="string"&&(mg.isEncoding===wE||!wE(e)))throw new Error("Unknown encoding: "+e);return t||e}var ZO=pg.StringDecoder=Ol;function Ol(e){this.encoding=qO(e);var t;switch(this.encoding){case"utf16le":this.text=KO,this.end=JO,t=4;break;case"utf8":this.fillLast=QO,t=4;break;case"base64":this.text=ez,this.end=tz,t=3;break;default:this.write=nz,this.end=rz;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=mg.allocUnsafe(t)}Ol.prototype.write=function(e){if(e.length===0)return"";var t,n;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},Ol.prototype.end=$O,Ol.prototype.text=XO,Ol.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};function bg(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function WO(e,t,n){var r=t.length-1;if(r<n)return 0;var i=bg(t[r]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--r<n||i===-2?0:(i=bg(t[r]),i>=0?(i>0&&(e.lastNeed=i-2),i):--r<n||i===-2?0:(i=bg(t[r]),i>=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function YO(e,t,n){if((t[0]&192)!==128)return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"�"}}function QO(e){var t=this.lastTotal-this.lastNeed,n=YO(this,e);if(n!==void 0)return n;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function XO(e,t){var n=WO(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function $O(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function KO(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function JO(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function ez(e,t){var n=(e.length-t)%3;return n===0?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,n===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function tz(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function nz(e){return e.toString(this.encoding)}function rz(e){return e&&e.length?this.write(e):""}var yg,vE;function wg(){if(vE)return yg;vE=1;var e=Ca().codes.ERR_STREAM_PREMATURE_CLOSE;function t(o){var a=!1;return function(){if(!a){a=!0;for(var s=arguments.length,u=new Array(s),l=0;l<s;l++)u[l]=arguments[l];o.apply(this,u)}}}function n(){}function r(o){return o.setHeader&&typeof o.abort=="function"}function i(o,a,s){if(typeof a=="function")return i(o,null,a);a||(a={}),s=t(s||n);var u=a.readable||a.readable!==!1&&o.readable,l=a.writable||a.writable!==!1&&o.writable,f=function(){o.writable||h()},c=o._writableState&&o._writableState.finished,h=function(){l=!1,c=!0,u||s.call(o)},d=o._readableState&&o._readableState.endEmitted,p=function(){u=!1,d=!0,l||s.call(o)},b=function(C){s.call(o,C)},y=function(){var C;if(u&&!d)return(!o._readableState||!o._readableState.ended)&&(C=new e),s.call(o,C);if(l&&!c)return(!o._writableState||!o._writableState.ended)&&(C=new e),s.call(o,C)},w=function(){o.req.on("finish",h)};return r(o)?(o.on("complete",h),o.on("abort",y),o.req?w():o.on("request",w)):l&&!o._writableState&&(o.on("end",f),o.on("close",f)),o.on("end",p),o.on("finish",h),a.error!==!1&&o.on("error",b),o.on("close",y),function(){o.removeListener("complete",h),o.removeListener("abort",y),o.removeListener("request",w),o.req&&o.req.removeListener("finish",h),o.removeListener("end",f),o.removeListener("close",f),o.removeListener("finish",h),o.removeListener("end",p),o.removeListener("error",b),o.removeListener("close",y)}}return yg=i,yg}var vg,xE;function iz(){if(xE)return vg;xE=1;var e;function t(C,E,T){return E=n(E),E in C?Object.defineProperty(C,E,{value:T,enumerable:!0,configurable:!0,writable:!0}):C[E]=T,C}function n(C){var E=r(C,"string");return typeof E=="symbol"?E:String(E)}function r(C,E){if(typeof C!="object"||C===null)return C;var T=C[Symbol.toPrimitive];if(T!==void 0){var B=T.call(C,E||"default");if(typeof B!="object")return B;throw new TypeError("@@toPrimitive must return a primitive value.")}return(E==="string"?String:Number)(C)}var i=wg(),o=Symbol("lastResolve"),a=Symbol("lastReject"),s=Symbol("error"),u=Symbol("ended"),l=Symbol("lastPromise"),f=Symbol("handlePromise"),c=Symbol("stream");function h(C,E){return{value:C,done:E}}function d(C){var E=C[o];if(E!==null){var T=C[c].read();T!==null&&(C[l]=null,C[o]=null,C[a]=null,E(h(T,!1)))}}function p(C){process.nextTick(d,C)}function b(C,E){return function(T,B){C.then(function(){if(E[u]){T(h(void 0,!0));return}E[f](T,B)},B)}}var y=Object.getPrototypeOf(function(){}),w=Object.setPrototypeOf((e={get stream(){return this[c]},next:function(){var E=this,T=this[s];if(T!==null)return Promise.reject(T);if(this[u])return Promise.resolve(h(void 0,!0));if(this[c].destroyed)return new Promise(function(M,j){process.nextTick(function(){E[s]?j(E[s]):M(h(void 0,!0))})});var B=this[l],I;if(B)I=new Promise(b(B,this));else{var R=this[c].read();if(R!==null)return Promise.resolve(h(R,!1));I=new Promise(this[f])}return this[l]=I,I}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var E=this;return new Promise(function(T,B){E[c].destroy(null,function(I){if(I){B(I);return}T(h(void 0,!0))})})}),e),y),_=function(E){var T,B=Object.create(w,(T={},t(T,c,{value:E,writable:!0}),t(T,o,{value:null,writable:!0}),t(T,a,{value:null,writable:!0}),t(T,s,{value:null,writable:!0}),t(T,u,{value:E._readableState.endEmitted,writable:!0}),t(T,f,{value:function(R,M){var j=B[c].read();j?(B[l]=null,B[o]=null,B[a]=null,R(h(j,!1))):(B[o]=R,B[a]=M)},writable:!0}),T));return B[l]=null,i(E,function(I){if(I&&I.code!=="ERR_STREAM_PREMATURE_CLOSE"){var R=B[a];R!==null&&(B[l]=null,B[o]=null,B[a]=null,R(I)),B[s]=I;return}var M=B[o];M!==null&&(B[l]=null,B[o]=null,B[a]=null,M(h(void 0,!0))),B[u]=!0}),E.on("readable",p.bind(null,B)),B};return vg=_,vg}var xg,AE;function oz(){return AE||(AE=1,xg=function(){throw new Error("Readable.from is not available in the browser")}),xg}var Ag,EE;function _E(){if(EE)return Ag;EE=1,Ag=M;var e;M.ReadableState=R,ig.EventEmitter;var t=function(x,G){return x.listeners(G).length},n=sE(),r=pe.Buffer,i=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function o(S){return r.from(S)}function a(S){return r.isBuffer(S)||S instanceof i}var s=lE,u;s&&s.debuglog?u=s.debuglog("stream"):u=function(){};var l=GO(),f=cE(),c=pE(),h=c.getHighWaterMark,d=Ca().codes,p=d.ERR_INVALID_ARG_TYPE,b=d.ERR_STREAM_PUSH_AFTER_EOF,y=d.ERR_METHOD_NOT_IMPLEMENTED,w=d.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,_,C,E;Sa(M,n);var T=f.errorOrDestroy,B=["error","close","destroy","pause","resume"];function I(S,x,G){if(typeof S.prependListener=="function")return S.prependListener(x,G);!S._events||!S._events[x]?S.on(x,G):Array.isArray(S._events[x])?S._events[x].unshift(G):S._events[x]=[G,S._events[x]]}function R(S,x,G){e=e||ka(),S=S||{},typeof G!="boolean"&&(G=x instanceof e),this.objectMode=!!S.objectMode,G&&(this.objectMode=this.objectMode||!!S.readableObjectMode),this.highWaterMark=h(this,S,"readableHighWaterMark",G),this.buffer=new l,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=S.emitClose!==!1,this.autoDestroy=!!S.autoDestroy,this.destroyed=!1,this.defaultEncoding=S.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,S.encoding&&(_||(_=pg.StringDecoder),this.decoder=new _(S.encoding),this.encoding=S.encoding)}function M(S){if(e=e||ka(),!(this instanceof M))return new M(S);var x=this instanceof e;this._readableState=new R(S,this,x),this.readable=!0,S&&(typeof S.read=="function"&&(this._read=S.read),typeof S.destroy=="function"&&(this._destroy=S.destroy)),n.call(this)}Object.defineProperty(M.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(x){this._readableState&&(this._readableState.destroyed=x)}}),M.prototype.destroy=f.destroy,M.prototype._undestroy=f.undestroy,M.prototype._destroy=function(S,x){x(S)},M.prototype.push=function(S,x){var G=this._readableState,Z;return G.objectMode?Z=!0:typeof S=="string"&&(x=x||G.defaultEncoding,x!==G.encoding&&(S=r.from(S,x),x=""),Z=!0),j(this,S,x,!1,Z)},M.prototype.unshift=function(S){return j(this,S,null,!0,!1)};function j(S,x,G,Z,le){u("readableAddChunk",x);var J=S._readableState;if(x===null)J.reading=!1,Xe(S,J);else{var ue;if(le||(ue=ie(J,x)),ue)T(S,ue);else if(J.objectMode||x&&x.length>0)if(typeof x!="string"&&!J.objectMode&&Object.getPrototypeOf(x)!==r.prototype&&(x=o(x)),Z)J.endEmitted?T(S,new w):O(S,J,x,!0);else if(J.ended)T(S,new b);else{if(J.destroyed)return!1;J.reading=!1,J.decoder&&!G?(x=J.decoder.write(x),J.objectMode||x.length!==0?O(S,J,x,!1):Ze(S,J)):O(S,J,x,!1)}else Z||(J.reading=!1,Ze(S,J))}return!J.ended&&(J.length<J.highWaterMark||J.length===0)}function O(S,x,G,Z){x.flowing&&x.length===0&&!x.sync?(x.awaitDrain=0,S.emit("data",G)):(x.length+=x.objectMode?1:G.length,Z?x.buffer.unshift(G):x.buffer.push(G),x.needReadable&&De(S)),Ze(S,x)}function ie(S,x){var G;return!a(x)&&typeof x!="string"&&x!==void 0&&!S.objectMode&&(G=new p("chunk",["string","Buffer","Uint8Array"],x)),G}M.prototype.isPaused=function(){return this._readableState.flowing===!1},M.prototype.setEncoding=function(S){_||(_=pg.StringDecoder);var x=new _(S);this._readableState.decoder=x,this._readableState.encoding=this._readableState.decoder.encoding;for(var G=this._readableState.buffer.head,Z="";G!==null;)Z+=x.write(G.data),G=G.next;return this._readableState.buffer.clear(),Z!==""&&this._readableState.buffer.push(Z),this._readableState.length=Z.length,this};var se=1073741824;function ge(S){return S>=se?S=se:(S--,S|=S>>>1,S|=S>>>2,S|=S>>>4,S|=S>>>8,S|=S>>>16,S++),S}function Ie(S,x){return S<=0||x.length===0&&x.ended?0:x.objectMode?1:S!==S?x.flowing&&x.length?x.buffer.head.data.length:x.length:(S>x.highWaterMark&&(x.highWaterMark=ge(S)),S<=x.length?S:x.ended?x.length:(x.needReadable=!0,0))}M.prototype.read=function(S){u("read",S),S=parseInt(S,10);var x=this._readableState,G=S;if(S!==0&&(x.emittedReadable=!1),S===0&&x.needReadable&&((x.highWaterMark!==0?x.length>=x.highWaterMark:x.length>0)||x.ended))return u("read: emitReadable",x.length,x.ended),x.length===0&&x.ended?q(this):De(this),null;if(S=Ie(S,x),S===0&&x.ended)return x.length===0&&q(this),null;var Z=x.needReadable;u("need readable",Z),(x.length===0||x.length-S<x.highWaterMark)&&(Z=!0,u("length less than watermark",Z)),x.ended||x.reading?(Z=!1,u("reading or ended",Z)):Z&&(u("do read"),x.reading=!0,x.sync=!0,x.length===0&&(x.needReadable=!0),this._read(x.highWaterMark),x.sync=!1,x.reading||(S=Ie(G,x)));var le;return S>0?le=P(S,x):le=null,le===null?(x.needReadable=x.length<=x.highWaterMark,S=0):(x.length-=S,x.awaitDrain=0),x.length===0&&(x.ended||(x.needReadable=!0),G!==S&&x.ended&&q(this)),le!==null&&this.emit("data",le),le};function Xe(S,x){if(u("onEofChunk"),!x.ended){if(x.decoder){var G=x.decoder.end();G&&G.length&&(x.buffer.push(G),x.length+=x.objectMode?1:G.length)}x.ended=!0,x.sync?De(S):(x.needReadable=!1,x.emittedReadable||(x.emittedReadable=!0,$e(S)))}}function De(S){var x=S._readableState;u("emitReadable",x.needReadable,x.emittedReadable),x.needReadable=!1,x.emittedReadable||(u("emitReadable",x.flowing),x.emittedReadable=!0,process.nextTick($e,S))}function $e(S){var x=S._readableState;u("emitReadable_",x.destroyed,x.length,x.ended),!x.destroyed&&(x.length||x.ended)&&(S.emit("readable"),x.emittedReadable=!1),x.needReadable=!x.flowing&&!x.ended&&x.length<=x.highWaterMark,L(S)}function Ze(S,x){x.readingMore||(x.readingMore=!0,process.nextTick(Ke,S,x))}function Ke(S,x){for(;!x.reading&&!x.ended&&(x.length<x.highWaterMark||x.flowing&&x.length===0);){var G=x.length;if(u("maybeReadMore read 0"),S.read(0),G===x.length)break}x.readingMore=!1}M.prototype._read=function(S){T(this,new y("_read()"))},M.prototype.pipe=function(S,x){var G=this,Z=this._readableState;switch(Z.pipesCount){case 0:Z.pipes=S;break;case 1:Z.pipes=[Z.pipes,S];break;default:Z.pipes.push(S);break}Z.pipesCount+=1,u("pipe count=%d opts=%j",Z.pipesCount,x);var le=(!x||x.end!==!1)&&S!==process.stdout&&S!==process.stderr,J=le?Zt:Xn;Z.endEmitted?process.nextTick(J):G.once("end",J),S.on("unpipe",ue);function ue(v,g){u("onunpipe"),v===G&&g&&g.hasUnpiped===!1&&(g.hasUnpiped=!0,fi())}function Zt(){u("onend"),S.end()}var li=Ee(G);S.on("drain",li);var ui=!1;function fi(){u("cleanup"),S.removeListener("close",ci),S.removeListener("finish",Wt),S.removeListener("drain",li),S.removeListener("error",yr),S.removeListener("unpipe",ue),G.removeListener("end",Zt),G.removeListener("end",Xn),G.removeListener("data",St),ui=!0,Z.awaitDrain&&(!S._writableState||S._writableState.needDrain)&&li()}G.on("data",St);function St(v){u("ondata");var g=S.write(v);u("dest.write",g),g===!1&&((Z.pipesCount===1&&Z.pipes===S||Z.pipesCount>1&&Y(Z.pipes,S)!==-1)&&!ui&&(u("false write response, pause",Z.awaitDrain),Z.awaitDrain++),G.pause())}function yr(v){u("onerror",v),Xn(),S.removeListener("error",yr),t(S,"error")===0&&T(S,v)}I(S,"error",yr);function ci(){S.removeListener("finish",Wt),Xn()}S.once("close",ci);function Wt(){u("onfinish"),S.removeListener("close",ci),Xn()}S.once("finish",Wt);function Xn(){u("unpipe"),G.unpipe(S)}return S.emit("pipe",G),Z.flowing||(u("pipe resume"),G.resume()),S};function Ee(S){return function(){var G=S._readableState;u("pipeOnDrain",G.awaitDrain),G.awaitDrain&&G.awaitDrain--,G.awaitDrain===0&&t(S,"data")&&(G.flowing=!0,L(S))}}M.prototype.unpipe=function(S){var x=this._readableState,G={hasUnpiped:!1};if(x.pipesCount===0)return this;if(x.pipesCount===1)return S&&S!==x.pipes?this:(S||(S=x.pipes),x.pipes=null,x.pipesCount=0,x.flowing=!1,S&&S.emit("unpipe",this,G),this);if(!S){var Z=x.pipes,le=x.pipesCount;x.pipes=null,x.pipesCount=0,x.flowing=!1;for(var J=0;J<le;J++)Z[J].emit("unpipe",this,{hasUnpiped:!1});return this}var ue=Y(x.pipes,S);return ue===-1?this:(x.pipes.splice(ue,1),x.pipesCount-=1,x.pipesCount===1&&(x.pipes=x.pipes[0]),S.emit("unpipe",this,G),this)},M.prototype.on=function(S,x){var G=n.prototype.on.call(this,S,x),Z=this._readableState;return S==="data"?(Z.readableListening=this.listenerCount("readable")>0,Z.flowing!==!1&&this.resume()):S==="readable"&&!Z.endEmitted&&!Z.readableListening&&(Z.readableListening=Z.needReadable=!0,Z.flowing=!1,Z.emittedReadable=!1,u("on readable",Z.length,Z.reading),Z.length?De(this):Z.reading||process.nextTick(pt,this)),G},M.prototype.addListener=M.prototype.on,M.prototype.removeListener=function(S,x){var G=n.prototype.removeListener.call(this,S,x);return S==="readable"&&process.nextTick(_e,this),G},M.prototype.removeAllListeners=function(S){var x=n.prototype.removeAllListeners.apply(this,arguments);return(S==="readable"||S===void 0)&&process.nextTick(_e,this),x};function _e(S){var x=S._readableState;x.readableListening=S.listenerCount("readable")>0,x.resumeScheduled&&!x.paused?x.flowing=!0:S.listenerCount("data")>0&&S.resume()}function pt(S){u("readable nexttick read 0"),S.read(0)}M.prototype.resume=function(){var S=this._readableState;return S.flowing||(u("resume"),S.flowing=!S.readableListening,qt(this,S)),S.paused=!1,this};function qt(S,x){x.resumeScheduled||(x.resumeScheduled=!0,process.nextTick(Oe,S,x))}function Oe(S,x){u("resume",x.reading),x.reading||S.read(0),x.resumeScheduled=!1,S.emit("resume"),L(S),x.flowing&&!x.reading&&S.read(0)}M.prototype.pause=function(){return u("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(u("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function L(S){var x=S._readableState;for(u("flow",x.flowing);x.flowing&&S.read()!==null;);}M.prototype.wrap=function(S){var x=this,G=this._readableState,Z=!1;S.on("end",function(){if(u("wrapped end"),G.decoder&&!G.ended){var ue=G.decoder.end();ue&&ue.length&&x.push(ue)}x.push(null)}),S.on("data",function(ue){if(u("wrapped data"),G.decoder&&(ue=G.decoder.write(ue)),!(G.objectMode&&ue==null)&&!(!G.objectMode&&(!ue||!ue.length))){var Zt=x.push(ue);Zt||(Z=!0,S.pause())}});for(var le in S)this[le]===void 0&&typeof S[le]=="function"&&(this[le]=function(Zt){return function(){return S[Zt].apply(S,arguments)}}(le));for(var J=0;J<B.length;J++)S.on(B[J],this.emit.bind(this,B[J]));return this._read=function(ue){u("wrapped _read",ue),Z&&(Z=!1,S.resume())},this},typeof Symbol=="function"&&(M.prototype[Symbol.asyncIterator]=function(){return C===void 0&&(C=iz()),C(this)}),Object.defineProperty(M.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(M.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(M.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(x){this._readableState&&(this._readableState.flowing=x)}}),M._fromList=P,Object.defineProperty(M.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function P(S,x){if(x.length===0)return null;var G;return x.objectMode?G=x.buffer.shift():!S||S>=x.length?(x.decoder?G=x.buffer.join(""):x.buffer.length===1?G=x.buffer.first():G=x.buffer.concat(x.length),x.buffer.clear()):G=x.buffer.consume(S,x.decoder),G}function q(S){var x=S._readableState;u("endReadable",x.endEmitted),x.endEmitted||(x.ended=!0,process.nextTick(H,x,S))}function H(S,x){if(u("endReadableNT",S.endEmitted,S.length),!S.endEmitted&&S.length===0&&(S.endEmitted=!0,x.readable=!1,x.emit("end"),S.autoDestroy)){var G=x._writableState;(!G||G.autoDestroy&&G.finished)&&x.destroy()}}typeof Symbol=="function"&&(M.from=function(S,x){return E===void 0&&(E=oz()),E(M,S,x)});function Y(S,x){for(var G=0,Z=S.length;G<Z;G++)if(S[G]===x)return G;return-1}return Ag}var Eg,SE;function CE(){if(SE)return Eg;SE=1,Eg=s;var e=Ca().codes,t=e.ERR_METHOD_NOT_IMPLEMENTED,n=e.ERR_MULTIPLE_CALLBACK,r=e.ERR_TRANSFORM_ALREADY_TRANSFORMING,i=e.ERR_TRANSFORM_WITH_LENGTH_0,o=ka();Sa(s,o);function a(f,c){var h=this._transformState;h.transforming=!1;var d=h.writecb;if(d===null)return this.emit("error",new n);h.writechunk=null,h.writecb=null,c!=null&&this.push(c),d(f);var p=this._readableState;p.reading=!1,(p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}function s(f){if(!(this instanceof s))return new s(f);o.call(this,f),this._transformState={afterTransform:a.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,f&&(typeof f.transform=="function"&&(this._transform=f.transform),typeof f.flush=="function"&&(this._flush=f.flush)),this.on("prefinish",u)}function u(){var f=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(c,h){l(f,c,h)}):l(this,null,null)}s.prototype.push=function(f,c){return this._transformState.needTransform=!1,o.prototype.push.call(this,f,c)},s.prototype._transform=function(f,c,h){h(new t("_transform()"))},s.prototype._write=function(f,c,h){var d=this._transformState;if(d.writecb=h,d.writechunk=f,d.writeencoding=c,!d.transforming){var p=this._readableState;(d.needTransform||p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}},s.prototype._read=function(f){var c=this._transformState;c.writechunk!==null&&!c.transforming?(c.transforming=!0,this._transform(c.writechunk,c.writeencoding,c.afterTransform)):c.needTransform=!0},s.prototype._destroy=function(f,c){o.prototype._destroy.call(this,f,function(h){c(h)})};function l(f,c,h){if(c)return f.emit("error",c);if(h!=null&&f.push(h),f._writableState.length)throw new i;if(f._transformState.transforming)throw new r;return f.push(null)}return Eg}var _g,kE;function az(){if(kE)return _g;kE=1,_g=t;var e=CE();Sa(t,e);function t(n){if(!(this instanceof t))return new t(n);e.call(this,n)}return t.prototype._transform=function(n,r,i){i(null,n)},_g}var Sg,TE;function sz(){if(TE)return Sg;TE=1;var e;function t(h){var d=!1;return function(){d||(d=!0,h.apply(void 0,arguments))}}var n=Ca().codes,r=n.ERR_MISSING_ARGS,i=n.ERR_STREAM_DESTROYED;function o(h){if(h)throw h}function a(h){return h.setHeader&&typeof h.abort=="function"}function s(h,d,p,b){b=t(b);var y=!1;h.on("close",function(){y=!0}),e===void 0&&(e=wg()),e(h,{readable:d,writable:p},function(_){if(_)return b(_);y=!0,b()});var w=!1;return function(_){if(!y&&!w){if(w=!0,a(h))return h.abort();if(typeof h.destroy=="function")return h.destroy();b(_||new i("pipe"))}}}function u(h){h()}function l(h,d){return h.pipe(d)}function f(h){return!h.length||typeof h[h.length-1]!="function"?o:h.pop()}function c(){for(var h=arguments.length,d=new Array(h),p=0;p<h;p++)d[p]=arguments[p];var b=f(d);if(Array.isArray(d[0])&&(d=d[0]),d.length<2)throw new r("streams");var y,w=d.map(function(_,C){var E=C<d.length-1,T=C>0;return s(_,E,T,function(B){y||(y=B),B&&w.forEach(u),!E&&(w.forEach(u),b(y))})});return d.reduce(l)}return Sg=c,Sg}var IE=dn,Cg=ig.EventEmitter,lz=Sa;lz(dn,Cg),dn.Readable=_E(),dn.Writable=bE(),dn.Duplex=ka(),dn.Transform=CE(),dn.PassThrough=az(),dn.finished=wg(),dn.pipeline=sz(),dn.Stream=dn;function dn(){Cg.call(this)}dn.prototype.pipe=function(e,t){var n=this;function r(f){e.writable&&e.write(f)===!1&&n.pause&&n.pause()}n.on("data",r);function i(){n.readable&&n.resume&&n.resume()}e.on("drain",i),!e._isStdio&&(!t||t.end!==!1)&&(n.on("end",a),n.on("close",s));var o=!1;function a(){o||(o=!0,e.end())}function s(){o||(o=!0,typeof e.destroy=="function"&&e.destroy())}function u(f){if(l(),Cg.listenerCount(this,"error")===0)throw f}n.on("error",u),e.on("error",u);function l(){n.removeListener("data",r),e.removeListener("drain",i),n.removeListener("end",a),n.removeListener("close",s),n.removeListener("error",u),e.removeListener("error",u),n.removeListener("end",l),n.removeListener("close",l),e.removeListener("close",l)}return n.on("end",l),n.on("close",l),e.on("close",l),e.emit("pipe",n),e};function zl(e){return e.replace(/%([0-9A-Fa-f]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16)))}function BE(e,t){return String(t).replace(e,n=>`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function Ul(e){return BE(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,e)}function dr(e){return BE(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,e)}function DE(e){if(!(e&&e.length)||e===".")return{};const t={};return e.replace(/\r?\n$/,"").split(";").forEach(n=>{const r=n.split("=",2);if(!(r[1]&&r[1].length))return;r[0]=r[0].trim();let i=t[r[0].trim()];i||(i=[],t[r[0]]=i),i.push(...r[1].split(",").map(o=>o.trim()).map(zl))}),t}function FE(e){const t=e.split(" ").map(r=>r==="."||r===""?null:r);return{seq_id:t[0]&&zl(t[0]),source:t[1]&&zl(t[1]),type:t[2]&&zl(t[2]),start:t[3]===null?null:parseInt(t[3],10),end:t[4]===null?null:parseInt(t[4],10),score:t[5]===null?null:parseFloat(t[5]),strand:t[6],phase:t[7],attributes:t[8]===null?null:DE(t[8])}}function RE(e){const t=/^\s*##\s*(\S+)\s*(.*)/.exec(e);if(!t)return null;const[,n]=t;let[,,r]=t;const i={directive:n};if(r.length&&(r=r.replace(/\r?\n$/,""),i.value=r),n==="sequence-region"){const o=r.split(/\s+/,3);return{...i,seq_id:o[0],start:o[1]&&o[1].replace(/\D/g,""),end:o[2]&&o[2].replace(/\D/g,"")}}else if(n==="genome-build"){const[o,a]=r.split(/\s+/,2);return{...i,source:o,buildName:a}}return i}function ME(e){const t=[];return Object.entries(e).forEach(([n,r])=>{if(!r)return;let i;r.hasOwnProperty("toString")?i=Ul(r.toString()):Array.isArray(r)?i=r.map(Ul).join(","):i=Ul(r),t.push(`${Ul(n)}=${i}`)}),t.length?t.join(";"):"."}function uz(e,t){const n=e.attributes===null||e.attributes===void 0?".":ME(e.attributes),i=`${[e.seq_id===null?".":dr(e.seq_id),e.source===null?".":dr(e.source),e.type===null?".":dr(e.type),e.start===null?".":dr(e.start),e.end===null?".":dr(e.end),e.score===null?".":dr(e.score),e.strand===null?".":dr(e.strand),e.phase===null?".":dr(e.phase),n].join(" ")}
487
- `;return t[i]?"":(t[i]=!0,i)}function Bc(e,t){if(Array.isArray(e))return e.map(r=>Bc(r,t)).join("");const n=[uz(e,t)];return fz(e)&&n.push(...e.child_features.map(r=>Bc(r,t)),...e.derived_features.map(r=>Bc(r,t))),n.join("")}function PE(e){return Bc(e,{})}function LE(e){let t=`##${e.directive}`;return e.value&&(t+=` ${e.value}`),t+=`
488
- `,t}function NE(e){return`# ${e.comment}
489
- `}function kg(e){return`>${e.id}${e.description?` ${e.description}`:""}
489
+ )`},Symbol.toStringTag,{value:"Module"}))).map(([e,t])=>[e,M3.parse(t.trim())]));function eg(e){const t=["uint","int","float","long"];return{...e,fields:e.fields.map(n=>({...n,isArray:n.size&&n.type!=="char",arrayIsNumeric:n.size&&t.includes(n.type),isNumeric:!n.size&&t.includes(n.type)}))}}const cO={".":0,"-":-1,"+":1};function hO(e){var t;return e.length>=12&&!Number.isNaN(parseInt(e[9],10))&&((t=e[10])===null||t===void 0?void 0:t.split(",").filter(n=>!!n).length)===parseInt(e[9],10)}class dO{constructor(t={}){if(t.autoSql)this.autoSql=eg(fO.parse(t.autoSql));else if(t.type){if(!Jp[t.type])throw new Error("Type not found");this.autoSql=eg(Jp[t.type])}else this.autoSql=eg(Jp.defaultBedSchema),this.attemptDefaultBed=!0}parseLine(t,n={}){const{autoSql:r}=this,{uniqueId:i}=n,a=Array.isArray(t)?t:t.split(" ");let o={};if(!this.attemptDefaultBed||this.attemptDefaultBed&&hO(a))for(let s=0;s<r.fields.length;s++){const u=r.fields[s];let l=a[s];const{isNumeric:f,isArray:c,arrayIsNumeric:h,name:d}=u;if(l==null)break;if(l!=="."){if(f){const p=Number(l);l=Number.isNaN(p)?l:p}else c&&(l=l.split(","),l[l.length-1]===""&&l.pop(),h&&(l=l.map(p=>Number(p))));o[d]=l}}else{const s=["chrom","chromStart","chromEnd","name"];o=Object.fromEntries(a.map((u,l)=>[s[l]||"field"+l,u])),o.chromStart=+o.chromStart,o.chromEnd=+o.chromEnd,Number.isNaN(Number.parseFloat(o.field4))||(o.score=+o.field4,delete o.field4),(o.field5==="+"||o.field5==="-")&&(o.strand=o.field5,delete o.field5)}return i&&(o.uniqueId=i),o.strand=cO[o.strand]||0,o.chrom=decodeURIComponent(o.chrom),o}}const pO=Object.freeze(Object.defineProperty({__proto__:null,default:dO},Symbol.toStringTag,{value:"Module"}));let P3=class{constructor(t,n){this.blockPosition=t,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(t){return this.blockPosition-t.blockPosition||this.dataPosition-t.dataPosition}static min(...t){let n,r=0;for(;!n;r+=1)n=t[r];for(;r<t.length;r+=1)n.compareTo(t[r])>0&&(n=t[r]);return n}};function vo(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new P3(e[t+7]*1099511627776+e[t+6]*4294967296+e[t+5]*16777216+e[t+4]*65536+e[t+3]*256+e[t+2],e[t+1]<<8|e[t])}let L3=class{constructor(t,n,r,i){this.minv=t,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(t){return this.minv.compareTo(t.minv)||this.maxv.compareTo(t.maxv)||this.bin-t.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+65536-this.minv.blockPosition}};function gO(e){return new Promise(t=>setTimeout(t,e))}function mO(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}function bO(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new Error("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}function yO(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function wO(e={}){return"aborted"in e?{signal:e}:e}function N3(e,t){const n=[];let r;if(e.length===0)return e;e.sort((i,a)=>{const o=i.minv.blockPosition-a.minv.blockPosition;return o===0?i.minv.dataPosition-a.minv.dataPosition:o});for(const i of e)(!t||i.maxv.compareTo(t)>0)&&(r===void 0?(n.push(i),r=i):yO(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i));return n}function O3(e,t){return{lineCount:mO(nc.fromBytesLE(Array.prototype.slice.call(e,t,t+8),!0))}}function Tc(e,t){return e?e.compareTo(t)>0?t:e:t}function vO(e,t=n=>n){let n=0,r=0;const i=[],a={};for(let o=0;o<e.length;o+=1)if(!e[o]){if(r<o){let s=e.toString("utf8",r,o);s=t(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}let z3=class{constructor({filehandle:t,renameRefSeq:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}};const xO=21578050;function AO(e,t){return e-e%t}function EO(e,t){return e-e%t+t}function _O(e,t){return t-=1,[[0,0],[1+(e>>26),1+(t>>26)],[9+(e>>23),9+(t>>23)],[73+(e>>20),73+(t>>20)],[585+(e>>17),585+(t>>17)],[4681+(e>>14),4681+(t>>14)]]}class xo extends z3{async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async _parse(t){const n=await this.filehandle.readFile(t);if(n.readUInt32LE(0)!==xO)throw new Error("Not a BAI file");const r=n.readInt32LE(4),a=((1<<(5+1)*3)-1)/7;let o=8,s;const u=new Array(r);for(let l=0;l<r;l++){const f=n.readInt32LE(o);let c;o+=4;const h={};for(let m=0;m<f;m+=1){const y=n.readUInt32LE(o);if(o+=4,y===a+1)o+=4,c=O3(n,o+16),o+=32;else{if(y>a+1)throw new Error("bai index contains too many bins, please use CSI");{const w=n.readInt32LE(o);o+=4;const _=new Array(w);for(let C=0;C<w;C++){const E=vo(n,o);o+=8;const k=vo(n,o);o+=8,s=Tc(s,E),_[C]=new L3(E,k,y)}h[y]=_}}}const d=n.readInt32LE(o);o+=4;const p=new Array(d);for(let m=0;m<d;m++){const y=vo(n,o);o+=8,s=Tc(s,y),p[m]=y}u[l]={binIndex:h,linearIndex:p,stats:c}}return{bai:!0,firstDataLine:s,maxBlockSize:65536,indices:u,refCount:r}}async indexCov(t,n,r,i={}){const o=n!==void 0,u=(await this.parse(i)).indices[t];if(!u)return[];const{linearIndex:l=[],stats:f}=u;if(l.length===0)return[];const c=r===void 0?(l.length-1)*16384:EO(r,16384),h=n===void 0?0:AO(n,16384),d=o?new Array((c-h)/16384):new Array(l.length-1),p=l[l.length-1].blockPosition;if(c>(l.length-1)*16384)throw new Error("query outside of range of linear index");let m=l[h/16384].blockPosition;for(let y=h/16384,w=0;y<c/16384;y++,w++)d[w]={score:l[y+1].blockPosition-m,start:y*16384,end:y*16384+16384},m=l[y+1].blockPosition;return d.map(y=>({...y,score:y.score*((f==null?void 0:f.lineCount)||0)/p}))}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.indices[t];if(!o)return[];const s=_O(n,r),u=[];for(const[d,p]of s)for(let m=d;m<=p;m++)if(o.binIndex[m]){const y=o.binIndex[m];for(const w of y)u.push(w)}const l=o.linearIndex.length;let f;const c=Math.min(n>>14,l-1),h=Math.min(r>>14,l-1);for(let d=c;d<=h;++d){const p=o.linearIndex[d];p&&(!f||p.compareTo(f)<0)&&(f=p)}return N3(u,f)}async parse(t={}){return this.setupP||(this.setupP=this._parse(t).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}}var si=pe.Buffer,tg=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];typeof Int32Array<"u"&&(tg=new Int32Array(tg));function U3(e){if(si.isBuffer(e))return e;var t=typeof si.alloc=="function"&&typeof si.from=="function";if(typeof e=="number")return t?si.alloc(e):new si(e);if(typeof e=="string")return t?si.from(e):new si(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function SO(e){var t=U3(4);return t.writeInt32BE(e,0),t}function ng(e,t){e=U3(e),si.isBuffer(t)&&(t=t.readUInt32BE(0));for(var n=~~t^-1,r=0;r<e.length;r++)n=tg[(n^e[r])&255]^n>>>8;return n^-1}function rg(){return SO(ng.apply(null,arguments))}rg.signed=function(){return ng.apply(null,arguments)},rg.unsigned=function(){return ng.apply(null,arguments)>>>0};var CO=rg;const TO=Xs(CO),kO=21582659,IO=38359875;function BO(e,t){return e*2**t}function G3(e,t){return Math.floor(e/2**t)}let kc=class extends z3{constructor(){super(...arguments),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async indexCov(){return[]}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",a={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!a)throw new Error(`invalid Tabix preset format flags ${r}`);const o={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},s=t.readInt32LE(n+16),u=s?String.fromCharCode(s):"",l=t.readInt32LE(n+20),f=t.readInt32LE(n+24);return{columnNumbers:o,coordinateType:i,metaValue:s,metaChar:u,skipLines:l,format:a,formatFlags:r,...vO(t.subarray(n+28,n+28+f),this.renameRefSeq)}}async _parse(t){const n=await this.filehandle.readFile(t),r=await Jr(n);let i;if(r.readUInt32LE(0)===kO)i=1;else if(r.readUInt32LE(0)===IO)i=2;else throw new Error("Not a CSI file");this.minShift=r.readInt32LE(4),this.depth=r.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const a=r.readInt32LE(12),o=a>=30?this.parseAuxData(r,16):void 0,s=r.readInt32LE(16+a);let u=16+a+4,l;const f=new Array(s);for(let c=0;c<s;c++){const h=r.readInt32LE(u);u+=4;const d={};let p;for(let m=0;m<h;m++){const y=r.readUInt32LE(u);if(u+=4,y>this.maxBinNumber)p=O3(r,u+28),u+=28+16;else{l=Tc(l,vo(r,u)),u+=8;const w=r.readInt32LE(u);u+=4;const _=new Array(w);for(let C=0;C<w;C+=1){const E=vo(r,u);u+=8;const k=vo(r,u);u+=8,l=Tc(l,E),_[C]=new L3(E,k,y)}d[y]=_}}f[c]={binIndex:d,stats:p}}return{csiVersion:i,firstDataLine:l,indices:f,refCount:s,csi:!0,maxBlockSize:65536,...o}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i),o=a==null?void 0:a.indices[t];if(!o)return[];const s=this.reg2bins(n,r);if(s.length===0)return[];const u=[];for(const[l,f]of s)for(let c=l;c<=f;c++)if(o.binIndex[c]){const h=o.binIndex[c];for(const d of h)u.push(d)}return N3(u,new P3(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,a=this.minShift+this.depth*3;const o=[];for(;r<=this.depth;a-=3,i+=BO(1,r*3),r+=1){const s=i+G3(t,a),u=i+G3(n,a);if(u-s+o.length>this.maxBinNumber)throw new Error(`query ${t}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);o.push([s,u])}return o}async parse(t={}){return this.setupP||(this.setupP=this._parse(t).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}};const hn={BAM_FPAIRED:1,BAM_FPROPER_PAIR:2,BAM_FUNMAP:4,BAM_FMUNMAP:8,BAM_FREVERSE:16,BAM_FMREVERSE:32,BAM_FREAD1:64,BAM_FREAD2:128,BAM_FSECONDARY:256,BAM_FQCFAIL:512,BAM_FDUP:1024,BAM_FSUPPLEMENTARY:2048},H3="=ACMGRSVTWYHKDBN".split(""),Nl="MIDNSHP=X???????".split("");class V3{constructor(t){this.data={},this._tagList=[],this._allTagsParsed=!1;const{bytes:n,fileOffset:r}=t,{byteArray:i,start:a}=n;this.data={},this.bytes=n,this._id=r,this._refID=i.readInt32LE(a+4),this.data.start=i.readInt32LE(a+8),this.flags=(i.readInt32LE(a+16)&4294901760)>>16}get(t){return this[t]?this.data[t]?this.data[t]:(this.data[t]=this[t](),this.data[t]):this._get(t.toLowerCase())}end(){return this.get("start")+this.get("length_on_ref")}seq_id(){return this._refID}_get(t){return t in this.data?this.data[t]:(this.data[t]=this._parseTag(t),this.data[t])}_tags(){this._parseAllTags();let t=["seq"];this.isSegmentUnmapped()||t.push("start","end","strand","score","qual","MQ","CIGAR","length_on_ref","template_length"),this.isPaired()&&t.push("next_segment_position","pair_orientation"),t=t.concat(this._tagList||[]);for(const r of Object.keys(this.data))r[0]!=="_"&&r!=="next_seq_id"&&t.push(r);const n={};return t.filter(r=>{if(r in this.data&&this.data[r]===void 0||r==="CG"||r==="cg")return!1;const i=r.toLowerCase(),a=n[i];return n[i]=!0,!a})}parent(){}children(){return this.get("subfeatures")}id(){return this._id}mq(){const t=(this.get("_bin_mq_nl")&65280)>>8;return t===255?void 0:t}score(){return this.get("mq")}qual(){var t;return(t=this.qualRaw())===null||t===void 0?void 0:t.join(" ")}qualRaw(){if(this.isSegmentUnmapped())return;const{start:t,byteArray:n}=this.bytes,r=t+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes"),i=this.get("seq_length");return n.subarray(r,r+i)}strand(){return this.isReverseComplemented()?-1:1}multi_segment_next_segment_strand(){if(!this.isMateUnmapped())return this.isMateReverseComplemented()?-1:1}name(){return this.get("_read_name")}_read_name(){const t=this.get("_l_read_name"),{byteArray:n,start:r}=this.bytes;return n.toString("ascii",r+36,r+36+t-1)}_parseTag(t){if(this._allTagsParsed)return;const{byteArray:n,start:r}=this.bytes;let i=this._tagOffset||r+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes")+this.get("seq_length");const a=this.bytes.end;let o;for(;i<a&&o!==t;){const s=String.fromCharCode(n[i],n[i+1]);o=s.toLowerCase();const u=String.fromCharCode(n[i+2]);i+=3;let l;switch(u){case"A":{l=String.fromCharCode(n[i]),i+=1;break}case"i":{l=n.readInt32LE(i),i+=4;break}case"I":{l=n.readUInt32LE(i),i+=4;break}case"c":{l=n.readInt8(i),i+=1;break}case"C":{l=n.readUInt8(i),i+=1;break}case"s":{l=n.readInt16LE(i),i+=2;break}case"S":{l=n.readUInt16LE(i),i+=2;break}case"f":{l=n.readFloatLE(i),i+=4;break}case"Z":case"H":{for(l="";i<=a;){const f=n[i++];if(f===0)break;l+=String.fromCharCode(f)}break}case"B":{l="";const f=n[i++],c=String.fromCharCode(f),h=n.readInt32LE(i);if(i+=4,c==="i")if(s==="CG")for(let d=0;d<h;d++){const p=n.readInt32LE(i),m=p>>4,y=Nl[p&15];l+=m+y,i+=4}else for(let d=0;d<h;d++)l+=n.readInt32LE(i),d+1<h&&(l+=","),i+=4;if(c==="I")if(s==="CG")for(let d=0;d<h;d++){const p=n.readUInt32LE(i),m=p>>4,y=Nl[p&15];l+=m+y,i+=4}else for(let d=0;d<h;d++)l+=n.readUInt32LE(i),d+1<h&&(l+=","),i+=4;if(c==="s")for(let d=0;d<h;d++)l+=n.readInt16LE(i),d+1<h&&(l+=","),i+=2;if(c==="S")for(let d=0;d<h;d++)l+=n.readUInt16LE(i),d+1<h&&(l+=","),i+=2;if(c==="c")for(let d=0;d<h;d++)l+=n.readInt8(i),d+1<h&&(l+=","),i+=1;if(c==="C")for(let d=0;d<h;d++)l+=n.readUInt8(i),d+1<h&&(l+=","),i+=1;if(c==="f")for(let d=0;d<h;d++)l+=n.readFloatLE(i),d+1<h&&(l+=","),i+=4;break}default:console.warn(`Unknown BAM tag type '${u}', tags may be incomplete`),l=void 0,i=a}if(this._tagOffset=i,this._tagList.push(s),o===t)return l;this.data[o]=l}this._allTagsParsed=!0}_parseAllTags(){this._parseTag("")}_parseCigar(t){return t.match(/\d+\D/g).map(n=>[n.match(/\D/)[0].toUpperCase(),Number.parseInt(n,10)])}isPaired(){return!!(this.flags&hn.BAM_FPAIRED)}isProperlyPaired(){return!!(this.flags&hn.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return!!(this.flags&hn.BAM_FUNMAP)}isMateUnmapped(){return!!(this.flags&hn.BAM_FMUNMAP)}isReverseComplemented(){return!!(this.flags&hn.BAM_FREVERSE)}isMateReverseComplemented(){return!!(this.flags&hn.BAM_FMREVERSE)}isRead1(){return!!(this.flags&hn.BAM_FREAD1)}isRead2(){return!!(this.flags&hn.BAM_FREAD2)}isSecondary(){return!!(this.flags&hn.BAM_FSECONDARY)}isFailedQc(){return!!(this.flags&hn.BAM_FQCFAIL)}isDuplicate(){return!!(this.flags&hn.BAM_FDUP)}isSupplementary(){return!!(this.flags&hn.BAM_FSUPPLEMENTARY)}cigar(){if(this.isSegmentUnmapped())return;const{byteArray:t,start:n}=this.bytes,r=this.get("_n_cigar_op");let i=n+36+this.get("_l_read_name");const a=this.get("seq_length");let o="",s=0,u=t.readInt32LE(i),l=u>>4,f=Nl[u&15];if(f==="S"&&l===a)return i+=4,u=t.readInt32LE(i),l=u>>4,f=Nl[u&15],f!=="N"&&console.warn("CG tag with no N tag"),this.data.length_on_ref=l,this.get("CG");for(let c=0;c<r;++c)u=t.readInt32LE(i),l=u>>4,f=Nl[u&15],o+=l+f,f!=="H"&&f!=="S"&&f!=="I"&&(s+=l),i+=4;return this.data.length_on_ref=s,o}_flags(){}length_on_ref(){return this.data.length_on_ref?this.data.length_on_ref:(this.get("cigar"),this.data.length_on_ref)}_n_cigar_op(){return this.get("_flag_nc")&65535}_l_read_name(){return this.get("_bin_mq_nl")&255}_seq_bytes(){return this.get("seq_length")+1>>1}getReadBases(){return this.seq()}seq(){const{byteArray:t,start:n}=this.bytes,r=n+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4,i=this.get("_seq_bytes"),a=this.get("seq_length");let o="",s=0;for(let u=0;u<i;++u){const l=t[r+u];o+=H3[(l&240)>>4],s++,s<a&&(o+=H3[l&15],s++)}return o}getPairOrientation(){if(!this.isSegmentUnmapped()&&!this.isMateUnmapped()&&this._refID===this._next_refid()){const t=this.isReverseComplemented()?"R":"F",n=this.isMateReverseComplemented()?"R":"F";let r=" ",i=" ";this.isRead1()?(r="1",i="2"):this.isRead2()&&(r="2",i="1");const a=[];return this.template_length()>0?(a[0]=t,a[1]=r,a[2]=n,a[3]=i):(a[2]=t,a[3]=r,a[0]=n,a[1]=i),a.join("")}return""}_bin_mq_nl(){return this.bytes.byteArray.readInt32LE(this.bytes.start+12)}_flag_nc(){return this.bytes.byteArray.readInt32LE(this.bytes.start+16)}seq_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+20)}_next_refid(){return this.bytes.byteArray.readInt32LE(this.bytes.start+24)}_next_pos(){return this.bytes.byteArray.readInt32LE(this.bytes.start+28)}template_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+32)}toJSON(){const t={};for(const n of Object.keys(this))n.charAt(0)==="_"||n==="bytes"||(t[n]=this[n]);return t}}function j3(e){const t=e.split(/\r?\n/),n=[];for(const r of t){const[i,...a]=r.split(/\t/);i&&n.push({tag:i.slice(1),data:a.map(o=>{const[s,u]=o.split(":",2);return{tag:s,value:u}})})}return n}const q3=21840194,Z3=65536;async function DO(e){let t=[];for await(const n of e)t=t.concat(n);return t}class FO{read(){throw new Error("never called")}stat(){throw new Error("never called")}readFile(){throw new Error("never called")}close(){throw new Error("never called")}}class W3{constructor({bamFilehandle:t,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:a,baiUrl:o,csiPath:s,csiFilehandle:u,csiUrl:l,htsget:f,yieldThreadTime:c=100,renameRefSeqs:h=d=>d}){if(this.htsget=!1,this.featureCache=new fc({cache:new cc({maxSize:50}),fill:async(d,p)=>{const{chunk:m,opts:y}=d,{data:w,cpositions:_,dpositions:C}=await this._readChunk({chunk:m,opts:{...y,signal:p}});return this.readBamFeatures(w,_,C,m)}}),this.renameRefSeq=h,t)this.bam=t;else if(n)this.bam=new ht(n);else if(r)this.bam=new Wi(r);else if(f)this.htsget=!0,this.bam=new FO;else throw new Error("unable to initialize bam");if(u)this.index=new kc({filehandle:u});else if(s)this.index=new kc({filehandle:new ht(s)});else if(l)this.index=new kc({filehandle:new Wi(l)});else if(a)this.index=new xo({filehandle:a});else if(i)this.index=new xo({filehandle:new ht(i)});else if(o)this.index=new xo({filehandle:new Wi(o)});else if(n)this.index=new xo({filehandle:new ht(`${n}.bai`)});else if(r)this.index=new xo({filehandle:new Wi(`${r}.bai`)});else if(f)this.htsget=!0;else throw new Error("unable to infer index format");this.yieldThreadTime=c}async getHeaderPre(t){const n=wO(t);if(!this.index)return;const r=await this.index.parse(n),i=r.firstDataLine?r.firstDataLine.blockPosition+65535:void 0;let a;if(i){const f=i+Z3,c=await this.bam.read(pe.Buffer.alloc(f),0,f,0,n);if(!c.bytesRead)throw new Error("Error reading header");a=c.buffer.subarray(0,Math.min(c.bytesRead,i))}else a=await this.bam.readFile(n);const o=await Jr(a);if(o.readInt32LE(0)!==q3)throw new Error("Not a BAM file");const s=o.readInt32LE(4);this.header=o.toString("utf8",8,8+s);const{chrToIndex:u,indexToChr:l}=await this._readRefSeqs(s+8,65535,n);return this.chrToIndex=u,this.indexToChr=l,j3(this.header)}getHeader(t){return this.headerP||(this.headerP=this.getHeaderPre(t).catch(n=>{throw this.headerP=void 0,n})),this.headerP}async getHeaderText(t={}){return await this.getHeader(t),this.header}async _readRefSeqs(t,n,r){if(t>n)return this._readRefSeqs(t,n*2,r);const i=n+Z3,{bytesRead:a,buffer:o}=await this.bam.read(pe.Buffer.alloc(i),0,n,0,r);if(!a)throw new Error("Error reading refseqs from header");const s=await Jr(o.subarray(0,Math.min(a,n))),u=s.readInt32LE(t);let l=t+4;const f={},c=[];for(let h=0;h<u;h+=1){const d=s.readInt32LE(l),p=this.renameRefSeq(s.toString("utf8",l+4,l+4+d-1)),m=s.readInt32LE(l+d+4);if(f[p]=h,c.push({refName:p,length:m}),l=l+8+d,l>s.length)return console.warn(`BAM header is very big. Re-fetching ${n} bytes.`),this._readRefSeqs(t,n*2,r)}return{chrToIndex:f,indexToChr:c}}async getRecordsForRange(t,n,r,i){return DO(this.streamRecordsForRange(t,n,r,i))}async*streamRecordsForRange(t,n,r,i){var a;await this.getHeader(i);const o=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];if(o===void 0||!this.index)yield[];else{const s=await this.index.blocksForRange(o,n-1,r,i);yield*this._fetchChunkFeatures(s,o,n,r,i)}}async*_fetchChunkFeatures(t,n,r,i,a={}){const{viewAsPairs:o}=a,s=[];let u=!1;for(const l of t){const f=await this.featureCache.get(l.toString(),{chunk:l,opts:a},a.signal),c=[];for(const h of f)if(h.seq_id()===n)if(h.get("start")>=i){u=!0;break}else h.get("end")>=r&&c.push(h);if(s.push(c),yield c,u)break}bO(a.signal),o&&(yield this.fetchPairs(n,s,a))}async fetchPairs(t,n,r){const{pairAcrossChr:i,maxInsertSize:a=2e5}=r,o={},s={};n.map(h=>{const d={};for(const p of h){const m=p.name(),y=p.id();d[m]||(d[m]=0),d[m]++,s[y]=1}for(const[p,m]of Object.entries(d))m===1&&(o[p]=!0)});const u=[];n.map(h=>{for(const d of h){const p=d.name(),m=d.get("start"),y=d._next_pos(),w=d._next_refid();this.index&&o[p]&&(i||w===t&&Math.abs(m-y)<a)&&u.push(this.index.blocksForRange(w,y,y+1,r))}});const l=new Map,f=await Promise.all(u);for(const h of f.flat())l.has(h.toString())||l.set(h.toString(),h);return(await Promise.all([...l.values()].map(async h=>{const{data:d,cpositions:p,dpositions:m,chunk:y}=await this._readChunk({chunk:h,opts:r}),w=[];for(const _ of await this.readBamFeatures(d,p,m,y))o[_.get("name")]&&!s[_.id()]&&w.push(_);return w}))).flat()}async _readRegion(t,n,r={}){const{bytesRead:i,buffer:a}=await this.bam.read(pe.Buffer.alloc(n),0,n,t,r);return a.subarray(0,Math.min(i,n))}async _readChunk({chunk:t,opts:n}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n),{buffer:i,cpositions:a,dpositions:o}=await dx(r,t);return{data:i,cpositions:a,dpositions:o,chunk:t}}async readBamFeatures(t,n,r,i){let a=0;const o=[];let s=0,u=+Date.now();for(;a+4<t.length;){const l=t.readInt32LE(a),f=a+4+l-1;if(r){for(;a+i.minv.dataPosition>=r[s++];);s--}if(f<t.length){const c=new V3({bytes:{byteArray:t,start:a,end:f},fileOffset:n.length>0?n[s]*256+(a-r[s])+i.minv.dataPosition+1:TO.signed(t.slice(a,f))});o.push(c),this.yieldThreadTime&&+Date.now()-u>this.yieldThreadTime&&(await gO(1),u=+Date.now())}a=f+1}return o}async hasRefSeq(t){var n,r;const i=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return i===void 0?!1:(r=this.index)===null||r===void 0?void 0:r.hasRefSeq(i)}async lineCount(t){var n;const r=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return r===void 0||!this.index?0:this.index.lineCount(r)}async indexCov(t,n,r){var i;if(!this.index)return[];await this.index.parse();const a=(i=this.chrToIndex)===null||i===void 0?void 0:i[t];return a===void 0?[]:this.index.indexCov(a,n,r)}async blocksForRange(t,n,r,i){var a;if(!this.index)return[];await this.index.parse();const o=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];return o===void 0?[]:this.index.blocksForRange(o,n,r,i)}}async function Y3(e,t){const n=await Promise.all(e.map(async r=>{const{url:i,headers:a}=r;if(i.startsWith("data:"))return pe.Buffer.from(i.split(",")[1],"base64");{const{referer:o,...s}=a,u=await fetch(i,{...t,headers:{...t==null?void 0:t.headers,...s}});if(!u.ok)throw new Error(`HTTP ${u.status} fetching ${i}: ${await u.text()}`);return pe.Buffer.from(await u.arrayBuffer())}}));return pe.Buffer.concat(await Promise.all(n.map(r=>Jr(r))))}class RO extends W3{constructor(t){super({htsget:!0}),this.baseUrl=t.baseUrl,this.trackId=t.trackId}async*streamRecordsForRange(t,n,r,i){var a;const s=`${`${this.baseUrl}/${this.trackId}`}?referenceName=${t}&start=${n}&end=${r}&format=BAM`,u=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];if(u===void 0)yield[];else{const l=await fetch(s,{...i});if(!l.ok)throw new Error(`HTTP ${l.status} fetching ${s}: ${await l.text()}`);const f=await l.json(),c=await Y3(f.htsget.urls.slice(1),i);yield*this._fetchChunkFeatures([{buffer:c,_fetchedSize:void 0,bin:0,compareTo(){return 0},toUniqueString(){return`${t}_${n}_${r}`},fetchedSize(){return 0},minv:{dataPosition:0,blockPosition:0,compareTo:()=>0},maxv:{dataPosition:Number.MAX_SAFE_INTEGER,blockPosition:0,compareTo:()=>0},toString(){return`${t}_${n}_${r}`}}],u,n,r,i)}}async _readChunk({chunk:t}){if(!t.buffer)throw new Error("expected chunk.buffer in htsget");return{data:t.buffer,cpositions:[],dpositions:[],chunk:t}}async getHeader(t={}){const n=`${this.baseUrl}/${this.trackId}?referenceName=na&class=header`,r=await fetch(n,t);if(!r.ok)throw new Error(`HTTP ${r.status} fetching ${n}: ${await r.text()}`);const i=await r.json(),a=await Y3(i.htsget.urls,t);if(a.readInt32LE(0)!==q3)throw new Error("Not a BAM file");const o=a.readInt32LE(4),s=a.toString("utf8",8,8+o),u=j3(s),l=[],f={},c=u.filter(h=>h.tag==="SQ");for(const[h,d]of c.entries()){let p="",m=0;for(const y of d.data)y.tag==="SN"?p=y.value:y.tag==="LN"&&(m=+y.value);f[p]=h,l[h]={refName:p,length:m}}return this.chrToIndex=f,this.indexToChr=l,u}}const MO=Object.freeze(Object.defineProperty({__proto__:null,BAI:xo,BamFile:W3,BamRecord:V3,CSI:kc,HtsgetFile:RO},Symbol.toStringTag,{value:"Module"}));function Q3(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}class PO extends Error{}function Ao(e){if(e&&e.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const t=new PO("aborted");throw t.code="ERR_ABORTED",t}}}function LO(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function $3(e,t){const n=[];let r=null;return e.length===0?e:(e.sort(function(i,a){const o=i.minv.blockPosition-a.minv.blockPosition;return o!==0?o:i.minv.dataPosition-a.minv.dataPosition}),e.forEach(i=>{(!t||i.maxv.compareTo(t)>0)&&(r===null?(n.push(i),r=i):LO(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}class ig{constructor(t,n){this.blockPosition=t,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(t){return this.blockPosition-t.blockPosition||this.dataPosition-t.dataPosition}static min(...t){let n,r=0;for(;!n;r+=1)n=t[r];for(;r<t.length;r+=1)n.compareTo(t[r])>0&&(n=t[r]);return n}}function Eo(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new ig(e[t+7]*1099511627776+e[t+6]*4294967296+e[t+5]*16777216+e[t+4]*65536+e[t+3]*256+e[t+2],e[t+1]<<8|e[t])}class Ic{constructor(t,n,r,i=void 0){this.minv=t,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(t){return this.minv.compareTo(t.minv)||this.maxv.compareTo(t.maxv)||this.bin-t.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+65536-this.minv.blockPosition}}class X3{constructor({filehandle:t,renameRefSeqs:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}async getMetadata(t={}){const{indices:n,...r}=await this.parse(t);return r}_findFirstData(t,n){return t?t.compareTo(n)>0?n:t:n}async parse(t={}){return this.parseP||(this.parseP=this._parse(t).catch(n=>{throw this.parseP=void 0,n})),this.parseP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}}const NO=21578324,K3=14;function OO(e,t){return e+=1,t-=1,[[0,0],[1+(e>>26),1+(t>>26)],[9+(e>>23),9+(t>>23)],[73+(e>>20),73+(t>>20)],[585+(e>>17),585+(t>>17)],[4681+(e>>14),4681+(t>>14)]]}class Bc extends X3{async lineCount(t,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[t];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}async _parse(t={}){const n=await this.filehandle.readFile(t),r=await Jr(n);if(Ao(t.signal),r.readUInt32LE(0)!==NO)throw new Error("Not a TBI file");const i=r.readInt32LE(4),a=r.readInt32LE(8),o=a&65536?"zero-based-half-open":"1-based-closed",u={0:"generic",1:"SAM",2:"VCF"}[a&15];if(!u)throw new Error(`invalid Tabix preset format flags ${a}`);const l={ref:r.readInt32LE(12),start:r.readInt32LE(16),end:r.readInt32LE(20)},f=r.readInt32LE(24),c=5,h=((1<<(c+1)*3)-1)/7,d=2**(14+c*3),p=f?String.fromCharCode(f):null,m=r.readInt32LE(28),y=r.readInt32LE(32),{refNameToId:w,refIdToName:_}=this._parseNameBytes(r.slice(36,36+y));let C=36+y,E;return{indices:new Array(i).fill(0).map(()=>{const B=r.readInt32LE(C);C+=4;const I={};let R;for(let M=0;M<B;M+=1){const ie=r.readUInt32LE(C);if(C+=4,ie>h+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(ie===h+1){const se=r.readInt32LE(C);C+=4,se===2&&(R=this.parsePseudoBin(r,C)),C+=16*se}else{const se=r.readInt32LE(C);C+=4;const ge=new Array(se);for(let Ie=0;Ie<se;Ie+=1){const $e=Eo(r,C),De=Eo(r,C+8);C+=16,E=this._findFirstData(E,$e),ge[Ie]=new Ic($e,De,ie)}I[ie]=ge}}const L=r.readInt32LE(C);C+=4;const j=new Array(L);for(let M=0;M<L;M+=1)j[M]=Eo(r,C),C+=8,E=this._findFirstData(E,j[M]);return{binIndex:I,linearIndex:j,stats:R}}),metaChar:p,maxBinNumber:h,maxRefLength:d,skipLines:m,firstDataLine:E,columnNumbers:l,coordinateType:o,format:u,refIdToName:_,refNameToId:w,maxBlockSize:65536}}parsePseudoBin(t,n){return{lineCount:Q3(nc.fromBytesLE(t.slice(n+16,n+24),!0))}}_parseNameBytes(t){let n=0,r=0;const i=[],a={};for(let o=0;o<t.length;o+=1)if(!t[o]){if(r<o){let s=t.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[t],s=a.indices[o];if(!s)return[];(s.linearIndex.length?s.linearIndex[n>>K3>=s.linearIndex.length?s.linearIndex.length-1:n>>K3]:new ig(0,0))||console.warn("querying outside of possible tabix range");const l=OO(n,r),f=[];for(const[m,y]of l)for(let w=m;w<=y;w++)if(s.binIndex[w])for(const _ of s.binIndex[w])f.push(new Ic(_.minv,_.maxv,w));const c=s.linearIndex.length;let h=null;const d=Math.min(n>>14,c-1),p=Math.min(r>>14,c-1);for(let m=d;m<=p;++m){const y=s.linearIndex[m];y&&(!h||y.compareTo(h)<0)&&(h=y)}return $3(f,h)}}const zO=21582659,UO=38359875;function GO(e,t){return e*2**t}function J3(e,t){return Math.floor(e/2**t)}class ag extends X3{constructor(t){super(t),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[t];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}indexCov(){throw new Error("CSI indexes do not support indexcov")}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",a={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!a)throw new Error(`invalid Tabix preset format flags ${r}`);const o={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},s=t.readInt32LE(n+16),u=s?String.fromCharCode(s):null,l=t.readInt32LE(n+20),f=t.readInt32LE(n+24),{refIdToName:c,refNameToId:h}=this._parseNameBytes(t.slice(n+28,n+28+f));return{refIdToName:c,refNameToId:h,skipLines:l,metaChar:u,columnNumbers:o,format:a,coordinateType:i}}_parseNameBytes(t){let n=0,r=0;const i=[],a={};for(let o=0;o<t.length;o+=1)if(!t[o]){if(r<o){let s=t.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async _parse(t={}){const n=await Jr(await this.filehandle.readFile(t));let r;if(n.readUInt32LE(0)===zO)r=1;else if(n.readUInt32LE(0)===UO)r=2;else throw new Error("Not a CSI file");this.minShift=n.readInt32LE(4),this.depth=n.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const i=2**(this.minShift+this.depth*3),a=n.readInt32LE(12),o=a&&a>=30?this.parseAuxData(n,16):{refIdToName:[],refNameToId:{},metaChar:null,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},s=n.readInt32LE(16+a);let u,l=16+a+4;const f=new Array(s).fill(0).map(()=>{const c=n.readInt32LE(l);l+=4;const h={};let d;for(let p=0;p<c;p+=1){const m=n.readUInt32LE(l);if(m>this.maxBinNumber)d=this.parsePseudoBin(n,l+4),l+=4+8+4+16+16;else{const y=Eo(n,l+4);u=this._findFirstData(u,y);const w=n.readInt32LE(l+12);l+=16;const _=new Array(w);for(let C=0;C<w;C+=1){const E=Eo(n,l),k=Eo(n,l+8);l+=16,_[C]=new Ic(E,k,m)}h[m]=_}}return{binIndex:h,stats:d}});return{...o,csi:!0,refCount:s,maxBlockSize:65536,firstDataLine:u,csiVersion:r,indices:f,depth:this.depth,maxBinNumber:this.maxBinNumber,maxRefLength:i}}parsePseudoBin(t,n){return{lineCount:Q3(nc.fromBytesLE(t.slice(n+28,n+36),!0))}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[t],s=a.indices[o];if(!s)return[];const u=this.reg2bins(n,r),l=[];for(const[f,c]of u)for(let h=f;h<=c;h++)if(s.binIndex[h])for(const d of s.binIndex[h])l.push(new Ic(d.minv,d.maxv,h));return $3(l,new ig(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,a=this.minShift+this.depth*3;const o=[];for(;r<=this.depth;a-=3,i+=GO(1,r*3),r+=1){const s=i+J3(t,a),u=i+J3(n,a);if(u-s+o.length>this.maxBinNumber)throw new Error(`query ${t}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);o.push([s,u])}return o}}const og=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function HO(e){return new Promise(t=>setTimeout(t,e))}class VO{constructor({path:t,filehandle:n,tbiPath:r,tbiFilehandle:i,csiPath:a,csiFilehandle:o,yieldTime:s=500,chunkSizeLimit:u=5e7,renameRefSeqs:l=c=>c,chunkCacheSize:f=5*2**20}){if(n)this.filehandle=n;else if(t)this.filehandle=new ht(t);else throw new TypeError("must provide either filehandle or path");if(i)this.index=new Bc({filehandle:i,renameRefSeqs:l});else if(o)this.index=new ag({filehandle:o,renameRefSeqs:l});else if(r)this.index=new Bc({filehandle:new ht(r),renameRefSeqs:l});else if(a)this.index=new ag({filehandle:new ht(a),renameRefSeqs:l});else if(t)this.index=new Bc({filehandle:new ht(`${t}.tbi`),renameRefSeqs:l});else throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, or csiPath");this.chunkSizeLimit=u,this.renameRefSeq=l,this.yieldTime=s,this.chunkCache=new fc({cache:new cc({maxSize:Math.floor(f/65536)}),fill:(c,h)=>this.readChunk(c,{signal:h})})}async getLines(t,n,r,i){var a;let o,s={},u;if(i===void 0)throw new TypeError("line callback must be provided");if(typeof i=="function"?u=i:(s=i,u=i.lineCallback,o=i.signal),t===void 0)throw new TypeError("must provide a reference sequence name");if(!u)throw new TypeError("line callback must be provided");const l=await this.index.getMetadata(s);Ao(o);const f=n??0,c=r??l.maxRefLength;if(!(f<=c))throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(f===c)return;const h=await this.index.blocksForRange(t,f,c,s);Ao(o);for(const p of h){const m=p.fetchedSize();if(m>this.chunkSizeLimit)throw new Error(`Too much data. Chunk size ${m.toLocaleString()} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit.toLocaleString()}.`)}let d=Date.now();for(const p of h){let m;const{buffer:y,cpositions:w,dpositions:_}=await this.chunkCache.get(p.toString(),p,o);Ao(o);let C=0,E=0;for(;C<y.length;){const k=y.indexOf(`
490
+ `,C);if(k===-1)break;const B=y.slice(C,k),I=(a=og==null?void 0:og.decode(B))!==null&&a!==void 0?a:B.toString();if(_){for(;C+p.minv.dataPosition>=_[E++];);E--}const{startCoordinate:R,overlaps:L}=this.checkLine(l,t,f,c,I);if(m!==void 0&&R!==void 0&&m>R)throw new Error(`Lines not sorted by start coordinate (${m} > ${R}), this file is not usable with Tabix.`);if(m=R,L)u(I.trim(),w[E]*256+(C-_[E])+p.minv.dataPosition+1);else if(R!==void 0&&R>=c)return;this.yieldTime&&d-Date.now()>this.yieldTime&&(d=Date.now(),Ao(o),await HO(1)),C=k+1}}}async getMetadata(t={}){return this.index.getMetadata(t)}async getHeaderBuffer(t={}){const{firstDataLine:n,metaChar:r,maxBlockSize:i}=await this.getMetadata(t);Ao(t.signal);const a=((n==null?void 0:n.blockPosition)||0)+i,o=await this._readRegion(0,a,t),s=await Jr(o);if(r){let u=-1;const l=`
491
+ `.charCodeAt(0),f=r.charCodeAt(0);for(let c=0;c<s.length&&!(c===u+1&&s[c]!==f);c+=1)s[c]===l&&(u=c);return s.slice(0,u+1)}return s}async getHeader(t={}){return(await this.getHeaderBuffer(t)).toString("utf8")}async getReferenceSequenceNames(t={}){return(await this.getMetadata(t)).refIdToName}checkLine(t,n,r,i,a){const{columnNumbers:o,metaChar:s,coordinateType:u,format:l}=t;if(s&&a.startsWith(s))return{overlaps:!1};let{ref:f,start:c,end:h}=o;f||(f=0),c||(c=0),h||(h=0),l==="VCF"&&(h=8);const d=Math.max(f,c,h);let p=1,m=0,y="",w=-1/0;for(let _=0;_<a.length+1;_+=1)if(a[_]===" "||_===a.length){if(p===f){if(this.renameRefSeq(a.slice(m,_))!==n)return{overlaps:!1}}else if(p===c){if(w=parseInt(a.slice(m,_),10),u==="1-based-closed"&&(w-=1),w>=i)return{startCoordinate:w,overlaps:!1};if((h===0||h===c)&&w+1<=r)return{startCoordinate:w,overlaps:!1}}else if(l==="VCF"&&p===4)y=a.slice(m,_);else if(p===h&&(l==="VCF"?this._getVcfEnd(w,y,a.slice(m,_)):parseInt(a.slice(m,_),10))<=r)return{overlaps:!1};if(m=_+1,p+=1,p>d)break}return{startCoordinate:w,overlaps:!0}}_getVcfEnd(t,n,r){let i=t+n.length;const a=r.includes("SVTYPE=TRA");if(r[0]!=="."&&!a){let o=";";for(let s=0;s<r.length;s+=1){if(o===";"&&r.slice(s,s+4)==="END="){let u=r.indexOf(";",s);u===-1&&(u=r.length),i=parseInt(r.slice(s+4,u),10);break}o=r[s]}}else if(a)return t+1;return i}async lineCount(t,n={}){return this.index.lineCount(t,n)}async _readRegion(t,n,r={}){const i=pe.Buffer.alloc(n),{bytesRead:a,buffer:o}=await this.filehandle.read(i,0,n,t,r);return o.slice(0,a)}async readChunk(t,n={}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n);return dx(r,t)}}const jO=Object.freeze(Object.defineProperty({__proto__:null,CSI:ag,TBI:Bc,TabixIndexedFile:VO},Symbol.toStringTag,{value:"Module"}));var sg={exports:{}},_o=typeof Reflect=="object"?Reflect:null,eE=_o&&typeof _o.apply=="function"?_o.apply:function(t,n,r){return Function.prototype.apply.call(t,n,r)},Dc;_o&&typeof _o.ownKeys=="function"?Dc=_o.ownKeys:Object.getOwnPropertySymbols?Dc=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Dc=function(t){return Object.getOwnPropertyNames(t)};function qO(e){console&&console.warn&&console.warn(e)}var tE=Number.isNaN||function(t){return t!==t};function Be(){Be.init.call(this)}sg.exports=Be,sg.exports.once=QO,Be.EventEmitter=Be,Be.prototype._events=void 0,Be.prototype._eventsCount=0,Be.prototype._maxListeners=void 0;var nE=10;function Fc(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(Be,"defaultMaxListeners",{enumerable:!0,get:function(){return nE},set:function(e){if(typeof e!="number"||e<0||tE(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");nE=e}}),Be.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Be.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||tE(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function rE(e){return e._maxListeners===void 0?Be.defaultMaxListeners:e._maxListeners}Be.prototype.getMaxListeners=function(){return rE(this)},Be.prototype.emit=function(t){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=t==="error",a=this._events;if(a!==void 0)i=i&&a.error===void 0;else if(!i)return!1;if(i){var o;if(n.length>0&&(o=n[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var u=a[t];if(u===void 0)return!1;if(typeof u=="function")eE(u,this,n);else for(var l=u.length,f=lE(u,l),r=0;r<l;++r)eE(f[r],this,n);return!0};function iE(e,t,n,r){var i,a,o;if(Fc(n),a=e._events,a===void 0?(a=e._events=Object.create(null),e._eventsCount=0):(a.newListener!==void 0&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),o=a[t]),o===void 0)o=a[t]=n,++e._eventsCount;else if(typeof o=="function"?o=a[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),i=rE(e),i>0&&o.length>i&&!o.warned){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=o.length,qO(s)}return e}Be.prototype.addListener=function(t,n){return iE(this,t,n,!1)},Be.prototype.on=Be.prototype.addListener,Be.prototype.prependListener=function(t,n){return iE(this,t,n,!0)};function ZO(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function aE(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=ZO.bind(r);return i.listener=n,r.wrapFn=i,i}Be.prototype.once=function(t,n){return Fc(n),this.on(t,aE(this,t,n)),this},Be.prototype.prependOnceListener=function(t,n){return Fc(n),this.prependListener(t,aE(this,t,n)),this},Be.prototype.removeListener=function(t,n){var r,i,a,o,s;if(Fc(n),i=this._events,i===void 0)return this;if(r=i[t],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,r.listener||n));else if(typeof r!="function"){for(a=-1,o=r.length-1;o>=0;o--)if(r[o]===n||r[o].listener===n){s=r[o].listener,a=o;break}if(a<0)return this;a===0?r.shift():WO(r,a),r.length===1&&(i[t]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",t,s||n)}return this},Be.prototype.off=Be.prototype.removeListener,Be.prototype.removeAllListeners=function(t){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[t]),this;if(arguments.length===0){var a=Object.keys(r),o;for(i=0;i<a.length;++i)o=a[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[t],typeof n=="function")this.removeListener(t,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(t,n[i]);return this};function oE(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?YO(i):lE(i,i.length)}Be.prototype.listeners=function(t){return oE(this,t,!0)},Be.prototype.rawListeners=function(t){return oE(this,t,!1)},Be.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):sE.call(e,t)},Be.prototype.listenerCount=sE;function sE(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}Be.prototype.eventNames=function(){return this._eventsCount>0?Dc(this._events):[]};function lE(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function WO(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function YO(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function QO(e,t){return new Promise(function(n,r){function i(o){e.removeListener(t,a),r(o)}function a(){typeof e.removeListener=="function"&&e.removeListener("error",i),n([].slice.call(arguments))}uE(e,t,a,{once:!0}),t!=="error"&&$O(e,i,{once:!0})})}function $O(e,t,n){typeof e.on=="function"&&uE(e,"error",t,n)}function uE(e,t,n,r){if(typeof e.on=="function")r.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(a){r.once&&e.removeEventListener(t,i),n(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var lg=sg.exports,ug={exports:{}};typeof Object.create=="function"?ug.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:ug.exports=function(t,n){if(n){t.super_=n;var r=function(){};r.prototype=n.prototype,t.prototype=new r,t.prototype.constructor=t}};var So=ug.exports,fg,fE;function cE(){return fE||(fE=1,fg=lg.EventEmitter),fg}const hE=uR(yR);var cg,dE;function XO(){if(dE)return cg;dE=1;function e(p,m){var y=Object.keys(p);if(Object.getOwnPropertySymbols){var w=Object.getOwnPropertySymbols(p);m&&(w=w.filter(function(_){return Object.getOwnPropertyDescriptor(p,_).enumerable})),y.push.apply(y,w)}return y}function t(p){for(var m=1;m<arguments.length;m++){var y=arguments[m]!=null?arguments[m]:{};m%2?e(Object(y),!0).forEach(function(w){n(p,w,y[w])}):Object.getOwnPropertyDescriptors?Object.defineProperties(p,Object.getOwnPropertyDescriptors(y)):e(Object(y)).forEach(function(w){Object.defineProperty(p,w,Object.getOwnPropertyDescriptor(y,w))})}return p}function n(p,m,y){return m=o(m),m in p?Object.defineProperty(p,m,{value:y,enumerable:!0,configurable:!0,writable:!0}):p[m]=y,p}function r(p,m){if(!(p instanceof m))throw new TypeError("Cannot call a class as a function")}function i(p,m){for(var y=0;y<m.length;y++){var w=m[y];w.enumerable=w.enumerable||!1,w.configurable=!0,"value"in w&&(w.writable=!0),Object.defineProperty(p,o(w.key),w)}}function a(p,m,y){return m&&i(p.prototype,m),y&&i(p,y),Object.defineProperty(p,"prototype",{writable:!1}),p}function o(p){var m=s(p,"string");return typeof m=="symbol"?m:String(m)}function s(p,m){if(typeof p!="object"||p===null)return p;var y=p[Symbol.toPrimitive];if(y!==void 0){var w=y.call(p,m||"default");if(typeof w!="object")return w;throw new TypeError("@@toPrimitive must return a primitive value.")}return(m==="string"?String:Number)(p)}var u=pe,l=u.Buffer,f=hE,c=f.inspect,h=c&&c.custom||"inspect";function d(p,m,y){l.prototype.copy.call(p,m,y)}return cg=function(){function p(){r(this,p),this.head=null,this.tail=null,this.length=0}return a(p,[{key:"push",value:function(y){var w={data:y,next:null};this.length>0?this.tail.next=w:this.head=w,this.tail=w,++this.length}},{key:"unshift",value:function(y){var w={data:y,next:this.head};this.length===0&&(this.tail=w),this.head=w,++this.length}},{key:"shift",value:function(){if(this.length!==0){var y=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,y}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(y){if(this.length===0)return"";for(var w=this.head,_=""+w.data;w=w.next;)_+=y+w.data;return _}},{key:"concat",value:function(y){if(this.length===0)return l.alloc(0);for(var w=l.allocUnsafe(y>>>0),_=this.head,C=0;_;)d(_.data,w,C),C+=_.data.length,_=_.next;return w}},{key:"consume",value:function(y,w){var _;return y<this.head.data.length?(_=this.head.data.slice(0,y),this.head.data=this.head.data.slice(y)):y===this.head.data.length?_=this.shift():_=w?this._getString(y):this._getBuffer(y),_}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(y){var w=this.head,_=1,C=w.data;for(y-=C.length;w=w.next;){var E=w.data,k=y>E.length?E.length:y;if(k===E.length?C+=E:C+=E.slice(0,y),y-=k,y===0){k===E.length?(++_,w.next?this.head=w.next:this.head=this.tail=null):(this.head=w,w.data=E.slice(k));break}++_}return this.length-=_,C}},{key:"_getBuffer",value:function(y){var w=l.allocUnsafe(y),_=this.head,C=1;for(_.data.copy(w),y-=_.data.length;_=_.next;){var E=_.data,k=y>E.length?E.length:y;if(E.copy(w,w.length-y,0,k),y-=k,y===0){k===E.length?(++C,_.next?this.head=_.next:this.head=this.tail=null):(this.head=_,_.data=E.slice(k));break}++C}return this.length-=C,w}},{key:h,value:function(y,w){return c(this,t(t({},w),{},{depth:0,customInspect:!1}))}}]),p}(),cg}var hg,pE;function gE(){if(pE)return hg;pE=1;function e(o,s){var u=this,l=this._readableState&&this._readableState.destroyed,f=this._writableState&&this._writableState.destroyed;return l||f?(s?s(o):o&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(i,this,o)):process.nextTick(i,this,o)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(o||null,function(c){!s&&c?u._writableState?u._writableState.errorEmitted?process.nextTick(n,u):(u._writableState.errorEmitted=!0,process.nextTick(t,u,c)):process.nextTick(t,u,c):s?(process.nextTick(n,u),s(c)):process.nextTick(n,u)}),this)}function t(o,s){i(o,s),n(o)}function n(o){o._writableState&&!o._writableState.emitClose||o._readableState&&!o._readableState.emitClose||o.emit("close")}function r(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function i(o,s){o.emit("error",s)}function a(o,s){var u=o._readableState,l=o._writableState;u&&u.autoDestroy||l&&l.autoDestroy?o.destroy(s):o.emit("error",s)}return hg={destroy:e,undestroy:r,errorOrDestroy:a},hg}var dg={},mE;function Co(){if(mE)return dg;mE=1;function e(s,u){s.prototype=Object.create(u.prototype),s.prototype.constructor=s,s.__proto__=u}var t={};function n(s,u,l){l||(l=Error);function f(h,d,p){return typeof u=="string"?u:u(h,d,p)}var c=function(h){e(d,h);function d(p,m,y){return h.call(this,f(p,m,y))||this}return d}(l);c.prototype.name=l.name,c.prototype.code=s,t[s]=c}function r(s,u){if(Array.isArray(s)){var l=s.length;return s=s.map(function(f){return String(f)}),l>2?"one of ".concat(u," ").concat(s.slice(0,l-1).join(", "),", or ")+s[l-1]:l===2?"one of ".concat(u," ").concat(s[0]," or ").concat(s[1]):"of ".concat(u," ").concat(s[0])}else return"of ".concat(u," ").concat(String(s))}function i(s,u,l){return s.substr(!l||l<0?0:+l,u.length)===u}function a(s,u,l){return(l===void 0||l>s.length)&&(l=s.length),s.substring(l-u.length,l)===u}function o(s,u,l){return typeof l!="number"&&(l=0),l+u.length>s.length?!1:s.indexOf(u,l)!==-1}return n("ERR_INVALID_OPT_VALUE",function(s,u){return'The value "'+u+'" is invalid for option "'+s+'"'},TypeError),n("ERR_INVALID_ARG_TYPE",function(s,u,l){var f;typeof u=="string"&&i(u,"not ")?(f="must not be",u=u.replace(/^not /,"")):f="must be";var c;if(a(s," argument"))c="The ".concat(s," ").concat(f," ").concat(r(u,"type"));else{var h=o(s,".")?"property":"argument";c='The "'.concat(s,'" ').concat(h," ").concat(f," ").concat(r(u,"type"))}return c+=". Received type ".concat(typeof l),c},TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",function(s){return"The "+s+" method is not implemented"}),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",function(s){return"Cannot call "+s+" after a stream was destroyed"}),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",function(s){return"Unknown encoding: "+s},TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),dg.codes=t,dg}var pg,bE;function yE(){if(bE)return pg;bE=1;var e=Co().codes.ERR_INVALID_OPT_VALUE;function t(r,i,a){return r.highWaterMark!=null?r.highWaterMark:i?r[a]:null}function n(r,i,a,o){var s=t(i,o,a);if(s!=null){if(!(isFinite(s)&&Math.floor(s)===s)||s<0){var u=o?a:"highWaterMark";throw new e(u,s)}return Math.floor(s)}return r.objectMode?16:16*1024}return pg={getHighWaterMark:n},pg}var gg,wE;function KO(){if(wE)return gg;wE=1,gg=e;function e(n,r){if(t("noDeprecation"))return n;var i=!1;function a(){if(!i){if(t("throwDeprecation"))throw new Error(r);t("traceDeprecation")?console.trace(r):console.warn(r),i=!0}return n.apply(this,arguments)}return a}function t(n){try{if(!globalThis.localStorage)return!1}catch{return!1}var r=globalThis.localStorage[n];return r==null?!1:String(r).toLowerCase()==="true"}return gg}var mg,vE;function xE(){if(vE)return mg;vE=1,mg=R;function e(N){var P=this;this.next=null,this.entry=null,this.finish=function(){Oe(P,N)}}var t;R.WritableState=B;var n={deprecate:KO()},r=cE(),i=pe.Buffer,a=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function o(N){return i.from(N)}function s(N){return i.isBuffer(N)||N instanceof a}var u=gE(),l=yE(),f=l.getHighWaterMark,c=Co().codes,h=c.ERR_INVALID_ARG_TYPE,d=c.ERR_METHOD_NOT_IMPLEMENTED,p=c.ERR_MULTIPLE_CALLBACK,m=c.ERR_STREAM_CANNOT_PIPE,y=c.ERR_STREAM_DESTROYED,w=c.ERR_STREAM_NULL_VALUES,_=c.ERR_STREAM_WRITE_AFTER_END,C=c.ERR_UNKNOWN_ENCODING,E=u.errorOrDestroy;So(R,r);function k(){}function B(N,P,q){t=t||To(),N=N||{},typeof q!="boolean"&&(q=P instanceof t),this.objectMode=!!N.objectMode,q&&(this.objectMode=this.objectMode||!!N.writableObjectMode),this.highWaterMark=f(this,N,"writableHighWaterMark",q),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var H=N.decodeStrings===!1;this.decodeStrings=!H,this.defaultEncoding=N.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Y){$e(P,Y)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=N.emitClose!==!1,this.autoDestroy=!!N.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}B.prototype.getBuffer=function(){for(var P=this.bufferedRequest,q=[];P;)q.push(P),P=P.next;return q},function(){try{Object.defineProperty(B.prototype,"buffer",{get:n.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var I;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(I=Function.prototype[Symbol.hasInstance],Object.defineProperty(R,Symbol.hasInstance,{value:function(P){return I.call(this,P)?!0:this!==R?!1:P&&P._writableState instanceof B}})):I=function(P){return P instanceof this};function R(N){t=t||To();var P=this instanceof t;if(!P&&!I.call(R,this))return new R(N);this._writableState=new B(N,this,P),this.writable=!0,N&&(typeof N.write=="function"&&(this._write=N.write),typeof N.writev=="function"&&(this._writev=N.writev),typeof N.destroy=="function"&&(this._destroy=N.destroy),typeof N.final=="function"&&(this._final=N.final)),r.call(this)}R.prototype.pipe=function(){E(this,new m)};function L(N,P){var q=new _;E(N,q),process.nextTick(P,q)}function j(N,P,q,H){var Y;return q===null?Y=new w:typeof q!="string"&&!P.objectMode&&(Y=new h("chunk",["string","Buffer"],q)),Y?(E(N,Y),process.nextTick(H,Y),!1):!0}R.prototype.write=function(N,P,q){var H=this._writableState,Y=!1,S=!H.objectMode&&s(N);return S&&!i.isBuffer(N)&&(N=o(N)),typeof P=="function"&&(q=P,P=null),S?P="buffer":P||(P=H.defaultEncoding),typeof q!="function"&&(q=k),H.ending?L(this,q):(S||j(this,H,N,q))&&(H.pendingcb++,Y=ie(this,H,S,N,P,q)),Y},R.prototype.cork=function(){this._writableState.corked++},R.prototype.uncork=function(){var N=this._writableState;N.corked&&(N.corked--,!N.writing&&!N.corked&&!N.bufferProcessing&&N.bufferedRequest&&Ze(this,N))},R.prototype.setDefaultEncoding=function(P){if(typeof P=="string"&&(P=P.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((P+"").toLowerCase())>-1))throw new C(P);return this._writableState.defaultEncoding=P,this},Object.defineProperty(R.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function M(N,P,q){return!N.objectMode&&N.decodeStrings!==!1&&typeof P=="string"&&(P=i.from(P,q)),P}Object.defineProperty(R.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function ie(N,P,q,H,Y,S){if(!q){var x=M(P,H,Y);H!==x&&(q=!0,Y="buffer",H=x)}var G=P.objectMode?1:H.length;P.length+=G;var Z=P.length<P.highWaterMark;if(Z||(P.needDrain=!0),P.writing||P.corked){var le=P.lastBufferedRequest;P.lastBufferedRequest={chunk:H,encoding:Y,isBuf:q,callback:S,next:null},le?le.next=P.lastBufferedRequest:P.bufferedRequest=P.lastBufferedRequest,P.bufferedRequestCount+=1}else se(N,P,!1,G,H,Y,S);return Z}function se(N,P,q,H,Y,S,x){P.writelen=H,P.writecb=x,P.writing=!0,P.sync=!0,P.destroyed?P.onwrite(new y("write")):q?N._writev(Y,P.onwrite):N._write(Y,S,P.onwrite),P.sync=!1}function ge(N,P,q,H,Y){--P.pendingcb,q?(process.nextTick(Y,H),process.nextTick(pt,N,P),N._writableState.errorEmitted=!0,E(N,H)):(Y(H),N._writableState.errorEmitted=!0,E(N,H),pt(N,P))}function Ie(N){N.writing=!1,N.writecb=null,N.length-=N.writelen,N.writelen=0}function $e(N,P){var q=N._writableState,H=q.sync,Y=q.writecb;if(typeof Y!="function")throw new p;if(Ie(q),P)ge(N,q,H,P,Y);else{var S=Je(q)||N.destroyed;!S&&!q.corked&&!q.bufferProcessing&&q.bufferedRequest&&Ze(N,q),H?process.nextTick(De,N,q,S,Y):De(N,q,S,Y)}}function De(N,P,q,H){q||Ke(N,P),P.pendingcb--,H(),pt(N,P)}function Ke(N,P){P.length===0&&P.needDrain&&(P.needDrain=!1,N.emit("drain"))}function Ze(N,P){P.bufferProcessing=!0;var q=P.bufferedRequest;if(N._writev&&q&&q.next){var H=P.bufferedRequestCount,Y=new Array(H),S=P.corkedRequestsFree;S.entry=q;for(var x=0,G=!0;q;)Y[x]=q,q.isBuf||(G=!1),q=q.next,x+=1;Y.allBuffers=G,se(N,P,!0,P.length,Y,"",S.finish),P.pendingcb++,P.lastBufferedRequest=null,S.next?(P.corkedRequestsFree=S.next,S.next=null):P.corkedRequestsFree=new e(P),P.bufferedRequestCount=0}else{for(;q;){var Z=q.chunk,le=q.encoding,J=q.callback,ue=P.objectMode?1:Z.length;if(se(N,P,!1,ue,Z,le,J),q=q.next,P.bufferedRequestCount--,P.writing)break}q===null&&(P.lastBufferedRequest=null)}P.bufferedRequest=q,P.bufferProcessing=!1}R.prototype._write=function(N,P,q){q(new d("_write()"))},R.prototype._writev=null,R.prototype.end=function(N,P,q){var H=this._writableState;return typeof N=="function"?(q=N,N=null,P=null):typeof P=="function"&&(q=P,P=null),N!=null&&this.write(N,P),H.corked&&(H.corked=1,this.uncork()),H.ending||qt(this,H,q),this},Object.defineProperty(R.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function Je(N){return N.ending&&N.length===0&&N.bufferedRequest===null&&!N.finished&&!N.writing}function Ee(N,P){N._final(function(q){P.pendingcb--,q&&E(N,q),P.prefinished=!0,N.emit("prefinish"),pt(N,P)})}function _e(N,P){!P.prefinished&&!P.finalCalled&&(typeof N._final=="function"&&!P.destroyed?(P.pendingcb++,P.finalCalled=!0,process.nextTick(Ee,N,P)):(P.prefinished=!0,N.emit("prefinish")))}function pt(N,P){var q=Je(P);if(q&&(_e(N,P),P.pendingcb===0&&(P.finished=!0,N.emit("finish"),P.autoDestroy))){var H=N._readableState;(!H||H.autoDestroy&&H.endEmitted)&&N.destroy()}return q}function qt(N,P,q){P.ending=!0,pt(N,P),q&&(P.finished?process.nextTick(q):N.once("finish",q)),P.ended=!0,N.writable=!1}function Oe(N,P,q){var H=N.entry;for(N.entry=null;H;){var Y=H.callback;P.pendingcb--,Y(q),H=H.next}P.corkedRequestsFree.next=N}return Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(P){this._writableState&&(this._writableState.destroyed=P)}}),R.prototype.destroy=u.destroy,R.prototype._undestroy=u.undestroy,R.prototype._destroy=function(N,P){P(N)},mg}var bg,AE;function To(){if(AE)return bg;AE=1;var e=Object.keys||function(l){var f=[];for(var c in l)f.push(c);return f};bg=o;var t=kE(),n=xE();So(o,t);for(var r=e(n.prototype),i=0;i<r.length;i++){var a=r[i];o.prototype[a]||(o.prototype[a]=n.prototype[a])}function o(l){if(!(this instanceof o))return new o(l);t.call(this,l),n.call(this,l),this.allowHalfOpen=!0,l&&(l.readable===!1&&(this.readable=!1),l.writable===!1&&(this.writable=!1),l.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",s)))}Object.defineProperty(o.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(o.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(o.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(){this._writableState.ended||process.nextTick(u,this)}function u(l){l.end()}return Object.defineProperty(o.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(f){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=f,this._writableState.destroyed=f)}}),bg}var yg={},wg={exports:{}};(function(e,t){var n=pe,r=n.Buffer;function i(o,s){for(var u in o)s[u]=o[u]}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?e.exports=n:(i(n,t),t.Buffer=a);function a(o,s,u){return r(o,s,u)}i(r,a),a.from=function(o,s,u){if(typeof o=="number")throw new TypeError("Argument must not be a number");return r(o,s,u)},a.alloc=function(o,s,u){if(typeof o!="number")throw new TypeError("Argument must be a number");var l=r(o);return s!==void 0?typeof u=="string"?l.fill(s,u):l.fill(s):l.fill(0),l},a.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return r(o)},a.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return n.SlowBuffer(o)}})(wg,wg.exports);var JO=wg.exports,vg=JO.Buffer,EE=vg.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function ez(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function tz(e){var t=ez(e);if(typeof t!="string"&&(vg.isEncoding===EE||!EE(e)))throw new Error("Unknown encoding: "+e);return t||e}var nz=yg.StringDecoder=Ol;function Ol(e){this.encoding=tz(e);var t;switch(this.encoding){case"utf16le":this.text=lz,this.end=uz,t=4;break;case"utf8":this.fillLast=az,t=4;break;case"base64":this.text=fz,this.end=cz,t=3;break;default:this.write=hz,this.end=dz;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=vg.allocUnsafe(t)}Ol.prototype.write=function(e){if(e.length===0)return"";var t,n;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},Ol.prototype.end=sz,Ol.prototype.text=oz,Ol.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};function xg(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function rz(e,t,n){var r=t.length-1;if(r<n)return 0;var i=xg(t[r]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--r<n||i===-2?0:(i=xg(t[r]),i>=0?(i>0&&(e.lastNeed=i-2),i):--r<n||i===-2?0:(i=xg(t[r]),i>=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function iz(e,t,n){if((t[0]&192)!==128)return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"�"}}function az(e){var t=this.lastTotal-this.lastNeed,n=iz(this,e);if(n!==void 0)return n;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function oz(e,t){var n=rz(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function sz(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function lz(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function uz(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function fz(e,t){var n=(e.length-t)%3;return n===0?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,n===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function cz(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function hz(e){return e.toString(this.encoding)}function dz(e){return e&&e.length?this.write(e):""}var Ag,_E;function Eg(){if(_E)return Ag;_E=1;var e=Co().codes.ERR_STREAM_PREMATURE_CLOSE;function t(a){var o=!1;return function(){if(!o){o=!0;for(var s=arguments.length,u=new Array(s),l=0;l<s;l++)u[l]=arguments[l];a.apply(this,u)}}}function n(){}function r(a){return a.setHeader&&typeof a.abort=="function"}function i(a,o,s){if(typeof o=="function")return i(a,null,o);o||(o={}),s=t(s||n);var u=o.readable||o.readable!==!1&&a.readable,l=o.writable||o.writable!==!1&&a.writable,f=function(){a.writable||h()},c=a._writableState&&a._writableState.finished,h=function(){l=!1,c=!0,u||s.call(a)},d=a._readableState&&a._readableState.endEmitted,p=function(){u=!1,d=!0,l||s.call(a)},m=function(C){s.call(a,C)},y=function(){var C;if(u&&!d)return(!a._readableState||!a._readableState.ended)&&(C=new e),s.call(a,C);if(l&&!c)return(!a._writableState||!a._writableState.ended)&&(C=new e),s.call(a,C)},w=function(){a.req.on("finish",h)};return r(a)?(a.on("complete",h),a.on("abort",y),a.req?w():a.on("request",w)):l&&!a._writableState&&(a.on("end",f),a.on("close",f)),a.on("end",p),a.on("finish",h),o.error!==!1&&a.on("error",m),a.on("close",y),function(){a.removeListener("complete",h),a.removeListener("abort",y),a.removeListener("request",w),a.req&&a.req.removeListener("finish",h),a.removeListener("end",f),a.removeListener("close",f),a.removeListener("finish",h),a.removeListener("end",p),a.removeListener("error",m),a.removeListener("close",y)}}return Ag=i,Ag}var _g,SE;function pz(){if(SE)return _g;SE=1;var e;function t(C,E,k){return E=n(E),E in C?Object.defineProperty(C,E,{value:k,enumerable:!0,configurable:!0,writable:!0}):C[E]=k,C}function n(C){var E=r(C,"string");return typeof E=="symbol"?E:String(E)}function r(C,E){if(typeof C!="object"||C===null)return C;var k=C[Symbol.toPrimitive];if(k!==void 0){var B=k.call(C,E||"default");if(typeof B!="object")return B;throw new TypeError("@@toPrimitive must return a primitive value.")}return(E==="string"?String:Number)(C)}var i=Eg(),a=Symbol("lastResolve"),o=Symbol("lastReject"),s=Symbol("error"),u=Symbol("ended"),l=Symbol("lastPromise"),f=Symbol("handlePromise"),c=Symbol("stream");function h(C,E){return{value:C,done:E}}function d(C){var E=C[a];if(E!==null){var k=C[c].read();k!==null&&(C[l]=null,C[a]=null,C[o]=null,E(h(k,!1)))}}function p(C){process.nextTick(d,C)}function m(C,E){return function(k,B){C.then(function(){if(E[u]){k(h(void 0,!0));return}E[f](k,B)},B)}}var y=Object.getPrototypeOf(function(){}),w=Object.setPrototypeOf((e={get stream(){return this[c]},next:function(){var E=this,k=this[s];if(k!==null)return Promise.reject(k);if(this[u])return Promise.resolve(h(void 0,!0));if(this[c].destroyed)return new Promise(function(L,j){process.nextTick(function(){E[s]?j(E[s]):L(h(void 0,!0))})});var B=this[l],I;if(B)I=new Promise(m(B,this));else{var R=this[c].read();if(R!==null)return Promise.resolve(h(R,!1));I=new Promise(this[f])}return this[l]=I,I}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var E=this;return new Promise(function(k,B){E[c].destroy(null,function(I){if(I){B(I);return}k(h(void 0,!0))})})}),e),y),_=function(E){var k,B=Object.create(w,(k={},t(k,c,{value:E,writable:!0}),t(k,a,{value:null,writable:!0}),t(k,o,{value:null,writable:!0}),t(k,s,{value:null,writable:!0}),t(k,u,{value:E._readableState.endEmitted,writable:!0}),t(k,f,{value:function(R,L){var j=B[c].read();j?(B[l]=null,B[a]=null,B[o]=null,R(h(j,!1))):(B[a]=R,B[o]=L)},writable:!0}),k));return B[l]=null,i(E,function(I){if(I&&I.code!=="ERR_STREAM_PREMATURE_CLOSE"){var R=B[o];R!==null&&(B[l]=null,B[a]=null,B[o]=null,R(I)),B[s]=I;return}var L=B[a];L!==null&&(B[l]=null,B[a]=null,B[o]=null,L(h(void 0,!0))),B[u]=!0}),E.on("readable",p.bind(null,B)),B};return _g=_,_g}var Sg,CE;function gz(){return CE||(CE=1,Sg=function(){throw new Error("Readable.from is not available in the browser")}),Sg}var Cg,TE;function kE(){if(TE)return Cg;TE=1,Cg=L;var e;L.ReadableState=R,lg.EventEmitter;var t=function(x,G){return x.listeners(G).length},n=cE(),r=pe.Buffer,i=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function a(S){return r.from(S)}function o(S){return r.isBuffer(S)||S instanceof i}var s=hE,u;s&&s.debuglog?u=s.debuglog("stream"):u=function(){};var l=XO(),f=gE(),c=yE(),h=c.getHighWaterMark,d=Co().codes,p=d.ERR_INVALID_ARG_TYPE,m=d.ERR_STREAM_PUSH_AFTER_EOF,y=d.ERR_METHOD_NOT_IMPLEMENTED,w=d.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,_,C,E;So(L,n);var k=f.errorOrDestroy,B=["error","close","destroy","pause","resume"];function I(S,x,G){if(typeof S.prependListener=="function")return S.prependListener(x,G);!S._events||!S._events[x]?S.on(x,G):Array.isArray(S._events[x])?S._events[x].unshift(G):S._events[x]=[G,S._events[x]]}function R(S,x,G){e=e||To(),S=S||{},typeof G!="boolean"&&(G=x instanceof e),this.objectMode=!!S.objectMode,G&&(this.objectMode=this.objectMode||!!S.readableObjectMode),this.highWaterMark=h(this,S,"readableHighWaterMark",G),this.buffer=new l,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=S.emitClose!==!1,this.autoDestroy=!!S.autoDestroy,this.destroyed=!1,this.defaultEncoding=S.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,S.encoding&&(_||(_=yg.StringDecoder),this.decoder=new _(S.encoding),this.encoding=S.encoding)}function L(S){if(e=e||To(),!(this instanceof L))return new L(S);var x=this instanceof e;this._readableState=new R(S,this,x),this.readable=!0,S&&(typeof S.read=="function"&&(this._read=S.read),typeof S.destroy=="function"&&(this._destroy=S.destroy)),n.call(this)}Object.defineProperty(L.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(x){this._readableState&&(this._readableState.destroyed=x)}}),L.prototype.destroy=f.destroy,L.prototype._undestroy=f.undestroy,L.prototype._destroy=function(S,x){x(S)},L.prototype.push=function(S,x){var G=this._readableState,Z;return G.objectMode?Z=!0:typeof S=="string"&&(x=x||G.defaultEncoding,x!==G.encoding&&(S=r.from(S,x),x=""),Z=!0),j(this,S,x,!1,Z)},L.prototype.unshift=function(S){return j(this,S,null,!0,!1)};function j(S,x,G,Z,le){u("readableAddChunk",x);var J=S._readableState;if(x===null)J.reading=!1,$e(S,J);else{var ue;if(le||(ue=ie(J,x)),ue)k(S,ue);else if(J.objectMode||x&&x.length>0)if(typeof x!="string"&&!J.objectMode&&Object.getPrototypeOf(x)!==r.prototype&&(x=a(x)),Z)J.endEmitted?k(S,new w):M(S,J,x,!0);else if(J.ended)k(S,new m);else{if(J.destroyed)return!1;J.reading=!1,J.decoder&&!G?(x=J.decoder.write(x),J.objectMode||x.length!==0?M(S,J,x,!1):Ze(S,J)):M(S,J,x,!1)}else Z||(J.reading=!1,Ze(S,J))}return!J.ended&&(J.length<J.highWaterMark||J.length===0)}function M(S,x,G,Z){x.flowing&&x.length===0&&!x.sync?(x.awaitDrain=0,S.emit("data",G)):(x.length+=x.objectMode?1:G.length,Z?x.buffer.unshift(G):x.buffer.push(G),x.needReadable&&De(S)),Ze(S,x)}function ie(S,x){var G;return!o(x)&&typeof x!="string"&&x!==void 0&&!S.objectMode&&(G=new p("chunk",["string","Buffer","Uint8Array"],x)),G}L.prototype.isPaused=function(){return this._readableState.flowing===!1},L.prototype.setEncoding=function(S){_||(_=yg.StringDecoder);var x=new _(S);this._readableState.decoder=x,this._readableState.encoding=this._readableState.decoder.encoding;for(var G=this._readableState.buffer.head,Z="";G!==null;)Z+=x.write(G.data),G=G.next;return this._readableState.buffer.clear(),Z!==""&&this._readableState.buffer.push(Z),this._readableState.length=Z.length,this};var se=1073741824;function ge(S){return S>=se?S=se:(S--,S|=S>>>1,S|=S>>>2,S|=S>>>4,S|=S>>>8,S|=S>>>16,S++),S}function Ie(S,x){return S<=0||x.length===0&&x.ended?0:x.objectMode?1:S!==S?x.flowing&&x.length?x.buffer.head.data.length:x.length:(S>x.highWaterMark&&(x.highWaterMark=ge(S)),S<=x.length?S:x.ended?x.length:(x.needReadable=!0,0))}L.prototype.read=function(S){u("read",S),S=parseInt(S,10);var x=this._readableState,G=S;if(S!==0&&(x.emittedReadable=!1),S===0&&x.needReadable&&((x.highWaterMark!==0?x.length>=x.highWaterMark:x.length>0)||x.ended))return u("read: emitReadable",x.length,x.ended),x.length===0&&x.ended?q(this):De(this),null;if(S=Ie(S,x),S===0&&x.ended)return x.length===0&&q(this),null;var Z=x.needReadable;u("need readable",Z),(x.length===0||x.length-S<x.highWaterMark)&&(Z=!0,u("length less than watermark",Z)),x.ended||x.reading?(Z=!1,u("reading or ended",Z)):Z&&(u("do read"),x.reading=!0,x.sync=!0,x.length===0&&(x.needReadable=!0),this._read(x.highWaterMark),x.sync=!1,x.reading||(S=Ie(G,x)));var le;return S>0?le=P(S,x):le=null,le===null?(x.needReadable=x.length<=x.highWaterMark,S=0):(x.length-=S,x.awaitDrain=0),x.length===0&&(x.ended||(x.needReadable=!0),G!==S&&x.ended&&q(this)),le!==null&&this.emit("data",le),le};function $e(S,x){if(u("onEofChunk"),!x.ended){if(x.decoder){var G=x.decoder.end();G&&G.length&&(x.buffer.push(G),x.length+=x.objectMode?1:G.length)}x.ended=!0,x.sync?De(S):(x.needReadable=!1,x.emittedReadable||(x.emittedReadable=!0,Ke(S)))}}function De(S){var x=S._readableState;u("emitReadable",x.needReadable,x.emittedReadable),x.needReadable=!1,x.emittedReadable||(u("emitReadable",x.flowing),x.emittedReadable=!0,process.nextTick(Ke,S))}function Ke(S){var x=S._readableState;u("emitReadable_",x.destroyed,x.length,x.ended),!x.destroyed&&(x.length||x.ended)&&(S.emit("readable"),x.emittedReadable=!1),x.needReadable=!x.flowing&&!x.ended&&x.length<=x.highWaterMark,N(S)}function Ze(S,x){x.readingMore||(x.readingMore=!0,process.nextTick(Je,S,x))}function Je(S,x){for(;!x.reading&&!x.ended&&(x.length<x.highWaterMark||x.flowing&&x.length===0);){var G=x.length;if(u("maybeReadMore read 0"),S.read(0),G===x.length)break}x.readingMore=!1}L.prototype._read=function(S){k(this,new y("_read()"))},L.prototype.pipe=function(S,x){var G=this,Z=this._readableState;switch(Z.pipesCount){case 0:Z.pipes=S;break;case 1:Z.pipes=[Z.pipes,S];break;default:Z.pipes.push(S);break}Z.pipesCount+=1,u("pipe count=%d opts=%j",Z.pipesCount,x);var le=(!x||x.end!==!1)&&S!==process.stdout&&S!==process.stderr,J=le?Zt:Kn;Z.endEmitted?process.nextTick(J):G.once("end",J),S.on("unpipe",ue);function ue(v,g){u("onunpipe"),v===G&&g&&g.hasUnpiped===!1&&(g.hasUnpiped=!0,fi())}function Zt(){u("onend"),S.end()}var li=Ee(G);S.on("drain",li);var ui=!1;function fi(){u("cleanup"),S.removeListener("close",ci),S.removeListener("finish",Wt),S.removeListener("drain",li),S.removeListener("error",wr),S.removeListener("unpipe",ue),G.removeListener("end",Zt),G.removeListener("end",Kn),G.removeListener("data",St),ui=!0,Z.awaitDrain&&(!S._writableState||S._writableState.needDrain)&&li()}G.on("data",St);function St(v){u("ondata");var g=S.write(v);u("dest.write",g),g===!1&&((Z.pipesCount===1&&Z.pipes===S||Z.pipesCount>1&&Y(Z.pipes,S)!==-1)&&!ui&&(u("false write response, pause",Z.awaitDrain),Z.awaitDrain++),G.pause())}function wr(v){u("onerror",v),Kn(),S.removeListener("error",wr),t(S,"error")===0&&k(S,v)}I(S,"error",wr);function ci(){S.removeListener("finish",Wt),Kn()}S.once("close",ci);function Wt(){u("onfinish"),S.removeListener("close",ci),Kn()}S.once("finish",Wt);function Kn(){u("unpipe"),G.unpipe(S)}return S.emit("pipe",G),Z.flowing||(u("pipe resume"),G.resume()),S};function Ee(S){return function(){var G=S._readableState;u("pipeOnDrain",G.awaitDrain),G.awaitDrain&&G.awaitDrain--,G.awaitDrain===0&&t(S,"data")&&(G.flowing=!0,N(S))}}L.prototype.unpipe=function(S){var x=this._readableState,G={hasUnpiped:!1};if(x.pipesCount===0)return this;if(x.pipesCount===1)return S&&S!==x.pipes?this:(S||(S=x.pipes),x.pipes=null,x.pipesCount=0,x.flowing=!1,S&&S.emit("unpipe",this,G),this);if(!S){var Z=x.pipes,le=x.pipesCount;x.pipes=null,x.pipesCount=0,x.flowing=!1;for(var J=0;J<le;J++)Z[J].emit("unpipe",this,{hasUnpiped:!1});return this}var ue=Y(x.pipes,S);return ue===-1?this:(x.pipes.splice(ue,1),x.pipesCount-=1,x.pipesCount===1&&(x.pipes=x.pipes[0]),S.emit("unpipe",this,G),this)},L.prototype.on=function(S,x){var G=n.prototype.on.call(this,S,x),Z=this._readableState;return S==="data"?(Z.readableListening=this.listenerCount("readable")>0,Z.flowing!==!1&&this.resume()):S==="readable"&&!Z.endEmitted&&!Z.readableListening&&(Z.readableListening=Z.needReadable=!0,Z.flowing=!1,Z.emittedReadable=!1,u("on readable",Z.length,Z.reading),Z.length?De(this):Z.reading||process.nextTick(pt,this)),G},L.prototype.addListener=L.prototype.on,L.prototype.removeListener=function(S,x){var G=n.prototype.removeListener.call(this,S,x);return S==="readable"&&process.nextTick(_e,this),G},L.prototype.removeAllListeners=function(S){var x=n.prototype.removeAllListeners.apply(this,arguments);return(S==="readable"||S===void 0)&&process.nextTick(_e,this),x};function _e(S){var x=S._readableState;x.readableListening=S.listenerCount("readable")>0,x.resumeScheduled&&!x.paused?x.flowing=!0:S.listenerCount("data")>0&&S.resume()}function pt(S){u("readable nexttick read 0"),S.read(0)}L.prototype.resume=function(){var S=this._readableState;return S.flowing||(u("resume"),S.flowing=!S.readableListening,qt(this,S)),S.paused=!1,this};function qt(S,x){x.resumeScheduled||(x.resumeScheduled=!0,process.nextTick(Oe,S,x))}function Oe(S,x){u("resume",x.reading),x.reading||S.read(0),x.resumeScheduled=!1,S.emit("resume"),N(S),x.flowing&&!x.reading&&S.read(0)}L.prototype.pause=function(){return u("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(u("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function N(S){var x=S._readableState;for(u("flow",x.flowing);x.flowing&&S.read()!==null;);}L.prototype.wrap=function(S){var x=this,G=this._readableState,Z=!1;S.on("end",function(){if(u("wrapped end"),G.decoder&&!G.ended){var ue=G.decoder.end();ue&&ue.length&&x.push(ue)}x.push(null)}),S.on("data",function(ue){if(u("wrapped data"),G.decoder&&(ue=G.decoder.write(ue)),!(G.objectMode&&ue==null)&&!(!G.objectMode&&(!ue||!ue.length))){var Zt=x.push(ue);Zt||(Z=!0,S.pause())}});for(var le in S)this[le]===void 0&&typeof S[le]=="function"&&(this[le]=function(Zt){return function(){return S[Zt].apply(S,arguments)}}(le));for(var J=0;J<B.length;J++)S.on(B[J],this.emit.bind(this,B[J]));return this._read=function(ue){u("wrapped _read",ue),Z&&(Z=!1,S.resume())},this},typeof Symbol=="function"&&(L.prototype[Symbol.asyncIterator]=function(){return C===void 0&&(C=pz()),C(this)}),Object.defineProperty(L.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(L.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(L.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(x){this._readableState&&(this._readableState.flowing=x)}}),L._fromList=P,Object.defineProperty(L.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function P(S,x){if(x.length===0)return null;var G;return x.objectMode?G=x.buffer.shift():!S||S>=x.length?(x.decoder?G=x.buffer.join(""):x.buffer.length===1?G=x.buffer.first():G=x.buffer.concat(x.length),x.buffer.clear()):G=x.buffer.consume(S,x.decoder),G}function q(S){var x=S._readableState;u("endReadable",x.endEmitted),x.endEmitted||(x.ended=!0,process.nextTick(H,x,S))}function H(S,x){if(u("endReadableNT",S.endEmitted,S.length),!S.endEmitted&&S.length===0&&(S.endEmitted=!0,x.readable=!1,x.emit("end"),S.autoDestroy)){var G=x._writableState;(!G||G.autoDestroy&&G.finished)&&x.destroy()}}typeof Symbol=="function"&&(L.from=function(S,x){return E===void 0&&(E=gz()),E(L,S,x)});function Y(S,x){for(var G=0,Z=S.length;G<Z;G++)if(S[G]===x)return G;return-1}return Cg}var Tg,IE;function BE(){if(IE)return Tg;IE=1,Tg=s;var e=Co().codes,t=e.ERR_METHOD_NOT_IMPLEMENTED,n=e.ERR_MULTIPLE_CALLBACK,r=e.ERR_TRANSFORM_ALREADY_TRANSFORMING,i=e.ERR_TRANSFORM_WITH_LENGTH_0,a=To();So(s,a);function o(f,c){var h=this._transformState;h.transforming=!1;var d=h.writecb;if(d===null)return this.emit("error",new n);h.writechunk=null,h.writecb=null,c!=null&&this.push(c),d(f);var p=this._readableState;p.reading=!1,(p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}function s(f){if(!(this instanceof s))return new s(f);a.call(this,f),this._transformState={afterTransform:o.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,f&&(typeof f.transform=="function"&&(this._transform=f.transform),typeof f.flush=="function"&&(this._flush=f.flush)),this.on("prefinish",u)}function u(){var f=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(c,h){l(f,c,h)}):l(this,null,null)}s.prototype.push=function(f,c){return this._transformState.needTransform=!1,a.prototype.push.call(this,f,c)},s.prototype._transform=function(f,c,h){h(new t("_transform()"))},s.prototype._write=function(f,c,h){var d=this._transformState;if(d.writecb=h,d.writechunk=f,d.writeencoding=c,!d.transforming){var p=this._readableState;(d.needTransform||p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}},s.prototype._read=function(f){var c=this._transformState;c.writechunk!==null&&!c.transforming?(c.transforming=!0,this._transform(c.writechunk,c.writeencoding,c.afterTransform)):c.needTransform=!0},s.prototype._destroy=function(f,c){a.prototype._destroy.call(this,f,function(h){c(h)})};function l(f,c,h){if(c)return f.emit("error",c);if(h!=null&&f.push(h),f._writableState.length)throw new i;if(f._transformState.transforming)throw new r;return f.push(null)}return Tg}var kg,DE;function mz(){if(DE)return kg;DE=1,kg=t;var e=BE();So(t,e);function t(n){if(!(this instanceof t))return new t(n);e.call(this,n)}return t.prototype._transform=function(n,r,i){i(null,n)},kg}var Ig,FE;function bz(){if(FE)return Ig;FE=1;var e;function t(h){var d=!1;return function(){d||(d=!0,h.apply(void 0,arguments))}}var n=Co().codes,r=n.ERR_MISSING_ARGS,i=n.ERR_STREAM_DESTROYED;function a(h){if(h)throw h}function o(h){return h.setHeader&&typeof h.abort=="function"}function s(h,d,p,m){m=t(m);var y=!1;h.on("close",function(){y=!0}),e===void 0&&(e=Eg()),e(h,{readable:d,writable:p},function(_){if(_)return m(_);y=!0,m()});var w=!1;return function(_){if(!y&&!w){if(w=!0,o(h))return h.abort();if(typeof h.destroy=="function")return h.destroy();m(_||new i("pipe"))}}}function u(h){h()}function l(h,d){return h.pipe(d)}function f(h){return!h.length||typeof h[h.length-1]!="function"?a:h.pop()}function c(){for(var h=arguments.length,d=new Array(h),p=0;p<h;p++)d[p]=arguments[p];var m=f(d);if(Array.isArray(d[0])&&(d=d[0]),d.length<2)throw new r("streams");var y,w=d.map(function(_,C){var E=C<d.length-1,k=C>0;return s(_,E,k,function(B){y||(y=B),B&&w.forEach(u),!E&&(w.forEach(u),m(y))})});return d.reduce(l)}return Ig=c,Ig}var RE=dn,Bg=lg.EventEmitter,yz=So;yz(dn,Bg),dn.Readable=kE(),dn.Writable=xE(),dn.Duplex=To(),dn.Transform=BE(),dn.PassThrough=mz(),dn.finished=Eg(),dn.pipeline=bz(),dn.Stream=dn;function dn(){Bg.call(this)}dn.prototype.pipe=function(e,t){var n=this;function r(f){e.writable&&e.write(f)===!1&&n.pause&&n.pause()}n.on("data",r);function i(){n.readable&&n.resume&&n.resume()}e.on("drain",i),!e._isStdio&&(!t||t.end!==!1)&&(n.on("end",o),n.on("close",s));var a=!1;function o(){a||(a=!0,e.end())}function s(){a||(a=!0,typeof e.destroy=="function"&&e.destroy())}function u(f){if(l(),Bg.listenerCount(this,"error")===0)throw f}n.on("error",u),e.on("error",u);function l(){n.removeListener("data",r),e.removeListener("drain",i),n.removeListener("end",o),n.removeListener("close",s),n.removeListener("error",u),e.removeListener("error",u),n.removeListener("end",l),n.removeListener("close",l),e.removeListener("close",l)}return n.on("end",l),n.on("close",l),e.on("close",l),e.emit("pipe",n),e};function zl(e){return e.replace(/%([0-9A-Fa-f]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16)))}function ME(e,t){return String(t).replace(e,n=>`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function Ul(e){return ME(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,e)}function pr(e){return ME(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,e)}function PE(e){if(!(e&&e.length)||e===".")return{};const t={};return e.replace(/\r?\n$/,"").split(";").forEach(n=>{const r=n.split("=",2);if(!(r[1]&&r[1].length))return;r[0]=r[0].trim();let i=t[r[0].trim()];i||(i=[],t[r[0]]=i),i.push(...r[1].split(",").map(a=>a.trim()).map(zl))}),t}function LE(e){const t=e.split(" ").map(r=>r==="."||r===""?null:r);return{seq_id:t[0]&&zl(t[0]),source:t[1]&&zl(t[1]),type:t[2]&&zl(t[2]),start:t[3]===null?null:parseInt(t[3],10),end:t[4]===null?null:parseInt(t[4],10),score:t[5]===null?null:parseFloat(t[5]),strand:t[6],phase:t[7],attributes:t[8]===null?null:PE(t[8])}}function NE(e){const t=/^\s*##\s*(\S+)\s*(.*)/.exec(e);if(!t)return null;const[,n]=t;let[,,r]=t;const i={directive:n};if(r.length&&(r=r.replace(/\r?\n$/,""),i.value=r),n==="sequence-region"){const a=r.split(/\s+/,3);return{...i,seq_id:a[0],start:a[1]&&a[1].replace(/\D/g,""),end:a[2]&&a[2].replace(/\D/g,"")}}else if(n==="genome-build"){const[a,o]=r.split(/\s+/,2);return{...i,source:a,buildName:o}}return i}function OE(e){const t=[];return Object.entries(e).forEach(([n,r])=>{if(!r)return;let i;r.hasOwnProperty("toString")?i=Ul(r.toString()):Array.isArray(r)?i=r.map(Ul).join(","):i=Ul(r),t.push(`${Ul(n)}=${i}`)}),t.length?t.join(";"):"."}function wz(e,t){const n=e.attributes===null||e.attributes===void 0?".":OE(e.attributes),i=`${[e.seq_id===null?".":pr(e.seq_id),e.source===null?".":pr(e.source),e.type===null?".":pr(e.type),e.start===null?".":pr(e.start),e.end===null?".":pr(e.end),e.score===null?".":pr(e.score),e.strand===null?".":pr(e.strand),e.phase===null?".":pr(e.phase),n].join(" ")}
492
+ `;return t[i]?"":(t[i]=!0,i)}function Rc(e,t){if(Array.isArray(e))return e.map(r=>Rc(r,t)).join("");const n=[wz(e,t)];return vz(e)&&n.push(...e.child_features.map(r=>Rc(r,t)),...e.derived_features.map(r=>Rc(r,t))),n.join("")}function zE(e){return Rc(e,{})}function UE(e){let t=`##${e.directive}`;return e.value&&(t+=` ${e.value}`),t+=`
493
+ `,t}function GE(e){return`# ${e.comment}
494
+ `}function Dg(e){return`>${e.id}${e.description?` ${e.description}`:""}
490
495
  ${e.sequence}
491
- `}function Dc(e){function t(n){return"attributes"in n?PE(n):"directive"in n?LE(n):"sequence"in n?kg(n):"comment"in n?NE(n):`# (invalid item found during format)
492
- `}return Array.isArray(e)?e.map(t):t(e)}function fz(e){return e.child_features!==void 0&&e.derived_features!==void 0}const cz=Object.freeze(Object.defineProperty({__proto__:null,escape:Ul,escapeColumn:dr,formatAttributes:ME,formatComment:NE,formatDirective:LE,formatFeature:PE,formatItem:Dc,formatSequence:kg,parseAttributes:DE,parseDirective:RE,parseFeature:FE,unescape:zl},Symbol.toStringTag,{value:"Module"})),OE={Parent:"child_features",Derives_from:"derived_features"};class zE{constructor(t){this.seqCallback=t,this.currentSequence=void 0}addLine(t){const n=/^>\s*(\S+)\s*(.*)/.exec(t);n?(this._flush(),this.currentSequence={id:n[1],sequence:""},n[2]&&(this.currentSequence.description=n[2].trim())):this.currentSequence&&/\S/.test(t)&&(this.currentSequence.sequence+=t.replace(/\s/g,""))}_flush(){this.currentSequence&&this.seqCallback(this.currentSequence)}finish(){this._flush()}}class UE{constructor(t){this.fastaParser=void 0,this.eof=!1,this.lineNumber=0,this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},this._underConstructionOrphans={};const n=()=>{};this.featureCallback=t.featureCallback||n,this.endCallback=t.endCallback||n,this.commentCallback=t.commentCallback||n,this.errorCallback=t.errorCallback||n,this.directiveCallback=t.directiveCallback||n,this.sequenceCallback=t.sequenceCallback||n,this.disableDerivesFromReferences=t.disableDerivesFromReferences||!1,this.bufferSize=t.bufferSize===void 0?1e3:t.bufferSize}addLine(t){if(this.fastaParser){this.fastaParser.addLine(t);return}if(this.eof)return;if(this.lineNumber+=1,/^\s*[^#\s>]/.test(t)){this._bufferLine(t);return}const n=/^\s*(#+)(.*)/.exec(t);if(n){const[,r]=n;let[,,i]=n;if(r.length===3)this._emitAllUnderConstructionFeatures();else if(r.length===2){const o=RE(t);o&&(o.directive==="FASTA"?(this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new zE(this.sequenceCallback)):this._emitItem(o))}else i=i.replace(/\s*/,""),this._emitItem({comment:i})}else if(!/^\s*$/.test(t))if(/^\s*>/.test(t))this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new zE(this.sequenceCallback),this.fastaParser.addLine(t);else{const r=t.replace(/\r?\n?$/g,"");throw new Error(`GFF3 parse error. Cannot parse '${r}'.`)}}finish(){this._emitAllUnderConstructionFeatures(),this.fastaParser&&this.fastaParser.finish(),this.endCallback()}_emitItem(t){Array.isArray(t)?this.featureCallback(t):"directive"in t?this.directiveCallback(t):"comment"in t&&this.commentCallback(t)}_enforceBufferSizeLimit(t=0){const n=r=>{r&&Array.isArray(r)&&r[0].attributes&&r[0].attributes.ID&&r[0].attributes.ID[0]&&(r[0].attributes.ID.forEach(o=>{delete this._underConstructionById[o],delete this._completedReferences[o]}),r.forEach(o=>{o.child_features&&o.child_features.forEach(a=>n(a)),o.derived_features&&o.derived_features.forEach(a=>n(a))}))};for(;this._underConstructionTopLevel.length+t>this.bufferSize;){const r=this._underConstructionTopLevel.shift();r&&(this._emitItem(r),n(r))}}_emitAllUnderConstructionFeatures(){if(this._underConstructionTopLevel.forEach(this._emitItem.bind(this)),this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},Array.from(Object.values(this._underConstructionOrphans)).length)throw new Error(`some features reference other features that do not exist in the file (or in the same '###' scope). ${Object.keys(this._underConstructionOrphans)}`)}_bufferLine(t){var n,r,i;const a={...FE(t),child_features:[],derived_features:[]},s=((n=a.attributes)===null||n===void 0?void 0:n.ID)||[],u=((r=a.attributes)===null||r===void 0?void 0:r.Parent)||[],l=this.disableDerivesFromReferences?[]:((i=a.attributes)===null||i===void 0?void 0:i.Derives_from)||[];if(!s.length&&!u.length&&!l.length){this._emitItem([a]);return}let f;s.forEach(c=>{const h=this._underConstructionById[c];h?(h[h.length-1].type!==a.type&&this._parseError(`multi-line feature "${c}" has inconsistent types: "${a.type}", "${h[h.length-1].type}"`),h.push(a),f=h):(f=[a],this._enforceBufferSizeLimit(1),!u.length&&!l.length&&this._underConstructionTopLevel.push(f),this._underConstructionById[c]=f,this._resolveReferencesTo(f,c))}),this._resolveReferencesFrom(f||[a],{Parent:u,Derives_from:l},s)}_resolveReferencesTo(t,n){const r=this._underConstructionOrphans[n];r&&(t.forEach(i=>{i.child_features.push(...r.Parent)}),t.forEach(i=>{i.derived_features.push(...r.Derives_from)}),delete this._underConstructionOrphans[n])}_parseError(t){this.eof=!0,this.errorCallback(`${this.lineNumber}: ${t}`)}_resolveReferencesFrom(t,n,r){function i(o,a,s){let u=o[a];u||(u={},o[a]=u);const l=u[s]||!1;return u[s]=!0,l}n.Parent.forEach(o=>{const a=this._underConstructionById[o];if(a){const s=OE.Parent;r.filter(u=>i(this._completedReferences,u,`Parent,${o}`)).length||a.forEach(u=>{u[s].push(t)})}else{let s=this._underConstructionOrphans[o];s||(s={Parent:[],Derives_from:[]},this._underConstructionOrphans[o]=s),s.Parent.push(t)}}),n.Derives_from.forEach(o=>{const a=this._underConstructionById[o];if(a){const s=OE.Derives_from;r.filter(u=>i(this._completedReferences,u,`Derives_from,${o}`)).length||a.forEach(u=>{u[s].push(t)})}else{let s=this._underConstructionOrphans[o];s||(s={Parent:[],Derives_from:[]},this._underConstructionOrphans[o]=s),s.Derives_from.push(t)}})}}function Tg(e){process&&process.nextTick?process.nextTick(e):e()}function GE(e){const t={encoding:"utf8",parseFeatures:!0,parseDirectives:!1,parseSequences:!0,parseComments:!1,bufferSize:1e3,disableDerivesFromReferences:!1,...e};return e.parseAll&&(t.parseFeatures=!0,t.parseDirectives=!0,t.parseComments=!0,t.parseSequences=!0),t}class hz extends IE.Transform{constructor(t={}){super({objectMode:!0}),this.textBuffer="";const n=GE(t);this.encoding=t.encoding||"utf8",this.decoder=new ZO;const r=this.push.bind(this);this.parser=new UE({featureCallback:n.parseFeatures?r:void 0,directiveCallback:n.parseDirectives?r:void 0,commentCallback:n.parseComments?r:void 0,sequenceCallback:n.parseSequences?r:void 0,errorCallback:i=>this.emit("error",i),bufferSize:n.bufferSize,disableDerivesFromReferences:n.disableDerivesFromReferences})}_addLine(t){t&&this.parser.addLine(t)}_nextText(t){const n=(this.textBuffer+t).split(/\r?\n/);this.textBuffer=n.pop()||"",n.forEach(r=>this._addLine(r))}_transform(t,n,r){this._nextText(this.decoder.write(t)),Tg(r)}_flush(t){this.decoder.end&&this._nextText(this.decoder.end()),this.textBuffer!=null&&this._addLine(this.textBuffer),this.parser.finish(),Tg(t)}}function dz(e={}){return new hz(e)}function pz(e,t={}){if(!e)return[];const n=GE(t),r=[],i=r.push.bind(r),o=new UE({featureCallback:n.parseFeatures?i:void 0,directiveCallback:n.parseDirectives?i:void 0,commentCallback:n.parseComments?i:void 0,sequenceCallback:n.parseSequences?i:void 0,disableDerivesFromReferences:n.disableDerivesFromReferences||!1,bufferSize:1/0,errorCallback:a=>{throw a}});return e.split(/\r?\n/).forEach(o.addLine.bind(o)),o.finish(),r}function gz(e){const t=[],n=[];e.forEach(i=>{"sequence"in i?n.push(i):t.push(i)});let r=t.map(Dc).join("");return n.length&&(r+=`##FASTA
493
- `,r+=n.map(kg).join("")),r}class HE extends IE.Transform{constructor(t={}){super(Object.assign(t,{objectMode:!0})),this.linesSinceLastSyncMark=0,this.haveWeEmittedData=!1,this.fastaMode=!1,this.minLinesBetweenSyncMarks=t.minSyncLines||100,this.insertVersionDirective=t.insertVersionDirective||!1}_transform(t,n,r){let i;if(!this.haveWeEmittedData&&this.insertVersionDirective){const o=Array.isArray(t)?t[0]:t;"directive"in o&&o.directive!=="gff-version"&&this.push(`##gff-version 3
496
+ `}function Mc(e){function t(n){return"attributes"in n?zE(n):"directive"in n?UE(n):"sequence"in n?Dg(n):"comment"in n?GE(n):`# (invalid item found during format)
497
+ `}return Array.isArray(e)?e.map(t):t(e)}function vz(e){return e.child_features!==void 0&&e.derived_features!==void 0}const xz=Object.freeze(Object.defineProperty({__proto__:null,escape:Ul,escapeColumn:pr,formatAttributes:OE,formatComment:GE,formatDirective:UE,formatFeature:zE,formatItem:Mc,formatSequence:Dg,parseAttributes:PE,parseDirective:NE,parseFeature:LE,unescape:zl},Symbol.toStringTag,{value:"Module"})),HE={Parent:"child_features",Derives_from:"derived_features"};class VE{constructor(t){this.seqCallback=t,this.currentSequence=void 0}addLine(t){const n=/^>\s*(\S+)\s*(.*)/.exec(t);n?(this._flush(),this.currentSequence={id:n[1],sequence:""},n[2]&&(this.currentSequence.description=n[2].trim())):this.currentSequence&&/\S/.test(t)&&(this.currentSequence.sequence+=t.replace(/\s/g,""))}_flush(){this.currentSequence&&this.seqCallback(this.currentSequence)}finish(){this._flush()}}class jE{constructor(t){this.fastaParser=void 0,this.eof=!1,this.lineNumber=0,this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},this._underConstructionOrphans={};const n=()=>{};this.featureCallback=t.featureCallback||n,this.endCallback=t.endCallback||n,this.commentCallback=t.commentCallback||n,this.errorCallback=t.errorCallback||n,this.directiveCallback=t.directiveCallback||n,this.sequenceCallback=t.sequenceCallback||n,this.disableDerivesFromReferences=t.disableDerivesFromReferences||!1,this.bufferSize=t.bufferSize===void 0?1e3:t.bufferSize}addLine(t){if(this.fastaParser){this.fastaParser.addLine(t);return}if(this.eof)return;if(this.lineNumber+=1,/^\s*[^#\s>]/.test(t)){this._bufferLine(t);return}const n=/^\s*(#+)(.*)/.exec(t);if(n){const[,r]=n;let[,,i]=n;if(r.length===3)this._emitAllUnderConstructionFeatures();else if(r.length===2){const a=NE(t);a&&(a.directive==="FASTA"?(this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new VE(this.sequenceCallback)):this._emitItem(a))}else i=i.replace(/\s*/,""),this._emitItem({comment:i})}else if(!/^\s*$/.test(t))if(/^\s*>/.test(t))this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new VE(this.sequenceCallback),this.fastaParser.addLine(t);else{const r=t.replace(/\r?\n?$/g,"");throw new Error(`GFF3 parse error. Cannot parse '${r}'.`)}}finish(){this._emitAllUnderConstructionFeatures(),this.fastaParser&&this.fastaParser.finish(),this.endCallback()}_emitItem(t){Array.isArray(t)?this.featureCallback(t):"directive"in t?this.directiveCallback(t):"comment"in t&&this.commentCallback(t)}_enforceBufferSizeLimit(t=0){const n=r=>{r&&Array.isArray(r)&&r[0].attributes&&r[0].attributes.ID&&r[0].attributes.ID[0]&&(r[0].attributes.ID.forEach(a=>{delete this._underConstructionById[a],delete this._completedReferences[a]}),r.forEach(a=>{a.child_features&&a.child_features.forEach(o=>n(o)),a.derived_features&&a.derived_features.forEach(o=>n(o))}))};for(;this._underConstructionTopLevel.length+t>this.bufferSize;){const r=this._underConstructionTopLevel.shift();r&&(this._emitItem(r),n(r))}}_emitAllUnderConstructionFeatures(){if(this._underConstructionTopLevel.forEach(this._emitItem.bind(this)),this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},Array.from(Object.values(this._underConstructionOrphans)).length)throw new Error(`some features reference other features that do not exist in the file (or in the same '###' scope). ${Object.keys(this._underConstructionOrphans)}`)}_bufferLine(t){var n,r,i;const o={...LE(t),child_features:[],derived_features:[]},s=((n=o.attributes)===null||n===void 0?void 0:n.ID)||[],u=((r=o.attributes)===null||r===void 0?void 0:r.Parent)||[],l=this.disableDerivesFromReferences?[]:((i=o.attributes)===null||i===void 0?void 0:i.Derives_from)||[];if(!s.length&&!u.length&&!l.length){this._emitItem([o]);return}let f;s.forEach(c=>{const h=this._underConstructionById[c];h?(h[h.length-1].type!==o.type&&this._parseError(`multi-line feature "${c}" has inconsistent types: "${o.type}", "${h[h.length-1].type}"`),h.push(o),f=h):(f=[o],this._enforceBufferSizeLimit(1),!u.length&&!l.length&&this._underConstructionTopLevel.push(f),this._underConstructionById[c]=f,this._resolveReferencesTo(f,c))}),this._resolveReferencesFrom(f||[o],{Parent:u,Derives_from:l},s)}_resolveReferencesTo(t,n){const r=this._underConstructionOrphans[n];r&&(t.forEach(i=>{i.child_features.push(...r.Parent)}),t.forEach(i=>{i.derived_features.push(...r.Derives_from)}),delete this._underConstructionOrphans[n])}_parseError(t){this.eof=!0,this.errorCallback(`${this.lineNumber}: ${t}`)}_resolveReferencesFrom(t,n,r){function i(a,o,s){let u=a[o];u||(u={},a[o]=u);const l=u[s]||!1;return u[s]=!0,l}n.Parent.forEach(a=>{const o=this._underConstructionById[a];if(o){const s=HE.Parent;r.filter(u=>i(this._completedReferences,u,`Parent,${a}`)).length||o.forEach(u=>{u[s].push(t)})}else{let s=this._underConstructionOrphans[a];s||(s={Parent:[],Derives_from:[]},this._underConstructionOrphans[a]=s),s.Parent.push(t)}}),n.Derives_from.forEach(a=>{const o=this._underConstructionById[a];if(o){const s=HE.Derives_from;r.filter(u=>i(this._completedReferences,u,`Derives_from,${a}`)).length||o.forEach(u=>{u[s].push(t)})}else{let s=this._underConstructionOrphans[a];s||(s={Parent:[],Derives_from:[]},this._underConstructionOrphans[a]=s),s.Derives_from.push(t)}})}}function Fg(e){process&&process.nextTick?process.nextTick(e):e()}function qE(e){const t={encoding:"utf8",parseFeatures:!0,parseDirectives:!1,parseSequences:!0,parseComments:!1,bufferSize:1e3,disableDerivesFromReferences:!1,...e};return e.parseAll&&(t.parseFeatures=!0,t.parseDirectives=!0,t.parseComments=!0,t.parseSequences=!0),t}class Az extends RE.Transform{constructor(t={}){super({objectMode:!0}),this.textBuffer="";const n=qE(t);this.encoding=t.encoding||"utf8",this.decoder=new nz;const r=this.push.bind(this);this.parser=new jE({featureCallback:n.parseFeatures?r:void 0,directiveCallback:n.parseDirectives?r:void 0,commentCallback:n.parseComments?r:void 0,sequenceCallback:n.parseSequences?r:void 0,errorCallback:i=>this.emit("error",i),bufferSize:n.bufferSize,disableDerivesFromReferences:n.disableDerivesFromReferences})}_addLine(t){t&&this.parser.addLine(t)}_nextText(t){const n=(this.textBuffer+t).split(/\r?\n/);this.textBuffer=n.pop()||"",n.forEach(r=>this._addLine(r))}_transform(t,n,r){this._nextText(this.decoder.write(t)),Fg(r)}_flush(t){this.decoder.end&&this._nextText(this.decoder.end()),this.textBuffer!=null&&this._addLine(this.textBuffer),this.parser.finish(),Fg(t)}}function Ez(e={}){return new Az(e)}function _z(e,t={}){if(!e)return[];const n=qE(t),r=[],i=r.push.bind(r),a=new jE({featureCallback:n.parseFeatures?i:void 0,directiveCallback:n.parseDirectives?i:void 0,commentCallback:n.parseComments?i:void 0,sequenceCallback:n.parseSequences?i:void 0,disableDerivesFromReferences:n.disableDerivesFromReferences||!1,bufferSize:1/0,errorCallback:o=>{throw o}});return e.split(/\r?\n/).forEach(a.addLine.bind(a)),a.finish(),r}function Sz(e){const t=[],n=[];e.forEach(i=>{"sequence"in i?n.push(i):t.push(i)});let r=t.map(Mc).join("");return n.length&&(r+=`##FASTA
498
+ `,r+=n.map(Dg).join("")),r}class ZE extends RE.Transform{constructor(t={}){super(Object.assign(t,{objectMode:!0})),this.linesSinceLastSyncMark=0,this.haveWeEmittedData=!1,this.fastaMode=!1,this.minLinesBetweenSyncMarks=t.minSyncLines||100,this.insertVersionDirective=t.insertVersionDirective||!1}_transform(t,n,r){let i;if(!this.haveWeEmittedData&&this.insertVersionDirective){const a=Array.isArray(t)?t[0]:t;"directive"in a&&a.directive!=="gff-version"&&this.push(`##gff-version 3
494
499
  `)}if("sequence"in t&&!this.fastaMode&&(this.push(`##FASTA
495
- `),this.fastaMode=!0),Array.isArray(t)?i=t.map(Dc).join(""):i=Dc(t),this.push(i),this.linesSinceLastSyncMark>=this.minLinesBetweenSyncMarks)this.push(`###
496
- `),this.linesSinceLastSyncMark=0;else{let o=0;for(let a=0;a<i.length;a+=1)i[a]===`
497
- `&&(o+=1);this.linesSinceLastSyncMark+=o}this.haveWeEmittedData=!0,Tg(r)}}function mz(e={}){return new HE(e)}function bz(e,t,n={}){const r={insertVersionDirective:!0,...n};return new Promise((i,o)=>{e.pipe(new HE(r)).on("end",()=>i(null)).on("error",o).pipe(t)})}const yz=Object.freeze(Object.defineProperty({__proto__:null,default:{parseStream:dz,parseStringSync:pz,formatSync:gz,formatStream:mz,formatFile:bz,util:cz}},Symbol.toStringTag,{value:"Module"}));ce.GenomeSpy=Tw,ce.embed=$F,ce.favIcon=XF,ce.html=mn,ce.icon=QF,ce.loadSpec=Iw,Object.defineProperty(ce,Symbol.toStringTag,{value:"Module"})});
500
+ `),this.fastaMode=!0),Array.isArray(t)?i=t.map(Mc).join(""):i=Mc(t),this.push(i),this.linesSinceLastSyncMark>=this.minLinesBetweenSyncMarks)this.push(`###
501
+ `),this.linesSinceLastSyncMark=0;else{let a=0;for(let o=0;o<i.length;o+=1)i[o]===`
502
+ `&&(a+=1);this.linesSinceLastSyncMark+=a}this.haveWeEmittedData=!0,Fg(r)}}function Cz(e={}){return new ZE(e)}function Tz(e,t,n={}){const r={insertVersionDirective:!0,...n};return new Promise((i,a)=>{e.pipe(new ZE(r)).on("end",()=>i(null)).on("error",a).pipe(t)})}const kz=Object.freeze(Object.defineProperty({__proto__:null,default:{parseStream:Ez,parseStringSync:_z,formatSync:Sz,formatStream:Cz,formatFile:Tz,util:xz}},Symbol.toStringTag,{value:"Module"}));ce.GenomeSpy=Fw,ce.embed=sR,ce.favIcon=oR,ce.html=mn,ce.icon=aR,ce.loadSpec=Rw,Object.defineProperty(ce,Symbol.toStringTag,{value:"Module"})});