jbrowse-plugin-graphgenomeviewer 6.2.0 → 6.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +4 -3
  2. package/dist/chunks/ChooseWalksDialog-L6QKOT7M.js +2 -0
  3. package/dist/chunks/ChooseWalksDialog-L6QKOT7M.js.map +7 -0
  4. package/dist/chunks/{GbzBaseSyntenyAdapter-TLI5IUU7.js → GbzBaseSyntenyAdapter-KVJKGGQ4.js} +2 -2
  5. package/dist/chunks/{GbzBaseSyntenyAdapter-TLI5IUU7.js.map → GbzBaseSyntenyAdapter-KVJKGGQ4.js.map} +1 -1
  6. package/dist/chunks/{GraphGenomeView-5OPCROMQ.js → GraphGenomeView-VIKLXNQD.js} +2 -2
  7. package/dist/chunks/{GraphGenomeView-5OPCROMQ.js.map → GraphGenomeView-VIKLXNQD.js.map} +1 -1
  8. package/dist/chunks/GraphTrackSettingsDialog-MRMSH2FO.js +4 -0
  9. package/dist/chunks/{GraphTrackSettingsDialog-FGLLUIEE.js.map → GraphTrackSettingsDialog-MRMSH2FO.js.map} +1 -1
  10. package/dist/chunks/HighlightColorDialog-SABW5OMB.js +2 -0
  11. package/dist/chunks/HighlightColorDialog-SABW5OMB.js.map +7 -0
  12. package/dist/chunks/LinearGraphDisplay-AHCKWNFJ.js +2 -0
  13. package/dist/chunks/{LinearGraphDisplay-NBJHGOYX.js.map → LinearGraphDisplay-AHCKWNFJ.js.map} +1 -1
  14. package/dist/chunks/{MinigraphBubbleAdapter-LQUIL3MD.js → MinigraphBubbleAdapter-CAXB5FGR.js} +2 -2
  15. package/dist/chunks/{RgfaTabixAdapter-3BFNY4SB.js → RgfaTabixAdapter-GYRNCGT2.js} +2 -2
  16. package/dist/chunks/{bandage-layout-3AR6BCUD-I6CCWYSR.js → bandage-layout-3AR6BCUD-PYYNJEGI.js} +1 -1
  17. package/dist/chunks/{bandage-layout-3AR6BCUD-I6CCWYSR.js.map → bandage-layout-3AR6BCUD-PYYNJEGI.js.map} +1 -1
  18. package/dist/chunks/{chunk-O5EHYU3Y.js → chunk-2SIR336R.js} +2 -2
  19. package/dist/chunks/chunk-2SL675KP.js +3 -0
  20. package/dist/chunks/{chunk-NGQRKSHY.js.map → chunk-2SL675KP.js.map} +3 -3
  21. package/dist/chunks/chunk-A6GKF63C.js +2 -0
  22. package/dist/chunks/{chunk-ZKLOV6MW.js.map → chunk-A6GKF63C.js.map} +2 -2
  23. package/dist/chunks/chunk-B7GF3TC3.js +2 -0
  24. package/dist/chunks/chunk-B7GF3TC3.js.map +7 -0
  25. package/dist/chunks/chunk-B7KMMGFB.js +2 -0
  26. package/dist/chunks/chunk-B7KMMGFB.js.map +7 -0
  27. package/dist/chunks/{chunk-X24J6VF4.js → chunk-DILFGQIL.js} +1 -1
  28. package/dist/chunks/{chunk-X24J6VF4.js.map → chunk-DILFGQIL.js.map} +1 -1
  29. package/dist/chunks/{chunk-7MWOPEIC.js → chunk-EHV7EUMI.js} +1 -1
  30. package/dist/chunks/{chunk-7MWOPEIC.js.map → chunk-EHV7EUMI.js.map} +1 -1
  31. package/dist/chunks/chunk-GMSOU6VO.js +2 -0
  32. package/dist/chunks/chunk-GMSOU6VO.js.map +7 -0
  33. package/dist/chunks/{chunk-EKMGHBWM.js → chunk-KRXALLQG.js} +1 -1
  34. package/dist/chunks/{chunk-EKMGHBWM.js.map → chunk-KRXALLQG.js.map} +1 -1
  35. package/dist/chunks/{chunk-F7V6ZPKD.js → chunk-MYJYGSOH.js} +1 -1
  36. package/dist/chunks/{chunk-F7V6ZPKD.js.map → chunk-MYJYGSOH.js.map} +1 -1
  37. package/dist/chunks/chunk-WTOQRUK2.js +2 -0
  38. package/dist/chunks/chunk-WTOQRUK2.js.map +7 -0
  39. package/dist/chunks/{chunk-JYZAMHIP.js → chunk-WUGRVNUJ.js} +2 -2
  40. package/dist/chunks/{chunk-JYZAMHIP.js.map → chunk-WUGRVNUJ.js.map} +1 -1
  41. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js +6 -6
  42. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js.map +4 -4
  43. package/package.json +2 -3
  44. package/src/GbzBaseSyntenyAdapter/configSchema.ts +1 -1
  45. package/src/GraphGenomeView/components/ChooseWalksDialog.tsx +6 -7
  46. package/src/GraphGenomeView/components/HighlightColorDialog.tsx +117 -0
  47. package/src/GraphGenomeView/components/TubeMapOverlay.tsx +1 -1
  48. package/src/GraphGenomeView/model.test.ts +107 -31
  49. package/src/GraphGenomeView/pane/fitViews.ts +8 -5
  50. package/src/GraphGenomeView/pane/graphViews.ts +11 -1
  51. package/src/GraphGenomeView/pane/hostViews.ts +1 -1
  52. package/src/GraphGenomeView/pane/keepInView.ts +62 -0
  53. package/src/GraphGenomeView/pane/launchActions.ts +159 -184
  54. package/src/GraphGenomeView/pane/loadActions.ts +3 -0
  55. package/src/GraphGenomeView/pane/paneBase.ts +9 -3
  56. package/src/GraphGenomeView/pane/renderingActions.ts +11 -1
  57. package/src/GraphGenomeView/pane/settingActions.ts +38 -0
  58. package/src/GraphGenomeView/renderPipeline.test.ts +4 -1
  59. package/src/GraphGenomeView/renderer/GraphRenderer.ts +2 -2
  60. package/src/GraphGenomeView/viewModel.ts +1 -1
  61. package/src/LinearGraphDisplay/LinearGraphDisplay.test.ts +12 -5
  62. package/src/LinearGraphDisplay/configSchema.ts +8 -0
  63. package/src/LinearGraphDisplay/model.ts +39 -33
  64. package/src/hoverSync/GraphNodeHighlight.tsx +3 -3
  65. package/src/version.ts +1 -1
  66. package/dist/chunks/ChooseWalksDialog-GVQLSGHX.js +0 -2
  67. package/dist/chunks/ChooseWalksDialog-GVQLSGHX.js.map +0 -7
  68. package/dist/chunks/GraphTrackSettingsDialog-FGLLUIEE.js +0 -4
  69. package/dist/chunks/LinearGraphDisplay-NBJHGOYX.js +0 -2
  70. package/dist/chunks/chunk-LZUNK4MQ.js +0 -2
  71. package/dist/chunks/chunk-LZUNK4MQ.js.map +0 -7
  72. package/dist/chunks/chunk-NGQRKSHY.js +0 -3
  73. package/dist/chunks/chunk-XWGKHQYO.js +0 -2
  74. package/dist/chunks/chunk-XWGKHQYO.js.map +0 -7
  75. package/dist/chunks/chunk-ZKLOV6MW.js +0 -2
  76. /package/dist/chunks/{MinigraphBubbleAdapter-LQUIL3MD.js.map → MinigraphBubbleAdapter-CAXB5FGR.js.map} +0 -0
  77. /package/dist/chunks/{RgfaTabixAdapter-3BFNY4SB.js.map → RgfaTabixAdapter-GYRNCGT2.js.map} +0 -0
  78. /package/dist/chunks/{chunk-O5EHYU3Y.js.map → chunk-2SIR336R.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{a as li}from"./chunk-KWAXLUPQ.js";import{a as Le,c as Ye,d as PA,e as Ue,f as jA}from"./chunk-X24J6VF4.js";import{a as Me,b as _e}from"./chunk-FY3BTKY4.js";var Ke=Me((xg,He)=>{He.exports=JBrowseExports["@jbrowse/core/data_adapters/BaseAdapter"]});var di=Me((bg,qe)=>{qe.exports=JBrowseExports["@jbrowse/core/util/rxjs"]});var VA=0;var $A=2;var EA=4;var O=0,cA=1,Te=2;var Ze=-5;function ui(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Xe(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)ui(A,i)&&(t[i]=A[i])}}return t}function FA(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)}var fA={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)}},hA={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)}},oA=()=>{let t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";return oA=()=>t,t},H=(t,e,A,i,n)=>(H=oA()?fA.arraySet:hA.arraySet,H(t,e,A,i,n)),pA=t=>(pA=oA()?fA.flattenChunks:hA.flattenChunks,pA(t)),q=t=>(q=oA()?fA.Buf8:hA.Buf8,q(t)),W=t=>(W=oA()?fA.Buf16:hA.Buf16,W(t)),$=t=>($=oA()?fA.Buf32:hA.Buf32,$(t));var ze=function(){let t=!0;try{String.fromCharCode.apply(null,[0])}catch{t=!1}return ze=()=>t,t},Oe=function(){let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{t=!1}return Oe=()=>t,t},Ae=function(t){for(var e=q(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 ee(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 wi(t,e){if(e<65534&&(t.subarray&&Oe()||!t.subarray&&ze()))return String.fromCharCode.apply(null,FA(t,e));for(var A="",i=0;i<e;i++)A+=String.fromCharCode(t[i]);return A}function We(t){for(var e=new Uint8Array(t.length),A=0,i=e.length;A<i;A++)e[A]=t.charCodeAt(A);return e}function Pe(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 wi(Q,i)}function je(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 te(){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 lA(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 ki(){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 Ve=function(){let t=ki();return Ve=()=>t,t};function v(t,e,A,i){var n=Ve(),g=i+A;t^=-1;for(var r=i;r<g;r++)t=t>>>8^n[(t^e[r])&255];return t^-1}var mA=30,Di=12;function ie(t,e){var A,i,n,g,r,Q,C,I,o,f,E,a,s,D,w,d,k,u,B,l,N,c,p,y,h;A=t.state,i=t.next_in,y=t.input,n=i+(t.avail_in-5),g=t.next_out,h=t.output,r=g-(e-t.avail_out),Q=g+(t.avail_out-257),C=A.dmax,I=A.wsize,o=A.whave,f=A.wnext,E=A.window,a=A.hold,s=A.bits,D=A.lencode,w=A.distcode,d=(1<<A.lenbits)-1,k=(1<<A.distbits)-1;A:do{s<15&&(a+=y[i++]<<s,s+=8,a+=y[i++]<<s,s+=8),u=D[a&d];e:for(;;){if(B=u>>>24,a>>>=B,s-=B,B=u>>>16&255,B===0)h[g++]=u&65535;else if(B&16){l=u&65535,B&=15,B&&(s<B&&(a+=y[i++]<<s,s+=8),l+=a&(1<<B)-1,a>>>=B,s-=B),s<15&&(a+=y[i++]<<s,s+=8,a+=y[i++]<<s,s+=8),u=w[a&k];t:for(;;){if(B=u>>>24,a>>>=B,s-=B,B=u>>>16&255,B&16){if(N=u&65535,B&=15,s<B&&(a+=y[i++]<<s,s+=8,s<B&&(a+=y[i++]<<s,s+=8)),N+=a&(1<<B)-1,N>C){t.msg="invalid distance too far back",A.mode=mA;break A}if(a>>>=B,s-=B,B=g-r,N>B){if(B=N-B,B>o&&A.sane){t.msg="invalid distance too far back",A.mode=mA;break A}if(c=0,p=E,f===0){if(c+=I-B,B<l){l-=B;do h[g++]=E[c++];while(--B);c=g-N,p=h}}else if(f<B){if(c+=I+f-B,B-=f,B<l){l-=B;do h[g++]=E[c++];while(--B);if(c=0,f<l){B=f,l-=B;do h[g++]=E[c++];while(--B);c=g-N,p=h}}}else if(c+=f-B,B<l){l-=B;do h[g++]=E[c++];while(--B);c=g-N,p=h}for(;l>2;)h[g++]=p[c++],h[g++]=p[c++],h[g++]=p[c++],l-=3;l&&(h[g++]=p[c++],l>1&&(h[g++]=p[c++]))}else{c=g-N;do h[g++]=h[c++],h[g++]=h[c++],h[g++]=h[c++],l-=3;while(l>2);l&&(h[g++]=h[c++],l>1&&(h[g++]=h[c++]))}}else if((B&64)===0){u=w[(u&65535)+(a&(1<<B)-1)];continue t}else{t.msg="invalid distance code",A.mode=mA;break A}break}}else if((B&64)===0){u=D[(u&65535)+(a&(1<<B)-1)];continue e}else if(B&32){A.mode=Di;break A}else{t.msg="invalid literal/length code",A.mode=mA;break A}break}}while(i<n&&g<Q);l=s>>3,i-=l,s-=l<<3,a&=(1<<s)-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=a,A.bits=s}var QA=15,$e=852,At=592,et=0,ge=1,tt=2,Ni=[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],yi=[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],pi=[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],Fi=[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 AA(t,e,A,i,n,g,r,Q){var C=Q.bits,I=0,o=0,f=0,E=0,a=0,s=0,D=0,w=0,d=0,k=0,u,B,l,N,c,p=null,y=0,h,F=W(QA+1),b=W(QA+1),G=null,J=0,IA,U,S;for(I=0;I<=QA;I++)F[I]=0;for(o=0;o<i;o++)F[e[A+o]]++;for(a=C,E=QA;E>=1&&F[E]===0;E--);if(a>E&&(a=E),E===0)return n[g++]=1<<24|64<<16|0,n[g++]=1<<24|64<<16|0,Q.bits=1,0;for(f=1;f<E&&F[f]===0;f++);for(a<f&&(a=f),w=1,I=1;I<=QA;I++)if(w<<=1,w-=F[I],w<0)return-1;if(w>0&&(t===et||E!==1))return-1;for(b[1]=0,I=1;I<QA;I++)b[I+1]=b[I]+F[I];for(o=0;o<i;o++)e[A+o]!==0&&(r[b[e[A+o]]++]=o);if(t===et?(p=G=r,h=19):t===ge?(p=Ni,y-=257,G=yi,J-=257,h=256):(p=pi,G=Fi,h=-1),k=0,o=0,I=f,c=g,s=a,D=0,l=-1,d=1<<a,N=d-1,t===ge&&d>$e||t===tt&&d>At)return 1;for(;;){IA=I-D,r[o]<h?(U=0,S=r[o]):r[o]>h?(U=G[J+r[o]],S=p[y+r[o]]):(U=96,S=0),u=1<<I-D,B=1<<s,f=B;do B-=u,n[c+(k>>D)+B]=IA<<24|U<<16|S|0;while(B!==0);for(u=1<<I-1;k&u;)u>>=1;if(u!==0?(k&=u-1,k+=u):k=0,o++,--F[I]===0){if(I===E)break;I=e[A+r[o]]}if(I>a&&(k&N)!==l){for(D===0&&(D=a),c+=f,s=I-D,w=1<<s;s+D<E&&(w-=F[s+D],!(w<=0));)s++,w<<=1;if(d+=1<<s,t===ge&&d>$e||t===tt&&d>At)return 1;l=k&N,n[l]=a<<24|s<<16|c-g|0}}return k!==0&&(n[c+k]=I-D<<24|64<<16|0),Q.bits=a,0}var mi=0,mt=1,xt=2,it=4,xi=5,xA=6,eA=0,bi=1,Ji=2,M=-2,bt=-3,Ce=-4,Si=-5,gt=8,Jt=1,nt=2,It=3,ot=4,Qt=5,rt=6,Ct=7,Bt=8,at=9,st=10,SA=11,T=12,ne=13,Et=14,Ie=15,ct=16,ft=17,ht=18,lt=19,bA=20,JA=21,dt=22,ut=23,wt=24,kt=25,Dt=26,oe=27,Nt=28,yt=29,x=30,Be=31,Gi=32,Ri=852,vi=592;function pt(t){return(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24)}function Mi(){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=W(320),this.work=W(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function _i(t){var e;return!t||!t.state?M:(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=Jt,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=$(Ri),e.distcode=e.distdyn=$(vi),e.sane=1,e.back=-1,eA)}function Li(t){var e;return!t||!t.state?M:(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,_i(t))}function Yi(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))?M:(i.window!==null&&i.wbits!==e&&(i.window=null),i.wrap=A,i.wbits=e,Li(t))}function St(t,e){var A,i;return t?(i=new Mi,t.state=i,i.window=null,A=Yi(t,e),A!==eA&&(t.state=null),A):M}var Ft=!0,Qe,re;function Ui(t){if(Ft){var e;for(Qe=$(512),re=$(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(AA(mt,t.lens,0,288,Qe,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;AA(xt,t.lens,0,32,re,0,t.work,{bits:5}),Ft=!1}t.lencode=Qe,t.lenbits=9,t.distcode=re,t.distbits=5}function Gt(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=q(g.wsize)),i>=g.wsize?(H(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),H(g.window,e,A-i,n,g.wnext),i-=n,i?(H(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 Rt(t,e){var A,i,n,g,r,Q,C,I,o,f,E,a,s,D,w=0,d,k,u,B,l,N,c,p,y=q(4),h,F,b=[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 M;A=t.state,A.mode===T&&(A.mode=ne),r=t.next_out,n=t.output,C=t.avail_out,g=t.next_in,i=t.input,Q=t.avail_in,I=A.hold,o=A.bits,f=Q,E=C,p=eA;A:for(;;)switch(A.mode){case Jt:if(A.wrap===0){A.mode=ne;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,y[0]=I&255,y[1]=I>>>8&255,A.check=v(A.check,y,2,0),I=0,o=0,A.mode=nt;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=x;break}if((I&15)!==gt){t.msg="unknown compression method",A.mode=x;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=x;break}A.dmax=1<<c,t.adler=A.check=1,A.mode=I&512?st:T,I=0,o=0;break;case nt:for(;o<16;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(A.flags=I,(A.flags&255)!==gt){t.msg="unknown compression method",A.mode=x;break}if(A.flags&57344){t.msg="unknown header flags set",A.mode=x;break}A.head&&(A.head.text=I>>8&1),A.flags&512&&(y[0]=I&255,y[1]=I>>>8&255,A.check=v(A.check,y,2,0)),I=0,o=0,A.mode=It;case It:for(;o<32;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}A.head&&(A.head.time=I),A.flags&512&&(y[0]=I&255,y[1]=I>>>8&255,y[2]=I>>>16&255,y[3]=I>>>24&255,A.check=v(A.check,y,4,0)),I=0,o=0,A.mode=ot;case ot: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&&(y[0]=I&255,y[1]=I>>>8&255,A.check=v(A.check,y,2,0)),I=0,o=0,A.mode=Qt;case Qt: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&&(y[0]=I&255,y[1]=I>>>8&255,A.check=v(A.check,y,2,0)),I=0,o=0}else A.head&&(A.head.extra=null);A.mode=rt;case rt:if(A.flags&1024&&(a=A.length,a>Q&&(a=Q),a&&(A.head&&(c=A.head.extra_len-A.length,A.head.extra||(A.head.extra=new Array(A.head.extra_len)),H(A.head.extra,i,g,a,c)),A.flags&512&&(A.check=v(A.check,i,a,g)),Q-=a,g+=a,A.length-=a),A.length))break A;A.length=0,A.mode=Ct;case Ct:if(A.flags&2048){if(Q===0)break A;a=0;do c=i[g+a++],A.head&&c&&A.length<65536&&(A.head.name+=String.fromCharCode(c));while(c&&a<Q);if(A.flags&512&&(A.check=v(A.check,i,a,g)),Q-=a,g+=a,c)break A}else A.head&&(A.head.name=null);A.length=0,A.mode=Bt;case Bt:if(A.flags&4096){if(Q===0)break A;a=0;do c=i[g+a++],A.head&&c&&A.length<65536&&(A.head.comment+=String.fromCharCode(c));while(c&&a<Q);if(A.flags&512&&(A.check=v(A.check,i,a,g)),Q-=a,g+=a,c)break A}else A.head&&(A.head.comment=null);A.mode=at;case at: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=x;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=T;break;case st:for(;o<32;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}t.adler=A.check=pt(I),I=0,o=0,A.mode=SA;case SA:if(A.havedict===0)return t.next_out=r,t.avail_out=C,t.next_in=g,t.avail_in=Q,A.hold=I,A.bits=o,Ji;t.adler=A.check=1,A.mode=T;case T:if(e===xi||e===xA)break A;case ne:if(A.last){I>>>=o&7,o-=o&7,A.mode=oe;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=Et;break;case 1:if(Ui(A),A.mode=bA,e===xA){I>>>=2,o-=2;break A}break;case 2:A.mode=ft;break;case 3:t.msg="invalid block type",A.mode=x}I>>>=2,o-=2;break;case Et: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=x;break}if(A.length=I&65535,I=0,o=0,A.mode=Ie,e===xA)break A;case Ie:A.mode=ct;case ct:if(a=A.length,a){if(a>Q&&(a=Q),a>C&&(a=C),a===0)break A;H(n,i,g,a,r),Q-=a,g+=a,C-=a,r+=a,A.length-=a;break}A.mode=T;break;case ft: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=x;break}A.have=0,A.mode=ht;case ht:for(;A.have<A.ncode;){for(;o<3;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}A.lens[b[A.have++]]=I&7,I>>>=3,o-=3}for(;A.have<19;)A.lens[b[A.have++]]=0;if(A.lencode=A.lendyn,A.lenbits=7,h={bits:A.lenbits},p=AA(mi,A.lens,0,19,A.lencode,0,A.work,h),A.lenbits=h.bits,p){t.msg="invalid code lengths set",A.mode=x;break}A.have=0,A.mode=lt;case lt:for(;A.have<A.nlen+A.ndist;){for(;w=A.lencode[I&(1<<A.lenbits)-1],d=w>>>24,k=w>>>16&255,u=w&65535,!(d<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(u<16)I>>>=d,o-=d,A.lens[A.have++]=u;else{if(u===16){for(F=d+2;o<F;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(I>>>=d,o-=d,A.have===0){t.msg="invalid bit length repeat",A.mode=x;break}c=A.lens[A.have-1],a=3+(I&3),I>>>=2,o-=2}else if(u===17){for(F=d+3;o<F;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}I>>>=d,o-=d,c=0,a=3+(I&7),I>>>=3,o-=3}else{for(F=d+7;o<F;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}I>>>=d,o-=d,c=0,a=11+(I&127),I>>>=7,o-=7}if(A.have+a>A.nlen+A.ndist){t.msg="invalid bit length repeat",A.mode=x;break}for(;a--;)A.lens[A.have++]=c}}if(A.mode===x)break;if(A.lens[256]===0){t.msg="invalid code -- missing end-of-block",A.mode=x;break}if(A.lenbits=9,h={bits:A.lenbits},p=AA(mt,A.lens,0,A.nlen,A.lencode,0,A.work,h),A.lenbits=h.bits,p){t.msg="invalid literal/lengths set",A.mode=x;break}if(A.distbits=6,A.distcode=A.distdyn,h={bits:A.distbits},p=AA(xt,A.lens,A.nlen,A.ndist,A.distcode,0,A.work,h),A.distbits=h.bits,p){t.msg="invalid distances set",A.mode=x;break}if(A.mode=bA,e===xA)break A;case bA:A.mode=JA;case JA:if(Q>=6&&C>=258){t.next_out=r,t.avail_out=C,t.next_in=g,t.avail_in=Q,A.hold=I,A.bits=o,ie(t,E),r=t.next_out,n=t.output,C=t.avail_out,g=t.next_in,i=t.input,Q=t.avail_in,I=A.hold,o=A.bits,A.mode===T&&(A.back=-1);break}for(A.back=0;w=A.lencode[I&(1<<A.lenbits)-1],d=w>>>24,k=w>>>16&255,u=w&65535,!(d<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(k&&(k&240)===0){for(B=d,l=k,N=u;w=A.lencode[N+((I&(1<<B+l)-1)>>B)],d=w>>>24,k=w>>>16&255,u=w&65535,!(B+d<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}I>>>=B,o-=B,A.back+=B}if(I>>>=d,o-=d,A.back+=d,A.length=u,k===0){A.mode=Dt;break}if(k&32){A.back=-1,A.mode=T;break}if(k&64){t.msg="invalid literal/length code",A.mode=x;break}A.extra=k&15,A.mode=dt;case dt:if(A.extra){for(F=A.extra;o<F;){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=ut;case ut:for(;w=A.distcode[I&(1<<A.distbits)-1],d=w>>>24,k=w>>>16&255,u=w&65535,!(d<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if((k&240)===0){for(B=d,l=k,N=u;w=A.distcode[N+((I&(1<<B+l)-1)>>B)],d=w>>>24,k=w>>>16&255,u=w&65535,!(B+d<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}I>>>=B,o-=B,A.back+=B}if(I>>>=d,o-=d,A.back+=d,k&64){t.msg="invalid distance code",A.mode=x;break}A.offset=u,A.extra=k&15,A.mode=wt;case wt:if(A.extra){for(F=A.extra;o<F;){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=x;break}A.mode=kt;case kt:if(C===0)break A;if(a=E-C,A.offset>a){if(a=A.offset-a,a>A.whave&&A.sane){t.msg="invalid distance too far back",A.mode=x;break}a>A.wnext?(a-=A.wnext,s=A.wsize-a):s=A.wnext-a,a>A.length&&(a=A.length),D=A.window}else D=n,s=r-A.offset,a=A.length;a>C&&(a=C),C-=a,A.length-=a;do n[r++]=D[s++];while(--a);A.length===0&&(A.mode=JA);break;case Dt:if(C===0)break A;n[r++]=A.length,C--,A.mode=JA;break;case oe:if(A.wrap){for(;o<32;){if(Q===0)break A;Q--,I|=i[g++]<<o,o+=8}if(E-=C,t.total_out+=E,A.total+=E,E&&(t.adler=A.check=A.flags?v(A.check,n,E,r-E):lA(A.check,n,E,r-E)),E=C,(A.flags?I:pt(I))!==A.check){t.msg="incorrect data check",A.mode=x;break}I=0,o=0}A.mode=Nt;case Nt: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=x;break}I=0,o=0}A.mode=yt;case yt:p=bi;break A;case x:p=bt;break A;case Be:return Ce;case Gi:default:return M}return t.next_out=r,t.avail_out=C,t.next_in=g,t.avail_in=Q,A.hold=I,A.bits=o,(A.wsize||E!==t.avail_out&&A.mode<x&&(A.mode<oe||e!==it))&&Gt(t,t.output,t.next_out,E-t.avail_out)?(A.mode=Be,Ce):(f-=t.avail_in,E-=t.avail_out,t.total_in+=f,t.total_out+=E,A.total+=E,A.wrap&&E&&(t.adler=A.check=A.flags?v(A.check,n,E,t.next_out-E):lA(A.check,n,E,t.next_out-E)),t.data_type=A.bits+(A.last?64:0)+(A.mode===T?128:0)+(A.mode===bA||A.mode===Ie?256:0),(f===0&&E===0||e===it)&&p===eA&&(p=Si),p)}function vt(t){if(!t||!t.state)return M;var e=t.state;return e.window&&(e.window=null),t.state=null,eA}function Mt(t,e){var A;return!t||!t.state||(A=t.state,(A.wrap&2)===0)?M:(A.head=e,e.done=!1,eA)}function ae(t,e){var A=e.length,i,n,g;return!t||!t.state||(i=t.state,i.wrap!==0&&i.mode!==SA)?M:i.mode===SA&&(n=1,n=lA(n,e,A,0),n!==i.check)?bt:(g=Gt(t,e,A,A),g?(i.mode=Be,Ce):(i.havedict=1,eA))}var GA={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 se(){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 Ee=Object.prototype.toString,ce=class t{constructor(e){if(!(this instanceof t))return new t(e);this.options=Xe({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 se,this.strm.avail_out=0;var i=St(this.strm,A.windowBits);if(i!==O)throw new Error(GA[i]);if(this.header=new te,Mt(this.strm,this.header),A.dictionary&&(typeof A.dictionary=="string"?A.dictionary=ee(A.dictionary):Ee.call(A.dictionary)==="[object ArrayBuffer]"&&(A.dictionary=new Uint8Array(A.dictionary)),A.raw&&(i=ae(this.strm,A.dictionary),i!==O)))throw new Error(GA[i])}push(e,A){var i=this.strm,n=this.options.chunkSize,g=this.options.dictionary,r,Q,C,I,o,f,E=!1;if(this.ended)return!1;Q=A===~~A?A:A===!0?EA:VA,typeof e=="string"?i.input=We(e):Ee.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=q(n),i.next_out=0,i.avail_out=n),r=Rt(i,VA),r===Te&&g&&(typeof g=="string"?f=ee(g):Ee.call(g)==="[object ArrayBuffer]"?f=new Uint8Array(g):f=g,r=ae(this.strm,f)),r===Ze&&E===!0&&(r=O,E=!1),r!==cA&&r!==O)return this.onEnd(r),this.ended=!0,!1;i.next_out&&(i.avail_out===0||r===cA||i.avail_in===0&&(Q===EA||Q===$A))&&(this.options.to==="string"?(C=je(i.output,i.next_out),I=i.next_out-C,o=Pe(i.output,C),i.next_out=I,i.avail_out=n-I,I&&H(i.output,i.output,C,I,0),this.onData(o)):this.onData(FA(i.output,i.next_out))),i.avail_in===0&&i.avail_out===0&&(E=!0)}while((i.avail_in>0||i.avail_out===0)&&r!==cA);return r===cA&&(Q=EA),Q===EA?(r=vt(this.strm),this.onEnd(r),this.ended=!0,r===O):(Q===$A&&(this.onEnd(O),i.avail_out=0),!0)}onData(e){this.chunks.push(e)}onEnd(e){e===O&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=pA(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg}};function Hi(t,e){var A=new ce(e);if(A.push(t,!0),A.err)throw A.msg||GA[A.err];return A.result}var _t=Hi;function Lt(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,C=(t[Q+4]|t[Q+5]<<8|t[Q+6]<<16|t[Q+7]<<24)>>>0;if(i.push({inputOffset:n,compressedSize:r,decompressedSize:C,filePosition:g}),g>=A)break;n+=r,g+=r}return i}function Yt(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 P={};P.d=(t,e)=>{if(Array.isArray(e))for(var A=0;A<e.length;){var i=e[A++],n=e[A++];P.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)P.o(e,i)&&!P.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})};P.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);P.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var le={};P.r(le);P.d(le,{ChunkSliceResult:()=>CA,__wbg_Error_92b29b0548f8b746:()=>qi,__wbg___wbindgen_throw_344f42d3211c4765:()=>Ti,__wbg_set_wasm:()=>Ot,decompress_all:()=>Kt,decompress_chunk_slice:()=>qt});var Ki="data:application/wasm;base64,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AghBAUEAEBUACywCAX8BfiMAQRBrIgEkACAAKQIAIQIgASAANgIMIAEgAjcCBCABQQRqEGYACyMBAX8jAEEQayICJAAgAiABNgIMIAIgADYCCCACQQhqEGUACyAAAkAgASgCAEUNACAAQbiXwAA2AgQgACABNgIADwsACx4BAX8CQCAAKAIAIgJFDQAgASACIAAoAgQQTQ8LAAsbAQF/EGogAEEEakEEEFgiASAANgIAIAFBBGoLHgEBfwJAIAAoAgAiAUEBSA0AIAAoAgQgAUEBEFMLCx4AIAAoAgAgACgCBEEAKALomkAiAEEEIAAbEQQAAAsjAQF/AkBBhIrAABAtIgANAEG4icAAQTpB9InAABA4AAsgAAsXAAJAIABBf2pBfk8NACABIABBARBTCwscAQF/AkAgACgCACIBRQ0AIAAoAgQgAUEBEFMLCxcAAkAgAUEJSQ0AIAEgABAODwsgABACCxUAIABBfGoiACAAKAIAQQRqQQQQUwsUAAJAIABFDQAgACABEF8ACxBWAAsRACAAIAFBAXRBAXIgAhAxAAsSAAJAIAFFDQAgACABIAIQUwsLEgAgACABIAIgAyAEQQAgBRADCxUAAkAgAEUNACAAIAAoAqhaEQIACwsaACAAQQApAoSWQDcCCCAAQQApAvyVQDcCAAsaACAAQQApAvSVQDcCCCAAQQApAuyVQDcCAAsWACAAKAIAIAEgAiAAKAIEKAIMEQcACw0AIAAgASACIAMQBw8LFABBACAANgK8mkBBAEEBNgK4mkALEwAgAEG4l8AANgIEIAAgATYCAAsQACABIAAoAgAgACgCBBBNCxAAIAEgACgCACAAKAIEEAoLCwAgACABIAIQKg8LCgAgACABEGkaAAsPACAAQZyVwAAgASACEAwLEQBBkJjAAEEjQaSYwAAQMQALCwAgACMAaiQAIwALCQAgACABEEQPCwkAIAAgARAuDwsJACAAIAEQYQALDABBr4fAAEEbEFoACw0AQcqHwABBzwAQWgALCQAgASAAEDsACwwAIAAgASkCADcDAAsJACABIAAQXQALDQAgAUH8mcAAQRgQCgsIACAAIAEQAAsIACAAIAEQAQsJACAAKAIAEEoLBwAgABA5AAsHACAAEEAACwcAIAAQJgALCwBBAEEBOgDAnkALCQAgAEEANgIACwUAEGsACwMADwsDAAALAgALC74aAgBBgIDAAAuUGkF0dGVtcHRlZCB0byBpbml0aWFsaXplIHRocmVhZC1sb2NhbCB3aGlsZSBpdCBpcyBiZWluZyBkcm9wcGVkFnNsaWNlIGluZGV4IHN0YXJ0cyBhdCDADSBidXQgZW5kcyBhdCDAABJyYW5nZSBzdGFydCBpbmRleCDAIiBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCDAABByYW5nZSBlbmQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAvcnVzdGMvNDhhMjI5Y2VhZWZkNDk4NWM1MDk5MGIxNDExNmI2ZDg1NmFmMDk4NS9saWJyYXJ5L3N0ZC9zcmMvc3lzL3RocmVhZF9sb2NhbC9ub190aHJlYWRzLnJzAC9ydXN0Yy80OGEyMjljZWFlZmQ0OTg1YzUwOTkwYjE0MTE2YjZkODU2YWYwOTg1L2xpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9yd2xvY2svbm9fdGhyZWFkcy5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi93YXNtLWJpbmRnZW4tMC4yLjEyNi9zcmMvZXh0ZXJucmVmLnJzAC9ydXN0Yy80OGEyMjljZWFlZmQ0OTg1YzUwOTkwYjE0MTE2YjZkODU2YWYwOTg1L2xpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMvbW9kLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjEzL3NyYy9kbG1hbGxvYy5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9saWJkZWZsYXRlci0xLjI1LjIvc3JjL2xpYi5ycwAA1gAQAF4AAABrAAAADQAAAMwCEAAKAAAAHAAAACQAAADMAhAACgAAAMIAAAApAAAAzAIQAAoAAAC2AAAAJwAAAMwCEAAKAAAAcQAAABwAAADMAhAACgAAAG0AAABBAAAAZGVjb21wcmVzc2lvbiBmYWlsZWRpbnZhbGlkIGJnemYgaGVhZGVyAMwCEAAKAAAATAAAAD0A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",CA=class t{static __wrap(e){let A=Object.create(t.prototype);return A.__wbg_ptr=e,Ut.register(A,A.__wbg_ptr,A),A}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Ut.unregister(this),e}free(){let e=this.__destroy_into_raw();m.__wbg_chunksliceresult_free(e,0)}take_buffer(){try{let n=m.__wbindgen_add_to_stack_pointer(-16);m.chunksliceresult_take_buffer(n,this.__wbg_ptr);var e=R().getInt32(n+0,!0),A=R().getInt32(n+4,!0),i=Tt(e,A).slice();return m.__wbindgen_export(e,A*1,1),i}finally{m.__wbindgen_add_to_stack_pointer(16)}}take_cpositions(){try{let n=m.__wbindgen_add_to_stack_pointer(-16);m.chunksliceresult_take_cpositions(n,this.__wbg_ptr);var e=R().getInt32(n+0,!0),A=R().getInt32(n+4,!0),i=Ht(e,A).slice();return m.__wbindgen_export(e,A*8,8),i}finally{m.__wbindgen_add_to_stack_pointer(16)}}take_dpositions(){try{let n=m.__wbindgen_add_to_stack_pointer(-16);m.chunksliceresult_take_dpositions(n,this.__wbg_ptr);var e=R().getInt32(n+0,!0),A=R().getInt32(n+4,!0),i=Ht(e,A).slice();return m.__wbindgen_export(e,A*8,8),i}finally{m.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(CA.prototype[Symbol.dispose]=CA.prototype.free);function Kt(t){try{let r=m.__wbindgen_add_to_stack_pointer(-16),Q=Xt(t,m.__wbindgen_export2),C=ue;m.decompress_all(r,Q,C);var e=R().getInt32(r+0,!0),A=R().getInt32(r+4,!0),i=R().getInt32(r+8,!0),n=R().getInt32(r+12,!0);if(n)throw zt(i);var g=Tt(e,A).slice();return m.__wbindgen_export(e,A*1,1),g}finally{m.__wbindgen_add_to_stack_pointer(16)}}function qt(t,e,A,i,n){try{let C=m.__wbindgen_add_to_stack_pointer(-16),I=Xt(t,m.__wbindgen_export2),o=ue;m.decompress_chunk_slice(C,I,o,e,A,i,n);var g=R().getInt32(C+0,!0),r=R().getInt32(C+4,!0),Q=R().getInt32(C+8,!0);if(Q)throw zt(r);return CA.__wrap(g)}finally{m.__wbindgen_add_to_stack_pointer(16)}}function qi(t,e){let A=Error(Zt(t,e));return Zi(A)}function Ti(t,e){throw new Error(Zt(t,e))}var Ut=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>m.__wbg_chunksliceresult_free(t,1));function Zi(t){dA===Z.length&&Z.push(Z.length+1);let e=dA;return dA=Z[e],Z[e]=t,e}function Xi(t){t<1028||(Z[t]=dA,dA=t)}function Ht(t,e){return t=t>>>0,zi().subarray(t/8,t/8+e)}function Tt(t,e){return t=t>>>0,de().subarray(t/1,t/1+e)}var rA=null;function R(){return(rA===null||rA.buffer.detached===!0||rA.buffer.detached===void 0&&rA.buffer!==m.memory.buffer)&&(rA=new DataView(m.memory.buffer)),rA}var RA=null;function zi(){return(RA===null||RA.byteLength===0)&&(RA=new Float64Array(m.memory.buffer)),RA}function Zt(t,e){return Pi(t>>>0,e)}var vA=null;function de(){return(vA===null||vA.byteLength===0)&&(vA=new Uint8Array(m.memory.buffer)),vA}function Oi(t){return Z[t]}var Z=new Array(1024).fill(void 0);Z.push(void 0,null,!0,!1);var dA=Z.length;function Xt(t,e){let A=e(t.length*1,1)>>>0;return de().set(t,A/1),ue=t.length,A}function zt(t){let e=Oi(t);return Xi(t),e}var MA=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});MA.decode();var Wi=2146435072,fe=0;function Pi(t,e){return fe+=e,fe>=Wi&&(MA=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),MA.decode(),fe=e),MA.decode(de().subarray(t,t+e).slice())}var ue=0,m;function Ot(t){m=t}var tA=null,he=null;async function Wt(){return tA||(he||(he=(async()=>{let e=await(await fetch(Ki)).arrayBuffer(),{instance:A}=await WebAssembly.instantiate(e,{"./bgzf_wasm_bg.js":le});return tA=A.exports,Ot(tA),tA})()),he)}async function Pt(t){return tA||await Wt(),Kt(t)}async function jt(t,e,A,i,n){tA||await Wt();let g=qt(t,e,A,i,n),r=g.take_buffer(),Q=g.take_cpositions(),C=g.take_dpositions();return g.free(),{buffer:r,cpositions:Q,dpositions:C}}var ji=26;function $t(t){return t[0]===31&&t[1]===139}function Vi(t){return t.length>=ji&&$t(t)&&t[2]===8&&t[3]===4&&t[10]===6&&t[12]===66&&t[13]===67}function Ai(t){return t instanceof Error?t.message:`${t}`}async function Vt(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 _t(t,void 0)}function ei(t){return Ai(t).includes("invalid gzip header")?new Error("problem decompressing block: incorrect gzip header check",{cause:t}):t}async function uA(t){if(t.length===0)return new Uint8Array(0);if(!Vi(t)){if($t(t))return Vt(t);throw new Error("problem decompressing block: not a valid bgzf or gzip block")}try{return await Pt(t)}catch(e){if(Ai(e).includes("invalid bgzf header"))return Vt(t);throw ei(e)}}function $i(t,e,A,i){let n=[],g=[],r=[],Q=A.dataPosition;for(let C=0;C<t.length;C++){let I=t[C],o=e[C],f=o.filePosition>=i.blockPosition;n.push(o.filePosition),g.push(Q);let E=C===0?A.dataPosition:0,a=f?Math.min(i.dataPosition+1,I.length):I.length;if(E<a&&r.push(I.subarray(E,a)),Q+=I.length-E,f){n.push(o.filePosition+o.compressedSize),g.push(Q);break}}return{buffer:Yt(r),cpositions:Float64Array.from(n),dpositions:Float64Array.from(g)}}var ti=4e5;function Ag(t){let e=0;for(let A of t)e+=A.decompressedSize;return e}async function we(t,e,A){let{minv:i,maxv:n}=e;if(A){let g=Lt(t,i.blockPosition,n.blockPosition);if(Ag(g)>=ti){let r=await A.decompressBlocks(t,g);return $i(r.blocks,g,i,n)}}try{let g=await jt(t,i.blockPosition,i.dataPosition,n.blockPosition,n.dataPosition);return{buffer:g.buffer,cpositions:g.cpositions,dpositions:g.dpositions}}catch(g){throw ei(g)}}function _A(t){if(t?.aborted)throw ke(t)}function ke(t){let e=t.reason;return e===void 0?new DOMException("This operation was aborted","AbortError"):e}function eg(t){typeof t=="object"&&t!==null&&"unref"in t&&typeof t.unref=="function"&&t.unref()}var j=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=C=>String(C),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){_A(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 _A(A),r}catch(r){throw _A(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(ke(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),eg(this.sweepTimer)}stopSweep(){this.sweepTimer!==void 0&&(clearInterval(this.sweepTimer),this.sweepTimer=void 0)}start(e,A,i){let n=i??(this.fill&&(C=>this.fill(A,C)));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(C=>{if(Q(),this.entries.get(e)===r){let I=this.weigh(C);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 LA(t){return t.bytes?t.bytes():new Uint8Array(await t.arrayBuffer())}async function ii(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?De(t,A):LA(t)}function gi(t){return typeof t=="string"?{encoding:t,opts:{}}:{encoding:t?.encoding,opts:t??{}}}function ni(t){let e=/\/(\d+)$/.exec(t??"")?.[1];return e===void 0?void 0:parseInt(e,10)}function tg(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 ig=50;async function De(t,e){let A=tg(t),i=t.body;if(!i||A===void 0){let C=await LA(t);return e(C.byteLength,A??C.byteLength),C}let n=i.getReader(),g=new Uint8Array(A),r=0,Q=Date.now();e(0,A);for(let C=await n.read();!C.done;C=await n.read()){if(r+C.value.byteLength>g.length){let o=new Uint8Array(Math.max(r+C.value.byteLength,g.length*2));o.set(g.subarray(0,r)),g=o}g.set(C.value,r),r+=C.value.byteLength;let I=Date.now();I-Q>=ig&&(Q=I,e(r,A))}return e(r,A),r===g.length?g:g.slice(0,r)}function gg(...t){let e=new Map;for(let A of t)for(let[i,n]of Object.entries(A??{}))e.set(i.toLowerCase(),[i,n]);return Object.fromEntries(e.values())}function Ne(t){let e=t.body;typeof e?.cancel=="function"&&e.cancel().catch(()=>{})}function Ii(t){return Number.isSafeInteger(t)&&t>=0}function ng(t){return typeof t=="object"&&t!==null&&"name"in t&&t.name==="TypeError"}function Ig(t){return(typeof t=="object"&&t!==null&&"message"in t&&typeof t.message=="string"?t.message:`${t}`).replace(/\.$/,"")}var X=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:gg(this.baseHeaders,e.headers,A),...i?{signal:i}:{}}}async fetch(e,A){let i=g=>ng(g)&&!A?.signal?.aborted?new Error(`${Ig(g)} fetching ${e}`,{cause:g}):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(!Ii(e)||!Ii(A))throw new TypeError(`read() called with an invalid length or position (length=${e}, position=${A}). The index file may be corrupt.`);return e===0?new Uint8Array(0):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 Ne(n),new Uint8Array(0);if(this.checkOk(n),n.status===200&&A===0||n.status===206){let g=ni(n.headers.get("content-range"));g!==void 0&&(this._stat={size:g});let r=i.onProgress?await De(n,i.onProgress):await LA(n);return!this._stat&&n.status===200&&(this._stat={size:r.byteLength}),r.byteLength<=e?r:r.slice(0,e)}throw Ne(n),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 Ne(e),new Error(`HTTP ${e.status} fetching ${this.url}`)}async readFile(e){let{encoding:A,opts:i}=gi(e),n=await this.fetch(this.url,this.buildRequest(i));this.checkOk(n);let g=await this.readFileBody(n,A,i.onProgress);return n.status===200&&typeof g!="string"&&(this._stat={size:g.byteLength}),g}readFileBody(e,A,i){return ii(e,A,i)}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 iA=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 K=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}};function ye(t,e){if(!(e>0))throw new TypeError(`\`${t}\` must be a number greater than 0`)}var wA=class{#A=new Map;#e=new Map;#t;#g;#n;constructor(e){let A=e.maxAge??Number.POSITIVE_INFINITY;ye("maxSize",e.maxSize),ye("maxAge",A),this.#t=e.maxSize,this.#g=A,this.#n=e.onEviction}#I(e){let A=this.#n;if(A)for(let[i,n]of e)A(i,n.value)}#i(e,A){return A.expiry!==void 0&&A.expiry<=Date.now()?(this.#n?.(e,A.value),this.delete(e),!0):!1}#Q(e,A){return this.#i(e,A)?void 0:A.value}#r(e,A){if(this.#e.delete(e),this.#A.set(e,A),this.#A.size>=this.#t){let i=this.#e;this.#e=this.#A,this.#A=new Map,this.#I(i)}}#C(e){this.#e=new Map(e),this.#A=new Map}*#o(){for(let e of[this.#e,this.#A])for(let A of e)this.#i(...A)||(yield A)}get(e){let A=this.#A.get(e);if(A)return this.#Q(e,A);let i=this.#e.get(e);if(i&&!this.#i(e,i))return this.#r(e,i),i.value}set(e,A,{maxAge:i=this.#g}={}){let n={value:A,expiry:i===Number.POSITIVE_INFINITY?void 0:Date.now()+i};return this.#A.has(e)?this.#A.set(e,n):this.#r(e,n),this}has(e){let A=this.#A.get(e)??this.#e.get(e);return A!==void 0&&!this.#i(e,A)}peek(e){let A=this.#A.get(e)??this.#e.get(e);return A?this.#Q(e,A):void 0}expiresIn(e){let A=this.#A.get(e)??this.#e.get(e);if(A)return A.expiry===void 0?Number.POSITIVE_INFINITY:A.expiry-Date.now()}delete(e){return this.#A.delete(e)||this.#e.delete(e)}clear(){this.#A.clear(),this.#e.clear()}resize(e){ye("maxSize",e);let A=[...this.#o()],i=A.length-e;i<0?(this.#A=new Map(A),this.#e=new Map):(this.#I(A.slice(0,i)),this.#C(A.slice(i))),this.#t=e}evict(e=1){if(!(e>0))return;let A=[...this.#o()],i=Math.trunc(Math.min(e,A.length-1));i>0&&(this.#I(A.slice(0,i)),this.#C(A.slice(i)))}get size(){return Math.min(this.#A.size+this.#e.size,this.#t)}get maxSize(){return this.#t}get maxAge(){return this.#g}*entriesAscending(){for(let[e,A]of this.#o())yield[e,A.value]}*entriesDescending(){for(let e of[this.#A,this.#e])for(let[A,i]of[...e].reverse())this.#i(A,i)||(yield[A,i.value])}entries(){return this.entriesAscending()}[Symbol.iterator](){return this.entriesAscending()}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}forEach(e,A=this){for(let[i,n]of this)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 oi(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 BA=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 V(t,e=0){return new BA(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 YA(t,e){let A=t.length;if(A===0)return t;let i;if(e){let Q=e.blockPosition,C=e.dataPosition;i=[];for(let I=0;I<A;I++){let o=t[I];(o.maxv.blockPosition-Q||o.maxv.dataPosition-C)>0&&i.push(o)}if(i.length===0)return i}else i=t;i.sort((Q,C)=>{let I=Q.minv.blockPosition-C.minv.blockPosition;return I===0?Q.minv.dataPosition-C.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 C=i[Q],I=C.minv.blockPosition,o=C.maxv.blockPosition;if(I-r<65e3&&o-g<5e6){let f=n.at(-1);(o-r||C.maxv.dataPosition-f.maxv.dataPosition)>0&&(n[n.length-1]=new K(f.minv,C.maxv,f.bin,C.endPosition),r=o)}else n.push(C),g=I,r=o}return og(n)}function og(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 K(n,i.maxv,i.bin,i.endPosition))}return e}function UA(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 HA(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 C=e+Q*8,I=t[C+7]*1099511627776+t[C+6]*4294967296+t[C+5]*16777216+t[C+4]*65536+t[C+3]*256+t[C+2],o=t[C+1]<<8|t[C];(I<n||I===n&&o<g)&&(n=I,g=o,r=!0)}return r?new BA(n,g):i}function Qg(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 rg={0:"generic",1:"SAM",2:"VCF",3:"GAF"};function KA(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=rg[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),C=Q?String.fromCharCode(Q):void 0,I=A.getInt32(e+20,!0),o=A.getInt32(e+24,!0),{refIdToName:f,refNameToId:E}=Qg(t.subarray(e+28,e+28+o));return{refIdToName:f,refNameToId:E,skipLines:I,metaChar:C,columnNumbers:r,format:g,coordinateType:n}}function qA(t,e){return{lineCount:oi(t,e)}}function TA(t,e=5){let A=new wA({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 C=1;C<r.length;C++){let I=r[C].minv;I.compareTo(Q)<0&&(Q=I)}return Q}g++}}function Qi(t,e){return t.format==="GAF"?0:t.refNameToId[e]}var gA=class{filehandle;parseCache=new j({});constructor({filehandle:e}){this.filehandle=e}async readIndexBytes(e){let A=await this.filehandle.readFile({signal:e.signal,onProgress:e.onProgress}),i=await uA(A);return{bytes:i,dataView:new DataView(i.buffer,i.byteOffset,i.byteLength)}}async lineCount(e,A={}){let i=await this.parse(A),n=Qi(i,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=Qi(g,e);if(r===void 0)return[];let Q=g.indices(r);if(!Q)return[];g.format==="GAF"&&(A=Math.max(A-1,0));let C=[];for(let[f,E]of this.reg2bins(A,i,g))for(let a=f;a<=E;a++){let s=Q.binIndex[a];if(s)for(let D of s)C.push(D)}let I=YA(C,this.lowestOffset(Q,A,g)),o=Cg(Q.binIndex,i,g.minShift,g.depth);if(o){let f=I.length;for(;f>0&&I[f-1].minv.compareTo(o)>=0;)f--;I.length=f}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 Bg=21582659,ag=38359875;function ri(t,e){return t*2**e}function pe(t,e){return Math.floor(t/2**e)}var nA=class extends gA{async _parse(e={}){let{bytes:A,dataView:i}=await this.readIndexBytes(e),n=i.getUint32(0,!0),g;if(n===Bg)g=1;else if(n===ag)g=2;else throw new Error(`Not a CSI file (magic=${n})`);let r=i.getInt32(4,!0),Q=i.getInt32(8,!0),C=(8**(Q+1)-1)/7,I=2**(r+Q*3),o=i.getInt32(12,!0),f=o>=28&&(i.getInt32(16,!0)&15)===3,E=o>=30||f?KA(A,16):{refIdToName:[],refNameToId:{},metaChar:void 0,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},a=i.getInt32(16+o,!0),s=16+o+4,D,w=[];for(let k=0;k<a;k++){w.push(s);let u=i.getInt32(s,!0);s+=4;for(let B=0;B<u;B++){let l=i.getUint32(s,!0);if(s+=4,l>C)s+=44;else{D=HA(A,s,1,D),s+=8;let N=i.getInt32(s,!0);s+=4+16*N}}}function d(k){let u=w[k];if(u===void 0)return;let B=u,l=i.getInt32(B,!0);B+=4;let N={},c={},p;for(let y=0;y<l;y++){let h=i.getUint32(B,!0);if(B+=4,h>C)p=qA(A,B+28),B+=44;else{c[h]=V(A,B),B+=8;let F=i.getInt32(B,!0);B+=4;let b=Array.from({length:F});for(let G=0;G<F;G++)b[G]=new K(V(A,B),V(A,B+8),h),B+=16;N[h]=b}}return UA(Object.values(N).flat()),{binIndex:N,loffsets:c,stats:p}}return{...E,csi:!0,refCount:a,maxBlockSize:65536,firstDataLine:D,csiVersion:g,indices:TA(d),minShift:r,depth:Q,maxBinNumber:C,maxRefLength:I}}lowestOffset(e,A,{minShift:i,depth:n}){let{loffsets:g}=e,r;if(g){let Q=(ri(1,3*n)-1)/7+pe(Math.max(A,0),i);for(;r===void 0&&Q>0;)if(r=g[Q],r===void 0){let C=Math.floor((Q-1)/8),I=C*8+1;Q=Q>I?Q-1:C}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,C=0,I=i+n*3,o=[];for(;Q<=n;I-=3,C+=ri(1,Q*3),Q+=1){let f=C+pe(e,I),E=C+pe(A,I);if(E-f+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([f,E])}return o}};var sg=21578324,Fe=5,me=14,ZA=2**(me+Fe*3);function Ci(t){return Math.min(Math.max(t,0),ZA)}var z=class extends gA{reg2bins(e,A){e>ZA&&console.warn("querying outside of possible tabix range");let i=Ci(e),n=Math.min(A,ZA)-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(Ci(A)>>me,i.length-1)]}async _parse(e={}){let{bytes:A,dataView:i}=await this.readIndexBytes(e);if(i.getUint32(0,!0)!==sg)throw new Error("Not a TBI file");let n=i.getUint32(4,!0),g=((1<<(Fe+1)*3)-1)/7,{refNameToId:r,refIdToName:Q,coordinateType:C,format:I,columnNumbers:o,metaChar:f,skipLines:E}=KA(A,8),s=36+i.getInt32(32,!0),D,w=[];for(let k=0;k<n;k++){w.push(s);let u=i.getInt32(s,!0);s+=4;for(let l=0;l<u;l++){let N=i.getUint32(s,!0);s+=4;let c=i.getInt32(s,!0);if(s+=4,N>g+1)throw new Error("tabix index contains too many bins, please use a CSI index");s+=16*c}let B=i.getInt32(s,!0);s+=4,D=HA(A,s,B,D),s+=8*B}function d(k){let u=w[k];if(u===void 0)return;let B=u,l=i.getInt32(B,!0);B+=4;let N={},c;for(let h=0;h<l;h++){let F=i.getUint32(B,!0);if(B+=4,F>g+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(F===g+1){let b=i.getInt32(B,!0);B+=4,b===2&&(c=qA(A,B+16)),B+=16*b}else{let b=i.getInt32(B,!0);B+=4;let G=Array.from({length:b});for(let J=0;J<b;J++)G[J]=new K(V(A,B),V(A,B+8),F),B+=16;N[F]=G}}let p=i.getInt32(B,!0);B+=4;let y=Array.from({length:p});for(let h=0;h<p;h++)y[h]=V(A,B),B+=8;return UA(Object.values(N).flat(),y.map(h=>h.blockPosition)),{binIndex:N,linearIndex:y,stats:c}}return{indices:TA(d),metaChar:f,minShift:me,depth:Fe,maxBinNumber:g,maxRefLength:ZA,skipLines:E,firstDataLine:D,columnNumbers:o,coordinateType:C,format:I,refIdToName:Q,refNameToId:r,maxBlockSize:65536}}};var xe=9,XA=10,ai=13,Eg=59,cg=60,fg=62,hg=6,lg=1024*2**20,dg=180*1e3;function ug(t,e,A){if(t)return t;if(e)return new iA(e);if(A)return new X(A);throw new TypeError("must provide either filehandle, path, or url")}function wg({tbiFilehandle:t,csiFilehandle:e,tbiPath:A,csiPath:i,tbiUrl:n,csiUrl:g,path:r,url:Q}){if(t)return new z({filehandle:t});if(e)return new nA({filehandle:e});if(A)return new z({filehandle:new iA(A)});if(i)return new nA({filehandle:new iA(i)});if(g)return new nA({filehandle:new X(g)});if(n)return new z({filehandle:new X(n)});if(r)return new z({filehandle:new iA(`${r}.tbi`)});if(Q)return new z({filehandle:new X(`${Q}.tbi`)});throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl")}function si(t,e,A,i,n){return t[A]*256+(i-e[A])+n+1}function kg(t,e,A,i,n,g){let r=i-A,Q=e+r;if(t[n]===46)return Q;let C=n;for(let I=n;I<=g;I++)if(I===g||t[I]===Eg){let o=I-C;if(o>=10&&t[C]===83&&t[C+1]===86&&t[C+2]===84&&t[C+3]===89&&t[C+4]===80&&t[C+5]===69&&t[C+6]===61&&t[C+7]===84&&t[C+8]===82&&t[C+9]===65)return e+1;o>=4&&t[C]===69&&t[C+1]===78&&t[C+2]===68&&t[C+3]===61&&(Q=be(t,C+4,I)),C=I+1}return Q}var Ei=new TextDecoder;function Bi(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===XA&&(A=n)}return t.subarray(0,A+1)}function Dg(t,e){let A=0;for(let i=0;i<e;i++){let n=t.indexOf(XA,A);if(n===-1){A=t.length;break}A=n+1}return Ei.decode(t.subarray(0,A)).split(/\r?\n/).slice(0,e)}function be(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}function Ng(t,e,A,i,{start:n,end:g,pathCol:r,metaCharCode:Q,decoder:C,callback:I}){let o=0,f=0;for(;o<t.length;){let E=t.indexOf(XA,o);if(E===-1)break;let a=o;o=E+1;let s=a+i;for(;f<A.length&&s>=A[f];)f++;if(t[a]===Q)continue;let D=a;for(let l=1;l<r;l++){let N=t.indexOf(xe,D);if(N===-1||N>=E){D=E;break}D=N+1}let w=t[D];if(w!==fg&&w!==cg)continue;let d=t.indexOf(xe,D);(d===-1||d>E)&&(d=E);let k=1/0,u=-1,B=D;for(;B<d;){let l=0,N=B+1;for(;N<d;N++){let c=t[N]-48;if(c<0||c>9)break;l=l*10+c}l<k&&(k=l),l>u&&(u=l),B=N}if(k>=g)return!0;if(u>=n){let l=t[E-1]===ai?E-1:E;I(C.decode(t.subarray(a,l)),si(e,A,f,a,i),k,u+1)}}return!1}var aA=class{filehandle;index;chunkCache;headerCache=new j({});bgzfWorkerPool;constructor({path:e,filehandle:A,url:i,tbiPath:n,tbiUrl:g,tbiFilehandle:r,csiPath:Q,csiUrl:C,csiFilehandle:I,chunkCacheSize:o=lg,chunkCacheIdleTimeoutMs:f=dg,chunkCacheBudget:E,bgzfWorkerPool:a}){this.bgzfWorkerPool=a,this.filehandle=ug(A,e,i),this.index=wg({tbiFilehandle:r,csiFilehandle:I,tbiPath:n,csiPath:Q,tbiUrl:g,csiUrl:C,path:e,url:i}),this.chunkCache=new j({maxSize:o,sizeOf:s=>s.buffer.byteLength,cacheKey:s=>s.toString(),idleTimeoutMs:f,budget:E,fill:(s,D)=>this.readChunk(s,{signal:D})})}clearChunkCache(){this.chunkCache.clear()}async bytesForRegions(e,A={}){let i=[];for(let{refName:g,start:r,end:Q}of e){let C=await this.index.blocksForRange(g,r,Q,A);for(let I of C)i.push(I)}let n=0;for(let g of YA(i))n+=g.fetchedSize();return n}async getLines(e,A,i,n){let g,r={},Q,C;typeof n=="function"?Q=n:(r=n,Q=n.lineCallback,g=n.signal,C=n.onProgress);let I=await this.index.getMetadata(r),o=A??0,f=i??I.maxRefLength;if(o>f)throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(o===f)return;let E=await this.index.blocksForRange(e,o,f,r),a=I.format==="VCF",s=I.columnNumbers.ref||0,D=I.columnNumbers.start||0,w=a?8:I.columnNumbers.end||0,d=Math.max(s,D,w),k=I.metaChar?.charCodeAt(0),u=I.coordinateType==="1-based-closed"?-1:0,B=new TextEncoder,l=new TextDecoder,N=B.encode(e),c=new Int32Array(d+1),p=I.format==="GAF"?{start:o,end:f,pathCol:D,metaCharCode:k,decoder:l,callback:Q}:void 0,y=0;for(let J of E)y+=J.fetchedSize();let h=0;C?.(0,y);let F=1,b=[],G=J=>{for(;b.length<Math.min(J,E.length);){let IA=E[b.length],U=this.chunkCache.get(IA,g);U.catch(()=>{}),b.push(U)}};G(1);for(let J=0,IA=E.length;J<IA;J++){let U=E[J],{buffer:S,cpositions:Se,dpositions:kA}=await b[J];h+=U.fetchedSize(),C?.(h,y);let OA=U.minv.dataPosition;if(p){if(Ng(S,Se,kA,OA,p))return}else{let _=0,DA=0;for(;_<S.length;){let L=S.indexOf(XA,_);if(L===-1)break;let hi=_+OA;for(;DA<kA.length&&hi>=kA[DA];)DA++;if(k!==void 0&&S[_]===k){_=L+1;continue}c[0]=_-1;for(let Y=0;Y<d;Y++){let yA=c[Y],WA=yA<L?S.indexOf(xe,yA+1):-1;c[Y+1]=WA===-1||WA>=L?L:WA}let Ge=c[s-1]+1,Re=c[s]-Ge;if(Re!==N.length){_=L+1;continue}let ve=!0;for(let Y=0;Y<Re;Y++)if(S[Ge+Y]!==N[Y]){ve=!1;break}if(!ve){_=L+1;continue}let NA=be(S,c[D-1]+1,c[D])+u;if(NA>=f)return;let sA;if(w===0||w===D?sA=NA+1:a?sA=kg(S,NA,c[3]+1,c[4],c[w-1]+1,c[w]):sA=be(S,c[w-1]+1,c[w]),sA>o){let Y=S[L-1]===ai?L-1:L,yA=l.decode(S.subarray(_,Y));Q(yA,si(Se,kA,DA,_,OA),NA,sA)}_=L+1}}F=Math.min(F*2,hg),G(J+1+F)}}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 uA(g)}async parseHeader(e){let{metaChar:A,skipLines:i=0}=await this.getMetadata(e),n=await this.readHeaderBytes(e);return{header:Ei.decode(A?Bi(n,A):n),skippedLines:i>0?Dg(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?Bi(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 we(i,e,n)}};var fi=_e(Ke(),1),zA=_e(li(),1),yg=50*2**20;function nI(t,e,A){let i=t.pluginManager;return new aA({filehandle:(0,zA.openLocation)(t.getConf(e),i),...(0,zA.openTabixIndexFilehandle)(t.getConf([...A,"location"]),t.getConf([...A,"indexType"]),i),chunkCacheSize:yg})}function Je(t,e){return`${t} ${e}`}function pg(t){let e=new Map;for(let A of t){e.set(A,A);let i=Le(A);if(i!==A){let n=PA(A);e.set(Je(i,n),A);let g=Ye(A);g!==void 0&&e.set(Je(g,n),A)}}return e}function Fg(t,e,A){let i=t.get(Je(e,A));return i===void 0?t.get(A):i}var ci=class{constructor(e,A){this.file=e;this.adapter=A;this.lookup=(0,fi.cachedSetup)({setup:async e=>pg(await this.file.getReferenceSequenceNames(e))})}async assemblyRefNames(e={}){let A=await this.file.getReferenceSequenceNames(e),i=jA(this.adapter,e.assemblyName),n=A.filter(g=>Ue(g,i)).map(g=>PA(g));return n.length>0?n:A}async resolve(e,A){let i=await this.lookup(A);return Fg(i,jA(this.adapter,e.assemblyName),e.refName)}};export{Ke as a,di as b,uA as c,nI as d,ci as e};
2
- //# sourceMappingURL=chunk-O5EHYU3Y.js.map
1
+ import{a as li}from"./chunk-KWAXLUPQ.js";import{a as Le,c as Ye,d as PA,e as Ue,f as jA}from"./chunk-DILFGQIL.js";import{a as Me,b as _e}from"./chunk-FY3BTKY4.js";var Ke=Me((xg,He)=>{He.exports=JBrowseExports["@jbrowse/core/data_adapters/BaseAdapter"]});var di=Me((bg,qe)=>{qe.exports=JBrowseExports["@jbrowse/core/util/rxjs"]});var VA=0;var $A=2;var EA=4;var O=0,cA=1,Te=2;var Ze=-5;function ui(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Xe(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)ui(A,i)&&(t[i]=A[i])}}return t}function FA(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)}var fA={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)}},hA={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)}},oA=()=>{let t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";return oA=()=>t,t},H=(t,e,A,i,n)=>(H=oA()?fA.arraySet:hA.arraySet,H(t,e,A,i,n)),pA=t=>(pA=oA()?fA.flattenChunks:hA.flattenChunks,pA(t)),q=t=>(q=oA()?fA.Buf8:hA.Buf8,q(t)),W=t=>(W=oA()?fA.Buf16:hA.Buf16,W(t)),$=t=>($=oA()?fA.Buf32:hA.Buf32,$(t));var ze=function(){let t=!0;try{String.fromCharCode.apply(null,[0])}catch{t=!1}return ze=()=>t,t},Oe=function(){let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{t=!1}return Oe=()=>t,t},Ae=function(t){for(var e=q(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 ee(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 wi(t,e){if(e<65534&&(t.subarray&&Oe()||!t.subarray&&ze()))return String.fromCharCode.apply(null,FA(t,e));for(var A="",i=0;i<e;i++)A+=String.fromCharCode(t[i]);return A}function We(t){for(var e=new Uint8Array(t.length),A=0,i=e.length;A<i;A++)e[A]=t.charCodeAt(A);return e}function Pe(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 wi(Q,i)}function je(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 te(){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 lA(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 ki(){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 Ve=function(){let t=ki();return Ve=()=>t,t};function v(t,e,A,i){var n=Ve(),g=i+A;t^=-1;for(var r=i;r<g;r++)t=t>>>8^n[(t^e[r])&255];return t^-1}var mA=30,Di=12;function ie(t,e){var A,i,n,g,r,Q,C,I,o,f,E,a,s,D,w,d,k,u,B,l,N,c,p,y,h;A=t.state,i=t.next_in,y=t.input,n=i+(t.avail_in-5),g=t.next_out,h=t.output,r=g-(e-t.avail_out),Q=g+(t.avail_out-257),C=A.dmax,I=A.wsize,o=A.whave,f=A.wnext,E=A.window,a=A.hold,s=A.bits,D=A.lencode,w=A.distcode,d=(1<<A.lenbits)-1,k=(1<<A.distbits)-1;A:do{s<15&&(a+=y[i++]<<s,s+=8,a+=y[i++]<<s,s+=8),u=D[a&d];e:for(;;){if(B=u>>>24,a>>>=B,s-=B,B=u>>>16&255,B===0)h[g++]=u&65535;else if(B&16){l=u&65535,B&=15,B&&(s<B&&(a+=y[i++]<<s,s+=8),l+=a&(1<<B)-1,a>>>=B,s-=B),s<15&&(a+=y[i++]<<s,s+=8,a+=y[i++]<<s,s+=8),u=w[a&k];t:for(;;){if(B=u>>>24,a>>>=B,s-=B,B=u>>>16&255,B&16){if(N=u&65535,B&=15,s<B&&(a+=y[i++]<<s,s+=8,s<B&&(a+=y[i++]<<s,s+=8)),N+=a&(1<<B)-1,N>C){t.msg="invalid distance too far back",A.mode=mA;break A}if(a>>>=B,s-=B,B=g-r,N>B){if(B=N-B,B>o&&A.sane){t.msg="invalid distance too far back",A.mode=mA;break A}if(c=0,p=E,f===0){if(c+=I-B,B<l){l-=B;do h[g++]=E[c++];while(--B);c=g-N,p=h}}else if(f<B){if(c+=I+f-B,B-=f,B<l){l-=B;do h[g++]=E[c++];while(--B);if(c=0,f<l){B=f,l-=B;do h[g++]=E[c++];while(--B);c=g-N,p=h}}}else if(c+=f-B,B<l){l-=B;do h[g++]=E[c++];while(--B);c=g-N,p=h}for(;l>2;)h[g++]=p[c++],h[g++]=p[c++],h[g++]=p[c++],l-=3;l&&(h[g++]=p[c++],l>1&&(h[g++]=p[c++]))}else{c=g-N;do h[g++]=h[c++],h[g++]=h[c++],h[g++]=h[c++],l-=3;while(l>2);l&&(h[g++]=h[c++],l>1&&(h[g++]=h[c++]))}}else if((B&64)===0){u=w[(u&65535)+(a&(1<<B)-1)];continue t}else{t.msg="invalid distance code",A.mode=mA;break A}break}}else if((B&64)===0){u=D[(u&65535)+(a&(1<<B)-1)];continue e}else if(B&32){A.mode=Di;break A}else{t.msg="invalid literal/length code",A.mode=mA;break A}break}}while(i<n&&g<Q);l=s>>3,i-=l,s-=l<<3,a&=(1<<s)-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=a,A.bits=s}var QA=15,$e=852,At=592,et=0,ge=1,tt=2,Ni=[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],yi=[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],pi=[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],Fi=[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 AA(t,e,A,i,n,g,r,Q){var C=Q.bits,I=0,o=0,f=0,E=0,a=0,s=0,D=0,w=0,d=0,k=0,u,B,l,N,c,p=null,y=0,h,F=W(QA+1),b=W(QA+1),G=null,J=0,IA,U,S;for(I=0;I<=QA;I++)F[I]=0;for(o=0;o<i;o++)F[e[A+o]]++;for(a=C,E=QA;E>=1&&F[E]===0;E--);if(a>E&&(a=E),E===0)return n[g++]=1<<24|64<<16|0,n[g++]=1<<24|64<<16|0,Q.bits=1,0;for(f=1;f<E&&F[f]===0;f++);for(a<f&&(a=f),w=1,I=1;I<=QA;I++)if(w<<=1,w-=F[I],w<0)return-1;if(w>0&&(t===et||E!==1))return-1;for(b[1]=0,I=1;I<QA;I++)b[I+1]=b[I]+F[I];for(o=0;o<i;o++)e[A+o]!==0&&(r[b[e[A+o]]++]=o);if(t===et?(p=G=r,h=19):t===ge?(p=Ni,y-=257,G=yi,J-=257,h=256):(p=pi,G=Fi,h=-1),k=0,o=0,I=f,c=g,s=a,D=0,l=-1,d=1<<a,N=d-1,t===ge&&d>$e||t===tt&&d>At)return 1;for(;;){IA=I-D,r[o]<h?(U=0,S=r[o]):r[o]>h?(U=G[J+r[o]],S=p[y+r[o]]):(U=96,S=0),u=1<<I-D,B=1<<s,f=B;do B-=u,n[c+(k>>D)+B]=IA<<24|U<<16|S|0;while(B!==0);for(u=1<<I-1;k&u;)u>>=1;if(u!==0?(k&=u-1,k+=u):k=0,o++,--F[I]===0){if(I===E)break;I=e[A+r[o]]}if(I>a&&(k&N)!==l){for(D===0&&(D=a),c+=f,s=I-D,w=1<<s;s+D<E&&(w-=F[s+D],!(w<=0));)s++,w<<=1;if(d+=1<<s,t===ge&&d>$e||t===tt&&d>At)return 1;l=k&N,n[l]=a<<24|s<<16|c-g|0}}return k!==0&&(n[c+k]=I-D<<24|64<<16|0),Q.bits=a,0}var mi=0,mt=1,xt=2,it=4,xi=5,xA=6,eA=0,bi=1,Ji=2,M=-2,bt=-3,Ce=-4,Si=-5,gt=8,Jt=1,nt=2,It=3,ot=4,Qt=5,rt=6,Ct=7,Bt=8,at=9,st=10,SA=11,T=12,ne=13,Et=14,Ie=15,ct=16,ft=17,ht=18,lt=19,bA=20,JA=21,dt=22,ut=23,wt=24,kt=25,Dt=26,oe=27,Nt=28,yt=29,x=30,Be=31,Gi=32,Ri=852,vi=592;function pt(t){return(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24)}function Mi(){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=W(320),this.work=W(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function _i(t){var e;return!t||!t.state?M:(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=Jt,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=$(Ri),e.distcode=e.distdyn=$(vi),e.sane=1,e.back=-1,eA)}function Li(t){var e;return!t||!t.state?M:(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,_i(t))}function Yi(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))?M:(i.window!==null&&i.wbits!==e&&(i.window=null),i.wrap=A,i.wbits=e,Li(t))}function St(t,e){var A,i;return t?(i=new Mi,t.state=i,i.window=null,A=Yi(t,e),A!==eA&&(t.state=null),A):M}var Ft=!0,Qe,re;function Ui(t){if(Ft){var e;for(Qe=$(512),re=$(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(AA(mt,t.lens,0,288,Qe,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;AA(xt,t.lens,0,32,re,0,t.work,{bits:5}),Ft=!1}t.lencode=Qe,t.lenbits=9,t.distcode=re,t.distbits=5}function Gt(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=q(g.wsize)),i>=g.wsize?(H(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),H(g.window,e,A-i,n,g.wnext),i-=n,i?(H(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 Rt(t,e){var A,i,n,g,r,Q,C,I,o,f,E,a,s,D,w=0,d,k,u,B,l,N,c,p,y=q(4),h,F,b=[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 M;A=t.state,A.mode===T&&(A.mode=ne),r=t.next_out,n=t.output,C=t.avail_out,g=t.next_in,i=t.input,Q=t.avail_in,I=A.hold,o=A.bits,f=Q,E=C,p=eA;A:for(;;)switch(A.mode){case Jt:if(A.wrap===0){A.mode=ne;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,y[0]=I&255,y[1]=I>>>8&255,A.check=v(A.check,y,2,0),I=0,o=0,A.mode=nt;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=x;break}if((I&15)!==gt){t.msg="unknown compression method",A.mode=x;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=x;break}A.dmax=1<<c,t.adler=A.check=1,A.mode=I&512?st:T,I=0,o=0;break;case nt:for(;o<16;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(A.flags=I,(A.flags&255)!==gt){t.msg="unknown compression method",A.mode=x;break}if(A.flags&57344){t.msg="unknown header flags set",A.mode=x;break}A.head&&(A.head.text=I>>8&1),A.flags&512&&(y[0]=I&255,y[1]=I>>>8&255,A.check=v(A.check,y,2,0)),I=0,o=0,A.mode=It;case It:for(;o<32;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}A.head&&(A.head.time=I),A.flags&512&&(y[0]=I&255,y[1]=I>>>8&255,y[2]=I>>>16&255,y[3]=I>>>24&255,A.check=v(A.check,y,4,0)),I=0,o=0,A.mode=ot;case ot: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&&(y[0]=I&255,y[1]=I>>>8&255,A.check=v(A.check,y,2,0)),I=0,o=0,A.mode=Qt;case Qt: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&&(y[0]=I&255,y[1]=I>>>8&255,A.check=v(A.check,y,2,0)),I=0,o=0}else A.head&&(A.head.extra=null);A.mode=rt;case rt:if(A.flags&1024&&(a=A.length,a>Q&&(a=Q),a&&(A.head&&(c=A.head.extra_len-A.length,A.head.extra||(A.head.extra=new Array(A.head.extra_len)),H(A.head.extra,i,g,a,c)),A.flags&512&&(A.check=v(A.check,i,a,g)),Q-=a,g+=a,A.length-=a),A.length))break A;A.length=0,A.mode=Ct;case Ct:if(A.flags&2048){if(Q===0)break A;a=0;do c=i[g+a++],A.head&&c&&A.length<65536&&(A.head.name+=String.fromCharCode(c));while(c&&a<Q);if(A.flags&512&&(A.check=v(A.check,i,a,g)),Q-=a,g+=a,c)break A}else A.head&&(A.head.name=null);A.length=0,A.mode=Bt;case Bt:if(A.flags&4096){if(Q===0)break A;a=0;do c=i[g+a++],A.head&&c&&A.length<65536&&(A.head.comment+=String.fromCharCode(c));while(c&&a<Q);if(A.flags&512&&(A.check=v(A.check,i,a,g)),Q-=a,g+=a,c)break A}else A.head&&(A.head.comment=null);A.mode=at;case at: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=x;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=T;break;case st:for(;o<32;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}t.adler=A.check=pt(I),I=0,o=0,A.mode=SA;case SA:if(A.havedict===0)return t.next_out=r,t.avail_out=C,t.next_in=g,t.avail_in=Q,A.hold=I,A.bits=o,Ji;t.adler=A.check=1,A.mode=T;case T:if(e===xi||e===xA)break A;case ne:if(A.last){I>>>=o&7,o-=o&7,A.mode=oe;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=Et;break;case 1:if(Ui(A),A.mode=bA,e===xA){I>>>=2,o-=2;break A}break;case 2:A.mode=ft;break;case 3:t.msg="invalid block type",A.mode=x}I>>>=2,o-=2;break;case Et: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=x;break}if(A.length=I&65535,I=0,o=0,A.mode=Ie,e===xA)break A;case Ie:A.mode=ct;case ct:if(a=A.length,a){if(a>Q&&(a=Q),a>C&&(a=C),a===0)break A;H(n,i,g,a,r),Q-=a,g+=a,C-=a,r+=a,A.length-=a;break}A.mode=T;break;case ft: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=x;break}A.have=0,A.mode=ht;case ht:for(;A.have<A.ncode;){for(;o<3;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}A.lens[b[A.have++]]=I&7,I>>>=3,o-=3}for(;A.have<19;)A.lens[b[A.have++]]=0;if(A.lencode=A.lendyn,A.lenbits=7,h={bits:A.lenbits},p=AA(mi,A.lens,0,19,A.lencode,0,A.work,h),A.lenbits=h.bits,p){t.msg="invalid code lengths set",A.mode=x;break}A.have=0,A.mode=lt;case lt:for(;A.have<A.nlen+A.ndist;){for(;w=A.lencode[I&(1<<A.lenbits)-1],d=w>>>24,k=w>>>16&255,u=w&65535,!(d<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(u<16)I>>>=d,o-=d,A.lens[A.have++]=u;else{if(u===16){for(F=d+2;o<F;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(I>>>=d,o-=d,A.have===0){t.msg="invalid bit length repeat",A.mode=x;break}c=A.lens[A.have-1],a=3+(I&3),I>>>=2,o-=2}else if(u===17){for(F=d+3;o<F;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}I>>>=d,o-=d,c=0,a=3+(I&7),I>>>=3,o-=3}else{for(F=d+7;o<F;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}I>>>=d,o-=d,c=0,a=11+(I&127),I>>>=7,o-=7}if(A.have+a>A.nlen+A.ndist){t.msg="invalid bit length repeat",A.mode=x;break}for(;a--;)A.lens[A.have++]=c}}if(A.mode===x)break;if(A.lens[256]===0){t.msg="invalid code -- missing end-of-block",A.mode=x;break}if(A.lenbits=9,h={bits:A.lenbits},p=AA(mt,A.lens,0,A.nlen,A.lencode,0,A.work,h),A.lenbits=h.bits,p){t.msg="invalid literal/lengths set",A.mode=x;break}if(A.distbits=6,A.distcode=A.distdyn,h={bits:A.distbits},p=AA(xt,A.lens,A.nlen,A.ndist,A.distcode,0,A.work,h),A.distbits=h.bits,p){t.msg="invalid distances set",A.mode=x;break}if(A.mode=bA,e===xA)break A;case bA:A.mode=JA;case JA:if(Q>=6&&C>=258){t.next_out=r,t.avail_out=C,t.next_in=g,t.avail_in=Q,A.hold=I,A.bits=o,ie(t,E),r=t.next_out,n=t.output,C=t.avail_out,g=t.next_in,i=t.input,Q=t.avail_in,I=A.hold,o=A.bits,A.mode===T&&(A.back=-1);break}for(A.back=0;w=A.lencode[I&(1<<A.lenbits)-1],d=w>>>24,k=w>>>16&255,u=w&65535,!(d<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(k&&(k&240)===0){for(B=d,l=k,N=u;w=A.lencode[N+((I&(1<<B+l)-1)>>B)],d=w>>>24,k=w>>>16&255,u=w&65535,!(B+d<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}I>>>=B,o-=B,A.back+=B}if(I>>>=d,o-=d,A.back+=d,A.length=u,k===0){A.mode=Dt;break}if(k&32){A.back=-1,A.mode=T;break}if(k&64){t.msg="invalid literal/length code",A.mode=x;break}A.extra=k&15,A.mode=dt;case dt:if(A.extra){for(F=A.extra;o<F;){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=ut;case ut:for(;w=A.distcode[I&(1<<A.distbits)-1],d=w>>>24,k=w>>>16&255,u=w&65535,!(d<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if((k&240)===0){for(B=d,l=k,N=u;w=A.distcode[N+((I&(1<<B+l)-1)>>B)],d=w>>>24,k=w>>>16&255,u=w&65535,!(B+d<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}I>>>=B,o-=B,A.back+=B}if(I>>>=d,o-=d,A.back+=d,k&64){t.msg="invalid distance code",A.mode=x;break}A.offset=u,A.extra=k&15,A.mode=wt;case wt:if(A.extra){for(F=A.extra;o<F;){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=x;break}A.mode=kt;case kt:if(C===0)break A;if(a=E-C,A.offset>a){if(a=A.offset-a,a>A.whave&&A.sane){t.msg="invalid distance too far back",A.mode=x;break}a>A.wnext?(a-=A.wnext,s=A.wsize-a):s=A.wnext-a,a>A.length&&(a=A.length),D=A.window}else D=n,s=r-A.offset,a=A.length;a>C&&(a=C),C-=a,A.length-=a;do n[r++]=D[s++];while(--a);A.length===0&&(A.mode=JA);break;case Dt:if(C===0)break A;n[r++]=A.length,C--,A.mode=JA;break;case oe:if(A.wrap){for(;o<32;){if(Q===0)break A;Q--,I|=i[g++]<<o,o+=8}if(E-=C,t.total_out+=E,A.total+=E,E&&(t.adler=A.check=A.flags?v(A.check,n,E,r-E):lA(A.check,n,E,r-E)),E=C,(A.flags?I:pt(I))!==A.check){t.msg="incorrect data check",A.mode=x;break}I=0,o=0}A.mode=Nt;case Nt: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=x;break}I=0,o=0}A.mode=yt;case yt:p=bi;break A;case x:p=bt;break A;case Be:return Ce;case Gi:default:return M}return t.next_out=r,t.avail_out=C,t.next_in=g,t.avail_in=Q,A.hold=I,A.bits=o,(A.wsize||E!==t.avail_out&&A.mode<x&&(A.mode<oe||e!==it))&&Gt(t,t.output,t.next_out,E-t.avail_out)?(A.mode=Be,Ce):(f-=t.avail_in,E-=t.avail_out,t.total_in+=f,t.total_out+=E,A.total+=E,A.wrap&&E&&(t.adler=A.check=A.flags?v(A.check,n,E,t.next_out-E):lA(A.check,n,E,t.next_out-E)),t.data_type=A.bits+(A.last?64:0)+(A.mode===T?128:0)+(A.mode===bA||A.mode===Ie?256:0),(f===0&&E===0||e===it)&&p===eA&&(p=Si),p)}function vt(t){if(!t||!t.state)return M;var e=t.state;return e.window&&(e.window=null),t.state=null,eA}function Mt(t,e){var A;return!t||!t.state||(A=t.state,(A.wrap&2)===0)?M:(A.head=e,e.done=!1,eA)}function ae(t,e){var A=e.length,i,n,g;return!t||!t.state||(i=t.state,i.wrap!==0&&i.mode!==SA)?M:i.mode===SA&&(n=1,n=lA(n,e,A,0),n!==i.check)?bt:(g=Gt(t,e,A,A),g?(i.mode=Be,Ce):(i.havedict=1,eA))}var GA={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 se(){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 Ee=Object.prototype.toString,ce=class t{constructor(e){if(!(this instanceof t))return new t(e);this.options=Xe({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 se,this.strm.avail_out=0;var i=St(this.strm,A.windowBits);if(i!==O)throw new Error(GA[i]);if(this.header=new te,Mt(this.strm,this.header),A.dictionary&&(typeof A.dictionary=="string"?A.dictionary=ee(A.dictionary):Ee.call(A.dictionary)==="[object ArrayBuffer]"&&(A.dictionary=new Uint8Array(A.dictionary)),A.raw&&(i=ae(this.strm,A.dictionary),i!==O)))throw new Error(GA[i])}push(e,A){var i=this.strm,n=this.options.chunkSize,g=this.options.dictionary,r,Q,C,I,o,f,E=!1;if(this.ended)return!1;Q=A===~~A?A:A===!0?EA:VA,typeof e=="string"?i.input=We(e):Ee.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=q(n),i.next_out=0,i.avail_out=n),r=Rt(i,VA),r===Te&&g&&(typeof g=="string"?f=ee(g):Ee.call(g)==="[object ArrayBuffer]"?f=new Uint8Array(g):f=g,r=ae(this.strm,f)),r===Ze&&E===!0&&(r=O,E=!1),r!==cA&&r!==O)return this.onEnd(r),this.ended=!0,!1;i.next_out&&(i.avail_out===0||r===cA||i.avail_in===0&&(Q===EA||Q===$A))&&(this.options.to==="string"?(C=je(i.output,i.next_out),I=i.next_out-C,o=Pe(i.output,C),i.next_out=I,i.avail_out=n-I,I&&H(i.output,i.output,C,I,0),this.onData(o)):this.onData(FA(i.output,i.next_out))),i.avail_in===0&&i.avail_out===0&&(E=!0)}while((i.avail_in>0||i.avail_out===0)&&r!==cA);return r===cA&&(Q=EA),Q===EA?(r=vt(this.strm),this.onEnd(r),this.ended=!0,r===O):(Q===$A&&(this.onEnd(O),i.avail_out=0),!0)}onData(e){this.chunks.push(e)}onEnd(e){e===O&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=pA(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg}};function Hi(t,e){var A=new ce(e);if(A.push(t,!0),A.err)throw A.msg||GA[A.err];return A.result}var _t=Hi;function Lt(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,C=(t[Q+4]|t[Q+5]<<8|t[Q+6]<<16|t[Q+7]<<24)>>>0;if(i.push({inputOffset:n,compressedSize:r,decompressedSize:C,filePosition:g}),g>=A)break;n+=r,g+=r}return i}function Yt(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 P={};P.d=(t,e)=>{if(Array.isArray(e))for(var A=0;A<e.length;){var i=e[A++],n=e[A++];P.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)P.o(e,i)&&!P.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})};P.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);P.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var le={};P.r(le);P.d(le,{ChunkSliceResult:()=>CA,__wbg_Error_92b29b0548f8b746:()=>qi,__wbg___wbindgen_throw_344f42d3211c4765:()=>Ti,__wbg_set_wasm:()=>Ot,decompress_all:()=>Kt,decompress_chunk_slice:()=>qt});var Ki="data:application/wasm;base64,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AghBAUEAEBUACywCAX8BfiMAQRBrIgEkACAAKQIAIQIgASAANgIMIAEgAjcCBCABQQRqEGYACyMBAX8jAEEQayICJAAgAiABNgIMIAIgADYCCCACQQhqEGUACyAAAkAgASgCAEUNACAAQbiXwAA2AgQgACABNgIADwsACx4BAX8CQCAAKAIAIgJFDQAgASACIAAoAgQQTQ8LAAsbAQF/EGogAEEEakEEEFgiASAANgIAIAFBBGoLHgEBfwJAIAAoAgAiAUEBSA0AIAAoAgQgAUEBEFMLCx4AIAAoAgAgACgCBEEAKALomkAiAEEEIAAbEQQAAAsjAQF/AkBBhIrAABAtIgANAEG4icAAQTpB9InAABA4AAsgAAsXAAJAIABBf2pBfk8NACABIABBARBTCwscAQF/AkAgACgCACIBRQ0AIAAoAgQgAUEBEFMLCxcAAkAgAUEJSQ0AIAEgABAODwsgABACCxUAIABBfGoiACAAKAIAQQRqQQQQUwsUAAJAIABFDQAgACABEF8ACxBWAAsRACAAIAFBAXRBAXIgAhAxAAsSAAJAIAFFDQAgACABIAIQUwsLEgAgACABIAIgAyAEQQAgBRADCxUAAkAgAEUNACAAIAAoAqhaEQIACwsaACAAQQApAoSWQDcCCCAAQQApAvyVQDcCAAsaACAAQQApAvSVQDcCCCAAQQApAuyVQDcCAAsWACAAKAIAIAEgAiAAKAIEKAIMEQcACw0AIAAgASACIAMQBw8LFABBACAANgK8mkBBAEEBNgK4mkALEwAgAEG4l8AANgIEIAAgATYCAAsQACABIAAoAgAgACgCBBBNCxAAIAEgACgCACAAKAIEEAoLCwAgACABIAIQKg8LCgAgACABEGkaAAsPACAAQZyVwAAgASACEAwLEQBBkJjAAEEjQaSYwAAQMQALCwAgACMAaiQAIwALCQAgACABEEQPCwkAIAAgARAuDwsJACAAIAEQYQALDABBr4fAAEEbEFoACw0AQcqHwABBzwAQWgALCQAgASAAEDsACwwAIAAgASkCADcDAAsJACABIAAQXQALDQAgAUH8mcAAQRgQCgsIACAAIAEQAAsIACAAIAEQAQsJACAAKAIAEEoLBwAgABA5AAsHACAAEEAACwcAIAAQJgALCwBBAEEBOgDAnkALCQAgAEEANgIACwUAEGsACwMADwsDAAALAgALC74aAgBBgIDAAAuUGkF0dGVtcHRlZCB0byBpbml0aWFsaXplIHRocmVhZC1sb2NhbCB3aGlsZSBpdCBpcyBiZWluZyBkcm9wcGVkFnNsaWNlIGluZGV4IHN0YXJ0cyBhdCDADSBidXQgZW5kcyBhdCDAABJyYW5nZSBzdGFydCBpbmRleCDAIiBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCDAABByYW5nZSBlbmQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAvcnVzdGMvNDhhMjI5Y2VhZWZkNDk4NWM1MDk5MGIxNDExNmI2ZDg1NmFmMDk4NS9saWJyYXJ5L3N0ZC9zcmMvc3lzL3RocmVhZF9sb2NhbC9ub190aHJlYWRzLnJzAC9ydXN0Yy80OGEyMjljZWFlZmQ0OTg1YzUwOTkwYjE0MTE2YjZkODU2YWYwOTg1L2xpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9yd2xvY2svbm9fdGhyZWFkcy5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi93YXNtLWJpbmRnZW4tMC4yLjEyNi9zcmMvZXh0ZXJucmVmLnJzAC9ydXN0Yy80OGEyMjljZWFlZmQ0OTg1YzUwOTkwYjE0MTE2YjZkODU2YWYwOTg1L2xpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMvbW9kLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjEzL3NyYy9kbG1hbGxvYy5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9saWJkZWZsYXRlci0xLjI1LjIvc3JjL2xpYi5ycwAA1gAQAF4AAABrAAAADQAAAMwCEAAKAAAAHAAAACQAAADMAhAACgAAAMIAAAApAAAAzAIQAAoAAAC2AAAAJwAAAMwCEAAKAAAAcQAAABwAAADMAhAACgAAAG0AAABBAAAAZGVjb21wcmVzc2lvbiBmYWlsZWRpbnZhbGlkIGJnemYgaGVhZGVyAMwCEAAKAAAATAAAAD0A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",CA=class t{static __wrap(e){let A=Object.create(t.prototype);return A.__wbg_ptr=e,Ut.register(A,A.__wbg_ptr,A),A}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Ut.unregister(this),e}free(){let e=this.__destroy_into_raw();m.__wbg_chunksliceresult_free(e,0)}take_buffer(){try{let n=m.__wbindgen_add_to_stack_pointer(-16);m.chunksliceresult_take_buffer(n,this.__wbg_ptr);var e=R().getInt32(n+0,!0),A=R().getInt32(n+4,!0),i=Tt(e,A).slice();return m.__wbindgen_export(e,A*1,1),i}finally{m.__wbindgen_add_to_stack_pointer(16)}}take_cpositions(){try{let n=m.__wbindgen_add_to_stack_pointer(-16);m.chunksliceresult_take_cpositions(n,this.__wbg_ptr);var e=R().getInt32(n+0,!0),A=R().getInt32(n+4,!0),i=Ht(e,A).slice();return m.__wbindgen_export(e,A*8,8),i}finally{m.__wbindgen_add_to_stack_pointer(16)}}take_dpositions(){try{let n=m.__wbindgen_add_to_stack_pointer(-16);m.chunksliceresult_take_dpositions(n,this.__wbg_ptr);var e=R().getInt32(n+0,!0),A=R().getInt32(n+4,!0),i=Ht(e,A).slice();return m.__wbindgen_export(e,A*8,8),i}finally{m.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(CA.prototype[Symbol.dispose]=CA.prototype.free);function Kt(t){try{let r=m.__wbindgen_add_to_stack_pointer(-16),Q=Xt(t,m.__wbindgen_export2),C=ue;m.decompress_all(r,Q,C);var e=R().getInt32(r+0,!0),A=R().getInt32(r+4,!0),i=R().getInt32(r+8,!0),n=R().getInt32(r+12,!0);if(n)throw zt(i);var g=Tt(e,A).slice();return m.__wbindgen_export(e,A*1,1),g}finally{m.__wbindgen_add_to_stack_pointer(16)}}function qt(t,e,A,i,n){try{let C=m.__wbindgen_add_to_stack_pointer(-16),I=Xt(t,m.__wbindgen_export2),o=ue;m.decompress_chunk_slice(C,I,o,e,A,i,n);var g=R().getInt32(C+0,!0),r=R().getInt32(C+4,!0),Q=R().getInt32(C+8,!0);if(Q)throw zt(r);return CA.__wrap(g)}finally{m.__wbindgen_add_to_stack_pointer(16)}}function qi(t,e){let A=Error(Zt(t,e));return Zi(A)}function Ti(t,e){throw new Error(Zt(t,e))}var Ut=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>m.__wbg_chunksliceresult_free(t,1));function Zi(t){dA===Z.length&&Z.push(Z.length+1);let e=dA;return dA=Z[e],Z[e]=t,e}function Xi(t){t<1028||(Z[t]=dA,dA=t)}function Ht(t,e){return t=t>>>0,zi().subarray(t/8,t/8+e)}function Tt(t,e){return t=t>>>0,de().subarray(t/1,t/1+e)}var rA=null;function R(){return(rA===null||rA.buffer.detached===!0||rA.buffer.detached===void 0&&rA.buffer!==m.memory.buffer)&&(rA=new DataView(m.memory.buffer)),rA}var RA=null;function zi(){return(RA===null||RA.byteLength===0)&&(RA=new Float64Array(m.memory.buffer)),RA}function Zt(t,e){return Pi(t>>>0,e)}var vA=null;function de(){return(vA===null||vA.byteLength===0)&&(vA=new Uint8Array(m.memory.buffer)),vA}function Oi(t){return Z[t]}var Z=new Array(1024).fill(void 0);Z.push(void 0,null,!0,!1);var dA=Z.length;function Xt(t,e){let A=e(t.length*1,1)>>>0;return de().set(t,A/1),ue=t.length,A}function zt(t){let e=Oi(t);return Xi(t),e}var MA=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});MA.decode();var Wi=2146435072,fe=0;function Pi(t,e){return fe+=e,fe>=Wi&&(MA=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),MA.decode(),fe=e),MA.decode(de().subarray(t,t+e).slice())}var ue=0,m;function Ot(t){m=t}var tA=null,he=null;async function Wt(){return tA||(he||(he=(async()=>{let e=await(await fetch(Ki)).arrayBuffer(),{instance:A}=await WebAssembly.instantiate(e,{"./bgzf_wasm_bg.js":le});return tA=A.exports,Ot(tA),tA})()),he)}async function Pt(t){return tA||await Wt(),Kt(t)}async function jt(t,e,A,i,n){tA||await Wt();let g=qt(t,e,A,i,n),r=g.take_buffer(),Q=g.take_cpositions(),C=g.take_dpositions();return g.free(),{buffer:r,cpositions:Q,dpositions:C}}var ji=26;function $t(t){return t[0]===31&&t[1]===139}function Vi(t){return t.length>=ji&&$t(t)&&t[2]===8&&t[3]===4&&t[10]===6&&t[12]===66&&t[13]===67}function Ai(t){return t instanceof Error?t.message:`${t}`}async function Vt(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 _t(t,void 0)}function ei(t){return Ai(t).includes("invalid gzip header")?new Error("problem decompressing block: incorrect gzip header check",{cause:t}):t}async function uA(t){if(t.length===0)return new Uint8Array(0);if(!Vi(t)){if($t(t))return Vt(t);throw new Error("problem decompressing block: not a valid bgzf or gzip block")}try{return await Pt(t)}catch(e){if(Ai(e).includes("invalid bgzf header"))return Vt(t);throw ei(e)}}function $i(t,e,A,i){let n=[],g=[],r=[],Q=A.dataPosition;for(let C=0;C<t.length;C++){let I=t[C],o=e[C],f=o.filePosition>=i.blockPosition;n.push(o.filePosition),g.push(Q);let E=C===0?A.dataPosition:0,a=f?Math.min(i.dataPosition+1,I.length):I.length;if(E<a&&r.push(I.subarray(E,a)),Q+=I.length-E,f){n.push(o.filePosition+o.compressedSize),g.push(Q);break}}return{buffer:Yt(r),cpositions:Float64Array.from(n),dpositions:Float64Array.from(g)}}var ti=4e5;function Ag(t){let e=0;for(let A of t)e+=A.decompressedSize;return e}async function we(t,e,A){let{minv:i,maxv:n}=e;if(A){let g=Lt(t,i.blockPosition,n.blockPosition);if(Ag(g)>=ti){let r=await A.decompressBlocks(t,g);return $i(r.blocks,g,i,n)}}try{let g=await jt(t,i.blockPosition,i.dataPosition,n.blockPosition,n.dataPosition);return{buffer:g.buffer,cpositions:g.cpositions,dpositions:g.dpositions}}catch(g){throw ei(g)}}function _A(t){if(t?.aborted)throw ke(t)}function ke(t){let e=t.reason;return e===void 0?new DOMException("This operation was aborted","AbortError"):e}function eg(t){typeof t=="object"&&t!==null&&"unref"in t&&typeof t.unref=="function"&&t.unref()}var j=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=C=>String(C),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){_A(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 _A(A),r}catch(r){throw _A(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(ke(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),eg(this.sweepTimer)}stopSweep(){this.sweepTimer!==void 0&&(clearInterval(this.sweepTimer),this.sweepTimer=void 0)}start(e,A,i){let n=i??(this.fill&&(C=>this.fill(A,C)));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(C=>{if(Q(),this.entries.get(e)===r){let I=this.weigh(C);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 LA(t){return t.bytes?t.bytes():new Uint8Array(await t.arrayBuffer())}async function ii(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?De(t,A):LA(t)}function gi(t){return typeof t=="string"?{encoding:t,opts:{}}:{encoding:t?.encoding,opts:t??{}}}function ni(t){let e=/\/(\d+)$/.exec(t??"")?.[1];return e===void 0?void 0:parseInt(e,10)}function tg(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 ig=50;async function De(t,e){let A=tg(t),i=t.body;if(!i||A===void 0){let C=await LA(t);return e(C.byteLength,A??C.byteLength),C}let n=i.getReader(),g=new Uint8Array(A),r=0,Q=Date.now();e(0,A);for(let C=await n.read();!C.done;C=await n.read()){if(r+C.value.byteLength>g.length){let o=new Uint8Array(Math.max(r+C.value.byteLength,g.length*2));o.set(g.subarray(0,r)),g=o}g.set(C.value,r),r+=C.value.byteLength;let I=Date.now();I-Q>=ig&&(Q=I,e(r,A))}return e(r,A),r===g.length?g:g.slice(0,r)}function gg(...t){let e=new Map;for(let A of t)for(let[i,n]of Object.entries(A??{}))e.set(i.toLowerCase(),[i,n]);return Object.fromEntries(e.values())}function Ne(t){let e=t.body;typeof e?.cancel=="function"&&e.cancel().catch(()=>{})}function Ii(t){return Number.isSafeInteger(t)&&t>=0}function ng(t){return typeof t=="object"&&t!==null&&"name"in t&&t.name==="TypeError"}function Ig(t){return(typeof t=="object"&&t!==null&&"message"in t&&typeof t.message=="string"?t.message:`${t}`).replace(/\.$/,"")}var X=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:gg(this.baseHeaders,e.headers,A),...i?{signal:i}:{}}}async fetch(e,A){let i=g=>ng(g)&&!A?.signal?.aborted?new Error(`${Ig(g)} fetching ${e}`,{cause:g}):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(!Ii(e)||!Ii(A))throw new TypeError(`read() called with an invalid length or position (length=${e}, position=${A}). The index file may be corrupt.`);return e===0?new Uint8Array(0):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 Ne(n),new Uint8Array(0);if(this.checkOk(n),n.status===200&&A===0||n.status===206){let g=ni(n.headers.get("content-range"));g!==void 0&&(this._stat={size:g});let r=i.onProgress?await De(n,i.onProgress):await LA(n);return!this._stat&&n.status===200&&(this._stat={size:r.byteLength}),r.byteLength<=e?r:r.slice(0,e)}throw Ne(n),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 Ne(e),new Error(`HTTP ${e.status} fetching ${this.url}`)}async readFile(e){let{encoding:A,opts:i}=gi(e),n=await this.fetch(this.url,this.buildRequest(i));this.checkOk(n);let g=await this.readFileBody(n,A,i.onProgress);return n.status===200&&typeof g!="string"&&(this._stat={size:g.byteLength}),g}readFileBody(e,A,i){return ii(e,A,i)}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 iA=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 K=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}};function ye(t,e){if(!(e>0))throw new TypeError(`\`${t}\` must be a number greater than 0`)}var wA=class{#A=new Map;#e=new Map;#t;#g;#n;constructor(e){let A=e.maxAge??Number.POSITIVE_INFINITY;ye("maxSize",e.maxSize),ye("maxAge",A),this.#t=e.maxSize,this.#g=A,this.#n=e.onEviction}#I(e){let A=this.#n;if(A)for(let[i,n]of e)A(i,n.value)}#i(e,A){return A.expiry!==void 0&&A.expiry<=Date.now()?(this.#n?.(e,A.value),this.delete(e),!0):!1}#Q(e,A){return this.#i(e,A)?void 0:A.value}#r(e,A){if(this.#e.delete(e),this.#A.set(e,A),this.#A.size>=this.#t){let i=this.#e;this.#e=this.#A,this.#A=new Map,this.#I(i)}}#C(e){this.#e=new Map(e),this.#A=new Map}*#o(){for(let e of[this.#e,this.#A])for(let A of e)this.#i(...A)||(yield A)}get(e){let A=this.#A.get(e);if(A)return this.#Q(e,A);let i=this.#e.get(e);if(i&&!this.#i(e,i))return this.#r(e,i),i.value}set(e,A,{maxAge:i=this.#g}={}){let n={value:A,expiry:i===Number.POSITIVE_INFINITY?void 0:Date.now()+i};return this.#A.has(e)?this.#A.set(e,n):this.#r(e,n),this}has(e){let A=this.#A.get(e)??this.#e.get(e);return A!==void 0&&!this.#i(e,A)}peek(e){let A=this.#A.get(e)??this.#e.get(e);return A?this.#Q(e,A):void 0}expiresIn(e){let A=this.#A.get(e)??this.#e.get(e);if(A)return A.expiry===void 0?Number.POSITIVE_INFINITY:A.expiry-Date.now()}delete(e){return this.#A.delete(e)||this.#e.delete(e)}clear(){this.#A.clear(),this.#e.clear()}resize(e){ye("maxSize",e);let A=[...this.#o()],i=A.length-e;i<0?(this.#A=new Map(A),this.#e=new Map):(this.#I(A.slice(0,i)),this.#C(A.slice(i))),this.#t=e}evict(e=1){if(!(e>0))return;let A=[...this.#o()],i=Math.trunc(Math.min(e,A.length-1));i>0&&(this.#I(A.slice(0,i)),this.#C(A.slice(i)))}get size(){return Math.min(this.#A.size+this.#e.size,this.#t)}get maxSize(){return this.#t}get maxAge(){return this.#g}*entriesAscending(){for(let[e,A]of this.#o())yield[e,A.value]}*entriesDescending(){for(let e of[this.#A,this.#e])for(let[A,i]of[...e].reverse())this.#i(A,i)||(yield[A,i.value])}entries(){return this.entriesAscending()}[Symbol.iterator](){return this.entriesAscending()}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}forEach(e,A=this){for(let[i,n]of this)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 oi(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 BA=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 V(t,e=0){return new BA(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 YA(t,e){let A=t.length;if(A===0)return t;let i;if(e){let Q=e.blockPosition,C=e.dataPosition;i=[];for(let I=0;I<A;I++){let o=t[I];(o.maxv.blockPosition-Q||o.maxv.dataPosition-C)>0&&i.push(o)}if(i.length===0)return i}else i=t;i.sort((Q,C)=>{let I=Q.minv.blockPosition-C.minv.blockPosition;return I===0?Q.minv.dataPosition-C.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 C=i[Q],I=C.minv.blockPosition,o=C.maxv.blockPosition;if(I-r<65e3&&o-g<5e6){let f=n.at(-1);(o-r||C.maxv.dataPosition-f.maxv.dataPosition)>0&&(n[n.length-1]=new K(f.minv,C.maxv,f.bin,C.endPosition),r=o)}else n.push(C),g=I,r=o}return og(n)}function og(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 K(n,i.maxv,i.bin,i.endPosition))}return e}function UA(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 HA(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 C=e+Q*8,I=t[C+7]*1099511627776+t[C+6]*4294967296+t[C+5]*16777216+t[C+4]*65536+t[C+3]*256+t[C+2],o=t[C+1]<<8|t[C];(I<n||I===n&&o<g)&&(n=I,g=o,r=!0)}return r?new BA(n,g):i}function Qg(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 rg={0:"generic",1:"SAM",2:"VCF",3:"GAF"};function KA(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=rg[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),C=Q?String.fromCharCode(Q):void 0,I=A.getInt32(e+20,!0),o=A.getInt32(e+24,!0),{refIdToName:f,refNameToId:E}=Qg(t.subarray(e+28,e+28+o));return{refIdToName:f,refNameToId:E,skipLines:I,metaChar:C,columnNumbers:r,format:g,coordinateType:n}}function qA(t,e){return{lineCount:oi(t,e)}}function TA(t,e=5){let A=new wA({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 C=1;C<r.length;C++){let I=r[C].minv;I.compareTo(Q)<0&&(Q=I)}return Q}g++}}function Qi(t,e){return t.format==="GAF"?0:t.refNameToId[e]}var gA=class{filehandle;parseCache=new j({});constructor({filehandle:e}){this.filehandle=e}async readIndexBytes(e){let A=await this.filehandle.readFile({signal:e.signal,onProgress:e.onProgress}),i=await uA(A);return{bytes:i,dataView:new DataView(i.buffer,i.byteOffset,i.byteLength)}}async lineCount(e,A={}){let i=await this.parse(A),n=Qi(i,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=Qi(g,e);if(r===void 0)return[];let Q=g.indices(r);if(!Q)return[];g.format==="GAF"&&(A=Math.max(A-1,0));let C=[];for(let[f,E]of this.reg2bins(A,i,g))for(let a=f;a<=E;a++){let s=Q.binIndex[a];if(s)for(let D of s)C.push(D)}let I=YA(C,this.lowestOffset(Q,A,g)),o=Cg(Q.binIndex,i,g.minShift,g.depth);if(o){let f=I.length;for(;f>0&&I[f-1].minv.compareTo(o)>=0;)f--;I.length=f}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 Bg=21582659,ag=38359875;function ri(t,e){return t*2**e}function pe(t,e){return Math.floor(t/2**e)}var nA=class extends gA{async _parse(e={}){let{bytes:A,dataView:i}=await this.readIndexBytes(e),n=i.getUint32(0,!0),g;if(n===Bg)g=1;else if(n===ag)g=2;else throw new Error(`Not a CSI file (magic=${n})`);let r=i.getInt32(4,!0),Q=i.getInt32(8,!0),C=(8**(Q+1)-1)/7,I=2**(r+Q*3),o=i.getInt32(12,!0),f=o>=28&&(i.getInt32(16,!0)&15)===3,E=o>=30||f?KA(A,16):{refIdToName:[],refNameToId:{},metaChar:void 0,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},a=i.getInt32(16+o,!0),s=16+o+4,D,w=[];for(let k=0;k<a;k++){w.push(s);let u=i.getInt32(s,!0);s+=4;for(let B=0;B<u;B++){let l=i.getUint32(s,!0);if(s+=4,l>C)s+=44;else{D=HA(A,s,1,D),s+=8;let N=i.getInt32(s,!0);s+=4+16*N}}}function d(k){let u=w[k];if(u===void 0)return;let B=u,l=i.getInt32(B,!0);B+=4;let N={},c={},p;for(let y=0;y<l;y++){let h=i.getUint32(B,!0);if(B+=4,h>C)p=qA(A,B+28),B+=44;else{c[h]=V(A,B),B+=8;let F=i.getInt32(B,!0);B+=4;let b=Array.from({length:F});for(let G=0;G<F;G++)b[G]=new K(V(A,B),V(A,B+8),h),B+=16;N[h]=b}}return UA(Object.values(N).flat()),{binIndex:N,loffsets:c,stats:p}}return{...E,csi:!0,refCount:a,maxBlockSize:65536,firstDataLine:D,csiVersion:g,indices:TA(d),minShift:r,depth:Q,maxBinNumber:C,maxRefLength:I}}lowestOffset(e,A,{minShift:i,depth:n}){let{loffsets:g}=e,r;if(g){let Q=(ri(1,3*n)-1)/7+pe(Math.max(A,0),i);for(;r===void 0&&Q>0;)if(r=g[Q],r===void 0){let C=Math.floor((Q-1)/8),I=C*8+1;Q=Q>I?Q-1:C}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,C=0,I=i+n*3,o=[];for(;Q<=n;I-=3,C+=ri(1,Q*3),Q+=1){let f=C+pe(e,I),E=C+pe(A,I);if(E-f+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([f,E])}return o}};var sg=21578324,Fe=5,me=14,ZA=2**(me+Fe*3);function Ci(t){return Math.min(Math.max(t,0),ZA)}var z=class extends gA{reg2bins(e,A){e>ZA&&console.warn("querying outside of possible tabix range");let i=Ci(e),n=Math.min(A,ZA)-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(Ci(A)>>me,i.length-1)]}async _parse(e={}){let{bytes:A,dataView:i}=await this.readIndexBytes(e);if(i.getUint32(0,!0)!==sg)throw new Error("Not a TBI file");let n=i.getUint32(4,!0),g=((1<<(Fe+1)*3)-1)/7,{refNameToId:r,refIdToName:Q,coordinateType:C,format:I,columnNumbers:o,metaChar:f,skipLines:E}=KA(A,8),s=36+i.getInt32(32,!0),D,w=[];for(let k=0;k<n;k++){w.push(s);let u=i.getInt32(s,!0);s+=4;for(let l=0;l<u;l++){let N=i.getUint32(s,!0);s+=4;let c=i.getInt32(s,!0);if(s+=4,N>g+1)throw new Error("tabix index contains too many bins, please use a CSI index");s+=16*c}let B=i.getInt32(s,!0);s+=4,D=HA(A,s,B,D),s+=8*B}function d(k){let u=w[k];if(u===void 0)return;let B=u,l=i.getInt32(B,!0);B+=4;let N={},c;for(let h=0;h<l;h++){let F=i.getUint32(B,!0);if(B+=4,F>g+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(F===g+1){let b=i.getInt32(B,!0);B+=4,b===2&&(c=qA(A,B+16)),B+=16*b}else{let b=i.getInt32(B,!0);B+=4;let G=Array.from({length:b});for(let J=0;J<b;J++)G[J]=new K(V(A,B),V(A,B+8),F),B+=16;N[F]=G}}let p=i.getInt32(B,!0);B+=4;let y=Array.from({length:p});for(let h=0;h<p;h++)y[h]=V(A,B),B+=8;return UA(Object.values(N).flat(),y.map(h=>h.blockPosition)),{binIndex:N,linearIndex:y,stats:c}}return{indices:TA(d),metaChar:f,minShift:me,depth:Fe,maxBinNumber:g,maxRefLength:ZA,skipLines:E,firstDataLine:D,columnNumbers:o,coordinateType:C,format:I,refIdToName:Q,refNameToId:r,maxBlockSize:65536}}};var xe=9,XA=10,ai=13,Eg=59,cg=60,fg=62,hg=6,lg=1024*2**20,dg=180*1e3;function ug(t,e,A){if(t)return t;if(e)return new iA(e);if(A)return new X(A);throw new TypeError("must provide either filehandle, path, or url")}function wg({tbiFilehandle:t,csiFilehandle:e,tbiPath:A,csiPath:i,tbiUrl:n,csiUrl:g,path:r,url:Q}){if(t)return new z({filehandle:t});if(e)return new nA({filehandle:e});if(A)return new z({filehandle:new iA(A)});if(i)return new nA({filehandle:new iA(i)});if(g)return new nA({filehandle:new X(g)});if(n)return new z({filehandle:new X(n)});if(r)return new z({filehandle:new iA(`${r}.tbi`)});if(Q)return new z({filehandle:new X(`${Q}.tbi`)});throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl")}function si(t,e,A,i,n){return t[A]*256+(i-e[A])+n+1}function kg(t,e,A,i,n,g){let r=i-A,Q=e+r;if(t[n]===46)return Q;let C=n;for(let I=n;I<=g;I++)if(I===g||t[I]===Eg){let o=I-C;if(o>=10&&t[C]===83&&t[C+1]===86&&t[C+2]===84&&t[C+3]===89&&t[C+4]===80&&t[C+5]===69&&t[C+6]===61&&t[C+7]===84&&t[C+8]===82&&t[C+9]===65)return e+1;o>=4&&t[C]===69&&t[C+1]===78&&t[C+2]===68&&t[C+3]===61&&(Q=be(t,C+4,I)),C=I+1}return Q}var Ei=new TextDecoder;function Bi(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===XA&&(A=n)}return t.subarray(0,A+1)}function Dg(t,e){let A=0;for(let i=0;i<e;i++){let n=t.indexOf(XA,A);if(n===-1){A=t.length;break}A=n+1}return Ei.decode(t.subarray(0,A)).split(/\r?\n/).slice(0,e)}function be(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}function Ng(t,e,A,i,{start:n,end:g,pathCol:r,metaCharCode:Q,decoder:C,callback:I}){let o=0,f=0;for(;o<t.length;){let E=t.indexOf(XA,o);if(E===-1)break;let a=o;o=E+1;let s=a+i;for(;f<A.length&&s>=A[f];)f++;if(t[a]===Q)continue;let D=a;for(let l=1;l<r;l++){let N=t.indexOf(xe,D);if(N===-1||N>=E){D=E;break}D=N+1}let w=t[D];if(w!==fg&&w!==cg)continue;let d=t.indexOf(xe,D);(d===-1||d>E)&&(d=E);let k=1/0,u=-1,B=D;for(;B<d;){let l=0,N=B+1;for(;N<d;N++){let c=t[N]-48;if(c<0||c>9)break;l=l*10+c}l<k&&(k=l),l>u&&(u=l),B=N}if(k>=g)return!0;if(u>=n){let l=t[E-1]===ai?E-1:E;I(C.decode(t.subarray(a,l)),si(e,A,f,a,i),k,u+1)}}return!1}var aA=class{filehandle;index;chunkCache;headerCache=new j({});bgzfWorkerPool;constructor({path:e,filehandle:A,url:i,tbiPath:n,tbiUrl:g,tbiFilehandle:r,csiPath:Q,csiUrl:C,csiFilehandle:I,chunkCacheSize:o=lg,chunkCacheIdleTimeoutMs:f=dg,chunkCacheBudget:E,bgzfWorkerPool:a}){this.bgzfWorkerPool=a,this.filehandle=ug(A,e,i),this.index=wg({tbiFilehandle:r,csiFilehandle:I,tbiPath:n,csiPath:Q,tbiUrl:g,csiUrl:C,path:e,url:i}),this.chunkCache=new j({maxSize:o,sizeOf:s=>s.buffer.byteLength,cacheKey:s=>s.toString(),idleTimeoutMs:f,budget:E,fill:(s,D)=>this.readChunk(s,{signal:D})})}clearChunkCache(){this.chunkCache.clear()}async bytesForRegions(e,A={}){let i=[];for(let{refName:g,start:r,end:Q}of e){let C=await this.index.blocksForRange(g,r,Q,A);for(let I of C)i.push(I)}let n=0;for(let g of YA(i))n+=g.fetchedSize();return n}async getLines(e,A,i,n){let g,r={},Q,C;typeof n=="function"?Q=n:(r=n,Q=n.lineCallback,g=n.signal,C=n.onProgress);let I=await this.index.getMetadata(r),o=A??0,f=i??I.maxRefLength;if(o>f)throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(o===f)return;let E=await this.index.blocksForRange(e,o,f,r),a=I.format==="VCF",s=I.columnNumbers.ref||0,D=I.columnNumbers.start||0,w=a?8:I.columnNumbers.end||0,d=Math.max(s,D,w),k=I.metaChar?.charCodeAt(0),u=I.coordinateType==="1-based-closed"?-1:0,B=new TextEncoder,l=new TextDecoder,N=B.encode(e),c=new Int32Array(d+1),p=I.format==="GAF"?{start:o,end:f,pathCol:D,metaCharCode:k,decoder:l,callback:Q}:void 0,y=0;for(let J of E)y+=J.fetchedSize();let h=0;C?.(0,y);let F=1,b=[],G=J=>{for(;b.length<Math.min(J,E.length);){let IA=E[b.length],U=this.chunkCache.get(IA,g);U.catch(()=>{}),b.push(U)}};G(1);for(let J=0,IA=E.length;J<IA;J++){let U=E[J],{buffer:S,cpositions:Se,dpositions:kA}=await b[J];h+=U.fetchedSize(),C?.(h,y);let OA=U.minv.dataPosition;if(p){if(Ng(S,Se,kA,OA,p))return}else{let _=0,DA=0;for(;_<S.length;){let L=S.indexOf(XA,_);if(L===-1)break;let hi=_+OA;for(;DA<kA.length&&hi>=kA[DA];)DA++;if(k!==void 0&&S[_]===k){_=L+1;continue}c[0]=_-1;for(let Y=0;Y<d;Y++){let yA=c[Y],WA=yA<L?S.indexOf(xe,yA+1):-1;c[Y+1]=WA===-1||WA>=L?L:WA}let Ge=c[s-1]+1,Re=c[s]-Ge;if(Re!==N.length){_=L+1;continue}let ve=!0;for(let Y=0;Y<Re;Y++)if(S[Ge+Y]!==N[Y]){ve=!1;break}if(!ve){_=L+1;continue}let NA=be(S,c[D-1]+1,c[D])+u;if(NA>=f)return;let sA;if(w===0||w===D?sA=NA+1:a?sA=kg(S,NA,c[3]+1,c[4],c[w-1]+1,c[w]):sA=be(S,c[w-1]+1,c[w]),sA>o){let Y=S[L-1]===ai?L-1:L,yA=l.decode(S.subarray(_,Y));Q(yA,si(Se,kA,DA,_,OA),NA,sA)}_=L+1}}F=Math.min(F*2,hg),G(J+1+F)}}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 uA(g)}async parseHeader(e){let{metaChar:A,skipLines:i=0}=await this.getMetadata(e),n=await this.readHeaderBytes(e);return{header:Ei.decode(A?Bi(n,A):n),skippedLines:i>0?Dg(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?Bi(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 we(i,e,n)}};var fi=_e(Ke(),1),zA=_e(li(),1),yg=50*2**20;function nI(t,e,A){let i=t.pluginManager;return new aA({filehandle:(0,zA.openLocation)(t.getConf(e),i),...(0,zA.openTabixIndexFilehandle)(t.getConf([...A,"location"]),t.getConf([...A,"indexType"]),i),chunkCacheSize:yg})}function Je(t,e){return`${t} ${e}`}function pg(t){let e=new Map;for(let A of t){e.set(A,A);let i=Le(A);if(i!==A){let n=PA(A);e.set(Je(i,n),A);let g=Ye(A);g!==void 0&&e.set(Je(g,n),A)}}return e}function Fg(t,e,A){let i=t.get(Je(e,A));return i===void 0?t.get(A):i}var ci=class{constructor(e,A){this.file=e;this.adapter=A;this.lookup=(0,fi.cachedSetup)({setup:async e=>pg(await this.file.getReferenceSequenceNames(e))})}async assemblyRefNames(e={}){let A=await this.file.getReferenceSequenceNames(e),i=jA(this.adapter,e.assemblyName),n=A.filter(g=>Ue(g,i)).map(g=>PA(g));return n.length>0?n:A}async resolve(e,A){let i=await this.lookup(A);return Fg(i,jA(this.adapter,e.assemblyName),e.refName)}};export{Ke as a,di as b,uA as c,nI as d,ci as e};
2
+ //# sourceMappingURL=chunk-2SIR336R.js.map
@@ -0,0 +1,3 @@
1
+ import{a as Ft}from"./chunk-A6GKF63C.js";import{Ba as Ht,Da as Bt,E as ae,F as bt,H as ee,J as wt,Ja as _t,K as vt,L as yt,M as kt,Pa as Nt,Q as ke,R as St,Ra as At,S as xt,Sa as Ot,T as Rt,Ua as zt,W as se,Za as Re,_a as $e,a as C,aa as Mt,ab as Dt,b as He,ba as Lt,bb as $t,ca as Ct,d as _e,da as Pt,e as Ne,ea as Se,fa as ue,ga as ie,ha as Ae,ia as Oe,ka as Et,l as ct,ma as ze,oa as De,p as ut,pa as It,q as ft,qa as xe,ra as Gt,w as ht,wa as Tt,xa as Wt}from"./chunk-B7KMMGFB.js";import{g as de,i as mt,t as ye}from"./chunk-WTOQRUK2.js";import{a as dt,j as le}from"./chunk-GMSOU6VO.js";import{b as X,d as we,z as ve}from"./chunk-B7GF3TC3.js";import{b as gt}from"./chunk-KRXALLQG.js";import{a as be}from"./chunk-FCWXYIFC.js";import{a as N}from"./chunk-J6KYLXRD.js";import{a as m,b as Be,c as M,d as Q}from"./chunk-TYJTJGPO.js";import{a as ko,b as s}from"./chunk-FY3BTKY4.js";var Vt=ko((ya,Yt)=>{Yt.exports=JBrowseExports["@jbrowse/render-core/useRenderingBackend"]});var We=s(N(),1);function Xt(t){return`${t.refName}:${(t.start+1).toLocaleString()}-${t.end.toLocaleString()}`}function Fe(t,e,n=o=>o){return e?{deletion:{bp:`${e.bp.toLocaleString()} bp`,where:Xt(e)}}:{ends:`${n(t.from)}${t.fromStrand??""} \u2192 ${n(t.to)}${t.toStrand??""}`}}var re=s(Be(),1),lt=s(be(),1),go=s(Vt(),1);var Kt=s(m(),1),Zt=(0,C.createSvgIcon)((0,Kt.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-6h2zm0-8h-2V7h2z"}),"Info");var _=s(M(),1);var Xe=s(M(),1);var T={background:"rgba(255,255,255,0.82)",padding:"4px 6px",borderRadius:3,fontSize:11,lineHeight:"15px",whiteSpace:"nowrap"},v={display:"flex",alignItems:"center",gap:5};var B=s(m(),1),So={position:"absolute",left:0,top:0,pointerEvents:"none",overflow:"hidden",zIndex:2},xo=(0,Xe.observer)(function({model:e}){let{bubbleHalos:n,walkLift:o,hoveredBubble:a}=e;if(n.length===0)return null;let{scaleX:r,scaleY:c,translateX:l,translateY:d,paneWidth:f,canvasHeight:u}=e,p=e.contigThickness*It,g=b=>o!==void 0&&!b.nodeIds.some(I=>o.nodeIds.has(I));return(0,B.jsx)("svg",{style:So,width:f,height:u,"data-testid":"graph-bubble-halos",children:(0,B.jsx)("g",{transform:`translate(${l} ${d}) scale(${r} ${c})`,children:n.filter(b=>!b.whole).map(b=>(0,B.jsx)("path",{d:b.path,fill:"none",stroke:ae[b.kind],strokeOpacity:a&&gt(b.bubble,a)?.45:g(b)?.06:.22,strokeWidth:p,strokeLinecap:"round",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke"},`${b.bubble.start}-${b.bubble.end}`))})})}),jt=xo;function Ro({color:t}){return(0,B.jsx)("svg",{width:18,height:10,style:{flex:"none"},children:(0,B.jsx)("line",{x1:5,y1:5,x2:13,y2:5,stroke:t,strokeOpacity:.35,strokeWidth:8,strokeLinecap:"round"})})}var Ut=(0,Xe.observer)(function({model:e}){let n=new Map;for(let o of e.bubbleHalos)if(!o.whole){let a=ae[o.kind],r=n.get(a)??new Set;r.add(bt[o.kind]),n.set(a,r)}return n.size>0?(0,B.jsx)("div",{style:T,"data-testid":"graph-halo-legend",children:[...n].map(([o,a])=>(0,B.jsxs)("div",{style:v,children:[(0,B.jsx)(Ro,{color:o}),(0,B.jsxs)("span",{children:["bubble: ",[...a].join(", ")]})]},o))}):null});var Le=s(N(),1);var Ce=s(He(),1),Ve=s(M(),1);var D=s(m(),1),te={width:18,height:8,borderRadius:2,flex:"none"},Mo={marginBottom:2},Lo={...te,width:48};function fe({walk:t,label:e,reference:n,hint:o,at:a}){let r=Et(t,n);return(0,D.jsxs)("div",{style:Mo,title:[r.hover,o].filter(Boolean).join(" \xB7 ")||void 0,children:[(0,D.jsxs)("div",{style:v,children:[(0,D.jsx)("div",{style:{...r.shades?Lo:te,background:ye(t.encoding)}}),(0,D.jsxs)("span",{children:[(0,D.jsx)("strong",{children:e}),r.delta,r.outside,r.reversed]})]}),a?(0,D.jsx)("div",{"data-testid":"graph-walk-at",children:a}):r.scale?(0,D.jsx)("div",{children:r.scale}):null]})}var A=s(N(),1);var Co=1.1,Po=100,Eo=40,Io=800,Go=10,qt=2;function Ye(t){let e=t.deltaY*(t.deltaMode===1?Eo:t.deltaMode===2?Io:1),n=(t.ctrlKey?Go:1)*e/Po;return Co**-Math.max(-qt,Math.min(qt,n))}var Jt=s(be(),1);function Me(t,e){(0,A.useEffect)(()=>{if(!t)return;let n=t;function o(a){if(e.hostPlacesX)return;e.host&&a.stopPropagation(),a.preventDefault();let r=n.getBoundingClientRect();e.zoom(Ye(a),a.clientX-r.left,a.clientY-r.top)}return n.addEventListener("wheel",o,{passive:!1}),()=>{n.removeEventListener("wheel",o)}},[t,e])}function Qt(t){let e=(0,A.useRef)({x:0,y:0}),n=(0,A.useRef)(!1),o=(0,A.useRef)({frame:0,pan:null,hover:null});(0,A.useEffect)(()=>()=>{cancelAnimationFrame(o.current.frame)},[]);let[a,r]=(0,A.useState)(void 0),[c,l]=(0,A.useState)(void 0);function d(h,k){return{x:(h-t.translateX)/t.scaleX,y:(k-t.translateY)/t.scaleY}}function f(h){let k=h.currentTarget.getBoundingClientRect();return d(h.clientX-k.left,h.clientY-k.top)}function u(h,k){let{nodePositions:R}=t,S=h*t.scaleX+t.translateX,H=k*t.scaleY+t.translateY;if(t.layoutResult?.tubeMap)return t.tubeMapNodeAt(S,H);let pt=t.referenceStripNodeAt(S,H);return pt||(R?ze(R,h,k,t.axisScale,t.positionsVersion,t.nodeInk):null)}function p(h){if(h.button===0){if(n.current=!1,t.hostPlacesX)return;t.host&&h.stopPropagation();let{x:k,y:R}=f(h),S=t.layoutResult?.tubeMap||h.nativeEvent.offsetY<t.referenceStripZonePx?null:u(k,R);S?t.setDraggingNode(S):t.setPanning(!0),e.current={x:h.clientX,y:h.clientY}}}function g(){let h=o.current;h.frame=0,h.pan&&(t.setTransform(t.scale,t.translateX+h.pan.dx,t.translateY+h.pan.dy),h.pan=null);let k=t.walkRowBars;if(h.hover&&k){let R=t.walkRowAt(h.hover.x,h.hover.y);t.setHoveredWalkRow(R===void 0?null:[k.reference,...k.rows][R].name)}if(h.hover&&t.nodePositions&&t.graph){let{x:R,y:S}=d(h.hover.x,h.hover.y);h.hover=null;let H=u(R,S);t.setHoveredNode(H),t.setHoveredEdge(H||t.layoutResult?.tubeMap?null:De(t.nodePositions,t.graph,R,S,t.axisScale,t.effectiveDrawPaths&&!t.facetPanels,t.positionsVersion,t.deletionEdgeIndexes,t.hiddenEdgeIndexes,t.deletionRoutes,t.layoutResult?.stranded))}}function b(){o.current.frame||(o.current.frame=requestAnimationFrame(g))}function I(){let h=o.current;cancelAnimationFrame(h.frame),h.frame=0,h.pan=null,h.hover=null}function E(h){let k=h.clientX-e.current.x,R=h.clientY-e.current.y;e.current={x:h.clientX,y:h.clientY},(Math.abs(k)>1||Math.abs(R)>1)&&(n.current=!0);let S=o.current;if(t.draggingNode)t.moveNode(t.draggingNode,k/t.scaleX,R/t.scaleY);else if(t.isPanning)S.pan={dx:(S.pan?.dx??0)+k,dy:(S.pan?.dy??0)+R},b();else{let H=h.currentTarget.getBoundingClientRect();S.hover={x:h.clientX-H.left,y:h.clientY-H.top},b()}}function G(){t.stopDragging()}function ge(){I(),(0,Jt.isAlive)(t)&&(t.stopDragging(),t.setHoveredNode(null),t.setHoveredEdge(null),t.setHoveredWalkRow(null))}function vo(h){let{x:k,y:R}=f(h),S=u(k,R);if(S){h.preventDefault(),r({nodeId:S,top:h.clientY,left:h.clientX});return}let H=t.walkRowAt(k*t.scaleX+t.translateX,R*t.scaleY+t.translateY);H!==void 0&&(h.preventDefault(),l({row:H,top:h.clientY,left:h.clientX}))}function yo(h){if(!n.current){let{x:k,y:R}=f(h),S=u(k,R);t.setSelectedNode(S),S&&t.showNodeDetails(S)}}return{handlers:{onMouseDown:p,onMouseMove:E,onMouseUp:G,onMouseLeave:ge,onClick:yo,onContextMenu:vo},contextNode:a,contextRow:c,closeContextMenu:()=>{r(void 0),l(void 0)}}}var Y=s(m(),1),To={position:"absolute",left:0,top:0,zIndex:4,display:"grid",gap:ut,lineHeight:"normal"},Wo={height:ft,padding:"2px 6px",boxSizing:"border-box",fontFamily:"inherit",fontSize:11,color:"inherit",cursor:"pointer",border:"none",background:"none",textAlign:"left",display:"block"},Ho=(0,Ve.observer)(function({model:e,lift:n,width:o,height:a,cell:r,handlers:c}){let[l,d]=(0,Le.useState)(null),f=n.walks[0];Me(l,e),(0,Le.useEffect)(()=>{if(!l)return;let p=new ue(l);p.resize(o,a);let g=(0,Ce.computed)(()=>e.buildDrawing(n,!1)),b,I=(0,Ce.autorun)(()=>{let E=g.get();E&&(E!==b&&(p.uploadGeometry(E.batch),b=E),e.applyHighlights(p),e.paint(p))});return()=>{I(),p.dispose()}},[l,e,n,o,a]);let u=e.walkLabel(f.name);return(0,Y.jsxs)("div",{style:r,children:[(0,Y.jsx)("button",{type:"button",style:Wo,"data-testid":"graph-facet-title",onClick:()=>{e.liftWalks([f.name]),e.setFacet("")},children:(0,Y.jsx)(fe,{walk:f,label:u,reference:e.walkReference,hint:`click to lift ${u} alone`,at:e.hoveredOn(f)})}),(0,Y.jsx)("canvas",{ref:d,"data-testid":"graph-facet-canvas",style:{width:o,height:a,display:"block",cursor:e.isPanning||e.draggingNode?"grabbing":"grab"},...c})]})}),Bo=(0,Ve.observer)(function({model:e,handlers:n}){let o=e.facetPanels,a=e.facetGrid,r=e.facetPlacement;if(!o||!a||!r)return null;let{columns:c,width:l,height:d}=a;return(0,Y.jsx)("div",{"data-testid":"graph-facet-panels",style:{...To,width:e.paneWidth,minHeight:e.canvasHeight,gridTemplateColumns:`repeat(${c}, ${l}px)`,background:e.darkMode?"#1f1f1f":"white"},children:o.map((f,u)=>(0,Y.jsx)(Ho,{model:e,lift:f,width:l,height:d,cell:{gridRow:Math.floor(r.cells[u]/c)+1,gridColumn:r.cells[u]%c+1},handlers:n},f.walks[0].name))})}),en=Bo;var on=s(N(),1);var rn=s(M(),1);var tn=s(N(),1);function _o(t){return t==="class"?"className":/^(data|aria)-/.test(t)?t:t.replace(/-([a-z])/g,(e,n)=>n.toUpperCase())}function nn(t,e){if(typeof t=="string")return t;let n={key:e};for(let[o,a]of Object.entries(t.attrs))a!==void 0&&(n[_o(o)]=a);return(0,tn.createElement)(t.tag,n,...t.children.map(nn))}function $({el:t}){return nn(t,0)}var Ke=s(m(),1),No={position:"absolute",left:0,top:0,pointerEvents:"none",overflow:"hidden",zIndex:2},Ao=(0,rn.observer)(function({model:e}){let n=`exon-outline-${(0,on.useId)().replaceAll(/[^\w-]/g,"")}`,{genePins:o,walkLift:a,nodeInk:r}=e,{scaleX:c,scaleY:l,translateX:d,translateY:f,paneWidth:u,canvasHeight:p}=e,g=Oe(Ae(o,r.halfWidthPx,a),{id:n,width:u,height:p,transform:`translate(${d} ${f}) scale(${c} ${l})`});return g?(0,Ke.jsx)("svg",{style:No,width:u,height:p,"data-testid":"graph-gene-pins",children:(0,Ke.jsx)($,{el:g})}):null}),an=Ao;var sn=s(m(),1),ln=(0,C.createSvgIcon)((0,sn.jsx)("path",{d:"M3 5v4h2V5h4V3H5c-1.1 0-2 .9-2 2m2 10H3v4c0 1.1.9 2 2 2h4v-2H5zm14 4h-4v2h4c1.1 0 2-.9 2-2v-4h-2zm0-16h-4v2h4v4h2V5c0-1.1-.9-2-2-2"}),"CropFree");var Ze=s(m(),1),pn=(0,C.createSvgIcon)([(0,Ze.jsx)("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14"},"0"),(0,Ze.jsx)("path",{d:"M12 10h-2v2H9v-2H7V9h2V7h1v2h2z"},"1")],"ZoomIn");var cn=s(m(),1),dn=(0,C.createSvgIcon)((0,cn.jsx)("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14M7 9h5v1H7z"}),"ZoomOut");var z=s(Q(),1),Je=s(M(),1),Bn=s(le(),1);var V=s(Q(),1),un=s(M(),1),fn=s(le(),1),pe=s(m(),1),Oo=(0,fn.makeStyles)()({formControl:{minWidth:100}}),zo=(0,un.observer)(function({model:e}){let{classes:n}=Oo(),o=e.colorSchemeLock;return(0,pe.jsxs)(V.FormControl,{size:"small",className:n.formControl,disabled:o!==void 0,title:o?.why,children:[(0,pe.jsx)(V.InputLabel,{children:"Color"}),(0,pe.jsx)(V.Select,{value:e.chosenColorScheme,label:"Color",renderValue:o?()=>o.value:void 0,onChange:a=>{e.setColorScheme(a.target.value)},children:dt.map(({value:a,label:r})=>(0,pe.jsx)(V.MenuItem,{value:a,children:r},a))})]})}),hn=zo;var Ue=s(Q(),1),qe=s(M(),1),mn=s(le(),1),ce=s(m(),1),gn=(0,mn.makeStyles)()({stats:{marginLeft:"auto"},perf:{color:"#888",fontVariantNumeric:"tabular-nums"}});function je(t){return t===void 0?"\u2013":`${Math.round(t)}ms`}var Do=(0,qe.observer)(function({model:e}){let{classes:n}=gn(),{lastFetchMs:o,lastLayoutMs:a,lastGeometryMs:r}=e,c=o!==void 0||a!==void 0||r!==void 0;return e.showPerf&&c?(0,ce.jsxs)(Ue.Typography,{variant:"caption",className:n.perf,"data-testid":"graph-perf-stats",children:["fetch ",je(o)," \xB7 layout ",je(a)," \xB7 geom"," ",je(r)]}):null}),$o=(0,qe.observer)(function({model:e}){let{classes:n}=gn();return(0,ce.jsxs)("div",{className:n.stats,"data-testid":"graph-stats","data-node-count":e.nodeCount,"data-edge-count":e.edgeCount,"data-path-count":e.pathCount,"data-fetch-ms":e.lastFetchMs??"","data-layout-ms":e.lastLayoutMs??"","data-geometry-ms":e.lastGeometryMs??"","data-geometry-strokes":e.lastGeometryStrokeCount??"",children:[(0,ce.jsxs)(Ue.Typography,{variant:"body2",component:"span",children:[e.nodeCount," nodes, ",e.edgeCount," edges",e.pathCount>0?`, ${e.pathCount} paths`:""]})," ",(0,ce.jsx)(Do,{model:e})]})}),bn=$o;var O=s(Q(),1),wn=s(M(),1),vn=s(le(),1),K=s(m(),1),Fo=(0,vn.makeStyles)()({formControl:{minWidth:150}}),Xo=(0,wn.observer)(function({model:e}){let{classes:n}=Fo(),{graph:o}=e;return(0,K.jsxs)(O.FormControl,{size:"small",className:n.formControl,children:[(0,K.jsx)(O.InputLabel,{children:"Layout"}),(0,K.jsx)(O.Select,{value:e.chosenLayoutMode,label:"Layout","data-testid":"graph-layout-select",onChange:a=>{e.switchLayout(a.target.value)},children:ct.map(({value:a,label:r,description:c,available:l})=>(0,K.jsx)(O.MenuItem,{value:a,disabled:o?!l(o):!1,children:(0,K.jsx)(O.Tooltip,{title:c,placement:"right",children:(0,K.jsx)("span",{children:r})})},a))})]})}),yn=Xo;var F=s(Q(),1),kn=s(M(),1),Sn=s(le(),1),Z=s(m(),1),Yo=(0,Sn.makeStyles)()({formControl:{minWidth:130,maxWidth:240}}),Vo=(0,kn.observer)(function({model:e}){let{classes:n}=Yo(),{repeatChoices:o}=e;if(e.chosenLayoutMode!=="walkrows"||o.length===0)return null;let a=new Set(o.map(r=>r.key));return(0,Z.jsxs)(F.FormControl,{size:"small",className:n.formControl,children:[(0,Z.jsx)(F.InputLabel,{children:"Repeat"}),(0,Z.jsxs)(F.Select,{value:a.has(e.repeatKey)?e.repeatKey:"",label:"Repeat","data-testid":"graph-repeat-select",onChange:r=>{e.setRepeatKey(r.target.value)},children:[(0,Z.jsx)(F.MenuItem,{value:"",children:(0,Z.jsx)("em",{children:"Whole window"})}),o.map(({key:r,name:c,unit:l})=>(0,Z.jsxs)(F.MenuItem,{value:r,children:[c," \xB7 ",l.toLocaleString()," bp unit"]},r))]})]})}),xn=Vo;var Pn=s(N(),1),En=s(Be(),1);var Rn=s(m(),1),Mn=(0,C.createSvgIcon)((0,Rn.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z"}),"Delete");var Ln=s(m(),1),Cn=(0,C.createSvgIcon)((0,Ln.jsx)("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"}),"MoreVert");var In=s(M(),1);var j=s(m(),1),Ko=(0,In.observer)(function({model:e}){let[n,o]=(0,Pn.useState)(!1);return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(En.CascadingMenuButton,{size:"small",menuItems:[{type:"checkbox",label:"Linear layout",checked:e.linearLayout,onClick:()=>{e.setLinearLayout(!e.linearLayout),e.recomputeLayout()}},{type:"checkbox",label:"Show deletion edges",checked:e.showDeletionEdges,onClick:()=>{e.toggleDeletionEdges()}},{type:"checkbox",label:"Show timings",checked:e.showPerf,onClick:()=>{e.setShowPerf(!e.showPerf)}},{type:"divider"},{label:"Settings",icon:$t,onClick:()=>{o(!0)}},{type:"divider"},{label:"Return to import form",icon:Mn,onClick:()=>{e.clearGraph()}}],children:(0,j.jsx)(Cn,{})}),(0,j.jsx)(Ft,{model:e,open:n,onClose:()=>{o(!1)}})]})}),Gn=Ko;var W=s(Q(),1),Tn=s(M(),1),Wn=s(le(),1),U=s(m(),1),Zo=(0,Wn.makeStyles)()({formControl:{minWidth:130,maxWidth:260}}),jo=(0,Tn.observer)(function({model:e}){let{classes:n}=Zo(),{walkChoices:o}=e;if(o.length===0||!e.liftsWalks)return null;let a=new Set(o.map(l=>l.name)),r=new Map(o.map(l=>[l.name,l.label])),c=e.walkLayers.map(l=>l.walk).filter(l=>a.has(l));return(0,U.jsxs)(W.FormControl,{size:"small",className:n.formControl,children:[(0,U.jsx)(W.InputLabel,{children:"Walks"}),(0,U.jsx)(W.Select,{multiple:!0,value:c,label:"Walks","data-testid":"graph-walk-select",renderValue:l=>l.map(d=>r.get(d)).join(", "),onChange:l=>{let{value:d}=l.target;e.liftWalks(typeof d=="string"?d.split(","):d)},children:o.map(({name:l,label:d})=>(0,U.jsxs)(W.MenuItem,{value:l,dense:!0,children:[(0,U.jsx)(W.Checkbox,{size:"small",checked:c.includes(l)}),(0,U.jsx)(W.ListItemText,{primary:d})]},l))})]})}),Hn=jo;var x=s(m(),1),Uo=(0,Bn.makeStyles)()({toolbar:{display:"flex",alignItems:"center",gap:4,padding:"2px 4px",borderBottom:"1px solid #ddd"}}),qo=(0,Je.observer)(function({model:e}){return(0,x.jsx)(z.Typography,{variant:"body2",children:e.zoomPercent})}),Jo=(0,Je.observer)(function({model:e}){let{classes:n}=Uo();return(0,x.jsxs)("div",{className:n.toolbar,children:[(0,x.jsx)(yn,{model:e}),(0,x.jsx)(hn,{model:e}),(0,x.jsx)(Hn,{model:e}),(0,x.jsx)(xn,{model:e}),(0,x.jsx)(z.Tooltip,{title:"Zoom in",children:(0,x.jsx)(z.IconButton,{size:"small",onClick:()=>{e.zoom(1.5,e.viewBox.width/2,e.viewBox.height/2)},children:(0,x.jsx)(pn,{})})}),(0,x.jsx)(z.Tooltip,{title:"Zoom out",children:(0,x.jsx)(z.IconButton,{size:"small",onClick:()=>{e.zoom(1/1.5,e.viewBox.width/2,e.viewBox.height/2)},children:(0,x.jsx)(dn,{})})}),(0,x.jsx)(z.Tooltip,{title:"Zoom to fit",children:(0,x.jsx)(z.IconButton,{size:"small",onClick:()=>{e.zoomToFit()},children:(0,x.jsx)(ln,{})})}),(0,x.jsx)(qo,{model:e}),(0,x.jsx)(bn,{model:e}),(0,x.jsx)(Gn,{model:e})]})}),_n=Jo;var An=s(be(),1),On=s(M(),1);var ne=s(m(),1);function he({x:t,y:e,w:n,text:o,note:a,color:r,edge:c=r,italic:l,small:d,dimmed:f,title:u,testId:p,onClick:g,onHover:b}){return(0,ne.jsxs)("g",{style:{pointerEvents:g||b?"auto":"none",cursor:g?"pointer":void 0,opacity:f?.35:1},"data-testid":p,onClick:g,onMouseEnter:()=>{b?.(!0)},onMouseLeave:()=>{b?.(!1)},children:[u?(0,ne.jsx)("title",{children:u}):null,(0,ne.jsx)("rect",{x:t-n/2,y:e-X-we+2,width:n,height:X+we*2-2,rx:3,fill:"rgba(255,255,255,0.85)",stroke:c,strokeWidth:d?.6:1}),(0,ne.jsxs)("text",{x:t,y:e,fontSize:d?X-1:X,fontFamily:"sans-serif",fontStyle:l?"italic":void 0,fontWeight:l?600:void 0,fill:r,textAnchor:"middle",children:[o,a?(0,ne.jsx)("tspan",{fontStyle:"normal",fontWeight:"normal",children:a}):null]})]})}var q=s(m(),1),Qo={position:"absolute",left:0,top:0,pointerEvents:"none",overflow:"hidden",zIndex:3},Nn="#1c1c22",er=(0,On.observer)(function({model:e}){let{bubbles:n,genes:o,routes:a}=e.overlayLabels;if(n.length+o.length+a.length===0)return null;let{walkLift:r,scaleY:c,translateY:l,contigThickness:d}=e,f=p=>r!==void 0&&!p.nodeIds.some(g=>r.nodeIds.has(g)),u=p=>r!==void 0&&!p.route.walks.some(g=>r.names.has(g));return(0,q.jsxs)("svg",{style:Qo,width:e.paneWidth,height:e.canvasHeight,"data-testid":"graph-label-layer",children:[o.map(({item:p,x:g,y:b,w:I,text:E})=>{let{gene:G}=p,ge=Gt(p);return(0,q.jsxs)("g",{children:[(0,q.jsx)("line",{x1:g,x2:g,y1:b-X-2,y2:p.at.y*c+l+d/2,stroke:Nn,strokeWidth:.8,strokeOpacity:.6}),(0,q.jsx)(he,{x:g,y:b,w:I,text:G.name,note:E.slice(G.name.length)||void 0,color:Nn,edge:ie,italic:!0,title:`${G.name} ${G.refName}:${G.start.toLocaleString()}-${G.end.toLocaleString()}${ge?`, ${ge} in the cut`:""}`,testId:"graph-gene-pin-label"})]},`${G.name}-${G.start}`)}),a.map(({item:{halo:p,route:g},x:b,y:I,w:E,text:G})=>(0,q.jsx)(he,{x:b,y:I,w:E,text:G,color:ae[p.kind],small:!0,dimmed:u(g),title:`${g.route.walks.length} walk(s): ${g.route.walks.join(", ")}`,testId:"graph-route-label"},`${p.bubble.start}-${p.bubble.end}-${g.route.steps.join(",")}`)),n.map(({item:p,x:g,y:b,w:I,text:E})=>(0,q.jsx)(he,{x:g,y:b,w:I,text:E,color:ae[p.kind],dimmed:f(p),title:`${p.label}
2
+ ${p.bubble.segmentCount} segments \xB7 click to open`,testId:"graph-bubble-halo-label",onClick:()=>{e.popBubble(p.bubble)},onHover:G=>{(0,An.isAlive)(e)&&e.setHoveredBubble(G?p.bubble:null)}},`${p.bubble.start}-${p.bubble.end}`))]})}),zn=er;var Pe=s(N(),1);var $n=s(He(),1),Qe=s(M(),1);var L=s(m(),1),tr={position:"absolute",left:0,top:0,pointerEvents:"none",zIndex:5},nr=(0,Qe.observer)(function({model:e}){let n=(0,Pe.useRef)(null),{referenceStripShown:o,paneWidth:a,canvasHeight:r}=e;return(0,Pe.useEffect)(()=>(0,$n.autorun)(()=>{let c=n.current,l=e.referenceStripFrame,d=c?.getContext("2d");if(c&&d&&l&&e.referenceStripShown){let f=Se(),u=e.paneWidth,p=e.canvasHeight;c.width=Math.round(u*f),c.height=Math.round(p*f),d.setTransform(f,0,0,f,0,0),d.clearRect(0,0,u,p),Nt(d,e.referenceStripBlocks,l,{width:u,lit:e.referenceStripLit,darkMode:e.darkMode,dpr:f})}}),[e]),(0,L.jsx)("canvas",{ref:n,"data-testid":o?"graph-reference-strip":void 0,style:{...tr,width:a,height:r,display:o?"block":"none"}})}),Fn=nr,Xn=18,or="linear-gradient(to right, hsl(0, 70%, 50%) 0 33%, hsl(120, 70%, 50%) 33% 61%, hsl(240, 70%, 50%) 61%)",rr=6;function ar(t){let e=t.filter((a,r)=>a!==t[r-1]),n=Math.min(rr,e.length),o=Array.from({length:n},(a,r)=>e[n>1?Math.round(r*(e.length-1)/(n-1)):0]);return o.length>1?`linear-gradient(to right, ${o.join(", ")})`:o[0]??de}function Dn({rows:t}){return(0,L.jsx)("div",{style:{width:Xn,flex:"none"},children:t.map(({key:e,background:n})=>(0,L.jsx)("div",{style:{height:t.length>1?3:4,background:n}},e))})}function sr(t){return t.walkLift?.walks.map(e=>({key:e.name,background:ye(e.encoding)}))??[{key:"scheme",background:t.effectiveColorScheme==="reference-position"?or:ar(t.referenceStripBlocks.map(e=>e.colors[0]))}]}function ir(){return(0,L.jsx)("svg",{width:Xn,height:10,style:{flex:"none"},children:(0,L.jsx)("path",{d:"M0,5 L8,0 L8,10 Z M18,5 L10,0 L10,10 Z",fill:"#18181c"})})}var Yn=(0,Qe.observer)(function({model:e}){let n=(e.walkLift?.walks.length??0)>1;return e.referenceStripShown?(0,L.jsxs)("div",{style:T,"data-testid":"graph-reference-strip-legend",children:[(0,L.jsxs)("div",{style:v,children:[(0,L.jsx)(Dn,{rows:sr(e)}),(0,L.jsxs)("span",{children:["top strip: reference segments at their bp",n?", a row per walk":""]})]}),e.referenceStripFaded?(0,L.jsxs)("div",{style:v,children:[(0,L.jsx)(Dn,{rows:[{key:"pale",background:de}]}),(0,L.jsxs)("span",{children:["reference not on"," ",n?"that row's walk":e.liftedWalksLabel]})]}):null,e.referenceStripOverhangs?(0,L.jsxs)("div",{style:v,children:[(0,L.jsx)(ir,{}),(0,L.jsx)("span",{children:"the graph draws reference past this edge"})]}):null]}):null});var Ie=s(N(),1);var Kn=s(He(),1),tt=s(M(),1);var w=s(m(),1),lr={position:"absolute",left:0,top:0,pointerEvents:"none",zIndex:1},pr=(0,tt.observer)(function({model:e}){let n=(0,Ie.useRef)(null),{tubeMapPicture:o,paneWidth:a,canvasHeight:r}=e;return(0,Ie.useEffect)(()=>(0,Kn.autorun)(()=>{let c=n.current,l=e.tubeMapPicture,d=e.tubeMapFrame,f=c?.getContext("2d");if(c&&f&&l&&d){let u=Se(),p=e.paneWidth,g=e.canvasHeight;c.width=Math.round(p*u),c.height=Math.round(g*u),f.setTransform(u,0,0,u,0,0),f.clearRect(0,0,p,g);let b={...d,width:p,highlightNode:e.litNode??e.selectedNode,darkMode:e.darkMode,tubeColors:e.tubeMapTubeColors,nodeColors:e.tubeMapNodeColors};Bt(f,l,b),Ot(f,e.tubeMapDeviations,b),Ht(f,e.tubeMapConnectors,e.connectorZoneBottom,b);let{bounds:I}=l;_t(f,e.tubeMapGenes,b,d.y(I.minY)-2);let E=e.tubeMapRulerBoxes;E&&Wt(f,E,b,d.y(I.maxY)+4,e.layoutResult?.referenceAxis)}}),[e]),(0,w.jsx)("canvas",{ref:n,"data-testid":o?"graph-tube-map":void 0,style:{...lr,width:a,height:r,display:o?"block":"none"}})}),Zn=pr,Ee=18;function cr(){let t=[[.5,5.5],[8.5,Ee-.5]];return(0,w.jsx)("svg",{width:Ee,height:7,style:{flex:"none"},children:(0,w.jsx)("path",{d:t.map(([e,n])=>`M${e},6 V1.5 H${n} V6`).join(" "),fill:"none",stroke:Tt(),strokeWidth:1})})}var nt={width:Ee,height:7,flex:"none"},dr={...nt,display:"flex",justifyContent:"center",backgroundColor:"#b8b8c0"};function ur(){return(0,w.jsx)("div",{style:dr,children:(0,w.jsx)("div",{style:{width:2,backgroundColor:At()}})})}function Vn({colors:t}){let e=100/t.length,n=t.map((o,a)=>`${o} ${a*e}% ${(a+1)*e}%`);return(0,w.jsx)("div",{style:{...nt,background:`linear-gradient(to right, ${n.join(", ")})`}})}var et={width:Ee,flex:"none",textAlign:"center",fontFamily:"monospace",fontSize:12};function fr(){return(0,w.jsx)("div",{style:{...nt,backgroundColor:"grey"}})}function J({swatch:t,children:e}){return(0,w.jsxs)("div",{style:v,children:[t,(0,w.jsx)("span",{children:e})]})}var jn=(0,tt.observer)(function({model:e}){let{logWidths:n,foldBp:o,forwardReads:a,reverseReads:r,mismatches:c}=e.tubeMapKeys,l=e.readsShown,d=l&&l.shown<l.total?l:void 0,f=[a&&(0,w.jsx)(J,{swatch:(0,w.jsx)(Vn,{colors:_e}),children:"read on the forward strand"},"fwd"),r&&(0,w.jsx)(J,{swatch:(0,w.jsx)(Vn,{colors:Ne}),children:"read on the reverse strand"},"rev"),d&&(0,w.jsxs)(J,{swatch:(0,w.jsx)("span",{style:et}),children:[d.shown.toLocaleString("en-US")," of"," ",d.total.toLocaleString("en-US")," reads shown"]},"sampled"),c.has("substitution")&&(0,w.jsx)(J,{swatch:(0,w.jsx)("span",{style:et,children:"A"}),children:"a read's base unlike the node's"},"sub"),c.has("insertion")&&(0,w.jsx)(J,{swatch:(0,w.jsx)("span",{style:et,children:"*"}),children:"bases a read inserts"},"ins"),c.has("deletion")&&(0,w.jsx)(J,{swatch:(0,w.jsx)(fr,{}),children:"bases a read skips"},"del"),o!==void 0&&(0,w.jsxs)(J,{swatch:(0,w.jsx)(ur,{}),children:["a haplotype's variant under ",ve(o)]},"fold"),n&&(0,w.jsx)(J,{swatch:(0,w.jsx)(cr,{}),children:"width grows with log of length"},"log")].filter(Boolean);return f.length>0?(0,w.jsx)("div",{style:T,"data-testid":"graph-tube-map-legend",children:f}):null});var Un=s(Q(),1),qn=s(M(),1),Qn=s(m(),1),hr={position:"absolute",left:8,zIndex:5,background:"rgba(255,255,255,0.9)",textTransform:"none"},mr=(0,qn.observer)(function({model:e}){let{poppedFrom:n}=e;return n?(0,Qn.jsxs)(Un.Button,{size:"small",variant:"outlined",style:{...hr,...e.facetPanels?{bottom:8}:{top:8}},"data-testid":"graph-unpop-bubble",onClick:()=>{e.unpopBubble()},children:["\u25C0 Back to ",n.label]}):null}),Jn=mr;var ro=s(Be(),1);var eo=s(m(),1),to=(0,C.createSvgIcon)((0,eo.jsx)("path",{d:"M10 18h4v-2h-4zM3 6v2h18V6zm3 7h12v-2H6z"}),"FilterList");var no=s(m(),1),oo=(0,C.createSvgIcon)((0,no.jsx)("path",{d:"M10.83 8H21V6H8.83zm5 5H18v-2h-4.17zM14 16.83V18h-4v-2h3.17l-3-3H6v-2h2.17l-3-3H3V6h.17L1.39 4.22 2.8 2.81l18.38 18.38-1.41 1.41z"}),"FilterListOff");var ao=s(M(),1);var so=s(m(),1),Ge=(0,ao.observer)(function({model:e,row:n,bars:o,top:a,left:r,onClose:c}){let l=o??e.walkRowBars,d=e.walkRowLaunchTarget(n,l),f=d?.assembly,u=n>0?l?.rows[n-1]?.sample:void 0,p=!o&&e.walkRowBars,g=e.walkRowSamples;return(0,so.jsx)(ro.Menu,{open:!0,anchorReference:"anchorPosition",anchorPosition:{top:a,left:r},onClose:()=>{c()},onMenuItemClick:b=>{b()},menuItems:[d&&f?{label:`Linear genome view \u2014 ${f} ${Re(d.location)}`,icon:$e,onClick:()=>{e.showInLinearView({location:d.location,assembly:f})}}:{label:"Linear genome view",icon:$e,disabled:!0,disabledHelpText:d?`No assembly in this session is ${d.location.haplotype??d.label}`:"This walk states no contig coordinates",onClick:()=>{}},...p&&u&&!(g?.length===1&&g[0]===u)?[{label:`Show only ${u}`,icon:to,onClick:()=>{e.setWalkRowSamples([u])}}]:[],...p&&g?[{label:"Show every sample",icon:oo,onClick:()=>{e.setWalkRowSamples(void 0)}}]:[]]})});var io=s(N(),1);var rt=s(M(),1);var y=s(m(),1),br={position:"absolute",left:0,top:0,pointerEvents:"none",overflow:"visible",zIndex:3},Te={width:18,height:vt-4,borderRadius:2},wr={...Te,display:"flex",justifyContent:"center"};function ot({color:t}){return(0,y.jsx)("div",{style:wr,children:(0,y.jsx)("div",{style:{width:2,backgroundColor:t}})})}function at({swatch:t}){return t.kind==="gene"?(0,y.jsx)("div",{style:{...Te,boxSizing:"border-box",border:`1.5px solid ${wt}`,borderRadius:0}}):(0,y.jsx)("div",{style:{...Te,height:t.kind==="gap"?yt:Te.height,background:t.fill}})}var lo=(0,rt.observer)(function({model:e}){let n=e.walkRowBars;if(!n)return null;let o=[n.reference,...n.rows].flatMap(r=>r.call??[]),a=ke(n,{ramp:e.referenceRampDomain,rampCss:ee,genes:e.walkRowGeneKey});return(0,y.jsxs)("div",{style:T,"data-testid":"graph-walk-rows-legend",children:[a.map(r=>r.note?(0,y.jsx)("div",{style:{color:"#666",fontStyle:"italic"},children:r.label},r.label):(0,y.jsxs)("div",{style:v,children:[(0,y.jsx)(at,{swatch:r.swatch}),(0,y.jsx)("span",{children:r.label})]},r.label)),o.some(r=>r.spanningReads!==0)?(0,y.jsxs)("div",{style:v,children:[(0,y.jsx)(ot,{color:St}),(0,y.jsx)("span",{children:"allele length called for this walk"})]}):null,o.some(r=>r.spanningReads===0)?(0,y.jsxs)("div",{style:v,children:[(0,y.jsx)(ot,{color:xt}),(0,y.jsx)("span",{children:"called with no read spanning it"})]}):null,o.some(r=>r.agrees===!1)?(0,y.jsxs)("div",{style:v,children:[(0,y.jsx)(ot,{color:Rt}),(0,y.jsxs)("span",{children:["walk and call over ",Math.round(.1*100),"% apart"]})]}):null]})});function vr(t,e,n,o,a){return e.length===0?[se(t,o,a)]:[se({...t,rows:[]},o,a),...e.flatMap((r,c)=>se({...t,rows:t.rows.slice(r.first-1,r.first-1+r.count)},{...o,translateY:o.translateY+(n(r.first)-o.rowPx)*o.scaleY},{...a,idPrefix:`${a.idPrefix}-s${c}`}).children.filter(d=>typeof d!="string"&&d.attrs["data-testid"]!=="graph-walk-reference"))]}var yr=(0,rt.observer)(function({model:e}){let n=(0,io.useId)().replace(/[^\w-]/g,""),o=e.walkRowBars,a=e.walkRowPlacement,r=e.walkRowPitch;if(!o||!a||!r)return null;let{paneWidth:c,canvasHeight:l}=e,d=g=>g*e.scaleY+e.translateY,f=e.hoveredWalkRowText?[o.reference,...o.rows].findIndex(g=>g.name===e.hoveredWalkRow):-1,u=f>=0?[o.reference,...o.rows][f]:void 0,p={scaleX:e.scaleX,scaleY:e.scaleY,translateX:e.translateX,translateY:e.translateY,width:c,height:l,...r};return(0,y.jsxs)("svg",{style:br,width:c,height:l,"data-testid":"graph-walk-rows",children:[vr(o,e.walkRowGroups?.sections??[],a.rowY,p,{ramp:e.referenceRampDomain,rowGenes:e.walkRowGenes,idPrefix:n}).map((g,b)=>(0,y.jsx)($,{el:g},b)),a.headers.map(g=>(0,y.jsx)("text",{x:10,y:d(g.top)+ht-4,fontFamily:"sans-serif",fontSize:11,fontWeight:"bold",fill:"#333","data-testid":"graph-walk-section",children:g.title},g.key)),u?(0,y.jsx)("rect",{"data-testid":"graph-walk-row-hovered",x:o.origin*e.scaleX+e.translateX-2,y:d(a.rowY(f))-r.rowPx/2-1,width:u.bp*e.scaleX+4,height:r.rowPx+2,fill:"none",stroke:"#111",strokeWidth:1}):null]})}),po=yr;var oe=s(N(),1);var co=s(be(),1),st=s(M(),1);var P=s(m(),1),kr={display:"flex",flexWrap:"wrap",gap:"2px 14px",padding:"2px 8px 6px",fontSize:11,color:"#333"},Sr={position:"absolute",pointerEvents:"none",background:"rgba(255,255,255,0.92)",border:"1px solid #ccc",borderRadius:3,padding:"1px 6px",fontSize:11,whiteSpace:"nowrap",zIndex:4},xr=(0,st.observer)(function({bars:e,frame:n,ramp:o,rowGenes:a}){let r=(0,oe.useId)().replace(/[^\w-]/g,""),c=(0,oe.useMemo)(()=>se(e,n,{ramp:o,rowGenes:a,idPrefix:r}),[e,n,o,a,r]);return(0,P.jsx)($,{el:c})}),Rr=(0,st.observer)(function({model:e}){let n=e.walkStripRows,o=e.walkStripFrame,[a,r]=(0,oe.useState)(void 0),[c,l]=(0,oe.useState)(void 0);if(!n||!o)return null;let d=u=>{let p=u.currentTarget.getBoundingClientRect(),g=u.clientX-p.left,b=u.clientY-p.top;return{...Mt(n,o,g,b),x:g,y:b}},f=ke(n,{ramp:e.referenceRampDomain,rampCss:ee,genes:Pt(o,e.walkRowGenes,e.walkRowGeneGaps)});return(0,P.jsxs)("div",{"data-testid":"graph-walk-strip",style:{position:"relative",borderTop:"1px solid #ddd"},onMouseEnter:()=>{e.setPointerInPane(!0)},onMouseLeave:()=>{(0,co.isAlive)(e)&&(e.setPointerInPane(!1),e.setStripHover(null)),l(void 0)},children:[(0,P.jsxs)("svg",{width:o.width,height:o.height,style:{display:"block",cursor:"pointer"},onMouseMove:u=>{let p=d(u);p.row?(e.setStripHover({row:p.row.name,offset:p.offset}),l(o.labelled?void 0:{text:`${p.row.label} \xB7 ${kt(p.row,p.index===0?void 0:n.reference)}`,x:p.x,y:p.y})):(e.setStripHover(null),l(void 0))},onClick:u=>{let p=d(u);p.row&&p.index>0&&e.toggleWalk(p.row.name)},onContextMenu:u=>{let p=d(u);p.row&&(u.preventDefault(),r({row:p.index,top:u.clientY,left:u.clientX}))},children:[(0,P.jsx)(xr,{bars:n,frame:o,ramp:e.referenceRampDomain,rowGenes:e.walkRowGenes}),(0,P.jsx)($,{el:Lt(n,o,e.walkStripMarks)}),(0,P.jsx)($,{el:Ct(n,o,new Set(e.walkLayers.map(u=>u.walk)))})]}),c?(0,P.jsx)("div",{style:{...Sr,left:c.x+12,top:c.y-18},children:c.text}):null,(0,P.jsxs)("div",{style:kr,"data-testid":"graph-walk-strip-key",children:[f.map(u=>(0,P.jsxs)("div",{style:v,children:[(0,P.jsx)(at,{swatch:u.swatch}),(0,P.jsx)("span",{children:u.label})]},u.label)),(0,P.jsx)("div",{style:v,children:(0,P.jsx)("span",{children:"\u25AE ticks: where each walk passes the node under the pointer \xB7 click a bar to lift its walk"})})]}),a?(0,P.jsx)(Ge,{model:e,row:a.row,bars:n,top:a.top,left:a.left,onClose:()=>{r(void 0)}}):null]})}),uo=Rr;var fo=s(M(),1),me=s(m(),1),Mr={position:"absolute",left:0,top:0,pointerEvents:"none",overflow:"visible",zIndex:4},Lr=(0,fo.observer)(function({model:e}){let n=e.walkStripLocator;return n?(0,me.jsxs)("svg",{style:Mr,width:e.paneWidth,height:e.canvasHeight,"data-testid":"graph-walk-strip-locator",children:[(0,me.jsx)("circle",{cx:n.x,cy:n.y,r:11,fill:"none",stroke:"white",strokeWidth:4}),(0,me.jsx)("circle",{cx:n.x,cy:n.y,r:11,fill:"none",stroke:"#111",strokeWidth:1.75})]}):null}),ho=Lr;function mo(t){return Promise.resolve(new ue(t))}var i=s(m(),1),it={position:"absolute",bottom:8,right:8,background:"rgba(0,0,0,0.75)",color:"white",padding:"4px 8px",borderRadius:4,fontSize:12,pointerEvents:"none",zIndex:6},Cr={position:"relative"},Pr={position:"relative",lineHeight:0,isolation:"isolate"},Er={position:"absolute",left:0,right:0,bottom:0,zIndex:0},Ir={position:"absolute",inset:0,zIndex:10,lineHeight:"normal",pointerEvents:"none"},Gr={position:"absolute",left:6,transform:"translateY(-50%)",background:"rgba(255,255,255,0.82)",padding:"0 4px",borderRadius:3,fontSize:11,lineHeight:"16px",whiteSpace:"nowrap",pointerEvents:"none",zIndex:4},Tr=(0,_.observer)(function({model:e}){let n=e.drawnRowLabels;return(0,i.jsx)(i.Fragment,{children:n.map(({label:o,y:a})=>{let r=a*e.scaleY+e.translateY;return r>=0&&r<=e.canvasHeight?(0,i.jsx)("div",{"data-testid":"graph-row-label",style:{...Gr,top:r},children:o},a):null})})}),Wr={position:"absolute",top:xe,right:xe,display:"flex",flexDirection:"column",alignItems:"flex-end",gap:4,pointerEvents:"none",zIndex:4},Hr={width:18,height:3,borderRadius:2},Br=(0,_.observer)(function({model:e}){let{pathLegend:n}=e;return n.length>0?(0,i.jsx)("div",{style:T,"data-testid":"graph-path-legend",children:n.map(({name:o,label:a,color:r})=>(0,i.jsxs)("div",{style:v,children:[(0,i.jsx)("div",{style:{...Hr,backgroundColor:r}}),(0,i.jsx)("span",{children:a})]},o))}):null}),_r=(0,_.observer)(function({model:e}){let n=e.walkLift;return n?(0,i.jsxs)("div",{style:T,"data-testid":"graph-walk-readout",children:[n.walks.map(o=>(0,i.jsx)(fe,{walk:o,label:e.walkLabel(o.name),reference:e.walkReference,at:e.hoveredOn(o)},o.name)),e.liftPaintsOffReference?(0,i.jsx)(bo,{}):null,(0,i.jsxs)("div",{style:v,children:[(0,i.jsx)("div",{style:{...te,background:de}}),(0,i.jsxs)("span",{children:["not on ",e.liftedWalksLabel]})]})]}):null}),Nr={minWidth:90,height:8,borderRadius:2,background:ee},Ar={display:"flex",justifyContent:"space-between",gap:8},Or=(0,_.observer)(function({model:e}){let n=e.walkLift?void 0:e.referenceRampDomain,{offReference:o,unplaced:a}=e.referenceRampOffKeys,r=Math.round(n?.start??0),c=Math.round(n?.end??0);return n?(0,i.jsxs)("div",{style:T,"data-testid":"graph-ramp-legend",children:[(0,i.jsx)("div",{style:Nr}),(0,i.jsxs)("div",{style:Ar,children:[(0,i.jsx)("span",{children:r.toLocaleString()}),(0,i.jsxs)("span",{children:["(",ve(c-r),")"]}),(0,i.jsx)("span",{children:c.toLocaleString()})]}),o?(0,i.jsx)(bo,{}):null,a?(0,i.jsxs)("div",{style:v,children:[(0,i.jsx)("div",{style:{...te,background:zr}}),(0,i.jsx)("span",{children:"no reference position"})]}):null]}):null}),zr="rgb(160, 160, 160)";function bo(){return(0,i.jsxs)("div",{style:v,children:[(0,i.jsx)("div",{style:{...te,background:mt}}),(0,i.jsx)("span",{children:"off the reference"})]})}var Dr={...te,border:`2px solid ${ie}`,borderRadius:5,boxSizing:"border-box"},$r=(0,_.observer)(function({model:e}){return e.genePins.some(n=>n.exonsByNode.length>0)?(0,i.jsx)("div",{style:T,"data-testid":"graph-gene-legend",children:(0,i.jsxs)("div",{style:v,children:[(0,i.jsx)("div",{style:Dr}),(0,i.jsx)("span",{children:"exon"})]})}):null}),wo={position:"absolute",transform:"translate(-50%, -50%)",background:"rgba(255,255,255,0.78)",padding:"0 3px",borderRadius:3,fontSize:10,lineHeight:"13px",whiteSpace:"nowrap",pointerEvents:"none",zIndex:3},Fr={...wo,color:"#18181c",fontWeight:600},Xr={position:"absolute",left:0,top:0,pointerEvents:"none",overflow:"visible",zIndex:2},Yr=(0,_.observer)(function({model:e}){let n=(0,We.useRef)(null);return(0,We.useEffect)(()=>{let o=n.current;if(!o)return;let a=new ResizeObserver(()=>{(0,lt.isAlive)(e)&&e.hoveredNode===null&&e.setLegendSize({width:o.offsetWidth,height:o.offsetHeight})});return a.observe(o),()=>{a.disconnect()}},[e]),(0,i.jsxs)("div",{ref:n,style:{...Wr,top:xe+e.referenceStripZonePx},children:[(0,i.jsx)(Or,{model:e}),(0,i.jsx)(Yn,{model:e}),(0,i.jsx)(Ut,{model:e}),(0,i.jsx)($r,{model:e}),(0,i.jsx)(Br,{model:e}),(0,i.jsx)(jn,{model:e}),(0,i.jsx)(lo,{model:e}),(0,i.jsx)(_r,{model:e})]})}),Vr=(0,_.observer)(function({model:e}){let n=e.overlayLabels.sizes,o=n.flatMap(({key:a,leader:r})=>r?[{key:a,...r}]:[]);return(0,i.jsxs)(i.Fragment,{children:[o.length>0?(0,i.jsx)("svg",{style:Xr,width:e.paneWidth,height:e.canvasHeight,children:o.map(({key:a,arcX:r,arcY:c,labelX:l,labelY:d})=>(0,i.jsx)("line",{"data-testid":"graph-label-leader",x1:r,y1:c,x2:l,y2:d,stroke:"#18181c",strokeWidth:1},a))}):null,n.map(({key:a,text:r,x:c,y:l,kind:d})=>(0,i.jsx)("div",{"data-testid":"graph-size-label",style:{...d==="deletion"?Fr:wo,left:c,top:l},children:r},a))]})}),Kr=(0,_.observer)(function({model:e}){let n=e.hoveredNode?e.nodeById?.get(e.hoveredNode):null,o=e.hoveredEdge!==null&&e.graph?e.graph.edges[e.hoveredEdge]:null,a=n?zt(n):void 0,r=o?Fe(o,e.deletions.find(l=>l.edgeIndex===e.hoveredEdge),l=>e.nodeById?.get(l)?.name??l):void 0,c=e.hoveredWalkRowText;return(0,i.jsxs)(i.Fragment,{children:[c&&!n?(0,i.jsxs)("div",{style:it,"data-testid":"graph-walk-row-tooltip",children:[(0,i.jsx)("strong",{children:c.label})," \u2014 ",c.readout]}):null,n?(0,i.jsxs)("div",{style:it,children:[(0,i.jsx)("strong",{children:n.name})," \u2014"," ",n.length.toLocaleString()," bp, depth"," ",n.depth.toFixed(1),a?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("br",{}),a.sample," ",Re(a)," (rank"," ",n.stable?.rank,")"]}):null]}):null,r?(0,i.jsx)("div",{style:it,children:r.deletion?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("strong",{children:"Deletion"})," ",r.deletion.bp,(0,i.jsx)("br",{}),r.deletion.where]}):(0,i.jsxs)(i.Fragment,{children:["Edge: ",r.ends]})}):null]})}),Zr=(0,_.observer)(function({model:e,nodeId:n,top:o,left:a,onClose:r}){let{own:c,reference:l,highlight:d}=e.nodeLaunchTargets(n);return(0,i.jsx)(re.Menu,{open:!0,anchorReference:"anchorPosition",anchorPosition:{top:o,left:a},onClose:()=>{r()},onMenuItemClick:f=>{f()},menuItems:[{label:"Node details",icon:Zt,onClick:()=>{e.showNodeDetails(n)}},...Dt({own:c,reference:l,highlight:d,onShowLinear:f=>{e.showInLinearView(f)},onHighlight:e.canHighlightInLinearView?f=>{e.highlightInLinearView(f)}:void 0})]})}),jr=(0,_.observer)(function({model:e,ownChrome:n=!0}){let{canvasRef:o,canvas:a,error:r,retry:c}=(0,go.useRenderingBackend)(mo,e),{handlers:l,contextNode:d,contextRow:f,closeContextMenu:u}=Qt(e);Me(a,e);let p=e.facetPanels!==void 0;return(0,i.jsxs)("div",{style:Cr,children:[n?(0,i.jsx)(_n,{model:e}):null,(0,i.jsxs)("div",{style:Pr,onMouseEnter:()=>{e.setPointerInPane(!0)},onMouseLeave:()=>{(0,lt.isAlive)(e)&&e.setPointerInPane(!1)},children:[e.referenceStripShown?(0,i.jsx)("div",{style:{...Er,top:e.referenceStripZonePx,background:e.paperCss}}):null,(0,i.jsx)("canvas",{ref:o,"data-testid":"graph-genome-canvas",style:{width:e.paneWidth,height:e.canvasHeight,cursor:e.isPanning||e.draggingNode?"grabbing":"grab",display:"block",position:"relative",zIndex:1},...l}),p?(0,i.jsx)(en,{model:e,handlers:l}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Zn,{model:e}),(0,i.jsx)(Fn,{model:e}),(0,i.jsx)(Tr,{model:e}),(0,i.jsx)(Vr,{model:e}),(0,i.jsx)(jt,{model:e}),(0,i.jsx)(an,{model:e}),(0,i.jsx)(zn,{model:e}),(0,i.jsx)(po,{model:e}),(0,i.jsx)(ho,{model:e}),(0,i.jsx)(Yr,{model:e})]}),(0,i.jsx)(Jn,{model:e}),n?(0,i.jsx)("div",{style:Ir,children:(0,i.jsx)(re.LoadingOverlay,{isVisible:e.isLoading,immediate:!e.layoutResult,statusMessage:e.statusMessage,onCancel:e.canCancelLoad?()=>{e.cancelLoad()}:void 0})}):null]}),e.walkStripShown?(0,i.jsx)(uo,{model:e}):null,(0,i.jsx)(Kr,{model:e}),d?(0,i.jsx)(Zr,{model:e,nodeId:d.nodeId,top:d.top,left:d.left,onClose:u}):null,f?(0,i.jsx)(Ge,{model:e,row:f.row,top:f.top,left:f.left,onClose:u}):null,r?(0,i.jsx)(re.ErrorBanner,{error:r,onReset:c}):null,n&&e.error?(0,i.jsx)(re.ErrorBanner,{error:e.error,onReset:e.canRetryLoad?()=>{e.retryLoad()}:void 0}):null]})}),Pl=jr;export{Pl as a};
3
+ //# sourceMappingURL=chunk-2SL675KP.js.map