@flyfish-group/file-viewer-web 1.0.22 → 1.0.23

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 (260) hide show
  1. package/README.md +5 -3
  2. package/dist/index.d.ts +30 -2
  3. package/dist/index.js +5 -2
  4. package/package.json +1 -1
  5. package/viewer/_headers +7 -0
  6. package/viewer/assets/ArchiveViewer-CZ4MDsrb.js +1 -0
  7. package/viewer/assets/AudioViewer-DjyDsudI.js +1 -0
  8. package/viewer/assets/CadViewer-BInkfPwZ.css +1 -0
  9. package/viewer/assets/CadViewer-BdTvIAMP.js +106 -0
  10. package/viewer/assets/CodeViewer-57pZ6W1s.js +2 -0
  11. package/viewer/assets/DrawingViewer-NO4nzeA1.js +2 -0
  12. package/viewer/assets/EdaViewer-B296bd4C.js +8 -0
  13. package/viewer/assets/EmailViewer-CPSeSuYo.js +4 -0
  14. package/viewer/assets/EpubViewer-BCSRMeWe.js +2 -0
  15. package/viewer/assets/ImageViewer-DnZM9hve.js +1 -0
  16. package/viewer/assets/{MarkdownViewer-DUe9OWgX.js → MarkdownViewer-CmNTA_kD.js} +2 -2
  17. package/viewer/assets/ModelViewer-D9x3ivqk.js +2 -0
  18. package/viewer/assets/OfdViewer-IhXBAdUl.js +2 -0
  19. package/viewer/assets/{PdfView-qL9biz6K.js → PdfView-E1iujAnQ.js} +19 -19
  20. package/viewer/assets/PdfView-fzvUeFZP.css +1 -0
  21. package/viewer/assets/{PptxRender-CgGc0Lmd.js → PptxRender-Dad6hvcj.js} +2 -2
  22. package/viewer/assets/TypstViewer-gzZvcE-4.js +60 -0
  23. package/viewer/assets/UmdViewer-YzLD0vlj.js +3 -0
  24. package/viewer/assets/XlsxTable-CZSQVOJ0.js +5 -0
  25. package/viewer/assets/__vite-browser-external-BZdVR8v7.js +1 -0
  26. package/viewer/assets/{ar-SA-G6X2FPQ2-Ct8pPIA9.js → ar-SA-G6X2FPQ2-DIej4228.js} +1 -1
  27. package/viewer/assets/architecture-7EHR7CIX-sRujR5WN.js +1 -0
  28. package/viewer/assets/architectureDiagram-3BPJPVTR-aQ-MRDKN.js +36 -0
  29. package/viewer/assets/archive-CRrvkqZk.js +2 -0
  30. package/viewer/assets/audio-DWT9z9tK.js +2 -0
  31. package/viewer/assets/{az-AZ-76LH7QW2-CzGVqBxA.js → az-AZ-76LH7QW2-CS2qXUFa.js} +1 -1
  32. package/viewer/assets/{bg-BG-XCXSNQG7-BC1WHeuj.js → bg-BG-XCXSNQG7-9ujIdMwb.js} +1 -1
  33. package/viewer/assets/{blockDiagram-GPEHLZMM-CzYTB9qf.js → blockDiagram-GPEHLZMM-DkVCZJHC.js} +1 -1
  34. package/viewer/assets/{bn-BD-2XOGV67Q-oDxumlGl.js → bn-BD-2XOGV67Q-Bz4MKzNd.js} +1 -1
  35. package/viewer/assets/{c4Diagram-AAUBKEIU-Ce3rQlcz.js → c4Diagram-AAUBKEIU-BhUtgtBE.js} +1 -1
  36. package/viewer/assets/{ca-ES-6MX7JW3Y-DlRpGNhJ.js → ca-ES-6MX7JW3Y-CQ0i-M2m.js} +1 -1
  37. package/viewer/assets/cad-B78pKw7N.js +2 -0
  38. package/viewer/assets/{cfb-BzFYazhG.js → cfb-DgjGJYYS.js} +1 -1
  39. package/viewer/assets/channel-Dz5mnghj.js +1 -0
  40. package/viewer/assets/{chunk-2J33WTMH-sJnJZdWK.js → chunk-2J33WTMH-CruGLWY_.js} +1 -1
  41. package/viewer/assets/{chunk-3OPIFGDE-Dy9HIqGz.js → chunk-3OPIFGDE-BBTvqaNI.js} +1 -1
  42. package/viewer/assets/{chunk-4BX2VUAB-_gCngxqj.js → chunk-4BX2VUAB-DnDF0gw2.js} +1 -1
  43. package/viewer/assets/{chunk-55IACEB6-DJVZWNP2.js → chunk-55IACEB6-BXXbpqd4.js} +1 -1
  44. package/viewer/assets/{chunk-5ZQYHXKU-BmHYmhZg.js → chunk-5ZQYHXKU-D-OgLpMs.js} +1 -1
  45. package/viewer/assets/{chunk-727SXJPM-Bat8V6oA.js → chunk-727SXJPM-DF6e3Zgf.js} +1 -1
  46. package/viewer/assets/chunk-AGHRB4JF-Fz9kp2Fp.js +1 -0
  47. package/viewer/assets/{chunk-AQP2D5EJ-1mc6GFJc.js → chunk-AQP2D5EJ-B3sX7UtP.js} +1 -1
  48. package/viewer/assets/{chunk-BSJP7CBP-B5-KaGur.js → chunk-BSJP7CBP-BkJdmh17.js} +1 -1
  49. package/viewer/assets/{chunk-CSCIHK7Q-B8WcTeuL.js → chunk-CSCIHK7Q-VDPd5eNJ.js} +1 -1
  50. package/viewer/assets/{chunk-EIO257PC-DamrG-x6.js → chunk-EIO257PC-Dq8JiXSZ.js} +1 -1
  51. package/viewer/assets/{chunk-FMBD7UC4-UHfET5Yn.js → chunk-FMBD7UC4-CKA5OKZ8.js} +1 -1
  52. package/viewer/assets/{chunk-K2UTITRG-CW6VmW0l.js → chunk-K2UTITRG-BEkZoneJ.js} +4 -4
  53. package/viewer/assets/{chunk-KSCS5N6A-D-BXbKOk.js → chunk-KSCS5N6A-BuXf0YOu.js} +1 -1
  54. package/viewer/assets/{chunk-L5ZTLDWV-CMDQijEU.js → chunk-L5ZTLDWV-CzNJ_8is.js} +1 -1
  55. package/viewer/assets/chunk-LZXEDZCA-n9zJSIw5.js +2 -0
  56. package/viewer/assets/{chunk-ND2GUHAM-Vx_Lzab7.js → chunk-ND2GUHAM-zGgwlxna.js} +1 -1
  57. package/viewer/assets/{chunk-NZK2D7GU-grlSNYf9.js → chunk-NZK2D7GU-Cte2JwiA.js} +1 -1
  58. package/viewer/assets/{chunk-O5CBEL6O-MjJGEUAK.js → chunk-O5CBEL6O-Bu7jDUJy.js} +1 -1
  59. package/viewer/assets/chunk-QZHKN3VN-DmWvf513.js +1 -0
  60. package/viewer/assets/{chunk-SRAX5OIU-WEWN8Pf_.js → chunk-SRAX5OIU-w1svEpmY.js} +1 -1
  61. package/viewer/assets/{chunk-WU5MYG2G-CpDqo4az.js → chunk-WU5MYG2G-h67ucwKy.js} +1 -1
  62. package/viewer/assets/{chunk-XPW4576I-CSqlWRxK.js → chunk-XPW4576I-SsWL9gHk.js} +1 -1
  63. package/viewer/assets/classDiagram-4FO5ZUOK-B-NZYxkE.js +1 -0
  64. package/viewer/assets/classDiagram-v2-Q7XG4LA2-B-NZYxkE.js +1 -0
  65. package/viewer/assets/compare-BA1y8ff-.css +1 -0
  66. package/viewer/assets/compare-CYFnIciQ.js +1 -0
  67. package/viewer/assets/{compiler-BV9U7LKi.js → compiler-Doo7uL6g.js} +1 -1
  68. package/viewer/assets/core-DHC7JJ3v.js +3 -0
  69. package/viewer/assets/cose-bilkent-S5V4N54A-BbY9gLB6.js +1 -0
  70. package/viewer/assets/{cs-CZ-2BRQDIVT-C_SPqQME.js → cs-CZ-2BRQDIVT-CNJY03Br.js} +1 -1
  71. package/viewer/assets/{da-DK-5WZEPLOC-CEZavbB3.js → da-DK-5WZEPLOC-kycNORr2.js} +1 -1
  72. package/viewer/assets/{dagre-BM42HDAG-lquvmcKk.js → dagre-BM42HDAG-CtFkfSMu.js} +1 -1
  73. package/viewer/assets/{de-DE-XR44H4JA-D2nL0tOJ.js → de-DE-XR44H4JA-DgEFBHUE.js} +1 -1
  74. package/viewer/assets/{diagram-2AECGRRQ-BgQ_zxBV.js → diagram-2AECGRRQ-OITOieDL.js} +1 -1
  75. package/viewer/assets/{diagram-5GNKFQAL-BC3w3tNm.js → diagram-5GNKFQAL-CkpmTcRT.js} +1 -1
  76. package/viewer/assets/{diagram-KO2AKTUF-D3cznkJB.js → diagram-KO2AKTUF-Q-LQjcLw.js} +1 -1
  77. package/viewer/assets/{diagram-LMA3HP47--wquG14e.js → diagram-LMA3HP47-BlbmzDQ6.js} +1 -1
  78. package/viewer/assets/{diagram-OG6HWLK6-C_POLZjQ.js → diagram-OG6HWLK6-CcX1M4RU.js} +1 -1
  79. package/viewer/assets/{dist-BPGt6zWy.js → dist-Bgk0P6Wx.js} +4 -4
  80. package/viewer/assets/dist-BzZSLV34.js +1 -0
  81. package/viewer/assets/{dist-BT9pIsX0.js → dist-idVqPIzq.js} +1 -1
  82. package/viewer/assets/docx-preview-CbKtHvXt.js +20 -0
  83. package/viewer/assets/drawing-Cg8yKw0a.js +2 -0
  84. package/viewer/assets/ebook-B0xdVki1.js +2 -0
  85. package/viewer/assets/eda-DB_j3--n.js +2 -0
  86. package/viewer/assets/{el-GR-BZB4AONW-Dj2P_01-.js → el-GR-BZB4AONW-DQbI2D0z.js} +1 -1
  87. package/viewer/assets/email-ZYgs8alH.js +2 -0
  88. package/viewer/assets/{en-B4ZKOASM-C1I96dn5.js → en-B4ZKOASM-gYELMyZ6.js} +1 -1
  89. package/viewer/assets/{erDiagram-TEJ5UH35-DJEqPp7l.js → erDiagram-TEJ5UH35-DEgxv-IW.js} +1 -1
  90. package/viewer/assets/{es-ES-U4NZUMDT-DrUBr8IT.js → es-ES-U4NZUMDT-e1S39Ti1.js} +1 -1
  91. package/viewer/assets/{eu-ES-A7QVB2H4-C-B8VObw.js → eu-ES-A7QVB2H4-BFR4rl79.js} +1 -1
  92. package/viewer/assets/eventmodeling-FCH6USID-BtBKHIsk.js +1 -0
  93. package/viewer/assets/{fa-IR-HGAKTJCU-D2fbIqFb.js → fa-IR-HGAKTJCU-D9rZqekR.js} +1 -1
  94. package/viewer/assets/{fi-FI-Z5N7JZ37-ljqLaVsp.js → fi-FI-Z5N7JZ37-LaYcmFdb.js} +1 -1
  95. package/viewer/assets/{flowDiagram-I6XJVG4X-Brfn5DdP.js → flowDiagram-I6XJVG4X-nqVkey0o.js} +1 -1
  96. package/viewer/assets/{fr-FR-RHASNOE6-So7R4D2i.js → fr-FR-RHASNOE6-DaN_dVyx.js} +1 -1
  97. package/viewer/assets/{ganttDiagram-6RSMTGT7-DdIjVTfn.js → ganttDiagram-6RSMTGT7-B5XdNYHP.js} +1 -1
  98. package/viewer/assets/{gitGraph-WXDBUCRP-oU5uBMJp.js → gitGraph-WXDBUCRP-CcEeprvc.js} +1 -1
  99. package/viewer/assets/{gitGraphDiagram-PVQCEYII-5HIom59P.js → gitGraphDiagram-PVQCEYII-DoyI3hWK.js} +1 -1
  100. package/viewer/assets/{gl-ES-HMX3MZ6V-C7WCIWks.js → gl-ES-HMX3MZ6V-Dw-96yV4.js} +1 -1
  101. package/viewer/assets/{he-IL-6SHJWFNN-EBe1DN0h.js → he-IL-6SHJWFNN-DSze4qOo.js} +1 -1
  102. package/viewer/assets/{hi-IN-IWLTKZ5I-BKN0Rgs4.js → hi-IN-IWLTKZ5I-BrDOKcx0.js} +1 -1
  103. package/viewer/assets/{hu-HU-A5ZG7DT2-B0fRz8s0.js → hu-HU-A5ZG7DT2-B5MZHRE0.js} +1 -1
  104. package/viewer/assets/{id-ID-SAP4L64H-D-3naLhp.js → id-ID-SAP4L64H-CLeuopyl.js} +1 -1
  105. package/viewer/assets/image-0vZMjp0Z.js +2 -0
  106. package/viewer/assets/image-GAAHSSAO-Di-5eHoS.js +1 -0
  107. package/viewer/assets/{info-J43DQDTF-Cj7_d75e.js → info-J43DQDTF-ECAOGDME.js} +1 -1
  108. package/viewer/assets/{infoDiagram-5YYISTIA-BFSVMUo8.js → infoDiagram-5YYISTIA-C0vYc3h2.js} +1 -1
  109. package/viewer/assets/{ishikawaDiagram-YF4QCWOH-yoVOo1dl.js → ishikawaDiagram-YF4QCWOH-CG_Ph_lH.js} +1 -1
  110. package/viewer/assets/{it-IT-JPQ66NNP-BAUX4Gc2.js → it-IT-JPQ66NNP-CU1apqHk.js} +1 -1
  111. package/viewer/assets/{ja-JP-DBVTYXUO-DI1TIyfM.js → ja-JP-DBVTYXUO-B39Q-cJE.js} +1 -1
  112. package/viewer/assets/{journeyDiagram-JHISSGLW-Bbi4OnEP.js → journeyDiagram-JHISSGLW-Bls8b6p5.js} +1 -1
  113. package/viewer/assets/{jszip.min-9ZVZbTBP.js → jszip.min-CoyCHGS6.js} +1 -1
  114. package/viewer/assets/{kaa-6HZHGXH3-CDl8fx0o.js → kaa-6HZHGXH3-DNr0Hbws.js} +1 -1
  115. package/viewer/assets/{kab-KAB-ZGHBKWFO-DpRjaTvY.js → kab-KAB-ZGHBKWFO-DUqxtUd5.js} +1 -1
  116. package/viewer/assets/{kanban-definition-UN3LZRKU-CjkfgLaF.js → kanban-definition-UN3LZRKU-D7NWNdGb.js} +1 -1
  117. package/viewer/assets/{kk-KZ-P5N5QNE5-zK-_fVIW.js → kk-KZ-P5N5QNE5-oAQRY--4.js} +1 -1
  118. package/viewer/assets/{km-KH-HSX4SM5Z-DehsMGky.js → km-KH-HSX4SM5Z-aIsalLJg.js} +1 -1
  119. package/viewer/assets/{ko-KR-MTYHY66A-MXYhOsjv.js → ko-KR-MTYHY66A-Dxxq4OHv.js} +1 -1
  120. package/viewer/assets/{ku-TR-6OUDTVRD-C7q1COiN.js → ku-TR-6OUDTVRD-cGosJj47.js} +1 -1
  121. package/viewer/assets/{lib-DIWU3KRt.js → lib-DVPOsS0g.js} +2 -2
  122. package/viewer/assets/{lt-LT-XHIRWOB4-DdM8RTKz.js → lt-LT-XHIRWOB4-BrbcDiBa.js} +1 -1
  123. package/viewer/assets/{lv-LV-5QDEKY6T-JLG8FSEV.js → lv-LV-5QDEKY6T-BJB3sRF-.js} +1 -1
  124. package/viewer/assets/main-BmxokhSj.js +4 -0
  125. package/viewer/assets/main-G-3rADWH.css +1 -0
  126. package/viewer/assets/md-GXqo3xMM.js +2 -0
  127. package/viewer/assets/{mermaid-parser.core-BENCcCsY.js → mermaid-parser.core-919mtcVP.js} +2 -2
  128. package/viewer/assets/{mindmap-definition-RKZ34NQL-Da3VSyjd.js → mindmap-definition-RKZ34NQL-jpsqOaHj.js} +1 -1
  129. package/viewer/assets/model-DNiDRYMH.js +2 -0
  130. package/viewer/assets/{mr-IN-CRQNXWMA-CVFsyXLA.js → mr-IN-CRQNXWMA-DYl82JZe.js} +1 -1
  131. package/viewer/assets/{my-MM-5M5IBNSE-D0d4LZCZ.js → my-MM-5M5IBNSE-CdnDB-54.js} +1 -1
  132. package/viewer/assets/{nb-NO-T6EIAALU-zKIQ8i0_.js → nb-NO-T6EIAALU-T-ly9gG2.js} +1 -1
  133. package/viewer/assets/nestedRender-BAYFA7cb.js +3 -0
  134. package/viewer/assets/{nl-NL-IS3SIHDZ-nx6qzVMe.js → nl-NL-IS3SIHDZ-CZqPZnHj.js} +1 -1
  135. package/viewer/assets/{nn-NO-6E72VCQL-DlUCFzXM.js → nn-NO-6E72VCQL-CvMupQbc.js} +1 -1
  136. package/viewer/assets/{oc-FR-POXYY2M6-B_FaqiYz.js → oc-FR-POXYY2M6-BRlPd_BR.js} +1 -1
  137. package/viewer/assets/ofd-BJzyd_Eq.js +2 -0
  138. package/viewer/assets/{ofd-CmAfXjFW.js → ofd-roCNaEHA.js} +1 -1
  139. package/viewer/assets/{pa-IN-N4M65BXN-YH5GORnI.js → pa-IN-N4M65BXN-BfVUAlRi.js} +1 -1
  140. package/viewer/assets/package-Bop5TfAT.js +296 -0
  141. package/viewer/assets/package-OvxnQO7z.css +1 -0
  142. package/viewer/assets/{packet-YPE3B663-CbkeKKRx.js → packet-YPE3B663-BLIVl-jG.js} +1 -1
  143. package/viewer/assets/pdf-CDtYB0WY.js +2 -0
  144. package/viewer/assets/percentages-BXMCSKIN-C5NgCvxl.js +1 -0
  145. package/viewer/assets/{pica-BnQTSY_g.js → pica-Dfy4NaK_.js} +1 -1
  146. package/viewer/assets/{pie-LRSECV5Y-DtfPCqZg.js → pie-LRSECV5Y-DcYPzp1c.js} +1 -1
  147. package/viewer/assets/{pieDiagram-4H26LBE5-DKuS6vJG.js → pieDiagram-4H26LBE5-CMzoHPw-.js} +1 -1
  148. package/viewer/assets/{pl-PL-T2D74RX3-BmZoKFT7.js → pl-PL-T2D74RX3-CXvOHlyd.js} +1 -1
  149. package/viewer/assets/pptx-CI2NrkhY.js +2 -0
  150. package/viewer/assets/{prod-DPLJAbJU.js → prod-B0HxyDM0.js} +6 -6
  151. package/viewer/assets/{pt-BR-5N22H2LF-sN9sRoQ_.js → pt-BR-5N22H2LF-CAHMJIN0.js} +1 -1
  152. package/viewer/assets/{pt-PT-UZXXM6DQ-CY-MOlkp.js → pt-PT-UZXXM6DQ-9stw3O1j.js} +1 -1
  153. package/viewer/assets/{quadrantDiagram-W4KKPZXB-NwMS_YqW.js → quadrantDiagram-W4KKPZXB-BS8uQ6E6.js} +1 -1
  154. package/viewer/assets/{radar-GUYGQ44K-DOIjAHXC.js → radar-GUYGQ44K-Bqokr2eR.js} +1 -1
  155. package/viewer/assets/renderer-BMLnfeSl.js +1 -0
  156. package/viewer/assets/{requirementDiagram-4Y6WPE33-sPbqvYv9.js → requirementDiagram-4Y6WPE33-pyX-Egau.js} +1 -1
  157. package/viewer/assets/{ro-RO-JPDTUUEW-CR28nHgw.js → ro-RO-JPDTUUEW-_Ym6U2of.js} +1 -1
  158. package/viewer/assets/{rough.esm-C4Phtcrp.js → rough.esm-DjrMDdlL.js} +1 -1
  159. package/viewer/assets/{ru-RU-B4JR7IUQ-CGKVxm63.js → ru-RU-B4JR7IUQ-DWUO9__j.js} +1 -1
  160. package/viewer/assets/runtime-core.esm-bundler-DO-WTVbd.js +1 -0
  161. package/viewer/assets/{sankeyDiagram-5OEKKPKP-C50FIC8Y.js → sankeyDiagram-5OEKKPKP-BIl0S1dQ.js} +1 -1
  162. package/viewer/assets/{sequenceDiagram-3UESZ5HK-Bi1R7g7S.js → sequenceDiagram-3UESZ5HK-EhMFCxNn.js} +1 -1
  163. package/viewer/assets/{si-LK-N5RQ5JYF-BW7AdTgs.js → si-LK-N5RQ5JYF-DOuaKjIP.js} +1 -1
  164. package/viewer/assets/{sk-SK-C5VTKIMK-B9b1lWlx.js → sk-SK-C5VTKIMK-D04wnRn8.js} +1 -1
  165. package/viewer/assets/{sl-SI-NN7IZMDC-DOPNH4Mv.js → sl-SI-NN7IZMDC-DlSoyI38.js} +1 -1
  166. package/viewer/assets/{src-D_WiFutn.js → src-CmLfrMFg.js} +4 -4
  167. package/viewer/assets/{stateDiagram-AJRCARHV-laY9nBdY.js → stateDiagram-AJRCARHV-CBylKBpj.js} +1 -1
  168. package/viewer/assets/stateDiagram-v2-BHNVJYJU-f7X6eKbo.js +1 -0
  169. package/viewer/assets/subset-shared.chunk-WzaeClRm.js +1 -0
  170. package/viewer/assets/{subset-worker.chunk-CvvTW5M7.js → subset-worker.chunk-CXi44O4x.js} +1 -1
  171. package/viewer/assets/{sv-SE-XGPEYMSR-CPLWZrAn.js → sv-SE-XGPEYMSR-y8nUmsTq.js} +1 -1
  172. package/viewer/assets/{ta-IN-2NMHFXQM-D55L614R.js → ta-IN-2NMHFXQM-BTlY1MOo.js} +1 -1
  173. package/viewer/assets/text-BTWcQTKM.js +2 -0
  174. package/viewer/assets/{th-TH-HPSO5L25-D3MPD0Md.js → th-TH-HPSO5L25-B0-Jm0dR.js} +1 -1
  175. package/viewer/assets/{timeline-definition-PNZ67QCA-DqotLxx2.js → timeline-definition-PNZ67QCA-BrR0Lwj6.js} +1 -1
  176. package/viewer/assets/{tr-TR-DEFEU3FU-Q8xsSXAo.js → tr-TR-DEFEU3FU-CuiTnA8n.js} +1 -1
  177. package/viewer/assets/{treeView-BLDUP644-CPi2xY7A.js → treeView-BLDUP644-B3NDovtS.js} +1 -1
  178. package/viewer/assets/{treemap-LRROVOQU-C8Mj1X4O.js → treemap-LRROVOQU-CNBN28UV.js} +1 -1
  179. package/viewer/assets/typst-BlzZcMe5.js +2 -0
  180. package/viewer/assets/{uk-UA-QMV73CPH-Dnl8D1p8.js → uk-UA-QMV73CPH-za143PJQ.js} +1 -1
  181. package/viewer/assets/umd-CaNdxjcL.js +2 -0
  182. package/viewer/assets/{vennDiagram-CIIHVFJN-BIkyq-4v.js → vennDiagram-CIIHVFJN-BkqtdITb.js} +1 -1
  183. package/viewer/assets/{vi-VN-M7AON7JQ-DQI4i_hS.js → vi-VN-M7AON7JQ-BkwUlhW4.js} +1 -1
  184. package/viewer/assets/{wardley-L42UT6IY-DJWWSlJn.js → wardley-L42UT6IY-B82Hng0D.js} +1 -1
  185. package/viewer/assets/{wardleyDiagram-YWT4CUSO-2IdxQGv-.js → wardleyDiagram-YWT4CUSO-d1SlYFch.js} +1 -1
  186. package/viewer/assets/word-CbznmAOT.js +126 -0
  187. package/viewer/assets/xlsx-B70Tzp_0.js +2 -0
  188. package/viewer/assets/{xychartDiagram-2RQKCTM6-Bks5TALn.js → xychartDiagram-2RQKCTM6-AETQ-2hJ.js} +1 -1
  189. package/viewer/assets/{zh-CN-LNUGB5OW-ByzhDQAP.js → zh-CN-LNUGB5OW-CLMN5wFH.js} +1 -1
  190. package/viewer/assets/{zh-HK-E62DVLB3-Dyd19evA.js → zh-HK-E62DVLB3-BQAhIarC.js} +1 -1
  191. package/viewer/assets/{zh-TW-RAJ6MFWO-D2sseOtI.js → zh-TW-RAJ6MFWO-D3o6FRFS.js} +1 -1
  192. package/viewer/compare.html +5 -4
  193. package/viewer/flyfish-viewer-manifest.json +1 -1
  194. package/viewer/index.html +6 -5
  195. package/viewer/wasm/cad/DwgWorker-CuZJ5EUe.js +349 -0
  196. package/viewer/wasm/cad/dwfv-render.wasm +0 -0
  197. package/viewer/wasm/cad/dwg-worker.js +349 -0
  198. package/viewer/wasm/cad/index-C365l3i9.js +4161 -0
  199. package/viewer/wasm/cad/libredwg-web.js +15 -0
  200. package/viewer/wasm/cad/libredwg-web.wasm +0 -0
  201. package/viewer/assets/ArchiveViewer-CPhpkbIj.js +0 -1
  202. package/viewer/assets/AudioViewer-B_qZjmsL.js +0 -1
  203. package/viewer/assets/CadViewer-DU2h_miC.js +0 -1
  204. package/viewer/assets/CadViewer-DZAS6XFY.css +0 -1
  205. package/viewer/assets/CodeViewer-n64org7g.js +0 -2
  206. package/viewer/assets/DrawingViewer-BsPDsvje.js +0 -2
  207. package/viewer/assets/EdaViewer-CRXNBqD8.js +0 -8
  208. package/viewer/assets/EmailViewer-BdKEJv7y.js +0 -4
  209. package/viewer/assets/EpubViewer-wPFt5vlJ.js +0 -2
  210. package/viewer/assets/ImageViewer-3xUYPq4w.js +0 -1
  211. package/viewer/assets/ModelViewer-LeKRgAjH.js +0 -2
  212. package/viewer/assets/OfdViewer-yYh014I9.js +0 -2
  213. package/viewer/assets/PdfView-CtiDN2FA.css +0 -1
  214. package/viewer/assets/TypstViewer-BWfhuA9V.js +0 -60
  215. package/viewer/assets/UmdViewer-BQg9tWl-.js +0 -3
  216. package/viewer/assets/XlsxTable-weyE_CEp.js +0 -5
  217. package/viewer/assets/__vite-browser-external-BEGdo7Ij.js +0 -1
  218. package/viewer/assets/architecture-7EHR7CIX-BTlHPVaJ.js +0 -1
  219. package/viewer/assets/architectureDiagram-3BPJPVTR-B-eDaTQ2.js +0 -36
  220. package/viewer/assets/archive-DwmH2EER.js +0 -2
  221. package/viewer/assets/audio-DP7_SHBq.js +0 -2
  222. package/viewer/assets/cad-S62Z1ew-.js +0 -2
  223. package/viewer/assets/channel-DdWUR2sn.js +0 -1
  224. package/viewer/assets/chunk-AGHRB4JF-N1YYSFfw.js +0 -1
  225. package/viewer/assets/chunk-LZXEDZCA-C3SSYZJ5.js +0 -2
  226. package/viewer/assets/chunk-QZHKN3VN-BsA9NQqS.js +0 -1
  227. package/viewer/assets/classDiagram-4FO5ZUOK-CNHAm630.js +0 -1
  228. package/viewer/assets/classDiagram-v2-Q7XG4LA2-CNHAm630.js +0 -1
  229. package/viewer/assets/compare-BDsbatdp.css +0 -1
  230. package/viewer/assets/compare-Bfimd92S.js +0 -1
  231. package/viewer/assets/core-CxoxnOTi.js +0 -3
  232. package/viewer/assets/cose-bilkent-S5V4N54A-COeDszYN.js +0 -1
  233. package/viewer/assets/dist-sSvuNO1e.js +0 -7
  234. package/viewer/assets/docx-preview-DdnRdWo4.js +0 -20
  235. package/viewer/assets/drawing-CMJwN97z.js +0 -2
  236. package/viewer/assets/ebook-DMvVt15d.js +0 -2
  237. package/viewer/assets/eda-DBL4Aevf.js +0 -2
  238. package/viewer/assets/email-DeRFcYIE.js +0 -2
  239. package/viewer/assets/eventmodeling-FCH6USID-B7JUE007.js +0 -1
  240. package/viewer/assets/image-Cr2N5G2B.js +0 -2
  241. package/viewer/assets/image-GAAHSSAO-fNZpvZ4Y.js +0 -1
  242. package/viewer/assets/main-CKt4m6T4.js +0 -4
  243. package/viewer/assets/main-Qy_H7MQU.css +0 -1
  244. package/viewer/assets/md-wWevhORM.js +0 -2
  245. package/viewer/assets/model-Bdx2Fqb-.js +0 -2
  246. package/viewer/assets/nestedRender-BecIPX74.js +0 -3
  247. package/viewer/assets/ofd-C8N_zW41.js +0 -2
  248. package/viewer/assets/package-D9RNadqh.js +0 -296
  249. package/viewer/assets/package-Dwgf8BpP.css +0 -1
  250. package/viewer/assets/pdf-ENBCQnjn.js +0 -2
  251. package/viewer/assets/percentages-BXMCSKIN-d_HmO-5v.js +0 -1
  252. package/viewer/assets/pptx-CJoRHTVc.js +0 -2
  253. package/viewer/assets/renderer-CtCQDwvN.js +0 -1
  254. package/viewer/assets/stateDiagram-v2-BHNVJYJU-D-TcJvmH.js +0 -1
  255. package/viewer/assets/subset-shared.chunk-BMWMi2iF.js +0 -1
  256. package/viewer/assets/text-DQQak32L.js +0 -2
  257. package/viewer/assets/typst-LCgT-gly.js +0 -2
  258. package/viewer/assets/umd--jna8_t9.js +0 -2
  259. package/viewer/assets/word-TCDf8xQo.js +0 -126
  260. package/viewer/assets/xlsx-D3PqLMcm.js +0 -2
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  纯 Web 文件预览组件。只提供私有化部署路线: npm 包随包携带 Vue 基线 viewer 产物;使用 `npm install` 或已允许 pnpm 安装脚本后,会自动复制到宿主项目的 `public/file-viewer`,组件默认加载 `/file-viewer/index.html`。
4
4
 
