jbrowse-plugin-graphgenomeviewer 7.1.0 → 7.1.2

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 (233) hide show
  1. package/README.md +17 -8
  2. package/dist/chunks/AddTrackWorkflow-RPH4ZFSX.js +2 -0
  3. package/dist/chunks/{AddTrackWorkflow-Q6RY23LF.js.map → AddTrackWorkflow-RPH4ZFSX.js.map} +2 -2
  4. package/dist/chunks/{ChooseSamplesDialog-BNVYBGJQ.js → ChooseSamplesDialog-JRN4YLBY.js} +2 -2
  5. package/dist/chunks/{ChooseWalksDialog-EN3C6AQA.js → ChooseWalksDialog-UXLFZTZJ.js} +2 -2
  6. package/dist/chunks/GbzBaseSyntenyAdapter-LRECKL74.js +2 -0
  7. package/dist/chunks/GbzBaseSyntenyAdapter-LRECKL74.js.map +7 -0
  8. package/dist/chunks/{GraphGenomeView-Z2WZKEEO.js → GraphGenomeView-NJ5XCREB.js} +2 -2
  9. package/dist/chunks/GraphTrackSettingsDialog-47PQ6LM7.js +6 -0
  10. package/dist/chunks/GraphTrackSettingsDialog-47PQ6LM7.js.map +7 -0
  11. package/dist/chunks/{HighlightColorDialog-EYBKFSJU.js → HighlightColorDialog-UK5VDDV6.js} +2 -2
  12. package/dist/chunks/{LinearGraphDisplay-WIBVWRQE.js → LinearGraphDisplay-TXTKAACH.js} +2 -2
  13. package/dist/chunks/MinigraphBubbleAdapter-HW7XQMAI.js +2 -0
  14. package/dist/chunks/MinigraphBubbleAdapter-HW7XQMAI.js.map +7 -0
  15. package/dist/chunks/RgfaTabixAdapter-PSKYWD2X.js +3 -0
  16. package/dist/chunks/RgfaTabixAdapter-PSKYWD2X.js.map +7 -0
  17. package/dist/chunks/{TrackWarningsDialog-QT4YEXGD.js → TrackWarningsDialog-TRYBOIHX.js} +2 -2
  18. package/dist/chunks/WalkTabixSyntenyAdapter-U53JLYVU.js +2 -0
  19. package/dist/chunks/WalkTabixSyntenyAdapter-U53JLYVU.js.map +7 -0
  20. package/dist/chunks/chunk-2MCOY3YG.js +3 -0
  21. package/dist/chunks/chunk-2MCOY3YG.js.map +7 -0
  22. package/dist/chunks/{chunk-EWFJBQDV.js → chunk-5O6YRJHL.js} +2 -2
  23. package/dist/chunks/{chunk-EWFJBQDV.js.map → chunk-5O6YRJHL.js.map} +1 -1
  24. package/dist/chunks/chunk-BUY2PV7D.js +2 -0
  25. package/dist/chunks/chunk-BUY2PV7D.js.map +7 -0
  26. package/dist/chunks/chunk-DVCZ3BOC.js +2 -0
  27. package/dist/chunks/chunk-DVCZ3BOC.js.map +7 -0
  28. package/dist/chunks/{chunk-SAMJE6GH.js → chunk-EGDLEQ47.js} +3 -3
  29. package/dist/chunks/{chunk-SAMJE6GH.js.map → chunk-EGDLEQ47.js.map} +4 -4
  30. package/dist/chunks/chunk-FHZXW7IG.js +2 -0
  31. package/dist/chunks/chunk-FHZXW7IG.js.map +7 -0
  32. package/dist/chunks/{chunk-DZ4OUKQV.js → chunk-FITPB5X6.js} +2 -2
  33. package/dist/chunks/{chunk-DZ4OUKQV.js.map → chunk-FITPB5X6.js.map} +1 -1
  34. package/dist/chunks/chunk-FVK2THE4.js +2 -0
  35. package/dist/chunks/chunk-FVK2THE4.js.map +7 -0
  36. package/dist/chunks/{chunk-AHFQHYJI.js → chunk-IBWORBGY.js} +2 -2
  37. package/dist/chunks/chunk-MND7GAOG.js +2 -0
  38. package/dist/chunks/chunk-MND7GAOG.js.map +7 -0
  39. package/dist/chunks/chunk-MURN3JPK.js +2 -0
  40. package/dist/chunks/chunk-MURN3JPK.js.map +7 -0
  41. package/dist/chunks/{chunk-3Q4RBDCL.js → chunk-N6PQZSAX.js} +1 -1
  42. package/dist/chunks/{chunk-3Q4RBDCL.js.map → chunk-N6PQZSAX.js.map} +1 -1
  43. package/dist/chunks/chunk-NWJYLP6Z.js +4 -0
  44. package/dist/chunks/chunk-NWJYLP6Z.js.map +7 -0
  45. package/dist/chunks/{chunk-YJHYBDYF.js → chunk-S75W27NT.js} +2 -2
  46. package/dist/chunks/{chunk-YJHYBDYF.js.map → chunk-S75W27NT.js.map} +1 -1
  47. package/dist/chunks/{chunk-IXQK7JAW.js → chunk-T4HOC6O3.js} +1 -1
  48. package/dist/chunks/{chunk-IXQK7JAW.js.map → chunk-T4HOC6O3.js.map} +1 -1
  49. package/dist/chunks/{chunk-AU73K7LX.js → chunk-TUKJRVBS.js} +1 -1
  50. package/dist/chunks/{chunk-AU73K7LX.js.map → chunk-TUKJRVBS.js.map} +1 -1
  51. package/dist/chunks/chunk-UGCNPRKC.js +2 -0
  52. package/dist/chunks/{chunk-E3WYW7Z6.js.map → chunk-UGCNPRKC.js.map} +2 -2
  53. package/dist/chunks/{chunk-YSTMDXXX.js → chunk-VJ3SO4CH.js} +1 -1
  54. package/dist/chunks/{chunk-YSTMDXXX.js.map → chunk-VJ3SO4CH.js.map} +1 -1
  55. package/dist/chunks/{chunk-XT766CZ5.js → chunk-W6EQLQ6H.js} +1 -1
  56. package/dist/chunks/{chunk-XT766CZ5.js.map → chunk-W6EQLQ6H.js.map} +1 -1
  57. package/dist/chunks/chunk-WAMBI7OX.js +2 -0
  58. package/dist/chunks/chunk-WAMBI7OX.js.map +7 -0
  59. package/dist/chunks/chunk-WCGVUZWP.js +2 -0
  60. package/dist/chunks/chunk-WCGVUZWP.js.map +7 -0
  61. package/dist/chunks/chunk-WEGWTC52.js +2 -0
  62. package/dist/chunks/chunk-WEGWTC52.js.map +7 -0
  63. package/dist/chunks/chunk-YU7T5WOQ.js +2 -0
  64. package/dist/chunks/{chunk-6OPB7FOJ.js.map → chunk-YU7T5WOQ.js.map} +2 -2
  65. package/dist/chunks/{chunk-446RWIA3.js → chunk-ZMOMFU2B.js} +1 -1
  66. package/dist/chunks/{chunk-446RWIA3.js.map → chunk-ZMOMFU2B.js.map} +1 -1
  67. package/dist/chunks/renderSvg-KSQI5DH6.js +2 -0
  68. package/dist/chunks/renderSvg-KSQI5DH6.js.map +7 -0
  69. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js +4 -4
  70. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js.map +4 -4
  71. package/package.json +8 -9
  72. package/src/GbzBaseSyntenyAdapter/GbzBaseSyntenyAdapter.test.ts +12 -10
  73. package/src/GbzBaseSyntenyAdapter/GbzBaseSyntenyAdapter.ts +31 -39
  74. package/src/GbzBaseSyntenyAdapter/configSchema.ts +5 -29
  75. package/src/GetGraphHaplotypes.ts +6 -15
  76. package/src/GetGraphReads.ts +7 -14
  77. package/src/GetSubgraph.ts +11 -20
  78. package/src/GraphAddTrackWorkflow/AddTrackWorkflow.test.tsx +73 -0
  79. package/src/GraphAddTrackWorkflow/AddTrackWorkflow.tsx +1 -0
  80. package/src/GraphAddTrackWorkflow/buildTrackConfig.test.ts +3 -2
  81. package/src/GraphAddTrackWorkflow/buildTrackConfig.ts +2 -11
  82. package/src/GraphAddTrackWorkflow/graphManifest.ts +15 -3
  83. package/src/GraphGenomeView/components/BubbleHalos.tsx +5 -24
  84. package/src/GraphGenomeView/components/ElTree.tsx +6 -1
  85. package/src/GraphGenomeView/components/FacetPanels.test.tsx +65 -0
  86. package/src/GraphGenomeView/components/FacetPanels.tsx +17 -12
  87. package/src/GraphGenomeView/components/GenePins.tsx +5 -22
  88. package/src/GraphGenomeView/components/GraphCanvas.tsx +40 -234
  89. package/src/GraphGenomeView/components/GraphSettingsDialog.tsx +102 -108
  90. package/src/GraphGenomeView/components/GraphToolbar.tsx +5 -6
  91. package/src/GraphGenomeView/components/HoverLayer.tsx +3 -7
  92. package/src/GraphGenomeView/components/HoverTooltip.test.tsx +39 -0
  93. package/src/GraphGenomeView/components/HoverTooltip.tsx +122 -0
  94. package/src/GraphGenomeView/components/LabelChip.tsx +3 -5
  95. package/src/GraphGenomeView/components/LabelLayer.tsx +4 -17
  96. package/src/GraphGenomeView/components/LabelledSelect.tsx +1 -1
  97. package/src/GraphGenomeView/components/Legend.tsx +14 -23
  98. package/src/GraphGenomeView/components/PaneContextMenu.test.tsx +48 -0
  99. package/src/GraphGenomeView/components/PaneContextMenu.tsx +144 -0
  100. package/src/GraphGenomeView/components/PaneLayer.tsx +91 -0
  101. package/src/GraphGenomeView/components/PaneSvg.tsx +32 -50
  102. package/src/GraphGenomeView/components/ReferenceStripOverlay.test.tsx +48 -0
  103. package/src/GraphGenomeView/components/ReferenceStripOverlay.tsx +13 -42
  104. package/src/GraphGenomeView/components/SettingsMenu.test.tsx +29 -0
  105. package/src/GraphGenomeView/components/SettingsMenu.tsx +56 -65
  106. package/src/GraphGenomeView/components/TubeMapOverlay.tsx +15 -46
  107. package/src/GraphGenomeView/components/WalkRowsOverlay.tsx +58 -132
  108. package/src/GraphGenomeView/components/WalkStrip.tsx +17 -20
  109. package/src/GraphGenomeView/components/WalkStripLocator.tsx +8 -15
  110. package/src/GraphGenomeView/components/usePaneGestures.test.tsx +35 -0
  111. package/src/GraphGenomeView/components/usePaneGestures.ts +88 -91
  112. package/src/GraphGenomeView/genes/geneFeatures.ts +27 -45
  113. package/src/GraphGenomeView/graphLayers.ts +4 -4
  114. package/src/GraphGenomeView/host.ts +1 -1
  115. package/src/GraphGenomeView/legendSections.test.ts +23 -1
  116. package/src/GraphGenomeView/legendSections.ts +68 -74
  117. package/src/GraphGenomeView/model.test.ts +373 -39
  118. package/src/GraphGenomeView/model.ts +67 -11
  119. package/src/GraphGenomeView/pane/fitViews.ts +57 -514
  120. package/src/GraphGenomeView/pane/graphViews.ts +219 -160
  121. package/src/GraphGenomeView/pane/hostViews.ts +2 -10
  122. package/src/GraphGenomeView/pane/keepInView.ts +5 -4
  123. package/src/GraphGenomeView/pane/launchActions.ts +117 -139
  124. package/src/GraphGenomeView/pane/launchViews.ts +8 -27
  125. package/src/GraphGenomeView/pane/loadActions.ts +208 -187
  126. package/src/GraphGenomeView/pane/morph.ts +3 -9
  127. package/src/GraphGenomeView/pane/paneBase.ts +22 -11
  128. package/src/GraphGenomeView/pane/renderingActions.ts +65 -11
  129. package/src/GraphGenomeView/pane/settingActions.ts +17 -42
  130. package/src/GraphGenomeView/pane/tubeMapViews.ts +445 -0
  131. package/src/GraphGenomeView/pane/walkRowViews.ts +29 -37
  132. package/src/GraphGenomeView/renderPipeline.test.ts +1 -1
  133. package/src/GraphGenomeView/repeats/repeatFeatures.test.ts +23 -0
  134. package/src/GraphGenomeView/repeats/repeatFeatures.ts +16 -23
  135. package/src/GraphGenomeView/repeats/walkCalls.test.ts +18 -0
  136. package/src/GraphGenomeView/repeats/walkCalls.ts +46 -38
  137. package/src/GraphGenomeView/subgraphLoad.test.ts +67 -3
  138. package/src/GraphGenomeView/trackFeatures.ts +24 -0
  139. package/src/GraphGenomeView/tubeMapPanels.ts +28 -36
  140. package/src/GraphGenomeView/viewModel.ts +8 -56
  141. package/src/GraphGenomeView/walkRowGroups.ts +104 -30
  142. package/src/GraphGenomeView/walkRowSpans.test.ts +6 -0
  143. package/src/GraphGenomeView/walkRowSpans.ts +22 -31
  144. package/src/GraphGenomeView/walkRowsCut.ts +8 -17
  145. package/src/LinearGraphDisplay/LinearGraphDisplay.test.ts +173 -26
  146. package/src/LinearGraphDisplay/components/SubgraphContextSelect.test.tsx +1 -1
  147. package/src/LinearGraphDisplay/components/SubgraphContextSelect.tsx +3 -3
  148. package/src/LinearGraphDisplay/components/SubgraphHaplotypesField.test.tsx +3 -3
  149. package/src/LinearGraphDisplay/components/SubgraphHaplotypesField.tsx +7 -10
  150. package/src/LinearGraphDisplay/configSchema.ts +0 -3
  151. package/src/LinearGraphDisplay/denseWindow.ts +8 -11
  152. package/src/LinearGraphDisplay/model.ts +89 -82
  153. package/src/MinigraphBubbleAdapter/MinigraphBubbleAdapter.test.ts +21 -0
  154. package/src/MinigraphBubbleAdapter/MinigraphBubbleAdapter.ts +6 -14
  155. package/src/MinigraphBubbleAdapter/configSchema.ts +3 -9
  156. package/src/MinigraphBubbleAdapter/index.ts +1 -2
  157. package/src/RgfaTabixAdapter/RgfaTabixAdapter.test.ts +45 -1
  158. package/src/RgfaTabixAdapter/RgfaTabixAdapter.ts +111 -276
  159. package/src/RgfaTabixAdapter/configSchema.ts +15 -49
  160. package/src/RgfaTabixAdapter/index.ts +1 -2
  161. package/src/RgfaTabixAdapter/rgfaBed.ts +25 -15
  162. package/src/RgfaTabixAdapter/rgfaCut.ts +139 -0
  163. package/src/RgfaTabixAdapter/test_data/walks2_twopart.GRCh38.walks.bed.gz +0 -0
  164. package/src/RgfaTabixAdapter/test_data/walks2_twopart.GRCh38.walks.bed.gz.tbi +0 -0
  165. package/src/RgfaTabixAdapter/walkFiles.test.ts +33 -0
  166. package/src/RgfaTabixAdapter/walkReader.ts +103 -27
  167. package/src/RgfaTabixAdapter/walkRowRuns.test.ts +53 -0
  168. package/src/RgfaTabixAdapter/walkRowRuns.ts +42 -24
  169. package/src/WalkTabixSyntenyAdapter/WalkTabixSyntenyAdapter.test.ts +37 -6
  170. package/src/WalkTabixSyntenyAdapter/WalkTabixSyntenyAdapter.ts +23 -45
  171. package/src/WalkTabixSyntenyAdapter/configSchema.ts +11 -24
  172. package/src/WalkTabixSyntenyAdapter/index.ts +1 -2
  173. package/src/WalkTabixSyntenyAdapter/walkLanes.ts +35 -43
  174. package/src/adapterImplementing.ts +27 -0
  175. package/src/graphTrackDefaults/index.ts +14 -20
  176. package/src/hoverSync/lgvHover.ts +2 -4
  177. package/src/launchFromGraph/contributors.ts +1 -5
  178. package/src/launchFromGraph/graphMenuItems.ts +3 -4
  179. package/src/launchFromGraph/launchFromGraph.test.ts +0 -1
  180. package/src/launchFromGraph/launchFromGraph.ts +8 -13
  181. package/src/panSNTabix.test.ts +1 -26
  182. package/src/panSNTabix.ts +54 -51
  183. package/src/synteny/lanePairs.ts +8 -0
  184. package/src/synteny/matchFeature.ts +52 -0
  185. package/src/tabixRange.ts +13 -10
  186. package/src/version.ts +1 -1
  187. package/dist/chunks/AddTrackWorkflow-Q6RY23LF.js +0 -2
  188. package/dist/chunks/GbzBaseSyntenyAdapter-TIXR4Y3J.js +0 -2
  189. package/dist/chunks/GbzBaseSyntenyAdapter-TIXR4Y3J.js.map +0 -7
  190. package/dist/chunks/GraphTrackSettingsDialog-TAM6PMXD.js +0 -6
  191. package/dist/chunks/GraphTrackSettingsDialog-TAM6PMXD.js.map +0 -7
  192. package/dist/chunks/MinigraphBubbleAdapter-AGI2UYQR.js +0 -2
  193. package/dist/chunks/MinigraphBubbleAdapter-AGI2UYQR.js.map +0 -7
  194. package/dist/chunks/RgfaTabixAdapter-2OL5X3HF.js +0 -3
  195. package/dist/chunks/RgfaTabixAdapter-2OL5X3HF.js.map +0 -7
  196. package/dist/chunks/WalkTabixSyntenyAdapter-UKFHCFOF.js +0 -2
  197. package/dist/chunks/WalkTabixSyntenyAdapter-UKFHCFOF.js.map +0 -7
  198. package/dist/chunks/chunk-5SFGHDQA.js +0 -2
  199. package/dist/chunks/chunk-5SFGHDQA.js.map +0 -7
  200. package/dist/chunks/chunk-6OPB7FOJ.js +0 -2
  201. package/dist/chunks/chunk-AMFIBQVR.js +0 -2
  202. package/dist/chunks/chunk-AMFIBQVR.js.map +0 -7
  203. package/dist/chunks/chunk-BJMRBVG3.js +0 -2
  204. package/dist/chunks/chunk-BJMRBVG3.js.map +0 -7
  205. package/dist/chunks/chunk-E3WYW7Z6.js +0 -2
  206. package/dist/chunks/chunk-EHCF6AXH.js +0 -2
  207. package/dist/chunks/chunk-EHCF6AXH.js.map +0 -7
  208. package/dist/chunks/chunk-GOFS7BXK.js +0 -3
  209. package/dist/chunks/chunk-GOFS7BXK.js.map +0 -7
  210. package/dist/chunks/chunk-IJQTSJGT.js +0 -4
  211. package/dist/chunks/chunk-IJQTSJGT.js.map +0 -7
  212. package/dist/chunks/chunk-J6NZIAZF.js +0 -2
  213. package/dist/chunks/chunk-J6NZIAZF.js.map +0 -7
  214. package/dist/chunks/chunk-LUTMKRXY.js +0 -2
  215. package/dist/chunks/chunk-LUTMKRXY.js.map +0 -7
  216. package/dist/chunks/chunk-MHPJB22Z.js +0 -2
  217. package/dist/chunks/chunk-MHPJB22Z.js.map +0 -7
  218. package/dist/chunks/chunk-TXI43PEN.js +0 -2
  219. package/dist/chunks/chunk-TXI43PEN.js.map +0 -7
  220. package/dist/chunks/chunk-WRH2EJKX.js +0 -2
  221. package/dist/chunks/chunk-WRH2EJKX.js.map +0 -7
  222. package/dist/chunks/chunk-WX26KTZM.js +0 -2
  223. package/dist/chunks/chunk-WX26KTZM.js.map +0 -7
  224. package/dist/chunks/renderSvg-ST2GBBOC.js +0 -2
  225. package/dist/chunks/renderSvg-ST2GBBOC.js.map +0 -7
  226. package/src/GraphGenomeView/components/WalkRowContextMenu.tsx +0 -105
  227. /package/dist/chunks/{ChooseSamplesDialog-BNVYBGJQ.js.map → ChooseSamplesDialog-JRN4YLBY.js.map} +0 -0
  228. /package/dist/chunks/{ChooseWalksDialog-EN3C6AQA.js.map → ChooseWalksDialog-UXLFZTZJ.js.map} +0 -0
  229. /package/dist/chunks/{GraphGenomeView-Z2WZKEEO.js.map → GraphGenomeView-NJ5XCREB.js.map} +0 -0
  230. /package/dist/chunks/{HighlightColorDialog-EYBKFSJU.js.map → HighlightColorDialog-UK5VDDV6.js.map} +0 -0
  231. /package/dist/chunks/{LinearGraphDisplay-WIBVWRQE.js.map → LinearGraphDisplay-TXTKAACH.js.map} +0 -0
  232. /package/dist/chunks/{TrackWarningsDialog-QT4YEXGD.js.map → TrackWarningsDialog-TRYBOIHX.js.map} +0 -0
  233. /package/dist/chunks/{chunk-AHFQHYJI.js.map → chunk-IBWORBGY.js.map} +0 -0
