jbrowse-plugin-graphgenomeviewer 3.0.4 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +29 -2
  2. package/dist/chunks/GbzBaseSyntenyAdapter-MIOUYHOF.js +8 -0
  3. package/dist/chunks/GbzBaseSyntenyAdapter-MIOUYHOF.js.map +7 -0
  4. package/dist/chunks/GraphGenomeView-TM7WYDLH.js +14 -0
  5. package/dist/chunks/GraphGenomeView-TM7WYDLH.js.map +7 -0
  6. package/dist/chunks/MinigraphBubbleAdapter-A7SBF2XY.js +2 -0
  7. package/dist/chunks/MinigraphBubbleAdapter-A7SBF2XY.js.map +7 -0
  8. package/dist/chunks/RgfaTabixAdapter-7ZGKJJYW.js +3 -0
  9. package/dist/chunks/RgfaTabixAdapter-7ZGKJJYW.js.map +7 -0
  10. package/dist/chunks/{chunk-X3X74OGB.js → chunk-7T2HTRP3.js} +2 -2
  11. package/dist/chunks/{chunk-X3X74OGB.js.map → chunk-7T2HTRP3.js.map} +3 -3
  12. package/dist/chunks/{chunk-JCG7RLMB.js → chunk-HOM2Y6XS.js} +2 -2
  13. package/dist/chunks/chunk-HOM2Y6XS.js.map +7 -0
  14. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js +2 -2
  15. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js.map +4 -4
  16. package/package.json +21 -22
  17. package/src/GbzBaseSyntenyAdapter/GbzBaseSyntenyAdapter.test.ts +69 -0
  18. package/src/GbzBaseSyntenyAdapter/GbzBaseSyntenyAdapter.ts +13 -10
  19. package/src/GetSubgraph.ts +5 -1
  20. package/src/GraphGenomeView/components/FollowControl.test.tsx +69 -0
  21. package/src/GraphGenomeView/components/FollowControl.tsx +42 -0
  22. package/src/GraphGenomeView/components/GraphStats.tsx +1 -0
  23. package/src/GraphGenomeView/components/GraphToolbar.tsx +2 -0
  24. package/src/GraphGenomeView/follow.test.ts +624 -0
  25. package/src/GraphGenomeView/follow.ts +129 -0
  26. package/src/GraphGenomeView/layout/sampleRowLayout.test.ts +16 -0
  27. package/src/GraphGenomeView/layout/sampleRowLayout.ts +13 -4
  28. package/src/GraphGenomeView/layoutModes.ts +3 -1
  29. package/src/GraphGenomeView/model.ts +361 -55
  30. package/src/GraphGenomeView/types.ts +4 -0
  31. package/src/MinigraphBubbleAdapter/MinigraphBubbleAdapter.ts +1 -1
  32. package/src/RgfaTabixAdapter/RgfaTabixAdapter.test.ts +73 -0
  33. package/src/RgfaTabixAdapter/RgfaTabixAdapter.ts +48 -16
  34. package/src/RgfaTabixAdapter/configSchema.ts +70 -3
  35. package/src/RgfaTabixAdapter/test_data/rgfa_ecoli.tier1000.links.bed.gz +0 -0
  36. package/src/RgfaTabixAdapter/test_data/rgfa_ecoli.tier1000.links.bed.gz.tbi +0 -0
  37. package/src/RgfaTabixAdapter/test_data/rgfa_ecoli.tier1000.segs.bed.gz +0 -0
  38. package/src/RgfaTabixAdapter/test_data/rgfa_ecoli.tier1000.segs.bed.gz.tbi +0 -0
  39. package/src/launchSubgraph/index.ts +12 -6
  40. package/src/launchSubgraph/launchSubgraph.test.ts +89 -3
  41. package/src/launchSubgraph/launchSubgraphView.ts +14 -6
  42. package/src/launchSubgraph/linearViewMenuItems.ts +3 -0
  43. package/src/launchSubgraph/subgraphMenuItems.ts +7 -0
  44. package/src/launchSubgraph/testEnv.ts +2 -0
  45. package/src/panSNTabix.ts +6 -5
  46. package/src/synteny/ComparativeAdapterBase.ts +13 -10
  47. package/src/synteny/clipFeatureToRegion.test.ts +41 -1
  48. package/src/synteny/clipFeatureToRegion.ts +22 -5
  49. package/src/version.ts +1 -1
  50. package/dist/chunks/GbzBaseSyntenyAdapter-6UTRY4CV.js +0 -8
  51. package/dist/chunks/GbzBaseSyntenyAdapter-6UTRY4CV.js.map +0 -7
  52. package/dist/chunks/GraphGenomeView-UD5WCV3Q.js +0 -14
  53. package/dist/chunks/GraphGenomeView-UD5WCV3Q.js.map +0 -7
  54. package/dist/chunks/MinigraphBubbleAdapter-B75VQK7T.js +0 -2
  55. package/dist/chunks/MinigraphBubbleAdapter-B75VQK7T.js.map +0 -7
  56. package/dist/chunks/RgfaTabixAdapter-IT7I5RR3.js +0 -3
  57. package/dist/chunks/RgfaTabixAdapter-IT7I5RR3.js.map +0 -7
  58. package/dist/chunks/chunk-JCG7RLMB.js.map +0 -7