5
5
  ```bash
6
- npm install @flyfish-group/file-viewer-web@1.0.22
6
+ npm install @flyfish-group/file-viewer-web@1.0.23
7
7
  ```
8
8
 
9
9
  pnpm 10 默认会拦截依赖包的 `postinstall`。如果安装后提示 `Ignored build scripts: @flyfish-group/file-viewer-web`,请执行 `pnpm approve-builds` 允许该包,或运行 `pnpm exec file-viewer-copy-assets ./public/file-viewer`。复制脚本会先清空目标目录再复制,避免 `index.html` 和 `assets/*` hash 不同版本导致动态 import 404。
@@ -21,6 +21,8 @@ mountViewerFrame(document.getElementById('viewer')!, {
21
21
  options: {
22
22
  theme: 'light',
23
23
  toolbar: { position: 'bottom-right' },
24
+ search: { maxMatches: 1000 },
25
+ pdf: { toolbar: true },
24
26
  watermark: { text: '内部预览', opacity: 0.14 },
25
27
  archive: { workerUrl: '/file-viewer/vendor/libarchive/worker-bundle.js', cache: true }
26
28
  }
@@ -59,9 +61,9 @@ mountViewerFrame(el, {
59
61
 
60
62
  ```html
61
63
  <iframe
62
- src="/vendor/file-viewer/index.html?url=%2Ffiles%2Fdemo.docx&__flyfish_viewer_version=1.0.22"
64
+ src="/vendor/file-viewer/index.html?url=%2Ffiles%2Fdemo.docx&__flyfish_viewer_version=1.0.23"
63
65
  style="width: 100%; height: 100vh; border: 0"
64
66
  ></iframe>
65
67
  ```
66
68
 
67
- `options` 会透传给 Vue 基线预览器,可配置主题、下载/打印/导出 HTML 操作栏、文字或图片水印,以及压缩包预览的 `libarchive.js` Worker、IndexedDB 缓存和体积上限。`theme` 支持 `light`、`dark`、`system`,默认跟随系统;固定浅色宿主 UI 建议传 `theme: 'light'`。`toolbar.position` 支持 `auto`、`top`、`bottom-right`,默认 `auto`,PDF 会自动悬浮到右下角以避开自身导航栏。打印按钮会按当前格式和渲染链路动态显隐;Word / PDF 打印和导出会生成完整页面,不依赖当前 iframe 视口或已渲染 canvas。生命周期、操作能力变化和内置操作事件会通过 `onEvent` 回传给宿主,适合记录加载耗时、审计下载/打印尝试和同步外部状态。
69
+ `options` 会透传给 Vue 基线预览器,可配置主题、下载/打印/导出 HTML 操作栏、文字或图片水印、搜索高亮、AI 友好文本切片,以及压缩包预览的 `libarchive.js` Worker、IndexedDB 缓存和体积上限。`theme` 支持 `light`、`dark`、`system`,默认跟随系统;固定浅色宿主 UI 建议传 `theme: 'light'`。`toolbar.position` 支持 `auto`、`top`、`bottom-right`,默认 `auto`,PDF 会自动悬浮到右下角以避开自身导航栏;`pdf.toolbar` 可隐藏 PDF 自身工具栏,适合文档比对等紧凑场景。搜索 API 会按格式选择最佳链路,PDF 走 PDF.js 原生搜索,文本类格式走通用 DOM 高亮。打印按钮会按当前格式和渲染链路动态显隐;Word / PDF 打印和导出会生成完整页面,不依赖当前 iframe 视口或已渲染 canvas。生命周期、操作能力变化、搜索状态和当前位置会通过 `onEvent` 回传给宿主,事件类型包括 `flyfish-viewer:lifecycle`、`flyfish-viewer:operation`、`flyfish-viewer:search` 和 `flyfish-viewer:location`,适合记录加载耗时、审计下载/打印尝试、搜索命中、页码/行号、AI 切片和溯源状态。
package/dist/index.d.ts CHANGED
@@ -30,6 +30,31 @@ export interface ViewerArchiveOptions {
30
30
  maxArchiveSize?: number;
31
31
  maxEntryPreviewSize?: number;
32
32
  }
33
+ export interface ViewerPdfOptions {
34
+ toolbar?: boolean;
35
+ navigation?: boolean;
36
+ defaultNavigationVisible?: boolean;
37
+ rotation?: number;
38
+ streaming?: boolean | 'same-origin';
39
+ rangeChunkSize?: number;
40
+ withCredentials?: boolean;
41
+ }
42
+ export interface ViewerSearchOptions {
43
+ enabled?: boolean;
44
+ caseSensitive?: boolean;
45
+ wholeWord?: boolean;
46
+ maxMatches?: number;
47
+ debounce?: number;
48
+ className?: string;
49
+ activeClassName?: string;
50
+ }
51
+ export interface ViewerAiOptions {
52
+ enabled?: boolean;
53
+ collectText?: boolean;
54
+ maxTextLength?: number;
55
+ chunkSize?: number;
56
+ chunkOverlap?: number;
57
+ }
33
58
  export type ViewerThemeMode = 'light' | 'dark' | 'system';
34
59
  export interface ViewerRuntimeOptions {
35
60
  /**
@@ -39,9 +64,12 @@ export interface ViewerRuntimeOptions {
39
64
  theme?: ViewerThemeMode;
40
65
  watermark?: boolean | ViewerWatermarkOptions;
41
66
  toolbar?: boolean | ViewerToolbarOptions;
67
+ search?: boolean | ViewerSearchOptions;
68
+ ai?: boolean | ViewerAiOptions;
42
69
  archive?: ViewerArchiveOptions;
70
+ pdf?: ViewerPdfOptions;
43
71
  }
44
- export type ViewerFrameEventType = 'flyfish-viewer:lifecycle' | 'flyfish-viewer:operation';
72
+ export type ViewerFrameEventType = 'flyfish-viewer:lifecycle' | 'flyfish-viewer:operation' | 'flyfish-viewer:search' | 'flyfish-viewer:location';
45
73
  export interface ViewerFrameEventPayload {
46
74
  type: ViewerFrameEventType;
47
75
  event: string;
@@ -110,7 +138,7 @@ export interface ViewerFrameController {
110
138
  }
111
139
  export declare const DEFAULT_VIEWER_PUBLIC_DIR = "/file-viewer";
112
140
  export declare const DEFAULT_VIEWER_URL = "/file-viewer/index.html";
113
- export declare const VIEWER_FRAME_CACHE_KEY = "1.0.22";
141
+ export declare const VIEWER_FRAME_CACHE_KEY = "1.0.23";
114
142
  export declare const getCurrentOrigin: () => string;
115
143
  export declare const getViewerUrl: (viewerUrl?: string) => string;
116
144
  export declare const getViewerOrigin: (viewerUrl?: string) => string;
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export const DEFAULT_VIEWER_PUBLIC_DIR = '/file-viewer';
2
2
  export const DEFAULT_VIEWER_URL = `${DEFAULT_VIEWER_PUBLIC_DIR}/index.html`;
3
- export const VIEWER_FRAME_CACHE_KEY = '1.0.22';
3
+ export const VIEWER_FRAME_CACHE_KEY = '1.0.23';
4
4
  const DEFAULT_FRAME_TITLE = 'Flyfish Viewer 文件预览';
5
5
  const FILE_POST_RETRY_LIMIT = 8;
6
6
  const FILE_POST_RETRY_INTERVAL = 120;
@@ -52,7 +52,10 @@ const isViewerFrameEvent = (value) => {
52
52
  return false;
53
53
  }
54
54
  const candidate = value;
55
- return candidate.type === 'flyfish-viewer:lifecycle' || candidate.type === 'flyfish-viewer:operation';
55
+ return candidate.type === 'flyfish-viewer:lifecycle' ||
56
+ candidate.type === 'flyfish-viewer:operation' ||
57
+ candidate.type === 'flyfish-viewer:search' ||
58
+ candidate.type === 'flyfish-viewer:location';
56
59
  };
57
60
  export const getCurrentOrigin = () => {
58
61
  return canUseDom() ? window.location.origin : '';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flyfish-group/file-viewer-web",
3
- "version": "1.0.22",
3
+ "version": "1.0.23",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Private-deploy pure web component for Flyfish Viewer",
package/viewer/_headers CHANGED
@@ -11,5 +11,12 @@
11
11
  /vendor/*
12
12
  Cache-Control: public, max-age=31536000, immutable
13
13
 
14
+ /wasm/*
15
+ Cache-Control: public, max-age=31536000, immutable
16
+ X-Content-Type-Options: nosniff
17
+
18
+ /wasm/*.wasm
19
+ Content-Type: application/wasm
20
+
14
21
  /example/*
15
22
  Cache-Control: public, max-age=86400
@@ -0,0 +1 @@
1
+ import{c as e,h as t,o as n,r,s as i,w as a}from"./package-Bop5TfAT.js";import{A as o,D as s,J as c,O as ee,T as l,X as u,Y as te,_ as ne,b as re,f as d,g as ie,h as ae,i as f,o as p,r as m,s as h,t as oe,y as g}from"./runtime-core.esm-bundler-DO-WTVbd.js";import{t as _}from"./nestedRender-BAYFA7cb.js";var v=`flyfish-file-viewer-cache`,y=`archiveEntries`,b=1,x=24*1024*1024,S=96*1024*1024,C=null,w=()=>typeof indexedDB<`u`,T=()=>w()?C||(C=new Promise((e,t)=>{let n=indexedDB.open(v,b);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(y)||e.createObjectStore(y,{keyPath:`key`}).createIndex(`updatedAt`,`updatedAt`)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)}),C):Promise.reject(Error(`IndexedDB 不可用`)),E=async(e,t)=>{let n=await T();return new Promise((r,i)=>{let a=n.transaction(y,e),o=t(a.objectStore(y));o.onsuccess=()=>r(o.result),o.onerror=()=>i(o.error),a.onerror=()=>i(a.error)})},D=async e=>{try{return await E(`readonly`,t=>t.get(e))||null}catch{return null}},O=async()=>{try{let e=await T();await new Promise((t,n)=>{let r=e.transaction(y,`readwrite`),i=r.objectStore(y),a=i.index(`updatedAt`),o=[],s=0;a.openCursor().onsuccess=e=>{let t=e.target.result;if(!t){for(;s>S&&o.length;){let e=o.shift();e&&(s-=e.size,i.delete(e.key))}return}let n=t.value;s+=n.size||0,o.push({key:n.key,size:n.size||0}),t.continue()},r.oncomplete=()=>t(),r.onerror=()=>n(r.error)})}catch{}},k=async e=>{if(!(e.size>x))try{await E(`readwrite`,t=>t.put({...e,updatedAt:Date.now()})),await O()}catch{}},A='/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst e=Symbol("Comlink.proxy"),r=Symbol("Comlink.endpoint"),t=Symbol("Comlink.releaseProxy"),n=Symbol("Comlink.finalizer"),o=Symbol("Comlink.thrown"),a=e=>"object"==typeof e&&null!==e||"function"==typeof e,s=new Map([["proxy",{canHandle:r=>a(r)&&r[e],serialize(e){const{port1:r,port2:t}=new MessageChannel;return i(e,r),[t,[t]]},deserialize(e){return e.start(),f(e,[],r);var r}}],["throw",{canHandle:e=>a(e)&&o in e,serialize({value:e}){let r;return r=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[r,[]]},deserialize(e){if(e.isError)throw Object.assign(new Error(e.value.message),e.value);throw e.value}}]]);function i(r,t=globalThis,a=["*"]){t.addEventListener("message",(function s(l){if(!l||!l.data)return;if(!function(e,r){for(const t of e){if(r===t||"*"===t)return!0;if(t instanceof RegExp&&t.test(r))return!0}return!1}(a,l.origin))return void console.warn(`Invalid origin \'${l.origin}\' for comlink proxy`);const{id:c,type:d,path:h}=Object.assign({path:[]},l.data),f=(l.data.argumentList||[]).map(w);let m;try{const t=h.slice(0,-1).reduce(((e,r)=>e[r]),r),n=h.reduce(((e,r)=>e[r]),r);switch(d){case"GET":m=n;break;case"SET":t[h.slice(-1)[0]]=w(l.data.value),m=!0;break;case"APPLY":m=n.apply(t,f);break;case"CONSTRUCT":m=function(r){return Object.assign(r,{[e]:!0})}(new n(...f));break;case"ENDPOINT":{const{port1:e,port2:t}=new MessageChannel;i(r,t),m=function(e,r){return p.set(e,r),e}(e,[e])}break;case"RELEASE":m=void 0;break;default:return}}catch(e){m={value:e,[o]:0}}Promise.resolve(m).catch((e=>({value:e,[o]:0}))).then((e=>{const[o,a]=v(e);t.postMessage(Object.assign(Object.assign({},o),{id:c}),a),"RELEASE"===d&&(t.removeEventListener("message",s),u(t),n in r&&"function"==typeof r[n]&&r[n]())})).catch((e=>{const[r,n]=v({value:new TypeError("Unserializable return value"),[o]:0});t.postMessage(Object.assign(Object.assign({},r),{id:c}),n)}))})),t.start&&t.start()}function u(e){(function(e){return"MessagePort"===e.constructor.name})(e)&&e.close()}function l(e){if(e)throw new Error("Proxy has been released and is not useable")}function c(e){return g(e,{type:"RELEASE"}).then((()=>{u(e)}))}const d=new WeakMap,h="FinalizationRegistry"in globalThis&&new FinalizationRegistry((e=>{const r=(d.get(e)||0)-1;d.set(e,r),0===r&&c(e)}));function f(e,n=[],o=function(){}){let a=!1;const s=new Proxy(o,{get(r,o){if(l(a),o===t)return()=>{!function(e){h&&h.unregister(e)}(s),c(e),a=!0};if("then"===o){if(0===n.length)return{then:()=>s};const r=g(e,{type:"GET",path:n.map((e=>e.toString()))}).then(w);return r.then.bind(r)}return f(e,[...n,o])},set(r,t,o){l(a);const[s,i]=v(o);return g(e,{type:"SET",path:[...n,t].map((e=>e.toString())),value:s},i).then(w)},apply(t,o,s){l(a);const i=n[n.length-1];if(i===r)return g(e,{type:"ENDPOINT"}).then(w);if("bind"===i)return f(e,n.slice(0,-1));const[u,c]=m(s);return g(e,{type:"APPLY",path:n.map((e=>e.toString())),argumentList:u},c).then(w)},construct(r,t){l(a);const[o,s]=m(t);return g(e,{type:"CONSTRUCT",path:n.map((e=>e.toString())),argumentList:o},s).then(w)}});return function(e,r){const t=(d.get(r)||0)+1;d.set(r,t),h&&h.register(e,r,e)}(s,e),s}function m(e){const r=e.map(v);return[r.map((e=>e[0])),(t=r.map((e=>e[1])),Array.prototype.concat.apply([],t))];var t}const p=new WeakMap;function v(e){for(const[r,t]of s)if(t.canHandle(e)){const[n,o]=t.serialize(e);return[{type:"HANDLER",name:r,value:n},o]}return[{type:"RAW",value:e},p.get(e)||[]]}function w(e){switch(e.type){case"HANDLER":return s.get(e.name).deserialize(e.value);case"RAW":return e.value}}function g(e,r,t){return new Promise((n=>{const o=new Array(4).fill(0).map((()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16))).join("-");e.addEventListener("message",(function r(t){t.data&&t.data.id&&t.data.id===o&&(e.removeEventListener("message",r),n(t.data))})),e.start&&e.start(),e.postMessage(Object.assign({id:o},r),t)}))}const _={32768:"FILE",16384:"DIR",40960:"SYMBOLIC_LINK",49152:"SOCKET",8192:"CHARACTER_DEVICE",24576:"BLOCK_DEVICE",4096:"NAMED_PIPE"};class y{constructor(e){this._wasmModule=e,this._runCode=e.runCode,this._file=null,this._passphrase=null,this._locale="en_US.UTF-8"}async open(e){null!==this._file&&(console.warn("Closing previous file"),this.close());const r=await this._loadFile(e);this._fileLength=r.length,this._filePtr=r.ptr}close(){this._runCode.closeArchive(this._archive),this._wasmModule._free(this._filePtr),this._file=null,this._filePtr=null,this._archive=null}hasEncryptedData(){this._archive=this._runCode.openArchive(this._filePtr,this._fileLength,this._passphrase,this._locale),this._runCode.getNextEntry(this._archive);const e=this._runCode.hasEncryptedEntries(this._archive);return 0!==e&&(e>0||null)}setPassphrase(e){this._passphrase=e}setLocale(e){this._locale=e}*entries(e=!1,r=null){let t;for(this._archive=this._runCode.openArchive(this._filePtr,this._fileLength,this._passphrase,this._locale);t=this._runCode.getNextEntry(this._archive),0!==t;){const n={size:this._runCode.getEntrySize(t),path:this._runCode.getEntryName(t),type:_[this._runCode.getEntryType(t)],lastModified:this._runCode.getEntryLastModified(t),ref:t};if("FILE"===n.type){let e=n.path.split("/");n.fileName=e[e.length-1]}if(e&&r!==n.path)this._runCode.skipEntry(this._archive);else{const e=this._runCode.getFileData(this._archive,n.size);if(e<0)throw new Error(this._runCode.getError(this._archive));n.fileData=this._wasmModule.HEAPU8.slice(e,e+n.size),this._wasmModule._free(e)}yield n}}async _loadFile(e){const r=await e.arrayBuffer(),t=new Uint8Array(r),n=this._runCode.malloc(t.length);return this._wasmModule.HEAPU8.set(t,n),{ptr:n,length:t.length}}}class E{constructor(e){this._wasmModule=e,this._runCode=e.runCode,this._passphrase=null,this._locale="en_US.UTF-8"}async write(e,r,t,n=null){let o=e.reduce(((e,{file:r})=>e+r.size+128),0)+128;const a=this._runCode.malloc(o),s=this._runCode.malloc(this._runCode.sizeOfSizeT()),i=this._runCode.startArchiveWrite(r,t,a,o,s,n);for(const{file:r,pathname:t}of e){const e=await this._loadFile(r);this._runCode.writeArchiveFile(i,t||r.name,e.length,e.ptr),this._runCode.free(e.ptr)}const u=this._runCode.finishArchiveWrite(i,s);if(u<0)throw new Error(this._runCode.getError(i));return this._wasmModule.HEAPU8.slice(a,a+u)}async _loadFile(e){const r=await e.arrayBuffer(),t=new Uint8Array(r),n=this._runCode.malloc(t.length);return this._wasmModule.HEAPU8.set(t,n),{ptr:n,length:t.length}}}var b,k=(b=import.meta.url,async function(e={}){var r,t,n=e;n.ready=new Promise(((e,n)=>{r=e,t=n}));var o,a,s,i=Object.assign({},n),u="./this.program",l=(e,r)=>{throw r},c="object"==typeof window,d="function"==typeof importScripts,h="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,f="";if(h){const{createRequire:e}=await import("module");var m=e(import.meta.url),p=m("fs"),v=m("path");f=d?v.dirname(f)+"/":m("url").fileURLToPath(new URL("./",import.meta.url)),o=(e,r)=>(e=Y(e)?new URL(e):v.normalize(e),p.readFileSync(e,r?void 0:"utf8")),s=e=>{var r=o(e,!0);return r.buffer||(r=new Uint8Array(r)),r},a=(e,r,t,n=!0)=>{e=Y(e)?new URL(e):v.normalize(e),p.readFile(e,n?void 0:"utf8",((e,o)=>{e?t(e):r(n?o.buffer:o)}))},!n.thisProgram&&process.argv.length>1&&(u=process.argv[1].replace(/\\\\/g,"/")),process.argv.slice(2),l=(e,r)=>{throw process.exitCode=e,r},n.inspect=()=>"[Emscripten Module object]"}else(c||d)&&(d?f=self.location.href:"undefined"!=typeof document&&document.currentScript&&(f=document.currentScript.src),b&&(f=b),f=0!==f.indexOf("blob:")?f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1):"",o=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},d&&(s=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),a=(e,r,t)=>{var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?r(n.response):t()},n.onerror=t,n.send(null)});var w,g,_=n.print||console.log.bind(console),y=n.printErr||console.error.bind(console);Object.assign(n,i),i=null,n.arguments&&n.arguments,n.thisProgram&&(u=n.thisProgram),n.quit&&(l=n.quit),n.wasmBinary&&(w=n.wasmBinary),"object"!=typeof WebAssembly&&O("no native wasm support detected");var E,k,S,F,D,M=!1;function A(e,r){e||O(r)}function C(){var e=g.buffer;n.HEAP8=E=new Int8Array(e),n.HEAP16=S=new Int16Array(e),n.HEAPU8=k=new Uint8Array(e),n.HEAPU16=new Uint16Array(e),n.HEAP32=F=new Int32Array(e),n.HEAPU32=D=new Uint32Array(e),n.HEAPF32=new Float32Array(e),n.HEAPF64=new Float64Array(e)}var P=[],T=[],R=[],z=0,U=null;function L(e){z++,n.monitorRunDependencies?.(z)}function x(e){if(z--,n.monitorRunDependencies?.(z),0==z&&U){var r=U;U=null,r()}}function O(e){n.onAbort?.(e),y(e="Aborted("+e+")"),M=!0,e+=". Build with -sASSERTIONS for more info.";var r=new WebAssembly.RuntimeError(e);throw t(r),r}var N,B,j,I,H=e=>e.startsWith("data:application/octet-stream;base64,"),Y=e=>e.startsWith("file://");function W(e){if(e==N&&w)return new Uint8Array(w);if(s)return s(e);throw"both async and sync fetching of the wasm failed"}function K(e,r,t){return function(e){if(!w&&(c||d)){if("function"==typeof fetch&&!Y(e))return fetch(e,{credentials:"same-origin"}).then((r=>{if(!r.ok)throw"failed to load wasm binary file at \'"+e+"\'";return r.arrayBuffer()})).catch((()=>W(e)));if(a)return new Promise(((r,t)=>{a(e,(e=>r(new Uint8Array(e))),t)}))}return Promise.resolve().then((()=>W(e)))}(e).then((e=>WebAssembly.instantiate(e,r))).then((e=>e)).then(t,(e=>{y(`failed to asynchronously prepare wasm: ${e}`),O(e)}))}function q(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}n.locateFile?H(N="libarchive.wasm")||(B=N,N=n.locateFile?n.locateFile(B,f):f+B):N=new URL("libarchive.wasm",import.meta.url).href;var $=e=>{for(;e.length>0;)e.shift()(n)},X=n.noExitRuntime||!0,Z={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/.exec(e).slice(1),normalizeArray:(e,r)=>{for(var t=0,n=e.length-1;n>=0;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift("..");return e},normalize:e=>{var r=Z.isAbs(e),t="/"===e.substr(-1);return(e=Z.normalizeArray(e.split("/").filter((e=>!!e)),!r).join("/"))||r||(e="."),e&&t&&(e+="/"),(r?"/":"")+e},dirname:e=>{var r=Z.splitPath(e),t=r[0],n=r[1];return t||n?(n&&(n=n.substr(0,n.length-1)),t+n):"."},basename:e=>{if("/"===e)return"/";var r=(e=(e=Z.normalize(e)).replace(/\\/$/,"")).lastIndexOf("/");return-1===r?e:e.substr(r+1)},join:function(){var e=Array.prototype.slice.call(arguments);return Z.normalize(e.join("/"))},join2:(e,r)=>Z.normalize(e+"/"+r)},G=e=>(G=(()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return e=>crypto.getRandomValues(e);if(h)try{var e=m("crypto");if(e.randomFillSync)return r=>e.randomFillSync(r);var r=e.randomBytes;return e=>(e.set(r(e.byteLength)),e)}catch(e){}O("initRandomDevice")})())(e),V={resolve:function(){for(var e="",r=!1,t=arguments.length-1;t>=-1&&!r;t--){var n=t>=0?arguments[t]:le.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,r=Z.isAbs(n)}return(r?"/":"")+(e=Z.normalizeArray(e.split("/").filter((e=>!!e)),!r).join("/"))||"."},relative:(e,r)=>{function t(e){for(var r=0;r<e.length&&""===e[r];r++);for(var t=e.length-1;t>=0&&""===e[t];t--);return r>t?[]:e.slice(r,t-r+1)}e=V.resolve(e).substr(1),r=V.resolve(r).substr(1);for(var n=t(e.split("/")),o=t(r.split("/")),a=Math.min(n.length,o.length),s=a,i=0;i<a;i++)if(n[i]!==o[i]){s=i;break}var u=[];for(i=s;i<n.length;i++)u.push("..");return(u=u.concat(o.slice(s))).join("/")}},J="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,Q=(e,r,t)=>{for(var n=r+t,o=r;e[o]&&!(o>=n);)++o;if(o-r>16&&e.buffer&&J)return J.decode(e.subarray(r,o));for(var a="";r<o;){var s=e[r++];if(128&s){var i=63&e[r++];if(192!=(224&s)){var u=63&e[r++];if((s=224==(240&s)?(15&s)<<12|i<<6|u:(7&s)<<18|i<<12|u<<6|63&e[r++])<65536)a+=String.fromCharCode(s);else{var l=s-65536;a+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else a+=String.fromCharCode((31&s)<<6|i)}else a+=String.fromCharCode(s)}return a},ee=[],re=e=>{for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);n<=127?r++:n<=2047?r+=2:n>=55296&&n<=57343?(r+=4,++t):r+=3}return r},te=(e,r,t,n)=>{if(!(n>0))return 0;for(var o=t,a=t+n-1,s=0;s<e.length;++s){var i=e.charCodeAt(s);if(i>=55296&&i<=57343&&(i=65536+((1023&i)<<10)|1023&e.charCodeAt(++s)),i<=127){if(t>=a)break;r[t++]=i}else if(i<=2047){if(t+1>=a)break;r[t++]=192|i>>6,r[t++]=128|63&i}else if(i<=65535){if(t+2>=a)break;r[t++]=224|i>>12,r[t++]=128|i>>6&63,r[t++]=128|63&i}else{if(t+3>=a)break;r[t++]=240|i>>18,r[t++]=128|i>>12&63,r[t++]=128|i>>6&63,r[t++]=128|63&i}}return r[t]=0,t-o};function ne(e,r,t){var n=t>0?t:re(e)+1,o=new Array(n),a=te(e,o,0,o.length);return r&&(o.length=a),o}var oe={ttys:[],init(){},shutdown(){},register(e,r){oe.ttys[e]={input:[],output:[],ops:r},le.registerDevice(e,oe.stream_ops)},stream_ops:{open(e){var r=oe.ttys[e.node.rdev];if(!r)throw new le.ErrnoError(43);e.tty=r,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,r,t,n,o){if(!e.tty||!e.tty.ops.get_char)throw new le.ErrnoError(60);for(var a=0,s=0;s<n;s++){var i;try{i=e.tty.ops.get_char(e.tty)}catch(e){throw new le.ErrnoError(29)}if(void 0===i&&0===a)throw new le.ErrnoError(6);if(null==i)break;a++,r[t+s]=i}return a&&(e.node.timestamp=Date.now()),a},write(e,r,t,n,o){if(!e.tty||!e.tty.ops.put_char)throw new le.ErrnoError(60);try{for(var a=0;a<n;a++)e.tty.ops.put_char(e.tty,r[t+a])}catch(e){throw new le.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),a}},default_tty_ops:{get_char:e=>(()=>{if(!ee.length){var e=null;if(h){var r=Buffer.alloc(256),t=0,n=process.stdin.fd;try{t=p.readSync(n,r)}catch(e){if(!e.toString().includes("EOF"))throw e;t=0}e=t>0?r.slice(0,t).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(e=window.prompt("Input: "))&&(e+="\\n"):"function"==typeof readline&&null!==(e=readline())&&(e+="\\n");if(!e)return null;ee=ne(e,!0)}return ee.shift()})(),put_char(e,r){null===r||10===r?(_(Q(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},fsync(e){e.output&&e.output.length>0&&(_(Q(e.output,0)),e.output=[])},ioctl_tcgets:e=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(e,r,t)=>0,ioctl_tiocgwinsz:e=>[24,80]},default_tty1_ops:{put_char(e,r){null===r||10===r?(y(Q(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},fsync(e){e.output&&e.output.length>0&&(y(Q(e.output,0)),e.output=[])}}},ae=e=>{O()},se={ops_table:null,mount:e=>se.createNode(null,"/",16895,0),createNode(e,r,t,n){if(le.isBlkdev(t)||le.isFIFO(t))throw new le.ErrnoError(63);se.ops_table||={dir:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr,lookup:se.node_ops.lookup,mknod:se.node_ops.mknod,rename:se.node_ops.rename,unlink:se.node_ops.unlink,rmdir:se.node_ops.rmdir,readdir:se.node_ops.readdir,symlink:se.node_ops.symlink},stream:{llseek:se.stream_ops.llseek}},file:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr},stream:{llseek:se.stream_ops.llseek,read:se.stream_ops.read,write:se.stream_ops.write,allocate:se.stream_ops.allocate,mmap:se.stream_ops.mmap,msync:se.stream_ops.msync}},link:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr,readlink:se.node_ops.readlink},stream:{}},chrdev:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr},stream:le.chrdev_stream_ops}};var o=le.createNode(e,r,t,n);return le.isDir(o.mode)?(o.node_ops=se.ops_table.dir.node,o.stream_ops=se.ops_table.dir.stream,o.contents={}):le.isFile(o.mode)?(o.node_ops=se.ops_table.file.node,o.stream_ops=se.ops_table.file.stream,o.usedBytes=0,o.contents=null):le.isLink(o.mode)?(o.node_ops=se.ops_table.link.node,o.stream_ops=se.ops_table.link.stream):le.isChrdev(o.mode)&&(o.node_ops=se.ops_table.chrdev.node,o.stream_ops=se.ops_table.chrdev.stream),o.timestamp=Date.now(),e&&(e.contents[r]=o,e.timestamp=o.timestamp),o},getFileDataAsTypedArray:e=>e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0),expandFileStorage(e,r){var t=e.contents?e.contents.length:0;if(!(t>=r)){r=Math.max(r,t*(t<1048576?2:1.125)>>>0),0!=t&&(r=Math.max(r,256));var n=e.contents;e.contents=new Uint8Array(r),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,r){if(e.usedBytes!=r)if(0==r)e.contents=null,e.usedBytes=0;else{var t=e.contents;e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),e.usedBytes=r}},node_ops:{getattr(e){var r={};return r.dev=le.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,le.isDir(e.mode)?r.size=4096:le.isFile(e.mode)?r.size=e.usedBytes:le.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.timestamp),r.mtime=new Date(e.timestamp),r.ctime=new Date(e.timestamp),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr(e,r){void 0!==r.mode&&(e.mode=r.mode),void 0!==r.timestamp&&(e.timestamp=r.timestamp),void 0!==r.size&&se.resizeFileStorage(e,r.size)},lookup(e,r){throw le.genericErrors[44]},mknod:(e,r,t,n)=>se.createNode(e,r,t,n),rename(e,r,t){if(le.isDir(e.mode)){var n;try{n=le.lookupNode(r,t)}catch(e){}if(n)for(var o in n.contents)throw new le.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=t,r.contents[t]=e,r.timestamp=e.parent.timestamp,e.parent=r},unlink(e,r){delete e.contents[r],e.timestamp=Date.now()},rmdir(e,r){var t=le.lookupNode(e,r);for(var n in t.contents)throw new le.ErrnoError(55);delete e.contents[r],e.timestamp=Date.now()},readdir(e){var r=[".",".."];for(var t of Object.keys(e.contents))r.push(t);return r},symlink(e,r,t){var n=se.createNode(e,r,41471,0);return n.link=t,n},readlink(e){if(!le.isLink(e.mode))throw new le.ErrnoError(28);return e.link}},stream_ops:{read(e,r,t,n,o){var a=e.node.contents;if(o>=e.node.usedBytes)return 0;var s=Math.min(e.node.usedBytes-o,n);if(s>8&&a.subarray)r.set(a.subarray(o,o+s),t);else for(var i=0;i<s;i++)r[t+i]=a[o+i];return s},write(e,r,t,n,o,a){if(r.buffer===E.buffer&&(a=!1),!n)return 0;var s=e.node;if(s.timestamp=Date.now(),r.subarray&&(!s.contents||s.contents.subarray)){if(a)return s.contents=r.subarray(t,t+n),s.usedBytes=n,n;if(0===s.usedBytes&&0===o)return s.contents=r.slice(t,t+n),s.usedBytes=n,n;if(o+n<=s.usedBytes)return s.contents.set(r.subarray(t,t+n),o),n}if(se.expandFileStorage(s,o+n),s.contents.subarray&&r.subarray)s.contents.set(r.subarray(t,t+n),o);else for(var i=0;i<n;i++)s.contents[o+i]=r[t+i];return s.usedBytes=Math.max(s.usedBytes,o+n),n},llseek(e,r,t){var n=r;if(1===t?n+=e.position:2===t&&le.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new le.ErrnoError(28);return n},allocate(e,r,t){se.expandFileStorage(e.node,r+t),e.node.usedBytes=Math.max(e.node.usedBytes,r+t)},mmap(e,r,t,n,o){if(!le.isFile(e.node.mode))throw new le.ErrnoError(43);var a,s,i=e.node.contents;if(2&o||i.buffer!==E.buffer){if((t>0||t+r<i.length)&&(i=i.subarray?i.subarray(t,t+r):Array.prototype.slice.call(i,t,t+r)),s=!0,!(a=ae()))throw new le.ErrnoError(48);E.set(i,a)}else s=!1,a=i.byteOffset;return{ptr:a,allocated:s}},msync:(e,r,t,n,o)=>(se.stream_ops.write(e,r,0,n,t,!1),0)}},ie=n.preloadPlugins||[],ue=(e,r)=>{var t=0;return e&&(t|=365),r&&(t|=146),t},le={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(e,r={}){if(!(e=V.resolve(e)))return{path:"",node:null};if((r=Object.assign({follow_mount:!0,recurse_count:0},r)).recurse_count>8)throw new le.ErrnoError(32);for(var t=e.split("/").filter((e=>!!e)),n=le.root,o="/",a=0;a<t.length;a++){var s=a===t.length-1;if(s&&r.parent)break;if(n=le.lookupNode(n,t[a]),o=Z.join2(o,t[a]),le.isMountpoint(n)&&(!s||s&&r.follow_mount)&&(n=n.mounted.root),!s||r.follow)for(var i=0;le.isLink(n.mode);){var u=le.readlink(o);if(o=V.resolve(Z.dirname(o),u),n=le.lookupPath(o,{recurse_count:r.recurse_count+1}).node,i++>40)throw new le.ErrnoError(32)}}return{path:o,node:n}},getPath(e){for(var r;;){if(le.isRoot(e)){var t=e.mount.mountpoint;return r?"/"!==t[t.length-1]?`${t}/${r}`:t+r:t}r=r?`${e.name}/${r}`:e.name,e=e.parent}},hashName(e,r){for(var t=0,n=0;n<r.length;n++)t=(t<<5)-t+r.charCodeAt(n)|0;return(e+t>>>0)%le.nameTable.length},hashAddNode(e){var r=le.hashName(e.parent.id,e.name);e.name_next=le.nameTable[r],le.nameTable[r]=e},hashRemoveNode(e){var r=le.hashName(e.parent.id,e.name);if(le.nameTable[r]===e)le.nameTable[r]=e.name_next;else for(var t=le.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode(e,r){var t=le.mayLookup(e);if(t)throw new le.ErrnoError(t,e);for(var n=le.hashName(e.id,r),o=le.nameTable[n];o;o=o.name_next){var a=o.name;if(o.parent.id===e.id&&a===r)return o}return le.lookup(e,r)},createNode(e,r,t,n){var o=new le.FSNode(e,r,t,n);return le.hashAddNode(o),o},destroyNode(e){le.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>49152==(49152&e),flagsToPermissionString(e){var r=["r","w","rw"][3&e];return 512&e&&(r+="w"),r},nodePermissions:(e,r)=>le.ignorePermissions||(!r.includes("r")||292&e.mode)&&(!r.includes("w")||146&e.mode)&&(!r.includes("x")||73&e.mode)?0:2,mayLookup(e){var r=le.nodePermissions(e,"x");return r||(e.node_ops.lookup?0:2)},mayCreate(e,r){try{return le.lookupNode(e,r),20}catch(e){}return le.nodePermissions(e,"wx")},mayDelete(e,r,t){var n;try{n=le.lookupNode(e,r)}catch(e){return e.errno}var o=le.nodePermissions(e,"wx");if(o)return o;if(t){if(!le.isDir(n.mode))return 54;if(le.isRoot(n)||le.getPath(n)===le.cwd())return 10}else if(le.isDir(n.mode))return 31;return 0},mayOpen:(e,r)=>e?le.isLink(e.mode)?32:le.isDir(e.mode)&&("r"!==le.flagsToPermissionString(r)||512&r)?31:le.nodePermissions(e,le.flagsToPermissionString(r)):44,MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=le.MAX_OPEN_FDS;e++)if(!le.streams[e])return e;throw new le.ErrnoError(33)},getStreamChecked(e){var r=le.getStream(e);if(!r)throw new le.ErrnoError(8);return r},getStream:e=>le.streams[e],createStream:(e,r=-1)=>(le.FSStream||(le.FSStream=function(){this.shared={}},le.FSStream.prototype={},Object.defineProperties(le.FSStream.prototype,{object:{get(){return this.node},set(e){this.node=e}},isRead:{get(){return 1!=(2097155&this.flags)}},isWrite:{get(){return 0!=(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(e){this.shared.flags=e}},position:{get(){return this.shared.position},set(e){this.shared.position=e}}})),e=Object.assign(new le.FSStream,e),-1==r&&(r=le.nextfd()),e.fd=r,le.streams[r]=e,e),closeStream(e){le.streams[e]=null},chrdev_stream_ops:{open(e){var r=le.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open?.(e)},llseek(){throw new le.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,r)=>e<<8|r,registerDevice(e,r){le.devices[e]={stream_ops:r}},getDevice:e=>le.devices[e],getMounts(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push.apply(t,n.mounts)}return r},syncfs(e,r){"function"==typeof e&&(r=e,e=!1),le.syncFSRequests++,le.syncFSRequests>1&&y(`warning: ${le.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var t=le.getMounts(le.root.mount),n=0;function o(e){return le.syncFSRequests--,r(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,o(e));++n>=t.length&&o(null)}t.forEach((r=>{if(!r.type.syncfs)return a(null);r.type.syncfs(r,e,a)}))},mount(e,r,t){var n,o="/"===t,a=!t;if(o&&le.root)throw new le.ErrnoError(10);if(!o&&!a){var s=le.lookupPath(t,{follow_mount:!1});if(t=s.path,n=s.node,le.isMountpoint(n))throw new le.ErrnoError(10);if(!le.isDir(n.mode))throw new le.ErrnoError(54)}var i={type:e,opts:r,mountpoint:t,mounts:[]},u=e.mount(i);return u.mount=i,i.root=u,o?le.root=u:n&&(n.mounted=i,n.mount&&n.mount.mounts.push(i)),u},unmount(e){var r=le.lookupPath(e,{follow_mount:!1});if(!le.isMountpoint(r.node))throw new le.ErrnoError(28);var t=r.node,n=t.mounted,o=le.getMounts(n);Object.keys(le.nameTable).forEach((e=>{for(var r=le.nameTable[e];r;){var t=r.name_next;o.includes(r.mount)&&le.destroyNode(r),r=t}})),t.mounted=null;var a=t.mount.mounts.indexOf(n);t.mount.mounts.splice(a,1)},lookup:(e,r)=>e.node_ops.lookup(e,r),mknod(e,r,t){var n=le.lookupPath(e,{parent:!0}).node,o=Z.basename(e);if(!o||"."===o||".."===o)throw new le.ErrnoError(28);var a=le.mayCreate(n,o);if(a)throw new le.ErrnoError(a);if(!n.node_ops.mknod)throw new le.ErrnoError(63);return n.node_ops.mknod(n,o,r,t)},create:(e,r)=>(r=void 0!==r?r:438,r&=4095,r|=32768,le.mknod(e,r,0)),mkdir:(e,r)=>(r=void 0!==r?r:511,r&=1023,r|=16384,le.mknod(e,r,0)),mkdirTree(e,r){for(var t=e.split("/"),n="",o=0;o<t.length;++o)if(t[o]){n+="/"+t[o];try{le.mkdir(n,r)}catch(e){if(20!=e.errno)throw e}}},mkdev:(e,r,t)=>(void 0===t&&(t=r,r=438),r|=8192,le.mknod(e,r,t)),symlink(e,r){if(!V.resolve(e))throw new le.ErrnoError(44);var t=le.lookupPath(r,{parent:!0}).node;if(!t)throw new le.ErrnoError(44);var n=Z.basename(r),o=le.mayCreate(t,n);if(o)throw new le.ErrnoError(o);if(!t.node_ops.symlink)throw new le.ErrnoError(63);return t.node_ops.symlink(t,n,e)},rename(e,r){var t,n,o=Z.dirname(e),a=Z.dirname(r),s=Z.basename(e),i=Z.basename(r);if(t=le.lookupPath(e,{parent:!0}).node,n=le.lookupPath(r,{parent:!0}).node,!t||!n)throw new le.ErrnoError(44);if(t.mount!==n.mount)throw new le.ErrnoError(75);var u,l=le.lookupNode(t,s),c=V.relative(e,a);if("."!==c.charAt(0))throw new le.ErrnoError(28);if("."!==(c=V.relative(r,o)).charAt(0))throw new le.ErrnoError(55);try{u=le.lookupNode(n,i)}catch(e){}if(l!==u){var d=le.isDir(l.mode),h=le.mayDelete(t,s,d);if(h)throw new le.ErrnoError(h);if(h=u?le.mayDelete(n,i,d):le.mayCreate(n,i))throw new le.ErrnoError(h);if(!t.node_ops.rename)throw new le.ErrnoError(63);if(le.isMountpoint(l)||u&&le.isMountpoint(u))throw new le.ErrnoError(10);if(n!==t&&(h=le.nodePermissions(t,"w")))throw new le.ErrnoError(h);le.hashRemoveNode(l);try{t.node_ops.rename(l,n,i)}catch(e){throw e}finally{le.hashAddNode(l)}}},rmdir(e){var r=le.lookupPath(e,{parent:!0}).node,t=Z.basename(e),n=le.lookupNode(r,t),o=le.mayDelete(r,t,!0);if(o)throw new le.ErrnoError(o);if(!r.node_ops.rmdir)throw new le.ErrnoError(63);if(le.isMountpoint(n))throw new le.ErrnoError(10);r.node_ops.rmdir(r,t),le.destroyNode(n)},readdir(e){var r=le.lookupPath(e,{follow:!0}).node;if(!r.node_ops.readdir)throw new le.ErrnoError(54);return r.node_ops.readdir(r)},unlink(e){var r=le.lookupPath(e,{parent:!0}).node;if(!r)throw new le.ErrnoError(44);var t=Z.basename(e),n=le.lookupNode(r,t),o=le.mayDelete(r,t,!1);if(o)throw new le.ErrnoError(o);if(!r.node_ops.unlink)throw new le.ErrnoError(63);if(le.isMountpoint(n))throw new le.ErrnoError(10);r.node_ops.unlink(r,t),le.destroyNode(n)},readlink(e){var r=le.lookupPath(e).node;if(!r)throw new le.ErrnoError(44);if(!r.node_ops.readlink)throw new le.ErrnoError(28);return V.resolve(le.getPath(r.parent),r.node_ops.readlink(r))},stat(e,r){var t=le.lookupPath(e,{follow:!r}).node;if(!t)throw new le.ErrnoError(44);if(!t.node_ops.getattr)throw new le.ErrnoError(63);return t.node_ops.getattr(t)},lstat:e=>le.stat(e,!0),chmod(e,r,t){var n;if(!(n="string"==typeof e?le.lookupPath(e,{follow:!t}).node:e).node_ops.setattr)throw new le.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&r|-4096&n.mode,timestamp:Date.now()})},lchmod(e,r){le.chmod(e,r,!0)},fchmod(e,r){var t=le.getStreamChecked(e);le.chmod(t.node,r)},chown(e,r,t,n){var o;if(!(o="string"==typeof e?le.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new le.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown(e,r,t){le.chown(e,r,t,!0)},fchown(e,r,t){var n=le.getStreamChecked(e);le.chown(n.node,r,t)},truncate(e,r){if(r<0)throw new le.ErrnoError(28);var t;if(!(t="string"==typeof e?le.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new le.ErrnoError(63);if(le.isDir(t.mode))throw new le.ErrnoError(31);if(!le.isFile(t.mode))throw new le.ErrnoError(28);var n=le.nodePermissions(t,"w");if(n)throw new le.ErrnoError(n);t.node_ops.setattr(t,{size:r,timestamp:Date.now()})},ftruncate(e,r){var t=le.getStreamChecked(e);if(0==(2097155&t.flags))throw new le.ErrnoError(28);le.truncate(t.node,r)},utime(e,r,t){var n=le.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(r,t)})},open(e,r,t){if(""===e)throw new le.ErrnoError(44);var o;if(t=void 0===t?438:t,t=64&(r="string"==typeof r?(e=>{var r={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[e];if(void 0===r)throw new Error(`Unknown file open mode: ${e}`);return r})(r):r)?4095&t|32768:0,"object"==typeof e)o=e;else{e=Z.normalize(e);try{o=le.lookupPath(e,{follow:!(131072&r)}).node}catch(e){}}var a=!1;if(64&r)if(o){if(128&r)throw new le.ErrnoError(20)}else o=le.mknod(e,t,0),a=!0;if(!o)throw new le.ErrnoError(44);if(le.isChrdev(o.mode)&&(r&=-513),65536&r&&!le.isDir(o.mode))throw new le.ErrnoError(54);if(!a){var s=le.mayOpen(o,r);if(s)throw new le.ErrnoError(s)}512&r&&!a&&le.truncate(o,0),r&=-131713;var i=le.createStream({node:o,path:le.getPath(o),flags:r,seekable:!0,position:0,stream_ops:o.stream_ops,ungotten:[],error:!1});return i.stream_ops.open&&i.stream_ops.open(i),!n.logReadFiles||1&r||(le.readFiles||(le.readFiles={}),e in le.readFiles||(le.readFiles[e]=1)),i},close(e){if(le.isClosed(e))throw new le.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{le.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek(e,r,t){if(le.isClosed(e))throw new le.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new le.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new le.ErrnoError(28);return e.position=e.stream_ops.llseek(e,r,t),e.ungotten=[],e.position},read(e,r,t,n,o){if(n<0||o<0)throw new le.ErrnoError(28);if(le.isClosed(e))throw new le.ErrnoError(8);if(1==(2097155&e.flags))throw new le.ErrnoError(8);if(le.isDir(e.node.mode))throw new le.ErrnoError(31);if(!e.stream_ops.read)throw new le.ErrnoError(28);var a=void 0!==o;if(a){if(!e.seekable)throw new le.ErrnoError(70)}else o=e.position;var s=e.stream_ops.read(e,r,t,n,o);return a||(e.position+=s),s},write(e,r,t,n,o,a){if(n<0||o<0)throw new le.ErrnoError(28);if(le.isClosed(e))throw new le.ErrnoError(8);if(0==(2097155&e.flags))throw new le.ErrnoError(8);if(le.isDir(e.node.mode))throw new le.ErrnoError(31);if(!e.stream_ops.write)throw new le.ErrnoError(28);e.seekable&&1024&e.flags&&le.llseek(e,0,2);var s=void 0!==o;if(s){if(!e.seekable)throw new le.ErrnoError(70)}else o=e.position;var i=e.stream_ops.write(e,r,t,n,o,a);return s||(e.position+=i),i},allocate(e,r,t){if(le.isClosed(e))throw new le.ErrnoError(8);if(r<0||t<=0)throw new le.ErrnoError(28);if(0==(2097155&e.flags))throw new le.ErrnoError(8);if(!le.isFile(e.node.mode)&&!le.isDir(e.node.mode))throw new le.ErrnoError(43);if(!e.stream_ops.allocate)throw new le.ErrnoError(138);e.stream_ops.allocate(e,r,t)},mmap(e,r,t,n,o){if(0!=(2&n)&&0==(2&o)&&2!=(2097155&e.flags))throw new le.ErrnoError(2);if(1==(2097155&e.flags))throw new le.ErrnoError(2);if(!e.stream_ops.mmap)throw new le.ErrnoError(43);return e.stream_ops.mmap(e,r,t,n,o)},msync:(e,r,t,n,o)=>e.stream_ops.msync?e.stream_ops.msync(e,r,t,n,o):0,munmap:e=>0,ioctl(e,r,t){if(!e.stream_ops.ioctl)throw new le.ErrnoError(59);return e.stream_ops.ioctl(e,r,t)},readFile(e,r={}){if(r.flags=r.flags||0,r.encoding=r.encoding||"binary","utf8"!==r.encoding&&"binary"!==r.encoding)throw new Error(`Invalid encoding type "${r.encoding}"`);var t,n=le.open(e,r.flags),o=le.stat(e).size,a=new Uint8Array(o);return le.read(n,a,0,o,0),"utf8"===r.encoding?t=Q(a,0):"binary"===r.encoding&&(t=a),le.close(n),t},writeFile(e,r,t={}){t.flags=t.flags||577;var n=le.open(e,t.flags,t.mode);if("string"==typeof r){var o=new Uint8Array(re(r)+1),a=te(r,o,0,o.length);le.write(n,o,0,a,void 0,t.canOwn)}else{if(!ArrayBuffer.isView(r))throw new Error("Unsupported data type");le.write(n,r,0,r.byteLength,void 0,t.canOwn)}le.close(n)},cwd:()=>le.currentPath,chdir(e){var r=le.lookupPath(e,{follow:!0});if(null===r.node)throw new le.ErrnoError(44);if(!le.isDir(r.node.mode))throw new le.ErrnoError(54);var t=le.nodePermissions(r.node,"x");if(t)throw new le.ErrnoError(t);le.currentPath=r.path},createDefaultDirectories(){le.mkdir("/tmp"),le.mkdir("/home"),le.mkdir("/home/web_user")},createDefaultDevices(){le.mkdir("/dev"),le.registerDevice(le.makedev(1,3),{read:()=>0,write:(e,r,t,n,o)=>n}),le.mkdev("/dev/null",le.makedev(1,3)),oe.register(le.makedev(5,0),oe.default_tty_ops),oe.register(le.makedev(6,0),oe.default_tty1_ops),le.mkdev("/dev/tty",le.makedev(5,0)),le.mkdev("/dev/tty1",le.makedev(6,0));var e=new Uint8Array(1024),r=0,t=()=>(0===r&&(r=G(e).byteLength),e[--r]);le.createDevice("/dev","random",t),le.createDevice("/dev","urandom",t),le.mkdir("/dev/shm"),le.mkdir("/dev/shm/tmp")},createSpecialDirectories(){le.mkdir("/proc");var e=le.mkdir("/proc/self");le.mkdir("/proc/self/fd"),le.mount({mount(){var r=le.createNode(e,"fd",16895,73);return r.node_ops={lookup(e,r){var t=+r,n=le.getStreamChecked(t),o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path}};return o.parent=o,o}},r}},{},"/proc/self/fd")},createStandardStreams(){n.stdin?le.createDevice("/dev","stdin",n.stdin):le.symlink("/dev/tty","/dev/stdin"),n.stdout?le.createDevice("/dev","stdout",null,n.stdout):le.symlink("/dev/tty","/dev/stdout"),n.stderr?le.createDevice("/dev","stderr",null,n.stderr):le.symlink("/dev/tty1","/dev/stderr"),le.open("/dev/stdin",0),le.open("/dev/stdout",1),le.open("/dev/stderr",1)},ensureErrnoError(){le.ErrnoError||(le.ErrnoError=function(e,r){this.name="ErrnoError",this.node=r,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},le.ErrnoError.prototype=new Error,le.ErrnoError.prototype.constructor=le.ErrnoError,[44].forEach((e=>{le.genericErrors[e]=new le.ErrnoError(e),le.genericErrors[e].stack="<generic error, no stack>"})))},staticInit(){le.ensureErrnoError(),le.nameTable=new Array(4096),le.mount(se,{},"/"),le.createDefaultDirectories(),le.createDefaultDevices(),le.createSpecialDirectories(),le.filesystems={MEMFS:se}},init(e,r,t){le.init.initialized=!0,le.ensureErrnoError(),n.stdin=e||n.stdin,n.stdout=r||n.stdout,n.stderr=t||n.stderr,le.createStandardStreams()},quit(){le.init.initialized=!1;for(var e=0;e<le.streams.length;e++){var r=le.streams[e];r&&le.close(r)}},findObject(e,r){var t=le.analyzePath(e,r);return t.exists?t.object:null},analyzePath(e,r){try{e=(n=le.lookupPath(e,{follow:!r})).path}catch(e){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=le.lookupPath(e,{parent:!0});t.parentExists=!0,t.parentPath=n.path,t.parentObject=n.node,t.name=Z.basename(e),n=le.lookupPath(e,{follow:!r}),t.exists=!0,t.path=n.path,t.object=n.node,t.name=n.node.name,t.isRoot="/"===n.path}catch(e){t.error=e.errno}return t},createPath(e,r,t,n){e="string"==typeof e?e:le.getPath(e);for(var o=r.split("/").reverse();o.length;){var a=o.pop();if(a){var s=Z.join2(e,a);try{le.mkdir(s)}catch(e){}e=s}}return s},createFile(e,r,t,n,o){var a=Z.join2("string"==typeof e?e:le.getPath(e),r),s=ue(n,o);return le.create(a,s)},createDataFile(e,r,t,n,o,a){var s=r;e&&(e="string"==typeof e?e:le.getPath(e),s=r?Z.join2(e,r):e);var i=ue(n,o),u=le.create(s,i);if(t){if("string"==typeof t){for(var l=new Array(t.length),c=0,d=t.length;c<d;++c)l[c]=t.charCodeAt(c);t=l}le.chmod(u,146|i);var h=le.open(u,577);le.write(h,t,0,t.length,0,a),le.close(h),le.chmod(u,i)}},createDevice(e,r,t,n){var o=Z.join2("string"==typeof e?e:le.getPath(e),r),a=ue(!!t,!!n);le.createDevice.major||(le.createDevice.major=64);var s=le.makedev(le.createDevice.major++,0);return le.registerDevice(s,{open(e){e.seekable=!1},close(e){n?.buffer?.length&&n(10)},read(e,r,n,o,a){for(var s=0,i=0;i<o;i++){var u;try{u=t()}catch(e){throw new le.ErrnoError(29)}if(void 0===u&&0===s)throw new le.ErrnoError(6);if(null==u)break;s++,r[n+i]=u}return s&&(e.node.timestamp=Date.now()),s},write(e,r,t,o,a){for(var s=0;s<o;s++)try{n(r[t+s])}catch(e){throw new le.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),s}}),le.mkdev(o,a,s)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!o)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=ne(o(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new le.ErrnoError(29)}},createLazyFile(e,r,t,n,o){function a(){this.lengthKnown=!1,this.chunks=[]}if(a.prototype.get=function(e){if(!(e>this.length-1||e<0)){var r=e%this.chunkSize,t=e/this.chunkSize|0;return this.getter(t)[r]}},a.prototype.setDataGetter=function(e){this.getter=e},a.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",t,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn\'t load "+t+". Status: "+e.status);var r,n=Number(e.getResponseHeader("Content-length")),o=(r=e.getResponseHeader("Accept-Ranges"))&&"bytes"===r,a=(r=e.getResponseHeader("Content-Encoding"))&&"gzip"===r,s=1048576;o||(s=n);var i=this;i.setDataGetter((e=>{var r=e*s,o=(e+1)*s-1;if(o=Math.min(o,n-1),void 0===i.chunks[e]&&(i.chunks[e]=((e,r)=>{if(e>r)throw new Error("invalid range ("+e+", "+r+") or no bytes requested!");if(r>n-1)throw new Error("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",t,!1),n!==s&&o.setRequestHeader("Range","bytes="+e+"-"+r),o.responseType="arraybuffer",o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error("Couldn\'t load "+t+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):ne(o.responseText||"",!0)})(r,o)),void 0===i.chunks[e])throw new Error("doXHR failed!");return i.chunks[e]})),!a&&n||(s=n=1,n=this.getter(0).length,s=n,_("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=s,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!d)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var s=new a;Object.defineProperties(s,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var i={isDevice:!1,contents:s}}else i={isDevice:!1,url:t};var u=le.createFile(e,r,i,n,o);i.contents?u.contents=i.contents:i.url&&(u.contents=null,u.url=i.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}});var l={};function c(e,r,t,n,o){var a=e.node.contents;if(o>=a.length)return 0;var s=Math.min(a.length-o,n);if(a.slice)for(var i=0;i<s;i++)r[t+i]=a[o+i];else for(i=0;i<s;i++)r[t+i]=a.get(o+i);return s}return Object.keys(u.stream_ops).forEach((e=>{var r=u.stream_ops[e];l[e]=function(){return le.forceLoadFile(u),r.apply(null,arguments)}})),l.read=(e,r,t,n,o)=>(le.forceLoadFile(u),c(e,r,t,n,o)),l.mmap=(e,r,t,n,o)=>{le.forceLoadFile(u);var a=ae();if(!a)throw new le.ErrnoError(48);return c(e,E,a,r,t),{ptr:a,allocated:!0}},u.stream_ops=l,u}},ce=(e,r)=>e?Q(k,e,r):"",de={DEFAULT_POLLMASK:5,calculateAt(e,r,t){if(Z.isAbs(r))return r;var n;if(n=-100===e?le.cwd():de.getStreamFromFD(e).path,0==r.length){if(!t)throw new le.ErrnoError(44);return n}return Z.join2(n,r)},doStat(e,r,t){try{var n=e(r)}catch(e){if(e&&e.node&&Z.normalize(r)!==Z.normalize(le.getPath(e.node)))return-54;throw e}F[t>>2]=n.dev,F[t+4>>2]=n.mode,D[t+8>>2]=n.nlink,F[t+12>>2]=n.uid,F[t+16>>2]=n.gid,F[t+20>>2]=n.rdev,I=[n.size>>>0,(j=n.size,+Math.abs(j)>=1?j>0?+Math.floor(j/4294967296)>>>0:~~+Math.ceil((j-+(~~j>>>0))/4294967296)>>>0:0)],F[t+24>>2]=I[0],F[t+28>>2]=I[1],F[t+32>>2]=4096,F[t+36>>2]=n.blocks;var o=n.atime.getTime(),a=n.mtime.getTime(),s=n.ctime.getTime();return I=[Math.floor(o/1e3)>>>0,(j=Math.floor(o/1e3),+Math.abs(j)>=1?j>0?+Math.floor(j/4294967296)>>>0:~~+Math.ceil((j-+(~~j>>>0))/4294967296)>>>0:0)],F[t+40>>2]=I[0],F[t+44>>2]=I[1],D[t+48>>2]=o%1e3*1e3,I=[Math.floor(a/1e3)>>>0,(j=Math.floor(a/1e3),+Math.abs(j)>=1?j>0?+Math.floor(j/4294967296)>>>0:~~+Math.ceil((j-+(~~j>>>0))/4294967296)>>>0:0)],F[t+56>>2]=I[0],F[t+60>>2]=I[1],D[t+64>>2]=a%1e3*1e3,I=[Math.floor(s/1e3)>>>0,(j=Math.floor(s/1e3),+Math.abs(j)>=1?j>0?+Math.floor(j/4294967296)>>>0:~~+Math.ceil((j-+(~~j>>>0))/4294967296)>>>0:0)],F[t+72>>2]=I[0],F[t+76>>2]=I[1],D[t+80>>2]=s%1e3*1e3,I=[n.ino>>>0,(j=n.ino,+Math.abs(j)>=1?j>0?+Math.floor(j/4294967296)>>>0:~~+Math.ceil((j-+(~~j>>>0))/4294967296)>>>0:0)],F[t+88>>2]=I[0],F[t+92>>2]=I[1],0},doMsync(e,r,t,n,o){if(!le.isFile(r.node.mode))throw new le.ErrnoError(43);if(2&n)return 0;var a=k.slice(e,e+t);le.msync(r,a,o,t,n)},varargs:void 0,get(){var e=F[+de.varargs>>2];return de.varargs+=4,e},getp:()=>de.get(),getStr:e=>ce(e),getStreamFromFD:e=>le.getStreamChecked(e)},he=e=>(F[Oe()>>2]=e,e),fe={BUCKET_BUFFER_SIZE:8192,mount:e=>le.createNode(null,"/",16895,0),createPipe(){var e={buckets:[],refcnt:2};e.buckets.push({buffer:new Uint8Array(fe.BUCKET_BUFFER_SIZE),offset:0,roffset:0});var r=fe.nextname(),t=fe.nextname(),n=le.createNode(fe.root,r,4096,0),o=le.createNode(fe.root,t,4096,0);n.pipe=e,o.pipe=e;var a=le.createStream({path:r,node:n,flags:0,seekable:!1,stream_ops:fe.stream_ops});n.stream=a;var s=le.createStream({path:t,node:o,flags:1,seekable:!1,stream_ops:fe.stream_ops});return o.stream=s,{readable_fd:a.fd,writable_fd:s.fd}},stream_ops:{poll(e){var r=e.node.pipe;if(1==(2097155&e.flags))return 260;if(r.buckets.length>0)for(var t=0;t<r.buckets.length;t++){var n=r.buckets[t];if(n.offset-n.roffset>0)return 65}return 0},ioctl:(e,r,t)=>28,fsync:e=>28,read(e,r,t,n,o){for(var a=e.node.pipe,s=0,i=0;i<a.buckets.length;i++){var u=a.buckets[i];s+=u.offset-u.roffset}var l=r.subarray(t,t+n);if(n<=0)return 0;if(0==s)throw new le.ErrnoError(6);var c=Math.min(s,n),d=c,h=0;for(i=0;i<a.buckets.length;i++){var f=a.buckets[i],m=f.offset-f.roffset;if(c<=m){var p=f.buffer.subarray(f.roffset,f.offset);c<m?(p=p.subarray(0,c),f.roffset+=c):h++,l.set(p);break}p=f.buffer.subarray(f.roffset,f.offset),l.set(p),l=l.subarray(p.byteLength),c-=p.byteLength,h++}return h&&h==a.buckets.length&&(h--,a.buckets[h].offset=0,a.buckets[h].roffset=0),a.buckets.splice(0,h),d},write(e,r,t,n,o){var a=e.node.pipe,s=r.subarray(t,t+n),i=s.byteLength;if(i<=0)return 0;var u=null;0==a.buckets.length?(u={buffer:new Uint8Array(fe.BUCKET_BUFFER_SIZE),offset:0,roffset:0},a.buckets.push(u)):u=a.buckets[a.buckets.length-1],A(u.offset<=fe.BUCKET_BUFFER_SIZE);var l=fe.BUCKET_BUFFER_SIZE-u.offset;if(l>=i)return u.buffer.set(s,u.offset),u.offset+=i,i;l>0&&(u.buffer.set(s.subarray(0,l),u.offset),u.offset+=l,s=s.subarray(l,s.byteLength));for(var c=s.byteLength/fe.BUCKET_BUFFER_SIZE|0,d=s.byteLength%fe.BUCKET_BUFFER_SIZE,h=0;h<c;h++){var f={buffer:new Uint8Array(fe.BUCKET_BUFFER_SIZE),offset:fe.BUCKET_BUFFER_SIZE,roffset:0};a.buckets.push(f),f.buffer.set(s.subarray(0,fe.BUCKET_BUFFER_SIZE)),s=s.subarray(fe.BUCKET_BUFFER_SIZE,s.byteLength)}return d>0&&(f={buffer:new Uint8Array(fe.BUCKET_BUFFER_SIZE),offset:s.byteLength,roffset:0},a.buckets.push(f),f.buffer.set(s)),i},close(e){var r=e.node.pipe;r.refcnt--,0===r.refcnt&&(r.buckets=null)}},nextname:()=>(fe.nextname.current||(fe.nextname.current=0),"pipe["+fe.nextname.current+++"]")},me=(e,r)=>r+2097152>>>0<4194305-!!e?(e>>>0)+4294967296*r:NaN,pe=e=>e%4==0&&(e%100!=0||e%400==0),ve=[0,31,60,91,121,152,182,213,244,274,305,335],we=[0,31,59,90,120,151,181,212,243,273,304,334],ge=e=>(pe(e.getFullYear())?ve:we)[e.getMonth()]+e.getDate()-1,_e=(e,r,t)=>te(e,k,r,t),ye=e=>{var r=re(e)+1,t=xe(r);return t&&_e(e,t,r),t},Ee=e=>{var r=(e-g.buffer.byteLength+65535)/65536;try{return g.grow(r),C(),1}catch(e){}},be={},ke=()=>{if(!ke.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:u||"./this.program"};for(var r in be)void 0===be[r]?delete e[r]:e[r]=be[r];var t=[];for(var r in e)t.push(`${r}=${e[r]}`);ke.strings=t}return ke.strings},Se=e=>{X||(n.onExit?.(e),M=!0),l(e,new q(e))},Fe=(e,r)=>{Se(e)},De=[31,29,31,30,31,30,31,31,30,31,30,31],Me=[31,28,31,30,31,30,31,31,30,31,30,31],Ae=(e,r)=>{E.set(e,r)},Ce=e=>n["_"+e],Pe=(e,r,t,n,o)=>{var a={string:e=>{var r=0;return null!=e&&0!==e&&(r=(e=>{var r=re(e)+1,t=He(r);return _e(e,t,r),t})(e)),r},array:e=>{var r=He(e.length);return Ae(e,r),r}},s=Ce(e),i=[],u=0;if(n)for(var l=0;l<n.length;l++){var c=a[t[l]];c?(0===u&&(u=je()),i[l]=c(n[l])):i[l]=n[l]}var d=s.apply(null,i);return d=function(e){return 0!==u&&Ie(u),function(e){return"string"===r?ce(e):"boolean"===r?Boolean(e):e}(e)}(d)},Te=function(e,r,t,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=le.nextInode++,this.name=r,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=n},Re=365,ze=146;Object.defineProperties(Te.prototype,{read:{get:function(){return(this.mode&Re)===Re},set:function(e){e?this.mode|=Re:this.mode&=-366}},write:{get:function(){return(this.mode&ze)===ze},set:function(e){e?this.mode|=ze:this.mode&=-147}},isFolder:{get:function(){return le.isDir(this.mode)}},isDevice:{get:function(){return le.isChrdev(this.mode)}}}),le.FSNode=Te,le.createPreloadedFile=(e,r,t,n,o,s,i,u,l,c)=>{var d=r?V.resolve(Z.join2(e,r)):e;function h(t){function a(t){c?.(),u||((e,r,t,n,o,a)=>{le.createDataFile(e,r,t,n,o,a)})(e,r,t,n,o,l),s?.(),x()}((e,r,t,n)=>{"undefined"!=typeof Browser&&Browser.init();var o=!1;return ie.forEach((a=>{o||a.canHandle(r)&&(a.handle(e,r,t,n),o=!0)})),o})(t,d,a,(()=>{i?.(),x()}))||a(t)}L(),"string"==typeof t?((e,r,t,n)=>{var o=n?"":`al ${e}`;a(e,(t=>{A(t,`Loading data file "${e}" failed (no arrayBuffer).`),r(new Uint8Array(t)),o&&x()}),(r=>{if(!t)throw`Loading data file "${e}" failed.`;t()})),o&&L()})(t,(e=>h(e)),i):h(t)},le.staticInit();var Ue={i:function(e){try{var r=de.getStreamFromFD(e);return le.createStream(r).fd}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},a:function(e,r,t){de.varargs=t;try{var n=de.getStreamFromFD(e);switch(r){case 0:if((o=de.get())<0)return-28;for(;le.streams[o];)o++;return le.createStream(n,o).fd;case 1:case 2:case 6:case 7:return 0;case 3:return n.flags;case 4:var o=de.get();return n.flags|=o,0;case 5:return o=de.getp(),S[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return he(28),-1}}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},x:function(e,r){try{var t=de.getStreamFromFD(e);return de.doStat(le.stat,t.path,r)}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},u:function(e,r){try{return e=de.getStr(e),de.doStat(le.lstat,e,r)}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},v:function(e,r,t,n){try{r=de.getStr(r);var o=256&n,a=4096&n;return n&=-6401,r=de.calculateAt(e,r,a),de.doStat(o?le.lstat:le.stat,r,t)}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},y:function(e,r,t,n){de.varargs=n;try{r=de.getStr(r),r=de.calculateAt(e,r);var o=n?de.get():0;return le.open(r,t,o).fd}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},t:function(e){try{if(0==e)throw new le.ErrnoError(21);var r=fe.createPipe();return F[e>>2]=r.readable_fd,F[e+4>>2]=r.writable_fd,0}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},s:function(e,r,t){try{for(var n=0,o=0;o<r;o++){var a=e+8*o,s=F[a>>2],i=S[a+4>>1],u=32,l=le.getStream(s);l&&(u=de.DEFAULT_POLLMASK,l.stream_ops.poll&&(u=l.stream_ops.poll(l,-1))),(u&=24|i)&&n++,S[a+6>>1]=u}return n}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},w:function(e,r){try{return e=de.getStr(e),de.doStat(le.stat,e,r)}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},q:function(e,r,t){try{return r=de.getStr(r),r=de.calculateAt(e,r),0===t?le.unlink(r):512===t?le.rmdir(r):O("Invalid flags passed to unlinkat"),0}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},B:()=>1,k:function(e,r,t){var n=me(e,r),o=new Date(1e3*n);F[t>>2]=o.getUTCSeconds(),F[t+4>>2]=o.getUTCMinutes(),F[t+8>>2]=o.getUTCHours(),F[t+12>>2]=o.getUTCDate(),F[t+16>>2]=o.getUTCMonth(),F[t+20>>2]=o.getUTCFullYear()-1900,F[t+24>>2]=o.getUTCDay();var a=Date.UTC(o.getUTCFullYear(),0,1,0,0,0,0),s=(o.getTime()-a)/864e5|0;F[t+28>>2]=s},l:function(e,r,t){var n=me(e,r),o=new Date(1e3*n);F[t>>2]=o.getSeconds(),F[t+4>>2]=o.getMinutes(),F[t+8>>2]=o.getHours(),F[t+12>>2]=o.getDate(),F[t+16>>2]=o.getMonth(),F[t+20>>2]=o.getFullYear()-1900,F[t+24>>2]=o.getDay();var a=0|ge(o);F[t+28>>2]=a,F[t+36>>2]=-60*o.getTimezoneOffset();var s=new Date(o.getFullYear(),0,1),i=new Date(o.getFullYear(),6,1).getTimezoneOffset(),u=s.getTimezoneOffset(),l=0|(i!=u&&o.getTimezoneOffset()==Math.min(u,i));F[t+32>>2]=l},m:function(e){var r=(()=>{var r=new Date(F[e+20>>2]+1900,F[e+16>>2],F[e+12>>2],F[e+8>>2],F[e+4>>2],F[e>>2],0),t=F[e+32>>2],n=r.getTimezoneOffset(),o=new Date(r.getFullYear(),0,1),a=new Date(r.getFullYear(),6,1).getTimezoneOffset(),s=o.getTimezoneOffset(),i=Math.min(s,a);if(t<0)F[e+32>>2]=Number(a!=s&&i==n);else if(t>0!=(i==n)){var u=Math.max(s,a),l=t>0?i:u;r.setTime(r.getTime()+6e4*(l-n))}F[e+24>>2]=r.getDay();var c=0|ge(r);F[e+28>>2]=c,F[e>>2]=r.getSeconds(),F[e+4>>2]=r.getMinutes(),F[e+8>>2]=r.getHours(),F[e+12>>2]=r.getDate(),F[e+16>>2]=r.getMonth(),F[e+20>>2]=r.getYear();var d=r.getTime();return isNaN(d)?(he(61),-1):d/1e3})();return Be((j=r,+Math.abs(j)>=1?j>0?+Math.floor(j/4294967296)>>>0:~~+Math.ceil((j-+(~~j>>>0))/4294967296)>>>0:0)),r>>>0},n:function(e){var r=(()=>{var r=Date.UTC(F[e+20>>2]+1900,F[e+16>>2],F[e+12>>2],F[e+8>>2],F[e+4>>2],F[e>>2],0),t=new Date(r);F[e+24>>2]=t.getUTCDay();var n=Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0),o=(t.getTime()-n)/864e5|0;return F[e+28>>2]=o,t.getTime()/1e3})();return Be((j=r,+Math.abs(j)>=1?j>0?+Math.floor(j/4294967296)>>>0:~~+Math.ceil((j-+(~~j>>>0))/4294967296)>>>0:0)),r>>>0},r:(e,r,t)=>{var n=(new Date).getFullYear(),o=new Date(n,0,1),a=new Date(n,6,1),s=o.getTimezoneOffset(),i=a.getTimezoneOffset(),u=Math.max(s,i);function l(e){var r=e.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return r?r[1]:"GMT"}D[e>>2]=60*u,F[r>>2]=Number(s!=i);var c=l(o),d=l(a),h=ye(c),f=ye(d);i<s?(D[t>>2]=h,D[t+4>>2]=f):(D[t>>2]=f,D[t+4>>2]=h)},b:()=>{O("")},c:()=>Date.now(),h:(e,r,t)=>k.copyWithin(e,r,r+t),p:e=>{var r=k.length,t=2147483648;if((e>>>=0)>t)return!1;for(var n,o,a=1;a<=4;a*=2){var s=r*(1+.2/a);s=Math.min(s,e+100663296);var i=Math.min(t,(n=Math.max(e,s))+((o=65536)-n%o)%o);if(Ee(i))return!0}return!1},z:(e,r)=>{var t=0;return ke().forEach(((n,o)=>{var a=r+t;D[e+4*o>>2]=a,((e,r)=>{for(var t=0;t<e.length;++t)E[r++>>0]=e.charCodeAt(t);E[r>>0]=0})(n,a),t+=n.length+1})),0},A:(e,r)=>{var t=ke();D[e>>2]=t.length;var n=0;return t.forEach((e=>n+=e.length+1)),D[r>>2]=n,0},g:Fe,e:function(e){try{var r=de.getStreamFromFD(e);return le.close(r),0}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return e.errno}},j:function(e,r,t,n){try{var o=((e,r,t,n)=>{for(var o=0,a=0;a<t;a++){var s=D[r>>2],i=D[r+4>>2];r+=8;var u=le.read(e,E,s,i,n);if(u<0)return-1;if(o+=u,u<i)break;void 0!==n&&(n+=u)}return o})(de.getStreamFromFD(e),r,t);return D[n>>2]=o,0}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return e.errno}},o:function(e,r,t,n,o){var a=me(r,t);try{if(isNaN(a))return 61;var s=de.getStreamFromFD(e);return le.llseek(s,a,n),I=[s.position>>>0,(j=s.position,+Math.abs(j)>=1?j>0?+Math.floor(j/4294967296)>>>0:~~+Math.ceil((j-+(~~j>>>0))/4294967296)>>>0:0)],F[o>>2]=I[0],F[o+4>>2]=I[1],s.getdents&&0===a&&0===n&&(s.getdents=null),0}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return e.errno}},d:function(e,r,t,n){try{var o=((e,r,t,n)=>{for(var o=0,a=0;a<t;a++){var s=D[r>>2],i=D[r+4>>2];r+=8;var u=le.write(e,E,s,i,n);if(u<0)return-1;o+=u,void 0!==n&&(n+=u)}return o})(de.getStreamFromFD(e),r,t);return D[n>>2]=o,0}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return e.errno}},f:(e,r,t,n)=>{var o=D[n+40>>2],a={tm_sec:F[n>>2],tm_min:F[n+4>>2],tm_hour:F[n+8>>2],tm_mday:F[n+12>>2],tm_mon:F[n+16>>2],tm_year:F[n+20>>2],tm_wday:F[n+24>>2],tm_yday:F[n+28>>2],tm_isdst:F[n+32>>2],tm_gmtoff:F[n+36>>2],tm_zone:o?ce(o):""},s=ce(t),i={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var u in i)s=s.replace(new RegExp(u,"g"),i[u]);var l=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],c=["January","February","March","April","May","June","July","August","September","October","November","December"];function d(e,r,t){for(var n="number"==typeof e?e.toString():e||"";n.length<r;)n=t[0]+n;return n}function h(e,r){return d(e,r,"0")}function f(e,r){function t(e){return e<0?-1:e>0?1:0}var n;return 0===(n=t(e.getFullYear()-r.getFullYear()))&&0===(n=t(e.getMonth()-r.getMonth()))&&(n=t(e.getDate()-r.getDate())),n}function m(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function p(e){var r=((e,r)=>{for(var t=new Date(e.getTime());r>0;){var n=pe(t.getFullYear()),o=t.getMonth(),a=(n?De:Me)[o];if(!(r>a-t.getDate()))return t.setDate(t.getDate()+r),t;r-=a-t.getDate()+1,t.setDate(1),o<11?t.setMonth(o+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1))}return t})(new Date(e.tm_year+1900,0,1),e.tm_yday),t=new Date(r.getFullYear(),0,4),n=new Date(r.getFullYear()+1,0,4),o=m(t),a=m(n);return f(o,r)<=0?f(a,r)<=0?r.getFullYear()+1:r.getFullYear():r.getFullYear()-1}var v={"%a":e=>l[e.tm_wday].substring(0,3),"%A":e=>l[e.tm_wday],"%b":e=>c[e.tm_mon].substring(0,3),"%B":e=>c[e.tm_mon],"%C":e=>h((e.tm_year+1900)/100|0,2),"%d":e=>h(e.tm_mday,2),"%e":e=>d(e.tm_mday,2," "),"%g":e=>p(e).toString().substring(2),"%G":e=>p(e),"%H":e=>h(e.tm_hour,2),"%I":e=>{var r=e.tm_hour;return 0==r?r=12:r>12&&(r-=12),h(r,2)},"%j":e=>h(e.tm_mday+((e,r)=>{for(var t=0,n=0;n<=r;t+=e[n++]);return t})(pe(e.tm_year+1900)?De:Me,e.tm_mon-1),3),"%m":e=>h(e.tm_mon+1,2),"%M":e=>h(e.tm_min,2),"%n":()=>"\\n","%p":e=>e.tm_hour>=0&&e.tm_hour<12?"AM":"PM","%S":e=>h(e.tm_sec,2),"%t":()=>"\\t","%u":e=>e.tm_wday||7,"%U":e=>{var r=e.tm_yday+7-e.tm_wday;return h(Math.floor(r/7),2)},"%V":e=>{var r=Math.floor((e.tm_yday+7-(e.tm_wday+6)%7)/7);if((e.tm_wday+371-e.tm_yday-2)%7<=2&&r++,r){if(53==r){var t=(e.tm_wday+371-e.tm_yday)%7;4==t||3==t&&pe(e.tm_year)||(r=1)}}else{r=52;var n=(e.tm_wday+7-e.tm_yday-1)%7;(4==n||5==n&&pe(e.tm_year%400-1))&&r++}return h(r,2)},"%w":e=>e.tm_wday,"%W":e=>{var r=e.tm_yday+7-(e.tm_wday+6)%7;return h(Math.floor(r/7),2)},"%y":e=>(e.tm_year+1900).toString().substring(2),"%Y":e=>e.tm_year+1900,"%z":e=>{var r=e.tm_gmtoff,t=r>=0;return r=(r=Math.abs(r)/60)/60*100+r%60,(t?"+":"-")+String("0000"+r).slice(-4)},"%Z":e=>e.tm_zone,"%%":()=>"%"};for(var u in s=s.replace(/%%/g,"\\0\\0"),v)s.includes(u)&&(s=s.replace(new RegExp(u,"g"),v[u](a)));var w=ne(s=s.replace(/\\0\\0/g,"%"),!1);return w.length>r?0:(Ae(w,e),w.length-1)}},Le=function(){var e,r,o,a,s={a:Ue};function i(e,r){var t;return Le=e.exports,g=Le.C,C(),t=Le.D,T.unshift(t),x(),Le}if(L(),n.instantiateWasm)try{return n.instantiateWasm(s,i)}catch(e){y(`Module.instantiateWasm callback failed with error: ${e}`),t(e)}return(e=w,r=N,o=s,a=function(e){i(e.instance)},e||"function"!=typeof WebAssembly.instantiateStreaming||H(r)||Y(r)||h||"function"!=typeof fetch?K(r,o,a):fetch(r,{credentials:"same-origin"}).then((e=>WebAssembly.instantiateStreaming(e,o).then(a,(function(e){return y(`wasm streaming compile failed: ${e}`),y("falling back to ArrayBuffer instantiation"),K(r,o,a)}))))).catch(t),{}}();n._get_version=()=>(n._get_version=Le.E)(),n._archive_open=(e,r,t,o)=>(n._archive_open=Le.F)(e,r,t,o),n._archive_read_add_passphrase=(e,r)=>(n._archive_read_add_passphrase=Le.G)(e,r),n._archive_error_string=e=>(n._archive_error_string=Le.H)(e),n._get_next_entry=e=>(n._get_next_entry=Le.I)(e),n._get_filedata=(e,r)=>(n._get_filedata=Le.J)(e,r);var xe=n._malloc=e=>(xe=n._malloc=Le.K)(e);n._archive_close=e=>(n._archive_close=Le.L)(e),n._start_archive_write=(e,r,t,o,a,s)=>(n._start_archive_write=Le.M)(e,r,t,o,a,s),n._write_archive_file=(e,r,t,o)=>(n._write_archive_file=Le.N)(e,r,t,o),n._size_of_size_t=()=>(n._size_of_size_t=Le.O)(),n._finish_archive_write=(e,r)=>(n._finish_archive_write=Le.P)(e,r),n._free=e=>(n._free=Le.Q)(e);var Oe=()=>(Oe=Le.R)();n._archive_entry_birthtime_nsec=e=>(n._archive_entry_birthtime_nsec=Le.S)(e),n._archive_entry_filetype=e=>(n._archive_entry_filetype=Le.T)(e),n._archive_entry_mtime_nsec=e=>(n._archive_entry_mtime_nsec=Le.U)(e),n._archive_entry_pathname=e=>(n._archive_entry_pathname=Le.V)(e),n._archive_entry_pathname_utf8=e=>(n._archive_entry_pathname_utf8=Le.W)(e),n._archive_entry_size=e=>(n._archive_entry_size=Le.X)(e),n._archive_entry_is_encrypted=e=>(n._archive_entry_is_encrypted=Le.Y)(e),n._archive_read_has_encrypted_entries=e=>(n._archive_read_has_encrypted_entries=Le.Z)(e),n._archive_read_data_skip=e=>(n._archive_read_data_skip=Le._)(e);var Ne,Be=e=>(Be=Le.aa)(e),je=()=>(je=Le.ba)(),Ie=e=>(Ie=Le.ca)(e),He=e=>(He=Le.da)(e);function Ye(){function e(){Ne||(Ne=!0,n.calledRun=!0,M||(n.noFSInit||le.init.initialized||le.init(),le.ignorePermissions=!1,fe.root=le.mount(fe,{},null),$(T),r(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),function(){if(n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;)e=n.postRun.shift(),R.unshift(e);var e;$(R)}()))}z>0||(function(){if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)e=n.preRun.shift(),P.unshift(e);var e;$(P)}(),z>0||(n.setStatus?(n.setStatus("Running..."),setTimeout((function(){setTimeout((function(){n.setStatus("")}),1),e()}),1)):e()))}if(n.cwrap=(e,r,t,n)=>{var o=!t||t.every((e=>"number"===e||"boolean"===e));return"string"!==r&&o&&!n?Ce(e):function(){return Pe(e,r,t,arguments)}},n.allocate=(e,r)=>{var t;return t=1==r?He(e.length):xe(e.length),e.subarray||e.slice||(e=new Uint8Array(e)),k.set(e,t),t},U=function e(){Ne||Ye(),Ne||(U=e)},n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return Ye(),e.ready});class S{constructor(){this.preRun=[],this.postRun=[],this.totalDependencies=0}print(...e){console.log(e)}printErr(...e){console.error(e)}initFunctions(){this.runCode={getVersion:this.cwrap("get_version","string",[]),openArchive:this.cwrap("archive_open","number",["number","number","string","string"]),getNextEntry:this.cwrap("get_next_entry","number",["number"]),getFileData:this.cwrap("get_filedata","number",["number","number"]),skipEntry:this.cwrap("archive_read_data_skip","number",["number"]),closeArchive:this.cwrap("archive_close",null,["number"]),getEntrySize:this.cwrap("archive_entry_size","number",["number"]),getEntryName:this.cwrap("archive_entry_pathname","string",["number"]),getEntryType:this.cwrap("archive_entry_filetype","number",["number"]),getEntryLastModified:this.cwrap("archive_entry_mtime_nsec","number",["number"]),getError:this.cwrap("archive_error_string","string",["number"]),startArchiveWrite:this.cwrap("start_archive_write","number",["string","string","number","number","number","string"]),writeArchiveFile:this.cwrap("write_archive_file",null,["number","string","number","number"]),finishArchiveWrite:this.cwrap("finish_archive_write","number",["number","number"]),entryIsEncrypted:this.cwrap("archive_entry_is_encrypted","number",["number"]),hasEncryptedEntries:this.cwrap("archive_read_has_encrypted_entries","number",["number"]),addPassphrase:this.cwrap("archive_read_add_passphrase","number",["number","string"]),string:e=>this.allocate(this.intArrayFromString(e),"i8",0),malloc:this.cwrap("malloc","number",["number"]),free:this.cwrap("free",null,["number"]),sizeOfSizeT:this.cwrap("size_of_size_t","number",[])}}monitorRunDependencies(){}}let F=null,D=null,M=!1;class A{constructor(e){A.readyCallback=e,M&&setTimeout((()=>e()),0)}open(e,r){F.open(e).then((()=>r()))}listFiles(){let e=[];for(const r of F.entries(!0))e.push(r);return e}extractFiles(){let e=[];for(const r of F.entries(!1))e.push(r);return e}extractSingleFile(e){for(const r of F.entries(!0,e))if(r.fileData)return r}hasEncryptedData(){return F.hasEncryptedData()}usePassword(e){F.setPassphrase(e)}setLocale(e){F.setLocale(e)}writeArchive(e,r,t,n){return D.write(e,r,t,n)}close(){F.close()}}var C;C=e=>{F=new y(e),D=new E(e),A?.readyCallback?.(),M=!0},k(new S).then((e=>{e.initFunctions(),C(e)})),i(A);\n',j=``+new URL(`libarchive-DxGirPmi.wasm`,import.meta.url).href,M={class:`archive-viewer`},N={class:`archive-sidebar`},P={class:`archive-head`},F={key:0,class:`archive-warning`},I={class:`archive-list`,role:`list`},L=[`onClick`],R={class:`entry-ext`},z={class:`entry-copy`},B={class:`archive-preview`},V={class:`archive-preview-toolbar`},se={key:0,class:`archive-empty`},H={key:0,class:`archive-state`},U={key:1,class:`archive-error`},W=320*1024*1024,G=64*1024*1024,K=5e3,q=t(d({__name:`ArchiveViewer`,props:{data:{},filename:{},options:{}},setup(t){let d=t,v=ee(null),y=s([]),b=s(null),x=s(!1),S=s(`正在读取压缩包目录...`),C=s(``),w=s(``),T=s(null),E=s(null),O,q=[],J=m(()=>d.options?.maxArchiveSize||W),Y=m(()=>d.options?.maxEntryPreviewSize||G),X=m(()=>d.options?.cache!==!1),ce=m(()=>({archive:d.options})),Z=m(()=>{let e=y.value.reduce((e,t)=>e+t.size,0),t=y.value.filter(e=>e.previewable).length;return{count:y.value.length,totalSize:e,previewableCount:t}}),le=m(()=>{let e=w.value.trim().toLowerCase();return(e?y.value.filter(t=>t.path.toLowerCase().includes(e)):y.value).slice(0,K)}),ue=()=>{let e=JSON.stringify(j),t=A.replace(/new URL\((['"])libarchive\.wasm\1\s*,\s*import\.meta\.url\)\.href/g,e),n=URL.createObjectURL(new Blob([t],{type:`application/javascript`}));return q.push(n),n},de=async()=>{if(d.options?.workerUrl)return d.options.workerUrl;let e=new URL(`/vendor/libarchive/worker-bundle.js`,window.location.href).toString();try{let t=await fetch(e,{method:`HEAD`}),n=t.headers.get(`content-type`)||``;if(t.ok&&/javascript|ecmascript|octet-stream/i.test(n))return e}catch{}return ue()},Q=()=>{O?.unmount?.(),O=void 0;let e=E.value;if(e)for(;e.firstChild;)e.removeChild(e.firstChild)},fe=async()=>{await v.value?.close?.(),v.value=null},pe=async()=>{if(d.data.byteLength>J.value){C.value=`压缩包体积 ${e(d.data.byteLength)} 超过安全上限 ${e(J.value)},请下载后在本地解压。`;return}x.value=!0,S.value=`正在初始化压缩包解析 Worker...`,C.value=``;try{let[{Archive:e},t]=await Promise.all([r(()=>import(`./libarchive-DknIq1tb.js`),[],import.meta.url),de()]);e.init({workerUrl:t}),S.value=`正在读取压缩包目录...`;let n=new File([d.data],d.filename||`archive.bin`),a=await e.open(n);v.value=a,T.value=await a.hasEncryptedData().catch(()=>null),y.value=i(await a.getFilesObject()).sort((e,t)=>e.path.localeCompare(t.path))}catch(e){console.error(e),C.value=e instanceof Error?e.message:String(e)}finally{x.value=!1}},me=async(e,t)=>{await ae();let n=E.value;if(!n)return;Q();let r=document.createElement(`div`);r.className=`archive-nested-content`,n.appendChild(r),O=await _(t,e.extension,r,{filename:e.name,options:ce.value})},$=async e=>{let t=n(d.filename,d.data.byteLength,e);if(X.value){let e=await D(t);if(e)return e.buffer}let r=await(await e.compressedFile.extract()).arrayBuffer();return X.value&&await k({key:t,filename:e.name,size:r.byteLength,updatedAt:Date.now(),buffer:r}),r},he=async t=>{if(b.value=t,t.size>Y.value){C.value=`压缩包内文件 ${t.name} 体积 ${e(t.size)} 超过预览上限 ${e(Y.value)}。`;return}x.value=!0,S.value=`正在按需解压 ${t.name}...`,C.value=``;try{let e=await $(t);S.value=`正在渲染 ${t.name}...`,await me(t,e)}catch(e){console.error(e),C.value=e instanceof Error?e.message:String(e)}finally{x.value=!1}},ge=async e=>{x.value=!0,S.value=`正在导出 ${e.name}...`;try{let t=await $(e),n=URL.createObjectURL(new Blob([t]));q.push(n);let r=document.createElement(`a`);r.href=n,r.download=e.name,document.body.appendChild(r),r.click(),r.remove()}finally{x.value=!1}};return ne(()=>{pe()}),ie(()=>{Q(),fe(),q.forEach(e=>URL.revokeObjectURL(e))}),(n,r)=>(g(),h(`section`,M,[f(`aside`,N,[f(`div`,P,[r[2]||=f(`span`,null,`ARCHIVE`,-1),f(`strong`,null,u(t.filename),1),f(`p`,null,u(Z.value.count)+` 个文件 · `+u(o(e)(Z.value.totalSize))+` · `+u(Z.value.previewableCount)+` 个可直接预览`,1)]),T.value?(g(),h(`div`,F,`检测到加密内容,当前在线预览不接收密码,建议下载后本地解压。`)):p(``,!0),l(f(`input`,{"onUpdate:modelValue":r[0]||=e=>w.value=e,class:`archive-search`,type:`search`,placeholder:`筛选压缩包内文件`},null,512),[[a,w.value]]),f(`div`,I,[(g(!0),h(oe,null,re(le.value,t=>(g(),h(`button`,{key:t.id,type:`button`,class:c([`archive-entry`,{active:b.value?.id===t.id}]),style:te({"--entry-depth":t.depth}),onClick:e=>he(t)},[f(`span`,R,u(t.extension||`file`),1),f(`span`,z,[f(`strong`,null,u(t.name),1),f(`em`,null,u(t.path),1)]),f(`small`,null,u(o(e)(t.size)),1)],14,L))),128))])]),f(`main`,B,[f(`div`,V,[f(`div`,null,[r[3]||=f(`span`,null,`压缩包内预览`,-1),f(`strong`,null,u(b.value?.name||`请选择一个文件`),1)]),b.value?(g(),h(`button`,{key:0,type:`button`,onClick:r[1]||=e=>ge(b.value)},`下载文件`)):p(``,!0)]),f(`div`,{ref_key:`nestedTarget`,ref:E,class:`archive-nested-target`},[!b.value&&!x.value?(g(),h(`div`,se,[...r[4]||=[f(`strong`,null,`选择左侧文件即可预览`,-1),f(`p`,null,`压缩包只读取目录;文件内容会在点击后按需解压,并在体积允许时缓存到 IndexedDB。`,-1)]])):p(``,!0)],512)]),x.value?(g(),h(`div`,H,[f(`div`,null,[r[5]||=f(`span`,{class:`archive-spinner`},null,-1),f(`strong`,null,u(S.value),1),r[6]||=f(`p`,null,`大文件会在 Worker 中解析,避免阻塞主线程。`,-1)])])):p(``,!0),C.value?(g(),h(`div`,U,[r[7]||=f(`strong`,null,`压缩包预览提示`,-1),f(`p`,null,u(C.value),1)])):p(``,!0)]))}}),[[`__scopeId`,`data-v-63b4b1b1`]]);export{q as default};
@@ -0,0 +1 @@
1
+ import{h as e}from"./package-Bop5TfAT.js";import{C as t,D as n,X as r,Y as i,_ as a,f as o,g as s,i as c,r as l,s as u,y as d}from"./runtime-core.esm-bundler-DO-WTVbd.js";var f={class:`audio-viewer`},p={class:`audio-card`},m={class:`audio-copy`},h={class:`audio-kicker`},g={class:`audio-meter`},_={class:`audio-progress`,"aria-hidden":`true`},v=[`src`],y=e(o({__name:`AudioViewer`,props:{data:{},type:{}},setup(e){let o=e,y=n(null),b=n(``),x=n(0),S=n(0),C=n(!1),w={aac:`audio/aac`,flac:`audio/flac`,m4a:`audio/mp4`,mp3:`audio/mpeg`,mpeg:`audio/mpeg`,oga:`audio/ogg`,ogg:`audio/ogg`,opus:`audio/ogg; codecs=opus`,wav:`audio/wav`,weba:`audio/webm`},T=l(()=>o.type.trim().toLowerCase()),E=l(()=>w[T.value]||`audio/*`),D=l(()=>T.value.toUpperCase()||`AUDIO`),O=l(()=>!Number.isFinite(S.value)||S.value<=0?0:Math.min(100,Math.max(0,x.value/S.value*100))),k=e=>{if(!Number.isFinite(e)||e<=0)return`00:00`;let t=Math.floor(e/60),n=Math.floor(e%60);return`${String(t).padStart(2,`0`)}:${String(n).padStart(2,`0`)}`},A=()=>{b.value&&=(URL.revokeObjectURL(b.value),``)},j=()=>{A(),x.value=0,S.value=0,C.value=!1,b.value=URL.createObjectURL(new Blob([o.data],{type:E.value}))},M=()=>{S.value=y.value?.duration||0,C.value=!0},N=()=>{x.value=y.value?.currentTime||0};return a(j),t(()=>[o.data,o.type],j),s(A),(e,t)=>(d(),u(`div`,f,[c(`section`,p,[t[2]||=c(`div`,{class:`audio-art`},[c(`span`),c(`i`)],-1),c(`div`,m,[c(`span`,h,r(D.value),1),t[0]||=c(`strong`,null,`音频预览`,-1),t[1]||=c(`p`,null,`使用浏览器原生播放器打开,兼容性取决于当前浏览器支持的音频编码。`,-1)]),c(`div`,g,[c(`span`,null,r(k(x.value)),1),c(`div`,_,[c(`i`,{style:i({width:`${O.value}%`})},null,4)]),c(`span`,null,r(C.value?k(S.value):`--:--`),1)]),c(`audio`,{ref_key:`audioRef`,ref:y,class:`audio-control`,src:b.value,controls:``,preload:`metadata`,onLoadedmetadata:M,onTimeupdate:N},` 当前浏览器不支持音频播放。 `,40,v)])]))}}),[[`__scopeId`,`data-v-608bd328`]]);export{y as default};
@@ -0,0 +1 @@
1
+ .dwfv-root{color:#111827;grid-template-rows:auto 1fr;height:100%;min-height:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:grid}.dwfv-toolbar{background:#fff;border-bottom:1px solid #e5e7eb;align-items:center;gap:8px;padding:8px 12px;display:flex}.dwfv-toolbar button,.dwfv-toolbar select{font:inherit}.dwfv-workspace{grid-template-columns:minmax(220px,300px) 1fr;min-height:0;display:grid}.dwfv-tree{background:#fff;border-right:1px solid #d6d8dd;padding:8px;font-size:12px;overflow:auto}.dwfv-tree[style*="display: none"]+.dwfv-stage{grid-column:1/-1}.dwfv-tree-header{margin-bottom:4px;font-weight:700}.dwfv-tree-stats{color:#6b7280;margin-bottom:8px}.dwfv-tree details{margin-left:8px}.dwfv-tree summary{cursor:pointer;padding:2px 0}.dwfv-tree-meta{color:#6b7280;text-overflow:ellipsis;white-space:nowrap;padding-left:14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;overflow:hidden}.dwfv-stage{background:#e5e7eb;position:relative;overflow:hidden}.dwfv-canvas{width:100%;height:100%;position:absolute;inset:0}.dwfv-webgl-canvas{pointer-events:none}.dwfv-overlay-canvas{pointer-events:auto;touch-action:none;cursor:grab}.dwfv-overlay-canvas:active{cursor:grabbing}.dwfv-status{color:#4b5563;margin-left:auto;font-size:12px}.dwfv-warn{color:#92400e}.cad-viewer-container{min-width:0;min-height:0;position:relative;overflow:hidden}.cad-viewer-canvas{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.cad-viewer-canvas.is-dragging{cursor:grabbing}.cad-viewer-webgl-canvas{z-index:0;position:relative}.cad-viewer-text-overlay{contain:strict;-webkit-user-select:none;user-select:none;display:block}.cad-viewer-native-host{z-index:2;background:#05070d;min-width:0;min-height:0;display:none;position:absolute;inset:0}.cad-viewer-native-host.is-active{display:block}.cad-viewer-native-host .dwfv-root{color:#dbeafe;background:#05070d;height:100%;min-height:0}.cad-viewer-native-host .dwfv-toolbar{color:#e5e7eb;background:#0f172af5;border-bottom:1px solid #475569a6;gap:6px;min-height:34px;padding:5px 8px}.cad-viewer-native-host .dwfv-toolbar button,.cad-viewer-native-host .dwfv-toolbar select{color:#e5e7eb;background:#111827;border:1px solid #64748bbf;border-radius:6px;height:24px;font-size:12px}.cad-viewer-native-host .dwfv-toolbar button{cursor:pointer;padding:0 8px}.cad-viewer-native-host .dwfv-toolbar button:hover,.cad-viewer-native-host .dwfv-toolbar select:hover{color:#bfdbfe;border-color:#60a5fa}.cad-viewer-native-host .dwfv-status{color:#93c5fd;font-size:12px}.cad-viewer-native-host .dwfv-workspace{background:#05070d;min-height:0}.cad-viewer-native-host .dwfv-stage{background:#05070d}.cad-viewer-native-host .dwfv-tree{color:#dbeafe;background:#0f172a;border-right:1px solid #475569b3}.cad-viewer-native-host .dwfv-tree-stats,.cad-viewer-native-host .dwfv-tree-meta{color:#94a3b8}.cad-viewer-native-host .dwfv-warn{color:#fbbf24}.cad-shell[data-v-06294777]{color:#142335;background:#f5f7fb;flex-direction:column;height:100%;min-height:100%;display:flex}.cad-toolbar[data-v-06294777]{background:#fff;border-bottom:1px solid #0f172a14;justify-content:space-between;align-items:center;gap:16px;min-height:48px;padding:0 14px;display:flex}.cad-tools[data-v-06294777],.cad-meta[data-v-06294777]{align-items:center;gap:8px;display:flex}.cad-tools button[data-v-06294777]{color:#25344c;cursor:pointer;background:#0f172a0f;border:0;border-radius:8px;min-width:34px;min-height:30px;font-weight:800;transition:background-color .18s,color .18s}.cad-tools button[data-v-06294777]:hover{color:#0f8f62;background:#1f966e24}.cad-zoom[data-v-06294777],.cad-meta span[data-v-06294777]{color:#64748b;letter-spacing:0;font-size:12px;font-weight:800}.cad-meta span[data-v-06294777]{background:#0f172a0f;border-radius:999px;padding:5px 9px}.cad-body[data-v-06294777]{background:#eef2f7;flex:1;grid-template-columns:minmax(168px,220px) minmax(0,1fr) minmax(150px,190px);min-height:0;display:grid}.cad-body.without-layers[data-v-06294777]{grid-template-columns:minmax(0,1fr) minmax(150px,190px)}.cad-layers[data-v-06294777],.cad-inspector[data-v-06294777]{background:#fff;border-right:1px solid #0f172a14;min-height:0;overflow:auto}.cad-inspector[data-v-06294777]{border-left:1px solid #0f172a14;border-right:0;padding:14px}.cad-layers-head[data-v-06294777]{color:#1f2a3d;z-index:1;background:#fff;justify-content:space-between;align-items:center;padding:12px 12px 8px;font-size:13px;display:flex;position:sticky;top:0}.cad-layers-head span[data-v-06294777]{color:#7b8ca5;font-size:12px;font-weight:700}.cad-layers button[data-v-06294777]{color:#25344c;cursor:pointer;text-align:left;background:#f8fafc;border:1px solid #94a3b838;border-radius:8px;align-items:center;gap:8px;width:calc(100% - 16px);min-height:34px;margin:0 8px 6px;font-size:12px;font-weight:700;display:flex}.cad-layers button.muted[data-v-06294777]{opacity:.48}.cad-layer-color[data-v-06294777]{background:#1f966e;border-radius:50%;flex:none;width:10px;height:10px;box-shadow:inset 0 0 0 1px #0f172a24}.cad-canvas-wrap[data-v-06294777]{background-color:#f8fafc;background-image:linear-gradient(90deg,#0f172a0a 1px,#0000 1px),linear-gradient(#0f172a0a 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:28px 28px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-width:0;min-height:0;position:relative;overflow:hidden}.cad-stage[data-v-06294777]{width:100%;height:100%;min-height:420px;position:relative;overflow:hidden}.cad-stage[data-v-06294777] canvas{display:block;position:absolute;inset:0;width:100%!important;height:100%!important}.cad-native-stage[data-v-06294777]{z-index:2;display:none;position:absolute;inset:0;overflow:hidden}.cad-native-stage[data-v-06294777]:not(:empty){display:block}.cad-native-stage[data-v-06294777] *{box-sizing:border-box}.cad-state[data-v-06294777]{color:#53637a;text-align:center;background:#ffffffeb;border-radius:12px;max-width:min(520px,100% - 48px);padding:14px 18px;font-size:13px;font-weight:800;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 14px 38px #0f172a1f}.cad-state.error[data-v-06294777]{color:#b42318}.cad-inspector strong[data-v-06294777]{color:#1f2a3d;margin-bottom:12px;font-size:13px;display:block}.cad-inspector dl[data-v-06294777]{gap:8px;margin:0;display:grid}.cad-inspector dl div[data-v-06294777]{background:#f8fafc;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex}.cad-inspector dt[data-v-06294777],.cad-inspector dd[data-v-06294777]{margin:0;font-size:12px}.cad-inspector dt[data-v-06294777]{color:#7b8ca5;font-weight:700}.cad-inspector dd[data-v-06294777]{color:#20304a;font-weight:900}.cad-warning[data-v-06294777]{color:#92400e;background:#f59e0b21;border-radius:8px;margin:12px 0 0;padding:10px;font-size:12px;line-height:1.55}@media (width<=860px){.cad-body[data-v-06294777],.cad-body.without-layers[data-v-06294777]{grid-template-columns:minmax(0,1fr)}.cad-layers[data-v-06294777],.cad-inspector[data-v-06294777]{display:none}}