@argusoft/medplat-core 1.0.31 → 1.0.32

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 (199) hide show
  1. package/dist/{AccessRights-DUgY6ewy.js → AccessRights-DBjTQA1-.js} +421 -424
  2. package/dist/AccessRights-DBjTQA1-.js.map +1 -0
  3. package/dist/{AddFeatures-D1sU8RjY.js → AddFeatures-COj4ZTIM.js} +2 -2
  4. package/dist/{AddFeatures-D1sU8RjY.js.map → AddFeatures-COj4ZTIM.js.map} +1 -1
  5. package/dist/AddMenuConfiguration-Creeib5X.js +11223 -0
  6. package/dist/AddMenuConfiguration-Creeib5X.js.map +1 -0
  7. package/dist/AddMenuConfiguration.css +1 -1
  8. package/dist/{BrandsPage-DMw2vT0u-BVhvhc6J.js → BrandsPage-CdcAvaml-ZtVTX6vX.js} +45 -45
  9. package/dist/{BrandsPage-DMw2vT0u-BVhvhc6J.js.map → BrandsPage-CdcAvaml-ZtVTX6vX.js.map} +1 -1
  10. package/dist/{CategoriesPage-D3ihx9Gi-CT58g0ry.js → CategoriesPage-BprQEYJw-CclreTv1.js} +43 -43
  11. package/dist/{CategoriesPage-D3ihx9Gi-CT58g0ry.js.map → CategoriesPage-BprQEYJw-CclreTv1.js.map} +1 -1
  12. package/dist/{ChangePasswordModalCore-lQ9GamH1.js → ChangePasswordModalCore-DZGOkbRY.js} +3 -3
  13. package/dist/{ChangePasswordModalCore-lQ9GamH1.js.map → ChangePasswordModalCore-DZGOkbRY.js.map} +1 -1
  14. package/dist/{ConditionConfig-BQBmBHaM.js → ConditionConfig-Bpm6OoV5.js} +3 -3
  15. package/dist/{ConditionConfig-BQBmBHaM.js.map → ConditionConfig-Bpm6OoV5.js.map} +1 -1
  16. package/dist/{DashboardPage-asr2XDRu-uOOlX9Vq.js → DashboardPage-CTiGSx71-CsYohJ5e.js} +29 -29
  17. package/dist/{DashboardPage-asr2XDRu-uOOlX9Vq.js.map → DashboardPage-CTiGSx71-CsYohJ5e.js.map} +1 -1
  18. package/dist/EntityManagement-BGwJGl9k.js +62 -0
  19. package/dist/EntityManagement-BGwJGl9k.js.map +1 -0
  20. package/dist/{EventConfigurations-CUPEN5BV.js → EventConfigurations-B-z7xHh_.js} +3 -3
  21. package/dist/{EventConfigurations-CUPEN5BV.js.map → EventConfigurations-B-z7xHh_.js.map} +1 -1
  22. package/dist/{EventsExceptionModal-BX-ArkBE.js → EventsExceptionModal-DafomIv6.js} +2 -2
  23. package/dist/{EventsExceptionModal-BX-ArkBE.js.map → EventsExceptionModal-DafomIv6.js.map} +1 -1
  24. package/dist/{EventsUi-D6O9S7BK.js → EventsUi-Dl_yckSA.js} +37 -32
  25. package/dist/EventsUi-Dl_yckSA.js.map +1 -0
  26. package/dist/FacilityPicker-BXa2VF7i-Dab_Jwa5.js +112 -0
  27. package/dist/FacilityPicker-BXa2VF7i-Dab_Jwa5.js.map +1 -0
  28. package/dist/{FeatureMenu-CHsBbw3W.js → FeatureMenu-Kc73yPHH.js} +2 -2
  29. package/dist/{FeatureMenu-CHsBbw3W.js.map → FeatureMenu-Kc73yPHH.js.map} +1 -1
  30. package/dist/{FhirServerList-iXBPkRVF.js → FhirServerList-CrIHMAxz.js} +19 -19
  31. package/dist/{FhirServerList-iXBPkRVF.js.map → FhirServerList-CrIHMAxz.js.map} +1 -1
  32. package/dist/{FhirServerProfile-CUOwC6Wb.js → FhirServerProfile-D3aYcpwY.js} +8 -8
  33. package/dist/{FhirServerProfile-CUOwC6Wb.js.map → FhirServerProfile-D3aYcpwY.js.map} +1 -1
  34. package/dist/{FhirServerWizard-DZI8Olku.js → FhirServerWizard-Db6Hm4bQ.js} +15 -15
  35. package/dist/{FhirServerWizard-DZI8Olku.js.map → FhirServerWizard-Db6Hm4bQ.js.map} +1 -1
  36. package/dist/{ImmunizationConfigurationBase-aUtx0JEe.js → ImmunizationConfigurationBase-lKsJZMak.js} +1342 -1301
  37. package/dist/ImmunizationConfigurationBase-lKsJZMak.js.map +1 -0
  38. package/dist/InventoryPage-JadYMCzU-CzJQfQ2A.js +1017 -0
  39. package/dist/InventoryPage-JadYMCzU-CzJQfQ2A.js.map +1 -0
  40. package/dist/LocationWiseExpectedTargetPage-CjKk1aTF.js +1344 -0
  41. package/dist/LocationWiseExpectedTargetPage-CjKk1aTF.js.map +1 -0
  42. package/dist/{ManageDynamicFeature-BU0I45dd.js → ManageDynamicFeature-CuyYfx_P.js} +104 -97
  43. package/dist/ManageDynamicFeature-CuyYfx_P.js.map +1 -0
  44. package/dist/{ManageEventConfiguration-DqW3krT6.js → ManageEventConfiguration-DqPbn3Oi.js} +5 -5
  45. package/dist/{ManageEventConfiguration-DqW3krT6.js.map → ManageEventConfiguration-DqPbn3Oi.js.map} +1 -1
  46. package/dist/ManageRole-CyfpySt9.js +981 -0
  47. package/dist/ManageRole-CyfpySt9.js.map +1 -0
  48. package/dist/{ManageUser-DZltBina.js → ManageUser-Dm0l833u.js} +172 -172
  49. package/dist/{ManageUser-DZltBina.js.map → ManageUser-Dm0l833u.js.map} +1 -1
  50. package/dist/{MemberProfileCard-D5CgkTdJ-D2NgDJl3.js → MemberProfileCard-01d_jz3w-DYHtbgMX.js} +37 -37
  51. package/dist/{MemberProfileCard-D5CgkTdJ-D2NgDJl3.js.map → MemberProfileCard-01d_jz3w-DYHtbgMX.js.map} +1 -1
  52. package/dist/MobileAnalytics-C9oc2yAo.js +18399 -0
  53. package/dist/MobileAnalytics-C9oc2yAo.js.map +1 -0
  54. package/dist/MobileMenuManagement-BmzTPXy7.js +231 -0
  55. package/dist/MobileMenuManagement-BmzTPXy7.js.map +1 -0
  56. package/dist/{MobileTypeEventConfigModal-CMcj7Ozp.js → MobileTypeEventConfigModal-DodU3beR.js} +3 -3
  57. package/dist/{MobileTypeEventConfigModal-CMcj7Ozp.js.map → MobileTypeEventConfigModal-DodU3beR.js.map} +1 -1
  58. package/dist/{NewServerManagement-Cxe0dV0O.js → NewServerManagement-BdayO78D.js} +368 -352
  59. package/dist/NewServerManagement-BdayO78D.js.map +1 -0
  60. package/dist/OtherTypeEventConfigModal-D_9S50aI.js +1414 -0
  61. package/dist/OtherTypeEventConfigModal-D_9S50aI.js.map +1 -0
  62. package/dist/{PaymentCreatePage-DfvSZ-kB-CckogYoe.js → PaymentCreatePage-D6NZBUC3-DxXf2kvH.js} +56 -56
  63. package/dist/{PaymentCreatePage-DfvSZ-kB-CckogYoe.js.map → PaymentCreatePage-D6NZBUC3-DxXf2kvH.js.map} +1 -1
  64. package/dist/{PaymentsPage-DMNjYWAJ-ChO9IXmk.js → PaymentsPage-CHieGNrn-BnYCtqHd.js} +38 -38
  65. package/dist/{PaymentsPage-DMNjYWAJ-ChO9IXmk.js.map → PaymentsPage-CHieGNrn-BnYCtqHd.js.map} +1 -1
  66. package/dist/{PermissionsModal-CCYkcKlC.js → PermissionsModal-Dxbkkrqe.js} +18 -18
  67. package/dist/PermissionsModal-Dxbkkrqe.js.map +1 -0
  68. package/dist/{PickupBatchLinesEditor-CE2RuyJT-BPceiJr8.js → PickupBatchLinesEditor-QPaqFtUO-CY7BShYh.js} +2 -2
  69. package/dist/{PickupBatchLinesEditor-CE2RuyJT-BPceiJr8.js.map → PickupBatchLinesEditor-QPaqFtUO-CY7BShYh.js.map} +1 -1
  70. package/dist/PickupCreatePage-C7_67u_u-OId8-e2a.js +801 -0
  71. package/dist/PickupCreatePage-C7_67u_u-OId8-e2a.js.map +1 -0
  72. package/dist/{PickupsPage-D7zyioJB-bHKnARYw.js → PickupsPage-BWblMlic-CWkgeBw0.js} +122 -122
  73. package/dist/PickupsPage-BWblMlic-CWkgeBw0.js.map +1 -0
  74. package/dist/PmGuard-BvUUbU80-BpYNaDzl.js +641 -0
  75. package/dist/PmGuard-BvUUbU80-BpYNaDzl.js.map +1 -0
  76. package/dist/ProductEditPage-Dbq4vUAA-BoBmTPPL.js +1523 -0
  77. package/dist/ProductEditPage-Dbq4vUAA-BoBmTPPL.js.map +1 -0
  78. package/dist/{ProductsPage-DvNHIeZt-BoOOJJtk.js → ProductsPage-BI22nPb4-CQBjnc-n.js} +29 -29
  79. package/dist/{ProductsPage-DvNHIeZt-BoOOJJtk.js.map → ProductsPage-BI22nPb4-CQBjnc-n.js.map} +1 -1
  80. package/dist/PurchaseCreatePage-C0EK9z4w-BQMTsjE7.js +724 -0
  81. package/dist/PurchaseCreatePage-C0EK9z4w-BQMTsjE7.js.map +1 -0
  82. package/dist/{PurchaseRequestDetailPage-CA9KFOfE-CtjG4Gx6.js → PurchaseRequestDetailPage-DhBuOGHZ-CWZPqzt9.js} +446 -436
  83. package/dist/PurchaseRequestDetailPage-DhBuOGHZ-CWZPqzt9.js.map +1 -0
  84. package/dist/{PurchaseRequestsPage-DS9i4o0--TpoxA5Kd.js → PurchaseRequestsPage-Bj9HUMxb-B7-AxT8m.js} +55 -55
  85. package/dist/{PurchaseRequestsPage-DS9i4o0--TpoxA5Kd.js.map → PurchaseRequestsPage-Bj9HUMxb-B7-AxT8m.js.map} +1 -1
  86. package/dist/{PurchasesPage-DgL5T6BY-DePUuE9l.js → PurchasesPage-Djl1AqD_-DXeYFMrX.js} +61 -61
  87. package/dist/{PurchasesPage-DgL5T6BY-DePUuE9l.js.map → PurchasesPage-Djl1AqD_-DXeYFMrX.js.map} +1 -1
  88. package/dist/{RoleManagement-s8iNx2Mu.js → RoleManagement-DVYufwy-.js} +3 -3
  89. package/dist/{RoleManagement-s8iNx2Mu.js.map → RoleManagement-DVYufwy-.js.map} +1 -1
  90. package/dist/Roles-BoNGJhtR.js +19 -0
  91. package/dist/Roles-BoNGJhtR.js.map +1 -0
  92. package/dist/{SaleCreatePage-CZnIOydv-DKBw-qp7.js → SaleCreatePage-DHBLmlBr-BlgjVsq6.js} +33 -33
  93. package/dist/{SaleCreatePage-CZnIOydv-DKBw-qp7.js.map → SaleCreatePage-DHBLmlBr-BlgjVsq6.js.map} +1 -1
  94. package/dist/{SalesPage-DPIRrC_O-M8rqnK7z.js → SalesPage-eF9Yr42z-BQ9FlXC3.js} +34 -34
  95. package/dist/SalesPage-eF9Yr42z-BQ9FlXC3.js.map +1 -0
  96. package/dist/SettingsPage-Cre-UE3r-9ntnLYsQ.js +741 -0
  97. package/dist/SettingsPage-Cre-UE3r-9ntnLYsQ.js.map +1 -0
  98. package/dist/{StorageUnitsPage-BDRkdCjW-UF64rf7q.js → StorageUnitsPage-CTEVuemZ-B4osG74N.js} +213 -190
  99. package/dist/StorageUnitsPage-CTEVuemZ-B4osG74N.js.map +1 -0
  100. package/dist/{SubMenu-BdMTYtC1.js → SubMenu-OO2zhKiu.js} +2 -2
  101. package/dist/{SubMenu-BdMTYtC1.js.map → SubMenu-OO2zhKiu.js.map} +1 -1
  102. package/dist/{TableDetails-BtafRxXb.js → TableDetails-Cc40dEUs.js} +272 -267
  103. package/dist/TableDetails-Cc40dEUs.js.map +1 -0
  104. package/dist/{TableList-Dpo6dO7S.js → TableList-B5tX4wII.js} +316 -312
  105. package/dist/TableList-B5tX4wII.js.map +1 -0
  106. package/dist/{TransactionsPage-CqWTMNU8-Df6eGFDW.js → TransactionsPage-Zuu7sjID-B-ACzvd1.js} +185 -170
  107. package/dist/TransactionsPage-Zuu7sjID-B-ACzvd1.js.map +1 -0
  108. package/dist/TransferCreatePage-DlT0nCDj-B2SdPgYB.js +635 -0
  109. package/dist/TransferCreatePage-DlT0nCDj-B2SdPgYB.js.map +1 -0
  110. package/dist/TransfersPage-DqaSvHda-G2tFa5Jq.js +600 -0
  111. package/dist/TransfersPage-DqaSvHda-G2tFa5Jq.js.map +1 -0
  112. package/dist/{TypeConfiguration-JbRCN6GR.js → TypeConfiguration-EaFiOzRE.js} +3 -3
  113. package/dist/{TypeConfiguration-JbRCN6GR.js.map → TypeConfiguration-EaFiOzRE.js.map} +1 -1
  114. package/dist/UserList-Cf5B-o_1.js +1904 -0
  115. package/dist/UserList-Cf5B-o_1.js.map +1 -0
  116. package/dist/Users-MC7txo1V.js +43 -0
  117. package/dist/{Users-CsJ08Kjm.js.map → Users-MC7txo1V.js.map} +1 -1
  118. package/dist/VaccineEducation-T_UE57Ef.js +231 -0
  119. package/dist/VaccineEducation-T_UE57Ef.js.map +1 -0
  120. package/dist/VaccineEducation.css +1 -0
  121. package/dist/VaccineEducationConfigurator-CWc20_rv.js +50948 -0
  122. package/dist/VaccineEducationConfigurator-CWc20_rv.js.map +1 -0
  123. package/dist/VaccineEducationConfigurator.css +4 -0
  124. package/dist/VaccineEducationList-Ok7_5EFb.js +334 -0
  125. package/dist/VaccineEducationList-Ok7_5EFb.js.map +1 -0
  126. package/dist/VialsPage-LoDaUqVv-DmMXbK8j.js +457 -0
  127. package/dist/VialsPage-LoDaUqVv-DmMXbK8j.js.map +1 -0
  128. package/dist/{constants-DpXnLsAB-D6lN5cjK.js → constants-BTpJFQe_-CYPZIqQF.js} +160 -61
  129. package/dist/constants-BTpJFQe_-CYPZIqQF.js.map +1 -0
  130. package/dist/dashboardLayoutUtils--xUnoKPa.js +615 -0
  131. package/dist/dashboardLayoutUtils--xUnoKPa.js.map +1 -0
  132. package/dist/index-mfoqII2U.js +524 -0
  133. package/dist/index-mfoqII2U.js.map +1 -0
  134. package/dist/{index-D9YNFPn9.js → index-o8Pyt1Bt.js} +445 -439
  135. package/dist/index-o8Pyt1Bt.js.map +1 -0
  136. package/dist/index.css +1 -1
  137. package/dist/index.js +1 -1
  138. package/dist/{index.lib-ETRQOzvE.js → index.lib-BySa9-Z-.js} +302 -260
  139. package/dist/index.lib-BySa9-Z-.js.map +1 -0
  140. package/dist/listValueStore-5d4vNGQM-WclZ5nBG.js +43 -0
  141. package/dist/listValueStore-5d4vNGQM-WclZ5nBG.js.map +1 -0
  142. package/package.json +5 -1
  143. package/dist/AccessRights-DUgY6ewy.js.map +0 -1
  144. package/dist/AddMenuConfiguration-c6ZKiN0i.js +0 -8898
  145. package/dist/AddMenuConfiguration-c6ZKiN0i.js.map +0 -1
  146. package/dist/EntityManagement-CPQL6qBj.js +0 -50
  147. package/dist/EntityManagement-CPQL6qBj.js.map +0 -1
  148. package/dist/EventsUi-D6O9S7BK.js.map +0 -1
  149. package/dist/FacilityPicker-DYl_PDyt-Cbwo2tAY.js +0 -79
  150. package/dist/FacilityPicker-DYl_PDyt-Cbwo2tAY.js.map +0 -1
  151. package/dist/ImmunizationConfigurationBase-aUtx0JEe.js.map +0 -1
  152. package/dist/InventoryPage-DOotGZrj-CoPjOJEI.js +0 -665
  153. package/dist/InventoryPage-DOotGZrj-CoPjOJEI.js.map +0 -1
  154. package/dist/ManageDynamicFeature-BU0I45dd.js.map +0 -1
  155. package/dist/ManageRole-CNZBRKGU.js +0 -776
  156. package/dist/ManageRole-CNZBRKGU.js.map +0 -1
  157. package/dist/MobileAnalytics-BLOionG_.js +0 -17301
  158. package/dist/MobileAnalytics-BLOionG_.js.map +0 -1
  159. package/dist/MobileMenuManagement-68Wijb0X.js +0 -220
  160. package/dist/MobileMenuManagement-68Wijb0X.js.map +0 -1
  161. package/dist/NewServerManagement-Cxe0dV0O.js.map +0 -1
  162. package/dist/OtherTypeEventConfigModal-stNmuSv_.js +0 -1812
  163. package/dist/OtherTypeEventConfigModal-stNmuSv_.js.map +0 -1
  164. package/dist/PermissionsModal-CCYkcKlC.js.map +0 -1
  165. package/dist/PickupCreatePage-B4O_-vE5-DoOo9nJO.js +0 -783
  166. package/dist/PickupCreatePage-B4O_-vE5-DoOo9nJO.js.map +0 -1
  167. package/dist/PickupsPage-D7zyioJB-bHKnARYw.js.map +0 -1
  168. package/dist/PmGuard-BZE-y4In-D_pUm5MP.js +0 -599
  169. package/dist/PmGuard-BZE-y4In-D_pUm5MP.js.map +0 -1
  170. package/dist/ProductEditPage-BVlVUCtD-BR-tJ5Wb.js +0 -1305
  171. package/dist/ProductEditPage-BVlVUCtD-BR-tJ5Wb.js.map +0 -1
  172. package/dist/PurchaseCreatePage-Cq_i9snz-DRtHHFWw.js +0 -675
  173. package/dist/PurchaseCreatePage-Cq_i9snz-DRtHHFWw.js.map +0 -1
  174. package/dist/PurchaseRequestDetailPage-CA9KFOfE-CtjG4Gx6.js.map +0 -1
  175. package/dist/Roles-BIyiic67.js +0 -14
  176. package/dist/Roles-BIyiic67.js.map +0 -1
  177. package/dist/SalesPage-DPIRrC_O-M8rqnK7z.js.map +0 -1
  178. package/dist/SettingsPage-BC_R6Z-Q-CKNt9zRu.js +0 -676
  179. package/dist/SettingsPage-BC_R6Z-Q-CKNt9zRu.js.map +0 -1
  180. package/dist/StorageUnitsPage-BDRkdCjW-UF64rf7q.js.map +0 -1
  181. package/dist/TableDetails-BtafRxXb.js.map +0 -1
  182. package/dist/TableList-Dpo6dO7S.js.map +0 -1
  183. package/dist/TransactionsPage-CqWTMNU8-Df6eGFDW.js.map +0 -1
  184. package/dist/TransferCreatePage-DF7FZaTJ-CL79V3aR.js +0 -315
  185. package/dist/TransferCreatePage-DF7FZaTJ-CL79V3aR.js.map +0 -1
  186. package/dist/TransfersPage-CGrRFaBF-cTwBUv0o.js +0 -476
  187. package/dist/TransfersPage-CGrRFaBF-cTwBUv0o.js.map +0 -1
  188. package/dist/UserList-L41Xw0Q6.js +0 -1129
  189. package/dist/UserList-L41Xw0Q6.js.map +0 -1
  190. package/dist/Users-CsJ08Kjm.js +0 -40
  191. package/dist/VialsPage-rvvXjgZG-Oqo1v6kQ.js +0 -321
  192. package/dist/VialsPage-rvvXjgZG-Oqo1v6kQ.js.map +0 -1
  193. package/dist/constants-DpXnLsAB-D6lN5cjK.js.map +0 -1
  194. package/dist/dashboardLayoutUtils-CJivzaU1.js +0 -408
  195. package/dist/dashboardLayoutUtils-CJivzaU1.js.map +0 -1
  196. package/dist/index-D9YNFPn9.js.map +0 -1
  197. package/dist/index.lib-ETRQOzvE.js.map +0 -1
  198. package/dist/listValueStore-BFQtDYIR-Bj0yX145.js +0 -36
  199. package/dist/listValueStore-BFQtDYIR-Bj0yX145.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableDetails-BtafRxXb.js","sources":["../src/views/Mobile/EntityManagement/TableDetails.jsx"],"sourcesContent":["import { execute } from \"@/common/services/QueryBuilder\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport { useDebounceFn } from \"@/hooks/useDebounceFn\";\nimport CustomConfirmationModal from \"@/views/custom-components/CustomConfirmationModal\";\nimport CustomTextField from \"@/views/custom-components/CustomTextField\";\nimport FontAwesomeIcons from \"@/common/fontAwesomeIcons/FontAwesomeIcons\";\nimport Editor from \"@monaco-editor/react\";\nimport {\n Autocomplete,\n Button,\n FormControl,\n FormControlLabel,\n IconButton,\n InputAdornment,\n Modal,\n Paper,\n Popover,\n Radio,\n RadioGroup,\n Switch,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TextField,\n Tooltip,\n Typography,\n Checkbox,\n} from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport { Box } from \"@mui/system\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useState } from \"react\";\nimport { Controller, useForm, useWatch } from \"react-hook-form\";\nimport { useSelector } from \"react-redux\";\nexport default function TableDetails({\n tableInfo,\n table,\n isEditMode,\n updateEditMode,\n tableCompleteInfo,\n reloadComponents,\n isCreateTableMode,\n isSyncTableMode,\n updateCreateTableMode,\n openDeleteModal,\n setOpenDeleteModal,\n generateRebuildScript,\n}) {\n const DOWNLOAD_TYPE_OPTIONS = [\n \"Document Master\",\n \"Form Configurator\",\n \"Form Media Record\",\n \"LMS\",\n ];\n const labelToCode = (label) => label?.toUpperCase().replace(/ /g, \"_\") || \"\";\n const codeToLabel = (code) =>\n DOWNLOAD_TYPE_OPTIONS.find((o) => labelToCode(o) === code) || \"\";\n\n const getNewDownloadType = (mc) => {\n if (mc?.downloadType)\n return codeToLabel(mc.downloadType) || mc.downloadType;\n if (mc?.data?.downloadType)\n return codeToLabel(mc.data.downloadType) || mc.data.downloadType;\n return \"\";\n };\n\n const isDownloadUrlArray = (mc) =>\n Array.isArray(mc?.downloadUrl ?? mc?.data?.downloadUrl);\n\n // Normalizes downloadUrl into an array; handles array, legacy object, or absent.\n const getDownloadUrlEntries = (mc) => {\n const flat = mc?.downloadUrl ?? mc?.data?.downloadUrl;\n if (Array.isArray(flat)) return flat;\n if (typeof flat === \"object\" && flat !== null)\n return [\n {\n apiEndpoint: flat.apiEndpoint || \"\",\n requestParameters: flat.requestParameters || [],\n },\n ];\n return [];\n };\n\n const [allColumns, setAllColumns] = useState([]);\n const [modalOpen, setModalOpen] = useState(false);\n const [migrationScript, setMigrationScript] = useState(\"\");\n const [formData, setFormData] = useState({});\n const [searchColumn, setSearchColumn] = useState(\"\");\n const [syncedFilteredCols, setSyncedFilteredCols] = useState([]);\n const [filteredCols, setFilteredCols] = useState([]);\n const [colTabValue, setColTabValue] = useState(0);\n const [queryTabValue, setQueryTabValue] = useState(0);\n const [anchorEl, setAnchorEl] = useState(null);\n const [editColumnIndex, setEditColumnIndex] = useState(null);\n const [migrationVersions, setMigrationVersions] = useState({});\n const [downloadUrlEntries, setDownloadUrlEntries] = useState(\n !isCreateTableMode\n ? getDownloadUrlEntries(tableInfo?.mediaConfiguration)\n : [],\n );\n /** set once the user opts a legacy table into the multi-API format */\n const [hasMigrated, setHasMigrated] = useState(false);\n\n // True while a legacy (single-object) table hasn't been migrated this session.\n // Kept read-only and saved back in its original shape so mobile clients still work.\n const isLegacyFormat =\n !isCreateTableMode &&\n !hasMigrated &&\n Boolean(tableInfo?.mediaConfiguration) &&\n Boolean(tableInfo?.hasMedia) &&\n !isDownloadUrlArray(tableInfo.mediaConfiguration);\n\n const popOverOpen = Boolean(anchorEl);\n const id = popOverOpen ? \"simple-popover\" : undefined;\n\n const columnTypeOptions = [\"TEXT\", \"INTEGER\"];\n\n const loggedInUser = useSelector((state) => {\n return state.Authenticate.user.id;\n });\n const defaultValues = {\n selectedColumns: !isCreateTableMode ? [...tableInfo.columnInfo] : [],\n modifiedOnQuery: !isCreateTableMode ? tableInfo.modifiedOnQuery : \"\",\n dataFetchQuery: !isCreateTableMode ? tableInfo.selectQuery : \"\",\n tableName: \"\",\n createTableQuery: \"\",\n syncByDefault: !isCreateTableMode\n ? tableInfo?.syncByDefault?.toString()\n : null,\n primaryKey: !isCreateTableMode\n ? tableInfo.primaryKey\n ? tableInfo.primaryKey\n : null\n : null,\n userData: !isCreateTableMode\n ? tableInfo?.userData?.toString() || null\n : null,\n hasMedia: !isCreateTableMode\n ? tableInfo?.hasMedia?.toString() || null\n : null,\n downloadType: !isCreateTableMode\n ? getNewDownloadType(tableInfo.mediaConfiguration)\n : \"\",\n downloadUrlEntries: !isCreateTableMode\n ? getDownloadUrlEntries(tableInfo.mediaConfiguration)\n : [],\n directoryPath: !isCreateTableMode\n ? tableInfo.mediaConfiguration?.directoryPath?.split(\"/\")[1] ||\n tableInfo.mediaConfiguration?.data?.directoryPath?.split(\"/\")[1] ||\n \"\"\n : \"\",\n };\n const formCtrl = useForm({\n defaultValues: {\n ...defaultValues,\n },\n mode: \"onChange\",\n });\n const isFormValid = !formCtrl.formState.isValid;\n const hasMediaVal = formCtrl.watch(\"hasMedia\");\n const newColumnNameVal = formCtrl.watch(\"newColumnName\");\n const newColumnTypeVal = formCtrl.watch(\"newColumnType\");\n\n formCtrl.register(\"downloadUrlEntries\", {\n validate: (value) => {\n if (hasMediaVal !== \"true\") return true;\n if (!value || value.length === 0)\n return \"At least one API configuration is required.\";\n for (let i = 0; i < value.length; i++) {\n const entry = value[i];\n if (!entry.apiEndpoint?.trim())\n return `API #${i + 1}: API Endpoint is required.`;\n if (!entry.requestParameters || entry.requestParameters.length === 0)\n return `API #${i + 1}: At least one request parameter is required.`;\n const hasIncomplete = entry.requestParameters.some(\n (p) => !p.key?.trim() || !p.value?.trim(),\n );\n if (hasIncomplete)\n return `API #${i + 1}: Each parameter must have both a key and a value filled.`;\n }\n return true;\n },\n });\n\n const onSubmit = async (data) => {\n const script = isCreateTableMode\n ? formCtrl.getValues(\"createTableQuery\")\n : await createScript(\n [...tableInfo.columnInfo],\n data.selectedColumns,\n tableInfo.primaryKey,\n data.primaryKey?.toString(),\n );\n if (script) {\n setFormData(() => data);\n setMigrationScript(() => script);\n getMigrationVersion();\n setModalOpen(true);\n } else {\n saveForm(data, false);\n }\n };\n\n const saveForm = async (data, migrationRequired) => {\n const columns = {};\n let response;\n let entity = data || formData;\n if (!migrationRequired) setMigrationScript(\"\");\n if (Object.keys(entity).length > 0) {\n entity.selectedColumns.forEach((col) => {\n columns[col.name] = col.type;\n });\n entity.columns = JSON.stringify(columns);\n entity.primaryKey = entity.primaryKey?.toString();\n const downloadUrlList = downloadUrlEntries.map((entry) => ({\n apiEndpoint: entry.apiEndpoint || \"\",\n requestParameters: entry.requestParameters || [],\n }));\n let mediaConfig = {\n downloadType: labelToCode(entity.downloadType),\n // Unmigrated legacy tables are saved back as a single object, not an array, for mobile compat.\n downloadUrl: isLegacyFormat\n ? (downloadUrlList[0] ?? { apiEndpoint: \"\", requestParameters: [] })\n : downloadUrlList,\n directoryPath: \"#directoryPath#/\" + entity.directoryPath + \"/\",\n };\n mediaConfig = JSON.stringify(mediaConfig);\n try {\n response = (\n await execute({\n code: \"update_mobile_entity\",\n parameters: {\n tableName:\n (isCreateTableMode ? formCtrl.getValues(\"tableName\") : table) ||\n \"\",\n syncByDefault: entity.syncByDefault === \"true\",\n columnInfo: entity.columns || \"\",\n primaryKey: entity.primaryKey || \"\",\n modifiedOnQuery: entity.modifiedOnQuery || \"\",\n selectQuery: entity.dataFetchQuery || \"\",\n userData: entity.userData === \"true\",\n hasMedia: entity.hasMedia === \"true\",\n mediaConfiguration:\n entity.hasMedia === \"true\" ? mediaConfig : null,\n modifiedBy: loggedInUser || \"\",\n isUpdate: true,\n },\n })\n ).data;\n\n if (response?.result && migrationRequired && migrationScript) {\n const migrationRes = (\n await execute({\n code: \"INSERT_MOBILE_MIGRATION\",\n parameters: {\n migrationScript,\n modifiedBy: loggedInUser || \"\",\n generateMigration: true,\n },\n })\n ).data;\n\n if (migrationRes?.status === 0) {\n showToast({\n message: `Migration insertion failed: ${migrationRes?.message}`,\n type: \"error\",\n });\n }\n }\n } catch (error) {\n showToast({\n message: `Submission failure ${error}`,\n type: \"error\",\n });\n }\n } else {\n try {\n response = (\n await execute({\n code: \"update_mobile_entity\",\n parameters: {\n tableName:\n (isCreateTableMode ? formCtrl.getValues(\"tableName\") : table) ||\n \"\",\n syncByDefault: false,\n columnInfo: \"\",\n primaryKey: \"\",\n modifiedOnQuery: \"\",\n selectQuery: \"\",\n userData: false,\n hasMedia: false,\n mediaConfiguration: null,\n modifiedBy: loggedInUser || \"\",\n isUpdate: false,\n },\n })\n ).data;\n\n if (response?.result && migrationScript) {\n const migrationRes = (\n await execute({\n code: \"INSERT_MOBILE_MIGRATION\",\n parameters: {\n migrationScript,\n modifiedBy: loggedInUser || \"\",\n generateMigration: true,\n },\n })\n ).data;\n\n if (migrationRes?.status === 0) {\n showToast({\n message: `Migration insertion failed: ${migrationRes?.message}`,\n type: \"error\",\n });\n }\n }\n } catch (error) {\n showToast({\n message: `Submission failure ${error}`,\n type: \"error\",\n });\n }\n }\n if (response?.result) {\n updateEditMode(false);\n updateCreateTableMode(false);\n reloadComponents((prev) => !prev);\n showToast({\n message: \"Table configuration saved successfully!\",\n type: \"success\",\n });\n }\n setModalOpen(false);\n };\n\n const handleModalClose = () => {\n setModalOpen(false);\n };\n\n const createScript = async (\n previousColumns,\n newColumns,\n oldPrimaryKey,\n newPrimaryKey,\n ) => {\n let tableScript = \"\";\n\n if (previousColumns.length > 0) {\n const previousColumnsMap = Object.fromEntries(\n previousColumns.map((col) => [col.name, col.type]),\n );\n const newColumnsMap = Object.fromEntries(\n newColumns.map((col) => [col.name, col.type]),\n );\n\n const previousColumnsNames = Object.keys(previousColumnsMap);\n const newColumnsNames = Object.keys(newColumnsMap);\n\n const droppedColumns = previousColumns.filter(\n (col) => !newColumnsNames.includes(col.name),\n );\n const addedColumns = newColumns.filter(\n (col) => !previousColumnsNames.includes(col.name),\n );\n\n // Detect columns that exist in both old and new but with a different type\n const modifiedColumns = previousColumns.filter((col) => {\n const newType = newColumnsMap[col.name];\n return newType !== undefined && newType !== col.type;\n });\n\n const dropColumnSql = droppedColumns\n .map((col) => `ALTER TABLE ${table} DROP COLUMN ${col.name};`)\n .join(\"\\n\");\n const addColumnSql = addedColumns\n .map(\n (col) => `ALTER TABLE ${table} ADD COLUMN ${col.name} ${col.type};`,\n )\n .join(\"\\n\");\n\n let modifyColumnSql = \"\";\n\n if (modifiedColumns.length > 0) {\n modifyColumnSql = generateRebuildScript(\n table,\n {\n columnInfo: previousColumns,\n primaryKey: oldPrimaryKey,\n },\n {\n columnInfo: newColumns,\n primaryKey: newPrimaryKey,\n },\n );\n }\n if (modifyColumnSql) {\n return modifyColumnSql.trim();\n }\n\n if (dropColumnSql) tableScript += `${dropColumnSql}\\n`;\n if (addColumnSql) tableScript += `${addColumnSql}\\n`;\n\n return tableScript.trim();\n } else {\n const tableName = isCreateTableMode\n ? formCtrl.getValues(\"tableName\")\n : table;\n tableScript = `CREATE TABLE ${tableName} (\\n`;\n\n tableScript += newColumns\n .map((col) => `${col.name} ${col.type}`)\n .join(\",\\n\");\n\n if (newPrimaryKey) {\n tableScript += `,\\nCONSTRAINT ${tableName}_pkey PRIMARY KEY (${newPrimaryKey})`;\n }\n\n tableScript += `);`;\n\n return tableScript;\n }\n };\n\n const getMigrationVersion = async () => {\n const res = (\n await execute({\n code: \"MFA_MIGRATION_MASTER_GET_LATEST_VERSIONS\",\n }).catch((error) => {\n showToast({\n message: `Failed to fetch migration versions ${error}`,\n type: \"error\",\n });\n })\n )?.data;\n setMigrationVersions(res?.result[0]);\n };\n\n useEffect(() => {\n setSearchColumn(\"\");\n setQueryTabValue(0);\n setColTabValue(0);\n\n if (isCreateTableMode) {\n setAllColumns([]);\n setSyncedFilteredCols([]);\n setFilteredCols([]);\n setDownloadUrlEntries([]);\n setHasMigrated(false);\n formCtrl.reset({\n ...defaultValues,\n });\n // Trigger validation after reset so isValid updates\n setTimeout(() => formCtrl.trigger(), 0);\n }\n if (!!table && !!tableInfo && !isCreateTableMode) {\n tableCompleteInfo !== undefined\n ? setAllColumns(() => tableCompleteInfo.columnInfo)\n : setAllColumns(() => tableInfo.columnInfo);\n let allColumnsNames =\n tableCompleteInfo !== undefined\n ? tableCompleteInfo.columnInfo.map((col) => col.name)\n : tableInfo.columnInfo.map((col) => col.name);\n\n let tableCompleteInfoObj = {};\n\n tableCompleteInfo !== undefined\n ? tableCompleteInfo.columnInfo.forEach((item) => {\n tableCompleteInfoObj[item.name] = item.type;\n })\n : tableInfo.columnInfo.forEach((item) => {\n tableCompleteInfoObj[item.name] = item.type;\n });\n\n let tableInfoObj = {};\n\n tableInfo.columnInfo.forEach((item) => {\n tableInfoObj[item.name] = item.type;\n });\n\n tableInfo.columnInfo.map((col) => {\n if (!allColumnsNames.includes(col.name)) {\n col[\"onlyMobileDb\"] = true;\n }\n if (tableInfoObj[col.name] !== tableCompleteInfoObj[col.name]) {\n col[\"isTypeChanged\"] = true;\n }\n if (col.name === tableInfo.primaryKey) {\n col[\"isPrimaryKey\"] = true;\n }\n });\n formCtrl.reset({\n ...defaultValues,\n });\n // Trigger validation after reset so isValid reflects current state\n setTimeout(() => formCtrl.trigger(), 0);\n setDownloadUrlEntries(\n getDownloadUrlEntries(tableInfo?.mediaConfiguration),\n );\n setHasMigrated(false);\n setSyncedFilteredCols(() =>\n tableInfo.columnInfo.sort((a, b) => {\n if (a.name === tableInfo.primaryKey) {\n a.isPrimaryKey = true;\n return -1;\n }\n if (b.name === tableInfo.primaryKey) {\n b.isPrimaryKey = true;\n return 1;\n }\n return a.name.localeCompare(b.name);\n }),\n );\n\n tableCompleteInfo !== undefined\n ? setFilteredCols(() => {\n const syncedNames = new Set(\n tableInfo.columnInfo.map((col) => col.name),\n );\n\n const updatedCols = tableCompleteInfo.columnInfo.map((col) => ({\n ...col,\n isSynced: syncedNames.has(col.name),\n }));\n\n return updatedCols.sort((a, b) => {\n if (a.name === tableInfo.primaryKey) return -1;\n if (b.name === tableInfo.primaryKey) return 1;\n return a.name.localeCompare(b.name);\n });\n })\n : setFilteredCols([]);\n }\n }, [tableInfo, tableCompleteInfo, table, isCreateTableMode]);\n useEffect(() => {\n const searchValue = searchColumn.toLowerCase();\n\n if (colTabValue === 0) {\n const allSynced = formCtrl.getValues(\"selectedColumns\");\n const filtered = searchValue\n ? allSynced.filter((col) =>\n col.name.toLowerCase().includes(searchValue),\n )\n : allSynced;\n\n setSyncedFilteredCols(filtered);\n } else {\n const syncedNames = new Set(\n formCtrl.getValues(\"selectedColumns\").map((col) => col.name),\n );\n const filtered = searchValue\n ? allColumns\n .filter((col) => col.name.toLowerCase().includes(searchValue))\n .map((col) => ({\n ...col,\n isSynced: syncedNames.has(col.name),\n }))\n : allColumns.map((col) => ({\n ...col,\n isSynced: syncedNames.has(col.name),\n }));\n\n setFilteredCols(filtered);\n }\n }, [searchColumn, colTabValue]);\n const watchedTableName = useWatch({\n control: formCtrl.control,\n name: \"tableName\",\n });\n\n useEffect(() => {\n if (\n isCreateTableMode &&\n formCtrl.getValues(\"selectedColumns\").length > 0 &&\n watchedTableName\n ) {\n updateCreateTableScript(formCtrl.getValues(\"selectedColumns\"));\n }\n }, [watchedTableName]);\n\n const handleEditorChange = (value) => {\n setMigrationScript(value);\n };\n const onCancel = () => {\n if (isEditMode) {\n updateEditMode(!isEditMode);\n }\n if (isCreateTableMode) {\n updateCreateTableMode(!isCreateTableMode);\n }\n formCtrl.reset({\n ...defaultValues,\n newColumnName: null,\n newColumnType: null,\n });\n setDownloadUrlEntries(defaultValues.downloadUrlEntries || []);\n setHasMigrated(false);\n setSyncedFilteredCols(defaultValues.selectedColumns || []);\n\n const syncedNames = new Set(\n (defaultValues.selectedColumns || []).map((col) => col.name),\n );\n setFilteredCols(\n (defaultValues.allColumns || []).map((col) => ({\n ...col,\n isSynced: syncedNames.has(col.name),\n })),\n );\n };\n\n const handleDelete = async () => {\n setOpenDeleteModal(() => false);\n const response = await execute({\n code: \"DELETE_MOBILE_ENTITY\",\n parameters: {\n tableName: table,\n },\n }).catch((error) => {\n showToast({\n message: `Metadata deletion failure ${error}`,\n type: \"error\",\n });\n });\n\n if (response?.data?.result?.[0]?.table_name) {\n showToast({ message: `${table} deleted successfully!`, type: \"success\" });\n }\n let dropTableSql = `DROP TABLE if exists ${table};`;\n setMigrationScript(() => dropTableSql);\n getMigrationVersion();\n setModalOpen(true);\n };\n\n const checkAvailability = async (name) => {\n const isValidFormat = /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(name);\n if (name.trim().length === 0) {\n formCtrl.setError(\"newColumnName\", {\n type: \"manual\",\n message: \"*Column name is required. \",\n });\n return;\n }\n if (!isValidFormat) {\n formCtrl.setError(\"newColumnName\", {\n type: \"manual\",\n message:\n \"Must start with a letter/underscore and contain only letters, numbers, and underscores.\",\n });\n return;\n }\n if (\n filteredCols.some((col) => col.name === name) ||\n syncedFilteredCols.some((col) => col.name === name)\n ) {\n formCtrl.setError(\"newColumnName\", {\n type: \"manual\",\n message: \"Column name already exists in the table.\",\n });\n } else {\n formCtrl.clearErrors(\"newColumnName\");\n }\n };\n\n const debouncedCheckAvailability = useDebounceFn(checkAvailability, 500);\n\n const hasPrimaryKey = syncedFilteredCols.some(\n (col) => col.isPrimaryKey === true,\n );\n\n const updateCreateTableScript = async (columns) => {\n queryTabValue !== 2 && isCreateTableMode && setQueryTabValue(2);\n if (columns.length === 0) {\n formCtrl.setValue(\"createTableQuery\", \"\", { shouldDirty: true });\n return;\n }\n\n const newPrimaryKey = columns.find((c) => c.isPrimaryKey)?.name || \"\";\n const script = await createScript([], columns, \"\", newPrimaryKey);\n formCtrl.setValue(\"createTableQuery\", script, { shouldDirty: true });\n };\n\n return (\n <Grid\n size={9}\n sx={{\n maxHeight: \"88vh\",\n overflowY: \"auto\",\n overflowX: \"hidden\",\n }}\n >\n <Paper\n variant=\"outlined\"\n sx={{\n p: 2.5,\n borderRadius: 1.5,\n backgroundColor: \"background.paper\",\n }}\n >\n <form\n onSubmit={formCtrl.handleSubmit(onSubmit)}\n noValidate\n className=\"w-full\"\n >\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n mb: 2.5,\n pb: 2,\n borderBottom: \"1px solid\",\n borderColor: \"divider\",\n }}\n >\n <Box sx={{ flex: 1 }}>\n {!isCreateTableMode ? (\n <>\n <Typography\n variant=\"h6\"\n sx={{ fontWeight: 700, color: \"text.primary\" }}\n >\n {table ? table : \"No Table Selected\"}\n </Typography>\n <Typography variant=\"caption\" color=\"text.secondary\">\n {table\n ? \"View and manage table configuration\"\n : \"Select a table from the list\"}\n </Typography>\n </>\n ) : (\n <Box sx={{ maxWidth: 350 }}>\n <Typography\n variant=\"subtitle2\"\n sx={{ fontWeight: 600, mb: 0.5 }}\n >\n New Table\n </Typography>\n <CustomTextField\n control={formCtrl.control}\n id=\"tableName\"\n name=\"tableName\"\n errors={formCtrl.formState.errors}\n label=\"Table Name\"\n size=\"small\"\n rules={{\n required: {\n value: true,\n message: \"Please Enter the name\",\n },\n pattern: {\n value: /^[a-z0-9_]+$/,\n message:\n \"Only lowercase letters, numbers, and underscores are allowed\",\n },\n validate: {},\n }}\n />\n </Box>\n )}\n <CustomConfirmationModal\n description={\"Do you want to drop this table?\"}\n title={\"CONFIRMATION\"}\n open={openDeleteModal}\n handleClick={handleDelete}\n handleClose={() => setOpenDeleteModal((cur) => !cur)}\n />\n </Box>\n <Box sx={{ display: \"flex\", gap: 1 }}>\n {(isEditMode || isCreateTableMode) && (\n <Tooltip\n title={\n !hasPrimaryKey\n ? \"A primary key is required to proceed.\"\n : \"\"\n }\n arrow\n placement=\"bottom\"\n >\n <span>\n <Button\n type=\"submit\"\n variant=\"contained\"\n size=\"small\"\n sx={{\n borderRadius: 2,\n fontWeight: 600,\n textTransform: \"none\",\n boxShadow: \"none\",\n px: 2.5,\n }}\n disabled={isFormValid || !hasPrimaryKey}\n startIcon={<FontAwesomeIcons iconName=\"faCheck\" />}\n >\n Submit\n </Button>\n </span>\n </Tooltip>\n )}\n {(isEditMode || isCreateTableMode) && (\n <Button\n type=\"button\"\n variant=\"outlined\"\n onClick={() => onCancel()}\n size=\"small\"\n sx={{\n borderRadius: 2,\n fontWeight: 600,\n textTransform: \"none\",\n borderColor: \"divider\",\n color: \"text.secondary\",\n px: 2.5,\n \"&:hover\": {\n backgroundColor: \"action.hover\",\n borderColor: \"text.disabled\",\n },\n }}\n >\n Cancel\n </Button>\n )}\n </Box>\n </Box>\n <Grid container spacing={2}>\n <Grid size={7}>\n {/* Pill-style query tabs matching ManageAllForms */}\n <Box\n sx={{\n display: \"inline-flex\",\n gap: 0.75,\n p: 0.75,\n backgroundColor: \"action.hover\",\n borderRadius: 1.5,\n border: \"1px solid\",\n borderColor: \"divider\",\n mb: 2,\n }}\n >\n {[\n { value: 0, label: \"Modified On Query\", icon: \"faClock\" },\n { value: 1, label: \"Data Fetch Query\", icon: \"faDatabase\" },\n ...(isCreateTableMode\n ? [\n {\n value: 2,\n label: \"Create Table Query\",\n icon: \"faCode\",\n },\n ]\n : []),\n ].map((tab) => {\n const isActive = queryTabValue === tab.value;\n return (\n <Button\n key={tab.value}\n onClick={() => setQueryTabValue(tab.value)}\n size=\"small\"\n disableElevation\n sx={{\n px: 2,\n py: 0.6,\n borderRadius: 2,\n textTransform: \"none\",\n fontSize: \"0.8rem\",\n fontWeight: isActive ? 700 : 500,\n color: isActive ? \"primary.dark\" : \"text.secondary\",\n backgroundColor: isActive\n ? \"background.paper\"\n : \"transparent\",\n boxShadow: isActive\n ? \"0px 2px 6px rgba(0,0,0,0.06)\"\n : \"none\",\n border: \"1px solid\",\n borderColor: isActive ? \"divider\" : \"transparent\",\n transition: \"all 0.2s ease\",\n \"&:hover\": {\n backgroundColor: isActive\n ? \"background.paper\"\n : \"action.hover\",\n },\n }}\n startIcon={<FontAwesomeIcons iconName={tab.icon} />}\n >\n {tab.label}\n </Button>\n );\n })}\n </Box>\n {queryTabValue === 0 && (\n <Grid>\n <Typography variant=\"subtitle1\">\n Modified On Query:\n </Typography>\n <Controller\n name=\"modifiedOnQuery\"\n control={formCtrl.control}\n render={({ field, fieldState: { error } }) => (\n <>\n <Editor\n height=\"35vh\"\n defaultLanguage=\"sql\"\n theme=\"vs-dark\"\n options={{\n fontSize: 12,\n minimap: { enabled: false },\n automaticLayout: true,\n scrollBeyondLastLine: false,\n wordWrap: \"on\",\n occurrencesHighlight: false,\n selectionHighlight: false,\n readOnly: !isEditMode && !isCreateTableMode,\n }}\n value={field.value || \"\"}\n defaultValue={field.value || \"\"}\n onChange={field.onChange}\n editorProps={{ $blockScrolling: true }}\n />\n {error?.message && (\n <Typography\n variant=\"subtitle1\"\n color=\"error\"\n fontSize=\"13px\"\n className=\"mt-1 ml-[13px]\"\n >\n {error.message}\n </Typography>\n )}\n </>\n )}\n ></Controller>\n </Grid>\n )}\n {queryTabValue === 1 && (\n <Grid>\n <Typography variant=\"subtitle1\">Data Fetch Query:</Typography>\n <Controller\n name=\"dataFetchQuery\"\n control={formCtrl.control}\n render={({ field, fieldState: { error } }) => (\n <>\n <Editor\n height=\"35vh\"\n defaultLanguage=\"sql\"\n theme=\"vs-dark\"\n options={{\n fontSize: 12,\n minimap: { enabled: false },\n automaticLayout: true,\n scrollBeyondLastLine: false,\n wordWrap: \"on\",\n occurrencesHighlight: false,\n selectionHighlight: false,\n readOnly: !isEditMode && !isCreateTableMode,\n }}\n value={field.value || \"\"}\n defaultValue={field.value || \"\"}\n onChange={field.onChange}\n editorProps={{ $blockScrolling: true }}\n />\n {error?.message && (\n <Typography\n variant=\"subtitle1\"\n color=\"error\"\n fontSize=\"13px\"\n className=\"mt-1 ml-[13px]\"\n >\n {error.message}\n </Typography>\n )}\n </>\n )}\n ></Controller>\n </Grid>\n )}\n {queryTabValue === 2 && (\n <Grid>\n <Typography variant=\"subtitle1\">\n Create Table Query:\n </Typography>\n <Controller\n name=\"createTableQuery\"\n control={formCtrl.control}\n render={({ field, fieldState: { error } }) => (\n <>\n <Editor\n height=\"35vh\"\n defaultLanguage=\"sql\"\n theme=\"vs-dark\"\n options={{\n fontSize: 12,\n minimap: { enabled: false },\n automaticLayout: true,\n scrollBeyondLastLine: false,\n wordWrap: \"on\",\n occurrencesHighlight: false,\n selectionHighlight: false,\n readOnly: true,\n }}\n value={field.value || \"\"}\n defaultValue={field.value || \"\"}\n onChange={field.onChange}\n editorProps={{ $blockScrolling: true }}\n />\n {error?.message && (\n <Typography\n variant=\"subtitle1\"\n color=\"error\"\n fontSize=\"13px\"\n className=\"mt-1 ml-[13px]\"\n >\n {error.message}\n </Typography>\n )}\n </>\n )}\n ></Controller>\n </Grid>\n )}\n {/* ── Configuration Options Section ── */}\n <Paper\n variant=\"outlined\"\n sx={{\n p: 2,\n mt: 2,\n borderRadius: 2,\n backgroundColor: \"action.hover\",\n }}\n >\n <Typography\n variant=\"subtitle2\"\n sx={{ fontWeight: 700, mb: 1.5, color: \"text.primary\" }}\n >\n Table Settings\n </Typography>\n <Grid container spacing={2}>\n <Grid size={6} xs={12}>\n <Typography\n variant=\"body2\"\n sx={{ fontWeight: 600, mb: 0.5 }}\n >\n Data Scope <span style={{ color: \"#ef4444\" }}>*</span>\n </Typography>\n <FormControl>\n <Controller\n name=\"userData\"\n control={formCtrl.control}\n rules={{ required: \"Required field.\" }}\n disabled={!isEditMode && !isCreateTableMode}\n defaultValue={\n tableInfo.userData !== undefined &&\n tableInfo.userData !== null\n ? String(tableInfo.userData)\n : \"\"\n }\n render={({ field }) => (\n <RadioGroup row {...field} value={field.value}>\n <FormControlLabel\n value=\"true\"\n control={\n <Radio\n disabled={!isEditMode && !isCreateTableMode}\n size=\"small\"\n />\n }\n label={\n <Typography variant=\"body2\">User</Typography>\n }\n />\n <FormControlLabel\n value=\"false\"\n control={\n <Radio\n disabled={!isEditMode && !isCreateTableMode}\n size=\"small\"\n />\n }\n label={\n <Typography variant=\"body2\">System</Typography>\n }\n />\n </RadioGroup>\n )}\n />\n </FormControl>\n </Grid>\n <Grid size={6} xs={12}>\n <Typography\n variant=\"body2\"\n sx={{ fontWeight: 600, mb: 0.5 }}\n >\n Sync by Default{\" \"}\n <span style={{ color: \"#ef4444\" }}>*</span>\n </Typography>\n <FormControl>\n <Controller\n name=\"syncByDefault\"\n id=\"syncByDefault\"\n control={formCtrl.control}\n rules={{ required: \"Required field.\" }}\n disabled={!isEditMode && !isCreateTableMode}\n defaultValue={\n tableInfo.syncByDefault !== undefined &&\n tableInfo.syncByDefault !== null\n ? String(tableInfo.syncByDefault)\n : \"\"\n }\n render={({ field }) => (\n <RadioGroup row {...field} value={field.value}>\n <FormControlLabel\n value=\"true\"\n control={\n <Radio\n disabled={!isEditMode && !isCreateTableMode}\n size=\"small\"\n />\n }\n label={\n <Typography variant=\"body2\">Yes</Typography>\n }\n />\n <FormControlLabel\n value=\"false\"\n control={\n <Radio\n disabled={!isEditMode && !isCreateTableMode}\n size=\"small\"\n />\n }\n label={\n <Typography variant=\"body2\">No</Typography>\n }\n />\n </RadioGroup>\n )}\n />\n </FormControl>\n </Grid>\n <Grid size={6} xs={12}>\n <Typography\n variant=\"body2\"\n sx={{ fontWeight: 600, mb: 0.5 }}\n >\n Has Media <span style={{ color: \"#ef4444\" }}>*</span>\n </Typography>\n <FormControl>\n <Controller\n name=\"hasMedia\"\n id=\"hasMedia\"\n control={formCtrl.control}\n rules={{ required: \"Required field.\" }}\n disabled={!isEditMode && !isCreateTableMode}\n defaultValue={\n tableInfo.hasMedia !== undefined &&\n tableInfo.hasMedia !== null\n ? String(tableInfo.hasMedia)\n : \"\"\n }\n render={({ field }) => (\n <RadioGroup row {...field} value={field.value}>\n <FormControlLabel\n value=\"true\"\n control={\n <Radio\n disabled={!isEditMode && !isCreateTableMode}\n size=\"small\"\n />\n }\n label={\n <Typography variant=\"body2\">Yes</Typography>\n }\n />\n <FormControlLabel\n value=\"false\"\n control={\n <Radio\n disabled={!isEditMode && !isCreateTableMode}\n size=\"small\"\n />\n }\n label={\n <Typography variant=\"body2\">No</Typography>\n }\n />\n </RadioGroup>\n )}\n />\n </FormControl>\n </Grid>\n </Grid>\n </Paper>\n {hasMediaVal === \"true\" && (\n <>\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n mt: 2,\n }}\n >\n <Typography\n variant=\"h6\"\n sx={{ fontWeight: 600, color: 'var(--color-gray1)' }}\n >\n Media Configuration:\n </Typography>\n {isLegacyFormat && isEditMode && (\n <Tooltip\n title=\"Convert legacy single-API config to the new multi-API format\"\n arrow\n >\n <Button\n size=\"small\"\n variant=\"contained\"\n color=\"warning\"\n sx={{\n borderRadius: 2,\n fontWeight: 600,\n textTransform: \"none\",\n boxShadow: \"none\",\n px: 2,\n }}\n startIcon={\n <FontAwesomeIcons iconName=\"faArrowsRotate\" />\n }\n onClick={() => {\n // Seed a blank entry if the legacy config had no usable API.\n const entries = getDownloadUrlEntries(\n tableInfo.mediaConfiguration,\n );\n const migrated = entries.length\n ? entries\n : [{ apiEndpoint: \"\", requestParameters: [] }];\n setDownloadUrlEntries(migrated);\n setHasMigrated(true);\n formCtrl.setValue(\"downloadUrlEntries\", migrated, {\n shouldDirty: true,\n shouldValidate: true,\n });\n showToast({\n message:\n \"Migrated to multi-API format. Click Submit to save.\",\n type: \"info\",\n });\n }}\n >\n Migrate to Multi-API\n </Button>\n </Tooltip>\n )}\n </Box>\n\n {isLegacyFormat && isEditMode && (\n <Paper\n variant=\"outlined\"\n sx={{\n p: 2,\n mt: 1,\n borderRadius: 2,\n backgroundColor: \"rgba(255, 152, 0, 0.06)\",\n borderColor: \"warning.main\",\n textAlign: \"center\",\n }}\n >\n <Typography\n variant=\"body2\"\n sx={{ color: \"warning.dark\", fontWeight: 500 }}\n >\n This table uses the legacy single-API format. Click{\" \"}\n <strong>&quot;Migrate to Multi-API&quot;</strong> above to\n enable editing the media configuration.\n </Typography>\n </Paper>\n )}\n\n <Grid container spacing={2} className=\"mt-2\">\n <Grid size={6} xs={12}>\n <Typography\n variant=\"subtitle2\"\n sx={{ mb: 0.5, fontWeight: 600 }}\n >\n Download Type<span style={{ color: \"red\" }}>*</span>:\n </Typography>\n <Controller\n name=\"downloadType\"\n control={formCtrl.control}\n rules={{\n validate: (value) =>\n hasMediaVal !== \"true\" ||\n !!value ||\n \"Download Type is required.\",\n }}\n render={({\n field: { onChange, value },\n fieldState: { error },\n }) => (\n <Autocomplete\n options={DOWNLOAD_TYPE_OPTIONS}\n value={value || null}\n disabled={(!isEditMode && !isCreateTableMode) || isLegacyFormat}\n onChange={(_, newValue) => onChange(newValue)}\n renderInput={(params) => (\n <TextField\n {...params}\n size=\"small\"\n placeholder=\"Select download type\"\n error={!!error}\n helperText={error?.message}\n />\n )}\n />\n )}\n />\n </Grid>\n\n <Grid size={12}>\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n mb: 1,\n }}\n >\n <Typography\n variant=\"subtitle1\"\n sx={{ fontWeight: 600, color: 'var(--color-text)' }}\n >\n Download URL APIs\n </Typography>\n {(isEditMode || isCreateTableMode) && !isLegacyFormat && (\n <Tooltip title=\"Add another API configuration\" arrow>\n <Button\n size=\"small\"\n variant=\"outlined\"\n sx={{\n borderRadius: 2,\n textTransform: \"none\",\n fontWeight: 600,\n px: 1.5,\n borderColor: \"divider\",\n color: \"text.primary\",\n \"&:hover\": {\n backgroundColor: \"action.hover\",\n borderColor: \"text.disabled\",\n },\n }}\n startIcon={<FontAwesomeIcons iconName=\"faPlus\" />}\n onClick={() => {\n const updated = [\n ...downloadUrlEntries,\n { apiEndpoint: \"\", requestParameters: [] },\n ];\n setDownloadUrlEntries(updated);\n formCtrl.setValue(\"downloadUrlEntries\", updated, {\n shouldDirty: true,\n shouldValidate: true,\n });\n }}\n >\n Add Download API\n </Button>\n </Tooltip>\n )}\n </Box>\n\n {downloadUrlEntries.length === 0 && (\n <Typography\n variant=\"caption\"\n sx={{ color: 'var(--color-gray1)', fontStyle: \"italic\" }}\n >\n No API configurations added.\n </Typography>\n )}\n\n {downloadUrlEntries.map((entry, entryIdx) => (\n <Paper\n key={entryIdx}\n variant=\"outlined\"\n sx={{\n p: 2,\n mb: 1.5,\n borderRadius: 2,\n backgroundColor: \"var(--color-gray4)\",\n borderColor: \"divider\",\n }}\n >\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n mb: 1.5,\n }}\n >\n <Typography\n variant=\"subtitle2\"\n sx={{ fontWeight: 700, color: 'var(--color-text)' }}\n >\n API Configuration #{entryIdx + 1}\n </Typography>\n {(isEditMode || isCreateTableMode) &&\n !isLegacyFormat &&\n downloadUrlEntries.length > 1 && (\n <Tooltip title=\"Remove this API configuration\" arrow>\n <IconButton\n size=\"small\"\n onClick={() => {\n const updated = downloadUrlEntries.filter(\n (_, i) => i !== entryIdx,\n );\n setDownloadUrlEntries(updated);\n formCtrl.setValue(\n \"downloadUrlEntries\",\n updated,\n {\n shouldDirty: true,\n shouldValidate: true,\n },\n );\n }}\n sx={{ color: \"#ef4444\" }}\n >\n <FontAwesomeIcons\n iconName=\"faTrashCan\"\n className=\"text-[0.85rem]\"\n />\n </IconButton>\n </Tooltip>\n )}\n </Box>\n\n <Typography\n variant=\"subtitle2\"\n sx={{ mb: 0.5, fontWeight: 600 }}\n >\n API Endpoint<span style={{ color: \"red\" }}>*</span>:\n </Typography>\n <TextField\n value={entry.apiEndpoint || \"\"}\n size=\"small\"\n variant=\"outlined\"\n fullWidth\n placeholder=\"https://api.example.com/endpoint\"\n slotProps={{\n input: {\n readOnly:\n (!isEditMode && !isCreateTableMode) ||\n isLegacyFormat,\n },\n }}\n onChange={(e) => {\n const updated = downloadUrlEntries.map(\n (item, i) =>\n i === entryIdx\n ? { ...item, apiEndpoint: e.target.value }\n : item,\n );\n setDownloadUrlEntries(updated);\n formCtrl.setValue(\n \"downloadUrlEntries\",\n updated,\n {\n shouldDirty: true,\n shouldValidate: true,\n },\n );\n }}\n sx={{ mb: 2 }}\n />\n\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n mb: 1,\n }}\n >\n <Typography\n variant=\"subtitle2\"\n sx={{\n fontWeight: 600,\n color: 'var(--color-text)',\n flex: 1,\n }}\n >\n Request Parameters\n <span style={{ color: \"red\" }}>*</span>:\n </Typography>\n {(isEditMode || isCreateTableMode) &&\n !isLegacyFormat && (\n <Tooltip title=\"Add parameter\" arrow>\n <IconButton\n size=\"small\"\n onClick={() => {\n const updated = downloadUrlEntries.map(\n (item, i) =>\n i === entryIdx\n ? {\n ...item,\n requestParameters: [\n ...(item.requestParameters ||\n []),\n { key: \"\", value: \"\" },\n ],\n }\n : item,\n );\n setDownloadUrlEntries(updated);\n formCtrl.setValue(\n \"downloadUrlEntries\",\n updated,\n {\n shouldDirty: true,\n shouldValidate: true,\n },\n );\n }}\n sx={{\n backgroundColor:\n 'var(--color-tableHeader)',\n color: \"white\",\n \"&:hover\": {\n backgroundColor: \"#3d4f5c\",\n },\n borderRadius: \"6px\",\n width: \"28px\",\n height: \"28px\",\n }}\n >\n <FontAwesomeIcons\n iconName=\"faPlus\"\n className=\"text-[0.75rem]\"\n />\n </IconButton>\n </Tooltip>\n )}\n </Box>\n\n {(!entry.requestParameters ||\n entry.requestParameters.length === 0) && (\n <Typography\n variant=\"caption\"\n sx={{\n color: 'var(--color-gray1)',\n fontStyle: \"italic\",\n }}\n >\n No request parameters added.\n </Typography>\n )}\n\n {(entry.requestParameters || []).map(\n (param, paramIdx) => (\n <Box\n key={paramIdx}\n sx={{\n display: \"flex\",\n gap: 1,\n alignItems: \"flex-start\",\n mb: 1,\n p: 1,\n borderRadius: \"6px\",\n backgroundColor: \"var(--color-gray4)\",\n border: \"1px solid var(--color-gray3)\",\n }}\n >\n <TextField\n size=\"small\"\n label=\"Key\"\n value={param.key}\n placeholder=\"parameterKey\"\n disabled={\n (!isEditMode && !isCreateTableMode) ||\n isLegacyFormat\n }\n onChange={(e) => {\n const updatedParams = (\n entry.requestParameters || []\n ).map((p, pi) =>\n pi === paramIdx\n ? { ...p, key: e.target.value }\n : p,\n );\n const updated = downloadUrlEntries.map(\n (item, i) =>\n i === entryIdx\n ? {\n ...item,\n requestParameters: updatedParams,\n }\n : item,\n );\n setDownloadUrlEntries(updated);\n formCtrl.setValue(\n \"downloadUrlEntries\",\n updated,\n {\n shouldDirty: true,\n shouldValidate: true,\n },\n );\n }}\n sx={{ flex: 1 }}\n />\n\n <Autocomplete\n size=\"small\"\n options={syncedFilteredCols.map(\n (col) => col.name,\n )}\n value={param.value || null}\n disabled={\n (!isEditMode && !isCreateTableMode) ||\n isLegacyFormat\n }\n noOptionsText={\n syncedFilteredCols.length === 0\n ? \"No synced columns yet\"\n : \"No match\"\n }\n onChange={(_, newValue) => {\n const updatedParams = (\n entry.requestParameters || []\n ).map((p, pi) =>\n pi === paramIdx\n ? { ...p, value: newValue || \"\" }\n : p,\n );\n const updated = downloadUrlEntries.map(\n (item, i) =>\n i === entryIdx\n ? {\n ...item,\n requestParameters: updatedParams,\n }\n : item,\n );\n setDownloadUrlEntries(updated);\n formCtrl.setValue(\n \"downloadUrlEntries\",\n updated,\n {\n shouldDirty: true,\n shouldValidate: true,\n },\n );\n }}\n renderInput={(params) => (\n <TextField\n {...params}\n label=\"Value (Column)\"\n placeholder=\"Select column\"\n />\n )}\n sx={{ flex: 1 }}\n />\n\n {(isEditMode || isCreateTableMode) &&\n !isLegacyFormat && (\n <Tooltip title=\"Remove parameter\" arrow>\n <IconButton\n size=\"small\"\n onClick={() => {\n const updatedParams = (\n entry.requestParameters || []\n ).filter(\n (_, pi) => pi !== paramIdx,\n );\n const updated =\n downloadUrlEntries.map((item, i) =>\n i === entryIdx\n ? {\n ...item,\n requestParameters:\n updatedParams,\n }\n : item,\n );\n setDownloadUrlEntries(updated);\n formCtrl.setValue(\n \"downloadUrlEntries\",\n updated,\n {\n shouldDirty: true,\n shouldValidate: true,\n },\n );\n }}\n sx={{\n color: \"#ef4444\",\n alignSelf: \"center\",\n }}\n >\n <FontAwesomeIcons\n iconName=\"faTrashCan\"\n className=\"text-[0.85rem]\"\n />\n </IconButton>\n </Tooltip>\n )}\n </Box>\n ),\n )}\n </Paper>\n ))}\n\n {formCtrl.formState.errors.downloadUrlEntries && (\n <Typography\n variant=\"caption\"\n sx={{ color: \"#ef4444\", mt: 0.5, display: \"block\" }}\n >\n {\n formCtrl.formState.errors.downloadUrlEntries\n .message\n }\n </Typography>\n )}\n </Grid>\n\n <Grid size={6} xs={12}>\n <Typography\n variant=\"subtitle2\"\n sx={{ mb: 0.5, fontWeight: 600 }}\n >\n Directory Path<span style={{ color: \"red\" }}>*</span>:\n </Typography>\n <Controller\n name=\"directoryPath\"\n control={formCtrl.control}\n defaultValue=\"\"\n rules={{\n validate: (value) =>\n hasMediaVal !== \"true\" ||\n (!!value?.trim() && value.trim().length > 0) ||\n \"Directory Path is required.\",\n }}\n render={({ field, fieldState: { error } }) => (\n <TextField\n {...field}\n size=\"small\"\n variant=\"outlined\"\n fullWidth\n error={!!error}\n helperText={error?.message}\n slotProps={{\n input: {\n readOnly:\n (!isEditMode && !isCreateTableMode) ||\n isLegacyFormat,\n startAdornment: (\n <InputAdornment position=\"start\">\n #directoryPath#/\n </InputAdornment>\n ),\n endAdornment: (\n <InputAdornment position=\"end\">\n /\n </InputAdornment>\n ),\n },\n }}\n />\n )}\n />\n </Grid>\n </Grid>\n </>\n )}\n </Grid>\n <Grid size={5}>\n <Paper\n variant=\"outlined\"\n sx={{ px: 2, borderRadius: 1.5, height: \"100%\", mb: 1 }}\n >\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n gap: 1,\n pt: 1.5,\n }}\n >\n {/* Pill-style column tabs */}\n <Box\n sx={{\n display: \"inline-flex\",\n gap: 0.5,\n p: 0.5,\n backgroundColor: \"action.hover\",\n borderRadius: 2,\n border: \"1px solid\",\n borderColor: \"divider\",\n mb: 1,\n }}\n >\n {!isCreateTableMode && (\n <Button\n size=\"small\"\n onClick={() => {\n setColTabValue(0);\n setSearchColumn(\"\");\n }}\n sx={{\n px: 1.5,\n py: 0.4,\n borderRadius: 1.5,\n textTransform: \"none\",\n fontSize: \"0.78rem\",\n fontWeight: colTabValue === 0 ? 700 : 500,\n color:\n colTabValue === 0\n ? \"primary.dark\"\n : \"text.secondary\",\n backgroundColor:\n colTabValue === 0\n ? \"background.paper\"\n : \"transparent\",\n boxShadow:\n colTabValue === 0\n ? \"0px 1px 4px rgba(0,0,0,0.06)\"\n : \"none\",\n border: \"1px solid\",\n borderColor:\n colTabValue === 0 ? \"divider\" : \"transparent\",\n \"&:hover\": {\n backgroundColor:\n colTabValue === 0\n ? \"background.paper\"\n : \"action.hover\",\n },\n }}\n >\n Synced Columns\n </Button>\n )}\n {tableCompleteInfo !== undefined && (\n <Button\n size=\"small\"\n onClick={() => {\n setColTabValue(1);\n setSearchColumn(\"\");\n }}\n sx={{\n px: 1.5,\n py: 0.4,\n borderRadius: 1.5,\n textTransform: \"none\",\n fontSize: \"0.78rem\",\n fontWeight: colTabValue === 1 ? 700 : 500,\n color:\n colTabValue === 1\n ? \"primary.dark\"\n : \"text.secondary\",\n backgroundColor:\n colTabValue === 1\n ? \"background.paper\"\n : \"transparent\",\n boxShadow:\n colTabValue === 1\n ? \"0px 1px 4px rgba(0,0,0,0.06)\"\n : \"none\",\n border: \"1px solid\",\n borderColor:\n colTabValue === 1 ? \"divider\" : \"transparent\",\n \"&:hover\": {\n backgroundColor:\n colTabValue === 1\n ? \"background.paper\"\n : \"action.hover\",\n },\n }}\n >\n {!isCreateTableMode ? \"DB Columns\" : \"Columns\"}\n </Button>\n )}\n </Box>\n {colTabValue === 0 &&\n syncedFilteredCols.length > 0 &&\n isSyncTableMode && (\n <Box sx={{ minWidth: 200, marginLeft: 2 }}>\n <Autocomplete\n size=\"small\"\n options={syncedFilteredCols.map((col) => col.name)}\n value={formCtrl.getValues(\"primaryKey\") || \"\"}\n readOnly={!isEditMode && !isCreateTableMode}\n onChange={(_, newValue) => {\n const updatedCols = syncedFilteredCols.map(\n (col) => ({\n ...col,\n isPrimaryKey: col.name === newValue,\n }),\n );\n setSyncedFilteredCols(updatedCols);\n formCtrl.setValue(\"selectedColumns\", updatedCols, {\n shouldDirty: true,\n });\n formCtrl.setValue(\"primaryKey\", newValue);\n }}\n renderInput={(params) => (\n <TextField\n {...params}\n label=\"Primary Key\"\n placeholder=\"Select column\"\n />\n )}\n renderOption={(props, option) => (\n <li {...props}>\n <Tooltip title={option} placement=\"left\" arrow>\n <span className=\"truncate max-w-[250px]\">\n {option}\n </span>\n </Tooltip>\n </li>\n )}\n />\n </Box>\n )}\n\n {(isCreateTableMode || isEditMode) && (\n <Button\n id=\"edit-button-anchor\"\n size=\"small\"\n variant=\"contained\"\n sx={{\n borderRadius: 2,\n fontWeight: 600,\n textTransform: \"none\",\n boxShadow: \"none\",\n px: 1.5,\n ml: 1,\n }}\n disabled={!!formCtrl.formState.errors.tableName}\n onClick={async (e) => {\n const target = e.currentTarget;\n const isValid = await formCtrl.trigger(\"tableName\");\n if (!isValid) return;\n setEditColumnIndex(null);\n setAnchorEl(target);\n }}\n startIcon={<FontAwesomeIcons iconName={\"faPlus\"} />}\n >\n Column\n </Button>\n )}\n {(isCreateTableMode || isEditMode) && (\n <Popover\n id={id}\n open={popOverOpen}\n anchorEl={anchorEl}\n onClose={async () => {\n setAnchorEl(null);\n formCtrl.setValue(\"newColumnName\", \"\");\n formCtrl.setValue(\"newColumnType\", null);\n formCtrl.setValue(\"isPrimaryKey\", false);\n formCtrl.clearErrors([\n \"newColumnName\",\n \"newColumnType\",\n ]);\n setEditColumnIndex(null);\n }}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"left\",\n }}\n >\n <Grid\n container\n spacing={1}\n sx={{\n p: 1,\n width: \"200px\",\n height: !formCtrl\n .getValues(\"selectedColumns\")\n ?.some((col) => col.isPrimaryKey)\n ? \"210px\"\n : \"180px\",\n }}\n >\n <Grid size={12} className=\"h-fit\">\n <FormControl fullWidth>\n <Controller\n name=\"newColumnName\"\n id=\"newColumnName\"\n control={formCtrl.control}\n render={({\n field: { onChange, value, ...field },\n fieldState: { error },\n }) => (\n <TextField\n {...field}\n value={value?.trim() || \"\"}\n variant=\"outlined\"\n fullWidth\n size=\"small\"\n error={!!error}\n helperText={error?.message}\n label=\"Column Name\"\n sx={{\n \"& .MuiInputLabel-root\": {\n fontSize: \"0.9rem\",\n },\n margin: 0,\n }}\n onChange={(e) => {\n onChange(e.target.value);\n debouncedCheckAvailability(e.target.value);\n }}\n />\n )}\n />\n </FormControl>\n </Grid>\n <Grid size={12} className=\"h-fit\">\n <FormControl fullWidth>\n <Controller\n name=\"newColumnType\"\n id=\"newColumnType\"\n control={formCtrl.control}\n render={({\n field: { onChange, value },\n fieldState: { error },\n }) => (\n <Autocomplete\n options={columnTypeOptions || []}\n value={value?.trim() || null}\n getOptionLabel={(option) => option}\n onChange={(event, newValue) => {\n onChange(newValue);\n }}\n renderInput={(params) => (\n <TextField\n {...params}\n size=\"small\"\n error={!!error}\n helperText={error?.message}\n sx={{\n \"& .MuiInputLabel-root\": {\n fontSize: \"0.9rem\",\n },\n m: 0,\n }}\n label=\"Column Type\"\n onChange={(e) => {\n onChange(e.target.value);\n formCtrl.setValue(\n \"newColumnType\",\n e.target.value,\n {\n shouldDirty: true,\n },\n );\n }}\n />\n )}\n />\n )}\n />\n </FormControl>\n </Grid>\n {editColumnIndex === null &&\n !formCtrl\n .getValues(\"selectedColumns\")\n .some((col) => col.isPrimaryKey) && (\n <Grid size={12} className=\"h-fit\">\n <FormControlLabel\n control={\n <Controller\n name=\"isPrimaryKey\"\n control={formCtrl.control}\n render={({\n field: { onChange, value },\n }) => (\n <Checkbox\n checked={value || false}\n onChange={(e) =>\n onChange(e.target.checked)\n }\n sx={{\n margin: \"0px\",\n }}\n />\n )}\n />\n }\n label=\"Primary Key\"\n />\n </Grid>\n )}\n <Grid>\n <Button\n size=\"small\"\n variant=\"contained\"\n disabled={\n !newColumnNameVal ||\n !newColumnTypeVal ||\n newColumnNameVal.trim() === \"\" ||\n !columnTypeOptions.includes(\n newColumnTypeVal.trim(),\n )\n }\n onClick={async () => {\n const isPrimaryKey =\n formCtrl.getValues(\"isPrimaryKey\");\n const updatedName =\n formCtrl.getValues(\"newColumnName\");\n const updatedType =\n formCtrl.getValues(\"newColumnType\");\n\n const hasExistingPrimaryKey = formCtrl\n .getValues(\"selectedColumns\")\n .some((col) => col.isPrimaryKey);\n\n let updatedCols = [\n ...formCtrl.getValues(\"selectedColumns\"),\n ];\n\n if (editColumnIndex !== null) {\n updatedCols[editColumnIndex] = {\n ...updatedCols[editColumnIndex],\n name: updatedName,\n type: updatedType,\n };\n } else {\n if (\n updatedCols.some(\n (col) => col.name === updatedName,\n )\n ) {\n showToast({\n message: \"Column already exists\",\n type: \"error\",\n });\n return;\n }\n\n const newColumn = {\n name: updatedName,\n type: updatedType,\n };\n if (!hasExistingPrimaryKey && isPrimaryKey) {\n formCtrl.setValue(\"primaryKey\", updatedName);\n newColumn.isPrimaryKey = true;\n }\n\n updatedCols.push(newColumn);\n }\n\n formCtrl.setValue(\n \"selectedColumns\",\n updatedCols,\n {\n shouldDirty: true,\n },\n );\n\n const synced = [...updatedCols].sort((a, b) => {\n if (a.isPrimaryKey) return -1;\n if (b.isPrimaryKey) return 1;\n return a.name.localeCompare(b.name);\n });\n\n setSyncedFilteredCols(synced);\n isCreateTableMode &&\n (await updateCreateTableScript(updatedCols));\n\n setEditColumnIndex(null);\n setAnchorEl(null);\n colTabValue !== 0 && setColTabValue(0);\n formCtrl.setValue(\"newColumnName\", \" \");\n formCtrl.setValue(\"newColumnType\", \" \");\n formCtrl.setValue(\"isPrimaryKey\", null);\n }}\n >\n {editColumnIndex !== null ? \"Update\" : \"Add\"}\n </Button>\n </Grid>\n </Grid>\n </Popover>\n )}\n </Box>\n <TableContainer\n sx={{\n maxHeight: hasMediaVal === \"true\" ? \"112vh\" : \"59vh\",\n border: \"1px solid\",\n borderColor: \"divider\",\n borderRadius: 2,\n }}\n >\n <Table stickyHeader>\n <TableHead>\n <TableRow>\n <TableCell\n className=\" px-3 \"\n sx={{ backgroundColor: \"white\" }}\n >\n <TextField\n size=\"small\"\n placeholder=\"Search Columns\"\n variant=\"outlined\"\n value={searchColumn}\n onChange={(e) => {\n setSearchColumn(e.target.value);\n }}\n className=\"w-full py-0.5 text-xs\"\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <IconButton>\n <FontAwesomeIcons\n iconName={\"faMagnifyingGlass\"}\n className=\"text-[1rem]\"\n />\n </IconButton>\n </InputAdornment>\n ),\n }}\n />\n {!hasPrimaryKey && (\n <Typography\n variant=\"body2\"\n color=\"info\"\n className=\"mb-0\"\n >\n <span style={{ color: \"red\" }}>*</span> Select a\n primary key for the table before submitting.\n </Typography>\n )}\n </TableCell>\n </TableRow>\n </TableHead>\n {colTabValue === 0 && (\n <TableBody>\n {syncedFilteredCols.length ? (\n syncedFilteredCols.map((col, index) => (\n <TableRow\n key={index + 1}\n className={`border-b ${index === syncedFilteredCols.length - 1 ? \"border-none\" : \"border-[#ccc]\"}`}\n sx={{\n backgroundColor: col.onlyMobileDb\n ? \"#d3ecc7\"\n : col.isTypeChanged\n ? \"rgba(255, 0, 0, 0.1)\"\n : \"#fff\",\n \"&:hover\": {\n backgroundColor: col.onlyMobileDb\n ? \"#d2f7c0\"\n : col.isTypeChanged\n ? \"#e79a9a\"\n : \"#e9f3ff\",\n },\n }}\n >\n <TableCell className=\"p-2 px-4 flex justify-between\">\n <Tooltip\n title={\n col.onlyMobileDb\n ? \"Column only present in mobile database\"\n : col.isTypeChanged\n ? \"Type changed\"\n : \"\"\n }\n placement=\"top\"\n arrow\n disableHoverListener={\n !(col.onlyMobileDb || col.isTypeChanged)\n }\n >\n <Typography\n variant=\"caption\"\n className=\"w-full text-ellipsis cursor-pointer\"\n >\n {col.name} ({col.type})\n </Typography>\n </Tooltip>\n <Box display=\"flex\" alignItems=\"center\">\n {col.isPrimaryKey && (\n <IconButton\n sx={{\n height: \"1.5rem\",\n marginRight: 0,\n paddingRight: 1,\n }}\n >\n <FontAwesomeIcons\n iconName={\"faKey\"}\n className=\"text-[1rem] text-[#d3bb51]\"\n />\n </IconButton>\n )}\n\n {(isCreateTableMode || isEditMode) && (\n <>\n <Tooltip\n title={\n !isCreateTableMode &&\n col.isPrimaryKey &&\n !isSyncTableMode\n ? \"Deletion of primary key is not allowed.\"\n : \"\"\n }\n arrow\n placement=\"left\"\n >\n {\" \"}\n <span>\n <IconButton\n sx={{\n height: \"1.3rem\",\n marginRight: \"0\",\n }}\n disabled={\n !isCreateTableMode &&\n col.isPrimaryKey &&\n !isSyncTableMode\n }\n onClick={async () => {\n const fullSynced =\n formCtrl.getValues(\n \"selectedColumns\",\n );\n setSearchColumn(\"\");\n const updatedCols =\n fullSynced.filter(\n (c) => c.name !== col.name,\n );\n\n formCtrl.setValue(\n \"selectedColumns\",\n updatedCols,\n { shouldDirty: true },\n );\n\n const searchVal = searchColumn\n .trim()\n .toLowerCase();\n const visibleCols = searchVal\n ? updatedCols.filter((c) =>\n c.name\n .toLowerCase()\n .includes(searchVal),\n )\n : updatedCols;\n\n setSyncedFilteredCols(\n visibleCols,\n );\n\n setFilteredCols((prev) =>\n prev.map((c) => {\n if (c.name === col.name) {\n return {\n ...c,\n isSynced: false,\n };\n }\n return c;\n }),\n );\n\n if (col.isPrimaryKey) {\n formCtrl.setValue(\n \"primaryKey\",\n \"\",\n );\n }\n\n if (isCreateTableMode) {\n await updateCreateTableScript(\n updatedCols,\n );\n }\n }}\n >\n <FontAwesomeIcons\n iconName={\"faTrashCan\"}\n className=\"text-[1rem] text-[#df5f5f]\"\n />\n </IconButton>\n </span>\n </Tooltip>\n {isCreateTableMode && (\n <IconButton\n sx={{\n height: \"1.3rem\",\n marginRight: \"0\",\n color: \"success\",\n }}\n onClick={() => {\n const selectedColumns =\n formCtrl.getValues(\n \"selectedColumns\",\n );\n const columnIndex =\n selectedColumns.findIndex(\n (c) => c.name === col.name,\n );\n setEditColumnIndex(columnIndex);\n formCtrl.setValue(\n \"newColumnName\",\n col.name,\n );\n formCtrl.setValue(\n \"newColumnType\",\n col.type,\n );\n setAnchorEl(\n document.getElementById(\n \"edit-button-anchor\",\n ) ?? null,\n );\n }}\n >\n <FontAwesomeIcons\n iconName={\"faPen\"}\n className=\"text-[1rem] text-[#4f4f4f]\"\n />\n </IconButton>\n )}\n </>\n )}\n </Box>\n </TableCell>\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={1} className=\"p-2\">\n <Typography variant=\"body2\">\n {\" \"}\n {formCtrl.getValues(\"selectedColumns\")\n .length === 0\n ? \"There are no columns to display.\"\n : syncedFilteredCols.length === 0\n ? \"No columns for search query.\"\n : null}\n </Typography>\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n )}\n {colTabValue === 1 && (\n <TableBody>\n {filteredCols.length ? (\n filteredCols.map((col, index) => {\n const isPrimaryKey =\n col.name === tableInfo.primaryKey;\n const isSynced = col.isSynced || false;\n\n const renderSwitch = (\n <Switch\n icon={\n <Box\n sx={{\n backgroundColor: 'var(--color-tableHeader)',\n borderRadius: \"50%\",\n width: 20,\n height: 20,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n <FontAwesomeIcons\n iconName={\"faBan\"}\n size=\"sm\"\n className=\"pr-[0.4px]\"\n />\n </Box>\n }\n checkedIcon={\n <Box\n sx={{\n backgroundColor: \"#4caf50\",\n borderRadius: \"50%\",\n width: 20,\n height: 20,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n <FontAwesomeIcons\n iconName={\"faRotate\"}\n className=\"text-white text-xs\"\n />\n </Box>\n }\n checked={isSynced}\n disabled={!isEditMode}\n onChange={(e) => {\n const isChecked = e.target.checked;\n if (\n !isChecked &&\n isEditMode &&\n !isSyncTableMode &&\n !isCreateTableMode &&\n col.name === tableInfo.primaryKey\n ) {\n return;\n }\n const newCols = [...filteredCols];\n const updatedCol = {\n ...newCols[index],\n isSynced: e.target.checked,\n };\n newCols[index] = updatedCol;\n setFilteredCols(newCols);\n\n const temp = [...syncedFilteredCols];\n if (isChecked) {\n const hasPrimaryKeyInSynced =\n syncedFilteredCols.some(\n (c) => c.isPrimaryKey,\n );\n if (\n col.name === tableInfo.primaryKey &&\n !hasPrimaryKeyInSynced\n ) {\n temp.push({\n ...updatedCol,\n isPrimaryKey: true,\n });\n formCtrl.setValue(\"primaryKey\", col.name);\n } else {\n temp.push(updatedCol);\n }\n } else {\n const colIndex = temp.findIndex(\n (c) => c.name === newCols[index].name,\n );\n if (colIndex > -1) {\n const isRemovingPrimary =\n temp[colIndex].isPrimaryKey;\n temp.splice(colIndex, 1);\n if (isRemovingPrimary) {\n formCtrl.setValue(\"primaryKey\", \"\");\n }\n }\n }\n setSyncedFilteredCols(temp);\n formCtrl.setValue(\"selectedColumns\", temp, {\n shouldDirty: true,\n });\n }}\n />\n );\n\n const renderPrimaryKeyIcon = (\n <IconButton\n sx={{\n height: \"2rem\",\n marginRight: !isEditMode ? 0 : 1,\n paddingRight: !isEditMode ? 0 : 1,\n }}\n >\n <FontAwesomeIcons\n iconName={\"faKey\"}\n className=\"text-lg text-[#d3bb51]\"\n />\n </IconButton>\n );\n\n return (\n <TableRow\n key={index + 1}\n className={`border-b ${index === filteredCols.length - 1 ? \"border-none\" : \"border-[#ccc]\"}`}\n sx={{\n \"&:hover\": { backgroundColor: \"#e9f3ff\" },\n }}\n >\n <TableCell\n sx={{\n p: 0,\n px: 2,\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n }}\n >\n <Typography\n variant=\"caption\"\n className=\"w-full text-ellipsis cursor-pointer align-content-center\"\n >\n {col.name} ({col.type})\n </Typography>\n\n {isEditMode ? (\n isPrimaryKey ? (\n isCreateTableMode ? (\n renderPrimaryKeyIcon\n ) : (\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n {renderPrimaryKeyIcon}\n <Tooltip\n title={\n isEditMode &&\n !isSyncTableMode &&\n col.name === tableInfo.primaryKey\n ? \"Primary key cannot be unsynced in edit mode.\"\n : \"\"\n }\n arrow\n placement=\"top\"\n >\n <span>{renderSwitch}</span>\n </Tooltip>\n </Box>\n )\n ) : (\n renderSwitch\n )\n ) : isSynced ? (\n <Box\n sx={{\n backgroundColor: \"#4caf50\",\n borderRadius: \"50%\",\n width: 20,\n height: 20,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n margin: \"9px 0px\",\n }}\n >\n <FontAwesomeIcons\n iconName={\"faRotate\"}\n className=\"text-white text-xs\"\n />\n </Box>\n ) : isPrimaryKey ? (\n renderPrimaryKeyIcon\n ) : (\n <Box\n sx={{\n backgroundColor: 'var(--color-tableHeader)',\n borderRadius: \"50%\",\n width: 20,\n height: 20,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n margin: \"9px 0px\",\n }}\n >\n <FontAwesomeIcons\n iconName={\"faBan\"}\n className=\"text-white pl-[0.5px]\"\n />\n </Box>\n )}\n </TableCell>\n </TableRow>\n );\n })\n ) : (\n <TableRow>\n <TableCell colSpan={1} className=\"p-2\">\n <Typography variant=\"body2\">\n No columns for search query.\n </Typography>\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n )}\n </Table>\n </TableContainer>\n </Paper>\n </Grid>\n </Grid>\n </form>\n </Paper>\n\n {modalOpen && (\n <Modal open={modalOpen} onClose={handleModalClose}>\n <Box sx={{ ...modalStyle }}>\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n mb: 2,\n }}\n >\n <Typography variant=\"h6\">Generated Migration Script</Typography>\n <Typography variant=\"body2\">\n From : <strong>v{migrationVersions?.from_version + 1}</strong>{\" \"}\n <FontAwesomeIcons\n iconName=\"faArrowRight\"\n size=\"sm\"\n className=\"m-[0.3rem 0.3rem 0 0.3rem]\"\n />{\" \"}\n To : <strong>v{migrationVersions?.to_version + 1}</strong>\n </Typography>\n </Box>\n <Editor\n height=\"50vh\"\n defaultLanguage=\"sql\"\n theme=\"light\"\n options={{\n fontSize: 12,\n minimap: { enabled: true },\n automaticLayout: true,\n scrollBeyondLastLine: false,\n wordWrap: \"on\",\n occurrencesHighlight: false,\n selectionHighlight: false,\n }}\n value={migrationScript || \"\"}\n defaultValue={migrationScript || \"\"}\n onChange={handleEditorChange}\n editorProps={{ $blockScrolling: true }}\n ></Editor>\n <Button\n variant=\"contained\"\n color=\"primary\"\n className=\"mt-2\"\n onClick={() => saveForm(null, true)}\n >\n OK\n </Button>\n </Box>\n </Modal>\n )}\n </Grid>\n );\n}\n\nconst modalStyle = {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: \"50%\",\n height: \"70%\",\n bgcolor: \"background.paper\",\n boxShadow: 24,\n padding: \"15px\",\n borderRadius: \"8px\",\n};\n\nTableDetails.propTypes = {\n tableInfo: PropTypes.any,\n table: PropTypes.any,\n isEditMode: PropTypes.bool,\n updateEditMode: PropTypes.any,\n tableCompleteInfo: PropTypes.any,\n reloadComponents: PropTypes.any,\n isCreateTableMode: PropTypes.bool,\n isSyncTableMode: PropTypes.bool,\n updateCreateTableMode: PropTypes.any,\n openDeleteModal: PropTypes.bool,\n setOpenDeleteModal: PropTypes.func,\n generateRebuildScript: PropTypes.func,\n};\n"],"names":["TableDetails","tableInfo","table","isEditMode","updateEditMode","tableCompleteInfo","reloadComponents","isCreateTableMode","isSyncTableMode","updateCreateTableMode","openDeleteModal","setOpenDeleteModal","generateRebuildScript","DOWNLOAD_TYPE_OPTIONS","labelToCode","label","codeToLabel","code","o","getNewDownloadType","mc","_a","isDownloadUrlArray","getDownloadUrlEntries","flat","allColumns","setAllColumns","useState","modalOpen","setModalOpen","migrationScript","setMigrationScript","formData","setFormData","searchColumn","setSearchColumn","syncedFilteredCols","setSyncedFilteredCols","filteredCols","setFilteredCols","colTabValue","setColTabValue","queryTabValue","setQueryTabValue","anchorEl","setAnchorEl","editColumnIndex","setEditColumnIndex","migrationVersions","setMigrationVersions","downloadUrlEntries","setDownloadUrlEntries","hasMigrated","setHasMigrated","isLegacyFormat","popOverOpen","id","columnTypeOptions","loggedInUser","useSelector","state","defaultValues","_b","_c","_e","_d","_h","_g","_f","formCtrl","useForm","isFormValid","hasMediaVal","newColumnNameVal","newColumnTypeVal","value","i","entry","p","onSubmit","data","script","createScript","getMigrationVersion","saveForm","migrationRequired","columns","response","entity","col","downloadUrlList","mediaConfig","execute","migrationRes","showToast","error","prev","handleModalClose","previousColumns","newColumns","oldPrimaryKey","newPrimaryKey","tableScript","previousColumnsMap","newColumnsMap","previousColumnsNames","newColumnsNames","droppedColumns","addedColumns","modifiedColumns","newType","dropColumnSql","addColumnSql","modifyColumnSql","tableName","res","useEffect","allColumnsNames","tableCompleteInfoObj","item","tableInfoObj","a","b","syncedNames","searchValue","allSynced","filtered","watchedTableName","useWatch","updateCreateTableScript","handleEditorChange","onCancel","handleDelete","dropTableSql","debouncedCheckAvailability","useDebounceFn","name","isValidFormat","hasPrimaryKey","c","jsxs","Grid","jsx","Paper","Box","Typography","CustomTextField","Fragment","CustomConfirmationModal","cur","Tooltip","Button","FontAwesomeIcons","tab","isActive","Controller","field","Editor","FormControl","RadioGroup","FormControlLabel","Radio","entries","migrated","onChange","Autocomplete","_","newValue","params","TextField","updated","entryIdx","IconButton","e","param","paramIdx","updatedParams","pi","InputAdornment","updatedCols","props","option","target","Popover","_i","event","Checkbox","isPrimaryKey","updatedName","updatedType","hasExistingPrimaryKey","newColumn","synced","TableContainer","Table","TableHead","TableRow","TableCell","TableBody","index","fullSynced","searchVal","visibleCols","columnIndex","isSynced","renderSwitch","Switch","isChecked","newCols","updatedCol","temp","hasPrimaryKeyInSynced","colIndex","isRemovingPrimary","renderPrimaryKeyIcon","Modal","modalStyle","PropTypes"],"mappings":";;;;;;;;;;;;;;;AAqCA,SAAwBA,GAAa;AAAA,EACnC,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,uBAAAC;AACF,GAAG;;AACD,QAAMC,KAAwB;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEIC,KAAc,CAACC,OAAUA,KAAA,gBAAAA,EAAO,cAAc,QAAQ,MAAM,SAAQ,IACpEC,KAAc,CAACC,MACnBJ,GAAsB,KAAK,CAACK,MAAMJ,GAAYI,CAAC,MAAMD,CAAI,KAAK,IAE1DE,KAAqB,CAACC,MAAO;;AACjC,WAAIA,KAAA,QAAAA,EAAI,eACCJ,GAAYI,EAAG,YAAY,KAAKA,EAAG,gBACxCC,IAAAD,KAAA,gBAAAA,EAAI,SAAJ,QAAAC,EAAU,eACLL,GAAYI,EAAG,KAAK,YAAY,KAAKA,EAAG,KAAK,eAC/C;AAAA,EACT,GAEME,KAAqB,CAACF,MAAA;;AAC1B,iBAAM,SAAQA,KAAA,gBAAAA,EAAI,kBAAeC,IAAAD,KAAA,gBAAAA,EAAI,SAAJ,gBAAAC,EAAU,YAAW;AAAA,KAGlDE,KAAwB,CAACH,MAAO;;AACpC,UAAMI,KAAOJ,KAAA,gBAAAA,EAAI,kBAAeC,IAAAD,KAAA,gBAAAA,EAAI,SAAJ,gBAAAC,EAAU;AAC1C,WAAI,MAAM,QAAQG,CAAI,IAAUA,IAC5B,OAAOA,KAAS,YAAYA,MAAS,OAChC;AAAA,MACL;AAAA,QACE,aAAaA,EAAK,eAAe;AAAA,QACjC,mBAAmBA,EAAK,qBAAqB,CAAA;AAAA,MAAC;AAAA,IAChD,IAEG,CAAA;AAAA,EACT,GAEM,CAACC,IAAYC,EAAa,IAAIC,EAAS,CAAA,CAAE,GACzC,CAACC,IAAWC,EAAY,IAAIF,EAAS,EAAK,GAC1C,CAACG,GAAiBC,EAAkB,IAAIJ,EAAS,EAAE,GACnD,CAACK,IAAUC,EAAW,IAAIN,EAAS,CAAA,CAAE,GACrC,CAACO,IAAcC,CAAe,IAAIR,EAAS,EAAE,GAC7C,CAACS,GAAoBC,CAAqB,IAAIV,EAAS,CAAA,CAAE,GACzD,CAACW,GAAcC,CAAe,IAAIZ,EAAS,CAAA,CAAE,GAC7C,CAACa,GAAaC,EAAc,IAAId,EAAS,CAAC,GAC1C,CAACe,GAAeC,EAAgB,IAAIhB,EAAS,CAAC,GAC9C,CAACiB,IAAUC,EAAW,IAAIlB,EAAS,IAAI,GACvC,CAACmB,GAAiBC,EAAkB,IAAIpB,EAAS,IAAI,GACrD,CAACqB,GAAmBC,EAAoB,IAAItB,EAAS,CAAA,CAAE,GACvD,CAACuB,GAAoBC,CAAqB,IAAIxB;AAAA,IACjDpB,IAEG,CAAA,IADAgB,GAAsBtB,KAAA,gBAAAA,EAAW,kBAAkB;AAAA,EAClD,GAGD,CAACmD,IAAaC,EAAc,IAAI1B,EAAS,EAAK,GAI9C2B,IACJ,CAAC/C,KACD,CAAC6C,MACD,GAAQnD,KAAA,QAAAA,EAAW,uBACnB,GAAQA,KAAA,QAAAA,EAAW,aACnB,CAACqB,GAAmBrB,EAAU,kBAAkB,GAE5CsD,KAAc,EAAQX,IACtBY,KAAKD,KAAc,mBAAmB,QAEtCE,KAAoB,CAAC,QAAQ,SAAS,GAEtCC,KAAeC,GAAY,CAACC,MACzBA,EAAM,aAAa,KAAK,EAChC,GACKC,IAAgB;AAAA,IACpB,iBAAkBtD,IAAgD,CAAA,IAA5B,CAAC,GAAGN,EAAU,UAAU;AAAA,IAC9D,iBAAkBM,IAAgD,KAA5BN,EAAU;AAAA,IAChD,gBAAiBM,IAA4C,KAAxBN,EAAU;AAAA,IAC/C,WAAW;AAAA,IACX,kBAAkB;AAAA,IAClB,eAAgBM,IAEZ,QADAc,KAAApB,KAAA,gBAAAA,EAAW,kBAAX,gBAAAoB,GAA0B;AAAA,IAE9B,YAAad,IAIT,OAHAN,EAAU,aACRA,EAAU,aACV;AAAA,IAEN,UAAWM,IAEP,SADAuD,KAAA7D,KAAA,gBAAAA,EAAW,aAAX,gBAAA6D,GAAqB,eAAc;AAAA,IAEvC,UAAWvD,IAEP,SADAwD,KAAA9D,KAAA,gBAAAA,EAAW,aAAX,gBAAA8D,GAAqB,eAAc;AAAA,IAEvC,cAAexD,IAEX,KADAY,GAAmBlB,EAAU,kBAAkB;AAAA,IAEnD,oBAAqBM,IAEjB,CAAA,IADAgB,GAAsBtB,EAAU,kBAAkB;AAAA,IAEtD,eAAgBM,IAIZ,OAHAyD,MAAAC,KAAAhE,EAAU,uBAAV,gBAAAgE,GAA8B,kBAA9B,gBAAAD,GAA6C,MAAM,KAAK,SACxDE,MAAAC,MAAAC,KAAAnE,EAAU,uBAAV,gBAAAmE,GAA8B,SAA9B,gBAAAD,GAAoC,kBAApC,gBAAAD,GAAmD,MAAM,KAAK,OAC9D;AAAA,EACA,GAEAG,IAAWC,GAAQ;AAAA,IACvB,eAAe;AAAA,MACb,GAAGT;AAAA,IAAA;AAAA,IAEL,MAAM;AAAA,EAAA,CACP,GACKU,KAAc,CAACF,EAAS,UAAU,SAClCG,IAAcH,EAAS,MAAM,UAAU,GACvCI,KAAmBJ,EAAS,MAAM,eAAe,GACjDK,KAAmBL,EAAS,MAAM,eAAe;AAEvD,EAAAA,EAAS,SAAS,sBAAsB;AAAA,IACtC,UAAU,CAACM,MAAU;;AACnB,UAAIH,MAAgB,OAAQ,QAAO;AACnC,UAAI,CAACG,KAASA,EAAM,WAAW;AAC7B,eAAO;AACT,eAASC,IAAI,GAAGA,IAAID,EAAM,QAAQC,KAAK;AACrC,cAAMC,IAAQF,EAAMC,CAAC;AACrB,YAAI,GAACvD,IAAAwD,EAAM,gBAAN,QAAAxD,EAAmB;AACtB,iBAAO,QAAQuD,IAAI,CAAC;AACtB,YAAI,CAACC,EAAM,qBAAqBA,EAAM,kBAAkB,WAAW;AACjE,iBAAO,QAAQD,IAAI,CAAC;AAItB,YAHsBC,EAAM,kBAAkB;AAAA,UAC5C,CAACC,MAAA;;AAAM,sBAACzD,IAAAyD,EAAE,QAAF,QAAAzD,EAAO,WAAU,GAACyC,IAAAgB,EAAE,UAAF,QAAAhB,EAAS;AAAA;AAAA,QAAK;AAGxC,iBAAO,QAAQc,IAAI,CAAC;AAAA,MACxB;AACA,aAAO;AAAA,IACT;AAAA,EAAA,CACD;AAED,QAAMG,KAAW,OAAOC,MAAS;;AAC/B,UAAMC,IAAS1E,IACX8D,EAAS,UAAU,kBAAkB,IACrC,MAAMa;AAAA,MACJ,CAAC,GAAGjF,EAAU,UAAU;AAAA,MACxB+E,EAAK;AAAA,MACL/E,EAAU;AAAA,OACVoB,IAAA2D,EAAK,eAAL,gBAAA3D,EAAiB;AAAA,IAAS;AAEhC,IAAI4D,KACFhD,GAAY,MAAM+C,CAAI,GACtBjD,GAAmB,MAAMkD,CAAM,GAC/BE,GAAA,GACAtD,GAAa,EAAI,KAEjBuD,GAASJ,GAAM,EAAK;AAAA,EAExB,GAEMI,KAAW,OAAOJ,GAAMK,MAAsB;;AAClD,UAAMC,IAAU,CAAA;AAChB,QAAIC,GACAC,IAASR,KAAQhD;AAErB,QADKqD,KAAmBtD,GAAmB,EAAE,GACzC,OAAO,KAAKyD,CAAM,EAAE,SAAS,GAAG;AAClC,MAAAA,EAAO,gBAAgB,QAAQ,CAACC,MAAQ;AACtC,QAAAH,EAAQG,EAAI,IAAI,IAAIA,EAAI;AAAA,MAC1B,CAAC,GACDD,EAAO,UAAU,KAAK,UAAUF,CAAO,GACvCE,EAAO,cAAanE,IAAAmE,EAAO,eAAP,gBAAAnE,EAAmB;AACvC,YAAMqE,IAAkBxC,EAAmB,IAAI,CAAC2B,OAAW;AAAA,QACzD,aAAaA,EAAM,eAAe;AAAA,QAClC,mBAAmBA,EAAM,qBAAqB,CAAA;AAAA,MAAC,EAC/C;AACF,UAAIc,IAAc;AAAA,QAChB,cAAc7E,GAAY0E,EAAO,YAAY;AAAA;AAAA,QAE7C,aAAalC,IACRoC,EAAgB,CAAC,KAAK,EAAE,aAAa,IAAI,mBAAmB,CAAA,EAAC,IAC9DA;AAAA,QACJ,eAAe,qBAAqBF,EAAO,gBAAgB;AAAA,MAAA;AAE7D,MAAAG,IAAc,KAAK,UAAUA,CAAW;AACxC,UAAI;AAuBF,YAtBAJ,KACE,MAAMK,EAAQ;AAAA,UACZ,MAAM;AAAA,UACN,YAAY;AAAA,YACV,YACGrF,IAAoB8D,EAAS,UAAU,WAAW,IAAInE,MACvD;AAAA,YACF,eAAesF,EAAO,kBAAkB;AAAA,YACxC,YAAYA,EAAO,WAAW;AAAA,YAC9B,YAAYA,EAAO,cAAc;AAAA,YACjC,iBAAiBA,EAAO,mBAAmB;AAAA,YAC3C,aAAaA,EAAO,kBAAkB;AAAA,YACtC,UAAUA,EAAO,aAAa;AAAA,YAC9B,UAAUA,EAAO,aAAa;AAAA,YAC9B,oBACEA,EAAO,aAAa,SAASG,IAAc;AAAA,YAC7C,YAAYjC,MAAgB;AAAA,YAC5B,UAAU;AAAA,UAAA;AAAA,QACZ,CACD,GACD,MAEE6B,KAAA,QAAAA,EAAU,UAAUF,KAAqBvD,GAAiB;AAC5D,gBAAM+D,KACJ,MAAMD,EAAQ;AAAA,YACZ,MAAM;AAAA,YACN,YAAY;AAAA,cACV,iBAAA9D;AAAA,cACA,YAAY4B,MAAgB;AAAA,cAC5B,mBAAmB;AAAA,YAAA;AAAA,UACrB,CACD,GACD;AAEF,WAAImC,KAAA,gBAAAA,EAAc,YAAW,KAC3BC,EAAU;AAAA,YACR,SAAS,+BAA+BD,KAAA,gBAAAA,EAAc,OAAO;AAAA,YAC7D,MAAM;AAAA,UAAA,CACP;AAAA,QAEL;AAAA,MACF,SAASE,GAAO;AACd,QAAAD,EAAU;AAAA,UACR,SAAS,sBAAsBC,CAAK;AAAA,UACpC,MAAM;AAAA,QAAA,CACP;AAAA,MACH;AAAA,IACF;AACE,UAAI;AAsBF,YArBAR,KACE,MAAMK,EAAQ;AAAA,UACZ,MAAM;AAAA,UACN,YAAY;AAAA,YACV,YACGrF,IAAoB8D,EAAS,UAAU,WAAW,IAAInE,MACvD;AAAA,YACF,eAAe;AAAA,YACf,YAAY;AAAA,YACZ,YAAY;AAAA,YACZ,iBAAiB;AAAA,YACjB,aAAa;AAAA,YACb,UAAU;AAAA,YACV,UAAU;AAAA,YACV,oBAAoB;AAAA,YACpB,YAAYwD,MAAgB;AAAA,YAC5B,UAAU;AAAA,UAAA;AAAA,QACZ,CACD,GACD,MAEE6B,KAAA,QAAAA,EAAU,UAAUzD,GAAiB;AACvC,gBAAM+D,KACJ,MAAMD,EAAQ;AAAA,YACZ,MAAM;AAAA,YACN,YAAY;AAAA,cACV,iBAAA9D;AAAA,cACA,YAAY4B,MAAgB;AAAA,cAC5B,mBAAmB;AAAA,YAAA;AAAA,UACrB,CACD,GACD;AAEF,WAAImC,KAAA,gBAAAA,EAAc,YAAW,KAC3BC,EAAU;AAAA,YACR,SAAS,+BAA+BD,KAAA,gBAAAA,EAAc,OAAO;AAAA,YAC7D,MAAM;AAAA,UAAA,CACP;AAAA,QAEL;AAAA,MACF,SAASE,GAAO;AACd,QAAAD,EAAU;AAAA,UACR,SAAS,sBAAsBC,CAAK;AAAA,UACpC,MAAM;AAAA,QAAA,CACP;AAAA,MACH;AAEF,IAAIR,KAAA,QAAAA,EAAU,WACZnF,GAAe,EAAK,GACpBK,GAAsB,EAAK,GAC3BH,GAAiB,CAAC0F,MAAS,CAACA,CAAI,GAChCF,EAAU;AAAA,MACR,SAAS;AAAA,MACT,MAAM;AAAA,IAAA,CACP,IAEHjE,GAAa,EAAK;AAAA,EACpB,GAEMoE,KAAmB,MAAM;AAC7B,IAAApE,GAAa,EAAK;AAAA,EACpB,GAEMqD,KAAe,OACnBgB,GACAC,GACAC,GACAC,MACG;AACH,QAAIC,IAAc;AAElB,QAAIJ,EAAgB,SAAS,GAAG;AAC9B,YAAMK,IAAqB,OAAO;AAAA,QAChCL,EAAgB,IAAI,CAACT,MAAQ,CAACA,EAAI,MAAMA,EAAI,IAAI,CAAC;AAAA,MAAA,GAE7Ce,IAAgB,OAAO;AAAA,QAC3BL,EAAW,IAAI,CAACV,MAAQ,CAACA,EAAI,MAAMA,EAAI,IAAI,CAAC;AAAA,MAAA,GAGxCgB,IAAuB,OAAO,KAAKF,CAAkB,GACrDG,IAAkB,OAAO,KAAKF,CAAa,GAE3CG,IAAiBT,EAAgB;AAAA,QACrC,CAACT,MAAQ,CAACiB,EAAgB,SAASjB,EAAI,IAAI;AAAA,MAAA,GAEvCmB,IAAeT,EAAW;AAAA,QAC9B,CAACV,MAAQ,CAACgB,EAAqB,SAAShB,EAAI,IAAI;AAAA,MAAA,GAI5CoB,IAAkBX,EAAgB,OAAO,CAACT,MAAQ;AACtD,cAAMqB,KAAUN,EAAcf,EAAI,IAAI;AACtC,eAAOqB,OAAY,UAAaA,OAAYrB,EAAI;AAAA,MAClD,CAAC,GAEKsB,IAAgBJ,EACnB,IAAI,CAAClB,MAAQ,eAAevF,CAAK,gBAAgBuF,EAAI,IAAI,GAAG,EAC5D,KAAK;AAAA,CAAI,GACNuB,KAAeJ,EAClB;AAAA,QACC,CAACnB,MAAQ,eAAevF,CAAK,eAAeuF,EAAI,IAAI,IAAIA,EAAI,IAAI;AAAA,MAAA,EAEjE,KAAK;AAAA,CAAI;AAEZ,UAAIwB,KAAkB;AAetB,aAbIJ,EAAgB,SAAS,MAC3BI,KAAkBrG;AAAA,QAChBV;AAAA,QACA;AAAA,UACE,YAAYgG;AAAA,UACZ,YAAYE;AAAA,QAAA;AAAA,QAEd;AAAA,UACE,YAAYD;AAAA,UACZ,YAAYE;AAAA,QAAA;AAAA,MACd,IAGAY,KACKA,GAAgB,KAAA,KAGrBF,MAAeT,KAAe,GAAGS,CAAa;AAAA,IAC9CC,OAAcV,KAAe,GAAGU,EAAY;AAAA,IAEzCV,EAAY,KAAA;AAAA,IACrB,OAAO;AACL,YAAMY,IAAY3G,IACd8D,EAAS,UAAU,WAAW,IAC9BnE;AACJ,aAAAoG,IAAc,gBAAgBY,CAAS;AAAA,GAEvCZ,KAAeH,EACZ,IAAI,CAACV,MAAQ,GAAGA,EAAI,IAAI,IAAIA,EAAI,IAAI,EAAE,EACtC,KAAK;AAAA,CAAK,GAETY,MACFC,KAAe;AAAA,aAAiBY,CAAS,sBAAsBb,CAAa,MAG9EC,KAAe,MAERA;AAAA,IACT;AAAA,EACF,GAEMnB,KAAsB,YAAY;;AACtC,UAAMgC,KACJ9F,IAAA,MAAMuE,EAAQ;AAAA,MACZ,MAAM;AAAA,IAAA,CACP,EAAE,MAAM,CAACG,MAAU;AAClB,MAAAD,EAAU;AAAA,QACR,SAAS,sCAAsCC,CAAK;AAAA,QACpD,MAAM;AAAA,MAAA,CACP;AAAA,IACH,CAAC,MAPD,gBAAA1E,EAQC;AACH,IAAA4B,GAAqBkE,KAAA,gBAAAA,EAAK,OAAO,EAAE;AAAA,EACrC;AAEA,EAAAC,GAAU,MAAM;AAiBd,QAhBAjF,EAAgB,EAAE,GAClBQ,GAAiB,CAAC,GAClBF,GAAe,CAAC,GAEZlC,MACFmB,GAAc,CAAA,CAAE,GAChBW,EAAsB,CAAA,CAAE,GACxBE,EAAgB,CAAA,CAAE,GAClBY,EAAsB,CAAA,CAAE,GACxBE,GAAe,EAAK,GACpBgB,EAAS,MAAM;AAAA,MACb,GAAGR;AAAA,IAAA,CACJ,GAED,WAAW,MAAMQ,EAAS,QAAA,GAAW,CAAC,IAElCnE,KAAWD,KAAa,CAACM,GAAmB;AAChD,MACImB,GADJrB,MAAsB,SACJ,MAAMA,EAAkB,aACxB,MAAMJ,EAAU,UADkB;AAEpD,UAAIoH,IACFhH,MAAsB,SAClBA,EAAkB,WAAW,IAAI,CAACoF,MAAQA,EAAI,IAAI,IAClDxF,EAAU,WAAW,IAAI,CAACwF,MAAQA,EAAI,IAAI,GAE5C6B,IAAuB,CAAA;AAE3B,MAAAjH,MAAsB,SAClBA,EAAkB,WAAW,QAAQ,CAACkH,MAAS;AAC7C,QAAAD,EAAqBC,EAAK,IAAI,IAAIA,EAAK;AAAA,MACzC,CAAC,IACDtH,EAAU,WAAW,QAAQ,CAACsH,MAAS;AACrC,QAAAD,EAAqBC,EAAK,IAAI,IAAIA,EAAK;AAAA,MACzC,CAAC;AAEL,UAAIC,IAAe,CAAA;AAEnB,MAAAvH,EAAU,WAAW,QAAQ,CAACsH,MAAS;AACrC,QAAAC,EAAaD,EAAK,IAAI,IAAIA,EAAK;AAAA,MACjC,CAAC,GAEDtH,EAAU,WAAW,IAAI,CAACwF,MAAQ;AAChC,QAAK4B,EAAgB,SAAS5B,EAAI,IAAI,MACpCA,EAAI,eAAkB,KAEpB+B,EAAa/B,EAAI,IAAI,MAAM6B,EAAqB7B,EAAI,IAAI,MAC1DA,EAAI,gBAAmB,KAErBA,EAAI,SAASxF,EAAU,eACzBwF,EAAI,eAAkB;AAAA,MAE1B,CAAC,GACDpB,EAAS,MAAM;AAAA,QACb,GAAGR;AAAA,MAAA,CACJ,GAED,WAAW,MAAMQ,EAAS,QAAA,GAAW,CAAC,GACtClB;AAAA,QACE5B,GAAsBtB,KAAA,gBAAAA,EAAW,kBAAkB;AAAA,MAAA,GAErDoD,GAAe,EAAK,GACpBhB;AAAA,QAAsB,MACpBpC,EAAU,WAAW,KAAK,CAACwH,GAAGC,MACxBD,EAAE,SAASxH,EAAU,cACvBwH,EAAE,eAAe,IACV,MAELC,EAAE,SAASzH,EAAU,cACvByH,EAAE,eAAe,IACV,KAEFD,EAAE,KAAK,cAAcC,EAAE,IAAI,CACnC;AAAA,MAAA,GAICnF,EADJlC,MAAsB,SACF,MAAM;AACpB,cAAMsH,IAAc,IAAI;AAAA,UACtB1H,EAAU,WAAW,IAAI,CAACwF,MAAQA,EAAI,IAAI;AAAA,QAAA;AAQ5C,eALoBpF,EAAkB,WAAW,IAAI,CAACoF,OAAS;AAAA,UAC7D,GAAGA;AAAA,UACH,UAAUkC,EAAY,IAAIlC,EAAI,IAAI;AAAA,QAAA,EAClC,EAEiB,KAAK,CAACgC,GAAGC,MACtBD,EAAE,SAASxH,EAAU,aAAmB,KACxCyH,EAAE,SAASzH,EAAU,aAAmB,IACrCwH,EAAE,KAAK,cAAcC,EAAE,IAAI,CACnC;AAAA,MACH,IACgB,EADf;AAAA,IAEP;AAAA,EACF,GAAG,CAACzH,GAAWI,GAAmBH,GAAOK,CAAiB,CAAC,GAC3D6G,GAAU,MAAM;AACd,UAAMQ,IAAc1F,GAAa,YAAA;AAEjC,QAAIM,MAAgB,GAAG;AACrB,YAAMqF,IAAYxD,EAAS,UAAU,iBAAiB,GAChDyD,IAAWF,IACbC,EAAU;AAAA,QAAO,CAACpC,MAChBA,EAAI,KAAK,YAAA,EAAc,SAASmC,CAAW;AAAA,MAAA,IAE7CC;AAEJ,MAAAxF,EAAsByF,CAAQ;AAAA,IAChC,OAAO;AACL,YAAMH,IAAc,IAAI;AAAA,QACtBtD,EAAS,UAAU,iBAAiB,EAAE,IAAI,CAACoB,MAAQA,EAAI,IAAI;AAAA,MAAA,GAEvDqC,IAAWF,IACbnG,GACG,OAAO,CAACgE,MAAQA,EAAI,KAAK,YAAA,EAAc,SAASmC,CAAW,CAAC,EAC5D,IAAI,CAACnC,OAAS;AAAA,QACb,GAAGA;AAAA,QACH,UAAUkC,EAAY,IAAIlC,EAAI,IAAI;AAAA,MAAA,EAClC,IACJhE,GAAW,IAAI,CAACgE,OAAS;AAAA,QACvB,GAAGA;AAAA,QACH,UAAUkC,EAAY,IAAIlC,EAAI,IAAI;AAAA,MAAA,EAClC;AAEN,MAAAlD,EAAgBuF,CAAQ;AAAA,IAC1B;AAAA,EACF,GAAG,CAAC5F,IAAcM,CAAW,CAAC;AAC9B,QAAMuF,KAAmBC,GAAS;AAAA,IAChC,SAAS3D,EAAS;AAAA,IAClB,MAAM;AAAA,EAAA,CACP;AAED,EAAA+C,GAAU,MAAM;AACd,IACE7G,KACA8D,EAAS,UAAU,iBAAiB,EAAE,SAAS,KAC/C0D,MAEAE,GAAwB5D,EAAS,UAAU,iBAAiB,CAAC;AAAA,EAEjE,GAAG,CAAC0D,EAAgB,CAAC;AAErB,QAAMG,KAAqB,CAACvD,MAAU;AACpC,IAAA5C,GAAmB4C,CAAK;AAAA,EAC1B,GACMwD,KAAW,MAAM;AACrB,IAAIhI,KACFC,GAAe,CAACD,CAAU,GAExBI,KACFE,GAAsB,CAACF,CAAiB,GAE1C8D,EAAS,MAAM;AAAA,MACb,GAAGR;AAAA,MACH,eAAe;AAAA,MACf,eAAe;AAAA,IAAA,CAChB,GACDV,EAAsBU,EAAc,sBAAsB,EAAE,GAC5DR,GAAe,EAAK,GACpBhB,EAAsBwB,EAAc,mBAAmB,EAAE;AAEzD,UAAM8D,IAAc,IAAI;AAAA,OACrB9D,EAAc,mBAAmB,CAAA,GAAI,IAAI,CAAC4B,MAAQA,EAAI,IAAI;AAAA,IAAA;AAE7D,IAAAlD;AAAA,OACGsB,EAAc,cAAc,CAAA,GAAI,IAAI,CAAC4B,OAAS;AAAA,QAC7C,GAAGA;AAAA,QACH,UAAUkC,EAAY,IAAIlC,EAAI,IAAI;AAAA,MAAA,EAClC;AAAA,IAAA;AAAA,EAEN,GAEM2C,KAAe,YAAY;;AAC/B,IAAAzH,GAAmB,MAAM,EAAK;AAC9B,UAAM4E,IAAW,MAAMK,EAAQ;AAAA,MAC7B,MAAM;AAAA,MACN,YAAY;AAAA,QACV,WAAW1F;AAAA,MAAA;AAAA,IACb,CACD,EAAE,MAAM,CAAC6F,MAAU;AAClB,MAAAD,EAAU;AAAA,QACR,SAAS,6BAA6BC,CAAK;AAAA,QAC3C,MAAM;AAAA,MAAA,CACP;AAAA,IACH,CAAC;AAED,KAAIhC,KAAAD,KAAAzC,IAAAkE,KAAA,gBAAAA,EAAU,SAAV,gBAAAlE,EAAgB,WAAhB,gBAAAyC,EAAyB,OAAzB,QAAAC,EAA6B,cAC/B+B,EAAU,EAAE,SAAS,GAAG5F,CAAK,0BAA0B,MAAM,WAAW;AAE1E,QAAImI,IAAe,wBAAwBnI,CAAK;AAChD,IAAA6B,GAAmB,MAAMsG,CAAY,GACrClD,GAAA,GACAtD,GAAa,EAAI;AAAA,EACnB,GAgCMyG,KAA6BC,GA9BT,OAAOC,MAAS;AACxC,UAAMC,IAAgB,2BAA2B,KAAKD,CAAI;AAC1D,QAAIA,EAAK,OAAO,WAAW,GAAG;AAC5B,MAAAnE,EAAS,SAAS,iBAAiB;AAAA,QACjC,MAAM;AAAA,QACN,SAAS;AAAA,MAAA,CACV;AACD;AAAA,IACF;AACA,QAAI,CAACoE,GAAe;AAClB,MAAApE,EAAS,SAAS,iBAAiB;AAAA,QACjC,MAAM;AAAA,QACN,SACE;AAAA,MAAA,CACH;AACD;AAAA,IACF;AACA,IACE/B,EAAa,KAAK,CAACmD,MAAQA,EAAI,SAAS+C,CAAI,KAC5CpG,EAAmB,KAAK,CAACqD,MAAQA,EAAI,SAAS+C,CAAI,IAElDnE,EAAS,SAAS,iBAAiB;AAAA,MACjC,MAAM;AAAA,MACN,SAAS;AAAA,IAAA,CACV,IAEDA,EAAS,YAAY,eAAe;AAAA,EAExC,GAEoE,GAAG,GAEjEqE,KAAgBtG,EAAmB;AAAA,IACvC,CAACqD,MAAQA,EAAI,iBAAiB;AAAA,EAAA,GAG1BwC,KAA0B,OAAO3C,MAAY;;AAEjD,QADA5C,MAAkB,KAAKnC,KAAqBoC,GAAiB,CAAC,GAC1D2C,EAAQ,WAAW,GAAG;AACxB,MAAAjB,EAAS,SAAS,oBAAoB,IAAI,EAAE,aAAa,IAAM;AAC/D;AAAA,IACF;AAEA,UAAMgC,MAAgBhF,IAAAiE,EAAQ,KAAK,CAACqD,MAAMA,EAAE,YAAY,MAAlC,gBAAAtH,EAAqC,SAAQ,IAC7D4D,IAAS,MAAMC,GAAa,CAAA,GAAII,GAAS,IAAIe,CAAa;AAChE,IAAAhC,EAAS,SAAS,oBAAoBY,GAAQ,EAAE,aAAa,IAAM;AAAA,EACrE;AAEA,SACE,gBAAA2D;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAM;AAAA,MACN,IAAI;AAAA,QACF,WAAW;AAAA,QACX,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,MAGb,UAAA;AAAA,QAAA,gBAAAC;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,IAAI;AAAA,cACF,GAAG;AAAA,cACH,cAAc;AAAA,cACd,iBAAiB;AAAA,YAAA;AAAA,YAGnB,UAAA,gBAAAH;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,UAAUvE,EAAS,aAAaU,EAAQ;AAAA,gBACxC,YAAU;AAAA,gBACV,WAAU;AAAA,gBAEV,UAAA;AAAA,kBAAA,gBAAA6D;AAAA,oBAACI;AAAA,oBAAA;AAAA,sBACC,IAAI;AAAA,wBACF,SAAS;AAAA,wBACT,gBAAgB;AAAA,wBAChB,YAAY;AAAA,wBACZ,IAAI;AAAA,wBACJ,IAAI;AAAA,wBACJ,cAAc;AAAA,wBACd,aAAa;AAAA,sBAAA;AAAA,sBAGf,UAAA;AAAA,wBAAA,gBAAAJ,EAACI,GAAA,EAAI,IAAI,EAAE,MAAM,KACd,UAAA;AAAA,0BAACzI,IAeA,gBAAAqI,EAACI,GAAA,EAAI,IAAI,EAAE,UAAU,OACnB,UAAA;AAAA,4BAAA,gBAAAF;AAAA,8BAACG;AAAA,8BAAA;AAAA,gCACC,SAAQ;AAAA,gCACR,IAAI,EAAE,YAAY,KAAK,IAAI,IAAA;AAAA,gCAC5B,UAAA;AAAA,8BAAA;AAAA,4BAAA;AAAA,4BAGD,gBAAAH;AAAA,8BAACI;AAAA,8BAAA;AAAA,gCACC,SAAS7E,EAAS;AAAA,gCAClB,IAAG;AAAA,gCACH,MAAK;AAAA,gCACL,QAAQA,EAAS,UAAU;AAAA,gCAC3B,OAAM;AAAA,gCACN,MAAK;AAAA,gCACL,OAAO;AAAA,kCACL,UAAU;AAAA,oCACR,OAAO;AAAA,oCACP,SAAS;AAAA,kCAAA;AAAA,kCAEX,SAAS;AAAA,oCACP,OAAO;AAAA,oCACP,SACE;AAAA,kCAAA;AAAA,kCAEJ,UAAU,CAAA;AAAA,gCAAC;AAAA,8BACb;AAAA,4BAAA;AAAA,0BACF,GACF,IAzCA,gBAAAuE,EAAAO,GAAA,EACE,UAAA;AAAA,4BAAA,gBAAAL;AAAA,8BAACG;AAAA,8BAAA;AAAA,gCACC,SAAQ;AAAA,gCACR,IAAI,EAAE,YAAY,KAAK,OAAO,eAAA;AAAA,gCAE7B,eAAgB;AAAA,8BAAA;AAAA,4BAAA;AAAA,4BAEnB,gBAAAH,EAACG,KAAW,SAAQ,WAAU,OAAM,kBACjC,UAAA/I,IACG,wCACA,+BAAA,CACN;AAAA,0BAAA,GACF;AAAA,0BA+BF,gBAAA4I;AAAA,4BAACM;AAAA,4BAAA;AAAA,8BACC,aAAa;AAAA,8BACb,OAAO;AAAA,8BACP,MAAM1I;AAAA,8BACN,aAAa0H;AAAA,8BACb,aAAa,MAAMzH,GAAmB,CAAC0I,MAAQ,CAACA,CAAG;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBACrD,GACF;AAAA,wBACA,gBAAAT,EAACI,KAAI,IAAI,EAAE,SAAS,QAAQ,KAAK,KAC7B,UAAA;AAAA,2BAAA7I,KAAcI,MACd,gBAAAuI;AAAA,4BAACQ;AAAA,4BAAA;AAAA,8BACC,OACGZ,KAEG,KADA;AAAA,8BAGN,OAAK;AAAA,8BACL,WAAU;AAAA,8BAEV,4BAAC,QAAA,EACC,UAAA,gBAAAI;AAAA,gCAACS;AAAA,gCAAA;AAAA,kCACC,MAAK;AAAA,kCACL,SAAQ;AAAA,kCACR,MAAK;AAAA,kCACL,IAAI;AAAA,oCACF,cAAc;AAAA,oCACd,YAAY;AAAA,oCACZ,eAAe;AAAA,oCACf,WAAW;AAAA,oCACX,IAAI;AAAA,kCAAA;AAAA,kCAEN,UAAUhF,MAAe,CAACmE;AAAA,kCAC1B,WAAW,gBAAAI,EAACU,GAAA,EAAiB,UAAS,UAAA,CAAU;AAAA,kCACjD,UAAA;AAAA,gCAAA;AAAA,8BAAA,EAED,CACF;AAAA,4BAAA;AAAA,0BAAA;AAAA,2BAGFrJ,KAAcI,MACd,gBAAAuI;AAAA,4BAACS;AAAA,4BAAA;AAAA,8BACC,MAAK;AAAA,8BACL,SAAQ;AAAA,8BACR,SAAS,MAAMpB,GAAA;AAAA,8BACf,MAAK;AAAA,8BACL,IAAI;AAAA,gCACF,cAAc;AAAA,gCACd,YAAY;AAAA,gCACZ,eAAe;AAAA,gCACf,aAAa;AAAA,gCACb,OAAO;AAAA,gCACP,IAAI;AAAA,gCACJ,WAAW;AAAA,kCACT,iBAAiB;AAAA,kCACjB,aAAa;AAAA,gCAAA;AAAA,8BACf;AAAA,8BAEH,UAAA;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBAED,EAAA,CAEJ;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAEF,gBAAAS,EAACC,GAAA,EAAK,WAAS,IAAC,SAAS,GACvB,UAAA;AAAA,oBAAA,gBAAAD,EAACC,GAAA,EAAK,MAAM,GAEV,UAAA;AAAA,sBAAA,gBAAAC;AAAA,wBAACE;AAAA,wBAAA;AAAA,0BACC,IAAI;AAAA,4BACF,SAAS;AAAA,4BACT,KAAK;AAAA,4BACL,GAAG;AAAA,4BACH,iBAAiB;AAAA,4BACjB,cAAc;AAAA,4BACd,QAAQ;AAAA,4BACR,aAAa;AAAA,4BACb,IAAI;AAAA,0BAAA;AAAA,0BAGL,UAAA;AAAA,4BACC,EAAE,OAAO,GAAG,OAAO,qBAAqB,MAAM,UAAA;AAAA,4BAC9C,EAAE,OAAO,GAAG,OAAO,oBAAoB,MAAM,aAAA;AAAA,4BAC7C,GAAIzI,IACA;AAAA,8BACE;AAAA,gCACE,OAAO;AAAA,gCACP,OAAO;AAAA,gCACP,MAAM;AAAA,8BAAA;AAAA,4BACR,IAEF,CAAA;AAAA,0BAAC,EACL,IAAI,CAACkJ,MAAQ;AACb,kCAAMC,IAAWhH,MAAkB+G,EAAI;AACvC,mCACE,gBAAAX;AAAA,8BAACS;AAAA,8BAAA;AAAA,gCAEC,SAAS,MAAM5G,GAAiB8G,EAAI,KAAK;AAAA,gCACzC,MAAK;AAAA,gCACL,kBAAgB;AAAA,gCAChB,IAAI;AAAA,kCACF,IAAI;AAAA,kCACJ,IAAI;AAAA,kCACJ,cAAc;AAAA,kCACd,eAAe;AAAA,kCACf,UAAU;AAAA,kCACV,YAAYC,IAAW,MAAM;AAAA,kCAC7B,OAAOA,IAAW,iBAAiB;AAAA,kCACnC,iBAAiBA,IACb,qBACA;AAAA,kCACJ,WAAWA,IACP,iCACA;AAAA,kCACJ,QAAQ;AAAA,kCACR,aAAaA,IAAW,YAAY;AAAA,kCACpC,YAAY;AAAA,kCACZ,WAAW;AAAA,oCACT,iBAAiBA,IACb,qBACA;AAAA,kCAAA;AAAA,gCACN;AAAA,gCAEF,WAAW,gBAAAZ,EAACU,GAAA,EAAiB,UAAUC,EAAI,MAAM;AAAA,gCAEhD,UAAAA,EAAI;AAAA,8BAAA;AAAA,8BA7BAA,EAAI;AAAA,4BAAA;AAAA,0BAgCf,CAAC;AAAA,wBAAA;AAAA,sBAAA;AAAA,sBAEF/G,MAAkB,KACjB,gBAAAkG,EAACC,GAAA,EACC,UAAA;AAAA,wBAAA,gBAAAC,EAACG,GAAA,EAAW,SAAQ,aAAY,UAAA,sBAEhC;AAAA,wBACA,gBAAAH;AAAA,0BAACa;AAAA,0BAAA;AAAA,4BACC,MAAK;AAAA,4BACL,SAAStF,EAAS;AAAA,4BAClB,QAAQ,CAAC,EAAE,OAAAuF,GAAO,YAAY,EAAE,OAAA7D,EAAA,EAAM,MACpC,gBAAA6C,EAAAO,GAAA,EACE,UAAA;AAAA,8BAAA,gBAAAL;AAAA,gCAACe;AAAA,gCAAA;AAAA,kCACC,QAAO;AAAA,kCACP,iBAAgB;AAAA,kCAChB,OAAM;AAAA,kCACN,SAAS;AAAA,oCACP,UAAU;AAAA,oCACV,SAAS,EAAE,SAAS,GAAA;AAAA,oCACpB,iBAAiB;AAAA,oCACjB,sBAAsB;AAAA,oCACtB,UAAU;AAAA,oCACV,sBAAsB;AAAA,oCACtB,oBAAoB;AAAA,oCACpB,UAAU,CAAC1J,KAAc,CAACI;AAAA,kCAAA;AAAA,kCAE5B,OAAOqJ,EAAM,SAAS;AAAA,kCACtB,cAAcA,EAAM,SAAS;AAAA,kCAC7B,UAAUA,EAAM;AAAA,kCAChB,aAAa,EAAE,iBAAiB,GAAA;AAAA,gCAAK;AAAA,8BAAA;AAAA,+BAEtC7D,KAAA,gBAAAA,EAAO,YACN,gBAAA+C;AAAA,gCAACG;AAAA,gCAAA;AAAA,kCACC,SAAQ;AAAA,kCACR,OAAM;AAAA,kCACN,UAAS;AAAA,kCACT,WAAU;AAAA,kCAET,UAAAlD,EAAM;AAAA,gCAAA;AAAA,8BAAA;AAAA,4BACT,EAAA,CAEJ;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBAEH,GACH;AAAA,sBAEDrD,MAAkB,KACjB,gBAAAkG,EAACC,GAAA,EACC,UAAA;AAAA,wBAAA,gBAAAC,EAACG,GAAA,EAAW,SAAQ,aAAY,UAAA,qBAAiB;AAAA,wBACjD,gBAAAH;AAAA,0BAACa;AAAA,0BAAA;AAAA,4BACC,MAAK;AAAA,4BACL,SAAStF,EAAS;AAAA,4BAClB,QAAQ,CAAC,EAAE,OAAAuF,GAAO,YAAY,EAAE,OAAA7D,EAAA,EAAM,MACpC,gBAAA6C,EAAAO,GAAA,EACE,UAAA;AAAA,8BAAA,gBAAAL;AAAA,gCAACe;AAAA,gCAAA;AAAA,kCACC,QAAO;AAAA,kCACP,iBAAgB;AAAA,kCAChB,OAAM;AAAA,kCACN,SAAS;AAAA,oCACP,UAAU;AAAA,oCACV,SAAS,EAAE,SAAS,GAAA;AAAA,oCACpB,iBAAiB;AAAA,oCACjB,sBAAsB;AAAA,oCACtB,UAAU;AAAA,oCACV,sBAAsB;AAAA,oCACtB,oBAAoB;AAAA,oCACpB,UAAU,CAAC1J,KAAc,CAACI;AAAA,kCAAA;AAAA,kCAE5B,OAAOqJ,EAAM,SAAS;AAAA,kCACtB,cAAcA,EAAM,SAAS;AAAA,kCAC7B,UAAUA,EAAM;AAAA,kCAChB,aAAa,EAAE,iBAAiB,GAAA;AAAA,gCAAK;AAAA,8BAAA;AAAA,+BAEtC7D,KAAA,gBAAAA,EAAO,YACN,gBAAA+C;AAAA,gCAACG;AAAA,gCAAA;AAAA,kCACC,SAAQ;AAAA,kCACR,OAAM;AAAA,kCACN,UAAS;AAAA,kCACT,WAAU;AAAA,kCAET,UAAAlD,EAAM;AAAA,gCAAA;AAAA,8BAAA;AAAA,4BACT,EAAA,CAEJ;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBAEH,GACH;AAAA,sBAEDrD,MAAkB,KACjB,gBAAAkG,EAACC,GAAA,EACC,UAAA;AAAA,wBAAA,gBAAAC,EAACG,GAAA,EAAW,SAAQ,aAAY,UAAA,uBAEhC;AAAA,wBACA,gBAAAH;AAAA,0BAACa;AAAA,0BAAA;AAAA,4BACC,MAAK;AAAA,4BACL,SAAStF,EAAS;AAAA,4BAClB,QAAQ,CAAC,EAAE,OAAAuF,GAAO,YAAY,EAAE,OAAA7D,EAAA,EAAM,MACpC,gBAAA6C,EAAAO,GAAA,EACE,UAAA;AAAA,8BAAA,gBAAAL;AAAA,gCAACe;AAAA,gCAAA;AAAA,kCACC,QAAO;AAAA,kCACP,iBAAgB;AAAA,kCAChB,OAAM;AAAA,kCACN,SAAS;AAAA,oCACP,UAAU;AAAA,oCACV,SAAS,EAAE,SAAS,GAAA;AAAA,oCACpB,iBAAiB;AAAA,oCACjB,sBAAsB;AAAA,oCACtB,UAAU;AAAA,oCACV,sBAAsB;AAAA,oCACtB,oBAAoB;AAAA,oCACpB,UAAU;AAAA,kCAAA;AAAA,kCAEZ,OAAOD,EAAM,SAAS;AAAA,kCACtB,cAAcA,EAAM,SAAS;AAAA,kCAC7B,UAAUA,EAAM;AAAA,kCAChB,aAAa,EAAE,iBAAiB,GAAA;AAAA,gCAAK;AAAA,8BAAA;AAAA,+BAEtC7D,KAAA,gBAAAA,EAAO,YACN,gBAAA+C;AAAA,gCAACG;AAAA,gCAAA;AAAA,kCACC,SAAQ;AAAA,kCACR,OAAM;AAAA,kCACN,UAAS;AAAA,kCACT,WAAU;AAAA,kCAET,UAAAlD,EAAM;AAAA,gCAAA;AAAA,8BAAA;AAAA,4BACT,EAAA,CAEJ;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBAEH,GACH;AAAA,sBAGF,gBAAA6C;AAAA,wBAACG;AAAA,wBAAA;AAAA,0BACC,SAAQ;AAAA,0BACR,IAAI;AAAA,4BACF,GAAG;AAAA,4BACH,IAAI;AAAA,4BACJ,cAAc;AAAA,4BACd,iBAAiB;AAAA,0BAAA;AAAA,0BAGnB,UAAA;AAAA,4BAAA,gBAAAD;AAAA,8BAACG;AAAA,8BAAA;AAAA,gCACC,SAAQ;AAAA,gCACR,IAAI,EAAE,YAAY,KAAK,IAAI,KAAK,OAAO,eAAA;AAAA,gCACxC,UAAA;AAAA,8BAAA;AAAA,4BAAA;AAAA,4BAGD,gBAAAL,EAACC,GAAA,EAAK,WAAS,IAAC,SAAS,GACvB,UAAA;AAAA,8BAAA,gBAAAD,EAACC,GAAA,EAAK,MAAM,GAAG,IAAI,IACjB,UAAA;AAAA,gCAAA,gBAAAD;AAAA,kCAACK;AAAA,kCAAA;AAAA,oCACC,SAAQ;AAAA,oCACR,IAAI,EAAE,YAAY,KAAK,IAAI,IAAA;AAAA,oCAC5B,UAAA;AAAA,sCAAA;AAAA,wDACa,QAAA,EAAK,OAAO,EAAE,OAAO,UAAA,GAAa,UAAA,IAAA,CAAC;AAAA,oCAAA;AAAA,kCAAA;AAAA,gCAAA;AAAA,kDAEhDa,IAAA,EACC,UAAA,gBAAAhB;AAAA,kCAACa;AAAA,kCAAA;AAAA,oCACC,MAAK;AAAA,oCACL,SAAStF,EAAS;AAAA,oCAClB,OAAO,EAAE,UAAU,kBAAA;AAAA,oCACnB,UAAU,CAAClE,KAAc,CAACI;AAAA,oCAC1B,cACEN,EAAU,aAAa,UACvBA,EAAU,aAAa,OACnB,OAAOA,EAAU,QAAQ,IACzB;AAAA,oCAEN,QAAQ,CAAC,EAAE,OAAA2J,EAAA,MACT,gBAAAhB,EAACmB,IAAA,EAAW,KAAG,IAAE,GAAGH,GAAO,OAAOA,EAAM,OACtC,UAAA;AAAA,sCAAA,gBAAAd;AAAA,wCAACkB;AAAA,wCAAA;AAAA,0CACC,OAAM;AAAA,0CACN,SACE,gBAAAlB;AAAA,4CAACmB;AAAA,4CAAA;AAAA,8CACC,UAAU,CAAC9J,KAAc,CAACI;AAAA,8CAC1B,MAAK;AAAA,4CAAA;AAAA,0CAAA;AAAA,0CAGT,OACE,gBAAAuI,EAACG,GAAA,EAAW,SAAQ,SAAQ,UAAA,OAAA,CAAI;AAAA,wCAAA;AAAA,sCAAA;AAAA,sCAGpC,gBAAAH;AAAA,wCAACkB;AAAA,wCAAA;AAAA,0CACC,OAAM;AAAA,0CACN,SACE,gBAAAlB;AAAA,4CAACmB;AAAA,4CAAA;AAAA,8CACC,UAAU,CAAC9J,KAAc,CAACI;AAAA,8CAC1B,MAAK;AAAA,4CAAA;AAAA,0CAAA;AAAA,0CAGT,OACE,gBAAAuI,EAACG,GAAA,EAAW,SAAQ,SAAQ,UAAA,SAAA,CAAM;AAAA,wCAAA;AAAA,sCAAA;AAAA,oCAEtC,EAAA,CACF;AAAA,kCAAA;AAAA,gCAAA,EAEJ,CACF;AAAA,8BAAA,GACF;AAAA,8BACA,gBAAAL,EAACC,GAAA,EAAK,MAAM,GAAG,IAAI,IACjB,UAAA;AAAA,gCAAA,gBAAAD;AAAA,kCAACK;AAAA,kCAAA;AAAA,oCACC,SAAQ;AAAA,oCACR,IAAI,EAAE,YAAY,KAAK,IAAI,IAAA;AAAA,oCAC5B,UAAA;AAAA,sCAAA;AAAA,sCACiB;AAAA,wDACf,QAAA,EAAK,OAAO,EAAE,OAAO,UAAA,GAAa,UAAA,IAAA,CAAC;AAAA,oCAAA;AAAA,kCAAA;AAAA,gCAAA;AAAA,kDAErCa,IAAA,EACC,UAAA,gBAAAhB;AAAA,kCAACa;AAAA,kCAAA;AAAA,oCACC,MAAK;AAAA,oCACL,IAAG;AAAA,oCACH,SAAStF,EAAS;AAAA,oCAClB,OAAO,EAAE,UAAU,kBAAA;AAAA,oCACnB,UAAU,CAAClE,KAAc,CAACI;AAAA,oCAC1B,cACEN,EAAU,kBAAkB,UAC5BA,EAAU,kBAAkB,OACxB,OAAOA,EAAU,aAAa,IAC9B;AAAA,oCAEN,QAAQ,CAAC,EAAE,OAAA2J,EAAA,MACT,gBAAAhB,EAACmB,IAAA,EAAW,KAAG,IAAE,GAAGH,GAAO,OAAOA,EAAM,OACtC,UAAA;AAAA,sCAAA,gBAAAd;AAAA,wCAACkB;AAAA,wCAAA;AAAA,0CACC,OAAM;AAAA,0CACN,SACE,gBAAAlB;AAAA,4CAACmB;AAAA,4CAAA;AAAA,8CACC,UAAU,CAAC9J,KAAc,CAACI;AAAA,8CAC1B,MAAK;AAAA,4CAAA;AAAA,0CAAA;AAAA,0CAGT,OACE,gBAAAuI,EAACG,GAAA,EAAW,SAAQ,SAAQ,UAAA,MAAA,CAAG;AAAA,wCAAA;AAAA,sCAAA;AAAA,sCAGnC,gBAAAH;AAAA,wCAACkB;AAAA,wCAAA;AAAA,0CACC,OAAM;AAAA,0CACN,SACE,gBAAAlB;AAAA,4CAACmB;AAAA,4CAAA;AAAA,8CACC,UAAU,CAAC9J,KAAc,CAACI;AAAA,8CAC1B,MAAK;AAAA,4CAAA;AAAA,0CAAA;AAAA,0CAGT,OACE,gBAAAuI,EAACG,GAAA,EAAW,SAAQ,SAAQ,UAAA,KAAA,CAAE;AAAA,wCAAA;AAAA,sCAAA;AAAA,oCAElC,EAAA,CACF;AAAA,kCAAA;AAAA,gCAAA,EAEJ,CACF;AAAA,8BAAA,GACF;AAAA,8BACA,gBAAAL,EAACC,GAAA,EAAK,MAAM,GAAG,IAAI,IACjB,UAAA;AAAA,gCAAA,gBAAAD;AAAA,kCAACK;AAAA,kCAAA;AAAA,oCACC,SAAQ;AAAA,oCACR,IAAI,EAAE,YAAY,KAAK,IAAI,IAAA;AAAA,oCAC5B,UAAA;AAAA,sCAAA;AAAA,wDACY,QAAA,EAAK,OAAO,EAAE,OAAO,UAAA,GAAa,UAAA,IAAA,CAAC;AAAA,oCAAA;AAAA,kCAAA;AAAA,gCAAA;AAAA,kDAE/Ca,IAAA,EACC,UAAA,gBAAAhB;AAAA,kCAACa;AAAA,kCAAA;AAAA,oCACC,MAAK;AAAA,oCACL,IAAG;AAAA,oCACH,SAAStF,EAAS;AAAA,oCAClB,OAAO,EAAE,UAAU,kBAAA;AAAA,oCACnB,UAAU,CAAClE,KAAc,CAACI;AAAA,oCAC1B,cACEN,EAAU,aAAa,UACvBA,EAAU,aAAa,OACnB,OAAOA,EAAU,QAAQ,IACzB;AAAA,oCAEN,QAAQ,CAAC,EAAE,OAAA2J,EAAA,MACT,gBAAAhB,EAACmB,IAAA,EAAW,KAAG,IAAE,GAAGH,GAAO,OAAOA,EAAM,OACtC,UAAA;AAAA,sCAAA,gBAAAd;AAAA,wCAACkB;AAAA,wCAAA;AAAA,0CACC,OAAM;AAAA,0CACN,SACE,gBAAAlB;AAAA,4CAACmB;AAAA,4CAAA;AAAA,8CACC,UAAU,CAAC9J,KAAc,CAACI;AAAA,8CAC1B,MAAK;AAAA,4CAAA;AAAA,0CAAA;AAAA,0CAGT,OACE,gBAAAuI,EAACG,GAAA,EAAW,SAAQ,SAAQ,UAAA,MAAA,CAAG;AAAA,wCAAA;AAAA,sCAAA;AAAA,sCAGnC,gBAAAH;AAAA,wCAACkB;AAAA,wCAAA;AAAA,0CACC,OAAM;AAAA,0CACN,SACE,gBAAAlB;AAAA,4CAACmB;AAAA,4CAAA;AAAA,8CACC,UAAU,CAAC9J,KAAc,CAACI;AAAA,8CAC1B,MAAK;AAAA,4CAAA;AAAA,0CAAA;AAAA,0CAGT,OACE,gBAAAuI,EAACG,GAAA,EAAW,SAAQ,SAAQ,UAAA,KAAA,CAAE;AAAA,wCAAA;AAAA,sCAAA;AAAA,oCAElC,EAAA,CACF;AAAA,kCAAA;AAAA,gCAAA,EAEJ,CACF;AAAA,8BAAA,EAAA,CACF;AAAA,4BAAA,EAAA,CACF;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBAAA;AAAA,sBAEDzE,MAAgB,UACf,gBAAAoE,EAAAO,GAAA,EACE,UAAA;AAAA,wBAAA,gBAAAP;AAAA,0BAACI;AAAA,0BAAA;AAAA,4BACC,IAAI;AAAA,8BACF,SAAS;AAAA,8BACT,YAAY;AAAA,8BACZ,gBAAgB;AAAA,8BAChB,IAAI;AAAA,4BAAA;AAAA,4BAGN,UAAA;AAAA,8BAAA,gBAAAF;AAAA,gCAACG;AAAA,gCAAA;AAAA,kCACC,SAAQ;AAAA,kCACR,IAAI,EAAE,YAAY,KAAK,OAAO,qBAAA;AAAA,kCAC/B,UAAA;AAAA,gCAAA;AAAA,8BAAA;AAAA,8BAGA3F,KAAkBnD,KACjB,gBAAA2I;AAAA,gCAACQ;AAAA,gCAAA;AAAA,kCACC,OAAM;AAAA,kCACN,OAAK;AAAA,kCAEL,UAAA,gBAAAR;AAAA,oCAACS;AAAA,oCAAA;AAAA,sCACC,MAAK;AAAA,sCACL,SAAQ;AAAA,sCACR,OAAM;AAAA,sCACN,IAAI;AAAA,wCACF,cAAc;AAAA,wCACd,YAAY;AAAA,wCACZ,eAAe;AAAA,wCACf,WAAW;AAAA,wCACX,IAAI;AAAA,sCAAA;AAAA,sCAEN,WACE,gBAAAT,EAACU,GAAA,EAAiB,UAAS,iBAAA,CAAiB;AAAA,sCAE9C,SAAS,MAAM;AAEb,8CAAMU,IAAU3I;AAAA,0CACdtB,EAAU;AAAA,wCAAA,GAENkK,IAAWD,EAAQ,SACrBA,IACA,CAAC,EAAE,aAAa,IAAI,mBAAmB,CAAA,GAAI;AAC/C,wCAAA/G,EAAsBgH,CAAQ,GAC9B9G,GAAe,EAAI,GACnBgB,EAAS,SAAS,sBAAsB8F,GAAU;AAAA,0CAChD,aAAa;AAAA,0CACb,gBAAgB;AAAA,wCAAA,CACjB,GACDrE,EAAU;AAAA,0CACR,SACE;AAAA,0CACF,MAAM;AAAA,wCAAA,CACP;AAAA,sCACH;AAAA,sCACD,UAAA;AAAA,oCAAA;AAAA,kCAAA;AAAA,gCAED;AAAA,8BAAA;AAAA,4BACF;AAAA,0BAAA;AAAA,wBAAA;AAAA,wBAIHxC,KAAkBnD,KACjB,gBAAA2I;AAAA,0BAACC;AAAA,0BAAA;AAAA,4BACC,SAAQ;AAAA,4BACR,IAAI;AAAA,8BACF,GAAG;AAAA,8BACH,IAAI;AAAA,8BACJ,cAAc;AAAA,8BACd,iBAAiB;AAAA,8BACjB,aAAa;AAAA,8BACb,WAAW;AAAA,4BAAA;AAAA,4BAGb,UAAA,gBAAAH;AAAA,8BAACK;AAAA,8BAAA;AAAA,gCACC,SAAQ;AAAA,gCACR,IAAI,EAAE,OAAO,gBAAgB,YAAY,IAAA;AAAA,gCAC1C,UAAA;AAAA,kCAAA;AAAA,kCACqD;AAAA,kCACpD,gBAAAH,EAAC,YAAO,UAAA,yBAAA,CAAgC;AAAA,kCAAS;AAAA,gCAAA;AAAA,8BAAA;AAAA,4BAAA;AAAA,0BAEnD;AAAA,wBAAA;AAAA,0CAIHD,GAAA,EAAK,WAAS,IAAC,SAAS,GAAG,WAAU,QACpC,UAAA;AAAA,0BAAA,gBAAAD,EAACC,GAAA,EAAK,MAAM,GAAG,IAAI,IACjB,UAAA;AAAA,4BAAA,gBAAAD;AAAA,8BAACK;AAAA,8BAAA;AAAA,gCACC,SAAQ;AAAA,gCACR,IAAI,EAAE,IAAI,KAAK,YAAY,IAAA;AAAA,gCAC5B,UAAA;AAAA,kCAAA;AAAA,oDACe,QAAA,EAAK,OAAO,EAAE,OAAO,MAAA,GAAS,UAAA,KAAC;AAAA,kCAAO;AAAA,gCAAA;AAAA,8BAAA;AAAA,4BAAA;AAAA,4BAEtD,gBAAAH;AAAA,8BAACa;AAAA,8BAAA;AAAA,gCACC,MAAK;AAAA,gCACL,SAAStF,EAAS;AAAA,gCAClB,OAAO;AAAA,kCACL,UAAU,CAACM,MACTH,MAAgB,UAChB,CAAC,CAACG,KACF;AAAA,gCAAA;AAAA,gCAEJ,QAAQ,CAAC;AAAA,kCACP,OAAO,EAAE,UAAAyF,GAAU,OAAAzF,EAAA;AAAA,kCACnB,YAAY,EAAE,OAAAoB,EAAA;AAAA,gCAAM,MAEpB,gBAAA+C;AAAA,kCAACuB;AAAA,kCAAA;AAAA,oCACC,SAASxJ;AAAA,oCACT,OAAO8D,KAAS;AAAA,oCAChB,UAAW,CAACxE,KAAc,CAACI,KAAsB+C;AAAA,oCACjD,UAAU,CAACgH,GAAGC,MAAaH,EAASG,CAAQ;AAAA,oCAC5C,aAAa,CAACC,MACZ,gBAAA1B;AAAA,sCAAC2B;AAAA,sCAAA;AAAA,wCACE,GAAGD;AAAA,wCACJ,MAAK;AAAA,wCACL,aAAY;AAAA,wCACZ,OAAO,CAAC,CAACzE;AAAA,wCACT,YAAYA,KAAA,gBAAAA,EAAO;AAAA,sCAAA;AAAA,oCAAA;AAAA,kCACrB;AAAA,gCAAA;AAAA,8BAEJ;AAAA,4BAAA;AAAA,0BAEJ,GACF;AAAA,0BAEA,gBAAA6C,EAACC,GAAA,EAAK,MAAM,IACV,UAAA;AAAA,4BAAA,gBAAAD;AAAA,8BAACI;AAAA,8BAAA;AAAA,gCACC,IAAI;AAAA,kCACF,SAAS;AAAA,kCACT,YAAY;AAAA,kCACZ,gBAAgB;AAAA,kCAChB,IAAI;AAAA,gCAAA;AAAA,gCAGN,UAAA;AAAA,kCAAA,gBAAAF;AAAA,oCAACG;AAAA,oCAAA;AAAA,sCACC,SAAQ;AAAA,sCACR,IAAI,EAAE,YAAY,KAAK,OAAO,oBAAA;AAAA,sCAC/B,UAAA;AAAA,oCAAA;AAAA,kCAAA;AAAA,mCAGC9I,KAAcI,MAAsB,CAAC+C,uBACpCgG,GAAA,EAAQ,OAAM,iCAAgC,OAAK,IAClD,UAAA,gBAAAR;AAAA,oCAACS;AAAA,oCAAA;AAAA,sCACC,MAAK;AAAA,sCACL,SAAQ;AAAA,sCACR,IAAI;AAAA,wCACF,cAAc;AAAA,wCACd,eAAe;AAAA,wCACf,YAAY;AAAA,wCACZ,IAAI;AAAA,wCACJ,aAAa;AAAA,wCACb,OAAO;AAAA,wCACP,WAAW;AAAA,0CACT,iBAAiB;AAAA,0CACjB,aAAa;AAAA,wCAAA;AAAA,sCACf;AAAA,sCAEF,WAAW,gBAAAT,EAACU,GAAA,EAAiB,UAAS,SAAA,CAAS;AAAA,sCAC/C,SAAS,MAAM;AACb,8CAAMkB,IAAU;AAAA,0CACd,GAAGxH;AAAA,0CACH,EAAE,aAAa,IAAI,mBAAmB,CAAA,EAAC;AAAA,wCAAE;AAE3C,wCAAAC,EAAsBuH,CAAO,GAC7BrG,EAAS,SAAS,sBAAsBqG,GAAS;AAAA,0CAC/C,aAAa;AAAA,0CACb,gBAAgB;AAAA,wCAAA,CACjB;AAAA,sCACH;AAAA,sCACD,UAAA;AAAA,oCAAA;AAAA,kCAAA,EAED,CACF;AAAA,gCAAA;AAAA,8BAAA;AAAA,4BAAA;AAAA,4BAIHxH,EAAmB,WAAW,KAC7B,gBAAA4F;AAAA,8BAACG;AAAA,8BAAA;AAAA,gCACC,SAAQ;AAAA,gCACR,IAAI,EAAE,OAAO,sBAAsB,WAAW,SAAA;AAAA,gCAC/C,UAAA;AAAA,8BAAA;AAAA,4BAAA;AAAA,4BAKF/F,EAAmB,IAAI,CAAC2B,GAAO8F,MAC9B,gBAAA/B;AAAA,8BAACG;AAAA,8BAAA;AAAA,gCAEC,SAAQ;AAAA,gCACR,IAAI;AAAA,kCACF,GAAG;AAAA,kCACH,IAAI;AAAA,kCACJ,cAAc;AAAA,kCACd,iBAAiB;AAAA,kCACjB,aAAa;AAAA,gCAAA;AAAA,gCAGf,UAAA;AAAA,kCAAA,gBAAAH;AAAA,oCAACI;AAAA,oCAAA;AAAA,sCACC,IAAI;AAAA,wCACF,SAAS;AAAA,wCACT,YAAY;AAAA,wCACZ,gBAAgB;AAAA,wCAChB,IAAI;AAAA,sCAAA;AAAA,sCAGN,UAAA;AAAA,wCAAA,gBAAAJ;AAAA,0CAACK;AAAA,0CAAA;AAAA,4CACC,SAAQ;AAAA,4CACR,IAAI,EAAE,YAAY,KAAK,OAAO,oBAAA;AAAA,4CAC/B,UAAA;AAAA,8CAAA;AAAA,8CACqB0B,IAAW;AAAA,4CAAA;AAAA,0CAAA;AAAA,wCAAA;AAAA,yCAE/BxK,KAAcI,MACd,CAAC+C,KACDJ,EAAmB,SAAS,KAC1B,gBAAA4F,EAACQ,GAAA,EAAQ,OAAM,iCAAgC,OAAK,IAClD,UAAA,gBAAAR;AAAA,0CAAC8B;AAAA,0CAAA;AAAA,4CACC,MAAK;AAAA,4CACL,SAAS,MAAM;AACb,oDAAMF,IAAUxH,EAAmB;AAAA,gDACjC,CAACoH,GAAG1F,MAAMA,MAAM+F;AAAA,8CAAA;AAElB,8CAAAxH,EAAsBuH,CAAO,GAC7BrG,EAAS;AAAA,gDACP;AAAA,gDACAqG;AAAA,gDACA;AAAA,kDACE,aAAa;AAAA,kDACb,gBAAgB;AAAA,gDAAA;AAAA,8CAClB;AAAA,4CAEJ;AAAA,4CACA,IAAI,EAAE,OAAO,UAAA;AAAA,4CAEb,UAAA,gBAAA5B;AAAA,8CAACU;AAAA,8CAAA;AAAA,gDACC,UAAS;AAAA,gDACT,WAAU;AAAA,8CAAA;AAAA,4CAAA;AAAA,0CACZ;AAAA,wCAAA,EACF,CACF;AAAA,sCAAA;AAAA,oCAAA;AAAA,kCAAA;AAAA,kCAIN,gBAAAZ;AAAA,oCAACK;AAAA,oCAAA;AAAA,sCACC,SAAQ;AAAA,sCACR,IAAI,EAAE,IAAI,KAAK,YAAY,IAAA;AAAA,sCAC5B,UAAA;AAAA,wCAAA;AAAA,0DACc,QAAA,EAAK,OAAO,EAAE,OAAO,MAAA,GAAS,UAAA,KAAC;AAAA,wCAAO;AAAA,sCAAA;AAAA,oCAAA;AAAA,kCAAA;AAAA,kCAErD,gBAAAH;AAAA,oCAAC2B;AAAA,oCAAA;AAAA,sCACC,OAAO5F,EAAM,eAAe;AAAA,sCAC5B,MAAK;AAAA,sCACL,SAAQ;AAAA,sCACR,WAAS;AAAA,sCACT,aAAY;AAAA,sCACZ,WAAW;AAAA,wCACT,OAAO;AAAA,0CACL,UACG,CAAC1E,KAAc,CAACI,KACjB+C;AAAA,wCAAA;AAAA,sCACJ;AAAA,sCAEF,UAAU,CAACuH,MAAM;AACf,8CAAMH,IAAUxH,EAAmB;AAAA,0CACjC,CAACqE,GAAM3C,MACLA,MAAM+F,IACF,EAAE,GAAGpD,GAAM,aAAasD,EAAE,OAAO,MAAA,IACjCtD;AAAA,wCAAA;AAER,wCAAApE,EAAsBuH,CAAO,GAC7BrG,EAAS;AAAA,0CACP;AAAA,0CACAqG;AAAA,0CACA;AAAA,4CACE,aAAa;AAAA,4CACb,gBAAgB;AAAA,0CAAA;AAAA,wCAClB;AAAA,sCAEJ;AAAA,sCACA,IAAI,EAAE,IAAI,EAAA;AAAA,oCAAE;AAAA,kCAAA;AAAA,kCAGd,gBAAA9B;AAAA,oCAACI;AAAA,oCAAA;AAAA,sCACC,IAAI;AAAA,wCACF,SAAS;AAAA,wCACT,YAAY;AAAA,wCACZ,IAAI;AAAA,sCAAA;AAAA,sCAGN,UAAA;AAAA,wCAAA,gBAAAJ;AAAA,0CAACK;AAAA,0CAAA;AAAA,4CACC,SAAQ;AAAA,4CACR,IAAI;AAAA,8CACF,YAAY;AAAA,8CACZ,OAAO;AAAA,8CACP,MAAM;AAAA,4CAAA;AAAA,4CAET,UAAA;AAAA,8CAAA;AAAA,gEAEE,QAAA,EAAK,OAAO,EAAE,OAAO,MAAA,GAAS,UAAA,KAAC;AAAA,8CAAO;AAAA,4CAAA;AAAA,0CAAA;AAAA,wCAAA;AAAA,yCAEvC9I,KAAcI,MACd,CAAC+C,uBACEgG,GAAA,EAAQ,OAAM,iBAAgB,OAAK,IAClC,UAAA,gBAAAR;AAAA,0CAAC8B;AAAA,0CAAA;AAAA,4CACC,MAAK;AAAA,4CACL,SAAS,MAAM;AACb,oDAAMF,IAAUxH,EAAmB;AAAA,gDACjC,CAACqE,GAAM3C,MACLA,MAAM+F,IACF;AAAA,kDACE,GAAGpD;AAAA,kDACH,mBAAmB;AAAA,oDACjB,GAAIA,EAAK,qBACP,CAAA;AAAA,oDACF,EAAE,KAAK,IAAI,OAAO,GAAA;AAAA,kDAAG;AAAA,gDACvB,IAEFA;AAAA,8CAAA;AAER,8CAAApE,EAAsBuH,CAAO,GAC7BrG,EAAS;AAAA,gDACP;AAAA,gDACAqG;AAAA,gDACA;AAAA,kDACE,aAAa;AAAA,kDACb,gBAAgB;AAAA,gDAAA;AAAA,8CAClB;AAAA,4CAEJ;AAAA,4CACA,IAAI;AAAA,8CACF,iBACE;AAAA,8CACF,OAAO;AAAA,8CACP,WAAW;AAAA,gDACT,iBAAiB;AAAA,8CAAA;AAAA,8CAEnB,cAAc;AAAA,8CACd,OAAO;AAAA,8CACP,QAAQ;AAAA,4CAAA;AAAA,4CAGV,UAAA,gBAAA5B;AAAA,8CAACU;AAAA,8CAAA;AAAA,gDACC,UAAS;AAAA,gDACT,WAAU;AAAA,8CAAA;AAAA,4CAAA;AAAA,0CACZ;AAAA,wCAAA,EACF,CACF;AAAA,sCAAA;AAAA,oCAAA;AAAA,kCAAA;AAAA,mCAIJ,CAAC3E,EAAM,qBACPA,EAAM,kBAAkB,WAAW,MACnC,gBAAAiE;AAAA,oCAACG;AAAA,oCAAA;AAAA,sCACC,SAAQ;AAAA,sCACR,IAAI;AAAA,wCACF,OAAO;AAAA,wCACP,WAAW;AAAA,sCAAA;AAAA,sCAEd,UAAA;AAAA,oCAAA;AAAA,kCAAA;AAAA,mCAKDpE,EAAM,qBAAqB,CAAA,GAAI;AAAA,oCAC/B,CAACiG,GAAOC,MACN,gBAAAnC;AAAA,sCAACI;AAAA,sCAAA;AAAA,wCAEC,IAAI;AAAA,0CACF,SAAS;AAAA,0CACT,KAAK;AAAA,0CACL,YAAY;AAAA,0CACZ,IAAI;AAAA,0CACJ,GAAG;AAAA,0CACH,cAAc;AAAA,0CACd,iBAAiB;AAAA,0CACjB,QAAQ;AAAA,wCAAA;AAAA,wCAGV,UAAA;AAAA,0CAAA,gBAAAF;AAAA,4CAAC2B;AAAA,4CAAA;AAAA,8CACC,MAAK;AAAA,8CACL,OAAM;AAAA,8CACN,OAAOK,EAAM;AAAA,8CACb,aAAY;AAAA,8CACZ,UACG,CAAC3K,KAAc,CAACI,KACjB+C;AAAA,8CAEF,UAAU,CAACuH,MAAM;AACf,sDAAMG,KACJnG,EAAM,qBAAqB,CAAA,GAC3B;AAAA,kDAAI,CAAC,GAAGoG,MACRA,MAAOF,IACH,EAAE,GAAG,GAAG,KAAKF,EAAE,OAAO,MAAA,IACtB;AAAA,gDAAA,GAEAH,IAAUxH,EAAmB;AAAA,kDACjC,CAACqE,GAAM3C,MACLA,MAAM+F,IACF;AAAA,oDACE,GAAGpD;AAAA,oDACH,mBAAmByD;AAAA,kDAAA,IAErBzD;AAAA,gDAAA;AAER,gDAAApE,EAAsBuH,CAAO,GAC7BrG,EAAS;AAAA,kDACP;AAAA,kDACAqG;AAAA,kDACA;AAAA,oDACE,aAAa;AAAA,oDACb,gBAAgB;AAAA,kDAAA;AAAA,gDAClB;AAAA,8CAEJ;AAAA,8CACA,IAAI,EAAE,MAAM,EAAA;AAAA,4CAAE;AAAA,0CAAA;AAAA,0CAGhB,gBAAA5B;AAAA,4CAACuB;AAAA,4CAAA;AAAA,8CACC,MAAK;AAAA,8CACL,SAASjI,EAAmB;AAAA,gDAC1B,CAACqD,MAAQA,EAAI;AAAA,8CAAA;AAAA,8CAEf,OAAOqF,EAAM,SAAS;AAAA,8CACtB,UACG,CAAC3K,KAAc,CAACI,KACjB+C;AAAA,8CAEF,eACElB,EAAmB,WAAW,IAC1B,0BACA;AAAA,8CAEN,UAAU,CAACkI,GAAGC,MAAa;AACzB,sDAAMS,KACJnG,EAAM,qBAAqB,CAAA,GAC3B;AAAA,kDAAI,CAACC,GAAGmG,MACRA,MAAOF,IACH,EAAE,GAAGjG,GAAG,OAAOyF,KAAY,OAC3BzF;AAAA,gDAAA,GAEA4F,IAAUxH,EAAmB;AAAA,kDACjC,CAACqE,GAAM3C,MACLA,MAAM+F,IACF;AAAA,oDACE,GAAGpD;AAAA,oDACH,mBAAmByD;AAAA,kDAAA,IAErBzD;AAAA,gDAAA;AAER,gDAAApE,EAAsBuH,CAAO,GAC7BrG,EAAS;AAAA,kDACP;AAAA,kDACAqG;AAAA,kDACA;AAAA,oDACE,aAAa;AAAA,oDACb,gBAAgB;AAAA,kDAAA;AAAA,gDAClB;AAAA,8CAEJ;AAAA,8CACA,aAAa,CAACF,MACZ,gBAAA1B;AAAA,gDAAC2B;AAAA,gDAAA;AAAA,kDACE,GAAGD;AAAA,kDACJ,OAAM;AAAA,kDACN,aAAY;AAAA,gDAAA;AAAA,8CAAA;AAAA,8CAGhB,IAAI,EAAE,MAAM,EAAA;AAAA,4CAAE;AAAA,0CAAA;AAAA,2CAGdrK,KAAcI,MACd,CAAC+C,uBACEgG,GAAA,EAAQ,OAAM,oBAAmB,OAAK,IACrC,UAAA,gBAAAR;AAAA,4CAAC8B;AAAA,4CAAA;AAAA,8CACC,MAAK;AAAA,8CACL,SAAS,MAAM;AACb,sDAAMI,KACJnG,EAAM,qBAAqB,CAAA,GAC3B;AAAA,kDACA,CAACyF,GAAGW,MAAOA,MAAOF;AAAA,gDAAA,GAEdL,IACJxH,EAAmB;AAAA,kDAAI,CAACqE,GAAM3C,MAC5BA,MAAM+F,IACF;AAAA,oDACE,GAAGpD;AAAA,oDACH,mBACEyD;AAAA,kDAAA,IAEJzD;AAAA,gDAAA;AAER,gDAAApE,EAAsBuH,CAAO,GAC7BrG,EAAS;AAAA,kDACP;AAAA,kDACAqG;AAAA,kDACA;AAAA,oDACE,aAAa;AAAA,oDACb,gBAAgB;AAAA,kDAAA;AAAA,gDAClB;AAAA,8CAEJ;AAAA,8CACA,IAAI;AAAA,gDACF,OAAO;AAAA,gDACP,WAAW;AAAA,8CAAA;AAAA,8CAGb,UAAA,gBAAA5B;AAAA,gDAACU;AAAA,gDAAA;AAAA,kDACC,UAAS;AAAA,kDACT,WAAU;AAAA,gDAAA;AAAA,8CAAA;AAAA,4CACZ;AAAA,0CAAA,EACF,CACF;AAAA,wCAAA;AAAA,sCAAA;AAAA,sCAhJCuB;AAAA,oCAAA;AAAA,kCAkJP;AAAA,gCAEJ;AAAA,8BAAA;AAAA,8BAtUKJ;AAAA,4BAAA,CAwUR;AAAA,4BAEAtG,EAAS,UAAU,OAAO,sBACzB,gBAAAyE;AAAA,8BAACG;AAAA,8BAAA;AAAA,gCACC,SAAQ;AAAA,gCACR,IAAI,EAAE,OAAO,WAAW,IAAI,KAAK,SAAS,QAAA;AAAA,gCAGxC,UAAA5E,EAAS,UAAU,OAAO,mBACvB;AAAA,8BAAA;AAAA,4BAAA;AAAA,0BAEP,GAEJ;AAAA,0BAEA,gBAAAuE,EAACC,GAAA,EAAK,MAAM,GAAG,IAAI,IACjB,UAAA;AAAA,4BAAA,gBAAAD;AAAA,8BAACK;AAAA,8BAAA;AAAA,gCACC,SAAQ;AAAA,gCACR,IAAI,EAAE,IAAI,KAAK,YAAY,IAAA;AAAA,gCAC5B,UAAA;AAAA,kCAAA;AAAA,oDACgB,QAAA,EAAK,OAAO,EAAE,OAAO,MAAA,GAAS,UAAA,KAAC;AAAA,kCAAO;AAAA,gCAAA;AAAA,8BAAA;AAAA,4BAAA;AAAA,4BAEvD,gBAAAH;AAAA,8BAACa;AAAA,8BAAA;AAAA,gCACC,MAAK;AAAA,gCACL,SAAStF,EAAS;AAAA,gCAClB,cAAa;AAAA,gCACb,OAAO;AAAA,kCACL,UAAU,CAACM,MACTH,MAAgB,UACf,CAAC,EAACG,KAAA,QAAAA,EAAO,WAAUA,EAAM,OAAO,SAAS,KAC1C;AAAA,gCAAA;AAAA,gCAEJ,QAAQ,CAAC,EAAE,OAAAiF,GAAO,YAAY,EAAE,OAAA7D,EAAA,QAC9B,gBAAA+C;AAAA,kCAAC2B;AAAA,kCAAA;AAAA,oCACE,GAAGb;AAAA,oCACJ,MAAK;AAAA,oCACL,SAAQ;AAAA,oCACR,WAAS;AAAA,oCACT,OAAO,CAAC,CAAC7D;AAAA,oCACT,YAAYA,KAAA,gBAAAA,EAAO;AAAA,oCACnB,WAAW;AAAA,sCACT,OAAO;AAAA,wCACL,UACG,CAAC5F,KAAc,CAACI,KACjB+C;AAAA,wCACF,gBACE,gBAAAwF,EAACoC,IAAA,EAAe,UAAS,SAAQ,UAAA,oBAEjC;AAAA,wCAEF,cACE,gBAAApC,EAACoC,IAAA,EAAe,UAAS,OAAM,UAAA,IAAA,CAE/B;AAAA,sCAAA;AAAA,oCAEJ;AAAA,kCACF;AAAA,gCAAA;AAAA,8BACF;AAAA,4BAAA;AAAA,0BAEJ,EAAA,CACF;AAAA,wBAAA,EAAA,CACF;AAAA,sBAAA,EAAA,CACF;AAAA,oBAAA,GAEJ;AAAA,oBACA,gBAAApC,EAACD,GAAA,EAAK,MAAM,GACV,UAAA,gBAAAD;AAAA,sBAACG;AAAA,sBAAA;AAAA,wBACC,SAAQ;AAAA,wBACR,IAAI,EAAE,IAAI,GAAG,cAAc,KAAK,QAAQ,QAAQ,IAAI,EAAA;AAAA,wBAEpD,UAAA;AAAA,0BAAA,gBAAAH;AAAA,4BAACI;AAAA,4BAAA;AAAA,8BACC,IAAI;AAAA,gCACF,SAAS;AAAA,gCACT,gBAAgB;AAAA,gCAChB,YAAY;AAAA,gCACZ,UAAU;AAAA,gCACV,KAAK;AAAA,gCACL,IAAI;AAAA,8BAAA;AAAA,8BAIN,UAAA;AAAA,gCAAA,gBAAAJ;AAAA,kCAACI;AAAA,kCAAA;AAAA,oCACC,IAAI;AAAA,sCACF,SAAS;AAAA,sCACT,KAAK;AAAA,sCACL,GAAG;AAAA,sCACH,iBAAiB;AAAA,sCACjB,cAAc;AAAA,sCACd,QAAQ;AAAA,sCACR,aAAa;AAAA,sCACb,IAAI;AAAA,oCAAA;AAAA,oCAGL,UAAA;AAAA,sCAAA,CAACzI,KACA,gBAAAuI;AAAA,wCAACS;AAAA,wCAAA;AAAA,0CACC,MAAK;AAAA,0CACL,SAAS,MAAM;AACb,4CAAA9G,GAAe,CAAC,GAChBN,EAAgB,EAAE;AAAA,0CACpB;AAAA,0CACA,IAAI;AAAA,4CACF,IAAI;AAAA,4CACJ,IAAI;AAAA,4CACJ,cAAc;AAAA,4CACd,eAAe;AAAA,4CACf,UAAU;AAAA,4CACV,YAAYK,MAAgB,IAAI,MAAM;AAAA,4CACtC,OACEA,MAAgB,IACZ,iBACA;AAAA,4CACN,iBACEA,MAAgB,IACZ,qBACA;AAAA,4CACN,WACEA,MAAgB,IACZ,iCACA;AAAA,4CACN,QAAQ;AAAA,4CACR,aACEA,MAAgB,IAAI,YAAY;AAAA,4CAClC,WAAW;AAAA,8CACT,iBACEA,MAAgB,IACZ,qBACA;AAAA,4CAAA;AAAA,0CACR;AAAA,0CAEH,UAAA;AAAA,wCAAA;AAAA,sCAAA;AAAA,sCAIFnC,MAAsB,UACrB,gBAAAyI;AAAA,wCAACS;AAAA,wCAAA;AAAA,0CACC,MAAK;AAAA,0CACL,SAAS,MAAM;AACb,4CAAA9G,GAAe,CAAC,GAChBN,EAAgB,EAAE;AAAA,0CACpB;AAAA,0CACA,IAAI;AAAA,4CACF,IAAI;AAAA,4CACJ,IAAI;AAAA,4CACJ,cAAc;AAAA,4CACd,eAAe;AAAA,4CACf,UAAU;AAAA,4CACV,YAAYK,MAAgB,IAAI,MAAM;AAAA,4CACtC,OACEA,MAAgB,IACZ,iBACA;AAAA,4CACN,iBACEA,MAAgB,IACZ,qBACA;AAAA,4CACN,WACEA,MAAgB,IACZ,iCACA;AAAA,4CACN,QAAQ;AAAA,4CACR,aACEA,MAAgB,IAAI,YAAY;AAAA,4CAClC,WAAW;AAAA,8CACT,iBACEA,MAAgB,IACZ,qBACA;AAAA,4CAAA;AAAA,0CACR;AAAA,0CAGD,UAACjC,IAAmC,YAAf;AAAA,wCAAe;AAAA,sCAAA;AAAA,oCACvC;AAAA,kCAAA;AAAA,gCAAA;AAAA,gCAGHiC,MAAgB,KACfJ,EAAmB,SAAS,KAC5B5B,KACE,gBAAAsI,EAACE,GAAA,EAAI,IAAI,EAAE,UAAU,KAAK,YAAY,KACpC,UAAA,gBAAAF;AAAA,kCAACuB;AAAA,kCAAA;AAAA,oCACC,MAAK;AAAA,oCACL,SAASjI,EAAmB,IAAI,CAACqD,MAAQA,EAAI,IAAI;AAAA,oCACjD,OAAOpB,EAAS,UAAU,YAAY,KAAK;AAAA,oCAC3C,UAAU,CAAClE,KAAc,CAACI;AAAA,oCAC1B,UAAU,CAAC+J,GAAGC,MAAa;AACzB,4CAAMY,IAAc/I,EAAmB;AAAA,wCACrC,CAACqD,OAAS;AAAA,0CACR,GAAGA;AAAA,0CACH,cAAcA,EAAI,SAAS8E;AAAA,wCAAA;AAAA,sCAC7B;AAEF,sCAAAlI,EAAsB8I,CAAW,GACjC9G,EAAS,SAAS,mBAAmB8G,GAAa;AAAA,wCAChD,aAAa;AAAA,sCAAA,CACd,GACD9G,EAAS,SAAS,cAAckG,CAAQ;AAAA,oCAC1C;AAAA,oCACA,aAAa,CAACC,MACZ,gBAAA1B;AAAA,sCAAC2B;AAAA,sCAAA;AAAA,wCACE,GAAGD;AAAA,wCACJ,OAAM;AAAA,wCACN,aAAY;AAAA,sCAAA;AAAA,oCAAA;AAAA,oCAGhB,cAAc,CAACY,GAAOC,wBACnB,MAAA,EAAI,GAAGD,GACN,UAAA,gBAAAtC,EAACQ,GAAA,EAAQ,OAAO+B,GAAQ,WAAU,QAAO,OAAK,IAC5C,UAAA,gBAAAvC,EAAC,UAAK,WAAU,0BACb,UAAAuC,EAAA,CACH,EAAA,CACF,EAAA,CACF;AAAA,kCAAA;AAAA,gCAAA,GAGN;AAAA,iCAGF9K,KAAqBJ,MACrB,gBAAA2I;AAAA,kCAACS;AAAA,kCAAA;AAAA,oCACC,IAAG;AAAA,oCACH,MAAK;AAAA,oCACL,SAAQ;AAAA,oCACR,IAAI;AAAA,sCACF,cAAc;AAAA,sCACd,YAAY;AAAA,sCACZ,eAAe;AAAA,sCACf,WAAW;AAAA,sCACX,IAAI;AAAA,sCACJ,IAAI;AAAA,oCAAA;AAAA,oCAEN,UAAU,CAAC,CAAClF,EAAS,UAAU,OAAO;AAAA,oCACtC,SAAS,OAAO,MAAM;AACpB,4CAAMiH,IAAS,EAAE;AAEjB,sCADgB,MAAMjH,EAAS,QAAQ,WAAW,MAElDtB,GAAmB,IAAI,GACvBF,GAAYyI,CAAM;AAAA,oCACpB;AAAA,oCACA,WAAW,gBAAAxC,EAACU,GAAA,EAAiB,UAAU,SAAA,CAAU;AAAA,oCAClD,UAAA;AAAA,kCAAA;AAAA,gCAAA;AAAA,iCAIDjJ,KAAqBJ,MACrB,gBAAA2I;AAAA,kCAACyC;AAAA,kCAAA;AAAA,oCACC,IAAA/H;AAAA,oCACA,MAAMD;AAAA,oCACN,UAAAX;AAAA,oCACA,SAAS,YAAY;AACnB,sCAAAC,GAAY,IAAI,GAChBwB,EAAS,SAAS,iBAAiB,EAAE,GACrCA,EAAS,SAAS,iBAAiB,IAAI,GACvCA,EAAS,SAAS,gBAAgB,EAAK,GACvCA,EAAS,YAAY;AAAA,wCACnB;AAAA,wCACA;AAAA,sCAAA,CACD,GACDtB,GAAmB,IAAI;AAAA,oCACzB;AAAA,oCACA,cAAc;AAAA,sCACZ,UAAU;AAAA,sCACV,YAAY;AAAA,oCAAA;AAAA,oCAGd,UAAA,gBAAA6F;AAAA,sCAACC;AAAA,sCAAA;AAAA,wCACC,WAAS;AAAA,wCACT,SAAS;AAAA,wCACT,IAAI;AAAA,0CACF,GAAG;AAAA,0CACH,OAAO;AAAA,0CACP,SAAS2C,KAAAnH,EACN,UAAU,iBAAiB,MADrB,QAAAmH,GAEL,KAAK,CAAC/F,MAAQA,EAAI,gBAElB,UADA;AAAA,wCACA;AAAA,wCAGN,UAAA;AAAA,0CAAA,gBAAAqD,EAACD,GAAA,EAAK,MAAM,IAAI,WAAU,SACxB,UAAA,gBAAAC,EAACgB,IAAA,EAAY,WAAS,IACpB,UAAA,gBAAAhB;AAAA,4CAACa;AAAA,4CAAA;AAAA,8CACC,MAAK;AAAA,8CACL,IAAG;AAAA,8CACH,SAAStF,EAAS;AAAA,8CAClB,QAAQ,CAAC;AAAA,gDACP,OAAO,EAAE,UAAA+F,GAAU,OAAAzF,GAAO,GAAGiF,EAAA;AAAA,gDAC7B,YAAY,EAAE,OAAA7D,EAAA;AAAA,8CAAM,MAEpB,gBAAA+C;AAAA,gDAAC2B;AAAA,gDAAA;AAAA,kDACE,GAAGb;AAAA,kDACJ,QAAOjF,KAAA,gBAAAA,EAAO,WAAU;AAAA,kDACxB,SAAQ;AAAA,kDACR,WAAS;AAAA,kDACT,MAAK;AAAA,kDACL,OAAO,CAAC,CAACoB;AAAA,kDACT,YAAYA,KAAA,gBAAAA,EAAO;AAAA,kDACnB,OAAM;AAAA,kDACN,IAAI;AAAA,oDACF,yBAAyB;AAAA,sDACvB,UAAU;AAAA,oDAAA;AAAA,oDAEZ,QAAQ;AAAA,kDAAA;AAAA,kDAEV,UAAU,CAAC8E,MAAM;AACf,oDAAAT,EAASS,EAAE,OAAO,KAAK,GACvBvC,GAA2BuC,EAAE,OAAO,KAAK;AAAA,kDAC3C;AAAA,gDAAA;AAAA,8CAAA;AAAA,4CACF;AAAA,0CAAA,GAGN,EAAA,CACF;AAAA,0CACA,gBAAA/B,EAACD,KAAK,MAAM,IAAI,WAAU,SACxB,UAAA,gBAAAC,EAACgB,IAAA,EAAY,WAAS,IACpB,UAAA,gBAAAhB;AAAA,4CAACa;AAAA,4CAAA;AAAA,8CACC,MAAK;AAAA,8CACL,IAAG;AAAA,8CACH,SAAStF,EAAS;AAAA,8CAClB,QAAQ,CAAC;AAAA,gDACP,OAAO,EAAE,UAAA+F,GAAU,OAAAzF,EAAA;AAAA,gDACnB,YAAY,EAAE,OAAAoB,EAAA;AAAA,8CAAM,MAEpB,gBAAA+C;AAAA,gDAACuB;AAAA,gDAAA;AAAA,kDACC,SAAS5G,MAAqB,CAAA;AAAA,kDAC9B,QAAOkB,KAAA,gBAAAA,EAAO,WAAU;AAAA,kDACxB,gBAAgB,CAAC0G,MAAWA;AAAA,kDAC5B,UAAU,CAACI,GAAOlB,MAAa;AAC7B,oDAAAH,EAASG,CAAQ;AAAA,kDACnB;AAAA,kDACA,aAAa,CAACC,MACZ,gBAAA1B;AAAA,oDAAC2B;AAAA,oDAAA;AAAA,sDACE,GAAGD;AAAA,sDACJ,MAAK;AAAA,sDACL,OAAO,CAAC,CAACzE;AAAA,sDACT,YAAYA,KAAA,gBAAAA,EAAO;AAAA,sDACnB,IAAI;AAAA,wDACF,yBAAyB;AAAA,0DACvB,UAAU;AAAA,wDAAA;AAAA,wDAEZ,GAAG;AAAA,sDAAA;AAAA,sDAEL,OAAM;AAAA,sDACN,UAAU,CAAC8E,MAAM;AACf,wDAAAT,EAASS,EAAE,OAAO,KAAK,GACvBxG,EAAS;AAAA,0DACP;AAAA,0DACAwG,EAAE,OAAO;AAAA,0DACT;AAAA,4DACE,aAAa;AAAA,0DAAA;AAAA,wDACf;AAAA,sDAEJ;AAAA,oDAAA;AAAA,kDAAA;AAAA,gDACF;AAAA,8CAAA;AAAA,4CAEJ;AAAA,0CAAA,GAGN,EAAA,CACF;AAAA,0CACC/H,MAAoB,QACnB,CAACuB,EACE,UAAU,iBAAiB,EAC3B,KAAK,CAACoB,MAAQA,EAAI,YAAY,KAC/B,gBAAAqD,EAACD,KAAK,MAAM,IAAI,WAAU,SACxB,UAAA,gBAAAC;AAAA,4CAACkB;AAAA,4CAAA;AAAA,8CACC,SACE,gBAAAlB;AAAA,gDAACa;AAAA,gDAAA;AAAA,kDACC,MAAK;AAAA,kDACL,SAAStF,EAAS;AAAA,kDAClB,QAAQ,CAAC;AAAA,oDACP,OAAO,EAAE,UAAA+F,GAAU,OAAAzF,EAAA;AAAA,kDAAM,MAEzB,gBAAAmE;AAAA,oDAAC4C;AAAA,oDAAA;AAAA,sDACC,SAAS/G,KAAS;AAAA,sDAClB,UAAU,CAACkG,MACTT,EAASS,EAAE,OAAO,OAAO;AAAA,sDAE3B,IAAI;AAAA,wDACF,QAAQ;AAAA,sDAAA;AAAA,oDACV;AAAA,kDAAA;AAAA,gDACF;AAAA,8CAAA;AAAA,8CAIN,OAAM;AAAA,4CAAA;AAAA,0CAAA,GAEV;AAAA,4DAEHhC,GAAA,EACC,UAAA,gBAAAC;AAAA,4CAACS;AAAA,4CAAA;AAAA,8CACC,MAAK;AAAA,8CACL,SAAQ;AAAA,8CACR,UACE,CAAC9E,MACD,CAACC,MACDD,GAAiB,WAAW,MAC5B,CAAChB,GAAkB;AAAA,gDACjBiB,GAAiB,KAAA;AAAA,8CAAK;AAAA,8CAG1B,SAAS,YAAY;AACnB,sDAAMiH,IACJtH,EAAS,UAAU,cAAc,GAC7BuH,IACJvH,EAAS,UAAU,eAAe,GAC9BwH,IACJxH,EAAS,UAAU,eAAe,GAE9ByH,IAAwBzH,EAC3B,UAAU,iBAAiB,EAC3B,KAAK,CAACoB,MAAQA,EAAI,YAAY;AAEjC,oDAAI0F,IAAc;AAAA,kDAChB,GAAG9G,EAAS,UAAU,iBAAiB;AAAA,gDAAA;AAGzC,oDAAIvB,MAAoB;AACtB,kDAAAqI,EAAYrI,CAAe,IAAI;AAAA,oDAC7B,GAAGqI,EAAYrI,CAAe;AAAA,oDAC9B,MAAM8I;AAAA,oDACN,MAAMC;AAAA,kDAAA;AAAA,qDAEH;AACL,sDACEV,EAAY;AAAA,oDACV,CAAC1F,MAAQA,EAAI,SAASmG;AAAA,kDAAA,GAExB;AACA,oDAAA9F,EAAU;AAAA,sDACR,SAAS;AAAA,sDACT,MAAM;AAAA,oDAAA,CACP;AACD;AAAA,kDACF;AAEA,wDAAMiG,IAAY;AAAA,oDAChB,MAAMH;AAAA,oDACN,MAAMC;AAAA,kDAAA;AAER,kDAAI,CAACC,KAAyBH,MAC5BtH,EAAS,SAAS,cAAcuH,CAAW,GAC3CG,EAAU,eAAe,KAG3BZ,EAAY,KAAKY,CAAS;AAAA,gDAC5B;AAEA,gDAAA1H,EAAS;AAAA,kDACP;AAAA,kDACA8G;AAAA,kDACA;AAAA,oDACE,aAAa;AAAA,kDAAA;AAAA,gDACf;AAGF,sDAAMa,IAAS,CAAC,GAAGb,CAAW,EAAE,KAAK,CAAC1D,GAAGC,MACnCD,EAAE,eAAqB,KACvBC,EAAE,eAAqB,IACpBD,EAAE,KAAK,cAAcC,EAAE,IAAI,CACnC;AAED,gDAAArF,EAAsB2J,CAAM,GAC5BzL,KACG,MAAM0H,GAAwBkD,CAAW,GAE5CpI,GAAmB,IAAI,GACvBF,GAAY,IAAI,GAChBL,MAAgB,KAAKC,GAAe,CAAC,GACrC4B,EAAS,SAAS,iBAAiB,GAAG,GACtCA,EAAS,SAAS,iBAAiB,GAAG,GACtCA,EAAS,SAAS,gBAAgB,IAAI;AAAA,8CACxC;AAAA,8CAEC,UAAAvB,MAAoB,OAAO,WAAW;AAAA,4CAAA;AAAA,0CAAA,EACzC,CACF;AAAA,wCAAA;AAAA,sCAAA;AAAA,oCAAA;AAAA,kCACF;AAAA,gCAAA;AAAA,8BACF;AAAA,4BAAA;AAAA,0BAAA;AAAA,0BAGJ,gBAAAgG;AAAA,4BAACmD;AAAA,4BAAA;AAAA,8BACC,IAAI;AAAA,gCACF,WAAWzH,MAAgB,SAAS,UAAU;AAAA,gCAC9C,QAAQ;AAAA,gCACR,aAAa;AAAA,gCACb,cAAc;AAAA,8BAAA;AAAA,8BAGhB,UAAA,gBAAAoE,EAACsD,IAAA,EAAM,cAAY,IACjB,UAAA;AAAA,gCAAA,gBAAApD,EAACqD,IAAA,EACC,4BAACC,IAAA,EACC,UAAA,gBAAAxD;AAAA,kCAACyD;AAAA,kCAAA;AAAA,oCACC,WAAU;AAAA,oCACV,IAAI,EAAE,iBAAiB,QAAA;AAAA,oCAEvB,UAAA;AAAA,sCAAA,gBAAAvD;AAAA,wCAAC2B;AAAA,wCAAA;AAAA,0CACC,MAAK;AAAA,0CACL,aAAY;AAAA,0CACZ,SAAQ;AAAA,0CACR,OAAOvI;AAAA,0CACP,UAAU,CAAC,MAAM;AACf,4CAAAC,EAAgB,EAAE,OAAO,KAAK;AAAA,0CAChC;AAAA,0CACA,WAAU;AAAA,0CACV,YAAY;AAAA,4CACV,gBACE,gBAAA2G,EAACoC,IAAA,EAAe,UAAS,SACvB,4BAACN,GAAA,EACC,UAAA,gBAAA9B;AAAA,8CAACU;AAAA,8CAAA;AAAA,gDACC,UAAU;AAAA,gDACV,WAAU;AAAA,8CAAA;AAAA,4CAAA,GAEd,EAAA,CACF;AAAA,0CAAA;AAAA,wCAEJ;AAAA,sCAAA;AAAA,sCAED,CAACd,MACA,gBAAAE;AAAA,wCAACK;AAAA,wCAAA;AAAA,0CACC,SAAQ;AAAA,0CACR,OAAM;AAAA,0CACN,WAAU;AAAA,0CAEV,UAAA;AAAA,4CAAA,gBAAAH,EAAC,UAAK,OAAO,EAAE,OAAO,MAAA,GAAS,UAAA,KAAC;AAAA,4CAAO;AAAA,0CAAA;AAAA,wCAAA;AAAA,sCAAA;AAAA,oCAEzC;AAAA,kCAAA;AAAA,gCAAA,GAGN,EAAA,CACF;AAAA,gCACCtG,MAAgB,KACf,gBAAAsG,EAACwD,IAAA,EACE,UAAAlK,EAAmB,SAClBA,EAAmB,IAAI,CAACqD,GAAK8G,MAC3B,gBAAAzD;AAAA,kCAACsD;AAAA,kCAAA;AAAA,oCAEC,WAAW,YAAYG,MAAUnK,EAAmB,SAAS,IAAI,gBAAgB,eAAe;AAAA,oCAChG,IAAI;AAAA,sCACF,iBAAiBqD,EAAI,eACjB,YACAA,EAAI,gBACF,yBACA;AAAA,sCACN,WAAW;AAAA,wCACT,iBAAiBA,EAAI,eACjB,YACAA,EAAI,gBACF,YACA;AAAA,sCAAA;AAAA,oCACR;AAAA,oCAGF,UAAA,gBAAAmD,EAACyD,IAAA,EAAU,WAAU,iCACnB,UAAA;AAAA,sCAAA,gBAAAvD;AAAA,wCAACQ;AAAA,wCAAA;AAAA,0CACC,OACE7D,EAAI,eACA,2CACAA,EAAI,gBACF,iBACA;AAAA,0CAER,WAAU;AAAA,0CACV,OAAK;AAAA,0CACL,sBACE,EAAEA,EAAI,gBAAgBA,EAAI;AAAA,0CAG5B,UAAA,gBAAAmD;AAAA,4CAACK;AAAA,4CAAA;AAAA,8CACC,SAAQ;AAAA,8CACR,WAAU;AAAA,8CAET,UAAA;AAAA,gDAAAxD,EAAI;AAAA,gDAAK;AAAA,gDAAGA,EAAI;AAAA,gDAAK;AAAA,8CAAA;AAAA,4CAAA;AAAA,0CAAA;AAAA,wCACxB;AAAA,sCAAA;AAAA,sCAEF,gBAAAmD,EAACI,GAAA,EAAI,SAAQ,QAAO,YAAW,UAC5B,UAAA;AAAA,wCAAAvD,EAAI,gBACH,gBAAAqD;AAAA,0CAAC8B;AAAA,0CAAA;AAAA,4CACC,IAAI;AAAA,8CACF,QAAQ;AAAA,8CACR,aAAa;AAAA,8CACb,cAAc;AAAA,4CAAA;AAAA,4CAGhB,UAAA,gBAAA9B;AAAA,8CAACU;AAAA,8CAAA;AAAA,gDACC,UAAU;AAAA,gDACV,WAAU;AAAA,8CAAA;AAAA,4CAAA;AAAA,0CACZ;AAAA,wCAAA;AAAA,yCAIFjJ,KAAqBJ,MACrB,gBAAAyI,EAAAO,GAAA,EACE,UAAA;AAAA,0CAAA,gBAAAP;AAAA,4CAACU;AAAA,4CAAA;AAAA,8CACC,OACE,CAAC/I,KACDkF,EAAI,gBACJ,CAACjF,IACG,4CACA;AAAA,8CAEN,OAAK;AAAA,8CACL,WAAU;AAAA,8CAET,UAAA;AAAA,gDAAA;AAAA,kEACA,QAAA,EACC,UAAA,gBAAAsI;AAAA,kDAAC8B;AAAA,kDAAA;AAAA,oDACC,IAAI;AAAA,sDACF,QAAQ;AAAA,sDACR,aAAa;AAAA,oDAAA;AAAA,oDAEf,UACE,CAACrK,KACDkF,EAAI,gBACJ,CAACjF;AAAA,oDAEH,SAAS,YAAY;AACnB,4DAAMgM,IACJnI,EAAS;AAAA,wDACP;AAAA,sDAAA;AAEJ,sDAAAlC,EAAgB,EAAE;AAClB,4DAAMgJ,IACJqB,EAAW;AAAA,wDACT,CAAC,MAAM,EAAE,SAAS/G,EAAI;AAAA,sDAAA;AAG1B,sDAAApB,EAAS;AAAA,wDACP;AAAA,wDACA8G;AAAA,wDACA,EAAE,aAAa,GAAA;AAAA,sDAAK;AAGtB,4DAAMsB,IAAYvK,GACf,KAAA,EACA,YAAA,GACGwK,IAAcD,IAChBtB,EAAY;AAAA,wDAAO,CAAC,MAClB,EAAE,KACC,YAAA,EACA,SAASsB,CAAS;AAAA,sDAAA,IAEvBtB;AAEJ,sDAAA9I;AAAA,wDACEqK;AAAA,sDAAA,GAGFnK;AAAA,wDAAgB,CAACyD,MACfA,EAAK,IAAI,CAAC2C,MACJA,EAAE,SAASlD,EAAI,OACV;AAAA,0DACL,GAAGkD;AAAA,0DACH,UAAU;AAAA,wDAAA,IAGPA,CACR;AAAA,sDAAA,GAGClD,EAAI,gBACNpB,EAAS;AAAA,wDACP;AAAA,wDACA;AAAA,sDAAA,GAIA9D,KACF,MAAM0H;AAAA,wDACJkD;AAAA,sDAAA;AAAA,oDAGN;AAAA,oDAEA,UAAA,gBAAArC;AAAA,sDAACU;AAAA,sDAAA;AAAA,wDACC,UAAU;AAAA,wDACV,WAAU;AAAA,sDAAA;AAAA,oDAAA;AAAA,kDACZ;AAAA,gDAAA,EACF,CACF;AAAA,8CAAA;AAAA,4CAAA;AAAA,0CAAA;AAAA,0CAEDjJ,KACC,gBAAAuI;AAAA,4CAAC8B;AAAA,4CAAA;AAAA,8CACC,IAAI;AAAA,gDACF,QAAQ;AAAA,gDACR,aAAa;AAAA,gDACb,OAAO;AAAA,8CAAA;AAAA,8CAET,SAAS,MAAM;AAKb,sDAAM+B,IAHJtI,EAAS;AAAA,kDACP;AAAA,gDAAA,EAGc;AAAA,kDACd,CAACsE,MAAMA,EAAE,SAASlD,EAAI;AAAA,gDAAA;AAE1B,gDAAA1C,GAAmB4J,CAAW,GAC9BtI,EAAS;AAAA,kDACP;AAAA,kDACAoB,EAAI;AAAA,gDAAA,GAENpB,EAAS;AAAA,kDACP;AAAA,kDACAoB,EAAI;AAAA,gDAAA,GAEN5C;AAAA,kDACE,SAAS;AAAA,oDACP;AAAA,kDAAA,KACG;AAAA,gDAAA;AAAA,8CAET;AAAA,8CAEA,UAAA,gBAAAiG;AAAA,gDAACU;AAAA,gDAAA;AAAA,kDACC,UAAU;AAAA,kDACV,WAAU;AAAA,gDAAA;AAAA,8CAAA;AAAA,4CACZ;AAAA,0CAAA;AAAA,wCACF,EAAA,CAEJ;AAAA,sCAAA,EAAA,CAEJ;AAAA,oCAAA,EAAA,CACF;AAAA,kCAAA;AAAA,kCA1LK+C,IAAQ;AAAA,gCAAA,CA4LhB,IAED,gBAAAzD,EAACsD,IAAA,EACC,UAAA,gBAAAtD,EAACuD,IAAA,EAAU,SAAS,GAAG,WAAU,OAC/B,UAAA,gBAAAzD,EAACK,GAAA,EAAW,SAAQ,SACjB,UAAA;AAAA,kCAAA;AAAA,kCACA5E,EAAS,UAAU,iBAAiB,EAClC,WAAW,IACV,qCACAjC,EAAmB,WAAW,IAC5B,iCACA;AAAA,gCAAA,GACR,EAAA,CACF,GACF,GAEJ;AAAA,gCAEDI,MAAgB,KACf,gBAAAsG,EAACwD,IAAA,EACE,UAAAhK,EAAa,SACZA,EAAa,IAAI,CAACmD,GAAK8G,MAAU;AAC/B,wCAAMZ,IACJlG,EAAI,SAASxF,EAAU,YACnB2M,IAAWnH,EAAI,YAAY,IAE3BoH,IACJ,gBAAA/D;AAAA,oCAACgE;AAAA,oCAAA;AAAA,sCACC,MACE,gBAAAhE;AAAA,wCAACE;AAAA,wCAAA;AAAA,0CACC,IAAI;AAAA,4CACF,iBAAiB;AAAA,4CACjB,cAAc;AAAA,4CACd,OAAO;AAAA,4CACP,QAAQ;AAAA,4CACR,SAAS;AAAA,4CACT,YAAY;AAAA,4CACZ,gBAAgB;AAAA,0CAAA;AAAA,0CAGlB,UAAA,gBAAAF;AAAA,4CAACU;AAAA,4CAAA;AAAA,8CACC,UAAU;AAAA,8CACV,MAAK;AAAA,8CACL,WAAU;AAAA,4CAAA;AAAA,0CAAA;AAAA,wCACZ;AAAA,sCAAA;AAAA,sCAGJ,aACE,gBAAAV;AAAA,wCAACE;AAAA,wCAAA;AAAA,0CACC,IAAI;AAAA,4CACF,iBAAiB;AAAA,4CACjB,cAAc;AAAA,4CACd,OAAO;AAAA,4CACP,QAAQ;AAAA,4CACR,SAAS;AAAA,4CACT,YAAY;AAAA,4CACZ,gBAAgB;AAAA,0CAAA;AAAA,0CAGlB,UAAA,gBAAAF;AAAA,4CAACU;AAAA,4CAAA;AAAA,8CACC,UAAU;AAAA,8CACV,WAAU;AAAA,4CAAA;AAAA,0CAAA;AAAA,wCACZ;AAAA,sCAAA;AAAA,sCAGJ,SAASoD;AAAA,sCACT,UAAU,CAACzM;AAAA,sCACX,UAAU,CAAC0K,MAAM;AACf,8CAAMkC,IAAYlC,EAAE,OAAO;AAC3B,4CACE,CAACkC,KACD5M,KACA,CAACK,KACD,CAACD,KACDkF,EAAI,SAASxF,EAAU;AAEvB;AAEF,8CAAM+M,IAAU,CAAC,GAAG1K,CAAY,GAC1B2K,IAAa;AAAA,0CACjB,GAAGD,EAAQT,CAAK;AAAA,0CAChB,UAAU1B,EAAE,OAAO;AAAA,wCAAA;AAErB,wCAAAmC,EAAQT,CAAK,IAAIU,GACjB1K,EAAgByK,CAAO;AAEvB,8CAAME,IAAO,CAAC,GAAG9K,CAAkB;AACnC,4CAAI2K,GAAW;AACb,gDAAMI,IACJ/K,EAAmB;AAAA,4CACjB,CAACuG,MAAMA,EAAE;AAAA,0CAAA;AAEb,0CACElD,EAAI,SAASxF,EAAU,cACvB,CAACkN,KAEDD,EAAK,KAAK;AAAA,4CACR,GAAGD;AAAA,4CACH,cAAc;AAAA,0CAAA,CACf,GACD5I,EAAS,SAAS,cAAcoB,EAAI,IAAI,KAExCyH,EAAK,KAAKD,CAAU;AAAA,wCAExB,OAAO;AACL,gDAAMG,IAAWF,EAAK;AAAA,4CACpB,CAACvE,MAAMA,EAAE,SAASqE,EAAQT,CAAK,EAAE;AAAA,0CAAA;AAEnC,8CAAIa,IAAW,IAAI;AACjB,kDAAMC,IACJH,EAAKE,CAAQ,EAAE;AACjB,4CAAAF,EAAK,OAAOE,GAAU,CAAC,GACnBC,KACFhJ,EAAS,SAAS,cAAc,EAAE;AAAA,0CAEtC;AAAA,wCACF;AACA,wCAAAhC,EAAsB6K,CAAI,GAC1B7I,EAAS,SAAS,mBAAmB6I,GAAM;AAAA,0CACzC,aAAa;AAAA,wCAAA,CACd;AAAA,sCACH;AAAA,oCAAA;AAAA,kCAAA,GAIEI,IACJ,gBAAAxE;AAAA,oCAAC8B;AAAA,oCAAA;AAAA,sCACC,IAAI;AAAA,wCACF,QAAQ;AAAA,wCACR,aAAczK,IAAiB,IAAJ;AAAA,wCAC3B,cAAeA,IAAiB,IAAJ;AAAA,sCAAI;AAAA,sCAGlC,UAAA,gBAAA2I;AAAA,wCAACU;AAAA,wCAAA;AAAA,0CACC,UAAU;AAAA,0CACV,WAAU;AAAA,wCAAA;AAAA,sCAAA;AAAA,oCACZ;AAAA,kCAAA;AAIJ,yCACE,gBAAAV;AAAA,oCAACsD;AAAA,oCAAA;AAAA,sCAEC,WAAW,YAAYG,MAAUjK,EAAa,SAAS,IAAI,gBAAgB,eAAe;AAAA,sCAC1F,IAAI;AAAA,wCACF,WAAW,EAAE,iBAAiB,UAAA;AAAA,sCAAU;AAAA,sCAG1C,UAAA,gBAAAsG;AAAA,wCAACyD;AAAA,wCAAA;AAAA,0CACC,IAAI;AAAA,4CACF,GAAG;AAAA,4CACH,IAAI;AAAA,4CACJ,SAAS;AAAA,4CACT,gBAAgB;AAAA,4CAChB,YAAY;AAAA,0CAAA;AAAA,0CAGd,UAAA;AAAA,4CAAA,gBAAAzD;AAAA,8CAACK;AAAA,8CAAA;AAAA,gDACC,SAAQ;AAAA,gDACR,WAAU;AAAA,gDAET,UAAA;AAAA,kDAAAxD,EAAI;AAAA,kDAAK;AAAA,kDAAGA,EAAI;AAAA,kDAAK;AAAA,gDAAA;AAAA,8CAAA;AAAA,4CAAA;AAAA,4CAGvBtF,IACCwL,IACEpL,IACE+M,IAEA,gBAAA1E;AAAA,8CAACI;AAAA,8CAAA;AAAA,gDACC,IAAI;AAAA,kDACF,SAAS;AAAA,kDACT,YAAY;AAAA,gDAAA;AAAA,gDAGb,UAAA;AAAA,kDAAAsE;AAAA,kDACD,gBAAAxE;AAAA,oDAACQ;AAAA,oDAAA;AAAA,sDACC,OACEnJ,KACA,CAACK,KACDiF,EAAI,SAASxF,EAAU,aACnB,iDACA;AAAA,sDAEN,OAAK;AAAA,sDACL,WAAU;AAAA,sDAEV,UAAA,gBAAA6I,EAAC,UAAM,UAAA+D,EAAA,CAAa;AAAA,oDAAA;AAAA,kDAAA;AAAA,gDACtB;AAAA,8CAAA;AAAA,4CAAA,IAIJA,IAEAD,IACF,gBAAA9D;AAAA,8CAACE;AAAA,8CAAA;AAAA,gDACC,IAAI;AAAA,kDACF,iBAAiB;AAAA,kDACjB,cAAc;AAAA,kDACd,OAAO;AAAA,kDACP,QAAQ;AAAA,kDACR,SAAS;AAAA,kDACT,YAAY;AAAA,kDACZ,gBAAgB;AAAA,kDAChB,QAAQ;AAAA,gDAAA;AAAA,gDAGV,UAAA,gBAAAF;AAAA,kDAACU;AAAA,kDAAA;AAAA,oDACC,UAAU;AAAA,oDACV,WAAU;AAAA,kDAAA;AAAA,gDAAA;AAAA,8CACZ;AAAA,4CAAA,IAEAmC,IACF2B,IAEA,gBAAAxE;AAAA,8CAACE;AAAA,8CAAA;AAAA,gDACC,IAAI;AAAA,kDACF,iBAAiB;AAAA,kDACjB,cAAc;AAAA,kDACd,OAAO;AAAA,kDACP,QAAQ;AAAA,kDACR,SAAS;AAAA,kDACT,YAAY;AAAA,kDACZ,gBAAgB;AAAA,kDAChB,QAAQ;AAAA,gDAAA;AAAA,gDAGV,UAAA,gBAAAF;AAAA,kDAACU;AAAA,kDAAA;AAAA,oDACC,UAAU;AAAA,oDACV,WAAU;AAAA,kDAAA;AAAA,gDAAA;AAAA,8CACZ;AAAA,4CAAA;AAAA,0CACF;AAAA,wCAAA;AAAA,sCAAA;AAAA,oCAEJ;AAAA,oCA3FK+C,IAAQ;AAAA,kCAAA;AAAA,gCA8FnB,CAAC,IAED,gBAAAzD,EAACsD,IAAA,EACC,UAAA,gBAAAtD,EAACuD,MAAU,SAAS,GAAG,WAAU,OAC/B,4BAACpD,GAAA,EAAW,SAAQ,SAAQ,UAAA,+BAAA,CAE5B,GACF,GACF,EAAA,CAEJ;AAAA,8BAAA,EAAA,CAEJ;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBACF;AAAA,sBAAA;AAAA,oBAAA,EACF,CACF;AAAA,kBAAA,EAAA,CACF;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,QAGDrH,MACC,gBAAAkH,EAACyE,IAAA,EAAM,MAAM3L,IAAW,SAASqE,IAC/B,UAAA,gBAAA2C,EAACI,GAAA,EAAI,IAAI,EAAE,GAAGwE,MACZ,UAAA;AAAA,UAAA,gBAAA5E;AAAA,YAACI;AAAA,YAAA;AAAA,cACC,IAAI;AAAA,gBACF,SAAS;AAAA,gBACT,gBAAgB;AAAA,gBAChB,YAAY;AAAA,gBACZ,IAAI;AAAA,cAAA;AAAA,cAGN,UAAA;AAAA,gBAAA,gBAAAF,EAACG,GAAA,EAAW,SAAQ,MAAK,UAAA,8BAA0B;AAAA,gBACnD,gBAAAL,EAACK,GAAA,EAAW,SAAQ,SAAQ,UAAA;AAAA,kBAAA;AAAA,oCAClB,UAAA,EAAO,UAAA;AAAA,oBAAA;AAAA,qBAAEjG,KAAA,gBAAAA,EAAmB,gBAAe;AAAA,kBAAA,GAAE;AAAA,kBAAU;AAAA,kBAC/D,gBAAA8F;AAAA,oBAACU;AAAA,oBAAA;AAAA,sBACC,UAAS;AAAA,sBACT,MAAK;AAAA,sBACL,WAAU;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBACT;AAAA,kBAAI;AAAA,oCACD,UAAA,EAAO,UAAA;AAAA,oBAAA;AAAA,qBAAExG,KAAA,gBAAAA,EAAmB,cAAa;AAAA,kBAAA,EAAA,CAAE;AAAA,gBAAA,EAAA,CACnD;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAEF,gBAAA8F;AAAA,YAACe;AAAA,YAAA;AAAA,cACC,QAAO;AAAA,cACP,iBAAgB;AAAA,cAChB,OAAM;AAAA,cACN,SAAS;AAAA,gBACP,UAAU;AAAA,gBACV,SAAS,EAAE,SAAS,GAAA;AAAA,gBACpB,iBAAiB;AAAA,gBACjB,sBAAsB;AAAA,gBACtB,UAAU;AAAA,gBACV,sBAAsB;AAAA,gBACtB,oBAAoB;AAAA,cAAA;AAAA,cAEtB,OAAO/H,KAAmB;AAAA,cAC1B,cAAcA,KAAmB;AAAA,cACjC,UAAUoG;AAAA,cACV,aAAa,EAAE,iBAAiB,GAAA;AAAA,YAAK;AAAA,UAAA;AAAA,UAEvC,gBAAAY;AAAA,YAACS;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,OAAM;AAAA,cACN,WAAU;AAAA,cACV,SAAS,MAAMnE,GAAS,MAAM,EAAI;AAAA,cACnC,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAED,EAAA,CACF,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;AAEA,MAAMoI,KAAa;AAAA,EACjB,UAAU;AAAA,EACV,KAAK;AAAA,EACL,MAAM;AAAA,EACN,WAAW;AAAA,EACX,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AAAA,EACT,cAAc;AAChB;AAEAxN,GAAa,YAAY;AAAA,EACvB,WAAWyN,EAAU;AAAA,EACrB,OAAOA,EAAU;AAAA,EACjB,YAAYA,EAAU;AAAA,EACtB,gBAAgBA,EAAU;AAAA,EAC1B,mBAAmBA,EAAU;AAAA,EAC7B,kBAAkBA,EAAU;AAAA,EAC5B,mBAAmBA,EAAU;AAAA,EAC7B,iBAAiBA,EAAU;AAAA,EAC3B,uBAAuBA,EAAU;AAAA,EACjC,iBAAiBA,EAAU;AAAA,EAC3B,oBAAoBA,EAAU;AAAA,EAC9B,uBAAuBA,EAAU;AACnC;"}