@@ -0,0 +1,2 @@
1
+ import{b as ct}from"./chunk-MVVXRZXV.js";import{d as Ct,e as Et,f as he}from"./chunk-ZMOMFU2B.js";import{a as ht,b as lt}from"./chunk-OGQ6OQDN.js";import{g as ft}from"./chunk-NDRLCGPC.js";var rA=JBrowseExports["@jbrowse/core/data_adapters/BaseAdapter"],dt=t=>rA!=null&&t in Object(rA)?rA[t]:Object.assign(function(){throw new Error("This JBrowse does not provide '"+t+"' from '@jbrowse/core/data_adapters/BaseAdapter' to plugins: GraphGenomeView was built for a different JBrowse version, so update the plugin or JBrowse")},{jbrowseHostMissing:t});var Fo=dt("BaseFeatureDataAdapter");var ut=dt("cachedSetup");var bo=rA&&rA.__esModule?rA.default:rA;var sA=class extends Error{constructor(e,A,n,o){super(e),this.regionTooLarge=!0,this.name="NodeLimitError",this.limit=A,this.windowBp=n,this.fitsBp=o}},fA="#";function le(t){return t.split(fA)[0]}function de(t){let e=t.split(fA);return e.length>=3?e.slice(2).join(fA):e.length===2?e[1]:t}function NA(t){let e=t.split(fA);return e.length>=3?`${e[0]}${fA}${e[1]}`:void 0}function HA(t,e){return e!==void 0&&(t===e||t.startsWith(e+fA))}var wt=t=>Number.parseFloat(t.toPrecision(3));function mA(t){let e=wt(t/1e6);return e>=1?`${e.toLocaleString("en-US")}Mbp`:t>=1e3?`${wt(t/1e3).toLocaleString("en-US")}Kbp`:`${Math.floor(t)}bp`}var M=t=>(t-(t&1))/2,X=t=>t&1?t-1:t+1;function yA(t,e,A){if(t===".")return A;let n=0,o=!1;for(let i=0;i<=t.length;i++){let r=i<t.length?t.charCodeAt(i):44;if(r===44){let a=o?-n:n,Q=a&1;e.id+=(a-Q)/2,A.push(e.id*2+Q),n=0,o=!1}else r===45?o=!0:n=n*10+(r-48)}return A}function KA(t){return t==="."?[]:t.split(",").map(Number)}function qA(t,e){return t>X(e)?[X(e),X(t)]:[t,e]}function kt(t,e,A){let n,o;for(let i=e;i<t.length;i++){let r=t[i];if(r.startsWith("pv:")||r.startsWith("nx:")){let a=r.lastIndexOf(":"),Q={refName:r[3]==="Z"?r.slice(5,a):A,start:+r.slice(a+1)};r.startsWith("pv:")?n=Q:o=Q}}return{prev:n,next:o}}var ue=class{constructor(){this.handles=[],this.before=[0],this.occurrences=new Map}add(e,A){for(let n=0;n<e.length;n++){let o=e[n],i=this.handles.length;this.handles.push(o),this.before.push(this.before[i]+A[n]);let r=M(o),a=this.occurrences.get(r);a?a.push(i):this.occurrences.set(r,[i])}}bp(e){return this.before[e]}first(e){var A;return(A=this.occurrences.get(M(e)))===null||A===void 0?void 0:A[0]}nearest(e,A){var n;let o;for(let i of(n=this.occurrences.get(M(e)))!==null&&n!==void 0?n:[])(o===void 0||Math.abs(i-A)<=Math.abs(o-A))&&(o=i);return o}reach(e,A,n){var o;let i=this.handles[e]===A,r;for(let a of(o=this.occurrences.get(M(n)))!==null&&o!==void 0?o:[])i&&a>=e&&this.handles[a]===n?(r===void 0||a<r)&&(r=a):!i&&a<=e&&X(this.handles[a])===n&&(r===void 0||a>r)&&(r=a);return r}handleAt(e,A){return A?this.handles[e]:X(this.handles[e])}},q=class extends Error{},we=(t,e)=>e?t.exit===-1?-1:X(t.exit):t.entry,Dt=(t,e)=>e?t.entry===-1?-1:X(t.entry):t.exit,TA=(t,e,A)=>e?X(t.interior[t.interior.length-1-A]):t.interior[A];function ai(t){let e=[];if(t!=="."){let A=0,n=0,o=!1,i=0,r=!1;for(let a=0;a<=t.length;a++){let Q=a<t.length?t.charCodeAt(a):44;if(Q===44){let s=o?-n:n,g=r?i:s,l=g&1;A+=(g-l)/2,e.push(A,l,r?s:0),n=0,o=!1,r=!1}else Q===58?(i=o?-n:n,n=0,o=!1,r=!0):Q===45?o=!0:n=n*10+(Q-48)}}return e}function Nt(t,e,A,n,o,i){let r=n.indexOf(":"),a=A+ +(r<0?n:n.slice(0,r)),Q=r>=0,s=Q?+n.slice(r+1):0,g=C=>{let E=e[C];if(!E)throw new q(`route ${C} is not in the chunk`);return E},l=0;if(o.length>0&&we(g(o[0]),o[1]===1)===-1){if(!i.route(o[0],o[1]===1))return;l=3}let f=A,I=t.first(f);if(I===void 0)throw new q("a walk row starts off its chunk");i.step(f);let c=(C,E)=>{let d=t.handles[I]===f,k=Q?I+(d?E:-E):t.reach(I,f,C);if(k===void 0||k<0||k>=t.handles.length)throw new q("a walk row runs off its chunk");k!==I&&i.stretch(I,k,d),I=k,f=t.handleAt(k,d)};for(;l<o.length;l+=3){let C=o[l],E=o[l+1]===1,d=g(C),k=we(d,E);if(k===-1)throw new q("an open route after the first choice");if(c(k,o[l+2]),!i.route(C,E))return;let u=Dt(d,E);if(u===-1)return;if(f=u,I=t.nearest(f,I),I===void 0)throw new q("a route lands off its chunk");i.step(f)}if(c(a,s),f!==a)throw new q("a walk row misses its last handle")}function gi(t,e,A,n,o){let i=new Int32Array(o),r=new Uint8Array(o),a=0,Q=s=>{if(a>=o)throw new q("a walk row decodes to more steps than it states");i[a]=M(s),r[a++]=s&1};if(Nt(t,e,+A[9],A[10],n,{step:Q,stretch(s,g,l){if(l)for(let f=s+1;f<=g;f++)Q(t.handles[f]);else for(let f=s-1;f>=g;f--)Q(X(t.handles[f]))},route(s,g){let l=e[s];for(let f=0;f<l.interior.length;f++)Q(TA(l,g,f));return!0}}),a!==o)throw new q(`a walk row decodes to ${a} steps, not ${o}`);return{ids:i,rev:r}}function pt(t,e,A,n,o){let i=t.slice(e).find(a=>a.startsWith("SQ:Z:"));if(i===void 0)return;let r=5;for(let a=0;a<A.length;a++){let Q=n[a];o.set(A[a],i.slice(r,r+Q)),r+=Q}}function mt(t,e,A=!1){var n,o,i;let r=new ue,a=new Map,Q=[],s={sequences:new Map,rows:[],nodes:new Map,ends:[],chunk:{path:r,routes:Q,walks:[],lengths:a}},g={id:0},l=t.filter(I=>I[3]==="ref").sort((I,c)=>+I[6]-+c[6]);for(let I of l){let c=I[0],C=yA(I[9],{id:0},[]),E=KA(I[10]),d=+I[6];r.add(C,E),A&&pt(I,11,C.map(M),E,s.sequences);let k=d;for(let u=0;u<C.length;u++){let B=M(C[u]),p=E[u];a.set(B,p),s.nodes.has(B)||s.nodes.set(B,{refName:I[4],start:k,end:k+p,rank:0}),k+=p}s.ends.push({name:I[4],fragStart:+I[5],piece:+I[7],first:C[0],last:C.at(-1)}),(e===void 0||e(I[4]))&&s.rows.push({chunkStart:+I[1],name:I[4],fragStart:+I[5],hapOffset:d,piece:+I[7],n:C.length,steps:{ids:Int32Array.from(C,M),rev:Uint8Array.from(C,u=>u&1)},...kt(I,11,c)})}for(let I of t)if(I[3]==="nodes"){let c=KA(I[4]),C=KA(I[5]),E=0;for(let d=0;d<c.length;d++)E+=c[d],c[d]=E,a.set(E,C[d]);A&&pt(I,6,c,C,s.sequences)}else if(I[3]==="route"){let c=yA(I[4],g,[]),C=yA(I[5],g,[]),E=yA(I[6],g,[]);Q.push({entry:(n=c[0])!==null&&n!==void 0?n:-1,interior:C,exit:(o=E[0])!==null&&o!==void 0?o:-1})}let f=I=>{let c=Q[I];if(!c)throw new q(`route ${I} is not in the chunk`);return c};for(let I of t){if(I[3]!=="walk")continue;let c=ai(I[11]);s.chunk.walks.push({cols:I,choices:c});let C=I[4],E=+I[9],d=I[10],k=d.indexOf(":"),u=E,B=E+ +(k<0?d:d.slice(0,k));if(c.length>0){let p=f(c[0]),w=c[1]===1;we(p,w)===-1&&(u=TA(p,w,0));let h=c.length-3,N=f(c[h]),m=c[h+1]===1;Dt(N,m)===-1&&(B=TA(N,m,N.interior.length-1))}if(s.ends.push({name:C,fragStart:+I[5],piece:+I[7],first:u,last:B}),e===void 0||e(C)){let p=+I[8];for(let w=0;w<c.length;w+=3)for(let h of f(c[w]).interior){let N=M(h);if(!s.nodes.has(N)){let m=(i=a.get(N))!==null&&i!==void 0?i:0;s.nodes.set(N,{refName:C,start:0,end:m,rank:1})}}s.rows.push({chunkStart:+I[1],name:C,fragStart:+I[5],hapOffset:+I[6],piece:+I[7],n:p,steps:gi(r,Q,I,c,p),...kt(I,12,I[0])})}}return s}function yt(t,e,A,n){let o=new Map;for(let{path:i,routes:r,walks:a,lengths:Q}of t){let s=i.handles;for(let C=1;C<s.length;C++)e.has(M(s[C-1]))&&e.has(M(s[C]))&&n(...qA(s[C-1],s[C]));let g=new Uint8Array(r.length);for(let C=0;C<r.length;C++){let{entry:E,interior:d,exit:k}=r[C],u=!1,B=E;for(let p of d){let w=e.has(M(p));u||(u=w),w&&B!==-1&&e.has(M(B))&&n(...qA(B,p)),B=p}B!==-1&&k!==-1&&e.has(M(B))&&e.has(M(k))&&n(...qA(B,k)),g[C]=u?1:0}let l=C=>{var E;return(E=Q.get(M(C)))!==null&&E!==void 0?E:0},f=new Float64Array(r.length).fill(-1),I=C=>(f[C]<0&&(f[C]=r[C].interior.reduce((E,d)=>E+l(d),0)),f[C]),c=new Uint8Array(r.length);for(let{cols:C,choices:E}of a){let d=0;for(let B=0;B<E.length;B+=3){let p=E[B];g[p]&&!c[p]&&d++}if(d===0)continue;let k=C[4],u=+C[6];Nt(i,r,+C[9],C[10],E,{step(B){u+=l(B)},stretch(B,p,w){u+=w?i.bp(p+1)-i.bp(B+1):i.bp(B)-i.bp(p)},route(B,p){if(!g[B]||c[B])return u+=I(B),!0;c[B]=1;let w=r[B];for(let h=0;h<w.interior.length;h++){let N=TA(w,p,h),m=M(N),D=l(N);if(e.has(m)){let y=o.get(m);(!y||k<y.refName||k===y.refName&&u<y.start)&&o.set(m,{refName:k,start:u,end:u+D,rank:1})}u+=D}return d--,d>0}})}}for(let[i,r]of o)A(i,r)}function Ii(t){let e=[];for(let A of t){if(A[3]!=="ref")continue;let n=yA(A[9],{id:0},[]),o=KA(A[10]),i=+A[6];for(let r=0;r<n.length;r++){let a=o[r];e.push({id:M(n[r]),refName:A[4],start:i,end:i+a,rank:0}),i+=a}}return e}function xt(t){let e=new Map;for(let n of t){let o=`${n.name} ${n.fragStart}`,i=e.get(o);i||(i=new Map,e.set(o,i)),i.set(n.piece,n)}let A=[];for(let n of e.values())for(let[o,i]of n){let r=n.get(o+1);r&&A.push(qA(i.last,r.first))}return A}function ke(t,e){let A=new RegExp(`(?:^|\\t)${e}:i:(\\d+)`).exec(t);return A?+A[1]:void 0}function pe(t){var e,A,n;let o={references:[],haplotypes:[]};for(let i of t){let[r,a=""]=i.split(" ");r==="#reference"?o.references.push(a):r==="#haplotype"?o.haplotypes.push(a):((e=o.format)!==null&&e!==void 0||(o.format=ke(i,"format")),(A=o.chunk)!==null&&A!==void 0||(o.chunk=ke(i,"chunk")),(n=o.maxNode)!==null&&n!==void 0||(o.maxNode=ke(i,"maxnode")))}return o}function De(t,e){return t===void 0?1:Math.max(1,Math.ceil(t/e))}function ZA(t,e,A=1){return Math.max(0,(Math.floor(t/e)-A)*e)}function bt(t,e){return t===void 0||t.length===0?void 0:A=>HA(A,e)||t.some(n=>HA(A,n))}function Qi(t,e){var A;return bt(t,(A=NA(e))!==null&&A!==void 0?A:e)}function OA(t){let e=new Map;for(let n of t){let o=`${n.name} ${n.fragStart}`,i=e.get(o);i?i.push(n):e.set(o,[n])}let A=[];for(let n of e.values()){n.sort((i,r)=>i.piece-r.piece);let o=0;for(let i=1;i<=n.length;i++)(i===n.length||n[i].piece!==n[i-1].piece+1)&&(A.push(Bi(n.slice(o,i))),o=i)}return A}function Bi(t){let e=t.reduce((r,a)=>r+a.n,0),A=new Int32Array(e),n=new Uint8Array(e),o=0;for(let r of t)A.set(r.steps.ids,o),n.set(r.steps.rev,o),o+=r.n;let i=t[0];return{name:i.name,hapOffset:i.hapOffset,ids:A,rev:n,prev:i.prev,next:t.at(-1).next}}function XA(t,e,A){let n=C=>{var E;return((E=e.get(C))===null||E===void 0?void 0:E.onWindow)===!0},o=C=>{let E=e.get(C);return E?.rank===0?E:void 0},i=new Map,r=C=>{C&&i.set(`${C.refName}:${C.start}`,C)},a=(C,E,d)=>{let{ids:k}=C,u=E+d;for(;u>=0&&u<k.length&&o(k[u])===void 0;)u+=d;if(u<0||u>=k.length)return r(d<0?C.prev:C.next),u-d;let B=o(k[E]),p=o(k[u]);return p.refName!==A?u-d:u===E+d&&(p.start===B.end||p.end===B.start)?E:u},Q=1/0,s=-1/0,g=[];for(let C of t){let{ids:E}=C,d=-1,k=-1;for(let u=0;u<E.length;u++)n(E[u])&&(d<0&&(d=u),k=u);if(d>=0){if(C.name!==A){d=a(C,d,-1),k=a(C,k,1);for(let u of[d,k]){let B=o(E[u]);B&&(Q=Math.min(Q,B.start),s=Math.max(s,B.end))}}g.push({run:C,first:d,last:k})}}let l=C=>{let E=o(C);return n(C)||E?.refName===A&&E.end>Q&&E.start<s},f=new Set;for(let[C,E]of e)E.onWindow&&f.add(C);for(let C of g){let{ids:E}=C.run;if(C.run.name===A){for(;C.first>0&&l(E[C.first-1]);)C.first--;for(;C.last<E.length-1&&l(E[C.last+1]);)C.last++}for(let d=C.first;d<=C.last;d++)f.add(E[d])}let I=C=>{let E=e.get(C);return E===void 0?0:E.end-E.start},c=[];for(let{run:C,first:E,last:d}of g){let{ids:k,rev:u}=C,B=E,p=d;for(;B>0&&f.has(k[B-1]);)B--;for(;p<k.length-1&&f.has(k[p+1]);)p++;let w=C.hapOffset;for(let N=0;N<B;N++)w+=I(k[N]);let h=w;for(let N=B;N<=p;N++)h+=I(k[N]);c.push({name:C.name,hapStart:w,hapEnd:h,ids:k.subarray(B,p+1),rev:u.subarray(B,p+1)})}return{kept:f,fragments:c,open:[...i.values()]}}var xA=class{constructor(e){this.nodes=new Map,this.sequences=new Map,this.links=[],this.chunks=[],this.window=e}placeNode(e,A){if(this.nodes.has(e))return;let{window:n}=this;this.nodes.set(e,{...A,onWindow:A.rank===0&&A.refName===n.refName&&A.end>n.start-n.context&&A.start<n.end+n.context})}addLinkEnds(e,A){this.links.push(e,A)}addChunk(e){this.chunks.push(e)}addSequences(e){if(this.window.sequences)for(let[A,n]of e)this.sequences.set(A,n)}tables(e,A){this.chunks.length>0&&yt(this.chunks,e,(w,h)=>{let N=this.nodes.get(w);N&&this.nodes.set(w,{...N,...h})},(w,h)=>{this.links.push(w,h)});let n=[];for(let w of e){let h=this.nodes.get(w);h&&n.push({...h,id:w})}n.sort((w,h)=>w.refName<h.refName?-1:w.refName>h.refName?1:w.start-h.start||w.id-h.id);let o=new Map,i=[],r=[],a=new Map,Q=new Int32Array(n.length),s=new Int32Array(n.length),g=new Float64Array(n.length),l=new Int32Array(n.length);n.forEach(({id:w,refName:h,start:N,end:m,rank:D},y)=>{o.set(w,y),i.push(String(w));let x=a.get(h);x===void 0&&(x=r.length,a.set(h,x),r.push(h)),Q[y]=m-N,s[y]=x,g[y]=N,l[y]=D});let f=w=>{let h=o.get(w);return h===void 0&&(h=i.length,o.set(w,h),i.push(String(w))),h},I=new Map;for(let w=0;w<this.links.length;w+=2){let h=this.links[w],N=this.links[w+1],m=Math.floor(h/2),D=Math.floor(N/2);e.has(m)&&e.has(D)&&I.set(`${m} ${h%2?"-":"+"} ${D} ${N%2?"-":"+"}`,w)}let c=[...I.keys()].sort(),C=new Int32Array(c.length),E=new Int32Array(c.length),d=new Uint8Array(c.length);c.forEach((w,h)=>{let N=I.get(w),m=this.links[N],D=this.links[N+1];C[h]=f(Math.floor(m/2)),E[h]=f(Math.floor(D/2)),d[h]=m%2|D%2<<1});let k=this.referenceFirst(A),u=new Int32Array(k.length+1);k.forEach(({ids:w},h)=>{u[h+1]=u[h]+w.length});let B=new Int32Array(u[k.length]),p=new Uint8Array(B.length);return k.forEach(({ids:w,rev:h},N)=>{let m=u[N];for(let D=0;D<w.length;D++)B[m+D]=f(w[D]);p.set(h,m)}),{nodes:{names:i,lengths:Q,refs:s,starts:g,ranks:l,refNames:r},links:{from:C,to:E,strands:d},walks:{names:k.map(w=>w.name),starts:Float64Array.from(k,w=>w.hapStart),ends:Float64Array.from(k,w=>w.hapEnd),offsets:u,steps:B,reversed:p}}}referenceFirst(e){let{refName:A}=this.window;return[...e].sort((n,o)=>+(o.name===A)-+(n.name===A)||(n.name<o.name?-1:n.name>o.name?1:n.hapStart-o.hapStart))}},Ne={steps:"the step budget",bytes:"a byte budget of"};function me(t,e,A,n,o,i,r=Ne){var a;let Q=0,s=new Map,g=new Set;for(let E of t)Q+=E.n,s.set(E.chunkStart,((a=s.get(E.chunkStart))!==null&&a!==void 0?a:0)+E.n),g.add(E.name);let l=e*A;if(Q<=l)return;let f=n.end-n.start,I=0,c=0;for(let E of[...s.keys()].sort((d,k)=>d-k)){if(I+=s.get(E),I>l)break;c=Math.max(c,E+o-n.start)}let C=!i&&g.size>2&&2*Q/g.size<=l;return new sA(c>0?`Zoom in to about ${mA(c)}${C?", or choose fewer haplotypes,":""} to see the graph`:`Too many haplotype steps here to draw ${i?"these haplotypes":"every haplotype"} (${I.toLocaleString()} steps read, over ${A} \xD7 ${r.steps} of ${e.toLocaleString()}); choose fewer haplotypes`,l,f,Math.max(c,1))}function ye(t,e,A,n){let o=t.reduce((a,Q)=>a+Q.ids.length,0);if(o<=e)return;let i=A.end-A.start,r=Math.max(1,Math.floor(i*e/o));return new sA(`Zoom in to about ${mA(r)}${n?"":", or choose fewer haplotypes,"} to see the graph`,e,i,r)}async function xe(t,e,A,n,o=Ne){let i=await t(A.end);if(i<=e)return;let r=0,a;for(let s=Math.floor(A.start/n)*n;s<A.end;s+=n){let g=await t(s+1);if(a??(a=g),g>e)break;r=s+n-A.start}let Q=A.end-A.start;return new sA(r>0?`Zoom in to about ${mA(r)} to see the graph`:`Too much graph here to fetch (${Ft(a??i)} against ${o.bytes} ${Ft(e)})`,e,Q,Math.max(r,1))}var Ft=t=>`${(t/1e6).toFixed(1)} MB`;function Fe(t,e){return`${t} ${e}`}function FA(t){let e=new Map;for(let A of t){e.set(A,A);let n=le(A);if(n!==A){let o=de(A);e.set(Fe(n,o),A);let i=NA(A);i!==void 0&&e.set(Fe(i,o),A)}}return e}function bA(t,e,A){var n;return(n=t.get(Fe(e,A)))!==null&&n!==void 0?n:t.get(A)}var Ci=8,Ei=3,ci=4,fi=1e3,hi={stepBudget:4e6,byteBudget:8e6},zA=class extends Error{constructor(){super(...arguments),this.name="WalkFormatError"}};function hA(t,e,A){if(!Number.isFinite(e)||!Number.isFinite(A))throw new Error(`${t}:${e}-${A} is not a finite range to query the graph's index for`)}function St(t,e){return e?(e.throwIfAborted(),new Promise((A,n)=>{let o=()=>{n(e.reason instanceof Error?e.reason:new Error(String(e.reason)))};e.addEventListener("abort",o,{once:!0}),t.then(A,n).finally(()=>{e.removeEventListener("abort",o)})})):t}var be=class{constructor(e){this.walks=e}header(e={}){if(!this.headerRead){let A=this.walks.getHeaderLines().then(n=>{var o;let i=pe(n);if(i.format!==2)throw new zA("This walk file is format 1, from gfa-to-tabix 0.12 or earlier; rebuild it with gfa-to-tabix 1.0 or later");let r=(o=i.chunk)!==null&&o!==void 0?o:65536;return{...i,chunk:r,lookback:De(i.maxNode,r)}});A.catch(()=>{this.headerRead===A&&(this.headerRead=void 0)}),this.headerRead=A}return St(this.headerRead,e.signal)}referenceSequences(e={}){return this.walks.getReferenceSequenceNames(e)}async sequenceFor(e,A,n={}){if(!this.lookupRead){let i=this.walks.getReferenceSequenceNames().then(FA);i.catch(()=>{this.lookupRead===i&&(this.lookupRead=void 0)}),this.lookupRead=i}let o=await St(this.lookupRead,n.signal);return bA(o,e,A)}async queryStart(e,A={}){let{chunk:n,lookback:o}=await this.header(A);return ZA(e,n,o)}async cut(e,A,n={}){var o;let{signal:i,keep:r,context:a=fi,stepBudget:Q=1/0,byteBudget:s=1/0,links:g=!0}=n,{chunk:l,lookback:f}=await this.header({signal:i}),I=ZA(A.start,l,f),c=(o=this.walks.bytesForRegions)===null||o===void 0?void 0:o.bind(this.walks),C=Number.isFinite(s)&&c!==void 0,E=async y=>C?c(y.map(x=>({refName:e,...x})),{signal:i}):0,d=C?await xe(async y=>(hA(e,I,y),E([{start:I,end:y}])),s,A,l,n.budgetNames):void 0;if(d)throw d;let k=new AbortController,u=()=>{k.abort(i?.reason)};i?.throwIfAborted(),i?.addEventListener("abort",u,{once:!0});let B=[],p,w=new xA({refName:e,start:A.start,end:A.end,context:a,sequences:n.sequences}),h=new Set,N=[],m=async(y,x)=>{hA(e,y,x);let S=new Map;await this.walks.getLines(e,y,x,{signal:k.signal,lineCallback:b=>{let L=b.split(" "),G=+L[1],J=S.get(G);J?J.push(L):S.set(G,[L])}});for(let[b,L]of S){if(h.has(b))continue;h.add(b);let G=mt(L,r,n.sequences);B.push(...G.rows);for(let[J,iA]of G.nodes)w.placeNode(J,iA);w.addSequences(G.sequences),w.addChunk(G.chunk),N.push(...G.ends)}if(g)for(let[b,L]of xt(N))w.addLinkEnds(b,L)};try{await m(I,A.end);let y=me(B,Q,Ci,A,l,r!==void 0,n.budgetNames);if(y)throw y;let x=I,S=Math.floor((A.end-1)/l)*l,b=ci*l,[L,G]=[x-b,S+b];p=XA(OA(B),w.nodes,e);let J=await E([{start:I,end:A.end}]);for(let iA=0;iA<Ei;iA++){let O=p.open.filter(R=>R.refName===e&&R.start>=L&&R.start<=G).map(R=>R.start),oA=[{start:Math.min(x,...O),end:x},{start:S+l,end:Math.max(S,...O)+1}].filter(R=>R.end>R.start);if(oA.length===0||(J+=await E(oA),J>s))break;x=Math.min(x,...O),S=Math.max(S,...O),await Promise.all(oA.map(({start:R,end:cA})=>m(R,cA))),p=XA(OA(B),w.nodes,e)}}catch(y){throw k.abort(),y}finally{i?.removeEventListener("abort",u)}let D=ye(p.fragments,Q,A,r!==void 0);if(D)throw D;return{graph:w,...p}}};async function Po(t,e,A,n,o){return hA(e,A,n),t.getLines(e,A,n,o)}async function Jt(t,e,A){for(let{refName:n,start:o,end:i}of e)hA(n,o,i);return t.bytesForRegions(e,A)}var Se=0;var Je=2;var SA=4;var $=0,JA=1,vt=2;var Rt=-5;function li(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Gt(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 n in A)li(A,n)&&(t[n]=A[n])}}return t}function PA(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)}var vA={arraySet:function(t,e,A,n,o){if(e.subarray&&t.subarray){t.set(e.subarray(A,A+n),o);return}for(var i=0;i<n;i++)t[o+i]=e[A+i]},flattenChunks:function(t){var e,A,n,o,i,r;for(n=0,e=0,A=t.length;e<A;e++)n+=t[e].length;for(r=new Uint8Array(n),o=0,e=0,A=t.length;e<A;e++)i=t[e],r.set(i,o),o+=i.length;return r},Buf8:function(t){return new Uint8Array(t)},Buf16:function(t){return new Uint16Array(t)},Buf32:function(t){return new Int32Array(t)}},RA={arraySet:function(t,e,A,n,o){for(var i=0;i<n;i++)t[o+i]=e[A+i]},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)}},lA=()=>{let t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";return lA=()=>t,t},T=(t,e,A,n,o)=>(T=lA()?vA.arraySet:RA.arraySet,T(t,e,A,n,o)),WA=t=>(WA=lA()?vA.flattenChunks:RA.flattenChunks,WA(t)),z=t=>(z=lA()?vA.Buf8:RA.Buf8,z(t)),AA=t=>(AA=lA()?vA.Buf16:RA.Buf16,AA(t)),aA=t=>(aA=lA()?vA.Buf32:RA.Buf32,aA(t));var Mt=function(){let t=!0;try{String.fromCharCode.apply(null,[0])}catch{t=!1}return Mt=()=>t,t},Lt=function(){let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{t=!1}return Lt=()=>t,t},ve=function(t){for(var e=z(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,ve=n=>e[n],e[t]};function Re(t){var e,A,n,o,i,r=t.length,a=0;for(o=0;o<r;o++)A=t.charCodeAt(o),(A&64512)===55296&&o+1<r&&(n=t.charCodeAt(o+1),(n&64512)===56320&&(A=65536+(A-55296<<10)+(n-56320),o++)),a+=A<128?1:A<2048?2:A<65536?3:4;for(e=new Uint8Array(a),i=0,o=0;i<a;o++)A=t.charCodeAt(o),(A&64512)===55296&&o+1<r&&(n=t.charCodeAt(o+1),(n&64512)===56320&&(A=65536+(A-55296<<10)+(n-56320),o++)),A<128?e[i++]=A:A<2048?(e[i++]=192|A>>>6,e[i++]=128|A&63):A<65536?(e[i++]=224|A>>>12,e[i++]=128|A>>>6&63,e[i++]=128|A&63):(e[i++]=240|A>>>18,e[i++]=128|A>>>12&63,e[i++]=128|A>>>6&63,e[i++]=128|A&63);return e}function di(t,e){if(e<65534&&(t.subarray&&Lt()||!t.subarray&&Mt()))return String.fromCharCode.apply(null,PA(t,e));for(var A="",n=0;n<e;n++)A+=String.fromCharCode(t[n]);return A}function _t(t){for(var e=new Uint8Array(t.length),A=0,n=e.length;A<n;A++)e[A]=t.charCodeAt(A);return e}function Ut(t,e){var A,n,o,i,r=e||t.length,a=new Array(r*2);for(n=0,A=0;A<r;){if(o=t[A++],o<128){a[n++]=o;continue}if(i=ve(o),i>4){a[n++]=65533,A+=i-1;continue}for(o&=i===2?31:i===3?15:7;i>1&&A<r;)o=o<<6|t[A++]&63,i--;if(i>1){a[n++]=65533;continue}o<65536?a[n++]=o:(o-=65536,a[n++]=55296|o>>10&1023,a[n++]=56320|o&1023)}return di(a,n)}function Yt(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+ve(t[A])>e?A:e}function Ge(){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 GA(t,e,A,n){for(var o=t&65535|0,i=t>>>16&65535|0,r=0;A!==0;){r=A>2e3?2e3:A,A-=r;do o=o+e[n++]|0,i=i+o|0;while(--r);o%=65521,i%=65521}return o|i<<16|0}function ui(){for(var t,e=[],A=0;A<256;A++){t=A;for(var n=0;n<8;n++)t=t&1?3988292384^t>>>1:t>>>1;e[A]=t}return e}var Ht=function(){let t=ui();return Ht=()=>t,t};function U(t,e,A,n){var o=Ht(),i=n+A;t^=-1;for(var r=n;r<i;r++)t=t>>>8^o[(t^e[r])&255];return t^-1}var jA=30,wi=12;function Me(t,e){var A,n,o,i,r,a,Q,s,g,l,f,I,c,C,E,d,k,u,B,p,w,h,N,m,D;A=t.state,n=t.next_in,m=t.input,o=n+(t.avail_in-5),i=t.next_out,D=t.output,r=i-(e-t.avail_out),a=i+(t.avail_out-257),Q=A.dmax,s=A.wsize,g=A.whave,l=A.wnext,f=A.window,I=A.hold,c=A.bits,C=A.lencode,E=A.distcode,d=(1<<A.lenbits)-1,k=(1<<A.distbits)-1;A:do{c<15&&(I+=m[n++]<<c,c+=8,I+=m[n++]<<c,c+=8),u=C[I&d];e:for(;;){if(B=u>>>24,I>>>=B,c-=B,B=u>>>16&255,B===0)D[i++]=u&65535;else if(B&16){p=u&65535,B&=15,B&&(c<B&&(I+=m[n++]<<c,c+=8),p+=I&(1<<B)-1,I>>>=B,c-=B),c<15&&(I+=m[n++]<<c,c+=8,I+=m[n++]<<c,c+=8),u=E[I&k];t:for(;;){if(B=u>>>24,I>>>=B,c-=B,B=u>>>16&255,B&16){if(w=u&65535,B&=15,c<B&&(I+=m[n++]<<c,c+=8,c<B&&(I+=m[n++]<<c,c+=8)),w+=I&(1<<B)-1,w>Q){t.msg="invalid distance too far back",A.mode=jA;break A}if(I>>>=B,c-=B,B=i-r,w>B){if(B=w-B,B>g&&A.sane){t.msg="invalid distance too far back",A.mode=jA;break A}if(h=0,N=f,l===0){if(h+=s-B,B<p){p-=B;do D[i++]=f[h++];while(--B);h=i-w,N=D}}else if(l<B){if(h+=s+l-B,B-=l,B<p){p-=B;do D[i++]=f[h++];while(--B);if(h=0,l<p){B=l,p-=B;do D[i++]=f[h++];while(--B);h=i-w,N=D}}}else if(h+=l-B,B<p){p-=B;do D[i++]=f[h++];while(--B);h=i-w,N=D}for(;p>2;)D[i++]=N[h++],D[i++]=N[h++],D[i++]=N[h++],p-=3;p&&(D[i++]=N[h++],p>1&&(D[i++]=N[h++]))}else{h=i-w;do D[i++]=D[h++],D[i++]=D[h++],D[i++]=D[h++],p-=3;while(p>2);p&&(D[i++]=D[h++],p>1&&(D[i++]=D[h++]))}}else if((B&64)===0){u=E[(u&65535)+(I&(1<<B)-1)];continue t}else{t.msg="invalid distance code",A.mode=jA;break A}break}}else if((B&64)===0){u=C[(u&65535)+(I&(1<<B)-1)];continue e}else if(B&32){A.mode=wi;break A}else{t.msg="invalid literal/length code",A.mode=jA;break A}break}}while(n<o&&i<a);p=c>>3,n-=p,c-=p<<3,I&=(1<<c)-1,t.next_in=n,t.next_out=i,t.avail_in=n<o?5+(o-n):5-(n-o),t.avail_out=i<a?257+(a-i):257-(i-a),A.hold=I,A.bits=c}var dA=15,Kt=852,qt=592,Tt=0,Le=1,Zt=2,ki=[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],pi=[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],Di=[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],Ni=[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 gA(t,e,A,n,o,i,r,a){var Q=a.bits,s=0,g=0,l=0,f=0,I=0,c=0,C=0,E=0,d=0,k=0,u,B,p,w,h,N=null,m=0,D,y=AA(dA+1),x=AA(dA+1),S=null,b=0,L,G,J;for(s=0;s<=dA;s++)y[s]=0;for(g=0;g<n;g++)y[e[A+g]]++;for(I=Q,f=dA;f>=1&&y[f]===0;f--);if(I>f&&(I=f),f===0)return o[i++]=1<<24|64<<16|0,o[i++]=1<<24|64<<16|0,a.bits=1,0;for(l=1;l<f&&y[l]===0;l++);for(I<l&&(I=l),E=1,s=1;s<=dA;s++)if(E<<=1,E-=y[s],E<0)return-1;if(E>0&&(t===Tt||f!==1))return-1;for(x[1]=0,s=1;s<dA;s++)x[s+1]=x[s]+y[s];for(g=0;g<n;g++)e[A+g]!==0&&(r[x[e[A+g]]++]=g);if(t===Tt?(N=S=r,D=19):t===Le?(N=ki,m-=257,S=pi,b-=257,D=256):(N=Di,S=Ni,D=-1),k=0,g=0,s=l,h=i,c=I,C=0,p=-1,d=1<<I,w=d-1,t===Le&&d>Kt||t===Zt&&d>qt)return 1;for(;;){L=s-C,r[g]<D?(G=0,J=r[g]):r[g]>D?(G=S[b+r[g]],J=N[m+r[g]]):(G=96,J=0),u=1<<s-C,B=1<<c,l=B;do B-=u,o[h+(k>>C)+B]=L<<24|G<<16|J|0;while(B!==0);for(u=1<<s-1;k&u;)u>>=1;if(u!==0?(k&=u-1,k+=u):k=0,g++,--y[s]===0){if(s===f)break;s=e[A+r[g]]}if(s>I&&(k&w)!==p){for(C===0&&(C=I),h+=l,c=s-C,E=1<<c;c+C<f&&(E-=y[c+C],!(E<=0));)c++,E<<=1;if(d+=1<<c,t===Le&&d>Kt||t===Zt&&d>qt)return 1;p=k&w,o[p]=I<<24|c<<16|h-i|0}}return k!==0&&(o[h+k]=s-C<<24|64<<16|0),a.bits=I,0}var mi=0,ln=1,dn=2,Ot=4,yi=5,VA=6,IA=0,xi=1,Fi=2,Y=-2,un=-3,qe=-4,bi=-5,Xt=8,wn=1,zt=2,Wt=3,Pt=4,jt=5,Vt=6,$t=7,An=8,en=9,tn=10,ee=11,W=12,_e=13,nn=14,Ue=15,on=16,rn=17,sn=18,an=19,$A=20,Ae=21,gn=22,In=23,Qn=24,Bn=25,Cn=26,Ye=27,En=28,cn=29,v=30,Te=31,Si=32,Ji=852,vi=592;function fn(t){return(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24)}function Ri(){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=AA(320),this.work=AA(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Gi(t){var e;return!t||!t.state?Y:(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=wn,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=aA(Ji),e.distcode=e.distdyn=aA(vi),e.sane=1,e.back=-1,IA)}function Mi(t){var e;return!t||!t.state?Y:(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,Gi(t))}function Li(t,e){var A,n;return!t||!t.state||(n=t.state,e<0?(A=0,e=-e):(A=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15))?Y:(n.window!==null&&n.wbits!==e&&(n.window=null),n.wrap=A,n.wbits=e,Mi(t))}function kn(t,e){var A,n;return t?(n=new Ri,t.state=n,n.window=null,A=Li(t,e),A!==IA&&(t.state=null),A):Y}var hn=!0,He,Ke;function _i(t){if(hn){var e;for(He=aA(512),Ke=aA(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(gA(ln,t.lens,0,288,He,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;gA(dn,t.lens,0,32,Ke,0,t.work,{bits:5}),hn=!1}t.lencode=He,t.lenbits=9,t.distcode=Ke,t.distbits=5}function pn(t,e,A,n){var o,i=t.state;return i.window===null&&(i.wsize=1<<i.wbits,i.wnext=0,i.whave=0,i.window=z(i.wsize)),n>=i.wsize?(T(i.window,e,A-i.wsize,i.wsize,0),i.wnext=0,i.whave=i.wsize):(o=i.wsize-i.wnext,o>n&&(o=n),T(i.window,e,A-n,o,i.wnext),n-=o,n?(T(i.window,e,A-n,n,0),i.wnext=n,i.whave=i.wsize):(i.wnext+=o,i.wnext===i.wsize&&(i.wnext=0),i.whave<i.wsize&&(i.whave+=o))),0}function Dn(t,e){var A,n,o,i,r,a,Q,s,g,l,f,I,c,C,E=0,d,k,u,B,p,w,h,N,m=z(4),D,y,x=[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 Y;A=t.state,A.mode===W&&(A.mode=_e),r=t.next_out,o=t.output,Q=t.avail_out,i=t.next_in,n=t.input,a=t.avail_in,s=A.hold,g=A.bits,l=a,f=Q,N=IA;A:for(;;)switch(A.mode){case wn:if(A.wrap===0){A.mode=_e;break}for(;g<16;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if(A.wrap&2&&s===35615){A.check=0,m[0]=s&255,m[1]=s>>>8&255,A.check=U(A.check,m,2,0),s=0,g=0,A.mode=zt;break}if(A.flags=0,A.head&&(A.head.done=!1),!(A.wrap&1)||(((s&255)<<8)+(s>>8))%31){t.msg="incorrect header check",A.mode=v;break}if((s&15)!==Xt){t.msg="unknown compression method",A.mode=v;break}if(s>>>=4,g-=4,h=(s&15)+8,A.wbits===0)A.wbits=h;else if(h>A.wbits){t.msg="invalid window size",A.mode=v;break}A.dmax=1<<h,t.adler=A.check=1,A.mode=s&512?tn:W,s=0,g=0;break;case zt:for(;g<16;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if(A.flags=s,(A.flags&255)!==Xt){t.msg="unknown compression method",A.mode=v;break}if(A.flags&57344){t.msg="unknown header flags set",A.mode=v;break}A.head&&(A.head.text=s>>8&1),A.flags&512&&(m[0]=s&255,m[1]=s>>>8&255,A.check=U(A.check,m,2,0)),s=0,g=0,A.mode=Wt;case Wt:for(;g<32;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}A.head&&(A.head.time=s),A.flags&512&&(m[0]=s&255,m[1]=s>>>8&255,m[2]=s>>>16&255,m[3]=s>>>24&255,A.check=U(A.check,m,4,0)),s=0,g=0,A.mode=Pt;case Pt:for(;g<16;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}A.head&&(A.head.xflags=s&255,A.head.os=s>>8),A.flags&512&&(m[0]=s&255,m[1]=s>>>8&255,A.check=U(A.check,m,2,0)),s=0,g=0,A.mode=jt;case jt:if(A.flags&1024){for(;g<16;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}A.length=s,A.head&&(A.head.extra_len=s),A.flags&512&&(m[0]=s&255,m[1]=s>>>8&255,A.check=U(A.check,m,2,0)),s=0,g=0}else A.head&&(A.head.extra=null);A.mode=Vt;case Vt:if(A.flags&1024&&(I=A.length,I>a&&(I=a),I&&(A.head&&(h=A.head.extra_len-A.length,A.head.extra||(A.head.extra=new Array(A.head.extra_len)),T(A.head.extra,n,i,I,h)),A.flags&512&&(A.check=U(A.check,n,I,i)),a-=I,i+=I,A.length-=I),A.length))break A;A.length=0,A.mode=$t;case $t:if(A.flags&2048){if(a===0)break A;I=0;do h=n[i+I++],A.head&&h&&A.length<65536&&(A.head.name+=String.fromCharCode(h));while(h&&I<a);if(A.flags&512&&(A.check=U(A.check,n,I,i)),a-=I,i+=I,h)break A}else A.head&&(A.head.name=null);A.length=0,A.mode=An;case An:if(A.flags&4096){if(a===0)break A;I=0;do h=n[i+I++],A.head&&h&&A.length<65536&&(A.head.comment+=String.fromCharCode(h));while(h&&I<a);if(A.flags&512&&(A.check=U(A.check,n,I,i)),a-=I,i+=I,h)break A}else A.head&&(A.head.comment=null);A.mode=en;case en:if(A.flags&512){for(;g<16;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if(s!==(A.check&65535)){t.msg="header crc mismatch",A.mode=v;break}s=0,g=0}A.head&&(A.head.hcrc=A.flags>>9&1,A.head.done=!0),t.adler=A.check=0,A.mode=W;break;case tn:for(;g<32;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}t.adler=A.check=fn(s),s=0,g=0,A.mode=ee;case ee:if(A.havedict===0)return t.next_out=r,t.avail_out=Q,t.next_in=i,t.avail_in=a,A.hold=s,A.bits=g,Fi;t.adler=A.check=1,A.mode=W;case W:if(e===yi||e===VA)break A;case _e:if(A.last){s>>>=g&7,g-=g&7,A.mode=Ye;break}for(;g<3;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}switch(A.last=s&1,s>>>=1,g-=1,s&3){case 0:A.mode=nn;break;case 1:if(_i(A),A.mode=$A,e===VA){s>>>=2,g-=2;break A}break;case 2:A.mode=rn;break;case 3:t.msg="invalid block type",A.mode=v}s>>>=2,g-=2;break;case nn:for(s>>>=g&7,g-=g&7;g<32;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if((s&65535)!==(s>>>16^65535)){t.msg="invalid stored block lengths",A.mode=v;break}if(A.length=s&65535,s=0,g=0,A.mode=Ue,e===VA)break A;case Ue:A.mode=on;case on:if(I=A.length,I){if(I>a&&(I=a),I>Q&&(I=Q),I===0)break A;T(o,n,i,I,r),a-=I,i+=I,Q-=I,r+=I,A.length-=I;break}A.mode=W;break;case rn:for(;g<14;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if(A.nlen=(s&31)+257,s>>>=5,g-=5,A.ndist=(s&31)+1,s>>>=5,g-=5,A.ncode=(s&15)+4,s>>>=4,g-=4,A.nlen>286||A.ndist>30){t.msg="too many length or distance symbols",A.mode=v;break}A.have=0,A.mode=sn;case sn:for(;A.have<A.ncode;){for(;g<3;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}A.lens[x[A.have++]]=s&7,s>>>=3,g-=3}for(;A.have<19;)A.lens[x[A.have++]]=0;if(A.lencode=A.lendyn,A.lenbits=7,D={bits:A.lenbits},N=gA(mi,A.lens,0,19,A.lencode,0,A.work,D),A.lenbits=D.bits,N){t.msg="invalid code lengths set",A.mode=v;break}A.have=0,A.mode=an;case an:for(;A.have<A.nlen+A.ndist;){for(;E=A.lencode[s&(1<<A.lenbits)-1],d=E>>>24,k=E>>>16&255,u=E&65535,!(d<=g);){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if(u<16)s>>>=d,g-=d,A.lens[A.have++]=u;else{if(u===16){for(y=d+2;g<y;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if(s>>>=d,g-=d,A.have===0){t.msg="invalid bit length repeat",A.mode=v;break}h=A.lens[A.have-1],I=3+(s&3),s>>>=2,g-=2}else if(u===17){for(y=d+3;g<y;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}s>>>=d,g-=d,h=0,I=3+(s&7),s>>>=3,g-=3}else{for(y=d+7;g<y;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}s>>>=d,g-=d,h=0,I=11+(s&127),s>>>=7,g-=7}if(A.have+I>A.nlen+A.ndist){t.msg="invalid bit length repeat",A.mode=v;break}for(;I--;)A.lens[A.have++]=h}}if(A.mode===v)break;if(A.lens[256]===0){t.msg="invalid code -- missing end-of-block",A.mode=v;break}if(A.lenbits=9,D={bits:A.lenbits},N=gA(ln,A.lens,0,A.nlen,A.lencode,0,A.work,D),A.lenbits=D.bits,N){t.msg="invalid literal/lengths set",A.mode=v;break}if(A.distbits=6,A.distcode=A.distdyn,D={bits:A.distbits},N=gA(dn,A.lens,A.nlen,A.ndist,A.distcode,0,A.work,D),A.distbits=D.bits,N){t.msg="invalid distances set",A.mode=v;break}if(A.mode=$A,e===VA)break A;case $A:A.mode=Ae;case Ae:if(a>=6&&Q>=258){t.next_out=r,t.avail_out=Q,t.next_in=i,t.avail_in=a,A.hold=s,A.bits=g,Me(t,f),r=t.next_out,o=t.output,Q=t.avail_out,i=t.next_in,n=t.input,a=t.avail_in,s=A.hold,g=A.bits,A.mode===W&&(A.back=-1);break}for(A.back=0;E=A.lencode[s&(1<<A.lenbits)-1],d=E>>>24,k=E>>>16&255,u=E&65535,!(d<=g);){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if(k&&(k&240)===0){for(B=d,p=k,w=u;E=A.lencode[w+((s&(1<<B+p)-1)>>B)],d=E>>>24,k=E>>>16&255,u=E&65535,!(B+d<=g);){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}s>>>=B,g-=B,A.back+=B}if(s>>>=d,g-=d,A.back+=d,A.length=u,k===0){A.mode=Cn;break}if(k&32){A.back=-1,A.mode=W;break}if(k&64){t.msg="invalid literal/length code",A.mode=v;break}A.extra=k&15,A.mode=gn;case gn:if(A.extra){for(y=A.extra;g<y;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}A.length+=s&(1<<A.extra)-1,s>>>=A.extra,g-=A.extra,A.back+=A.extra}A.was=A.length,A.mode=In;case In:for(;E=A.distcode[s&(1<<A.distbits)-1],d=E>>>24,k=E>>>16&255,u=E&65535,!(d<=g);){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if((k&240)===0){for(B=d,p=k,w=u;E=A.distcode[w+((s&(1<<B+p)-1)>>B)],d=E>>>24,k=E>>>16&255,u=E&65535,!(B+d<=g);){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}s>>>=B,g-=B,A.back+=B}if(s>>>=d,g-=d,A.back+=d,k&64){t.msg="invalid distance code",A.mode=v;break}A.offset=u,A.extra=k&15,A.mode=Qn;case Qn:if(A.extra){for(y=A.extra;g<y;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}A.offset+=s&(1<<A.extra)-1,s>>>=A.extra,g-=A.extra,A.back+=A.extra}if(A.offset>A.dmax){t.msg="invalid distance too far back",A.mode=v;break}A.mode=Bn;case Bn:if(Q===0)break A;if(I=f-Q,A.offset>I){if(I=A.offset-I,I>A.whave&&A.sane){t.msg="invalid distance too far back",A.mode=v;break}I>A.wnext?(I-=A.wnext,c=A.wsize-I):c=A.wnext-I,I>A.length&&(I=A.length),C=A.window}else C=o,c=r-A.offset,I=A.length;I>Q&&(I=Q),Q-=I,A.length-=I;do o[r++]=C[c++];while(--I);A.length===0&&(A.mode=Ae);break;case Cn:if(Q===0)break A;o[r++]=A.length,Q--,A.mode=Ae;break;case Ye:if(A.wrap){for(;g<32;){if(a===0)break A;a--,s|=n[i++]<<g,g+=8}if(f-=Q,t.total_out+=f,A.total+=f,f&&(t.adler=A.check=A.flags?U(A.check,o,f,r-f):GA(A.check,o,f,r-f)),f=Q,(A.flags?s:fn(s))!==A.check){t.msg="incorrect data check",A.mode=v;break}s=0,g=0}A.mode=En;case En:if(A.wrap&&A.flags){for(;g<32;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if(s!==(A.total&4294967295)){t.msg="incorrect length check",A.mode=v;break}s=0,g=0}A.mode=cn;case cn:N=xi;break A;case v:N=un;break A;case Te:return qe;case Si:default:return Y}return t.next_out=r,t.avail_out=Q,t.next_in=i,t.avail_in=a,A.hold=s,A.bits=g,(A.wsize||f!==t.avail_out&&A.mode<v&&(A.mode<Ye||e!==Ot))&&pn(t,t.output,t.next_out,f-t.avail_out)?(A.mode=Te,qe):(l-=t.avail_in,f-=t.avail_out,t.total_in+=l,t.total_out+=f,A.total+=f,A.wrap&&f&&(t.adler=A.check=A.flags?U(A.check,o,f,t.next_out-f):GA(A.check,o,f,t.next_out-f)),t.data_type=A.bits+(A.last?64:0)+(A.mode===W?128:0)+(A.mode===$A||A.mode===Ue?256:0),(l===0&&f===0||e===Ot)&&N===IA&&(N=bi),N)}function Nn(t){if(!t||!t.state)return Y;var e=t.state;return e.window&&(e.window=null),t.state=null,IA}function mn(t,e){var A;return!t||!t.state||(A=t.state,(A.wrap&2)===0)?Y:(A.head=e,e.done=!1,IA)}function Ze(t,e){var A=e.length,n,o,i;return!t||!t.state||(n=t.state,n.wrap!==0&&n.mode!==ee)?Y:n.mode===ee&&(o=1,o=GA(o,e,A,0),o!==n.check)?un:(i=pn(t,e,A,A),i?(n.mode=Te,qe):(n.havedict=1,IA))}var te={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 Oe(){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 Xe=Object.prototype.toString,ze=class t{constructor(e){if(!(this instanceof t))return new t(e);this.options=Gt({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 Oe,this.strm.avail_out=0;var n=kn(this.strm,A.windowBits);if(n!==$)throw new Error(te[n]);if(this.header=new Ge,mn(this.strm,this.header),A.dictionary&&(typeof A.dictionary=="string"?A.dictionary=Re(A.dictionary):Xe.call(A.dictionary)==="[object ArrayBuffer]"&&(A.dictionary=new Uint8Array(A.dictionary)),A.raw&&(n=Ze(this.strm,A.dictionary),n!==$)))throw new Error(te[n])}push(e,A){var n=this.strm,o=this.options.chunkSize,i=this.options.dictionary,r,a,Q,s,g,l,f=!1;if(this.ended)return!1;a=A===~~A?A:A===!0?SA:Se,typeof e=="string"?n.input=_t(e):Xe.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=z(o),n.next_out=0,n.avail_out=o),r=Dn(n,Se),r===vt&&i&&(typeof i=="string"?l=Re(i):Xe.call(i)==="[object ArrayBuffer]"?l=new Uint8Array(i):l=i,r=Ze(this.strm,l)),r===Rt&&f===!0&&(r=$,f=!1),r!==JA&&r!==$)return this.onEnd(r),this.ended=!0,!1;n.next_out&&(n.avail_out===0||r===JA||n.avail_in===0&&(a===SA||a===Je))&&(this.options.to==="string"?(Q=Yt(n.output,n.next_out),s=n.next_out-Q,g=Ut(n.output,Q),n.next_out=s,n.avail_out=o-s,s&&T(n.output,n.output,Q,s,0),this.onData(g)):this.onData(PA(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(f=!0)}while((n.avail_in>0||n.avail_out===0)&&r!==JA);return r===JA&&(a=SA),a===SA?(r=Nn(this.strm),this.onEnd(r),this.ended=!0,r===$):(a===Je&&(this.onEnd($),n.avail_out=0),!0)}onData(e){this.chunks.push(e)}onEnd(e){e===$&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=WA(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg}};function Ui(t,e){var A=new ze(e);if(A.push(t,!0),A.err)throw A.msg||te[A.err];return A.result}var yn=Ui;function xn(t,e,A){let n=[],o=0,i=e;for(;o+26<=t.length&&!(t[o]!==31||t[o+1]!==139||t[o+2]!==8||t[o+3]!==4||t[o+10]!==6||t[o+12]!==66||t[o+13]!==67);){let r=(t[o+16]|t[o+17]<<8)+1;if(r<26||o+r>t.length)break;let a=o+r-8,Q=(t[a+4]|t[a+5]<<8|t[a+6]<<16|t[a+7]<<24)>>>0;if(n.push({inputOffset:o,compressedSize:r,decompressedSize:Q,filePosition:i}),i>=A)break;o+=r,i+=r}return n}function Fn(t){let e=0;for(let o of t)e+=o.length;let A=new Uint8Array(e),n=0;for(let o of t)A.set(o,n),n+=o.length;return A}var eA={};eA.d=(t,e)=>{if(Array.isArray(e))for(var A=0;A<e.length;){var n=e[A++],o=e[A++];eA.o(t,n)?o===0&&A++:o===0?Object.defineProperty(t,n,{enumerable:!0,value:e[A++]}):Object.defineProperty(t,n,{enumerable:!0,get:o})}else for(var n in e)eA.o(e,n)&&!eA.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})};eA.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);eA.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var je={};eA.r(je);eA.d(je,{ChunkSliceResult:()=>wA,__wbg_Error_92b29b0548f8b746:()=>Hi,__wbg___wbindgen_throw_344f42d3211c4765:()=>Ki,__wbg_set_wasm:()=>_n,decompress_all:()=>Jn,decompress_chunk_slice:()=>vn});var Yi="data:application/wasm;base64,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AghBAUEAEBUACywCAX8BfiMAQRBrIgEkACAAKQIAIQIgASAANgIMIAEgAjcCBCABQQRqEGYACyMBAX8jAEEQayICJAAgAiABNgIMIAIgADYCCCACQQhqEGUACyAAAkAgASgCAEUNACAAQbiXwAA2AgQgACABNgIADwsACx4BAX8CQCAAKAIAIgJFDQAgASACIAAoAgQQTQ8LAAsbAQF/EGogAEEEakEEEFgiASAANgIAIAFBBGoLHgEBfwJAIAAoAgAiAUEBSA0AIAAoAgQgAUEBEFMLCx4AIAAoAgAgACgCBEEAKALomkAiAEEEIAAbEQQAAAsjAQF/AkBBhIrAABAtIgANAEG4icAAQTpB9InAABA4AAsgAAsXAAJAIABBf2pBfk8NACABIABBARBTCwscAQF/AkAgACgCACIBRQ0AIAAoAgQgAUEBEFMLCxcAAkAgAUEJSQ0AIAEgABAODwsgABACCxUAIABBfGoiACAAKAIAQQRqQQQQUwsUAAJAIABFDQAgACABEF8ACxBWAAsRACAAIAFBAXRBAXIgAhAxAAsSAAJAIAFFDQAgACABIAIQUwsLEgAgACABIAIgAyAEQQAgBRADCxUAAkAgAEUNACAAIAAoAqhaEQIACwsaACAAQQApAoSWQDcCCCAAQQApAvyVQDcCAAsaACAAQQApAvSVQDcCCCAAQQApAuyVQDcCAAsWACAAKAIAIAEgAiAAKAIEKAIMEQcACw0AIAAgASACIAMQBw8LFABBACAANgK8mkBBAEEBNgK4mkALEwAgAEG4l8AANgIEIAAgATYCAAsQACABIAAoAgAgACgCBBBNCxAAIAEgACgCACAAKAIEEAoLCwAgACABIAIQKg8LCgAgACABEGkaAAsPACAAQZyVwAAgASACEAwLEQBBkJjAAEEjQaSYwAAQMQALCwAgACMAaiQAIwALCQAgACABEEQPCwkAIAAgARAuDwsJACAAIAEQYQALDABBr4fAAEEbEFoACw0AQcqHwABBzwAQWgALCQAgASAAEDsACwwAIAAgASkCADcDAAsJACABIAAQXQALDQAgAUH8mcAAQRgQCgsIACAAIAEQAAsIACAAIAEQAQsJACAAKAIAEEoLBwAgABA5AAsHACAAEEAACwcAIAAQJgALCwBBAEEBOgDAnkALCQAgAEEANgIACwUAEGsACwMADwsDAAALAgALC74aAgBBgIDAAAuUGkF0dGVtcHRlZCB0byBpbml0aWFsaXplIHRocmVhZC1sb2NhbCB3aGlsZSBpdCBpcyBiZWluZyBkcm9wcGVkFnNsaWNlIGluZGV4IHN0YXJ0cyBhdCDADSBidXQgZW5kcyBhdCDAABJyYW5nZSBzdGFydCBpbmRleCDAIiBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCDAABByYW5nZSBlbmQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAvcnVzdGMvNDhhMjI5Y2VhZWZkNDk4NWM1MDk5MGIxNDExNmI2ZDg1NmFmMDk4NS9saWJyYXJ5L3N0ZC9zcmMvc3lzL3RocmVhZF9sb2NhbC9ub190aHJlYWRzLnJzAC9ydXN0Yy80OGEyMjljZWFlZmQ0OTg1YzUwOTkwYjE0MTE2YjZkODU2YWYwOTg1L2xpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9yd2xvY2svbm9fdGhyZWFkcy5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi93YXNtLWJpbmRnZW4tMC4yLjEyNi9zcmMvZXh0ZXJucmVmLnJzAC9ydXN0Yy80OGEyMjljZWFlZmQ0OTg1YzUwOTkwYjE0MTE2YjZkODU2YWYwOTg1L2xpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMvbW9kLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjEzL3NyYy9kbG1hbGxvYy5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9saWJkZWZsYXRlci0xLjI1LjIvc3JjL2xpYi5ycwAA1gAQAF4AAABrAAAADQAAAMwCEAAKAAAAHAAAACQAAADMAhAACgAAAMIAAAApAAAAzAIQAAoAAAC2AAAAJwAAAMwCEAAKAAAAcQAAABwAAADMAhAACgAAAG0AAABBAAAAZGVjb21wcmVzc2lvbiBmYWlsZWRpbnZhbGlkIGJnemYgaGVhZGVyAMwCEAAKAAAATAAAAD0A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",wA=class t{static __wrap(e){let A=Object.create(t.prototype);return A.__wbg_ptr=e,bn.register(A,A.__wbg_ptr,A),A}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,bn.unregister(this),e}free(){let e=this.__destroy_into_raw();F.__wbg_chunksliceresult_free(e,0)}take_buffer(){try{let o=F.__wbindgen_add_to_stack_pointer(-16);F.chunksliceresult_take_buffer(o,this.__wbg_ptr);var e=_().getInt32(o+0,!0),A=_().getInt32(o+4,!0),n=Rn(e,A).slice();return F.__wbindgen_export(e,A*1,1),n}finally{F.__wbindgen_add_to_stack_pointer(16)}}take_cpositions(){try{let o=F.__wbindgen_add_to_stack_pointer(-16);F.chunksliceresult_take_cpositions(o,this.__wbg_ptr);var e=_().getInt32(o+0,!0),A=_().getInt32(o+4,!0),n=Sn(e,A).slice();return F.__wbindgen_export(e,A*8,8),n}finally{F.__wbindgen_add_to_stack_pointer(16)}}take_dpositions(){try{let o=F.__wbindgen_add_to_stack_pointer(-16);F.chunksliceresult_take_dpositions(o,this.__wbg_ptr);var e=_().getInt32(o+0,!0),A=_().getInt32(o+4,!0),n=Sn(e,A).slice();return F.__wbindgen_export(e,A*8,8),n}finally{F.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(wA.prototype[Symbol.dispose]=wA.prototype.free);function Jn(t){try{let r=F.__wbindgen_add_to_stack_pointer(-16),a=Mn(t,F.__wbindgen_export2),Q=$e;F.decompress_all(r,a,Q);var e=_().getInt32(r+0,!0),A=_().getInt32(r+4,!0),n=_().getInt32(r+8,!0),o=_().getInt32(r+12,!0);if(o)throw Ln(n);var i=Rn(e,A).slice();return F.__wbindgen_export(e,A*1,1),i}finally{F.__wbindgen_add_to_stack_pointer(16)}}function vn(t,e,A,n,o){try{let Q=F.__wbindgen_add_to_stack_pointer(-16),s=Mn(t,F.__wbindgen_export2),g=$e;F.decompress_chunk_slice(Q,s,g,e,A,n,o);var i=_().getInt32(Q+0,!0),r=_().getInt32(Q+4,!0),a=_().getInt32(Q+8,!0);if(a)throw Ln(r);return wA.__wrap(i)}finally{F.__wbindgen_add_to_stack_pointer(16)}}function Hi(t,e){let A=Error(Gn(t,e));return qi(A)}function Ki(t,e){throw new Error(Gn(t,e))}var bn=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>F.__wbg_chunksliceresult_free(t,1));function qi(t){MA===P.length&&P.push(P.length+1);let e=MA;return MA=P[e],P[e]=t,e}function Ti(t){t<1028||(P[t]=MA,MA=t)}function Sn(t,e){return t=t>>>0,Zi().subarray(t/8,t/8+e)}function Rn(t,e){return t=t>>>0,Ve().subarray(t/1,t/1+e)}var uA=null;function _(){return(uA===null||uA.buffer.detached===!0||uA.buffer.detached===void 0&&uA.buffer!==F.memory.buffer)&&(uA=new DataView(F.memory.buffer)),uA}var ne=null;function Zi(){return(ne===null||ne.byteLength===0)&&(ne=new Float64Array(F.memory.buffer)),ne}function Gn(t,e){return zi(t>>>0,e)}var ie=null;function Ve(){return(ie===null||ie.byteLength===0)&&(ie=new Uint8Array(F.memory.buffer)),ie}function Oi(t){return P[t]}var P=new Array(1024).fill(void 0);P.push(void 0,null,!0,!1);var MA=P.length;function Mn(t,e){let A=e(t.length*1,1)>>>0;return Ve().set(t,A/1),$e=t.length,A}function Ln(t){let e=Oi(t);return Ti(t),e}var oe=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});oe.decode();var Xi=2146435072,We=0;function zi(t,e){return We+=e,We>=Xi&&(oe=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),oe.decode(),We=e),oe.decode(Ve().subarray(t,t+e).slice())}var $e=0,F;function _n(t){F=t}var QA=null,Pe=null;async function Un(){return QA||(Pe||(Pe=(async()=>{let e=await(await fetch(Yi)).arrayBuffer(),{instance:A}=await WebAssembly.instantiate(e,{"./bgzf_wasm_bg.js":je});return QA=A.exports,_n(QA),QA})()),Pe)}async function Yn(t){return QA||await Un(),Jn(t)}async function Hn(t,e,A,n,o){QA||await Un();let i=vn(t,e,A,n,o),r=i.take_buffer(),a=i.take_cpositions(),Q=i.take_dpositions();return i.free(),{buffer:r,cpositions:a,dpositions:Q}}var Wi=26;function qn(t){return t[0]===31&&t[1]===139}function Pi(t){return t.length>=Wi&&qn(t)&&t[2]===8&&t[3]===4&&t[10]===6&&t[12]===66&&t[13]===67}function Tn(t){return t instanceof Error?t.message:`${t}`}async function Kn(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 yn(t,void 0)}function Zn(t){return Tn(t).includes("invalid gzip header")?new Error("problem decompressing block: incorrect gzip header check",{cause:t}):t}async function LA(t){if(t.length===0)return new Uint8Array(0);if(!Pi(t)){if(qn(t))return Kn(t);throw new Error("problem decompressing block: not a valid bgzf or gzip block")}try{return await Yn(t)}catch(e){if(Tn(e).includes("invalid bgzf header"))return Kn(t);throw Zn(e)}}function ji(t,e,A,n){let o=[],i=[],r=[],a=A.dataPosition;for(let Q=0;Q<t.length;Q++){let s=t[Q],g=e[Q],l=g.filePosition>=n.blockPosition;o.push(g.filePosition),i.push(a);let f=Q===0?A.dataPosition:0,I=l?Math.min(n.dataPosition+1,s.length):s.length;if(f<I&&r.push(s.subarray(f,I)),a+=s.length-f,l){o.push(g.filePosition+g.compressedSize),i.push(a);break}}return{buffer:Fn(r),cpositions:Float64Array.from(o),dpositions:Float64Array.from(i)}}var On=4e5;function Vi(t){let e=0;for(let A of t)e+=A.decompressedSize;return e}async function At(t,e,A){let{minv:n,maxv:o}=e;if(A){let i=xn(t,n.blockPosition,o.blockPosition);if(Vi(i)>=On){let r=await A.decompressBlocks(t,i);return ji(r.blocks,i,n,o)}}try{let i=await Hn(t,n.blockPosition,n.dataPosition,o.blockPosition,o.dataPosition);return{buffer:i.buffer,cpositions:i.cpositions,dpositions:i.dpositions}}catch(i){throw Zn(i)}}function et(t){if(t?.aborted)throw tt(t)}function tt(t){let e=t.reason;return e===void 0?new DOMException("This operation was aborted","AbortError"):e}var tA=class{entries=new Map;total=0;settledCount=0;limit;shared;fill;sizeOf;toCacheKey;idleTimeoutMs;sweepTimer;constructor({fill:e,maxSize:A=1/0,sizeOf:n=()=>1,cacheKey:o=a=>String(a),idleTimeoutMs:i=0,budget:r}={}){this.fill=e,this.limit=A,this.shared=r&&{budget:r,membership:r.register(this)},this.sizeOf=n,this.toCacheKey=o,this.idleTimeoutMs=i>0&&Number.isFinite(i)?i: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))?.pending?.signals.size??0}async get(e,A,n){et(A);let o=this.toCacheKey(e),i=this.entries.get(o);i&&this.isDoomed(i)&&(this.deleteKey(o),i=void 0),i?this.touch(o,i):i=this.start(o,e,n),i.pending&&this.join(i.pending,A);try{return await this.settleFor(i,A)}finally{et(A)}}settleFor(e,A){if(!e.pending||A===void 0||typeof A.addEventListener!="function")return e.promise;let n,o=new Promise((r,a)=>{n=a}),i=()=>{n(tt(A))};return A.addEventListener("abort",i,{once:!0}),Promise.race([e.promise,o]).finally(()=>{A.removeEventListener("abort",i)})}getIfCached(e){let A=this.toCacheKey(e),n=this.entries.get(A);if(n){if(this.isDoomed(n)){this.deleteKey(A);return}return this.touch(A,n),n.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(){this.entries.clear(),this.shared?.budget.charge(this.shared.membership,-this.total),this.total=0,this.settledCount=0,this.stopSweep()}touch(e,A){this.entries.delete(e),this.entries.set(e,A),A.lastTouched=Date.now(),A.seq=this.stamp()}stamp(){return this.shared?.budget.nextSeq()??0}isDoomed(e){return e.pending?.controller.signal.aborted===!0}sweepIdle(){let e=this.idleTimeoutMs;if(e===void 0)return;let A=Date.now()-e;for(let[n,o]of this.entries)!o.pending&&o.lastTouched<=A&&this.deleteKey(n);this.settledCount===0&&this.stopSweep()}startSweep(){let e=this.idleTimeoutMs;if(e===void 0||this.sweepTimer!==void 0)return;let A=Math.min(2**31-1,Math.max(1e3,Math.floor(e/4))),n=new WeakRef(this),o=setInterval(()=>{let i=n.deref();i?i.sweepIdle():clearInterval(o)},A);this.sweepTimer=o,o.unref?.()}stopSweep(){this.sweepTimer!==void 0&&(clearInterval(this.sweepTimer),this.sweepTimer=void 0)}start(e,A,n){let o=n??(this.fill&&(s=>this.fill(A,s)));if(!o)throw new Error("SharedReadCache needs a fill, either on the cache or on the get() call");let i={signals:new Map,pinned:!1,controller:new AbortController},r={promise:Promise.resolve(o(i.controller.signal)),pending:i,size:0,lastTouched:Date.now(),seq:this.stamp()};this.entries.set(e,r);let a=()=>this.entries.get(e)===r,Q=()=>{for(let[s,g]of i.signals)s.removeEventListener("abort",g);r.pending=void 0};return r.promise.then(s=>{let g=a()?this.weigh(s):void 0,l=a();Q(),l&&(g===void 0?this.entries.delete(e):(r.lastTouched=Date.now(),r.size=g,this.settledCount++,this.total+=g,this.shared?.budget.charge(this.shared.membership,g),this.startSweep())),this.evict(),this.shared?.budget.evict()},()=>{a()&&this.deleteKey(e),Q()}),r}weigh(e){try{let A=this.sizeOf(e);return Number.isFinite(A)&&A>=0?A:void 0}catch{return}}join(e,A){if(A===void 0||typeof A.addEventListener!="function")e.pinned=!0;else if(!A.aborted&&!e.signals.has(A)){let n=()=>{e.signals.delete(A),!e.pinned&&e.signals.size===0&&e.controller.abort(A.reason)};e.signals.set(A,n),A.addEventListener("abort",n,{once:!0})}}deleteKey(e){let A=this.entries.get(e);A&&(this.entries.delete(e),A.pending||this.settledCount--,this.total-=A.size,this.shared?.budget.charge(this.shared.membership,-A.size))}lruSpare(){if(!(this.settledCount<=1)){for(let[e,A]of this.entries)if(!A.pending)return{cacheKey:e,seq:A.seq}}}release(e){this.deleteKey(e)}evict(){if(!(this.total<=this.limit))for(let[e,A]of this.entries){if(this.total<=this.limit||this.settledCount<=1)break;A.pending||this.deleteKey(e)}}};async function re(t){return t.bytes?t.bytes():new Uint8Array(await t.arrayBuffer())}async function Xn(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?nt(t,A):re(t)}function zn(t){return typeof t=="string"?{encoding:t,opts:{}}:{encoding:t?.encoding,opts:t??{}}}function Wn(t){let e=/\/(\d+)$/.exec(t??"")?.[1];return e===void 0?void 0:parseInt(e,10)}function $i(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 Ao=50;async function nt(t,e){let A=$i(t),n=t.body;if(!n||A===void 0){let Q=await re(t);return e(Q.byteLength,A??Q.byteLength),Q}let o=n.getReader(),i=new Uint8Array(A),r=0,a=Date.now();e(0,A);for(let Q=await o.read();!Q.done;Q=await o.read()){if(r+Q.value.byteLength>i.length){let g=new Uint8Array(Math.max(r+Q.value.byteLength,i.length*2));g.set(i.subarray(0,r)),i=g}i.set(Q.value,r),r+=Q.value.byteLength;let s=Date.now();s-a>=Ao&&(a=s,e(r,A))}return e(r,A),r===i.length?i:i.slice(0,r)}function eo(...t){let e=new Map;for(let A of t)for(let[n,o]of Object.entries(A??{}))e.set(n.toLowerCase(),[n,o]);return Object.fromEntries(e.values())}function it(t){let e=t.body;typeof e?.cancel=="function"&&e.cancel().catch(()=>{})}function Pn(t){return Number.isSafeInteger(t)&&t>=0}function to(t){return typeof t=="object"&&t!==null&&"name"in t&&t.name==="TypeError"}function no(t){return(typeof t=="object"&&t!==null&&"message"in t&&typeof t.message=="string"?t.message:`${t}`).replace(/\.$/,"")}var j=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 n=e.signal??this.baseSignal;return{method:"GET",redirect:"follow",mode:"cors",...this.baseOverrides,...e.overrides,headers:eo(this.baseHeaders,e.headers,A),...n?{signal:n}:{}}}async fetch(e,A){let n=i=>to(i)&&!A?.signal?.aborted?new Error(`${no(i)} fetching ${e}`,{cause:i}):i,o;try{o=await this.fetchImplementation(e,A)}catch(i){if(`${i}`.includes("Failed to fetch")){console.warn(`generic-filehandle: refetching ${e} to attempt to work around chrome CORS header caching bug`);try{o=await this.fetchImplementation(e,{...A,cache:"reload"})}catch(r){throw n(r)}}else throw n(i)}return o}async read(e,A,n={}){if(!Pn(e)||!Pn(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,n)}async fetchBytes(e,A,n){let o=await this.fetch(this.url,this.buildRequest(n,{range:`bytes=${A}-${A+e-1}`}));if(o.status===416)return it(o),new Uint8Array(0);if(this.checkOk(o),o.status===200&&A===0||o.status===206){let i=Wn(o.headers.get("content-range"));i!==void 0&&(this._stat={size:i});let r=n.onProgress?await nt(o,n.onProgress):await re(o);return!this._stat&&o.status===200&&(this._stat={size:r.byteLength}),r.byteLength<=e?r:r.slice(0,e)}throw it(o),new Error(o.status===200?`${this.url} fetch returned status 200, expected 206`:`HTTP ${o.status} fetching ${this.url}`)}checkOk(e){if(!e.ok)throw it(e),new Error(`HTTP ${e.status} fetching ${this.url}`)}async readFile(e){let{encoding:A,opts:n}=zn(e),o=await this.fetch(this.url,this.buildRequest(n));this.checkOk(o);let i=await this.readFileBody(o,A,n.onProgress);return o.status===200&&typeof i!="string"&&(this._stat={size:i.byteLength}),i}readFileBody(e,A,n){return Xn(e,A,n)}async stat(){return this._stat||(this.statProbe??=this.read(10,0).finally(()=>{this.statProbe=void 0}),await this.statProbe),this._stat??{size:0}}close(){return Promise.resolve()}};var BA=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,n){return this.unimplemented()}stat(){return this.unimplemented()}close(){return this.unimplemented()}};var Z=class{minv;maxv;bin;endPosition;constructor(e,A,n,o=A.blockPosition+65536){this.minv=e,this.maxv=A,this.bin=n,this.endPosition=o}toString(){return`${this.minv.toString()}..${this.maxv.toString()} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}fetchedSize(){return this.endPosition-this.minv.blockPosition}};function ot(t,e){if(!(e>0))throw new TypeError(`\`${t}\` must be a number greater than 0`)}var _A=class{#A=new Map;#e=new Map;#t;#i;#o;constructor(e){let A=e.maxAge??Number.POSITIVE_INFINITY;ot("maxSize",e.maxSize),ot("maxAge",A),this.#t=e.maxSize,this.#i=A,this.#o=e.onEviction}#r(e){let A=this.#o;if(A)for(let[n,o]of e)A(n,o.value)}#n(e,A){return A.expiry!==void 0&&A.expiry<=Date.now()?(this.#o?.(e,A.value),this.delete(e),!0):!1}#a(e,A){return this.#n(e,A)?void 0:A.value}#g(e,A){if(this.#e.delete(e),this.#A.set(e,A),this.#A.size>=this.#t){let n=this.#e;this.#e=this.#A,this.#A=new Map,this.#r(n)}}#I(e){this.#e=new Map(e),this.#A=new Map}*#s(){for(let e of[this.#e,this.#A])for(let A of e)this.#n(...A)||(yield A)}get(e){let A=this.#A.get(e);if(A)return this.#a(e,A);let n=this.#e.get(e);if(n&&!this.#n(e,n))return this.#g(e,n),n.value}set(e,A,{maxAge:n=this.#i}={}){let o={value:A,expiry:n===Number.POSITIVE_INFINITY?void 0:Date.now()+n};return this.#A.has(e)?this.#A.set(e,o):this.#g(e,o),this}has(e){let A=this.#A.get(e)??this.#e.get(e);return A!==void 0&&!this.#n(e,A)}peek(e){let A=this.#A.get(e)??this.#e.get(e);return A?this.#a(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){ot("maxSize",e);let A=[...this.#s()],n=A.length-e;n<0?(this.#A=new Map(A),this.#e=new Map):(this.#r(A.slice(0,n)),this.#I(A.slice(n))),this.#t=e}evict(e=1){if(!(e>0))return;let A=[...this.#s()],n=Math.trunc(Math.min(e,A.length-1));n>0&&(this.#r(A.slice(0,n)),this.#I(A.slice(n)))}get size(){return Math.min(this.#A.size+this.#e.size,this.#t)}get maxSize(){return this.#t}get maxAge(){return this.#i}*entriesAscending(){for(let[e,A]of this.#s())yield[e,A.value]}*entriesDescending(){for(let e of[this.#A,this.#e])for(let[A,n]of[...e].reverse())this.#n(A,n)||(yield[A,n.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[n,o]of this)e.call(A,o,n,this)}get[Symbol.toStringTag](){return"QuickLRU"}toString(){return`QuickLRU(${this.size}/${this.maxSize})`}[Symbol.for("nodejs.util.inspect.custom")](){return this.toString()}};function jn(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 kA=class{blockPosition;dataPosition;constructor(e,A){this.blockPosition=e,this.dataPosition=A}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(e){return this.blockPosition-e.blockPosition||this.dataPosition-e.dataPosition}};function nA(t,e=0){return new kA(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 se(t,e){let A=t.length;if(A===0)return t;let n;if(e){let a=e.blockPosition,Q=e.dataPosition;n=[];for(let s=0;s<A;s++){let g=t[s];(g.maxv.blockPosition-a||g.maxv.dataPosition-Q)>0&&n.push(g)}if(n.length===0)return n}else n=t;n.sort((a,Q)=>{let s=a.minv.blockPosition-Q.minv.blockPosition;return s===0?a.minv.dataPosition-Q.minv.dataPosition:s});let o=[n[0]],i=n[0].minv.blockPosition,r=n[0].maxv.blockPosition;for(let a=1;a<n.length;a++){let Q=n[a],s=Q.minv.blockPosition,g=Q.maxv.blockPosition;if(s-r<65e3&&g-i<5e6){let l=o.at(-1);(g-r||Q.maxv.dataPosition-l.maxv.dataPosition)>0&&(o[o.length-1]=new Z(l.minv,Q.maxv,l.bin,Q.endPosition),r=g)}else o.push(Q),i=s,r=g}return io(o)}function io(t){let e=[t[0]];for(let A=1;A<t.length;A++){let n=t[A],o=e.at(-1).maxv;if((n.minv.blockPosition-o.blockPosition||n.minv.dataPosition-o.dataPosition)>=0){e.push(n);continue}(n.maxv.blockPosition-o.blockPosition||n.maxv.dataPosition-o.dataPosition)>0&&e.push(new Z(o,n.maxv,n.bin,n.endPosition))}return e}function ae(t,e=[]){let A=[...e];for(let n of t)A.push(n.minv.blockPosition,n.maxv.blockPosition);A.sort((n,o)=>n-o);for(let n of t){let o=n.maxv.blockPosition,i=0,r=A.length;for(;i<r;){let a=i+r>>>1;A[a]>o?r=a:i=a+1}i<A.length&&(n.endPosition=Math.min(n.endPosition,A[i]))}}function ge(t,e,A,n){let o=n?n.blockPosition:1/0,i=n?n.dataPosition:0,r=!1;for(let a=0;a<A;a++){let Q=e+a*8,s=t[Q+7]*1099511627776+t[Q+6]*4294967296+t[Q+5]*16777216+t[Q+4]*65536+t[Q+3]*256+t[Q+2],g=t[Q+1]<<8|t[Q];(s<o||s===o&&g<i)&&(o=s,i=g,r=!0)}return r?new kA(o,i):n}function oo(t){let e=new TextDecoder("utf-8"),A=[],n={},o=0,i=0;for(;i<t.length;){let r=t.indexOf(0,i);if(r===-1)break;if(r>i){let a=e.decode(t.subarray(i,r));A[o]=a,n[a]=o}i=r+1,o++}return{refNameToId:n,refIdToName:A}}var ro={0:"generic",1:"SAM",2:"VCF",3:"GAF"};function Ie(t,e){let A=new DataView(t.buffer,t.byteOffset,t.byteLength),n=A.getInt32(e,!0),o=n&65536?"zero-based-half-open":"1-based-closed",i=ro[n&15];if(!i)throw new Error(`invalid Tabix preset format flags ${n}`);let r={ref:A.getInt32(e+4,!0),start:A.getInt32(e+8,!0),end:A.getInt32(e+12,!0)},a=A.getInt32(e+16,!0),Q=a?String.fromCharCode(a):void 0,s=A.getInt32(e+20,!0),g=A.getInt32(e+24,!0),{refIdToName:l,refNameToId:f}=oo(t.subarray(e+28,e+28+g));return{refIdToName:l,refNameToId:f,skipLines:s,metaChar:Q,columnNumbers:r,format:i,coordinateType:o}}function Qe(t,e){return{lineCount:jn(t,e)}}function Be(t,e=5){let A=new _A({maxSize:e});return n=>{let o=A.get(n);if(o!==void 0)return o;let i=t(n);return i!==void 0&&A.set(n,i),i}}function so(t,e,A,n){if(e>2**(A+n*3))return;let o=(8**(n+1)-1)/7,i=(8**n-1)/7+Math.floor((e-1)/2**A)+1;for(i>=o&&(i=0);;){for(;i%8===1;)i=(i-1)/8;if(i===0)return;let r=t[i];if(r?.length){let a=r[0].minv;for(let Q=1;Q<r.length;Q++){let s=r[Q].minv;s.compareTo(a)<0&&(a=s)}return a}i++}}function Vn(t,e){return t.format==="GAF"?0:t.refNameToId[e]}var CA=class{filehandle;parseCache=new tA({});constructor({filehandle:e}){this.filehandle=e}async readIndexBytes(e){let A=await this.filehandle.readFile({signal:e.signal,onProgress:e.onProgress}),n=await LA(A);return{bytes:n,dataView:new DataView(n.buffer,n.byteOffset,n.byteLength)}}async lineCount(e,A={}){let n=await this.parse(A),o=Vn(n,e);return o===void 0?-1:n.indices(o)?.stats?.lineCount??-1}async getMetadata(e={}){let{indices:A,...n}=await this.parse(e);return n}async blocksForRange(e,A,n,o={}){let i=await this.parse(o),r=Vn(i,e);if(r===void 0)return[];let a=i.indices(r);if(!a)return[];i.format==="GAF"&&(A=Math.max(A-1,0));let Q=[];for(let[l,f]of this.reg2bins(A,n,i))for(let I=l;I<=f;I++){let c=a.binIndex[I];if(c)for(let C of c)Q.push(C)}let s=se(Q,this.lowestOffset(a,A,i)),g=so(a.binIndex,n,i.minShift,i.depth);if(g){let l=s.length;for(;l>0&&s[l-1].minv.compareTo(g)>=0;)l--;s.length=l}return s}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 ao=21582659,go=38359875;function $n(t,e){return t*2**e}function rt(t,e){return Math.floor(t/2**e)}var EA=class extends CA{async _parse(e={}){let{bytes:A,dataView:n}=await this.readIndexBytes(e),o=n.getUint32(0,!0),i;if(o===ao)i=1;else if(o===go)i=2;else throw new Error(`Not a CSI file (magic=${o})`);let r=n.getInt32(4,!0),a=n.getInt32(8,!0),Q=(8**(a+1)-1)/7,s=2**(r+a*3),g=n.getInt32(12,!0),l=g>=28&&(n.getInt32(16,!0)&15)===3;if(g<30&&!l)throw new Error("CSI index has no tabix header, so it names no references; it may be a BAM or BCF index");let f=Ie(A,16),I=n.getInt32(16+g,!0),c=16+g+4,C,E=[];for(let k=0;k<I;k++){E.push(c);let u=n.getInt32(c,!0);c+=4;for(let B=0;B<u;B++){let p=n.getUint32(c,!0);if(c+=4,p>Q)c+=44;else{C=ge(A,c,1,C),c+=8;let w=n.getInt32(c,!0);c+=4+16*w}}}function d(k){let u=E[k];if(u===void 0)return;let B=u,p=n.getInt32(B,!0);B+=4;let w={},h={},N;for(let m=0;m<p;m++){let D=n.getUint32(B,!0);if(B+=4,D>Q)N=Qe(A,B+28),B+=44;else{h[D]=nA(A,B),B+=8;let y=n.getInt32(B,!0);B+=4;let x=Array.from({length:y});for(let S=0;S<y;S++)x[S]=new Z(nA(A,B),nA(A,B+8),D),B+=16;w[D]=x}}return ae(Object.values(w).flat()),{binIndex:w,loffsets:h,stats:N}}return{...f,csi:!0,refCount:I,maxBlockSize:65536,firstDataLine:C,csiVersion:i,indices:Be(d),minShift:r,depth:a,maxBinNumber:Q,maxRefLength:s}}lowestOffset(e,A,{minShift:n,depth:o}){let{loffsets:i}=e,r;if(i){let a=($n(1,3*o)-1)/7+rt(Math.max(A,0),n);for(;r===void 0&&a>0;)if(r=i[a],r===void 0){let Q=Math.floor((a-1)/8),s=Q*8+1;a=a>s?a-1:Q}r??=i[0]}return r}reg2bins(e,A,{minShift:n,depth:o,maxBinNumber:i}){e=Math.max(e,0);let r=2**(n+o*3);A>r&&(A=r),A-=1;let a=0,Q=0,s=n+o*3,g=[];for(;a<=o;s-=3,Q+=$n(1,a*3),a+=1){let l=Q+rt(e,s),f=Q+rt(A,s);if(f-l+g.length>i)throw new Error(`query ${e}-${A} is too large for current binning scheme (shift ${n}, depth ${o}), try a smaller query or a coarser index binning scheme`);g.push([l,f])}return g}};var Io=21578324,st=5,at=14,Ce=2**(at+st*3);function Ai(t){return Math.min(Math.max(t,0),Ce)}var V=class extends CA{reg2bins(e,A){e>Ce&&console.warn("querying outside of possible tabix range");let n=Ai(e),o=Math.min(A,Ce)-1,i=[];return n<=o&&i.push([0,0],[1+(n>>26),1+(o>>26)],[9+(n>>23),9+(o>>23)],[73+(n>>20),73+(o>>20)],[585+(n>>17),585+(o>>17)],[4681+(n>>14),4681+(o>>14)]),i}lowestOffset(e,A){let n=e.linearIndex;return n?.[Math.min(Ai(A)>>at,n.length-1)]}async _parse(e={}){let{bytes:A,dataView:n}=await this.readIndexBytes(e);if(n.getUint32(0,!0)!==Io)throw new Error("Not a TBI file");let o=n.getUint32(4,!0),i=((1<<(st+1)*3)-1)/7,{refNameToId:r,refIdToName:a,coordinateType:Q,format:s,columnNumbers:g,metaChar:l,skipLines:f}=Ie(A,8),c=36+n.getInt32(32,!0),C,E=[];for(let k=0;k<o;k++){E.push(c);let u=n.getInt32(c,!0);c+=4;for(let p=0;p<u;p++){let w=n.getUint32(c,!0);c+=4;let h=n.getInt32(c,!0);if(c+=4,w>i+1)throw new Error("tabix index contains too many bins, please use a CSI index");c+=16*h}let B=n.getInt32(c,!0);c+=4,C=ge(A,c,B,C),c+=8*B}function d(k){let u=E[k];if(u===void 0)return;let B=u,p=n.getInt32(B,!0);B+=4;let w={},h;for(let D=0;D<p;D++){let y=n.getUint32(B,!0);if(B+=4,y>i+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(y===i+1){let x=n.getInt32(B,!0);B+=4,x===2&&(h=Qe(A,B+16)),B+=16*x}else{let x=n.getInt32(B,!0);B+=4;let S=Array.from({length:x});for(let b=0;b<x;b++)S[b]=new Z(nA(A,B),nA(A,B+8),y),B+=16;w[y]=S}}let N=n.getInt32(B,!0);B+=4;let m=Array.from({length:N});for(let D=0;D<N;D++)m[D]=nA(A,B),B+=8;return ae(Object.values(w).flat(),m.map(D=>D.blockPosition)),{binIndex:w,linearIndex:m,stats:h}}return{indices:Be(d),metaChar:l,minShift:at,depth:st,maxBinNumber:i,maxRefLength:Ce,skipLines:f,firstDataLine:C,columnNumbers:g,coordinateType:Q,format:s,refIdToName:a,refNameToId:r,maxBlockSize:65536}}};var gt=9,ce=10,ni=13,Qo=59,Bo=60,Co=62,Eo=6,co=1024*2**20,fo=180*1e3;function ho(t,e,A){if(t)return t;if(e)return new BA(e);if(A)return new j(A);throw new TypeError("must provide either filehandle, path, or url")}function lo({tbiFilehandle:t,csiFilehandle:e,tbiPath:A,csiPath:n,tbiUrl:o,csiUrl:i,path:r,url:a}){if(t)return new V({filehandle:t});if(e)return new EA({filehandle:e});if(A)return new V({filehandle:new BA(A)});if(n)return new EA({filehandle:new BA(n)});if(i)return new EA({filehandle:new j(i)});if(o)return new V({filehandle:new j(o)});if(r)return new V({filehandle:new BA(`${r}.tbi`)});if(a)return new V({filehandle:new j(`${a}.tbi`)});throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl")}function ii(t,e,A,n,o){return t[A]*256+(n-e[A])+o+1}function uo(t,e,A,n,o,i,r){let a=n-A,Q=e+a,s=0;if(t[o]===46)return Q;let g=o;for(let l=o;l<=i;l++)if(l===i||t[l]===Qo){let f=l-g;if(f>=10&&t[g]===83&&t[g+1]===86&&t[g+2]===84&&t[g+3]===89&&t[g+4]===80&&t[g+5]===69&&t[g+6]===61&&t[g+7]===84&&t[g+8]===82&&t[g+9]===65)return e+1;if(f>=4&&t[g]===69&&t[g+1]===78&&t[g+2]===68&&t[g+3]===61){let I=Ee(t,g+4,l);I>e&&(Q=I)}else f>=6&&t[g]===83&&t[g+1]===86&&t[g+2]===76&&t[g+3]===69&&t[g+4]===78&&t[g+5]===61&&(s=ko(t,g+6,l,n+1,r));g=l+1}return Math.max(Q,e+s)}var ei=44;function wo(t,e,A){if(A-e<5||t[e]!==60||t[A-1]!==62)return!1;let n=t[e+4];if(n!==62&&n!==58)return!1;let o=t[e+1],i=t[e+2],r=t[e+3];return o===67&&i===78&&r===86||o===68&&i===69&&r===76||o===68&&i===85&&r===80||o===73&&i===78&&r===86}function ko(t,e,A,n,o){let i=0,r=e,a=n;for(;r<A&&a<o;){let Q=t.indexOf(ei,r);(Q===-1||Q>A)&&(Q=A);let s=t.indexOf(ei,a);if((s===-1||s>o)&&(s=o),wo(t,a,s)){let g=Ee(t,t[r]===45?r+1:r,Q);g>i&&(i=g)}r=Q+1,a=s+1}return i}var oi=new TextDecoder;function ti(t,e){let A=-1,n=e.charCodeAt(0);for(let o=0,i=t.length;o<i;o++){let r=t[o];if(o===A+1&&r!==n)break;r===ce&&(A=o)}return t.subarray(0,A+1)}function po(t,e){let A=0;for(let n=0;n<e;n++){let o=t.indexOf(ce,A);if(o===-1){A=t.length;break}A=o+1}return oi.decode(t.subarray(0,A)).split(/\r?\n/).slice(0,e)}function Ee(t,e,A){let n=0;for(let o=e;o<A;o++){let i=t[o];if(i>=48&&i<=57)n=n*10+(i-48);else break}return n}function Do(t,e,A,n,{start:o,end:i,pathCol:r,metaCharCode:a,decoder:Q,callback:s}){let g=0,l=0;for(;g<t.length;){let f=t.indexOf(ce,g);if(f===-1)break;let I=g;g=f+1;let c=I+n;for(;l<A.length&&c>=A[l];)l++;if(t[I]===a)continue;let C=I;for(let p=1;p<r;p++){let w=t.indexOf(gt,C);if(w===-1||w>=f){C=f;break}C=w+1}let E=t[C];if(E!==Co&&E!==Bo)continue;let d=t.indexOf(gt,C);(d===-1||d>f)&&(d=f);let k=1/0,u=-1,B=C;for(;B<d;){let p=0,w=B+1;for(;w<d;w++){let h=t[w]-48;if(h<0||h>9)break;p=p*10+h}p<k&&(k=p),p>u&&(u=p),B=w}if(k>=i)return!0;if(u>=o){let p=t[f-1]===ni?f-1:f;s(Q.decode(t.subarray(I,p)),ii(e,A,l,I,n),k,u+1)}}return!1}var pA=class{filehandle;index;chunkCache;headerCache=new tA({});bgzfWorkerPool;constructor({path:e,filehandle:A,url:n,tbiPath:o,tbiUrl:i,tbiFilehandle:r,csiPath:a,csiUrl:Q,csiFilehandle:s,chunkCacheSize:g=co,chunkCacheIdleTimeoutMs:l=fo,chunkCacheBudget:f,bgzfWorkerPool:I}){this.bgzfWorkerPool=I,this.filehandle=ho(A,e,n),this.index=lo({tbiFilehandle:r,csiFilehandle:s,tbiPath:o,csiPath:a,tbiUrl:i,csiUrl:Q,path:e,url:n}),this.chunkCache=new tA({maxSize:g,sizeOf:c=>c.buffer.byteLength,cacheKey:c=>c.toString(),idleTimeoutMs:l,budget:f,fill:(c,C)=>this.readChunk(c,{signal:C})})}clearChunkCache(){this.chunkCache.clear()}async bytesForRegions(e,A={}){let n=[];for(let{refName:i,start:r,end:a}of e){let Q=await this.index.blocksForRange(i,r,a,A);for(let s of Q)n.push(s)}let o=0;for(let i of se(n))o+=i.fetchedSize();return o}async getLines(e,A,n,o){let i,r={},a,Q;typeof o=="function"?a=o:(r=o,a=o.lineCallback,i=o.signal,Q=o.onProgress);let s=await this.index.getMetadata(r),g=A??0,l=n??s.maxRefLength;if(g>l)throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(g===l)return;let f=await this.index.blocksForRange(e,g,l,r),I=s.format==="VCF",c=s.columnNumbers.ref||0,C=s.columnNumbers.start||0,E=I?8:s.columnNumbers.end||0,d=Math.max(c,C,E),k=s.metaChar?.charCodeAt(0),u=s.coordinateType==="1-based-closed"?-1:0,B=new TextEncoder,p=new TextDecoder,w=B.encode(e),h=new Int32Array(d+1),N=s.format==="GAF"?{start:g,end:l,pathCol:C,metaCharCode:k,decoder:p,callback:a}:void 0,m=0;for(let b of f)m+=b.fetchedSize();let D=0;Q?.(0,m);let y=1,x=[],S=b=>{for(;x.length<Math.min(b,f.length);){let L=f[x.length],G=this.chunkCache.get(L,i);G.catch(()=>{}),x.push(G)}};S(1);for(let b=0,L=f.length;b<L;b++){let G=f[b],{buffer:J,cpositions:iA,dpositions:O}=await x[b];D+=G.fetchedSize(),Q?.(D,m);let oA=G.minv.dataPosition;if(N){if(Do(J,iA,O,oA,N))return}else{let R=0,cA=0;for(;R<J.length;){let H=J.indexOf(ce,R);if(H===-1)break;let si=R+oA;for(;cA<O.length&&si>=O[cA];)cA++;if(k!==void 0&&J[R]===k){R=H+1;continue}h[0]=R-1;for(let K=0;K<d;K++){let YA=h[K],fe=YA<H?J.indexOf(gt,YA+1):-1;h[K+1]=fe===-1||fe>=H?H:fe}let It=h[c-1]+1,Qt=h[c]-It;if(Qt!==w.length){R=H+1;continue}let Bt=!0;for(let K=0;K<Qt;K++)if(J[It+K]!==w[K]){Bt=!1;break}if(!Bt){R=H+1;continue}let UA=Ee(J,h[C-1]+1,h[C])+u;if(UA>=l)return;let DA;if(E===0||E===C?DA=UA+1:I?DA=uo(J,UA,h[3]+1,h[4],h[E-1]+1,h[E],h[5]):DA=Ee(J,h[E-1]+1,h[E]),DA>g){let K=J[H-1]===ni?H-1:H,YA=p.decode(J.subarray(R,K));a(YA,ii(iA,O,cA,R,oA),UA,DA)}R=H+1}}y=Math.min(y*2,Eo),S(b+1+y)}}async getMetadata(e={}){return this.index.getMetadata(e)}async readHeaderBytes(e){let{firstDataLine:A,maxBlockSize:n}=await this.getMetadata(e),o=(A?.blockPosition??0)+n,i=await this.filehandle.read(o,0,e);return LA(i)}async parseHeader(e){let{metaChar:A,skipLines:n=0}=await this.getMetadata(e),o=await this.readHeaderBytes(e);return{header:oi.decode(A?ti(o,A):o),skippedLines:n>0?po(o,n):[]}}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),n=await this.readHeaderBytes(e);return A?ti(n,A):n}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:n}=await this.getParsedHeader(e);return(A?A.split(/\r?\n/):n).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 n=await this.filehandle.read(e.fetchedSize(),e.minv.blockPosition,A),o=await this.bgzfWorkerPool;return At(n,e,o)}};var No=50*2**20,mo=t=>({type:"fileLocation",defaultValue:{uri:t,locationType:"UriLocation"}}),Ss=(t,e="")=>ct(t,{indexType:{model:ft.enumeration("IndexType",["TBI","CSI"]),type:"stringEnum",defaultValue:"TBI"},location:mo(e)});function yo(t,e,A){return{indexType:A?"CSI":"TBI",location:{uri:`${t}.${A?"csi":"tbi"}`,baseUri:e}}}function Js(t){let{walksUri:e,baseUri:A,csi:n}=t;if(typeof e!="string")return t;let o=`${e}.walks.bed.gz`;return{...t,walksLocation:{uri:o,baseUri:A},walksIndex:yo(o,A,n)}}function vs(t,e,A){let n=t.pluginManager;return new pA({filehandle:ht(t.getConf(e),n),...lt(t.getConf([...A,"location"]),t.getConf([...A,"indexType"]),n),chunkCacheSize:No})}var ri=class{constructor(e,A){this.file=e;this.adapter=A;this.lookup=ut({setup:async e=>FA(await this.file.getReferenceSequenceNames(e))})}async assemblyRefNames(e={}){let A=await this.file.getReferenceSequenceNames(e),n=he(this.adapter,e.assemblyName),o=A.filter(i=>Et(i,n)).map(i=>Ct(i));return o.length>0?[...new Set(o)]:A}async resolve(e,A){let n=await this.lookup(A);return bA(n,he(this.adapter,e.assemblyName),e.refName)}async regionBytes(e,A={},n=async o=>o){let o=[];for(let i of e){let r=await this.resolve(i,A);r!==void 0&&o.push({refName:r,start:await n(i.start),end:i.end})}return Jt(this.file,o,A)}};export{LA as a,Fo as b,ut as c,Ii as d,Qi as e,hi as f,be as g,Po as h,mo as i,Ss as j,yo as k,Js as l,vs as m,ri as n};
2
+ //# sourceMappingURL=chunk-FHZXW7IG.js.map