@@ -1,2 +1,2 @@
1
- import{a as Di}from"./chunk-TN6FK5UD.js";import{a as Ni}from"./chunk-KWAXLUPQ.js";import{a as Pe,b as We,c as Ie,d as je,e as oe}from"./chunk-F4C3BEPV.js";import{b as ze}from"./chunk-FY3BTKY4.js";var Qe=0;var ae=2;var DA=4;var eA=0,NA=1,Oe=2;var Ve=-5;function yi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function $e(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var A=e.shift();if(A){if(typeof A!="object")throw new TypeError(A+"must be non-object");for(var i in A)yi(A,i)&&(t[i]=A[i])}}return t}function vA(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)}var yA={arraySet:function(t,e,A,i,g){if(e.subarray&&t.subarray){t.set(e.subarray(A,A+i),g);return}for(var n=0;n<i;n++)t[g+n]=e[A+n]},flattenChunks:function(t){var e,A,i,g,n,a;for(i=0,e=0,A=t.length;e<A;e++)i+=t[e].length;for(a=new Uint8Array(i),g=0,e=0,A=t.length;e<A;e++)n=t[e],a.set(n,g),g+=n.length;return a},Buf8:function(t){return new Uint8Array(t)},Buf16:function(t){return new Uint16Array(t)},Buf32:function(t){return new Int32Array(t)}},mA={arraySet:function(t,e,A,i,g){for(var n=0;n<i;n++)t[g+n]=e[A+n]},flattenChunks:function(t){return[].concat.apply([],t)},Buf8:function(t){return new Array(t)},Buf16:function(t){return new Array(t)},Buf32:function(t){return new Array(t)}},fA=()=>{let t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";return fA=()=>t,t},z=(t,e,A,i,g)=>(z=fA()?yA.arraySet:mA.arraySet,z(t,e,A,i,g)),_A=t=>(_A=fA()?yA.flattenChunks:mA.flattenChunks,_A(t)),W=t=>(W=fA()?yA.Buf8:mA.Buf8,W(t)),tA=t=>(tA=fA()?yA.Buf16:mA.Buf16,tA(t)),IA=t=>(IA=fA()?yA.Buf32:mA.Buf32,IA(t));var At=function(){let t=!0;try{String.fromCharCode.apply(null,[0])}catch{t=!1}return At=()=>t,t},et=function(){let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{t=!1}return et=()=>t,t},re=function(t){for(var e=W(256),A=0;A<256;A++)e[A]=A>=252?6:A>=248?5:A>=240?4:A>=224?3:A>=192?2:1;return e[254]=e[254]=1,re=i=>e[i],e[t]};function Ce(t){var e,A,i,g,n,a=t.length,Q=0;for(g=0;g<a;g++)A=t.charCodeAt(g),(A&64512)===55296&&g+1<a&&(i=t.charCodeAt(g+1),(i&64512)===56320&&(A=65536+(A-55296<<10)+(i-56320),g++)),Q+=A<128?1:A<2048?2:A<65536?3:4;for(e=new Uint8Array(Q),n=0,g=0;n<Q;g++)A=t.charCodeAt(g),(A&64512)===55296&&g+1<a&&(i=t.charCodeAt(g+1),(i&64512)===56320&&(A=65536+(A-55296<<10)+(i-56320),g++)),A<128?e[n++]=A:A<2048?(e[n++]=192|A>>>6,e[n++]=128|A&63):A<65536?(e[n++]=224|A>>>12,e[n++]=128|A>>>6&63,e[n++]=128|A&63):(e[n++]=240|A>>>18,e[n++]=128|A>>>12&63,e[n++]=128|A>>>6&63,e[n++]=128|A&63);return e}function mi(t,e){if(e<65534&&(t.subarray&&et()||!t.subarray&&At()))return String.fromCharCode.apply(null,vA(t,e));for(var A="",i=0;i<e;i++)A+=String.fromCharCode(t[i]);return A}function tt(t){for(var e=new Uint8Array(t.length),A=0,i=e.length;A<i;A++)e[A]=t.charCodeAt(A);return e}function it(t,e){var A,i,g,n,a=e||t.length,Q=new Array(a*2);for(i=0,A=0;A<a;){if(g=t[A++],g<128){Q[i++]=g;continue}if(n=re(g),n>4){Q[i++]=65533,A+=n-1;continue}for(g&=n===2?31:n===3?15:7;n>1&&A<a;)g=g<<6|t[A++]&63,n--;if(n>1){Q[i++]=65533;continue}g<65536?Q[i++]=g:(g-=65536,Q[i++]=55296|g>>10&1023,Q[i++]=56320|g&1023)}return mi(Q,i)}function gt(t,e){var A;for(e=e||t.length,e>t.length&&(e=t.length),A=e-1;A>=0&&(t[A]&192)===128;)A--;return A<0||A===0?e:A+re(t[A])>e?A:e}function Be(){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}function pA(t,e,A,i){for(var g=t&65535|0,n=t>>>16&65535|0,a=0;A!==0;){a=A>2e3?2e3:A,A-=a;do g=g+e[i++]|0,n=n+g|0;while(--a);g%=65521,n%=65521}return g|n<<16|0}function pi(){for(var t,e=[],A=0;A<256;A++){t=A;for(var i=0;i<8;i++)t=t&1?3988292384^t>>>1:t>>>1;e[A]=t}return e}var nt=function(){let t=pi();return nt=()=>t,t};function Y(t,e,A,i){var g=nt(),n=i+A;t^=-1;for(var a=i;a<n;a++)t=t>>>8^g[(t^e[a])&255];return t^-1}var LA=30,Fi=12;function se(t,e){var A,i,g,n,a,Q,r,I,o,l,E,C,f,m,w,u,D,h,B,k,F,c,y,N,d;A=t.state,i=t.next_in,N=t.input,g=i+(t.avail_in-5),n=t.next_out,d=t.output,a=n-(e-t.avail_out),Q=n+(t.avail_out-257),r=A.dmax,I=A.wsize,o=A.whave,l=A.wnext,E=A.window,C=A.hold,f=A.bits,m=A.lencode,w=A.distcode,u=(1<<A.lenbits)-1,D=(1<<A.distbits)-1;A:do{f<15&&(C+=N[i++]<<f,f+=8,C+=N[i++]<<f,f+=8),h=m[C&u];e:for(;;){if(B=h>>>24,C>>>=B,f-=B,B=h>>>16&255,B===0)d[n++]=h&65535;else if(B&16){k=h&65535,B&=15,B&&(f<B&&(C+=N[i++]<<f,f+=8),k+=C&(1<<B)-1,C>>>=B,f-=B),f<15&&(C+=N[i++]<<f,f+=8,C+=N[i++]<<f,f+=8),h=w[C&D];t:for(;;){if(B=h>>>24,C>>>=B,f-=B,B=h>>>16&255,B&16){if(F=h&65535,B&=15,f<B&&(C+=N[i++]<<f,f+=8,f<B&&(C+=N[i++]<<f,f+=8)),F+=C&(1<<B)-1,F>r){t.msg="invalid distance too far back",A.mode=LA;break A}if(C>>>=B,f-=B,B=n-a,F>B){if(B=F-B,B>o&&A.sane){t.msg="invalid distance too far back",A.mode=LA;break A}if(c=0,y=E,l===0){if(c+=I-B,B<k){k-=B;do d[n++]=E[c++];while(--B);c=n-F,y=d}}else if(l<B){if(c+=I+l-B,B-=l,B<k){k-=B;do d[n++]=E[c++];while(--B);if(c=0,l<k){B=l,k-=B;do d[n++]=E[c++];while(--B);c=n-F,y=d}}}else if(c+=l-B,B<k){k-=B;do d[n++]=E[c++];while(--B);c=n-F,y=d}for(;k>2;)d[n++]=y[c++],d[n++]=y[c++],d[n++]=y[c++],k-=3;k&&(d[n++]=y[c++],k>1&&(d[n++]=y[c++]))}else{c=n-F;do d[n++]=d[c++],d[n++]=d[c++],d[n++]=d[c++],k-=3;while(k>2);k&&(d[n++]=d[c++],k>1&&(d[n++]=d[c++]))}}else if((B&64)===0){h=w[(h&65535)+(C&(1<<B)-1)];continue t}else{t.msg="invalid distance code",A.mode=LA;break A}break}}else if((B&64)===0){h=m[(h&65535)+(C&(1<<B)-1)];continue e}else if(B&32){A.mode=Fi;break A}else{t.msg="invalid literal/length code",A.mode=LA;break A}break}}while(i<g&&n<Q);k=f>>3,i-=k,f-=k<<3,C&=(1<<f)-1,t.next_in=i,t.next_out=n,t.avail_in=i<g?5+(g-i):5-(i-g),t.avail_out=n<Q?257+(Q-n):257-(n-Q),A.hold=C,A.bits=f}var hA=15,It=852,ot=592,Qt=0,Ee=1,at=2,xi=[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],bi=[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],Ji=[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],Si=[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];function oA(t,e,A,i,g,n,a,Q){var r=Q.bits,I=0,o=0,l=0,E=0,C=0,f=0,m=0,w=0,u=0,D=0,h,B,k,F,c,y=null,N=0,d,p=tA(hA+1),R=tA(hA+1),v=null,X=0,AA,L,cA;for(I=0;I<=hA;I++)p[I]=0;for(o=0;o<i;o++)p[e[A+o]]++;for(C=r,E=hA;E>=1&&p[E]===0;E--);if(C>E&&(C=E),E===0)return g[n++]=1<<24|64<<16|0,g[n++]=1<<24|64<<16|0,Q.bits=1,0;for(l=1;l<E&&p[l]===0;l++);for(C<l&&(C=l),w=1,I=1;I<=hA;I++)if(w<<=1,w-=p[I],w<0)return-1;if(w>0&&(t===Qt||E!==1))return-1;for(R[1]=0,I=1;I<hA;I++)R[I+1]=R[I]+p[I];for(o=0;o<i;o++)e[A+o]!==0&&(a[R[e[A+o]]++]=o);if(t===Qt?(y=v=a,d=19):t===Ee?(y=xi,N-=257,v=bi,X-=257,d=256):(y=Ji,v=Si,d=-1),D=0,o=0,I=l,c=n,f=C,m=0,k=-1,u=1<<C,F=u-1,t===Ee&&u>It||t===at&&u>ot)return 1;for(;;){AA=I-m,a[o]<d?(L=0,cA=a[o]):a[o]>d?(L=v[X+a[o]],cA=y[N+a[o]]):(L=96,cA=0),h=1<<I-m,B=1<<f,l=B;do B-=h,g[c+(D>>m)+B]=AA<<24|L<<16|cA|0;while(B!==0);for(h=1<<I-1;D&h;)h>>=1;if(h!==0?(D&=h-1,D+=h):D=0,o++,--p[I]===0){if(I===E)break;I=e[A+a[o]]}if(I>C&&(D&F)!==k){for(m===0&&(m=C),c+=l,f=I-m,w=1<<f;f+m<E&&(w-=p[f+m],!(w<=0));)f++,w<<=1;if(u+=1<<f,t===Ee&&u>It||t===at&&u>ot)return 1;k=D&F,g[k]=C<<24|f<<16|c-n|0}}return D!==0&&(g[c+D]=I-m<<24|64<<16|0),Q.bits=C,0}var Gi=0,_t=1,vt=2,rt=4,Ri=5,MA=6,QA=0,_i=1,vi=2,H=-2,Lt=-3,ue=-4,Li=-5,Ct=8,Mt=1,Bt=2,st=3,Et=4,ct=5,ft=6,ht=7,lt=8,dt=9,ut=10,HA=11,j=12,ce=13,wt=14,fe=15,kt=16,Dt=17,Nt=18,yt=19,UA=20,YA=21,mt=22,pt=23,Ft=24,xt=25,bt=26,he=27,Jt=28,St=29,S=30,we=31,Mi=32,Ui=852,Yi=592;function Gt(t){return(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24)}function Hi(){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=tA(320),this.work=tA(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Ki(t){var e;return!t||!t.state?H:(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=Mt,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=IA(Ui),e.distcode=e.distdyn=IA(Yi),e.sane=1,e.back=-1,QA)}function qi(t){var e;return!t||!t.state?H:(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,Ki(t))}function Ti(t,e){var A,i;return!t||!t.state||(i=t.state,e<0?(A=0,e=-e):(A=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15))?H:(i.window!==null&&i.wbits!==e&&(i.window=null),i.wrap=A,i.wbits=e,qi(t))}function Ut(t,e){var A,i;return t?(i=new Hi,t.state=i,i.window=null,A=Ti(t,e),A!==QA&&(t.state=null),A):H}var Rt=!0,le,de;function Zi(t){if(Rt){var e;for(le=IA(512),de=IA(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(oA(_t,t.lens,0,288,le,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;oA(vt,t.lens,0,32,de,0,t.work,{bits:5}),Rt=!1}t.lencode=le,t.lenbits=9,t.distcode=de,t.distbits=5}function Yt(t,e,A,i){var g,n=t.state;return n.window===null&&(n.wsize=1<<n.wbits,n.wnext=0,n.whave=0,n.window=W(n.wsize)),i>=n.wsize?(z(n.window,e,A-n.wsize,n.wsize,0),n.wnext=0,n.whave=n.wsize):(g=n.wsize-n.wnext,g>i&&(g=i),z(n.window,e,A-i,g,n.wnext),i-=g,i?(z(n.window,e,A-i,i,0),n.wnext=i,n.whave=n.wsize):(n.wnext+=g,n.wnext===n.wsize&&(n.wnext=0),n.whave<n.wsize&&(n.whave+=g))),0}function Ht(t,e){var A,i,g,n,a,Q,r,I,o,l,E,C,f,m,w=0,u,D,h,B,k,F,c,y,N=W(4),d,p,R=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&t.avail_in!==0)return H;A=t.state,A.mode===j&&(A.mode=ce),a=t.next_out,g=t.output,r=t.avail_out,n=t.next_in,i=t.input,Q=t.avail_in,I=A.hold,o=A.bits,l=Q,E=r,y=QA;A:for(;;)switch(A.mode){case Mt:if(A.wrap===0){A.mode=ce;break}for(;o<16;){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}if(A.wrap&2&&I===35615){A.check=0,N[0]=I&255,N[1]=I>>>8&255,A.check=Y(A.check,N,2,0),I=0,o=0,A.mode=Bt;break}if(A.flags=0,A.head&&(A.head.done=!1),!(A.wrap&1)||(((I&255)<<8)+(I>>8))%31){t.msg="incorrect header check",A.mode=S;break}if((I&15)!==Ct){t.msg="unknown compression method",A.mode=S;break}if(I>>>=4,o-=4,c=(I&15)+8,A.wbits===0)A.wbits=c;else if(c>A.wbits){t.msg="invalid window size",A.mode=S;break}A.dmax=1<<c,t.adler=A.check=1,A.mode=I&512?ut:j,I=0,o=0;break;case Bt:for(;o<16;){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}if(A.flags=I,(A.flags&255)!==Ct){t.msg="unknown compression method",A.mode=S;break}if(A.flags&57344){t.msg="unknown header flags set",A.mode=S;break}A.head&&(A.head.text=I>>8&1),A.flags&512&&(N[0]=I&255,N[1]=I>>>8&255,A.check=Y(A.check,N,2,0)),I=0,o=0,A.mode=st;case st:for(;o<32;){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}A.head&&(A.head.time=I),A.flags&512&&(N[0]=I&255,N[1]=I>>>8&255,N[2]=I>>>16&255,N[3]=I>>>24&255,A.check=Y(A.check,N,4,0)),I=0,o=0,A.mode=Et;case Et:for(;o<16;){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}A.head&&(A.head.xflags=I&255,A.head.os=I>>8),A.flags&512&&(N[0]=I&255,N[1]=I>>>8&255,A.check=Y(A.check,N,2,0)),I=0,o=0,A.mode=ct;case ct:if(A.flags&1024){for(;o<16;){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}A.length=I,A.head&&(A.head.extra_len=I),A.flags&512&&(N[0]=I&255,N[1]=I>>>8&255,A.check=Y(A.check,N,2,0)),I=0,o=0}else A.head&&(A.head.extra=null);A.mode=ft;case ft:if(A.flags&1024&&(C=A.length,C>Q&&(C=Q),C&&(A.head&&(c=A.head.extra_len-A.length,A.head.extra||(A.head.extra=new Array(A.head.extra_len)),z(A.head.extra,i,n,C,c)),A.flags&512&&(A.check=Y(A.check,i,C,n)),Q-=C,n+=C,A.length-=C),A.length))break A;A.length=0,A.mode=ht;case ht:if(A.flags&2048){if(Q===0)break A;C=0;do c=i[n+C++],A.head&&c&&A.length<65536&&(A.head.name+=String.fromCharCode(c));while(c&&C<Q);if(A.flags&512&&(A.check=Y(A.check,i,C,n)),Q-=C,n+=C,c)break A}else A.head&&(A.head.name=null);A.length=0,A.mode=lt;case lt:if(A.flags&4096){if(Q===0)break A;C=0;do c=i[n+C++],A.head&&c&&A.length<65536&&(A.head.comment+=String.fromCharCode(c));while(c&&C<Q);if(A.flags&512&&(A.check=Y(A.check,i,C,n)),Q-=C,n+=C,c)break A}else A.head&&(A.head.comment=null);A.mode=dt;case dt:if(A.flags&512){for(;o<16;){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}if(I!==(A.check&65535)){t.msg="header crc mismatch",A.mode=S;break}I=0,o=0}A.head&&(A.head.hcrc=A.flags>>9&1,A.head.done=!0),t.adler=A.check=0,A.mode=j;break;case ut:for(;o<32;){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}t.adler=A.check=Gt(I),I=0,o=0,A.mode=HA;case HA:if(A.havedict===0)return t.next_out=a,t.avail_out=r,t.next_in=n,t.avail_in=Q,A.hold=I,A.bits=o,vi;t.adler=A.check=1,A.mode=j;case j:if(e===Ri||e===MA)break A;case ce:if(A.last){I>>>=o&7,o-=o&7,A.mode=he;break}for(;o<3;){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}switch(A.last=I&1,I>>>=1,o-=1,I&3){case 0:A.mode=wt;break;case 1:if(Zi(A),A.mode=UA,e===MA){I>>>=2,o-=2;break A}break;case 2:A.mode=Dt;break;case 3:t.msg="invalid block type",A.mode=S}I>>>=2,o-=2;break;case wt:for(I>>>=o&7,o-=o&7;o<32;){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}if((I&65535)!==(I>>>16^65535)){t.msg="invalid stored block lengths",A.mode=S;break}if(A.length=I&65535,I=0,o=0,A.mode=fe,e===MA)break A;case fe:A.mode=kt;case kt:if(C=A.length,C){if(C>Q&&(C=Q),C>r&&(C=r),C===0)break A;z(g,i,n,C,a),Q-=C,n+=C,r-=C,a+=C,A.length-=C;break}A.mode=j;break;case Dt:for(;o<14;){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}if(A.nlen=(I&31)+257,I>>>=5,o-=5,A.ndist=(I&31)+1,I>>>=5,o-=5,A.ncode=(I&15)+4,I>>>=4,o-=4,A.nlen>286||A.ndist>30){t.msg="too many length or distance symbols",A.mode=S;break}A.have=0,A.mode=Nt;case Nt:for(;A.have<A.ncode;){for(;o<3;){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}A.lens[R[A.have++]]=I&7,I>>>=3,o-=3}for(;A.have<19;)A.lens[R[A.have++]]=0;if(A.lencode=A.lendyn,A.lenbits=7,d={bits:A.lenbits},y=oA(Gi,A.lens,0,19,A.lencode,0,A.work,d),A.lenbits=d.bits,y){t.msg="invalid code lengths set",A.mode=S;break}A.have=0,A.mode=yt;case yt:for(;A.have<A.nlen+A.ndist;){for(;w=A.lencode[I&(1<<A.lenbits)-1],u=w>>>24,D=w>>>16&255,h=w&65535,!(u<=o);){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}if(h<16)I>>>=u,o-=u,A.lens[A.have++]=h;else{if(h===16){for(p=u+2;o<p;){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}if(I>>>=u,o-=u,A.have===0){t.msg="invalid bit length repeat",A.mode=S;break}c=A.lens[A.have-1],C=3+(I&3),I>>>=2,o-=2}else if(h===17){for(p=u+3;o<p;){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}I>>>=u,o-=u,c=0,C=3+(I&7),I>>>=3,o-=3}else{for(p=u+7;o<p;){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}I>>>=u,o-=u,c=0,C=11+(I&127),I>>>=7,o-=7}if(A.have+C>A.nlen+A.ndist){t.msg="invalid bit length repeat",A.mode=S;break}for(;C--;)A.lens[A.have++]=c}}if(A.mode===S)break;if(A.lens[256]===0){t.msg="invalid code -- missing end-of-block",A.mode=S;break}if(A.lenbits=9,d={bits:A.lenbits},y=oA(_t,A.lens,0,A.nlen,A.lencode,0,A.work,d),A.lenbits=d.bits,y){t.msg="invalid literal/lengths set",A.mode=S;break}if(A.distbits=6,A.distcode=A.distdyn,d={bits:A.distbits},y=oA(vt,A.lens,A.nlen,A.ndist,A.distcode,0,A.work,d),A.distbits=d.bits,y){t.msg="invalid distances set",A.mode=S;break}if(A.mode=UA,e===MA)break A;case UA:A.mode=YA;case YA:if(Q>=6&&r>=258){t.next_out=a,t.avail_out=r,t.next_in=n,t.avail_in=Q,A.hold=I,A.bits=o,se(t,E),a=t.next_out,g=t.output,r=t.avail_out,n=t.next_in,i=t.input,Q=t.avail_in,I=A.hold,o=A.bits,A.mode===j&&(A.back=-1);break}for(A.back=0;w=A.lencode[I&(1<<A.lenbits)-1],u=w>>>24,D=w>>>16&255,h=w&65535,!(u<=o);){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}if(D&&(D&240)===0){for(B=u,k=D,F=h;w=A.lencode[F+((I&(1<<B+k)-1)>>B)],u=w>>>24,D=w>>>16&255,h=w&65535,!(B+u<=o);){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}I>>>=B,o-=B,A.back+=B}if(I>>>=u,o-=u,A.back+=u,A.length=h,D===0){A.mode=bt;break}if(D&32){A.back=-1,A.mode=j;break}if(D&64){t.msg="invalid literal/length code",A.mode=S;break}A.extra=D&15,A.mode=mt;case mt:if(A.extra){for(p=A.extra;o<p;){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}A.length+=I&(1<<A.extra)-1,I>>>=A.extra,o-=A.extra,A.back+=A.extra}A.was=A.length,A.mode=pt;case pt:for(;w=A.distcode[I&(1<<A.distbits)-1],u=w>>>24,D=w>>>16&255,h=w&65535,!(u<=o);){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}if((D&240)===0){for(B=u,k=D,F=h;w=A.distcode[F+((I&(1<<B+k)-1)>>B)],u=w>>>24,D=w>>>16&255,h=w&65535,!(B+u<=o);){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}I>>>=B,o-=B,A.back+=B}if(I>>>=u,o-=u,A.back+=u,D&64){t.msg="invalid distance code",A.mode=S;break}A.offset=h,A.extra=D&15,A.mode=Ft;case Ft:if(A.extra){for(p=A.extra;o<p;){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}A.offset+=I&(1<<A.extra)-1,I>>>=A.extra,o-=A.extra,A.back+=A.extra}if(A.offset>A.dmax){t.msg="invalid distance too far back",A.mode=S;break}A.mode=xt;case xt:if(r===0)break A;if(C=E-r,A.offset>C){if(C=A.offset-C,C>A.whave&&A.sane){t.msg="invalid distance too far back",A.mode=S;break}C>A.wnext?(C-=A.wnext,f=A.wsize-C):f=A.wnext-C,C>A.length&&(C=A.length),m=A.window}else m=g,f=a-A.offset,C=A.length;C>r&&(C=r),r-=C,A.length-=C;do g[a++]=m[f++];while(--C);A.length===0&&(A.mode=YA);break;case bt:if(r===0)break A;g[a++]=A.length,r--,A.mode=YA;break;case he:if(A.wrap){for(;o<32;){if(Q===0)break A;Q--,I|=i[n++]<<o,o+=8}if(E-=r,t.total_out+=E,A.total+=E,E&&(t.adler=A.check=A.flags?Y(A.check,g,E,a-E):pA(A.check,g,E,a-E)),E=r,(A.flags?I:Gt(I))!==A.check){t.msg="incorrect data check",A.mode=S;break}I=0,o=0}A.mode=Jt;case Jt:if(A.wrap&&A.flags){for(;o<32;){if(Q===0)break A;Q--,I+=i[n++]<<o,o+=8}if(I!==(A.total&4294967295)){t.msg="incorrect length check",A.mode=S;break}I=0,o=0}A.mode=St;case St:y=_i;break A;case S:y=Lt;break A;case we:return ue;case Mi:default:return H}return t.next_out=a,t.avail_out=r,t.next_in=n,t.avail_in=Q,A.hold=I,A.bits=o,(A.wsize||E!==t.avail_out&&A.mode<S&&(A.mode<he||e!==rt))&&Yt(t,t.output,t.next_out,E-t.avail_out)?(A.mode=we,ue):(l-=t.avail_in,E-=t.avail_out,t.total_in+=l,t.total_out+=E,A.total+=E,A.wrap&&E&&(t.adler=A.check=A.flags?Y(A.check,g,E,t.next_out-E):pA(A.check,g,E,t.next_out-E)),t.data_type=A.bits+(A.last?64:0)+(A.mode===j?128:0)+(A.mode===UA||A.mode===fe?256:0),(l===0&&E===0||e===rt)&&y===QA&&(y=Li),y)}function Kt(t){if(!t||!t.state)return H;var e=t.state;return e.window&&(e.window=null),t.state=null,QA}function qt(t,e){var A;return!t||!t.state||(A=t.state,(A.wrap&2)===0)?H:(A.head=e,e.done=!1,QA)}function ke(t,e){var A=e.length,i,g,n;return!t||!t.state||(i=t.state,i.wrap!==0&&i.mode!==HA)?H:i.mode===HA&&(g=1,g=pA(g,e,A,0),g!==i.check)?Lt:(n=Yt(t,e,A,A),n?(i.mode=we,ue):(i.havedict=1,QA))}var KA={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"};function De(){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 Ne=Object.prototype.toString,ye=class t{constructor(e){if(!(this instanceof t))return new t(e);this.options=$e({chunkSize:16384,windowBits:0,to:""},e||{});var A=this.options;A.raw&&A.windowBits>=0&&A.windowBits<16&&(A.windowBits=-A.windowBits,A.windowBits===0&&(A.windowBits=-15)),A.windowBits>=0&&A.windowBits<16&&!(e&&e.windowBits)&&(A.windowBits+=32),A.windowBits>15&&A.windowBits<48&&(A.windowBits&15)===0&&(A.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new De,this.strm.avail_out=0;var i=Ut(this.strm,A.windowBits);if(i!==eA)throw new Error(KA[i]);if(this.header=new Be,qt(this.strm,this.header),A.dictionary&&(typeof A.dictionary=="string"?A.dictionary=Ce(A.dictionary):Ne.call(A.dictionary)==="[object ArrayBuffer]"&&(A.dictionary=new Uint8Array(A.dictionary)),A.raw&&(i=ke(this.strm,A.dictionary),i!==eA)))throw new Error(KA[i])}push(e,A){var i=this.strm,g=this.options.chunkSize,n=this.options.dictionary,a,Q,r,I,o,l,E=!1;if(this.ended)return!1;Q=A===~~A?A:A===!0?DA:Qe,typeof e=="string"?i.input=tt(e):Ne.call(e)==="[object ArrayBuffer]"?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(i.avail_out===0&&(i.output=W(g),i.next_out=0,i.avail_out=g),a=Ht(i,Qe),a===Oe&&n&&(typeof n=="string"?l=Ce(n):Ne.call(n)==="[object ArrayBuffer]"?l=new Uint8Array(n):l=n,a=ke(this.strm,l)),a===Ve&&E===!0&&(a=eA,E=!1),a!==NA&&a!==eA)return this.onEnd(a),this.ended=!0,!1;i.next_out&&(i.avail_out===0||a===NA||i.avail_in===0&&(Q===DA||Q===ae))&&(this.options.to==="string"?(r=gt(i.output,i.next_out),I=i.next_out-r,o=it(i.output,r),i.next_out=I,i.avail_out=g-I,I&&z(i.output,i.output,r,I,0),this.onData(o)):this.onData(vA(i.output,i.next_out))),i.avail_in===0&&i.avail_out===0&&(E=!0)}while((i.avail_in>0||i.avail_out===0)&&a!==NA);return a===NA&&(Q=DA),Q===DA?(a=Kt(this.strm),this.onEnd(a),this.ended=!0,a===eA):(Q===ae&&(this.onEnd(eA),i.avail_out=0),!0)}onData(e){this.chunks.push(e)}onEnd(e){e===eA&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=_A(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg}};function Xi(t,e){var A=new ye(e);if(A.push(t,!0),A.err)throw A.msg||KA[A.err];return A.result}var Tt=Xi;function Zt(t,e,A){let i=[],g=0,n=e;for(;g+26<=t.length&&!(t[g]!==31||t[g+1]!==139||t[g+2]!==8||t[g+3]!==4||t[g+10]!==6||t[g+12]!==66||t[g+13]!==67);){let a=(t[g+16]|t[g+17]<<8)+1;if(a<26||g+a>t.length)break;let Q=g+a-8,r=(t[Q+4]|t[Q+5]<<8|t[Q+6]<<16|t[Q+7]<<24)>>>0;if(i.push({inputOffset:g,compressedSize:a,decompressedSize:r,filePosition:n}),n>=A)break;g+=a,n+=a}return i}function Xt(t){let e=0;for(let g of t)e+=g.length;let A=new Uint8Array(e),i=0;for(let g of t)A.set(g,i),i+=g.length;return A}var iA={};iA.d=(t,e)=>{if(Array.isArray(e))for(var A=0;A<e.length;){var i=e[A++],g=e[A++];iA.o(t,i)?g===0&&A++:g===0?Object.defineProperty(t,i,{enumerable:!0,value:e[A++]}):Object.defineProperty(t,i,{enumerable:!0,get:g})}else for(var i in e)iA.o(e,i)&&!iA.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})};iA.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);iA.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var Fe={};iA.r(Fe);iA.d(Fe,{ChunkSliceResult:()=>dA,__wbg_Error_92b29b0548f8b746:()=>Pi,__wbg___wbindgen_throw_344f42d3211c4765:()=>Wi,__wbg_set_wasm:()=>ei,decompress_all:()=>Wt,decompress_chunk_slice:()=>jt});var zi="data:application/wasm;base64,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AghBAUEAEBUACywCAX8BfiMAQRBrIgEkACAAKQIAIQIgASAANgIMIAEgAjcCBCABQQRqEGYACyMBAX8jAEEQayICJAAgAiABNgIMIAIgADYCCCACQQhqEGUACyAAAkAgASgCAEUNACAAQbiXwAA2AgQgACABNgIADwsACx4BAX8CQCAAKAIAIgJFDQAgASACIAAoAgQQTQ8LAAsbAQF/EGogAEEEakEEEFgiASAANgIAIAFBBGoLHgEBfwJAIAAoAgAiAUEBSA0AIAAoAgQgAUEBEFMLCx4AIAAoAgAgACgCBEEAKALomkAiAEEEIAAbEQQAAAsjAQF/AkBBhIrAABAtIgANAEG4icAAQTpB9InAABA4AAsgAAsXAAJAIABBf2pBfk8NACABIABBARBTCwscAQF/AkAgACgCACIBRQ0AIAAoAgQgAUEBEFMLCxcAAkAgAUEJSQ0AIAEgABAODwsgABACCxUAIABBfGoiACAAKAIAQQRqQQQQUwsUAAJAIABFDQAgACABEF8ACxBWAAsRACAAIAFBAXRBAXIgAhAxAAsSAAJAIAFFDQAgACABIAIQUwsLEgAgACABIAIgAyAEQQAgBRADCxUAAkAgAEUNACAAIAAoAqhaEQIACwsaACAAQQApAoSWQDcCCCAAQQApAvyVQDcCAAsaACAAQQApAvSVQDcCCCAAQQApAuyVQDcCAAsWACAAKAIAIAEgAiAAKAIEKAIMEQcACw0AIAAgASACIAMQBw8LFABBACAANgK8mkBBAEEBNgK4mkALEwAgAEG4l8AANgIEIAAgATYCAAsQACABIAAoAgAgACgCBBBNCxAAIAEgACgCACAAKAIEEAoLCwAgACABIAIQKg8LCgAgACABEGkaAAsPACAAQZyVwAAgASACEAwLEQBBkJjAAEEjQaSYwAAQMQALCwAgACMAaiQAIwALCQAgACABEEQPCwkAIAAgARAuDwsJACAAIAEQYQALDABBr4fAAEEbEFoACw0AQcqHwABBzwAQWgALCQAgASAAEDsACwwAIAAgASkCADcDAAsJACABIAAQXQALDQAgAUH8mcAAQRgQCgsIACAAIAEQAAsIACAAIAEQAQsJACAAKAIAEEoLBwAgABA5AAsHACAAEEAACwcAIAAQJgALCwBBAEEBOgDAnkALCQAgAEEANgIACwUAEGsACwMADwsDAAALAgALC74aAgBBgIDAAAuUGkF0dGVtcHRlZCB0byBpbml0aWFsaXplIHRocmVhZC1sb2NhbCB3aGlsZSBpdCBpcyBiZWluZyBkcm9wcGVkFnNsaWNlIGluZGV4IHN0YXJ0cyBhdCDADSBidXQgZW5kcyBhdCDAABJyYW5nZSBzdGFydCBpbmRleCDAIiBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCDAABByYW5nZSBlbmQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAvcnVzdGMvOGJhYjI2ZjRmNjhlMGUyNmYwYmI3OTYwYmUzMzRkNWI1MjBlYTQ1Mi9saWJyYXJ5L3N0ZC9zcmMvc3lzL3RocmVhZF9sb2NhbC9ub190aHJlYWRzLnJzAC9ydXN0Yy84YmFiMjZmNGY2OGUwZTI2ZjBiYjc5NjBiZTMzNGQ1YjUyMGVhNDUyL2xpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9yd2xvY2svbm9fdGhyZWFkcy5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi93YXNtLWJpbmRnZW4tMC4yLjEyNi9zcmMvZXh0ZXJucmVmLnJzAC9ydXN0Yy84YmFiMjZmNGY2OGUwZTI2ZjBiYjc5NjBiZTMzNGQ1YjUyMGVhNDUyL2xpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMvbW9kLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjEzL3NyYy9kbG1hbGxvYy5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9saWJkZWZsYXRlci0xLjI1LjIvc3JjL2xpYi5ycwAA1gAQAF4AAABrAAAADQAAAMwCEAAKAAAAHAAAACQAAADMAhAACgAAAMIAAAApAAAAzAIQAAoAAAC2AAAAJwAAAMwCEAAKAAAAcQAAABwAAADMAhAACgAAAG0AAABBAAAAZGVjb21wcmVzc2lvbiBmYWlsZWRpbnZhbGlkIGJnemYgaGVhZGVyAMwCEAAKAAAATAAAAD0A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",dA=class t{static __wrap(e){let A=Object.create(t.prototype);return A.__wbg_ptr=e,zt.register(A,A.__wbg_ptr,A),A}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,zt.unregister(this),e}free(){let e=this.__destroy_into_raw();x.__wbg_chunksliceresult_free(e,0)}take_buffer(){try{let g=x.__wbindgen_add_to_stack_pointer(-16);x.chunksliceresult_take_buffer(g,this.__wbg_ptr);var e=U().getInt32(g+0,!0),A=U().getInt32(g+4,!0),i=Ot(e,A).slice();return x.__wbindgen_export(e,A*1,1),i}finally{x.__wbindgen_add_to_stack_pointer(16)}}take_cpositions(){try{let g=x.__wbindgen_add_to_stack_pointer(-16);x.chunksliceresult_take_cpositions(g,this.__wbg_ptr);var e=U().getInt32(g+0,!0),A=U().getInt32(g+4,!0),i=Pt(e,A).slice();return x.__wbindgen_export(e,A*8,8),i}finally{x.__wbindgen_add_to_stack_pointer(16)}}take_dpositions(){try{let g=x.__wbindgen_add_to_stack_pointer(-16);x.chunksliceresult_take_dpositions(g,this.__wbg_ptr);var e=U().getInt32(g+0,!0),A=U().getInt32(g+4,!0),i=Pt(e,A).slice();return x.__wbindgen_export(e,A*8,8),i}finally{x.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(dA.prototype[Symbol.dispose]=dA.prototype.free);function Wt(t){try{let a=x.__wbindgen_add_to_stack_pointer(-16),Q=$t(t,x.__wbindgen_export2),r=be;x.decompress_all(a,Q,r);var e=U().getInt32(a+0,!0),A=U().getInt32(a+4,!0),i=U().getInt32(a+8,!0),g=U().getInt32(a+12,!0);if(g)throw Ai(i);var n=Ot(e,A).slice();return x.__wbindgen_export(e,A*1,1),n}finally{x.__wbindgen_add_to_stack_pointer(16)}}function jt(t,e,A,i,g){try{let r=x.__wbindgen_add_to_stack_pointer(-16),I=$t(t,x.__wbindgen_export2),o=be;x.decompress_chunk_slice(r,I,o,e,A,i,g);var n=U().getInt32(r+0,!0),a=U().getInt32(r+4,!0),Q=U().getInt32(r+8,!0);if(Q)throw Ai(a);return dA.__wrap(n)}finally{x.__wbindgen_add_to_stack_pointer(16)}}function Pi(t,e){let A=Error(Vt(t,e));return ji(A)}function Wi(t,e){throw new Error(Vt(t,e))}var zt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>x.__wbg_chunksliceresult_free(t,1));function ji(t){FA===O.length&&O.push(O.length+1);let e=FA;return FA=O[e],O[e]=t,e}function Oi(t){t<1028||(O[t]=FA,FA=t)}function Pt(t,e){return t=t>>>0,Vi().subarray(t/8,t/8+e)}function Ot(t,e){return t=t>>>0,xe().subarray(t/1,t/1+e)}var lA=null;function U(){return(lA===null||lA.buffer.detached===!0||lA.buffer.detached===void 0&&lA.buffer!==x.memory.buffer)&&(lA=new DataView(x.memory.buffer)),lA}var qA=null;function Vi(){return(qA===null||qA.byteLength===0)&&(qA=new Float64Array(x.memory.buffer)),qA}function Vt(t,e){return eg(t>>>0,e)}var TA=null;function xe(){return(TA===null||TA.byteLength===0)&&(TA=new Uint8Array(x.memory.buffer)),TA}function $i(t){return O[t]}var O=new Array(1024).fill(void 0);O.push(void 0,null,!0,!1);var FA=O.length;function $t(t,e){let A=e(t.length*1,1)>>>0;return xe().set(t,A/1),be=t.length,A}function Ai(t){let e=$i(t);return Oi(t),e}var ZA=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});ZA.decode();var Ag=2146435072,me=0;function eg(t,e){return me+=e,me>=Ag&&(ZA=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),ZA.decode(),me=e),ZA.decode(xe().subarray(t,t+e).slice())}var be=0,x;function ei(t){x=t}var aA=null,pe=null;async function ti(){return aA||(pe||(pe=(async()=>{let e=await(await fetch(zi)).arrayBuffer(),{instance:A}=await WebAssembly.instantiate(e,{"./bgzf_wasm_bg.js":Fe});return aA=A.exports,ei(aA),aA})()),pe)}async function ii(t){return aA||await ti(),Wt(t)}async function gi(t,e,A,i,g){aA||await ti();let n=jt(t,e,A,i,g),a=n.take_buffer(),Q=n.take_cpositions(),r=n.take_dpositions();return n.free(),{buffer:a,cpositions:Q,dpositions:r}}var tg=26;function Ii(t){return t[0]===31&&t[1]===139}function ig(t){return t.length>=tg&&Ii(t)&&t[2]===8&&t[3]===4&&t[10]===6&&t[12]===66&&t[13]===67}function oi(t){return t instanceof Error?t.message:`${t}`}async function ni(t){if(typeof DecompressionStream<"u"){let e=new Blob([t]).stream().pipeThrough(new DecompressionStream("gzip"));return new Uint8Array(await new Response(e).arrayBuffer())}else return Tt(t,void 0)}function Qi(t){return oi(t).includes("invalid gzip header")?new Error("problem decompressing block: incorrect gzip header check",{cause:t}):t}async function xA(t){if(t.length===0)return new Uint8Array(0);if(!ig(t)){if(Ii(t))return ni(t);throw new Error("problem decompressing block: not a valid bgzf or gzip block")}try{return await ii(t)}catch(e){if(oi(e).includes("invalid bgzf header"))return ni(t);throw Qi(e)}}function gg(t,e,A,i){let g=[],n=[],a=[],Q=A.dataPosition;for(let r=0;r<t.length;r++){let I=t[r],o=e[r],l=o.filePosition>=i.blockPosition;g.push(o.filePosition),n.push(Q);let E=r===0?A.dataPosition:0,C=l?Math.min(i.dataPosition+1,I.length):I.length;if(E<C&&a.push(I.subarray(E,C)),Q+=I.length-E,l){g.push(o.filePosition+o.compressedSize),n.push(Q);break}}return{buffer:Xt(a),cpositions:Float64Array.from(g),dpositions:Float64Array.from(n)}}async function Je(t,e,A){let{minv:i,maxv:g}=e;if(A){let n=Zt(t,i.blockPosition,g.blockPosition);if(n.length>1){let a=await A.decompressBlocks(t,n);return gg(a.blocks,n,i,g)}}try{let n=await gi(t,i.blockPosition,i.dataPosition,g.blockPosition,g.dataPosition);return{buffer:n.buffer,cpositions:n.cpositions,dpositions:n.dpositions}}catch(n){throw Qi(n)}}function XA(t){if(t?.aborted)throw Se(t)}function Se(t){let e=t.reason;return e===void 0?new DOMException("This operation was aborted","AbortError"):e}function ng(t){typeof t=="object"&&t!==null&&"unref"in t&&typeof t.unref=="function"&&t.unref()}var gA=class{entries=new Map;total=0;settledCount=0;limit;budget;membership;fill;sizeOf;toCacheKey;evictionPolicy;pending=0;batch=0;idleTimeoutMs;sweepTimer;constructor({fill:e,maxSize:A=1/0,sizeOf:i=()=>1,cacheKey:g=r=>String(r),evictionPolicy:n="lru",idleTimeoutMs:a=0,budget:Q}={}){this.fill=e,this.evictionPolicy=n,this.limit=A,this.budget=Q,this.membership=Q?.register(this),this.sizeOf=i,this.toCacheKey=g,this.idleTimeoutMs=a>0?a:void 0}get size(){return this.entries.size}get totalSize(){return this.total}get maxSize(){return this.limit}set maxSize(e){this.limit=e,this.evict()}waiterCount(e){return this.entries.get(this.toCacheKey(e))?.signals.size??0}async get(e,A,i){XA(A);let g=this.toCacheKey(e),n=this.entries.get(g);n&&(this.isDoomed(n)?(this.deleteKey(g),n=void 0):this.touch(g,n)),n??=this.start(g,e,i),n.settled||this.join(n,A);try{let a=await this.settleFor(n,A);return XA(A),a}catch(a){throw XA(A),a}}settleFor(e,A){if(e.settled||A===void 0||typeof A.addEventListener!="function")return e.promise;let i=new AbortController;return Promise.race([e.promise,new Promise((g,n)=>{A.addEventListener("abort",()=>{n(Se(A))},{once:!0,signal:i.signal})})]).finally(()=>{i.abort()})}getIfCached(e){let A=this.toCacheKey(e),i=this.entries.get(A);if(i){if(this.isDoomed(i)){this.deleteKey(A);return}return this.touch(A,i),i.promise}}has(e){let A=this.entries.get(this.toCacheKey(e));return A!==void 0&&!this.isDoomed(A)}delete(e){this.deleteKey(this.toCacheKey(e))}clear(){for(let e of this.entries.values())this.detach(e);this.entries.clear(),this.charge(-this.total),this.total=0,this.settledCount=0,this.stopSweep()}touch(e,A){this.entries.delete(e),this.entries.set(e,A),A.batch=this.batch,A.lastTouched=Date.now(),A.seq=this.stamp()}stamp(){return this.budget?this.budget.nextSeq():0}isDoomed(e){return!e.settled&&e.controller.signal.aborted}sweepIdle(){let e=this.idleTimeoutMs;if(e===void 0)return;let A=Date.now()-e,i=0;for(let[g,n]of this.entries)n.settled&&(n.lastTouched<=A?this.deleteKey(g):i++);i===0&&this.stopSweep()}startSweep(){let e=this.idleTimeoutMs;if(e===void 0||this.sweepTimer!==void 0)return;let A=Math.max(1e3,Math.floor(e/4));this.sweepTimer=setInterval(()=>{this.sweepIdle()},A),ng(this.sweepTimer)}stopSweep(){this.sweepTimer!==void 0&&(clearInterval(this.sweepTimer),this.sweepTimer=void 0)}start(e,A,i){let g=i??(this.fill&&(r=>this.fill(A,r)));if(!g)throw new Error("SharedReadCache needs a fill, either on the cache or on the get() call");let n=new AbortController,a={promise:g(n.signal),signals:new Set,pinned:!1,controller:n,dispose:new AbortController,settled:!1,counted:!0,size:0,batch:this.batch,lastTouched:Date.now(),seq:this.stamp()};this.entries.set(e,a),this.pending++;let Q=()=>{a.settled=!0,this.detach(a),a.dispose.abort(),a.signals.clear()};return a.promise.then(r=>{if(Q(),this.entries.get(e)===a){let I=this.weigh(r);I===void 0?this.entries.delete(e):(a.lastTouched=Date.now(),this.settledCount++,a.size=I,this.total+=I,this.charge(I),this.startSweep())}this.maybeEvict()},()=>{this.entries.get(e)===a&&this.deleteKey(e),Q(),this.maybeEvict()}),a}weigh(e){try{let A=this.sizeOf(e);return Number.isFinite(A)&&A>=0?A:void 0}catch{return}}join(e,A){A===void 0?e.pinned=!0:A.aborted?!e.pinned&&e.signals.size===0&&e.controller.abort(A.reason):typeof A.addEventListener!="function"?e.pinned=!0:e.signals.has(A)||(e.signals.add(A),A.addEventListener("abort",()=>{e.signals.delete(A),!e.pinned&&e.signals.size===0&&(e.controller.abort(A.reason),this.detach(e))},{once:!0,signal:e.dispose.signal}))}deleteKey(e){let A=this.entries.get(e);A&&(this.entries.delete(e),this.detach(A),A.settled&&this.settledCount--,this.total-=A.size,this.charge(-A.size))}detach(e){e.counted&&(e.counted=!1,this.pending--)}charge(e){this.budget&&this.membership&&this.budget.charge(this.membership,e)}lruSpare(){if(!(this.settledCount<=1)){for(let[e,A]of this.entries)if(A.settled)return{cacheKey:e,seq:A.seq}}}release(e){this.deleteKey(e)}maybeEvict(){(this.evictionPolicy==="lru"||this.pending===0)&&(this.evict(),this.evictionPolicy==="batch"&&this.batch++,this.budget?.evict())}evict(){if(this.limit!==1/0){if(this.evictionPolicy==="batch"){for(let[e,A]of this.entries){if(this.total<=this.limit)break;A.batch!==this.batch&&A.settled&&this.deleteKey(e)}return}if(!(this.total<=this.limit))for(let[e,A]of this.entries){if(this.total<=this.limit||this.settledCount<=1)break;A.settled&&this.deleteKey(e)}}}};async function zA(t){return t.bytes?t.bytes():new Uint8Array(await t.arrayBuffer())}async function ai(t,e,A){if(e==="utf8"||e==="utf-8")return t.text();if(e)throw new Error(`unsupported encoding: ${e}`);return A&&"body"in t?Ge(t,A):zA(t)}function ri(t){return typeof t=="string"?{encoding:t,opts:{}}:{encoding:t?.encoding,opts:t??{}}}function Ci(t){let e=/\/(\d+)$/.exec(t??"")?.[1];return e===void 0?void 0:parseInt(e,10)}function Ig(t){let e=t.headers.get("content-length"),A=e===null?Number.NaN:Number(e);return Number.isSafeInteger(A)&&A>=0?A:void 0}var og=50;async function Ge(t,e){let A=Ig(t),i=t.body;if(!i||A===void 0){let r=await zA(t);return e(r.byteLength,A??r.byteLength),r}let g=i.getReader(),n=new Uint8Array(A),a=0,Q=Date.now();e(0,A);for(let r=await g.read();!r.done;r=await g.read()){if(a+r.value.byteLength>n.length){let o=new Uint8Array(Math.max(a+r.value.byteLength,n.length*2));o.set(n.subarray(0,a)),n=o}n.set(r.value,a),a+=r.value.byteLength;let I=Date.now();I-Q>=og&&(Q=I,e(a,A))}return e(a,A),a===n.length?n:n.slice(0,a)}function Qg(t,e={}){let A=new Set(Object.keys(e).map(g=>g.toLowerCase())),i=Object.entries(t).filter(([g])=>!A.has(g.toLowerCase()));return{...Object.fromEntries(i),...e}}function Bi(t){return Number.isSafeInteger(t)&&t>=0}function ag(t){return(typeof t=="object"&&t!==null&&"message"in t&&typeof t.message=="string"?t.message:`${t}`).replace(/\.$/,"")}var V=class{url;get source(){return this.url}_stat;statProbe;fetchImplementation;baseHeaders;baseOverrides;baseSignal;constructor(e,A={}){this.url=e,this.baseHeaders=A.headers??{},this.baseOverrides=A.overrides??{},this.baseSignal=A.signal,this.fetchImplementation=A.fetch??globalThis.fetch.bind(globalThis)}buildRequest(e,A){let i=e.signal??this.baseSignal;return{method:"GET",redirect:"follow",mode:"cors",...this.baseOverrides,...e.overrides,headers:Qg({...this.baseHeaders,...e.headers},A),...i?{signal:i}:{}}}async fetch(e,A){let i=n=>new Error(`${ag(n)} fetching ${e}`,{cause:n}),g;try{g=await this.fetchImplementation(e,A)}catch(n){if(`${n}`.includes("Failed to fetch")){console.warn(`generic-filehandle: refetching ${e} to attempt to work around chrome CORS header caching bug`);try{g=await this.fetchImplementation(e,{...A,cache:"reload"})}catch(a){throw i(a)}}else throw i(n)}return g}async read(e,A,i={}){if(e===0)return new Uint8Array(0);if(!Bi(e)||!Bi(A))throw new TypeError(`read() called with an invalid length or position (length=${e}, position=${A}). The index file may be corrupt.`);return this.fetchBytes(e,A,i)}async fetchBytes(e,A,i){let g=await this.fetch(this.url,this.buildRequest(i,{range:`bytes=${A}-${A+e-1}`}));if(g.status===416)return new Uint8Array(0);if(this.checkOk(g),g.status===200&&A===0||g.status===206){let n=Ci(g.headers.get("content-range"));n!==void 0&&(this._stat={size:n});let a=i.onProgress?await Ge(g,i.onProgress):await zA(g);return!this._stat&&g.status===200&&(this._stat={size:a.byteLength}),a.byteLength<=e?a:a.slice(0,e)}throw new Error(g.status===200?`${this.url} fetch returned status 200, expected 206`:`HTTP ${g.status} fetching ${this.url}`)}checkOk(e){if(!e.ok)throw new Error(`HTTP ${e.status} fetching ${this.url}`)}async readFile(e){let{encoding:A,opts:i}=ri(e),g=await this.fetch(this.url,this.buildRequest(i));this.checkOk(g);let n=await ai(g,A,i.onProgress);return g.status===200&&typeof n!="string"&&(this._stat={size:n.byteLength}),n}async stat(){return this._stat||(this.statProbe??=this.read(10,0).finally(()=>{this.statProbe=void 0}),await this.statProbe),this._stat??{size:0}}close(){return Promise.resolve()}};var rA=class{source;constructor(e,A={}){this.source=e}unimplemented(){return Promise.reject(new Error(`LocalFile is unimplemented in the browser (${this.source})`))}readFile(e){return this.unimplemented()}read(e,A,i){return this.unimplemented()}stat(){return this.unimplemented()}close(){return this.unimplemented()}};var P=class{minv;maxv;bin;endPosition;constructor(e,A,i,g=A.blockPosition+65536){this.minv=e,this.maxv=A,this.bin=i,this.endPosition=g}toString(){return`${this.minv.toString()}..${this.maxv.toString()} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}fetchedSize(){return this.endPosition-this.minv.blockPosition}};var _=function(t,e,A,i,g){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!g)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!g:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?g.call(t,A):g?g.value=A:e.set(t,A),A},s=function(t,e,A,i){if(A==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return A==="m"?i:A==="a"?i.call(t):i?i.value:e.get(t)},b,M,J,G,CA,bA,BA,PA,Z,si,Re,_e,ve,Ei,WA,JA=class extends Map{constructor(e={}){if(super(),b.add(this),M.set(this,0),J.set(this,new Map),G.set(this,new Map),CA.set(this,void 0),bA.set(this,void 0),BA.set(this,void 0),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof e.maxAge=="number"&&e.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");_(this,CA,e.maxSize,"f"),_(this,bA,e.maxAge||Number.POSITIVE_INFINITY,"f"),_(this,BA,e.onEviction,"f")}get __oldCache(){return s(this,G,"f")}get(e){if(s(this,J,"f").has(e)){let A=s(this,J,"f").get(e);return s(this,b,"m",Re).call(this,e,A)}if(s(this,G,"f").has(e)){let A=s(this,G,"f").get(e);if(!s(this,b,"m",Z).call(this,e,A))return s(this,b,"m",Ei).call(this,e,A),A.value}}set(e,A,{maxAge:i=s(this,bA,"f")}={}){let g=typeof i=="number"&&i!==Number.POSITIVE_INFINITY?Date.now()+i:void 0;return s(this,J,"f").has(e)?s(this,J,"f").set(e,{value:A,expiry:g}):s(this,b,"m",ve).call(this,e,{value:A,expiry:g}),this}has(e){return s(this,J,"f").has(e)?!s(this,b,"m",Z).call(this,e,s(this,J,"f").get(e)):s(this,G,"f").has(e)?!s(this,b,"m",Z).call(this,e,s(this,G,"f").get(e)):!1}peek(e){if(s(this,J,"f").has(e))return s(this,b,"m",_e).call(this,e,s(this,J,"f"));if(s(this,G,"f").has(e))return s(this,b,"m",_e).call(this,e,s(this,G,"f"))}expiresIn(e){let A=s(this,J,"f").get(e)??s(this,G,"f").get(e);if(A)return A.expiry?A.expiry-Date.now():Number.POSITIVE_INFINITY}delete(e){var A;let i=s(this,J,"f").delete(e);return i&&_(this,M,(A=s(this,M,"f"),A--,A),"f"),s(this,G,"f").delete(e)||i}clear(){s(this,J,"f").clear(),s(this,G,"f").clear(),_(this,M,0,"f")}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");let A=[...s(this,b,"m",WA).call(this)],i=A.length-e;i<0?(_(this,J,new Map(A),"f"),_(this,G,new Map,"f"),_(this,M,A.length,"f")):(i>0&&s(this,b,"m",PA).call(this,A.slice(0,i)),_(this,G,new Map(A.slice(i)),"f"),_(this,J,new Map,"f"),_(this,M,0,"f")),_(this,CA,e,"f")}evict(e=1){let A=e;if(!A||A<=0)return;let i=[...s(this,b,"m",WA).call(this)],g=Math.trunc(Math.min(A,Math.max(i.length-1,0)));g<=0||(s(this,b,"m",PA).call(this,i.slice(0,g)),_(this,G,new Map(i.slice(g)),"f"),_(this,J,new Map,"f"),_(this,M,0,"f"))}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[(M=new WeakMap,J=new WeakMap,G=new WeakMap,CA=new WeakMap,bA=new WeakMap,BA=new WeakMap,b=new WeakSet,PA=function(A){if(typeof s(this,BA,"f")=="function")for(let[i,g]of A)s(this,BA,"f").call(this,i,g.value)},Z=function(A,i){return typeof i.expiry=="number"&&i.expiry<=Date.now()?(typeof s(this,BA,"f")=="function"&&s(this,BA,"f").call(this,A,i.value),this.delete(A)):!1},si=function(A,i){if(!s(this,b,"m",Z).call(this,A,i))return i.value},Re=function(A,i){return i.expiry?s(this,b,"m",si).call(this,A,i):i.value},_e=function(A,i){let g=i.get(A);return s(this,b,"m",Re).call(this,A,g)},ve=function(A,i){var g;s(this,J,"f").set(A,i),_(this,M,(g=s(this,M,"f"),g++,g),"f"),s(this,M,"f")>=s(this,CA,"f")&&(_(this,M,0,"f"),s(this,b,"m",PA).call(this,s(this,G,"f")),_(this,G,s(this,J,"f"),"f"),_(this,J,new Map,"f"))},Ei=function(A,i){s(this,G,"f").delete(A),s(this,b,"m",ve).call(this,A,i)},WA=function*(){for(let A of s(this,G,"f")){let[i,g]=A;s(this,J,"f").has(i)||s(this,b,"m",Z).call(this,i,g)||(yield A)}for(let A of s(this,J,"f")){let[i,g]=A;s(this,b,"m",Z).call(this,i,g)||(yield A)}},Symbol.iterator)](){for(let e of s(this,J,"f")){let[A,i]=e;s(this,b,"m",Z).call(this,A,i)||(yield[A,i.value])}for(let e of s(this,G,"f")){let[A,i]=e;s(this,J,"f").has(A)||s(this,b,"m",Z).call(this,A,i)||(yield[A,i.value])}}*entriesDescending(){let e=[...s(this,J,"f")];for(let A=e.length-1;A>=0;--A){let i=e[A],[g,n]=i;s(this,b,"m",Z).call(this,g,n)||(yield[g,n.value])}e=[...s(this,G,"f")];for(let A=e.length-1;A>=0;--A){let i=e[A],[g,n]=i;s(this,J,"f").has(g)||s(this,b,"m",Z).call(this,g,n)||(yield[g,n.value])}}*entriesAscending(){for(let[e,A]of s(this,b,"m",WA).call(this))yield[e,A.value]}get size(){if(!s(this,M,"f"))return s(this,G,"f").size;let e=0;for(let A of s(this,G,"f").keys())s(this,J,"f").has(A)||e++;return Math.min(s(this,M,"f")+e,s(this,CA,"f"))}get maxSize(){return s(this,CA,"f")}get maxAge(){return s(this,bA,"f")}entries(){return this.entriesAscending()}forEach(e,A=this){for(let[i,g]of this.entriesAscending())e.call(A,g,i,this)}get[Symbol.toStringTag](){return"QuickLRU"}toString(){return`QuickLRU(${this.size}/${this.maxSize})`}[Symbol.for("nodejs.util.inspect.custom")](){return this.toString()}};function ci(t,e=0){let A=t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24;return((t[e+4]|t[e+5]<<8|t[e+6]<<16|t[e+7]<<24)>>>0)*4294967296+(A>>>0)}var uA=class{blockPosition;dataPosition;constructor(e,A){this.blockPosition=e,this.dataPosition=A}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(e){return this.blockPosition-e.blockPosition||this.dataPosition-e.dataPosition}};function nA(t,e=0){return new uA(t[e+7]*1099511627776+t[e+6]*4294967296+t[e+5]*16777216+t[e+4]*65536+t[e+3]*256+t[e+2],t[e+1]<<8|t[e])}function jA(t,e){let A=t.length;if(A===0)return t;let i;if(e){let Q=e.blockPosition,r=e.dataPosition;i=[];for(let I=0;I<A;I++){let o=t[I];(o.maxv.blockPosition-Q||o.maxv.dataPosition-r)>0&&i.push(o)}if(i.length===0)return i}else i=t;i.sort((Q,r)=>{let I=Q.minv.blockPosition-r.minv.blockPosition;return I===0?Q.minv.dataPosition-r.minv.dataPosition:I});let g=[i[0]],n=i[0].minv.blockPosition,a=i[0].maxv.blockPosition;for(let Q=1;Q<i.length;Q++){let r=i[Q],I=r.minv.blockPosition,o=r.maxv.blockPosition;if(I-a<65e3&&o-n<5e6){let l=g.at(-1);(o-a||r.maxv.dataPosition-l.maxv.dataPosition)>0&&(g[g.length-1]=new P(l.minv,r.maxv,l.bin,r.endPosition),a=o)}else g.push(r),n=I,a=o}return rg(g)}function rg(t){let e=[t[0]];for(let A=1;A<t.length;A++){let i=t[A],g=e.at(-1).maxv;if((i.minv.blockPosition-g.blockPosition||i.minv.dataPosition-g.dataPosition)>=0){e.push(i);continue}(i.maxv.blockPosition-g.blockPosition||i.maxv.dataPosition-g.dataPosition)>0&&e.push(new P(g,i.maxv,i.bin,i.endPosition))}return e}function OA(t,e=[]){let A=[...e];for(let i of t)A.push(i.minv.blockPosition,i.maxv.blockPosition);A.sort((i,g)=>i-g);for(let i of t){let g=i.maxv.blockPosition,n=0,a=A.length;for(;n<a;){let Q=n+a>>>1;A[Q]>g?a=Q:n=Q+1}n<A.length&&(i.endPosition=Math.min(i.endPosition,A[n]))}}function VA(t,e,A,i){let g=i?i.blockPosition:1/0,n=i?i.dataPosition:0,a=!1;for(let Q=0;Q<A;Q++){let r=e+Q*8,I=t[r+7]*1099511627776+t[r+6]*4294967296+t[r+5]*16777216+t[r+4]*65536+t[r+3]*256+t[r+2],o=t[r+1]<<8|t[r];(I<g||I===g&&o<n)&&(g=I,n=o,a=!0)}return a?new uA(g,n):i}function Cg(t){let e=new TextDecoder("utf-8"),A=[],i={},g=0,n=0;for(;n<t.length;){let a=t.indexOf(0,n);if(a===-1)break;if(a>n){let Q=e.decode(t.subarray(n,a));A[g]=Q,i[Q]=g}n=a+1,g++}return{refNameToId:i,refIdToName:A}}var Bg={0:"generic",1:"SAM",2:"VCF"};function $A(t,e){let A=new DataView(t.buffer,t.byteOffset,t.byteLength),i=A.getInt32(e,!0),g=i&65536?"zero-based-half-open":"1-based-closed",n=Bg[i&15];if(!n)throw new Error(`invalid Tabix preset format flags ${i}`);let a={ref:A.getInt32(e+4,!0),start:A.getInt32(e+8,!0),end:A.getInt32(e+12,!0)},Q=A.getInt32(e+16,!0),r=Q?String.fromCharCode(Q):void 0,I=A.getInt32(e+20,!0),o=A.getInt32(e+24,!0),{refIdToName:l,refNameToId:E}=Cg(t.subarray(e+28,e+28+o));return{refIdToName:l,refNameToId:E,skipLines:I,metaChar:r,columnNumbers:a,format:n,coordinateType:g}}function Ae(t,e){return{lineCount:ci(t,e)}}function ee(t,e=5){let A=new JA({maxSize:e});return i=>{let g=A.get(i);if(g!==void 0)return g;let n=t(i);return n!==void 0&&A.set(i,n),n}}var sA=class{filehandle;parseCache=new gA({});constructor({filehandle:e}){this.filehandle=e}async readIndexBytes(e){let A=await this.filehandle.readFile({signal:e.signal,onProgress:e.onProgress}),i=await xA(A);return{bytes:i,dataView:new DataView(i.buffer,i.byteOffset,i.byteLength)}}async lineCount(e,A={}){let i=await this.parse(A),g=i.refNameToId[e];return g===void 0?-1:i.indices(g)?.stats?.lineCount??-1}async getMetadata(e={}){let{indices:A,...i}=await this.parse(e);return i}async blocksForRange(e,A,i,g={}){let n=await this.parse(g),a=n.refNameToId[e];if(a===void 0)return[];let Q=n.indices(a);if(!Q)return[];let r=[];for(let[I,o]of this.reg2bins(A,i,n))for(let l=I;l<=o;l++){let E=Q.binIndex[l];if(E)for(let C of E)r.push(C)}return jA(r,this.lowestOffset(Q,A,n))}parse(e={}){return this.parseCache.get("index",e.signal,A=>this._parse({...e,signal:A}))}async hasRefSeq(e,A={}){return!!(await this.parse(A)).indices(e)?.binIndex}};var sg=21582659,Eg=38359875;function fi(t,e){return t*2**e}function Le(t,e){return Math.floor(t/2**e)}var EA=class extends sA{async _parse(e={}){let{bytes:A,dataView:i}=await this.readIndexBytes(e),g=i.getUint32(0,!0),n;if(g===sg)n=1;else if(g===Eg)n=2;else throw new Error(`Not a CSI file (magic=${g})`);let a=i.getInt32(4,!0),Q=i.getInt32(8,!0),r=((1<<(Q+1)*3)-1)/7,I=2**(a+Q*3),o=i.getInt32(12,!0),l=o>=30?$A(A,16):{refIdToName:[],refNameToId:{},metaChar:void 0,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},E=i.getInt32(16+o,!0),C=16+o+4,f,m=[];for(let u=0;u<E;u++){m.push(C);let D=i.getInt32(C,!0);C+=4;for(let h=0;h<D;h++){let B=i.getUint32(C,!0);if(C+=4,B>r)C+=44;else{f=VA(A,C,1,f),C+=8;let k=i.getInt32(C,!0);C+=4+16*k}}}function w(u){let D=m[u];if(D===void 0)return;let h=D,B=i.getInt32(h,!0);h+=4;let k={},F={},c;for(let y=0;y<B;y++){let N=i.getUint32(h,!0);if(h+=4,N>r)c=Ae(A,h+28),h+=44;else{F[N]=nA(A,h),h+=8;let d=i.getInt32(h,!0);h+=4;let p=Array.from({length:d});for(let R=0;R<d;R++)p[R]=new P(nA(A,h),nA(A,h+8),N),h+=16;k[N]=p}}return OA(Object.values(k).flat()),{binIndex:k,loffsets:F,stats:c}}return{...l,csi:!0,refCount:E,maxBlockSize:65536,firstDataLine:f,csiVersion:n,indices:ee(w),minShift:a,depth:Q,maxBinNumber:r,maxRefLength:I}}lowestOffset(e,A,{minShift:i,depth:g}){let{loffsets:n}=e,a;if(n){let Q=(fi(1,3*g)-1)/7+Le(Math.max(A,0),i);for(;a===void 0&&Q>0;)if(a=n[Q],a===void 0){let r=Math.floor((Q-1)/8),I=r*8+1;Q=Q>I?Q-1:r}a??=n[0]}return a}reg2bins(e,A,{minShift:i,depth:g,maxBinNumber:n}){e=Math.max(e,0);let a=2**(i+g*3);A>a&&(A=a),A-=1;let Q=0,r=0,I=i+g*3,o=[];for(;Q<=g;I-=3,r+=fi(1,Q*3),Q+=1){let l=r+Le(e,I),E=r+Le(A,I);if(E-l+o.length>n)throw new Error(`query ${e}-${A} is too large for current binning scheme (shift ${i}, depth ${g}), try a smaller query or a coarser index binning scheme`);o.push([l,E])}return o}};var cg=21578324,Me=5,Ue=14,te=2**(Ue+Me*3);function hi(t){return Math.min(Math.max(t,0),te)}var $=class extends sA{reg2bins(e,A){e>te&&console.warn("querying outside of possible tabix range");let i=hi(e),g=Math.min(A,te)-1,n=[];return i<=g&&n.push([0,0],[1+(i>>26),1+(g>>26)],[9+(i>>23),9+(g>>23)],[73+(i>>20),73+(g>>20)],[585+(i>>17),585+(g>>17)],[4681+(i>>14),4681+(g>>14)]),n}lowestOffset(e,A){let i=e.linearIndex;return i?.[Math.min(hi(A)>>Ue,i.length-1)]}async _parse(e={}){let{bytes:A,dataView:i}=await this.readIndexBytes(e);if(i.getUint32(0,!0)!==cg)throw new Error("Not a TBI file");let g=i.getUint32(4,!0),n=((1<<(Me+1)*3)-1)/7,{refNameToId:a,refIdToName:Q,coordinateType:r,format:I,columnNumbers:o,metaChar:l,skipLines:E}=$A(A,8),f=36+i.getInt32(32,!0),m,w=[];for(let D=0;D<g;D++){w.push(f);let h=i.getInt32(f,!0);f+=4;for(let k=0;k<h;k++){let F=i.getUint32(f,!0);f+=4;let c=i.getInt32(f,!0);if(f+=4,F>n+1)throw new Error("tabix index contains too many bins, please use a CSI index");f+=16*c}let B=i.getInt32(f,!0);f+=4,m=VA(A,f,B,m),f+=8*B}function u(D){let h=w[D];if(h===void 0)return;let B=h,k=i.getInt32(B,!0);B+=4;let F={},c;for(let d=0;d<k;d++){let p=i.getUint32(B,!0);if(B+=4,p>n+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(p===n+1){let R=i.getInt32(B,!0);B+=4,R===2&&(c=Ae(A,B+16)),B+=16*R}else{let R=i.getInt32(B,!0);B+=4;let v=Array.from({length:R});for(let X=0;X<R;X++)v[X]=new P(nA(A,B),nA(A,B+8),p),B+=16;F[p]=v}}let y=i.getInt32(B,!0);B+=4;let N=Array.from({length:y});for(let d=0;d<y;d++)N[d]=nA(A,B),B+=8;return OA(Object.values(F).flat(),N.map(d=>d.blockPosition)),{binIndex:F,linearIndex:N,stats:c}}return{indices:ee(u),metaChar:l,minShift:Ue,depth:Me,maxBinNumber:n,maxRefLength:te,skipLines:E,firstDataLine:m,columnNumbers:o,coordinateType:r,format:I,refIdToName:Q,refNameToId:a,maxBlockSize:65536}}};var fg=9,He=10,hg=13,lg=59,dg=6,ug=1024*2**20,wg=180*1e3;function kg(t,e,A){if(t)return t;if(e)return new rA(e);if(A)return new V(A);throw new TypeError("must provide either filehandle, path, or url")}function Dg({tbiFilehandle:t,csiFilehandle:e,tbiPath:A,csiPath:i,tbiUrl:g,csiUrl:n,path:a,url:Q}){if(t)return new $({filehandle:t});if(e)return new EA({filehandle:e});if(A)return new $({filehandle:new rA(A)});if(i)return new EA({filehandle:new rA(i)});if(n)return new EA({filehandle:new V(n)});if(g)return new $({filehandle:new V(g)});if(a)return new $({filehandle:new rA(`${a}.tbi`)});if(Q)return new $({filehandle:new V(`${Q}.tbi`)});throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl")}function Ng(t,e,A,i,g){return t[A]*256+(i-e[A])+g+1}function yg(t,e,A,i,g,n){let a=i-A,Q=e+a;if(t[g]===46)return Q;let r=g;for(let I=g;I<=n;I++)if(I===n||t[I]===lg){let o=I-r;if(o>=10&&t[r]===83&&t[r+1]===86&&t[r+2]===84&&t[r+3]===89&&t[r+4]===80&&t[r+5]===69&&t[r+6]===61&&t[r+7]===84&&t[r+8]===82&&t[r+9]===65)return e+1;o>=4&&t[r]===69&&t[r+1]===78&&t[r+2]===68&&t[r+3]===61&&(Q=Ye(t,r+4,I)),r=I+1}return Q}var di=new TextDecoder;function li(t,e){let A=-1,i=e.charCodeAt(0);for(let g=0,n=t.length;g<n;g++){let a=t[g];if(g===A+1&&a!==i)break;a===He&&(A=g)}return t.subarray(0,A+1)}function mg(t,e){let A=0;for(let i=0;i<e;i++){let g=t.indexOf(He,A);if(g===-1){A=t.length;break}A=g+1}return di.decode(t.subarray(0,A)).split(/\r?\n/).slice(0,e)}function Ye(t,e,A){let i=0;for(let g=e;g<A;g++){let n=t[g];if(n>=48&&n<=57)i=i*10+(n-48);else break}return i}var wA=class{filehandle;index;chunkCache;headerCache=new gA({});bgzfWorkerPool;constructor({path:e,filehandle:A,url:i,tbiPath:g,tbiUrl:n,tbiFilehandle:a,csiPath:Q,csiUrl:r,csiFilehandle:I,chunkCacheSize:o=ug,chunkCacheIdleTimeoutMs:l=wg,chunkCacheBudget:E,bgzfWorkerPool:C}){this.bgzfWorkerPool=C,this.filehandle=kg(A,e,i),this.index=Dg({tbiFilehandle:a,csiFilehandle:I,tbiPath:g,csiPath:Q,tbiUrl:n,csiUrl:r,path:e,url:i}),this.chunkCache=new gA({maxSize:o,sizeOf:f=>f.buffer.byteLength,cacheKey:f=>f.toString(),idleTimeoutMs:l,budget:E,fill:(f,m)=>this.readChunk(f,{signal:m})})}clearChunkCache(){this.chunkCache.clear()}async bytesForRegions(e,A={}){let i=[];for(let{refName:n,start:a,end:Q}of e){let r=await this.index.blocksForRange(n,a,Q,A);for(let I of r)i.push(I)}let g=0;for(let n of jA(i))g+=n.fetchedSize();return g}async getLines(e,A,i,g){let n,a={},Q,r;typeof g=="function"?Q=g:(a=g,Q=g.lineCallback,n=g.signal,r=g.onProgress);let I=await this.index.getMetadata(a),o=A??0,l=i??I.maxRefLength;if(o>l)throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(o===l)return;let E=await this.index.blocksForRange(e,o,l,a),C=I.format==="VCF",f=I.columnNumbers.ref||0,m=I.columnNumbers.start||0,w=C?8:I.columnNumbers.end||0,u=Math.max(f,m,w),D=I.metaChar?.charCodeAt(0),h=I.coordinateType==="1-based-closed"?-1:0,B=new TextEncoder,k=new TextDecoder,F=B.encode(e),c=new Int32Array(u+1),y=0;for(let v of E)y+=v.fetchedSize();let N=0;r?.(0,y);let d=1,p=[],R=v=>{for(;p.length<Math.min(v,E.length);){let X=E[p.length],AA=this.chunkCache.get(X,n);AA.catch(()=>{}),p.push(AA)}};R(1);for(let v=0,X=E.length;v<X;v++){let AA=E[v],{buffer:L,cpositions:cA,dpositions:ge}=await p[v];N+=AA.fetchedSize(),r?.(N,y);let qe=AA.minv.dataPosition,K=0,SA=0;for(;K<L.length;){let q=L.indexOf(He,K);if(q===-1)break;let ki=K+qe;for(;SA<ge.length&&ki>=ge[SA];)SA++;if(D!==void 0&&L[K]===D){K=q+1;continue}c[0]=K-1;for(let T=0;T<u;T++){let RA=c[T],ne=RA<q?L.indexOf(fg,RA+1):-1;c[T+1]=ne===-1||ne>=q?q:ne}let Te=c[f-1]+1,Ze=c[f]-Te;if(Ze!==F.length){K=q+1;continue}let Xe=!0;for(let T=0;T<Ze;T++)if(L[Te+T]!==F[T]){Xe=!1;break}if(!Xe){K=q+1;continue}let GA=Ye(L,c[m-1]+1,c[m])+h;if(GA>=l)return;let kA;if(w===0||w===m?kA=GA+1:C?kA=yg(L,GA,c[3]+1,c[4],c[w-1]+1,c[w]):kA=Ye(L,c[w-1]+1,c[w]),kA>o){let T=L[q-1]===hg?q-1:q,RA=k.decode(L.subarray(K,T));Q(RA,Ng(cA,ge,SA,K,qe),GA,kA)}K=q+1}d=Math.min(d*2,dg),R(v+1+d)}}async getMetadata(e={}){return this.index.getMetadata(e)}async readHeaderBytes(e){let{firstDataLine:A,maxBlockSize:i}=await this.getMetadata(e),g=(A?.blockPosition??0)+i,n=await this.filehandle.read(g,0,e);return xA(n)}async parseHeader(e){let{metaChar:A,skipLines:i=0}=await this.getMetadata(e),g=await this.readHeaderBytes(e);return{header:di.decode(A?li(g,A):g),skippedLines:i>0?mg(g,i):[]}}getParsedHeader(e={}){return this.headerCache.get("header",e.signal,A=>this.parseHeader({...e,signal:A}))}async getHeaderBuffer(e={}){let{metaChar:A}=await this.getMetadata(e),i=await this.readHeaderBytes(e);return A?li(i,A):i}async getSkippedLines(e={}){let{skipLines:A=0}=await this.getMetadata(e);return A<=0?[]:(await this.getParsedHeader(e)).skippedLines}async getHeader(e={}){return(await this.getParsedHeader(e)).header}async getHeaderLines(e={}){let{header:A,skippedLines:i}=await this.getParsedHeader(e);return(A?A.split(/\r?\n/):i).filter(Boolean)}async getReferenceSequenceNames(e={}){return(await this.getMetadata(e)).refIdToName}async lineCount(e,A={}){return this.index.lineCount(e,A)}async readChunk(e,A={}){let i=await this.filehandle.read(e.fetchedSize(),e.minv.blockPosition,A),g=await this.bgzfWorkerPool;return Je(i,e,g)}};var wi=ze(Di(),1),ie=ze(Ni(),1);var pg=50*2**20;function nI(t,e,A){let i=t.pluginManager;return new wA({filehandle:(0,ie.openLocation)(t.getConf(e),i),...(0,ie.openTabixIndexFilehandle)(t.getConf([A,"location"]),t.getConf([A,"indexType"]),i),chunkCacheSize:pg})}function Ke(t,e){return`${t} ${e}`}function Fg(t){let e=new Map;for(let A of t){e.set(A,A);let i=Pe(A);if(i!==A){let g=Ie(A);e.set(Ke(i,g),A);let n=We(A);n!==void 0&&e.set(Ke(n,g),A)}}return e}function xg(t,e,A){let i=t.get(Ke(e,A));return i===void 0?t.get(A):i}var ui=class{constructor(e,A){this.file=e;this.adapter=A;this.lookup=(0,wi.cachedSetup)({setup:async e=>Fg(await this.file.getReferenceSequenceNames(e))})}async assemblyRefNames(e={}){let A=await this.file.getReferenceSequenceNames(e),i=oe(this.adapter,e.assemblyName),g=A.filter(n=>je(n,i)).map(n=>Ie(n));return g.length>0?g:A}async resolve(e,A){let i=await this.lookup(A);return xg(i,oe(this.adapter,e.assemblyName),e.refName)}};export{nI as a,ui as b};
2
- //# sourceMappingURL=chunk-JCG7RLMB.js.map
1
+ import{a as Ni}from"./chunk-TN6FK5UD.js";import{a as mi}from"./chunk-KWAXLUPQ.js";import{a as Oe,b as We,c as Ie,d as Pe,e as oe}from"./chunk-F4C3BEPV.js";import{b as ze}from"./chunk-FY3BTKY4.js";var Qe=0;var re=2;var DA=4;var eA=0,NA=1,je=2;var Ve=-5;function yi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function $e(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var A=e.shift();if(A){if(typeof A!="object")throw new TypeError(A+"must be non-object");for(var i in A)yi(A,i)&&(t[i]=A[i])}}return t}function vA(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)}var mA={arraySet:function(t,e,A,i,n){if(e.subarray&&t.subarray){t.set(e.subarray(A,A+i),n);return}for(var g=0;g<i;g++)t[n+g]=e[A+g]},flattenChunks:function(t){var e,A,i,n,g,r;for(i=0,e=0,A=t.length;e<A;e++)i+=t[e].length;for(r=new Uint8Array(i),n=0,e=0,A=t.length;e<A;e++)g=t[e],r.set(g,n),n+=g.length;return r},Buf8:function(t){return new Uint8Array(t)},Buf16:function(t){return new Uint16Array(t)},Buf32:function(t){return new Int32Array(t)}},yA={arraySet:function(t,e,A,i,n){for(var g=0;g<i;g++)t[n+g]=e[A+g]},flattenChunks:function(t){return[].concat.apply([],t)},Buf8:function(t){return new Array(t)},Buf16:function(t){return new Array(t)},Buf32:function(t){return new Array(t)}},fA=()=>{let t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";return fA=()=>t,t},z=(t,e,A,i,n)=>(z=fA()?mA.arraySet:yA.arraySet,z(t,e,A,i,n)),_A=t=>(_A=fA()?mA.flattenChunks:yA.flattenChunks,_A(t)),W=t=>(W=fA()?mA.Buf8:yA.Buf8,W(t)),tA=t=>(tA=fA()?mA.Buf16:yA.Buf16,tA(t)),IA=t=>(IA=fA()?mA.Buf32:yA.Buf32,IA(t));var At=function(){let t=!0;try{String.fromCharCode.apply(null,[0])}catch{t=!1}return At=()=>t,t},et=function(){let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{t=!1}return et=()=>t,t},ae=function(t){for(var e=W(256),A=0;A<256;A++)e[A]=A>=252?6:A>=248?5:A>=240?4:A>=224?3:A>=192?2:1;return e[254]=e[254]=1,ae=i=>e[i],e[t]};function Ce(t){var e,A,i,n,g,r=t.length,Q=0;for(n=0;n<r;n++)A=t.charCodeAt(n),(A&64512)===55296&&n+1<r&&(i=t.charCodeAt(n+1),(i&64512)===56320&&(A=65536+(A-55296<<10)+(i-56320),n++)),Q+=A<128?1:A<2048?2:A<65536?3:4;for(e=new Uint8Array(Q),g=0,n=0;g<Q;n++)A=t.charCodeAt(n),(A&64512)===55296&&n+1<r&&(i=t.charCodeAt(n+1),(i&64512)===56320&&(A=65536+(A-55296<<10)+(i-56320),n++)),A<128?e[g++]=A:A<2048?(e[g++]=192|A>>>6,e[g++]=128|A&63):A<65536?(e[g++]=224|A>>>12,e[g++]=128|A>>>6&63,e[g++]=128|A&63):(e[g++]=240|A>>>18,e[g++]=128|A>>>12&63,e[g++]=128|A>>>6&63,e[g++]=128|A&63);return e}function pi(t,e){if(e<65534&&(t.subarray&&et()||!t.subarray&&At()))return String.fromCharCode.apply(null,vA(t,e));for(var A="",i=0;i<e;i++)A+=String.fromCharCode(t[i]);return A}function tt(t){for(var e=new Uint8Array(t.length),A=0,i=e.length;A<i;A++)e[A]=t.charCodeAt(A);return e}function it(t,e){var A,i,n,g,r=e||t.length,Q=new Array(r*2);for(i=0,A=0;A<r;){if(n=t[A++],n<128){Q[i++]=n;continue}if(g=ae(n),g>4){Q[i++]=65533,A+=g-1;continue}for(n&=g===2?31:g===3?15:7;g>1&&A<r;)n=n<<6|t[A++]&63,g--;if(g>1){Q[i++]=65533;continue}n<65536?Q[i++]=n:(n-=65536,Q[i++]=55296|n>>10&1023,Q[i++]=56320|n&1023)}return pi(Q,i)}function gt(t,e){var A;for(e=e||t.length,e>t.length&&(e=t.length),A=e-1;A>=0&&(t[A]&192)===128;)A--;return A<0||A===0?e:A+ae(t[A])>e?A:e}function Be(){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}function pA(t,e,A,i){for(var n=t&65535|0,g=t>>>16&65535|0,r=0;A!==0;){r=A>2e3?2e3:A,A-=r;do n=n+e[i++]|0,g=g+n|0;while(--r);n%=65521,g%=65521}return n|g<<16|0}function Fi(){for(var t,e=[],A=0;A<256;A++){t=A;for(var i=0;i<8;i++)t=t&1?3988292384^t>>>1:t>>>1;e[A]=t}return e}var nt=function(){let t=Fi();return nt=()=>t,t};function Y(t,e,A,i){var n=nt(),g=i+A;t^=-1;for(var r=i;r<g;r++)t=t>>>8^n[(t^e[r])&255];return t^-1}var LA=30,xi=12;function se(t,e){var A,i,n,g,r,Q,a,I,o,l,f,C,E,y,w,u,D,h,B,k,F,c,m,N,d;A=t.state,i=t.next_in,N=t.input,n=i+(t.avail_in-5),g=t.next_out,d=t.output,r=g-(e-t.avail_out),Q=g+(t.avail_out-257),a=A.dmax,I=A.wsize,o=A.whave,l=A.wnext,f=A.window,C=A.hold,E=A.bits,y=A.lencode,w=A.distcode,u=(1<<A.lenbits)-1,D=(1<<A.distbits)-1;A:do{E<15&&(C+=N[i++]<<E,E+=8,C+=N[i++]<<E,E+=8),h=y[C&u];e:for(;;){if(B=h>>>24,C>>>=B,E-=B,B=h>>>16&255,B===0)d[g++]=h&65535;else if(B&16){k=h&65535,B&=15,B&&(E<B&&(C+=N[i++]<<E,E+=8),k+=C&(1<<B)-1,C>>>=B,E-=B),E<15&&(C+=N[i++]<<E,E+=8,C+=N[i++]<<E,E+=8),h=w[C&D];t:for(;;){if(B=h>>>24,C>>>=B,E-=B,B=h>>>16&255,B&16){if(F=h&65535,B&=15,E<B&&(C+=N[i++]<<E,E+=8,E<B&&(C+=N[i++]<<E,E+=8)),F+=C&(1<<B)-1,F>a){t.msg="invalid distance too far back",A.mode=LA;break A}if(C>>>=B,E-=B,B=g-r,F>B){if(B=F-B,B>o&&A.sane){t.msg="invalid distance too far back",A.mode=LA;break A}if(c=0,m=f,l===0){if(c+=I-B,B<k){k-=B;do d[g++]=f[c++];while(--B);c=g-F,m=d}}else if(l<B){if(c+=I+l-B,B-=l,B<k){k-=B;do d[g++]=f[c++];while(--B);if(c=0,l<k){B=l,k-=B;do d[g++]=f[c++];while(--B);c=g-F,m=d}}}else if(c+=l-B,B<k){k-=B;do d[g++]=f[c++];while(--B);c=g-F,m=d}for(;k>2;)d[g++]=m[c++],d[g++]=m[c++],d[g++]=m[c++],k-=3;k&&(d[g++]=m[c++],k>1&&(d[g++]=m[c++]))}else{c=g-F;do d[g++]=d[c++],d[g++]=d[c++],d[g++]=d[c++],k-=3;while(k>2);k&&(d[g++]=d[c++],k>1&&(d[g++]=d[c++]))}}else if((B&64)===0){h=w[(h&65535)+(C&(1<<B)-1)];continue t}else{t.msg="invalid distance code",A.mode=LA;break A}break}}else if((B&64)===0){h=y[(h&65535)+(C&(1<<B)-1)];continue e}else if(B&32){A.mode=xi;break A}else{t.msg="invalid literal/length code",A.mode=LA;break A}break}}while(i<n&&g<Q);k=E>>3,i-=k,E-=k<<3,C&=(1<<E)-1,t.next_in=i,t.next_out=g,t.avail_in=i<n?5+(n-i):5-(i-n),t.avail_out=g<Q?257+(Q-g):257-(g-Q),A.hold=C,A.bits=E}var hA=15,It=852,ot=592,Qt=0,Ee=1,rt=2,bi=[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],Ji=[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],Si=[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],Ri=[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];function oA(t,e,A,i,n,g,r,Q){var a=Q.bits,I=0,o=0,l=0,f=0,C=0,E=0,y=0,w=0,u=0,D=0,h,B,k,F,c,m=null,N=0,d,p=tA(hA+1),G=tA(hA+1),v=null,X=0,AA,L,cA;for(I=0;I<=hA;I++)p[I]=0;for(o=0;o<i;o++)p[e[A+o]]++;for(C=a,f=hA;f>=1&&p[f]===0;f--);if(C>f&&(C=f),f===0)return n[g++]=1<<24|64<<16|0,n[g++]=1<<24|64<<16|0,Q.bits=1,0;for(l=1;l<f&&p[l]===0;l++);for(C<l&&(C=l),w=1,I=1;I<=hA;I++)if(w<<=1,w-=p[I],w<0)return-1;if(w>0&&(t===Qt||f!==1))return-1;for(G[1]=0,I=1;I<hA;I++)G[I+1]=G[I]+p[I];for(o=0;o<i;o++)e[A+o]!==0&&(r[G[e[A+o]]++]=o);if(t===Qt?(m=v=r,d=19):t===Ee?(m=bi,N-=257,v=Ji,X-=257,d=256):(m=Si,v=Ri,d=-1),D=0,o=0,I=l,c=g,E=C,y=0,k=-1,u=1<<C,F=u-1,t===Ee&&u>It||t===rt&&u>ot)return 1;for(;;){AA=I-y,r[o]<d?(L=0,cA=r[o]):r[o]>d?(L=v[X+r[o]],cA=m[N+r[o]]):(L=96,cA=0),h=1<<I-y,B=1<<E,l=B;do B-=h,n[c+(D>>y)+B]=AA<<24|L<<16|cA|0;while(B!==0);for(h=1<<I-1;D&h;)h>>=1;if(h!==0?(D&=h-1,D+=h):D=0,o++,--p[I]===0){if(I===f)break;I=e[A+r[o]]}if(I>C&&(D&F)!==k){for(y===0&&(y=C),c+=l,E=I-y,w=1<<E;E+y<f&&(w-=p[E+y],!(w<=0));)E++,w<<=1;if(u+=1<<E,t===Ee&&u>It||t===rt&&u>ot)return 1;k=D&F,n[k]=C<<24|E<<16|c-g|0}}return D!==0&&(n[c+D]=I-y<<24|64<<16|0),Q.bits=C,0}var Gi=0,_t=1,vt=2,at=4,_i=5,MA=6,QA=0,vi=1,Li=2,H=-2,Lt=-3,ue=-4,Mi=-5,Ct=8,Mt=1,Bt=2,st=3,Et=4,ct=5,ft=6,ht=7,lt=8,dt=9,ut=10,HA=11,P=12,ce=13,wt=14,fe=15,kt=16,Dt=17,Nt=18,mt=19,UA=20,YA=21,yt=22,pt=23,Ft=24,xt=25,bt=26,he=27,Jt=28,St=29,S=30,we=31,Ui=32,Yi=852,Hi=592;function Rt(t){return(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24)}function Ki(){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=tA(320),this.work=tA(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function qi(t){var e;return!t||!t.state?H:(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=Mt,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=IA(Yi),e.distcode=e.distdyn=IA(Hi),e.sane=1,e.back=-1,QA)}function Ti(t){var e;return!t||!t.state?H:(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,qi(t))}function Zi(t,e){var A,i;return!t||!t.state||(i=t.state,e<0?(A=0,e=-e):(A=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15))?H:(i.window!==null&&i.wbits!==e&&(i.window=null),i.wrap=A,i.wbits=e,Ti(t))}function Ut(t,e){var A,i;return t?(i=new Ki,t.state=i,i.window=null,A=Zi(t,e),A!==QA&&(t.state=null),A):H}var Gt=!0,le,de;function Xi(t){if(Gt){var e;for(le=IA(512),de=IA(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(oA(_t,t.lens,0,288,le,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;oA(vt,t.lens,0,32,de,0,t.work,{bits:5}),Gt=!1}t.lencode=le,t.lenbits=9,t.distcode=de,t.distbits=5}function Yt(t,e,A,i){var n,g=t.state;return g.window===null&&(g.wsize=1<<g.wbits,g.wnext=0,g.whave=0,g.window=W(g.wsize)),i>=g.wsize?(z(g.window,e,A-g.wsize,g.wsize,0),g.wnext=0,g.whave=g.wsize):(n=g.wsize-g.wnext,n>i&&(n=i),z(g.window,e,A-i,n,g.wnext),i-=n,i?(z(g.window,e,A-i,i,0),g.wnext=i,g.whave=g.wsize):(g.wnext+=n,g.wnext===g.wsize&&(g.wnext=0),g.whave<g.wsize&&(g.whave+=n))),0}function Ht(t,e){var A,i,n,g,r,Q,a,I,o,l,f,C,E,y,w=0,u,D,h,B,k,F,c,m,N=W(4),d,p,G=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&t.avail_in!==0)return H;A=t.state,A.mode===P&&(A.mode=ce),r=t.next_out,n=t.output,a=t.avail_out,g=t.next_in,i=t.input,Q=t.avail_in,I=A.hold,o=A.bits,l=Q,f=a,m=QA;A:for(;;)switch(A.mode){case Mt:if(A.wrap===0){A.mode=ce;break}for(;o<16;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(A.wrap&2&&I===35615){A.check=0,N[0]=I&255,N[1]=I>>>8&255,A.check=Y(A.check,N,2,0),I=0,o=0,A.mode=Bt;break}if(A.flags=0,A.head&&(A.head.done=!1),!(A.wrap&1)||(((I&255)<<8)+(I>>8))%31){t.msg="incorrect header check",A.mode=S;break}if((I&15)!==Ct){t.msg="unknown compression method",A.mode=S;break}if(I>>>=4,o-=4,c=(I&15)+8,A.wbits===0)A.wbits=c;else if(c>A.wbits){t.msg="invalid window size",A.mode=S;break}A.dmax=1<<c,t.adler=A.check=1,A.mode=I&512?ut:P,I=0,o=0;break;case Bt:for(;o<16;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(A.flags=I,(A.flags&255)!==Ct){t.msg="unknown compression method",A.mode=S;break}if(A.flags&57344){t.msg="unknown header flags set",A.mode=S;break}A.head&&(A.head.text=I>>8&1),A.flags&512&&(N[0]=I&255,N[1]=I>>>8&255,A.check=Y(A.check,N,2,0)),I=0,o=0,A.mode=st;case st:for(;o<32;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}A.head&&(A.head.time=I),A.flags&512&&(N[0]=I&255,N[1]=I>>>8&255,N[2]=I>>>16&255,N[3]=I>>>24&255,A.check=Y(A.check,N,4,0)),I=0,o=0,A.mode=Et;case Et:for(;o<16;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}A.head&&(A.head.xflags=I&255,A.head.os=I>>8),A.flags&512&&(N[0]=I&255,N[1]=I>>>8&255,A.check=Y(A.check,N,2,0)),I=0,o=0,A.mode=ct;case ct:if(A.flags&1024){for(;o<16;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}A.length=I,A.head&&(A.head.extra_len=I),A.flags&512&&(N[0]=I&255,N[1]=I>>>8&255,A.check=Y(A.check,N,2,0)),I=0,o=0}else A.head&&(A.head.extra=null);A.mode=ft;case ft:if(A.flags&1024&&(C=A.length,C>Q&&(C=Q),C&&(A.head&&(c=A.head.extra_len-A.length,A.head.extra||(A.head.extra=new Array(A.head.extra_len)),z(A.head.extra,i,g,C,c)),A.flags&512&&(A.check=Y(A.check,i,C,g)),Q-=C,g+=C,A.length-=C),A.length))break A;A.length=0,A.mode=ht;case ht:if(A.flags&2048){if(Q===0)break A;C=0;do c=i[g+C++],A.head&&c&&A.length<65536&&(A.head.name+=String.fromCharCode(c));while(c&&C<Q);if(A.flags&512&&(A.check=Y(A.check,i,C,g)),Q-=C,g+=C,c)break A}else A.head&&(A.head.name=null);A.length=0,A.mode=lt;case lt:if(A.flags&4096){if(Q===0)break A;C=0;do c=i[g+C++],A.head&&c&&A.length<65536&&(A.head.comment+=String.fromCharCode(c));while(c&&C<Q);if(A.flags&512&&(A.check=Y(A.check,i,C,g)),Q-=C,g+=C,c)break A}else A.head&&(A.head.comment=null);A.mode=dt;case dt:if(A.flags&512){for(;o<16;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(I!==(A.check&65535)){t.msg="header crc mismatch",A.mode=S;break}I=0,o=0}A.head&&(A.head.hcrc=A.flags>>9&1,A.head.done=!0),t.adler=A.check=0,A.mode=P;break;case ut:for(;o<32;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}t.adler=A.check=Rt(I),I=0,o=0,A.mode=HA;case HA:if(A.havedict===0)return t.next_out=r,t.avail_out=a,t.next_in=g,t.avail_in=Q,A.hold=I,A.bits=o,Li;t.adler=A.check=1,A.mode=P;case P:if(e===_i||e===MA)break A;case ce:if(A.last){I>>>=o&7,o-=o&7,A.mode=he;break}for(;o<3;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}switch(A.last=I&1,I>>>=1,o-=1,I&3){case 0:A.mode=wt;break;case 1:if(Xi(A),A.mode=UA,e===MA){I>>>=2,o-=2;break A}break;case 2:A.mode=Dt;break;case 3:t.msg="invalid block type",A.mode=S}I>>>=2,o-=2;break;case wt:for(I>>>=o&7,o-=o&7;o<32;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if((I&65535)!==(I>>>16^65535)){t.msg="invalid stored block lengths",A.mode=S;break}if(A.length=I&65535,I=0,o=0,A.mode=fe,e===MA)break A;case fe:A.mode=kt;case kt:if(C=A.length,C){if(C>Q&&(C=Q),C>a&&(C=a),C===0)break A;z(n,i,g,C,r),Q-=C,g+=C,a-=C,r+=C,A.length-=C;break}A.mode=P;break;case Dt:for(;o<14;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(A.nlen=(I&31)+257,I>>>=5,o-=5,A.ndist=(I&31)+1,I>>>=5,o-=5,A.ncode=(I&15)+4,I>>>=4,o-=4,A.nlen>286||A.ndist>30){t.msg="too many length or distance symbols",A.mode=S;break}A.have=0,A.mode=Nt;case Nt:for(;A.have<A.ncode;){for(;o<3;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}A.lens[G[A.have++]]=I&7,I>>>=3,o-=3}for(;A.have<19;)A.lens[G[A.have++]]=0;if(A.lencode=A.lendyn,A.lenbits=7,d={bits:A.lenbits},m=oA(Gi,A.lens,0,19,A.lencode,0,A.work,d),A.lenbits=d.bits,m){t.msg="invalid code lengths set",A.mode=S;break}A.have=0,A.mode=mt;case mt:for(;A.have<A.nlen+A.ndist;){for(;w=A.lencode[I&(1<<A.lenbits)-1],u=w>>>24,D=w>>>16&255,h=w&65535,!(u<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(h<16)I>>>=u,o-=u,A.lens[A.have++]=h;else{if(h===16){for(p=u+2;o<p;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(I>>>=u,o-=u,A.have===0){t.msg="invalid bit length repeat",A.mode=S;break}c=A.lens[A.have-1],C=3+(I&3),I>>>=2,o-=2}else if(h===17){for(p=u+3;o<p;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}I>>>=u,o-=u,c=0,C=3+(I&7),I>>>=3,o-=3}else{for(p=u+7;o<p;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}I>>>=u,o-=u,c=0,C=11+(I&127),I>>>=7,o-=7}if(A.have+C>A.nlen+A.ndist){t.msg="invalid bit length repeat",A.mode=S;break}for(;C--;)A.lens[A.have++]=c}}if(A.mode===S)break;if(A.lens[256]===0){t.msg="invalid code -- missing end-of-block",A.mode=S;break}if(A.lenbits=9,d={bits:A.lenbits},m=oA(_t,A.lens,0,A.nlen,A.lencode,0,A.work,d),A.lenbits=d.bits,m){t.msg="invalid literal/lengths set",A.mode=S;break}if(A.distbits=6,A.distcode=A.distdyn,d={bits:A.distbits},m=oA(vt,A.lens,A.nlen,A.ndist,A.distcode,0,A.work,d),A.distbits=d.bits,m){t.msg="invalid distances set",A.mode=S;break}if(A.mode=UA,e===MA)break A;case UA:A.mode=YA;case YA:if(Q>=6&&a>=258){t.next_out=r,t.avail_out=a,t.next_in=g,t.avail_in=Q,A.hold=I,A.bits=o,se(t,f),r=t.next_out,n=t.output,a=t.avail_out,g=t.next_in,i=t.input,Q=t.avail_in,I=A.hold,o=A.bits,A.mode===P&&(A.back=-1);break}for(A.back=0;w=A.lencode[I&(1<<A.lenbits)-1],u=w>>>24,D=w>>>16&255,h=w&65535,!(u<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(D&&(D&240)===0){for(B=u,k=D,F=h;w=A.lencode[F+((I&(1<<B+k)-1)>>B)],u=w>>>24,D=w>>>16&255,h=w&65535,!(B+u<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}I>>>=B,o-=B,A.back+=B}if(I>>>=u,o-=u,A.back+=u,A.length=h,D===0){A.mode=bt;break}if(D&32){A.back=-1,A.mode=P;break}if(D&64){t.msg="invalid literal/length code",A.mode=S;break}A.extra=D&15,A.mode=yt;case yt:if(A.extra){for(p=A.extra;o<p;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}A.length+=I&(1<<A.extra)-1,I>>>=A.extra,o-=A.extra,A.back+=A.extra}A.was=A.length,A.mode=pt;case pt:for(;w=A.distcode[I&(1<<A.distbits)-1],u=w>>>24,D=w>>>16&255,h=w&65535,!(u<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if((D&240)===0){for(B=u,k=D,F=h;w=A.distcode[F+((I&(1<<B+k)-1)>>B)],u=w>>>24,D=w>>>16&255,h=w&65535,!(B+u<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}I>>>=B,o-=B,A.back+=B}if(I>>>=u,o-=u,A.back+=u,D&64){t.msg="invalid distance code",A.mode=S;break}A.offset=h,A.extra=D&15,A.mode=Ft;case Ft:if(A.extra){for(p=A.extra;o<p;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}A.offset+=I&(1<<A.extra)-1,I>>>=A.extra,o-=A.extra,A.back+=A.extra}if(A.offset>A.dmax){t.msg="invalid distance too far back",A.mode=S;break}A.mode=xt;case xt:if(a===0)break A;if(C=f-a,A.offset>C){if(C=A.offset-C,C>A.whave&&A.sane){t.msg="invalid distance too far back",A.mode=S;break}C>A.wnext?(C-=A.wnext,E=A.wsize-C):E=A.wnext-C,C>A.length&&(C=A.length),y=A.window}else y=n,E=r-A.offset,C=A.length;C>a&&(C=a),a-=C,A.length-=C;do n[r++]=y[E++];while(--C);A.length===0&&(A.mode=YA);break;case bt:if(a===0)break A;n[r++]=A.length,a--,A.mode=YA;break;case he:if(A.wrap){for(;o<32;){if(Q===0)break A;Q--,I|=i[g++]<<o,o+=8}if(f-=a,t.total_out+=f,A.total+=f,f&&(t.adler=A.check=A.flags?Y(A.check,n,f,r-f):pA(A.check,n,f,r-f)),f=a,(A.flags?I:Rt(I))!==A.check){t.msg="incorrect data check",A.mode=S;break}I=0,o=0}A.mode=Jt;case Jt:if(A.wrap&&A.flags){for(;o<32;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(I!==(A.total&4294967295)){t.msg="incorrect length check",A.mode=S;break}I=0,o=0}A.mode=St;case St:m=vi;break A;case S:m=Lt;break A;case we:return ue;case Ui:default:return H}return t.next_out=r,t.avail_out=a,t.next_in=g,t.avail_in=Q,A.hold=I,A.bits=o,(A.wsize||f!==t.avail_out&&A.mode<S&&(A.mode<he||e!==at))&&Yt(t,t.output,t.next_out,f-t.avail_out)?(A.mode=we,ue):(l-=t.avail_in,f-=t.avail_out,t.total_in+=l,t.total_out+=f,A.total+=f,A.wrap&&f&&(t.adler=A.check=A.flags?Y(A.check,n,f,t.next_out-f):pA(A.check,n,f,t.next_out-f)),t.data_type=A.bits+(A.last?64:0)+(A.mode===P?128:0)+(A.mode===UA||A.mode===fe?256:0),(l===0&&f===0||e===at)&&m===QA&&(m=Mi),m)}function Kt(t){if(!t||!t.state)return H;var e=t.state;return e.window&&(e.window=null),t.state=null,QA}function qt(t,e){var A;return!t||!t.state||(A=t.state,(A.wrap&2)===0)?H:(A.head=e,e.done=!1,QA)}function ke(t,e){var A=e.length,i,n,g;return!t||!t.state||(i=t.state,i.wrap!==0&&i.mode!==HA)?H:i.mode===HA&&(n=1,n=pA(n,e,A,0),n!==i.check)?Lt:(g=Yt(t,e,A,A),g?(i.mode=we,ue):(i.havedict=1,QA))}var KA={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"};function De(){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 Ne=Object.prototype.toString,me=class t{constructor(e){if(!(this instanceof t))return new t(e);this.options=$e({chunkSize:16384,windowBits:0,to:""},e||{});var A=this.options;A.raw&&A.windowBits>=0&&A.windowBits<16&&(A.windowBits=-A.windowBits,A.windowBits===0&&(A.windowBits=-15)),A.windowBits>=0&&A.windowBits<16&&!(e&&e.windowBits)&&(A.windowBits+=32),A.windowBits>15&&A.windowBits<48&&(A.windowBits&15)===0&&(A.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new De,this.strm.avail_out=0;var i=Ut(this.strm,A.windowBits);if(i!==eA)throw new Error(KA[i]);if(this.header=new Be,qt(this.strm,this.header),A.dictionary&&(typeof A.dictionary=="string"?A.dictionary=Ce(A.dictionary):Ne.call(A.dictionary)==="[object ArrayBuffer]"&&(A.dictionary=new Uint8Array(A.dictionary)),A.raw&&(i=ke(this.strm,A.dictionary),i!==eA)))throw new Error(KA[i])}push(e,A){var i=this.strm,n=this.options.chunkSize,g=this.options.dictionary,r,Q,a,I,o,l,f=!1;if(this.ended)return!1;Q=A===~~A?A:A===!0?DA:Qe,typeof e=="string"?i.input=tt(e):Ne.call(e)==="[object ArrayBuffer]"?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(i.avail_out===0&&(i.output=W(n),i.next_out=0,i.avail_out=n),r=Ht(i,Qe),r===je&&g&&(typeof g=="string"?l=Ce(g):Ne.call(g)==="[object ArrayBuffer]"?l=new Uint8Array(g):l=g,r=ke(this.strm,l)),r===Ve&&f===!0&&(r=eA,f=!1),r!==NA&&r!==eA)return this.onEnd(r),this.ended=!0,!1;i.next_out&&(i.avail_out===0||r===NA||i.avail_in===0&&(Q===DA||Q===re))&&(this.options.to==="string"?(a=gt(i.output,i.next_out),I=i.next_out-a,o=it(i.output,a),i.next_out=I,i.avail_out=n-I,I&&z(i.output,i.output,a,I,0),this.onData(o)):this.onData(vA(i.output,i.next_out))),i.avail_in===0&&i.avail_out===0&&(f=!0)}while((i.avail_in>0||i.avail_out===0)&&r!==NA);return r===NA&&(Q=DA),Q===DA?(r=Kt(this.strm),this.onEnd(r),this.ended=!0,r===eA):(Q===re&&(this.onEnd(eA),i.avail_out=0),!0)}onData(e){this.chunks.push(e)}onEnd(e){e===eA&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=_A(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg}};function zi(t,e){var A=new me(e);if(A.push(t,!0),A.err)throw A.msg||KA[A.err];return A.result}var Tt=zi;function Zt(t,e,A){let i=[],n=0,g=e;for(;n+26<=t.length&&!(t[n]!==31||t[n+1]!==139||t[n+2]!==8||t[n+3]!==4||t[n+10]!==6||t[n+12]!==66||t[n+13]!==67);){let r=(t[n+16]|t[n+17]<<8)+1;if(r<26||n+r>t.length)break;let Q=n+r-8,a=(t[Q+4]|t[Q+5]<<8|t[Q+6]<<16|t[Q+7]<<24)>>>0;if(i.push({inputOffset:n,compressedSize:r,decompressedSize:a,filePosition:g}),g>=A)break;n+=r,g+=r}return i}function Xt(t){let e=0;for(let n of t)e+=n.length;let A=new Uint8Array(e),i=0;for(let n of t)A.set(n,i),i+=n.length;return A}var iA={};iA.d=(t,e)=>{if(Array.isArray(e))for(var A=0;A<e.length;){var i=e[A++],n=e[A++];iA.o(t,i)?n===0&&A++:n===0?Object.defineProperty(t,i,{enumerable:!0,value:e[A++]}):Object.defineProperty(t,i,{enumerable:!0,get:n})}else for(var i in e)iA.o(e,i)&&!iA.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})};iA.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);iA.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var Fe={};iA.r(Fe);iA.d(Fe,{ChunkSliceResult:()=>dA,__wbg_Error_92b29b0548f8b746:()=>Wi,__wbg___wbindgen_throw_344f42d3211c4765:()=>Pi,__wbg_set_wasm:()=>ei,decompress_all:()=>Wt,decompress_chunk_slice:()=>Pt});var Oi="data:application/wasm;base64,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AghBAUEAEBUACywCAX8BfiMAQRBrIgEkACAAKQIAIQIgASAANgIMIAEgAjcCBCABQQRqEGYACyMBAX8jAEEQayICJAAgAiABNgIMIAIgADYCCCACQQhqEGUACyAAAkAgASgCAEUNACAAQbiXwAA2AgQgACABNgIADwsACx4BAX8CQCAAKAIAIgJFDQAgASACIAAoAgQQTQ8LAAsbAQF/EGogAEEEakEEEFgiASAANgIAIAFBBGoLHgEBfwJAIAAoAgAiAUEBSA0AIAAoAgQgAUEBEFMLCx4AIAAoAgAgACgCBEEAKALomkAiAEEEIAAbEQQAAAsjAQF/AkBBhIrAABAtIgANAEG4icAAQTpB9InAABA4AAsgAAsXAAJAIABBf2pBfk8NACABIABBARBTCwscAQF/AkAgACgCACIBRQ0AIAAoAgQgAUEBEFMLCxcAAkAgAUEJSQ0AIAEgABAODwsgABACCxUAIABBfGoiACAAKAIAQQRqQQQQUwsUAAJAIABFDQAgACABEF8ACxBWAAsRACAAIAFBAXRBAXIgAhAxAAsSAAJAIAFFDQAgACABIAIQUwsLEgAgACABIAIgAyAEQQAgBRADCxUAAkAgAEUNACAAIAAoAqhaEQIACwsaACAAQQApAoSWQDcCCCAAQQApAvyVQDcCAAsaACAAQQApAvSVQDcCCCAAQQApAuyVQDcCAAsWACAAKAIAIAEgAiAAKAIEKAIMEQcACw0AIAAgASACIAMQBw8LFABBACAANgK8mkBBAEEBNgK4mkALEwAgAEG4l8AANgIEIAAgATYCAAsQACABIAAoAgAgACgCBBBNCxAAIAEgACgCACAAKAIEEAoLCwAgACABIAIQKg8LCgAgACABEGkaAAsPACAAQZyVwAAgASACEAwLEQBBkJjAAEEjQaSYwAAQMQALCwAgACMAaiQAIwALCQAgACABEEQPCwkAIAAgARAuDwsJACAAIAEQYQALDABBr4fAAEEbEFoACw0AQcqHwABBzwAQWgALCQAgASAAEDsACwwAIAAgASkCADcDAAsJACABIAAQXQALDQAgAUH8mcAAQRgQCgsIACAAIAEQAAsIACAAIAEQAQsJACAAKAIAEEoLBwAgABA5AAsHACAAEEAACwcAIAAQJgALCwBBAEEBOgDAnkALCQAgAEEANgIACwUAEGsACwMADwsDAAALAgALC74aAgBBgIDAAAuUGkF0dGVtcHRlZCB0byBpbml0aWFsaXplIHRocmVhZC1sb2NhbCB3aGlsZSBpdCBpcyBiZWluZyBkcm9wcGVkFnNsaWNlIGluZGV4IHN0YXJ0cyBhdCDADSBidXQgZW5kcyBhdCDAABJyYW5nZSBzdGFydCBpbmRleCDAIiBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCDAABByYW5nZSBlbmQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAvcnVzdGMvNDhhMjI5Y2VhZWZkNDk4NWM1MDk5MGIxNDExNmI2ZDg1NmFmMDk4NS9saWJyYXJ5L3N0ZC9zcmMvc3lzL3RocmVhZF9sb2NhbC9ub190aHJlYWRzLnJzAC9ydXN0Yy80OGEyMjljZWFlZmQ0OTg1YzUwOTkwYjE0MTE2YjZkODU2YWYwOTg1L2xpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9yd2xvY2svbm9fdGhyZWFkcy5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi93YXNtLWJpbmRnZW4tMC4yLjEyNi9zcmMvZXh0ZXJucmVmLnJzAC9ydXN0Yy80OGEyMjljZWFlZmQ0OTg1YzUwOTkwYjE0MTE2YjZkODU2YWYwOTg1L2xpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMvbW9kLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjEzL3NyYy9kbG1hbGxvYy5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9saWJkZWZsYXRlci0xLjI1LjIvc3JjL2xpYi5ycwAA1gAQAF4AAABrAAAADQAAAMwCEAAKAAAAHAAAACQAAADMAhAACgAAAMIAAAApAAAAzAIQAAoAAAC2AAAAJwAAAMwCEAAKAAAAcQAAABwAAADMAhAACgAAAG0AAABBAAAAZGVjb21wcmVzc2lvbiBmYWlsZWRpbnZhbGlkIGJnemYgaGVhZGVyAMwCEAAKAAAATAAAAD0A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",dA=class t{static __wrap(e){let A=Object.create(t.prototype);return A.__wbg_ptr=e,zt.register(A,A.__wbg_ptr,A),A}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,zt.unregister(this),e}free(){let e=this.__destroy_into_raw();x.__wbg_chunksliceresult_free(e,0)}take_buffer(){try{let n=x.__wbindgen_add_to_stack_pointer(-16);x.chunksliceresult_take_buffer(n,this.__wbg_ptr);var e=U().getInt32(n+0,!0),A=U().getInt32(n+4,!0),i=jt(e,A).slice();return x.__wbindgen_export(e,A*1,1),i}finally{x.__wbindgen_add_to_stack_pointer(16)}}take_cpositions(){try{let n=x.__wbindgen_add_to_stack_pointer(-16);x.chunksliceresult_take_cpositions(n,this.__wbg_ptr);var e=U().getInt32(n+0,!0),A=U().getInt32(n+4,!0),i=Ot(e,A).slice();return x.__wbindgen_export(e,A*8,8),i}finally{x.__wbindgen_add_to_stack_pointer(16)}}take_dpositions(){try{let n=x.__wbindgen_add_to_stack_pointer(-16);x.chunksliceresult_take_dpositions(n,this.__wbg_ptr);var e=U().getInt32(n+0,!0),A=U().getInt32(n+4,!0),i=Ot(e,A).slice();return x.__wbindgen_export(e,A*8,8),i}finally{x.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(dA.prototype[Symbol.dispose]=dA.prototype.free);function Wt(t){try{let r=x.__wbindgen_add_to_stack_pointer(-16),Q=$t(t,x.__wbindgen_export2),a=be;x.decompress_all(r,Q,a);var e=U().getInt32(r+0,!0),A=U().getInt32(r+4,!0),i=U().getInt32(r+8,!0),n=U().getInt32(r+12,!0);if(n)throw Ai(i);var g=jt(e,A).slice();return x.__wbindgen_export(e,A*1,1),g}finally{x.__wbindgen_add_to_stack_pointer(16)}}function Pt(t,e,A,i,n){try{let a=x.__wbindgen_add_to_stack_pointer(-16),I=$t(t,x.__wbindgen_export2),o=be;x.decompress_chunk_slice(a,I,o,e,A,i,n);var g=U().getInt32(a+0,!0),r=U().getInt32(a+4,!0),Q=U().getInt32(a+8,!0);if(Q)throw Ai(r);return dA.__wrap(g)}finally{x.__wbindgen_add_to_stack_pointer(16)}}function Wi(t,e){let A=Error(Vt(t,e));return ji(A)}function Pi(t,e){throw new Error(Vt(t,e))}var zt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>x.__wbg_chunksliceresult_free(t,1));function ji(t){FA===j.length&&j.push(j.length+1);let e=FA;return FA=j[e],j[e]=t,e}function Vi(t){t<1028||(j[t]=FA,FA=t)}function Ot(t,e){return t=t>>>0,$i().subarray(t/8,t/8+e)}function jt(t,e){return t=t>>>0,xe().subarray(t/1,t/1+e)}var lA=null;function U(){return(lA===null||lA.buffer.detached===!0||lA.buffer.detached===void 0&&lA.buffer!==x.memory.buffer)&&(lA=new DataView(x.memory.buffer)),lA}var qA=null;function $i(){return(qA===null||qA.byteLength===0)&&(qA=new Float64Array(x.memory.buffer)),qA}function Vt(t,e){return tg(t>>>0,e)}var TA=null;function xe(){return(TA===null||TA.byteLength===0)&&(TA=new Uint8Array(x.memory.buffer)),TA}function Ag(t){return j[t]}var j=new Array(1024).fill(void 0);j.push(void 0,null,!0,!1);var FA=j.length;function $t(t,e){let A=e(t.length*1,1)>>>0;return xe().set(t,A/1),be=t.length,A}function Ai(t){let e=Ag(t);return Vi(t),e}var ZA=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});ZA.decode();var eg=2146435072,ye=0;function tg(t,e){return ye+=e,ye>=eg&&(ZA=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),ZA.decode(),ye=e),ZA.decode(xe().subarray(t,t+e).slice())}var be=0,x;function ei(t){x=t}var rA=null,pe=null;async function ti(){return rA||(pe||(pe=(async()=>{let e=await(await fetch(Oi)).arrayBuffer(),{instance:A}=await WebAssembly.instantiate(e,{"./bgzf_wasm_bg.js":Fe});return rA=A.exports,ei(rA),rA})()),pe)}async function ii(t){return rA||await ti(),Wt(t)}async function gi(t,e,A,i,n){rA||await ti();let g=Pt(t,e,A,i,n),r=g.take_buffer(),Q=g.take_cpositions(),a=g.take_dpositions();return g.free(),{buffer:r,cpositions:Q,dpositions:a}}var ig=26;function Ii(t){return t[0]===31&&t[1]===139}function gg(t){return t.length>=ig&&Ii(t)&&t[2]===8&&t[3]===4&&t[10]===6&&t[12]===66&&t[13]===67}function oi(t){return t instanceof Error?t.message:`${t}`}async function ni(t){if(typeof DecompressionStream<"u"){let e=new Blob([t]).stream().pipeThrough(new DecompressionStream("gzip"));return new Uint8Array(await new Response(e).arrayBuffer())}else return Tt(t,void 0)}function Qi(t){return oi(t).includes("invalid gzip header")?new Error("problem decompressing block: incorrect gzip header check",{cause:t}):t}async function xA(t){if(t.length===0)return new Uint8Array(0);if(!gg(t)){if(Ii(t))return ni(t);throw new Error("problem decompressing block: not a valid bgzf or gzip block")}try{return await ii(t)}catch(e){if(oi(e).includes("invalid bgzf header"))return ni(t);throw Qi(e)}}function ng(t,e,A,i){let n=[],g=[],r=[],Q=A.dataPosition;for(let a=0;a<t.length;a++){let I=t[a],o=e[a],l=o.filePosition>=i.blockPosition;n.push(o.filePosition),g.push(Q);let f=a===0?A.dataPosition:0,C=l?Math.min(i.dataPosition+1,I.length):I.length;if(f<C&&r.push(I.subarray(f,C)),Q+=I.length-f,l){n.push(o.filePosition+o.compressedSize),g.push(Q);break}}return{buffer:Xt(r),cpositions:Float64Array.from(n),dpositions:Float64Array.from(g)}}var ri=4e5;function Ig(t){let e=0;for(let A of t)e+=A.decompressedSize;return e}async function Je(t,e,A){let{minv:i,maxv:n}=e;if(A){let g=Zt(t,i.blockPosition,n.blockPosition);if(Ig(g)>=ri){let r=await A.decompressBlocks(t,g);return ng(r.blocks,g,i,n)}}try{let g=await gi(t,i.blockPosition,i.dataPosition,n.blockPosition,n.dataPosition);return{buffer:g.buffer,cpositions:g.cpositions,dpositions:g.dpositions}}catch(g){throw Qi(g)}}function XA(t){if(t?.aborted)throw Se(t)}function Se(t){let e=t.reason;return e===void 0?new DOMException("This operation was aborted","AbortError"):e}function og(t){typeof t=="object"&&t!==null&&"unref"in t&&typeof t.unref=="function"&&t.unref()}var gA=class{entries=new Map;total=0;settledCount=0;limit;budget;membership;fill;sizeOf;toCacheKey;evictionPolicy;pending=0;batch=0;idleTimeoutMs;sweepTimer;constructor({fill:e,maxSize:A=1/0,sizeOf:i=()=>1,cacheKey:n=a=>String(a),evictionPolicy:g="lru",idleTimeoutMs:r=0,budget:Q}={}){this.fill=e,this.evictionPolicy=g,this.limit=A,this.budget=Q,this.membership=Q?.register(this),this.sizeOf=i,this.toCacheKey=n,this.idleTimeoutMs=r>0?r:void 0}get size(){return this.entries.size}get totalSize(){return this.total}get maxSize(){return this.limit}set maxSize(e){this.limit=e,this.evict()}waiterCount(e){return this.entries.get(this.toCacheKey(e))?.signals.size??0}async get(e,A,i){XA(A);let n=this.toCacheKey(e),g=this.entries.get(n);g&&(this.isDoomed(g)?(this.deleteKey(n),g=void 0):this.touch(n,g)),g??=this.start(n,e,i),g.settled||this.join(g,A);try{let r=await this.settleFor(g,A);return XA(A),r}catch(r){throw XA(A),r}}settleFor(e,A){if(e.settled||A===void 0||typeof A.addEventListener!="function")return e.promise;let i=new AbortController;return Promise.race([e.promise,new Promise((n,g)=>{A.addEventListener("abort",()=>{g(Se(A))},{once:!0,signal:i.signal})})]).finally(()=>{i.abort()})}getIfCached(e){let A=this.toCacheKey(e),i=this.entries.get(A);if(i){if(this.isDoomed(i)){this.deleteKey(A);return}return this.touch(A,i),i.promise}}has(e){let A=this.entries.get(this.toCacheKey(e));return A!==void 0&&!this.isDoomed(A)}delete(e){this.deleteKey(this.toCacheKey(e))}clear(){for(let e of this.entries.values())this.detach(e);this.entries.clear(),this.charge(-this.total),this.total=0,this.settledCount=0,this.stopSweep()}touch(e,A){this.entries.delete(e),this.entries.set(e,A),A.batch=this.batch,A.lastTouched=Date.now(),A.seq=this.stamp()}stamp(){return this.budget?this.budget.nextSeq():0}isDoomed(e){return!e.settled&&e.controller.signal.aborted}sweepIdle(){let e=this.idleTimeoutMs;if(e===void 0)return;let A=Date.now()-e,i=0;for(let[n,g]of this.entries)g.settled&&(g.lastTouched<=A?this.deleteKey(n):i++);i===0&&this.stopSweep()}startSweep(){let e=this.idleTimeoutMs;if(e===void 0||this.sweepTimer!==void 0)return;let A=Math.max(1e3,Math.floor(e/4));this.sweepTimer=setInterval(()=>{this.sweepIdle()},A),og(this.sweepTimer)}stopSweep(){this.sweepTimer!==void 0&&(clearInterval(this.sweepTimer),this.sweepTimer=void 0)}start(e,A,i){let n=i??(this.fill&&(a=>this.fill(A,a)));if(!n)throw new Error("SharedReadCache needs a fill, either on the cache or on the get() call");let g=new AbortController,r={promise:n(g.signal),signals:new Set,pinned:!1,controller:g,dispose:new AbortController,settled:!1,counted:!0,size:0,batch:this.batch,lastTouched:Date.now(),seq:this.stamp()};this.entries.set(e,r),this.pending++;let Q=()=>{r.settled=!0,this.detach(r),r.dispose.abort(),r.signals.clear()};return r.promise.then(a=>{if(Q(),this.entries.get(e)===r){let I=this.weigh(a);I===void 0?this.entries.delete(e):(r.lastTouched=Date.now(),this.settledCount++,r.size=I,this.total+=I,this.charge(I),this.startSweep())}this.maybeEvict()},()=>{this.entries.get(e)===r&&this.deleteKey(e),Q(),this.maybeEvict()}),r}weigh(e){try{let A=this.sizeOf(e);return Number.isFinite(A)&&A>=0?A:void 0}catch{return}}join(e,A){A===void 0?e.pinned=!0:A.aborted?!e.pinned&&e.signals.size===0&&e.controller.abort(A.reason):typeof A.addEventListener!="function"?e.pinned=!0:e.signals.has(A)||(e.signals.add(A),A.addEventListener("abort",()=>{e.signals.delete(A),!e.pinned&&e.signals.size===0&&(e.controller.abort(A.reason),this.detach(e))},{once:!0,signal:e.dispose.signal}))}deleteKey(e){let A=this.entries.get(e);A&&(this.entries.delete(e),this.detach(A),A.settled&&this.settledCount--,this.total-=A.size,this.charge(-A.size))}detach(e){e.counted&&(e.counted=!1,this.pending--)}charge(e){this.budget&&this.membership&&this.budget.charge(this.membership,e)}lruSpare(){if(!(this.settledCount<=1)){for(let[e,A]of this.entries)if(A.settled)return{cacheKey:e,seq:A.seq}}}release(e){this.deleteKey(e)}maybeEvict(){(this.evictionPolicy==="lru"||this.pending===0)&&(this.evict(),this.evictionPolicy==="batch"&&this.batch++,this.budget?.evict())}evict(){if(this.limit!==1/0){if(this.evictionPolicy==="batch"){for(let[e,A]of this.entries){if(this.total<=this.limit)break;A.batch!==this.batch&&A.settled&&this.deleteKey(e)}return}if(!(this.total<=this.limit))for(let[e,A]of this.entries){if(this.total<=this.limit||this.settledCount<=1)break;A.settled&&this.deleteKey(e)}}}};async function zA(t){return t.bytes?t.bytes():new Uint8Array(await t.arrayBuffer())}async function ai(t,e,A){if(e==="utf8"||e==="utf-8")return t.text();if(e)throw new Error(`unsupported encoding: ${e}`);return A&&"body"in t?Re(t,A):zA(t)}function Ci(t){return typeof t=="string"?{encoding:t,opts:{}}:{encoding:t?.encoding,opts:t??{}}}function Bi(t){let e=/\/(\d+)$/.exec(t??"")?.[1];return e===void 0?void 0:parseInt(e,10)}function Qg(t){let e=t.headers.get("content-length"),A=e===null?Number.NaN:Number(e);return Number.isSafeInteger(A)&&A>=0?A:void 0}var rg=50;async function Re(t,e){let A=Qg(t),i=t.body;if(!i||A===void 0){let a=await zA(t);return e(a.byteLength,A??a.byteLength),a}let n=i.getReader(),g=new Uint8Array(A),r=0,Q=Date.now();e(0,A);for(let a=await n.read();!a.done;a=await n.read()){if(r+a.value.byteLength>g.length){let o=new Uint8Array(Math.max(r+a.value.byteLength,g.length*2));o.set(g.subarray(0,r)),g=o}g.set(a.value,r),r+=a.value.byteLength;let I=Date.now();I-Q>=rg&&(Q=I,e(r,A))}return e(r,A),r===g.length?g:g.slice(0,r)}function ag(t,e={}){let A=new Set(Object.keys(e).map(n=>n.toLowerCase())),i=Object.entries(t).filter(([n])=>!A.has(n.toLowerCase()));return{...Object.fromEntries(i),...e}}function si(t){return Number.isSafeInteger(t)&&t>=0}function Cg(t){return(typeof t=="object"&&t!==null&&"message"in t&&typeof t.message=="string"?t.message:`${t}`).replace(/\.$/,"")}var V=class{url;get source(){return this.url}_stat;statProbe;fetchImplementation;baseHeaders;baseOverrides;baseSignal;constructor(e,A={}){this.url=e,this.baseHeaders=A.headers??{},this.baseOverrides=A.overrides??{},this.baseSignal=A.signal,this.fetchImplementation=A.fetch??globalThis.fetch.bind(globalThis)}buildRequest(e,A){let i=e.signal??this.baseSignal;return{method:"GET",redirect:"follow",mode:"cors",...this.baseOverrides,...e.overrides,headers:ag({...this.baseHeaders,...e.headers},A),...i?{signal:i}:{}}}async fetch(e,A){let i=g=>new Error(`${Cg(g)} fetching ${e}`,{cause:g}),n;try{n=await this.fetchImplementation(e,A)}catch(g){if(`${g}`.includes("Failed to fetch")){console.warn(`generic-filehandle: refetching ${e} to attempt to work around chrome CORS header caching bug`);try{n=await this.fetchImplementation(e,{...A,cache:"reload"})}catch(r){throw i(r)}}else throw i(g)}return n}async read(e,A,i={}){if(e===0)return new Uint8Array(0);if(!si(e)||!si(A))throw new TypeError(`read() called with an invalid length or position (length=${e}, position=${A}). The index file may be corrupt.`);return this.fetchBytes(e,A,i)}async fetchBytes(e,A,i){let n=await this.fetch(this.url,this.buildRequest(i,{range:`bytes=${A}-${A+e-1}`}));if(n.status===416)return new Uint8Array(0);if(this.checkOk(n),n.status===200&&A===0||n.status===206){let g=Bi(n.headers.get("content-range"));g!==void 0&&(this._stat={size:g});let r=i.onProgress?await Re(n,i.onProgress):await zA(n);return!this._stat&&n.status===200&&(this._stat={size:r.byteLength}),r.byteLength<=e?r:r.slice(0,e)}throw new Error(n.status===200?`${this.url} fetch returned status 200, expected 206`:`HTTP ${n.status} fetching ${this.url}`)}checkOk(e){if(!e.ok)throw new Error(`HTTP ${e.status} fetching ${this.url}`)}async readFile(e){let{encoding:A,opts:i}=Ci(e),n=await this.fetch(this.url,this.buildRequest(i));this.checkOk(n);let g=await ai(n,A,i.onProgress);return n.status===200&&typeof g!="string"&&(this._stat={size:g.byteLength}),g}async stat(){return this._stat||(this.statProbe??=this.read(10,0).finally(()=>{this.statProbe=void 0}),await this.statProbe),this._stat??{size:0}}close(){return Promise.resolve()}};var aA=class{source;constructor(e,A={}){this.source=e}unimplemented(){return Promise.reject(new Error(`LocalFile is unimplemented in the browser (${this.source})`))}readFile(e){return this.unimplemented()}read(e,A,i){return this.unimplemented()}stat(){return this.unimplemented()}close(){return this.unimplemented()}};var O=class{minv;maxv;bin;endPosition;constructor(e,A,i,n=A.blockPosition+65536){this.minv=e,this.maxv=A,this.bin=i,this.endPosition=n}toString(){return`${this.minv.toString()}..${this.maxv.toString()} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}fetchedSize(){return this.endPosition-this.minv.blockPosition}};var _=function(t,e,A,i,n){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!n)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?n.call(t,A):n?n.value=A:e.set(t,A),A},s=function(t,e,A,i){if(A==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return A==="m"?i:A==="a"?i.call(t):i?i.value:e.get(t)},b,M,J,R,CA,bA,BA,OA,Z,Ei,Ge,_e,ve,ci,WA,JA=class extends Map{constructor(e={}){if(super(),b.add(this),M.set(this,0),J.set(this,new Map),R.set(this,new Map),CA.set(this,void 0),bA.set(this,void 0),BA.set(this,void 0),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof e.maxAge=="number"&&e.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");_(this,CA,e.maxSize,"f"),_(this,bA,e.maxAge||Number.POSITIVE_INFINITY,"f"),_(this,BA,e.onEviction,"f")}get __oldCache(){return s(this,R,"f")}get(e){if(s(this,J,"f").has(e)){let A=s(this,J,"f").get(e);return s(this,b,"m",Ge).call(this,e,A)}if(s(this,R,"f").has(e)){let A=s(this,R,"f").get(e);if(!s(this,b,"m",Z).call(this,e,A))return s(this,b,"m",ci).call(this,e,A),A.value}}set(e,A,{maxAge:i=s(this,bA,"f")}={}){let n=typeof i=="number"&&i!==Number.POSITIVE_INFINITY?Date.now()+i:void 0;return s(this,J,"f").has(e)?s(this,J,"f").set(e,{value:A,expiry:n}):s(this,b,"m",ve).call(this,e,{value:A,expiry:n}),this}has(e){return s(this,J,"f").has(e)?!s(this,b,"m",Z).call(this,e,s(this,J,"f").get(e)):s(this,R,"f").has(e)?!s(this,b,"m",Z).call(this,e,s(this,R,"f").get(e)):!1}peek(e){if(s(this,J,"f").has(e))return s(this,b,"m",_e).call(this,e,s(this,J,"f"));if(s(this,R,"f").has(e))return s(this,b,"m",_e).call(this,e,s(this,R,"f"))}expiresIn(e){let A=s(this,J,"f").get(e)??s(this,R,"f").get(e);if(A)return A.expiry?A.expiry-Date.now():Number.POSITIVE_INFINITY}delete(e){var A;let i=s(this,J,"f").delete(e);return i&&_(this,M,(A=s(this,M,"f"),A--,A),"f"),s(this,R,"f").delete(e)||i}clear(){s(this,J,"f").clear(),s(this,R,"f").clear(),_(this,M,0,"f")}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");let A=[...s(this,b,"m",WA).call(this)],i=A.length-e;i<0?(_(this,J,new Map(A),"f"),_(this,R,new Map,"f"),_(this,M,A.length,"f")):(i>0&&s(this,b,"m",OA).call(this,A.slice(0,i)),_(this,R,new Map(A.slice(i)),"f"),_(this,J,new Map,"f"),_(this,M,0,"f")),_(this,CA,e,"f")}evict(e=1){let A=e;if(!A||A<=0)return;let i=[...s(this,b,"m",WA).call(this)],n=Math.trunc(Math.min(A,Math.max(i.length-1,0)));n<=0||(s(this,b,"m",OA).call(this,i.slice(0,n)),_(this,R,new Map(i.slice(n)),"f"),_(this,J,new Map,"f"),_(this,M,0,"f"))}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[(M=new WeakMap,J=new WeakMap,R=new WeakMap,CA=new WeakMap,bA=new WeakMap,BA=new WeakMap,b=new WeakSet,OA=function(A){if(typeof s(this,BA,"f")=="function")for(let[i,n]of A)s(this,BA,"f").call(this,i,n.value)},Z=function(A,i){return typeof i.expiry=="number"&&i.expiry<=Date.now()?(typeof s(this,BA,"f")=="function"&&s(this,BA,"f").call(this,A,i.value),this.delete(A)):!1},Ei=function(A,i){if(!s(this,b,"m",Z).call(this,A,i))return i.value},Ge=function(A,i){return i.expiry?s(this,b,"m",Ei).call(this,A,i):i.value},_e=function(A,i){let n=i.get(A);return s(this,b,"m",Ge).call(this,A,n)},ve=function(A,i){var n;s(this,J,"f").set(A,i),_(this,M,(n=s(this,M,"f"),n++,n),"f"),s(this,M,"f")>=s(this,CA,"f")&&(_(this,M,0,"f"),s(this,b,"m",OA).call(this,s(this,R,"f")),_(this,R,s(this,J,"f"),"f"),_(this,J,new Map,"f"))},ci=function(A,i){s(this,R,"f").delete(A),s(this,b,"m",ve).call(this,A,i)},WA=function*(){for(let A of s(this,R,"f")){let[i,n]=A;s(this,J,"f").has(i)||s(this,b,"m",Z).call(this,i,n)||(yield A)}for(let A of s(this,J,"f")){let[i,n]=A;s(this,b,"m",Z).call(this,i,n)||(yield A)}},Symbol.iterator)](){for(let e of s(this,J,"f")){let[A,i]=e;s(this,b,"m",Z).call(this,A,i)||(yield[A,i.value])}for(let e of s(this,R,"f")){let[A,i]=e;s(this,J,"f").has(A)||s(this,b,"m",Z).call(this,A,i)||(yield[A,i.value])}}*entriesDescending(){let e=[...s(this,J,"f")];for(let A=e.length-1;A>=0;--A){let i=e[A],[n,g]=i;s(this,b,"m",Z).call(this,n,g)||(yield[n,g.value])}e=[...s(this,R,"f")];for(let A=e.length-1;A>=0;--A){let i=e[A],[n,g]=i;s(this,J,"f").has(n)||s(this,b,"m",Z).call(this,n,g)||(yield[n,g.value])}}*entriesAscending(){for(let[e,A]of s(this,b,"m",WA).call(this))yield[e,A.value]}get size(){if(!s(this,M,"f"))return s(this,R,"f").size;let e=0;for(let A of s(this,R,"f").keys())s(this,J,"f").has(A)||e++;return Math.min(s(this,M,"f")+e,s(this,CA,"f"))}get maxSize(){return s(this,CA,"f")}get maxAge(){return s(this,bA,"f")}entries(){return this.entriesAscending()}forEach(e,A=this){for(let[i,n]of this.entriesAscending())e.call(A,n,i,this)}get[Symbol.toStringTag](){return"QuickLRU"}toString(){return`QuickLRU(${this.size}/${this.maxSize})`}[Symbol.for("nodejs.util.inspect.custom")](){return this.toString()}};function fi(t,e=0){let A=t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24;return((t[e+4]|t[e+5]<<8|t[e+6]<<16|t[e+7]<<24)>>>0)*4294967296+(A>>>0)}var uA=class{blockPosition;dataPosition;constructor(e,A){this.blockPosition=e,this.dataPosition=A}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(e){return this.blockPosition-e.blockPosition||this.dataPosition-e.dataPosition}};function nA(t,e=0){return new uA(t[e+7]*1099511627776+t[e+6]*4294967296+t[e+5]*16777216+t[e+4]*65536+t[e+3]*256+t[e+2],t[e+1]<<8|t[e])}function PA(t,e){let A=t.length;if(A===0)return t;let i;if(e){let Q=e.blockPosition,a=e.dataPosition;i=[];for(let I=0;I<A;I++){let o=t[I];(o.maxv.blockPosition-Q||o.maxv.dataPosition-a)>0&&i.push(o)}if(i.length===0)return i}else i=t;i.sort((Q,a)=>{let I=Q.minv.blockPosition-a.minv.blockPosition;return I===0?Q.minv.dataPosition-a.minv.dataPosition:I});let n=[i[0]],g=i[0].minv.blockPosition,r=i[0].maxv.blockPosition;for(let Q=1;Q<i.length;Q++){let a=i[Q],I=a.minv.blockPosition,o=a.maxv.blockPosition;if(I-r<65e3&&o-g<5e6){let l=n.at(-1);(o-r||a.maxv.dataPosition-l.maxv.dataPosition)>0&&(n[n.length-1]=new O(l.minv,a.maxv,l.bin,a.endPosition),r=o)}else n.push(a),g=I,r=o}return Bg(n)}function Bg(t){let e=[t[0]];for(let A=1;A<t.length;A++){let i=t[A],n=e.at(-1).maxv;if((i.minv.blockPosition-n.blockPosition||i.minv.dataPosition-n.dataPosition)>=0){e.push(i);continue}(i.maxv.blockPosition-n.blockPosition||i.maxv.dataPosition-n.dataPosition)>0&&e.push(new O(n,i.maxv,i.bin,i.endPosition))}return e}function jA(t,e=[]){let A=[...e];for(let i of t)A.push(i.minv.blockPosition,i.maxv.blockPosition);A.sort((i,n)=>i-n);for(let i of t){let n=i.maxv.blockPosition,g=0,r=A.length;for(;g<r;){let Q=g+r>>>1;A[Q]>n?r=Q:g=Q+1}g<A.length&&(i.endPosition=Math.min(i.endPosition,A[g]))}}function VA(t,e,A,i){let n=i?i.blockPosition:1/0,g=i?i.dataPosition:0,r=!1;for(let Q=0;Q<A;Q++){let a=e+Q*8,I=t[a+7]*1099511627776+t[a+6]*4294967296+t[a+5]*16777216+t[a+4]*65536+t[a+3]*256+t[a+2],o=t[a+1]<<8|t[a];(I<n||I===n&&o<g)&&(n=I,g=o,r=!0)}return r?new uA(n,g):i}function sg(t){let e=new TextDecoder("utf-8"),A=[],i={},n=0,g=0;for(;g<t.length;){let r=t.indexOf(0,g);if(r===-1)break;if(r>g){let Q=e.decode(t.subarray(g,r));A[n]=Q,i[Q]=n}g=r+1,n++}return{refNameToId:i,refIdToName:A}}var Eg={0:"generic",1:"SAM",2:"VCF"};function $A(t,e){let A=new DataView(t.buffer,t.byteOffset,t.byteLength),i=A.getInt32(e,!0),n=i&65536?"zero-based-half-open":"1-based-closed",g=Eg[i&15];if(!g)throw new Error(`invalid Tabix preset format flags ${i}`);let r={ref:A.getInt32(e+4,!0),start:A.getInt32(e+8,!0),end:A.getInt32(e+12,!0)},Q=A.getInt32(e+16,!0),a=Q?String.fromCharCode(Q):void 0,I=A.getInt32(e+20,!0),o=A.getInt32(e+24,!0),{refIdToName:l,refNameToId:f}=sg(t.subarray(e+28,e+28+o));return{refIdToName:l,refNameToId:f,skipLines:I,metaChar:a,columnNumbers:r,format:g,coordinateType:n}}function Ae(t,e){return{lineCount:fi(t,e)}}function ee(t,e=5){let A=new JA({maxSize:e});return i=>{let n=A.get(i);if(n!==void 0)return n;let g=t(i);return g!==void 0&&A.set(i,g),g}}function cg(t,e,A,i){if(e>2**(A+i*3))return;let n=(8**(i+1)-1)/7,g=(8**i-1)/7+Math.floor((e-1)/2**A)+1;for(g>=n&&(g=0);;){for(;g%8===1;)g=(g-1)/8;if(g===0)return;let r=t[g];if(r?.length){let Q=r[0].minv;for(let a=1;a<r.length;a++){let I=r[a].minv;I.compareTo(Q)<0&&(Q=I)}return Q}g++}}var sA=class{filehandle;parseCache=new gA({});constructor({filehandle:e}){this.filehandle=e}async readIndexBytes(e){let A=await this.filehandle.readFile({signal:e.signal,onProgress:e.onProgress}),i=await xA(A);return{bytes:i,dataView:new DataView(i.buffer,i.byteOffset,i.byteLength)}}async lineCount(e,A={}){let i=await this.parse(A),n=i.refNameToId[e];return n===void 0?-1:i.indices(n)?.stats?.lineCount??-1}async getMetadata(e={}){let{indices:A,...i}=await this.parse(e);return i}async blocksForRange(e,A,i,n={}){let g=await this.parse(n),r=g.refNameToId[e];if(r===void 0)return[];let Q=g.indices(r);if(!Q)return[];let a=[];for(let[l,f]of this.reg2bins(A,i,g))for(let C=l;C<=f;C++){let E=Q.binIndex[C];if(E)for(let y of E)a.push(y)}let I=PA(a,this.lowestOffset(Q,A,g)),o=cg(Q.binIndex,i,g.minShift,g.depth);if(o){let l=I.length;for(;l>0&&I[l-1].minv.compareTo(o)>=0;)l--;I.length=l}return I}parse(e={}){return this.parseCache.get("index",e.signal,A=>this._parse({...e,signal:A}))}async hasRefSeq(e,A={}){return!!(await this.parse(A)).indices(e)?.binIndex}};var fg=21582659,hg=38359875;function hi(t,e){return t*2**e}function Le(t,e){return Math.floor(t/2**e)}var EA=class extends sA{async _parse(e={}){let{bytes:A,dataView:i}=await this.readIndexBytes(e),n=i.getUint32(0,!0),g;if(n===fg)g=1;else if(n===hg)g=2;else throw new Error(`Not a CSI file (magic=${n})`);let r=i.getInt32(4,!0),Q=i.getInt32(8,!0),a=(8**(Q+1)-1)/7,I=2**(r+Q*3),o=i.getInt32(12,!0),l=o>=30?$A(A,16):{refIdToName:[],refNameToId:{},metaChar:void 0,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},f=i.getInt32(16+o,!0),C=16+o+4,E,y=[];for(let u=0;u<f;u++){y.push(C);let D=i.getInt32(C,!0);C+=4;for(let h=0;h<D;h++){let B=i.getUint32(C,!0);if(C+=4,B>a)C+=44;else{E=VA(A,C,1,E),C+=8;let k=i.getInt32(C,!0);C+=4+16*k}}}function w(u){let D=y[u];if(D===void 0)return;let h=D,B=i.getInt32(h,!0);h+=4;let k={},F={},c;for(let m=0;m<B;m++){let N=i.getUint32(h,!0);if(h+=4,N>a)c=Ae(A,h+28),h+=44;else{F[N]=nA(A,h),h+=8;let d=i.getInt32(h,!0);h+=4;let p=Array.from({length:d});for(let G=0;G<d;G++)p[G]=new O(nA(A,h),nA(A,h+8),N),h+=16;k[N]=p}}return jA(Object.values(k).flat()),{binIndex:k,loffsets:F,stats:c}}return{...l,csi:!0,refCount:f,maxBlockSize:65536,firstDataLine:E,csiVersion:g,indices:ee(w),minShift:r,depth:Q,maxBinNumber:a,maxRefLength:I}}lowestOffset(e,A,{minShift:i,depth:n}){let{loffsets:g}=e,r;if(g){let Q=(hi(1,3*n)-1)/7+Le(Math.max(A,0),i);for(;r===void 0&&Q>0;)if(r=g[Q],r===void 0){let a=Math.floor((Q-1)/8),I=a*8+1;Q=Q>I?Q-1:a}r??=g[0]}return r}reg2bins(e,A,{minShift:i,depth:n,maxBinNumber:g}){e=Math.max(e,0);let r=2**(i+n*3);A>r&&(A=r),A-=1;let Q=0,a=0,I=i+n*3,o=[];for(;Q<=n;I-=3,a+=hi(1,Q*3),Q+=1){let l=a+Le(e,I),f=a+Le(A,I);if(f-l+o.length>g)throw new Error(`query ${e}-${A} is too large for current binning scheme (shift ${i}, depth ${n}), try a smaller query or a coarser index binning scheme`);o.push([l,f])}return o}};var lg=21578324,Me=5,Ue=14,te=2**(Ue+Me*3);function li(t){return Math.min(Math.max(t,0),te)}var $=class extends sA{reg2bins(e,A){e>te&&console.warn("querying outside of possible tabix range");let i=li(e),n=Math.min(A,te)-1,g=[];return i<=n&&g.push([0,0],[1+(i>>26),1+(n>>26)],[9+(i>>23),9+(n>>23)],[73+(i>>20),73+(n>>20)],[585+(i>>17),585+(n>>17)],[4681+(i>>14),4681+(n>>14)]),g}lowestOffset(e,A){let i=e.linearIndex;return i?.[Math.min(li(A)>>Ue,i.length-1)]}async _parse(e={}){let{bytes:A,dataView:i}=await this.readIndexBytes(e);if(i.getUint32(0,!0)!==lg)throw new Error("Not a TBI file");let n=i.getUint32(4,!0),g=((1<<(Me+1)*3)-1)/7,{refNameToId:r,refIdToName:Q,coordinateType:a,format:I,columnNumbers:o,metaChar:l,skipLines:f}=$A(A,8),E=36+i.getInt32(32,!0),y,w=[];for(let D=0;D<n;D++){w.push(E);let h=i.getInt32(E,!0);E+=4;for(let k=0;k<h;k++){let F=i.getUint32(E,!0);E+=4;let c=i.getInt32(E,!0);if(E+=4,F>g+1)throw new Error("tabix index contains too many bins, please use a CSI index");E+=16*c}let B=i.getInt32(E,!0);E+=4,y=VA(A,E,B,y),E+=8*B}function u(D){let h=w[D];if(h===void 0)return;let B=h,k=i.getInt32(B,!0);B+=4;let F={},c;for(let d=0;d<k;d++){let p=i.getUint32(B,!0);if(B+=4,p>g+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(p===g+1){let G=i.getInt32(B,!0);B+=4,G===2&&(c=Ae(A,B+16)),B+=16*G}else{let G=i.getInt32(B,!0);B+=4;let v=Array.from({length:G});for(let X=0;X<G;X++)v[X]=new O(nA(A,B),nA(A,B+8),p),B+=16;F[p]=v}}let m=i.getInt32(B,!0);B+=4;let N=Array.from({length:m});for(let d=0;d<m;d++)N[d]=nA(A,B),B+=8;return jA(Object.values(F).flat(),N.map(d=>d.blockPosition)),{binIndex:F,linearIndex:N,stats:c}}return{indices:ee(u),metaChar:l,minShift:Ue,depth:Me,maxBinNumber:g,maxRefLength:te,skipLines:f,firstDataLine:y,columnNumbers:o,coordinateType:a,format:I,refIdToName:Q,refNameToId:r,maxBlockSize:65536}}};var dg=9,He=10,ug=13,wg=59,kg=6,Dg=1024*2**20,Ng=180*1e3;function mg(t,e,A){if(t)return t;if(e)return new aA(e);if(A)return new V(A);throw new TypeError("must provide either filehandle, path, or url")}function yg({tbiFilehandle:t,csiFilehandle:e,tbiPath:A,csiPath:i,tbiUrl:n,csiUrl:g,path:r,url:Q}){if(t)return new $({filehandle:t});if(e)return new EA({filehandle:e});if(A)return new $({filehandle:new aA(A)});if(i)return new EA({filehandle:new aA(i)});if(g)return new EA({filehandle:new V(g)});if(n)return new $({filehandle:new V(n)});if(r)return new $({filehandle:new aA(`${r}.tbi`)});if(Q)return new $({filehandle:new V(`${Q}.tbi`)});throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl")}function pg(t,e,A,i,n){return t[A]*256+(i-e[A])+n+1}function Fg(t,e,A,i,n,g){let r=i-A,Q=e+r;if(t[n]===46)return Q;let a=n;for(let I=n;I<=g;I++)if(I===g||t[I]===wg){let o=I-a;if(o>=10&&t[a]===83&&t[a+1]===86&&t[a+2]===84&&t[a+3]===89&&t[a+4]===80&&t[a+5]===69&&t[a+6]===61&&t[a+7]===84&&t[a+8]===82&&t[a+9]===65)return e+1;o>=4&&t[a]===69&&t[a+1]===78&&t[a+2]===68&&t[a+3]===61&&(Q=Ye(t,a+4,I)),a=I+1}return Q}var ui=new TextDecoder;function di(t,e){let A=-1,i=e.charCodeAt(0);for(let n=0,g=t.length;n<g;n++){let r=t[n];if(n===A+1&&r!==i)break;r===He&&(A=n)}return t.subarray(0,A+1)}function xg(t,e){let A=0;for(let i=0;i<e;i++){let n=t.indexOf(He,A);if(n===-1){A=t.length;break}A=n+1}return ui.decode(t.subarray(0,A)).split(/\r?\n/).slice(0,e)}function Ye(t,e,A){let i=0;for(let n=e;n<A;n++){let g=t[n];if(g>=48&&g<=57)i=i*10+(g-48);else break}return i}var wA=class{filehandle;index;chunkCache;headerCache=new gA({});bgzfWorkerPool;constructor({path:e,filehandle:A,url:i,tbiPath:n,tbiUrl:g,tbiFilehandle:r,csiPath:Q,csiUrl:a,csiFilehandle:I,chunkCacheSize:o=Dg,chunkCacheIdleTimeoutMs:l=Ng,chunkCacheBudget:f,bgzfWorkerPool:C}){this.bgzfWorkerPool=C,this.filehandle=mg(A,e,i),this.index=yg({tbiFilehandle:r,csiFilehandle:I,tbiPath:n,csiPath:Q,tbiUrl:g,csiUrl:a,path:e,url:i}),this.chunkCache=new gA({maxSize:o,sizeOf:E=>E.buffer.byteLength,cacheKey:E=>E.toString(),idleTimeoutMs:l,budget:f,fill:(E,y)=>this.readChunk(E,{signal:y})})}clearChunkCache(){this.chunkCache.clear()}async bytesForRegions(e,A={}){let i=[];for(let{refName:g,start:r,end:Q}of e){let a=await this.index.blocksForRange(g,r,Q,A);for(let I of a)i.push(I)}let n=0;for(let g of PA(i))n+=g.fetchedSize();return n}async getLines(e,A,i,n){let g,r={},Q,a;typeof n=="function"?Q=n:(r=n,Q=n.lineCallback,g=n.signal,a=n.onProgress);let I=await this.index.getMetadata(r),o=A??0,l=i??I.maxRefLength;if(o>l)throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(o===l)return;let f=await this.index.blocksForRange(e,o,l,r),C=I.format==="VCF",E=I.columnNumbers.ref||0,y=I.columnNumbers.start||0,w=C?8:I.columnNumbers.end||0,u=Math.max(E,y,w),D=I.metaChar?.charCodeAt(0),h=I.coordinateType==="1-based-closed"?-1:0,B=new TextEncoder,k=new TextDecoder,F=B.encode(e),c=new Int32Array(u+1),m=0;for(let v of f)m+=v.fetchedSize();let N=0;a?.(0,m);let d=1,p=[],G=v=>{for(;p.length<Math.min(v,f.length);){let X=f[p.length],AA=this.chunkCache.get(X,g);AA.catch(()=>{}),p.push(AA)}};G(1);for(let v=0,X=f.length;v<X;v++){let AA=f[v],{buffer:L,cpositions:cA,dpositions:ge}=await p[v];N+=AA.fetchedSize(),a?.(N,m);let qe=AA.minv.dataPosition,K=0,SA=0;for(;K<L.length;){let q=L.indexOf(He,K);if(q===-1)break;let Di=K+qe;for(;SA<ge.length&&Di>=ge[SA];)SA++;if(D!==void 0&&L[K]===D){K=q+1;continue}c[0]=K-1;for(let T=0;T<u;T++){let GA=c[T],ne=GA<q?L.indexOf(dg,GA+1):-1;c[T+1]=ne===-1||ne>=q?q:ne}let Te=c[E-1]+1,Ze=c[E]-Te;if(Ze!==F.length){K=q+1;continue}let Xe=!0;for(let T=0;T<Ze;T++)if(L[Te+T]!==F[T]){Xe=!1;break}if(!Xe){K=q+1;continue}let RA=Ye(L,c[y-1]+1,c[y])+h;if(RA>=l)return;let kA;if(w===0||w===y?kA=RA+1:C?kA=Fg(L,RA,c[3]+1,c[4],c[w-1]+1,c[w]):kA=Ye(L,c[w-1]+1,c[w]),kA>o){let T=L[q-1]===ug?q-1:q,GA=k.decode(L.subarray(K,T));Q(GA,pg(cA,ge,SA,K,qe),RA,kA)}K=q+1}d=Math.min(d*2,kg),G(v+1+d)}}async getMetadata(e={}){return this.index.getMetadata(e)}async readHeaderBytes(e){let{firstDataLine:A,maxBlockSize:i}=await this.getMetadata(e),n=(A?.blockPosition??0)+i,g=await this.filehandle.read(n,0,e);return xA(g)}async parseHeader(e){let{metaChar:A,skipLines:i=0}=await this.getMetadata(e),n=await this.readHeaderBytes(e);return{header:ui.decode(A?di(n,A):n),skippedLines:i>0?xg(n,i):[]}}getParsedHeader(e={}){return this.headerCache.get("header",e.signal,A=>this.parseHeader({...e,signal:A}))}async getHeaderBuffer(e={}){let{metaChar:A}=await this.getMetadata(e),i=await this.readHeaderBytes(e);return A?di(i,A):i}async getSkippedLines(e={}){let{skipLines:A=0}=await this.getMetadata(e);return A<=0?[]:(await this.getParsedHeader(e)).skippedLines}async getHeader(e={}){return(await this.getParsedHeader(e)).header}async getHeaderLines(e={}){let{header:A,skippedLines:i}=await this.getParsedHeader(e);return(A?A.split(/\r?\n/):i).filter(Boolean)}async getReferenceSequenceNames(e={}){return(await this.getMetadata(e)).refIdToName}async lineCount(e,A={}){return this.index.lineCount(e,A)}async readChunk(e,A={}){let i=await this.filehandle.read(e.fetchedSize(),e.minv.blockPosition,A),n=await this.bgzfWorkerPool;return Je(i,e,n)}};var ki=ze(Ni(),1),ie=ze(mi(),1);var bg=50*2**20;function QI(t,e,A){let i=t.pluginManager;return new wA({filehandle:(0,ie.openLocation)(t.getConf(e),i),...(0,ie.openTabixIndexFilehandle)(t.getConf([...A,"location"]),t.getConf([...A,"indexType"]),i),chunkCacheSize:bg})}function Ke(t,e){return`${t} ${e}`}function Jg(t){let e=new Map;for(let A of t){e.set(A,A);let i=Oe(A);if(i!==A){let n=Ie(A);e.set(Ke(i,n),A);let g=We(A);g!==void 0&&e.set(Ke(g,n),A)}}return e}function Sg(t,e,A){let i=t.get(Ke(e,A));return i===void 0?t.get(A):i}var wi=class{constructor(e,A){this.file=e;this.adapter=A;this.lookup=(0,ki.cachedSetup)({setup:async e=>Jg(await this.file.getReferenceSequenceNames(e))})}async assemblyRefNames(e={}){let A=await this.file.getReferenceSequenceNames(e),i=oe(this.adapter,e.assemblyName),n=A.filter(g=>Pe(g,i)).map(g=>Ie(g));return n.length>0?n:A}async resolve(e,A){let i=await this.lookup(A);return Sg(i,oe(this.adapter,e.assemblyName),e.refName)}};export{QI as a,wi as b};
2
+ //# sourceMappingURL=chunk-HOM2Y6XS.js.map