@openc3/vue-common 6.4.2 → 6.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/dist/{ArrayWidget-D0fKsdTb.js → ArrayWidget-CC3iwyQc.js} +4 -4
  2. package/dist/{ArrayWidget-D0fKsdTb.js.map → ArrayWidget-CC3iwyQc.js.map} +1 -1
  3. package/dist/{ArrayWidget-F8xL9dRA.cjs → ArrayWidget-DaQV8y9D.cjs} +2 -2
  4. package/dist/{ArrayWidget-F8xL9dRA.cjs.map → ArrayWidget-DaQV8y9D.cjs.map} +1 -1
  5. package/dist/{ArrayplotWidget-BmRSuGhA.js → ArrayplotWidget-CiQdsmVy.js} +3 -3
  6. package/dist/{ArrayplotWidget-BmRSuGhA.js.map → ArrayplotWidget-CiQdsmVy.js.map} +1 -1
  7. package/dist/{ArrayplotWidget-D6_PhmMa.cjs → ArrayplotWidget-CkiRBYrb.cjs} +2 -2
  8. package/dist/{ArrayplotWidget-D6_PhmMa.cjs.map → ArrayplotWidget-CkiRBYrb.cjs.map} +1 -1
  9. package/dist/{BarColumn-DtYw6Gmq.js → BarColumn-BhjcS87D.js} +3 -3
  10. package/dist/{BarColumn-DtYw6Gmq.js.map → BarColumn-BhjcS87D.js.map} +1 -1
  11. package/dist/{BarColumn-DO5zpCu2.cjs → BarColumn-Ci9fqSL1.cjs} +2 -2
  12. package/dist/{BarColumn-DO5zpCu2.cjs.map → BarColumn-Ci9fqSL1.cjs.map} +1 -1
  13. package/dist/{BlockWidget-Dpxbw455.js → BlockWidget-LLPHBYVU.js} +4 -4
  14. package/dist/{BlockWidget-Dpxbw455.js.map → BlockWidget-LLPHBYVU.js.map} +1 -1
  15. package/dist/{BlockWidget-CbuJPszc.cjs → BlockWidget-yNjXB1gO.cjs} +2 -2
  16. package/dist/{BlockWidget-CbuJPszc.cjs.map → BlockWidget-yNjXB1gO.cjs.map} +1 -1
  17. package/dist/{ButtonWidget-DB464bRo.cjs → ButtonWidget-C_R8sVl5.cjs} +2 -2
  18. package/dist/{ButtonWidget-DB464bRo.cjs.map → ButtonWidget-C_R8sVl5.cjs.map} +1 -1
  19. package/dist/{ButtonWidget-8iOpXmpp.js → ButtonWidget-Co0KMkIG.js} +4 -4
  20. package/dist/{ButtonWidget-8iOpXmpp.js.map → ButtonWidget-Co0KMkIG.js.map} +1 -1
  21. package/dist/{CanvasWidget-D4iIs915.cjs → CanvasWidget-CMVhjpJc.cjs} +2 -2
  22. package/dist/{CanvasWidget-D4iIs915.cjs.map → CanvasWidget-CMVhjpJc.cjs.map} +1 -1
  23. package/dist/{CanvasWidget-B0iU38rA.js → CanvasWidget-DPrxnI7M.js} +2 -2
  24. package/dist/{CanvasWidget-B0iU38rA.js.map → CanvasWidget-DPrxnI7M.js.map} +1 -1
  25. package/dist/{CanvasdotWidget-DG6qDFlh.cjs → CanvasdotWidget-DskyFyIC.cjs} +2 -2
  26. package/dist/{CanvasdotWidget-DG6qDFlh.cjs.map → CanvasdotWidget-DskyFyIC.cjs.map} +1 -1
  27. package/dist/{CanvasdotWidget-C9viSVBs.js → CanvasdotWidget-s1ALDR4k.js} +2 -2
  28. package/dist/{CanvasdotWidget-C9viSVBs.js.map → CanvasdotWidget-s1ALDR4k.js.map} +1 -1
  29. package/dist/{CanvasimageWidget-BJhOpZ3q.cjs → CanvasimageWidget-BngTI0bl.cjs} +2 -2
  30. package/dist/{CanvasimageWidget-BJhOpZ3q.cjs.map → CanvasimageWidget-BngTI0bl.cjs.map} +1 -1
  31. package/dist/{CanvasimageWidget-CFiCpITu.js → CanvasimageWidget-Cs-KjdqK.js} +3 -3
  32. package/dist/{CanvasimageWidget-CFiCpITu.js.map → CanvasimageWidget-Cs-KjdqK.js.map} +1 -1
  33. package/dist/{CanvasimagevalueWidget-D-4P_8Gh.cjs → CanvasimagevalueWidget-0qTn6Gb5.cjs} +2 -2
  34. package/dist/{CanvasimagevalueWidget-D-4P_8Gh.cjs.map → CanvasimagevalueWidget-0qTn6Gb5.cjs.map} +1 -1
  35. package/dist/{CanvasimagevalueWidget-fu6vbAY0.js → CanvasimagevalueWidget-B-wBQisl.js} +3 -3
  36. package/dist/{CanvasimagevalueWidget-fu6vbAY0.js.map → CanvasimagevalueWidget-B-wBQisl.js.map} +1 -1
  37. package/dist/{CanvaslabelWidget-BVqHq3Vp.js → CanvaslabelWidget-CLBK52pP.js} +2 -2
  38. package/dist/{CanvaslabelWidget-BVqHq3Vp.js.map → CanvaslabelWidget-CLBK52pP.js.map} +1 -1
  39. package/dist/{CanvaslabelWidget-1OS-a3F4.cjs → CanvaslabelWidget-b2yvqZBZ.cjs} +2 -2
  40. package/dist/{CanvaslabelWidget-1OS-a3F4.cjs.map → CanvaslabelWidget-b2yvqZBZ.cjs.map} +1 -1
  41. package/dist/{CanvaslabelvalueWidget-C3vVvK2b.cjs → CanvaslabelvalueWidget-CA03ncx0.cjs} +2 -2
  42. package/dist/{CanvaslabelvalueWidget-C3vVvK2b.cjs.map → CanvaslabelvalueWidget-CA03ncx0.cjs.map} +1 -1
  43. package/dist/{CanvaslabelvalueWidget-BOFa8-NU.js → CanvaslabelvalueWidget-CAa70y_o.js} +2 -2
  44. package/dist/{CanvaslabelvalueWidget-BOFa8-NU.js.map → CanvaslabelvalueWidget-CAa70y_o.js.map} +1 -1
  45. package/dist/{CanvaslineWidget-Cr8MsDUl.cjs → CanvaslineWidget-B-yhgIlR.cjs} +2 -2
  46. package/dist/{CanvaslineWidget-Cr8MsDUl.cjs.map → CanvaslineWidget-B-yhgIlR.cjs.map} +1 -1
  47. package/dist/{CanvaslineWidget-l3ko0QXk.js → CanvaslineWidget-PdwVJOQ5.js} +2 -2
  48. package/dist/{CanvaslineWidget-l3ko0QXk.js.map → CanvaslineWidget-PdwVJOQ5.js.map} +1 -1
  49. package/dist/{CanvaslinevalueWidget-BCZoO-Z6.js → CanvaslinevalueWidget-CKrp1f3Z.js} +2 -2
  50. package/dist/{CanvaslinevalueWidget-BCZoO-Z6.js.map → CanvaslinevalueWidget-CKrp1f3Z.js.map} +1 -1
  51. package/dist/{CanvaslinevalueWidget-DRowns-E.cjs → CanvaslinevalueWidget-PVW-_nOk.cjs} +2 -2
  52. package/dist/{CanvaslinevalueWidget-DRowns-E.cjs.map → CanvaslinevalueWidget-PVW-_nOk.cjs.map} +1 -1
  53. package/dist/{CheckbuttonWidget-Cy9VUV7t.cjs → CheckbuttonWidget-BItae9qq.cjs} +2 -2
  54. package/dist/{CheckbuttonWidget-Cy9VUV7t.cjs.map → CheckbuttonWidget-BItae9qq.cjs.map} +1 -1
  55. package/dist/{CheckbuttonWidget-BN7e1d5b.js → CheckbuttonWidget-CTSfH4NN.js} +2 -2
  56. package/dist/{CheckbuttonWidget-BN7e1d5b.js.map → CheckbuttonWidget-CTSfH4NN.js.map} +1 -1
  57. package/dist/{ComboboxWidget-DbQwLEJY.cjs → ComboboxWidget-BFKz1kva.cjs} +2 -2
  58. package/dist/{ComboboxWidget-DbQwLEJY.cjs.map → ComboboxWidget-BFKz1kva.cjs.map} +1 -1
  59. package/dist/{ComboboxWidget-Bb5RGXDB.js → ComboboxWidget-BQzv9zk5.js} +2 -2
  60. package/dist/{ComboboxWidget-Bb5RGXDB.js.map → ComboboxWidget-BQzv9zk5.js.map} +1 -1
  61. package/dist/{CriticalCmdDialog-p0ZMNHpv.cjs → CriticalCmdDialog-CfUGhKPh.cjs} +2 -2
  62. package/dist/{CriticalCmdDialog-p0ZMNHpv.cjs.map → CriticalCmdDialog-CfUGhKPh.cjs.map} +1 -1
  63. package/dist/{CriticalCmdDialog-BUHsxfpO.js → CriticalCmdDialog-D5m3w1fr.js} +2 -2
  64. package/dist/{CriticalCmdDialog-BUHsxfpO.js.map → CriticalCmdDialog-D5m3w1fr.js.map} +1 -1
  65. package/dist/{DateWidget-Cv3Uzbyr.cjs → DateWidget-CuUySNFb.cjs} +2 -2
  66. package/dist/{DateWidget-Cv3Uzbyr.cjs.map → DateWidget-CuUySNFb.cjs.map} +1 -1
  67. package/dist/{DateWidget-Dggqab-F.js → DateWidget-DKXxXT1g.js} +2 -2
  68. package/dist/{DateWidget-Dggqab-F.js.map → DateWidget-DKXxXT1g.js.map} +1 -1
  69. package/dist/{DetailsDialog-BhSAQDSK.js → DetailsDialog-DEjAO6yp.js} +2 -2
  70. package/dist/{DetailsDialog-BhSAQDSK.js.map → DetailsDialog-DEjAO6yp.js.map} +1 -1
  71. package/dist/{DetailsDialog-CSUO0ibv.cjs → DetailsDialog-DlUuDdFa.cjs} +2 -2
  72. package/dist/{DetailsDialog-CSUO0ibv.cjs.map → DetailsDialog-DlUuDdFa.cjs.map} +1 -1
  73. package/dist/{EventListDialog-C7RuZnvD.cjs → EventListDialog-CPYg1a2g.cjs} +2 -2
  74. package/dist/{EventListDialog-C7RuZnvD.cjs.map → EventListDialog-CPYg1a2g.cjs.map} +1 -1
  75. package/dist/{EventListDialog-CSxz4nmr.js → EventListDialog-CabnKWVX.js} +3 -3
  76. package/dist/{EventListDialog-CSxz4nmr.js.map → EventListDialog-CabnKWVX.js.map} +1 -1
  77. package/dist/{FormatvalueWidget-B9_PbzY2.js → FormatvalueWidget-7Yp9jfgX.js} +3 -3
  78. package/dist/{FormatvalueWidget-B9_PbzY2.js.map → FormatvalueWidget-7Yp9jfgX.js.map} +1 -1
  79. package/dist/{FormatvalueWidget-VYVvrtya.cjs → FormatvalueWidget-LNNT9pLh.cjs} +2 -2
  80. package/dist/{FormatvalueWidget-VYVvrtya.cjs.map → FormatvalueWidget-LNNT9pLh.cjs.map} +1 -1
  81. package/dist/{Graph-B2Ir-2Ot.cjs → Graph-ZGEBRGOA.cjs} +2 -2
  82. package/dist/{Graph-B2Ir-2Ot.cjs.map → Graph-ZGEBRGOA.cjs.map} +1 -1
  83. package/dist/{Graph-B29y4d5A.js → Graph-hzxapkW-.js} +2 -2
  84. package/dist/{Graph-B29y4d5A.js.map → Graph-hzxapkW-.js.map} +1 -1
  85. package/dist/{GraphWidget-oBxPa3EB.js → GraphWidget-Dn0ZaxHo.js} +2 -2
  86. package/dist/{GraphWidget-oBxPa3EB.js.map → GraphWidget-Dn0ZaxHo.js.map} +1 -1
  87. package/dist/{GraphWidget-BsiCtRsJ.cjs → GraphWidget-caScsshg.cjs} +2 -2
  88. package/dist/{GraphWidget-BsiCtRsJ.cjs.map → GraphWidget-caScsshg.cjs.map} +1 -1
  89. package/dist/{HorizontalWidget-BWgZL_Oz.js → HorizontalWidget-BFzi3rMl.js} +2 -2
  90. package/dist/{HorizontalWidget-BWgZL_Oz.js.map → HorizontalWidget-BFzi3rMl.js.map} +1 -1
  91. package/dist/{HorizontalWidget-wn07kYWX.cjs → HorizontalWidget-Bt7N0bIN.cjs} +2 -2
  92. package/dist/{HorizontalWidget-wn07kYWX.cjs.map → HorizontalWidget-Bt7N0bIN.cjs.map} +1 -1
  93. package/dist/{HorizontalboxWidget-yMYUnNB8.js → HorizontalboxWidget-DIagyace.js} +5 -5
  94. package/dist/{HorizontalboxWidget-yMYUnNB8.js.map → HorizontalboxWidget-DIagyace.js.map} +1 -1
  95. package/dist/{HorizontalboxWidget-BQLGULQ-.cjs → HorizontalboxWidget-Dv6NWovB.cjs} +2 -2
  96. package/dist/{HorizontalboxWidget-BQLGULQ-.cjs.map → HorizontalboxWidget-Dv6NWovB.cjs.map} +1 -1
  97. package/dist/{HorizontallineWidget-C4zMx7z2.js → HorizontallineWidget-BOZNWM3a.js} +2 -2
  98. package/dist/{HorizontallineWidget-C4zMx7z2.js.map → HorizontallineWidget-BOZNWM3a.js.map} +1 -1
  99. package/dist/{HorizontallineWidget-CfrV_K28.cjs → HorizontallineWidget-CFsWevmI.cjs} +2 -2
  100. package/dist/{HorizontallineWidget-CfrV_K28.cjs.map → HorizontallineWidget-CFsWevmI.cjs.map} +1 -1
  101. package/dist/{IframeWidget-DA4P_mJT.js → IframeWidget-BU24bhc2.js} +2 -2
  102. package/dist/{IframeWidget-DA4P_mJT.js.map → IframeWidget-BU24bhc2.js.map} +1 -1
  103. package/dist/{IframeWidget-DeNDRzqB.cjs → IframeWidget-J6g6EhHh.cjs} +2 -2
  104. package/dist/{IframeWidget-DeNDRzqB.cjs.map → IframeWidget-J6g6EhHh.cjs.map} +1 -1
  105. package/dist/{ImageLoader-mxOVUyj1.cjs → ImageLoader-BVVI9FSl.cjs} +2 -2
  106. package/dist/{ImageLoader-mxOVUyj1.cjs.map → ImageLoader-BVVI9FSl.cjs.map} +1 -1
  107. package/dist/{ImageLoader-rvd9t-mk.js → ImageLoader-xxDrxPAX.js} +2 -2
  108. package/dist/{ImageLoader-rvd9t-mk.js.map → ImageLoader-xxDrxPAX.js.map} +1 -1
  109. package/dist/{ImageviewerWidget-CV76ouHz.cjs → ImageviewerWidget-BSTS4nPw.cjs} +2 -2
  110. package/dist/{ImageviewerWidget-CV76ouHz.cjs.map → ImageviewerWidget-BSTS4nPw.cjs.map} +1 -1
  111. package/dist/{ImageviewerWidget-B1wK0hK4.js → ImageviewerWidget-YMA4CVsl.js} +2 -2
  112. package/dist/{ImageviewerWidget-B1wK0hK4.js.map → ImageviewerWidget-YMA4CVsl.js.map} +1 -1
  113. package/dist/{InterfacesTab-CVvIDSTG.js → InterfacesTab-Cv50gOTl.js} +3 -3
  114. package/dist/{InterfacesTab-CVvIDSTG.js.map → InterfacesTab-Cv50gOTl.js.map} +1 -1
  115. package/dist/{InterfacesTab-DHoYHLxF.cjs → InterfacesTab-DOjyTYVC.cjs} +2 -2
  116. package/dist/{InterfacesTab-DHoYHLxF.cjs.map → InterfacesTab-DOjyTYVC.cjs.map} +1 -1
  117. package/dist/{LabelWidget-CY0saBoK.js → LabelWidget-2402SA18.js} +2 -2
  118. package/dist/{LabelWidget-CY0saBoK.js.map → LabelWidget-2402SA18.js.map} +1 -1
  119. package/dist/{LabelWidget-BobQDS5m.cjs → LabelWidget-t-nltZ16.cjs} +2 -2
  120. package/dist/{LabelWidget-BobQDS5m.cjs.map → LabelWidget-t-nltZ16.cjs.map} +1 -1
  121. package/dist/{LabelledWidget-B3ZOYaGy.js → LabelledWidget-Cbubzj_g.js} +4 -4
  122. package/dist/{LabelledWidget-B3ZOYaGy.js.map → LabelledWidget-Cbubzj_g.js.map} +1 -1
  123. package/dist/{LabelledWidget-Dp4fjHpu.cjs → LabelledWidget-tWrIx1sj.cjs} +2 -2
  124. package/dist/{LabelledWidget-Dp4fjHpu.cjs.map → LabelledWidget-tWrIx1sj.cjs.map} +1 -1
  125. package/dist/{LabelprogressbarWidget-1BF_rNsT.cjs → LabelprogressbarWidget-1k8njgQG.cjs} +2 -2
  126. package/dist/{LabelprogressbarWidget-1BF_rNsT.cjs.map → LabelprogressbarWidget-1k8njgQG.cjs.map} +1 -1
  127. package/dist/{LabelprogressbarWidget-CmXcESTg.js → LabelprogressbarWidget-s8V7w6LJ.js} +4 -4
  128. package/dist/{LabelprogressbarWidget-CmXcESTg.js.map → LabelprogressbarWidget-s8V7w6LJ.js.map} +1 -1
  129. package/dist/{LabelsparklineWidget-DgzZAWfI.cjs → LabelsparklineWidget-4yoeI7gJ.cjs} +2 -2
  130. package/dist/{LabelsparklineWidget-DgzZAWfI.cjs.map → LabelsparklineWidget-4yoeI7gJ.cjs.map} +1 -1
  131. package/dist/{LabelsparklineWidget-D_yrQrn6.js → LabelsparklineWidget-qbM_OXLh.js} +4 -4
  132. package/dist/{LabelsparklineWidget-D_yrQrn6.js.map → LabelsparklineWidget-qbM_OXLh.js.map} +1 -1
  133. package/dist/{LabelvalueWidget-dNaNfsBE.js → LabelvalueWidget-B5Ihc2yP.js} +4 -4
  134. package/dist/{LabelvalueWidget-dNaNfsBE.js.map → LabelvalueWidget-B5Ihc2yP.js.map} +1 -1
  135. package/dist/{LabelvalueWidget-T6FC3w0l.cjs → LabelvalueWidget-CEua41bt.cjs} +2 -2
  136. package/dist/{LabelvalueWidget-T6FC3w0l.cjs.map → LabelvalueWidget-CEua41bt.cjs.map} +1 -1
  137. package/dist/{LabelvaluedescWidget-Cb7UqEa-.cjs → LabelvaluedescWidget-7jth-OmG.cjs} +2 -2
  138. package/dist/{LabelvaluedescWidget-Cb7UqEa-.cjs.map → LabelvaluedescWidget-7jth-OmG.cjs.map} +1 -1
  139. package/dist/{LabelvaluedescWidget-3vNoH6Mc.js → LabelvaluedescWidget-Cl3JHPGR.js} +5 -5
  140. package/dist/{LabelvaluedescWidget-3vNoH6Mc.js.map → LabelvaluedescWidget-Cl3JHPGR.js.map} +1 -1
  141. package/dist/{LabelvaluelimitsbarWidget-Bi43GWx7.cjs → LabelvaluelimitsbarWidget-BDhDe4-V.cjs} +2 -2
  142. package/dist/{LabelvaluelimitsbarWidget-Bi43GWx7.cjs.map → LabelvaluelimitsbarWidget-BDhDe4-V.cjs.map} +1 -1
  143. package/dist/{LabelvaluelimitsbarWidget-7VppYVIN.js → LabelvaluelimitsbarWidget-DnpfRyHl.js} +4 -4
  144. package/dist/{LabelvaluelimitsbarWidget-7VppYVIN.js.map → LabelvaluelimitsbarWidget-DnpfRyHl.js.map} +1 -1
  145. package/dist/{LabelvaluelimitscolumnWidget-BZ6nwifg.js → LabelvaluelimitscolumnWidget-D4L9L5oa.js} +5 -5
  146. package/dist/{LabelvaluelimitscolumnWidget-BZ6nwifg.js.map → LabelvaluelimitscolumnWidget-D4L9L5oa.js.map} +1 -1
  147. package/dist/{LabelvaluelimitscolumnWidget-CtTEiWPR.cjs → LabelvaluelimitscolumnWidget-d1puBx2r.cjs} +2 -2
  148. package/dist/{LabelvaluelimitscolumnWidget-CtTEiWPR.cjs.map → LabelvaluelimitscolumnWidget-d1puBx2r.cjs.map} +1 -1
  149. package/dist/{LabelvaluerangebarWidget-C5w7sRFw.cjs → LabelvaluerangebarWidget-BczxhVFU.cjs} +2 -2
  150. package/dist/{LabelvaluerangebarWidget-C5w7sRFw.cjs.map → LabelvaluerangebarWidget-BczxhVFU.cjs.map} +1 -1
  151. package/dist/{LabelvaluerangebarWidget-IyuXLNsw.js → LabelvaluerangebarWidget-BivnHCbE.js} +4 -4
  152. package/dist/{LabelvaluerangebarWidget-IyuXLNsw.js.map → LabelvaluerangebarWidget-BivnHCbE.js.map} +1 -1
  153. package/dist/{Layout-BqMhhhws.js → Layout-B7KU2jmu.js} +2 -2
  154. package/dist/{Layout-BqMhhhws.js.map → Layout-B7KU2jmu.js.map} +1 -1
  155. package/dist/Layout-DoI_Bpyu.cjs +2 -0
  156. package/dist/{Layout-DUWX7PWw.cjs.map → Layout-DoI_Bpyu.cjs.map} +1 -1
  157. package/dist/{LedWidget-ByRkD33m.cjs → LedWidget-BSZWv-hh.cjs} +2 -2
  158. package/dist/{LedWidget-ByRkD33m.cjs.map → LedWidget-BSZWv-hh.cjs.map} +1 -1
  159. package/dist/{LedWidget-DSxpmIOK.js → LedWidget-DpdthKEd.js} +4 -4
  160. package/dist/{LedWidget-DSxpmIOK.js.map → LedWidget-DpdthKEd.js.map} +1 -1
  161. package/dist/{LimitsbarWidget-BoPTdVV5.js → LimitsbarWidget-CLyj3Kb-.js} +2 -2
  162. package/dist/{LimitsbarWidget-BoPTdVV5.js.map → LimitsbarWidget-CLyj3Kb-.js.map} +1 -1
  163. package/dist/{LimitsbarWidget-DAZA6YDH.cjs → LimitsbarWidget-CaBnnZR-.cjs} +2 -2
  164. package/dist/{LimitsbarWidget-DAZA6YDH.cjs.map → LimitsbarWidget-CaBnnZR-.cjs.map} +1 -1
  165. package/dist/{LimitscolorWidget-Bt3qOvrv.js → LimitscolorWidget-ChvzYoug.js} +2 -2
  166. package/dist/{LimitscolorWidget-Bt3qOvrv.js.map → LimitscolorWidget-ChvzYoug.js.map} +1 -1
  167. package/dist/{LimitscolorWidget-ECUDD3Yg.cjs → LimitscolorWidget-DilOPB_Q.cjs} +2 -2
  168. package/dist/{LimitscolorWidget-ECUDD3Yg.cjs.map → LimitscolorWidget-DilOPB_Q.cjs.map} +1 -1
  169. package/dist/{LimitscolumnWidget-DrsRK8l_.cjs → LimitscolumnWidget-C8m6Sqp8.cjs} +2 -2
  170. package/dist/{LimitscolumnWidget-DrsRK8l_.cjs.map → LimitscolumnWidget-C8m6Sqp8.cjs.map} +1 -1
  171. package/dist/{LimitscolumnWidget-Ce6YnUBz.js → LimitscolumnWidget-IOhsLFZ1.js} +2 -2
  172. package/dist/{LimitscolumnWidget-Ce6YnUBz.js.map → LimitscolumnWidget-IOhsLFZ1.js.map} +1 -1
  173. package/dist/{LinegraphWidget-BK03y7ev.cjs → LinegraphWidget-DOPBUi0Y.cjs} +2 -2
  174. package/dist/{LinegraphWidget-BK03y7ev.cjs.map → LinegraphWidget-DOPBUi0Y.cjs.map} +1 -1
  175. package/dist/{LinegraphWidget-XAbg0jj2.js → LinegraphWidget-DZdqMqjw.js} +4 -4
  176. package/dist/{LinegraphWidget-XAbg0jj2.js.map → LinegraphWidget-DZdqMqjw.js.map} +1 -1
  177. package/dist/{MatrixbycolumnsWidget-Cl1-0jWU.cjs → MatrixbycolumnsWidget-BrynJcbR.cjs} +2 -2
  178. package/dist/{MatrixbycolumnsWidget-Cl1-0jWU.cjs.map → MatrixbycolumnsWidget-BrynJcbR.cjs.map} +1 -1
  179. package/dist/{MatrixbycolumnsWidget-5MgJFZtz.js → MatrixbycolumnsWidget-BzGYMhJ2.js} +3 -3
  180. package/dist/{MatrixbycolumnsWidget-5MgJFZtz.js.map → MatrixbycolumnsWidget-BzGYMhJ2.js.map} +1 -1
  181. package/dist/{MicroservicesTab-DlnZ9h0y.js → MicroservicesTab-DrqUNTBZ.js} +3 -3
  182. package/dist/{MicroservicesTab-DlnZ9h0y.js.map → MicroservicesTab-DrqUNTBZ.js.map} +1 -1
  183. package/dist/{MicroservicesTab-DLAy8cBq.cjs → MicroservicesTab-pL6PYFy5.cjs} +2 -2
  184. package/dist/{MicroservicesTab-DLAy8cBq.cjs.map → MicroservicesTab-pL6PYFy5.cjs.map} +1 -1
  185. package/dist/{Openc3Screen-1vPogvfj.js → Openc3Screen-CPknMmN8.js} +3 -3
  186. package/dist/{Openc3Screen-1vPogvfj.js.map → Openc3Screen-CPknMmN8.js.map} +1 -1
  187. package/dist/{Openc3Screen-DERmiz3g.cjs → Openc3Screen-CQkUFNEH.cjs} +2 -2
  188. package/dist/{Openc3Screen-DERmiz3g.cjs.map → Openc3Screen-CQkUFNEH.cjs.map} +1 -1
  189. package/dist/{OutputDialog-aZe2HT6j.js → OutputDialog-B6i5yvkr.js} +2 -2
  190. package/dist/{OutputDialog-aZe2HT6j.js.map → OutputDialog-B6i5yvkr.js.map} +1 -1
  191. package/dist/{OutputDialog-BUc85qgI.cjs → OutputDialog-BwBPgVHK.cjs} +2 -2
  192. package/dist/{OutputDialog-BUc85qgI.cjs.map → OutputDialog-BwBPgVHK.cjs.map} +1 -1
  193. package/dist/{PackagesTab-D5hNxd_X.js → PackagesTab-CjcBp95A.js} +3 -3
  194. package/dist/{PackagesTab-D5hNxd_X.js.map → PackagesTab-CjcBp95A.js.map} +1 -1
  195. package/dist/{PackagesTab-D9h8f-Rc.cjs → PackagesTab-DYoGxaWx.cjs} +2 -2
  196. package/dist/{PackagesTab-D9h8f-Rc.cjs.map → PackagesTab-DYoGxaWx.cjs.map} +1 -1
  197. package/dist/{PluginsTab-BP8DYqd-.js → PluginsTab-Diu6vzUR.js} +3 -3
  198. package/dist/{PluginsTab-BP8DYqd-.js.map → PluginsTab-Diu6vzUR.js.map} +1 -1
  199. package/dist/{PluginsTab-swaGuthJ.cjs → PluginsTab-UcluFu7J.cjs} +2 -2
  200. package/dist/{PluginsTab-swaGuthJ.cjs.map → PluginsTab-UcluFu7J.cjs.map} +1 -1
  201. package/dist/{ProgressbarWidget-CDwDOFIy.js → ProgressbarWidget-Bre-0zcS.js} +2 -2
  202. package/dist/{ProgressbarWidget-CDwDOFIy.js.map → ProgressbarWidget-Bre-0zcS.js.map} +1 -1
  203. package/dist/{ProgressbarWidget-giMKlGsU.cjs → ProgressbarWidget-BwnZ2_h4.cjs} +2 -2
  204. package/dist/{ProgressbarWidget-giMKlGsU.cjs.map → ProgressbarWidget-BwnZ2_h4.cjs.map} +1 -1
  205. package/dist/{RadiobuttonWidget-CDPV19UM.cjs → RadiobuttonWidget-BzO43-f0.cjs} +2 -2
  206. package/dist/{RadiobuttonWidget-CDPV19UM.cjs.map → RadiobuttonWidget-BzO43-f0.cjs.map} +1 -1
  207. package/dist/{RadiobuttonWidget-cQ8V8LaD.js → RadiobuttonWidget-CLbfhrkc.js} +2 -2
  208. package/dist/{RadiobuttonWidget-cQ8V8LaD.js.map → RadiobuttonWidget-CLbfhrkc.js.map} +1 -1
  209. package/dist/{RadiogroupWidget-DPYowBpl.cjs → RadiogroupWidget-CCHJJuvX.cjs} +2 -2
  210. package/dist/{RadiogroupWidget-DPYowBpl.cjs.map → RadiogroupWidget-CCHJJuvX.cjs.map} +1 -1
  211. package/dist/{RadiogroupWidget-BvRnuGA2.js → RadiogroupWidget-DvRc70_Q.js} +2 -2
  212. package/dist/{RadiogroupWidget-BvRnuGA2.js.map → RadiogroupWidget-DvRc70_Q.js.map} +1 -1
  213. package/dist/{RangebarWidget-aHmgV0qs.js → RangebarWidget-BvzVWcfZ.js} +2 -2
  214. package/dist/{RangebarWidget-aHmgV0qs.js.map → RangebarWidget-BvzVWcfZ.js.map} +1 -1
  215. package/dist/{RangebarWidget-DtjrqC3F.cjs → RangebarWidget-DbmeAM6e.cjs} +2 -2
  216. package/dist/{RangebarWidget-DtjrqC3F.cjs.map → RangebarWidget-DbmeAM6e.cjs.map} +1 -1
  217. package/dist/{RedisTab-D1-HQK-m.js → RedisTab-BWYQfcqX.js} +2 -2
  218. package/dist/{RedisTab-D1-HQK-m.js.map → RedisTab-BWYQfcqX.js.map} +1 -1
  219. package/dist/{RedisTab-DcFz87gW.cjs → RedisTab-Dq_xGlhh.cjs} +2 -2
  220. package/dist/{RedisTab-DcFz87gW.cjs.map → RedisTab-Dq_xGlhh.cjs.map} +1 -1
  221. package/dist/{RollupWidget-Dw2GIsBR.cjs → RollupWidget-BnhD1fw1.cjs} +2 -2
  222. package/dist/{RollupWidget-Dw2GIsBR.cjs.map → RollupWidget-BnhD1fw1.cjs.map} +1 -1
  223. package/dist/{RollupWidget-D1jUPrUQ.js → RollupWidget-KT243Ed8.js} +2 -2
  224. package/dist/{RollupWidget-D1jUPrUQ.js.map → RollupWidget-KT243Ed8.js.map} +1 -1
  225. package/dist/{RoutersTab-CF0ADapt.js → RoutersTab-CLwJ6J7T.js} +3 -3
  226. package/dist/{RoutersTab-CF0ADapt.js.map → RoutersTab-CLwJ6J7T.js.map} +1 -1
  227. package/dist/{RoutersTab-DJDjAIQf.cjs → RoutersTab-DS95AQxI.cjs} +2 -2
  228. package/dist/{RoutersTab-DJDjAIQf.cjs.map → RoutersTab-DS95AQxI.cjs.map} +1 -1
  229. package/dist/{ScriptChooser-IegS44oT.js → ScriptChooser-CA2eMEE2.js} +2 -2
  230. package/dist/{ScriptChooser-IegS44oT.js.map → ScriptChooser-CA2eMEE2.js.map} +1 -1
  231. package/dist/{ScriptChooser-CPzgZtTN.cjs → ScriptChooser-D2-VTc4T.cjs} +2 -2
  232. package/dist/{ScriptChooser-CPzgZtTN.cjs.map → ScriptChooser-D2-VTc4T.cjs.map} +1 -1
  233. package/dist/{ScrollwindowWidget-Cn0o3b4E.js → ScrollwindowWidget-DcpdXyrP.js} +3 -3
  234. package/dist/{ScrollwindowWidget-Cn0o3b4E.js.map → ScrollwindowWidget-DcpdXyrP.js.map} +1 -1
  235. package/dist/{ScrollwindowWidget-C79nSa0g.cjs → ScrollwindowWidget-vnhzeIMy.cjs} +2 -2
  236. package/dist/{ScrollwindowWidget-C79nSa0g.cjs.map → ScrollwindowWidget-vnhzeIMy.cjs.map} +1 -1
  237. package/dist/{SecretsTab-BAIHxgdM.js → SecretsTab-CQNTFJAM.js} +2 -2
  238. package/dist/{SecretsTab-BAIHxgdM.js.map → SecretsTab-CQNTFJAM.js.map} +1 -1
  239. package/dist/{SecretsTab-BVpqbRn5.cjs → SecretsTab-HP8E21SW.cjs} +2 -2
  240. package/dist/{SecretsTab-BVpqbRn5.cjs.map → SecretsTab-HP8E21SW.cjs.map} +1 -1
  241. package/dist/{SettingsTab-C2k0BDcX.js → SettingsTab-BAOaLzuc.js} +3 -3
  242. package/dist/{SettingsTab-C2k0BDcX.js.map → SettingsTab-BAOaLzuc.js.map} +1 -1
  243. package/dist/{SettingsTab-J1frSo-9.cjs → SettingsTab-CMQxLfkn.cjs} +2 -2
  244. package/dist/{SettingsTab-J1frSo-9.cjs.map → SettingsTab-CMQxLfkn.cjs.map} +1 -1
  245. package/dist/{SignalWidget-BQBzqdU-.js → SignalWidget-CoTi0Uzy.js} +2 -2
  246. package/dist/{SignalWidget-BQBzqdU-.js.map → SignalWidget-CoTi0Uzy.js.map} +1 -1
  247. package/dist/{SignalWidget-sAMVlO9e.cjs → SignalWidget-DqxDT42W.cjs} +2 -2
  248. package/dist/{SignalWidget-sAMVlO9e.cjs.map → SignalWidget-DqxDT42W.cjs.map} +1 -1
  249. package/dist/{SimpleTextDialog-sOMrzIs7.cjs → SimpleTextDialog-BdV90ARp.cjs} +2 -2
  250. package/dist/{SimpleTextDialog-sOMrzIs7.cjs.map → SimpleTextDialog-BdV90ARp.cjs.map} +1 -1
  251. package/dist/{SimpleTextDialog-3EEsXpGl.js → SimpleTextDialog-BqVdFj1n.js} +2 -2
  252. package/dist/{SimpleTextDialog-3EEsXpGl.js.map → SimpleTextDialog-BqVdFj1n.js.map} +1 -1
  253. package/dist/SpacerWidget--x9MPrff.cjs +2 -0
  254. package/dist/{SpacerWidget-C5x4sFAQ.cjs.map → SpacerWidget--x9MPrff.cjs.map} +1 -1
  255. package/dist/SpacerWidget-CTekSgNO.js +19 -0
  256. package/dist/{SpacerWidget-C0RmQY3t.js.map → SpacerWidget-CTekSgNO.js.map} +1 -1
  257. package/dist/{SparklineWidget-CfA39olv.cjs → SparklineWidget-BHdwgOeC.cjs} +2 -2
  258. package/dist/{SparklineWidget-CfA39olv.cjs.map → SparklineWidget-BHdwgOeC.cjs.map} +1 -1
  259. package/dist/{SparklineWidget-BTH9rvcX.js → SparklineWidget-BxwPKrIr.js} +4 -4
  260. package/dist/{SparklineWidget-BTH9rvcX.js.map → SparklineWidget-BxwPKrIr.js.map} +1 -1
  261. package/dist/{TabbookWidget-C-aDdEoD.js → TabbookWidget-B6Nx3Kmt.js} +2 -2
  262. package/dist/{TabbookWidget-C-aDdEoD.js.map → TabbookWidget-B6Nx3Kmt.js.map} +1 -1
  263. package/dist/{TabbookWidget-BrPTbXrU.cjs → TabbookWidget-DuszE8ho.cjs} +2 -2
  264. package/dist/{TabbookWidget-BrPTbXrU.cjs.map → TabbookWidget-DuszE8ho.cjs.map} +1 -1
  265. package/dist/{TargetsTab-BV-eELWM.cjs → TargetsTab-B8appkxl.cjs} +2 -2
  266. package/dist/{TargetsTab-BV-eELWM.cjs.map → TargetsTab-B8appkxl.cjs.map} +1 -1
  267. package/dist/{TargetsTab-DAmlfJ9Z.js → TargetsTab-u-6nY7FX.js} +3 -3
  268. package/dist/{TargetsTab-DAmlfJ9Z.js.map → TargetsTab-u-6nY7FX.js.map} +1 -1
  269. package/dist/{TextboxWidget-Lw5glGxY.cjs → TextboxWidget-CBdukKN5.cjs} +2 -2
  270. package/dist/{TextboxWidget-Lw5glGxY.cjs.map → TextboxWidget-CBdukKN5.cjs.map} +1 -1
  271. package/dist/{TextboxWidget-Dd2ccpUQ.js → TextboxWidget-DJgAfLFU.js} +4 -4
  272. package/dist/{TextboxWidget-Dd2ccpUQ.js.map → TextboxWidget-DJgAfLFU.js.map} +1 -1
  273. package/dist/{TextfieldWidget-DY3aFTnP.js → TextfieldWidget-Bc2xGs8v.js} +2 -2
  274. package/dist/{TextfieldWidget-DY3aFTnP.js.map → TextfieldWidget-Bc2xGs8v.js.map} +1 -1
  275. package/dist/{TextfieldWidget-CTsiRDIJ.cjs → TextfieldWidget-u6w1_wqO.cjs} +2 -2
  276. package/dist/{TextfieldWidget-CTsiRDIJ.cjs.map → TextfieldWidget-u6w1_wqO.cjs.map} +1 -1
  277. package/dist/{TimeWidget-CB1jqQSZ.cjs → TimeWidget-Bmzei1k_.cjs} +2 -2
  278. package/dist/{TimeWidget-CB1jqQSZ.cjs.map → TimeWidget-Bmzei1k_.cjs.map} +1 -1
  279. package/dist/{TimeWidget-C_site21.js → TimeWidget-DO6ZuMLO.js} +2 -2
  280. package/dist/{TimeWidget-C_site21.js.map → TimeWidget-DO6ZuMLO.js.map} +1 -1
  281. package/dist/{TitleWidget-E91xUafI.cjs → TitleWidget-B8f0Sa7B.cjs} +2 -2
  282. package/dist/{TitleWidget-E91xUafI.cjs.map → TitleWidget-B8f0Sa7B.cjs.map} +1 -1
  283. package/dist/{TitleWidget-Bx81VfQD.js → TitleWidget-CkZhMme1.js} +2 -2
  284. package/dist/{TitleWidget-Bx81VfQD.js.map → TitleWidget-CkZhMme1.js.map} +1 -1
  285. package/dist/{ToolsTab-CW_TQ53O.js → ToolsTab-BI6lImcw.js} +3 -3
  286. package/dist/{ToolsTab-CW_TQ53O.js.map → ToolsTab-BI6lImcw.js.map} +1 -1
  287. package/dist/{ToolsTab-Bu3XUxr9.cjs → ToolsTab-WSIi50nR.cjs} +2 -2
  288. package/dist/{ToolsTab-Bu3XUxr9.cjs.map → ToolsTab-WSIi50nR.cjs.map} +1 -1
  289. package/dist/{TopBar-CkCLoFp7.cjs → TopBar-BwdXu4vD.cjs} +2 -2
  290. package/dist/{TopBar-CkCLoFp7.cjs.map → TopBar-BwdXu4vD.cjs.map} +1 -1
  291. package/dist/{TopBar-C9ro4_7Q.js → TopBar-h_jaZ23r.js} +2 -2
  292. package/dist/{TopBar-C9ro4_7Q.js.map → TopBar-h_jaZ23r.js.map} +1 -1
  293. package/dist/{UpgradeToEnterpriseDialog-EaQZfck4.cjs → UpgradeToEnterpriseDialog-B2LIPuO6.cjs} +2 -2
  294. package/dist/{UpgradeToEnterpriseDialog-EaQZfck4.cjs.map → UpgradeToEnterpriseDialog-B2LIPuO6.cjs.map} +1 -1
  295. package/dist/{UpgradeToEnterpriseDialog-BH0WHey-.js → UpgradeToEnterpriseDialog-DE2DoA0l.js} +2 -2
  296. package/dist/{UpgradeToEnterpriseDialog-BH0WHey-.js.map → UpgradeToEnterpriseDialog-DE2DoA0l.js.map} +1 -1
  297. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CHXJm9wA.cjs → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CKn4Dnn-.cjs} +4 -4
  298. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CHXJm9wA.cjs.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CKn4Dnn-.cjs.map} +1 -1
  299. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-xI8cv5P5.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-Vn0OLZcG.js} +7 -7
  300. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-xI8cv5P5.js.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-Vn0OLZcG.js.map} +1 -1
  301. package/dist/{VWidget-CRqTUgEv.cjs → VWidget-DKQBzANO.cjs} +2 -2
  302. package/dist/{VWidget-CRqTUgEv.cjs.map → VWidget-DKQBzANO.cjs.map} +1 -1
  303. package/dist/{VWidget-DuUens7G.js → VWidget-DzhcRBQe.js} +2 -2
  304. package/dist/{VWidget-DuUens7G.js.map → VWidget-DzhcRBQe.js.map} +1 -1
  305. package/dist/{ValueWidget-CN-B9LDi.cjs → ValueWidget-BpS7e3Ks.cjs} +2 -2
  306. package/dist/{ValueWidget-CN-B9LDi.cjs.map → ValueWidget-BpS7e3Ks.cjs.map} +1 -1
  307. package/dist/{ValueWidget-cbjxVV3B.js → ValueWidget-tieHz2H1.js} +4 -4
  308. package/dist/{ValueWidget-cbjxVV3B.js.map → ValueWidget-tieHz2H1.js.map} +1 -1
  309. package/dist/{ValuelimitsbarWidget-BLHVD0qM.cjs → ValuelimitsbarWidget-COsc2aMd.cjs} +2 -2
  310. package/dist/{ValuelimitsbarWidget-BLHVD0qM.cjs.map → ValuelimitsbarWidget-COsc2aMd.cjs.map} +1 -1
  311. package/dist/{ValuelimitsbarWidget-cQb2o_xH.js → ValuelimitsbarWidget-oFqxZu0t.js} +4 -4
  312. package/dist/{ValuelimitsbarWidget-cQb2o_xH.js.map → ValuelimitsbarWidget-oFqxZu0t.js.map} +1 -1
  313. package/dist/{ValuelimitscolumnWidget-DqGxHe2k.cjs → ValuelimitscolumnWidget-DPmkVEuC.cjs} +2 -2
  314. package/dist/{ValuelimitscolumnWidget-DqGxHe2k.cjs.map → ValuelimitscolumnWidget-DPmkVEuC.cjs.map} +1 -1
  315. package/dist/{ValuelimitscolumnWidget-BBTuSCK9.js → ValuelimitscolumnWidget-DYBv8POg.js} +4 -4
  316. package/dist/{ValuelimitscolumnWidget-BBTuSCK9.js.map → ValuelimitscolumnWidget-DYBv8POg.js.map} +1 -1
  317. package/dist/{ValuerangebarWidget-xMsUfp1H.cjs → ValuerangebarWidget-D5zHCKXQ.cjs} +2 -2
  318. package/dist/{ValuerangebarWidget-xMsUfp1H.cjs.map → ValuerangebarWidget-D5zHCKXQ.cjs.map} +1 -1
  319. package/dist/{ValuerangebarWidget-Ct7iGtu0.js → ValuerangebarWidget-m3gFyG4v.js} +4 -4
  320. package/dist/{ValuerangebarWidget-Ct7iGtu0.js.map → ValuerangebarWidget-m3gFyG4v.js.map} +1 -1
  321. package/dist/{VerticalWidget-DJn02myf.js → VerticalWidget-CcdRZmQK.js} +2 -2
  322. package/dist/{VerticalWidget-DJn02myf.js.map → VerticalWidget-CcdRZmQK.js.map} +1 -1
  323. package/dist/{VerticalWidget-DiW_FZuh.cjs → VerticalWidget-DHWIKJUB.cjs} +2 -2
  324. package/dist/{VerticalWidget-DiW_FZuh.cjs.map → VerticalWidget-DHWIKJUB.cjs.map} +1 -1
  325. package/dist/{VerticalboxWidget-miKFocA3.cjs → VerticalboxWidget-BHNt0RrX.cjs} +2 -2
  326. package/dist/{VerticalboxWidget-miKFocA3.cjs.map → VerticalboxWidget-BHNt0RrX.cjs.map} +1 -1
  327. package/dist/{VerticalboxWidget-DHQMxtF3.js → VerticalboxWidget-DfsCYhrX.js} +5 -5
  328. package/dist/{VerticalboxWidget-DHQMxtF3.js.map → VerticalboxWidget-DfsCYhrX.js.map} +1 -1
  329. package/dist/{Widget-CP2CtyUr.js → Widget-B5HKasz2.js} +2 -2
  330. package/dist/{Widget-CP2CtyUr.js.map → Widget-B5HKasz2.js.map} +1 -1
  331. package/dist/{Widget-BMqF6Utz.cjs → Widget-CMzBJCGp.cjs} +2 -2
  332. package/dist/{Widget-BMqF6Utz.cjs.map → Widget-CMzBJCGp.cjs.map} +1 -1
  333. package/dist/components.cjs +1 -1
  334. package/dist/components.js +11 -11
  335. package/dist/tools/admin.cjs +6 -11
  336. package/dist/tools/admin.cjs.map +1 -1
  337. package/dist/tools/admin.js +1041 -1178
  338. package/dist/tools/admin.js.map +1 -1
  339. package/dist/tools/base.cjs +1 -1
  340. package/dist/tools/base.js +2 -2
  341. package/dist/tools/calendar.cjs +1 -1
  342. package/dist/tools/calendar.js +1 -1
  343. package/dist/tools/scriptrunner.cjs +6 -6
  344. package/dist/tools/scriptrunner.cjs.map +1 -1
  345. package/dist/tools/scriptrunner.js +852 -831
  346. package/dist/tools/scriptrunner.js.map +1 -1
  347. package/dist/vue-common.css +1 -1
  348. package/dist/widgets.cjs +1 -1
  349. package/dist/widgets.js +63 -63
  350. package/package.json +2 -2
  351. package/dist/Layout-DUWX7PWw.cjs +0 -2
  352. package/dist/SpacerWidget-C0RmQY3t.js +0 -19
  353. package/dist/SpacerWidget-C5x4sFAQ.cjs +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"admin.cjs","sources":["../../src/tools/admin/DownloadDialog.vue","../../src/tools/admin/EditDialog.vue","../../src/tools/admin/ModifiedPluginDialog.vue","../../src/tools/admin/tabs/index.js","../../src/tools/admin/OpenC3Admin.vue","../../../openc3-cosmos-ace-diff/dist/ace-diff.min.js","../../src/tools/admin/PluginDialog.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" width=\"600\">\n <v-card>\n <v-toolbar height=\"24\">\n <v-spacer />\n <span> Download Gems </span>\n <v-spacer />\n </v-toolbar>\n <v-card-text>\n <div class=\"pa-3\">\n <v-row class=\"my-2\"> Select a download option </v-row>\n <v-row>\n <v-col>\n <div class=\"px-2\">\n <v-btn\n block\n data-test=\"searchGithub\"\n color=\"primary\"\n :disabled=\"disableSearch\"\n @click=\"searchGithub\"\n >\n Github\n <v-icon end theme=\"dark\"> mdi-github </v-icon>\n </v-btn>\n </div>\n </v-col>\n </v-row>\n <!---\n <v-row>\n <v-col>\n <div class=\"px-2\">\n <v-btn\n @click=\"searchRuby\"\n block\n data-test=\"searchRuby\"\n color=\"primary\"\n :disabled=\"disableSearch\"\n >\n RubyGems\n <v-icon right dark> mdi-heart </v-icon>\n </v-btn>\n </div>\n </v-col>\n </v-row>\n --->\n <v-row class=\"mt-5\"> Community Gems </v-row>\n <div v-if=\"listData.length < 1\" class=\"mt-4\">\n <v-row class=\"mx-2\">\n <span> I’m sorry, Dave. No gems available.... </span>\n </v-row>\n </div>\n <div v-else class=\"mt-4\">\n <div v-for=\"(data, index) in listData\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ data.name }}</v-list-item-title>\n\n <v-list-item icon>\n <v-progress-circular\n v-if=\"activeDownload\"\n indeterminate\n color=\"primary\"\n />\n <v-btn\n v-else\n icon=\"mdi-cloud-download\"\n variant=\"text\"\n :disabled=\"activeDownload\"\n @click=\"downloadGem(data)\"\n />\n </v-list-item>\n </v-list-item>\n <v-divider v-if=\"index < listData.length - 1\" :key=\"index\" />\n </div>\n </div>\n </div>\n </v-card-text>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\n// Directly use axios since we need no authentication or scope\nimport axios from 'axios'\n\nexport default {\n props: {\n modelValue: Boolean,\n },\n data() {\n return {\n url: '',\n type: null,\n response: null,\n activeDownload: false,\n disableSearch: false,\n expanded: [],\n }\n },\n computed: {\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n listData: function () {\n if (!this.response) return []\n if (this.type === 'github') {\n return this.parseGithub()\n } else {\n return this.parseRuby()\n }\n },\n },\n methods: {\n parseGithub: function () {\n const gemRegEx = /\\w+.gem/\n return this.response.tree\n .filter((f) => gemRegEx.exec(f.path))\n .map((f) => {\n return {\n name: f.path,\n url: `https://raw.github.com/OpenC3/openc3-tools/main/${f.path}`,\n }\n })\n },\n getResponse: function () {\n this.disableSearch = true\n axios.get(this.url).then((response) => {\n this.response = response.data\n })\n setTimeout(() => {\n this.disableSearch = false\n }, 10000)\n },\n searchGithub: function () {\n this.type = 'github'\n this.url =\n 'https://api.github.com/repos/OpenC3/openc3-tools/git/trees/main?recursive=1'\n this.getResponse()\n },\n downloadGem: function (gem) {\n const link = document.createElement('a')\n link.href = gem.url\n link.setAttribute('download', gem.name)\n link.click()\n link.remove()\n },\n },\n}\n</script>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" :persistent=\"!readonly\" width=\"80vw\">\n <v-card>\n <form @submit.prevent=\"submit\">\n <v-toolbar height=\"24\">\n <v-spacer />\n <span v-text=\"title\" />\n <v-spacer />\n <v-btn\n class=\"mx-2\"\n icon=\"mdi-download\"\n variant=\"text\"\n density=\"compact\"\n data-test=\"downloadIcon\"\n @click=\"download\"\n />\n </v-toolbar>\n\n <v-card-text>\n <div class=\"pa-3\">\n <div v-if=\"!readonly\">\n <v-row class=\"mt-3\"> Upload a file. </v-row>\n <v-row no-gutters align=\"center\">\n <v-col cols=\"3\">\n <v-btn\n block\n color=\"success\"\n :disabled=\"!file || loadingFile || readonly\"\n :loading=\"loadingFile\"\n data-test=\"editScreenLoadBtn\"\n @click=\"loadFile\"\n >\n Load\n <template #loader>\n <span>Loading...</span>\n </template>\n </v-btn>\n </v-col>\n <v-col cols=\"9\">\n <v-file-input\n v-model=\"file\"\n accept=\".json\"\n label=\"Click to select .json file.\"\n :disabled=\"readonly\"\n />\n </v-col>\n </v-row>\n </div>\n <v-row no-gutters>\n <pre\n ref=\"editor\"\n class=\"editor\"\n @contextmenu.prevent=\"showContextMenu\"\n ></pre>\n <v-menu v-model=\"contextMenu\" :target=\"[menuX, menuY]\">\n <v-list>\n <v-list-item\n title=\"Toggle Vim mode\"\n prepend-icon=\"extras:vim\"\n @click=\"toggleVimMode\"\n />\n </v-list>\n </v-menu>\n </v-row>\n <v-row class=\"my-3\">\n <span v-show=\"error\" class=\"text-red\" v-text=\"error\" />\n </v-row>\n <v-row>\n <v-spacer />\n <v-btn\n variant=\"outlined\"\n class=\"mx-2\"\n data-test=\"editCancelBtn\"\n @click.prevent=\"close\"\n >\n Cancel\n </v-btn>\n <v-btn\n v-if=\"!readonly\"\n class=\"mx-2\"\n color=\"primary\"\n type=\"submit\"\n data-test=\"editSubmitBtn\"\n :disabled=\"!!error || readonly\"\n >\n Save\n </v-btn>\n </v-row>\n </div>\n </v-card-text>\n </form>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport * as ace from 'ace-builds'\nimport 'ace-builds/src-min-noconflict/mode-ruby'\nimport 'ace-builds/src-min-noconflict/mode-json'\nimport 'ace-builds/src-min-noconflict/theme-twilight'\nimport 'ace-builds/src-min-noconflict/ext-language_tools'\nimport 'ace-builds/src-min-noconflict/ext-searchbox'\nimport { AceEditorUtils } from '../../components/ace'\n\nexport default {\n props: {\n content: {\n type: String,\n required: true,\n },\n type: String,\n name: String,\n modelValue: Boolean,\n readonly: Boolean,\n },\n data() {\n return {\n editor: null,\n contextMenu: false,\n menuX: 0,\n menuY: 0,\n }\n },\n computed: {\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n title: function () {\n return `${this.type}: ${this.name}`\n },\n error: function () {\n if (this.editor && this.editor.getValue() === '' && !this.file) {\n return 'Input can not be blank.'\n }\n return null\n },\n },\n mounted() {\n const openPluginMode = this.buildPluginMode()\n this.editor = ace.edit(this.$refs.editor)\n this.editor.setTheme('ace/theme/twilight')\n this.editor.session.setMode(new openPluginMode())\n this.editor.session.setTabSize(2)\n this.editor.session.setUseWrapMode(true)\n this.editor.$blockScrolling = Infinity\n this.editor.setHighlightActiveLine(false)\n this.editor.setValue(this.content)\n this.editor.clearSelection()\n AceEditorUtils.applyVimModeIfEnabled(this.editor)\n this.editor.focus()\n if (this.readonly) {\n this.editor.setReadOnly(true)\n }\n },\n beforeUnmount() {\n if (this.editor) {\n this.editor.destroy()\n }\n },\n methods: {\n submit: function () {\n this.$emit('submit', this.editor.getValue())\n this.show = !this.show\n },\n close: function () {\n this.show = !this.show\n },\n download: function () {\n const blob = new Blob([this.editor.getValue()], {\n type: 'text/plain',\n })\n // Make a link and then 'click' on it to start the download\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute(\n 'download',\n `${this.type.toLowerCase()}_${this.name.toLowerCase()}.json`,\n )\n link.click()\n },\n buildPluginMode() {\n let oop = ace.require('ace/lib/oop')\n let JsonHighlightRules = ace.require(\n 'ace/mode/json_highlight_rules',\n ).JsonHighlightRules\n\n let MatchingBraceOutdent = ace.require(\n 'ace/mode/matching_brace_outdent',\n ).MatchingBraceOutdent\n let CstyleBehaviour = ace.require(\n 'ace/mode/behaviour/cstyle',\n ).CstyleBehaviour\n let FoldMode = ace.require('ace/mode/folding/ruby').FoldMode\n let Mode = function () {\n this.HighlightRules = JsonHighlightRules\n this.$outdent = new MatchingBraceOutdent()\n this.$behaviour = new CstyleBehaviour()\n this.foldingRules = new FoldMode()\n this.indentKeywords = this.foldingRules.indentKeywords\n }\n let RubyMode = ace.require('ace/mode/ruby').Mode\n oop.inherits(Mode, RubyMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n showContextMenu: function (event) {\n this.menuX = event.pageX\n this.menuY = event.pageY\n\n let position = this.editor.getCursorPosition()\n let token = this.editor.session.getTokenAt(position.row, position.column)\n if (token) {\n let value = token.value.trim()\n if (value.includes(' ')) {\n this.docsKeyword = value.split(' ')[0]\n } else {\n this.docsKeyword = value\n }\n this.contextMenu = true\n }\n },\n toggleVimMode: function () {\n AceEditorUtils.toggleVimMode(this.editor)\n },\n },\n}\n</script>\n\n<style scoped>\n.editor {\n height: 50vh;\n width: 75vw;\n position: relative;\n font-size: 16px;\n}\n\n.v-textarea :deep(textarea) {\n padding: 5px;\n}\n</style>\n","<!--\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" width=\"600\">\n <v-card>\n <v-toolbar height=\"24\">\n <v-spacer />\n <span> Modified Plugin </span>\n <v-spacer />\n </v-toolbar>\n <v-card-text class=\"pa-3\">\n <div>\n Plugin {{ plugin }} was modified. Would you like to delete the\n existing modified files?\n </div>\n <v-list-item\n v-for=\"(target, index) in modifiedTargets\"\n :key=\"index\"\n lines=\"two\"\n >\n <v-list-item-title>{{ target.name }}</v-list-item-title>\n <v-list-item-subtitle\n v-for=\"(file, itemIndex) in target.files\"\n :key=\"itemIndex\"\n >{{ file }}</v-list-item-subtitle\n >\n </v-list-item>\n <v-checkbox\n v-model=\"deleteModified\"\n label=\"DELETE MODIFIED! THIS CAN NOT BE UNDONE!!!\"\n color=\"error\"\n data-test=\"modified-plugin-delete-checkbox\"\n />\n </v-card-text>\n <v-card-actions class=\"px-2\">\n <v-spacer />\n <v-btn\n variant=\"outlined\"\n data-test=\"modified-plugin-cancel\"\n @click=\"\n () => {\n show = false\n $emit('cancel')\n }\n \"\n >\n Cancel\n </v-btn>\n <v-btn\n variant=\"flat\"\n data-test=\"modified-plugin-submit\"\n @click=\"\n () => {\n show = false\n $emit('submit', deleteModified)\n }\n \"\n >\n Confirm\n </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\n\nexport default {\n props: {\n modelValue: Boolean,\n plugin: String,\n targets: Array,\n pluginDelete: Boolean,\n },\n data() {\n return {\n modifiedTargets: [],\n deleteModified: false,\n }\n },\n computed: {\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n },\n created() {\n for (const target of this.targets) {\n Api.get(`/openc3-api/targets/${target.name}/modified_files`).then(\n (response) => {\n if (response.data.length !== 0) {\n // Only push targets which actually have modified files\n this.modifiedTargets.push({\n name: target.name,\n files: response.data,\n })\n }\n },\n )\n }\n },\n}\n</script>\n\n<style scoped></style>\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nconst TabsList = [\n {\n displayName: 'Plugins',\n name: 'PluginsTab',\n path: 'plugins',\n component: () => import('./PluginsTab.vue'),\n },\n {\n displayName: 'Targets',\n name: 'TargetsTab',\n path: 'targets',\n component: () => import('./TargetsTab.vue'),\n },\n {\n displayName: 'Interfaces',\n name: 'InterfacesTab',\n path: 'interfaces',\n component: () => import('./InterfacesTab.vue'),\n },\n {\n displayName: 'Routers',\n name: 'RoutersTab',\n path: 'routers',\n component: () => import('./RoutersTab.vue'),\n },\n {\n displayName: 'Microservices',\n name: 'MicroservicesTab',\n path: 'microservices',\n component: () => import('./MicroservicesTab.vue'),\n },\n {\n displayName: 'Packages',\n name: 'PackagesTab',\n path: 'packages',\n component: () => import('./PackagesTab.vue'),\n },\n {\n displayName: 'Tools',\n name: 'ToolsTab',\n path: 'tools',\n component: () => import('./ToolsTab.vue'),\n },\n {\n displayName: 'Redis',\n name: 'RedisTab',\n path: 'redis',\n component: () => import('./RedisTab.vue'),\n },\n {\n displayName: 'Secrets',\n name: 'SecretsTab',\n path: 'secrets',\n component: () => import('./SecretsTab.vue'),\n },\n {\n displayName: 'Settings',\n name: 'SettingsTab',\n path: 'settings',\n component: () => import('./SettingsTab.vue'),\n },\n]\n\nexport { TabsList }\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <top-bar :title=\"title\" />\n <v-card>\n <v-tabs v-model=\"curTab\" fixed-tabs>\n <v-tab v-for=\"(tab, index) in tabs\" :key=\"index\" :to=\"tab.path\">\n {{ tab.displayName }}\n </v-tab>\n </v-tabs>\n <router-view />\n </v-card>\n </div>\n</template>\n\n<script>\nimport { TopBar } from '@/components'\nimport { TabsList } from './tabs'\n\nexport default {\n components: {\n TopBar,\n },\n data() {\n return {\n title: 'Administrator Console',\n curTab: null,\n }\n },\n computed: {\n tabs: function () {\n return TabsList.map((tab) => {\n return {\n displayName: tab.displayName,\n path: { name: tab.name },\n }\n })\n },\n },\n}\n</script>\n","const g=function(){this.Diff_Timeout=1,this.Diff_EditCost=4,this.Match_Threshold=.5,this.Match_Distance=1e3,this.Patch_DeleteThreshold=.5,this.Patch_Margin=4,this.Match_MaxBits=32};g.Diff=function(t,e){this[0]=t,this[1]=e};g.Diff.prototype.length=2;g.Diff.prototype.toString=function(){return this[0]+\",\"+this[1]};g.prototype.diff_main=function(t,e,n,i){typeof i>\"u\"&&(this.Diff_Timeout<=0?i=Number.MAX_VALUE:i=new Date().getTime()+this.Diff_Timeout*1e3);let l=i;if(t==null||e==null)throw new Error(\"Null input. (diff_main)\");if(t==e)return t?[new g.Diff(0,t)]:[];typeof n>\"u\"&&(n=!0);let r=n,s=this.diff_commonPrefix(t,e),o=t.substring(0,s);t=t.substring(s),e=e.substring(s),s=this.diff_commonSuffix(t,e);let h=t.substring(t.length-s);t=t.substring(0,t.length-s),e=e.substring(0,e.length-s);let a=this.diff_compute_(t,e,r,l);return o&&a.unshift(new g.Diff(0,o)),h&&a.push(new g.Diff(0,h)),this.diff_cleanupMerge(a),a};g.prototype.diff_compute_=function(t,e,n,i){let l;if(!t)return[new g.Diff(1,e)];if(!e)return[new g.Diff(-1,t)];let r=t.length>e.length?t:e,s=t.length>e.length?e:t,o=r.indexOf(s);return o!=-1?(l=[new g.Diff(1,r.substring(0,o)),new g.Diff(0,s),new g.Diff(1,r.substring(o+s.length))],t.length>e.length&&(l[0][0]=l[2][0]=-1),l):s.length==1?[new g.Diff(-1,t),new g.Diff(1,e)]:n&&t.length>100&&e.length>100?this.diff_lineMode_(t,e,i):this.diff_bisect_(t,e,i)};g.prototype.diff_lineMode_=function(t,e,n){let i=this.diff_linesToChars_(t,e);t=i.chars1,e=i.chars2;let l=i.lineArray,r=this.diff_main(t,e,!1,n);this.diff_charsToLines_(r,l),this.diff_cleanupSemantic(r),r.push(new g.Diff(0,\"\"));let s=0,o=0,h=0,a=\"\",c=\"\";for(;s<r.length;){switch(r[s][0]){case 1:h++,c+=r[s][1];break;case-1:o++,a+=r[s][1];break;case 0:if(o>=1&&h>=1){r.splice(s-o-h,o+h),s=s-o-h;let f=this.diff_main(a,c,!1,n);for(let u=f.length-1;u>=0;u--)r.splice(s,0,f[u]);s=s+f.length}h=0,o=0,a=\"\",c=\"\";break}s++}return r.pop(),r};g.prototype.diff_bisect_=function(t,e,n){let i=t.length,l=e.length,r=Math.ceil((i+l)/2),s=r,o=2*r,h=new Array(o),a=new Array(o);for(let d=0;d<o;d++)h[d]=-1,a[d]=-1;h[s+1]=0,a[s+1]=0;let c=i-l,f=c%2!=0,u=0,p=0,_=0,D=0;for(let d=0;d<r&&!(new Date().getTime()>n);d++){for(let E=-d+u;E<=d-p;E+=2){let L=s+E,m;E==-d||E!=d&&h[L-1]<h[L+1]?m=h[L+1]:m=h[L-1]+1;let F=m-E;for(;m<i&&F<l&&t.charAt(m)==e.charAt(F);)m++,F++;if(h[L]=m,m>i)p+=2;else if(F>l)u+=2;else if(f){let b=s+c-E;if(b>=0&&b<o&&a[b]!=-1){let w=i-a[b];if(m>=w)return this.diff_bisectSplit_(t,e,m,F,n)}}}for(let E=-d+_;E<=d-D;E+=2){let L=s+E,m;E==-d||E!=d&&a[L-1]<a[L+1]?m=a[L+1]:m=a[L-1]+1;let F=m-E;for(;m<i&&F<l&&t.charAt(i-m-1)==e.charAt(l-F-1);)m++,F++;if(a[L]=m,m>i)D+=2;else if(F>l)_+=2;else if(!f){let b=s+c-E;if(b>=0&&b<o&&h[b]!=-1){let w=h[b],y=s+w-b;if(m=i-m,w>=m)return this.diff_bisectSplit_(t,e,w,y,n)}}}}return[new g.Diff(-1,t),new g.Diff(1,e)]};g.prototype.diff_bisectSplit_=function(t,e,n,i,l){let r=t.substring(0,n),s=e.substring(0,i),o=t.substring(n),h=e.substring(i),a=this.diff_main(r,s,!1,l),c=this.diff_main(o,h,!1,l);return a.concat(c)};g.prototype.diff_linesToChars_=function(t,e){let n=[],i={};n[0]=\"\";function l(h){let a=\"\",c=0,f=-1,u=n.length;for(;f<h.length-1;){f=h.indexOf(`\n`,c),f==-1&&(f=h.length-1);let p=h.substring(c,f+1);(i.hasOwnProperty?i.hasOwnProperty(p):i[p]!==void 0)?a+=String.fromCharCode(i[p]):(u==r&&(p=h.substring(c),f=h.length),a+=String.fromCharCode(u),i[p]=u,n[u++]=p),c=f+1}return a}let r=4e4,s=l(t);r=65535;let o=l(e);return{chars1:s,chars2:o,lineArray:n}};g.prototype.diff_charsToLines_=function(t,e){for(let n=0;n<t.length;n++){let i=t[n][1],l=[];for(let r=0;r<i.length;r++)l[r]=e[i.charCodeAt(r)];t[n][1]=l.join(\"\")}};g.prototype.diff_commonPrefix=function(t,e){if(!t||!e||t.charAt(0)!=e.charAt(0))return 0;let n=0,i=Math.min(t.length,e.length),l=i,r=0;for(;n<l;)t.substring(r,l)==e.substring(r,l)?(n=l,r=n):i=l,l=Math.floor((i-n)/2+n);return l};g.prototype.diff_commonSuffix=function(t,e){if(!t||!e||t.charAt(t.length-1)!=e.charAt(e.length-1))return 0;let n=0,i=Math.min(t.length,e.length),l=i,r=0;for(;n<l;)t.substring(t.length-l,t.length-r)==e.substring(e.length-l,e.length-r)?(n=l,r=n):i=l,l=Math.floor((i-n)/2+n);return l};g.prototype.diff_commonOverlap_=function(t,e){let n=t.length,i=e.length;if(n==0||i==0)return 0;n>i?t=t.substring(n-i):n<i&&(e=e.substring(0,n));let l=Math.min(n,i);if(t==e)return l;let r=0,s=1;for(;;){let o=t.substring(l-s),h=e.indexOf(o);if(h==-1)return r;s+=h,(h==0||t.substring(l-s)==e.substring(0,s))&&(r=s,s++)}};g.prototype.diff_halfMatch_=function(t,e){if(this.Diff_Timeout<=0)return null;let n=t.length>e.length?t:e,i=t.length>e.length?e:t;if(n.length<4||i.length*2<n.length)return null;let l=this;function r(_,D,d){let E=_.substring(d,d+Math.floor(_.length/4)),L=-1,m=\"\",F,b,w,y;for(;(L=D.indexOf(E,L+1))!=-1;){let T=l.diff_commonPrefix(_.substring(d),D.substring(L)),C=l.diff_commonSuffix(_.substring(0,d),D.substring(0,L));m.length<C+T&&(m=D.substring(L-C,L)+D.substring(L,L+T),F=_.substring(0,d-C),b=_.substring(d+T),w=D.substring(0,L-C),y=D.substring(L+T))}return m.length*2>=_.length?[F,b,w,y,m]:null}let s=r(n,i,Math.ceil(n.length/4)),o=r(n,i,Math.ceil(n.length/2)),h;if(!s&&!o)return null;o?s?h=s[4].length>o[4].length?s:o:h=o:h=s;let a,c,f,u;t.length>e.length?(a=h[0],c=h[1],f=h[2],u=h[3]):(f=h[0],u=h[1],a=h[2],c=h[3]);let p=h[4];return[a,c,f,u,p]};g.prototype.diff_cleanupSemantic=function(t){let e=!1,n=[],i=0,l=null,r=0,s=0,o=0,h=0,a=0;for(;r<t.length;)t[r][0]==0?(n[i++]=r,s=h,o=a,h=0,a=0,l=t[r][1]):(t[r][0]==1?h+=t[r][1].length:a+=t[r][1].length,l&&l.length<=Math.max(s,o)&&l.length<=Math.max(h,a)&&(t.splice(n[i-1],0,new g.Diff(-1,l)),t[n[i-1]+1][0]=1,i--,i--,r=i>0?n[i-1]:-1,s=0,o=0,h=0,a=0,l=null,e=!0)),r++;for(e&&this.diff_cleanupMerge(t),this.diff_cleanupSemanticLossless(t),r=1;r<t.length;){if(t[r-1][0]==-1&&t[r][0]==1){let c=t[r-1][1],f=t[r][1],u=this.diff_commonOverlap_(c,f),p=this.diff_commonOverlap_(f,c);u>=p?(u>=c.length/2||u>=f.length/2)&&(t.splice(r,0,new g.Diff(0,f.substring(0,u))),t[r-1][1]=c.substring(0,c.length-u),t[r+1][1]=f.substring(u),r++):(p>=c.length/2||p>=f.length/2)&&(t.splice(r,0,new g.Diff(0,c.substring(0,p))),t[r-1][0]=1,t[r-1][1]=f.substring(0,f.length-p),t[r+1][0]=-1,t[r+1][1]=c.substring(p),r++),r++}r++}};g.prototype.diff_cleanupSemanticLossless=function(t){function e(i,l){if(!i||!l)return 6;let r=i.charAt(i.length-1),s=l.charAt(0),o=r.match(g.nonAlphaNumericRegex_),h=s.match(g.nonAlphaNumericRegex_),a=o&&r.match(g.whitespaceRegex_),c=h&&s.match(g.whitespaceRegex_),f=a&&r.match(g.linebreakRegex_),u=c&&s.match(g.linebreakRegex_),p=f&&i.match(g.blanklineEndRegex_),_=u&&l.match(g.blanklineStartRegex_);return p||_?5:f||u?4:o&&!a&&c?3:a||c?2:o||h?1:0}let n=1;for(;n<t.length-1;){if(t[n-1][0]==0&&t[n+1][0]==0){let i=t[n-1][1],l=t[n][1],r=t[n+1][1],s=this.diff_commonSuffix(i,l);if(s){i[i.length-s]===`\n`&&(s-=1);let f=l.substring(l.length-s);i=i.substring(0,i.length-s),l=f+l.substring(0,l.length-s),r=f+r}let o=i,h=l,a=r,c=e(i,l)+e(l,r);for(;l.charAt(0)===r.charAt(0);){i+=l.charAt(0),l=l.substring(1)+r.charAt(0),r=r.substring(1);let f=e(i,l)+e(l,r);f>=c&&(c=f,o=i,h=l,a=r)}t[n-1][1]!=o&&(o?t[n-1][1]=o:(t.splice(n-1,1),n--),t[n][1]=h,a?t[n+1][1]=a:(t.splice(n+1,1),n--))}n++}};g.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;g.whitespaceRegex_=/\\s/;g.linebreakRegex_=/[\\r\\n]/;g.blanklineEndRegex_=/\\n\\r?\\n$/;g.blanklineStartRegex_=/^\\r?\\n\\r?\\n/;g.prototype.diff_cleanupEfficiency=function(t){let e=!1,n=[],i=0,l=null,r=0,s=!1,o=!1,h=!1,a=!1;for(;r<t.length;)t[r][0]==0?(t[r][1].length<this.Diff_EditCost&&(h||a)?(n[i++]=r,s=h,o=a,l=t[r][1]):(i=0,l=null),h=a=!1):(t[r][0]==-1?a=!0:h=!0,l&&(s&&o&&h&&a||l.length<this.Diff_EditCost/2&&s+o+h+a==3)&&(t.splice(n[i-1],0,new g.Diff(-1,l)),t[n[i-1]+1][0]=1,i--,l=null,s&&o?(h=a=!0,i=0):(i--,r=i>0?n[i-1]:-1,h=a=!1),e=!0)),r++;e&&this.diff_cleanupMerge(t)};g.prototype.diff_cleanupMerge=function(t){t.push(new g.Diff(0,\"\"));let e=0,n=0,i=0,l=\"\",r=\"\",s;for(;e<t.length;)switch(t[e][0]){case 1:i++,r+=t[e][1],e++;break;case-1:n++,l+=t[e][1],e++;break;case 0:n+i>1?(n!==0&&i!==0&&(s=this.diff_commonPrefix(r,l),s!==0&&(e-n-i>0&&t[e-n-i-1][0]==0?t[e-n-i-1][1]+=r.substring(0,s):(t.splice(0,0,new g.Diff(0,r.substring(0,s))),e++),r=r.substring(s),l=l.substring(s)),s=this.diff_commonSuffix(r,l),s!==0&&(t[e][1]=r.substring(r.length-s)+t[e][1],r=r.substring(0,r.length-s),l=l.substring(0,l.length-s))),e-=n+i,t.splice(e,n+i),l.length&&(t.splice(e,0,new g.Diff(-1,l)),e++),r.length&&(t.splice(e,0,new g.Diff(1,r)),e++),e++):e!==0&&t[e-1][0]==0?(t[e-1][1]+=t[e][1],t.splice(e,1)):e++,i=0,n=0,l=\"\",r=\"\";break}t[t.length-1][1]===\"\"&&t.pop();let o=!1;for(e=1;e<t.length-1;)t[e-1][0]==0&&t[e+1][0]==0&&(t[e][1].substring(t[e][1].length-t[e-1][1].length)==t[e-1][1]?(t[e][1]=t[e-1][1]+t[e][1].substring(0,t[e][1].length-t[e-1][1].length),t[e+1][1]=t[e-1][1]+t[e+1][1],t.splice(e-1,1),o=!0):t[e][1].substring(0,t[e+1][1].length)==t[e+1][1]&&(t[e-1][1]+=t[e+1][1],t[e][1]=t[e][1].substring(t[e+1][1].length)+t[e+1][1],t.splice(e+1,1),o=!0)),e++;o&&this.diff_cleanupMerge(t)};g.prototype.diff_cleanupSplitSurrogates=function(t){let e;for(let n=0;n<t.length;n++){let i=t[n],l=i[1][0],r=i[1][i[1].length-1];if(i[1].length===0){t.splice(n--,1);continue}if(r&&this.isHighSurrogate(r)&&(e=r,i[1]=i[1].slice(0,-1)),e&&l&&this.isHighSurrogate(e)&&this.isLowSurrogate(l)&&(i[1]=e+i[1]),i[1].length===0){t.splice(n--,1);continue}}return t};g.prototype.isHighSurrogate=function(t){let e=t.charCodeAt(0);return e>=55296&&e<=56319};g.prototype.isLowSurrogate=function(t){let e=t.charCodeAt(0);return e>=56320&&e<=57343};g.prototype.digit16=function(t){switch(t){case\"0\":return 0;case\"1\":return 1;case\"2\":return 2;case\"3\":return 3;case\"4\":return 4;case\"5\":return 5;case\"6\":return 6;case\"7\":return 7;case\"8\":return 8;case\"9\":return 9;case\"A\":case\"a\":return 10;case\"B\":case\"b\":return 11;case\"C\":case\"c\":return 12;case\"D\":case\"d\":return 13;case\"E\":case\"e\":return 14;case\"F\":case\"f\":return 15;default:throw new Error(\"Invalid hex-code\")}};g.prototype.decodeURI=function(t){try{return decodeURI(t)}catch{let n=0,i=\"\";for(;n<t.length;){if(t[n]!==\"%\"){i+=t[n++];continue}let l=(this.digit16(t[n+1])<<4)+this.digit16(t[n+2]);if((l&128)===0){i+=String.fromCharCode(l),n+=3;continue}if(t[n+3]!==\"%\")throw new URIError(\"URI malformed\");let r=(this.digit16(t[n+4])<<4)+this.digit16(t[n+5]);if((r&192)!==128)throw new URIError(\"URI malformed\");if(r=r&63,(l&224)===192){i+=String.fromCharCode((l&31)<<6|r),n+=6;continue}if(t[n+6]!==\"%\")throw new URIError(\"URI malformed\");let s=(this.digit16(t[n+7])<<4)+this.digit16(t[n+8]);if((s&192)!==128)throw new URIError(\"URI malformed\");if(s=s&63,(l&240)===224){i+=String.fromCharCode((l&15)<<12|r<<6|s),n+=9;continue}if(t[n+9]!==\"%\")throw new URIError(\"URI malformed\");let o=(this.digit16(t[n+10])<<4)+this.digit16(t[n+11]);if((o&192)!==128)throw new URIError(\"URI malformed\");if(o=o&63,(l&248)===240){let h=(l&7)<<18|r<<12|s<<6|o;if(h>=65536&&h<=1114111){i+=String.fromCharCode((h&65535)>>>10&1023|55296),i+=String.fromCharCode(56320|h&65535&1023),n+=12;continue}}throw new URIError(\"URI malformed\")}return i}};g.prototype.diff_xIndex=function(t,e){let n=0,i=0,l=0,r=0,s;for(s=0;s<t.length&&(t[s][0]!==1&&(n+=t[s][1].length),t[s][0]!==-1&&(i+=t[s][1].length),!(n>e));s++)l=n,r=i;return t.length!=s&&t[s][0]===-1?r:r+(e-l)};g.prototype.diff_prettyHtml=function(t){t=this.diff_cleanupSplitSurrogates(t);let e=[],n=/&/g,i=/</g,l=/>/g,r=/\\n/g;for(let s=0;s<t.length;s++){let o=t[s][0],a=t[s][1].replace(n,\"&amp;\").replace(i,\"&lt;\").replace(l,\"&gt;\").replace(r,\"&para;<br>\");switch(o){case 1:e[s]='<ins style=\"background:#e6ffe6;\">'+a+\"</ins>\";break;case-1:e[s]='<del style=\"background:#ffe6e6;\">'+a+\"</del>\";break;case 0:e[s]=\"<span>\"+a+\"</span>\";break}}return e.join(\"\")};g.prototype.diff_text1=function(t){let e=[];for(let n=0;n<t.length;n++)t[n][0]!==1&&(e[n]=t[n][1]);return e.join(\"\")};g.prototype.diff_text2=function(t){let e=[];for(let n=0;n<t.length;n++)t[n][0]!==-1&&(e[n]=t[n][1]);return e.join(\"\")};g.prototype.diff_levenshtein=function(t){let e=0,n=0,i=0;for(let l=0;l<t.length;l++){let r=t[l][0],s=t[l][1];switch(r){case 1:n+=s.length;break;case-1:i+=s.length;break;case 0:e+=Math.max(n,i),n=0,i=0;break}}return e+=Math.max(n,i),e};g.prototype.diff_toDelta=function(t){t=this.diff_cleanupSplitSurrogates(t);let e=[];for(let n=0;n<t.length;n++)switch(t[n][0]){case 1:e[n]=\"+\"+encodeURI(t[n][1]);break;case-1:e[n]=\"-\"+t[n][1].length;break;case 0:e[n]=\"=\"+t[n][1].length;break}return e.join(\"\t\").replace(/%20/g,\" \")};g.prototype.diff_fromDelta=function(t,e){let n=0,i=\"\",l=[],r=0,s=0,o=e.split(/\\t/g);for(let h=0;h<o.length;h++){let a=o[h].substring(1);switch(o[h].charAt(0)){case\"+\":try{l[r++]=new g.Diff(1,this.decodeURI(a))}catch{throw new Error(\"Illegal escape in diff_fromDelta: \"+a)}break;case\"-\":case\"=\":if(n=parseInt(a,10),isNaN(n)||n<0)throw new Error(\"Invalid number in diff_fromDelta: \"+a);i=t.substring(s,s+=n),o[h].charAt(0)==\"=\"?l[r++]=new g.Diff(0,i):l[r++]=new g.Diff(-1,i);break;default:if(o[h])throw new Error(\"Invalid diff operation in diff_fromDelta: \"+o[h])}}if(s!=t.length)throw new Error(\"Delta length (\"+s+\") does not equal source text length (\"+t.length+\").\");return l};g.prototype.match_main=function(t,e,n){if(t==null||e==null||n==null)throw new Error(\"Null input. (match_main)\");return n=Math.max(0,Math.min(n,t.length)),t==e?0:t.length?t.substring(n,n+e.length)==e?n:this.match_bitap_(t,e,n):-1};g.prototype.match_bitap_=function(t,e,n){if(e.length>this.Match_MaxBits)throw new Error(\"Pattern too long for this browser.\");let i=this.match_alphabet_(e),l=this;function r(p,_){let D=p/e.length,d=Math.abs(n-_);return l.Match_Distance?D+d/l.Match_Distance:d?1:D}let s=this.Match_Threshold,o=t.indexOf(e,n);o!=-1&&(s=Math.min(r(0,o),s),o=t.lastIndexOf(e,n+e.length),o!=-1&&(s=Math.min(r(0,o),s)));let h=1<<e.length-1;o=-1;let a,c,f=e.length+t.length,u;for(let p=0;p<e.length;p++){for(a=0,c=f;a<c;)r(p,n+c)<=s?a=c:f=c,c=Math.floor((f-a)/2+a);f=c;let _=Math.max(1,n-c+1),D=Math.min(n+c,t.length)+e.length,d=Array(D+2);d[D+1]=(1<<p)-1;for(let E=D;E>=_;E--){let L=i[t.charAt(E-1)];if(p===0?d[E]=(d[E+1]<<1|1)&L:d[E]=(d[E+1]<<1|1)&L|((u[E+1]|u[E])<<1|1)|u[E+1],d[E]&h){let m=r(p,E-1);if(m<=s)if(s=m,o=E-1,o>n)_=Math.max(1,2*n-o);else break}}if(r(p+1,n)>s)break;u=d}return o};g.prototype.match_alphabet_=function(t){let e={};for(let n=0;n<t.length;n++)e[t.charAt(n)]=0;for(let n=0;n<t.length;n++)e[t.charAt(n)]|=1<<t.length-n-1;return e};g.prototype.patch_addContext_=function(t,e){if(e.length==0)return;if(t.start2===null)throw Error(\"patch not initialized\");let n=e.substring(t.start2,t.start2+t.length1),i=0;for(;e.indexOf(n)!=e.lastIndexOf(n)&&n.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)i+=this.Patch_Margin,n=e.substring(t.start2-i,t.start2+t.length1+i);i+=this.Patch_Margin,t.start2-i>0&&g.prototype.isLowSurrogate(e[t.start2-i])&&i++;let l=e.substring(t.start2-i,t.start2);l&&t.diffs.unshift(new g.Diff(0,l)),t.start2+t.length1+i<e.length&&g.prototype.isHighSurrogate(e[t.start2+t.length1+i])&&i++;let r=e.substring(t.start2+t.length1,t.start2+t.length1+i);r&&t.diffs.push(new g.Diff(0,r)),t.start1-=l.length,t.start2-=l.length,t.length1+=l.length+r.length,t.length2+=l.length+r.length};g.prototype.patch_make=function(t,e,n){let i,l;if(typeof t==\"string\"&&typeof e==\"string\"&&typeof n>\"u\")i=t,l=this.diff_main(i,e,!0),l.length>2&&(this.diff_cleanupSemantic(l),this.diff_cleanupEfficiency(l));else if(t&&typeof t==\"object\"&&typeof e>\"u\"&&typeof n>\"u\")l=t,i=this.diff_text1(l);else if(typeof t==\"string\"&&e&&typeof e==\"object\"&&typeof n>\"u\")i=t,l=e;else if(typeof t==\"string\"&&typeof e==\"string\"&&n&&typeof n==\"object\")i=t,l=n;else throw new Error(\"Unknown call format to patch_make.\");if(l.length===0)return[];l=this.diff_cleanupSplitSurrogates(l);let r=[],s=new g.patch_obj,o=0,h=0,a=0,c=i,f=i;for(let u=0;u<l.length;u++){let p=l[u][0],_=l[u][1];switch(!o&&p!==0&&(s.start1=h,s.start2=a),p){case 1:s.diffs[o++]=l[u],s.length2+=_.length,f=f.substring(0,a)+_+f.substring(a);break;case-1:s.length1+=_.length,s.diffs[o++]=l[u],f=f.substring(0,a)+f.substring(a+_.length);break;case 0:_.length<=2*this.Patch_Margin&&o&&l.length!=u+1?(s.diffs[o++]=l[u],s.length1+=_.length,s.length2+=_.length):_.length>=2*this.Patch_Margin&&o&&(this.patch_addContext_(s,c),r.push(s),s=new g.patch_obj,o=0,c=f,h=a);break}p!==1&&(h+=_.length),p!==-1&&(a+=_.length)}return o&&(this.patch_addContext_(s,c),r.push(s)),r};g.prototype.patch_deepCopy=function(t){let e=[];for(let n=0;n<t.length;n++){let i=t[n],l=new g.patch_obj;l.diffs=[];for(let r=0;r<i.diffs.length;r++)l.diffs[r]=new g.Diff(i.diffs[r][0],i.diffs[r][1]);l.start1=i.start1,l.start2=i.start2,l.length1=i.length1,l.length2=i.length2,e[n]=l}return e};g.prototype.patch_apply=function(t,e){if(t.length==0)return[e,[]];t=this.patch_deepCopy(t);let n=this.patch_addPadding(t);e=n+e+n,this.patch_splitMax(t);let i=0,l=[];for(let r=0;r<t.length;r++){let s=t[r].start2+i,o=this.diff_text1(t[r].diffs),h,a=-1;if(o.length>this.Match_MaxBits?(h=this.match_main(e,o.substring(0,this.Match_MaxBits),s),h!=-1&&(a=this.match_main(e,o.substring(o.length-this.Match_MaxBits),s+o.length-this.Match_MaxBits),(a==-1||h>=a)&&(h=-1))):h=this.match_main(e,o,s),h==-1)l[r]=!1,i-=t[r].length2-t[r].length1;else{l[r]=!0,i=h-s;let c;if(a==-1?c=e.substring(h,h+o.length):c=e.substring(h,a+this.Match_MaxBits),o==c)e=e.substring(0,h)+this.diff_text2(t[r].diffs)+e.substring(h+o.length);else{let f=this.diff_main(o,c,!1);if(o.length>this.Match_MaxBits&&this.diff_levenshtein(f)/o.length>this.Patch_DeleteThreshold)l[r]=!1;else{this.diff_cleanupSemanticLossless(f);let u=0,p;for(let _=0;_<t[r].diffs.length;_++){let D=t[r].diffs[_];D[0]!==0&&(p=this.diff_xIndex(f,u)),D[0]===1?e=e.substring(0,h+p)+D[1]+e.substring(h+p):D[0]===-1&&(e=e.substring(0,h+p)+e.substring(h+this.diff_xIndex(f,u+D[1].length))),D[0]!==-1&&(u+=D[1].length)}}}}}return e=e.substring(n.length,e.length-n.length),[e,l]};g.prototype.patch_addPadding=function(t){let e=this.Patch_Margin,n=\"\";for(let r=1;r<=e;r++)n+=String.fromCharCode(r);for(let r=0;r<t.length;r++)t[r].start1+=e,t[r].start2+=e;let i=t[0],l=i.diffs;if(l.length==0||l[0][0]!=0)l.unshift(new g.Diff(0,n)),i.start1-=e,i.start2-=e,i.length1+=e,i.length2+=e;else if(e>l[0][1].length){let r=e-l[0][1].length;l[0][1]=n.substring(l[0][1].length)+l[0][1],i.start1-=r,i.start2-=r,i.length1+=r,i.length2+=r}if(i=t[t.length-1],l=i.diffs,l.length==0||l[l.length-1][0]!=0)l.push(new g.Diff(0,n)),i.length1+=e,i.length2+=e;else if(e>l[l.length-1][1].length){let r=e-l[l.length-1][1].length;l[l.length-1][1]+=n.substring(0,r),i.length1+=r,i.length2+=r}return n};g.prototype.patch_splitMax=function(t){let e=this.Match_MaxBits;for(let n=0;n<t.length;n++){if(t[n].length1<=e)continue;let i=t[n];t.splice(n--,1);let l=i.start1,r=i.start2,s=\"\";for(;i.diffs.length!==0;){let o=new g.patch_obj,h=!0;for(o.start1=l-s.length,o.start2=r-s.length,s!==\"\"&&(o.length1=o.length2=s.length,o.diffs.push(new g.Diff(0,s)));i.diffs.length!==0&&o.length1<e-this.Patch_Margin;){let c=i.diffs[0][0],f=i.diffs[0][1];c===1?(o.length2+=f.length,r+=f.length,o.diffs.push(i.diffs.shift()),h=!1):c===-1&&o.diffs.length==1&&o.diffs[0][0]==0&&f.length>2*e?(o.length1+=f.length,l+=f.length,h=!1,o.diffs.push(new g.Diff(c,f)),i.diffs.shift()):(f=f.substring(0,e-o.length1-this.Patch_Margin),o.length1+=f.length,l+=f.length,c===0?(o.length2+=f.length,r+=f.length):h=!1,o.diffs.push(new g.Diff(c,f)),f==i.diffs[0][1]?i.diffs.shift():i.diffs[0][1]=i.diffs[0][1].substring(f.length))}s=this.diff_text2(o.diffs),s=s.substring(s.length-this.Patch_Margin);let a=this.diff_text1(i.diffs).substring(0,this.Patch_Margin);a!==\"\"&&(o.length1+=a.length,o.length2+=a.length,o.diffs.length!==0&&o.diffs[o.diffs.length-1][0]===0?o.diffs[o.diffs.length-1][1]+=a:o.diffs.push(new g.Diff(0,a))),h||t.splice(++n,0,o)}}};g.prototype.patch_toText=function(t){let e=[];for(let n=0;n<t.length;n++)e[n]=t[n];return e.join(\"\")};g.prototype.patch_fromText=function(t){let e=[];if(!t)return e;let n=t.split(`\n`),i=0,l=/^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$/;for(;i<n.length;){let r=n[i].match(l);if(!r)throw new Error(\"Invalid patch string: \"+n[i]);let s=new g.patch_obj;for(e.push(s),s.start1=parseInt(r[1],10),r[2]===\"\"?(s.start1--,s.length1=1):r[2]==\"0\"?s.length1=0:(s.start1--,s.length1=parseInt(r[2],10)),s.start2=parseInt(r[3],10),r[4]===\"\"?(s.start2--,s.length2=1):r[4]==\"0\"?s.length2=0:(s.start2--,s.length2=parseInt(r[4],10)),i++;i<n.length;){let o=n[i].charAt(0),h=\"\";try{h=decodeURI(n[i].substring(1))}catch{throw new Error(\"Illegal escape in patch_fromText: \"+h)}if(o==\"-\")s.diffs.push(new g.Diff(-1,h));else if(o==\"+\")s.diffs.push(new g.Diff(1,h));else if(o==\" \")s.diffs.push(new g.Diff(0,h));else{if(o==\"@\")break;if(o!==\"\")throw new Error('Invalid patch mode \"'+o+'\" in: '+h)}i++}}return e};g.patch_obj=function(){this.diffs=[],this.start1=null,this.start2=null,this.length1=0,this.length2=0};g.patch_obj.prototype.toString=function(){let t,e;this.length1===0?t=this.start1+\",0\":this.length1==1?t=this.start1+1:t=this.start1+1+\",\"+this.length1,this.length2===0?e=this.start2+\",0\":this.length2==1?e=this.start2+1:e=this.start2+1+\",\"+this.length2;let n=[\"@@ -\"+t+\" +\"+e+` @@\n`],i;g.prototype.diff_cleanupSplitSurrogates(this.diffs);for(let l=0;l<this.diffs.length;l++){switch(this.diffs[l][0]){case 1:i=\"+\";break;case-1:i=\"-\";break;case 0:i=\" \";break}n[l+1]=i+encodeURI(this.diffs[l][1])+`\n`}return n.join(\"\").replace(/%20/g,\" \")};function R(t){return t&&typeof t==\"object\"&&!Array.isArray(t)&&t!==null}function U(t,e){return R(t)&&R(e)&&Object.keys(e).forEach(n=>{n===\"__proto__\"||n===\"constructor\"||(R(e[n])?((!t[n]||!R(t[n]))&&(t[n]=e[n]),U(t[n],e[n])):Object.assign(t,{[n]:e[n]}))}),t}function N(t,e,n=!1){let i=null,l=!0;return(...r)=>{const s=n&&l,o=()=>{t.apply(this,r),i=null};s&&(l=!1,o()),i||(i=setTimeout(o,e))}}function tt(t,e){let n;return(...i)=>{const l=this;clearTimeout(n),n=setTimeout(()=>t.apply(l,i),e)}}function O(t=\"\"){return t.replace(/\\r\\n/g,`\n`)}function v(t,e,n,i){const l=n-t,r=t+l/2;return`M ${t} ${e} C ${r},${e} ${r},${i} ${n},${i}`}const I={DIFF_EQUAL:0,DIFF_DELETE:-1,DIFF_INSERT:1,EDITOR_RIGHT:\"right\",EDITOR_LEFT:\"left\",RTL:\"rtl\",LTR:\"ltr\",SVG_NS:\"http://www.w3.org/2000/svg\",DIFF_GRANULARITY_SPECIFIC:\"specific\",DIFF_GRANULARITY_BROAD:\"broad\"};function H(t,e){let{mode:n}=t.options;return e===I.EDITOR_LEFT&&t.options.left.mode!==null&&(n=t.options.left.mode),e===I.EDITOR_RIGHT&&t.options.right.mode!==null&&(n=t.options.right.mode),n}function Q(t,e){let{theme:n}=t.options;return e===I.EDITOR_LEFT&&t.options.left.theme!==null&&(n=t.options.left.theme),e===I.EDITOR_RIGHT&&t.options.right.theme!==null&&(n=t.options.right.theme),n}function Y(t,e){return t.ace.getSession().doc.getLine(e)}function et(t){return document.getElementById(t.options.left.id).offsetHeight}function x(t){const e=document.createElement(\"div\"),n={class:t.className,style:`top:${t.topOffset}px`,title:t.tooltip,\"data-diff-index\":t.diffIndex};for(const i in n)e.setAttribute(i,n[i]);return e.innerHTML=t.arrowContent,e}function M(t,e){const n=Math.random().toString(36).substr(2,5),i=`js-${e}-${n}`,l=t.querySelector(`.${e}`);if(l)return l.id=l.id||i,l.id;const r=document.createElement(\"div\");return t.appendChild(r),r.className=e,r.id=i,r.id}function $(t,e,n,i){const l=t===\"document\"?document:document.querySelector(t);l.addEventListener(e,r=>{const s=l.querySelectorAll(n),{target:o}=r;for(let h=0,a=s.length;h<a;h+=1){let c=o;const f=s[h];for(;c&&c!==l;)c===f&&i.call(f,r),c=c.parentNode}})}let A;function nt(t){if(t.Range)return t.Range;const e=t.acequire||t.require;return e?e(\"ace/range\"):!1}function k(t={}){if(!(this instanceof k))return new k(t);const e=this,n=()=>window?window.ace:void 0;e.options=U({ace:n(),mode:null,theme:null,element:null,diffGranularity:I.DIFF_GRANULARITY_BROAD,lockScrolling:!1,showDiffs:!0,showConnectors:!0,maxDiffs:5e3,left:{id:null,content:null,mode:null,theme:null,editable:!0,copyLinkEnabled:!0},right:{id:null,content:null,mode:null,theme:null,editable:!0,copyLinkEnabled:!0},classes:{gutterID:\"acediff__gutter\",diff:\"acediff__diffLine\",connector:\"acediff__connector\",newCodeConnectorLink:\"acediff__newCodeConnector\",newCodeConnectorLinkContent:\"&#8594;\",deletedCodeConnectorLink:\"acediff__deletedCodeConnector\",deletedCodeConnectorLinkContent:\"&#8592;\",copyRightContainer:\"acediff__copy--right\",copyLeftContainer:\"acediff__copy--left\"},connectorYOffset:0},t);const{ace:i}=e.options;if(!i){const l=\"No ace editor found nor supplied - `options.ace` or `window.ace` is missing\";return console.error(l),new Error(l)}if(A=nt(i),!A){const l=\"Could not require Range module for Ace. Depends on your bundling strategy, but it usually comes with Ace itself. See https://ace.c9.io/api/range.html, open an issue on GitHub ace-diff/ace-diff\";return console.error(l),new Error(l)}if(e.options.element===null){const l=\"You need to specify an element for Ace-diff - `options.element` is missing\";return console.error(l),new Error(l)}if(e.options.element instanceof HTMLElement?e.el=e.options.element:e.el=document.body.querySelector(e.options.element),!e.el){const l=`Can't find the specified element ${e.options.element}`;return console.error(l),new Error(l)}e.options.left.id=M(e.el,\"acediff__left\"),e.options.classes.gutterID=M(e.el,\"acediff__gutter\"),e.options.right.id=M(e.el,\"acediff__right\"),e.el.innerHTML=`<div class=\"acediff__wrap\">${e.el.innerHTML}</div>`,e.editors={left:{ace:i.edit(e.options.left.id),markers:[],lineLengths:[]},right:{ace:i.edit(e.options.right.id),markers:[],lineLengths:[]},editorHeight:null},e.editors.left.ace.getSession().setMode(H(e,I.EDITOR_LEFT)),e.editors.right.ace.getSession().setMode(H(e,I.EDITOR_RIGHT)),e.editors.left.ace.setReadOnly(!e.options.left.editable),e.editors.right.ace.setReadOnly(!e.options.right.editable),e.editors.left.ace.setTheme(Q(e,I.EDITOR_LEFT)),e.editors.right.ace.setTheme(Q(e,I.EDITOR_RIGHT)),e.editors.left.ace.setValue(O(e.options.left.content),-1),e.editors.right.ace.setValue(O(e.options.right.content),-1),e.editors.editorHeight=et(e),setTimeout(()=>{e.lineHeight=e.editors.left.ace.renderer.lineHeight,it(e),ot(e),K(e),e.diff()},1)}k.prototype={setOptions(t){U(this.options,t),this.diff()},getNumDiffs(){return this.diffs.length},getEditors(){return{left:this.editors.left.ace,right:this.editors.right.ace}},diff(){const t=new g,e=this.editors.left.ace.getSession().getValue(),n=this.editors.right.ace.getSession().getValue(),i=t.diff_main(n,e);t.diff_cleanupSemantic(i),this.editors.left.lineLengths=G(this.editors.left),this.editors.right.lineLengths=G(this.editors.right);const l=[],r={left:0,right:0};i.forEach(s=>{const o=s[0];let h=s[1];h.length!==0&&(o===I.DIFF_EQUAL?(r.left+=h.length,r.right+=h.length):o===I.DIFF_DELETE?(l.push(q(this,I.DIFF_DELETE,r.left,r.right,h)),r.right+=h.length):o===I.DIFF_INSERT&&(l.push(q(this,I.DIFF_INSERT,r.left,r.right,h)),r.left+=h.length))},this),this.diffs=gt(this,l),!(this.diffs.length>this.options.maxDiffs)&&(J(this),X(this))},destroy(){const t=this.editors.left.ace.getValue();this.editors.left.ace.destroy();let e=this.editors.left.ace.container,n=e.cloneNode(!1);n.textContent=t,e.parentNode.replaceChild(n,e);const i=this.editors.right.ace.getValue();this.editors.right.ace.destroy(),e=this.editors.right.ace.container,n=e.cloneNode(!1),n.textContent=i,e.parentNode.replaceChild(n,e),document.getElementById(this.options.classes.gutterID).innerHTML=\"\",Z()}};let Z=()=>{};function it(t){t.editors.left.ace.getSession().on(\"changeScrollTop\",N(()=>{B(t)},16)),t.editors.right.ace.getSession().on(\"changeScrollTop\",N(()=>{B(t)},16));const e=t.diff.bind(t);t.editors.left.ace.on(\"change\",e),t.editors.right.ace.on(\"change\",e),t.options.left.copyLinkEnabled&&$(`#${t.options.classes.gutterID}`,\"click\",`.${t.options.classes.newCodeConnectorLink}`,i=>{P(t,i,I.LTR)}),t.options.right.copyLinkEnabled&&$(`#${t.options.classes.gutterID}`,\"click\",`.${t.options.classes.deletedCodeConnectorLink}`,i=>{P(t,i,I.RTL)});const n=tt(()=>{t.editors.availableHeight=document.getElementById(t.options.left.id).offsetHeight,t.diff()},250);window.addEventListener(\"resize\",n),Z=()=>{window.removeEventListener(\"resize\",n)}}function P(t,e,n){const i=parseInt(e.target.getAttribute(\"data-diff-index\"),10),l=t.diffs[i];let r,s,o,h,a,c;n===I.LTR?(r=t.editors.left,s=t.editors.right,o=l.leftStartLine,h=l.leftEndLine,a=l.rightStartLine,c=l.rightEndLine):(r=t.editors.right,s=t.editors.left,o=l.rightStartLine,h=l.rightEndLine,a=l.leftStartLine,c=l.leftEndLine);let f=\"\";for(let p=o;p<h;p+=1)f+=Y(r,p),p===o&&f===\"\"&&a!=0&&(f+=`\n`),p<r.ace.getSession().getLength()-1&&(f+=`\n`);const u=s.ace.getSession().getScrollTop();s.ace.getSession().replace(new A(a,0,c,0),f),s.ace.getSession().setScrollTop(parseInt(u,10)),t.diff()}function G(t){const e=t.ace.getSession().doc.getAllLines(),n=[];return e.forEach(i=>{n.push(i.length+1)}),n}function j(t,e,n,i,l){const r=t.editors[e];i<n&&(i=n);const s=`${l} ${i>n?\"lines\":\"targetOnly\"}`;i>n&&(i-=1),r.markers.push(r.ace.session.addMarker(new A(n,0,i,1),s,\"fullLine\"))}function B(t){J(t),X(t),st(t)}function J(t){t.editors.left.markers.forEach(e=>{t.editors.left.ace.getSession().removeMarker(e)},t),t.editors.right.markers.forEach(e=>{t.editors.right.ace.getSession().removeMarker(e)},t)}function rt(t,e,n,i,l){const r=t.editors.left.ace.getSession().getScrollTop(),s=t.editors.right.ace.getSession().getScrollTop();t.connectorYOffset=1;const o=-1,h=e*t.lineHeight-r+.5,a=t.gutterWidth+1,c=i*t.lineHeight-s+.5,f=-1,u=n*t.lineHeight-r+t.connectorYOffset+.5,p=t.gutterWidth+1,_=l*t.lineHeight-s+t.connectorYOffset+.5,D=v(o,h,a,c),d=v(p,_,f,u),E=`L${a},${c} ${p},${_}`,L=`L${f},${u} ${o},${h}`,m=`${D} ${E} ${d} ${L}`,F=document.createElementNS(I.SVG_NS,\"path\");F.setAttribute(\"d\",m),F.setAttribute(\"class\",t.options.classes.connector),t.gutterSVG.appendChild(F)}function lt(t,e,n){if(e.leftEndLine>e.leftStartLine&&t.options.left.copyLinkEnabled){const i=x({className:t.options.classes.newCodeConnectorLink,topOffset:e.leftStartLine*t.lineHeight,tooltip:\"Copy to right\",diffIndex:n,arrowContent:t.options.classes.newCodeConnectorLinkContent});t.copyRightContainer.appendChild(i)}if(e.rightEndLine>e.rightStartLine&&t.options.right.copyLinkEnabled){const i=x({className:t.options.classes.deletedCodeConnectorLink,topOffset:e.rightStartLine*t.lineHeight,tooltip:\"Copy to left\",diffIndex:n,arrowContent:t.options.classes.deletedCodeConnectorLinkContent});t.copyLeftContainer.appendChild(i)}}function st(t){const e=t.editors.left.ace.getSession().getScrollTop(),n=t.editors.right.ace.getSession().getScrollTop();t.copyRightContainer.style.cssText=`top: ${-e}px`,t.copyLeftContainer.style.cssText=`top: ${-n}px`}function q(t,e,n,i,l){let r={};if(e===I.DIFF_INSERT){let s=V(t.editors.left,n,l),o=z(t.editors.right,i),h=S(t.editors.right,o);const a=S(t.editors.left,s.startLine);let c=o,f=s.startLine===s.endLine,u=0;(s.startChar>0||f&&l.length<a)&&h>0&&s.startChar<a&&u++,r={leftStartLine:s.startLine,leftEndLine:s.endLine+1,rightStartLine:c,rightEndLine:c+u}}else{let s=V(t.editors.right,i,l),o=z(t.editors.left,n),h=S(t.editors.left,o);const a=S(t.editors.right,s.startLine);let c=o,f=s.startLine===s.endLine,u=0;(s.startChar>0||f&&l.length<a)&&h>0&&s.startChar<a&&u++,r={leftStartLine:c,leftEndLine:c+u,rightStartLine:s.startLine,rightEndLine:s.endLine+1}}return r}function V(t,e,n){const i={startLine:0,startChar:0,endLine:0,endChar:0},l=e+n.length;let r=0,s=!1,o=!1;t.lineLengths.forEach((a,c)=>{r+=a,!s&&e<r&&(i.startLine=c,i.startChar=e-r+a,s=!0),!o&&l<=r&&(i.endLine=c,i.endChar=l-r+a,o=!0)}),i.startChar>0&&S(t,i.startLine)===i.startChar&&(i.startLine++,i.startChar=0),i.endChar===0&&i.endLine--;const h=/\\n$/.test(n);return i.startChar>0&&h&&i.endLine++,i}function S(t,e){return Y(t,e).length}function z(t,e){const n=t.ace.getSession().doc.getAllLines();let i=0,l=0;for(let r=0;r<n.length;r+=1)if(l+=n[r].length+1,e<l){i=r;break}return l>t.ace.getSession().getValue().length&&(i+=1),i}function K(t){t.gutterHeight=document.getElementById(t.options.classes.gutterID).clientHeight,t.gutterWidth=document.getElementById(t.options.classes.gutterID).clientWidth;const e=W(t,I.EDITOR_LEFT),n=W(t,I.EDITOR_RIGHT),i=Math.max(e,n,t.gutterHeight);t.gutterSVG=document.createElementNS(I.SVG_NS,\"svg\"),t.gutterSVG.setAttribute(\"width\",t.gutterWidth),t.gutterSVG.setAttribute(\"height\",i),document.getElementById(t.options.classes.gutterID).appendChild(t.gutterSVG)}function W(t,e){return(e===I.EDITOR_LEFT?t.editors.left:t.editors.right).ace.getSession().getLength()*t.lineHeight}function ot(t){t.copyRightContainer=document.createElement(\"div\"),t.copyRightContainer.setAttribute(\"class\",t.options.classes.copyRightContainer),t.copyLeftContainer=document.createElement(\"div\"),t.copyLeftContainer.setAttribute(\"class\",t.options.classes.copyLeftContainer),document.getElementById(t.options.classes.gutterID).appendChild(t.copyRightContainer),document.getElementById(t.options.classes.gutterID).appendChild(t.copyLeftContainer)}function ht(t){document.getElementById(t.options.classes.gutterID).removeChild(t.gutterSVG),K(t)}function at(t){t.copyLeftContainer.innerHTML=\"\",t.copyRightContainer.innerHTML=\"\"}function gt(t,e){const n=[];function i(r){return t.options.diffGranularity===I.DIFF_GRANULARITY_SPECIFIC?r<1:r<=1}e.forEach((r,s)=>{if(s===0){n.push(r);return}let o=!1;for(let h=0;h<n.length;h+=1)if(i(Math.abs(r.leftStartLine-n[h].leftEndLine))&&i(Math.abs(r.rightStartLine-n[h].rightEndLine))){n[h].leftStartLine=Math.min(r.leftStartLine,n[h].leftStartLine),n[h].rightStartLine=Math.min(r.rightStartLine,n[h].rightStartLine),n[h].leftEndLine=Math.max(r.leftEndLine,n[h].leftEndLine),n[h].rightEndLine=Math.max(r.rightEndLine,n[h].rightEndLine),o=!0;break}o||n.push(r)});const l=[];return n.forEach(r=>{r.leftStartLine===r.leftEndLine&&r.rightStartLine===r.rightEndLine||l.push(r)}),l}function X(t){ht(t),at(t),t.diffs.forEach((e,n)=>{t.options.showDiffs&&(j(t,I.EDITOR_LEFT,e.leftStartLine,e.leftEndLine,t.options.classes.diff),j(t,I.EDITOR_RIGHT,e.rightStartLine,e.rightEndLine,t.options.classes.diff),t.options.showConnectors&&rt(t,e.leftStartLine,e.leftEndLine,e.rightStartLine,e.rightEndLine),lt(t,e,n))},t)}export{k as default};\n//# sourceMappingURL=ace-diff.min.js.map\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" persistent width=\"80vw\">\n <v-card>\n <v-card-text>\n <v-card-title>{{ pluginName }} </v-card-title>\n <v-row v-if=\"existingPluginTxt !== null\" class=\"notice d-flex flex-row\">\n <v-icon size=\"x-large\" start color=\"yellow\"> mdi-alert-box </v-icon>\n <div style=\"flex: 1\">\n The existing plugin.txt is different from the {{ pluginName }}'s\n plugin.txt. Navigate the diffs making whatever edits you want before\n installing. You may want to update {{ pluginName }}'s plugin.txt\n going forward.\n </div>\n </v-row>\n <v-row class=\"pb-3 pr-3\">\n <v-tabs v-model=\"tab\" class=\"ml-3\">\n <v-tab :key=\"0\"> Variables </v-tab>\n <v-tab :key=\"1\"> plugin.txt </v-tab>\n </v-tabs>\n </v-row>\n <form @submit.prevent=\"onSubmit\">\n <v-window v-model=\"tab\">\n <v-window-item :key=\"0\" eager=\"true\" class=\"tab\">\n <div class=\"pa-3\">\n <v-row class=\"mt-3\">\n <div v-for=\"(value, name) in localVariables\" :key=\"name\">\n <v-col style=\"width: 220px\">\n <v-text-field\n v-model=\"localVariables[name]\"\n clearable\n type=\"text\"\n :label=\"name\"\n />\n </v-col>\n </div>\n </v-row>\n </div>\n </v-window-item>\n <v-window-item\n v-if=\"existingPluginTxt === null\"\n :key=\"1 + '-new'\"\n eager=\"true\"\n class=\"tab\"\n >\n <v-row class=\"pa-3\">\n <v-col> This can be edited before installation. </v-col>\n </v-row>\n <pre\n ref=\"editor\"\n class=\"editor\"\n @contextmenu.prevent=\"showContextMenu\"\n ></pre>\n <v-menu v-model=\"contextMenu\" :target=\"[menuX, menuY]\">\n <v-list>\n <v-list-item link>\n <v-list-item-title @click=\"openDocumentation\">\n {{ docsKeyword }} documentation\n </v-list-item-title>\n </v-list-item>\n <v-divider />\n <v-list-item\n title=\"Toggle Vim mode\"\n prepend-icon=\"extras:vim\"\n @click=\"toggleVimMode\"\n />\n </v-list>\n </v-menu>\n </v-window-item>\n <v-window-item\n v-else\n :key=\"1 + '-existing'\"\n eager=\"true\"\n class=\"tab\"\n >\n <v-row class=\"pa-3\">\n <v-col>\n Existing plugin.txt. This can be edited before installation.\n </v-col>\n <v-col class=\"ml-6\">\n Uneditable plugin.txt from the new plugin.\n </v-col>\n </v-row>\n <pre ref=\"editor\" class=\"editor\"></pre>\n </v-window-item>\n </v-window>\n\n <v-card-actions class=\"px-2 mt-2\">\n <div v-if=\"existingPluginTxt !== null\">\n <v-btn variant=\"text\" @click=\"nextDiff\"> Next Diff </v-btn>\n <v-btn variant=\"text\" @click=\"previousDiff\">\n Previous Diff\n </v-btn>\n </div>\n <v-spacer />\n <v-btn\n variant=\"outlined\"\n data-test=\"edit-cancel\"\n @click.prevent=\"close\"\n >\n Cancel\n </v-btn>\n <v-btn variant=\"flat\" data-test=\"edit-submit\" @click=\"submit\">\n Install\n </v-btn>\n </v-card-actions>\n </form>\n </v-card-text>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport * as ace from 'ace-builds'\nimport 'ace-builds/src-min-noconflict/mode-ruby'\nimport 'ace-builds/src-min-noconflict/theme-twilight'\nimport 'ace-builds/src-min-noconflict/ext-language_tools'\nimport 'ace-builds/src-min-noconflict/ext-searchbox'\nimport AceDiff from '@openc3/ace-diff'\nimport '@openc3/ace-diff/dist/ace-diff-dark.min.css'\nimport { toRaw } from 'vue'\nimport { AceEditorUtils } from '../../components/ace'\n\nexport default {\n props: {\n pluginName: {\n type: String,\n required: true,\n },\n variables: {\n type: Object,\n required: true,\n },\n pluginTxt: {\n type: String,\n required: true,\n },\n existingPluginTxt: {\n type: String,\n required: false,\n },\n modelValue: Boolean, // modelValue is the default prop when using v-model\n },\n data() {\n return {\n tab: 0,\n localVariables: [],\n localPluginTxt: '',\n localExistingPluginTxt: null,\n editor: null,\n differ: null,\n contextMenu: false,\n menuX: 0,\n menuY: 0,\n }\n },\n computed: {\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n },\n watch: {\n value: {\n immediate: true,\n handler: function () {\n this.localVariables = JSON.parse(JSON.stringify(this.variables)) // deep copy\n this.localPluginTxt = this.pluginTxt.slice()\n if (this.existingPluginTxt !== null) {\n this.localExistingPluginTxt = this.existingPluginTxt.slice()\n }\n },\n },\n },\n mounted() {\n const pluginMode = this.buildPluginMode()\n if (this.existingPluginTxt === null) {\n this.editor = ace.edit(this.$refs.editor)\n this.editor.setTheme('ace/theme/twilight')\n this.editor.session.setMode(new pluginMode())\n this.editor.session.setTabSize(2)\n this.editor.session.setUseWrapMode(true)\n this.editor.$blockScrolling = Infinity\n this.editor.setHighlightActiveLine(false)\n this.editor.setValue(this.localPluginTxt)\n this.editor.clearSelection()\n AceEditorUtils.applyVimModeIfEnabled(this.editor)\n this.editor.focus()\n } else {\n this.tab = 1 // Show the diff right off the bat\n this.differ = new AceDiff({\n element: this.$refs.editor,\n mode: new pluginMode(),\n theme: 'ace/theme/twilight',\n left: {\n content: this.localExistingPluginTxt,\n copyLinkEnabled: false,\n },\n right: {\n content: this.localPluginTxt,\n editable: false,\n },\n })\n // Match our existing editors\n this.differ.getEditors().left.setFontSize(16)\n this.differ.getEditors().right.setFontSize(16)\n\n // Apply vim mode if enabled to both editor instances\n AceEditorUtils.applyVimModeIfEnabled(this.differ.getEditors().left)\n AceEditorUtils.applyVimModeIfEnabled(this.differ.getEditors().right)\n\n this.curDiff = -1 // so the first will be 0\n }\n },\n beforeUnmount() {\n if (this.editor) {\n this.editor.destroy()\n }\n if (this.differ) {\n this.differ.destroy()\n }\n },\n methods: {\n previousDiff() {\n this.curDiff--\n if (this.curDiff < 0) {\n this.curDiff = this.differ.diffs.length - 1\n }\n this.scrollToCurDiff()\n },\n nextDiff() {\n this.curDiff++\n if (this.curDiff >= this.differ.diffs.length) {\n this.curDiff = 0\n }\n this.scrollToCurDiff()\n },\n scrollToCurDiff() {\n if (this.differ.diffs.length === 0) return\n let lrow = this.differ.diffs[this.curDiff].leftStartLine\n let rrow = this.differ.diffs[this.curDiff].rightStartLine\n // Give it a little breathing room\n if (lrow > 5) {\n lrow -= 5\n }\n if (rrow > 5) {\n rrow -= 5\n }\n this.differ.getEditors().left.scrollToLine(lrow)\n this.differ.getEditors().right.scrollToLine(rrow)\n },\n buildPluginMode() {\n let oop = ace.require('ace/lib/oop')\n let RubyHighlightRules = ace.require(\n 'ace/mode/ruby_highlight_rules',\n ).RubyHighlightRules\n\n // TODO: Grab from code\n let keywords = ['VARIABLE']\n let regex = new RegExp(`(\\\\b${keywords.join('\\\\b|\\\\b')}\\\\b)`)\n let PluginHighlightRules = function () {\n RubyHighlightRules.call(this)\n // add openc3 rules to the ruby rules\n for (let rule in this.$rules) {\n this.$rules[rule].unshift({\n regex: regex,\n token: 'support.function',\n })\n }\n }\n oop.inherits(PluginHighlightRules, RubyHighlightRules)\n\n let MatchingBraceOutdent = ace.require(\n 'ace/mode/matching_brace_outdent',\n ).MatchingBraceOutdent\n let CstyleBehaviour = ace.require(\n 'ace/mode/behaviour/cstyle',\n ).CstyleBehaviour\n let FoldMode = ace.require('ace/mode/folding/ruby').FoldMode\n let Mode = function () {\n this.HighlightRules = PluginHighlightRules\n this.$outdent = new MatchingBraceOutdent()\n this.$behaviour = new CstyleBehaviour()\n this.foldingRules = new FoldMode()\n this.indentKeywords = this.foldingRules.indentKeywords\n }\n let RubyMode = ace.require('ace/mode/ruby').Mode\n oop.inherits(Mode, RubyMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n submit: function () {\n if (this.existingPluginTxt === null) {\n this.emitSubmit(this.editor.getValue().split('\\n'))\n } else {\n // Existing plugin.txt with all diffs resolved\n if (this.differ.diffs.length === 0) {\n this.emitSubmit(this.differ.getEditors().left.getValue().split('\\n'))\n } else {\n // Existing plugin.txt with unresolved diffs\n this.$dialog\n .confirm(\n `Diffs still detected! Install using 'Existing plugin.txt' (left) and ignore additional changes in the new plugin.txt (right)?`,\n {\n okText: 'Install',\n cancelText: 'Cancel',\n },\n )\n .then((dialog) => {\n this.emitSubmit(\n this.differ.getEditors().left.getValue().split('\\n'),\n )\n })\n .catch((error) => {\n // Cancelled, do nothing\n })\n }\n }\n },\n emitSubmit(lines) {\n let pluginHash = {\n name: this.pluginName,\n variables: toRaw(this.localVariables),\n plugin_txt_lines: lines,\n }\n this.$emit('callback', pluginHash)\n },\n close: function () {\n this.show = !this.show\n },\n showContextMenu: function (event) {\n this.menuX = event.pageX\n this.menuY = event.pageY\n\n let position = this.editor.getCursorPosition()\n let token = this.editor.session.getTokenAt(position.row, position.column)\n if (token) {\n let value = token.value.trim()\n if (value.includes(' ')) {\n this.docsKeyword = value.split(' ')[0]\n } else {\n this.docsKeyword = value\n }\n this.contextMenu = true\n }\n },\n toggleVimMode: function () {\n if (this.editor) {\n AceEditorUtils.toggleVimMode(this.editor)\n // don't worry about this.differ since AceDiff replaces the editor anyway, and thus there's no context menu\n }\n },\n },\n}\n</script>\n\n<style scoped>\n.editor {\n height: 50vh;\n position: relative;\n font-size: 16px;\n}\n\n.notice {\n font-size: 20px;\n margin: 10px;\n}\n.tab {\n background-color: var(--color-background-surface-default);\n}\n.v-textarea :deep(textarea) {\n padding: 5px;\n}\n</style>\n"],"names":["_sfc_main","value","gemRegEx","f","axios","response","gem","link","_hoisted_1","_hoisted_2","_createBlock","_component_v_dialog","$options","_cache","$event","_withCtx","_createVNode","_component_v_card","_component_v_toolbar","_component_v_spacer","_createElementVNode","_component_v_card_text","_component_v_row","_createTextVNode","_component_v_col","_component_v_btn","$data","_component_v_icon","_openBlock","_createElementBlock","_hoisted_3","_hoisted_4","_Fragment","_renderList","data","index","_component_v_list_item","_component_v_list_item_title","_toDisplayString","_component_v_progress_circular","_component_v_divider","_createCommentVNode","openPluginMode","ace.edit","AceEditorUtils","blob","oop","ace.require","JsonHighlightRules","MatchingBraceOutdent","CstyleBehaviour","FoldMode","Mode","RubyMode","event","position","token","$props","_withModifiers","args","_ctx","_component_v_file_input","_component_v_menu","_component_v_list","target","Api","file","itemIndex","_component_v_list_item_subtitle","_component_v_checkbox","_component_v_card_actions","TabsList","TopBar","tab","_component_top_bar","_component_v_tabs","_component_v_tab","_component_router_view","g","t","e","n","i","r","o","h","a","c","u","d","D","E","L","m","F","b","w","y","T","C","l","s","R","N","tt","O","v","I","H","Q","Y","et","x","M","$","nt","k","it","ot","K","G","q","gt","J","X","Z","B","P","j","st","rt","lt","V","z","S","W","ht","at","pluginMode","AceDiff","lrow","rrow","RubyHighlightRules","keywords","regex","PluginHighlightRules","rule","dialog","error","lines","pluginHash","toRaw","_component_v_card_title","_component_v_window","_component_v_window_item","name","_component_v_text_field"],"mappings":"oVA0GA,MAAKA,GAAU,CACb,MAAO,CACL,WAAY,OACb,EACD,MAAO,CACL,MAAO,CACL,IAAK,GACL,KAAM,KACN,SAAU,KACV,eAAgB,GAChB,cAAe,GACf,SAAU,CAAE,CACd,CACD,EACD,SAAU,CACR,KAAM,CACJ,KAAM,CACJ,OAAO,KAAK,UACb,EACD,IAAIC,EAAO,CACT,KAAK,MAAM,oBAAqBA,CAAK,CACtC,CACF,EACD,SAAU,UAAY,CACpB,OAAK,KAAK,SACN,KAAK,OAAS,SACT,KAAK,YAAW,EAEhB,KAAK,UAAS,EAJI,CAAA,CAM5B,CACF,EACD,QAAS,CACP,YAAa,UAAY,CACvB,MAAMC,EAAW,UACjB,OAAO,KAAK,SAAS,KAClB,OAAQC,GAAMD,EAAS,KAAKC,EAAE,IAAI,CAAC,EACnC,IAAKA,IACG,CACL,KAAMA,EAAE,KACR,IAAK,mDAAmDA,EAAE,IAAI,EAChE,EACD,CACJ,EACD,YAAa,UAAY,CACvB,KAAK,cAAgB,GACrBC,GAAK,MAAC,IAAI,KAAK,GAAG,EAAE,KAAMC,GAAa,CACrC,KAAK,SAAWA,EAAS,IAC1B,CAAA,EACD,WAAW,IAAM,CACf,KAAK,cAAgB,EACvB,EAAG,GAAK,CACT,EACD,aAAc,UAAY,CACxB,KAAK,KAAO,SACZ,KAAK,IACH,8EACF,KAAK,YAAW,CACjB,EACD,YAAa,SAAUC,EAAK,CAC1B,MAAMC,EAAO,SAAS,cAAc,GAAG,EACvCA,EAAK,KAAOD,EAAI,IAChBC,EAAK,aAAa,WAAYD,EAAI,IAAI,EACtCC,EAAK,MAAK,EACVA,EAAK,OAAM,CACZ,CACF,CACH,EA9IaC,GAAA,CAAA,MAAM,MAAM,EAINC,GAAA,CAAA,MAAM,MAAM,MAnC/B,IAAA,EAoE0C,MAAM,YApEhD,IAAA,EAyEsB,MAAM,wfAlD1BC,EA4EW,YAAAC,EAAA,CAnGb,WAuBqBC,EAAI,KAvBzB,sBAAAC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAuBqBF,EAAI,KAAAE,GAAE,MAAM,QAvBjC,QAAAC,EAAA,QAwBI,IA0ES,CA1ETC,EA0ES,YAAAC,EAAA,KAAA,CAlGb,QAAAF,EAAA,QAyBM,IAIY,CAJZC,EAAAA,YAIYE,EAAA,CAJD,OAAO,IAAI,EAAA,CAzB5B,QAAAH,EAAA,QA0BQ,IAAY,CAAZC,EAAAA,YAAYG,CAAA,EACZN,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAO,qBAA4B,YAAtB,kBAAe,EAAA,GACrBJ,EAAAA,YAAYG,CAAA,IA5BpB,EAAA,IA8BMH,EAmEc,YAAAK,EAAA,KAAA,CAjGpB,QAAAN,EAAA,QA+BQ,IAiEM,CAjENK,EAAA,mBAiEM,MAjENZ,GAiEM,CAhEJQ,EAAAA,YAAsDM,EAAA,CAA/C,MAAM,MAAM,EAAA,CAhC7B,QAAAP,EAAA,QAgC8B,IAA0BF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAhCxDU,EAAAA,gBAgC8B,4BAA0B,KAhCxD,EAAA,IAiCUP,EAeQ,YAAAM,EAAA,KAAA,CAhDlB,QAAAP,EAAA,QAkCY,IAaQ,CAbRC,EAaQ,YAAAQ,EAAA,KAAA,CA/CpB,QAAAT,EAAA,QAmCc,IAWM,CAXNK,EAAA,mBAWM,MAXNX,GAWM,CAVJO,EAAAA,YASQS,EAAA,CARN,MAAA,GACA,YAAU,eACV,MAAM,UACL,SAAUC,EAAa,cACvB,QAAOd,EAAY,eAzCtC,QAAAG,EAAA,QA0CiB,IAEC,CA5ClBF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAU,EAAAA,gBA0CiB,UAEC,GAAAP,EAAAA,YAA8CW,EAAA,CAAtC,IAAA,GAAI,MAAM,SA5CpC,QAAAZ,EAAA,QA4C2C,IAAYF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CA5CvDU,EAAAA,gBA4C2C,cAAY,KA5CvD,EAAA,MAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,IAmEUP,EAAAA,YAA4CM,EAAA,CAArC,MAAM,MAAM,EAAA,CAnE7B,QAAAP,EAAA,QAmE8B,IAAgBF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAnE9CU,EAAAA,gBAmE8B,kBAAgB,KAnE9C,EAAA,IAoEqBX,EAAA,SAAS,OAAM,GAA1BgB,EAAAA,YAAAC,EAAAA,mBAIM,MAJNC,GAIM,CAHJd,EAAAA,YAEQM,EAAA,CAFD,MAAM,MAAM,EAAA,CArE/B,QAAAP,EAAA,QAsEc,IAAqDF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAArDO,EAAAA,mBAAqD,YAA/C,2CAAwC,EAAA,KAtE5D,EAAA,QAyEUQ,EAAAA,YAAAC,EAAAA,mBAsBM,MAtBNE,GAsBM,EArBJH,EAAAA,UAAA,EAAA,EAAAC,EAAA,mBAoBMG,gBA9FlBC,EA0EyC,WAAArB,EAAA,SA1EzC,CA0EyBsB,EAAMC,mBAAnBN,EAoBM,mBAAA,MAAA,CApBkC,IAAKM,GAAK,CAChDnB,EAiBc,YAAAoB,EAAA,KAAA,CA5F5B,QAAArB,EAAA,QA4EgB,IAAsD,CAAtDC,EAAsD,YAAAqB,EAAA,KAAA,CA5EtE,QAAAtB,EAAA,QA4EmC,IAAe,CA5ElDQ,EAAAA,gBA4EsCe,EAAA,gBAAAJ,EAAK,IAAI,EAAA,CAAA,IA5E/C,EAAA,SA8EgBlB,EAAAA,YAacoB,EAAA,CAbD,KAAA,EAAI,EAAA,CA9EjC,QAAArB,EAAA,QA+EkB,IAIE,CAHMW,EAAc,8BADtBhB,EAIE,YAAA6B,EAAA,CAnFpB,IAAA,EAiFoB,cAAA,GACA,MAAM,4BAER7B,EAME,YAAAe,EAAA,CA1FpB,IAAA,EAsFoB,KAAK,qBACL,QAAQ,OACP,SAAUC,EAAc,eACxB,QAAKZ,GAAEF,EAAW,YAACsB,CAAI,qCAzF5C,EAAA,WAAA,EAAA,SA6F+BC,EAAQvB,EAAQ,SAAC,OAAM,iBAAxCF,EAAAA,YAA6D8B,EAAA,CAAd,IAAKL,CAAK,CAAA,GA7FvEM,EAAA,mBAAA,GAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,MAAA,EAAA,gEC8HKzC,GAAU,CACb,MAAO,CACL,QAAS,CACP,KAAM,OACN,SAAU,EACX,EACD,KAAM,OACN,KAAM,OACN,WAAY,QACZ,SAAU,OACX,EACD,MAAO,CACL,MAAO,CACL,OAAQ,KACR,YAAa,GACb,MAAO,EACP,MAAO,CACT,CACD,EACD,SAAU,CACR,KAAM,CACJ,KAAM,CACJ,OAAO,KAAK,UACb,EACD,IAAIC,EAAO,CACT,KAAK,MAAM,oBAAqBA,CAAK,CACtC,CACF,EACD,MAAO,UAAY,CACjB,MAAO,GAAG,KAAK,IAAI,KAAK,KAAK,IAAI,EAClC,EACD,MAAO,UAAY,CACjB,OAAI,KAAK,QAAU,KAAK,OAAO,SAAQ,IAAO,IAAM,CAAC,KAAK,KACjD,0BAEF,IACR,CACF,EACD,SAAU,CACR,MAAMyC,EAAiB,KAAK,gBAAe,EAC3C,KAAK,OAASC,EAAAA,WAAAA,KAAS,KAAK,MAAM,MAAM,EACxC,KAAK,OAAO,SAAS,oBAAoB,EACzC,KAAK,OAAO,QAAQ,QAAQ,IAAID,CAAgB,EAChD,KAAK,OAAO,QAAQ,WAAW,CAAC,EAChC,KAAK,OAAO,QAAQ,eAAe,EAAI,EACvC,KAAK,OAAO,gBAAkB,IAC9B,KAAK,OAAO,uBAAuB,EAAK,EACxC,KAAK,OAAO,SAAS,KAAK,OAAO,EACjC,KAAK,OAAO,eAAc,EAC1BE,iBAAe,sBAAsB,KAAK,MAAM,EAChD,KAAK,OAAO,MAAK,EACb,KAAK,UACP,KAAK,OAAO,YAAY,EAAI,CAE/B,EACD,eAAgB,CACV,KAAK,QACP,KAAK,OAAO,QAAO,CAEtB,EACD,QAAS,CACP,OAAQ,UAAY,CAClB,KAAK,MAAM,SAAU,KAAK,OAAO,SAAU,CAAA,EAC3C,KAAK,KAAO,CAAC,KAAK,IACnB,EACD,MAAO,UAAY,CACjB,KAAK,KAAO,CAAC,KAAK,IACnB,EACD,SAAU,UAAY,CACpB,MAAMC,EAAO,IAAI,KAAK,CAAC,KAAK,OAAO,SAAQ,CAAE,EAAG,CAC9C,KAAM,YACP,CAAA,EAEKtC,EAAO,SAAS,cAAc,GAAG,EACvCA,EAAK,KAAO,IAAI,gBAAgBsC,CAAI,EACpCtC,EAAK,aACH,WACA,GAAG,KAAK,KAAK,YAAa,CAAA,IAAI,KAAK,KAAK,YAAa,CAAA,OACvD,EACAA,EAAK,MAAK,CACX,EACD,iBAAkB,CAChB,IAAIuC,EAAMC,EAAAA,WAAAA,QAAY,aAAa,EAC/BC,EAAqBD,EAAW,WAAA,QAClC,+BACF,EAAE,mBAEEE,EAAuBF,EAAW,WAAA,QACpC,iCACF,EAAE,qBACEG,EAAkBH,EAAW,WAAA,QAC/B,2BACF,EAAE,gBACEI,EAAWJ,qBAAY,uBAAuB,EAAE,SAChDK,EAAO,UAAY,CACrB,KAAK,eAAiBJ,EACtB,KAAK,SAAW,IAAIC,EACpB,KAAK,WAAa,IAAIC,EACtB,KAAK,aAAe,IAAIC,EACxB,KAAK,eAAiB,KAAK,aAAa,cAC1C,EACIE,EAAWN,qBAAY,eAAe,EAAE,KAC5C,OAAAD,EAAI,SAASM,EAAMC,CAAQ,GACzB,UAAY,CACZ,KAAK,IAAM,oBACV,KAAKD,EAAK,SAAS,EACfA,CACR,EACD,gBAAiB,SAAUE,EAAO,CAChC,KAAK,MAAQA,EAAM,MACnB,KAAK,MAAQA,EAAM,MAEnB,IAAIC,EAAW,KAAK,OAAO,kBAAiB,EACxCC,EAAQ,KAAK,OAAO,QAAQ,WAAWD,EAAS,IAAKA,EAAS,MAAM,EACxE,GAAIC,EAAO,CACT,IAAIvD,EAAQuD,EAAM,MAAM,KAAI,EACxBvD,EAAM,SAAS,GAAG,EACpB,KAAK,YAAcA,EAAM,MAAM,GAAG,EAAE,CAAC,EAErC,KAAK,YAAcA,EAErB,KAAK,YAAc,EACrB,CACD,EACD,cAAe,UAAY,CACzB2C,iBAAe,cAAc,KAAK,MAAM,CACzC,CACF,CACH,EA9PApC,GAAA,CAAA,aAAA,EAyCeC,GAAA,CAAA,MAAM,MAAM,MAzC3B,IAAA,CAAA,EAAAsB,GAAA,CAAA,aAAA,8bAuBErB,EA2FW,YAAAC,EAAA,CAlHb,WAuBqBC,EAAI,KAvBzB,sBAAAC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAuBqBF,EAAI,KAAAE,GAAG,YAAa2C,EAAQ,SAAE,MAAM,SAvBzD,QAAA1C,EAAA,QAwBI,IAyFS,CAzFTC,EAyFS,YAAAC,EAAA,KAAA,CAjHb,QAAAF,EAAA,QAyBM,IAuFO,CAvFPK,EAAAA,mBAuFO,OAAA,CAvFA,SAAMP,EAAA,CAAA,IAAAA,EAAA,CAAA,EAzBnB6C,wBAyB6B9C,EAAM,QAAAA,EAAA,OAAA,GAAA+C,CAAA,EAAA,CAAA,SAAA,CAAA,KAC3B3C,EAAAA,YAYYE,EAAA,CAZD,OAAO,IAAI,EAAA,CA1B9B,QAAAH,EAAA,QA2BU,IAAY,CAAZC,EAAAA,YAAYG,CAAA,EACZC,EAAAA,mBAAuB,OAAA,CA5BjC,YA4BgBkB,EAAAA,gBAAc1B,EAAD,KAAA,CA5B7B,EAAA,KAAA,EAAAJ,EAAA,EA6BUQ,EAAAA,YAAYG,CAAA,EACZH,EAAAA,YAOES,EAAA,CANA,MAAM,OACN,KAAK,eACL,QAAQ,OACR,QAAQ,UACR,YAAU,eACT,QAAOb,EAAQ,gCApC5B,EAAA,IAwCQI,EAuEc,YAAAK,EAAA,KAAA,CA/GtB,QAAAN,EAAA,QAyCU,IAqEM,CArENK,EAAA,mBAqEM,MArENX,GAqEM,CApEQgD,EAAQ,SA1ChChB,EAAA,mBAAA,GAAA,EAAA,GA0CYb,EAAAA,YAAAC,EAAAA,mBA2BM,MArElBC,GAAA,CA2Ccd,EAAAA,YAA4CM,EAAA,CAArC,MAAM,MAAM,EAAA,CA3CjC,QAAAP,EAAA,QA2CkC,IAAgBF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CA3ClDU,EAAAA,gBA2CkC,kBAAgB,KA3ClD,EAAA,IA4CcP,EAAAA,YAwBQM,EAAA,CAxBD,aAAA,GAAW,MAAM,WA5CtC,QAAAP,EAAA,QA6CgB,IAcQ,CAdRC,EAAAA,YAcQQ,EAAA,CAdD,KAAK,GAAG,EAAA,CA7C/B,QAAAT,EAAA,QA8CkB,IAYQ,CAZRC,EAAAA,YAYQS,EAAA,CAXN,MAAA,GACA,MAAM,UACL,SAAW,CAAAmC,EAAA,MAAQA,EAAA,aAAeH,EAAQ,SAC1C,QAASG,EAAW,YACrB,YAAU,oBACT,QAAOA,EAAQ,WAGL,iBACT,IAAuB/C,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAAvBO,EAAAA,mBAAuB,YAAjB,aAAU,EAAA,KAxDtC,QAAAL,EAAA,QAqDmB,IAEC,CAvDpBF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAU,EAAA,gBAqDmB,QAEC,KAvDpB,EAAA,yCAAA,EAAA,IA4DgBP,EAAAA,YAOQQ,EAAA,CAPD,KAAK,GAAG,EAAA,CA5D/B,QAAAT,EAAA,QA6DkB,IAKE,CALFC,EAAAA,YAKE6C,EAAA,CAlEpB,WA8D6BD,EAAI,KA9DjC,sBAAA/C,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GA8D6B8C,EAAI,KAAA9C,GACb,OAAO,QACP,MAAM,8BACL,SAAU2C,EAAQ,8CAjEvC,EAAA,MAAA,EAAA,OAsEYzC,EAAAA,YAeQM,EAAA,CAfD,aAAA,EAAU,EAAA,CAtE7B,QAAAP,EAAA,QAuEc,IAIO,CAJPK,EAAAA,mBAIO,MAAA,CAHL,IAAI,SACJ,MAAM,SACL,cAAWP,EAAA,CAAA,IAAAA,EAAA,CAAA,EA1E5B6C,wBA0EsC9C,EAAe,iBAAAA,EAAA,gBAAA,GAAA+C,CAAA,EAAA,CAAA,SAAA,CAAA,cAEvC3C,EAAAA,YAQS8C,EAAA,CApFvB,WA4E+BpC,EAAW,YA5E1C,sBAAAb,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GA4E+BY,EAAW,YAAAZ,GAAG,OAAM,CAAGY,EAAK,MAAEA,EAAK,KAAA,IA5ElE,QAAAX,EAAA,QA6EgB,IAMS,CANTC,EAMS,YAAA+C,EAAA,KAAA,CAnFzB,QAAAhD,EAAA,QA8EkB,IAIE,CAJFC,EAAAA,YAIEoB,EAAA,CAHA,MAAM,kBACN,eAAa,aACZ,QAAOxB,EAAa,qCAjFzC,EAAA,MAAA,EAAA,gCAAA,EAAA,IAsFYI,EAAAA,YAEQM,EAAA,CAFD,MAAM,MAAM,EAAA,CAtF/B,QAAAP,EAAA,QAuFc,IAAuD,kBAAvDK,EAAuD,mBAAA,OAAA,CAAlC,MAAM,WAvFzC,YAuFoDkB,EAAAA,gBAAc1B,EAAD,KAAA,CAvFjE,EAAA,KAAA,EAAAmB,EAAA,EAAA,UAuF4BnB,EAAK,KAAA,MAvFjC,EAAA,IAyFYI,EAoBQ,YAAAM,EAAA,KAAA,CA7GpB,QAAAP,EAAA,QA0Fc,IAAY,CAAZC,EAAAA,YAAYG,CAAA,EACZH,EAAAA,YAOQS,EAAA,CANN,QAAQ,WACR,MAAM,OACN,YAAU,gBACT,QA/FjBiC,EAAAA,cA+FgC9C,EAAK,MAAA,CAAA,SAAA,CAAA,IA/FrC,QAAAG,EAAA,QAgGe,IAEDF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAlGdU,EAAAA,gBAgGe,UAED,KAlGd,EAAA,kBAoGuBkC,EAAQ,SApG/BhB,EAAA,mBAAA,GAAA,EAAA,iBAmGc/B,EASQ,YAAAe,EAAA,CA5GtB,IAAA,EAqGgB,MAAM,OACN,MAAM,UACN,KAAK,SACL,YAAU,gBACT,SAAQ,CAAA,CAAIb,EAAK,OAAI6C,EAAQ,WAzG9C,QAAA1C,EAAA,QA0Ge,IAEDF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CA5GdU,EAAAA,gBA0Ge,QAED,KA5Gd,EAAA,sBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,6GCoFKvB,GAAU,CACb,MAAO,CACL,WAAY,QACZ,OAAQ,OACR,QAAS,MACT,aAAc,OACf,EACD,MAAO,CACL,MAAO,CACL,gBAAiB,CAAE,EACnB,eAAgB,EAClB,CACD,EACD,SAAU,CACR,KAAM,CACJ,KAAM,CACJ,OAAO,KAAK,UACb,EACD,IAAIC,EAAO,CACT,KAAK,MAAM,oBAAqBA,CAAK,CACtC,CACF,CACF,EACD,SAAU,CACR,UAAW+D,KAAU,KAAK,QACxBC,EAAG,GAAC,IAAI,uBAAuBD,EAAO,IAAI,iBAAiB,EAAE,KAC1D3D,GAAa,CACRA,EAAS,KAAK,SAAW,GAE3B,KAAK,gBAAgB,KAAK,CACxB,KAAM2D,EAAO,KACb,MAAO3D,EAAS,IACjB,CAAA,CAEJ,CACH,CAEH,CACH,gcAvGEK,EA2DW,YAAAC,EAAA,CA9Eb,WAmBqBC,EAAI,KAnBzB,sBAAAC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAmBqBF,EAAI,KAAAE,GAAE,MAAM,QAnBjC,QAAAC,EAAA,QAoBI,IAyDS,CAzDTC,EAyDS,YAAAC,EAAA,KAAA,CA7Eb,QAAAF,EAAA,QAqBM,IAIY,CAJZC,EAAAA,YAIYE,EAAA,CAJD,OAAO,IAAI,EAAA,CArB5B,QAAAH,EAAA,QAsBQ,IAAY,CAAZC,EAAAA,YAAYG,CAAA,EACZN,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAO,qBAA8B,YAAxB,oBAAiB,EAAA,GACvBJ,EAAAA,YAAYG,CAAA,IAxBpB,EAAA,IA0BMH,EAAAA,YAuBcK,EAAA,CAvBD,MAAM,MAAM,EAAA,CA1B/B,QAAAN,EAAA,QA2BQ,IAGM,CAHNK,qBAGM,MAHD,KAAA,WACOkB,EAAAA,gBAAAmB,EAAA,MAAM,EAAG,wEAErB,CAAA,GACA7B,EAAAA,UAAA,EAAA,EAAAC,EAAA,mBAWcG,gBA1CtBC,EAgCoC,WAAAP,EAAA,gBAhCpC,CAgCkBsC,EAAQ7B,mBADlBzB,EAWc,YAAA0B,EAAA,CATX,IAAKD,EACN,MAAM,QAlChB,QAAApB,EAAA,QAoCU,IAAwD,CAAxDC,EAAwD,YAAAqB,EAAA,KAAA,CApClE,QAAAtB,EAAA,QAoC6B,IAAiB,CApC9CQ,EAAAA,gBAoCgCe,EAAA,gBAAA0B,EAAO,IAAI,EAAA,CAAA,IApC3C,EAAA,0BAqCUnC,EAIC,mBAAAG,WAAA,KAzCXC,aAsCwC+B,EAAO,MAtC/C,CAsCoBE,EAAMC,mBADhBzD,EAIC,YAAA0D,EAAA,CAFE,IAAKD,GAAS,CAvC3B,QAAApD,EAAA,QAwCa,IAAU,CAxCvBQ,kBAAAe,EAAAA,gBAwCgB4B,CAAI,EAAA,CAAA,IAxCpB,EAAA,mBAAA,EAAA,iBA2CQlD,EAAAA,YAKEqD,EAAA,CAhDV,WA4CmB3C,EAAc,eA5CjC,sBAAAb,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GA4CmBY,EAAc,eAAAZ,GACvB,MAAM,6CACN,MAAM,QACN,YAAU,4DA/CpB,EAAA,IAkDME,EAAAA,YA0BiBsD,EAAA,CA1BD,MAAM,MAAM,EAAA,CAlDlC,QAAAvD,EAAA,QAmDQ,IAAY,CAAZC,EAAAA,YAAYG,CAAA,EACZH,EAAAA,YAWQS,EAAA,CAVN,QAAQ,WACR,YAAU,yBACT,QAAKZ,EAAA,CAAA,IAAAA,EAAA,CAAA,OAAqCD,EAAI,KAAA,GAAuBgD,EAAK,MAAA,QAAA,MAvDrF,QAAA7C,EAAA,QA6DS,IAEDF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CA/DRU,EAAAA,gBA6DS,UAED,KA/DR,EAAA,IAgEQP,EAAAA,YAWQS,EAAA,CAVN,QAAQ,OACR,YAAU,yBACT,QAAKZ,EAAA,CAAA,IAAAA,EAAA,CAAA,OAAqCD,EAAI,KAAA,GAAuBgD,EAAA,eAAgBlC,EAAc,cAAA,MAnE9G,QAAAX,EAAA,QAyES,IAEDF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CA3ERU,EAAAA,gBAyES,WAED,KA3ER,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,gECsBMgD,GAAW,CACf,CACE,YAAa,UACb,KAAM,aACN,KAAM,UACN,UAAW,IAAM,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,4BAAkB,CAAC,CAC5C,EACD,CACE,YAAa,UACb,KAAM,aACN,KAAM,UACN,UAAW,IAAM,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,4BAAkB,CAAC,CAC5C,EACD,CACE,YAAa,aACb,KAAM,gBACN,KAAM,aACN,UAAW,IAAM,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,+BAAqB,CAAC,CAC/C,EACD,CACE,YAAa,UACb,KAAM,aACN,KAAM,UACN,UAAW,IAAM,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,4BAAkB,CAAC,CAC5C,EACD,CACE,YAAa,gBACb,KAAM,mBACN,KAAM,gBACN,UAAW,IAAM,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,kCAAwB,CAAC,CAClD,EACD,CACE,YAAa,WACb,KAAM,cACN,KAAM,WACN,UAAW,IAAM,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,6BAAmB,CAAC,CAC7C,EACD,CACE,YAAa,QACb,KAAM,WACN,KAAM,QACN,UAAW,IAAM,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,0BAAgB,CAAC,CAC1C,EACD,CACE,YAAa,QACb,KAAM,WACN,KAAM,QACN,UAAW,IAAM,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,0BAAgB,CAAC,CAC1C,EACD,CACE,YAAa,UACb,KAAM,aACN,KAAM,UACN,UAAW,IAAM,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,4BAAkB,CAAC,CAC5C,EACD,CACE,YAAa,WACb,KAAM,cACN,KAAM,WACN,UAAW,IAAM,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,6BAAmB,CAAC,CAC7C,CACH,EC3CKvE,GAAU,CACb,WAAY,CACV,OAAAwE,EAAM,MACP,EACD,MAAO,CACL,MAAO,CACL,MAAO,wBACP,OAAQ,IACV,CACD,EACD,SAAU,CACR,KAAM,UAAY,CAChB,OAAOD,GAAS,IAAKE,IACZ,CACL,YAAaA,EAAI,YACjB,KAAM,CAAE,KAAMA,EAAI,IAAM,CAC1B,EACD,CACF,CACF,CACH,sNArCE5C,qBAUM,MAAA,KAAA,CATJb,cAA0B0D,EAAA,CAAhB,MAAOhD,EAAK,KAAA,EAAA,KAAA,EAAA,CAAA,OAAA,CAAA,EACtBV,EAOS,YAAAC,EAAA,KAAA,CAhCb,QAAAF,EAAA,QA0BM,IAIS,CAJTC,EAAAA,YAIS2D,EAAA,CA9Bf,WA0BuBjD,EAAM,OA1B7B,sBAAAb,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GA0BuBY,EAAM,OAAAZ,GAAE,aAAA,KA1B/B,QAAAC,EAAA,QA2Be,IAA4B,EAAnCa,EAAAA,UAAA,EAAA,EAAAC,EAAA,mBAEQG,gBA7BhBC,EA2BsC,WAAArB,EAAA,KA3BtC,CA2BuB6D,EAAKtC,mBAApBzB,EAEQ,YAAAkE,EAAA,CAF6B,IAAKzC,EAAQ,GAAIsC,EAAI,OA3BlE,QAAA1D,EAAA,QA4BU,IAAqB,CA5B/BQ,EAAAA,gBA4Bae,EAAA,gBAAAmC,EAAI,WAAW,EAAA,CAAA,IA5B5B,EAAA,0BAAA,EAAA,qBA+BMzD,EAAAA,YAAe6D,CAAA,IA/BrB,EAAA,iDCAMC,EAAE,UAAU,CAAC,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,GAAG,KAAK,eAAe,IAAI,KAAK,sBAAsB,GAAG,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,EAAEA,EAAE,KAAK,SAASC,EAAEC,EAAE,CAAC,KAAK,CAAC,EAAED,EAAE,KAAK,CAAC,EAAEC,CAAC,EAAEF,EAAE,KAAK,UAAU,OAAO,EAAEA,EAAE,KAAK,UAAU,SAAS,UAAU,CAAC,OAAO,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,CAAC,EAAEA,EAAE,UAAU,UAAU,SAASC,EAAEC,EAAEC,EAAEC,EAAE,CAAC,OAAOA,EAAE,MAAM,KAAK,cAAc,EAAEA,EAAE,OAAO,UAAUA,EAAE,IAAI,KAAI,EAAG,QAAO,EAAG,KAAK,aAAa,KAAK,IAAI,EAAEA,EAAE,GAAGH,GAAG,MAAMC,GAAG,KAAK,MAAM,IAAI,MAAM,yBAAyB,EAAE,GAAGD,GAAGC,EAAE,OAAOD,EAAE,CAAC,IAAID,EAAE,KAAK,EAAEC,CAAC,CAAC,EAAE,CAAE,EAAC,OAAOE,EAAE,MAAMA,EAAE,IAAI,IAAIE,EAAEF,EAAE,EAAE,KAAK,kBAAkBF,EAAEC,CAAC,EAAEI,EAAEL,EAAE,UAAU,EAAE,CAAC,EAAEA,EAAEA,EAAE,UAAU,CAAC,EAAEC,EAAEA,EAAE,UAAU,CAAC,EAAE,EAAE,KAAK,kBAAkBD,EAAEC,CAAC,EAAE,IAAIK,EAAEN,EAAE,UAAUA,EAAE,OAAO,CAAC,EAAEA,EAAEA,EAAE,UAAU,EAAEA,EAAE,OAAO,CAAC,EAAEC,EAAEA,EAAE,UAAU,EAAEA,EAAE,OAAO,CAAC,EAAE,IAAIM,EAAE,KAAK,cAAcP,EAAEC,EAAEG,EAAE,CAAC,EAAE,OAAOC,GAAGE,EAAE,QAAQ,IAAIR,EAAE,KAAK,EAAEM,CAAC,CAAC,EAAEC,GAAGC,EAAE,KAAK,IAAIR,EAAE,KAAK,EAAEO,CAAC,CAAC,EAAE,KAAK,kBAAkBC,CAAC,EAAEA,CAAC,EAAER,EAAE,UAAU,cAAc,SAASC,EAAEC,EAAEC,EAAEC,EAAE,CAAC,IAAI,EAAE,GAAG,CAACH,EAAE,MAAM,CAAC,IAAID,EAAE,KAAK,EAAEE,CAAC,CAAC,EAAE,GAAG,CAACA,EAAE,MAAM,CAAC,IAAIF,EAAE,KAAK,GAAGC,CAAC,CAAC,EAAE,IAAII,EAAEJ,EAAE,OAAOC,EAAE,OAAOD,EAAEC,EAAE,EAAED,EAAE,OAAOC,EAAE,OAAOA,EAAED,EAAEK,EAAED,EAAE,QAAQ,CAAC,EAAE,OAAOC,GAAG,IAAI,EAAE,CAAC,IAAIN,EAAE,KAAK,EAAEK,EAAE,UAAU,EAAEC,CAAC,CAAC,EAAE,IAAIN,EAAE,KAAK,EAAE,CAAC,EAAE,IAAIA,EAAE,KAAK,EAAEK,EAAE,UAAUC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAEL,EAAE,OAAOC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,QAAQ,EAAE,CAAC,IAAIF,EAAE,KAAK,GAAGC,CAAC,EAAE,IAAID,EAAE,KAAK,EAAEE,CAAC,CAAC,EAAEC,GAAGF,EAAE,OAAO,KAAKC,EAAE,OAAO,IAAI,KAAK,eAAeD,EAAEC,EAAEE,CAAC,EAAE,KAAK,aAAaH,EAAEC,EAAEE,CAAC,CAAC,EAAEJ,EAAE,UAAU,eAAe,SAASC,EAAEC,EAAEC,EAAE,CAAC,IAAIC,EAAE,KAAK,mBAAmBH,EAAEC,CAAC,EAAED,EAAEG,EAAE,OAAOF,EAAEE,EAAE,OAAO,IAAI,EAAEA,EAAE,UAAUC,EAAE,KAAK,UAAUJ,EAAEC,EAAE,GAAGC,CAAC,EAAE,KAAK,mBAAmBE,EAAE,CAAC,EAAE,KAAK,qBAAqBA,CAAC,EAAEA,EAAE,KAAK,IAAIL,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAEM,EAAE,EAAEC,EAAE,EAAEC,EAAE,GAAGC,EAAE,GAAG,KAAK,EAAEJ,EAAE,QAAQ,CAAC,OAAOA,EAAE,CAAC,EAAE,CAAC,EAAC,CAAE,IAAK,GAAEE,IAAIE,GAAGJ,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,IAAM,GAACC,IAAIE,GAAGH,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,IAAK,GAAE,GAAGC,GAAG,GAAGC,GAAG,EAAE,CAACF,EAAE,OAAO,EAAEC,EAAEC,EAAED,EAAEC,CAAC,EAAE,EAAE,EAAED,EAAEC,EAAE,IAAIlF,EAAE,KAAK,UAAUmF,EAAEC,EAAE,GAAGN,CAAC,EAAE,QAAQO,EAAErF,EAAE,OAAO,EAAEqF,GAAG,EAAEA,IAAIL,EAAE,OAAO,EAAE,EAAEhF,EAAEqF,CAAC,CAAC,EAAE,EAAE,EAAErF,EAAE,MAAM,CAACkF,EAAE,EAAED,EAAE,EAAEE,EAAE,GAAGC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAOJ,EAAE,IAAG,EAAGA,CAAC,EAAEL,EAAE,UAAU,aAAa,SAASC,EAAEC,EAAEC,EAAE,CAAC,IAAIC,EAAEH,EAAE,OAAO,EAAEC,EAAE,OAAOG,EAAE,KAAK,MAAMD,EAAE,GAAG,CAAC,EAAE,EAAEC,EAAEC,EAAE,EAAED,EAAEE,EAAE,IAAI,MAAMD,CAAC,EAAEE,EAAE,IAAI,MAAMF,CAAC,EAAE,QAAQK,EAAE,EAAEA,EAAEL,EAAEK,IAAIJ,EAAEI,CAAC,EAAE,GAAGH,EAAEG,CAAC,EAAE,GAAGJ,EAAE,EAAE,CAAC,EAAE,EAAEC,EAAE,EAAE,CAAC,EAAE,EAAE,IAAIC,EAAEL,EAAE,EAAE/E,EAAEoF,EAAE,GAAG,EAAEC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAEE,EAAE,EAAE,QAAQD,EAAE,EAAEA,EAAEN,GAAG,EAAE,IAAI,OAAO,QAAS,EAACF,GAAGQ,IAAI,CAAC,QAAQE,EAAE,CAACF,EAAED,EAAEG,GAAGF,EAAE,EAAEE,GAAG,EAAE,CAAC,IAAIC,EAAE,EAAED,EAAEE,EAAEF,GAAG,CAACF,GAAGE,GAAGF,GAAGJ,EAAEO,EAAE,CAAC,EAAEP,EAAEO,EAAE,CAAC,EAAEC,EAAER,EAAEO,EAAE,CAAC,EAAEC,EAAER,EAAEO,EAAE,CAAC,EAAE,EAAE,IAAIE,EAAED,EAAEF,EAAE,KAAKE,EAAEX,GAAGY,EAAE,GAAGf,EAAE,OAAOc,CAAC,GAAGb,EAAE,OAAOc,CAAC,GAAGD,IAAIC,IAAI,GAAGT,EAAEO,CAAC,EAAEC,EAAEA,EAAEX,EAAE,GAAG,UAAUY,EAAE,EAAEN,GAAG,UAAUrF,EAAE,CAAC,IAAI4F,EAAE,EAAER,EAAEI,EAAE,GAAGI,GAAG,GAAGA,EAAEX,GAAGE,EAAES,CAAC,GAAG,GAAG,CAAC,IAAIC,EAAEd,EAAEI,EAAES,CAAC,EAAE,GAAGF,GAAGG,EAAE,OAAO,KAAK,kBAAkBjB,EAAEC,EAAEa,EAAEC,EAAEb,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQU,EAAE,CAACF,EAAE,EAAEE,GAAGF,EAAEC,EAAEC,GAAG,EAAE,CAAC,IAAIC,EAAE,EAAED,EAAEE,EAAEF,GAAG,CAACF,GAAGE,GAAGF,GAAGH,EAAEM,EAAE,CAAC,EAAEN,EAAEM,EAAE,CAAC,EAAEC,EAAEP,EAAEM,EAAE,CAAC,EAAEC,EAAEP,EAAEM,EAAE,CAAC,EAAE,EAAE,IAAIE,EAAED,EAAEF,EAAE,KAAKE,EAAEX,GAAGY,EAAE,GAAGf,EAAE,OAAOG,EAAEW,EAAE,CAAC,GAAGb,EAAE,OAAO,EAAEc,EAAE,CAAC,GAAGD,IAAIC,IAAI,GAAGR,EAAEM,CAAC,EAAEC,EAAEA,EAAEX,EAAEQ,GAAG,UAAUI,EAAE,EAAE,GAAG,UAAU,CAAC3F,EAAE,CAAC,IAAI4F,EAAE,EAAER,EAAEI,EAAE,GAAGI,GAAG,GAAGA,EAAEX,GAAGC,EAAEU,CAAC,GAAG,GAAG,CAAC,IAAIC,EAAEX,EAAEU,CAAC,EAAEE,EAAE,EAAED,EAAED,EAAE,GAAGF,EAAEX,EAAEW,EAAEG,GAAGH,EAAE,OAAO,KAAK,kBAAkBd,EAAEC,EAAEgB,EAAEC,EAAEhB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAIH,EAAE,KAAK,GAAGC,CAAC,EAAE,IAAID,EAAE,KAAK,EAAEE,CAAC,CAAC,CAAC,EAAEF,EAAE,UAAU,kBAAkB,SAASC,EAAEC,EAAEC,EAAEC,EAAE,EAAE,CAAC,IAAIC,EAAEJ,EAAE,UAAU,EAAEE,CAAC,EAAE,EAAED,EAAE,UAAU,EAAEE,CAAC,EAAEE,EAAEL,EAAE,UAAUE,CAAC,EAAEI,EAAEL,EAAE,UAAUE,CAAC,EAAEI,EAAE,KAAK,UAAUH,EAAE,EAAE,GAAG,CAAC,EAAEI,EAAE,KAAK,UAAUH,EAAEC,EAAE,GAAG,CAAC,EAAE,OAAOC,EAAE,OAAOC,CAAC,CAAC,EAAET,EAAE,UAAU,mBAAmB,SAASC,EAAEC,EAAE,CAAC,IAAIC,EAAE,CAAE,EAACC,EAAE,CAAA,EAAGD,EAAE,CAAC,EAAE,GAAG,SAAS,EAAEI,EAAE,CAAC,IAAIC,EAAE,GAAGC,EAAE,EAAEpF,EAAE,GAAGqF,EAAEP,EAAE,OAAO,KAAK9E,EAAEkF,EAAE,OAAO,GAAG,CAAClF,EAAEkF,EAAE,QAAQ;AAAA,EACzlGE,CAAC,EAAEpF,GAAG,KAAKA,EAAEkF,EAAE,OAAO,GAAG,IAAI,EAAEA,EAAE,UAAUE,EAAEpF,EAAE,CAAC,GAAG+E,EAAE,eAAeA,EAAE,eAAe,CAAC,EAAEA,EAAE,CAAC,IAAI,QAAQI,GAAG,OAAO,aAAaJ,EAAE,CAAC,CAAC,GAAGM,GAAGL,IAAI,EAAEE,EAAE,UAAUE,CAAC,EAAEpF,EAAEkF,EAAE,QAAQC,GAAG,OAAO,aAAaE,CAAC,EAAEN,EAAE,CAAC,EAAEM,EAAEP,EAAEO,GAAG,EAAE,GAAGD,EAAEpF,EAAE,CAAC,CAAC,OAAOmF,CAAC,CAAC,IAAIH,EAAE,IAAI,EAAE,EAAEJ,CAAC,EAAEI,EAAE,MAAM,IAAIC,EAAE,EAAEJ,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,OAAOI,EAAE,UAAUH,CAAC,CAAC,EAAEH,EAAE,UAAU,mBAAmB,SAASC,EAAEC,EAAE,CAAC,QAAQC,EAAE,EAAEA,EAAEF,EAAE,OAAOE,IAAI,CAAC,IAAIC,EAAEH,EAAEE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAE,EAAC,QAAQE,EAAE,EAAEA,EAAED,EAAE,OAAOC,IAAI,EAAEA,CAAC,EAAEH,EAAEE,EAAE,WAAWC,CAAC,CAAC,EAAEJ,EAAEE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAEH,EAAE,UAAU,kBAAkB,SAASC,EAAEC,EAAE,CAAC,GAAG,CAACD,GAAG,CAACC,GAAGD,EAAE,OAAO,CAAC,GAAGC,EAAE,OAAO,CAAC,EAAE,MAAO,GAAE,IAAIC,EAAE,EAAEC,EAAE,KAAK,IAAIH,EAAE,OAAOC,EAAE,MAAM,EAAE,EAAEE,EAAEC,EAAE,EAAE,KAAKF,EAAE,GAAGF,EAAE,UAAUI,EAAE,CAAC,GAAGH,EAAE,UAAUG,EAAE,CAAC,GAAGF,EAAE,EAAEE,EAAEF,GAAGC,EAAE,EAAE,EAAE,KAAK,OAAOA,EAAED,GAAG,EAAEA,CAAC,EAAE,OAAO,CAAC,EAAEH,EAAE,UAAU,kBAAkB,SAASC,EAAEC,EAAE,CAAC,GAAG,CAACD,GAAG,CAACC,GAAGD,EAAE,OAAOA,EAAE,OAAO,CAAC,GAAGC,EAAE,OAAOA,EAAE,OAAO,CAAC,EAAE,MAAO,GAAE,IAAIC,EAAE,EAAEC,EAAE,KAAK,IAAIH,EAAE,OAAOC,EAAE,MAAM,EAAE,EAAEE,EAAEC,EAAE,EAAE,KAAKF,EAAE,GAAGF,EAAE,UAAUA,EAAE,OAAO,EAAEA,EAAE,OAAOI,CAAC,GAAGH,EAAE,UAAUA,EAAE,OAAO,EAAEA,EAAE,OAAOG,CAAC,GAAGF,EAAE,EAAEE,EAAEF,GAAGC,EAAE,EAAE,EAAE,KAAK,OAAOA,EAAED,GAAG,EAAEA,CAAC,EAAE,OAAO,CAAC,EAAEH,EAAE,UAAU,oBAAoB,SAASC,EAAEC,EAAE,CAAC,IAAIC,EAAEF,EAAE,OAAOG,EAAEF,EAAE,OAAO,GAAGC,GAAG,GAAGC,GAAG,EAAE,MAAO,GAAED,EAAEC,EAAEH,EAAEA,EAAE,UAAUE,EAAEC,CAAC,EAAED,EAAEC,IAAIF,EAAEA,EAAE,UAAU,EAAEC,CAAC,GAAG,IAAI,EAAE,KAAK,IAAIA,EAAEC,CAAC,EAAE,GAAGH,GAAGC,EAAE,OAAO,EAAE,IAAIG,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,IAAIC,EAAEL,EAAE,UAAU,EAAE,CAAC,EAAEM,EAAEL,EAAE,QAAQI,CAAC,EAAE,GAAGC,GAAG,GAAG,OAAOF,EAAE,GAAGE,GAAGA,GAAG,GAAGN,EAAE,UAAU,EAAE,CAAC,GAAGC,EAAE,UAAU,EAAE,CAAC,KAAKG,EAAE,EAAE,IAAI,CAAC,EAAEL,EAAE,UAAU,gBAAgB,SAASC,EAAEC,EAAE,CAAC,GAAG,KAAK,cAAc,EAAE,OAAO,KAAK,IAAIC,EAAEF,EAAE,OAAOC,EAAE,OAAOD,EAAEC,EAAEE,EAAEH,EAAE,OAAOC,EAAE,OAAOA,EAAED,EAAE,GAAGE,EAAE,OAAO,GAAGC,EAAE,OAAO,EAAED,EAAE,OAAO,OAAO,KAAK,IAAI,EAAE,KAAK,SAASE,EAAE,EAAEO,EAAED,EAAE,CAAC,IAAIE,EAAE,EAAE,UAAUF,EAAEA,EAAE,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC,EAAEG,EAAE,GAAGC,EAAE,GAAGC,EAAEC,EAAEC,EAAEC,EAAE,MAAML,EAAEF,EAAE,QAAQC,EAAEC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAIM,EAAE,EAAE,kBAAkB,EAAE,UAAUT,CAAC,EAAEC,EAAE,UAAUE,CAAC,CAAC,EAAEO,EAAE,EAAE,kBAAkB,EAAE,UAAU,EAAEV,CAAC,EAAEC,EAAE,UAAU,EAAEE,CAAC,CAAC,EAAEC,EAAE,OAAOM,EAAED,IAAIL,EAAEH,EAAE,UAAUE,EAAEO,EAAEP,CAAC,EAAEF,EAAE,UAAUE,EAAEA,EAAEM,CAAC,EAAEJ,EAAE,EAAE,UAAU,EAAEL,EAAEU,CAAC,EAAEJ,EAAE,EAAE,UAAUN,EAAES,CAAC,EAAEF,EAAEN,EAAE,UAAU,EAAEE,EAAEO,CAAC,EAAEF,EAAEP,EAAE,UAAUE,EAAEM,CAAC,EAAE,CAAC,OAAOL,EAAE,OAAO,GAAG,EAAE,OAAO,CAACC,EAAEC,EAAEC,EAAEC,EAAEJ,CAAC,EAAE,IAAI,CAAC,IAAI,EAAEV,EAAEF,EAAEC,EAAE,KAAK,KAAKD,EAAE,OAAO,CAAC,CAAC,EAAEG,EAAED,EAAEF,EAAEC,EAAE,KAAK,KAAKD,EAAE,OAAO,CAAC,CAAC,EAAEI,EAAE,GAAG,CAAC,GAAG,CAACD,EAAE,OAAO,KAAKA,EAAE,EAAEC,EAAE,EAAE,CAAC,EAAE,OAAOD,EAAE,CAAC,EAAE,OAAO,EAAEA,EAAEC,EAAED,EAAEC,EAAE,EAAE,IAAIC,EAAEC,EAAEpF,EAAEqF,EAAET,EAAE,OAAOC,EAAE,QAAQM,EAAED,EAAE,CAAC,EAAEE,EAAEF,EAAE,CAAC,EAAElF,EAAEkF,EAAE,CAAC,EAAEG,EAAEH,EAAE,CAAC,IAAIlF,EAAEkF,EAAE,CAAC,EAAEG,EAAEH,EAAE,CAAC,EAAEC,EAAED,EAAE,CAAC,EAAEE,EAAEF,EAAE,CAAC,GAAG,IAAI,EAAEA,EAAE,CAAC,EAAE,MAAM,CAACC,EAAEC,EAAEpF,EAAEqF,EAAE,CAAC,CAAC,EAAEV,EAAE,UAAU,qBAAqB,SAASC,EAAE,CAAC,IAAIC,EAAE,GAAGC,EAAE,CAAE,EAACC,EAAE,EAAE,EAAE,KAAKC,EAAE,EAAE,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE,KAAKH,EAAEJ,EAAE,QAAQA,EAAEI,CAAC,EAAE,CAAC,GAAG,GAAGF,EAAEC,GAAG,EAAEC,EAAE,EAAEE,EAAED,EAAEE,EAAED,EAAE,EAAEC,EAAE,EAAE,EAAEP,EAAEI,CAAC,EAAE,CAAC,IAAIJ,EAAEI,CAAC,EAAE,CAAC,GAAG,EAAEE,GAAGN,EAAEI,CAAC,EAAE,CAAC,EAAE,OAAOG,GAAGP,EAAEI,CAAC,EAAE,CAAC,EAAE,OAAO,GAAG,EAAE,QAAQ,KAAK,IAAI,EAAEC,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAIC,EAAEC,CAAC,IAAIP,EAAE,OAAOE,EAAEC,EAAE,CAAC,EAAE,EAAE,IAAIJ,EAAE,KAAK,GAAG,CAAC,CAAC,EAAEC,EAAEE,EAAEC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAEA,IAAIA,IAAIC,EAAED,EAAE,EAAED,EAAEC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAEE,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE,EAAE,KAAKN,EAAE,KAAKG,IAAI,IAAIH,GAAG,KAAK,kBAAkBD,CAAC,EAAE,KAAK,6BAA6BA,CAAC,EAAEI,EAAE,EAAEA,EAAEJ,EAAE,QAAQ,CAAC,GAAGA,EAAEI,EAAE,CAAC,EAAE,CAAC,GAAG,IAAIJ,EAAEI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAII,EAAER,EAAEI,EAAE,CAAC,EAAE,CAAC,EAAEhF,EAAE4E,EAAEI,CAAC,EAAE,CAAC,EAAEK,EAAE,KAAK,oBAAoBD,EAAEpF,CAAC,EAAE,EAAE,KAAK,oBAAoBA,EAAEoF,CAAC,EAAEC,GAAG,GAAGA,GAAGD,EAAE,OAAO,GAAGC,GAAGrF,EAAE,OAAO,KAAK4E,EAAE,OAAOI,EAAE,EAAE,IAAIL,EAAE,KAAK,EAAE3E,EAAE,UAAU,EAAEqF,CAAC,CAAC,CAAC,EAAET,EAAEI,EAAE,CAAC,EAAE,CAAC,EAAEI,EAAE,UAAU,EAAEA,EAAE,OAAOC,CAAC,EAAET,EAAEI,EAAE,CAAC,EAAE,CAAC,EAAEhF,EAAE,UAAUqF,CAAC,EAAEL,MAAM,GAAGI,EAAE,OAAO,GAAG,GAAGpF,EAAE,OAAO,KAAK4E,EAAE,OAAOI,EAAE,EAAE,IAAIL,EAAE,KAAK,EAAES,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAER,EAAEI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAEJ,EAAEI,EAAE,CAAC,EAAE,CAAC,EAAEhF,EAAE,UAAU,EAAEA,EAAE,OAAO,CAAC,EAAE4E,EAAEI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAGJ,EAAEI,EAAE,CAAC,EAAE,CAAC,EAAEI,EAAE,UAAU,CAAC,EAAEJ,KAAKA,GAAG,CAACA,GAAG,CAAC,EAAEL,EAAE,UAAU,6BAA6B,SAASC,EAAE,CAAC,SAASC,EAAEE,EAAE,EAAE,CAAC,GAAG,CAACA,GAAG,CAAC,EAAE,MAAO,GAAE,IAAIC,EAAED,EAAE,OAAOA,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAEE,EAAED,EAAE,MAAML,EAAE,qBAAqB,EAAEO,EAAE,EAAE,MAAMP,EAAE,qBAAqB,EAAEQ,EAAEF,GAAGD,EAAE,MAAML,EAAE,gBAAgB,EAAES,EAAEF,GAAG,EAAE,MAAMP,EAAE,gBAAgB,EAAE3E,EAAEmF,GAAGH,EAAE,MAAML,EAAE,eAAe,EAAEU,EAAED,GAAG,EAAE,MAAMT,EAAE,eAAe,EAAE,EAAE3E,GAAG+E,EAAE,MAAMJ,EAAE,kBAAkB,EAAE,EAAEU,GAAG,EAAE,MAAMV,EAAE,oBAAoB,EAAE,OAAO,GAAG,EAAE,EAAE3E,GAAGqF,EAAE,EAAEJ,GAAG,CAACE,GAAGC,EAAE,EAAED,GAAGC,EAAE,EAAEH,GAAGC,EAAE,EAAE,CAAC,CAAC,IAAIJ,EAAE,EAAE,KAAKA,EAAEF,EAAE,OAAO,GAAG,CAAC,GAAGA,EAAEE,EAAE,CAAC,EAAE,CAAC,GAAG,GAAGF,EAAEE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAIC,EAAEH,EAAEE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAEF,EAAEE,CAAC,EAAE,CAAC,EAAEE,EAAEJ,EAAEE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,kBAAkBC,EAAE,CAAC,EAAE,GAAG,EAAE,CAACA,EAAEA,EAAE,OAAO,CAAC,IAAI;AAAA,IAC1jH,GAAG,GAAG,IAAI/E,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE+E,EAAEA,EAAE,UAAU,EAAEA,EAAE,OAAO,CAAC,EAAE,EAAE/E,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,EAAEgF,EAAEhF,EAAEgF,CAAC,CAAC,IAAIC,EAAEF,EAAEG,EAAE,EAAEC,EAAEH,EAAEI,EAAEP,EAAEE,EAAE,CAAC,EAAEF,EAAE,EAAEG,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAIA,EAAE,OAAO,CAAC,GAAG,CAACD,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,EAAEC,EAAE,OAAO,CAAC,EAAEA,EAAEA,EAAE,UAAU,CAAC,EAAE,IAAIhF,EAAE6E,EAAEE,EAAE,CAAC,EAAEF,EAAE,EAAEG,CAAC,EAAEhF,GAAGoF,IAAIA,EAAEpF,EAAEiF,EAAEF,EAAEG,EAAE,EAAEC,EAAEH,EAAE,CAACJ,EAAEE,EAAE,CAAC,EAAE,CAAC,GAAGG,IAAIA,EAAEL,EAAEE,EAAE,CAAC,EAAE,CAAC,EAAEG,GAAGL,EAAE,OAAOE,EAAE,EAAE,CAAC,EAAEA,KAAKF,EAAEE,CAAC,EAAE,CAAC,EAAEI,EAAEC,EAAEP,EAAEE,EAAE,CAAC,EAAE,CAAC,EAAEK,GAAGP,EAAE,OAAOE,EAAE,EAAE,CAAC,EAAEA,KAAK,CAACA,GAAG,CAAC,EAAEH,EAAE,sBAAsB,eAAeA,EAAE,iBAAiB,KAAKA,EAAE,gBAAgB,SAASA,EAAE,mBAAmB,WAAWA,EAAE,qBAAqB,cAAcA,EAAE,UAAU,uBAAuB,SAASC,EAAE,CAAC,IAAIC,EAAE,GAAGC,EAAE,GAAGC,EAAE,EAAE,EAAE,KAAKC,EAAE,EAAE,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAG,KAAKH,EAAEJ,EAAE,QAAQA,EAAEI,CAAC,EAAE,CAAC,GAAG,GAAGJ,EAAEI,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,gBAAgBE,GAAGC,IAAIL,EAAEC,GAAG,EAAEC,EAAE,EAAEE,EAAED,EAAEE,EAAE,EAAEP,EAAEI,CAAC,EAAE,CAAC,IAAID,EAAE,EAAE,EAAE,MAAMG,EAAEC,EAAE,KAAKP,EAAEI,CAAC,EAAE,CAAC,GAAG,GAAGG,EAAE,GAAGD,EAAE,GAAG,IAAI,GAAGD,GAAGC,GAAGC,GAAG,EAAE,OAAO,KAAK,cAAc,GAAG,EAAEF,EAAEC,EAAEC,GAAG,KAAKP,EAAE,OAAOE,EAAEC,EAAE,CAAC,EAAE,EAAE,IAAIJ,EAAE,KAAK,GAAG,CAAC,CAAC,EAAEC,EAAEE,EAAEC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAEA,IAAI,EAAE,KAAK,GAAGE,GAAGC,EAAEC,EAAE,GAAGJ,EAAE,IAAIA,IAAIC,EAAED,EAAE,EAAED,EAAEC,EAAE,CAAC,EAAE,GAAGG,EAAEC,EAAE,IAAIN,EAAE,KAAKG,IAAIH,GAAG,KAAK,kBAAkBD,CAAC,CAAC,EAAED,EAAE,UAAU,kBAAkB,SAASC,EAAE,CAACA,EAAE,KAAK,IAAID,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,IAAIE,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE,EAAE,GAAGC,EAAE,GAAG,EAAE,KAAKH,EAAED,EAAE,QAAQ,OAAOA,EAAEC,CAAC,EAAE,CAAC,EAAC,CAAE,IAAK,GAAEE,IAAIC,GAAGJ,EAAEC,CAAC,EAAE,CAAC,EAAEA,IAAI,MAAM,IAAI,GAAGC,IAAI,GAAGF,EAAEC,CAAC,EAAE,CAAC,EAAEA,IAAI,MAAM,IAAK,GAAEC,EAAEC,EAAE,GAAGD,IAAI,GAAGC,IAAI,IAAI,EAAE,KAAK,kBAAkBC,EAAE,CAAC,EAAE,IAAI,IAAIH,EAAEC,EAAEC,EAAE,GAAGH,EAAEC,EAAEC,EAAEC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAEH,EAAEC,EAAEC,EAAEC,EAAE,CAAC,EAAE,CAAC,GAAGC,EAAE,UAAU,EAAE,CAAC,GAAGJ,EAAE,OAAO,EAAE,EAAE,IAAID,EAAE,KAAK,EAAEK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAEH,KAAKG,EAAEA,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,GAAG,EAAE,KAAK,kBAAkBA,EAAE,CAAC,EAAE,IAAI,IAAIJ,EAAEC,CAAC,EAAE,CAAC,EAAEG,EAAE,UAAUA,EAAE,OAAO,CAAC,EAAEJ,EAAEC,CAAC,EAAE,CAAC,EAAEG,EAAEA,EAAE,UAAU,EAAEA,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,IAAIH,GAAGC,EAAEC,EAAEH,EAAE,OAAOC,EAAEC,EAAEC,CAAC,EAAE,EAAE,SAASH,EAAE,OAAOC,EAAE,EAAE,IAAIF,EAAE,KAAK,GAAG,CAAC,CAAC,EAAEE,KAAKG,EAAE,SAASJ,EAAE,OAAOC,EAAE,EAAE,IAAIF,EAAE,KAAK,EAAEK,CAAC,CAAC,EAAEH,KAAKA,KAAKA,IAAI,GAAGD,EAAEC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAGD,EAAEC,EAAE,CAAC,EAAE,CAAC,GAAGD,EAAEC,CAAC,EAAE,CAAC,EAAED,EAAE,OAAOC,EAAE,CAAC,GAAGA,IAAIE,EAAE,EAAED,EAAE,EAAE,EAAE,GAAGE,EAAE,GAAG,KAAK,CAACJ,EAAEA,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,IAAIA,EAAE,IAAG,EAAG,IAAIK,EAAE,GAAG,IAAIJ,EAAE,EAAEA,EAAED,EAAE,OAAO,GAAGA,EAAEC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAGD,EAAEC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAID,EAAEC,CAAC,EAAE,CAAC,EAAE,UAAUD,EAAEC,CAAC,EAAE,CAAC,EAAE,OAAOD,EAAEC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,GAAGD,EAAEC,EAAE,CAAC,EAAE,CAAC,GAAGD,EAAEC,CAAC,EAAE,CAAC,EAAED,EAAEC,EAAE,CAAC,EAAE,CAAC,EAAED,EAAEC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAED,EAAEC,CAAC,EAAE,CAAC,EAAE,OAAOD,EAAEC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAED,EAAEC,EAAE,CAAC,EAAE,CAAC,EAAED,EAAEC,EAAE,CAAC,EAAE,CAAC,EAAED,EAAEC,EAAE,CAAC,EAAE,CAAC,EAAED,EAAE,OAAOC,EAAE,EAAE,CAAC,EAAEI,EAAE,IAAIL,EAAEC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAED,EAAEC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,GAAGD,EAAEC,EAAE,CAAC,EAAE,CAAC,IAAID,EAAEC,EAAE,CAAC,EAAE,CAAC,GAAGD,EAAEC,EAAE,CAAC,EAAE,CAAC,EAAED,EAAEC,CAAC,EAAE,CAAC,EAAED,EAAEC,CAAC,EAAE,CAAC,EAAE,UAAUD,EAAEC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAED,EAAEC,EAAE,CAAC,EAAE,CAAC,EAAED,EAAE,OAAOC,EAAE,EAAE,CAAC,EAAEI,EAAE,KAAKJ,IAAII,GAAG,KAAK,kBAAkBL,CAAC,CAAC,EAAED,EAAE,UAAU,4BAA4B,SAASC,EAAE,CAAC,IAAIC,EAAE,QAAQC,EAAE,EAAEA,EAAEF,EAAE,OAAOE,IAAI,CAAC,IAAIC,EAAEH,EAAEE,CAAC,EAAE,EAAEC,EAAE,CAAC,EAAE,CAAC,EAAEC,EAAED,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,GAAGA,EAAE,CAAC,EAAE,SAAS,EAAE,CAACH,EAAE,OAAOE,IAAI,CAAC,EAAE,QAAQ,CAAC,GAAGE,GAAG,KAAK,gBAAgBA,CAAC,IAAIH,EAAEG,EAAED,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,GAAGF,GAAG,GAAG,KAAK,gBAAgBA,CAAC,GAAG,KAAK,eAAe,CAAC,IAAIE,EAAE,CAAC,EAAEF,EAAEE,EAAE,CAAC,GAAGA,EAAE,CAAC,EAAE,SAAS,EAAE,CAACH,EAAE,OAAOE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,OAAOF,CAAC,EAAED,EAAE,UAAU,gBAAgB,SAASC,EAAE,CAAC,IAAIC,EAAED,EAAE,WAAW,CAAC,EAAE,OAAOC,GAAG,OAAOA,GAAG,KAAK,EAAEF,EAAE,UAAU,eAAe,SAASC,EAAE,CAAC,IAAIC,EAAED,EAAE,WAAW,CAAC,EAAE,OAAOC,GAAG,OAAOA,GAAG,KAAK,EAAEF,EAAE,UAAU,QAAQ,SAASC,EAAE,CAAC,OAAOA,EAAG,CAAA,IAAI,IAAI,MAAO,GAAE,IAAI,IAAI,MAAO,GAAE,IAAI,IAAI,MAAO,GAAE,IAAI,IAAI,MAAO,GAAE,IAAI,IAAI,MAAO,GAAE,IAAI,IAAI,MAAO,GAAE,IAAI,IAAI,MAAO,GAAE,IAAI,IAAI,MAAO,GAAE,IAAI,IAAI,MAAO,GAAE,IAAI,IAAI,MAAO,GAAE,IAAI,IAAI,IAAI,IAAI,MAAO,IAAG,IAAI,IAAI,IAAI,IAAI,MAAO,IAAG,IAAI,IAAI,IAAI,IAAI,MAAO,IAAG,IAAI,IAAI,IAAI,IAAI,MAAO,IAAG,IAAI,IAAI,IAAI,IAAI,MAAO,IAAG,IAAI,IAAI,IAAI,IAAI,MAAO,IAAG,QAAQ,MAAM,IAAI,MAAM,kBAAkB,CAAC,CAAC,EAAED,EAAE,UAAU,UAAU,SAASC,EAAE,CAAC,GAAG,CAAC,OAAO,UAAUA,CAAC,CAAC,MAAM,CAAC,IAAIE,EAAE,EAAE,EAAE,GAAG,KAAKA,EAAEF,EAAE,QAAQ,CAAC,GAAGA,EAAEE,CAAC,IAAI,IAAI,CAAC,GAAGF,EAAEE,GAAG,EAAE,QAAQ,CAAC,IAAImB,GAAG,KAAK,QAAQrB,EAAEE,EAAE,CAAC,CAAC,GAAG,GAAG,KAAK,QAAQF,EAAEE,EAAE,CAAC,CAAC,EAAE,IAAImB,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,aAAaA,CAAC,EAAEnB,GAAG,EAAE,QAAQ,CAAC,GAAGF,EAAEE,EAAE,CAAC,IAAI,IAAI,MAAM,IAAI,SAAS,eAAe,EAAE,IAAIE,GAAG,KAAK,QAAQJ,EAAEE,EAAE,CAAC,CAAC,GAAG,GAAG,KAAK,QAAQF,EAAEE,EAAE,CAAC,CAAC,EAAE,IAAIE,EAAE,OAAO,IAAI,MAAM,IAAI,SAAS,eAAe,EAAE,GAAGA,EAAEA,EAAE,IAAIiB,EAAE,OAAO,IAAI,CAAC,GAAG,OAAO,cAAcA,EAAE,KAAK,EAAEjB,CAAC,EAAEF,GAAG,EAAE,QAAQ,CAAC,GAAGF,EAAEE,EAAE,CAAC,IAAI,IAAI,MAAM,IAAI,SAAS,eAAe,EAAE,IAAIoB,GAAG,KAAK,QAAQtB,EAAEE,EAAE,CAAC,CAAC,GAAG,GAAG,KAAK,QAAQF,EAAEE,EAAE,CAAC,CAAC,EAAE,IAAIoB,EAAE,OAAO,IAAI,MAAM,IAAI,SAAS,eAAe,EAAE,GAAGA,EAAEA,EAAE,IAAID,EAAE,OAAO,IAAI,CAAC,GAAG,OAAO,cAAcA,EAAE,KAAK,GAAGjB,GAAG,EAAEkB,CAAC,EAAEpB,GAAG,EAAE,QAAQ,CAAC,GAAGF,EAAEE,EAAE,CAAC,IAAI,IAAI,MAAM,IAAI,SAAS,eAAe,EAAE,IAAIG,GAAG,KAAK,QAAQL,EAAEE,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,QAAQF,EAAEE,EAAE,EAAE,CAAC,EAAE,IAAIG,EAAE,OAAO,IAAI,MAAM,IAAI,SAAS,eAAe,EAAE,GAAGA,EAAEA,EAAE,IAAIgB,EAAE,OAAO,IAAI,CAAC,IAAIf,GAAGe,EAAE,IAAI,GAAGjB,GAAG,GAAGkB,GAAG,EAAEjB,EAAE,GAAGC,GAAG,OAAOA,GAAG,QAAQ,CAAC,GAAG,OAAO,cAAcA,EAAE,SAAS,GAAG,KAAK,KAAK,EAAE,GAAG,OAAO,aAAa,MAAMA,EAAE,MAAM,IAAI,EAAEJ,GAAG,GAAG,QAAQ,CAAC,CAAC,MAAM,IAAI,SAAS,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,EAAEH,EAAE,UAAU,YAAY,SAASC,EAAEC,EAAE,CAAC,IAAIC,EAAE,EAAEC,EAAE,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAEJ,EAAE,SAASA,EAAE,CAAC,EAAE,CAAC,IAAI,IAAIE,GAAGF,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQA,EAAE,CAAC,EAAE,CAAC,IAAI,KAAKG,GAAGH,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAEE,EAAED,IAAI,IAAI,EAAEC,EAAEE,EAAED,EAAE,OAAOH,EAAE,QAAQ,GAAGA,EAAE,CAAC,EAAE,CAAC,IAAI,GAAGI,EAAEA,GAAGH,EAAE,EAAE,EAAEF,EAAE,UAAU,gBAAgB,SAASC,EAAE,CAACA,EAAE,KAAK,4BAA4BA,CAAC,EAAE,IAAIC,EAAE,GAAGC,EAAE,KAAKC,EAAE,KAAK,EAAE,KAAKC,EAAE,MAAM,QAAQ,EAAE,EAAE,EAAEJ,EAAE,OAAO,IAAI,CAAC,IAAIK,EAAEL,EAAE,CAAC,EAAE,CAAC,EAAEO,EAAEP,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQE,EAAE,OAAO,EAAE,QAAQC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQC,EAAE,YAAY,EAAE,OAAOC,EAAC,CAAE,IAAK,GAAEJ,EAAE,CAAC,EAAE,oCAAoCM,EAAE,SAAS,MAAM,OAAON,EAAE,CAAC,EAAE,oCAAoCM,EAAE,SAAS,MAAM,IAAK,GAAEN,EAAE,CAAC,EAAE,SAASM,EAAE,UAAU,KAAK,CAAC,CAAC,OAAON,EAAE,KAAK,EAAE,CAAC,EAAEF,EAAE,UAAU,WAAW,SAASC,EAAE,CAAC,IAAIC,EAAE,GAAG,QAAQC,EAAE,EAAEA,EAAEF,EAAE,OAAOE,IAAIF,EAAEE,CAAC,EAAE,CAAC,IAAI,IAAID,EAAEC,CAAC,EAAEF,EAAEE,CAAC,EAAE,CAAC,GAAG,OAAOD,EAAE,KAAK,EAAE,CAAC,EAAEF,EAAE,UAAU,WAAW,SAASC,EAAE,CAAC,IAAIC,EAAE,GAAG,QAAQC,EAAE,EAAEA,EAAEF,EAAE,OAAOE,IAAIF,EAAEE,CAAC,EAAE,CAAC,IAAI,KAAKD,EAAEC,CAAC,EAAEF,EAAEE,CAAC,EAAE,CAAC,GAAG,OAAOD,EAAE,KAAK,EAAE,CAAC,EAAEF,EAAE,UAAU,iBAAiB,SAASC,EAAE,CAAC,IAAIC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAEH,EAAE,OAAO,IAAI,CAAC,IAAII,EAAEJ,EAAE,CAAC,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,CAAC,EAAE,OAAOI,EAAG,CAAA,IAAK,GAAEF,GAAG,EAAE,OAAO,MAAM,OAAOC,GAAG,EAAE,OAAO,MAAM,IAAK,GAAEF,GAAG,KAAK,IAAIC,EAAEC,CAAC,EAAED,EAAE,EAAEC,EAAE,EAAE,KAAK,CAAC,CAAC,OAAOF,GAAG,KAAK,IAAIC,EAAEC,CAAC,EAAEF,CAAC,EAAEF,EAAE,UAAU,aAAa,SAASC,EAAE,CAACA,EAAE,KAAK,4BAA4BA,CAAC,EAAE,IAAIC,EAAE,CAAE,EAAC,QAAQC,EAAE,EAAEA,EAAEF,EAAE,OAAOE,IAAI,OAAOF,EAAEE,CAAC,EAAE,CAAC,EAAG,CAAA,IAAK,GAAED,EAAEC,CAAC,EAAE,IAAI,UAAUF,EAAEE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,IAAI,GAAGD,EAAEC,CAAC,EAAE,IAAIF,EAAEE,CAAC,EAAE,CAAC,EAAE,OAAO,MAAM,IAAK,GAAED,EAAEC,CAAC,EAAE,IAAIF,EAAEE,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,CAAC,OAAOD,EAAE,KAAK,GAAG,EAAE,QAAQ,OAAO,GAAG,CAAC,EAAEF,EAAE,UAAU,eAAe,SAASC,EAAEC,EAAE,CAAC,IAAIC,EAAE,EAAEC,EAAE,GAAG,EAAE,CAAA,EAAGC,EAAE,EAAE,EAAE,EAAEC,EAAEJ,EAAE,MAAM,KAAK,EAAE,QAAQK,EAAE,EAAEA,EAAED,EAAE,OAAOC,IAAI,CAAC,IAAIC,EAAEF,EAAEC,CAAC,EAAE,UAAU,CAAC,EAAE,OAAOD,EAAEC,CAAC,EAAE,OAAO,CAAC,EAAG,CAAA,IAAI,IAAI,GAAG,CAAC,EAAEF,GAAG,EAAE,IAAIL,EAAE,KAAK,EAAE,KAAK,UAAUQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,qCAAqCA,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,GAAGL,EAAE,SAASK,EAAE,EAAE,EAAE,MAAML,CAAC,GAAGA,EAAE,EAAE,MAAM,IAAI,MAAM,qCAAqCK,CAAC,EAAEJ,EAAEH,EAAE,UAAU,EAAE,GAAGE,CAAC,EAAEG,EAAEC,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,EAAEF,GAAG,EAAE,IAAIL,EAAE,KAAK,EAAEI,CAAC,EAAE,EAAEC,GAAG,EAAE,IAAIL,EAAE,KAAK,GAAGI,CAAC,EAAE,MAAM,QAAQ,GAAGE,EAAEC,CAAC,EAAE,MAAM,IAAI,MAAM,6CAA6CD,EAAEC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAGN,EAAE,OAAO,MAAM,IAAI,MAAM,iBAAiB,EAAE,wCAAwCA,EAAE,OAAO,IAAI,EAAE,OAAO,CAAC,EAAED,EAAE,UAAU,WAAW,SAASC,EAAEC,EAAEC,EAAE,CAAC,GAAGF,GAAG,MAAMC,GAAG,MAAMC,GAAG,KAAK,MAAM,IAAI,MAAM,0BAA0B,EAAE,OAAOA,EAAE,KAAK,IAAI,EAAE,KAAK,IAAIA,EAAEF,EAAE,MAAM,CAAC,EAAEA,GAAGC,EAAE,EAAED,EAAE,OAAOA,EAAE,UAAUE,EAAEA,EAAED,EAAE,MAAM,GAAGA,EAAEC,EAAE,KAAK,aAAaF,EAAEC,EAAEC,CAAC,EAAE,EAAE,EAAEH,EAAE,UAAU,aAAa,SAASC,EAAEC,EAAEC,EAAE,CAAC,GAAGD,EAAE,OAAO,KAAK,cAAc,MAAM,IAAI,MAAM,oCAAoC,EAAE,IAAIE,EAAE,KAAK,gBAAgBF,CAAC,EAAE,EAAE,KAAK,SAASG,EAAE,EAAE,EAAE,CAAC,IAAIO,EAAE,EAAEV,EAAE,OAAOS,EAAE,KAAK,IAAIR,EAAE,CAAC,EAAE,OAAO,EAAE,eAAeS,EAAED,EAAE,EAAE,eAAeA,EAAE,EAAEC,CAAC,CAAC,IAAI,EAAE,KAAK,gBAAgBN,EAAEL,EAAE,QAAQC,EAAEC,CAAC,EAAEG,GAAG,KAAK,EAAE,KAAK,IAAID,EAAE,EAAEC,CAAC,EAAE,CAAC,EAAEA,EAAEL,EAAE,YAAYC,EAAEC,EAAED,EAAE,MAAM,EAAEI,GAAG,KAAK,EAAE,KAAK,IAAID,EAAE,EAAEC,CAAC,EAAE,CAAC,IAAI,IAAIC,EAAE,GAAGL,EAAE,OAAO,EAAEI,EAAE,GAAG,IAAIE,EAAEC,EAAEpF,EAAE6E,EAAE,OAAOD,EAAE,OAAOS,EAAE,QAAQ,EAAE,EAAE,EAAER,EAAE,OAAO,IAAI,CAAC,IAAIM,EAAE,EAAEC,EAAEpF,EAAEmF,EAAEC,GAAGJ,EAAE,EAAEF,EAAEM,CAAC,GAAG,EAAED,EAAEC,EAAEpF,EAAEoF,EAAEA,EAAE,KAAK,OAAOpF,EAAEmF,GAAG,EAAEA,CAAC,EAAEnF,EAAEoF,EAAE,IAAI,EAAE,KAAK,IAAI,EAAEN,EAAEM,EAAE,CAAC,EAAEG,EAAE,KAAK,IAAIT,EAAEM,EAAER,EAAE,MAAM,EAAEC,EAAE,OAAOS,EAAE,MAAMC,EAAE,CAAC,EAAED,EAAEC,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,QAAQC,EAAED,EAAEC,GAAG,EAAEA,IAAI,CAAC,IAAIC,EAAEV,EAAEH,EAAE,OAAOY,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAEF,EAAEE,CAAC,GAAGF,EAAEE,EAAE,CAAC,GAAG,EAAE,GAAGC,EAAEH,EAAEE,CAAC,GAAGF,EAAEE,EAAE,CAAC,GAAG,EAAE,GAAGC,IAAIJ,EAAEG,EAAE,CAAC,EAAEH,EAAEG,CAAC,IAAI,EAAE,GAAGH,EAAEG,EAAE,CAAC,EAAEF,EAAEE,CAAC,EAAEN,EAAE,CAAC,IAAIQ,EAAEV,EAAE,EAAEQ,EAAE,CAAC,EAAE,GAAGE,GAAG,EAAE,GAAG,EAAEA,EAAET,EAAEO,EAAE,EAAEP,EAAEH,EAAE,EAAE,KAAK,IAAI,EAAE,EAAEA,EAAEG,CAAC,MAAO,MAAK,CAAC,CAAC,GAAGD,EAAE,EAAE,EAAEF,CAAC,EAAE,EAAE,MAAMO,EAAEC,CAAC,CAAC,OAAOL,CAAC,EAAEN,EAAE,UAAU,gBAAgB,SAASC,EAAE,CAAC,IAAIC,EAAE,CAAA,EAAG,QAAQC,EAAE,EAAEA,EAAEF,EAAE,OAAOE,IAAID,EAAED,EAAE,OAAOE,CAAC,CAAC,EAAE,EAAE,QAAQA,EAAE,EAAEA,EAAEF,EAAE,OAAOE,IAAID,EAAED,EAAE,OAAOE,CAAC,CAAC,GAAG,GAAGF,EAAE,OAAOE,EAAE,EAAE,OAAOD,CAAC,EAAEF,EAAE,UAAU,kBAAkB,SAASC,EAAEC,EAAE,CAAC,GAAGA,EAAE,QAAQ,EAAE,OAAO,GAAGD,EAAE,SAAS,KAAK,MAAM,MAAM,uBAAuB,EAAE,IAAIE,EAAED,EAAE,UAAUD,EAAE,OAAOA,EAAE,OAAOA,EAAE,OAAO,EAAEG,EAAE,EAAE,KAAKF,EAAE,QAAQC,CAAC,GAAGD,EAAE,YAAYC,CAAC,GAAGA,EAAE,OAAO,KAAK,cAAc,KAAK,aAAa,KAAK,cAAcC,GAAG,KAAK,aAAaD,EAAED,EAAE,UAAUD,EAAE,OAAOG,EAAEH,EAAE,OAAOA,EAAE,QAAQG,CAAC,EAAEA,GAAG,KAAK,aAAaH,EAAE,OAAOG,EAAE,GAAGJ,EAAE,UAAU,eAAeE,EAAED,EAAE,OAAOG,CAAC,CAAC,GAAGA,IAAI,IAAI,EAAEF,EAAE,UAAUD,EAAE,OAAOG,EAAEH,EAAE,MAAM,EAAE,GAAGA,EAAE,MAAM,QAAQ,IAAID,EAAE,KAAK,EAAE,CAAC,CAAC,EAAEC,EAAE,OAAOA,EAAE,QAAQG,EAAEF,EAAE,QAAQF,EAAE,UAAU,gBAAgBE,EAAED,EAAE,OAAOA,EAAE,QAAQG,CAAC,CAAC,GAAGA,IAAI,IAAIC,EAAEH,EAAE,UAAUD,EAAE,OAAOA,EAAE,QAAQA,EAAE,OAAOA,EAAE,QAAQG,CAAC,EAAEC,GAAGJ,EAAE,MAAM,KAAK,IAAID,EAAE,KAAK,EAAEK,CAAC,CAAC,EAAEJ,EAAE,QAAQ,EAAE,OAAOA,EAAE,QAAQ,EAAE,OAAOA,EAAE,SAAS,EAAE,OAAOI,EAAE,OAAOJ,EAAE,SAAS,EAAE,OAAOI,EAAE,MAAM,EAAEL,EAAE,UAAU,WAAW,SAASC,EAAEC,EAAEC,EAAE,CAAC,IAAIC,EAAE,EAAE,GAAG,OAAOH,GAAG,UAAU,OAAOC,GAAG,UAAU,OAAOC,EAAE,IAAIC,EAAEH,EAAE,EAAE,KAAK,UAAUG,EAAEF,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,KAAK,qBAAqB,CAAC,EAAE,KAAK,uBAAuB,CAAC,WAAWD,GAAG,OAAOA,GAAG,UAAU,OAAOC,EAAE,KAAK,OAAOC,EAAE,IAAI,EAAEF,EAAEG,EAAE,KAAK,WAAW,CAAC,UAAU,OAAOH,GAAG,UAAUC,GAAG,OAAOA,GAAG,UAAU,OAAOC,EAAE,IAAIC,EAAEH,EAAE,EAAEC,UAAU,OAAOD,GAAG,UAAU,OAAOC,GAAG,UAAUC,GAAG,OAAOA,GAAG,SAASC,EAAEH,EAAE,EAAEE,MAAO,OAAM,IAAI,MAAM,oCAAoC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAA,EAAG,EAAE,KAAK,4BAA4B,CAAC,EAAE,IAAIE,EAAE,CAAA,EAAG,EAAE,IAAIL,EAAE,UAAUM,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAEL,EAAE/E,EAAE+E,EAAE,QAAQM,EAAE,EAAEA,EAAE,EAAE,OAAOA,IAAI,CAAC,IAAI,EAAE,EAAEA,CAAC,EAAE,CAAC,EAAE,EAAE,EAAEA,CAAC,EAAE,CAAC,EAAE,OAAO,CAACJ,GAAG,IAAI,IAAI,EAAE,OAAOC,EAAE,EAAE,OAAOC,GAAG,EAAG,CAAA,IAAK,GAAE,EAAE,MAAMF,GAAG,EAAE,EAAEI,CAAC,EAAE,EAAE,SAAS,EAAE,OAAOrF,EAAEA,EAAE,UAAU,EAAEmF,CAAC,EAAE,EAAEnF,EAAE,UAAUmF,CAAC,EAAE,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,MAAMF,GAAG,EAAE,EAAEI,CAAC,EAAErF,EAAEA,EAAE,UAAU,EAAEmF,CAAC,EAAEnF,EAAE,UAAUmF,EAAE,EAAE,MAAM,EAAE,MAAM,IAAK,GAAE,EAAE,QAAQ,EAAE,KAAK,cAAcF,GAAG,EAAE,QAAQI,EAAE,GAAG,EAAE,MAAMJ,GAAG,EAAE,EAAEI,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,cAAcJ,IAAI,KAAK,kBAAkB,EAAEG,CAAC,EAAEJ,EAAE,KAAK,CAAC,EAAE,EAAE,IAAIL,EAAE,UAAUM,EAAE,EAAEG,EAAEpF,EAAEkF,EAAEC,GAAG,KAAK,CAAC,IAAI,IAAID,GAAG,EAAE,QAAQ,IAAI,KAAKC,GAAG,EAAE,OAAO,CAAC,OAAOF,IAAI,KAAK,kBAAkB,EAAEG,CAAC,EAAEJ,EAAE,KAAK,CAAC,GAAGA,CAAC,EAAEL,EAAE,UAAU,eAAe,SAASC,EAAE,CAAC,IAAIC,EAAE,CAAA,EAAG,QAAQC,EAAE,EAAEA,EAAEF,EAAE,OAAOE,IAAI,CAAC,IAAIC,EAAEH,EAAEE,CAAC,EAAE,EAAE,IAAIH,EAAE,UAAU,EAAE,MAAM,CAAE,EAAC,QAAQK,EAAE,EAAEA,EAAED,EAAE,MAAM,OAAOC,IAAI,EAAE,MAAMA,CAAC,EAAE,IAAIL,EAAE,KAAKI,EAAE,MAAMC,CAAC,EAAE,CAAC,EAAED,EAAE,MAAMC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,OAAOD,EAAE,OAAO,EAAE,OAAOA,EAAE,OAAO,EAAE,QAAQA,EAAE,QAAQ,EAAE,QAAQA,EAAE,QAAQF,EAAEC,CAAC,EAAE,CAAC,CAAC,OAAOD,CAAC,EAAEF,EAAE,UAAU,YAAY,SAASC,EAAEC,EAAE,CAAC,GAAGD,EAAE,QAAQ,EAAE,MAAM,CAACC,EAAE,CAAE,CAAA,EAAED,EAAE,KAAK,eAAeA,CAAC,EAAE,IAAIE,EAAE,KAAK,iBAAiBF,CAAC,EAAEC,EAAEC,EAAED,EAAEC,EAAE,KAAK,eAAeF,CAAC,EAAE,IAAIG,EAAE,EAAE,EAAE,CAAA,EAAG,QAAQC,EAAE,EAAEA,EAAEJ,EAAE,OAAOI,IAAI,CAAC,IAAI,EAAEJ,EAAEI,CAAC,EAAE,OAAOD,EAAEE,EAAE,KAAK,WAAWL,EAAEI,CAAC,EAAE,KAAK,EAAEE,EAAEC,EAAE,GAAG,GAAGF,EAAE,OAAO,KAAK,eAAeC,EAAE,KAAK,WAAWL,EAAEI,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,CAAC,EAAEC,GAAG,KAAKC,EAAE,KAAK,WAAWN,EAAEI,EAAE,UAAUA,EAAE,OAAO,KAAK,aAAa,EAAE,EAAEA,EAAE,OAAO,KAAK,aAAa,GAAGE,GAAG,IAAID,GAAGC,KAAKD,EAAE,MAAMA,EAAE,KAAK,WAAWL,EAAEI,EAAE,CAAC,EAAEC,GAAG,GAAG,EAAEF,CAAC,EAAE,GAAGD,GAAGH,EAAEI,CAAC,EAAE,QAAQJ,EAAEI,CAAC,EAAE,YAAY,CAAC,EAAEA,CAAC,EAAE,GAAGD,EAAEG,EAAE,EAAE,IAAIE,EAAE,GAAGD,GAAG,GAAGC,EAAEP,EAAE,UAAUK,EAAEA,EAAED,EAAE,MAAM,EAAEG,EAAEP,EAAE,UAAUK,EAAEC,EAAE,KAAK,aAAa,EAAEF,GAAGG,EAAEP,EAAEA,EAAE,UAAU,EAAEK,CAAC,EAAE,KAAK,WAAWN,EAAEI,CAAC,EAAE,KAAK,EAAEH,EAAE,UAAUK,EAAED,EAAE,MAAM,MAAM,CAAC,IAAIjF,EAAE,KAAK,UAAUiF,EAAEG,EAAE,EAAE,EAAE,GAAGH,EAAE,OAAO,KAAK,eAAe,KAAK,iBAAiBjF,CAAC,EAAEiF,EAAE,OAAO,KAAK,sBAAsB,EAAED,CAAC,EAAE,OAAO,CAAC,KAAK,6BAA6BhF,CAAC,EAAE,IAAIqF,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAET,EAAEI,CAAC,EAAE,MAAM,OAAO,IAAI,CAAC,IAAIO,EAAEX,EAAEI,CAAC,EAAE,MAAM,CAAC,EAAEO,EAAE,CAAC,IAAI,IAAI,EAAE,KAAK,YAAYvF,EAAEqF,CAAC,GAAGE,EAAE,CAAC,IAAI,EAAEV,EAAEA,EAAE,UAAU,EAAEK,EAAE,CAAC,EAAEK,EAAE,CAAC,EAAEV,EAAE,UAAUK,EAAE,CAAC,EAAEK,EAAE,CAAC,IAAI,KAAKV,EAAEA,EAAE,UAAU,EAAEK,EAAE,CAAC,EAAEL,EAAE,UAAUK,EAAE,KAAK,YAAYlF,EAAEqF,EAAEE,EAAE,CAAC,EAAE,MAAM,CAAC,GAAGA,EAAE,CAAC,IAAI,KAAKF,GAAGE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAOV,EAAEA,EAAE,UAAUC,EAAE,OAAOD,EAAE,OAAOC,EAAE,MAAM,EAAE,CAACD,EAAE,CAAC,CAAC,EAAEF,EAAE,UAAU,iBAAiB,SAASC,EAAE,CAAC,IAAIC,EAAE,KAAK,aAAaC,EAAE,GAAG,QAAQE,EAAE,EAAEA,GAAGH,EAAEG,IAAIF,GAAG,OAAO,aAAaE,CAAC,EAAE,QAAQA,EAAE,EAAEA,EAAEJ,EAAE,OAAOI,IAAIJ,EAAEI,CAAC,EAAE,QAAQH,EAAED,EAAEI,CAAC,EAAE,QAAQH,EAAE,IAAIE,EAAEH,EAAE,CAAC,EAAE,EAAEG,EAAE,MAAM,GAAG,EAAE,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,QAAQ,IAAIJ,EAAE,KAAK,EAAEG,CAAC,CAAC,EAAEC,EAAE,QAAQF,EAAEE,EAAE,QAAQF,EAAEE,EAAE,SAASF,EAAEE,EAAE,SAASF,UAAUA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,IAAIG,EAAEH,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAEC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAEC,EAAE,QAAQC,EAAED,EAAE,QAAQC,EAAED,EAAE,SAASC,EAAED,EAAE,SAASC,CAAC,CAAC,GAAGD,EAAEH,EAAEA,EAAE,OAAO,CAAC,EAAE,EAAEG,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,IAAIJ,EAAE,KAAK,EAAEG,CAAC,CAAC,EAAEC,EAAE,SAASF,EAAEE,EAAE,SAASF,UAAUA,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,IAAIG,EAAEH,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,GAAGC,EAAE,UAAU,EAAEE,CAAC,EAAED,EAAE,SAASC,EAAED,EAAE,SAASC,CAAC,CAAC,OAAOF,CAAC,EAAEH,EAAE,UAAU,eAAe,SAASC,EAAE,CAAC,IAAIC,EAAE,KAAK,cAAc,QAAQC,EAAE,EAAEA,EAAEF,EAAE,OAAOE,IAAI,CAAC,GAAGF,EAAEE,CAAC,EAAE,SAASD,EAAE,SAAS,IAAIE,EAAEH,EAAEE,CAAC,EAAEF,EAAE,OAAOE,IAAI,CAAC,EAAE,IAAI,EAAEC,EAAE,OAAOC,EAAED,EAAE,OAAO,EAAE,GAAG,KAAKA,EAAE,MAAM,SAAS,GAAG,CAAC,IAAIE,EAAE,IAAIN,EAAE,UAAUO,EAAE,GAAG,IAAID,EAAE,OAAO,EAAE,EAAE,OAAOA,EAAE,OAAOD,EAAE,EAAE,OAAO,IAAI,KAAKC,EAAE,QAAQA,EAAE,QAAQ,EAAE,OAAOA,EAAE,MAAM,KAAK,IAAIN,EAAE,KAAK,EAAE,CAAC,CAAC,GAAGI,EAAE,MAAM,SAAS,GAAGE,EAAE,QAAQJ,EAAE,KAAK,cAAc,CAAC,IAAIO,EAAEL,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE/E,EAAE+E,EAAE,MAAM,CAAC,EAAE,CAAC,EAAEK,IAAI,GAAGH,EAAE,SAASjF,EAAE,OAAOgF,GAAGhF,EAAE,OAAOiF,EAAE,MAAM,KAAKF,EAAE,MAAM,MAAK,CAAE,EAAEG,EAAE,IAAIE,IAAI,IAAIH,EAAE,MAAM,QAAQ,GAAGA,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,GAAGjF,EAAE,OAAO,EAAE6E,GAAGI,EAAE,SAASjF,EAAE,OAAO,GAAGA,EAAE,OAAOkF,EAAE,GAAGD,EAAE,MAAM,KAAK,IAAIN,EAAE,KAAKS,EAAEpF,CAAC,CAAC,EAAE+E,EAAE,MAAM,MAAO,IAAG/E,EAAEA,EAAE,UAAU,EAAE6E,EAAEI,EAAE,QAAQ,KAAK,YAAY,EAAEA,EAAE,SAASjF,EAAE,OAAO,GAAGA,EAAE,OAAOoF,IAAI,GAAGH,EAAE,SAASjF,EAAE,OAAOgF,GAAGhF,EAAE,QAAQkF,EAAE,GAAGD,EAAE,MAAM,KAAK,IAAIN,EAAE,KAAKS,EAAEpF,CAAC,CAAC,EAAEA,GAAG+E,EAAE,MAAM,CAAC,EAAE,CAAC,EAAEA,EAAE,MAAM,MAAK,EAAGA,EAAE,MAAM,CAAC,EAAE,CAAC,EAAEA,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,UAAU/E,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,WAAWiF,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,KAAK,YAAY,EAAE,IAAIE,EAAE,KAAK,WAAWJ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,YAAY,EAAEI,IAAI,KAAKF,EAAE,SAASE,EAAE,OAAOF,EAAE,SAASE,EAAE,OAAOF,EAAE,MAAM,SAAS,GAAGA,EAAE,MAAMA,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,IAAI,EAAEA,EAAE,MAAMA,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,GAAGE,EAAEF,EAAE,MAAM,KAAK,IAAIN,EAAE,KAAK,EAAEQ,CAAC,CAAC,GAAGD,GAAGN,EAAE,OAAO,EAAEE,EAAE,EAAEG,CAAC,CAAC,CAAC,CAAC,EAAEN,EAAE,UAAU,aAAa,SAASC,EAAE,CAAC,IAAIC,EAAE,GAAG,QAAQC,EAAE,EAAEA,EAAEF,EAAE,OAAOE,IAAID,EAAEC,CAAC,EAAEF,EAAEE,CAAC,EAAE,OAAOD,EAAE,KAAK,EAAE,CAAC,EAAEF,EAAE,UAAU,eAAe,SAASC,EAAE,CAAC,IAAIC,EAAE,CAAA,EAAG,GAAG,CAACD,EAAE,OAAOC,EAAE,IAAIC,EAAEF,EAAE,MAAM;AAAA,CAC12Z,EAAEG,EAAE,EAAE,EAAE,uCAAuC,KAAKA,EAAED,EAAE,QAAQ,CAAC,IAAIE,EAAEF,EAAEC,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAACC,EAAE,MAAM,IAAI,MAAM,yBAAyBF,EAAEC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAIJ,EAAE,UAAU,IAAIE,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,SAASG,EAAE,CAAC,EAAE,EAAE,EAAEA,EAAE,CAAC,IAAI,IAAI,EAAE,SAAS,EAAE,QAAQ,GAAGA,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,EAAE,SAAS,EAAE,QAAQ,SAASA,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,SAASA,EAAE,CAAC,EAAE,EAAE,EAAEA,EAAE,CAAC,IAAI,IAAI,EAAE,SAAS,EAAE,QAAQ,GAAGA,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,EAAE,SAAS,EAAE,QAAQ,SAASA,EAAE,CAAC,EAAE,EAAE,GAAGD,IAAIA,EAAED,EAAE,QAAQ,CAAC,IAAIG,EAAEH,EAAEC,CAAC,EAAE,OAAO,CAAC,EAAEG,EAAE,GAAG,GAAG,CAACA,EAAE,UAAUJ,EAAEC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,qCAAqCG,CAAC,CAAC,CAAC,GAAGD,GAAG,IAAI,EAAE,MAAM,KAAK,IAAIN,EAAE,KAAK,GAAGO,CAAC,CAAC,UAAUD,GAAG,IAAI,EAAE,MAAM,KAAK,IAAIN,EAAE,KAAK,EAAEO,CAAC,CAAC,UAAUD,GAAG,IAAI,EAAE,MAAM,KAAK,IAAIN,EAAE,KAAK,EAAEO,CAAC,CAAC,MAAM,CAAC,GAAGD,GAAG,IAAI,MAAM,GAAGA,IAAI,GAAG,MAAM,IAAI,MAAM,uBAAuBA,EAAE,SAASC,CAAC,CAAC,CAACH,GAAG,CAAC,CAAC,OAAOF,CAAC,EAAEF,EAAE,UAAU,UAAU,CAAC,KAAK,MAAM,CAAE,EAAC,KAAK,OAAO,KAAK,KAAK,OAAO,KAAK,KAAK,QAAQ,EAAE,KAAK,QAAQ,CAAC,EAAEA,EAAE,UAAU,UAAU,SAAS,UAAU,CAAC,IAAIC,EAAEC,EAAE,KAAK,UAAU,EAAED,EAAE,KAAK,OAAO,KAAK,KAAK,SAAS,EAAEA,EAAE,KAAK,OAAO,EAAEA,EAAE,KAAK,OAAO,EAAE,IAAI,KAAK,QAAQ,KAAK,UAAU,EAAEC,EAAE,KAAK,OAAO,KAAK,KAAK,SAAS,EAAEA,EAAE,KAAK,OAAO,EAAEA,EAAE,KAAK,OAAO,EAAE,IAAI,KAAK,QAAQ,IAAIC,EAAE,CAAC,OAAOF,EAAE,KAAKC,EAAE;AAAA,CACnpC,EAAEE,EAAEJ,EAAE,UAAU,4BAA4B,KAAK,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,MAAM,OAAO,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,EAAE,CAAC,EAAG,CAAA,IAAK,GAAEI,EAAE,IAAI,MAAM,OAAOA,EAAE,IAAI,MAAM,IAAK,GAAEA,EAAE,IAAI,KAAK,CAACD,EAAE,EAAE,CAAC,EAAEC,EAAE,UAAU,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE;AAAA,CACpN,CAAC,OAAOD,EAAE,KAAK,EAAE,EAAE,QAAQ,OAAO,GAAG,CAAC,EAAE,SAASqB,EAAEvB,EAAE,CAAC,OAAOA,GAAG,OAAOA,GAAG,UAAU,CAAC,MAAM,QAAQA,CAAC,GAAGA,IAAI,IAAI,CAAC,SAAS,EAAEA,EAAEC,EAAE,CAAC,OAAOsB,EAAEvB,CAAC,GAAGuB,EAAEtB,CAAC,GAAG,OAAO,KAAKA,CAAC,EAAE,QAAQC,GAAG,CAACA,IAAI,aAAaA,IAAI,gBAAgBqB,EAAEtB,EAAEC,CAAC,CAAC,IAAI,CAACF,EAAEE,CAAC,GAAG,CAACqB,EAAEvB,EAAEE,CAAC,CAAC,KAAKF,EAAEE,CAAC,EAAED,EAAEC,CAAC,GAAG,EAAEF,EAAEE,CAAC,EAAED,EAAEC,CAAC,CAAC,GAAG,OAAO,OAAOF,EAAE,CAAC,CAACE,CAAC,EAAED,EAAEC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAEF,CAAC,CAAC,SAASwB,EAAExB,EAAEC,EAAEC,EAAE,GAAG,CAAC,IAAIC,EAAE,KAAK,EAAE,GAAG,MAAM,IAAIC,IAAI,CAAC,MAAM,EAAEF,GAAG,EAAEG,EAAE,IAAI,CAACL,EAAE,MAAM,KAAKI,CAAC,EAAED,EAAE,IAAI,EAAE,IAAI,EAAE,GAAGE,EAAC,GAAIF,IAAIA,EAAE,WAAWE,EAAEJ,CAAC,EAAE,CAAC,CAAC,SAASwB,GAAGzB,EAAEC,EAAE,CAAC,IAAIC,EAAE,MAAM,IAAIC,IAAI,CAAC,MAAM,EAAE,KAAK,aAAaD,CAAC,EAAEA,EAAE,WAAW,IAAIF,EAAE,MAAM,EAAEG,CAAC,EAAEF,CAAC,CAAC,CAAC,CAAC,SAASyB,EAAE1B,EAAE,GAAG,CAAC,OAAOA,EAAE,QAAQ,QAAQ;AAAA,CAC/jB,CAAC,CAAC,SAAS2B,EAAE3B,EAAEC,EAAEC,EAAEC,EAAE,CAAC,MAAM,EAAED,EAAEF,EAAEI,EAAEJ,EAAE,EAAE,EAAE,MAAM,KAAKA,CAAC,IAAIC,CAAC,MAAMG,CAAC,IAAIH,CAAC,IAAIG,CAAC,IAAID,CAAC,IAAID,CAAC,IAAIC,CAAC,EAAE,CAAC,MAAMyB,EAAE,CAAC,WAAW,EAAE,YAAY,GAAG,YAAY,EAAE,aAAa,QAAQ,YAAY,OAAO,IAAI,MAAM,IAAI,MAAM,OAAO,6BAA6B,0BAA0B,WAAW,uBAAuB,OAAO,EAAE,SAASC,EAAE7B,EAAEC,EAAE,CAAC,GAAG,CAAC,KAAKC,CAAC,EAAEF,EAAE,QAAQ,OAAOC,IAAI2B,EAAE,aAAa5B,EAAE,QAAQ,KAAK,OAAO,OAAOE,EAAEF,EAAE,QAAQ,KAAK,MAAMC,IAAI2B,EAAE,cAAc5B,EAAE,QAAQ,MAAM,OAAO,OAAOE,EAAEF,EAAE,QAAQ,MAAM,MAAME,CAAC,CAAC,SAAS4B,EAAE9B,EAAEC,EAAE,CAAC,GAAG,CAAC,MAAMC,CAAC,EAAEF,EAAE,QAAQ,OAAOC,IAAI2B,EAAE,aAAa5B,EAAE,QAAQ,KAAK,QAAQ,OAAOE,EAAEF,EAAE,QAAQ,KAAK,OAAOC,IAAI2B,EAAE,cAAc5B,EAAE,QAAQ,MAAM,QAAQ,OAAOE,EAAEF,EAAE,QAAQ,MAAM,OAAOE,CAAC,CAAC,SAAS6B,GAAE/B,EAAEC,EAAE,CAAC,OAAOD,EAAE,IAAI,WAAY,EAAC,IAAI,QAAQC,CAAC,CAAC,CAAC,SAAS+B,GAAGhC,EAAE,CAAC,OAAO,SAAS,eAAeA,EAAE,QAAQ,KAAK,EAAE,EAAE,YAAY,CAAC,SAASiC,EAAEjC,EAAE,CAAC,MAAMC,EAAE,SAAS,cAAc,KAAK,EAAEC,EAAE,CAAC,MAAMF,EAAE,UAAU,MAAM,OAAOA,EAAE,SAAS,KAAK,MAAMA,EAAE,QAAQ,kBAAkBA,EAAE,SAAS,EAAE,UAAUG,KAAKD,EAAED,EAAE,aAAaE,EAAED,EAAEC,CAAC,CAAC,EAAE,OAAOF,EAAE,UAAUD,EAAE,aAAaC,CAAC,CAAC,SAASiC,EAAElC,EAAEC,EAAE,CAAC,MAAMC,EAAE,KAAK,OAAQ,EAAC,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,EAAEC,EAAE,MAAMF,CAAC,IAAIC,CAAC,GAAG,EAAEF,EAAE,cAAc,IAAIC,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAIE,EAAE,EAAE,GAAG,MAAMC,EAAE,SAAS,cAAc,KAAK,EAAE,OAAOJ,EAAE,YAAYI,CAAC,EAAEA,EAAE,UAAUH,EAAEG,EAAE,GAAGD,EAAEC,EAAE,EAAE,CAAC,SAAS+B,EAAEnC,EAAEC,EAAEC,EAAEC,EAAE,CAAC,MAAM,EAAEH,IAAI,WAAW,SAAS,SAAS,cAAcA,CAAC,EAAE,EAAE,iBAAiBC,EAAEG,GAAG,CAAC,MAAM,EAAE,EAAE,iBAAiBF,CAAC,EAAE,CAAC,OAAOG,CAAC,EAAED,EAAE,QAAQE,EAAE,EAAEC,EAAE,EAAE,OAAOD,EAAEC,EAAED,GAAG,EAAE,CAAC,IAAIE,EAAEH,EAAE,MAAMjF,EAAE,EAAEkF,CAAC,EAAE,KAAKE,GAAGA,IAAI,GAAGA,IAAIpF,GAAG+E,EAAE,KAAK/E,EAAEgF,CAAC,EAAEI,EAAEA,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS4B,GAAGpC,EAAE,CAAC,GAAGA,EAAE,MAAM,OAAOA,EAAE,MAAM,MAAMC,EAAED,EAAE,UAAUA,EAAE,QAAQ,OAAOC,EAAEA,EAAE,WAAW,EAAE,EAAE,CAAC,SAASoC,EAAErC,EAAE,GAAG,CAAC,GAAG,EAAE,gBAAgBqC,GAAG,OAAO,IAAIA,EAAErC,CAAC,EAAE,MAAMC,EAAE,KAAKC,EAAE,IAAI,OAAO,OAAO,IAAI,OAAOD,EAAE,QAAQ,EAAE,CAAC,IAAIC,EAAG,EAAC,KAAK,KAAK,MAAM,KAAK,QAAQ,KAAK,gBAAgB0B,EAAE,uBAAuB,cAAc,GAAG,UAAU,GAAG,eAAe,GAAG,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,KAAK,KAAK,KAAK,MAAM,KAAK,SAAS,GAAG,gBAAgB,EAAE,EAAE,MAAM,CAAC,GAAG,KAAK,QAAQ,KAAK,KAAK,KAAK,MAAM,KAAK,SAAS,GAAG,gBAAgB,EAAE,EAAE,QAAQ,CAAC,SAAS,kBAAkB,KAAK,oBAAoB,UAAU,qBAAqB,qBAAqB,4BAA4B,4BAA4B,UAAU,yBAAyB,gCAAgC,gCAAgC,UAAU,mBAAmB,uBAAuB,kBAAkB,qBAAqB,EAAE,iBAAiB,CAAC,EAAE5B,CAAC,EAAE,KAAK,CAAC,IAAIG,CAAC,EAAEF,EAAE,QAAQ,GAAG,CAACE,EAAE,CAAC,MAAM,EAAE,8EAA8E,OAAO,QAAQ,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAEiC,GAAGjC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,mMAAmM,OAAO,QAAQ,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,GAAGF,EAAE,QAAQ,UAAU,KAAK,CAAC,MAAM,EAAE,6EAA6E,OAAO,QAAQ,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,GAAGA,EAAE,QAAQ,mBAAmB,YAAYA,EAAE,GAAGA,EAAE,QAAQ,QAAQA,EAAE,GAAG,SAAS,KAAK,cAAcA,EAAE,QAAQ,OAAO,EAAE,CAACA,EAAE,GAAG,CAAC,MAAM,EAAE,oCAAoCA,EAAE,QAAQ,OAAO,GAAG,OAAO,QAAQ,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,CAACA,EAAE,QAAQ,KAAK,GAAGiC,EAAEjC,EAAE,GAAG,eAAe,EAAEA,EAAE,QAAQ,QAAQ,SAASiC,EAAEjC,EAAE,GAAG,iBAAiB,EAAEA,EAAE,QAAQ,MAAM,GAAGiC,EAAEjC,EAAE,GAAG,gBAAgB,EAAEA,EAAE,GAAG,UAAU,8BAA8BA,EAAE,GAAG,SAAS,SAASA,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAIE,EAAE,KAAKF,EAAE,QAAQ,KAAK,EAAE,EAAE,QAAQ,CAAA,EAAG,YAAY,CAAE,CAAA,EAAE,MAAM,CAAC,IAAIE,EAAE,KAAKF,EAAE,QAAQ,MAAM,EAAE,EAAE,QAAQ,CAAA,EAAG,YAAY,CAAE,CAAA,EAAE,aAAa,IAAI,EAAEA,EAAE,QAAQ,KAAK,IAAI,aAAa,QAAQ4B,EAAE5B,EAAE2B,EAAE,WAAW,CAAC,EAAE3B,EAAE,QAAQ,MAAM,IAAI,WAAU,EAAG,QAAQ4B,EAAE5B,EAAE2B,EAAE,YAAY,CAAC,EAAE3B,EAAE,QAAQ,KAAK,IAAI,YAAY,CAACA,EAAE,QAAQ,KAAK,QAAQ,EAAEA,EAAE,QAAQ,MAAM,IAAI,YAAY,CAACA,EAAE,QAAQ,MAAM,QAAQ,EAAEA,EAAE,QAAQ,KAAK,IAAI,SAAS6B,EAAE7B,EAAE2B,EAAE,WAAW,CAAC,EAAE3B,EAAE,QAAQ,MAAM,IAAI,SAAS6B,EAAE7B,EAAE2B,EAAE,YAAY,CAAC,EAAE3B,EAAE,QAAQ,KAAK,IAAI,SAASyB,EAAEzB,EAAE,QAAQ,KAAK,OAAO,EAAE,EAAE,EAAEA,EAAE,QAAQ,MAAM,IAAI,SAASyB,EAAEzB,EAAE,QAAQ,MAAM,OAAO,EAAE,EAAE,EAAEA,EAAE,QAAQ,aAAa+B,GAAG/B,CAAC,EAAE,WAAW,IAAI,CAACA,EAAE,WAAWA,EAAE,QAAQ,KAAK,IAAI,SAAS,WAAWqC,GAAGrC,CAAC,EAAEsC,GAAGtC,CAAC,EAAEuC,GAAEvC,CAAC,EAAEA,EAAE,KAAM,CAAA,EAAE,CAAC,CAAC,CAACoC,EAAE,UAAU,CAAC,WAAWrC,EAAE,CAAC,EAAE,KAAK,QAAQA,CAAC,EAAE,KAAK,KAAI,CAAE,EAAE,aAAa,CAAC,OAAO,KAAK,MAAM,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,KAAK,IAAI,MAAM,KAAK,QAAQ,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,MAAMA,EAAE,IAAID,EAAEE,EAAE,KAAK,QAAQ,KAAK,IAAI,WAAY,EAAC,SAAQ,EAAGC,EAAE,KAAK,QAAQ,MAAM,IAAI,WAAY,EAAC,SAAQ,EAAGC,EAAEH,EAAE,UAAUE,EAAED,CAAC,EAAED,EAAE,qBAAqBG,CAAC,EAAE,KAAK,QAAQ,KAAK,YAAYsC,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,QAAQ,MAAM,YAAYA,EAAE,KAAK,QAAQ,KAAK,EAAE,MAAM,EAAE,CAAE,EAACrC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAED,EAAE,QAAQ,GAAG,CAAC,MAAME,EAAE,EAAE,CAAC,EAAE,IAAIC,EAAE,EAAE,CAAC,EAAEA,EAAE,SAAS,IAAID,IAAIuB,EAAE,YAAYxB,EAAE,MAAME,EAAE,OAAOF,EAAE,OAAOE,EAAE,QAAQD,IAAIuB,EAAE,aAAa,EAAE,KAAKc,EAAE,KAAKd,EAAE,YAAYxB,EAAE,KAAKA,EAAE,MAAME,CAAC,CAAC,EAAEF,EAAE,OAAOE,EAAE,QAAQD,IAAIuB,EAAE,cAAc,EAAE,KAAKc,EAAE,KAAKd,EAAE,YAAYxB,EAAE,KAAKA,EAAE,MAAME,CAAC,CAAC,EAAEF,EAAE,MAAME,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,MAAMqC,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,MAAM,OAAO,KAAK,QAAQ,YAAYC,GAAE,IAAI,EAAEC,GAAE,IAAI,EAAE,EAAE,SAAS,CAAC,MAAM7C,EAAE,KAAK,QAAQ,KAAK,IAAI,SAAU,EAAC,KAAK,QAAQ,KAAK,IAAI,QAAO,EAAG,IAAIC,EAAE,KAAK,QAAQ,KAAK,IAAI,UAAUC,EAAED,EAAE,UAAU,EAAE,EAAEC,EAAE,YAAYF,EAAEC,EAAE,WAAW,aAAaC,EAAED,CAAC,EAAE,MAAME,EAAE,KAAK,QAAQ,MAAM,IAAI,SAAU,EAAC,KAAK,QAAQ,MAAM,IAAI,UAAUF,EAAE,KAAK,QAAQ,MAAM,IAAI,UAAUC,EAAED,EAAE,UAAU,EAAE,EAAEC,EAAE,YAAYC,EAAEF,EAAE,WAAW,aAAaC,EAAED,CAAC,EAAE,SAAS,eAAe,KAAK,QAAQ,QAAQ,QAAQ,EAAE,UAAU,GAAG6C,GAAC,CAAE,CAAC,EAAE,IAAIA,GAAE,IAAI,CAAE,EAAC,SAASR,GAAGtC,EAAE,CAACA,EAAE,QAAQ,KAAK,IAAI,WAAY,EAAC,GAAG,kBAAkBwB,EAAE,IAAI,CAACuB,EAAE/C,CAAC,CAAC,EAAE,EAAE,CAAC,EAAEA,EAAE,QAAQ,MAAM,IAAI,WAAY,EAAC,GAAG,kBAAkBwB,EAAE,IAAI,CAACuB,EAAE/C,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAMC,EAAED,EAAE,KAAK,KAAKA,CAAC,EAAEA,EAAE,QAAQ,KAAK,IAAI,GAAG,SAASC,CAAC,EAAED,EAAE,QAAQ,MAAM,IAAI,GAAG,SAASC,CAAC,EAAED,EAAE,QAAQ,KAAK,iBAAiBmC,EAAE,IAAInC,EAAE,QAAQ,QAAQ,QAAQ,GAAG,QAAQ,IAAIA,EAAE,QAAQ,QAAQ,oBAAoB,GAAGG,GAAG,CAAC6C,EAAEhD,EAAEG,EAAEyB,EAAE,GAAG,CAAC,CAAC,EAAE5B,EAAE,QAAQ,MAAM,iBAAiBmC,EAAE,IAAInC,EAAE,QAAQ,QAAQ,QAAQ,GAAG,QAAQ,IAAIA,EAAE,QAAQ,QAAQ,wBAAwB,GAAGG,GAAG,CAAC6C,EAAEhD,EAAEG,EAAEyB,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM1B,EAAEuB,GAAG,IAAI,CAACzB,EAAE,QAAQ,gBAAgB,SAAS,eAAeA,EAAE,QAAQ,KAAK,EAAE,EAAE,aAAaA,EAAE,KAAM,CAAA,EAAE,GAAG,EAAE,OAAO,iBAAiB,SAASE,CAAC,EAAE4C,GAAE,IAAI,CAAC,OAAO,oBAAoB,SAAS5C,CAAC,CAAC,CAAC,CAAC,SAAS8C,EAAEhD,EAAEC,EAAEC,EAAE,CAAC,MAAMC,EAAE,SAASF,EAAE,OAAO,aAAa,iBAAiB,EAAE,EAAE,EAAE,EAAED,EAAE,MAAMG,CAAC,EAAE,IAAIC,EAAE,EAAEC,EAAEC,EAAEC,EAAEC,EAAEN,IAAI0B,EAAE,KAAKxB,EAAEJ,EAAE,QAAQ,KAAK,EAAEA,EAAE,QAAQ,MAAMK,EAAE,EAAE,cAAcC,EAAE,EAAE,YAAYC,EAAE,EAAE,eAAeC,EAAE,EAAE,eAAeJ,EAAEJ,EAAE,QAAQ,MAAM,EAAEA,EAAE,QAAQ,KAAKK,EAAE,EAAE,eAAeC,EAAE,EAAE,aAAaC,EAAE,EAAE,cAAcC,EAAE,EAAE,aAAa,IAAIpF,EAAE,GAAG,QAAQ,EAAEiF,EAAE,EAAEC,EAAE,GAAG,EAAElF,GAAG2G,GAAE3B,EAAE,CAAC,EAAE,IAAIC,GAAGjF,IAAI,IAAImF,GAAG,IAAInF,GAAG;AAAA,GAC/7M,EAAEgF,EAAE,IAAI,WAAU,EAAG,UAAS,EAAG,IAAIhF,GAAG;AAAA,GACxC,MAAMqF,EAAE,EAAE,IAAI,WAAY,EAAC,aAAY,EAAG,EAAE,IAAI,WAAY,EAAC,QAAQ,IAAI,EAAEF,EAAE,EAAEC,EAAE,CAAC,EAAEpF,CAAC,EAAE,EAAE,IAAI,WAAU,EAAG,aAAa,SAASqF,EAAE,EAAE,CAAC,EAAET,EAAE,KAAM,CAAA,CAAC,SAASyC,EAAEzC,EAAE,CAAC,MAAMC,EAAED,EAAE,IAAI,WAAU,EAAG,IAAI,YAAa,EAACE,EAAE,CAAE,EAAC,OAAOD,EAAE,QAAQE,GAAG,CAACD,EAAE,KAAKC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAED,CAAC,CAAC,SAAS+C,EAAEjD,EAAEC,EAAEC,EAAEC,EAAE,EAAE,CAAC,MAAMC,EAAEJ,EAAE,QAAQC,CAAC,EAAEE,EAAED,IAAIC,EAAED,GAAG,MAAM,EAAE,GAAG,CAAC,IAAIC,EAAED,EAAE,QAAQ,YAAY,GAAGC,EAAED,IAAIC,GAAG,GAAGC,EAAE,QAAQ,KAAKA,EAAE,IAAI,QAAQ,UAAU,IAAI,EAAEF,EAAE,EAAEC,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS4C,EAAE/C,EAAE,CAAC4C,GAAE5C,CAAC,EAAE6C,GAAE7C,CAAC,EAAEkD,GAAGlD,CAAC,CAAC,CAAC,SAAS4C,GAAE5C,EAAE,CAACA,EAAE,QAAQ,KAAK,QAAQ,QAAQC,GAAG,CAACD,EAAE,QAAQ,KAAK,IAAI,WAAY,EAAC,aAAaC,CAAC,CAAC,EAAED,CAAC,EAAEA,EAAE,QAAQ,MAAM,QAAQ,QAAQC,GAAG,CAACD,EAAE,QAAQ,MAAM,IAAI,WAAY,EAAC,aAAaC,CAAC,CAAC,EAAED,CAAC,CAAC,CAAC,SAASmD,GAAGnD,EAAEC,EAAEC,EAAEC,EAAE,EAAE,CAAC,MAAMC,EAAEJ,EAAE,QAAQ,KAAK,IAAI,WAAY,EAAC,aAAY,EAAG,EAAEA,EAAE,QAAQ,MAAM,IAAI,WAAU,EAAG,aAAc,EAACA,EAAE,iBAAiB,EAAE,MAAMK,EAAE,GAAGC,EAAEL,EAAED,EAAE,WAAWI,EAAE,GAAGG,EAAEP,EAAE,YAAY,EAAEQ,EAAEL,EAAEH,EAAE,WAAW,EAAE,GAAG5E,EAAE,GAAGqF,EAAEP,EAAEF,EAAE,WAAWI,EAAEJ,EAAE,iBAAiB,GAAG,EAAEA,EAAE,YAAY,EAAE,EAAE,EAAEA,EAAE,WAAW,EAAEA,EAAE,iBAAiB,GAAGW,EAAEgB,EAAEtB,EAAEC,EAAEC,EAAEC,CAAC,EAAEE,EAAEiB,EAAE,EAAE,EAAEvG,EAAEqF,CAAC,EAAEG,EAAE,IAAIL,CAAC,IAAIC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAGK,EAAE,IAAIzF,CAAC,IAAIqF,CAAC,IAAIJ,CAAC,IAAIC,CAAC,GAAGQ,EAAE,GAAGH,CAAC,IAAIC,CAAC,IAAIF,CAAC,IAAIG,CAAC,GAAGE,EAAE,SAAS,gBAAgBa,EAAE,OAAO,MAAM,EAAEb,EAAE,aAAa,IAAID,CAAC,EAAEC,EAAE,aAAa,QAAQf,EAAE,QAAQ,QAAQ,SAAS,EAAEA,EAAE,UAAU,YAAYe,CAAC,CAAC,CAAC,SAASqC,GAAGpD,EAAEC,EAAEC,EAAE,CAAC,GAAGD,EAAE,YAAYA,EAAE,eAAeD,EAAE,QAAQ,KAAK,gBAAgB,CAAC,MAAMG,EAAE8B,EAAE,CAAC,UAAUjC,EAAE,QAAQ,QAAQ,qBAAqB,UAAUC,EAAE,cAAcD,EAAE,WAAW,QAAQ,gBAAgB,UAAUE,EAAE,aAAaF,EAAE,QAAQ,QAAQ,2BAA2B,CAAC,EAAEA,EAAE,mBAAmB,YAAYG,CAAC,CAAC,CAAC,GAAGF,EAAE,aAAaA,EAAE,gBAAgBD,EAAE,QAAQ,MAAM,gBAAgB,CAAC,MAAMG,EAAE8B,EAAE,CAAC,UAAUjC,EAAE,QAAQ,QAAQ,yBAAyB,UAAUC,EAAE,eAAeD,EAAE,WAAW,QAAQ,eAAe,UAAUE,EAAE,aAAaF,EAAE,QAAQ,QAAQ,+BAA+B,CAAC,EAAEA,EAAE,kBAAkB,YAAYG,CAAC,CAAC,CAAC,CAAC,SAAS+C,GAAGlD,EAAE,CAAC,MAAMC,EAAED,EAAE,QAAQ,KAAK,IAAI,WAAY,EAAC,aAAY,EAAGE,EAAEF,EAAE,QAAQ,MAAM,IAAI,WAAY,EAAC,aAAY,EAAGA,EAAE,mBAAmB,MAAM,QAAQ,QAAQ,CAACC,CAAC,KAAKD,EAAE,kBAAkB,MAAM,QAAQ,QAAQ,CAACE,CAAC,IAAI,CAAC,SAASwC,EAAE1C,EAAEC,EAAEC,EAAEC,EAAE,EAAE,CAAC,IAAIC,EAAE,CAAA,EAAG,GAAGH,IAAI2B,EAAE,YAAY,CAAC,IAAI,EAAEyB,EAAErD,EAAE,QAAQ,KAAKE,EAAE,CAAC,EAAEG,EAAEiD,EAAEtD,EAAE,QAAQ,MAAMG,CAAC,EAAEG,EAAEiD,EAAEvD,EAAE,QAAQ,MAAMK,CAAC,EAAE,MAAME,EAAEgD,EAAEvD,EAAE,QAAQ,KAAK,EAAE,SAAS,EAAE,IAAIQ,EAAEH,EAAEjF,EAAE,EAAE,YAAY,EAAE,QAAQqF,EAAE,GAAG,EAAE,UAAU,GAAGrF,GAAG,EAAE,OAAOmF,IAAID,EAAE,GAAG,EAAE,UAAUC,GAAGE,IAAIL,EAAE,CAAC,cAAc,EAAE,UAAU,YAAY,EAAE,QAAQ,EAAE,eAAeI,EAAE,aAAaA,EAAEC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE4C,EAAErD,EAAE,QAAQ,MAAMG,EAAE,CAAC,EAAEE,EAAEiD,EAAEtD,EAAE,QAAQ,KAAKE,CAAC,EAAEI,EAAEiD,EAAEvD,EAAE,QAAQ,KAAKK,CAAC,EAAE,MAAME,EAAEgD,EAAEvD,EAAE,QAAQ,MAAM,EAAE,SAAS,EAAE,IAAIQ,EAAEH,EAAEjF,EAAE,EAAE,YAAY,EAAE,QAAQqF,EAAE,GAAG,EAAE,UAAU,GAAGrF,GAAG,EAAE,OAAOmF,IAAID,EAAE,GAAG,EAAE,UAAUC,GAAGE,IAAIL,EAAE,CAAC,cAAcI,EAAE,YAAYA,EAAEC,EAAE,eAAe,EAAE,UAAU,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAOL,CAAC,CAAC,SAASiD,EAAErD,EAAEC,EAAEC,EAAE,CAAC,MAAMC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAEF,EAAEC,EAAE,OAAO,IAAIE,EAAE,EAAE,EAAE,GAAGC,EAAE,GAAGL,EAAE,YAAY,QAAQ,CAACO,EAAEC,IAAI,CAACJ,GAAGG,EAAE,CAAC,GAAGN,EAAEG,IAAID,EAAE,UAAUK,EAAEL,EAAE,UAAUF,EAAEG,EAAEG,EAAE,EAAE,IAAI,CAACF,GAAG,GAAGD,IAAID,EAAE,QAAQK,EAAEL,EAAE,QAAQ,EAAEC,EAAEG,EAAEF,EAAE,GAAG,CAAC,EAAEF,EAAE,UAAU,GAAGoD,EAAEvD,EAAEG,EAAE,SAAS,IAAIA,EAAE,YAAYA,EAAE,YAAYA,EAAE,UAAU,GAAGA,EAAE,UAAU,GAAGA,EAAE,UAAU,MAAMG,EAAE,MAAM,KAAKJ,CAAC,EAAE,OAAOC,EAAE,UAAU,GAAGG,GAAGH,EAAE,UAAUA,CAAC,CAAC,SAASoD,EAAEvD,EAAEC,EAAE,CAAC,OAAO8B,GAAE/B,EAAEC,CAAC,EAAE,MAAM,CAAC,SAASqD,EAAEtD,EAAEC,EAAE,CAAC,MAAMC,EAAEF,EAAE,IAAI,WAAY,EAAC,IAAI,YAAW,EAAG,IAAIG,EAAE,EAAE,EAAE,EAAE,QAAQC,EAAE,EAAEA,EAAEF,EAAE,OAAOE,GAAG,EAAE,GAAG,GAAGF,EAAEE,CAAC,EAAE,OAAO,EAAEH,EAAE,EAAE,CAACE,EAAEC,EAAE,KAAK,CAAC,OAAO,EAAEJ,EAAE,IAAI,WAAU,EAAG,SAAU,EAAC,SAASG,GAAG,GAAGA,CAAC,CAAC,SAASqC,GAAExC,EAAE,CAACA,EAAE,aAAa,SAAS,eAAeA,EAAE,QAAQ,QAAQ,QAAQ,EAAE,aAAaA,EAAE,YAAY,SAAS,eAAeA,EAAE,QAAQ,QAAQ,QAAQ,EAAE,YAAY,MAAMC,EAAEuD,GAAExD,EAAE4B,EAAE,WAAW,EAAE1B,EAAEsD,GAAExD,EAAE4B,EAAE,YAAY,EAAEzB,EAAE,KAAK,IAAIF,EAAEC,EAAEF,EAAE,YAAY,EAAEA,EAAE,UAAU,SAAS,gBAAgB4B,EAAE,OAAO,KAAK,EAAE5B,EAAE,UAAU,aAAa,QAAQA,EAAE,WAAW,EAAEA,EAAE,UAAU,aAAa,SAASG,CAAC,EAAE,SAAS,eAAeH,EAAE,QAAQ,QAAQ,QAAQ,EAAE,YAAYA,EAAE,SAAS,CAAC,CAAC,SAASwD,GAAExD,EAAEC,EAAE,CAAC,OAAOA,IAAI2B,EAAE,YAAY5B,EAAE,QAAQ,KAAKA,EAAE,QAAQ,OAAO,IAAI,WAAU,EAAG,UAAW,EAACA,EAAE,UAAU,CAAC,SAASuC,GAAGvC,EAAE,CAACA,EAAE,mBAAmB,SAAS,cAAc,KAAK,EAAEA,EAAE,mBAAmB,aAAa,QAAQA,EAAE,QAAQ,QAAQ,kBAAkB,EAAEA,EAAE,kBAAkB,SAAS,cAAc,KAAK,EAAEA,EAAE,kBAAkB,aAAa,QAAQA,EAAE,QAAQ,QAAQ,iBAAiB,EAAE,SAAS,eAAeA,EAAE,QAAQ,QAAQ,QAAQ,EAAE,YAAYA,EAAE,kBAAkB,EAAE,SAAS,eAAeA,EAAE,QAAQ,QAAQ,QAAQ,EAAE,YAAYA,EAAE,iBAAiB,CAAC,CAAC,SAASyD,GAAGzD,EAAE,CAAC,SAAS,eAAeA,EAAE,QAAQ,QAAQ,QAAQ,EAAE,YAAYA,EAAE,SAAS,EAAEwC,GAAExC,CAAC,CAAC,CAAC,SAAS0D,GAAG1D,EAAE,CAACA,EAAE,kBAAkB,UAAU,GAAGA,EAAE,mBAAmB,UAAU,EAAE,CAAC,SAAS2C,GAAG3C,EAAEC,EAAE,CAAC,MAAMC,EAAE,CAAA,EAAG,SAASC,EAAEC,EAAE,CAAC,OAAOJ,EAAE,QAAQ,kBAAkB4B,EAAE,0BAA0BxB,EAAE,EAAEA,GAAG,CAAC,CAACH,EAAE,QAAQ,CAACG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,CAACF,EAAE,KAAKE,CAAC,EAAE,MAAM,CAAC,IAAIC,EAAE,GAAG,QAAQC,EAAE,EAAEA,EAAEJ,EAAE,OAAOI,GAAG,EAAE,GAAGH,EAAE,KAAK,IAAIC,EAAE,cAAcF,EAAEI,CAAC,EAAE,WAAW,CAAC,GAAGH,EAAE,KAAK,IAAIC,EAAE,eAAeF,EAAEI,CAAC,EAAE,YAAY,CAAC,EAAE,CAACJ,EAAEI,CAAC,EAAE,cAAc,KAAK,IAAIF,EAAE,cAAcF,EAAEI,CAAC,EAAE,aAAa,EAAEJ,EAAEI,CAAC,EAAE,eAAe,KAAK,IAAIF,EAAE,eAAeF,EAAEI,CAAC,EAAE,cAAc,EAAEJ,EAAEI,CAAC,EAAE,YAAY,KAAK,IAAIF,EAAE,YAAYF,EAAEI,CAAC,EAAE,WAAW,EAAEJ,EAAEI,CAAC,EAAE,aAAa,KAAK,IAAIF,EAAE,aAAaF,EAAEI,CAAC,EAAE,YAAY,EAAED,EAAE,GAAG,KAAK,CAACA,GAAGH,EAAE,KAAKE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAE,EAAC,OAAOF,EAAE,QAAQE,GAAG,CAACA,EAAE,gBAAgBA,EAAE,aAAaA,EAAE,iBAAiBA,EAAE,cAAc,EAAE,KAAKA,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAASyC,GAAE7C,EAAE,CAACyD,GAAGzD,CAAC,EAAE0D,GAAG1D,CAAC,EAAEA,EAAE,MAAM,QAAQ,CAACC,EAAEC,IAAI,CAACF,EAAE,QAAQ,YAAYiD,EAAEjD,EAAE4B,EAAE,YAAY3B,EAAE,cAAcA,EAAE,YAAYD,EAAE,QAAQ,QAAQ,IAAI,EAAEiD,EAAEjD,EAAE4B,EAAE,aAAa3B,EAAE,eAAeA,EAAE,aAAaD,EAAE,QAAQ,QAAQ,IAAI,EAAEA,EAAE,QAAQ,gBAAgBmD,GAAGnD,EAAEC,EAAE,cAAcA,EAAE,YAAYA,EAAE,eAAeA,EAAE,YAAY,EAAEmD,GAAGpD,EAAEC,EAAEC,CAAC,EAAE,EAAEF,CAAC,CAAC,CCwIl8K,MAAK/E,GAAU,CACb,MAAO,CACL,WAAY,CACV,KAAM,OACN,SAAU,EACX,EACD,UAAW,CACT,KAAM,OACN,SAAU,EACX,EACD,UAAW,CACT,KAAM,OACN,SAAU,EACX,EACD,kBAAmB,CACjB,KAAM,OACN,SAAU,EACX,EACD,WAAY,OACb,EACD,MAAO,CACL,MAAO,CACL,IAAK,EACL,eAAgB,CAAE,EAClB,eAAgB,GAChB,uBAAwB,KACxB,OAAQ,KACR,OAAQ,KACR,YAAa,GACb,MAAO,EACP,MAAO,CACT,CACD,EACD,SAAU,CACR,KAAM,CACJ,KAAM,CACJ,OAAO,KAAK,UACb,EACD,IAAIC,EAAO,CACT,KAAK,MAAM,oBAAqBA,CAAK,CACtC,CACF,CACF,EACD,MAAO,CACL,MAAO,CACL,UAAW,GACX,QAAS,UAAY,CACnB,KAAK,eAAiB,KAAK,MAAM,KAAK,UAAU,KAAK,SAAS,CAAC,EAC/D,KAAK,eAAiB,KAAK,UAAU,MAAK,EACtC,KAAK,oBAAsB,OAC7B,KAAK,uBAAyB,KAAK,kBAAkB,MAAK,EAE7D,CACF,CACF,EACD,SAAU,CACR,MAAMyI,EAAa,KAAK,gBAAe,EACnC,KAAK,oBAAsB,MAC7B,KAAK,OAAS/F,EAAAA,WAAAA,KAAS,KAAK,MAAM,MAAM,EACxC,KAAK,OAAO,SAAS,oBAAoB,EACzC,KAAK,OAAO,QAAQ,QAAQ,IAAI+F,CAAY,EAC5C,KAAK,OAAO,QAAQ,WAAW,CAAC,EAChC,KAAK,OAAO,QAAQ,eAAe,EAAI,EACvC,KAAK,OAAO,gBAAkB,IAC9B,KAAK,OAAO,uBAAuB,EAAK,EACxC,KAAK,OAAO,SAAS,KAAK,cAAc,EACxC,KAAK,OAAO,eAAc,EAC1B9F,iBAAe,sBAAsB,KAAK,MAAM,EAChD,KAAK,OAAO,MAAK,IAEjB,KAAK,IAAM,EACX,KAAK,OAAS,IAAI+F,EAAQ,CACxB,QAAS,KAAK,MAAM,OACpB,KAAM,IAAID,EACV,MAAO,qBACP,KAAM,CACJ,QAAS,KAAK,uBACd,gBAAiB,EAClB,EACD,MAAO,CACL,QAAS,KAAK,eACd,SAAU,EACX,CACF,CAAA,EAED,KAAK,OAAO,WAAY,EAAC,KAAK,YAAY,EAAE,EAC5C,KAAK,OAAO,WAAY,EAAC,MAAM,YAAY,EAAE,EAG7C9F,EAAAA,eAAe,sBAAsB,KAAK,OAAO,WAAY,EAAC,IAAI,EAClEA,EAAAA,eAAe,sBAAsB,KAAK,OAAO,WAAY,EAAC,KAAK,EAEnE,KAAK,QAAU,GAElB,EACD,eAAgB,CACV,KAAK,QACP,KAAK,OAAO,QAAO,EAEjB,KAAK,QACP,KAAK,OAAO,QAAO,CAEtB,EACD,QAAS,CACP,cAAe,CACb,KAAK,UACD,KAAK,QAAU,IACjB,KAAK,QAAU,KAAK,OAAO,MAAM,OAAS,GAE5C,KAAK,gBAAe,CACrB,EACD,UAAW,CACT,KAAK,UACD,KAAK,SAAW,KAAK,OAAO,MAAM,SACpC,KAAK,QAAU,GAEjB,KAAK,gBAAe,CACrB,EACD,iBAAkB,CAChB,GAAI,KAAK,OAAO,MAAM,SAAW,EAAG,OACpC,IAAIgG,EAAO,KAAK,OAAO,MAAM,KAAK,OAAO,EAAE,cACvCC,EAAO,KAAK,OAAO,MAAM,KAAK,OAAO,EAAE,eAEvCD,EAAO,IACTA,GAAQ,GAENC,EAAO,IACTA,GAAQ,GAEV,KAAK,OAAO,WAAY,EAAC,KAAK,aAAaD,CAAI,EAC/C,KAAK,OAAO,WAAY,EAAC,MAAM,aAAaC,CAAI,CACjD,EACD,iBAAkB,CAChB,IAAI/F,EAAMC,EAAAA,WAAAA,QAAY,aAAa,EAC/B+F,EAAqB/F,EAAW,WAAA,QAClC,+BACF,EAAE,mBAGEgG,EAAW,CAAC,UAAU,EACtBC,EAAQ,IAAI,OAAO,OAAOD,EAAS,KAAK,SAAS,CAAC,MAAM,EACxDE,EAAuB,UAAY,CACrCH,EAAmB,KAAK,IAAI,EAE5B,QAASI,KAAQ,KAAK,OACpB,KAAK,OAAOA,CAAI,EAAE,QAAQ,CACxB,MAAOF,EACP,MAAO,kBACR,CAAA,CAEL,EACAlG,EAAI,SAASmG,EAAsBH,CAAkB,EAErD,IAAI7F,EAAuBF,EAAW,WAAA,QACpC,iCACF,EAAE,qBACEG,EAAkBH,EAAW,WAAA,QAC/B,2BACF,EAAE,gBACEI,EAAWJ,qBAAY,uBAAuB,EAAE,SAChDK,EAAO,UAAY,CACrB,KAAK,eAAiB6F,EACtB,KAAK,SAAW,IAAIhG,EACpB,KAAK,WAAa,IAAIC,EACtB,KAAK,aAAe,IAAIC,EACxB,KAAK,eAAiB,KAAK,aAAa,cAC1C,EACIE,EAAWN,qBAAY,eAAe,EAAE,KAC5C,OAAAD,EAAI,SAASM,EAAMC,CAAQ,GACzB,UAAY,CACZ,KAAK,IAAM,oBACV,KAAKD,EAAK,SAAS,EACfA,CACR,EACD,OAAQ,UAAY,CACd,KAAK,oBAAsB,KAC7B,KAAK,WAAW,KAAK,OAAO,SAAU,EAAC,MAAM;AAAA,CAAI,CAAC,EAG9C,KAAK,OAAO,MAAM,SAAW,EAC/B,KAAK,WAAW,KAAK,OAAO,aAAa,KAAK,SAAQ,EAAG,MAAM;AAAA,CAAI,CAAC,EAGpE,KAAK,QACF,QACC,gIACA,CACE,OAAQ,UACR,WAAY,QACb,CACH,EACC,KAAM+F,GAAW,CAChB,KAAK,WACH,KAAK,OAAO,WAAY,EAAC,KAAK,SAAU,EAAC,MAAM;AAAA,CAAI,CACrD,CACD,CAAA,EACA,MAAOC,GAAU,CAEjB,CAAA,CAGR,EACD,WAAWC,EAAO,CAChB,IAAIC,EAAa,CACf,KAAM,KAAK,WACX,UAAWC,EAAAA,MAAM,KAAK,cAAc,EACpC,iBAAkBF,CACpB,EACA,KAAK,MAAM,WAAYC,CAAU,CAClC,EACD,MAAO,UAAY,CACjB,KAAK,KAAO,CAAC,KAAK,IACnB,EACD,gBAAiB,SAAUhG,EAAO,CAChC,KAAK,MAAQA,EAAM,MACnB,KAAK,MAAQA,EAAM,MAEnB,IAAIC,EAAW,KAAK,OAAO,kBAAiB,EACxCC,EAAQ,KAAK,OAAO,QAAQ,WAAWD,EAAS,IAAKA,EAAS,MAAM,EACxE,GAAIC,EAAO,CACT,IAAIvD,EAAQuD,EAAM,MAAM,KAAI,EACxBvD,EAAM,SAAS,GAAG,EACpB,KAAK,YAAcA,EAAM,MAAM,GAAG,EAAE,CAAC,EAErC,KAAK,YAAcA,EAErB,KAAK,YAAc,EACrB,CACD,EACD,cAAe,UAAY,CACrB,KAAK,QACP2C,iBAAe,cAAc,KAAK,MAAM,CAG3C,CACF,CACH,EA/VepC,GAAA,CAAA,MAAA,CAAe,KAAA,GAAA,CAAA,EAgBXC,GAAA,CAAA,MAAM,MAAM,MA2DZ,IAAI,SAAS,MAAM,cAxGtC,IAAA,CAAA,utBAuBEC,EA2GW,YAAAC,EAAA,CAlIb,WAuBqBC,EAAI,KAvBzB,sBAAAC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAuBqBF,EAAI,KAAAE,GAAE,WAAA,GAAW,MAAM,SAvB5C,QAAAC,EAAA,QAwBI,IAyGS,CAzGTC,EAyGS,YAAAC,EAAA,KAAA,CAjIb,QAAAF,EAAA,QAyBM,IAuGc,CAvGdC,EAuGc,YAAAK,EAAA,KAAA,CAhIpB,QAAAN,EAAA,QA0BQ,IAA8C,CAA9CC,EAA8C,YAAAwI,EAAA,KAAA,CA1BtD,QAAAzI,EAAA,QA0BsB,IAAgB,CA1BtCQ,EAAAA,gBAAAe,EAAA,gBA0ByBmB,EAAU,UAAA,EAAA,CAAA,IA1BnC,EAAA,IA2BqBA,EAAiB,oBAAA,oBAA9B/C,EAQQ,YAAAY,EAAA,CAnChB,IAAA,EA2BiD,MAAM,2BA3BvD,QAAAP,EAAA,QA4BU,IAAoE,CAApEC,EAAAA,YAAoEW,EAAA,CAA5D,KAAK,UAAU,MAAA,GAAM,MAAM,WA5B7C,QAAAZ,EAAA,QA4BsD,IAAeF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CA5BrEU,EAAAA,gBA4BsD,iBAAe,KA5BrE,EAAA,IA6BUH,EAAAA,mBAKM,MALNZ,GAAqB,kDAC2B8B,EAAAA,gBAAGmB,EAAU,UAAA,EAAG,8GAE3BnB,EAAAA,gBAAGmB,EAAU,UAAA,EAAG,gCAErD,CAAA,IAlCV,EAAA,KAAAhB,EAAA,mBAAA,GAAA,EAAA,EAoCQzB,EAAAA,YAKQM,EAAA,CALD,MAAM,WAAW,EAAA,CApChC,QAAAP,EAAA,QAqCU,IAGS,CAHTC,EAAAA,YAGS2D,EAAA,CAxCnB,WAqC2BjD,EAAG,IArC9B,sBAAAb,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAqC2BY,EAAG,IAAAZ,GAAE,MAAM,SArCtC,QAAAC,EAAA,QAsCY,IAAmC,gBAAnCL,EAAAA,YAAmCkE,EAAA,CAA3B,IAAK,CAAC,EAAA,CAtC1B,QAAA7D,EAAA,QAsC4B,IAAWF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAtCvCU,EAAAA,gBAsC4B,aAAW,KAtCvC,EAAA,oBAuCYb,EAAAA,YAAoCkE,EAAA,CAA5B,IAAK,CAAC,EAAA,CAvC1B,QAAA7D,EAAA,QAuC4B,IAAYF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAvCxCU,EAAAA,gBAuC4B,cAAY,KAvCxC,EAAA,OAAA,EAAA,uBAAA,EAAA,IA0CQH,EAAAA,mBAqFO,OAAA,CArFA,SAAMP,EAAA,CAAA,IAAAA,EAAA,CAAA,EA1CrB6C,wBA0C+BE,EAAQ,UAAAA,EAAA,SAAA,GAAAD,CAAA,EAAA,CAAA,SAAA,CAAA,KAC7B3C,EAAAA,YA+DWyI,EAAA,CA1GrB,WA2C6B/H,EAAG,IA3ChC,sBAAAb,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GA2C6BY,EAAG,IAAAZ,KA3ChC,QAAAC,EAAA,QA4CY,IAegB,gBAfhBL,EAegB,YAAAgJ,EAAA,CAfA,IAAK,EAAG,MAAM,OAAO,MAAM,QA5CvD,QAAA3I,EAAA,QA6Cc,IAaM,CAbNK,EAAA,mBAaM,MAbNX,GAaM,CAZJO,EAAAA,YAWQM,EAAA,CAXD,MAAM,MAAM,EAAA,CA9CnC,QAAAP,EAAA,QA+CuB,IAAuC,EAA5Ca,EAAAA,UAAA,EAAA,EAAAC,EAAA,mBASMG,gBAxDxBC,EA+C+C,WAAAP,EAAA,eA/C/C,CA+C+BzB,EAAO0J,mBAApB9H,EASM,mBAAA,MAAA,CATwC,IAAK8H,GAAI,CACrD3I,EAOQ,YAAAQ,EAAA,CAPD,MAAA,CAAoB,MAAA,OAAA,GAAA,CAhD/C,QAAAT,EAAA,QAiDsB,IAKE,CALFC,EAAAA,YAKE4I,EAAA,CAtDxB,WAkDiClI,EAAA,eAAeiI,CAAI,EAlDpD,sBAkDiC7I,IAAAY,EAAA,eAAeiI,CAAI,EAAA7I,GAC5B,UAAA,GACA,KAAK,OACJ,MAAO6I,0DArDhC,EAAA,qBAAA,EAAA,QAAA,EAAA,KA6DoBlG,EAAiB,oBAAA,oBADzB/C,EA6BgB,YAAAgJ,EAAA,CA3Bb,IAAK,QACN,MAAM,OACN,MAAM,QAhEpB,QAAA3I,EAAA,QAkEc,IAEQ,CAFRC,EAAAA,YAEQM,EAAA,CAFD,MAAM,MAAM,EAAA,CAlEjC,QAAAP,EAAA,QAmEgB,IAAwD,CAAxDC,EAAwD,YAAAQ,EAAA,KAAA,CAnExE,QAAAT,EAAA,QAmEuB,IAAyCF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAnEhEU,EAAAA,gBAmEuB,2CAAyC,KAnEhE,EAAA,MAAA,EAAA,IAqEcH,EAAAA,mBAIO,MAAA,CAHL,IAAI,SACJ,MAAM,SACL,cAAWP,EAAA,CAAA,IAAAA,EAAA,CAAA,EAxE5B6C,wBAwEsC9C,EAAe,iBAAAA,EAAA,gBAAA,GAAA+C,CAAA,EAAA,CAAA,SAAA,CAAA,cAEvC3C,EAAAA,YAcS8C,EAAA,CAxFvB,WA0E+BpC,EAAW,YA1E1C,sBAAAb,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GA0E+BY,EAAW,YAAAZ,GAAG,OAAM,CAAGY,EAAK,MAAEA,EAAK,KAAA,IA1ElE,QAAAX,EAAA,QA2EgB,IAYS,CAZTC,EAYS,YAAA+C,EAAA,KAAA,CAvFzB,QAAAhD,EAAA,QA4EkB,IAIc,CAJdC,EAAAA,YAIcoB,EAAA,CAJD,KAAA,EAAI,EAAA,CA5EnC,QAAArB,EAAA,QA6EoB,IAEoB,CAFpBC,EAAAA,YAEoBqB,EAAA,CAFA,QAAOuB,EAAiB,iBAAA,EAAA,CA7EhE,QAAA7C,EAAA,QA8EsB,IAAiB,CA9EvCQ,EAAAA,gBA8EyBe,EAAAA,gBAAAsB,EAAA,WAAW,EAAG,kBACnB,CAAA,IA/EpB,EAAA,oBAAA,EAAA,IAiFkB5C,EAAAA,YAAawB,CAAA,EACbxB,EAAAA,YAIEoB,EAAA,CAHA,MAAM,kBACN,eAAa,aACZ,QAAOxB,EAAa,qCArFzC,EAAA,MAAA,EAAA,gCAAA,EAAA,oBA0FYF,EAegB,YAAAgJ,EAAA,CAbb,IAAK,aACN,MAAM,OACN,MAAM,QA9FpB,QAAA3I,EAAA,QAgGc,IAOQ,CAPRC,EAAAA,YAOQM,EAAA,CAPD,MAAM,MAAM,EAAA,CAhGjC,QAAAP,EAAA,QAiGgB,IAEQ,CAFRC,EAEQ,YAAAQ,EAAA,KAAA,CAnGxB,QAAAT,EAAA,QAiGuB,IAEPF,EAAA,EAAA,IAAAA,EAAA,EAAA,EAAA,CAnGhBU,EAAAA,gBAiGuB,gEAEP,KAnGhB,EAAA,IAoGgBP,EAAAA,YAEQQ,EAAA,CAFD,MAAM,MAAM,EAAA,CApGnC,QAAAT,EAAA,QAoGoC,IAEpBF,EAAA,EAAA,IAAAA,EAAA,EAAA,EAAA,CAtGhBU,EAAAA,gBAoGoC,8CAEpB,KAtGhB,EAAA,MAAA,EAAA,IAwGcH,EAAAA,mBAAuC,MAAvCU,GAAuC,KAAA,GAAA,IAxGrD,EAAA,OAAA,EAAA,qBA4GUd,EAAAA,YAkBiBsD,EAAA,CAlBD,MAAM,WAAW,EAAA,CA5G3C,QAAAvD,EAAA,QA6GY,IAKM,CALK0C,EAAiB,oBAAA,MAA5B7B,EAAAA,YAAAC,EAAAA,mBAKM,MAlHlBE,GAAA,CA8Gcf,EAAAA,YAA2DS,EAAA,CAApD,QAAQ,OAAQ,QAAOb,EAAQ,WA9GpD,QAAAG,EAAA,QA8GsD,IAAWF,EAAA,EAAA,IAAAA,EAAA,EAAA,EAAA,CA9GjEU,EAAAA,gBA8GsD,aAAW,KA9GjE,EAAA,kBA+GcP,EAAAA,YAEQS,EAAA,CAFD,QAAQ,OAAQ,QAAOb,EAAY,eA/GxD,QAAAG,EAAA,QA+G0D,IAE5CF,EAAA,EAAA,IAAAA,EAAA,EAAA,EAAA,CAjHdU,EAAAA,gBA+G0D,iBAE5C,KAjHd,EAAA,qBAAAkB,EAAA,mBAAA,GAAA,EAAA,EAmHYzB,EAAAA,YAAYG,CAAA,EACZH,EAAAA,YAMQS,EAAA,CALN,QAAQ,WACR,YAAU,cACT,QAvHfiC,EAAAA,cAuH8B9C,EAAK,MAAA,CAAA,SAAA,CAAA,IAvHnC,QAAAG,EAAA,QAwHa,IAEDF,EAAA,EAAA,IAAAA,EAAA,EAAA,EAAA,CA1HZU,EAAAA,gBAwHa,UAED,KA1HZ,EAAA,kBA2HYP,EAAAA,YAEQS,EAAA,CAFD,QAAQ,OAAO,YAAU,cAAe,QAAOb,EAAM,SA3HxE,QAAAG,EAAA,QA2H0E,IAE9DF,EAAA,EAAA,IAAAA,EAAA,EAAA,EAAA,CA7HZU,EAAAA,gBA2H0E,WAE9D,KA7HZ,EAAA,oBAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA"}
1
+ {"version":3,"file":"admin.cjs","sources":["../../src/tools/admin/DownloadDialog.vue","../../src/tools/admin/EditDialog.vue","../../src/tools/admin/ModifiedPluginDialog.vue","../../src/tools/admin/tabs/index.js","../../src/tools/admin/OpenC3Admin.vue","../../../../node_modules/@sanity/diff-match-patch/dist/index.js","../../../../node_modules/@openc3/ace-diff/dist/module.js","../../src/tools/admin/PluginDialog.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" width=\"600\">\n <v-card>\n <v-toolbar height=\"24\">\n <v-spacer />\n <span> Download Gems </span>\n <v-spacer />\n </v-toolbar>\n <v-card-text>\n <div class=\"pa-3\">\n <v-row class=\"my-2\"> Select a download option </v-row>\n <v-row>\n <v-col>\n <div class=\"px-2\">\n <v-btn\n block\n data-test=\"searchGithub\"\n color=\"primary\"\n :disabled=\"disableSearch\"\n @click=\"searchGithub\"\n >\n Github\n <v-icon end theme=\"dark\"> mdi-github </v-icon>\n </v-btn>\n </div>\n </v-col>\n </v-row>\n <!---\n <v-row>\n <v-col>\n <div class=\"px-2\">\n <v-btn\n @click=\"searchRuby\"\n block\n data-test=\"searchRuby\"\n color=\"primary\"\n :disabled=\"disableSearch\"\n >\n RubyGems\n <v-icon right dark> mdi-heart </v-icon>\n </v-btn>\n </div>\n </v-col>\n </v-row>\n --->\n <v-row class=\"mt-5\"> Community Gems </v-row>\n <div v-if=\"listData.length < 1\" class=\"mt-4\">\n <v-row class=\"mx-2\">\n <span> I’m sorry, Dave. No gems available.... </span>\n </v-row>\n </div>\n <div v-else class=\"mt-4\">\n <div v-for=\"(data, index) in listData\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ data.name }}</v-list-item-title>\n\n <v-list-item icon>\n <v-progress-circular\n v-if=\"activeDownload\"\n indeterminate\n color=\"primary\"\n />\n <v-btn\n v-else\n icon=\"mdi-cloud-download\"\n variant=\"text\"\n :disabled=\"activeDownload\"\n @click=\"downloadGem(data)\"\n />\n </v-list-item>\n </v-list-item>\n <v-divider v-if=\"index < listData.length - 1\" :key=\"index\" />\n </div>\n </div>\n </div>\n </v-card-text>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\n// Directly use axios since we need no authentication or scope\nimport axios from 'axios'\n\nexport default {\n props: {\n modelValue: Boolean,\n },\n data() {\n return {\n url: '',\n type: null,\n response: null,\n activeDownload: false,\n disableSearch: false,\n expanded: [],\n }\n },\n computed: {\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n listData: function () {\n if (!this.response) return []\n if (this.type === 'github') {\n return this.parseGithub()\n } else {\n return this.parseRuby()\n }\n },\n },\n methods: {\n parseGithub: function () {\n const gemRegEx = /\\w+.gem/\n return this.response.tree\n .filter((f) => gemRegEx.exec(f.path))\n .map((f) => {\n return {\n name: f.path,\n url: `https://raw.github.com/OpenC3/openc3-tools/main/${f.path}`,\n }\n })\n },\n getResponse: function () {\n this.disableSearch = true\n axios.get(this.url).then((response) => {\n this.response = response.data\n })\n setTimeout(() => {\n this.disableSearch = false\n }, 10000)\n },\n searchGithub: function () {\n this.type = 'github'\n this.url =\n 'https://api.github.com/repos/OpenC3/openc3-tools/git/trees/main?recursive=1'\n this.getResponse()\n },\n downloadGem: function (gem) {\n const link = document.createElement('a')\n link.href = gem.url\n link.setAttribute('download', gem.name)\n link.click()\n link.remove()\n },\n },\n}\n</script>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" :persistent=\"!readonly\" width=\"80vw\">\n <v-card>\n <form @submit.prevent=\"submit\">\n <v-toolbar height=\"24\">\n <v-spacer />\n <span v-text=\"title\" />\n <v-spacer />\n <v-btn\n class=\"mx-2\"\n icon=\"mdi-download\"\n variant=\"text\"\n density=\"compact\"\n data-test=\"downloadIcon\"\n @click=\"download\"\n />\n </v-toolbar>\n\n <v-card-text>\n <div class=\"pa-3\">\n <div v-if=\"!readonly\">\n <v-row class=\"mt-3\"> Upload a file. </v-row>\n <v-row no-gutters align=\"center\">\n <v-col cols=\"3\">\n <v-btn\n block\n color=\"success\"\n :disabled=\"!file || loadingFile || readonly\"\n :loading=\"loadingFile\"\n data-test=\"editScreenLoadBtn\"\n @click=\"loadFile\"\n >\n Load\n <template #loader>\n <span>Loading...</span>\n </template>\n </v-btn>\n </v-col>\n <v-col cols=\"9\">\n <v-file-input\n v-model=\"file\"\n accept=\".json\"\n label=\"Click to select .json file.\"\n :disabled=\"readonly\"\n />\n </v-col>\n </v-row>\n </div>\n <v-row no-gutters>\n <pre\n ref=\"editor\"\n class=\"editor\"\n @contextmenu.prevent=\"showContextMenu\"\n ></pre>\n <v-menu v-model=\"contextMenu\" :target=\"[menuX, menuY]\">\n <v-list>\n <v-list-item\n title=\"Toggle Vim mode\"\n prepend-icon=\"extras:vim\"\n @click=\"toggleVimMode\"\n />\n </v-list>\n </v-menu>\n </v-row>\n <v-row class=\"my-3\">\n <span v-show=\"error\" class=\"text-red\" v-text=\"error\" />\n </v-row>\n <v-row>\n <v-spacer />\n <v-btn\n variant=\"outlined\"\n class=\"mx-2\"\n data-test=\"editCancelBtn\"\n @click.prevent=\"close\"\n >\n Cancel\n </v-btn>\n <v-btn\n v-if=\"!readonly\"\n class=\"mx-2\"\n color=\"primary\"\n type=\"submit\"\n data-test=\"editSubmitBtn\"\n :disabled=\"!!error || readonly\"\n >\n Save\n </v-btn>\n </v-row>\n </div>\n </v-card-text>\n </form>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport * as ace from 'ace-builds'\nimport 'ace-builds/src-min-noconflict/mode-ruby'\nimport 'ace-builds/src-min-noconflict/mode-json'\nimport 'ace-builds/src-min-noconflict/theme-twilight'\nimport 'ace-builds/src-min-noconflict/ext-language_tools'\nimport 'ace-builds/src-min-noconflict/ext-searchbox'\nimport { AceEditorUtils } from '../../components/ace'\n\nexport default {\n props: {\n content: {\n type: String,\n required: true,\n },\n type: String,\n name: String,\n modelValue: Boolean,\n readonly: Boolean,\n },\n data() {\n return {\n editor: null,\n contextMenu: false,\n menuX: 0,\n menuY: 0,\n }\n },\n computed: {\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n title: function () {\n return `${this.type}: ${this.name}`\n },\n error: function () {\n if (this.editor && this.editor.getValue() === '' && !this.file) {\n return 'Input can not be blank.'\n }\n return null\n },\n },\n mounted() {\n const openPluginMode = this.buildPluginMode()\n this.editor = ace.edit(this.$refs.editor)\n this.editor.setTheme('ace/theme/twilight')\n this.editor.session.setMode(new openPluginMode())\n this.editor.session.setTabSize(2)\n this.editor.session.setUseWrapMode(true)\n this.editor.$blockScrolling = Infinity\n this.editor.setHighlightActiveLine(false)\n this.editor.setValue(this.content)\n this.editor.clearSelection()\n AceEditorUtils.applyVimModeIfEnabled(this.editor)\n this.editor.focus()\n if (this.readonly) {\n this.editor.setReadOnly(true)\n }\n },\n beforeUnmount() {\n if (this.editor) {\n this.editor.destroy()\n }\n },\n methods: {\n submit: function () {\n this.$emit('submit', this.editor.getValue())\n this.show = !this.show\n },\n close: function () {\n this.show = !this.show\n },\n download: function () {\n const blob = new Blob([this.editor.getValue()], {\n type: 'text/plain',\n })\n // Make a link and then 'click' on it to start the download\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute(\n 'download',\n `${this.type.toLowerCase()}_${this.name.toLowerCase()}.json`,\n )\n link.click()\n },\n buildPluginMode() {\n let oop = ace.require('ace/lib/oop')\n let JsonHighlightRules = ace.require(\n 'ace/mode/json_highlight_rules',\n ).JsonHighlightRules\n\n let MatchingBraceOutdent = ace.require(\n 'ace/mode/matching_brace_outdent',\n ).MatchingBraceOutdent\n let CstyleBehaviour = ace.require(\n 'ace/mode/behaviour/cstyle',\n ).CstyleBehaviour\n let FoldMode = ace.require('ace/mode/folding/ruby').FoldMode\n let Mode = function () {\n this.HighlightRules = JsonHighlightRules\n this.$outdent = new MatchingBraceOutdent()\n this.$behaviour = new CstyleBehaviour()\n this.foldingRules = new FoldMode()\n this.indentKeywords = this.foldingRules.indentKeywords\n }\n let RubyMode = ace.require('ace/mode/ruby').Mode\n oop.inherits(Mode, RubyMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n showContextMenu: function (event) {\n this.menuX = event.pageX\n this.menuY = event.pageY\n\n let position = this.editor.getCursorPosition()\n let token = this.editor.session.getTokenAt(position.row, position.column)\n if (token) {\n let value = token.value.trim()\n if (value.includes(' ')) {\n this.docsKeyword = value.split(' ')[0]\n } else {\n this.docsKeyword = value\n }\n this.contextMenu = true\n }\n },\n toggleVimMode: function () {\n AceEditorUtils.toggleVimMode(this.editor)\n },\n },\n}\n</script>\n\n<style scoped>\n.editor {\n height: 50vh;\n width: 75vw;\n position: relative;\n font-size: 16px;\n}\n\n.v-textarea :deep(textarea) {\n padding: 5px;\n}\n</style>\n","<!--\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" width=\"600\">\n <v-card>\n <v-toolbar height=\"24\">\n <v-spacer />\n <span> Modified Plugin </span>\n <v-spacer />\n </v-toolbar>\n <v-card-text class=\"pa-3\">\n <div>\n Plugin {{ plugin }} was modified. Would you like to delete the\n existing modified files?\n </div>\n <v-list-item\n v-for=\"(target, index) in modifiedTargets\"\n :key=\"index\"\n lines=\"two\"\n >\n <v-list-item-title>{{ target.name }}</v-list-item-title>\n <v-list-item-subtitle\n v-for=\"(file, itemIndex) in target.files\"\n :key=\"itemIndex\"\n >{{ file }}</v-list-item-subtitle\n >\n </v-list-item>\n <v-checkbox\n v-model=\"deleteModified\"\n label=\"DELETE MODIFIED! THIS CAN NOT BE UNDONE!!!\"\n color=\"error\"\n data-test=\"modified-plugin-delete-checkbox\"\n />\n </v-card-text>\n <v-card-actions class=\"px-2\">\n <v-spacer />\n <v-btn\n variant=\"outlined\"\n data-test=\"modified-plugin-cancel\"\n @click=\"\n () => {\n show = false\n $emit('cancel')\n }\n \"\n >\n Cancel\n </v-btn>\n <v-btn\n variant=\"flat\"\n data-test=\"modified-plugin-submit\"\n @click=\"\n () => {\n show = false\n $emit('submit', deleteModified)\n }\n \"\n >\n Confirm\n </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\n\nexport default {\n props: {\n modelValue: Boolean,\n plugin: String,\n targets: Array,\n pluginDelete: Boolean,\n },\n data() {\n return {\n modifiedTargets: [],\n deleteModified: false,\n }\n },\n computed: {\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n },\n created() {\n for (const target of this.targets) {\n Api.get(`/openc3-api/targets/${target.name}/modified_files`).then(\n (response) => {\n if (response.data.length !== 0) {\n // Only push targets which actually have modified files\n this.modifiedTargets.push({\n name: target.name,\n files: response.data,\n })\n }\n },\n )\n }\n },\n}\n</script>\n\n<style scoped></style>\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nconst TabsList = [\n {\n displayName: 'Plugins',\n name: 'PluginsTab',\n path: 'plugins',\n component: () => import('./PluginsTab.vue'),\n },\n {\n displayName: 'Targets',\n name: 'TargetsTab',\n path: 'targets',\n component: () => import('./TargetsTab.vue'),\n },\n {\n displayName: 'Interfaces',\n name: 'InterfacesTab',\n path: 'interfaces',\n component: () => import('./InterfacesTab.vue'),\n },\n {\n displayName: 'Routers',\n name: 'RoutersTab',\n path: 'routers',\n component: () => import('./RoutersTab.vue'),\n },\n {\n displayName: 'Microservices',\n name: 'MicroservicesTab',\n path: 'microservices',\n component: () => import('./MicroservicesTab.vue'),\n },\n {\n displayName: 'Packages',\n name: 'PackagesTab',\n path: 'packages',\n component: () => import('./PackagesTab.vue'),\n },\n {\n displayName: 'Tools',\n name: 'ToolsTab',\n path: 'tools',\n component: () => import('./ToolsTab.vue'),\n },\n {\n displayName: 'Redis',\n name: 'RedisTab',\n path: 'redis',\n component: () => import('./RedisTab.vue'),\n },\n {\n displayName: 'Secrets',\n name: 'SecretsTab',\n path: 'secrets',\n component: () => import('./SecretsTab.vue'),\n },\n {\n displayName: 'Settings',\n name: 'SettingsTab',\n path: 'settings',\n component: () => import('./SettingsTab.vue'),\n },\n]\n\nexport { TabsList }\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <top-bar :title=\"title\" />\n <v-card>\n <v-tabs v-model=\"curTab\" fixed-tabs>\n <v-tab v-for=\"(tab, index) in tabs\" :key=\"index\" :to=\"tab.path\">\n {{ tab.displayName }}\n </v-tab>\n </v-tabs>\n <router-view />\n </v-card>\n </div>\n</template>\n\n<script>\nimport { TopBar } from '@/components'\nimport { TabsList } from './tabs'\n\nexport default {\n components: {\n TopBar,\n },\n data() {\n return {\n title: 'Administrator Console',\n curTab: null,\n }\n },\n computed: {\n tabs: function () {\n return TabsList.map((tab) => {\n return {\n displayName: tab.displayName,\n path: { name: tab.name },\n }\n })\n },\n },\n}\n</script>\n","function cloneDiff(diff2) {\n const [type, patch] = diff2;\n return [type, patch];\n}\nfunction getCommonOverlap(textA, textB) {\n let text1 = textA, text2 = textB;\n const text1Length = text1.length, text2Length = text2.length;\n if (text1Length === 0 || text2Length === 0)\n return 0;\n text1Length > text2Length ? text1 = text1.substring(text1Length - text2Length) : text1Length < text2Length && (text2 = text2.substring(0, text1Length));\n const textLength = Math.min(text1Length, text2Length);\n if (text1 === text2)\n return textLength;\n let best = 0, length = 1;\n for (let found = 0; found !== -1; ) {\n const pattern = text1.substring(textLength - length);\n if (found = text2.indexOf(pattern), found === -1)\n return best;\n length += found, (found === 0 || text1.substring(textLength - length) === text2.substring(0, length)) && (best = length, length++);\n }\n return best;\n}\nfunction getCommonPrefix(text1, text2) {\n if (!text1 || !text2 || text1[0] !== text2[0])\n return 0;\n let pointerMin = 0, pointerMax = Math.min(text1.length, text2.length), pointerMid = pointerMax, pointerStart = 0;\n for (; pointerMin < pointerMid; )\n text1.substring(pointerStart, pointerMid) === text2.substring(pointerStart, pointerMid) ? (pointerMin = pointerMid, pointerStart = pointerMin) : pointerMax = pointerMid, pointerMid = Math.floor((pointerMax - pointerMin) / 2 + pointerMin);\n return pointerMid;\n}\nfunction getCommonSuffix(text1, text2) {\n if (!text1 || !text2 || text1[text1.length - 1] !== text2[text2.length - 1])\n return 0;\n let pointerMin = 0, pointerMax = Math.min(text1.length, text2.length), pointerMid = pointerMax, pointerEnd = 0;\n for (; pointerMin < pointerMid; )\n text1.substring(text1.length - pointerMid, text1.length - pointerEnd) === text2.substring(text2.length - pointerMid, text2.length - pointerEnd) ? (pointerMin = pointerMid, pointerEnd = pointerMin) : pointerMax = pointerMid, pointerMid = Math.floor((pointerMax - pointerMin) / 2 + pointerMin);\n return pointerMid;\n}\nfunction isHighSurrogate(char) {\n const charCode = char.charCodeAt(0);\n return charCode >= 55296 && charCode <= 56319;\n}\nfunction isLowSurrogate(char) {\n const charCode = char.charCodeAt(0);\n return charCode >= 56320 && charCode <= 57343;\n}\nfunction bisect(text1, text2, deadline) {\n const text1Length = text1.length, text2Length = text2.length, maxD = Math.ceil((text1Length + text2Length) / 2), vOffset = maxD, vLength = 2 * maxD, v1 = new Array(vLength), v2 = new Array(vLength);\n for (let x = 0; x < vLength; x++)\n v1[x] = -1, v2[x] = -1;\n v1[vOffset + 1] = 0, v2[vOffset + 1] = 0;\n const delta = text1Length - text2Length, front = delta % 2 !== 0;\n let k1start = 0, k1end = 0, k2start = 0, k2end = 0;\n for (let d = 0; d < maxD && !(Date.now() > deadline); d++) {\n for (let k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n const k1Offset = vOffset + k1;\n let x1;\n k1 === -d || k1 !== d && v1[k1Offset - 1] < v1[k1Offset + 1] ? x1 = v1[k1Offset + 1] : x1 = v1[k1Offset - 1] + 1;\n let y1 = x1 - k1;\n for (; x1 < text1Length && y1 < text2Length && text1.charAt(x1) === text2.charAt(y1); )\n x1++, y1++;\n if (v1[k1Offset] = x1, x1 > text1Length)\n k1end += 2;\n else if (y1 > text2Length)\n k1start += 2;\n else if (front) {\n const k2Offset = vOffset + delta - k1;\n if (k2Offset >= 0 && k2Offset < vLength && v2[k2Offset] !== -1) {\n const x2 = text1Length - v2[k2Offset];\n if (x1 >= x2)\n return bisectSplit(text1, text2, x1, y1, deadline);\n }\n }\n }\n for (let k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n const k2Offset = vOffset + k2;\n let x2;\n k2 === -d || k2 !== d && v2[k2Offset - 1] < v2[k2Offset + 1] ? x2 = v2[k2Offset + 1] : x2 = v2[k2Offset - 1] + 1;\n let y2 = x2 - k2;\n for (; x2 < text1Length && y2 < text2Length && text1.charAt(text1Length - x2 - 1) === text2.charAt(text2Length - y2 - 1); )\n x2++, y2++;\n if (v2[k2Offset] = x2, x2 > text1Length)\n k2end += 2;\n else if (y2 > text2Length)\n k2start += 2;\n else if (!front) {\n const k1Offset = vOffset + delta - k2;\n if (k1Offset >= 0 && k1Offset < vLength && v1[k1Offset] !== -1) {\n const x1 = v1[k1Offset], y1 = vOffset + x1 - k1Offset;\n if (x2 = text1Length - x2, x1 >= x2)\n return bisectSplit(text1, text2, x1, y1, deadline);\n }\n }\n }\n }\n return [\n [DIFF_DELETE, text1],\n [DIFF_INSERT, text2]\n ];\n}\nfunction bisectSplit(text1, text2, x, y, deadline) {\n const text1a = text1.substring(0, x), text2a = text2.substring(0, y), text1b = text1.substring(x), text2b = text2.substring(y), diffs = doDiff(text1a, text2a, { checkLines: !1, deadline }), diffsb = doDiff(text1b, text2b, { checkLines: !1, deadline });\n return diffs.concat(diffsb);\n}\nfunction findHalfMatch(text1, text2, timeout = 1) {\n if (timeout <= 0)\n return null;\n const longText = text1.length > text2.length ? text1 : text2, shortText = text1.length > text2.length ? text2 : text1;\n if (longText.length < 4 || shortText.length * 2 < longText.length)\n return null;\n const halfMatch1 = halfMatchI(longText, shortText, Math.ceil(longText.length / 4)), halfMatch2 = halfMatchI(longText, shortText, Math.ceil(longText.length / 2));\n let halfMatch;\n if (halfMatch1 && halfMatch2)\n halfMatch = halfMatch1[4].length > halfMatch2[4].length ? halfMatch1 : halfMatch2;\n else {\n if (!halfMatch1 && !halfMatch2)\n return null;\n halfMatch2 ? halfMatch1 || (halfMatch = halfMatch2) : halfMatch = halfMatch1;\n }\n if (!halfMatch)\n throw new Error(\"Unable to find a half match.\");\n let text1A, text1B, text2A, text2B;\n text1.length > text2.length ? (text1A = halfMatch[0], text1B = halfMatch[1], text2A = halfMatch[2], text2B = halfMatch[3]) : (text2A = halfMatch[0], text2B = halfMatch[1], text1A = halfMatch[2], text1B = halfMatch[3]);\n const midCommon = halfMatch[4];\n return [text1A, text1B, text2A, text2B, midCommon];\n}\nfunction halfMatchI(longText, shortText, i) {\n const seed = longText.slice(i, i + Math.floor(longText.length / 4));\n let j = -1, bestCommon = \"\", bestLongTextA, bestLongTextB, bestShortTextA, bestShortTextB;\n for (; (j = shortText.indexOf(seed, j + 1)) !== -1; ) {\n const prefixLength = getCommonPrefix(longText.slice(i), shortText.slice(j)), suffixLength = getCommonSuffix(longText.slice(0, i), shortText.slice(0, j));\n bestCommon.length < suffixLength + prefixLength && (bestCommon = shortText.slice(j - suffixLength, j) + shortText.slice(j, j + prefixLength), bestLongTextA = longText.slice(0, i - suffixLength), bestLongTextB = longText.slice(i + prefixLength), bestShortTextA = shortText.slice(0, j - suffixLength), bestShortTextB = shortText.slice(j + prefixLength));\n }\n return bestCommon.length * 2 >= longText.length ? [\n bestLongTextA || \"\",\n bestLongTextB || \"\",\n bestShortTextA || \"\",\n bestShortTextB || \"\",\n bestCommon || \"\"\n ] : null;\n}\nfunction charsToLines(diffs, lineArray) {\n for (let x = 0; x < diffs.length; x++) {\n const chars = diffs[x][1], text = [];\n for (let y = 0; y < chars.length; y++)\n text[y] = lineArray[chars.charCodeAt(y)];\n diffs[x][1] = text.join(\"\");\n }\n}\nfunction linesToChars(textA, textB) {\n const lineArray = [], lineHash = {};\n lineArray[0] = \"\";\n function diffLinesToMunge(text) {\n let chars = \"\", lineStart = 0, lineEnd = -1, lineArrayLength = lineArray.length;\n for (; lineEnd < text.length - 1; ) {\n lineEnd = text.indexOf(`\n`, lineStart), lineEnd === -1 && (lineEnd = text.length - 1);\n let line = text.slice(lineStart, lineEnd + 1);\n (lineHash.hasOwnProperty ? lineHash.hasOwnProperty(line) : lineHash[line] !== void 0) ? chars += String.fromCharCode(lineHash[line]) : (lineArrayLength === maxLines && (line = text.slice(lineStart), lineEnd = text.length), chars += String.fromCharCode(lineArrayLength), lineHash[line] = lineArrayLength, lineArray[lineArrayLength++] = line), lineStart = lineEnd + 1;\n }\n return chars;\n }\n let maxLines = 4e4;\n const chars1 = diffLinesToMunge(textA);\n maxLines = 65535;\n const chars2 = diffLinesToMunge(textB);\n return { chars1, chars2, lineArray };\n}\nfunction doLineModeDiff(textA, textB, opts) {\n let text1 = textA, text2 = textB;\n const a = linesToChars(text1, text2);\n text1 = a.chars1, text2 = a.chars2;\n const linearray = a.lineArray;\n let diffs = doDiff(text1, text2, {\n checkLines: !1,\n deadline: opts.deadline\n });\n charsToLines(diffs, linearray), diffs = cleanupSemantic(diffs), diffs.push([DIFF_EQUAL, \"\"]);\n let pointer = 0, countDelete = 0, countInsert = 0, textDelete = \"\", textInsert = \"\";\n for (; pointer < diffs.length; ) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n countInsert++, textInsert += diffs[pointer][1];\n break;\n case DIFF_DELETE:\n countDelete++, textDelete += diffs[pointer][1];\n break;\n case DIFF_EQUAL:\n if (countDelete >= 1 && countInsert >= 1) {\n diffs.splice(pointer - countDelete - countInsert, countDelete + countInsert), pointer = pointer - countDelete - countInsert;\n const aa = doDiff(textDelete, textInsert, {\n checkLines: !1,\n deadline: opts.deadline\n });\n for (let j = aa.length - 1; j >= 0; j--)\n diffs.splice(pointer, 0, aa[j]);\n pointer += aa.length;\n }\n countInsert = 0, countDelete = 0, textDelete = \"\", textInsert = \"\";\n break;\n default:\n throw new Error(\"Unknown diff operation.\");\n }\n pointer++;\n }\n return diffs.pop(), diffs;\n}\nfunction computeDiff(text1, text2, opts) {\n let diffs;\n if (!text1)\n return [[DIFF_INSERT, text2]];\n if (!text2)\n return [[DIFF_DELETE, text1]];\n const longtext = text1.length > text2.length ? text1 : text2, shorttext = text1.length > text2.length ? text2 : text1, i = longtext.indexOf(shorttext);\n if (i !== -1)\n return diffs = [\n [DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]\n ], text1.length > text2.length && (diffs[0][0] = DIFF_DELETE, diffs[2][0] = DIFF_DELETE), diffs;\n if (shorttext.length === 1)\n return [\n [DIFF_DELETE, text1],\n [DIFF_INSERT, text2]\n ];\n const halfMatch = findHalfMatch(text1, text2);\n if (halfMatch) {\n const text1A = halfMatch[0], text1B = halfMatch[1], text2A = halfMatch[2], text2B = halfMatch[3], midCommon = halfMatch[4], diffsA = doDiff(text1A, text2A, opts), diffsB = doDiff(text1B, text2B, opts);\n return diffsA.concat([[DIFF_EQUAL, midCommon]], diffsB);\n }\n return opts.checkLines && text1.length > 100 && text2.length > 100 ? doLineModeDiff(text1, text2, opts) : bisect(text1, text2, opts.deadline);\n}\nvar __defProp$2 = Object.defineProperty, __getOwnPropSymbols$2 = Object.getOwnPropertySymbols, __hasOwnProp$2 = Object.prototype.hasOwnProperty, __propIsEnum$2 = Object.prototype.propertyIsEnumerable, __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value, __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n __hasOwnProp$2.call(b, prop) && __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b))\n __propIsEnum$2.call(b, prop) && __defNormalProp$2(a, prop, b[prop]);\n return a;\n};\nconst DIFF_DELETE = -1, DIFF_INSERT = 1, DIFF_EQUAL = 0;\nfunction diff(textA, textB, opts) {\n if (textA === null || textB === null)\n throw new Error(\"Null input. (diff)\");\n const diffs = doDiff(textA, textB, createInternalOpts(opts || {}));\n return adjustDiffForSurrogatePairs(diffs), diffs;\n}\nfunction doDiff(textA, textB, options) {\n let text1 = textA, text2 = textB;\n if (text1 === text2)\n return text1 ? [[DIFF_EQUAL, text1]] : [];\n let commonlength = getCommonPrefix(text1, text2);\n const commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength), text2 = text2.substring(commonlength), commonlength = getCommonSuffix(text1, text2);\n const commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength), text2 = text2.substring(0, text2.length - commonlength);\n let diffs = computeDiff(text1, text2, options);\n return commonprefix && diffs.unshift([DIFF_EQUAL, commonprefix]), commonsuffix && diffs.push([DIFF_EQUAL, commonsuffix]), diffs = cleanupMerge(diffs), diffs;\n}\nfunction createDeadLine(timeout) {\n let t = 1;\n return typeof timeout < \"u\" && (t = timeout <= 0 ? Number.MAX_VALUE : timeout), Date.now() + t * 1e3;\n}\nfunction createInternalOpts(opts) {\n return __spreadValues$2({\n checkLines: !0,\n deadline: createDeadLine(opts.timeout || 1)\n }, opts);\n}\nfunction combineChar(data, char, dir) {\n return dir === 1 ? data + char : char + data;\n}\nfunction splitChar(data, dir) {\n return dir === 1 ? [data.substring(0, data.length - 1), data[data.length - 1]] : [data.substring(1), data[0]];\n}\nfunction hasSharedChar(diffs, i, j, dir) {\n return dir === 1 ? diffs[i][1][diffs[i][1].length - 1] === diffs[j][1][diffs[j][1].length - 1] : diffs[i][1][0] === diffs[j][1][0];\n}\nfunction deisolateChar(diffs, i, dir) {\n const inv = dir === 1 ? -1 : 1;\n let insertIdx = null, deleteIdx = null, j = i + dir;\n for (; j >= 0 && j < diffs.length && (insertIdx === null || deleteIdx === null); j += dir) {\n const [op, text2] = diffs[j];\n if (text2.length !== 0) {\n if (op === DIFF_INSERT) {\n insertIdx === null && (insertIdx = j);\n continue;\n } else if (op === DIFF_DELETE) {\n deleteIdx === null && (deleteIdx = j);\n continue;\n } else if (op === DIFF_EQUAL) {\n if (insertIdx === null && deleteIdx === null) {\n const [rest, char2] = splitChar(diffs[i][1], dir);\n diffs[i][1] = rest, diffs[j][1] = combineChar(diffs[j][1], char2, inv);\n return;\n }\n break;\n }\n }\n }\n if (insertIdx !== null && deleteIdx !== null && hasSharedChar(diffs, insertIdx, deleteIdx, dir)) {\n const [insertText, insertChar] = splitChar(diffs[insertIdx][1], inv), [deleteText] = splitChar(diffs[deleteIdx][1], inv);\n diffs[insertIdx][1] = insertText, diffs[deleteIdx][1] = deleteText, diffs[i][1] = combineChar(diffs[i][1], insertChar, dir);\n return;\n }\n const [text, char] = splitChar(diffs[i][1], dir);\n diffs[i][1] = text, insertIdx === null ? (diffs.splice(j, 0, [DIFF_INSERT, char]), deleteIdx !== null && deleteIdx >= j && deleteIdx++) : diffs[insertIdx][1] = combineChar(diffs[insertIdx][1], char, inv), deleteIdx === null ? diffs.splice(j, 0, [DIFF_DELETE, char]) : diffs[deleteIdx][1] = combineChar(diffs[deleteIdx][1], char, inv);\n}\nfunction adjustDiffForSurrogatePairs(diffs) {\n for (let i = 0; i < diffs.length; i++) {\n const [diffType, diffText] = diffs[i];\n if (diffText.length === 0) continue;\n const firstChar = diffText[0], lastChar = diffText[diffText.length - 1];\n isHighSurrogate(lastChar) && diffType === DIFF_EQUAL && deisolateChar(diffs, i, 1), isLowSurrogate(firstChar) && diffType === DIFF_EQUAL && deisolateChar(diffs, i, -1);\n }\n for (let i = 0; i < diffs.length; i++)\n diffs[i][1].length === 0 && diffs.splice(i, 1);\n}\nfunction cleanupSemantic(rawDiffs) {\n let diffs = rawDiffs.map((diff2) => cloneDiff(diff2)), hasChanges = !1;\n const equalities = [];\n let equalitiesLength = 0, lastEquality = null, pointer = 0, lengthInsertions1 = 0, lengthDeletions1 = 0, lengthInsertions2 = 0, lengthDeletions2 = 0;\n for (; pointer < diffs.length; )\n diffs[pointer][0] === DIFF_EQUAL ? (equalities[equalitiesLength++] = pointer, lengthInsertions1 = lengthInsertions2, lengthDeletions1 = lengthDeletions2, lengthInsertions2 = 0, lengthDeletions2 = 0, lastEquality = diffs[pointer][1]) : (diffs[pointer][0] === DIFF_INSERT ? lengthInsertions2 += diffs[pointer][1].length : lengthDeletions2 += diffs[pointer][1].length, lastEquality && lastEquality.length <= Math.max(lengthInsertions1, lengthDeletions1) && lastEquality.length <= Math.max(lengthInsertions2, lengthDeletions2) && (diffs.splice(equalities[equalitiesLength - 1], 0, [DIFF_DELETE, lastEquality]), diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT, equalitiesLength--, equalitiesLength--, pointer = equalitiesLength > 0 ? equalities[equalitiesLength - 1] : -1, lengthInsertions1 = 0, lengthDeletions1 = 0, lengthInsertions2 = 0, lengthDeletions2 = 0, lastEquality = null, hasChanges = !0)), pointer++;\n for (hasChanges && (diffs = cleanupMerge(diffs)), diffs = cleanupSemanticLossless(diffs), pointer = 1; pointer < diffs.length; ) {\n if (diffs[pointer - 1][0] === DIFF_DELETE && diffs[pointer][0] === DIFF_INSERT) {\n const deletion = diffs[pointer - 1][1], insertion = diffs[pointer][1], overlapLength1 = getCommonOverlap(deletion, insertion), overlapLength2 = getCommonOverlap(insertion, deletion);\n overlapLength1 >= overlapLength2 ? (overlapLength1 >= deletion.length / 2 || overlapLength1 >= insertion.length / 2) && (diffs.splice(pointer, 0, [DIFF_EQUAL, insertion.substring(0, overlapLength1)]), diffs[pointer - 1][1] = deletion.substring(0, deletion.length - overlapLength1), diffs[pointer + 1][1] = insertion.substring(overlapLength1), pointer++) : (overlapLength2 >= deletion.length / 2 || overlapLength2 >= insertion.length / 2) && (diffs.splice(pointer, 0, [DIFF_EQUAL, deletion.substring(0, overlapLength2)]), diffs[pointer - 1][0] = DIFF_INSERT, diffs[pointer - 1][1] = insertion.substring(0, insertion.length - overlapLength2), diffs[pointer + 1][0] = DIFF_DELETE, diffs[pointer + 1][1] = deletion.substring(overlapLength2), pointer++), pointer++;\n }\n pointer++;\n }\n return diffs;\n}\nconst nonAlphaNumericRegex = /[^a-zA-Z0-9]/, whitespaceRegex = /\\s/, linebreakRegex = /[\\r\\n]/, blanklineEndRegex = /\\n\\r?\\n$/, blanklineStartRegex = /^\\r?\\n\\r?\\n/;\nfunction cleanupSemanticLossless(rawDiffs) {\n const diffs = rawDiffs.map((diff2) => cloneDiff(diff2));\n function diffCleanupSemanticScore(one, two) {\n if (!one || !two)\n return 6;\n const char1 = one.charAt(one.length - 1), char2 = two.charAt(0), nonAlphaNumeric1 = char1.match(nonAlphaNumericRegex), nonAlphaNumeric2 = char2.match(nonAlphaNumericRegex), whitespace1 = nonAlphaNumeric1 && char1.match(whitespaceRegex), whitespace2 = nonAlphaNumeric2 && char2.match(whitespaceRegex), lineBreak1 = whitespace1 && char1.match(linebreakRegex), lineBreak2 = whitespace2 && char2.match(linebreakRegex), blankLine1 = lineBreak1 && one.match(blanklineEndRegex), blankLine2 = lineBreak2 && two.match(blanklineStartRegex);\n return blankLine1 || blankLine2 ? 5 : lineBreak1 || lineBreak2 ? 4 : nonAlphaNumeric1 && !whitespace1 && whitespace2 ? 3 : whitespace1 || whitespace2 ? 2 : nonAlphaNumeric1 || nonAlphaNumeric2 ? 1 : 0;\n }\n let pointer = 1;\n for (; pointer < diffs.length - 1; ) {\n if (diffs[pointer - 1][0] === DIFF_EQUAL && diffs[pointer + 1][0] === DIFF_EQUAL) {\n let equality1 = diffs[pointer - 1][1], edit = diffs[pointer][1], equality2 = diffs[pointer + 1][1];\n const commonOffset = getCommonSuffix(equality1, edit);\n if (commonOffset) {\n const commonString = edit.substring(edit.length - commonOffset);\n equality1 = equality1.substring(0, equality1.length - commonOffset), edit = commonString + edit.substring(0, edit.length - commonOffset), equality2 = commonString + equality2;\n }\n let bestEquality1 = equality1, bestEdit = edit, bestEquality2 = equality2, bestScore = diffCleanupSemanticScore(equality1, edit) + diffCleanupSemanticScore(edit, equality2);\n for (; edit.charAt(0) === equality2.charAt(0); ) {\n equality1 += edit.charAt(0), edit = edit.substring(1) + equality2.charAt(0), equality2 = equality2.substring(1);\n const score = diffCleanupSemanticScore(equality1, edit) + diffCleanupSemanticScore(edit, equality2);\n score >= bestScore && (bestScore = score, bestEquality1 = equality1, bestEdit = edit, bestEquality2 = equality2);\n }\n diffs[pointer - 1][1] !== bestEquality1 && (bestEquality1 ? diffs[pointer - 1][1] = bestEquality1 : (diffs.splice(pointer - 1, 1), pointer--), diffs[pointer][1] = bestEdit, bestEquality2 ? diffs[pointer + 1][1] = bestEquality2 : (diffs.splice(pointer + 1, 1), pointer--));\n }\n pointer++;\n }\n return diffs;\n}\nfunction cleanupMerge(rawDiffs) {\n let diffs = rawDiffs.map((diff2) => cloneDiff(diff2));\n diffs.push([DIFF_EQUAL, \"\"]);\n let pointer = 0, countDelete = 0, countInsert = 0, textDelete = \"\", textInsert = \"\", commonlength;\n for (; pointer < diffs.length; )\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n countInsert++, textInsert += diffs[pointer][1], pointer++;\n break;\n case DIFF_DELETE:\n countDelete++, textDelete += diffs[pointer][1], pointer++;\n break;\n case DIFF_EQUAL:\n countDelete + countInsert > 1 ? (countDelete !== 0 && countInsert !== 0 && (commonlength = getCommonPrefix(textInsert, textDelete), commonlength !== 0 && (pointer - countDelete - countInsert > 0 && diffs[pointer - countDelete - countInsert - 1][0] === DIFF_EQUAL ? diffs[pointer - countDelete - countInsert - 1][1] += textInsert.substring(\n 0,\n commonlength\n ) : (diffs.splice(0, 0, [DIFF_EQUAL, textInsert.substring(0, commonlength)]), pointer++), textInsert = textInsert.substring(commonlength), textDelete = textDelete.substring(commonlength)), commonlength = getCommonSuffix(textInsert, textDelete), commonlength !== 0 && (diffs[pointer][1] = textInsert.substring(textInsert.length - commonlength) + diffs[pointer][1], textInsert = textInsert.substring(0, textInsert.length - commonlength), textDelete = textDelete.substring(0, textDelete.length - commonlength))), pointer -= countDelete + countInsert, diffs.splice(pointer, countDelete + countInsert), textDelete.length && (diffs.splice(pointer, 0, [DIFF_DELETE, textDelete]), pointer++), textInsert.length && (diffs.splice(pointer, 0, [DIFF_INSERT, textInsert]), pointer++), pointer++) : pointer !== 0 && diffs[pointer - 1][0] === DIFF_EQUAL ? (diffs[pointer - 1][1] += diffs[pointer][1], diffs.splice(pointer, 1)) : pointer++, countInsert = 0, countDelete = 0, textDelete = \"\", textInsert = \"\";\n break;\n default:\n throw new Error(\"Unknown diff operation\");\n }\n diffs[diffs.length - 1][1] === \"\" && diffs.pop();\n let hasChanges = !1;\n for (pointer = 1; pointer < diffs.length - 1; )\n diffs[pointer - 1][0] === DIFF_EQUAL && diffs[pointer + 1][0] === DIFF_EQUAL && (diffs[pointer][1].substring(diffs[pointer][1].length - diffs[pointer - 1][1].length) === diffs[pointer - 1][1] ? (diffs[pointer][1] = diffs[pointer - 1][1] + diffs[pointer][1].substring(0, diffs[pointer][1].length - diffs[pointer - 1][1].length), diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1], diffs.splice(pointer - 1, 1), hasChanges = !0) : diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) === diffs[pointer + 1][1] && (diffs[pointer - 1][1] += diffs[pointer + 1][1], diffs[pointer][1] = diffs[pointer][1].substring(diffs[pointer + 1][1].length) + diffs[pointer + 1][1], diffs.splice(pointer + 1, 1), hasChanges = !0)), pointer++;\n return hasChanges && (diffs = cleanupMerge(diffs)), diffs;\n}\nfunction trueCount(...args) {\n return args.reduce((n, bool) => n + (bool ? 1 : 0), 0);\n}\nfunction cleanupEfficiency(rawDiffs, editCost = 4) {\n let diffs = rawDiffs.map((diff2) => cloneDiff(diff2)), hasChanges = !1;\n const equalities = [];\n let equalitiesLength = 0, lastEquality = null, pointer = 0, preIns = !1, preDel = !1, postIns = !1, postDel = !1;\n for (; pointer < diffs.length; )\n diffs[pointer][0] === DIFF_EQUAL ? (diffs[pointer][1].length < editCost && (postIns || postDel) ? (equalities[equalitiesLength++] = pointer, preIns = postIns, preDel = postDel, lastEquality = diffs[pointer][1]) : (equalitiesLength = 0, lastEquality = null), postIns = !1, postDel = !1) : (diffs[pointer][0] === DIFF_DELETE ? postDel = !0 : postIns = !0, lastEquality && (preIns && preDel && postIns && postDel || lastEquality.length < editCost / 2 && trueCount(preIns, preDel, postIns, postDel) === 3) && (diffs.splice(equalities[equalitiesLength - 1], 0, [DIFF_DELETE, lastEquality]), diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT, equalitiesLength--, lastEquality = null, preIns && preDel ? (postIns = !0, postDel = !0, equalitiesLength = 0) : (equalitiesLength--, pointer = equalitiesLength > 0 ? equalities[equalitiesLength - 1] : -1, postIns = !1, postDel = !1), hasChanges = !0)), pointer++;\n return hasChanges && (diffs = cleanupMerge(diffs)), diffs;\n}\nvar __defProp$1 = Object.defineProperty, __getOwnPropSymbols$1 = Object.getOwnPropertySymbols, __hasOwnProp$1 = Object.prototype.hasOwnProperty, __propIsEnum$1 = Object.prototype.propertyIsEnumerable, __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value, __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n __hasOwnProp$1.call(b, prop) && __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b))\n __propIsEnum$1.call(b, prop) && __defNormalProp$1(a, prop, b[prop]);\n return a;\n};\nconst DEFAULT_OPTIONS = {\n /**\n * At what point is no match declared (0.0 = perfection, 1.0 = very loose).\n */\n threshold: 0.5,\n /**\n * How far to search for a match (0 = exact location, 1000+ = broad match).\n * A match this many characters away from the expected location will add\n * 1.0 to the score (0.0 is a perfect match).\n */\n distance: 1e3\n};\nfunction applyDefaults(options) {\n return __spreadValues$1(__spreadValues$1({}, DEFAULT_OPTIONS), options);\n}\nconst MAX_BITS$1 = 32;\nfunction bitap(text, pattern, loc, opts = {}) {\n if (pattern.length > MAX_BITS$1)\n throw new Error(\"Pattern too long for this browser.\");\n const options = applyDefaults(opts), s = getAlphabetFromPattern(pattern);\n function getBitapScore(e, x) {\n const accuracy = e / pattern.length, proximity = Math.abs(loc - x);\n return options.distance ? accuracy + proximity / options.distance : proximity ? 1 : accuracy;\n }\n let scoreThreshold = options.threshold, bestLoc = text.indexOf(pattern, loc);\n bestLoc !== -1 && (scoreThreshold = Math.min(getBitapScore(0, bestLoc), scoreThreshold), bestLoc = text.lastIndexOf(pattern, loc + pattern.length), bestLoc !== -1 && (scoreThreshold = Math.min(getBitapScore(0, bestLoc), scoreThreshold)));\n const matchmask = 1 << pattern.length - 1;\n bestLoc = -1;\n let binMin, binMid, binMax = pattern.length + text.length, lastRd = [];\n for (let d = 0; d < pattern.length; d++) {\n for (binMin = 0, binMid = binMax; binMin < binMid; )\n getBitapScore(d, loc + binMid) <= scoreThreshold ? binMin = binMid : binMax = binMid, binMid = Math.floor((binMax - binMin) / 2 + binMin);\n binMax = binMid;\n let start = Math.max(1, loc - binMid + 1);\n const finish = Math.min(loc + binMid, text.length) + pattern.length, rd = new Array(finish + 2);\n rd[finish + 1] = (1 << d) - 1;\n for (let j = finish; j >= start; j--) {\n const charMatch = s[text.charAt(j - 1)];\n if (d === 0 ? rd[j] = (rd[j + 1] << 1 | 1) & charMatch : rd[j] = (rd[j + 1] << 1 | 1) & charMatch | ((lastRd[j + 1] | lastRd[j]) << 1 | 1) | lastRd[j + 1], rd[j] & matchmask) {\n const score = getBitapScore(d, j - 1);\n if (score <= scoreThreshold)\n if (scoreThreshold = score, bestLoc = j - 1, bestLoc > loc)\n start = Math.max(1, 2 * loc - bestLoc);\n else\n break;\n }\n }\n if (getBitapScore(d + 1, loc) > scoreThreshold)\n break;\n lastRd = rd;\n }\n return bestLoc;\n}\nfunction getAlphabetFromPattern(pattern) {\n const s = {};\n for (let i = 0; i < pattern.length; i++)\n s[pattern.charAt(i)] = 0;\n for (let i = 0; i < pattern.length; i++)\n s[pattern.charAt(i)] |= 1 << pattern.length - i - 1;\n return s;\n}\nfunction match(text, pattern, searchLocation, options = {}) {\n if (text === null || pattern === null || searchLocation === null)\n throw new Error(\"Null input. (match())\");\n const loc = Math.max(0, Math.min(searchLocation, text.length));\n if (text === pattern)\n return 0;\n if (text.length) {\n if (text.substring(loc, loc + pattern.length) === pattern)\n return loc;\n } else return -1;\n return bitap(text, pattern, loc, options);\n}\nfunction diffText1(diffs) {\n const text = [];\n for (let x = 0; x < diffs.length; x++)\n diffs[x][0] !== DIFF_INSERT && (text[x] = diffs[x][1]);\n return text.join(\"\");\n}\nfunction diffText2(diffs) {\n const text = [];\n for (let x = 0; x < diffs.length; x++)\n diffs[x][0] !== DIFF_DELETE && (text[x] = diffs[x][1]);\n return text.join(\"\");\n}\nfunction levenshtein(diffs) {\n let leven = 0, insertions = 0, deletions = 0;\n for (let x = 0; x < diffs.length; x++) {\n const op = diffs[x][0], data = diffs[x][1];\n switch (op) {\n case DIFF_INSERT:\n insertions += data.length;\n break;\n case DIFF_DELETE:\n deletions += data.length;\n break;\n case DIFF_EQUAL:\n leven += Math.max(insertions, deletions), insertions = 0, deletions = 0;\n break;\n default:\n throw new Error(\"Unknown diff operation.\");\n }\n }\n return leven += Math.max(insertions, deletions), leven;\n}\nfunction xIndex(diffs, location) {\n let chars1 = 0, chars2 = 0, lastChars1 = 0, lastChars2 = 0, x;\n for (x = 0; x < diffs.length && (diffs[x][0] !== DIFF_INSERT && (chars1 += diffs[x][1].length), diffs[x][0] !== DIFF_DELETE && (chars2 += diffs[x][1].length), !(chars1 > location)); x++)\n lastChars1 = chars1, lastChars2 = chars2;\n return diffs.length !== x && diffs[x][0] === DIFF_DELETE ? lastChars2 : lastChars2 + (location - lastChars1);\n}\nfunction countUtf8Bytes(str) {\n let bytes = 0;\n for (let i = 0; i < str.length; i++) {\n const codePoint = str.codePointAt(i);\n if (typeof codePoint > \"u\")\n throw new Error(\"Failed to get codepoint\");\n bytes += utf8len(codePoint);\n }\n return bytes;\n}\nfunction adjustIndiciesToUcs2(patches, base, options = {}) {\n let byteOffset = 0, idx = 0;\n function advanceTo(target) {\n for (; byteOffset < target; ) {\n const codePoint = base.codePointAt(idx);\n if (typeof codePoint > \"u\")\n return idx;\n byteOffset += utf8len(codePoint), codePoint > 65535 ? idx += 2 : idx += 1;\n }\n if (!options.allowExceedingIndices && byteOffset !== target)\n throw new Error(\"Failed to determine byte offset\");\n return idx;\n }\n const adjusted = [];\n for (const patch of patches)\n adjusted.push({\n diffs: patch.diffs.map((diff2) => cloneDiff(diff2)),\n start1: advanceTo(patch.start1),\n start2: advanceTo(patch.start2),\n utf8Start1: patch.utf8Start1,\n utf8Start2: patch.utf8Start2,\n length1: patch.length1,\n length2: patch.length2,\n utf8Length1: patch.utf8Length1,\n utf8Length2: patch.utf8Length2\n });\n return adjusted;\n}\nfunction utf8len(codePoint) {\n return codePoint <= 127 ? 1 : codePoint <= 2047 ? 2 : codePoint <= 65535 ? 3 : 4;\n}\nconst MAX_BITS = 32, DEFAULT_MARGIN = 4;\nfunction addPadding(patches, margin = DEFAULT_MARGIN) {\n const paddingLength = margin;\n let nullPadding = \"\";\n for (let x = 1; x <= paddingLength; x++)\n nullPadding += String.fromCharCode(x);\n for (const p of patches)\n p.start1 += paddingLength, p.start2 += paddingLength, p.utf8Start1 += paddingLength, p.utf8Start2 += paddingLength;\n let patch = patches[0], diffs = patch.diffs;\n if (diffs.length === 0 || diffs[0][0] !== DIFF_EQUAL)\n diffs.unshift([DIFF_EQUAL, nullPadding]), patch.start1 -= paddingLength, patch.start2 -= paddingLength, patch.utf8Start1 -= paddingLength, patch.utf8Start2 -= paddingLength, patch.length1 += paddingLength, patch.length2 += paddingLength, patch.utf8Length1 += paddingLength, patch.utf8Length2 += paddingLength;\n else if (paddingLength > diffs[0][1].length) {\n const firstDiffLength = diffs[0][1].length, extraLength = paddingLength - firstDiffLength;\n diffs[0][1] = nullPadding.substring(firstDiffLength) + diffs[0][1], patch.start1 -= extraLength, patch.start2 -= extraLength, patch.utf8Start1 -= extraLength, patch.utf8Start2 -= extraLength, patch.length1 += extraLength, patch.length2 += extraLength, patch.utf8Length1 += extraLength, patch.utf8Length2 += extraLength;\n }\n if (patch = patches[patches.length - 1], diffs = patch.diffs, diffs.length === 0 || diffs[diffs.length - 1][0] !== DIFF_EQUAL)\n diffs.push([DIFF_EQUAL, nullPadding]), patch.length1 += paddingLength, patch.length2 += paddingLength, patch.utf8Length1 += paddingLength, patch.utf8Length2 += paddingLength;\n else if (paddingLength > diffs[diffs.length - 1][1].length) {\n const extraLength = paddingLength - diffs[diffs.length - 1][1].length;\n diffs[diffs.length - 1][1] += nullPadding.substring(0, extraLength), patch.length1 += extraLength, patch.length2 += extraLength, patch.utf8Length1 += extraLength, patch.utf8Length2 += extraLength;\n }\n return nullPadding;\n}\nfunction createPatchObject(start1, start2) {\n return {\n diffs: [],\n start1,\n start2,\n utf8Start1: start1,\n utf8Start2: start2,\n length1: 0,\n length2: 0,\n utf8Length1: 0,\n utf8Length2: 0\n };\n}\nfunction splitMax(patches, margin = DEFAULT_MARGIN) {\n const patchSize = MAX_BITS;\n for (let x = 0; x < patches.length; x++) {\n if (patches[x].length1 <= patchSize)\n continue;\n const bigpatch = patches[x];\n patches.splice(x--, 1);\n let start1 = bigpatch.start1, start2 = bigpatch.start2, preContext = \"\";\n for (; bigpatch.diffs.length !== 0; ) {\n const patch = createPatchObject(start1 - preContext.length, start2 - preContext.length);\n let empty = !0;\n if (preContext !== \"\") {\n const precontextByteCount = countUtf8Bytes(preContext);\n patch.length1 = preContext.length, patch.utf8Length1 = precontextByteCount, patch.length2 = preContext.length, patch.utf8Length2 = precontextByteCount, patch.diffs.push([DIFF_EQUAL, preContext]);\n }\n for (; bigpatch.diffs.length !== 0 && patch.length1 < patchSize - margin; ) {\n const diffType = bigpatch.diffs[0][0];\n let diffText = bigpatch.diffs[0][1], diffTextByteCount = countUtf8Bytes(diffText);\n if (diffType === DIFF_INSERT) {\n patch.length2 += diffText.length, patch.utf8Length2 += diffTextByteCount, start2 += diffText.length;\n const diff2 = bigpatch.diffs.shift();\n diff2 && patch.diffs.push(diff2), empty = !1;\n } else diffType === DIFF_DELETE && patch.diffs.length === 1 && patch.diffs[0][0] === DIFF_EQUAL && diffText.length > 2 * patchSize ? (patch.length1 += diffText.length, patch.utf8Length1 += diffTextByteCount, start1 += diffText.length, empty = !1, patch.diffs.push([diffType, diffText]), bigpatch.diffs.shift()) : (diffText = diffText.substring(0, patchSize - patch.length1 - margin), diffTextByteCount = countUtf8Bytes(diffText), patch.length1 += diffText.length, patch.utf8Length1 += diffTextByteCount, start1 += diffText.length, diffType === DIFF_EQUAL ? (patch.length2 += diffText.length, patch.utf8Length2 += diffTextByteCount, start2 += diffText.length) : empty = !1, patch.diffs.push([diffType, diffText]), diffText === bigpatch.diffs[0][1] ? bigpatch.diffs.shift() : bigpatch.diffs[0][1] = bigpatch.diffs[0][1].substring(diffText.length));\n }\n preContext = diffText2(patch.diffs), preContext = preContext.substring(preContext.length - margin);\n const postContext = diffText1(bigpatch.diffs).substring(0, margin), postContextByteCount = countUtf8Bytes(postContext);\n postContext !== \"\" && (patch.length1 += postContext.length, patch.length2 += postContext.length, patch.utf8Length1 += postContextByteCount, patch.utf8Length2 += postContextByteCount, patch.diffs.length !== 0 && patch.diffs[patch.diffs.length - 1][0] === DIFF_EQUAL ? patch.diffs[patch.diffs.length - 1][1] += postContext : patch.diffs.push([DIFF_EQUAL, postContext])), empty || patches.splice(++x, 0, patch);\n }\n }\n}\nfunction apply(patches, originalText, opts = {}) {\n if (typeof patches == \"string\")\n throw new Error(\"Patches must be an array - pass the patch to `parsePatch()` first\");\n let text = originalText;\n if (patches.length === 0)\n return [text, []];\n const parsed = adjustIndiciesToUcs2(patches, text, {\n allowExceedingIndices: opts.allowExceedingIndices\n }), margin = opts.margin || DEFAULT_MARGIN, deleteThreshold = opts.deleteThreshold || 0.4, nullPadding = addPadding(parsed, margin);\n text = nullPadding + text + nullPadding, splitMax(parsed, margin);\n let delta = 0;\n const results = [];\n for (let x = 0; x < parsed.length; x++) {\n const expectedLoc = parsed[x].start2 + delta, text1 = diffText1(parsed[x].diffs);\n let startLoc, endLoc = -1;\n if (text1.length > MAX_BITS ? (startLoc = match(text, text1.substring(0, MAX_BITS), expectedLoc), startLoc !== -1 && (endLoc = match(\n text,\n text1.substring(text1.length - MAX_BITS),\n expectedLoc + text1.length - MAX_BITS\n ), (endLoc === -1 || startLoc >= endLoc) && (startLoc = -1))) : startLoc = match(text, text1, expectedLoc), startLoc === -1)\n results[x] = !1, delta -= parsed[x].length2 - parsed[x].length1;\n else {\n results[x] = !0, delta = startLoc - expectedLoc;\n let text2;\n if (endLoc === -1 ? text2 = text.substring(startLoc, startLoc + text1.length) : text2 = text.substring(startLoc, endLoc + MAX_BITS), text1 === text2)\n text = text.substring(0, startLoc) + diffText2(parsed[x].diffs) + text.substring(startLoc + text1.length);\n else {\n let diffs = diff(text1, text2, { checkLines: !1 });\n if (text1.length > MAX_BITS && levenshtein(diffs) / text1.length > deleteThreshold)\n results[x] = !1;\n else {\n diffs = cleanupSemanticLossless(diffs);\n let index1 = 0, index2 = 0;\n for (let y = 0; y < parsed[x].diffs.length; y++) {\n const mod = parsed[x].diffs[y];\n mod[0] !== DIFF_EQUAL && (index2 = xIndex(diffs, index1)), mod[0] === DIFF_INSERT ? text = text.substring(0, startLoc + index2) + mod[1] + text.substring(startLoc + index2) : mod[0] === DIFF_DELETE && (text = text.substring(0, startLoc + index2) + text.substring(startLoc + xIndex(diffs, index1 + mod[1].length))), mod[0] !== DIFF_DELETE && (index1 += mod[1].length);\n }\n }\n }\n }\n }\n return text = text.substring(nullPadding.length, text.length - nullPadding.length), [text, results];\n}\nvar __defProp = Object.defineProperty, __getOwnPropSymbols = Object.getOwnPropertySymbols, __hasOwnProp = Object.prototype.hasOwnProperty, __propIsEnum = Object.prototype.propertyIsEnumerable, __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value, __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n __hasOwnProp.call(b, prop) && __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b))\n __propIsEnum.call(b, prop) && __defNormalProp(a, prop, b[prop]);\n return a;\n};\nconst DEFAULT_OPTS = {\n margin: 4\n};\nfunction getDefaultOpts(opts = {}) {\n return __spreadValues(__spreadValues({}, DEFAULT_OPTS), opts);\n}\nfunction make(a, b, options) {\n if (typeof a == \"string\" && typeof b == \"string\") {\n let diffs = diff(a, b, { checkLines: !0 });\n return diffs.length > 2 && (diffs = cleanupSemantic(diffs), diffs = cleanupEfficiency(diffs)), _make(a, diffs, getDefaultOpts(options));\n }\n if (a && Array.isArray(a) && typeof b > \"u\")\n return _make(diffText1(a), a, getDefaultOpts(options));\n if (typeof a == \"string\" && b && Array.isArray(b))\n return _make(a, b, getDefaultOpts(options));\n throw new Error(\"Unknown call format to make()\");\n}\nfunction _make(textA, diffs, options) {\n if (diffs.length === 0)\n return [];\n const patches = [];\n let patch = createPatchObject(0, 0), patchDiffLength = 0, charCount1 = 0, charCount2 = 0, utf8Count1 = 0, utf8Count2 = 0, prepatchText = textA, postpatchText = textA;\n for (let x = 0; x < diffs.length; x++) {\n const currentDiff = diffs[x], [diffType, diffText] = currentDiff, diffTextLength = diffText.length, diffByteLength = countUtf8Bytes(diffText);\n switch (!patchDiffLength && diffType !== DIFF_EQUAL && (patch.start1 = charCount1, patch.start2 = charCount2, patch.utf8Start1 = utf8Count1, patch.utf8Start2 = utf8Count2), diffType) {\n case DIFF_INSERT:\n patch.diffs[patchDiffLength++] = currentDiff, patch.length2 += diffTextLength, patch.utf8Length2 += diffByteLength, postpatchText = postpatchText.substring(0, charCount2) + diffText + postpatchText.substring(charCount2);\n break;\n case DIFF_DELETE:\n patch.length1 += diffTextLength, patch.utf8Length1 += diffByteLength, patch.diffs[patchDiffLength++] = currentDiff, postpatchText = postpatchText.substring(0, charCount2) + postpatchText.substring(charCount2 + diffTextLength);\n break;\n case DIFF_EQUAL:\n diffTextLength <= 2 * options.margin && patchDiffLength && diffs.length !== x + 1 ? (patch.diffs[patchDiffLength++] = currentDiff, patch.length1 += diffTextLength, patch.length2 += diffTextLength, patch.utf8Length1 += diffByteLength, patch.utf8Length2 += diffByteLength) : diffTextLength >= 2 * options.margin && patchDiffLength && (addContext(patch, prepatchText, options), patches.push(patch), patch = createPatchObject(-1, -1), patchDiffLength = 0, prepatchText = postpatchText, charCount1 = charCount2, utf8Count1 = utf8Count2);\n break;\n default:\n throw new Error(\"Unknown diff type\");\n }\n diffType !== DIFF_INSERT && (charCount1 += diffTextLength, utf8Count1 += diffByteLength), diffType !== DIFF_DELETE && (charCount2 += diffTextLength, utf8Count2 += diffByteLength);\n }\n return patchDiffLength && (addContext(patch, prepatchText, options), patches.push(patch)), patches;\n}\nfunction addContext(patch, text, opts) {\n if (text.length === 0)\n return;\n let pattern = text.substring(patch.start2, patch.start2 + patch.length1), padding = 0;\n for (; text.indexOf(pattern) !== text.lastIndexOf(pattern) && pattern.length < MAX_BITS - opts.margin - opts.margin; )\n padding += opts.margin, pattern = text.substring(patch.start2 - padding, patch.start2 + patch.length1 + padding);\n padding += opts.margin;\n let prefixStart = patch.start2 - padding;\n prefixStart >= 1 && isLowSurrogate(text[prefixStart]) && prefixStart--;\n const prefix = text.substring(prefixStart, patch.start2);\n prefix && patch.diffs.unshift([DIFF_EQUAL, prefix]);\n const prefixLength = prefix.length, prefixUtf8Length = countUtf8Bytes(prefix);\n let suffixEnd = patch.start2 + patch.length1 + padding;\n suffixEnd < text.length && isLowSurrogate(text[suffixEnd]) && suffixEnd++;\n const suffix = text.substring(patch.start2 + patch.length1, suffixEnd);\n suffix && patch.diffs.push([DIFF_EQUAL, suffix]);\n const suffixLength = suffix.length, suffixUtf8Length = countUtf8Bytes(suffix);\n patch.start1 -= prefixLength, patch.start2 -= prefixLength, patch.utf8Start1 -= prefixUtf8Length, patch.utf8Start2 -= prefixUtf8Length, patch.length1 += prefixLength + suffixLength, patch.length2 += prefixLength + suffixLength, patch.utf8Length1 += prefixUtf8Length + suffixUtf8Length, patch.utf8Length2 += prefixUtf8Length + suffixUtf8Length;\n}\nconst patchHeader = /^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$/;\nfunction parse(textline) {\n if (!textline)\n return [];\n const patches = [], lines = textline.split(`\n`);\n let textPointer = 0;\n for (; textPointer < lines.length; ) {\n const m = lines[textPointer].match(patchHeader);\n if (!m)\n throw new Error(`Invalid patch string: ${lines[textPointer]}`);\n const patch = createPatchObject(toInt(m[1]), toInt(m[3]));\n for (patches.push(patch), m[2] === \"\" ? (patch.start1--, patch.utf8Start1--, patch.length1 = 1, patch.utf8Length1 = 1) : m[2] === \"0\" ? (patch.length1 = 0, patch.utf8Length1 = 0) : (patch.start1--, patch.utf8Start1--, patch.utf8Length1 = toInt(m[2]), patch.length1 = patch.utf8Length1), m[4] === \"\" ? (patch.start2--, patch.utf8Start2--, patch.length2 = 1, patch.utf8Length2 = 1) : m[4] === \"0\" ? (patch.length2 = 0, patch.utf8Length2 = 0) : (patch.start2--, patch.utf8Start2--, patch.utf8Length2 = toInt(m[4]), patch.length2 = patch.utf8Length2), textPointer++; textPointer < lines.length; ) {\n const currentLine = lines[textPointer], sign = currentLine.charAt(0);\n if (sign === \"@\")\n break;\n if (sign === \"\") {\n textPointer++;\n continue;\n }\n let line;\n try {\n line = decodeURI(currentLine.slice(1));\n } catch (ex) {\n throw new Error(`Illegal escape in parse: ${currentLine}`);\n }\n const utf8Diff = countUtf8Bytes(line) - line.length;\n if (sign === \"-\")\n patch.diffs.push([DIFF_DELETE, line]), patch.length1 -= utf8Diff;\n else if (sign === \"+\")\n patch.diffs.push([DIFF_INSERT, line]), patch.length2 -= utf8Diff;\n else if (sign === \" \")\n patch.diffs.push([DIFF_EQUAL, line]), patch.length1 -= utf8Diff, patch.length2 -= utf8Diff;\n else\n throw new Error(`Invalid patch mode \"${sign}\" in: ${line}`);\n textPointer++;\n }\n }\n return patches;\n}\nfunction toInt(num) {\n return parseInt(num, 10);\n}\nfunction stringify(patches) {\n return patches.map(stringifyPatch).join(\"\");\n}\nfunction stringifyPatch(patch) {\n const { utf8Length1, utf8Length2, utf8Start1, utf8Start2, diffs } = patch;\n let coords1;\n utf8Length1 === 0 ? coords1 = `${utf8Start1},0` : utf8Length1 === 1 ? coords1 = `${utf8Start1 + 1}` : coords1 = `${utf8Start1 + 1},${utf8Length1}`;\n let coords2;\n utf8Length2 === 0 ? coords2 = `${utf8Start2},0` : utf8Length2 === 1 ? coords2 = `${utf8Start2 + 1}` : coords2 = `${utf8Start2 + 1},${utf8Length2}`;\n const text = [`@@ -${coords1} +${coords2} @@\n`];\n let op;\n for (let x = 0; x < diffs.length; x++) {\n switch (diffs[x][0]) {\n case DIFF_INSERT:\n op = \"+\";\n break;\n case DIFF_DELETE:\n op = \"-\";\n break;\n case DIFF_EQUAL:\n op = \" \";\n break;\n default:\n throw new Error(\"Unknown patch operation.\");\n }\n text[x + 1] = `${op + encodeURI(diffs[x][1])}\n`;\n }\n return text.join(\"\").replace(/%20/g, \" \");\n}\nexport {\n DIFF_DELETE,\n DIFF_EQUAL,\n DIFF_INSERT,\n adjustIndiciesToUcs2,\n apply as applyPatches,\n cleanupEfficiency,\n cleanupSemantic,\n diff as makeDiff,\n make as makePatches,\n match,\n parse as parsePatch,\n stringifyPatch,\n stringify as stringifyPatches,\n xIndex\n};\n//# sourceMappingURL=index.js.map\n","import \"./module.css\";\nimport {cleanupSemantic as $haT8Y$cleanupSemantic, makeDiff as $haT8Y$makeDiff} from \"@sanity/diff-match-patch\";\n\n/* eslint-disable no-console */ /* Using local update by @dmsnell:\nhttps://github.com/dmsnell/diff-match-patch/blob/issues/69-broken-surrogate-pairs/javascript/diff_match_patch_uncompressed.js\n*/ \n/**\n * Simple is object check.\n * @param item\n * @returns {boolean}\n */ function $d0b82e0396560011$var$isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item) && item !== null;\n}\nfunction $d0b82e0396560011$export$2e2bcd8739ae039(target, source) {\n if ($d0b82e0396560011$var$isObject(target) && $d0b82e0396560011$var$isObject(source)) Object.keys(source).forEach((key)=>{\n if (key === '__proto__' || key === 'constructor') return;\n if ($d0b82e0396560011$var$isObject(source[key])) {\n if (!target[key] || !$d0b82e0396560011$var$isObject(target[key])) target[key] = source[key];\n $d0b82e0396560011$export$2e2bcd8739ae039(target[key], source[key]);\n } else Object.assign(target, {\n [key]: source[key]\n });\n });\n return target;\n}\n\n\nfunction $a61894d52139a1b7$export$2e2bcd8739ae039(callback, wait, immediate = false) {\n let timeout = null;\n let initialCall = true;\n return (...args)=>{\n const callNow = immediate && initialCall;\n const next = ()=>{\n callback.apply(this, args);\n timeout = null;\n };\n if (callNow) {\n initialCall = false;\n next();\n }\n if (!timeout) timeout = setTimeout(next, wait);\n };\n}\n\n\nfunction $20710ff753814db4$export$2e2bcd8739ae039(callback, wait) {\n let timeout;\n return (...args)=>{\n const context = this;\n clearTimeout(timeout);\n timeout = setTimeout(()=>callback.apply(context, args), wait);\n };\n}\n\n\nfunction $f81fe5d88190aca6$export$2e2bcd8739ae039(value = '') {\n const normalized = value.replace(/\\r\\n/g, '\\n');\n return normalized;\n}\n\n\n// generates a Bezier curve in SVG format\nfunction $238bad4938ddde7c$export$2e2bcd8739ae039(startX, startY, endX, endY) {\n const w = endX - startX;\n const halfWidth = startX + w / 2;\n // now create the curve\n // position it at the initial x,y coords\n // This is of the form \"C M,N O,P Q,R\" where C is a directive for SVG (\"curveto\"),\n // M,N are the first curve control point, O,P the second control point\n // and Q,R are the final coords\n return `M ${startX} ${startY} C ${halfWidth},${startY} ${halfWidth},${endY} ${endX},${endY}`;\n}\n\n\nvar $b5c286a254b261e6$export$2e2bcd8739ae039 = {\n DIFF_EQUAL: 0,\n DIFF_DELETE: -1,\n DIFF_INSERT: 1,\n EDITOR_RIGHT: 'right',\n EDITOR_LEFT: 'left',\n RTL: 'rtl',\n LTR: 'ltr',\n SVG_NS: 'http://www.w3.org/2000/svg',\n DIFF_GRANULARITY_SPECIFIC: 'specific',\n DIFF_GRANULARITY_BROAD: 'broad'\n};\n\n\nfunction $3d931e456f0d108c$export$2e2bcd8739ae039(acediff, editor) {\n let { mode: mode } = acediff.options;\n if (editor === (0, $b5c286a254b261e6$export$2e2bcd8739ae039).EDITOR_LEFT && acediff.options.left.mode !== null) mode = acediff.options.left.mode;\n if (editor === (0, $b5c286a254b261e6$export$2e2bcd8739ae039).EDITOR_RIGHT && acediff.options.right.mode !== null) mode = acediff.options.right.mode;\n return mode;\n}\n\n\n\nfunction $893f0e07a87dd83c$export$2e2bcd8739ae039(acediff, editor) {\n let { theme: theme } = acediff.options;\n if (editor === (0, $b5c286a254b261e6$export$2e2bcd8739ae039).EDITOR_LEFT && acediff.options.left.theme !== null) theme = acediff.options.left.theme;\n if (editor === (0, $b5c286a254b261e6$export$2e2bcd8739ae039).EDITOR_RIGHT && acediff.options.right.theme !== null) theme = acediff.options.right.theme;\n return theme;\n}\n\n\nfunction $fc0df9ae77cc2f56$export$2e2bcd8739ae039(editor, line) {\n return editor.ace.getSession().doc.getLine(line);\n}\n\n\nfunction $7eb2da7d8a00890b$export$2e2bcd8739ae039(acediff) {\n // editorHeight: document.getElementById(acediff.options.left.id).clientHeight\n return document.getElementById(acediff.options.left.id).offsetHeight;\n}\n\n\nfunction $c0c16fed0f3352bb$export$2e2bcd8739ae039(info) {\n const el = document.createElement('div');\n const props = {\n class: info.className,\n style: `top:${info.topOffset}px`,\n title: info.tooltip,\n 'data-diff-index': info.diffIndex\n };\n for(const key in props)el.setAttribute(key, props[key]);\n el.innerHTML = info.arrowContent;\n return el;\n}\n\n\n/**\n * Search for element in parent and create it if it can't be found\n * @param {*HTMLElement} parent\n * @param {string} elClass Element class\n *\n * Returns ID of the element\n */ function $419710df3593df8d$export$2e2bcd8739ae039(parent, elClass) {\n const guid = Math.random().toString(36).substr(2, 5);\n const newId = `js-${elClass}-${guid}`;\n const currentEl = parent.querySelector(`.${elClass}`);\n if (currentEl) {\n currentEl.id = currentEl.id || newId;\n return currentEl.id;\n }\n const el = document.createElement('div');\n parent.appendChild(el);\n el.className = elClass;\n el.id = newId;\n return el.id;\n}\n\n\nfunction $e485cb2ed1808217$export$2e2bcd8739ae039(elSelector, eventName, selector, fn) {\n const element = elSelector === 'document' ? document : document.querySelector(elSelector);\n element.addEventListener(eventName, (event)=>{\n const possibleTargets = element.querySelectorAll(selector);\n const { target: target } = event;\n for(let i = 0, l = possibleTargets.length; i < l; i += 1){\n let el = target;\n const p = possibleTargets[i];\n while(el && el !== element){\n if (el === p) fn.call(p, event);\n el = el.parentNode;\n }\n }\n });\n}\n\n\n\n\n\n// Range module placeholder\nlet $cd537e9fa9c12db2$var$Range;\nfunction $cd537e9fa9c12db2$var$getRangeModule(ace) {\n if (ace.Range) return ace.Range;\n const requireFunc = ace.acequire || ace.require;\n if (requireFunc) return requireFunc('ace/range');\n return false;\n}\nfunction $cd537e9fa9c12db2$export$2e2bcd8739ae039(options = {}) {\n // Ensure instance is a constructor with `new`\n if (!(this instanceof $cd537e9fa9c12db2$export$2e2bcd8739ae039)) return new $cd537e9fa9c12db2$export$2e2bcd8739ae039(options);\n // Current instance we pass around to other functions\n const acediff = this;\n const getDefaultAce = ()=>window ? window.ace : undefined;\n acediff.options = (0, $d0b82e0396560011$export$2e2bcd8739ae039)({\n ace: getDefaultAce(),\n mode: null,\n theme: null,\n element: null,\n diffGranularity: (0, $b5c286a254b261e6$export$2e2bcd8739ae039).DIFF_GRANULARITY_BROAD,\n lockScrolling: false,\n showDiffs: true,\n showConnectors: true,\n maxDiffs: 5000,\n left: {\n id: null,\n content: null,\n mode: null,\n theme: null,\n editable: true,\n copyLinkEnabled: true\n },\n right: {\n id: null,\n content: null,\n mode: null,\n theme: null,\n editable: true,\n copyLinkEnabled: true\n },\n classes: {\n gutterID: 'acediff__gutter',\n diff: 'acediff__diffLine',\n connector: 'acediff__connector',\n newCodeConnectorLink: 'acediff__newCodeConnector',\n newCodeConnectorLinkContent: '&#8594;',\n deletedCodeConnectorLink: 'acediff__deletedCodeConnector',\n deletedCodeConnectorLinkContent: '&#8592;',\n copyRightContainer: 'acediff__copy--right',\n copyLeftContainer: 'acediff__copy--left'\n },\n connectorYOffset: 0\n }, options);\n const { ace: ace } = acediff.options;\n if (!ace) {\n const errMessage = 'No ace editor found nor supplied - `options.ace` or `window.ace` is missing';\n console.error(errMessage);\n return new Error(errMessage);\n }\n $cd537e9fa9c12db2$var$Range = $cd537e9fa9c12db2$var$getRangeModule(ace);\n if (!$cd537e9fa9c12db2$var$Range) {\n const errMessage = 'Could not require Range module for Ace. Depends on your bundling strategy, but it usually comes with Ace itself. See https://ace.c9.io/api/range.html, open an issue on GitHub ace-diff/ace-diff';\n console.error(errMessage);\n return new Error(errMessage);\n }\n if (acediff.options.element === null) {\n const errMessage = 'You need to specify an element for Ace-diff - `options.element` is missing';\n console.error(errMessage);\n return new Error(errMessage);\n }\n if (acediff.options.element instanceof HTMLElement) acediff.el = acediff.options.element;\n else acediff.el = document.body.querySelector(acediff.options.element);\n if (!acediff.el) {\n const errMessage = `Can't find the specified element ${acediff.options.element}`;\n console.error(errMessage);\n return new Error(errMessage);\n }\n acediff.options.left.id = (0, $419710df3593df8d$export$2e2bcd8739ae039)(acediff.el, 'acediff__left');\n acediff.options.classes.gutterID = (0, $419710df3593df8d$export$2e2bcd8739ae039)(acediff.el, 'acediff__gutter');\n acediff.options.right.id = (0, $419710df3593df8d$export$2e2bcd8739ae039)(acediff.el, 'acediff__right');\n acediff.el.innerHTML = `<div class=\"acediff__wrap\">${acediff.el.innerHTML}</div>`;\n // instantiate the editors in an internal data structure\n // that will store a little info about the diffs and\n // editor content\n acediff.editors = {\n left: {\n ace: ace.edit(acediff.options.left.id),\n markers: [],\n lineLengths: []\n },\n right: {\n ace: ace.edit(acediff.options.right.id),\n markers: [],\n lineLengths: []\n },\n editorHeight: null\n };\n // set up the editors\n acediff.editors.left.ace.getSession().setMode((0, $3d931e456f0d108c$export$2e2bcd8739ae039)(acediff, (0, $b5c286a254b261e6$export$2e2bcd8739ae039).EDITOR_LEFT));\n acediff.editors.right.ace.getSession().setMode((0, $3d931e456f0d108c$export$2e2bcd8739ae039)(acediff, (0, $b5c286a254b261e6$export$2e2bcd8739ae039).EDITOR_RIGHT));\n acediff.editors.left.ace.setReadOnly(!acediff.options.left.editable);\n acediff.editors.right.ace.setReadOnly(!acediff.options.right.editable);\n acediff.editors.left.ace.setTheme((0, $893f0e07a87dd83c$export$2e2bcd8739ae039)(acediff, (0, $b5c286a254b261e6$export$2e2bcd8739ae039).EDITOR_LEFT));\n acediff.editors.right.ace.setTheme((0, $893f0e07a87dd83c$export$2e2bcd8739ae039)(acediff, (0, $b5c286a254b261e6$export$2e2bcd8739ae039).EDITOR_RIGHT));\n acediff.editors.left.ace.setValue((0, $f81fe5d88190aca6$export$2e2bcd8739ae039)(acediff.options.left.content), -1);\n acediff.editors.right.ace.setValue((0, $f81fe5d88190aca6$export$2e2bcd8739ae039)(acediff.options.right.content), -1);\n // store the visible height of the editors (assumed the same)\n acediff.editors.editorHeight = (0, $7eb2da7d8a00890b$export$2e2bcd8739ae039)(acediff);\n // The lineHeight is set to 0 initially and we need to wait for another tick to get it\n // Thus moving the diff() with it\n setTimeout(()=>{\n // assumption: both editors have same line heights\n acediff.lineHeight = acediff.editors.left.ace.renderer.lineHeight;\n $cd537e9fa9c12db2$var$addEventHandlers(acediff);\n $cd537e9fa9c12db2$var$createCopyContainers(acediff);\n $cd537e9fa9c12db2$var$createGutter(acediff);\n acediff.diff();\n }, 1);\n}\n// our public API\n$cd537e9fa9c12db2$export$2e2bcd8739ae039.prototype = {\n // allows on-the-fly changes to the AceDiff instance settings\n setOptions (options) {\n (0, $d0b82e0396560011$export$2e2bcd8739ae039)(this.options, options);\n this.diff();\n },\n getNumDiffs () {\n return this.diffs.length;\n },\n // exposes the Ace editors in case the dev needs it\n getEditors () {\n return {\n left: this.editors.left.ace,\n right: this.editors.right.ace\n };\n },\n // our main diffing function. I actually don't think this needs to exposed:\n // it's called automatically, but just to be safe, it's included\n diff () {\n const val1 = this.editors.left.ace.getSession().getValue();\n const val2 = this.editors.right.ace.getSession().getValue();\n // Main diff method that calculates the diffs\n const diff = (0, $haT8Y$cleanupSemantic)((0, $haT8Y$makeDiff)(val2, val1));\n this.editors.left.lineLengths = $cd537e9fa9c12db2$var$getLineLengths(this.editors.left);\n this.editors.right.lineLengths = $cd537e9fa9c12db2$var$getLineLengths(this.editors.right);\n // parse the raw diff into something a little more palatable\n const diffs = [];\n const offset = {\n left: 0,\n right: 0\n };\n diff.forEach((chunk)=>{\n const chunkType = chunk[0];\n let text = chunk[1];\n // oddly, occasionally the algorithm returns a diff with no changes made\n if (text.length === 0) return;\n if (chunkType === (0, $b5c286a254b261e6$export$2e2bcd8739ae039).DIFF_EQUAL) {\n offset.left += text.length;\n offset.right += text.length;\n } else if (chunkType === (0, $b5c286a254b261e6$export$2e2bcd8739ae039).DIFF_DELETE) {\n diffs.push($cd537e9fa9c12db2$var$computeDiff(this, (0, $b5c286a254b261e6$export$2e2bcd8739ae039).DIFF_DELETE, offset.left, offset.right, text));\n offset.right += text.length;\n } else if (chunkType === (0, $b5c286a254b261e6$export$2e2bcd8739ae039).DIFF_INSERT) {\n diffs.push($cd537e9fa9c12db2$var$computeDiff(this, (0, $b5c286a254b261e6$export$2e2bcd8739ae039).DIFF_INSERT, offset.left, offset.right, text));\n offset.left += text.length;\n }\n }, this);\n // simplify our computed diffs; this groups together multiple diffs on subsequent lines\n this.diffs = $cd537e9fa9c12db2$var$simplifyDiffs(this, diffs);\n // if we're dealing with too many diffs, fail silently\n if (this.diffs.length > this.options.maxDiffs) return;\n $cd537e9fa9c12db2$var$clearDiffs(this);\n $cd537e9fa9c12db2$var$decorate(this);\n },\n destroy () {\n // destroy the two editors\n const leftValue = this.editors.left.ace.getValue();\n this.editors.left.ace.destroy();\n let oldDiv = this.editors.left.ace.container;\n let newDiv = oldDiv.cloneNode(false);\n newDiv.textContent = leftValue;\n oldDiv.parentNode.replaceChild(newDiv, oldDiv);\n const rightValue = this.editors.right.ace.getValue();\n this.editors.right.ace.destroy();\n oldDiv = this.editors.right.ace.container;\n newDiv = oldDiv.cloneNode(false);\n newDiv.textContent = rightValue;\n oldDiv.parentNode.replaceChild(newDiv, oldDiv);\n const elementById = document.getElementById(this.options.classes.gutterID);\n if (elementById) elementById.innerHTML = '';\n this.removeEventHandlers();\n }\n};\nfunction $cd537e9fa9c12db2$var$addEventHandlers(acediff) {\n acediff.editors.left.ace.getSession().on('changeScrollTop', (0, $a61894d52139a1b7$export$2e2bcd8739ae039)(()=>{\n $cd537e9fa9c12db2$var$updateGap(acediff);\n }, 16));\n acediff.editors.right.ace.getSession().on('changeScrollTop', (0, $a61894d52139a1b7$export$2e2bcd8739ae039)(()=>{\n $cd537e9fa9c12db2$var$updateGap(acediff);\n }, 16));\n const diff = acediff.diff.bind(acediff);\n acediff.editors.left.ace.on('change', diff);\n acediff.editors.right.ace.on('change', diff);\n if (acediff.options.left.copyLinkEnabled) (0, $e485cb2ed1808217$export$2e2bcd8739ae039)(`#${acediff.options.classes.gutterID}`, 'click', `.${acediff.options.classes.newCodeConnectorLink}`, (e)=>{\n $cd537e9fa9c12db2$var$copy(acediff, e, (0, $b5c286a254b261e6$export$2e2bcd8739ae039).LTR);\n });\n if (acediff.options.right.copyLinkEnabled) (0, $e485cb2ed1808217$export$2e2bcd8739ae039)(`#${acediff.options.classes.gutterID}`, 'click', `.${acediff.options.classes.deletedCodeConnectorLink}`, (e)=>{\n $cd537e9fa9c12db2$var$copy(acediff, e, (0, $b5c286a254b261e6$export$2e2bcd8739ae039).RTL);\n });\n const onResize = (0, $20710ff753814db4$export$2e2bcd8739ae039)(()=>{\n acediff.editors.availableHeight = document.getElementById(acediff.options.left.id).offsetHeight;\n // TODO this should re-init gutter\n acediff.diff();\n }, 250);\n window.addEventListener('resize', onResize);\n acediff.removeEventHandlers = ()=>{\n window.removeEventListener('resize', onResize);\n };\n}\nfunction $cd537e9fa9c12db2$var$copy(acediff, e, dir) {\n const diffIndex = parseInt(e.target.getAttribute('data-diff-index'), 10);\n const diff = acediff.diffs[diffIndex];\n let sourceEditor;\n let targetEditor;\n let startLine;\n let endLine;\n let targetStartLine;\n let targetEndLine;\n if (dir === (0, $b5c286a254b261e6$export$2e2bcd8739ae039).LTR) {\n sourceEditor = acediff.editors.left;\n targetEditor = acediff.editors.right;\n startLine = diff.leftStartLine;\n endLine = diff.leftEndLine;\n targetStartLine = diff.rightStartLine;\n targetEndLine = diff.rightEndLine;\n } else {\n sourceEditor = acediff.editors.right;\n targetEditor = acediff.editors.left;\n startLine = diff.rightStartLine;\n endLine = diff.rightEndLine;\n targetStartLine = diff.leftStartLine;\n targetEndLine = diff.leftEndLine;\n }\n let contentToInsert = '';\n for(let i = startLine; i < endLine; i += 1){\n contentToInsert += (0, $fc0df9ae77cc2f56$export$2e2bcd8739ae039)(sourceEditor, i);\n // JMT: If the first line is blank we add an extra newline\n // because when it is inserted the first one is effectively eaten\n // by the replace and merging of the lines\n // However if the targetStartLine is the very top then we don't\n // if (i === startLine && contentToInsert === '' && targetStartLine != 0) {\n // contentToInsert += '\\n'\n // }\n // Only add a trailing newline if we're not on the final line\n if (i < sourceEditor.ace.getSession().getLength() - 1) contentToInsert += '\\n';\n }\n // keep track of the scroll height\n const h = targetEditor.ace.getSession().getScrollTop();\n targetEditor.ace.getSession().replace(new $cd537e9fa9c12db2$var$Range(targetStartLine, 0, targetEndLine, 0), contentToInsert);\n targetEditor.ace.getSession().setScrollTop(parseInt(h, 10));\n acediff.diff();\n}\nfunction $cd537e9fa9c12db2$var$getLineLengths(editor) {\n // getAllLines() returns an array of strings, each string is a line in the editor\n // however the lines do not include the newline character at the end, so we need to add 1\n const lines = editor.ace.getSession().doc.getAllLines();\n const lineLengths = [];\n lines.forEach((line)=>{\n lineLengths.push(line.length + 1) // +1 for the newline char\n ;\n });\n return lineLengths;\n}\n// shows a diff in one of the two editors.\nfunction $cd537e9fa9c12db2$var$showDiff(acediff, editor, startLine, endLine, className) {\n const editorInstance = acediff.editors[editor];\n if (endLine < startLine) // can this occur? Just in case.\n endLine = startLine;\n const classNames = `${className} ${endLine > startLine ? 'lines' : 'targetOnly'}`;\n if (endLine > startLine) endLine -= 1 /* because endLine is usually + 1 */ ;\n // to get Ace to highlight the full row we just set the start and end chars to 0 and 1\n editorInstance.markers.push(editorInstance.ace.session.addMarker(new $cd537e9fa9c12db2$var$Range(startLine, 0, endLine, 1), classNames, 'fullLine'));\n}\n// called onscroll. Updates the gap to ensure the connectors are all lining up\nfunction $cd537e9fa9c12db2$var$updateGap(acediff) {\n $cd537e9fa9c12db2$var$clearDiffs(acediff);\n $cd537e9fa9c12db2$var$decorate(acediff);\n // reposition the copy containers containing all the arrows\n $cd537e9fa9c12db2$var$positionCopyContainers(acediff);\n}\nfunction $cd537e9fa9c12db2$var$clearDiffs(acediff) {\n acediff.editors.left.markers.forEach((marker)=>{\n acediff.editors.left.ace.getSession().removeMarker(marker);\n }, acediff);\n acediff.editors.right.markers.forEach((marker)=>{\n acediff.editors.right.ace.getSession().removeMarker(marker);\n }, acediff);\n}\nfunction $cd537e9fa9c12db2$var$addConnector(acediff, leftStartLine, leftEndLine, rightStartLine, rightEndLine) {\n const leftScrollTop = acediff.editors.left.ace.getSession().getScrollTop();\n const rightScrollTop = acediff.editors.right.ace.getSession().getScrollTop();\n // All connectors, regardless of ltr or rtl\n // have the same point system, even if p1 === p3 or p2 === p4\n // p1 p2\n //\n // p3 p4\n acediff.connectorYOffset = 1;\n const p1_x = -1;\n const p1_y = leftStartLine * acediff.lineHeight - leftScrollTop + 0.5;\n const p2_x = acediff.gutterWidth + 1;\n const p2_y = rightStartLine * acediff.lineHeight - rightScrollTop + 0.5;\n const p3_x = -1;\n const p3_y = leftEndLine * acediff.lineHeight - leftScrollTop + acediff.connectorYOffset + 0.5;\n const p4_x = acediff.gutterWidth + 1;\n const p4_y = rightEndLine * acediff.lineHeight - rightScrollTop + acediff.connectorYOffset + 0.5;\n const curve1 = (0, $238bad4938ddde7c$export$2e2bcd8739ae039)(p1_x, p1_y, p2_x, p2_y);\n const curve2 = (0, $238bad4938ddde7c$export$2e2bcd8739ae039)(p4_x, p4_y, p3_x, p3_y);\n const verticalLine1 = `L${p2_x},${p2_y} ${p4_x},${p4_y}`;\n const verticalLine2 = `L${p3_x},${p3_y} ${p1_x},${p1_y}`;\n const d = `${curve1} ${verticalLine1} ${curve2} ${verticalLine2}`;\n const el = document.createElementNS((0, $b5c286a254b261e6$export$2e2bcd8739ae039).SVG_NS, 'path');\n el.setAttribute('d', d);\n el.setAttribute('class', acediff.options.classes.connector);\n acediff.gutterSVG.appendChild(el);\n}\nfunction $cd537e9fa9c12db2$var$addCopyArrows(acediff, info, diffIndex) {\n if (info.leftEndLine > info.leftStartLine && acediff.options.left.copyLinkEnabled) {\n const arrow = (0, $c0c16fed0f3352bb$export$2e2bcd8739ae039)({\n className: acediff.options.classes.newCodeConnectorLink,\n topOffset: info.leftStartLine * acediff.lineHeight,\n tooltip: 'Copy to right',\n diffIndex: diffIndex,\n arrowContent: acediff.options.classes.newCodeConnectorLinkContent\n });\n acediff.copyRightContainer.appendChild(arrow);\n }\n if (info.rightEndLine > info.rightStartLine && acediff.options.right.copyLinkEnabled) {\n const arrow = (0, $c0c16fed0f3352bb$export$2e2bcd8739ae039)({\n className: acediff.options.classes.deletedCodeConnectorLink,\n topOffset: info.rightStartLine * acediff.lineHeight,\n tooltip: 'Copy to left',\n diffIndex: diffIndex,\n arrowContent: acediff.options.classes.deletedCodeConnectorLinkContent\n });\n acediff.copyLeftContainer.appendChild(arrow);\n }\n}\nfunction $cd537e9fa9c12db2$var$positionCopyContainers(acediff) {\n const leftTopOffset = acediff.editors.left.ace.getSession().getScrollTop();\n const rightTopOffset = acediff.editors.right.ace.getSession().getScrollTop();\n acediff.copyRightContainer.style.cssText = `top: ${-leftTopOffset}px`;\n acediff.copyLeftContainer.style.cssText = `top: ${-rightTopOffset}px`;\n}\n/**\n // eslint-disable-next-line max-len\n * This method takes the raw diffing info from the Google lib and returns a nice clean object of the following\n * form:\n * {\n * leftStartLine:\n * leftEndLine:\n * rightStartLine:\n * rightEndLine:\n * }\n *\n * Ultimately, that's all the info we need to highlight the appropriate lines in the left + right editor, add the\n * SVG connectors, and include the appropriate <<, >> arrows.\n *\n * Note: leftEndLine and rightEndLine are always the start of the NEXT line, so for a single line diff, there will\n * be 1 separating the startLine and endLine values. So if leftStartLine === leftEndLine or rightStartLine ===\n * rightEndLine, it means that new content from the other editor is being inserted and a single 1px line will be\n * drawn.\n */ function $cd537e9fa9c12db2$var$computeDiff(acediff, diffType, offsetLeft, offsetRight, diffText) {\n let lineInfo = {};\n if (diffType === (0, $b5c286a254b261e6$export$2e2bcd8739ae039).DIFF_INSERT) {\n // pretty confident this returns the right stuff for the left editor: start & end line & char\n let info = $cd537e9fa9c12db2$var$getSingleDiffInfo(acediff.editors.left, offsetLeft, diffText);\n // this is the ACTUAL undoctored current line in the other editor. It's always right. Doesn't mean it's\n // going to be used as the start line for the diff though.\n let currentLineOtherEditor = $cd537e9fa9c12db2$var$getLineForCharPosition(acediff.editors.right, offsetRight);\n let numCharsOnLineOtherEditor = $cd537e9fa9c12db2$var$getCharsOnLine(acediff.editors.right, currentLineOtherEditor);\n const numCharsOnLeftEditorStartLine = $cd537e9fa9c12db2$var$getCharsOnLine(acediff.editors.left, info.startLine);\n let rightStartLine = currentLineOtherEditor;\n let sameLineInsert = info.startLine === info.endLine;\n // whether or not this diff is a plain INSERT into the other editor, or overwrites a line take a little work to\n // figure out. This feels like the hardest part of the entire script.\n let numRows = 0;\n if (// dense, but this accommodates two scenarios:\n // 1. where a completely fresh new line is being inserted in left editor, we want the line on right to stay a 1px line\n // 2. where a new character is inserted at the start of a newline on the left but the line contains other stuff,\n // we DO want to make it a full line\n (info.startChar > 0 || sameLineInsert && diffText.length < numCharsOnLeftEditorStartLine) && // if the right editor line was empty, it's ALWAYS a single line insert [not an OR above?]\n numCharsOnLineOtherEditor > 0 && // if the text being inserted starts mid-line\n info.startChar < numCharsOnLeftEditorStartLine) numRows++;\n lineInfo = {\n leftStartLine: info.startLine,\n leftEndLine: info.endLine + 1,\n rightStartLine: rightStartLine,\n rightEndLine: rightStartLine + numRows\n };\n } else {\n let info = $cd537e9fa9c12db2$var$getSingleDiffInfo(acediff.editors.right, offsetRight, diffText);\n let currentLineOtherEditor = $cd537e9fa9c12db2$var$getLineForCharPosition(acediff.editors.left, offsetLeft);\n let numCharsOnLineOtherEditor = $cd537e9fa9c12db2$var$getCharsOnLine(acediff.editors.left, currentLineOtherEditor);\n const numCharsOnRightEditorStartLine = $cd537e9fa9c12db2$var$getCharsOnLine(acediff.editors.right, info.startLine);\n let leftStartLine = currentLineOtherEditor;\n let sameLineInsert = info.startLine === info.endLine;\n let numRows = 0;\n if (// dense, but this accommodates two scenarios:\n // 1. where a completely fresh new line is being inserted in left editor, we want the line on right to stay a 1px line\n // 2. where a new character is inserted at the start of a newline on the left but the line contains other stuff,\n // we DO want to make it a full line\n (info.startChar > 0 || sameLineInsert && diffText.length < numCharsOnRightEditorStartLine) && // if the right editor line was empty, it's ALWAYS a single line insert [not an OR above?]\n numCharsOnLineOtherEditor > 0 && // if the text being inserted starts mid-line\n info.startChar < numCharsOnRightEditorStartLine) numRows++;\n lineInfo = {\n leftStartLine: leftStartLine,\n leftEndLine: leftStartLine + numRows,\n rightStartLine: info.startLine,\n rightEndLine: info.endLine + 1\n };\n }\n return lineInfo;\n}\n// helper to return the startline, endline, startChar and endChar for a diff in a particular editor. Pretty\n// fussy function\nfunction $cd537e9fa9c12db2$var$getSingleDiffInfo(editor, offset, diffString) {\n const info = {\n startLine: 0,\n startChar: 0,\n endLine: 0,\n endChar: 0\n };\n const endCharNum = offset + diffString.length;\n let runningTotal = 0;\n let startLineSet = false;\n let endLineSet = false;\n editor.lineLengths.forEach((lineLength, lineIndex)=>{\n runningTotal += lineLength;\n if (!startLineSet && offset < runningTotal) {\n info.startLine = lineIndex;\n info.startChar = offset - runningTotal + lineLength;\n startLineSet = true;\n }\n if (!endLineSet && endCharNum <= runningTotal) {\n info.endLine = lineIndex;\n info.endChar = endCharNum - runningTotal + lineLength;\n endLineSet = true;\n }\n });\n // if the start char is the final char on the line, it's a newline & we ignore it\n if (info.startChar > 0 && $cd537e9fa9c12db2$var$getCharsOnLine(editor, info.startLine) === info.startChar) {\n info.startLine++;\n info.startChar = 0;\n }\n // if the end char is the first char on the line, we don't want to highlight that extra line\n if (info.endChar === 0) info.endLine--;\n const endsWithNewline = /\\n$/.test(diffString);\n if (info.startChar > 0 && endsWithNewline) info.endLine++;\n return info;\n}\n// note that this and everything else in this script uses 0-indexed row numbers\nfunction $cd537e9fa9c12db2$var$getCharsOnLine(editor, line) {\n return (0, $fc0df9ae77cc2f56$export$2e2bcd8739ae039)(editor, line).length;\n}\nfunction $cd537e9fa9c12db2$var$getLineForCharPosition(editor, offsetChars) {\n const lines = editor.ace.getSession().doc.getAllLines();\n let foundLine = 0;\n let runningTotal = 0;\n for(let i = 0; i < lines.length; i += 1){\n runningTotal += lines[i].length + 1 // +1 needed for newline char\n ;\n if (offsetChars <= runningTotal) {\n foundLine = i;\n if (offsetChars === runningTotal && i < lines.length - 1) foundLine += 1;\n break;\n }\n }\n // If we're past the end of the buffer then we need to bump the line total\n // because we're basically inserting after the last line\n if (runningTotal >= editor.ace.getSession().getValue().length) foundLine += 1;\n return foundLine;\n}\nfunction $cd537e9fa9c12db2$var$createGutter(acediff) {\n acediff.gutterHeight = document.getElementById(acediff.options.classes.gutterID).clientHeight;\n acediff.gutterWidth = document.getElementById(acediff.options.classes.gutterID).clientWidth;\n const leftHeight = $cd537e9fa9c12db2$var$getTotalHeight(acediff, (0, $b5c286a254b261e6$export$2e2bcd8739ae039).EDITOR_LEFT);\n const rightHeight = $cd537e9fa9c12db2$var$getTotalHeight(acediff, (0, $b5c286a254b261e6$export$2e2bcd8739ae039).EDITOR_RIGHT);\n const height = Math.max(leftHeight, rightHeight, acediff.gutterHeight);\n acediff.gutterSVG = document.createElementNS((0, $b5c286a254b261e6$export$2e2bcd8739ae039).SVG_NS, 'svg');\n acediff.gutterSVG.setAttribute('width', acediff.gutterWidth);\n acediff.gutterSVG.setAttribute('height', height);\n document.getElementById(acediff.options.classes.gutterID).appendChild(acediff.gutterSVG);\n}\n// acediff.editors.left.ace.getSession().getLength() * acediff.lineHeight\nfunction $cd537e9fa9c12db2$var$getTotalHeight(acediff, editor) {\n const ed = editor === (0, $b5c286a254b261e6$export$2e2bcd8739ae039).EDITOR_LEFT ? acediff.editors.left : acediff.editors.right;\n return ed.ace.getSession().getLength() * acediff.lineHeight;\n}\n// creates two contains for positioning the copy left + copy right arrows\nfunction $cd537e9fa9c12db2$var$createCopyContainers(acediff) {\n acediff.copyRightContainer = document.createElement('div');\n acediff.copyRightContainer.setAttribute('class', acediff.options.classes.copyRightContainer);\n acediff.copyLeftContainer = document.createElement('div');\n acediff.copyLeftContainer.setAttribute('class', acediff.options.classes.copyLeftContainer);\n document.getElementById(acediff.options.classes.gutterID).appendChild(acediff.copyRightContainer);\n document.getElementById(acediff.options.classes.gutterID).appendChild(acediff.copyLeftContainer);\n}\nfunction $cd537e9fa9c12db2$var$clearGutter(acediff) {\n // gutter.innerHTML = '';\n const gutterEl = document.getElementById(acediff.options.classes.gutterID);\n gutterEl.removeChild(acediff.gutterSVG);\n $cd537e9fa9c12db2$var$createGutter(acediff);\n}\nfunction $cd537e9fa9c12db2$var$clearArrows(acediff) {\n acediff.copyLeftContainer.innerHTML = '';\n acediff.copyRightContainer.innerHTML = '';\n}\n/*\n * This combines multiple rows where, say, line 1 => line 1, line 2 => line 2, line 3-4 => line 3. That could be\n * reduced to a single connector line 1=4 => line 1-3\n */ function $cd537e9fa9c12db2$var$simplifyDiffs(acediff, diffs) {\n const groupedDiffs = [];\n function compare(val) {\n return acediff.options.diffGranularity === (0, $b5c286a254b261e6$export$2e2bcd8739ae039).DIFF_GRANULARITY_SPECIFIC ? val < 1 : val <= 1;\n }\n diffs.forEach((diff, index)=>{\n if (index === 0) {\n groupedDiffs.push(diff);\n return;\n }\n // loop through all grouped diffs. If this new diff lies between an existing one, we'll just add to it, rather\n // than create a new one\n let isGrouped = false;\n for(let i = 0; i < groupedDiffs.length; i += 1)if (compare(Math.abs(diff.leftStartLine - groupedDiffs[i].leftEndLine)) && compare(Math.abs(diff.rightStartLine - groupedDiffs[i].rightEndLine))) {\n // update the existing grouped diff to expand its horizons to include this new diff start + end lines\n groupedDiffs[i].leftStartLine = Math.min(diff.leftStartLine, groupedDiffs[i].leftStartLine);\n groupedDiffs[i].rightStartLine = Math.min(diff.rightStartLine, groupedDiffs[i].rightStartLine);\n groupedDiffs[i].leftEndLine = Math.max(diff.leftEndLine, groupedDiffs[i].leftEndLine);\n groupedDiffs[i].rightEndLine = Math.max(diff.rightEndLine, groupedDiffs[i].rightEndLine);\n isGrouped = true;\n break;\n }\n if (!isGrouped) groupedDiffs.push(diff);\n });\n // clear out any single line diffs (i.e. single line on both editors)\n const fullDiffs = [];\n groupedDiffs.forEach((diff)=>{\n if (diff.leftStartLine === diff.leftEndLine && diff.rightStartLine === diff.rightEndLine) return;\n fullDiffs.push(diff);\n });\n return fullDiffs;\n}\nfunction $cd537e9fa9c12db2$var$decorate(acediff) {\n $cd537e9fa9c12db2$var$clearGutter(acediff);\n $cd537e9fa9c12db2$var$clearArrows(acediff);\n acediff.diffs.forEach((info, diffIndex)=>{\n if (acediff.options.showDiffs) {\n $cd537e9fa9c12db2$var$showDiff(acediff, (0, $b5c286a254b261e6$export$2e2bcd8739ae039).EDITOR_LEFT, info.leftStartLine, info.leftEndLine, acediff.options.classes.diff);\n $cd537e9fa9c12db2$var$showDiff(acediff, (0, $b5c286a254b261e6$export$2e2bcd8739ae039).EDITOR_RIGHT, info.rightStartLine, info.rightEndLine, acediff.options.classes.diff);\n if (acediff.options.showConnectors) $cd537e9fa9c12db2$var$addConnector(acediff, info.leftStartLine, info.leftEndLine, info.rightStartLine, info.rightEndLine);\n $cd537e9fa9c12db2$var$addCopyArrows(acediff, info, diffIndex);\n }\n }, acediff);\n}\n\n\nexport {$cd537e9fa9c12db2$export$2e2bcd8739ae039 as default};\n//# sourceMappingURL=module.js.map\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" persistent width=\"80vw\">\n <v-card>\n <v-card-text>\n <v-card-title>{{ pluginName }} </v-card-title>\n <v-row v-if=\"existingPluginTxt !== null\" class=\"notice d-flex flex-row\">\n <v-icon size=\"x-large\" start color=\"yellow\"> mdi-alert-box </v-icon>\n <div style=\"flex: 1\">\n The existing plugin.txt is different from the {{ pluginName }}'s\n plugin.txt. Navigate the diffs making whatever edits you want before\n installing. You may want to update {{ pluginName }}'s plugin.txt\n going forward.\n </div>\n </v-row>\n <v-row class=\"pb-3 pr-3\">\n <v-tabs v-model=\"tab\" class=\"ml-3\">\n <v-tab :key=\"0\"> Variables </v-tab>\n <v-tab :key=\"1\"> plugin.txt </v-tab>\n </v-tabs>\n </v-row>\n <form @submit.prevent=\"onSubmit\">\n <v-window v-model=\"tab\">\n <v-window-item :key=\"0\" eager=\"true\" class=\"tab\">\n <div class=\"pa-3\">\n <v-row class=\"mt-3\">\n <div v-for=\"(value, name) in localVariables\" :key=\"name\">\n <v-col style=\"width: 220px\">\n <v-text-field\n v-model=\"localVariables[name]\"\n clearable\n type=\"text\"\n :label=\"name\"\n />\n </v-col>\n </div>\n </v-row>\n </div>\n </v-window-item>\n <v-window-item\n v-if=\"existingPluginTxt === null\"\n :key=\"1 + '-new'\"\n eager=\"true\"\n class=\"tab\"\n >\n <v-row class=\"pa-3\">\n <v-col> This can be edited before installation. </v-col>\n </v-row>\n <pre\n ref=\"editor\"\n class=\"editor\"\n @contextmenu.prevent=\"showContextMenu\"\n ></pre>\n <v-menu v-model=\"contextMenu\" :target=\"[menuX, menuY]\">\n <v-list>\n <v-list-item link>\n <v-list-item-title @click=\"openDocumentation\">\n {{ docsKeyword }} documentation\n </v-list-item-title>\n </v-list-item>\n <v-divider />\n <v-list-item\n title=\"Toggle Vim mode\"\n prepend-icon=\"extras:vim\"\n @click=\"toggleVimMode\"\n />\n </v-list>\n </v-menu>\n </v-window-item>\n <v-window-item\n v-else\n :key=\"1 + '-existing'\"\n eager=\"true\"\n class=\"tab\"\n >\n <v-row class=\"pa-3\">\n <v-col>\n Existing plugin.txt. This can be edited before installation.\n </v-col>\n <v-col class=\"ml-6\">\n Uneditable plugin.txt from the new plugin.\n </v-col>\n </v-row>\n <pre ref=\"editor\" class=\"editor\"></pre>\n </v-window-item>\n </v-window>\n\n <v-card-actions class=\"px-2 mt-2\">\n <div v-if=\"existingPluginTxt !== null\">\n <v-btn variant=\"text\" @click=\"nextDiff\"> Next Diff </v-btn>\n <v-btn variant=\"text\" @click=\"previousDiff\">\n Previous Diff\n </v-btn>\n </div>\n <v-spacer />\n <v-btn\n variant=\"outlined\"\n data-test=\"edit-cancel\"\n @click.prevent=\"close\"\n >\n Cancel\n </v-btn>\n <v-btn variant=\"flat\" data-test=\"edit-submit\" @click=\"submit\">\n Install\n </v-btn>\n </v-card-actions>\n </form>\n </v-card-text>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport * as ace from 'ace-builds'\nimport 'ace-builds/src-min-noconflict/mode-ruby'\nimport 'ace-builds/src-min-noconflict/theme-twilight'\nimport 'ace-builds/src-min-noconflict/ext-language_tools'\nimport 'ace-builds/src-min-noconflict/ext-searchbox'\nimport AceDiff from '@openc3/ace-diff'\nimport '@openc3/ace-diff/dist/ace-diff-dark.min.css'\nimport { toRaw } from 'vue'\nimport { AceEditorUtils } from '../../components/ace'\n\nexport default {\n props: {\n pluginName: {\n type: String,\n required: true,\n },\n variables: {\n type: Object,\n required: true,\n },\n pluginTxt: {\n type: String,\n required: true,\n },\n existingPluginTxt: {\n type: String,\n required: false,\n },\n modelValue: Boolean, // modelValue is the default prop when using v-model\n },\n data() {\n return {\n tab: 0,\n localVariables: [],\n localPluginTxt: '',\n localExistingPluginTxt: null,\n editor: null,\n differ: null,\n contextMenu: false,\n menuX: 0,\n menuY: 0,\n }\n },\n computed: {\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n },\n watch: {\n value: {\n immediate: true,\n handler: function () {\n this.localVariables = JSON.parse(JSON.stringify(this.variables)) // deep copy\n this.localPluginTxt = this.pluginTxt.slice()\n if (this.existingPluginTxt !== null) {\n this.localExistingPluginTxt = this.existingPluginTxt.slice()\n }\n },\n },\n },\n mounted() {\n const pluginMode = this.buildPluginMode()\n if (this.existingPluginTxt === null) {\n this.editor = ace.edit(this.$refs.editor)\n this.editor.setTheme('ace/theme/twilight')\n this.editor.session.setMode(new pluginMode())\n this.editor.session.setTabSize(2)\n this.editor.session.setUseWrapMode(true)\n this.editor.$blockScrolling = Infinity\n this.editor.setHighlightActiveLine(false)\n this.editor.setValue(this.localPluginTxt)\n this.editor.clearSelection()\n AceEditorUtils.applyVimModeIfEnabled(this.editor)\n this.editor.focus()\n } else {\n this.tab = 1 // Show the diff right off the bat\n this.differ = new AceDiff({\n element: this.$refs.editor,\n mode: new pluginMode(),\n theme: 'ace/theme/twilight',\n left: {\n content: this.localExistingPluginTxt,\n copyLinkEnabled: false,\n },\n right: {\n content: this.localPluginTxt,\n editable: false,\n },\n })\n // Match our existing editors\n this.differ.getEditors().left.setFontSize(16)\n this.differ.getEditors().right.setFontSize(16)\n\n // Apply vim mode if enabled to both editor instances\n AceEditorUtils.applyVimModeIfEnabled(this.differ.getEditors().left)\n AceEditorUtils.applyVimModeIfEnabled(this.differ.getEditors().right)\n\n this.curDiff = -1 // so the first will be 0\n }\n },\n beforeUnmount() {\n if (this.editor) {\n this.editor.destroy()\n }\n if (this.differ) {\n this.differ.destroy()\n }\n },\n methods: {\n previousDiff() {\n this.curDiff--\n if (this.curDiff < 0) {\n this.curDiff = this.differ.diffs.length - 1\n }\n this.scrollToCurDiff()\n },\n nextDiff() {\n this.curDiff++\n if (this.curDiff >= this.differ.diffs.length) {\n this.curDiff = 0\n }\n this.scrollToCurDiff()\n },\n scrollToCurDiff() {\n if (this.differ.diffs.length === 0) return\n let lrow = this.differ.diffs[this.curDiff].leftStartLine\n let rrow = this.differ.diffs[this.curDiff].rightStartLine\n // Give it a little breathing room\n if (lrow > 5) {\n lrow -= 5\n }\n if (rrow > 5) {\n rrow -= 5\n }\n this.differ.getEditors().left.scrollToLine(lrow)\n this.differ.getEditors().right.scrollToLine(rrow)\n },\n buildPluginMode() {\n let oop = ace.require('ace/lib/oop')\n let RubyHighlightRules = ace.require(\n 'ace/mode/ruby_highlight_rules',\n ).RubyHighlightRules\n\n // TODO: Grab from code\n let keywords = ['VARIABLE']\n let regex = new RegExp(`(\\\\b${keywords.join('\\\\b|\\\\b')}\\\\b)`)\n let PluginHighlightRules = function () {\n RubyHighlightRules.call(this)\n // add openc3 rules to the ruby rules\n for (let rule in this.$rules) {\n this.$rules[rule].unshift({\n regex: regex,\n token: 'support.function',\n })\n }\n }\n oop.inherits(PluginHighlightRules, RubyHighlightRules)\n\n let MatchingBraceOutdent = ace.require(\n 'ace/mode/matching_brace_outdent',\n ).MatchingBraceOutdent\n let CstyleBehaviour = ace.require(\n 'ace/mode/behaviour/cstyle',\n ).CstyleBehaviour\n let FoldMode = ace.require('ace/mode/folding/ruby').FoldMode\n let Mode = function () {\n this.HighlightRules = PluginHighlightRules\n this.$outdent = new MatchingBraceOutdent()\n this.$behaviour = new CstyleBehaviour()\n this.foldingRules = new FoldMode()\n this.indentKeywords = this.foldingRules.indentKeywords\n }\n let RubyMode = ace.require('ace/mode/ruby').Mode\n oop.inherits(Mode, RubyMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n submit: function () {\n if (this.existingPluginTxt === null) {\n this.emitSubmit(this.editor.getValue().split('\\n'))\n } else {\n // Existing plugin.txt with all diffs resolved\n if (this.differ.diffs.length === 0) {\n this.emitSubmit(this.differ.getEditors().left.getValue().split('\\n'))\n } else {\n // Existing plugin.txt with unresolved diffs\n this.$dialog\n .confirm(\n `Diffs still detected! Install using 'Existing plugin.txt' (left) and ignore additional changes in the new plugin.txt (right)?`,\n {\n okText: 'Install',\n cancelText: 'Cancel',\n },\n )\n .then((dialog) => {\n this.emitSubmit(\n this.differ.getEditors().left.getValue().split('\\n'),\n )\n })\n .catch((error) => {\n // Cancelled, do nothing\n })\n }\n }\n },\n emitSubmit(lines) {\n let pluginHash = {\n name: this.pluginName,\n variables: toRaw(this.localVariables),\n plugin_txt_lines: lines,\n }\n this.$emit('callback', pluginHash)\n },\n close: function () {\n this.show = !this.show\n },\n showContextMenu: function (event) {\n this.menuX = event.pageX\n this.menuY = event.pageY\n\n let position = this.editor.getCursorPosition()\n let token = this.editor.session.getTokenAt(position.row, position.column)\n if (token) {\n let value = token.value.trim()\n if (value.includes(' ')) {\n this.docsKeyword = value.split(' ')[0]\n } else {\n this.docsKeyword = value\n }\n this.contextMenu = true\n }\n },\n toggleVimMode: function () {\n if (this.editor) {\n AceEditorUtils.toggleVimMode(this.editor)\n // don't worry about this.differ since AceDiff replaces the editor anyway, and thus there's no context menu\n }\n },\n },\n}\n</script>\n\n<style scoped>\n.editor {\n height: 50vh;\n position: relative;\n font-size: 16px;\n}\n\n.notice {\n font-size: 20px;\n margin: 10px;\n}\n.tab {\n background-color: var(--color-background-surface-default);\n}\n.v-textarea :deep(textarea) {\n padding: 5px;\n}\n</style>\n"],"names":["_sfc_main","value","gemRegEx","f","axios","response","gem","link","_hoisted_1","_hoisted_2","_createBlock","_component_v_dialog","$options","_cache","$event","_withCtx","_createVNode","_component_v_card","_component_v_toolbar","_component_v_spacer","_createElementVNode","_component_v_card_text","_component_v_row","_createTextVNode","_component_v_col","_component_v_btn","$data","_component_v_icon","_openBlock","_createElementBlock","_hoisted_3","_hoisted_4","_Fragment","_renderList","data","index","_component_v_list_item","_component_v_list_item_title","_toDisplayString","_component_v_progress_circular","_component_v_divider","_createCommentVNode","openPluginMode","ace.edit","AceEditorUtils","blob","oop","ace.require","JsonHighlightRules","MatchingBraceOutdent","CstyleBehaviour","FoldMode","Mode","RubyMode","event","position","token","$props","_withModifiers","args","_ctx","_component_v_file_input","_component_v_menu","_component_v_list","target","Api","file","itemIndex","_component_v_list_item_subtitle","_component_v_checkbox","_component_v_card_actions","TabsList","TopBar","tab","_component_top_bar","_component_v_tabs","_component_v_tab","_component_router_view","cloneDiff","diff2","type","patch","getCommonOverlap","textA","textB","text1","text2","text1Length","text2Length","textLength","best","length","found","pattern","getCommonPrefix","pointerMin","pointerMax","pointerMid","pointerStart","getCommonSuffix","pointerEnd","isHighSurrogate","char","charCode","isLowSurrogate","bisect","deadline","maxD","vOffset","vLength","v1","v2","x","delta","front","k1start","k1end","k2start","k2end","d","k1","k1Offset","x1","y1","k2Offset","x2","bisectSplit","k2","y2","DIFF_DELETE","DIFF_INSERT","y","text1a","text2a","text1b","text2b","diffs","doDiff","diffsb","findHalfMatch","timeout","longText","shortText","halfMatch1","halfMatchI","halfMatch2","halfMatch","text1A","text1B","text2A","text2B","midCommon","i","seed","j","bestCommon","bestLongTextA","bestLongTextB","bestShortTextA","bestShortTextB","prefixLength","suffixLength","charsToLines","lineArray","chars","text","linesToChars","lineHash","diffLinesToMunge","lineStart","lineEnd","lineArrayLength","line","maxLines","chars1","chars2","doLineModeDiff","opts","a","linearray","cleanupSemantic","DIFF_EQUAL","pointer","countDelete","countInsert","textDelete","textInsert","aa","computeDiff","longtext","shorttext","diffsA","diffsB","__defProp$2","__getOwnPropSymbols$2","__hasOwnProp$2","__propIsEnum$2","__defNormalProp$2","obj","key","__spreadValues$2","b","prop","diff","createInternalOpts","adjustDiffForSurrogatePairs","options","commonlength","commonprefix","commonsuffix","cleanupMerge","createDeadLine","t","combineChar","dir","splitChar","hasSharedChar","deisolateChar","inv","insertIdx","deleteIdx","op","rest","char2","insertText","insertChar","deleteText","diffType","diffText","firstChar","lastChar","rawDiffs","hasChanges","equalities","equalitiesLength","lastEquality","lengthInsertions1","lengthDeletions1","lengthInsertions2","lengthDeletions2","cleanupSemanticLossless","deletion","insertion","overlapLength1","overlapLength2","nonAlphaNumericRegex","whitespaceRegex","linebreakRegex","blanklineEndRegex","blanklineStartRegex","diffCleanupSemanticScore","one","two","char1","nonAlphaNumeric1","nonAlphaNumeric2","whitespace1","whitespace2","lineBreak1","lineBreak2","blankLine1","blankLine2","equality1","edit","equality2","commonOffset","commonString","bestEquality1","bestEdit","bestEquality2","bestScore","score","$d0b82e0396560011$var$isObject","item","$d0b82e0396560011$export$2e2bcd8739ae039","source","$a61894d52139a1b7$export$2e2bcd8739ae039","callback","wait","immediate","initialCall","callNow","next","$20710ff753814db4$export$2e2bcd8739ae039","context","$f81fe5d88190aca6$export$2e2bcd8739ae039","$238bad4938ddde7c$export$2e2bcd8739ae039","startX","startY","endX","endY","w","halfWidth","$b5c286a254b261e6$export$2e2bcd8739ae039","$3d931e456f0d108c$export$2e2bcd8739ae039","acediff","editor","mode","$893f0e07a87dd83c$export$2e2bcd8739ae039","theme","$fc0df9ae77cc2f56$export$2e2bcd8739ae039","$7eb2da7d8a00890b$export$2e2bcd8739ae039","$c0c16fed0f3352bb$export$2e2bcd8739ae039","info","el","props","$419710df3593df8d$export$2e2bcd8739ae039","parent","elClass","guid","newId","currentEl","$e485cb2ed1808217$export$2e2bcd8739ae039","elSelector","eventName","selector","fn","element","possibleTargets","l","p","$cd537e9fa9c12db2$var$Range","$cd537e9fa9c12db2$var$getRangeModule","ace","requireFunc","$cd537e9fa9c12db2$export$2e2bcd8739ae039","getDefaultAce","errMessage","$cd537e9fa9c12db2$var$addEventHandlers","$cd537e9fa9c12db2$var$createCopyContainers","$cd537e9fa9c12db2$var$createGutter","val1","val2","$haT8Y$cleanupSemantic","$haT8Y$makeDiff","$cd537e9fa9c12db2$var$getLineLengths","offset","chunk","chunkType","$cd537e9fa9c12db2$var$computeDiff","$cd537e9fa9c12db2$var$simplifyDiffs","$cd537e9fa9c12db2$var$clearDiffs","$cd537e9fa9c12db2$var$decorate","leftValue","oldDiv","newDiv","rightValue","elementById","$cd537e9fa9c12db2$var$updateGap","e","$cd537e9fa9c12db2$var$copy","onResize","diffIndex","sourceEditor","targetEditor","startLine","endLine","targetStartLine","targetEndLine","contentToInsert","h","lines","lineLengths","$cd537e9fa9c12db2$var$showDiff","className","editorInstance","classNames","$cd537e9fa9c12db2$var$positionCopyContainers","marker","$cd537e9fa9c12db2$var$addConnector","leftStartLine","leftEndLine","rightStartLine","rightEndLine","leftScrollTop","rightScrollTop","p1_x","p1_y","p2_x","p2_y","p3_x","p3_y","p4_x","p4_y","curve1","curve2","verticalLine1","verticalLine2","$cd537e9fa9c12db2$var$addCopyArrows","arrow","leftTopOffset","rightTopOffset","offsetLeft","offsetRight","lineInfo","$cd537e9fa9c12db2$var$getSingleDiffInfo","currentLineOtherEditor","$cd537e9fa9c12db2$var$getLineForCharPosition","numCharsOnLineOtherEditor","$cd537e9fa9c12db2$var$getCharsOnLine","numCharsOnLeftEditorStartLine","sameLineInsert","numRows","numCharsOnRightEditorStartLine","diffString","endCharNum","runningTotal","startLineSet","endLineSet","lineLength","lineIndex","endsWithNewline","offsetChars","foundLine","leftHeight","$cd537e9fa9c12db2$var$getTotalHeight","rightHeight","height","$cd537e9fa9c12db2$var$clearGutter","$cd537e9fa9c12db2$var$clearArrows","groupedDiffs","compare","val","isGrouped","fullDiffs","pluginMode","AceDiff","lrow","rrow","RubyHighlightRules","keywords","regex","PluginHighlightRules","rule","dialog","error","pluginHash","toRaw","_component_v_card_title","_component_v_window","_component_v_window_item","name","_component_v_text_field"],"mappings":"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","x_google_ignoreList":[5,6]}