mario-core 2.0.2 → 2.0.3-release

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 (318) hide show
  1. package/dist/Dashboard-C8i4BvyG.js +1 -0
  2. package/dist/Dashboard-CZW-qGyN.mjs +206 -0
  3. package/dist/EmailTemplateDetail-CITCgbC8.mjs +417 -0
  4. package/dist/EmailTemplateDetail-mdYeUDJg.js +1 -0
  5. package/dist/EmailTemplateList-BV-QOv5K.mjs +168 -0
  6. package/dist/EmailTemplateList-Dgf0hucr.js +1 -0
  7. package/dist/GalleryList-BYwvWx1S.js +1 -0
  8. package/dist/GalleryList-JJbcEbTi.mjs +329 -0
  9. package/dist/Login-BWsVc8Np.mjs +1384 -0
  10. package/dist/Login-SxZya_gO.js +1 -0
  11. package/dist/NotificationList-BDtxAveg.js +2 -0
  12. package/dist/NotificationList-BFTZrMUI.mjs +3878 -0
  13. package/dist/SchoolList-CClJ_UPT.js +1 -0
  14. package/dist/SchoolList-JmrmL2zE.mjs +5 -0
  15. package/dist/SkillList-B8uw4QZF.mjs +386 -0
  16. package/dist/SkillList-D_tQAQqL.js +1 -0
  17. package/dist/TeacherSelector-BKSay316.mjs +30 -0
  18. package/dist/TeacherSelector-DXv_vBJI.js +1 -0
  19. package/dist/TheContent-CDVWxnOm.js +1 -0
  20. package/dist/TheContent-mTUR10lr.mjs +28 -0
  21. package/dist/UserContainer-CilrSMeD.mjs +2771 -0
  22. package/dist/UserContainer-DuoEITq2.js +5 -0
  23. package/dist/UserDetail-GaRReB9G.mjs +902 -0
  24. package/dist/UserDetail-qXX-264Q.js +1 -0
  25. package/dist/UserList-7gE8aU_I.js +5 -0
  26. package/dist/UserList-B7sk8bc6.mjs +1162 -0
  27. package/dist/assets/Images.d.ts +14 -14
  28. package/dist/components/Alerts/CommonAlert.d.ts +3 -3
  29. package/dist/components/Alerts/EmptyDataAlert.d.ts +8 -8
  30. package/dist/components/Alerts/ErrorHandler.d.ts +6 -6
  31. package/dist/components/Alerts/SandboxAlert.d.ts +3 -0
  32. package/dist/components/Buttons/AddButton.d.ts +7 -7
  33. package/dist/components/Buttons/AddButtonIcon.d.ts +6 -6
  34. package/dist/components/Buttons/CloseButton.d.ts +8 -8
  35. package/dist/components/Buttons/DeleteButtonIcon.d.ts +7 -6
  36. package/dist/components/Buttons/DetailActionButtons.d.ts +8 -8
  37. package/dist/components/Buttons/EditButtonIcon.d.ts +7 -6
  38. package/dist/components/Buttons/LinkEditButton.d.ts +7 -7
  39. package/dist/components/Buttons/LoginNavButton.d.ts +8 -8
  40. package/dist/components/Buttons/SyncButton.d.ts +8 -0
  41. package/dist/components/Buttons/ToggleButton.d.ts +10 -10
  42. package/dist/components/Buttons/UploadFileButton.d.ts +13 -13
  43. package/dist/components/Headers/CommonHeader.d.ts +7 -7
  44. package/dist/components/Image/UploadImage.d.ts +2 -3
  45. package/dist/components/Inputs/FileInput.d.ts +8 -8
  46. package/dist/components/Inputs/PasswordInput.d.ts +9 -8
  47. package/dist/components/Inputs/SearchBox.d.ts +10 -10
  48. package/dist/components/Inputs/SearchBoxContainer.d.ts +9 -10
  49. package/dist/components/Labels/RequiredLabel.d.ts +6 -6
  50. package/dist/components/Loading/Loading.d.ts +3 -3
  51. package/dist/components/Modals/CommonModal.d.ts +2 -3
  52. package/dist/components/Modals/NotificationLogoutModal.d.ts +2 -0
  53. package/dist/components/Modals/NotificationModal.d.ts +2 -3
  54. package/dist/components/Others/QuitPrompt.d.ts +5 -2
  55. package/dist/components/Pagination/CustomPagination.d.ts +2 -3
  56. package/dist/components/Scroll/ScrollToTop.d.ts +3 -0
  57. package/dist/components/Selectors/AcademicClassSelector.d.ts +2 -3
  58. package/dist/components/Selectors/CategorySelector.d.ts +2 -0
  59. package/dist/components/Selectors/CreatableSelector.d.ts +2 -3
  60. package/dist/components/Selectors/CustomSelector.d.ts +2 -3
  61. package/dist/components/Selectors/MailCategorySelectors.d.ts +2 -3
  62. package/dist/components/Selectors/QuestionCategorySelector.d.ts +2 -3
  63. package/dist/components/Selectors/QuestionTypeSelector.d.ts +2 -3
  64. package/dist/components/Selectors/StarRatingSelector.d.ts +2 -3
  65. package/dist/components/Selectors/SuggestionCategorySelector.d.ts +2 -3
  66. package/dist/components/Selectors/constants/constant.d.ts +10 -0
  67. package/dist/components/Selectors/hooks/useCategorySelector.d.ts +5 -0
  68. package/dist/components/Tabs/CustomTab.d.ts +2 -3
  69. package/dist/components/Tabs/TabsWithComponent.d.ts +10 -0
  70. package/dist/configs/editorConfig.d.ts +7 -7
  71. package/dist/constants-CGewtxeZ.mjs +320 -0
  72. package/dist/constants-CNvNsffe.js +1 -0
  73. package/dist/containers/Commons/NotFound.d.ts +3 -3
  74. package/dist/containers/DistrictSchools/views/SchoolList.d.ts +3 -3
  75. package/dist/containers/EmailTemplate/components/AttachmentFile.d.ts +7 -7
  76. package/dist/containers/EmailTemplate/components/MailParam.d.ts +7 -7
  77. package/dist/containers/EmailTemplate/configs/emailTemplateSchema.d.ts +13 -13
  78. package/dist/containers/EmailTemplate/hooks/useEmailTemplateDetail.d.ts +28 -28
  79. package/dist/containers/EmailTemplate/hooks/useEmailTemplateList.d.ts +11 -12
  80. package/dist/containers/EmailTemplate/views/EmailTemplateDetail.d.ts +3 -3
  81. package/dist/containers/EmailTemplate/views/EmailTemplateList.d.ts +3 -3
  82. package/dist/containers/Gallery/components/ActionModal.d.ts +2 -3
  83. package/dist/containers/Gallery/components/Filter.d.ts +8 -8
  84. package/dist/containers/Gallery/components/Media.d.ts +7 -8
  85. package/dist/containers/Gallery/components/MediaDetail.d.ts +6 -7
  86. package/dist/containers/Gallery/components/MediaList.d.ts +7 -7
  87. package/dist/containers/Gallery/components/MediaNav.d.ts +17 -18
  88. package/dist/containers/Gallery/constants/gallery.types.d.ts +21 -20
  89. package/dist/containers/Gallery/extensions/helpers.d.ts +4 -4
  90. package/dist/containers/Gallery/hooks/useGalleryList.d.ts +30 -31
  91. package/dist/containers/Gallery/views/GalleryList.d.ts +6 -6
  92. package/dist/containers/Login/constant/authConfig.d.ts +38 -0
  93. package/dist/containers/Login/constant/types.d.ts +34 -0
  94. package/dist/containers/Login/hooks/useCreatePassword.d.ts +12 -0
  95. package/dist/containers/Login/hooks/useForgotPassword.d.ts +22 -21
  96. package/dist/containers/Login/hooks/useLogin.d.ts +29 -16
  97. package/dist/containers/Login/hooks/useLoginTwoFactor.d.ts +4 -4
  98. package/dist/containers/Login/views/Dashboard.d.ts +3 -3
  99. package/dist/containers/Login/views/Login.d.ts +9 -9
  100. package/dist/containers/Login/views/block/BlockBackground.d.ts +7 -0
  101. package/dist/containers/Login/views/block/BlockCreatePassword.d.ts +2 -0
  102. package/dist/containers/Login/views/block/BlockForgetPassword.d.ts +6 -3
  103. package/dist/containers/Login/views/block/BlockLogin.d.ts +21 -7
  104. package/dist/containers/Login/views/block/BlockResetPassword.d.ts +2 -3
  105. package/dist/containers/Login/views/block/BlockSelectTeacher.d.ts +10 -0
  106. package/dist/containers/Login/views/block/BlockTwoFactorLogin.d.ts +2 -3
  107. package/dist/containers/Login/views/block/CloseBlock.d.ts +6 -6
  108. package/dist/containers/Login/views/block/ContentHomePage.d.ts +5 -5
  109. package/dist/containers/Login/views/block/IconContent.d.ts +7 -7
  110. package/dist/containers/Login/views/block/QuoteContent.d.ts +2 -7
  111. package/dist/containers/Notifications/components/NotificationButton.d.ts +5 -5
  112. package/dist/containers/Notifications/components/NotificationStatusSelector.d.ts +6 -7
  113. package/dist/containers/Notifications/hooks/useNotificationList.d.ts +17 -14
  114. package/dist/containers/Notifications/hooks/useUnreadNotification.d.ts +4 -4
  115. package/dist/containers/Notifications/views/NotificationList.d.ts +2 -3
  116. package/dist/containers/Skill/components/SkillDetailModal.d.ts +2 -3
  117. package/dist/containers/Skill/components/SkillSelector.d.ts +2 -3
  118. package/dist/containers/Skill/hooks/useSkillDetail.d.ts +19 -20
  119. package/dist/containers/Skill/hooks/useSkillList.d.ts +9 -10
  120. package/dist/containers/Skill/views/SkillList.d.ts +3 -3
  121. package/dist/containers/User/components/AssignStudentModal.d.ts +20 -0
  122. package/dist/containers/User/components/DeleteBulkModel copy.d.ts +4 -0
  123. package/dist/containers/User/components/DeleteBulkModel.d.ts +3 -0
  124. package/dist/containers/User/components/FilterPopover.d.ts +21 -0
  125. package/dist/containers/User/components/HeaderCell.d.ts +19 -0
  126. package/dist/containers/User/components/RemoveAssistant.d.ts +3 -0
  127. package/dist/containers/User/components/RemoveCounselor.d.ts +3 -0
  128. package/dist/containers/User/components/RemoveSupportTeacher.d.ts +3 -0
  129. package/dist/containers/User/components/RemoveTeacher.d.ts +3 -0
  130. package/dist/containers/User/components/SwitchDataTeacherModel.d.ts +12 -0
  131. package/dist/containers/User/components/SwitchTeacherModal.d.ts +2 -0
  132. package/dist/containers/User/components/TableHeader.d.ts +15 -0
  133. package/dist/containers/User/components/TeacherSelector.d.ts +2 -0
  134. package/dist/containers/User/components/UploadCSVButton.d.ts +11 -0
  135. package/dist/containers/User/components/UserDeletedModal.d.ts +2 -0
  136. package/dist/containers/User/configs/changePasswordSchema.d.ts +11 -0
  137. package/dist/containers/User/configs/userSchema.d.ts +13 -15
  138. package/dist/containers/User/configs/utils.d.ts +8 -0
  139. package/dist/containers/User/constants/constants.d.ts +63 -0
  140. package/dist/containers/User/constants/types.d.ts +265 -0
  141. package/dist/containers/User/hooks/useAssignStudent.d.ts +44 -0
  142. package/dist/containers/User/hooks/useAssignStudentList.d.ts +36 -0
  143. package/dist/containers/User/hooks/useAssistantList.d.ts +9 -0
  144. package/dist/containers/User/hooks/useCSVImport.d.ts +37 -0
  145. package/dist/containers/User/hooks/useCSVImportTab.d.ts +45 -0
  146. package/dist/containers/User/hooks/useClickOutside.d.ts +2 -0
  147. package/dist/containers/User/hooks/useCounselorList.d.ts +9 -0
  148. package/dist/containers/User/hooks/useExportUsersCsv.d.ts +5 -0
  149. package/dist/containers/User/hooks/useFilterPopover.d.ts +37 -0
  150. package/dist/containers/User/hooks/useResendMail.d.ts +5 -0
  151. package/dist/containers/User/hooks/useRosterUserSelector.d.ts +8 -0
  152. package/dist/containers/User/hooks/useSecondaryTeacherList.d.ts +9 -0
  153. package/dist/containers/User/hooks/useTableHeader.d.ts +20 -0
  154. package/dist/containers/User/hooks/useTeacherList.d.ts +9 -0
  155. package/dist/containers/User/hooks/useUserDeletedList.d.ts +21 -0
  156. package/dist/containers/User/hooks/useUserDeletedModal.d.ts +13 -0
  157. package/dist/containers/User/hooks/useUserDetail.d.ts +41 -22
  158. package/dist/containers/User/hooks/useUserList.d.ts +18 -11
  159. package/dist/containers/User/hooks/userFilters.d.ts +7 -0
  160. package/dist/containers/User/views/AssignStudentList.d.ts +2 -0
  161. package/dist/containers/User/views/CSVImport.d.ts +3 -0
  162. package/dist/containers/User/views/RosterUserSelector.d.ts +8 -0
  163. package/dist/containers/User/views/UserContainer.d.ts +2 -0
  164. package/dist/containers/User/views/UserDeletedList.d.ts +2 -0
  165. package/dist/containers/User/views/UserDetail.d.ts +2 -3
  166. package/dist/containers/User/views/UserList.d.ts +2 -3
  167. package/dist/hooks/useFilters.d.ts +7 -0
  168. package/dist/hooks/useLanguages.d.ts +9 -0
  169. package/dist/i18n.d.ts +2 -0
  170. package/dist/index-B4U_4-fu.js +15 -0
  171. package/dist/index-CFvswiRi.mjs +17591 -0
  172. package/dist/index.css +1037 -296
  173. package/dist/index.d.ts +114 -101
  174. package/dist/index.esm-B63qcj54.js +1 -0
  175. package/dist/index.esm-D6Zacg53.mjs +19 -0
  176. package/dist/index.js +24 -7493
  177. package/dist/index.js.map +1 -1
  178. package/dist/index.modern.js +28540 -6956
  179. package/dist/index.modern.js.map +1 -1
  180. package/dist/layouts/TheContent.d.ts +2 -3
  181. package/dist/mailCategoryService-CEgGm2FV.js +1 -0
  182. package/dist/mailCategoryService-Dis1n9kR.mjs +11 -0
  183. package/dist/mario-core.css +1 -0
  184. package/dist/redux/assessments/action.d.ts +1 -1
  185. package/dist/redux/assessments/reducer.d.ts +10 -5
  186. package/dist/redux/assignment/action.d.ts +1 -1
  187. package/dist/redux/assignment/reducer.d.ts +4 -2
  188. package/dist/redux/assistants/action.d.ts +1 -1
  189. package/dist/redux/assistants/reducer.d.ts +4 -2
  190. package/dist/redux/badges/action.d.ts +1 -1
  191. package/dist/redux/badges/reducer.d.ts +4 -2
  192. package/dist/redux/bandScores/action.d.ts +1 -1
  193. package/dist/redux/bandScores/reducer.d.ts +4 -2
  194. package/dist/redux/certificate/action.d.ts +1 -1
  195. package/dist/redux/certificate/reducer.d.ts +4 -2
  196. package/dist/redux/classes/action.d.ts +1 -1
  197. package/dist/redux/classes/reducer.d.ts +4 -2
  198. package/dist/redux/commons/action.d.ts +23 -8
  199. package/dist/redux/commons/reducer.d.ts +4 -2
  200. package/dist/redux/conferenceRubrics/action.d.ts +1 -1
  201. package/dist/redux/conferenceRubrics/reducer.d.ts +4 -2
  202. package/dist/redux/customAlert/action.d.ts +1 -1
  203. package/dist/redux/customAlert/reducer.d.ts +4 -2
  204. package/dist/redux/dashboard/action.d.ts +5 -4
  205. package/dist/redux/dashboard/reducer.d.ts +4 -2
  206. package/dist/redux/dataPlayer/action.d.ts +2 -2
  207. package/dist/redux/dataPlayer/reducer.d.ts +4 -2
  208. package/dist/redux/emailTemplates/action.d.ts +1 -1
  209. package/dist/redux/emailTemplates/reducer.d.ts +4 -2
  210. package/dist/redux/faqs/action.d.ts +1 -1
  211. package/dist/redux/faqs/reducer.d.ts +4 -2
  212. package/dist/redux/feedback/action.d.ts +1 -1
  213. package/dist/redux/feedback/reducer.d.ts +4 -2
  214. package/dist/redux/gallery/action.d.ts +2 -2
  215. package/dist/redux/gallery/reducer.d.ts +4 -2
  216. package/dist/redux/goalExamples/action.d.ts +1 -1
  217. package/dist/redux/goalExamples/reducer.d.ts +4 -2
  218. package/dist/redux/improveMyClass/action.d.ts +1 -1
  219. package/dist/redux/improveMyClass/reducer.d.ts +4 -2
  220. package/dist/redux/learningStrategies/action.d.ts +1 -1
  221. package/dist/redux/learningStrategies/reducer.d.ts +4 -2
  222. package/dist/redux/learningSupportCategories/action.d.ts +1 -1
  223. package/dist/redux/learningSupportCategories/reducer.d.ts +4 -2
  224. package/dist/redux/mailCategories/action.d.ts +1 -1
  225. package/dist/redux/mailCategories/reducer.d.ts +4 -2
  226. package/dist/redux/navMobile/action.d.ts +1 -0
  227. package/dist/redux/navMobile/reducer.d.ts +4 -0
  228. package/dist/redux/notifications/action.d.ts +3 -3
  229. package/dist/redux/notifications/reducer.d.ts +4 -2
  230. package/dist/redux/questionBanks/action.d.ts +1 -1
  231. package/dist/redux/questionBanks/reducer.d.ts +4 -2
  232. package/dist/redux/questionByCategory/action.d.ts +8 -8
  233. package/dist/redux/questionByCategory/reducer.d.ts +4 -2
  234. package/dist/redux/questionCategory/action.d.ts +1 -1
  235. package/dist/redux/questionCategory/reducer.d.ts +4 -2
  236. package/dist/redux/reflectionForms/action.d.ts +1 -1
  237. package/dist/redux/reflectionForms/reducer.d.ts +4 -2
  238. package/dist/redux/reflectionResults/action.d.ts +1 -1
  239. package/dist/redux/reflectionResults/reducer.d.ts +4 -2
  240. package/dist/redux/schoolBlankDays/action.d.ts +1 -1
  241. package/dist/redux/schoolBlankDays/reducer.d.ts +4 -2
  242. package/dist/redux/semester/action.d.ts +1 -1
  243. package/dist/redux/semester/reducer.d.ts +4 -2
  244. package/dist/redux/sessionPlayers/action.d.ts +5 -4
  245. package/dist/redux/sessionPlayers/reducer.d.ts +4 -2
  246. package/dist/redux/sessionTemplateGeneralClasses/action.d.ts +1 -1
  247. package/dist/redux/sessionTemplateGeneralClasses/reducer.d.ts +4 -2
  248. package/dist/redux/sessionTemplates/action.d.ts +1 -1
  249. package/dist/redux/sessionTemplates/reducer.d.ts +4 -2
  250. package/dist/redux/skills/action.d.ts +1 -1
  251. package/dist/redux/skills/reducer.d.ts +4 -2
  252. package/dist/redux/subjects/action.d.ts +1 -1
  253. package/dist/redux/subjects/reducer.d.ts +4 -2
  254. package/dist/redux/suggestionBanks/action.d.ts +1 -1
  255. package/dist/redux/suggestionBanks/reducer.d.ts +4 -2
  256. package/dist/redux/teacher/myStudent/action.d.ts +1 -1
  257. package/dist/redux/teacher/myStudent/reducer.d.ts +4 -2
  258. package/dist/redux/tutorialScreen/action.d.ts +1 -1
  259. package/dist/redux/tutorialScreen/reducer.d.ts +10 -5
  260. package/dist/redux/users/action.d.ts +2 -2
  261. package/dist/redux/users/reducer.d.ts +4 -2
  262. package/dist/redux/weeklyQuests/action.d.ts +2 -0
  263. package/dist/redux/weeklyQuests/reducer.d.ts +12 -0
  264. package/dist/redux/widget/action.d.ts +1 -1
  265. package/dist/redux/widget/reducer.d.ts +4 -2
  266. package/dist/rootReducer.d.ts +106 -48
  267. package/dist/services/accountService.d.ts +22 -8
  268. package/dist/services/api.d.ts +3 -3
  269. package/dist/services/classService.d.ts +1 -1
  270. package/dist/services/csvImportService.d.ts +9 -0
  271. package/dist/services/csvService.d.ts +8 -0
  272. package/dist/services/emailTemplateService.d.ts +7 -6
  273. package/dist/services/fileServices.d.ts +13 -13
  274. package/dist/services/galleryService.d.ts +2 -2
  275. package/dist/services/mailCategoryService.d.ts +1 -1
  276. package/dist/services/notificationService.d.ts +7 -6
  277. package/dist/services/questionCategoryService.d.ts +3 -1
  278. package/dist/services/schoolService.d.ts +2 -0
  279. package/dist/services/skillService.d.ts +6 -6
  280. package/dist/services/suggestionCategoryService.d.ts +1 -1
  281. package/dist/services/userService.d.ts +37 -7
  282. package/dist/store.d.ts +3 -3
  283. package/dist/types/Conversation.d.ts +8 -8
  284. package/dist/types/ConversationMember.d.ts +5 -5
  285. package/dist/types/Dashboard.d.ts +5 -5
  286. package/dist/types/Filter.d.ts +16 -10
  287. package/dist/types/Language.d.ts +8 -0
  288. package/dist/types/Message.d.ts +13 -13
  289. package/dist/types/Notification.d.ts +8 -8
  290. package/dist/types/Payload.d.ts +17 -0
  291. package/dist/types/user.d.ts +3 -0
  292. package/dist/types-BvnbDeJF.mjs +5 -0
  293. package/dist/types-CTFcZUFS.js +1 -0
  294. package/dist/utils/canAccessRoute.d.ts +2 -2
  295. package/dist/utils/constants.d.ts +87 -57
  296. package/dist/utils/debounce.d.ts +2 -2
  297. package/dist/utils/domHelpers.d.ts +2 -2
  298. package/dist/utils/encodeParams.d.ts +2 -2
  299. package/dist/utils/firstCheckToken.d.ts +2 -2
  300. package/dist/utils/generateRandomString.d.ts +2 -2
  301. package/dist/utils/getAccessToken.d.ts +2 -2
  302. package/dist/utils/getCookieValue.d.ts +2 -0
  303. package/dist/utils/getFileUrl.d.ts +2 -2
  304. package/dist/utils/getStaticFileUrl.d.ts +2 -0
  305. package/dist/utils/getTextFromHTML.d.ts +2 -2
  306. package/dist/utils/utcToLocalTime.d.ts +1 -2
  307. package/package.json +79 -63
  308. package/dist/components/Alerts/ReactNotification.d.ts +0 -4
  309. package/dist/containers/Faq/components/FaqDetailModal.d.ts +0 -3
  310. package/dist/containers/Faq/hooks/useFaqDetail.d.ts +0 -18
  311. package/dist/containers/Faq/hooks/useFaqList.d.ts +0 -10
  312. package/dist/containers/Faq/views/FaqList.d.ts +0 -3
  313. package/dist/layouts/TheFooter.d.ts +0 -3
  314. package/dist/layouts/TheHeader.d.ts +0 -3
  315. package/dist/layouts/TheHeaderDropdown.d.ts +0 -3
  316. package/dist/layouts/TheLayout.d.ts +0 -3
  317. package/dist/layouts/TheSidebar.d.ts +0 -3
  318. package/dist/services/faqService.d.ts +0 -6
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../src/components/Alerts/ErrorHandler.tsx","../src/containers/Login/views/block/CloseBlock.tsx","../src/components/Inputs/PasswordInput.tsx","../src/utils/constants.ts","../src/utils/getAccessToken.ts","../src/redux/commons/action.ts","../src/utils/encodeParams.ts","../src/services/api.ts","../src/services/accountService.ts","../src/containers/Login/hooks/useLogin.ts","../src/containers/Login/views/block/BlockLogin.tsx","../src/containers/Login/hooks/useForgotPassword.ts","../src/containers/Login/views/block/BlockForgetPassword.tsx","../src/components/Buttons/CloseButton.tsx","../src/containers/Login/views/block/BlockResetPassword.tsx","../src/containers/Login/hooks/useLoginTwoFactor.ts","../src/containers/Login/views/block/BlockTwoFactorLogin.tsx","../src/containers/Login/views/Login.tsx","../src/containers/Login/views/block/QuoteContent.tsx","../src/containers/Login/views/block/IconContent.tsx","../src/containers/Login/views/block/ContentHomePage.tsx","../src/containers/Login/views/Dashboard.tsx","../src/assets/Images.ts","../src/layouts/TheSidebar.tsx","../src/redux/notifications/action.ts","../src/services/notificationService.ts","../src/containers/Notifications/hooks/useUnreadNotification.ts","../src/containers/Notifications/components/NotificationButton.tsx","../src/utils/getFileUrl.ts","../src/layouts/TheHeaderDropdown.tsx","../src/layouts/TheHeader.tsx","../src/containers/Commons/NotFound.tsx","../src/layouts/TheContent.tsx","../src/components/Loading/Loading.tsx","../src/utils/firstCheckToken.ts","../src/utils/canAccessRoute.ts","../src/layouts/TheLayout.tsx","../src/components/Buttons/AddButton.tsx","../src/components/Buttons/DeleteButtonIcon.tsx","../src/components/Buttons/LinkEditButton.tsx","../src/components/Alerts/EmptyDataAlert.tsx","../src/components/Pagination/CustomPagination.tsx","../src/redux/emailTemplates/action.ts","../src/redux/mailCategories/action.ts","../src/services/emailTemplateService.ts","../src/services/mailCategoryService.ts","../src/containers/EmailTemplate/hooks/useEmailTemplateList.ts","../src/containers/EmailTemplate/views/EmailTemplateList.tsx","../src/components/Buttons/DetailActionButtons.tsx","../src/components/Buttons/AddButtonIcon.tsx","../src/containers/EmailTemplate/components/MailParam.tsx","../src/components/Selectors/MailCategorySelectors.tsx","../src/components/Labels/RequiredLabel.tsx","../src/components/Others/QuitPrompt.tsx","../src/containers/EmailTemplate/components/AttachmentFile.tsx","../src/services/fileServices.ts","../src/configs/editorConfig.ts","../src/containers/EmailTemplate/hooks/useEmailTemplateDetail.ts","../src/containers/EmailTemplate/configs/emailTemplateSchema.ts","../src/containers/EmailTemplate/views/EmailTemplateDetail.tsx","../src/components/Modals/CommonModal.tsx","../src/containers/Faq/components/FaqDetailModal.tsx","../src/redux/faqs/action.ts","../src/services/faqService.ts","../src/containers/Faq/hooks/useFaqList.ts","../src/containers/Faq/hooks/useFaqDetail.ts","../src/containers/Faq/views/FaqList.tsx","../src/components/Selectors/CustomSelector.tsx","../src/services/skillService.ts","../src/containers/Skill/components/SkillSelector.tsx","../src/containers/Skill/components/SkillDetailModal.tsx","../src/redux/skills/action.ts","../src/containers/Skill/hooks/useSkillList.ts","../src/containers/Skill/hooks/useSkillDetail.ts","../src/containers/Skill/views/SkillList.tsx","../src/redux/users/action.ts","../src/services/userService.ts","../src/containers/User/hooks/useUserList.ts","../src/components/Inputs/SearchBox.tsx","../src/components/Inputs/SearchBoxContainer.tsx","../src/containers/User/views/UserList.tsx","../src/components/Buttons/UploadFileButton.tsx","../src/containers/User/hooks/useUserDetail.ts","../src/containers/User/configs/userSchema.ts","../src/containers/User/views/UserDetail.tsx","../src/components/Modals/NotificationModal.tsx","../src/components/Headers/CommonHeader.tsx","../src/components/Buttons/EditButtonIcon.tsx","../src/components/Selectors/CreatableSelector.tsx","../src/components/Selectors/QuestionTypeSelector.tsx","../src/services/suggestionCategoryService.ts","../src/components/Selectors/SuggestionCategorySelector.tsx","../src/services/questionCategoryService.ts","../src/components/Selectors/QuestionCategorySelector.tsx","../src/components/Selectors/StarRatingSelector.tsx","../src/components/Buttons/ToggleButton.tsx","../src/components/Inputs/FileInput.tsx","../src/components/Alerts/ReactNotification.tsx","../src/containers/Notifications/components/NotificationStatusSelector.tsx","../src/utils/utcToLocalTime.ts","../src/containers/Notifications/hooks/useNotificationList.ts","../src/containers/Notifications/views/NotificationList.tsx","../src/components/Tabs/CustomTab.tsx","../src/components/Alerts/CommonAlert.tsx","../src/containers/Gallery/components/ActionModal.tsx","../src/containers/Gallery/components/MediaNav.tsx","../src/containers/Gallery/constants/gallery.types.ts","../src/containers/Gallery/extensions/helpers.ts","../src/containers/Gallery/components/Media.tsx","../src/containers/Gallery/components/Filter.tsx","../src/redux/gallery/action.ts","../src/services/galleryService.ts","../src/containers/Gallery/hooks/useGalleryList.ts","../src/containers/Gallery/components/MediaList.tsx","../src/containers/Gallery/components/MediaDetail.tsx","../src/containers/Gallery/views/GalleryList.tsx","../src/services/classService.ts","../src/components/Selectors/AcademicClassSelector.tsx","../src/containers/DistrictSchools/views/SchoolList.tsx","../node_modules/redux-logger/dist/redux-logger.js","../node_modules/symbol-observable/es/ponyfill.js","../node_modules/symbol-observable/es/index.js","../node_modules/redux/es/redux.js","../src/redux/commons/reducer.ts","../src/redux/classes/action.ts","../src/redux/classes/reducer.ts","../src/redux/conferenceRubrics/action.ts","../src/redux/conferenceRubrics/reducer.ts","../src/redux/faqs/reducer.ts","../src/redux/skills/reducer.ts","../src/redux/emailTemplates/reducer.ts","../src/redux/suggestionBanks/action.ts","../src/redux/suggestionBanks/reducer.ts","../src/redux/learningStrategies/action.ts","../src/redux/learningStrategies/reducer.ts","../src/redux/subjects/action.ts","../src/redux/subjects/reducer.ts","../src/redux/learningSupportCategories/action.ts","../src/redux/learningSupportCategories/reducer.ts","../src/redux/questionBanks/action.ts","../src/redux/questionBanks/reducer.ts","../src/redux/badges/action.ts","../src/redux/badges/reducer.ts","../src/redux/semester/action.ts","../src/redux/semester/reducer.ts","../src/redux/assignment/action.ts","../src/redux/assignment/reducer.ts","../src/redux/goalExamples/action.ts","../src/redux/goalExamples/reducer.ts","../src/redux/users/reducer.ts","../src/redux/feedback/action.ts","../src/redux/feedback/reducer.ts","../src/redux/assessments/action.ts","../src/redux/assessments/reducer.ts","../src/redux/reflectionForms/action.ts","../src/redux/reflectionForms/reducer.ts","../src/redux/reflectionResults/action.ts","../src/redux/reflectionResults/reducer.ts","../src/redux/questionByCategory/action.ts","../src/redux/questionByCategory/reducer.ts","../src/redux/mailCategories/reducer.ts","../src/redux/questionCategory/action.ts","../src/redux/questionCategory/reducer.ts","../src/redux/notifications/reducer.ts","../src/redux/teacher/myStudent/action.ts","../src/redux/teacher/myStudent/reducer.ts","../src/redux/assistants/action.ts","../src/redux/assistants/reducer.ts","../src/redux/sessionTemplates/action.ts","../src/redux/sessionTemplates/reducer.ts","../src/redux/sessionTemplateGeneralClasses/action.ts","../src/redux/sessionTemplateGeneralClasses/reducer.ts","../src/redux/tutorialScreen/action.ts","../src/redux/tutorialScreen/reducer.ts","../src/redux/customAlert/action.ts","../src/redux/customAlert/reducer.ts","../src/redux/gallery/reducer.ts","../src/redux/dashboard/action.tsx","../src/redux/dashboard/reducer.tsx","../src/redux/sessionPlayers/action.ts","../src/redux/sessionPlayers/reducer.ts","../src/redux/dataPlayer/action.ts","../src/redux/dataPlayer/reducer.ts","../src/redux/certificate/action.ts","../src/redux/certificate/reducer.ts","../src/redux/improveMyClass/action.ts","../src/redux/improveMyClass/reducer.ts","../src/redux/widget/action.ts","../src/redux/widget/reducer.ts","../src/redux/bandScores/action.ts","../src/redux/bandScores/reducer.ts","../src/redux/schoolBlankDays/action.ts","../src/redux/schoolBlankDays/reducer.ts","../src/rootReducer.ts","../src/store.ts","../src/utils/domHelpers.ts","../src/utils/debounce.ts","../src/utils/getTextFromHTML.ts","../src/utils/generateRandomString.ts"],"sourcesContent":["// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import React, { FC } from \"react\"\r\n\r\ninterface Props {\r\n text: string\r\n}\r\n\r\nconst style = {\r\n fontSize: \"0.85rem\"\r\n}\r\n\r\nconst ErrorHandler: FC<Props> = ({ text }: Props) => {\r\n return <p \r\n className=\"text-danger\"\r\n style={style}\r\n >\r\n {text}\r\n </p>\r\n} \r\n\r\nexport default ErrorHandler","// @ts-ignore\r\nimport React, { FC } from \"react\"\r\nimport { Link } from \"react-router-dom\"\r\nimport styles from \"../../../../styles.module.scss\"\r\n\r\ninterface Props {\r\n to: string\r\n}\r\nconst CloseBlock: FC<Props> = ({ to }: Props) => {\r\n return (\r\n <Link to={to} className={`${styles[\"btn-close\"]}`}>\r\n &times;\r\n </Link>\r\n )\r\n}\r\n\r\nexport default CloseBlock\r\n","import React, { CSSProperties, FC } from \"react\"\r\nimport { Input } from \"reactstrap\"\r\n\r\ninterface Props {\r\n isShowPassword: boolean\r\n togglePasswordVisible: any\r\n onChange: any\r\n}\r\n\r\nconst containerStyle: CSSProperties = {\r\n height: \"40px\",\r\n backgroundColor: \"#f7f9fc\",\r\n borderRadius: \"4px\",\r\n marginBottom: \"5px\"\r\n}\r\n\r\nconst inputStyle: CSSProperties = {\r\n backgroundColor: \"#f7f9fc\"\r\n}\r\n\r\nconst eyeIconStyle: CSSProperties = {\r\n fontSize: \"20px\"\r\n}\r\n\r\nconst PasswordInput: FC<Props> = ({\r\n isShowPassword,\r\n togglePasswordVisible,\r\n onChange\r\n}: Props) => {\r\n return (\r\n <div className=\"d-flex align-items-center w-100\" style={containerStyle}>\r\n <Input\r\n className=\"border border-0 password-input\"\r\n style={inputStyle}\r\n type={isShowPassword ? \"text\" : \"password\"}\r\n name=\"password\"\r\n onChange={onChange}\r\n placeholder=\"Password\"\r\n required\r\n />\r\n <i\r\n className={`far ${\r\n isShowPassword ? \"fa-eye-slash\" : \"fa-eye\"\r\n } mx-2 cursor-pointer`}\r\n style={eyeIconStyle}\r\n onClick={() => togglePasswordVisible()}\r\n title={isShowPassword ? \"Hide\" : \"Show\"}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default PasswordInput\r\n","import { Filter } from \"../types/Filter\"\r\n\r\nexport const TINY_MCE_API_KEY =\r\n \"h6l5ro4mqd0eo2mmhxnt3sxqnlx89uz7124h2rwcus8yukv5\"\r\n\r\nexport const GOOGLE_RECAPTCHA_KEY = \"6LfNtLUaAAAAAL24lbBV11jS-gBtt1mhtxb4NXs0\"\r\n\r\nexport const ACCESS_TOKEN = \"ACCESS_TOKEN\"\r\n\r\nexport const DEFAULT_PAGE_SIZE_VALUES = [\r\n { label: \"10\", value: 10 },\r\n { label: \"20\", value: 20 },\r\n { label: \"30\", value: 30 }\r\n]\r\n\r\nexport const DEFAULT_PAGE_SIZE = {\r\n label: \"10\",\r\n value: 10\r\n}\r\n\r\nexport const DEFAULT_FILTER: Filter = {\r\n searchString: \"\",\r\n currentPage: 1,\r\n pageSize: DEFAULT_PAGE_SIZE.value,\r\n sortBy: \"\",\r\n sortOrder: \"ASC\",\r\n name: \"\"\r\n}\r\n\r\nexport const COLORS = {\r\n DANGER: \"#dc3545\",\r\n WARNING: \"#ffc107\",\r\n SUCCESS: \"#28a745\",\r\n INFO: \"#007bff\"\r\n}\r\n\r\nexport const DATE_FORMAT = \"yyyy-MM-dd\"\r\n\r\nexport const DATE_RESULT = \"dd-MM-yyyy\"\r\n\r\nexport const FULL_DATE_RESULT = \"dd-MM-yyyy HH:mm\"\r\n\r\nexport const FULL_DATE_FORMAT = \"yyyy-MM-dd HH:mm\"\r\n\r\nexport const DATE_MIN_VALUE = \"0001-01-01T00:00:00\"\r\n\r\nexport const LICENSE_AGGRID =\r\n \"Alhanko&Johnson_BASE23_single_1_Devs__22_November_2020_[v2]_MTYwNjAwMzIwMDAwMA==d452f38afc893671cad92795e95d52a1\"\r\n\r\nexport const BASE_URL = (() => {\r\n const windowUrl = window.location.href\r\n const url = `${windowUrl.split(\"//\")[0]}//${\r\n windowUrl.split(\"//\")[1].split(\"/\")[0]\r\n }`\r\n return url\r\n})()\r\n\r\nexport const QUESTION_TYPES_OPTIONS = [\r\n { label: \"Single choice\", value: \"SingleChoice\" },\r\n { label: \"Multiple choice\", value: \"MultipleChoice\" },\r\n { label: \"Text input\", value: \"TextInput\" },\r\n { label: \"Slider\", value: \"Slider\" },\r\n { label: \"Progress bar\", value: \"ProgressBar\" },\r\n { label: \"Star rating\", value: \"StarRating\" },\r\n { label: \"Text input with suggestions\", value: \"TextInputWithSuggestions\" },\r\n { label: \"Emotional\", value: \"Emotional\" },\r\n { label: \"Summarize\", value: \"Summarize\" },\r\n { label: \"Rating\", value: \"Rating\" },\r\n { label: \"Learning strategy\", value: \"LearningStrategy\" }\r\n]\r\n\r\nexport const QUESTION_TYPES = {\r\n SINGLE_CHOICE: \"SingleChoice\",\r\n MULTIPLE_CHOICE: \"MultipleChoice\",\r\n TEXT_INPUT: \"TextInput\",\r\n SLIDER: \"Slider\",\r\n PROGRESS_BAR: \"ProgressBar\",\r\n STAR_RATING: \"StarRating\",\r\n TEXT_INPUT_WITH_SUGGESTIONS: \"TextInputWithSuggestions\",\r\n EMOTIONAL: \"Emotional\",\r\n SUMMARIZE: \"Summarize\",\r\n RATING: \"Rating\",\r\n LEARNING_STRATEGY: \"LearningStrategy\"\r\n}\r\n\r\nexport const STAR_OPTIONS = [\r\n { label: 2, value: 2 },\r\n { label: 3, value: 3 },\r\n { label: 4, value: 4 },\r\n { label: 5, value: 5 }\r\n]\r\n\r\nexport const ANSWER_EDITOR_HEIGHT = 150\r\n\r\nexport const USER_ROLES = [\"Admin\", \"Assistant\", \"Teacher\", \"Student\"]\r\n\r\nexport const CHAT_CHANNEL = \"chat-channel\"\r\nexport const NOTIFICATION_CHANNEL = \"notification-channel\"\r\nexport const DEFAULT_IMAGE_URL =\r\n \"https://tleliteracy.com/wp-content/uploads/2017/02/default-avatar.png\"\r\n\r\nexport const EMOTIONS = [\r\n \"Excited\",\r\n \"Happy\",\r\n \"Satisfied\",\r\n \"Bored\",\r\n \"Nervous\",\r\n \"Stressed\",\r\n \"Tired\",\r\n \"Sad\",\r\n \"Mad\",\r\n \"Sick\"\r\n]\r\n\r\nexport const TAB_COLORS = {\r\n reflect: \"#c08497\",\r\n goal: \"#00979b\"\r\n}\r\n","import { ACCESS_TOKEN } from \"./constants\"\r\n\r\nexport default () => {\r\n try {\r\n return localStorage.getItem(ACCESS_TOKEN);\r\n } catch (err) {\r\n return null;\r\n }\r\n}","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setLoading = createAction<boolean | undefined>(\"common/setLoading\")\r\n\r\nexport const setModal = createAction<any>(\"common/setModal\")\r\n\r\nexport const setUser = createAction<any>(\"common/setUser\")\r\n\r\nexport const setSidebar = createAction<any>(\"common/setSidebar\")\r\n\r\nexport const setAlert = createAction<any>(\"common/setAlert\")\r\n\r\nexport const reset = createAction<undefined>(\"common/reset\")\r\n\r\nexport const setCurrentStudentId = createAction<number>(\r\n \"common/setCurrentStudentId\"\r\n)\r\n\r\nexport const setCurrentStudentUserId = createAction<string>(\r\n \"common/setCurrentStudentUserId\"\r\n)\r\n","export default (params: any) => {\r\n return Object.keys(params)\r\n .filter(key => params[key] || params[key] === 0 || params[key] === false)\r\n .map(key => {\r\n if (Array.isArray(params[key])) {\r\n return params[key].map((i: any) => `${encodeURIComponent(key)}=${encodeURIComponent(i)}`).join('&')\r\n }\r\n return `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`\r\n }).join('&')\r\n}","import axios, {AxiosInstance} from \"axios\"\r\n\r\nimport encodeParams from \"../utils/encodeParams\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\nimport getAccessToken from \"../utils/getAccessToken\"\r\n\r\nexport const api: AxiosInstance = axios.create({\r\n baseURL: BASE_URL,\r\n timeout: 0,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n paramsSerializer: params => {\r\n return encodeParams(params)\r\n }\r\n});\r\n\r\nexport const apiUpload: AxiosInstance = axios.create({\r\n baseURL: BASE_URL,\r\n timeout: 60000,\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\",\r\n }\r\n});\r\n\r\n[api, apiUpload].forEach(i => i.interceptors.request.use(\r\n (config: any) => {\r\n const token = getAccessToken();\r\n if (token) {\r\n config.headers.Authorization = `Bearer ${token}`;\r\n }\r\n return config\r\n },\r\n (error: any) => Promise.reject(error)\r\n))\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst ACCOUNT_URL = `${BASE_URL}/api/account`\r\n\r\nconst STUDENT_PROFILE = `${BASE_URL}/api/student/profile`\r\n\r\nexport const logIn = (data: any) => api.post(`${ACCOUNT_URL}/login`, data)\r\n\r\nexport const checkToken = (token: string) =>\r\n api.post(`${ACCOUNT_URL}/checktoken`, { token })\r\n\r\nexport const getInfo = () => api.get(`${ACCOUNT_URL}/info`)\r\n\r\nexport const forgotPassword = (data: any) =>\r\n api.post(`${ACCOUNT_URL}/forgotpassword`, data)\r\n\r\nexport const checkResetToken = (token: string) =>\r\n api.post(`${ACCOUNT_URL}/checkResetToken`, { token })\r\n\r\nexport const resetPassword = (data: any) =>\r\n api.post(`${ACCOUNT_URL}/resetpassword`, data)\r\n\r\nexport const getStudentProfile = () => api.get(`${STUDENT_PROFILE}`)\r\n\r\nexport const logInTwoFactor = (data: any) =>\r\n api.post(`${ACCOUNT_URL}/logintwostep`, data)\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\n\r\nimport { ACCESS_TOKEN } from \"../../../utils/constants\"\r\nimport getAccessToken from \"../../../utils/getAccessToken\"\r\nimport { setLoading, setUser, setAlert } from \"../../../redux/commons/action\"\r\nimport { logIn } from \"../../../services/accountService\"\r\n\r\ntype LoginInfo = {\r\n email: string\r\n password: string\r\n captcha: string\r\n rememberMe: boolean\r\n}\r\n\r\nconst defaultInfo: LoginInfo = {\r\n email: \"\",\r\n password: \"\",\r\n captcha: \"\",\r\n rememberMe: false\r\n}\r\n\r\nconst HOMEPAGE_TEACHER = \"/home\"\r\nconst HOMEPAGE_STUDENT = \"/studenthome\"\r\nconst HOMEPAGE_ADMIN = \"/admin/dashboard\"\r\nconst HOMEPAGE_PARENT = \"/parent\"\r\nconst HOMEPAGE_DISTRICT = \"/admin/schools\"\r\nconst TITLE = \"Log in\"\r\n\r\nconst useLogin = () => {\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const [openLogin, setOpenLogin] = useState<boolean>(false)\r\n const toggle = useCallback(() => {\r\n setOpenLogin(!openLogin)\r\n }, [openLogin])\r\n const [isShowPassword, setIsShowPassword] = useState<boolean>(false)\r\n useEffect(() => {\r\n document.title = TITLE\r\n const token = getAccessToken()\r\n if (!!token) history.push(\"/\")\r\n }, [])\r\n\r\n const isDistrict = window.location.host.includes(\"-district\")\r\n\r\n const userLogin = useCallback(async (data: any) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const res = await logIn(data)\r\n\r\n if (res.data?.isTwoFactor) {\r\n history.push(`/2fa?email=${data.email}`)\r\n dispatch(setLoading(false))\r\n return\r\n }\r\n\r\n const {\r\n token,\r\n id,\r\n firstName,\r\n lastName,\r\n roles,\r\n email,\r\n profileImageFileName\r\n } = res.data\r\n localStorage.setItem(ACCESS_TOKEN, token)\r\n dispatch(\r\n setUser({\r\n id,\r\n firstName,\r\n lastName,\r\n roles,\r\n email,\r\n profileImageFileName\r\n })\r\n )\r\n if (isDistrict) {\r\n history.push(HOMEPAGE_DISTRICT)\r\n } else if (roles.includes(\"Admin\")) {\r\n history.push(HOMEPAGE_ADMIN)\r\n } else if (roles.includes(\"Teacher\")) {\r\n history.push(HOMEPAGE_TEACHER)\r\n } else if (roles.includes(\"Student\")) {\r\n history.push(HOMEPAGE_STUDENT)\r\n } else if (roles.includes(\"Parent\")) {\r\n history.push(HOMEPAGE_PARENT)\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Login failed\"\r\n })\r\n )\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n return {\r\n defaultInfo,\r\n userLogin,\r\n openLogin,\r\n toggle,\r\n isShowPassword,\r\n setIsShowPassword\r\n }\r\n}\r\n\r\nexport default useLogin\r\n","import React, { FC, useCallback } from \"react\"\r\nimport { Col, Form, FormGroup, Input, Label } from \"reactstrap\"\r\nimport { Link } from \"react-router-dom\"\r\nimport styles from \"../../../../styles.module.scss\"\r\n\r\nimport { Formik } from \"formik\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../../components/Alerts/ErrorHandler\"\r\nimport CloseBlock from \"./CloseBlock\"\r\nimport PasswordInput from \"../../../../components/Inputs/PasswordInput\"\r\nimport useLogin from \"../../hooks/useLogin\"\r\nimport { GoogleReCaptcha, useGoogleReCaptcha } from \"react-google-recaptcha-v3\"\r\ninterface Props {\r\n defaultInfo?: any\r\n userLogin?: any\r\n}\r\n\r\nconst schema = yup.object({\r\n email: yup.string().email(\"Email is invalid\").required(\"Email is required\"),\r\n password: yup.string().required(\"Password is required\"),\r\n rememberMe: yup.boolean()\r\n})\r\n\r\nconst BlockLogin: FC<Props> = ({ defaultInfo, userLogin }: Props) => {\r\n let { isShowPassword, setIsShowPassword } = useLogin()\r\n const togglePasswordVisible = () => setIsShowPassword(!isShowPassword)\r\n\r\n const { executeRecaptcha } = useGoogleReCaptcha()\r\n\r\n const clickHandler = useCallback(async () => {\r\n if (!executeRecaptcha) {\r\n console.log(\"execute recaptcha undefined\")\r\n return\r\n }\r\n const result = await executeRecaptcha(\"login\")\r\n return result\r\n }, [executeRecaptcha])\r\n\r\n const handleVerify = useCallback(() => {}, [])\r\n\r\n return (\r\n <Formik\r\n initialValues={defaultInfo}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={async values => {\r\n try {\r\n const clickHandlerRes = await clickHandler()\r\n if (!clickHandlerRes) return\r\n values.captcha = clickHandlerRes\r\n userLogin(values)\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n handleChange,\r\n handleBlur,\r\n handleSubmit,\r\n values,\r\n touched,\r\n errors,\r\n setFieldValue\r\n } = formikProps\r\n\r\n const emailError = touched.email && errors.email\r\n const passwordError = touched.password && errors.password\r\n\r\n return (\r\n <Form\r\n className={`${styles[\"block-login\"]}`}\r\n onSubmit={handleSubmit}\r\n >\r\n <CloseBlock to=\"/\" />\r\n <p className={`${styles[\"title-login\"]}`}>Login</p>\r\n <FormGroup className={`${styles[\"form-user-name\"]}`}>\r\n <Label for=\"userName\">user name</Label>\r\n <Input\r\n type=\"text\"\r\n name=\"email\"\r\n placeholder=\"User name\"\r\n value={values.email}\r\n onChange={handleChange}\r\n onBlur={handleBlur(\"email\")}\r\n required\r\n />\r\n {emailError && (\r\n <ErrorHandler text={errors.email as string} />\r\n )}\r\n </FormGroup>\r\n <FormGroup>\r\n <Label for=\"password\">Password</Label>\r\n <PasswordInput\r\n isShowPassword={isShowPassword}\r\n togglePasswordVisible={togglePasswordVisible}\r\n onChange={(e: any) =>\r\n setFieldValue(\"password\", e.target.value)\r\n }\r\n />\r\n {passwordError && (\r\n <ErrorHandler\r\n text={errors.password as string}\r\n />\r\n )}\r\n </FormGroup>\r\n <FormGroup>\r\n <Input\r\n type=\"checkbox\"\r\n className={`${styles[\"checkbox-remember\"]}`}\r\n id=\"remember\"\r\n onChange={(e: any) =>\r\n setFieldValue(\r\n \"rememberMe\",\r\n e.target.checked\r\n )\r\n }\r\n />\r\n <Label\r\n for=\"remember\"\r\n className={`${styles[\"remember\"]}`}\r\n >\r\n Remember my browser & IP\r\n </Label>\r\n </FormGroup>\r\n <FormGroup>\r\n <GoogleReCaptcha\r\n action=\"login\"\r\n onVerify={handleVerify}\r\n />\r\n </FormGroup>\r\n <Col>\r\n <button\r\n className={`${styles[\"btn-login\"]}`}\r\n type=\"submit\"\r\n >\r\n Login\r\n </button>\r\n </Col>\r\n <Link\r\n to=\"/forgot-password\"\r\n className={`${styles[\"forgot-password\"]}`}\r\n >\r\n Forgot password or username?\r\n </Link>\r\n <p className={`${styles[\"term-and-conditions\"]}`}>\r\n Check out our <a href=\"\">Terms and Conditions</a>\r\n </p>\r\n </Form>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default BlockLogin\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useGoogleReCaptcha } from \"react-google-recaptcha-v3\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\nimport { setAlert, setLoading } from \"../../../redux/commons/action\"\r\nimport {\r\n checkResetToken,\r\n forgotPassword,\r\n resetPassword\r\n} from \"../../../services/accountService\"\r\nimport { ACCESS_TOKEN } from \"../../../utils/constants\"\r\nimport getAccessToken from \"../../../utils/getAccessToken\"\r\n\r\ntype ForgotPasswordInfo = {\r\n email: string\r\n captcha: string\r\n}\r\n\r\nconst defaultInfo: ForgotPasswordInfo = {\r\n email: \"\",\r\n captcha: \"\"\r\n}\r\n\r\nconst DASHBOARD = \"/\"\r\nconst LOGIN = \"/login\"\r\nconst TITLE = \"Log in\"\r\n\r\nconst useForgotPassword = () => {\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const [openLogin, setOpenLogin] = useState<boolean>(false)\r\n const toggle = useCallback(() => {\r\n setOpenLogin(!openLogin)\r\n }, [openLogin])\r\n const [isShowNewPassword, setIsShowNewPassword] = useState<boolean>(false)\r\n const [isShowReTypePassword, setIsShowReTypePassword] = useState<boolean>(\r\n false\r\n )\r\n\r\n const [validLink, setValidLink] = useState<boolean>(true)\r\n const { executeRecaptcha } = useGoogleReCaptcha()\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n const token = getAccessToken()\r\n if (!!token) history.push(DASHBOARD)\r\n }, [])\r\n\r\n const forgotPasswordRequest = useCallback(async (data: any) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n await forgotPassword(data)\r\n history.push(LOGIN)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"A mail to reset password was sent\"\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const checkResetTokenRequest = useCallback(async (token: string) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n await checkResetToken(token)\r\n } catch (err) {\r\n setValidLink(false)\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const resetPasswordRequest = useCallback(async (data: any) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n await resetPassword(data)\r\n history.push(LOGIN)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Reset password sucessfully\"\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const clickHandler = useCallback(async () => {\r\n if (!executeRecaptcha) {\r\n console.log(\"execute recaptcha undefined\")\r\n return\r\n }\r\n const result = await executeRecaptcha(\"forgetPass\")\r\n return result\r\n }, [executeRecaptcha])\r\n\r\n const handleVerify = useCallback(() => {}, [])\r\n\r\n return {\r\n defaultInfo,\r\n forgotPasswordRequest,\r\n checkResetTokenRequest,\r\n validLink,\r\n resetPasswordRequest,\r\n openLogin,\r\n toggle,\r\n isShowNewPassword,\r\n setIsShowNewPassword,\r\n isShowReTypePassword,\r\n setIsShowReTypePassword,\r\n clickHandler,\r\n handleVerify\r\n }\r\n}\r\n\r\nexport default useForgotPassword\r\n","import { Formik } from \"formik\"\r\nimport React from \"react\"\r\nimport { GoogleReCaptcha } from \"react-google-recaptcha-v3\"\r\nimport { Link } from \"react-router-dom\"\r\nimport { Col, Input, Label } from \"reactstrap\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../../components/Alerts/ErrorHandler\"\r\nimport styles from \"../../../../styles.module.scss\"\r\nimport useForgotPassword from \"../../hooks/useForgotPassword\"\r\nimport CloseBlock from \"./CloseBlock\"\r\n\r\nconst initialValues = {\r\n email: \"\",\r\n captcha: \"\"\r\n}\r\n\r\nconst forgotPasswordSchema = yup.object({\r\n email: yup.string().email(\"Email is invalid\").required(\"Email is required\")\r\n})\r\n\r\nconst BlockForgetPassword = () => {\r\n const {\r\n forgotPasswordRequest,\r\n clickHandler,\r\n handleVerify\r\n } = useForgotPassword()\r\n return (\r\n <Formik\r\n initialValues={initialValues}\r\n enableReinitialize\r\n validationSchema={forgotPasswordSchema}\r\n onSubmit={async values => {\r\n const clickHandlerRes = await clickHandler()\r\n if (!clickHandlerRes) return\r\n values.captcha = clickHandlerRes\r\n forgotPasswordRequest(values)\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n handleChange,\r\n handleSubmit,\r\n values,\r\n touched,\r\n errors\r\n } = formikProps\r\n return (\r\n <div\r\n className={`${styles[\"block-forgot-password\"]} ${styles[\"block-login\"]} d-flex flex-column align-items-center`}\r\n >\r\n <div className=\"w-100\">\r\n <CloseBlock to=\"/\" />\r\n </div>\r\n <p\r\n className={`${styles[\"title-login\"]} ${styles[\"title-forgot-password\"]}`}\r\n >\r\n Forgot password\r\n </p>\r\n <p className={`${styles[\"recover-account\"]}`}>\r\n Enter email to recover your account\r\n </p>\r\n <div className=\"w-100\">\r\n <Label for=\"emailForgot\">Email</Label>\r\n <Input\r\n type=\"text\"\r\n name=\"email\"\r\n id=\"email\"\r\n placeholder=\"Input email\"\r\n onChange={handleChange}\r\n value={values.email}\r\n />\r\n {touched.email && errors.email && (\r\n <ErrorHandler text={errors.email} />\r\n )}\r\n </div>\r\n <GoogleReCaptcha\r\n action=\"forgetPass\"\r\n onVerify={handleVerify}\r\n />\r\n <Col>\r\n <button\r\n className={`${styles[\"btn-login\"]} mt-4`}\r\n onClick={() => handleSubmit()}\r\n >\r\n Continue\r\n </button>\r\n </Col>\r\n <p\r\n className={`${styles[\"\"]} w-100 d-flex justify-content-center align-items-end flex-grow-1`}\r\n >\r\n <Link\r\n to=\"/login\"\r\n className={`${styles[\"\"]} ${styles[\"return-to-login\"]}`}\r\n >\r\n Return to login\r\n </Link>\r\n </p>\r\n </div>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default BlockForgetPassword\r\n","// @ts-ignore\r\nimport React, { FC } from \"react\"\r\nimport styles from \"../../styles.module.scss\"\r\n\r\ninterface Props {\r\n defaultInfo?: any,\r\n userLogin?: any,\r\n toggle?: any\r\n}\r\nconst CloseButton: FC<Props> = ({ toggle }:Props) => {\r\n return (\r\n <a\r\n onClick={toggle}\r\n className={`${styles[\"btn-close\"]}`}>&times;\r\n </a>\r\n )\r\n}\r\n\r\nexport default CloseButton\r\n","import { Formik } from \"formik\"\r\nimport React, { useEffect } from \"react\"\r\nimport { Link, useLocation } from \"react-router-dom\"\r\nimport { Col, Label } from \"reactstrap\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../../components/Alerts/ErrorHandler\"\r\nimport CloseButton from \"../../../../components/Buttons/CloseButton\"\r\nimport PasswordInput from \"../../../../components/Inputs/PasswordInput\"\r\nimport styles from \"../../../../styles.module.scss\"\r\nimport useForgotPassword from \"../../hooks/useForgotPassword\"\r\n\r\nconst initialValues = {\r\n token: \"\",\r\n password: \"\",\r\n reEnterPassword: \"\"\r\n}\r\n\r\nconst resetPasswordSchema = yup.object({\r\n password: yup.string().required(\"New password is required\"),\r\n reEnterPassword: yup\r\n .string()\r\n .required(\"Please re-enter new password\")\r\n .test(\"matching\", \"Passwords do not match\", function () {\r\n return this.parent.password === this.parent.reEnterPassword\r\n })\r\n})\r\n\r\nconst BlockResetPassword = () => {\r\n const query = new URLSearchParams(useLocation().search)\r\n const token = query.get(\"token\")\r\n const {\r\n checkResetTokenRequest,\r\n validLink,\r\n resetPasswordRequest,\r\n isShowNewPassword,\r\n setIsShowNewPassword,\r\n isShowReTypePassword,\r\n setIsShowReTypePassword\r\n } = useForgotPassword()\r\n\r\n useEffect(() => {\r\n checkResetTokenRequest(token as string)\r\n }, [])\r\n\r\n return (\r\n <Formik\r\n initialValues={initialValues}\r\n enableReinitialize\r\n validationSchema={resetPasswordSchema}\r\n onSubmit={values => {\r\n resetPasswordRequest(values)\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n setFieldValue,\r\n handleSubmit,\r\n touched,\r\n errors\r\n } = formikProps\r\n useEffect(() => {\r\n setFieldValue(\"token\", token)\r\n }, [])\r\n return (\r\n <div\r\n className={`${styles[\"block-login\"]} ${styles[\"block-reset-password\"]} d-flex flex-column align-items-center`}\r\n >\r\n <div className=\"w-100\">\r\n <CloseButton />\r\n </div>\r\n <p className={`${styles[\"title-login\"]}`}>\r\n Reset Password\r\n </p>\r\n <div className=\"w-100\">\r\n {validLink ? (\r\n <React.Fragment>\r\n <Label for=\"emailForgot\">\r\n New password\r\n </Label>\r\n <PasswordInput\r\n isShowPassword={isShowNewPassword}\r\n togglePasswordVisible={() =>\r\n setIsShowNewPassword(\r\n !isShowNewPassword\r\n )\r\n }\r\n onChange={(e: any) =>\r\n setFieldValue(\r\n \"password\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n {touched.password && errors.password && (\r\n <ErrorHandler text={errors.password} />\r\n )}\r\n\r\n <Label for=\"emailForgot\">\r\n Re-enter new password\r\n </Label>\r\n <PasswordInput\r\n isShowPassword={isShowReTypePassword}\r\n togglePasswordVisible={() =>\r\n setIsShowReTypePassword(\r\n !isShowReTypePassword\r\n )\r\n }\r\n onChange={(e: any) =>\r\n setFieldValue(\r\n \"reEnterPassword\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n {touched.reEnterPassword &&\r\n errors.reEnterPassword && (\r\n <ErrorHandler\r\n text={errors.reEnterPassword}\r\n />\r\n )}\r\n </React.Fragment>\r\n ) : (\r\n <React.Fragment>\r\n <p className=\"w-100 text-center\">\r\n Invalid reset password link\r\n </p>\r\n <p className=\"w-100\">\r\n It may have been accessed before or\r\n expired or you have just tried to reset\r\n another account's password\r\n </p>\r\n </React.Fragment>\r\n )}\r\n </div>\r\n\r\n {validLink && (\r\n <Col>\r\n <button\r\n className={`${styles[\"btn-login\"]} mt-4`}\r\n onClick={() => handleSubmit()}\r\n >\r\n Confirm\r\n </button>\r\n </Col>\r\n )}\r\n <p className=\"w-100 d-flex justify-content-center align-items-end flex-grow-1\">\r\n <Link\r\n to=\"/login\"\r\n className={`${styles[\"return-to-login\"]}`}\r\n >\r\n Return to login\r\n </Link>\r\n </p>\r\n </div>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default BlockResetPassword\r\n","import { useCallback, useEffect } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\nimport { setLoading, setAlert, setUser } from \"../../../redux/commons/action\"\r\nimport { logInTwoFactor } from \"../../../services/accountService\"\r\nimport { ACCESS_TOKEN } from \"../../../utils/constants\"\r\n\r\nconst HOMEPAGE_TEACHER = \"/home\"\r\nconst HOMEPAGE_STUDENT = \"/studenthome\"\r\nconst HOMEPAGE_ADMIN = \"/admin/dashboard\"\r\nconst HOMEPAGE_PARENT = \"/parent\"\r\nconst HOMEPAGE_DISTRICT = \"/admin/schools\"\r\nconst TITLE = \"2FA\"\r\nconst useLoginTwoFactor = () => {\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n\r\n const isDistrict = window.location.host.includes(\"-district\")\r\n\r\n const userLoginTwoFactor = useCallback(async (data: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await logInTwoFactor(data)\r\n const {\r\n token,\r\n id,\r\n firstName,\r\n lastName,\r\n roles,\r\n email,\r\n profileImageFileName\r\n } = res.data\r\n localStorage.setItem(ACCESS_TOKEN, token)\r\n dispatch(\r\n setUser({\r\n id,\r\n firstName,\r\n lastName,\r\n roles,\r\n email,\r\n profileImageFileName\r\n })\r\n )\r\n if (isDistrict) {\r\n history.push(HOMEPAGE_DISTRICT)\r\n } else if (roles.includes(\"Admin\")) {\r\n history.push(HOMEPAGE_ADMIN)\r\n } else if (roles.includes(\"Teacher\")) {\r\n history.push(HOMEPAGE_TEACHER)\r\n } else if (roles.includes(\"Student\")) {\r\n history.push(HOMEPAGE_STUDENT)\r\n } else if (roles.includes(\"Parent\")) {\r\n history.push(HOMEPAGE_PARENT)\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Login failed\"\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n return { userLoginTwoFactor }\r\n}\r\n\r\nexport default useLoginTwoFactor\r\n","import { Formik } from \"formik\"\r\nimport React from \"react\"\r\nimport { Link, useLocation } from \"react-router-dom\"\r\nimport { Col, Label, Input, FormGroup } from \"reactstrap\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../../components/Alerts/ErrorHandler\"\r\nimport CloseButton from \"../../../../components/Buttons/CloseButton\"\r\nimport styles from \"../../../../styles.module.scss\"\r\n\r\nimport useLoginTwoFactor from \"../../hooks/useLoginTwoFactor\"\r\n\r\nconst initialValues = {\r\n twoFactorCode: \"\",\r\n email: \"\",\r\n rememberMe: false\r\n}\r\n\r\nconst schema = yup.object({\r\n email: yup.string().required(\"Email is required\"),\r\n twoFactorCode: yup.string().required(\"2FA code is required\"),\r\n rememberMe: yup.boolean()\r\n})\r\n\r\nconst BlockTwoFactorLogin = () => {\r\n const query = new URLSearchParams(useLocation().search)\r\n const email = query.get(\"email\")\r\n const { userLoginTwoFactor } = useLoginTwoFactor()\r\n\r\n return (\r\n <Formik\r\n initialValues={{ ...initialValues, email }}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={values => {\r\n userLoginTwoFactor(values)\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n values,\r\n setFieldValue,\r\n handleChange,\r\n handleSubmit,\r\n touched,\r\n errors\r\n } = formikProps\r\n\r\n return (\r\n <div\r\n className={`${styles[\"block-login\"]} ${styles[\"block-reset-password\"]} d-flex flex-column align-items-center`}\r\n >\r\n <div className=\"w-100\">\r\n <CloseButton />\r\n </div>\r\n <p className={`${styles[\"title-login\"]}`}>2FA code</p>\r\n <p className=\"text-small text-secondary\">\r\n <i>\r\n Check your email to get 2FA code. This code will\r\n be expired in 5 minutes\r\n </i>\r\n </p>\r\n <div className=\"w-100\">\r\n <FormGroup>\r\n <Label>2FA code</Label>\r\n <Input\r\n name=\"twoFactorCode\"\r\n value={values.twoFactorCode}\r\n onChange={handleChange}\r\n />\r\n {touched.twoFactorCode &&\r\n errors.twoFactorCode && (\r\n <ErrorHandler\r\n text={errors.twoFactorCode}\r\n />\r\n )}\r\n </FormGroup>\r\n <FormGroup>\r\n <Input\r\n type=\"checkbox\"\r\n className={`${styles[\"checkbox-remember\"]}`}\r\n id=\"remember\"\r\n onChange={(e: any) =>\r\n setFieldValue(\r\n \"rememberMe\",\r\n e.target.checked\r\n )\r\n }\r\n />\r\n <Label\r\n for=\"rememberMe\"\r\n className={`${styles[\"remember\"]}`}\r\n >\r\n Remember my browser & IP\r\n </Label>\r\n </FormGroup>\r\n </div>\r\n <Col>\r\n <button\r\n className={`${styles[\"btn-login\"]} mt-4`}\r\n onClick={() => handleSubmit()}\r\n >\r\n Confirm\r\n </button>\r\n </Col>\r\n <p className=\"w-100 d-flex justify-content-center align-items-end flex-grow-1\">\r\n <Link\r\n to=\"/login\"\r\n className={`${styles[\"return-to-login\"]}`}\r\n >\r\n Return to login\r\n </Link>\r\n </p>\r\n </div>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default BlockTwoFactorLogin\r\n","import React, { useEffect } from \"react\"\r\n\r\nimport { Col, Row } from \"reactstrap\"\r\n\r\nimport BlockLogin from \"./block/BlockLogin\"\r\nimport BlockForgetPassword from \"./block/BlockForgetPassword\"\r\nimport BlockResetPassword from \"./block/BlockResetPassword\"\r\nimport BlockTwoFactorLogin from \"./block/BlockTwoFactorLogin\"\r\nimport useLogin from \"../hooks/useLogin\"\r\nimport styles from \"../../../styles.module.scss\"\r\nimport { GoogleReCaptchaProvider } from \"react-google-recaptcha-v3\"\r\nimport { GOOGLE_RECAPTCHA_KEY } from \"../../../utils/constants\"\r\n\r\ninterface loginProps {\r\n isLogin?: boolean\r\n isForgotPassword?: boolean\r\n isResetPassword?: boolean\r\n isLoginTwoFactor?: boolean\r\n}\r\n\r\nconst LOGIN_TITLE = \"Log in\"\r\nconst FORGOT_PASSWORD_TITLE = \"Forgot password\"\r\nconst RESET_PASSWORD_TITLE = \"Reset password\"\r\n\r\nconst Login = (props: loginProps) => {\r\n const {\r\n isLogin,\r\n isForgotPassword,\r\n isResetPassword,\r\n isLoginTwoFactor\r\n } = props\r\n const { defaultInfo, userLogin } = useLogin()\r\n\r\n useEffect(() => {\r\n isLogin && (document.title = LOGIN_TITLE)\r\n isForgotPassword && (document.title = FORGOT_PASSWORD_TITLE)\r\n isResetPassword && (document.title = RESET_PASSWORD_TITLE)\r\n }, [isLogin, isForgotPassword, isResetPassword])\r\n\r\n return (\r\n <div className={`${styles[\"login\"]} container-fluid font-family-lato`}>\r\n <Row>\r\n <Col\r\n lg={6}\r\n md={12}\r\n xs={12}\r\n className=\"offset-lg-6 d-flex justify-content-center\"\r\n >\r\n <GoogleReCaptchaProvider\r\n useRecaptchaNet\r\n reCaptchaKey={GOOGLE_RECAPTCHA_KEY}\r\n scriptProps={{\r\n async: true,\r\n defer: true,\r\n appendTo: \"body\"\r\n }}\r\n >\r\n {isLogin && (\r\n <BlockLogin\r\n userLogin={userLogin}\r\n defaultInfo={defaultInfo}\r\n />\r\n )}\r\n {isForgotPassword && <BlockForgetPassword />}\r\n </GoogleReCaptchaProvider>\r\n {isResetPassword && <BlockResetPassword />}\r\n {isLoginTwoFactor && <BlockTwoFactorLogin />}\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Login\r\n","import React, { FC } from \"react\"\r\nimport {Col, Row} from \"reactstrap\";\r\nimport styles from \"../../../../styles.module.scss\"\r\ninterface Props {\r\n title?: string,\r\n descriptions?: string\r\n}\r\nconst QuoteContent: FC<Props> = ({title, descriptions}:Props) => {\r\n return (\r\n <div className={`${styles[\"content-quote\"]}`} >\r\n <Row>\r\n <Col md={4} className={`${styles[\"title-quote\"]}`}>\r\n <p>{title}</p>\r\n </Col>\r\n <Col md={8} className={`${styles[\"descriptions-quote\"]}`} >\r\n <p>{descriptions}</p>\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default QuoteContent\r\n","import React, {FC} from \"react\";\r\nimport {Col, Row} from \"reactstrap\";\r\nimport styles from \"../../../../styles.module.scss\"\r\n\r\ninterface Props {\r\n srcIcon?: string,\r\n content?: string\r\n}\r\nconst IconContent: FC<Props> = ({srcIcon, content}:Props) => {\r\n return (\r\n <Row className={`${styles[\"content-icon\"]}`}>\r\n <Col md={4} className={`${styles[\"title-icon\"]}`}>\r\n <img src={srcIcon} alt=\"icon\"/>\r\n </Col>\r\n <Col md={8} className={`${styles[\"descriptions-icon\"]}`} >\r\n <p>{content}</p>\r\n </Col>\r\n </Row>\r\n )\r\n}\r\n\r\nexport default IconContent\r\n","import React, {FC} from \"react\"\r\nimport {Col, Row} from \"reactstrap\";\r\nimport QuoteContent from \"./QuoteContent\"\r\nimport IconContent from \"./IconContent\"\r\nimport styles from \"../../../../styles.module.scss\"\r\n\r\n\r\ninterface Props {\r\n}\r\nconst data = {\r\n quote : {\r\n title: \"Unparalled Personalized Learning\",\r\n description : \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. \"\r\n },\r\n contents:[\r\n {\r\n scrIcon : \"/images/177_2_Finance.svg\",\r\n content : \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\"\r\n },\r\n {\r\n scrIcon : \"/images/177_9_Brain.svg\",\r\n content : \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\"\r\n },\r\n {\r\n scrIcon : \"/images/177_6_Goal.svg\",\r\n content : \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\"\r\n },\r\n {\r\n scrIcon : \"/images/177_8_Space.svg\",\r\n content : \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\"\r\n },\r\n ]\r\n}\r\nconst ContentHomePage: FC<Props> = ({}:Props) => {\r\n return (\r\n <Row className={`${styles[\"page-not-login\"]}`}>\r\n <Col md={12}>\r\n <QuoteContent\r\n title={data.quote.title}\r\n descriptions={data.quote.description}\r\n />\r\n </Col>\r\n\r\n {\r\n data.contents.map((content: any, index:number) =>\r\n <Col md={6} key={index}>\r\n <IconContent\r\n srcIcon={content.scrIcon}\r\n content={content.content}\r\n />\r\n </Col>\r\n )\r\n }\r\n </Row>\r\n )\r\n}\r\n\r\nexport default ContentHomePage\r\n","import React, { useEffect } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\nimport { Col, Row } from \"reactstrap\"\r\n// import BlockLogin from \"./block/BlockLogin\"\r\n// import useLogin from \"../hooks/useLogin\"\r\nimport ContentHomePage from \"./block/ContentHomePage\"\r\n// import LoginNavButton from \"../../../components/Buttons/LoginNavButton\"\r\nimport styles from \"../../../styles.module.scss\"\r\nimport { Link } from \"react-router-dom\"\r\nconst HOME_ADMIN = \"/admin/user\"\r\nconst HOME_TEACHER = \"/home\"\r\nconst HOME_STUDENT = \"/studenthome\"\r\n\r\nconst DASHBOARD_TITLE = \"Dashboard\"\r\nconst ROOT_TITLE = \"Mario Framework\"\r\n\r\nconst Dashboard = () => {\r\n const user = useSelector((state: any) => state.common.user)\r\n\r\n useEffect(() => {\r\n !!user\r\n ? (document.title = DASHBOARD_TITLE)\r\n : (document.title = ROOT_TITLE)\r\n }, [user])\r\n\r\n return (\r\n <div className={`${styles[\"login\"]}`}>\r\n <Row>\r\n <Col className={`${styles[\"nav-home\"]} d-flex w-100`}>\r\n <Link\r\n className={`${styles[\"contact\"]} align-self-lg-center`}\r\n to={\"/contact\"}\r\n >\r\n Contact\r\n </Link>\r\n <Link\r\n className={`${styles[\"learn-more\"]} align-self-lg-center`}\r\n to={\"/\"}\r\n >\r\n Learn More\r\n </Link>\r\n {user ? (\r\n <Link\r\n to={\r\n user.roles.includes(\"Admin\")\r\n ? HOME_ADMIN\r\n : user.roles.includes(\"Teacher\")\r\n ? HOME_TEACHER\r\n : HOME_STUDENT\r\n }\r\n className={`${styles[\"btn-trans-border\"]}`}\r\n >\r\n Dashboard\r\n </Link>\r\n ) : (\r\n <Link\r\n to=\"/login\"\r\n className={`${styles[\"btn-trans-border\"]}`}\r\n >\r\n Login\r\n </Link>\r\n )}\r\n </Col>\r\n </Row>\r\n\r\n <Row\r\n className={`${styles[\"hide-in-mobile\"]} ${styles[\"hide-in-tablet\"]}`}\r\n >\r\n <Col md={6} className=\"offset-6 d-flex justify-content-center\">\r\n <ContentHomePage />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Dashboard\r\n","const Images = {\r\n USER_CONVERSATION_AVATAR: \"images/user.png\",\r\n GROUP_CONVERSATION_AVATAR: \"images/group.png\",\r\n LOGO: \"images/logo.png\",\r\n LOGO_HEADER: \"images/logo-header.png\",\r\n LOGO_MINIMIZED: \"images/logo-minimized.png\",\r\n DOCS_IMAGE: \"images/docs.png\",\r\n AUDIO_IMAGE: \"images/audio.png\",\r\n PHOTO_IMAGE: \"images/image.png\",\r\n VIDEO_IMAGE: \"images/video.png\",\r\n FOLDER_IMAGE: \"images/folder.png\",\r\n UNKNOW_IMAGE: \"images/unknow.png\",\r\n\r\n}\r\n\r\nexport default Images\r\n","import React from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport {\r\n CCreateElement,\r\n CSidebar,\r\n CSidebarBrand,\r\n CSidebarNav,\r\n CSidebarNavDivider,\r\n CSidebarNavTitle,\r\n CSidebarMinimizer,\r\n CSidebarNavDropdown,\r\n CSidebarNavItem\r\n} from \"@coreui/react\"\r\n\r\nimport { setSidebar } from \"../redux/commons/action\"\r\n\r\nimport styles from \"../styles.module.scss\"\r\nimport Images from \"../assets/Images\"\r\n\r\nconst TheSidebar = ({ navigation }: any) => {\r\n const dispatch = useDispatch()\r\n const show = useSelector<any>((state: any) => state.common.sidebarShow)\r\n return (\r\n <CSidebar\r\n show={show as any}\r\n onShowChange={(val: any) => dispatch(setSidebar(val))}\r\n >\r\n <CSidebarBrand className=\"d-md-down-none\" to=\"/\">\r\n <img\r\n src={Images.LOGO}\r\n className={`${styles[\"sidebar-logo\"]} c-sidebar-brand-full`}\r\n />\r\n <img\r\n src={Images.LOGO_MINIMIZED}\r\n className={`${styles[\"sidebar-logo\"]} c-sidebar-brand-minimized`}\r\n />\r\n </CSidebarBrand>\r\n <CSidebarNav>\r\n <CCreateElement\r\n items={navigation}\r\n components={{\r\n CSidebarNavDivider,\r\n CSidebarNavDropdown,\r\n CSidebarNavItem,\r\n CSidebarNavTitle\r\n }}\r\n />\r\n </CSidebarNav>\r\n <CSidebarMinimizer\r\n id=\"sidebar-minimizer\"\r\n className=\"c-d-md-down-none\"\r\n />\r\n </CSidebar>\r\n )\r\n}\r\n\r\nexport default TheSidebar\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setNotification = createAction<any>(\r\n \"notifications/setNotification\"\r\n)\r\n\r\nexport const setUnReadNotification = createAction<number>(\r\n \"notifications/setUnReadNotification\"\r\n)\r\n\r\nexport const updateUnReadNotification = createAction<number>(\r\n \"notifications/updateUnReadNotification\"\r\n)\r\n","import { api } from \"./api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst NOTIFICATION_URL = `${BASE_URL}/api/notification`\r\n\r\nexport const get = (filter: any) =>\r\n api.get(NOTIFICATION_URL, { params: { ...filter } })\r\n\r\nexport const getUnReadNotifications = () =>\r\n api.get(`${NOTIFICATION_URL}/unread`)\r\n\r\nexport const updateLastTimeCheckNotification = () =>\r\n api.put(`${NOTIFICATION_URL}/lasttimechecknotification`)\r\n\r\nexport const getById = (id: number) => api.get(`${NOTIFICATION_URL}/${id}`)\r\n\r\nexport const updateStatusNotification = (id: number) =>\r\n api.put(`${NOTIFICATION_URL}/${id}`)\r\n\r\nexport const clearChatNotification = () =>\r\n api.delete(`${NOTIFICATION_URL}/chat`)\r\n","import { useCallback, useEffect } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { useLocation } from \"react-router-dom\"\r\nimport Pusher from \"pusher-js/with-encryption\"\r\n\r\nimport {\r\n setUnReadNotification,\r\n updateUnReadNotification\r\n} from \"../../../redux/notifications/action\"\r\nimport { getUnReadNotifications } from \"../../../services/notificationService\"\r\n\r\nimport { NOTIFICATION_CHANNEL } from \"../../../utils/constants\"\r\n\r\nimport { setAlert } from \"../../../redux/commons/action\"\r\n\r\n//const MESSAGE_RECEIVED = \"MESSAGE_RECEIVED\"\r\n\r\nconst useUnReadNotification = () => {\r\n const dispatch = useDispatch()\r\n const userId = useSelector((state: any) => state.common.user?.id)\r\n const pusherCluster = useSelector(\r\n (state: any) => state.common.user.pusherCluster\r\n )\r\n const pusherKey = useSelector((state: any) => state.common.user.pusherKey)\r\n const unReadNotification = useSelector(\r\n (state: any) => state.notification.unReadNotification\r\n )\r\n\r\n const getData = useCallback(async () => {\r\n try {\r\n const res = await getUnReadNotifications()\r\n dispatch(setUnReadNotification(res.data))\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n }, [])\r\n\r\n const location = useLocation()\r\n const isChat = location.pathname.includes(\"chat\")\r\n\r\n useEffect(() => {\r\n getData()\r\n\r\n let pusher: Pusher\r\n if (pusherKey && pusherCluster) {\r\n pusher = new Pusher(pusherKey, { cluster: pusherCluster })\r\n const channel = pusher.subscribe(\r\n `${NOTIFICATION_CHANNEL}-${userId}`\r\n )\r\n\r\n channel.bind(\"unread-notification-count\", () => {\r\n getData()\r\n })\r\n\r\n channel.bind(\"update-unread-notification\", () => {\r\n isChat && getData()\r\n })\r\n }\r\n\r\n return () =>\r\n pusher && pusher.unsubscribe(`${NOTIFICATION_CHANNEL}-${userId}`)\r\n }, [updateUnReadNotification, isChat, pusherKey, pusherCluster])\r\n\r\n return { unReadNotification }\r\n}\r\n\r\nexport default useUnReadNotification\r\n","import React, { FC, useCallback } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\n\r\nimport styles from \"../../../styles.module.scss\"\r\n\r\nimport useUnreadNotification from \"../hooks/useUnreadNotification\"\r\n\r\ninterface Props {}\r\n\r\n// const ICON_SIZE = 24\r\n\r\nconst NotificationButton: FC<Props> = ({}: Props) => {\r\n const user = useSelector((state: any) => state.common.user)\r\n const isAdmin = user && user.roles.includes(\"Admin\")\r\n const { unReadNotification } = useUnreadNotification()\r\n\r\n const openNotification = useCallback(() => {\r\n const features = `toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, width=1080, height=720, top=100, left=100`\r\n const url = `${isAdmin ? \"/admin\" : \"\"}/notifications`\r\n window.open(url, \"NotificationDialog\", features)\r\n }, [])\r\n\r\n return (\r\n <div className=\"d-inline position-relative cursor-pointer mr-2 user-select-none\">\r\n <div\r\n className=\"d-inline position-relative\"\r\n onClick={openNotification}\r\n >\r\n <i className=\"fas fa-bell\" style={{ fontSize: \"20px\" }}></i>\r\n {!!unReadNotification && (\r\n <div\r\n className={`${styles[\"notification-count\"]} position-absolute text-small`}\r\n >\r\n {unReadNotification}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default NotificationButton\r\n","import { BASE_URL } from \"./constants\"\r\n\r\nconst getFileUrl = (fileName: string) => {\r\n if (!fileName || !fileName.trim()) return \"\"\r\n return `${BASE_URL}/api/file/viewer?key=${fileName}`\r\n}\r\n\r\nexport default getFileUrl\r\n","import React, { useCallback, useState } from \"react\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { useHistory, Link } from \"react-router-dom\"\r\n\r\nimport { reset } from \"../redux/commons/action\"\r\nimport { ACCESS_TOKEN } from \"../utils/constants\"\r\nimport getFileUrl from \"../utils/getFileUrl\"\r\nimport styles from \"../styles.module.scss\"\r\nimport {\r\n Dropdown,\r\n DropdownItem,\r\n DropdownMenu,\r\n DropdownToggle,\r\n NavLink\r\n} from \"reactstrap\"\r\n\r\nconst DEFAULT_USER_AVATAR = \"/avatars/default-avatar.png\"\r\nconst ADMIN_ROLE = \"Admin\"\r\nconst TEACHER_ROLE = \"Teacher\"\r\nconst USER_DETAIL_URL = \"/admin/user\"\r\n\r\nconst TheHeaderDropdown = () => {\r\n const user = useSelector((state: any) => state.common.user)\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n\r\n const { email, profileImageFileName, roles, id } = user\r\n const isAdmin = roles.includes(ADMIN_ROLE)\r\n const isTeacher = roles.includes(TEACHER_ROLE)\r\n\r\n const goToTeacherPanel = useCallback(() => {\r\n isTeacher && history.push(\"/home\")\r\n }, [isTeacher, history])\r\n\r\n const signOut = useCallback(() => {\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n dispatch(reset())\r\n history.push(\"/\")\r\n }, [])\r\n\r\n const [dropdownOpen, setDropdownOpen] = useState(false)\r\n const toggle = () => setDropdownOpen(prevState => !prevState)\r\n\r\n const avatarUrl = profileImageFileName\r\n ? getFileUrl(profileImageFileName)\r\n : DEFAULT_USER_AVATAR\r\n\r\n const isDistrict = window.location.host.includes(\"-district\")\r\n\r\n return (\r\n <Dropdown\r\n isOpen={dropdownOpen}\r\n toggle={toggle}\r\n className={`${styles[\"dropdown-menu\"]}`}\r\n >\r\n <DropdownToggle className={`${styles[\"header-avatar\"]} `}>\r\n <img src={avatarUrl} alt=\"avatar\" />\r\n </DropdownToggle>\r\n <DropdownMenu className={styles[\"dropdown-content\"]}>\r\n <div className={`${styles[\"item-contact\"]} d-flex`}>\r\n <div\r\n className={`${styles[\"img-avatar\"]} d-flex align-items-center`}\r\n >\r\n <img src={avatarUrl} alt=\"admin@bootstrapmaster.com\" />\r\n </div>\r\n <div className={styles[\"content-text\"]}>\r\n <h5>{`${user.firstName} ${user.lastName}`}</h5>\r\n <span className=\"block\">{email}</span>\r\n {!isDistrict && (\r\n <NavLink>\r\n {isTeacher && (\r\n <Link to=\"/my-profile\">Edit profile</Link>\r\n )}\r\n {isAdmin && (\r\n <Link to={`${USER_DETAIL_URL}/${id}`}>\r\n Edit profile\r\n </Link>\r\n )}\r\n </NavLink>\r\n )}\r\n </div>\r\n </div>\r\n {isTeacher && (\r\n <DropdownItem\r\n onClick={goToTeacherPanel}\r\n className={`${styles[\"dropdown-change\"]} px-0`}\r\n >\r\n <div\r\n className={`${styles[\"item-address\"]} d-flex align-items-center w-100`}\r\n >\r\n <span className={`mr-2`}>\r\n <i className=\"fas fa-cogs h6 mb-0\"></i>\r\n </span>\r\n GO TO TEACHER PANEL\r\n </div>\r\n </DropdownItem>\r\n )}\r\n <DropdownItem\r\n onClick={signOut}\r\n className={`${styles[\"dropdown-change\"]} px-0`}\r\n >\r\n <div\r\n className={`${styles[\"item-address\"]} ${styles[\"item-logout\"]} d-flex align-items-center w-100`}\r\n >\r\n <span className=\"mr-2 d-flex hover-opacity\">\r\n <i className=\"fas fa-power-off h6 mb-0\"></i>\r\n </span>\r\n LOGOUT\r\n </div>\r\n </DropdownItem>\r\n </DropdownMenu>\r\n </Dropdown>\r\n )\r\n}\r\n\r\nexport default TheHeaderDropdown\r\n","import React from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { CHeader, CToggler, CHeaderBrand, CHeaderNav } from \"@coreui/react\"\r\n\r\nimport { setSidebar } from \"../redux/commons/action\"\r\n\r\nimport styles from \"../styles.module.scss\"\r\n\r\nimport NotificationButton from \"../containers/Notifications/components/NotificationButton\"\r\n\r\nimport TheHeaderDropdown from \"./TheHeaderDropdown\"\r\n\r\nimport Images from \"../assets/Images\"\r\n\r\nconst TheHeader = () => {\r\n const dispatch = useDispatch()\r\n const sidebarShow = useSelector((state: any) => state.common.sidebarShow)\r\n\r\n const toggleSidebar = () => {\r\n const val = [true, \"responsive\"].includes(sidebarShow)\r\n ? false\r\n : \"responsive\"\r\n dispatch(setSidebar(val))\r\n }\r\n\r\n const toggleSidebarMobile = () => {\r\n const val = [false, \"responsive\"].includes(sidebarShow)\r\n ? true\r\n : \"responsive\"\r\n dispatch(setSidebar(val))\r\n }\r\n\r\n const isDistrict = window.location.host.includes(\"-district\")\r\n\r\n return (\r\n <CHeader\r\n withSubheader\r\n className=\"d-flex align-items-center justify-content-between\"\r\n >\r\n <CToggler\r\n inHeader\r\n className=\"ml-md-3 d-lg-none\"\r\n onClick={toggleSidebarMobile}\r\n />\r\n <CToggler\r\n inHeader\r\n className=\"ml-3 d-md-down-none\"\r\n onClick={toggleSidebar}\r\n />\r\n <CHeaderBrand className=\"mx-auto flex-grow-1 d-lg-none\" to=\"/\">\r\n <img\r\n src={Images.LOGO_HEADER}\r\n className={styles[\"header-logo\"]}\r\n />\r\n </CHeaderBrand>\r\n\r\n <CHeaderNav className=\"pr-3\">\r\n {!isDistrict && <NotificationButton />}\r\n <TheHeaderDropdown />\r\n </CHeaderNav>\r\n </CHeader>\r\n )\r\n}\r\n\r\nexport default TheHeader\r\n","import React, { FC, useEffect } from \"react\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\nconst TITLE = \"Not found\"\r\nconst NotFound: FC = () => {\r\n useEffect(() => {\r\n document.title = TITLE\r\n })\r\n return (\r\n <div className=\"not-found\">\r\n <div className=\"clearfix\">\r\n <h1 className=\"float-left display-3 mr-4\">404</h1>\r\n <div className=\"float-left\">\r\n <h4 className=\"pt-3\">Oops! You are lost.</h4>\r\n <p className=\"text-muted mb-2\">\r\n The page you are looking for was not found.\r\n </p>\r\n <div>\r\n <Link to=\"/\">Go to home</Link>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default NotFound\r\n","import React, { Suspense } from \"react\"\r\nimport { Route, Switch, useLocation } from \"react-router-dom\"\r\nimport { CContainer } from \"@coreui/react\"\r\nimport NotFound from \"../containers/Commons/NotFound\"\r\n\r\nconst loading = (\r\n <div className=\"pt-3 text-center\">\r\n <div className=\"sk-spinner sk-spinner-pulse\" />\r\n </div>\r\n)\r\n\r\nconst TheContent = ({ routes }: any) => {\r\n const location = useLocation()\r\n const { pathname } = location\r\n const dashboard = pathname === \"/\" ? \"box-container\" : \"\"\r\n return (\r\n <main className={`c-main ${dashboard}`}>\r\n <CContainer fluid className=\"h-100\">\r\n <Suspense fallback={loading}>\r\n <Switch>\r\n {routes.map((route: any, idx: any) => (\r\n <Route\r\n key={idx}\r\n path={route.path}\r\n exact={route.exact}\r\n component={route.component}\r\n />\r\n ))}\r\n <Route path=\"*\" component={NotFound} />\r\n </Switch>\r\n </Suspense>\r\n </CContainer>\r\n </main>\r\n )\r\n}\r\n\r\nexport default React.memo(TheContent)\r\n","import React, { FC, CSSProperties } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\n\r\nconst loadingStyle: CSSProperties = {\r\n minWidth: \"100vw\",\r\n minHeight: \"100vh\",\r\n position: \"fixed\",\r\n top: 0,\r\n left: 0,\r\n zIndex: 999999999,\r\n backgroundColor: \"rgba(0, 0, 0, 0.4)\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n}\r\n\r\nconst Loading: FC = () => {\r\n const isLoading = useSelector((state: any) => state.common.isLoading)\r\n\r\n return isLoading ? (\r\n <div style={loadingStyle}>\r\n <div className=\"spinner-border text-secondary\" role=\"status\">\r\n <span className=\"sr-only\">Loading...</span>\r\n </div>\r\n </div>\r\n ) : null\r\n}\r\n\r\nexport default Loading","import getAccessToken from \"./getAccessToken\"\r\nimport { checkToken } from \"../services/accountService\"\r\n\r\nconst firstCheckToken = async () => {\r\n try {\r\n const token = getAccessToken()\r\n if (!token) return false\r\n\r\n const tokenStatus = await checkToken(token)\r\n if (!tokenStatus.data) return false\r\n\r\n return true\r\n } catch (err) {\r\n return false\r\n }\r\n}\r\n\r\nexport default firstCheckToken\r\n","const canAccess = (userRoles: any[], componentRoles: any[]) => {\r\n if (!Array.isArray(userRoles)) {\r\n return false\r\n }\r\n if (Array.isArray(componentRoles)) {\r\n const intersects = userRoles.filter(i => componentRoles.includes(i))\r\n return intersects.length > 0\r\n }\r\n return true\r\n}\r\n\r\nexport default canAccess\r\n","import React, { useEffect, useMemo } from \"react\"\r\nimport { useHistory, useLocation } from \"react-router-dom\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\n\r\nimport { setUser } from \"../redux/commons/action\"\r\n\r\nimport TheSidebar from \"./TheSidebar\"\r\nimport TheHeader from \"./TheHeader\"\r\nimport TheContent from \"./TheContent\"\r\nimport Loading from \"../components/Loading/Loading\"\r\n\r\nimport { ACCESS_TOKEN } from \"../utils/constants\"\r\nimport firstCheckToken from \"../utils/firstCheckToken\"\r\nimport canAccessRoute from \"../utils/canAccessRoute\"\r\nimport { getInfo } from \"../services/accountService\"\r\n\r\nconst TheLayout = ({ routes, navigation }: any) => {\r\n const history = useHistory()\r\n const dispatch = useDispatch()\r\n const user = useSelector((state: any) => state.common.user)\r\n\r\n const location = useLocation()\r\n const isNotification = location.pathname.includes(\"notifications\")\r\n const isDistrict = window.location.host.includes(\"-district\")\r\n\r\n const authRoutes = useMemo(() => {\r\n return routes\r\n .filter((route: any) => canAccessRoute(user?.roles, route.roles))\r\n .filter((route: any) => !!route.isDistrict === isDistrict)\r\n }, [user])\r\n\r\n const authNavigations = useMemo(() => {\r\n return navigation\r\n .filter((nav: any) => canAccessRoute(user?.roles, nav.roles))\r\n .filter((nav: any) => !!nav.isDistrict === isDistrict)\r\n }, [user])\r\n\r\n useEffect(() => {\r\n checkAuthentication()\r\n }, [])\r\n\r\n const checkAuthentication = async () => {\r\n try {\r\n const tokenStatus = await firstCheckToken()\r\n tokenStatus ? loadInfo() : resetAuth()\r\n } catch (err) {\r\n resetAuth()\r\n }\r\n }\r\n\r\n const loadInfo = async () => {\r\n try {\r\n const info = await getInfo()\r\n if (!info) {\r\n resetAuth()\r\n }\r\n\r\n dispatch(setUser(info.data))\r\n } catch (err) {\r\n resetAuth()\r\n }\r\n }\r\n\r\n const resetAuth = () => {\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n history.push(\"/\")\r\n }\r\n\r\n if (!user) {\r\n return <Loading />\r\n }\r\n\r\n return (\r\n <div className=\"c-app c-default-layout\">\r\n {!isNotification && <TheSidebar navigation={authNavigations} />}\r\n <div className=\"c-wrapper\">\r\n {!isNotification && <TheHeader />}\r\n <div className=\"c-body bg-white\">\r\n <TheContent routes={authRoutes} />\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default TheLayout\r\n","import React, { CSSProperties, FC } from 'react'\r\nimport { Button } from 'reactstrap'\r\nimport { FaPlus } from 'react-icons/fa'\r\n\r\ninterface Props {\r\n text?: string\r\n onClick?(): void\r\n}\r\n\r\nconst buttonTextStyle: CSSProperties = {\r\n fontWeight: 500\r\n}\r\n\r\nconst buttonStyle: CSSProperties = {\r\n height: 38\r\n}\r\n\r\nconst AddButton: FC<Props> = ({ text, onClick }: Props) => {\r\n return (\r\n <Button\r\n onClick={onClick}\r\n color='success'\r\n style={buttonStyle}\r\n className='d-flex align-items-center'\r\n >\r\n <FaPlus />\r\n <span className='ml-2' style={buttonTextStyle}>\r\n {text}\r\n </span>\r\n </Button>\r\n )\r\n}\r\n\r\nexport default AddButton\r\n","import React, { FC } from \"react\"\r\nimport { FaTrashAlt } from \"react-icons/fa\"\r\ninterface Props {\r\n onClick?: () => any\r\n}\r\n\r\nconst DeleteButtonIcon: FC<Props> = ({ onClick }: Props) => {\r\n return (\r\n <div\r\n className=\"d-inline text-center cursor-pointer hover-opacity\"\r\n title=\"Delete\"\r\n onClick={onClick}\r\n >\r\n <FaTrashAlt />\r\n </div>\r\n )\r\n}\r\n\r\nexport default DeleteButtonIcon\r\n","import React, { FC } from \"react\"\r\nimport { Button } from \"reactstrap\"\r\n\r\ninterface Props {\r\n label: string\r\n onClick: () => any\r\n}\r\n\r\nconst LinkEditButton: FC<Props> = ({ label, onClick }: Props) => {\r\n return (\r\n <Button className=\"text-left py-0\" color=\"link\" onClick={onClick}>\r\n {label}\r\n </Button>\r\n )\r\n}\r\n\r\nexport default LinkEditButton\r\n","import React, { CSSProperties, FC } from \"react\"\r\nimport { Alert } from \"reactstrap\"\r\n\r\ninterface Props {\r\n label: string\r\n className?: string\r\n style?: CSSProperties\r\n}\r\n\r\nconst EmptyDataAlert: FC<Props> = ({ label, className, style }: Props) => {\r\n return (\r\n <Alert color=\"primary\" className={className} style={style}>\r\n No {label} to display\r\n </Alert>\r\n )\r\n}\r\n\r\nEmptyDataAlert.defaultProps = {\r\n className: \"\",\r\n style: {}\r\n}\r\n\r\nexport default EmptyDataAlert\r\n","import React, { useEffect, useState } from \"react\"\r\nimport Select from \"react-select\"\r\nimport {\r\n Col,\r\n // Input,\r\n Pagination,\r\n PaginationItem,\r\n PaginationLink,\r\n Row\r\n} from \"reactstrap\"\r\nimport {\r\n DEFAULT_PAGE_SIZE_VALUES,\r\n DEFAULT_PAGE_SIZE\r\n} from \"../../utils/constants\"\r\n\r\nconst CustomPagination = (props: any) => {\r\n const { filters, changePage, totalRecordCount, changePageSize } = props\r\n const [input, setInput] = useState<string>(\"\")\r\n\r\n useEffect(() => {\r\n setInput(filters.currentPage.toString())\r\n }, [filters.currentPage])\r\n\r\n return (\r\n <Row>\r\n <Col md={12} className=\"d-flex justify-content-end\">\r\n <Pagination>\r\n <div className=\"mr-1 pagination-dropdown\">\r\n <Select\r\n className=\"text-center\"\r\n value={\r\n !!filters && !!filters.pageSize\r\n ? {\r\n label: filters.pageSize,\r\n value: filters.pageSize\r\n }\r\n : DEFAULT_PAGE_SIZE\r\n }\r\n options={DEFAULT_PAGE_SIZE_VALUES}\r\n onChange={(e: any) => changePageSize(e.value)}\r\n />\r\n </div>\r\n\r\n <PaginationItem className=\"mr-1\">\r\n <PaginationLink\r\n previous\r\n tag=\"button\"\r\n className=\"h-100\"\r\n disabled={filters.currentPage <= 1}\r\n onClick={() => changePage(filters.currentPage - 1)}\r\n >\r\n Prev\r\n </PaginationLink>\r\n </PaginationItem>\r\n\r\n <input\r\n type=\"text\"\r\n id=\"pageNumberInput\"\r\n className=\"page-input text-center pagination-input\"\r\n onChange={(e: any) => setInput(e.target.value)}\r\n onKeyUp={(e: any) => {\r\n if (e.key === \"Enter\" || e.keyCode === 13) {\r\n changePage(parseInt(input))\r\n }\r\n }}\r\n value={input}\r\n />\r\n\r\n <PaginationItem className=\"ml-1\">\r\n <PaginationLink\r\n next\r\n tag=\"button\"\r\n className=\"h-100\"\r\n disabled={\r\n filters.currentPage >\r\n totalRecordCount / filters.pageSize\r\n }\r\n onClick={() => changePage(filters.currentPage + 1)}\r\n >\r\n Next\r\n </PaginationLink>\r\n </PaginationItem>\r\n </Pagination>\r\n </Col>\r\n </Row>\r\n )\r\n}\r\n\r\nexport default CustomPagination\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setEmailTemplateList = createAction<any>(\r\n \"emailTemplate/setEmailTemplateList\"\r\n)\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setMailCategory = createAction<Array<object> | undefined>(\r\n \"mailCategories/setMailCategory\"\r\n)\r\n","import { BASE_URL } from \"../utils/constants\"\r\nimport { api } from \"./api\"\r\nimport { Filter } from \"../types/Filter\"\r\n\r\nconst EMAIL_TEMPLATE_URL = `${BASE_URL}/api/emailtemplate`\r\n\r\nexport const get = (filter: Filter) =>\r\n api.get(EMAIL_TEMPLATE_URL, { params: filter })\r\n\r\nexport const getById = (id: number) => api.get(`${EMAIL_TEMPLATE_URL}/${id}`)\r\n\r\nexport const create = (data: any) => api.post(EMAIL_TEMPLATE_URL, data)\r\n\r\nexport const update = (data: any) =>\r\n api.put(`${EMAIL_TEMPLATE_URL}/${data.id}`, data)\r\n\r\nexport const remove = (id: number) => api.delete(`${EMAIL_TEMPLATE_URL}/${id}`)\r\n","import { BASE_URL } from \"../utils/constants\"\r\nimport { api } from \"./api\"\r\n\r\nconst MAIL_CATEGORY_URL = `${BASE_URL}/api/EmailTemplateCategory`\r\n\r\nexport const get = () => api.get(MAIL_CATEGORY_URL)\r\n","import { useState, useEffect, useCallback } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\n\r\nimport { setLoading, setModal, setAlert } from \"../../../redux/commons/action\"\r\nimport { setEmailTemplateList } from \"../../../redux/emailTemplates/action\"\r\nimport { DEFAULT_FILTER } from \"../../../utils/constants\"\r\nimport { Filter } from \"../../../types/Filter\"\r\nimport { setMailCategory } from \"../../../redux/mailCategories/action\"\r\nimport { get, remove } from \"../../../services/emailTemplateService\"\r\nimport { get as getCategory } from \"../../../services/mailCategoryService\"\r\n\r\nconst EMAIL_TEMPLATE_URL = \"/admin/email-template\"\r\nconst CREATE_TEMPLATE_URL = \"/admin/create-email-template\"\r\nconst TITLE = \"Email template list\"\r\n\r\nconst useEmailTemplateList = () => {\r\n const history = useHistory()\r\n const emailTemplateList = useSelector(\r\n (state: any) => state.emailTemplate.emailTemplateList\r\n )\r\n const totalItems = useSelector(\r\n (state: any) => state.emailTemplate.totalItems\r\n )\r\n const mailCategoryList = useSelector(\r\n (state: any) => state.mailCategory.mailCategoryList\r\n )\r\n const [filters, setFilters] = useState<Filter>(DEFAULT_FILTER)\r\n const changeFilters = (updatedFilters: any) =>\r\n setFilters({\r\n ...filters,\r\n ...updatedFilters\r\n })\r\n\r\n const dispatch = useDispatch()\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await get(filters)\r\n const { items, totalItems } = res.data\r\n dispatch(\r\n setEmailTemplateList({ emailTemplateList: items, totalItems })\r\n )\r\n if (!!mailCategoryList && mailCategoryList.length == 0) {\r\n const response = await getCategory()\r\n dispatch(setMailCategory(response.data.items))\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [dispatch, filters])\r\n\r\n const removeData = useCallback((id: number) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: \"Do you want to remove this email template?\",\r\n onConfirm: async () => {\r\n await remove(id)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Remove template successfully\"\r\n })\r\n )\r\n changeFilters({currentPage: 1})\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const goToDetail = useCallback((id?: number) => {\r\n const url = !!id ? `${EMAIL_TEMPLATE_URL}/${id}` : CREATE_TEMPLATE_URL\r\n history.push(url)\r\n }, [])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [filters])\r\n\r\n return {\r\n emailTemplateList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n getData,\r\n removeData,\r\n goToDetail,\r\n mailCategoryList\r\n }\r\n}\r\n\r\nexport default useEmailTemplateList\r\n","import React, { FC } from \"react\"\r\nimport { Row, Col, Table } from \"reactstrap\"\r\n\r\nimport AddButton from \"../../../components/Buttons/AddButton\"\r\nimport DeleteButtonIcon from \"../../../components/Buttons/DeleteButtonIcon\"\r\nimport LinkEditButton from \"../../../components/Buttons/LinkEditButton\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport { format } from \"date-fns\"\r\nimport { DATE_RESULT } from \"../../../utils/constants\"\r\nimport useEmailTemplateList from \"../hooks/useEmailTemplateList\"\r\n\r\nconst header = \"Email template\"\r\n\r\nconst EmailTemplateList: FC = () => {\r\n const {\r\n emailTemplateList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n removeData,\r\n goToDetail,\r\n mailCategoryList\r\n } = useEmailTemplateList()\r\n\r\n const onRemove = (id: number) => {\r\n removeData(id)\r\n }\r\n\r\n return (\r\n <div className=\"fadeIn animated\">\r\n <h5 className=\"mb-2\">{header}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={4}>\r\n <AddButton\r\n text=\"Create template\"\r\n onClick={() => goToDetail()}\r\n />\r\n </Col>\r\n <Col\r\n md={4}\r\n className=\"d-flex align-items-center justify-content-end\"\r\n >\r\n Total of templates: {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n {emailTemplateList && emailTemplateList.length > 0 ? (\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">Template name</th>\r\n <th className=\"align-top\">Category name</th>\r\n <th className=\"align-top\">Created date</th>\r\n <th className=\"text-center\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {emailTemplateList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n <LinkEditButton\r\n label={record.subject}\r\n onClick={() =>\r\n goToDetail(record.id)\r\n }\r\n />\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.category.name}\r\n </td>\r\n <td className=\"align-middle\">\r\n {format(\r\n new Date(record.createdAt),\r\n DATE_RESULT\r\n )}\r\n </td>\r\n\r\n <td className=\"text-center align-middle\">\r\n <DeleteButtonIcon\r\n onClick={() =>\r\n onRemove(record.id)\r\n }\r\n />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n ) : (\r\n <EmptyDataAlert label=\"template\" />\r\n )}\r\n <Row className=\"mt-2\">\r\n <Col md={12}>\r\n <CustomPagination\r\n filters={filters}\r\n totalRecordCount={totalItems}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </Col>\r\n <Col md={4}>\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">Category name</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {mailCategoryList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n {record.name}\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default EmailTemplateList\r\n","import React, { FC, CSSProperties } from \"react\"\r\nimport { Row, Col, Button } from \"reactstrap\"\r\n\r\ninterface Props {\r\n confirmText: string\r\n onConfirm: () => any\r\n onCancel: () => any\r\n}\r\n\r\nconst style: CSSProperties = {\r\n width: \"100%\",\r\n position: \"fixed\",\r\n bottom: 0,\r\n backgroundColor: \"#fff\",\r\n borderTop: \"1px solid #ddd\",\r\n marginTop: \"20px\",\r\n marginLeft: \"-30px\",\r\n padding: \"8px\"\r\n}\r\n\r\nconst DetailActionButtons: FC<Props> = ({\r\n confirmText,\r\n onConfirm,\r\n onCancel\r\n}: Props) => {\r\n return (\r\n <Row form style={style}>\r\n <Col md={12}>\r\n <Button\r\n color=\"primary\"\r\n size=\"sm\"\r\n className=\"px-4 pl-1 mr-2 ml-3\"\r\n onClick={onConfirm}\r\n >\r\n {confirmText}\r\n </Button>\r\n <Button size=\"sm\" className=\"px-4 mr-2 ml-2\" onClick={onCancel}>\r\n Cancel\r\n </Button>\r\n </Col>\r\n </Row>\r\n )\r\n}\r\n\r\nexport default DetailActionButtons\r\n","import React, { FC } from \"react\"\r\nimport { FaPlus } from \"react-icons/fa\"\r\ninterface Props {\r\n onClick: () => any\r\n}\r\n\r\nconst AddButtonIcon: FC<Props> = ({ onClick } : Props) => {\r\n return <div className=\"d-inline text-center cursor-pointer hover-opacity\" title=\"Delete\" onClick={onClick}>\r\n <FaPlus />\r\n </div>\r\n}\r\n\r\nexport default AddButtonIcon\r\n","import React, { FC } from \"react\"\r\nimport { Table } from \"reactstrap\"\r\n\r\nimport AddButtonIcon from \"../../../components/Buttons/AddButtonIcon\"\r\n\r\ninterface Props {\r\n onClick: any\r\n isResetPasswordTemplate: any\r\n}\r\n\r\nconst defaultparams = [\r\n { label: \"$USER_FIRST_NAME$\", meaning: \"User first name\" },\r\n { label: \"$USER_LAST_NAME$\", meaning: \"User last name\" },\r\n { label: \"$PASSWORD$\", meaning: \"Password\" }\r\n]\r\n\r\nconst MailSubject: FC<Props> = ({\r\n onClick,\r\n isResetPasswordTemplate\r\n}: Props) => {\r\n !!isResetPasswordTemplate\r\n let params = !!isResetPasswordTemplate\r\n ? [...defaultparams, { label: \"$RESET_LINK$\", meaning: \"Reset link\" }]\r\n : defaultparams\r\n return (\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">Params</th>\r\n <th className=\"align-top\">Meaning</th>\r\n <th />\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {params.map(param => (\r\n <tr key={param.label}>\r\n <td className=\"align-middle\">{param.label}</td>\r\n <td className=\"align-middle\">{param.meaning}</td>\r\n <td className=\"text-center align-middle\">\r\n <AddButtonIcon onClick={() => onClick(param)} />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n )\r\n}\r\n\r\nexport default MailSubject\r\n","import React, { useEffect } from \"react\"\r\nimport Select from \"react-select\"\r\nimport { setMailCategory } from \"../../redux/mailCategories/action\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { get as getCategory } from \"../../services/mailCategoryService\"\r\n\r\nconst MailCategorySelector = (props: any) => {\r\n const dispatch = useDispatch()\r\n\r\n const mailCategoryList = useSelector(\r\n (state: any) => state.mailCategory.mailCategoryList\r\n )\r\n useEffect(() => {\r\n fetchMailCategory()\r\n }, [])\r\n const fetchMailCategory = async () => {\r\n try {\r\n const res = await getCategory()\r\n dispatch(setMailCategory(res.data.items))\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n }\r\n const { id } = props\r\n const arrCategory = mailCategoryList.map((i: any) => {\r\n return {\r\n id: i.id,\r\n value: i.id,\r\n label: i.name\r\n }\r\n })\r\n const initValue = !!id\r\n ? arrCategory.find((option: any) => option.value === id) || null\r\n : null\r\n\r\n return <Select options={arrCategory} value={initValue} {...props} />\r\n}\r\n\r\nexport default MailCategorySelector\r\n","import React, { FC, memo } from \"react\"\r\nimport { Label } from \"reactstrap\"\r\n\r\ninterface Props {\r\n text: string\r\n}\r\n\r\nconst RequiredLabel: FC<Props> = ({ text }: Props) => {\r\n return (\r\n <Label>\r\n {text}\r\n <span className=\"ml-2 text-danger\">*</span>\r\n </Label>\r\n )\r\n}\r\n\r\nexport default memo(RequiredLabel)\r\n","import React from \"react\"\r\nimport { Prompt } from \"react-router-dom\"\r\n\r\nconst quitAlertMessage =\r\n \"You have some changes. Click OK to discard or click Cancel to continue edit, then click Update below to save your changes.\"\r\n\r\nexport default function QuitPrompt(props: any) {\r\n const { when } = props\r\n return <Prompt when={when} message={quitAlertMessage} />\r\n}\r\n","import React, { FC, Fragment } from \"react\"\r\n\r\ninterface Props {\r\n label: string\r\n onRemove: any\r\n}\r\n\r\nconst AttachmentFile: FC<Props> = ({ label, onRemove }: Props) => {\r\n return (\r\n <Fragment>\r\n <span className=\"mr-2\">{label}</span>\r\n <i\r\n className=\"fa fa-times text-danger cursor-pointer hover-opacity\"\r\n onClick={onRemove}\r\n />\r\n </Fragment>\r\n )\r\n}\r\n\r\nexport default AttachmentFile\r\n","import { BASE_URL } from \"../utils/constants\"\r\nimport { apiUpload, api } from \"./api\"\r\n\r\nconst UPLOAD_FILE_URL = `${BASE_URL}/api/file`\r\nconst SYSTEM_PROFILE = `${UPLOAD_FILE_URL}/system/profile`\r\nconst SYSTEM_STUDENT_BADGE = `${UPLOAD_FILE_URL}/system/student-badge`\r\nconst SYSTEM_CERTIFICATE = `${UPLOAD_FILE_URL}/system/certificate`\r\nconst SYSTEM_EMAIL = `${UPLOAD_FILE_URL}/system/email-attachment`\r\nconst SYSTEM_QUESTION = `${UPLOAD_FILE_URL}/system/question`\r\nconst SYSTEM_ANSWER = `${UPLOAD_FILE_URL}/system/answer`\r\nconst SYSTEM_TUTORIAL = `${UPLOAD_FILE_URL}/system/tutorial`\r\nconst CUSTOM_KEY = `${UPLOAD_FILE_URL}/custom-key`\r\nconst DELETE_FILE = `${UPLOAD_FILE_URL}/delete-file`\r\nconst DELETE_FOLDER = `${UPLOAD_FILE_URL}/delete-folder`\r\nconst CREATE_FOLDER = `${UPLOAD_FILE_URL}/create-folder`\r\nconst RENAME_FILE = `${UPLOAD_FILE_URL}/rename-file`\r\n\r\nexport const uploadFile = (formData: FormData) =>\r\n apiUpload.post(UPLOAD_FILE_URL, formData)\r\nexport const systemStudentBadge = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_STUDENT_BADGE, formData)\r\nexport const systemCertificateUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_CERTIFICATE, formData)\r\nexport const systemProfileUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_PROFILE, formData)\r\nexport const systemEmailUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_EMAIL, formData)\r\nexport const systemQuestionUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_QUESTION, formData)\r\nexport const systemAnswerUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_ANSWER, formData)\r\nexport const systemTutorialUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_TUTORIAL, formData)\r\nexport const customKeyUpload = (formData: FormData) =>\r\n apiUpload.post(CUSTOM_KEY, formData)\r\nexport const deleteFile = (key: string) =>\r\n api.delete(`${DELETE_FILE}?key=${key}`)\r\nexport const deleteFolder = (key: string) =>\r\n api.delete(`${DELETE_FOLDER}?key=${key}`)\r\nexport const createFolder = (prefix: string, folderName: string) =>\r\n api.post(CREATE_FOLDER, {\r\n prefix: prefix || \"\",\r\n folderName: folderName\r\n })\r\nexport const renameFile = (key: string, name: string) =>\r\n api.post(RENAME_FILE, { key: key, name: name })\r\n","import getFileUrl from \"../utils/getFileUrl\"\r\nimport { ANSWER_EDITOR_HEIGHT } from \"./../utils/constants\"\r\nimport {\r\n systemEmailUpload,\r\n systemQuestionUpload,\r\n systemAnswerUpload,\r\n systemTutorialUpload\r\n} from \"../services/fileServices\"\r\n\r\nconst config: any = {\r\n height: 500,\r\n menubar: false,\r\n force_br_newlines: true,\r\n force_p_newlines: false,\r\n branding: false,\r\n plugins: `advlist autolink lists link image charmap print preview anchor\r\n searchreplace visualblocks code fullscreen\r\n insertdatetime media table paste code help wordcount media`,\r\n toolbar: `undo redo | formatselect | bold italic backcolor | \\\r\n alignleft aligncenter alignright alignjustify | \\\r\n bullist numlist outdent indent | removeformat | image`,\r\n paste_data_images: true\r\n}\r\n\r\nconst email = {\r\n ...config,\r\n images_upload_handler: async function (blobInfo: any, success: Function) {\r\n const imageFile = new FormData()\r\n imageFile.append(\"file\", blobInfo.blob(), blobInfo.filename())\r\n try {\r\n const { data } = await systemEmailUpload(imageFile)\r\n success(getFileUrl(data.key))\r\n } catch (err) {\r\n return\r\n }\r\n }\r\n}\r\n\r\nconst question = {\r\n ...config,\r\n images_upload_handler: async function (blobInfo: any, success: any) {\r\n const imageFile = new FormData()\r\n imageFile.append(\"file\", blobInfo.blob(), blobInfo.filename())\r\n try {\r\n const { data } = await systemQuestionUpload(imageFile)\r\n success(getFileUrl(data.key))\r\n } catch (err) {\r\n return\r\n }\r\n }\r\n}\r\n\r\nconst answer = {\r\n ...config,\r\n height: ANSWER_EDITOR_HEIGHT,\r\n images_upload_handler: async function (blobInfo: any, success: Function) {\r\n const imageFile = new FormData()\r\n imageFile.append(\"file\", blobInfo.blob(), blobInfo.filename())\r\n try {\r\n const { data } = await systemAnswerUpload(imageFile)\r\n success(getFileUrl(data.key))\r\n } catch (err) {\r\n return\r\n }\r\n }\r\n}\r\n\r\nconst tutorial = {\r\n ...config,\r\n height: ANSWER_EDITOR_HEIGHT,\r\n media_live_embeds: true,\r\n plugins: `advlist autolink lists link image charmap print preview anchor\r\n searchreplace visualblocks code fullscreen\r\n insertdatetime media table paste code help wordcount media`,\r\n toolbar: `undo redo | formatselect | bold italic backcolor | \\\r\n alignleft aligncenter alignright alignjustify | \\\r\n bullist numlist outdent indent | removeformat | image | media`,\r\n images_upload_handler: async function (blobInfo: any, success: Function) {\r\n const imageFile = new FormData()\r\n imageFile.append(\"file\", blobInfo.blob(), blobInfo.filename())\r\n try {\r\n const { data } = await systemTutorialUpload(imageFile)\r\n success(getFileUrl(data.key))\r\n } catch (err) {\r\n return\r\n }\r\n },\r\n file_picker_callback: function (cb: any) {\r\n var input = document.createElement(\"input\")\r\n input.setAttribute(\"type\", \"file\")\r\n input.setAttribute(\"accept\", \"video/*\")\r\n input.onchange = async function (e: any) {\r\n const file = e.target.files[0]\r\n const { name } = file\r\n const formData = new FormData()\r\n formData.append(\"file\", file, name)\r\n\r\n const { data } = await systemTutorialUpload(formData)\r\n cb(getFileUrl(data.key))\r\n }\r\n\r\n input.click()\r\n }\r\n}\r\n\r\nconst editorConfig = {\r\n email,\r\n question,\r\n answer,\r\n tutorial\r\n}\r\n\r\nexport default editorConfig\r\n","import { useState, useEffect, useCallback } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\n\r\nimport { setLoading, setAlert } from \"../../../redux/commons/action\"\r\nimport { getById, update, create } from \"../../../services/emailTemplateService\"\r\nimport { systemEmailUpload } from \"../../../services/fileServices\"\r\n\r\ntype Attachment = {\r\n id?: number\r\n name: string\r\n key: string\r\n}\r\n\r\ntype EmailTemplateDetail = {\r\n id?: number\r\n subject: string\r\n categoryId: number\r\n body: string\r\n attachments: Attachment[]\r\n}\r\n\r\nconst initValue: EmailTemplateDetail = {\r\n id: 0,\r\n subject: \"\",\r\n categoryId: 0,\r\n body: \"\",\r\n attachments: []\r\n}\r\n\r\nconst EMAIL_TEMPLATE_LIST_URL = \"/admin/email-template\"\r\nconst TITLE = \"Email template detail\"\r\nconst MAX_FILES_SIZE = 4194304\r\n\r\nconst useEmailTemplateDetail = (id?: number) => {\r\n let editorRef: any\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const [\r\n emailTemplateDetail,\r\n setEmailTemplateDetail\r\n ] = useState<EmailTemplateDetail>(initValue)\r\n const [edited, setEdited] = useState<boolean>(false)\r\n const setEditedTrue = async () => {\r\n localStorage.setItem(window.location.href, \"true\")\r\n setEdited(true)\r\n }\r\n\r\n const [removedFiles, setRemovedFiles] = useState<string[]>([])\r\n const [fileUpload, setFileUpload] = useState<any>([])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n setEdited(false)\r\n if (!!localStorage.getItem(window.location.href))\r\n localStorage.removeItem(window.location.href)\r\n }, [])\r\n useEffect(() => {\r\n !!id && getData()\r\n }, [id])\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const res = await getById(id as number)\r\n setEmailTemplateDetail({\r\n id: res.data.id,\r\n subject: res.data.subject,\r\n categoryId: res.data.category.id,\r\n body: res.data.body,\r\n attachments: res.data.attachments || []\r\n })\r\n document.title = res.data.subject\r\n editorRef &&\r\n editorRef.editor.execCommand(\r\n \"mceSetContent\",\r\n false,\r\n res.data.body\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [id])\r\n\r\n const setEditorRef = (node: any) => (editorRef = node)\r\n\r\n const addParams = (params: any) => {\r\n editorRef &&\r\n editorRef.editor.execCommand(\r\n \"mceInsertContent\",\r\n false,\r\n ` ${params.label}`\r\n )\r\n }\r\n\r\n const backToList = useCallback(() => {\r\n history.push(EMAIL_TEMPLATE_LIST_URL)\r\n }, [])\r\n\r\n const confirmData = useCallback(\r\n async (data: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n if (!!fileUpload && !!fileUpload.length) {\r\n const fileData: any = await uploadFiles()\r\n const newAttachments = fileData.map((item: any) => ({\r\n key: item.data.key,\r\n name: item.data.name\r\n }))\r\n data.attachments = [...data.attachments, ...newAttachments]\r\n }\r\n const next = !!id ? update : create\r\n\r\n await next(data)\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `${\r\n !!id ? \"Update\" : \"Create\"\r\n } template successfully`\r\n })\r\n )\r\n\r\n backToList()\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [id, fileUpload]\r\n )\r\n\r\n const onAttachFile = () => {\r\n const inputs = document.getElementsByClassName(\"input-attachment\")\r\n const newInput = document.createElement(\"input\")\r\n const emailDetail = document.getElementById(\"email-detail\")\r\n emailDetail?.append(newInput)\r\n newInput.className = \"input-attachment\"\r\n newInput.id = `inputAttachment-${inputs.length + 1}`\r\n newInput.type = \"file\"\r\n newInput.style.display = \"none\"\r\n newInput.setAttribute(\"multiple\", \"multiple\")\r\n newInput.addEventListener(\"change\", updateAttachment)\r\n newInput.click()\r\n }\r\n\r\n const updateAttachment = () => {\r\n const files: any = []\r\n let totalSize = 0\r\n\r\n const attachmentInputs: any = document.getElementsByClassName(\r\n \"input-attachment\"\r\n )\r\n\r\n for (const attachmentInput of attachmentInputs) {\r\n for (const file of attachmentInput.files) {\r\n totalSize += file.size\r\n\r\n if (totalSize > MAX_FILES_SIZE) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Max attachment size is 4MB\"\r\n })\r\n )\r\n totalSize -= file.size\r\n attachmentInput.remove()\r\n }\r\n }\r\n }\r\n\r\n for (const attachmentInput of attachmentInputs) {\r\n for (const file of attachmentInput.files) {\r\n const { name } = file\r\n\r\n if (\r\n !removedFiles.includes(file) &&\r\n !files.some((file: any) => file.name === name)\r\n ) {\r\n files.push({ name, inputId: attachmentInput.id })\r\n }\r\n }\r\n\r\n continue\r\n }\r\n\r\n setFileUpload(files)\r\n }\r\n\r\n const removeAttachment = (inputId: string, fileName: string) => {\r\n if (\r\n fileUpload.filter((item: any) => item.inputId === inputId)\r\n .length === 1\r\n ) {\r\n const thisInput = document.getElementById(inputId)\r\n thisInput?.remove()\r\n\r\n let newRemovedFile = fileUpload.filter(\r\n (removed: any) => removed.inputId === inputId\r\n )\r\n\r\n fileUpload.filter(\r\n (item: any) => item.inputId !== newRemovedFile.inputId\r\n )\r\n removedFiles.push(newRemovedFile)\r\n\r\n setRemovedFiles([...removedFiles])\r\n setFileUpload([...fileUpload])\r\n return\r\n }\r\n\r\n setRemovedFiles([...removedFiles, fileName])\r\n }\r\n\r\n useEffect(() => {\r\n updateAttachment()\r\n }, [removedFiles])\r\n\r\n const uploadFiles = async () => {\r\n const attachmentInputs: any = document.getElementsByClassName(\r\n \"input-attachment\"\r\n )\r\n\r\n const promises: Promise<any>[] = []\r\n\r\n for (const attachmentInput of attachmentInputs) {\r\n for (const file of attachmentInput.files) {\r\n const { name } = file\r\n const formData = new FormData()\r\n formData.append(\"file\", file, name)\r\n promises.push(systemEmailUpload(formData))\r\n }\r\n }\r\n\r\n return Promise.all(promises)\r\n }\r\n\r\n return {\r\n emailTemplateDetail,\r\n setEditorRef,\r\n addParams,\r\n backToList,\r\n confirmData,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n onAttachFile,\r\n updateAttachment,\r\n fileUpload,\r\n removeAttachment\r\n }\r\n}\r\n\r\nexport default useEmailTemplateDetail\r\n","import * as yup from \"yup\"\r\n\r\nconst schema = yup.object({\r\n subject: yup.string().required(\"Template subject is required\"),\r\n categoryId: yup\r\n .number()\r\n .required(\"Template category is required\")\r\n .test(\r\n \"test category id\",\r\n \"Template category is required\",\r\n (value: number) => value >= 1\r\n ),\r\n comment: yup.string(),\r\n body: yup.string().required(\"Template body is required\")\r\n})\r\n\r\nexport default schema\r\n","import React, { FC } from \"react\"\r\nimport { Row, Col, Input, Label, Button } from \"reactstrap\"\r\nimport { useParams } from \"react-router-dom\"\r\nimport { Editor } from \"@tinymce/tinymce-react\"\r\nimport { Formik } from \"formik\"\r\n\r\nimport DetailActionButtons from \"../../../components/Buttons/DetailActionButtons\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport MailParam from \"../components/MailParam\"\r\nimport MailCategorySelector from \"../../../components/Selectors/MailCategorySelectors\"\r\nimport RequiredLabel from \"../../../components/Labels/RequiredLabel\"\r\nimport QuitPrompt from \"../../../components/Others/QuitPrompt\"\r\nimport AttachmentFile from \"../components/AttachmentFile\"\r\nimport editorConfig from \"../../../configs/editorConfig\"\r\nimport { TINY_MCE_API_KEY } from \"../../../utils/constants\"\r\n\r\nimport useEmailTemplateDetail from \"../hooks/useEmailTemplateDetail\"\r\nimport schema from \"../configs/emailTemplateSchema\"\r\nimport { useSelector } from \"react-redux\"\r\n\r\nconst CREATE_TEMPLATE_HEADER = \"Create email template\"\r\nconst EDIT_TEMPLATE_HEADER = \"Edit email template\"\r\n\r\nconst EmailTemplateDetail: FC = () => {\r\n const { id } = useParams<{ id: string }>()\r\n\r\n const {\r\n emailTemplateDetail,\r\n setEditorRef,\r\n addParams,\r\n backToList,\r\n confirmData,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n onAttachFile,\r\n fileUpload,\r\n removeAttachment\r\n } = useEmailTemplateDetail(parseInt(id))\r\n\r\n const header = !!id ? EDIT_TEMPLATE_HEADER : CREATE_TEMPLATE_HEADER\r\n\r\n const confirmText = !!id ? \"Update\" : \"Create\"\r\n\r\n const mailCategoryList = useSelector(\r\n (state: any) => state.mailCategory.mailCategoryList\r\n )\r\n return (\r\n <Formik\r\n initialValues={emailTemplateDetail}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={values => {\r\n confirmData(values)\r\n setEdited(false)\r\n if (!!localStorage.getItem(window.location.href))\r\n localStorage.removeItem(window.location.href)\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n setFieldValue,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit\r\n } = formikProps\r\n\r\n return (\r\n <div\r\n className=\"animated fadeIn detail-buttons-padding\"\r\n id=\"email-detail\"\r\n >\r\n <QuitPrompt when={edited} />\r\n <h5 className=\"mb-2\">{header}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={8}>\r\n <RequiredLabel text=\"Mail subject\" />\r\n <Input\r\n placeholder=\"Mail subject\"\r\n name=\"subject\"\r\n value={values.subject}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"subject\")}\r\n className=\"selector-input\"\r\n />\r\n {touched.subject && errors.subject && (\r\n <ErrorHandler text={errors.subject} />\r\n )}\r\n </Col>\r\n <Col md={4}>\r\n <RequiredLabel text=\"Category\" />\r\n <MailCategorySelector\r\n onChange={(e: any) => {\r\n setFieldValue(\"categoryId\", e.value)\r\n setEditedTrue()\r\n }}\r\n id={values.categoryId}\r\n />\r\n {touched.categoryId && errors.categoryId && (\r\n <ErrorHandler text={errors.categoryId} />\r\n )}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n <Row>\r\n <Col md={12} className=\"mb-2\">\r\n <RequiredLabel text=\"Mail body\" />\r\n {(emailTemplateDetail.body || !id) && (\r\n <Editor\r\n ref={node => setEditorRef(node)}\r\n apiKey={TINY_MCE_API_KEY}\r\n initialValue={\r\n emailTemplateDetail.body\r\n }\r\n init={editorConfig.email}\r\n onEditorChange={content => {\r\n setFieldValue(\r\n \"body\",\r\n content\r\n )\r\n setEditedTrue()\r\n }}\r\n />\r\n )}\r\n {touched.body && errors.body && (\r\n <ErrorHandler text={errors.body} />\r\n )}\r\n </Col>\r\n <Col md={12}>\r\n <Row>\r\n <Col md={3}>\r\n <Button\r\n color=\"link\"\r\n size=\"sm\"\r\n className=\"pl-0\"\r\n onClick={onAttachFile}\r\n >\r\n Add attachment\r\n </Button>\r\n </Col>\r\n <Col md={12}>\r\n <Row>\r\n {values.attachments.map(\r\n attachment => (\r\n <Col\r\n md={2}\r\n key={\r\n attachment.key\r\n }\r\n >\r\n <AttachmentFile\r\n label={\r\n attachment.name\r\n }\r\n onRemove={() =>\r\n setFieldValue(\r\n \"attachments\",\r\n values.attachments.filter(\r\n a =>\r\n a.name !==\r\n attachment.name\r\n )\r\n )\r\n }\r\n />\r\n </Col>\r\n )\r\n )}\r\n {fileUpload.map(\r\n (\r\n file: any,\r\n index: number\r\n ) => (\r\n <Col\r\n md={2}\r\n key={index}\r\n className=\"d-flex align-items-center\"\r\n >\r\n <AttachmentFile\r\n label={\r\n file.name\r\n }\r\n onRemove={() =>\r\n removeAttachment(\r\n file.inputId,\r\n file.name\r\n )\r\n }\r\n />\r\n </Col>\r\n )\r\n )}\r\n </Row>\r\n </Col>\r\n </Row>\r\n </Col>\r\n </Row>\r\n </Col>\r\n <Col md={4}>\r\n <Label>Mail params</Label>\r\n <MailParam\r\n onClick={(param: any) => addParams(param)}\r\n isResetPasswordTemplate={\r\n values.categoryId ==\r\n (mailCategoryList &&\r\n mailCategoryList.length > 0 &&\r\n mailCategoryList.filter(\r\n (c: any) =>\r\n c.name == \"Reset password\"\r\n )[0].id)\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n <DetailActionButtons\r\n confirmText={confirmText}\r\n onConfirm={handleSubmit}\r\n onCancel={backToList}\r\n />\r\n </div>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default EmailTemplateDetail\r\n","import React, {\r\n forwardRef,\r\n useState,\r\n useCallback,\r\n useImperativeHandle\r\n} from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Button } from \"reactstrap\"\r\n\r\nimport { setAlert, setModal } from \"../../redux/commons/action\"\r\n\r\nconst CommonModal = (props: any, ref: any) => {\r\n const {\r\n header,\r\n children,\r\n onConfirm,\r\n onCancel,\r\n confirmText,\r\n cancelText,\r\n noFooter,\r\n size,\r\n edited,\r\n setEditedFalse\r\n } = props\r\n const [isOpen, setIsOpen] = useState(false)\r\n const dispatch = useDispatch()\r\n const showEditedWarningModal = (cb: any) => {\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: \"Are you sure to cancel?\",\r\n onConfirm: async () => {\r\n cb()\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n }\r\n const onToggle = () => {\r\n !!setEditedFalse && setEditedFalse()\r\n setIsOpen(!isOpen)\r\n !!isOpen && !!onCancel && onCancel()\r\n }\r\n const toggle = useCallback(\r\n (isShowConfirm?: boolean, cb?: any) => {\r\n if (!!isShowConfirm) {\r\n showEditedWarningModal(() => {\r\n onToggle()\r\n !!cb && cb()\r\n })\r\n } else {\r\n onToggle()\r\n !!cb && cb()\r\n }\r\n },\r\n [isOpen]\r\n )\r\n\r\n const cancel = useCallback(() => {\r\n toggle(!!edited, () => {\r\n onCancel && onCancel()\r\n })\r\n }, [toggle, onCancel, edited])\r\n\r\n useImperativeHandle(ref, () => ({\r\n toggle\r\n }))\r\n\r\n return (\r\n <Modal isOpen={isOpen} toggle={() => toggle(!!edited)} size={size}>\r\n <ModalHeader toggle={() => toggle(!!edited)}>{header}</ModalHeader>\r\n <ModalBody>{children}</ModalBody>\r\n {!noFooter && (\r\n <ModalFooter className=\"text-right\">\r\n {onConfirm && (\r\n <Button color=\"primary\" onClick={onConfirm}>\r\n {confirmText || \"Confirm\"}\r\n </Button>\r\n )}\r\n <Button onClick={cancel}>{cancelText || \"Cancel\"}</Button>\r\n </ModalFooter>\r\n )}\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default forwardRef(CommonModal)\r\n","import { Formik } from \"formik\"\r\nimport React, { forwardRef } from \"react\"\r\nimport { Col, Input, Row } from \"reactstrap\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport RequiredLabel from \"../../../components/Labels/RequiredLabel\"\r\nimport CommonModal from \"../../../components/Modals/CommonModal\"\r\n\r\nconst schema = yup.object({\r\n question: yup.string().required(\"Question is required\"),\r\n answer: yup.string().required(\"Answer is required\")\r\n})\r\n\r\nconst FaqDetailModal = (props: any, ref: any) => {\r\n const {\r\n header,\r\n confirmText,\r\n onConfirm,\r\n faqDetail,\r\n onCancel,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse\r\n } = props\r\n return (\r\n <Formik\r\n initialValues={faqDetail}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={(values, actions) => {\r\n onConfirm(values)\r\n actions.resetForm()\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit\r\n } = formikProps\r\n return (\r\n <CommonModal\r\n header={header}\r\n confirmText={confirmText}\r\n onConfirm={handleSubmit}\r\n onCancel={onCancel}\r\n ref={ref}\r\n edited={edited}\r\n setEdited={setEdited}\r\n setEditedFalse={setEditedFalse}\r\n >\r\n <Row>\r\n <Col md={12}>\r\n <RequiredLabel text=\"Question\" />\r\n <Input\r\n type=\"textarea\"\r\n name=\"question\"\r\n placeholder=\"Question\"\r\n value={values.question}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"question\")}\r\n />\r\n {touched.question && errors.question && (\r\n <ErrorHandler\r\n text={errors.question as string}\r\n />\r\n )}\r\n </Col>\r\n <Col md={12} className=\"pt-2\">\r\n <RequiredLabel text=\"Answer\" />\r\n <Input\r\n type=\"textarea\"\r\n rows={5}\r\n name=\"answer\"\r\n placeholder=\"Answer\"\r\n value={values.answer}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"answer\")}\r\n />\r\n {touched.answer && errors.answer && (\r\n <ErrorHandler\r\n text={errors.answer as string}\r\n />\r\n )}\r\n </Col>\r\n </Row>\r\n </CommonModal>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default forwardRef(FaqDetailModal)\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setFaqList = createAction<any>(\"faqs/setFaqList\")\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\nimport { Filter } from \"../types/Filter\"\r\n\r\nconst FAQ_URL = `${BASE_URL}/api/SystemFaq`\r\n\r\nexport const get = (filter: Filter) => api.get(FAQ_URL, { params: filter })\r\n\r\nexport const getById = (id: number) => api.get(`${FAQ_URL}/${id}`)\r\n\r\nexport const create = (data: any) => api.post(FAQ_URL, data)\r\n\r\nexport const update = (data: any) => api.put(`${FAQ_URL}/${data.id}`, data)\r\n\r\nexport const remove = (id: number) => api.delete(`${FAQ_URL}/${id}`)\r\n","import { useState, useEffect, useCallback } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { DEFAULT_FILTER } from \"../../../utils/constants\"\r\nimport { Filter } from \"../../../types/Filter\"\r\nimport { setFaqList } from \"../../../redux/faqs/action\"\r\nimport { setLoading, setModal, setAlert } from \"../../../redux/commons/action\"\r\n\r\nimport { get, remove } from \"../../../services/faqService\"\r\n\r\nconst TITLE = \"FAQ list\"\r\nconst useFaqList = () => {\r\n const faqList = useSelector((state: any) => state.faqs.faqList)\r\n const totalItems = useSelector((state: any) => state.faqs.totalItems)\r\n\r\n const [filters, setFilters] = useState<Filter>(DEFAULT_FILTER)\r\n const changeFilters = (updatedFilters: any) =>\r\n setFilters({\r\n ...filters,\r\n ...updatedFilters\r\n })\r\n\r\n const dispatch = useDispatch()\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await get(filters)\r\n const { items, totalItems } = res.data\r\n dispatch(setFaqList({ faqList: items, totalItems }))\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [dispatch, filters])\r\n\r\n const removeData = useCallback((id: number) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: \"Do you want to remove this FAQ?\",\r\n onConfirm: async () => {\r\n await remove(id)\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Remove question successfully\"\r\n })\r\n )\r\n changeFilters({ currentPage: 1 })\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [filters])\r\n\r\n return { faqList, totalItems, filters, changeFilters, getData, removeData }\r\n}\r\n\r\nexport default useFaqList\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setAlert, setLoading } from \"../../../redux/commons/action\"\r\nimport { create, getById, update } from \"../../../services/faqService\"\r\n\r\ntype FaqDetail = {\r\n question: string\r\n answer: string\r\n}\r\n\r\nconst initValue: FaqDetail = {\r\n question: \"\",\r\n answer: \"\"\r\n}\r\n\r\nconst useFaqDetail = () => {\r\n const dispatch = useDispatch()\r\n\r\n const [id, setId] = useState(0)\r\n const [faqDetail, setFaqDetail] = useState<FaqDetail>(initValue)\r\n const [edited, setEdited] = useState<boolean>(false)\r\n const setEditedTrue = async () => {\r\n localStorage.setItem(window.location.href, \"true\")\r\n setEdited(true)\r\n }\r\n const setEditedFalse = async () => {\r\n !!localStorage.getItem(window.location.href) &&\r\n localStorage.removeItem(window.location.href)\r\n setEdited(false)\r\n }\r\n useEffect(() => {\r\n !!id ? getData() : setFaqDetail(initValue)\r\n }, [id])\r\n useEffect(() => {\r\n setEditedFalse()\r\n }, [])\r\n\r\n const reset = () => {\r\n setFaqDetail(initValue)\r\n setId(0)\r\n }\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await getById(id)\r\n setFaqDetail(res.data)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [id])\r\n\r\n const confirmData = useCallback(\r\n async (values: any, cb: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const next = !!id ? update : create\r\n\r\n await next(values)\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `${\r\n !!id ? \"Update\" : \"Create\"\r\n } FAQ successfully`\r\n })\r\n )\r\n\r\n cb && cb()\r\n !!id && setId(0)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [id, faqDetail]\r\n )\r\n\r\n return {\r\n id,\r\n setId,\r\n faqDetail,\r\n confirmData,\r\n initValue,\r\n reset,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse\r\n }\r\n}\r\n\r\nexport default useFaqDetail\r\n","import React, { FC, useRef } from \"react\"\r\nimport { Row, Col, Table } from \"reactstrap\"\r\nimport DeleteButtonIcon from \"../../../components/Buttons/DeleteButtonIcon\"\r\nimport AddButton from \"../../../components/Buttons/AddButton\"\r\nimport LinkEditButton from \"../../../components/Buttons/LinkEditButton\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport QuitPrompt from \"../../../components/Others/QuitPrompt\"\r\n\r\nimport FaqDetailModal from \"../components/FaqDetailModal\"\r\n\r\nimport useFaqList from \"../hooks/useFaqList\"\r\nimport useFaqDetail from \"../hooks/useFaqDetail\"\r\n\r\nconst header = \"FAQ\"\r\n\r\nconst FaqList: FC = () => {\r\n const modal = useRef<any>()\r\n\r\n const {\r\n faqList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n getData,\r\n removeData\r\n } = useFaqList()\r\n\r\n const {\r\n id,\r\n setId,\r\n faqDetail,\r\n confirmData,\r\n reset,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse\r\n } = useFaqDetail()\r\n\r\n const openModal = (faqId?: number) => {\r\n !!faqId ? setId(faqId) : setId(0)\r\n modal && modal.current && modal.current.toggle()\r\n }\r\n\r\n const onConfirm = (values: any) => {\r\n confirmData(values, () => {\r\n modal && modal.current && modal.current.toggle()\r\n getData()\r\n })\r\n setEditedFalse()\r\n }\r\n\r\n const onRemove = (id: number) => {\r\n removeData(id)\r\n }\r\n const onCancel = () => reset()\r\n return (\r\n <div className=\"fadeIn animated\">\r\n <FaqDetailModal\r\n ref={modal}\r\n header={!!id ? \"Edit FAQ\" : \"Create FAQ\"}\r\n confirmText={!!id ? \"Update\" : \"Create\"}\r\n onConfirm={onConfirm}\r\n onCancel={onCancel}\r\n faqDetail={faqDetail}\r\n edited={edited}\r\n setEdited={setEdited}\r\n setEditedTrue={setEditedTrue}\r\n setEditedFalse={setEditedFalse}\r\n />\r\n <QuitPrompt when={edited} />\r\n <h5 className=\"mb-2\">{header}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={4}>\r\n <AddButton text=\"Create FAQ\" onClick={() => openModal()} />\r\n </Col>\r\n <Col\r\n md={4}\r\n className=\"d-flex align-items-center justify-content-end\"\r\n >\r\n Total of FAQs: {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n {faqList && faqList.length > 0 ? (\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">Question</th>\r\n <th className=\"align-top\">Answer</th>\r\n <th className=\"text-center\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {faqList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n <LinkEditButton\r\n label={record.question}\r\n onClick={() =>\r\n openModal(record.id)\r\n }\r\n />\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.answer}\r\n </td>\r\n <td className=\"text-center align-middle\">\r\n <DeleteButtonIcon\r\n onClick={() =>\r\n onRemove(record.id)\r\n }\r\n />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n ) : (\r\n <EmptyDataAlert label=\"FAQ\" />\r\n )}\r\n </Col>\r\n <Col md={8}>\r\n <CustomPagination\r\n filters={filters}\r\n totalRecordCount={totalItems}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default FaqList\r\n","import React from \"react\"\r\nimport Select from \"react-select\"\r\n\r\nconst CustomSelector = ({\r\n defaultValue,\r\n options,\r\n isDisabled,\r\n scrollBottom,\r\n ...rest\r\n}: any) => {\r\n const initValue =\r\n defaultValue !== null && typeof defaultValue !== \"undefined\"\r\n ? options.find((option: any) => option.value === defaultValue) ||\r\n null\r\n : null\r\n return (\r\n <Select\r\n isDisabled={isDisabled}\r\n options={options}\r\n value={initValue}\r\n menuPlacement={scrollBottom ? \"top\" : \"auto\"}\r\n {...rest}\r\n />\r\n )\r\n}\r\n\r\nexport default CustomSelector\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\nimport { Filter } from \"../types/Filter\"\r\n\r\nconst SKILL_URL = `${BASE_URL}/api/Skill`\r\n\r\nexport const get = (filter?: Filter) => api.get(SKILL_URL, { params: filter })\r\n\r\nexport const getById = (id: number) => api.get(`${SKILL_URL}/${id}`)\r\n\r\nexport const create = (data: any) => api.post(SKILL_URL, data)\r\n\r\nexport const update = (data: any) => api.put(`${SKILL_URL}/${data.id}`, data)\r\n\r\nexport const remove = (id: number) => api.delete(`${SKILL_URL}/${id}`)\r\n","import React, { useState, useEffect } from \"react\"\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\nimport { get } from \"../../../services/skillService\"\r\n\r\nconst SkillSelector = (props: any) => {\r\n const [skillList, setSkillList] = useState([])\r\n\r\n useEffect(() => {\r\n fetchSkill()\r\n }, [])\r\n\r\n const fetchSkill = async () => {\r\n try {\r\n const res = await get()\r\n setSkillList(res.data.items)\r\n } catch (err) {\r\n console.error(err.message)\r\n }\r\n }\r\n const { id, isDisabled } = props\r\n const arrSkill = skillList.map((i: any) => {\r\n return {\r\n id: i.id,\r\n value: i.id,\r\n label: i.path ? `${i.path}/${i.name}` : i.name\r\n }\r\n })\r\n\r\n return (\r\n <CustomSelector\r\n options={arrSkill}\r\n defaultValue={id}\r\n {...props}\r\n isDisabled={isDisabled}\r\n />\r\n )\r\n}\r\n\r\nexport default SkillSelector\r\n","import React, { forwardRef } from \"react\"\r\nimport { Row, Col, Input, Label } from \"reactstrap\"\r\nimport { Formik } from \"formik\"\r\nimport * as yup from \"yup\"\r\n\r\nimport RequiredLabel from \"../../../components/Labels/RequiredLabel\"\r\nimport CommonModal from \"../../../components/Modals/CommonModal\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport SkillSelector from \"./SkillSelector\"\r\n\r\nconst schema = yup.object({\r\n name: yup.string().required(\"Name is required\"),\r\n description: yup.string()\r\n})\r\n\r\nconst SkillDetailModal = (props: any, ref: any) => {\r\n const {\r\n header,\r\n confirmText,\r\n onConfirm,\r\n skillDetail,\r\n onCancel,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse,\r\n isDisabled\r\n } = props\r\n\r\n return (\r\n <Formik\r\n initialValues={skillDetail}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={(values, actions) => {\r\n onConfirm(values)\r\n actions.resetForm()\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit,\r\n resetForm\r\n } = formikProps\r\n\r\n return (\r\n <CommonModal\r\n header={header}\r\n confirmText={confirmText}\r\n onConfirm={handleSubmit}\r\n ref={ref}\r\n onCancel={() => {\r\n onCancel()\r\n resetForm()\r\n }}\r\n edited={edited}\r\n setEdited={setEdited}\r\n setEditedFalse={setEditedFalse}\r\n >\r\n <Row>\r\n <Col md={12} className=\"mb-2\">\r\n <RequiredLabel text=\"Name\" />\r\n <Input\r\n name=\"name\"\r\n placeholder=\"Name\"\r\n value={values.name}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"name\")}\r\n />\r\n {touched.name && errors.name && (\r\n <ErrorHandler\r\n text={errors.name as string}\r\n />\r\n )}\r\n </Col>\r\n <Col md={12} className=\"mb-2\">\r\n <Label>Description</Label>\r\n <Input\r\n type=\"textarea\"\r\n rows={5}\r\n name=\"description\"\r\n placeholder=\"Description\"\r\n value={values.description}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"description\")}\r\n />\r\n </Col>\r\n <Col md={12} className=\"mb-2\">\r\n <Label>Parent category</Label>\r\n <SkillSelector\r\n isDisabled={isDisabled}\r\n onChange={(e: any) => {\r\n formikProps.setFieldValue(\r\n \"parentSkillId\",\r\n e.value\r\n )\r\n setEditedTrue()\r\n }}\r\n id={values.parentSkillId}\r\n />\r\n </Col>\r\n </Row>\r\n </CommonModal>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default forwardRef(SkillDetailModal)\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSkillList = createAction<any>(\"skills/setSkillList\")\r\n","import { useState, useEffect, useCallback } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { DEFAULT_FILTER } from \"../../../utils/constants\"\r\nimport { Filter } from \"../../../types/Filter\"\r\nimport { setSkillList } from \"../../../redux/skills/action\"\r\nimport { setLoading, setModal, setAlert } from \"../../../redux/commons/action\"\r\n\r\nimport { get, remove } from \"../../../services/skillService\"\r\n\r\nconst TITLE = \"Skill list\"\r\nconst useSkillList = () => {\r\n const skillList = useSelector((state: any) => state.skills.skillList)\r\n const totalItems = useSelector((state: any) => state.skills.totalItems)\r\n\r\n const [filters, setFilters] = useState<Filter>(DEFAULT_FILTER)\r\n const changeFilters = (updatedFilters: any) =>\r\n setFilters({\r\n ...filters,\r\n ...updatedFilters\r\n })\r\n\r\n const dispatch = useDispatch()\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await get(filters)\r\n const { items, totalItems } = res.data\r\n dispatch(setSkillList({ skillList: items, totalItems }))\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [dispatch, filters])\r\n\r\n const removeData = useCallback((id: number) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: \"Do you want to remove this skill?\",\r\n onConfirm: async () => {\r\n try {\r\n await remove(id)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Remove skill successfully\"\r\n })\r\n )\r\n changeFilters({ currentPage: 1 })\r\n } catch (error) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n error.response?.data?.title ||\r\n error.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n }\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [filters])\r\n\r\n return {\r\n skillList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n getData,\r\n removeData\r\n }\r\n}\r\n\r\nexport default useSkillList\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setAlert, setLoading } from \"../../../redux/commons/action\"\r\nimport { create, getById, update } from \"../../../services/skillService\"\r\n\r\ntype SkillDetail = {\r\n name: string\r\n description: string\r\n path: string\r\n parentSkillId?: number | null\r\n}\r\n\r\nconst initValue: SkillDetail = {\r\n name: \"\",\r\n description: \"\",\r\n path: \"\",\r\n parentSkillId: null\r\n}\r\n\r\nconst useSkillDetail = () => {\r\n const dispatch = useDispatch()\r\n\r\n const [id, setId] = useState(0)\r\n const [skillDetail, setSkillDetail] = useState<SkillDetail>(initValue)\r\n const [edited, setEdited] = useState<boolean>(false)\r\n const setEditedTrue = async () => {\r\n localStorage.setItem(window.location.href, \"true\")\r\n setEdited(true)\r\n }\r\n const setEditedFalse = async () => {\r\n !!localStorage.getItem(window.location.href) &&\r\n localStorage.removeItem(window.location.href)\r\n setEdited(false)\r\n }\r\n useEffect(() => {\r\n !!id ? getData() : setSkillDetail(initValue)\r\n }, [id])\r\n\r\n const reset = () => {\r\n setId(0)\r\n setSkillDetail(initValue)\r\n }\r\n\r\n useEffect(() => {\r\n setEditedFalse()\r\n }, [])\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await getById(id)\r\n setSkillDetail(res.data)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [id])\r\n\r\n const confirmData = useCallback(\r\n async (values: any, cb: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const next = !!id ? update : create\r\n await next(values)\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `${\r\n !!id ? \"Update\" : \"Create\"\r\n } skill successfully`\r\n })\r\n )\r\n\r\n cb && cb()\r\n !!id && setId(0)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [id, skillDetail]\r\n )\r\n\r\n return {\r\n id,\r\n setId,\r\n skillDetail,\r\n confirmData,\r\n initValue,\r\n reset,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse\r\n }\r\n}\r\n\r\nexport default useSkillDetail\r\n","import React, { FC, useRef } from \"react\"\r\nimport { Row, Col, Table } from \"reactstrap\"\r\nimport DeleteButtonIcon from \"../../../components/Buttons/DeleteButtonIcon\"\r\nimport AddButton from \"../../../components/Buttons/AddButton\"\r\nimport LinkEditButton from \"../../../components/Buttons/LinkEditButton\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport QuitPrompt from \"../../../components/Others/QuitPrompt\"\r\n\r\nimport SkillDetailModal from \"../components/SkillDetailModal\"\r\n\r\nimport useSkillList from \"../hooks/useSkillList\"\r\nimport useSkillDetail from \"../hooks/useSkillDetail\"\r\n\r\nconst SkillList: FC = () => {\r\n const modal = useRef<any>()\r\n\r\n const {\r\n skillList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n getData,\r\n removeData\r\n } = useSkillList()\r\n\r\n const {\r\n id,\r\n setId,\r\n skillDetail,\r\n confirmData,\r\n reset,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse\r\n } = useSkillDetail()\r\n\r\n const openModal = (skillId?: number) => {\r\n !!skillId ? setId(skillId) : setId(0)\r\n modal && modal.current && modal.current.toggle()\r\n }\r\n\r\n const onConfirm = (values: any) => {\r\n confirmData(values, () => {\r\n modal && modal.current && modal.current.toggle()\r\n getData()\r\n })\r\n setEditedFalse()\r\n }\r\n\r\n const onRemove = (id: number) => {\r\n removeData(id)\r\n }\r\n\r\n const onCancel = () => reset()\r\n\r\n return (\r\n <div className=\"fadeIn animated\">\r\n <SkillDetailModal\r\n ref={modal}\r\n header={!!id ? \"Edit skill\" : \"Create skill\"}\r\n confirmText={!!id ? \"Update\" : \"Create\"}\r\n onCancel={onCancel}\r\n onConfirm={onConfirm}\r\n skillDetail={skillDetail}\r\n edited={edited}\r\n setEdited={setEdited}\r\n setEditedTrue={setEditedTrue}\r\n setEditedFalse={setEditedFalse}\r\n isDisabled={id}\r\n />\r\n <QuitPrompt when={edited} />\r\n <Row className=\"my-2\">\r\n <Col md={4}>\r\n <AddButton\r\n text=\"Create skill\"\r\n onClick={() => openModal()}\r\n />\r\n </Col>\r\n <Col\r\n md={4}\r\n className=\"d-flex align-items-center justify-content-end\"\r\n >\r\n Total of skills: {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n {skillList && skillList.length > 0 ? (\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">Name</th>\r\n <th className=\"align-top\">Description</th>\r\n <th className=\"text-center\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {skillList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n <LinkEditButton\r\n label={record.name}\r\n onClick={() =>\r\n openModal(record.id)\r\n }\r\n />\r\n {!!record.path && (\r\n <p className=\"mb-0 pl-3\">\r\n <i>{record.path}</i>\r\n </p>\r\n )}\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.description}\r\n </td>\r\n <td className=\"text-center align-middle\">\r\n <DeleteButtonIcon\r\n onClick={() =>\r\n onRemove(record.id)\r\n }\r\n />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n ) : (\r\n <EmptyDataAlert label=\"skill\" />\r\n )}\r\n </Col>\r\n <Col md={8} className=\"text-right\">\r\n <CustomPagination\r\n totalRecordCount={totalItems}\r\n filters={filters}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SkillList\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setUserList = createAction<any>(\"users/setUserList\")\r\n\r\nexport const setStudentList = createAction<any>(\"users/setStudentList\")\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\nimport { Filter } from \"../types/Filter\"\r\n\r\nconst USER_URL = `${BASE_URL}/api/user`\r\nconst STUDENT_URL = `${BASE_URL}/api/student`\r\n\r\nexport const get = (filter: Filter) =>\r\n api.get(`${USER_URL}`, { params: filter })\r\n\r\nexport const getById = (id: string) => api.get(`${USER_URL}/${id}`)\r\n\r\nexport const create = (data: any) => api.post(`${USER_URL}`, data)\r\n\r\nexport const update = (data: any) => api.put(`${USER_URL}/${data.id}`, data)\r\n\r\nexport const remove = (id: string) => api.delete(`${USER_URL}/${id}`)\r\n\r\nexport const getAllStudent = (filter?: Filter) =>\r\n api.get(`${STUDENT_URL}`, { params: filter })\r\n","import { useState, useCallback, useEffect } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\n\r\nimport { DEFAULT_FILTER } from \"../../../utils/constants\"\r\nimport { Filter } from \"../../../types/Filter\"\r\nimport { setLoading, setModal, setAlert } from \"../../../redux/commons/action\"\r\nimport { setUserList } from \"../../../redux/users/action\"\r\nimport { get, remove } from \"../../../services/userService\"\r\n\r\nconst USER_URL = \"/admin/user\"\r\nconst CREATE_USER_URL = \"/admin/create-user\"\r\nconst TITLE = \"User list\"\r\nconst useUserList = () => {\r\n const history = useHistory()\r\n const userList = useSelector((state: any) => state.users.userList)\r\n const totalItems = useSelector((state: any) => state.users.totalItems)\r\n const [filters, setFilters] = useState<Filter>(DEFAULT_FILTER)\r\n const changeFilters = (updatedFilters: any) =>\r\n setFilters({\r\n ...filters,\r\n ...updatedFilters\r\n })\r\n\r\n const dispatch = useDispatch()\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await get(filters)\r\n const { items, totalItems } = res.data\r\n dispatch(setUserList({ userList: items, totalItems }))\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [dispatch, filters])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [filters])\r\n\r\n const removeData = useCallback((id: string) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: \"Do you want to remove this user?\",\r\n onConfirm: async () => {\r\n await remove(id)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Remove user successfully\"\r\n })\r\n )\r\n changeFilters({currentPage: 1})\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const reDirectDetailPage = (id?: number) => {\r\n const url = !!id ? `${USER_URL}/${id}` : CREATE_USER_URL\r\n history.push(url)\r\n }\r\n return {\r\n userList,\r\n totalItems,\r\n filters,\r\n getData,\r\n removeData,\r\n changeFilters,\r\n reDirectDetailPage\r\n }\r\n}\r\n\r\nexport default useUserList\r\n","import React, {\r\n FC,\r\n memo,\r\n useState,\r\n useEffect,\r\n useCallback,\r\n CSSProperties\r\n} from \"react\"\r\nimport { Input } from \"reactstrap\"\r\n\r\ninterface Props {\r\n initValue: string\r\n onSearch: (searchString?: string) => any\r\n placeholder?: string\r\n className?: string\r\n style?: CSSProperties\r\n}\r\n\r\nconst SearchBox: FC<Props> = ({\r\n initValue,\r\n onSearch,\r\n placeholder,\r\n className,\r\n style\r\n}: Props) => {\r\n const [searchString, setSearchString] = useState(initValue)\r\n useEffect(() => {\r\n setSearchString(initValue)\r\n }, [initValue])\r\n\r\n const onKeyUp = useCallback(\r\n (e: any) => {\r\n e.key === \"Enter\" && onSearch(searchString)\r\n },\r\n [searchString, onSearch]\r\n )\r\n\r\n return (\r\n <Input\r\n placeholder={placeholder}\r\n value={searchString}\r\n onChange={e => setSearchString(e.target.value)}\r\n onKeyUp={onKeyUp}\r\n className={className}\r\n style={style}\r\n />\r\n )\r\n}\r\n\r\nSearchBox.defaultProps = {\r\n placeholder: \"Type something to search\",\r\n className: \"\",\r\n style: {}\r\n}\r\n\r\nexport default memo(SearchBox)\r\n","import React, { FC, CSSProperties } from \"react\"\r\n\r\nimport AddButton from \"../Buttons/AddButton\"\r\nimport SearchBox from \"./SearchBox\"\r\n\r\ninterface Props {\r\n text: string\r\n onClick: () => void\r\n initValue: string\r\n onSearch: (searchString?: string) => void\r\n placeholder: string\r\n}\r\n\r\nconst searchInputStyle: CSSProperties = {\r\n height: 38\r\n}\r\n\r\nconst SearchBoxContainer: FC<Props> = ({\r\n text,\r\n initValue,\r\n onClick,\r\n onSearch,\r\n placeholder\r\n}: Props) => {\r\n return (\r\n <div className=\"d-flex align-items-center\">\r\n <div>\r\n <AddButton text={text} onClick={onClick} />\r\n </div>\r\n <div className=\"flex-grow-1 ml-2\">\r\n <SearchBox\r\n initValue={initValue}\r\n onSearch={onSearch}\r\n placeholder={placeholder}\r\n style={searchInputStyle}\r\n />\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nSearchBoxContainer.defaultProps = {\r\n placeholder: \"Type something to search\"\r\n}\r\n\r\nexport default SearchBoxContainer\r\n","import React from \"react\"\r\nimport { Row, Col, Table } from \"reactstrap\"\r\nimport differenceInCalendarYears from \"date-fns/differenceInCalendarYears\"\r\n\r\nimport useUserList from \"../hooks/useUserList\"\r\nimport LinkEditButton from \"../../../components/Buttons/LinkEditButton\"\r\nimport DeleteButtonIcon from \"../../../components/Buttons/DeleteButtonIcon\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport SearchBoxContainer from \"../../../components/Inputs/SearchBoxContainer\"\r\n\r\nconst header = \"User\"\r\nconst UserList = () => {\r\n const {\r\n userList,\r\n totalItems,\r\n filters,\r\n removeData,\r\n changeFilters,\r\n reDirectDetailPage\r\n } = useUserList()\r\n\r\n return (\r\n <div className=\"fadeIn animated\">\r\n <h5 className=\"mb-2\">{header}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={8}>\r\n <SearchBoxContainer\r\n text=\"Create user\"\r\n onClick={() => reDirectDetailPage()}\r\n initValue=\"\"\r\n onSearch={(searchString?: any) =>\r\n changeFilters({\r\n searchString: searchString\r\n })\r\n }\r\n placeholder=\"Type something to search by user name\"\r\n />\r\n </Col>\r\n <Col\r\n md={4}\r\n className=\"d-flex justify-content-end align-items-center\"\r\n >\r\n Total of users: {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={12}>\r\n {userList && userList.length > 0 ? (\r\n <div>\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">Name</th>\r\n <th className=\"align-top\">Email</th>\r\n <th className=\"align-top\">Age</th>\r\n <th className=\"align-top\">Role</th>\r\n <th className=\"align-top\">\r\n Active status\r\n </th>\r\n <th className=\"text-center\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {userList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n <LinkEditButton\r\n label={`${record.fullName}`}\r\n onClick={() =>\r\n reDirectDetailPage(\r\n record.id\r\n )\r\n }\r\n />\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.email}\r\n </td>\r\n <td className=\"align-middle\">\r\n {differenceInCalendarYears(\r\n new Date(),\r\n new Date(record.dateOfBirth)\r\n )}\r\n </td>\r\n <td className=\"align-middle\">\r\n {!!record.roles &&\r\n record.roles.join(\", \")}\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.isActive\r\n ? \"Active\"\r\n : \"Inactive\"}\r\n </td>\r\n <td className=\"text-center align-middle\">\r\n <DeleteButtonIcon\r\n onClick={() =>\r\n removeData(record.id)\r\n }\r\n />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n </div>\r\n ) : (\r\n <EmptyDataAlert label=\"user\" />\r\n )}\r\n </Col>\r\n <Col md={12}>\r\n <CustomPagination\r\n filters={filters}\r\n totalRecordCount={totalItems}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default UserList\r\n","import React, { FC, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { Form, Input, Label, Button } from \"reactstrap\"\r\nimport { FaTrashAlt } from \"react-icons/fa\"\r\nimport { MdAttachFile } from \"react-icons/md\"\r\nimport getFileUrl from \"../../utils/getFileUrl\"\r\nimport { setAlert } from \"../../redux/commons/action\"\r\n\r\nimport styles from \"../../styles.module.scss\"\r\n\r\ninterface Props {\r\n fileName?: string\r\n maxWidth?: string\r\n maxHeight?: string\r\n setFile: any\r\n onAddImage?: any\r\n canDelete?: boolean\r\n onDelete?: () => void\r\n isCheckFeedBack?: boolean\r\n}\r\n\r\nconst MAX_FILE_SIZE = 20097152\r\n\r\nconst UploadFileButton: FC<Props> = ({\r\n fileName,\r\n maxWidth,\r\n maxHeight,\r\n setFile,\r\n canDelete,\r\n onDelete,\r\n isCheckFeedBack,\r\n onAddImage\r\n}: Props) => {\r\n const dispatch = useDispatch()\r\n const [imagePreviewUrl, setImagePreviewUrl] = useState<any>(\"\")\r\n\r\n const imageStyle = {\r\n maxWidth: maxWidth || \"100%\",\r\n maxHeight: maxHeight || \"100%\"\r\n }\r\n const imageSrc = imagePreviewUrl || getFileUrl(fileName as string)\r\n\r\n const handleImageChange = (e: any) => {\r\n e.preventDefault()\r\n\r\n let reader = new FileReader()\r\n let newFile = e.target.files[0]\r\n\r\n if (newFile.size > MAX_FILE_SIZE) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"File can't be larger than 2MB\"\r\n })\r\n )\r\n return\r\n }\r\n\r\n reader.onloadend = () => {\r\n setFile(newFile)\r\n setImagePreviewUrl(reader.result)\r\n }\r\n\r\n if (newFile) {\r\n reader.readAsDataURL(newFile)\r\n }\r\n !!onAddImage && onAddImage()\r\n }\r\n\r\n const imagePreviewContainer =\r\n imagePreviewUrl || fileName ? (\r\n <img style={imageStyle} src={imageSrc} alt=\"image\" />\r\n ) : null\r\n\r\n return (\r\n <div className=\"mb-2\">\r\n <Form className=\"mb-2\">\r\n <Input\r\n className=\"d-none\"\r\n type=\"file\"\r\n id=\"uploadFile\"\r\n onChange={handleImageChange}\r\n accept=\"image/*\"\r\n />\r\n <div className=\"d-flex align-items-center\">\r\n <Label\r\n htmlFor=\"uploadFile\"\r\n role=\"button\"\r\n tabIndex={0}\r\n className={styles[\"input-file-label\"]}\r\n >\r\n {isCheckFeedBack == true ? (\r\n <MdAttachFile />\r\n ) : (\r\n <React.Fragment>\r\n <i\r\n className=\"fa fa-paperclip mr-1\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n {imagePreviewUrl || fileName\r\n ? \"Change file\"\r\n : \"Choose file\"}\r\n </React.Fragment>\r\n )}\r\n </Label>\r\n\r\n {canDelete && imagePreviewContainer && (\r\n <Button\r\n size=\"sm\"\r\n color=\"danger\"\r\n className={`${styles[\"delete-avatar-button\"]} ml-2 d-flex align-items-center justify-content-center`}\r\n onClick={() => {\r\n setImagePreviewUrl(null)\r\n onDelete && onDelete()\r\n }}\r\n >\r\n <FaTrashAlt />\r\n </Button>\r\n )}\r\n </div>\r\n </Form>\r\n {imagePreviewContainer}\r\n </div>\r\n )\r\n}\r\n\r\nexport default UploadFileButton\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\nimport { format } from \"date-fns\"\r\n\r\nimport { DATE_FORMAT } from \"../../../utils/constants\"\r\nimport { setLoading, setAlert } from \"../../../redux/commons/action\"\r\nimport { create, getById, update } from \"../../../services/userService\"\r\n\r\nimport { systemProfileUpload } from \"../../../services/fileServices\"\r\n\r\ntype UserDetail = {\r\n id?: string\r\n firstName: string\r\n lastName: string\r\n email?: string\r\n dateOfBirth?: string\r\n roles: string[]\r\n isActive: boolean\r\n profileImageFileName: string\r\n}\r\n\r\nconst initValue: UserDetail = {\r\n id: \"\",\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n dateOfBirth: \"\",\r\n roles: [],\r\n isActive: true,\r\n profileImageFileName: \"\"\r\n}\r\n\r\nconst USER_LIST_URL = \"/admin/user\"\r\nconst TITLE = \"User detail\"\r\n\r\nconst useUserDetail = (id?: string) => {\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const [userDetail, setUserDetail] = useState<UserDetail>(initValue)\r\n const [file, setFile] = useState<any>(null)\r\n const [edited, setEdited] = useState<boolean>(false)\r\n const setEditedTrue = async () => {\r\n localStorage.setItem(window.location.href, \"true\")\r\n setEdited(true)\r\n }\r\n useEffect(() => {\r\n document.title = TITLE\r\n setEdited(false)\r\n if (!!localStorage.getItem(window.location.href))\r\n localStorage.removeItem(window.location.href)\r\n }, [])\r\n useEffect(() => {\r\n !!id && getData()\r\n }, [id])\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const res = await getById(id as string)\r\n setUserDetail({\r\n ...res.data,\r\n dateOfBirth: format(new Date(res.data.dateOfBirth), DATE_FORMAT)\r\n })\r\n document.title = res.data?.fullName\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [id])\r\n\r\n const backToList = useCallback(() => {\r\n history.push(USER_LIST_URL)\r\n }, [])\r\n\r\n const confirmData = useCallback(\r\n async (data: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n if (!!file) {\r\n const formData = new FormData()\r\n const { name } = file\r\n formData.append(\"file\", file, name)\r\n const res = await systemProfileUpload(formData)\r\n const imageUrl = res?.data?.key\r\n data.profileImageFileName = imageUrl\r\n }\r\n\r\n const next = !!id ? update : create\r\n !id && delete data.id\r\n await next(data)\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `${\r\n !!id ? \"Update\" : \"Create\"\r\n } user successfully`\r\n })\r\n )\r\n\r\n backToList()\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [id, file]\r\n )\r\n\r\n return {\r\n userDetail,\r\n backToList,\r\n confirmData,\r\n file,\r\n setFile,\r\n edited,\r\n setEdited,\r\n setEditedTrue\r\n }\r\n}\r\n\r\nexport default useUserDetail\r\n","import * as yup from \"yup\"\r\n\r\nconst userSchema = yup.object({\r\n firstName: yup.string().required(\"First name is required\"),\r\n lastName: yup.string().required(\"Last name is required\"),\r\n dateOfBirth: yup.string().required(\"Date of birth is required\"),\r\n email: yup.string().email(\"Email is invalid\").required(\"Email is required\"),\r\n roles: yup.array().of(yup.string()).min(1, \"Role is required\")\r\n})\r\n\r\nexport default userSchema\r\n","import React, { useCallback } from \"react\"\r\nimport { useParams } from \"react-router-dom\"\r\nimport {\r\n // Button,\r\n Col,\r\n FormGroup,\r\n Input,\r\n Row,\r\n CustomInput\r\n} from \"reactstrap\"\r\nimport { Formik } from \"formik\"\r\nimport DatePicker from \"react-datepicker\"\r\nimport { format } from \"date-fns\"\r\nimport toDate from \"date-fns/toDate\"\r\n\r\nimport DetailActionButtons from \"../../../components/Buttons/DetailActionButtons\"\r\nimport UploadFileButton from \"../../../components/Buttons/UploadFileButton\"\r\nimport useUserDetail from \"../hooks/useUserDetail\"\r\nimport schema from \"../configs/userSchema\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport { USER_ROLES, DATE_FORMAT } from \"../../../utils/constants\"\r\nimport RequiredLabel from \"../../../components/Labels/RequiredLabel\"\r\nimport { DEFAULT_IMAGE_URL } from \"../../../utils/constants\"\r\nimport QuitPrompt from \"../../../components/Others/QuitPrompt\"\r\n\r\nconst CREATE_USER = \"Create user\"\r\nconst EDIT_USER_HEADER = \"Edit user\"\r\nconst ROLES = {\r\n ADMIN: \"Admin\",\r\n TEACHER: \"Teacher\",\r\n ASSISTANT: \"Assistant\",\r\n STUDENT: \"Student\"\r\n}\r\n\r\nconst UserDetail = () => {\r\n const { id } = useParams<{ id: string }>()\r\n\r\n const {\r\n userDetail,\r\n backToList,\r\n confirmData,\r\n file,\r\n setFile,\r\n edited,\r\n setEdited,\r\n setEditedTrue\r\n } = useUserDetail(id)\r\n\r\n const header = !!id ? EDIT_USER_HEADER : CREATE_USER\r\n\r\n const confirmText = !!id ? \"Update\" : \"Create\"\r\n return (\r\n <Formik\r\n initialValues={userDetail}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={values => {\r\n confirmData(values)\r\n setEdited(false)\r\n if (!!localStorage.getItem(window.location.href))\r\n localStorage.removeItem(window.location.href)\r\n }}\r\n >\r\n {formProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n setFieldValue,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit\r\n } = formProps\r\n\r\n const toggleRoles = useCallback(\r\n (role: string) => {\r\n if (values.roles.includes(role)) {\r\n setFieldValue(\r\n \"roles\",\r\n values.roles.filter(r => r !== role)\r\n )\r\n return\r\n }\r\n\r\n if ([ROLES.ADMIN, ROLES.STUDENT].includes(role)) {\r\n setFieldValue(\"roles\", [role])\r\n return\r\n }\r\n\r\n const teacherAssistantRoles = values.roles.filter(\r\n (item: string) =>\r\n ![ROLES.STUDENT, ROLES.ADMIN].includes(item)\r\n )\r\n\r\n setFieldValue(\"roles\", [...teacherAssistantRoles, role])\r\n },\r\n [values.roles]\r\n )\r\n\r\n return (\r\n <div className=\"animated fadeIn detail-buttons-padding\">\r\n <QuitPrompt when={edited} />\r\n <h5 className=\"mb-2\">{header}</h5>\r\n\r\n <Row className=\"pt-2\">\r\n <Col md={8}>\r\n <Row>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text=\"First name\" />\r\n <Input\r\n name=\"firstName\"\r\n value={values.firstName}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"subject\")}\r\n placeholder=\"First name\"\r\n />\r\n {touched.firstName &&\r\n errors.firstName && (\r\n <ErrorHandler\r\n text={errors.firstName}\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text=\"Date of birth\" />\r\n <div>\r\n <DatePicker\r\n value={values.dateOfBirth}\r\n todayButton=\"Today\"\r\n peekNextMonth\r\n showMonthDropdown\r\n showYearDropdown\r\n dropdownMode=\"select\"\r\n selected={\r\n values.dateOfBirth\r\n ? toDate(\r\n new Date(\r\n values.dateOfBirth\r\n )\r\n )\r\n : null\r\n }\r\n onChange={(e: any) => {\r\n formProps.setFieldValue(\r\n \"dateOfBirth\",\r\n format(\r\n e,\r\n DATE_FORMAT\r\n )\r\n )\r\n setEditedTrue()\r\n }}\r\n placeholderText=\"Date of birth\"\r\n customInput={\r\n <Input\r\n type=\"text\"\r\n style={{\r\n width:\r\n \"maxContent\"\r\n }}\r\n placeholder=\"Date of birth\"\r\n />\r\n }\r\n />\r\n </div>\r\n {touched.dateOfBirth &&\r\n errors.dateOfBirth && (\r\n <ErrorHandler\r\n text={\r\n errors.dateOfBirth\r\n }\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text=\"Last name\" />\r\n <Input\r\n name=\"lastName\"\r\n value={values.lastName}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"lastName\")}\r\n placeholder=\"Last name\"\r\n />\r\n {touched.lastName &&\r\n errors.lastName && (\r\n <ErrorHandler\r\n text={errors.lastName}\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text=\"Roles\" />\r\n <Row>\r\n {USER_ROLES.map(\r\n (role: string) => (\r\n <Col md={3} key={role}>\r\n <CustomInput\r\n type=\"checkbox\"\r\n id={`role-checkbox-${role}`}\r\n label={role}\r\n checked={values.roles.includes(\r\n role\r\n )}\r\n onChange={() => {\r\n toggleRoles(\r\n role\r\n )\r\n setEditedTrue()\r\n }}\r\n disabled={!!id}\r\n />\r\n </Col>\r\n )\r\n )}\r\n </Row>\r\n {touched.roles && errors.roles && (\r\n <ErrorHandler\r\n text={\r\n errors.roles as string\r\n }\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text=\"Email\" />\r\n <Input\r\n name=\"email\"\r\n value={values.email}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"email\")}\r\n placeholder=\"Email\"\r\n />\r\n {touched.email && errors.email && (\r\n <ErrorHandler\r\n text={errors.email}\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text=\"Status\" />\r\n <Row>\r\n <Col md={3}>\r\n <CustomInput\r\n id={`role-checkbox-active`}\r\n type=\"radio\"\r\n name=\"active\"\r\n label=\"Active\"\r\n checked={\r\n !!values &&\r\n !!values.isActive\r\n }\r\n onChange={() => {\r\n setFieldValue(\r\n \"isActive\",\r\n true\r\n )\r\n setEditedTrue()\r\n }}\r\n />\r\n </Col>\r\n <Col md={3}>\r\n <CustomInput\r\n id={`role-checkbox-inActive`}\r\n type=\"radio\"\r\n name=\"active\"\r\n label=\"Inactive\"\r\n checked={\r\n !!values &&\r\n !values.isActive\r\n }\r\n onChange={() =>\r\n setFieldValue(\r\n \"isActive\",\r\n false\r\n )\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </FormGroup>\r\n </Col>\r\n </Row>\r\n </Col>\r\n <Col md={4}>\r\n <Row>\r\n <Col md={8}>\r\n <UploadFileButton\r\n setFile={setFile}\r\n fileName={\r\n values.profileImageFileName\r\n }\r\n onAddImage={setEditedTrue}\r\n canDelete\r\n onDelete={() => {\r\n setFile(null)\r\n setFieldValue(\r\n \"profileImageFileName\",\r\n \"\"\r\n )\r\n setEditedTrue()\r\n }}\r\n />\r\n {!file &&\r\n !values.profileImageFileName && (\r\n <img\r\n src={DEFAULT_IMAGE_URL}\r\n style={{ maxWidth: \"100%\" }}\r\n />\r\n )}\r\n </Col>\r\n </Row>\r\n </Col>\r\n </Row>\r\n <DetailActionButtons\r\n confirmText={confirmText}\r\n onConfirm={handleSubmit}\r\n onCancel={backToList}\r\n />\r\n </div>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default UserDetail\r\n","import React, { useCallback } from \"react\"\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Button } from \"reactstrap\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\n\r\nimport { setModal } from \"../../redux/commons/action\"\r\nimport { COLORS } from \"../../utils/constants\"\r\n\r\nconst modalInfo = (type?: string) => {\r\n switch (type) {\r\n case \"danger\":\r\n return {\r\n header: \"Error\",\r\n color: COLORS.DANGER\r\n }\r\n\r\n case \"warning\":\r\n return {\r\n header: \"Warning\",\r\n color: COLORS.WARNING\r\n }\r\n\r\n case \"success\":\r\n return {\r\n header: \"Success\",\r\n color: COLORS.SUCCESS\r\n }\r\n\r\n default:\r\n return {\r\n header: \"Infomation\",\r\n color: COLORS.INFO\r\n }\r\n }\r\n}\r\n\r\nconst NotificationModal = () => {\r\n const dispatch = useDispatch()\r\n const modal = useSelector((state: any) => state.common.modal)\r\n\r\n const { isOpen, type, message, onConfirm } = modal\r\n\r\n const toggle = useCallback(() => {\r\n dispatch(setModal({ isOpen: !isOpen, type }))\r\n }, [isOpen])\r\n\r\n const headerStyle = { backgroundColor: modalInfo(type).color }\r\n\r\n const confirm = () => {\r\n onConfirm && onConfirm()\r\n toggle()\r\n }\r\n\r\n return <Modal \r\n isOpen={isOpen} \r\n toggle={toggle} \r\n fade\r\n >\r\n <ModalHeader \r\n toggle={toggle}\r\n style={headerStyle}\r\n >\r\n {modalInfo(type).header}\r\n </ModalHeader>\r\n <ModalBody>\r\n {message}\r\n </ModalBody>\r\n <ModalFooter>\r\n {onConfirm && <Button\r\n color={type}\r\n onClick={confirm}\r\n >\r\n Confirm\r\n </Button>}\r\n <Button\r\n color=\"secondary\"\r\n onClick={toggle}\r\n >\r\n Cancel\r\n </Button>\r\n </ModalFooter>\r\n </Modal>\r\n}\r\n\r\nexport default NotificationModal","import React, { CSSProperties, FC } from \"react\"\r\nimport { Row, Col } from \"reactstrap\"\r\ninterface Props {\r\n header: string\r\n rootHeader?: string\r\n}\r\n\r\nconst headerStyle: CSSProperties = {\r\n // borderBottom: \"1px solid gray\",\r\n paddingBottom: \"16px\"\r\n}\r\n\r\nconst headerTextStyle: CSSProperties = {\r\n fontSize: \"1.5rem\",\r\n textAlign: \"center\"\r\n}\r\n\r\nconst CommonHeader: FC<Props> = ({ header, rootHeader }) => {\r\n return (\r\n <div style={headerStyle}>\r\n <Row>\r\n {rootHeader && (\r\n <Col md={4}>\r\n <span className=\"text-muted\" style={headerTextStyle}>\r\n {rootHeader}\r\n </span>\r\n </Col>\r\n )}\r\n <Col md={4}>\r\n <span style={headerTextStyle}>{header}</span>\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default CommonHeader\r\n","import React, { FC } from \"react\"\r\nimport { FaRegEdit } from \"react-icons/fa\"\r\ninterface Props {\r\n onClick: () => any\r\n}\r\n\r\nconst EditButtonIcon: FC<Props> = ({ onClick }: Props) => {\r\n return (\r\n <div\r\n className=\"d-inline text-center cursor-pointer hover-opacity\"\r\n title=\"Edit\"\r\n onClick={onClick}\r\n >\r\n <FaRegEdit />\r\n </div>\r\n )\r\n}\r\n\r\nexport default EditButtonIcon\r\n","import React from \"react\"\r\n\r\nimport Creatable from \"react-select/creatable\"\r\n\r\nconst components = {\r\n DropdownIndicator: null,\r\n}\r\n\r\nconst CreatableSelector = (props: any) => {\r\n const { inputValue, value, placeholder, handleChange, handleInputChange, handleKeyDown } = props\r\n return (\r\n <Creatable\r\n components={components}\r\n placeholder={placeholder || \"Type something to create option\"}\r\n isClearable\r\n isMulti\r\n menuIsOpen={false}\r\n value={value}\r\n inputValue={inputValue}\r\n onChange={handleChange}\r\n onInputChange={handleInputChange}\r\n onKeyDown={handleKeyDown}\r\n />\r\n )\r\n}\r\n\r\nexport default CreatableSelector","import React from \"react\"\r\nimport Select from \"react-select\"\r\n\r\nimport { QUESTION_TYPES_OPTIONS } from \"../../utils/constants\"\r\nconst QuestionTypeSelector = (props: any) => {\r\n const { id } = props\r\n\r\n const initValue = !!id\r\n ? QUESTION_TYPES_OPTIONS.find(option => option.value === id) || null\r\n : null\r\n\r\n return (\r\n <Select options={QUESTION_TYPES_OPTIONS} value={initValue} {...props} />\r\n )\r\n}\r\n\r\nexport default QuestionTypeSelector\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst CATEGORY_URL = `${BASE_URL}/api/SuggestionCategory`\r\nexport const get = () => api.get(CATEGORY_URL)\r\n","import React, { useState, useEffect } from \"react\"\r\nimport Select from \"react-select\"\r\nimport { get } from \"../../services/suggestionCategoryService\"\r\n\r\nconst SuggestionCategorySelector = (props: any) => {\r\n const [categoryList, setCategoryList] = useState([])\r\n\r\n useEffect(() => {\r\n fetchCategory()\r\n }, [])\r\n\r\n const fetchCategory = async () => {\r\n try {\r\n const res = await get()\r\n setCategoryList(res.data.items)\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n }\r\n const { id } = props\r\n const arrCategory = categoryList.map((i: any) => {\r\n return {\r\n id: i.id,\r\n value: i.id,\r\n label: i.name\r\n }\r\n })\r\n\r\n const initValue = !!id\r\n ? arrCategory.find((option: any) => option.value === id) || null\r\n : null\r\n\r\n return <Select options={arrCategory} value={initValue} {...props} />\r\n}\r\n\r\nexport default SuggestionCategorySelector\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst CATEGORY_URL = `${BASE_URL}/api/QuestionCategory`\r\nexport const get = () => api.get(CATEGORY_URL)\r\n","import React, { useState, useEffect } from \"react\"\r\nimport Select from \"react-select\"\r\nimport { get } from \"../../services/questionCategoryService\"\r\n\r\nconst QuestionCategorySelector = (props: any) => {\r\n const [getCategoryList, setCategoryList] = useState([])\r\n\r\n useEffect(() => {\r\n fetchCategory()\r\n }, [])\r\n\r\n const fetchCategory = async () => {\r\n try {\r\n const res = await get()\r\n setCategoryList(res.data.items)\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n }\r\n const { id } = props\r\n const arrCategory = getCategoryList.map((i: any) => {\r\n return {\r\n id: i.id,\r\n value: i.id,\r\n label: i.name\r\n }\r\n })\r\n\r\n const initValue = !!id\r\n ? arrCategory.find((option: any) => option.value === id) || null\r\n : null\r\n\r\n return <Select options={arrCategory} value={initValue} {...props} />\r\n}\r\n\r\nexport default QuestionCategorySelector\r\n","import React from \"react\"\r\nimport Select from \"react-select\"\r\n\r\nimport { STAR_OPTIONS } from \"../../utils/constants\"\r\n\r\nconst StarRatingSelector = (props: any) => {\r\n const { id } = props\r\n\r\n const initValue = !!id\r\n ? STAR_OPTIONS.find(option => option.value === id) || null\r\n : null\r\n\r\n return (\r\n <Select\r\n options={STAR_OPTIONS}\r\n value={initValue}\r\n {...props}\r\n menuPlacement=\"top\"\r\n />\r\n )\r\n}\r\n\r\nexport default StarRatingSelector\r\n","import React, { FC } from \"react\"\r\nimport { Button } from \"reactstrap\"\r\n\r\ninterface Props {\r\n textLeft: string\r\n textRight: string\r\n isLeft: boolean\r\n clickLeft: any\r\n clickRight: any\r\n}\r\n\r\nconst ACTIVE_COLOR = \"primary\"\r\nconst INACTIVE_COLOR = \"secondary\"\r\n\r\nconst ToggleButton: FC<Props> = ({\r\n textLeft,\r\n textRight,\r\n isLeft,\r\n clickLeft,\r\n clickRight\r\n}: Props) => {\r\n return (\r\n <div className=\"w-100 d-flex\">\r\n <Button\r\n size=\"sm\"\r\n color={isLeft ? ACTIVE_COLOR : INACTIVE_COLOR}\r\n onClick={clickLeft}\r\n className=\"toggle-btn toggle-btn-left flex-grow-1\"\r\n >\r\n {textLeft}\r\n </Button>\r\n <Button\r\n size=\"sm\"\r\n color={!isLeft ? ACTIVE_COLOR : INACTIVE_COLOR}\r\n onClick={clickRight}\r\n className=\"toggle-btn toggle-btn-right flex-grow-1\"\r\n >\r\n {textRight}\r\n </Button>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ToggleButton\r\n","import React, { FC, Fragment } from \"react\"\r\nimport { Input, Label } from \"reactstrap\"\r\nimport { customKeyUpload } from \"../../services/fileServices\"\r\nimport getFileUrl from \"../../utils/getFileUrl\"\r\n\r\ninterface Props {\r\n icon: React.ReactNode\r\n accept?: string | undefined\r\n callback: (fileName: string, filePath: string, fileType: string) => void\r\n}\r\n\r\nconst InputFile: FC<Props> = ({ icon, accept, callback }: Props) => {\r\n\r\n const handleFileChange = async (e: any) => {\r\n try {\r\n const formData = new FormData()\r\n const file = e.target.files[0]\r\n const fileName = file.name\r\n formData.append(\"file\", file, fileName)\r\n formData.append(\"customKey\", \"conversation\")\r\n const res = await customKeyUpload(formData)\r\n const { name, key, type } = res.data\r\n callback(name, getFileUrl(key), type)\r\n } catch (err) {\r\n console.error(err.message)\r\n }\r\n }\r\n\r\n return (\r\n <Fragment>\r\n <Input\r\n className=\"d-none\"\r\n type=\"file\"\r\n id=\"upload-file-btn\"\r\n onChange={handleFileChange}\r\n accept={accept}\r\n />\r\n <Label htmlFor=\"upload-file-btn\" role=\"button\">\r\n {icon}\r\n </Label>\r\n </Fragment>\r\n )\r\n}\r\n\r\nInputFile.defaultProps = {\r\n accept: \"*\"\r\n}\r\n\r\nexport default InputFile\r\n","import React from \"react\"\r\nimport ReactNotification from \"react-notifications-component\"\r\n\r\nimport \"react-notifications-component/dist/theme.css\"\r\n\r\nexport default () => <ReactNotification />\r\n","import React, { FC, memo } from \"react\"\r\n\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\n\r\nconst options = [\r\n { value: true, label: \"Read\" },\r\n { value: false, label: \"Unread\" }\r\n]\r\n\r\ninterface Props {\r\n value: boolean\r\n onChange: any\r\n}\r\n\r\nconst NotificationStatusSelector: FC<Props> = ({ value, onChange }: Props) => {\r\n return (\r\n <CustomSelector\r\n defaultValue={value}\r\n options={options}\r\n onChange={onChange}\r\n />\r\n )\r\n}\r\n\r\nexport default memo(NotificationStatusSelector)\r\n","import format from \"date-fns/format\"\r\n\r\nimport { DATE_FORMAT, DATE_MIN_VALUE } from \"../utils/constants\"\r\n\r\nconst FULL_FORMAT = \"MM-dd-yyyy HH:mm:ss\"\r\nexport default (time: string, FORMAT?: string) => {\r\n if (time === DATE_MIN_VALUE) return \"\"\r\n try {\r\n const utcDate = format(new Date(time), FULL_FORMAT)\r\n const utcDateFormat = format(new Date(utcDate), FULL_FORMAT) + \" UTC\"\r\n return format(new Date(utcDateFormat), FORMAT || DATE_FORMAT)\r\n } catch {\r\n return \"\"\r\n }\r\n}\r\n","import { useState, useCallback, useEffect } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport Pusher from \"pusher-js/with-encryption\"\r\n\r\nimport {\r\n get,\r\n updateStatusNotification\r\n} from \"../../../services/notificationService\"\r\n\r\nimport { setLoading, setModal, setAlert } from \"../../../redux/commons/action\"\r\nimport { setNotification } from \"../../../redux/notifications/action\"\r\n\r\nconst defaultFilters = {\r\n currentPage: 1,\r\n pageSize: 30,\r\n searchString: \"\",\r\n isRead: false\r\n}\r\n\r\nconst TITLE = \"Notification list\"\r\n\r\nconst NOTIFICATION_CHANNEL = \"NOTIFICATION_CHANNEL\"\r\nconst NEW_NOTIFICATION = \"NEW_NOTIFICATION\"\r\n\r\nconst useNotificationList = () => {\r\n const dispatch = useDispatch()\r\n const notificationList = useSelector(\r\n (state: any) => state.notification.notificationList\r\n )\r\n const pusherKey = useSelector((state: any) => state.common.user.pusherKey)\r\n const pusherCluster = useSelector(\r\n (state: any) => state.common.user.pusherCluster\r\n )\r\n\r\n const totalItems = useSelector(\r\n (state: any) => state.notification.totalItems\r\n )\r\n const unReadNotification = useSelector(\r\n (state: any) => state.notification.unReadNotification\r\n )\r\n const [filters, setFilters] = useState(defaultFilters)\r\n\r\n const changeFilters = (objectValue: any) =>\r\n setFilters({\r\n ...filters,\r\n ...objectValue\r\n })\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const res = await get(filters)\r\n const { items, totalItems } = res.data\r\n dispatch(\r\n setNotification({\r\n notificationList: items,\r\n totalItems\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [filters])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n getData()\r\n const pusher = new Pusher(pusherKey, { cluster: pusherCluster })\r\n const channel = pusher.subscribe(NOTIFICATION_CHANNEL)\r\n\r\n channel.bind(NEW_NOTIFICATION, getData)\r\n return () => pusher.unsubscribe(NOTIFICATION_CHANNEL)\r\n }, [filters])\r\n\r\n const updateNotification = useCallback(\r\n (id, isRead) => {\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: `Do you want to mark this notification ${\r\n isRead ? \"read\" : \"unread\"\r\n }?`,\r\n onConfirm: async () => {\r\n await updateStatusNotification(id)\r\n getData()\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n },\r\n [notificationList, unReadNotification]\r\n )\r\n\r\n return {\r\n notificationList,\r\n totalItems,\r\n unReadNotification,\r\n filters,\r\n changeFilters,\r\n updateNotification\r\n }\r\n}\r\n\r\nexport default useNotificationList\r\n","import React from \"react\"\r\nimport { Row, Col, Table, CustomInput } from \"reactstrap\"\r\n\r\nimport SearchBox from \"../../../components/Inputs/SearchBox\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport NotificationStatusSelector from \"../components/NotificationStatusSelector\"\r\n\r\nimport utcToLocalTime from \"../../../utils/utcToLocalTime\"\r\nimport { FULL_DATE_FORMAT } from \"../../../utils/constants\"\r\n\r\nimport useNotificationList from \"../hooks/useNotificationList\"\r\n\r\nconst header = \"Notification list\"\r\n\r\nconst NotificationList = () => {\r\n const {\r\n notificationList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n updateNotification\r\n } = useNotificationList()\r\n\r\n return (\r\n <div className=\"animated fadeIn\">\r\n <h5 className=\"mb-2\">{header}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={6}>\r\n <SearchBox\r\n initValue={filters.searchString}\r\n onSearch={(searchString?: any) =>\r\n changeFilters({\r\n searchString: searchString\r\n })\r\n }\r\n placeholder=\"Type something to search\"\r\n />\r\n </Col>\r\n <Col md={2}>\r\n <NotificationStatusSelector\r\n value={filters.isRead}\r\n onChange={(e: any) =>\r\n changeFilters({ isRead: e.value })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n <Row className=\"my-2 d-flex justify-content-center\">\r\n <Col md={4} className=\"d-flex justify-content-end\">\r\n Total of notifications: {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n {notificationList && notificationList.length > 0 ? (\r\n <div>\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">Text</th>\r\n <th className=\"align-top\">Time</th>\r\n <th className=\"text-center\">Is read</th>\r\n {/* <th className=\"text-center\">Action</th> */}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {notificationList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n {record.text}\r\n </td>\r\n <td className=\"align-middle\">\r\n {utcToLocalTime(\r\n record.time,\r\n FULL_DATE_FORMAT\r\n )}\r\n </td>\r\n <td className=\"text-center align-middle\">\r\n <CustomInput\r\n type=\"checkbox\"\r\n id={`status-checkbox-${record.id}`}\r\n checked={record.isRead}\r\n onChange={() =>\r\n updateNotification(\r\n record.id,\r\n !record.isRead\r\n )\r\n }\r\n />\r\n </td>\r\n {/* <td className=\"text-center align-middle\">\r\n <AiOutlineEye\r\n className=\"cursor-pointer\"\r\n size={ICON_SIZE}\r\n title=\"view\"\r\n />\r\n </td> */}\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n </div>\r\n ) : (\r\n <EmptyDataAlert label=\"notification\" />\r\n )}\r\n </Col>\r\n <Col md={8}>\r\n <CustomPagination\r\n filters={filters}\r\n totalRecordCount={totalItems}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default NotificationList\r\n","import React from \"react\"\r\nimport {\r\n Col,\r\n Row,\r\n TabContent,\r\n TabPane,\r\n Nav,\r\n NavItem,\r\n NavLink\r\n} from \"reactstrap\"\r\nimport { Route, useHistory, useLocation } from \"react-router-dom\"\r\nimport NotFound from \"../../containers/Commons/NotFound\"\r\n\r\nconst CustomTabs = (props: any) => {\r\n const history = useHistory()\r\n const location = useLocation()\r\n const { pathname } = location\r\n const { tabs, title } = props\r\n const toggle = (path: any) => {\r\n history.push(path)\r\n }\r\n\r\n const renderContent = () => {\r\n const activeTab = tabs.map((t: any) => t.path).indexOf(pathname)\r\n if (activeTab === -1) {\r\n return <NotFound />\r\n }\r\n return (\r\n <Row>\r\n <Col md={12}>\r\n <h5>{title}</h5>\r\n </Col>\r\n <Col xl={12}>\r\n <Nav tabs>\r\n {tabs.map((i: any) => (\r\n <NavItem key={i.path}>\r\n <NavLink\r\n className={`${\r\n i.path === pathname ? \"active\" : \"\"\r\n } cursor-pointer`}\r\n onClick={() => {\r\n toggle(i.path)\r\n }}\r\n >\r\n {i.title}\r\n </NavLink>\r\n </NavItem>\r\n ))}\r\n </Nav>\r\n <TabContent\r\n activeTab={pathname}\r\n className=\"border-bottom-0 border-left-0 border-right-0\"\r\n >\r\n {tabs.map((i: any) => (\r\n <TabPane key={i.path} tabId={i.path}>\r\n <Route\r\n path={i.path}\r\n exact\r\n component={i.component}\r\n />\r\n </TabPane>\r\n ))}\r\n </TabContent>\r\n </Col>\r\n </Row>\r\n )\r\n }\r\n return <div className=\"animated fadeIn\">{renderContent()}</div>\r\n}\r\n\r\nexport default CustomTabs\r\n","import React, { FC, useRef, useEffect } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { Alert } from \"reactstrap\"\r\n\r\nimport { setAlert } from \"../../redux/commons/action\"\r\n\r\nconst CommonAlert: FC = () => {\r\n const dispatch = useDispatch()\r\n const alert = useSelector((state: any) => state.common.alert)\r\n const timeout = useRef<any>()\r\n\r\n const onDismiss = () => {\r\n dispatch(setAlert({ message: \"\" }))\r\n timeout && timeout.current && clearTimeout(timeout.current)\r\n }\r\n\r\n useEffect(() => {\r\n if (!!alert.message?.length) {\r\n timeout && timeout.current && clearTimeout(timeout.current)\r\n timeout.current = setTimeout(() => {\r\n dispatch(setAlert({ message: \"\" }))\r\n }, 3000)\r\n }\r\n }, [alert])\r\n\r\n return alert.message?.length > 0 ? (\r\n <div className=\"app-alert\">\r\n <Alert\r\n color={alert.type}\r\n isOpen={alert.message.length > 0}\r\n toggle={onDismiss}\r\n >\r\n {alert.message}\r\n </Alert>\r\n </div>\r\n ) : null\r\n}\r\n\r\nexport default CommonAlert\r\n","import { Formik } from \"formik\"\r\nimport React, { forwardRef } from \"react\"\r\nimport { Col, Input, Row } from \"reactstrap\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport CommonModal from \"../../../components/Modals/CommonModal\"\r\n\r\nconst schema = yup.object({\r\n name: yup.string().required(\"Name is required\")\r\n})\r\n\r\nconst ActionModal = (props: any, ref: any) => {\r\n const { targetMedia, onConfirm } = props\r\n const confirmText = targetMedia?.key ? \"Update\" : \"Create\"\r\n const header = targetMedia?.key ? \"Rename\" : \"Folder\"\r\n return (\r\n <Formik\r\n initialValues={{ name: targetMedia?.name }}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={(values, actions) => {\r\n onConfirm && onConfirm(values)\r\n actions.resetForm()\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit\r\n } = formikProps\r\n return (\r\n <CommonModal\r\n header={header}\r\n confirmText={confirmText}\r\n onConfirm={handleSubmit}\r\n ref={ref}\r\n >\r\n <Row>\r\n <Col md={12}>\r\n <Input\r\n name=\"name\"\r\n placeholder={`Enter your ${\r\n targetMedia?.key ? \"file\" : \"folder\"\r\n } name`}\r\n value={values.name}\r\n onChange={handleChange}\r\n onBlur={handleBlur(\"question\")}\r\n />\r\n {touched.name && errors.name && (\r\n <ErrorHandler\r\n text={errors.name as string}\r\n />\r\n )}\r\n </Col>\r\n </Row>\r\n </CommonModal>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default forwardRef(ActionModal)\r\n","import React, { FC, useRef } from \"react\"\r\nimport { Row, Col, Button, Label } from \"reactstrap\"\r\nimport {\r\n FaFolderPlus,\r\n FaFileUpload,\r\n FaArrowLeft,\r\n FaDownload,\r\n FaTrash,\r\n FaEdit\r\n} from \"react-icons/fa\"\r\nimport ActionModal from \"./ActionModal\"\r\nimport { S3Object } from \"../constants/gallery.types\"\r\n\r\ninterface MediaNavInterface {\r\n isLibrary?: boolean\r\n step: number\r\n breadcumb: string\r\n currentPrefix: string\r\n targetMedia: S3Object\r\n handleSelectFile: Function\r\n handleCreateFolder: Function\r\n handleRenameFile: Function\r\n handleGoBack: () => void\r\n handleDownloadMedia: () => void\r\n handleDeleteMediaOrFolder: () => void\r\n showErrorAlert: (message: string) => void\r\n}\r\n\r\nconst MediaNav: FC<MediaNavInterface> = ({\r\n isLibrary,\r\n step,\r\n breadcumb,\r\n currentPrefix,\r\n targetMedia,\r\n handleSelectFile,\r\n handleCreateFolder,\r\n handleRenameFile,\r\n handleGoBack,\r\n handleDownloadMedia,\r\n handleDeleteMediaOrFolder,\r\n showErrorAlert\r\n}) => {\r\n const modal = useRef<any>()\r\n const inputFile = useRef<HTMLInputElement>(null)\r\n\r\n const openModal = () => modal?.current?.toggle()\r\n\r\n const renderGroupButtons = () => (\r\n <Row className=\"p-2 pl-3\">\r\n {!!step && (\r\n <Button\r\n className=\"mr-2\"\r\n color=\"secondary\"\r\n onClick={handleGoBack}\r\n >\r\n <FaArrowLeft />\r\n <Label className=\"ml-1 h6 m-0\">Go up</Label>\r\n </Button>\r\n )}\r\n {targetMedia && !targetMedia.isFolder && (\r\n <Button\r\n className=\"mr-2\"\r\n color=\"success\"\r\n onClick={handleDownloadMedia}\r\n >\r\n <FaDownload />\r\n <Label className=\"ml-1 h6 m-0\">Download</Label>\r\n </Button>\r\n )}\r\n {targetMedia && !isLibrary && (\r\n <Button\r\n className=\"mr-2\"\r\n color=\"danger\"\r\n onClick={handleDeleteMediaOrFolder}\r\n >\r\n <FaTrash />\r\n <Label className=\"ml-1 h6 m-0\">Delete</Label>\r\n </Button>\r\n )}\r\n {targetMedia && !isLibrary && !targetMedia.isFolder && (\r\n <Button className=\"mr-2\" color=\"primary\" onClick={openModal}>\r\n <FaEdit />\r\n <Label className=\"ml-1 h6 m-0\">Rename</Label>\r\n </Button>\r\n )}\r\n {!targetMedia && !isLibrary && (\r\n <Button className=\"mr-2\" color=\"success\" onClick={openModal}>\r\n <FaFolderPlus />\r\n <Label className=\"ml-1 h6 m-0\">New folder</Label>\r\n </Button>\r\n )}\r\n {!targetMedia && !isLibrary && (\r\n <Button\r\n className=\"mr-2\"\r\n color=\"info\"\r\n onClick={() => inputFile?.current?.click()}\r\n >\r\n <FaFileUpload />\r\n <Label className=\"ml-1 h6 m-0\">Upload</Label>\r\n </Button>\r\n )}\r\n {breadcumb && (\r\n <Col className=\"h-100 d-flex align-items-center\">\r\n {breadcumb}\r\n </Col>\r\n )}\r\n </Row>\r\n )\r\n\r\n return (\r\n <div>\r\n {renderGroupButtons()}\r\n <ActionModal\r\n ref={modal}\r\n targetMedia={targetMedia}\r\n onConfirm={async (values: any) => {\r\n if (values.name != \"\") {\r\n if (targetMedia && !targetMedia.isFolder) {\r\n openModal()\r\n await handleRenameFile(values.name)\r\n } else {\r\n openModal()\r\n await handleCreateFolder(currentPrefix, values.name)\r\n }\r\n } else {\r\n showErrorAlert(\"Name can't be empty\")\r\n }\r\n }}\r\n />\r\n\r\n <input\r\n type=\"file\"\r\n id=\"customMediaUpload\"\r\n ref={inputFile}\r\n style={{ display: \"none\" }}\r\n onChange={async (event: any) => {\r\n const file = event?.target?.files[0]\r\n if (file) {\r\n await handleSelectFile({ key: currentPrefix, file })\r\n }\r\n }}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default React.memo(MediaNav)\r\n","export type S3Object = {\r\n name?: string\r\n key?: string\r\n extension?: string\r\n isFolder?: boolean\r\n}\r\n\r\nexport enum MediaType {\r\n IMAGE,\r\n VIDEO,\r\n AUDIO,\r\n DOC,\r\n UNKNOW\r\n}\r\n\r\nexport type FilterType = {\r\n searchString?: string,\r\n types?: MediaType[],\r\n prefix?: string,\r\n fromDate?: number,\r\n toDate?: number,\r\n}\r\n","import Images from '../../../assets/Images';\r\nimport getFileUrl from '../../../utils/getFileUrl';\r\nimport {MediaType, S3Object} from '../constants/gallery.types'\r\n\r\nconst images = [\"png\", \"jpg\", \"jpeg\", \"gif\"]\r\nconst videos = [\"mp4\", \"mp4v\"]\r\nconst docs = [\"txt\", \"pdf\", \"doc\", \"docx\", \"xls\", \"csv\"]\r\nconst audios = [\"wav\", \"mp3\"]\r\n\r\n\r\nexport const getTypeByExtension: (extension: string | undefined) => MediaType = (extension) => {\r\n if(extension){\r\n if(images.includes(extension)) return MediaType.IMAGE\r\n if(videos.includes(extension)) return MediaType.VIDEO\r\n if(docs.includes(extension)) return MediaType.DOC\r\n if(audios.includes(extension)) return MediaType.AUDIO\r\n }\r\n return MediaType.UNKNOW\r\n}\r\n\r\nexport const getMediaThumbnail = (media: S3Object) => {\r\n if(media.isFolder) return Images.FOLDER_IMAGE;\r\n const type = getTypeByExtension(media.extension)\r\n\r\n if(type === MediaType.IMAGE){\r\n return Images.PHOTO_IMAGE\r\n }\r\n if(type === MediaType.VIDEO){\r\n return Images.VIDEO_IMAGE\r\n }\r\n if(type === MediaType.AUDIO){\r\n return Images.AUDIO_IMAGE\r\n }\r\n if(type === MediaType.DOC){\r\n return Images.DOCS_IMAGE\r\n }\r\n return Images.UNKNOW_IMAGE;\r\n}\r\n\r\nexport const getMediaImage = (media: S3Object) => {\r\n if(media.isFolder) return Images.FOLDER_IMAGE;\r\n const type = getTypeByExtension(media.extension)\r\n\r\n if(type === MediaType.IMAGE){\r\n return getFileUrl(media.key || \"\")\r\n }\r\n if(type === MediaType.VIDEO){\r\n return Images.VIDEO_IMAGE\r\n }\r\n if(type === MediaType.AUDIO){\r\n return Images.AUDIO_IMAGE\r\n }\r\n if(type === MediaType.DOC){\r\n return Images.DOCS_IMAGE\r\n }\r\n return \"\";\r\n}\r\n","import React, {FC} from 'react'\r\nimport {Card,CardImg, CardBody, CardTitle} from 'reactstrap';\r\nimport {S3Object} from '../constants/gallery.types'\r\nimport styles from '../styles/media.styles.module.scss'\r\nimport {getMediaThumbnail} from '../extensions/helpers'\r\n\r\ninterface MediaInterface {\r\n media: S3Object,\r\n isTarget: boolean\r\n}\r\n\r\nconst Media: FC<MediaInterface> = ({media, isTarget}) => {\r\n const thumbnail = getMediaThumbnail(media)\r\n return (\r\n <Card className={`${isTarget ? styles[\"media-image-selected\"] : ''} border-0 `}>\r\n <CardImg\r\n className={`${styles[\"media-image\"]} p-1`}\r\n top\r\n width=\"90%\"\r\n src={thumbnail}\r\n alt={media.name}\r\n />\r\n <CardBody className=\"p-1\" style={{height: 45}}>\r\n <CardTitle tag=\"h6\" className={styles[\"media-title\"]}>{media.name}</CardTitle>\r\n </CardBody>\r\n </Card>\r\n )\r\n}\r\n\r\nexport default React.memo(Media)\r\n","import React, {\r\n FC,\r\n useState\r\n // , useRef\r\n} from \"react\"\r\nimport {\r\n Col,\r\n // FormGroup,\r\n // Input,\r\n // Label,\r\n Row\r\n} from \"reactstrap\"\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\nimport { FilterType, MediaType } from \"../constants/gallery.types\"\r\n// import DatePicker from \"react-datepicker\"\r\n// import { getTime, format } from \"date-fns\"\r\n// import { DATE_FORMAT } from \"../../../utils/constants\"\r\nimport styles from \"../styles/media.styles.module.scss\"\r\n// import useGalleryDetail from \"../hooks/galleryDetail\"\r\nimport SearchBox from \"../../../components/Inputs/SearchBox\"\r\n\r\ninterface FilterInterface {\r\n changeFilters: (filter: FilterType) => void\r\n filters: FilterType\r\n}\r\n\r\ntype MediaOption = {\r\n value: MediaType\r\n label: string\r\n}\r\n\r\nconst options: MediaOption[] = [\r\n { value: MediaType.IMAGE, label: \"Images\" },\r\n { value: MediaType.AUDIO, label: \"Audios\" },\r\n { value: MediaType.DOC, label: \"Docs\" },\r\n { value: MediaType.VIDEO, label: \"Videos\" }\r\n]\r\n\r\nconst Filter: FC<FilterInterface> = ({\r\n changeFilters\r\n // filters\r\n}) => {\r\n const [queryTypes, selectQueryTypes] = useState<MediaOption[]>()\r\n return (\r\n <Row className={`${styles[\"filter-media-file\"]}`}>\r\n <Col sm={8}>\r\n <SearchBox\r\n initValue=\"\"\r\n onSearch={(searchString?: any) =>\r\n changeFilters({\r\n searchString: searchString\r\n })\r\n }\r\n placeholder=\"Type something to search by file name\"\r\n />\r\n </Col>\r\n\r\n <Col sm={4}>\r\n <CustomSelector\r\n value={queryTypes}\r\n isMulti\r\n options={options}\r\n onChange={(options: MediaOption[]) => {\r\n selectQueryTypes(options)\r\n const types = options.map((op: MediaOption) => op.value)\r\n changeFilters({ types })\r\n }}\r\n />\r\n </Col>\r\n {/* <Col sm={4}>\r\n <FormGroup>\r\n <Label>From date</Label>\r\n <DatePicker\r\n wrapperClassName={`${styles[\"date-time-input\"]} w-100`}\r\n value={\r\n !!filters.fromDate\r\n ? format(filters.fromDate, DATE_FORMAT)\r\n : undefined\r\n }\r\n todayButton=\"Today\"\r\n peekNextMonth\r\n showMonthDropdown\r\n showYearDropdown\r\n dropdownMode=\"select\"\r\n placeholderText=\"From date\"\r\n onChange={(date: Date) => {\r\n changeFilters({\r\n fromDate: getTime(date)\r\n })\r\n }}\r\n customInput={<Input type=\"text\" />}\r\n />\r\n </FormGroup>\r\n </Col>\r\n <Col sm={4}>\r\n <FormGroup>\r\n <Label>To date</Label>\r\n <DatePicker\r\n wrapperClassName={`${styles[\"date-time-input\"]} w-100`}\r\n value={\r\n !!filters.toDate\r\n ? format(filters.toDate, DATE_FORMAT)\r\n : undefined\r\n }\r\n todayButton=\"Today\"\r\n peekNextMonth\r\n showMonthDropdown\r\n showYearDropdown\r\n dropdownMode=\"select\"\r\n placeholderText=\"To date\"\r\n onChange={(date: Date) => {\r\n changeFilters({\r\n toDate: getTime(date)\r\n })\r\n }}\r\n customInput={<Input type=\"text\"/>}\r\n />\r\n </FormGroup>\r\n </Col> */}\r\n </Row>\r\n )\r\n}\r\n\r\nexport default Filter\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setGallery = createAction<any>(\"gallery/setGallery\")\r\nexport const setTargetMedia = createAction<any>(\"gallery/setTargetMedia\")\r\n\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\nimport { FilterType } from './../containers/Gallery/constants/gallery.types';\r\n\r\nconst GALLERY_URL = `${BASE_URL}/api/file`\r\n\r\nexport const get = (filter: FilterType) =>\r\n api.get(`${GALLERY_URL}`, { params: filter })\r\n","import { setModal } from \"../../../redux/commons/action\"\r\nimport { useState, useCallback, useEffect, useMemo } from \"react\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { setLoading, setAlert } from \"../../../redux/commons/action\"\r\nimport { setGallery, setTargetMedia } from \"../../../redux/gallery/action\"\r\nimport { get } from \"../../../services/galleryService\"\r\nimport { FilterType } from \"../constants/gallery.types\"\r\nimport {\r\n renameFile,\r\n customKeyUpload,\r\n deleteFile,\r\n deleteFolder,\r\n createFolder\r\n} from \"../../../services/fileServices\"\r\nimport { S3Object } from \"../constants/gallery.types\"\r\nimport getFileUrl from \"../../../utils/getFileUrl\"\r\n\r\nconst TITLE = \"Gallery\"\r\n\r\nconst defaultFilter: FilterType = {\r\n searchString: \"\"\r\n}\r\n\r\ninterface FormDataMediaType {\r\n file: File\r\n key?: string\r\n}\r\n\r\ninterface RouterType {\r\n link: string\r\n step: number\r\n}\r\n\r\nconst useGalleryList = (isLibrary: boolean = false) => {\r\n const mediaList = useSelector((state: any) => state.gallery.mediaList)\r\n const totalItems = useSelector((state: any) => state.gallery.totalItems)\r\n const targetMedia: S3Object = useSelector(\r\n (state: any) => state.gallery.targetMedia\r\n )\r\n const dispatch = useDispatch()\r\n\r\n const [formDataMediaType, handleSelectFile] = useState<FormDataMediaType>()\r\n const [filters, setFilters] = useState<FilterType>(Object.assign({ ...defaultFilter }, isLibrary ? { prefix: \"superadmin-library/\" } : {}))\r\n const [router, changeRouter] = useState<RouterType>({ link: \"\", step: 0 })\r\n\r\n const handleOpenFolder = (media: S3Object) => {\r\n if (media.isFolder) {\r\n setFilters({ prefix: media.key })\r\n if (media.key) {\r\n changeRouter({\r\n link: media.key,\r\n step: router.step + 1\r\n })\r\n }\r\n }\r\n }\r\n\r\n const handleGoBack = () => {\r\n const { link, step } = router\r\n if (!link || link == \"\" || step < 1) return\r\n let temp = link.split(\"/\")\r\n if (temp[temp.length - 1] === \"\") {\r\n changeRouter({\r\n link: `${temp.splice(0, temp.length - 2).join(\"/\")}/`,\r\n step: step - 1\r\n })\r\n } else {\r\n temp.pop()\r\n changeRouter({ link: `${temp.join(\"/\")}/`, step: step - 1 })\r\n }\r\n }\r\n\r\n const handleSelectMedia = (media: S3Object) => {\r\n dispatch(setTargetMedia({ targetMedia: undefined }))\r\n if (targetMedia) {\r\n if (media.key === targetMedia.key) {\r\n dispatch(setTargetMedia({ targetMedia: undefined }))\r\n } else {\r\n dispatch(setTargetMedia({ targetMedia: media }))\r\n }\r\n } else {\r\n dispatch(setTargetMedia({ targetMedia: media }))\r\n }\r\n }\r\n\r\n const handleRenameFile = async (name: string) => {\r\n if (targetMedia?.key && name) {\r\n dispatch(setLoading(true))\r\n await renameFile(targetMedia.key, name)\r\n dispatch(setTargetMedia({ targetMedia: undefined }))\r\n dispatch(setLoading(false))\r\n getData()\r\n }\r\n }\r\n\r\n const handleDownloadMedia = () => {\r\n if (targetMedia?.key) {\r\n const url = getFileUrl(targetMedia.key)\r\n window.open(url, \"_blank\")\r\n } else {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Error to download media, please try later.\"\r\n })\r\n )\r\n }\r\n }\r\n\r\n const showErrorAlert = (message: string) => {\r\n setAlert({ type: \"danger\", message })\r\n }\r\n\r\n const handleDeleteMediaOrFolder = async () => {\r\n if (targetMedia?.key) {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: `Do you want to remove this ${\r\n targetMedia.isFolder ? \"folder\" : \"file\"\r\n }`,\r\n onConfirm: async () => {\r\n dispatch(setLoading(true))\r\n if (targetMedia.isFolder) {\r\n await deleteFolder(targetMedia.key || \"\")\r\n dispatch(setTargetMedia({ targetMedia: undefined }))\r\n } else {\r\n await deleteFile(targetMedia?.key || \"\")\r\n dispatch(setTargetMedia({ targetMedia: undefined }))\r\n }\r\n dispatch(setLoading(false))\r\n getData()\r\n }\r\n })\r\n )\r\n } else {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Error to delete media, please try later.\"\r\n })\r\n )\r\n }\r\n }\r\n\r\n const handleCreateFolder = async (prefix: string, folderName: string) => {\r\n if (folderName) {\r\n await createFolder(prefix, folderName)\r\n getData()\r\n }\r\n }\r\n\r\n const changeFilters = (updatedFilters: FilterType) =>\r\n setFilters({\r\n ...filters,\r\n ...updatedFilters\r\n })\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await get(filters)\r\n dispatch(\r\n setGallery({\r\n mediaList: res.data,\r\n totalItems: res.data.length || 0\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [dispatch, filters])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n changeFilters({ prefix: router.link })\r\n }, [router.link])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [filters])\r\n\r\n useEffect(() => {\r\n async function customKeyUploadEffect() {\r\n dispatch(setLoading(true))\r\n try {\r\n if (formDataMediaType) {\r\n const { file, key } = formDataMediaType\r\n const { name } = file\r\n const customKey = key\r\n const formData = new FormData()\r\n formData.append(\"file\", file, name)\r\n formData.append(\"customKey\", customKey?.slice(0, -1) || \"\")\r\n await customKeyUpload(formData)\r\n getData()\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }\r\n\r\n customKeyUploadEffect()\r\n }, [formDataMediaType])\r\n\r\n const breadcrumb = useMemo(() => {\r\n try {\r\n const subLinks = router.link?.split(\"/\")\r\n return subLinks.splice(2, subLinks.length).join(\"/\")\r\n } catch (_err) {\r\n return \"\"\r\n }\r\n }, [router.link])\r\n\r\n return {\r\n mediaList,\r\n filters,\r\n totalItems,\r\n targetMedia,\r\n router,\r\n breadcrumb,\r\n getData,\r\n changeFilters,\r\n handleSelectFile,\r\n handleOpenFolder,\r\n handleSelectMedia,\r\n handleRenameFile,\r\n handleDownloadMedia,\r\n handleDeleteMediaOrFolder,\r\n handleCreateFolder,\r\n handleGoBack,\r\n showErrorAlert\r\n }\r\n}\r\n\r\nexport default useGalleryList\r\n","import React, { FC } from \"react\"\r\nimport { Row, Col, Card, CardHeader, CardBody } from \"reactstrap\"\r\nimport { S3Object } from \"../constants/gallery.types\"\r\nimport MediaNav from \"../components/MediaNav\"\r\nimport Media from \"../components/Media\"\r\nimport Filter from \"../components/Filter\"\r\nimport styles from \"../styles/media.styles.module.scss\"\r\nimport useGalleryList from \"../hooks/useGalleryList\"\r\n\r\ninterface Props {\r\n height: string\r\n isLibrary?: boolean\r\n}\r\n\r\nconst MediaList: FC<Props> = ({ height, isLibrary }: Props) => {\r\n const {\r\n filters,\r\n mediaList,\r\n targetMedia,\r\n router,\r\n breadcrumb,\r\n changeFilters,\r\n handleOpenFolder,\r\n handleSelectMedia,\r\n handleSelectFile,\r\n handleCreateFolder,\r\n handleRenameFile,\r\n handleDownloadMedia,\r\n handleDeleteMediaOrFolder,\r\n handleGoBack,\r\n showErrorAlert\r\n } = useGalleryList(isLibrary)\r\n\r\n const renderList = () =>\r\n mediaList.map((media: S3Object) => {\r\n const isTarget = targetMedia?.key === media.key\r\n\r\n return (\r\n <Col className=\"p-2\" xs=\"auto\" key={media.key}>\r\n <div\r\n onDoubleClick={() => handleOpenFolder(media)}\r\n onClick={() => handleSelectMedia(media)}\r\n className={styles[\"media-wrapper\"]}\r\n >\r\n <Media media={media} isTarget={isTarget} />\r\n </div>\r\n </Col>\r\n )\r\n })\r\n\r\n return (\r\n <Card>\r\n <CardHeader>\r\n <Filter changeFilters={changeFilters} filters={filters} />\r\n <MediaNav\r\n isLibrary={isLibrary}\r\n step={router.step}\r\n breadcumb={breadcrumb}\r\n currentPrefix={filters.prefix || \"\"}\r\n targetMedia={targetMedia}\r\n handleSelectFile={handleSelectFile}\r\n handleCreateFolder={handleCreateFolder}\r\n handleRenameFile={handleRenameFile}\r\n handleDownloadMedia={handleDownloadMedia}\r\n handleDeleteMediaOrFolder={handleDeleteMediaOrFolder}\r\n handleGoBack={handleGoBack}\r\n showErrorAlert={showErrorAlert}\r\n />\r\n </CardHeader>\r\n <CardBody style={{ minHeight: height }}>\r\n <Row className=\"p-1\">{renderList()}</Row>\r\n </CardBody>\r\n </Card>\r\n )\r\n}\r\n\r\nexport default MediaList\r\n","import React, { FC } from \"react\"\r\nimport {\r\n Card,\r\n CardImg,\r\n CardTitle,\r\n CardHeader,\r\n CardBody,\r\n CardText\r\n} from \"reactstrap\"\r\nimport getFileUrl from \"../../../utils/getFileUrl\"\r\nimport { MediaType, S3Object } from \"../constants/gallery.types\"\r\nimport { getTypeByExtension } from \"../extensions/helpers\"\r\ninterface MediaDetailInterface {\r\n targetMedia: S3Object\r\n}\r\n\r\nconst MediaDetail: FC<MediaDetailInterface> = ({ targetMedia }) => {\r\n if (!targetMedia || targetMedia?.isFolder) return <div />\r\n const type = getTypeByExtension(targetMedia.extension)\r\n const url = getFileUrl(targetMedia.key || \"\")\r\n\r\n return (\r\n <Card className=\"position-sticky\">\r\n <CardHeader>{targetMedia?.name || \"Media name\"}</CardHeader>\r\n {type === MediaType.IMAGE && (\r\n <CardImg className=\"p-2\" src={url} loading=\"lazy\" />\r\n )}\r\n {type === MediaType.VIDEO && (\r\n <div className=\"p-2\">\r\n <video\r\n id={targetMedia.key}\r\n width=\"100%\"\r\n height=\"100%\"\r\n controls\r\n >\r\n <source src={url} />\r\n </video>\r\n </div>\r\n )}\r\n {type === MediaType.AUDIO && (\r\n <div className=\"p-2\">\r\n <audio controls className=\"w-100\">\r\n <source src={url}/>\r\n </audio>\r\n </div>\r\n )}\r\n <CardBody>\r\n <CardTitle tag=\"h6\">General Info</CardTitle>\r\n <CardText>\r\n File extension: {targetMedia.extension?.toUpperCase()}\r\n </CardText>\r\n </CardBody>\r\n </Card>\r\n )\r\n}\r\n\r\nexport default React.memo(MediaDetail)\r\n","import React, { FC } from \"react\"\r\nimport { Row, Col } from \"reactstrap\"\r\nimport { useSelector } from \"react-redux\"\r\nimport MediaList from \"../components/MediaList\"\r\nimport MediaDetail from \"../components/MediaDetail\"\r\n\r\nconst header = \"Gallery\"\r\ninterface Props {\r\n isLibrary?: boolean\r\n}\r\n\r\nconst GalleryList: FC<Props> = ({ isLibrary }: Props) => {\r\n const targetMedia = useSelector((state: any) => state.gallery.targetMedia)\r\n\r\n return (\r\n <div className=\"fadeIn animated\">\r\n <h5 className=\"mb-2\">{header}</h5>\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n <MediaList height=\"100vh\" isLibrary={isLibrary} />\r\n </Col>\r\n <Col md={4}>\r\n <MediaDetail\r\n key={targetMedia?.key}\r\n targetMedia={targetMedia}\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\nexport default GalleryList\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst CLASS_URL = `${BASE_URL}/api/academicclass`\r\n\r\nexport const get = () => api.get(CLASS_URL)\r\n","import React, { useState, useEffect } from \"react\"\r\nimport Select from \"react-select\"\r\nimport { get } from \"../../services/classService\"\r\n\r\nconst AcademicClassSelector = (props: any) => {\r\n const [classes, setClasses] = useState([])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [])\r\n\r\n const getData = async () => {\r\n try {\r\n const res = await get()\r\n setClasses(res.data.items)\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n }\r\n const { id } = props\r\n const options = classes.map((i: any) => {\r\n return {\r\n id: i.id,\r\n value: i.id,\r\n label: i.name\r\n }\r\n })\r\n\r\n const initValue = !!id\r\n ? options.find((option: any) => option.value === id) || null\r\n : null\r\n\r\n return <Select options={options} value={initValue} {...props} />\r\n}\r\n\r\nexport default AcademicClassSelector\r\n","import React, { FC } from \"react\"\r\n\r\nconst SchoolList: FC = () => {\r\n return <div>District school list</div>\r\n}\r\n\r\nexport default SchoolList\r\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t(e.reduxLogger=e.reduxLogger||{})}(this,function(e){\"use strict\";function t(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function r(e,t){Object.defineProperty(this,\"kind\",{value:e,enumerable:!0}),t&&t.length&&Object.defineProperty(this,\"path\",{value:t,enumerable:!0})}function n(e,t,r){n.super_.call(this,\"E\",e),Object.defineProperty(this,\"lhs\",{value:t,enumerable:!0}),Object.defineProperty(this,\"rhs\",{value:r,enumerable:!0})}function o(e,t){o.super_.call(this,\"N\",e),Object.defineProperty(this,\"rhs\",{value:t,enumerable:!0})}function i(e,t){i.super_.call(this,\"D\",e),Object.defineProperty(this,\"lhs\",{value:t,enumerable:!0})}function a(e,t,r){a.super_.call(this,\"A\",e),Object.defineProperty(this,\"index\",{value:t,enumerable:!0}),Object.defineProperty(this,\"item\",{value:r,enumerable:!0})}function f(e,t,r){var n=e.slice((r||t)+1||e.length);return e.length=t<0?e.length+t:t,e.push.apply(e,n),e}function u(e){var t=\"undefined\"==typeof e?\"undefined\":N(e);return\"object\"!==t?t:e===Math?\"math\":null===e?\"null\":Array.isArray(e)?\"array\":\"[object Date]\"===Object.prototype.toString.call(e)?\"date\":\"function\"==typeof e.toString&&/^\\/.*\\//.test(e.toString())?\"regexp\":\"object\"}function l(e,t,r,c,s,d,p){s=s||[],p=p||[];var g=s.slice(0);if(\"undefined\"!=typeof d){if(c){if(\"function\"==typeof c&&c(g,d))return;if(\"object\"===(\"undefined\"==typeof c?\"undefined\":N(c))){if(c.prefilter&&c.prefilter(g,d))return;if(c.normalize){var h=c.normalize(g,d,e,t);h&&(e=h[0],t=h[1])}}}g.push(d)}\"regexp\"===u(e)&&\"regexp\"===u(t)&&(e=e.toString(),t=t.toString());var y=\"undefined\"==typeof e?\"undefined\":N(e),v=\"undefined\"==typeof t?\"undefined\":N(t),b=\"undefined\"!==y||p&&p[p.length-1].lhs&&p[p.length-1].lhs.hasOwnProperty(d),m=\"undefined\"!==v||p&&p[p.length-1].rhs&&p[p.length-1].rhs.hasOwnProperty(d);if(!b&&m)r(new o(g,t));else if(!m&&b)r(new i(g,e));else if(u(e)!==u(t))r(new n(g,e,t));else if(\"date\"===u(e)&&e-t!==0)r(new n(g,e,t));else if(\"object\"===y&&null!==e&&null!==t)if(p.filter(function(t){return t.lhs===e}).length)e!==t&&r(new n(g,e,t));else{if(p.push({lhs:e,rhs:t}),Array.isArray(e)){var w;e.length;for(w=0;w<e.length;w++)w>=t.length?r(new a(g,w,new i(void 0,e[w]))):l(e[w],t[w],r,c,g,w,p);for(;w<t.length;)r(new a(g,w,new o(void 0,t[w++])))}else{var x=Object.keys(e),S=Object.keys(t);x.forEach(function(n,o){var i=S.indexOf(n);i>=0?(l(e[n],t[n],r,c,g,n,p),S=f(S,i)):l(e[n],void 0,r,c,g,n,p)}),S.forEach(function(e){l(void 0,t[e],r,c,g,e,p)})}p.length=p.length-1}else e!==t&&(\"number\"===y&&isNaN(e)&&isNaN(t)||r(new n(g,e,t)))}function c(e,t,r,n){return n=n||[],l(e,t,function(e){e&&n.push(e)},r),n.length?n:void 0}function s(e,t,r){if(r.path&&r.path.length){var n,o=e[t],i=r.path.length-1;for(n=0;n<i;n++)o=o[r.path[n]];switch(r.kind){case\"A\":s(o[r.path[n]],r.index,r.item);break;case\"D\":delete o[r.path[n]];break;case\"E\":case\"N\":o[r.path[n]]=r.rhs}}else switch(r.kind){case\"A\":s(e[t],r.index,r.item);break;case\"D\":e=f(e,t);break;case\"E\":case\"N\":e[t]=r.rhs}return e}function d(e,t,r){if(e&&t&&r&&r.kind){for(var n=e,o=-1,i=r.path?r.path.length-1:0;++o<i;)\"undefined\"==typeof n[r.path[o]]&&(n[r.path[o]]=\"number\"==typeof r.path[o]?[]:{}),n=n[r.path[o]];switch(r.kind){case\"A\":s(r.path?n[r.path[o]]:n,r.index,r.item);break;case\"D\":delete n[r.path[o]];break;case\"E\":case\"N\":n[r.path[o]]=r.rhs}}}function p(e,t,r){if(r.path&&r.path.length){var n,o=e[t],i=r.path.length-1;for(n=0;n<i;n++)o=o[r.path[n]];switch(r.kind){case\"A\":p(o[r.path[n]],r.index,r.item);break;case\"D\":o[r.path[n]]=r.lhs;break;case\"E\":o[r.path[n]]=r.lhs;break;case\"N\":delete o[r.path[n]]}}else switch(r.kind){case\"A\":p(e[t],r.index,r.item);break;case\"D\":e[t]=r.lhs;break;case\"E\":e[t]=r.lhs;break;case\"N\":e=f(e,t)}return e}function g(e,t,r){if(e&&t&&r&&r.kind){var n,o,i=e;for(o=r.path.length-1,n=0;n<o;n++)\"undefined\"==typeof i[r.path[n]]&&(i[r.path[n]]={}),i=i[r.path[n]];switch(r.kind){case\"A\":p(i[r.path[n]],r.index,r.item);break;case\"D\":i[r.path[n]]=r.lhs;break;case\"E\":i[r.path[n]]=r.lhs;break;case\"N\":delete i[r.path[n]]}}}function h(e,t,r){if(e&&t){var n=function(n){r&&!r(e,t,n)||d(e,t,n)};l(e,t,n)}}function y(e){return\"color: \"+F[e].color+\"; font-weight: bold\"}function v(e){var t=e.kind,r=e.path,n=e.lhs,o=e.rhs,i=e.index,a=e.item;switch(t){case\"E\":return[r.join(\".\"),n,\"→\",o];case\"N\":return[r.join(\".\"),o];case\"D\":return[r.join(\".\")];case\"A\":return[r.join(\".\")+\"[\"+i+\"]\",a];default:return[]}}function b(e,t,r,n){var o=c(e,t);try{n?r.groupCollapsed(\"diff\"):r.group(\"diff\")}catch(e){r.log(\"diff\")}o?o.forEach(function(e){var t=e.kind,n=v(e);r.log.apply(r,[\"%c \"+F[t].text,y(t)].concat(P(n)))}):r.log(\"—— no diff ——\");try{r.groupEnd()}catch(e){r.log(\"—— diff end —— \")}}function m(e,t,r,n){switch(\"undefined\"==typeof e?\"undefined\":N(e)){case\"object\":return\"function\"==typeof e[n]?e[n].apply(e,P(r)):e[n];case\"function\":return e(t);default:return e}}function w(e){var t=e.timestamp,r=e.duration;return function(e,n,o){var i=[\"action\"];return i.push(\"%c\"+String(e.type)),t&&i.push(\"%c@ \"+n),r&&i.push(\"%c(in \"+o.toFixed(2)+\" ms)\"),i.join(\" \")}}function x(e,t){var r=t.logger,n=t.actionTransformer,o=t.titleFormatter,i=void 0===o?w(t):o,a=t.collapsed,f=t.colors,u=t.level,l=t.diff,c=\"undefined\"==typeof t.titleFormatter;e.forEach(function(o,s){var d=o.started,p=o.startedTime,g=o.action,h=o.prevState,y=o.error,v=o.took,w=o.nextState,x=e[s+1];x&&(w=x.prevState,v=x.started-d);var S=n(g),k=\"function\"==typeof a?a(function(){return w},g,o):a,j=D(p),E=f.title?\"color: \"+f.title(S)+\";\":\"\",A=[\"color: gray; font-weight: lighter;\"];A.push(E),t.timestamp&&A.push(\"color: gray; font-weight: lighter;\"),t.duration&&A.push(\"color: gray; font-weight: lighter;\");var O=i(S,j,v);try{k?f.title&&c?r.groupCollapsed.apply(r,[\"%c \"+O].concat(A)):r.groupCollapsed(O):f.title&&c?r.group.apply(r,[\"%c \"+O].concat(A)):r.group(O)}catch(e){r.log(O)}var N=m(u,S,[h],\"prevState\"),P=m(u,S,[S],\"action\"),C=m(u,S,[y,h],\"error\"),F=m(u,S,[w],\"nextState\");if(N)if(f.prevState){var L=\"color: \"+f.prevState(h)+\"; font-weight: bold\";r[N](\"%c prev state\",L,h)}else r[N](\"prev state\",h);if(P)if(f.action){var T=\"color: \"+f.action(S)+\"; font-weight: bold\";r[P](\"%c action \",T,S)}else r[P](\"action \",S);if(y&&C)if(f.error){var M=\"color: \"+f.error(y,h)+\"; font-weight: bold;\";r[C](\"%c error \",M,y)}else r[C](\"error \",y);if(F)if(f.nextState){var _=\"color: \"+f.nextState(w)+\"; font-weight: bold\";r[F](\"%c next state\",_,w)}else r[F](\"next state\",w);l&&b(h,w,r,k);try{r.groupEnd()}catch(e){r.log(\"—— log end ——\")}})}function S(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},L,e),r=t.logger,n=t.stateTransformer,o=t.errorTransformer,i=t.predicate,a=t.logErrors,f=t.diffPredicate;if(\"undefined\"==typeof r)return function(){return function(e){return function(t){return e(t)}}};if(e.getState&&e.dispatch)return console.error(\"[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware:\\n// Logger with default options\\nimport { logger } from 'redux-logger'\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n// Or you can create your own logger with custom options http://bit.ly/redux-logger-options\\nimport createLogger from 'redux-logger'\\nconst logger = createLogger({\\n // ...options\\n});\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n\"),function(){return function(e){return function(t){return e(t)}}};var u=[];return function(e){var r=e.getState;return function(e){return function(l){if(\"function\"==typeof i&&!i(r,l))return e(l);var c={};u.push(c),c.started=O.now(),c.startedTime=new Date,c.prevState=n(r()),c.action=l;var s=void 0;if(a)try{s=e(l)}catch(e){c.error=o(e)}else s=e(l);c.took=O.now()-c.started,c.nextState=n(r());var d=t.diff&&\"function\"==typeof f?f(r,l):t.diff;if(x(u,Object.assign({},t,{diff:d})),u.length=0,c.error)throw c.error;return s}}}}var k,j,E=function(e,t){return new Array(t+1).join(e)},A=function(e,t){return E(\"0\",t-e.toString().length)+e},D=function(e){return A(e.getHours(),2)+\":\"+A(e.getMinutes(),2)+\":\"+A(e.getSeconds(),2)+\".\"+A(e.getMilliseconds(),3)},O=\"undefined\"!=typeof performance&&null!==performance&&\"function\"==typeof performance.now?performance:Date,N=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},P=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)},C=[];k=\"object\"===(\"undefined\"==typeof global?\"undefined\":N(global))&&global?global:\"undefined\"!=typeof window?window:{},j=k.DeepDiff,j&&C.push(function(){\"undefined\"!=typeof j&&k.DeepDiff===c&&(k.DeepDiff=j,j=void 0)}),t(n,r),t(o,r),t(i,r),t(a,r),Object.defineProperties(c,{diff:{value:c,enumerable:!0},observableDiff:{value:l,enumerable:!0},applyDiff:{value:h,enumerable:!0},applyChange:{value:d,enumerable:!0},revertChange:{value:g,enumerable:!0},isConflict:{value:function(){return\"undefined\"!=typeof j},enumerable:!0},noConflict:{value:function(){return C&&(C.forEach(function(e){e()}),C=null),c},enumerable:!0}});var F={E:{color:\"#2196F3\",text:\"CHANGED:\"},N:{color:\"#4CAF50\",text:\"ADDED:\"},D:{color:\"#F44336\",text:\"DELETED:\"},A:{color:\"#2196F3\",text:\"ARRAY:\"}},L={level:\"log\",logger:console,logErrors:!0,collapsed:void 0,predicate:void 0,duration:!1,timestamp:!0,stateTransformer:function(e){return e},actionTransformer:function(e){return e},errorTransformer:function(e){return e},colors:{title:function(){return\"inherit\"},prevState:function(){return\"#9E9E9E\"},action:function(){return\"#03A9F4\"},nextState:function(){return\"#4CAF50\"},error:function(){return\"#F20404\"}},diff:!1,diffPredicate:void 0,transformer:void 0},T=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.dispatch,r=e.getState;return\"function\"==typeof t||\"function\"==typeof r?S()({dispatch:t,getState:r}):void console.error(\"\\n[redux-logger v3] BREAKING CHANGE\\n[redux-logger v3] Since 3.0.0 redux-logger exports by default logger with default settings.\\n[redux-logger v3] Change\\n[redux-logger v3] import createLogger from 'redux-logger'\\n[redux-logger v3] to\\n[redux-logger v3] import { createLogger } from 'redux-logger'\\n\")};e.defaults=L,e.createLogger=S,e.logger=T,e.default=T,Object.defineProperty(e,\"__esModule\",{value:!0})});\n","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","import $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n }\n\n if (enumerableOnly) keys = keys.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport {\r\n setLoading,\r\n setModal,\r\n setUser,\r\n setSidebar,\r\n setAlert,\r\n reset,\r\n setCurrentStudentId,\r\n setCurrentStudentUserId\r\n} from \"./action\"\r\n\r\nconst initialState: any = {\r\n sidebarShow: \"responsive\",\r\n isLoading: false,\r\n alert: {\r\n type: \"\",\r\n message: \"\"\r\n },\r\n modal: {\r\n isOpen: false\r\n },\r\n user: null,\r\n currentStudentId: parseInt(localStorage.getItem(\"currentStudentId\") ?? \"0\"),\r\n currentStudentUserId: localStorage.getItem(\"currentStudentUserId\") || \"\"\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setLoading, (state, action) => {\r\n state.isLoading = action.payload\r\n })\r\n .addCase(setModal, (state, action) => {\r\n state.modal = action.payload\r\n })\r\n .addCase(setUser, (state, action) => {\r\n state.user = action.payload\r\n })\r\n .addCase(setSidebar, (state, action) => {\r\n state.sidebarShow = action.payload\r\n })\r\n .addCase(setAlert, (state, action) => {\r\n state.alert = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n .addCase(setCurrentStudentId, (state, action) => {\r\n state.currentStudentId = action.payload\r\n })\r\n .addCase(setCurrentStudentUserId, (state, action) => {\r\n state.currentStudentUserId = action.payload\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setClassList = createAction<any>(\"classes/setClassList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setClassList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n classList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst classReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setClassList, (state, action) => {\r\n state.classList = action.payload.classList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default classReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setConferenceRubricList = createAction<any>(\r\n \"conferenceRubric/setConferenceRubricList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setConferenceRubricList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n conferenceRubricList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst conferenceRubricReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setConferenceRubricList, (state, action) => {\r\n state.conferenceRubricList = action.payload.conferenceRubricList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default conferenceRubricReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setFaqList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n faqList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setFaqList, (state, action) => {\r\n state.faqList = action.payload.faqList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSkillList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n skillList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSkillList, (state, action) => {\r\n state.skillList = action.payload.skillList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setEmailTemplateList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n emailTemplateList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst emailTemplateReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setEmailTemplateList, (state, action) => {\r\n state.emailTemplateList = action.payload.emailTemplateList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default emailTemplateReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSuggestionList = createAction<any>(\r\n \"suggestionBank/setSuggestionList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSuggestionList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n suggestionList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst suggestionBankReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSuggestionList, (state, action) => {\r\n state.suggestionList = action.payload.suggestionList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default suggestionBankReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setStrategyList = createAction<any>(\r\n \"learningStrategy/setStrategyList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setStrategyList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n strategyList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst learningStrategyReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setStrategyList, (state, action) => {\r\n state.strategyList = action.payload.strategyList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default learningStrategyReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSubjectList = createAction<any>(\"subjects/setSubjectList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSubjectList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n subjectList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSubjectList, (state, action) => {\r\n state.subjectList = action.payload.subjectList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setLearningSupportCategoryList = createAction<any>(\r\n \"learningSupportCategories/setLearningSupportCategoryList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setLearningSupportCategoryList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n learningSupportCategoryList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setLearningSupportCategoryList, (state, action) => {\r\n state.learningSupportCategoryList =\r\n action.payload.learningSupportCategoryList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setQuestionList = createAction<any>(\"questionBank/setQuestionList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setQuestionList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n questionList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst questionBankReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setQuestionList, (state, action) => {\r\n state.questionList = action.payload.questionList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionBankReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setBadgeList = createAction<any>(\"badges/setBadgeList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setBadgeList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n badgeList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setBadgeList, (state, action) => {\r\n state.badgeList = action.payload.badgeList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSemesterList = createAction<any>(\"semester/setSemesterList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSemesterList } from \"./action\"\r\n\r\nconst initialState: any = {\r\n semesterList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder.addCase(setSemesterList, (state, action) => {\r\n state.semesterList = action.payload.semesterList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setAssignmentList = createAction<any>(\"assignment/setAssignmentList\")","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setAssignmentList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n assignmentList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setAssignmentList, (state, action) => {\r\n state.assignmentList = action.payload.assignmentList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setGoalExampleList = createAction<any>(\r\n \"goalExamples/setGoalExampleList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setGoalExampleList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n goalExampleList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setGoalExampleList, (state, action) => {\r\n state.goalExampleList = action.payload.goalExampleList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setUserList, setStudentList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n userList: [],\r\n totalItems: 0,\r\n studentList: []\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setUserList, (state, action) => {\r\n state.userList = action.payload.userList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(setStudentList, (state, action) => {\r\n state.studentList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setFeedbackList = createAction<any>(\"feedback/setFeedbackList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setFeedbackList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n feedbackList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setFeedbackList, (state, action) => {\r\n state.feedbackList = action.payload.feedbackList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setAssessmentList = createAction<any>(\r\n \"assessments/setAssessmentList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\nimport { setAssessmentList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initState = {\r\n assessmentList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initState, builder => {\r\n builder\r\n .addCase(setAssessmentList, (state, action) => {\r\n state.assessmentList = action.payload.assessmentList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setReflectionList = createAction<any>(\r\n \"reflectionForms/setReflectionList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setReflectionList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n reflectionList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst reflectionReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setReflectionList, (state, action) => {\r\n state.reflectionList = action.payload.reflectionList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default reflectionReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setReflectionResultList = createAction<any>(\r\n \"reflectionForms/setReflectionResultList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setReflectionResultList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n reflectionResultList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst reflectionReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setReflectionResultList, (state, action) => {\r\n state.reflectionResultList = action.payload.reflectionResultList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default reflectionReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setQuestionByCategory = createAction<Array<object> | undefined>(\r\n \"questionByCategory/setQuestionByCategory\"\r\n)\r\nexport const setSelectQuestion = createAction<{ id: number }>(\r\n \"questionByCategory/setSelectQuestion\"\r\n)\r\nexport const setUnSelectQuestion = createAction<Array<object> | undefined>(\r\n \"questionByCategory/setUnSelectQuestion\"\r\n)\r\nexport const setMoveItemQuestion = createAction<string | undefined>(\r\n \"questionByCategory/setMoveItemQuestion\"\r\n)\r\nexport const setEditItemQuesion = createAction<Array<object> | undefined>(\r\n \"questionByCategory/setEditItemQuesion\"\r\n)\r\nexport const setResetQuestionList = createAction<Array<object> | undefined>(\r\n \"questionByCategory/setResetQuestionList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport {\r\n setQuestionByCategory,\r\n setSelectQuestion,\r\n setUnSelectQuestion,\r\n setMoveItemQuestion,\r\n setEditItemQuesion,\r\n setResetQuestionList\r\n} from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n questionByCategoryList: [],\r\n selectedQuestions: [],\r\n selectQuestion: []\r\n}\r\nconst mergeArrayUniqueQuestion = (array1: any, array2: any) => {\r\n var ids = new Set(array1.map((d: any) => d.id))\r\n var arrMerged = [...array1, ...array2.filter((d: any) => !ids.has(d.id))]\r\n return arrMerged\r\n}\r\nconst questionCategoryReducer = createReducer(initialState, builder => {\r\n builder.addCase(setQuestionByCategory, (state, action) => {\r\n state.questionByCategoryList = action.payload\r\n if (state.selectedQuestions.length > 0) {\r\n state.questionByCategoryList = state.questionByCategoryList.filter(\r\n (item: any) => {\r\n return !state.selectedQuestions.some(\r\n (sub: any) => sub.id === item.id\r\n )\r\n }\r\n )\r\n }\r\n })\r\n builder.addCase(setSelectQuestion, (state, action) => {\r\n let index = state.selectQuestion.findIndex(\r\n (item: any) => item.id === action.payload.id\r\n )\r\n if (index === -1) {\r\n state.selectQuestion.push(action.payload)\r\n } else {\r\n state.selectQuestion.splice(index, 1)\r\n }\r\n })\r\n builder.addCase(setUnSelectQuestion, (state, action) => {\r\n state.selectQuestion = action.payload\r\n })\r\n builder.addCase(setMoveItemQuestion, (state, action) => {\r\n switch (action.payload) {\r\n case \"right\":\r\n state.selectedQuestions = mergeArrayUniqueQuestion(\r\n state.selectedQuestions,\r\n state.selectQuestion\r\n )\r\n state.questionByCategoryList = state.questionByCategoryList.filter(\r\n (item: any) => {\r\n return !state.selectedQuestions.some(\r\n (sub: any) => sub.id === item.id\r\n )\r\n }\r\n )\r\n state.selectQuestion = []\r\n break\r\n case \"right-all\":\r\n state.selectedQuestions = mergeArrayUniqueQuestion(\r\n state.selectedQuestions,\r\n state.questionByCategoryList\r\n )\r\n state.selectQuestion = []\r\n state.questionByCategoryList = []\r\n break\r\n case \"left\":\r\n state.questionByCategoryList = mergeArrayUniqueQuestion(\r\n state.questionByCategoryList,\r\n state.selectQuestion\r\n )\r\n state.selectedQuestions = state.selectedQuestions.filter(\r\n (item: any) => {\r\n return !state.selectQuestion.some(\r\n (sub: any) => sub.id === item.id\r\n )\r\n }\r\n )\r\n state.selectQuestion = []\r\n break\r\n case \"left-all\":\r\n state.questionByCategoryList = mergeArrayUniqueQuestion(\r\n state.questionByCategoryList,\r\n state.selectedQuestions\r\n )\r\n state.selectedQuestions = []\r\n state.selectQuestion = []\r\n break\r\n case \"move-up\":\r\n const old_index = state.selectedQuestions.findIndex(\r\n (item: any) => item.id === state.selectQuestion[0].id\r\n )\r\n if (old_index !== -1) {\r\n state.selectedQuestions.splice(\r\n old_index - 1,\r\n 0,\r\n state.selectedQuestions.splice(old_index, 1)[0]\r\n )\r\n }\r\n break\r\n case \"move-down\":\r\n const old_index1 = state.selectedQuestions.findIndex(\r\n (item: any) => item.id === state.selectQuestion[0].id\r\n )\r\n if (old_index1 !== -1) {\r\n state.selectedQuestions.splice(\r\n old_index1 + 1,\r\n 0,\r\n state.selectedQuestions.splice(old_index1, 1)[0]\r\n )\r\n }\r\n break\r\n default:\r\n break\r\n }\r\n })\r\n builder.addCase(setEditItemQuesion, (state, action) => {\r\n state.questionByCategoryList = []\r\n state.selectedQuestions = action.payload\r\n })\r\n builder.addCase(setResetQuestionList, state => {\r\n state.questionByCategoryList = []\r\n state.selectedQuestions = []\r\n })\r\n builder.addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionCategoryReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setMailCategory } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n mailCategoryList: []\r\n}\r\n\r\nconst questionBankReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setMailCategory, (state, action) => {\r\n state.mailCategoryList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionBankReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setQuestionCateList = createAction<any>(\r\n \"questionCate/setQuestionCateList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setQuestionCateList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n questionCateList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst questionCateReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setQuestionCateList, (state, action) => {\r\n state.questionCateList = action.payload.questionCateList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionCateReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport {\r\n setNotification,\r\n setUnReadNotification,\r\n updateUnReadNotification\r\n} from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n notificationList: [],\r\n totalItems: 0,\r\n unReadNotification: 0\r\n}\r\n\r\nconst questionBankReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setNotification, (state, action) => {\r\n ;(state.notificationList = action.payload.notificationList),\r\n (state.totalItems = action.payload.totalItems),\r\n (state.unReadNotification = action.payload.unReadNotification)\r\n })\r\n .addCase(setUnReadNotification, (state, action) => {\r\n state.unReadNotification = action.payload\r\n })\r\n .addCase(updateUnReadNotification, (state, action) => {\r\n state.unReadNotification += action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionBankReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setMyStudent = createAction<any>(\"myStudent/setMyStudentList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setMyStudent } from \"./action\"\r\nimport { reset } from \"../../commons/action\"\r\n\r\nconst initialState: any = {\r\n myStudentList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setMyStudent, (state, action) => {\r\n state.myStudentList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setAssistantList = createAction<Array<object> | undefined>(\r\n \"assistants/setAssistantList\"\r\n)\r\n// export const setStudentAssistantList = createAction<Array<object> | undefined>(\r\n// \"assistants/setStudentAssistantList\"\r\n// )\r\n// export const setStudentByAssistant = createAction<Array<object> | undefined>(\r\n// \"assistants/setStudentByAssistant\"\r\n// )\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setAssistantList } from \"./action\"\r\n\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n assistantList: []\r\n}\r\n\r\nconst assistantReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setAssistantList, (state, action) => {\r\n state.assistantList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default assistantReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSessionTemplateList = createAction<any>(\r\n \"sessionTemplates/setSessionTemplateList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSessionTemplateList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n sessionTemplateList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst sessionTemplateReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSessionTemplateList, (state, action) => {\r\n state.sessionTemplateList = action.payload.sessionTemplateList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default sessionTemplateReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSessionTemplateGeneralClassList = createAction<any>(\r\n \"sessionTemplateGeneralClasses/setSessionTemplateList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSessionTemplateGeneralClassList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n sessionTemplateGeneralClassList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst sessionTemplateGeneralClassReducer = createReducer(\r\n initialState,\r\n builder => {\r\n builder\r\n .addCase(setSessionTemplateGeneralClassList, (state, action) => {\r\n state.sessionTemplateGeneralClassList =\r\n action.payload.sessionTemplateGeneralClassList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n }\r\n)\r\n\r\nexport default sessionTemplateGeneralClassReducer\r\n","import {createAction} from \"@reduxjs/toolkit\"\r\n\r\nexport const setTutorialScreenList = createAction<any>(\"tutorialScreens/setTutorialScreenList\")\r\n\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\nimport { setTutorialScreenList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initState = {\r\n tutorialScreenList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst tutorialScreenReducer = createReducer(initState, builder => {\r\n builder\r\n .addCase(setTutorialScreenList, (state, action) => {\r\n state.tutorialScreenList = action.payload.tutorialScreenList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initState\r\n })\r\n})\r\n\r\nexport default tutorialScreenReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setCustomAlertList = createAction<any>(\"customAlerts/setCustomAlertList\")","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setCustomAlertList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n customAlertList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setCustomAlertList, (state, action) => {\r\n state.customAlertList = action.payload.customAlertList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setGallery, setTargetMedia } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n mediaList: [],\r\n totalItems: 0,\r\n targetMedia: undefined\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setGallery, (state, action) => {\r\n state.mediaList = action.payload.mediaList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(setTargetMedia, (state, action) => {\r\n state.targetMedia = action.payload.targetMedia\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\nimport { NavbarTab } from \"../../types/Dashboard\"\r\n\r\nexport const addTab = createAction<NavbarTab>(\"dashboard/addTab\")\r\nexport const closeTab = createAction<number>(\"dashboard/closeTab\")\r\nexport const editTab = createAction<NavbarTab>(\"dashboard/editTab\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\nimport { closeTab, addTab, editTab } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n tabs: []\r\n}\r\n\r\nconst dashboardReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(addTab, (state, action) => {\r\n if (state.tabs.some((tab: any) => tab.url === action.payload.url)) {\r\n return state\r\n }\r\n\r\n return {\r\n ...state,\r\n tabs: [action.payload, ...state.tabs]\r\n }\r\n })\r\n .addCase(closeTab, (state, action) => {\r\n let tabs = JSON.parse(JSON.stringify(state.tabs))\r\n delete tabs[action.payload]\r\n tabs = tabs.filter(Boolean)\r\n\r\n return { ...state, tabs }\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n .addCase(editTab, (state, action) => {\r\n const tabs = JSON.parse(JSON.stringify(state.tabs))\r\n const editingTab = tabs.find(\r\n (tab: any) =>\r\n action.payload.label === tab.label &&\r\n (tab.url.startsWith(action.payload.url) ||\r\n action.payload.url.startsWith(tab.url))\r\n )\r\n editingTab.url = action.payload.url\r\n return {\r\n ...state,\r\n tabs\r\n }\r\n })\r\n})\r\n\r\nexport default dashboardReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const changeNote = createAction<any>(\"sessionPlayer/changeNote\")\r\nexport const changeTags = createAction<any>(\"sessionPlayer/changeTags\")\r\nexport const answerQuestion = createAction<any>(\"sessionPlayer/answerQuestion\")\r\nexport const setSessionPlayer = createAction<any>(\r\n \"sessionPlayer/setSessionPlayer\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport {\r\n changeNote,\r\n changeTags,\r\n answerQuestion,\r\n setSessionPlayer\r\n} from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n sessionId: 0,\r\n session: {\r\n id: 0,\r\n studentId: 0,\r\n teacherId: 0,\r\n duration: 0,\r\n conferenceRubric: null,\r\n studentDefaultQuestions: [],\r\n teacherDefaultQuestions: [],\r\n additionalQuestions: []\r\n },\r\n results: []\r\n}\r\n\r\nconst sessionPlayerReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSessionPlayer, (_state, action) => {\r\n return action.payload\r\n })\r\n .addCase(changeNote, (state, action) => {\r\n const { isConfidential, text } = action.payload\r\n const teacherResult = state.results.find(\r\n (result: any) => result.isTeacherResult\r\n )\r\n if (!teacherResult) return state\r\n const teacherResultCloner = JSON.parse(\r\n JSON.stringify(teacherResult)\r\n )\r\n\r\n const existedNote = teacherResultCloner.notes.find(\r\n (note: any) => !!note.isConfidential === isConfidential\r\n )\r\n\r\n if (existedNote) {\r\n existedNote.text = text\r\n } else {\r\n teacherResultCloner.notes.push({ isConfidential, text })\r\n }\r\n\r\n return {\r\n ...state,\r\n results: state.results.map((result: any) =>\r\n result.isTeacherResult ? teacherResultCloner : result\r\n )\r\n }\r\n })\r\n .addCase(changeTags, (state, action) => {\r\n const tags = action.payload\r\n const teacherResult = state.results.find(\r\n (result: any) => result.isTeacherResult\r\n )\r\n if (!teacherResult) return state\r\n const teacherResultCloner = JSON.parse(\r\n JSON.stringify(teacherResult)\r\n )\r\n teacherResultCloner.tags = tags\r\n return {\r\n ...state,\r\n results: state.results.map((result: any) =>\r\n result.isTeacherResult ? teacherResultCloner : result\r\n )\r\n }\r\n })\r\n .addCase(answerQuestion, (state, action) => {\r\n const { text, questionId, isTeacherResult } = action.payload\r\n const result = state.results.find(\r\n (result: any) => result.isTeacherResult === isTeacherResult\r\n )\r\n if (!result) return state\r\n const resultCloner = JSON.parse(JSON.stringify(result))\r\n const existedResponse = resultCloner.questionResponses.find(\r\n (response: any) => response.questionId === questionId\r\n )\r\n if (!existedResponse) {\r\n resultCloner.questionResponses.push({ questionId, text })\r\n } else {\r\n existedResponse.text = text\r\n }\r\n\r\n return {\r\n ...state,\r\n results: state.results.map((result: any) =>\r\n result.isTeacherResult === isTeacherResult\r\n ? resultCloner\r\n : result\r\n )\r\n }\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default sessionPlayerReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setDataPlayer = createAction<any>(\"dataPlayer/setDataPlayer\")\r\nexport const answerQuestionDataPlayer = createAction<any>(\r\n \"dataPlayer/answerQuestionDataPlayer\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setDataPlayer, answerQuestionDataPlayer } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n id: 0,\r\n questions: [\r\n {\r\n id: 0,\r\n text: \"\",\r\n type: \"\",\r\n subQuestions: [],\r\n answers: []\r\n }\r\n ],\r\n questionResponse: []\r\n}\r\n\r\nconst dataPlayer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setDataPlayer, (_state, action) => {\r\n return action.payload\r\n })\r\n .addCase(answerQuestionDataPlayer, (state, action) => {\r\n const { questionId, text } = action.payload\r\n const questionResponse = state.questionResponse\r\n if (!questionResponse) return state\r\n const questionResponseCloner = JSON.parse(\r\n JSON.stringify(questionResponse)\r\n )\r\n const existedResponse = questionResponseCloner.find(\r\n (response: any) => response.questionId === questionId\r\n )\r\n if (!existedResponse) {\r\n questionResponseCloner.push({\r\n questionId: questionId,\r\n text: text\r\n })\r\n } else {\r\n existedResponse.text = text\r\n }\r\n\r\n return {\r\n ...state,\r\n questionResponse: questionResponseCloner\r\n }\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\nexport default dataPlayer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setCertificateList = createAction<any>(\r\n \"certificates/setCertificateList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setCertificateList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n certificateList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setCertificateList, (state, action) => {\r\n state.certificateList = action.payload.certificateList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setImproveMyClass = createAction<any>(\r\n \"improveMyClass/setImproveMyClass\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setImproveMyClass } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n improveMyClassList: []\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setImproveMyClass, (state, action) => {\r\n state.improveMyClassList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setFilterWidget = createAction<any>(\"setFilterWidget\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setFilterWidget } from \"./action\"\r\n\r\nconst enum Filter {\r\n Year = \"Year\",\r\n Semester = \"Semester\"\r\n}\r\n\r\nconst initialState: any = {\r\n filterWidget: Filter.Year\r\n}\r\n\r\nconst widgetReducer = createReducer(initialState, builder => {\r\n builder.addCase(setFilterWidget, (state, action) => {\r\n state.filterWidget = action.payload.filterWidget\r\n })\r\n})\r\nexport default widgetReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setBandScoreList = createAction<any>(\"bandScores/setBandScoreList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setBandScoreList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n bandScoreList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setBandScoreList, (state, action) => {\r\n state.bandScoreList = action.payload.bandScoreList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSchoolBlankDayList = createAction<any>(\r\n \"schoolBlankDays/setSchoolBlankDayList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSchoolBlankDayList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n schoolBlankDayList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSchoolBlankDayList, (state, action) => {\r\n state.schoolBlankDayList = action.payload.schoolBlankDayList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { combineReducers } from \"redux\"\r\n\r\nimport common from \"./redux/commons/reducer\"\r\nimport classes from \"./redux/classes/reducer\"\r\nimport conferenceRubrics from \"./redux/conferenceRubrics/reducer\"\r\nimport faqs from \"./redux/faqs/reducer\"\r\nimport skills from \"./redux/skills/reducer\"\r\nimport emailTemplate from \"./redux/emailTemplates/reducer\"\r\nimport suggestionBank from \"./redux/suggestionBanks/reducer\"\r\nimport learningStrategy from \"./redux/learningStrategies/reducer\"\r\nimport subjects from \"./redux/subjects/reducer\"\r\nimport learningSupportCategories from \"./redux/learningSupportCategories/reducer\"\r\nimport questionBank from \"./redux/questionBanks/reducer\"\r\nimport badges from \"./redux/badges/reducer\"\r\nimport semester from \"./redux/semester/reducer\"\r\nimport assignments from \"./redux/assignment/reducer\"\r\nimport goalExamples from \"./redux/goalExamples/reducer\"\r\nimport users from \"./redux/users/reducer\"\r\nimport feedbacks from \"./redux/feedback/reducer\"\r\nimport assessments from \"./redux/assessments/reducer\"\r\nimport reflections from \"./redux/reflectionForms/reducer\"\r\nimport reflectionResults from \"./redux/reflectionResults/reducer\"\r\nimport questionByCategory from \"./redux/questionByCategory/reducer\"\r\nimport mailCategory from \"./redux/mailCategories/reducer\"\r\nimport questionCate from \"./redux/questionCategory/reducer\"\r\nimport notification from \"./redux/notifications/reducer\"\r\nimport myStudent from \"./redux/teacher/myStudent/reducer\"\r\nimport assistants from \"./redux/assistants/reducer\"\r\nimport sesstionTemplates from \"./redux/sessionTemplates/reducer\"\r\nimport sessionTemplateGeneralClasses from \"./redux/sessionTemplateGeneralClasses/reducer\"\r\nimport tutorialScreens from \"./redux/tutorialScreen/reducer\"\r\nimport customAlerts from \"./redux/customAlert/reducer\"\r\nimport gallery from \"./redux/gallery/reducer\"\r\nimport dashboard from \"./redux/dashboard/reducer\"\r\nimport sessionPlayer from \"./redux/sessionPlayers/reducer\"\r\nimport dataPlayer from \"./redux/dataPlayer/reducer\"\r\nimport certificate from \"./redux/certificate/reducer\"\r\nimport improveMyClass from \"./redux/improveMyClass/reducer\"\r\nimport widget from \"./redux/widget/reducer\"\r\nimport bandScores from \"./redux/bandScores/reducer\"\r\nimport schoolBlankDays from \"./redux/schoolBlankDays/reducer\"\r\n\r\nconst rootReducer = combineReducers({\r\n common,\r\n classes,\r\n conferenceRubrics,\r\n faqs,\r\n skills,\r\n emailTemplate,\r\n suggestionBank,\r\n learningStrategy,\r\n subjects,\r\n learningSupportCategories,\r\n questionBank,\r\n badges,\r\n semester,\r\n goalExamples,\r\n users,\r\n reflections,\r\n reflectionResults,\r\n feedbacks,\r\n assessments,\r\n questionByCategory,\r\n mailCategory,\r\n questionCate,\r\n notification,\r\n myStudent,\r\n assignments,\r\n assistants,\r\n sesstionTemplates,\r\n sessionTemplateGeneralClasses,\r\n tutorialScreens,\r\n customAlerts,\r\n gallery,\r\n dashboard,\r\n sessionPlayer,\r\n dataPlayer,\r\n certificate,\r\n improveMyClass,\r\n widget,\r\n bandScores,\r\n schoolBlankDays\r\n})\r\n\r\nexport default rootReducer\r\n","import { configureStore } from \"@reduxjs/toolkit\"\r\nimport logger from \"redux-logger\"\r\nimport { Store } from \"redux\"\r\n\r\nimport rootReducer from \"./rootReducer\"\r\n\r\nconst store: Store = configureStore({\r\n reducer: rootReducer,\r\n middleware: getDefaultMiddleware =>\r\n getDefaultMiddleware({ serializableCheck: false }).concat(logger)\r\n})\r\n\r\nexport default store\r\n","export const isInViewport = (el: any) => {\r\n const rect = el.getBoundingClientRect()\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <=\r\n (window.innerHeight || document.documentElement.clientHeight) &&\r\n rect.right <=\r\n (window.innerWidth || document.documentElement.clientWidth)\r\n )\r\n}\r\n\r\nexport const toogleSidebar = () => {\r\n // @ts-ignore\r\n document.querySelector(\"#sidebar-minimizer\").click()\r\n}\r\n","const debounce = (callback: any, wait: number) => {\r\n let timeout: any = null\r\n return (...args: any[]) => {\r\n const next = () => callback(...args)\r\n clearTimeout(timeout)\r\n timeout = setTimeout(next, wait)\r\n }\r\n}\r\n\r\nexport default debounce\r\n","const getTextFromHTML = (htmlString: string) => {\r\n const p = document.createElement(\"p\")\r\n p.innerHTML = htmlString\r\n const text = p.innerText\r\n p.remove()\r\n return text\r\n}\r\n\r\nexport default getTextFromHTML\r\n","export default () => (Math.random() + 1).toString(36).substring(7)\r\n"],"names":["style","fontSize","ErrorHandler","text","React","className","CloseBlock","to","Link","styles","containerStyle","height","backgroundColor","borderRadius","marginBottom","inputStyle","eyeIconStyle","PasswordInput","isShowPassword","togglePasswordVisible","onChange","Input","type","name","placeholder","required","onClick","title","TINY_MCE_API_KEY","GOOGLE_RECAPTCHA_KEY","ACCESS_TOKEN","DEFAULT_PAGE_SIZE_VALUES","label","value","DEFAULT_PAGE_SIZE","DEFAULT_FILTER","searchString","currentPage","pageSize","sortBy","sortOrder","COLORS","DANGER","WARNING","SUCCESS","INFO","DATE_FORMAT","DATE_RESULT","FULL_DATE_RESULT","FULL_DATE_FORMAT","DATE_MIN_VALUE","LICENSE_AGGRID","BASE_URL","windowUrl","window","location","href","url","split","QUESTION_TYPES_OPTIONS","QUESTION_TYPES","SINGLE_CHOICE","MULTIPLE_CHOICE","TEXT_INPUT","SLIDER","PROGRESS_BAR","STAR_RATING","TEXT_INPUT_WITH_SUGGESTIONS","EMOTIONAL","SUMMARIZE","RATING","LEARNING_STRATEGY","STAR_OPTIONS","ANSWER_EDITOR_HEIGHT","USER_ROLES","CHAT_CHANNEL","NOTIFICATION_CHANNEL","DEFAULT_IMAGE_URL","EMOTIONS","TAB_COLORS","reflect","goal","localStorage","getItem","err","setLoading","createAction","setModal","setUser","setSidebar","setAlert","reset","setCurrentStudentId","setCurrentStudentUserId","params","Object","keys","filter","key","map","Array","isArray","i","encodeURIComponent","join","api","axios","create","baseURL","timeout","headers","paramsSerializer","encodeParams","apiUpload","forEach","interceptors","request","use","config","token","getAccessToken","Authorization","error","Promise","reject","ACCOUNT_URL","logIn","data","post","checkToken","getInfo","get","forgotPassword","checkResetToken","resetPassword","logInTwoFactor","defaultInfo","email","password","captcha","rememberMe","HOMEPAGE_TEACHER","HOMEPAGE_STUDENT","HOMEPAGE_ADMIN","HOMEPAGE_PARENT","HOMEPAGE_DISTRICT","TITLE","useLogin","dispatch","useDispatch","history","useHistory","useState","openLogin","setOpenLogin","toggle","useCallback","setIsShowPassword","useEffect","document","push","isDistrict","host","includes","userLogin","res","isTwoFactor","id","firstName","lastName","roles","profileImageFileName","setItem","message","response","removeItem","schema","yup","BlockLogin","useGoogleReCaptcha","executeRecaptcha","clickHandler","console","log","handleVerify","Formik","initialValues","enableReinitialize","validationSchema","onSubmit","values","clickHandlerRes","formikProps","handleChange","handleBlur","handleSubmit","touched","errors","setFieldValue","emailError","passwordError","Form","FormGroup","Label","onBlur","e","target","checked","GoogleReCaptcha","action","onVerify","Col","DASHBOARD","LOGIN","useForgotPassword","isShowNewPassword","setIsShowNewPassword","isShowReTypePassword","setIsShowReTypePassword","validLink","setValidLink","forgotPasswordRequest","checkResetTokenRequest","resetPasswordRequest","forgotPasswordSchema","BlockForgetPassword","CloseButton","reEnterPassword","resetPasswordSchema","test","parent","BlockResetPassword","query","URLSearchParams","useLocation","search","Fragment","useLoginTwoFactor","userLoginTwoFactor","twoFactorCode","BlockTwoFactorLogin","LOGIN_TITLE","FORGOT_PASSWORD_TITLE","RESET_PASSWORD_TITLE","Login","props","isLogin","isForgotPassword","isResetPassword","isLoginTwoFactor","Row","lg","md","xs","GoogleReCaptchaProvider","useRecaptchaNet","reCaptchaKey","scriptProps","async","defer","appendTo","QuoteContent","descriptions","IconContent","srcIcon","content","src","alt","quote","description","contents","scrIcon","ContentHomePage","index","HOME_ADMIN","HOME_TEACHER","HOME_STUDENT","DASHBOARD_TITLE","ROOT_TITLE","Dashboard","user","useSelector","state","common","Images","USER_CONVERSATION_AVATAR","GROUP_CONVERSATION_AVATAR","LOGO","LOGO_HEADER","LOGO_MINIMIZED","DOCS_IMAGE","AUDIO_IMAGE","PHOTO_IMAGE","VIDEO_IMAGE","FOLDER_IMAGE","UNKNOW_IMAGE","TheSidebar","navigation","show","sidebarShow","CSidebar","onShowChange","val","CSidebarBrand","CSidebarNav","CCreateElement","items","components","CSidebarNavDivider","CSidebarNavDropdown","CSidebarNavItem","CSidebarNavTitle","CSidebarMinimizer","setNotification","setUnReadNotification","updateUnReadNotification","NOTIFICATION_URL","getUnReadNotifications","updateStatusNotification","put","useUnReadNotification","userId","pusherCluster","pusherKey","unReadNotification","notification","getData","isChat","pathname","pusher","Pusher","cluster","channel","subscribe","bind","unsubscribe","NotificationButton","isAdmin","useUnreadNotification","openNotification","features","open","getFileUrl","fileName","trim","DEFAULT_USER_AVATAR","ADMIN_ROLE","TEACHER_ROLE","USER_DETAIL_URL","TheHeaderDropdown","isTeacher","goToTeacherPanel","signOut","dropdownOpen","setDropdownOpen","prevState","avatarUrl","Dropdown","isOpen","DropdownToggle","DropdownMenu","NavLink","DropdownItem","TheHeader","toggleSidebar","toggleSidebarMobile","CHeader","withSubheader","CToggler","inHeader","CHeaderBrand","CHeaderNav","NotFound","loading","TheContent","routes","dashboard","CContainer","fluid","Suspense","fallback","Switch","route","idx","Route","path","exact","component","memo","loadingStyle","minWidth","minHeight","position","top","left","zIndex","display","justifyContent","alignItems","Loading","isLoading","role","firstCheckToken","tokenStatus","canAccess","userRoles","componentRoles","intersects","length","TheLayout","isNotification","authRoutes","useMemo","canAccessRoute","authNavigations","nav","checkAuthentication","loadInfo","resetAuth","info","buttonTextStyle","fontWeight","buttonStyle","AddButton","Button","color","FaPlus","DeleteButtonIcon","FaTrashAlt","LinkEditButton","EmptyDataAlert","Alert","defaultProps","CustomPagination","filters","changePage","totalRecordCount","changePageSize","input","setInput","toString","Pagination","Select","options","PaginationItem","PaginationLink","previous","tag","disabled","onKeyUp","keyCode","parseInt","next","setEmailTemplateList","setMailCategory","EMAIL_TEMPLATE_URL","getById","update","remove","MAIL_CATEGORY_URL","CREATE_TEMPLATE_URL","useEmailTemplateList","emailTemplateList","emailTemplate","totalItems","mailCategoryList","mailCategory","setFilters","changeFilters","updatedFilters","getCategory","removeData","onConfirm","goToDetail","header","EmailTemplateList","onRemove","Table","bordered","hover","striped","responsive","size","record","subject","category","format","Date","createdAt","width","bottom","borderTop","marginTop","marginLeft","padding","DetailActionButtons","confirmText","onCancel","form","AddButtonIcon","defaultparams","meaning","MailSubject","isResetPasswordTemplate","param","MailCategorySelector","fetchMailCategory","arrCategory","initValue","find","option","RequiredLabel","quitAlertMessage","QuitPrompt","when","Prompt","AttachmentFile","UPLOAD_FILE_URL","SYSTEM_PROFILE","SYSTEM_STUDENT_BADGE","SYSTEM_CERTIFICATE","SYSTEM_EMAIL","SYSTEM_QUESTION","SYSTEM_ANSWER","SYSTEM_TUTORIAL","CUSTOM_KEY","DELETE_FILE","DELETE_FOLDER","CREATE_FOLDER","RENAME_FILE","uploadFile","formData","systemStudentBadge","systemCertificateUpload","systemProfileUpload","systemEmailUpload","systemQuestionUpload","systemAnswerUpload","systemTutorialUpload","customKeyUpload","deleteFile","deleteFolder","createFolder","prefix","folderName","renameFile","menubar","force_br_newlines","force_p_newlines","branding","plugins","toolbar","paste_data_images","images_upload_handler","blobInfo","success","imageFile","FormData","append","blob","filename","question","answer","tutorial","media_live_embeds","file_picker_callback","cb","createElement","setAttribute","onchange","file","files","click","editorConfig","categoryId","body","attachments","EMAIL_TEMPLATE_LIST_URL","MAX_FILES_SIZE","useEmailTemplateDetail","editorRef","emailTemplateDetail","setEmailTemplateDetail","edited","setEdited","setEditedTrue","removedFiles","setRemovedFiles","fileUpload","setFileUpload","editor","execCommand","setEditorRef","node","addParams","backToList","confirmData","uploadFiles","fileData","newAttachments","item","onAttachFile","inputs","getElementsByClassName","newInput","emailDetail","getElementById","addEventListener","updateAttachment","totalSize","attachmentInputs","attachmentInput","some","inputId","removeAttachment","thisInput","newRemovedFile","removed","promises","all","comment","CREATE_TEMPLATE_HEADER","EDIT_TEMPLATE_HEADER","EmailTemplateDetail","useParams","Editor","ref","apiKey","initialValue","init","onEditorChange","attachment","a","MailParam","c","CommonModal","children","cancelText","noFooter","setEditedFalse","setIsOpen","showEditedWarningModal","onToggle","isShowConfirm","cancel","useImperativeHandle","Modal","ModalHeader","ModalBody","ModalFooter","forwardRef","FaqDetailModal","faqDetail","actions","resetForm","rows","setFaqList","FAQ_URL","useFaqList","faqList","faqs","useFaqDetail","setId","setFaqDetail","FaqList","modal","useRef","openModal","faqId","current","CustomSelector","defaultValue","isDisabled","scrollBottom","rest","menuPlacement","SKILL_URL","SkillSelector","skillList","setSkillList","fetchSkill","arrSkill","SkillDetailModal","skillDetail","parentSkillId","useSkillList","skills","useSkillDetail","setSkillDetail","SkillList","skillId","setUserList","setStudentList","USER_URL","CREATE_USER_URL","useUserList","userList","users","reDirectDetailPage","SearchBox","onSearch","setSearchString","searchInputStyle","SearchBoxContainer","UserList","fullName","differenceInCalendarYears","dateOfBirth","isActive","MAX_FILE_SIZE","UploadFileButton","maxWidth","maxHeight","setFile","canDelete","onDelete","isCheckFeedBack","onAddImage","imagePreviewUrl","setImagePreviewUrl","imageStyle","imageSrc","handleImageChange","preventDefault","reader","FileReader","newFile","onloadend","result","readAsDataURL","imagePreviewContainer","accept","htmlFor","tabIndex","MdAttachFile","USER_LIST_URL","useUserDetail","userDetail","setUserDetail","imageUrl","userSchema","of","min","CREATE_USER","EDIT_USER_HEADER","ROLES","ADMIN","TEACHER","ASSISTANT","STUDENT","UserDetail","formProps","toggleRoles","r","teacherAssistantRoles","DatePicker","todayButton","peekNextMonth","showMonthDropdown","showYearDropdown","dropdownMode","selected","toDate","placeholderText","customInput","CustomInput","modalInfo","NotificationModal","headerStyle","confirm","fade","paddingBottom","headerTextStyle","textAlign","CommonHeader","rootHeader","EditButtonIcon","FaRegEdit","DropdownIndicator","CreatableSelector","inputValue","handleInputChange","handleKeyDown","Creatable","isClearable","isMulti","menuIsOpen","onInputChange","onKeyDown","QuestionTypeSelector","CATEGORY_URL","SuggestionCategorySelector","categoryList","setCategoryList","fetchCategory","QuestionCategorySelector","getCategoryList","StarRatingSelector","ACTIVE_COLOR","INACTIVE_COLOR","ToggleButton","textLeft","textRight","isLeft","clickLeft","clickRight","InputFile","icon","callback","handleFileChange","ReactNotification","NotificationStatusSelector","FULL_FORMAT","time","FORMAT","utcDate","utcDateFormat","defaultFilters","isRead","NEW_NOTIFICATION","useNotificationList","notificationList","objectValue","updateNotification","NotificationList","utcToLocalTime","CustomTabs","tabs","renderContent","activeTab","t","indexOf","xl","Nav","NavItem","TabContent","TabPane","tabId","CommonAlert","alert","onDismiss","clearTimeout","setTimeout","ActionModal","targetMedia","MediaNav","isLibrary","step","breadcumb","currentPrefix","handleSelectFile","handleCreateFolder","handleRenameFile","handleGoBack","handleDownloadMedia","handleDeleteMediaOrFolder","showErrorAlert","inputFile","renderGroupButtons","FaArrowLeft","isFolder","FaDownload","FaTrash","FaEdit","FaFolderPlus","FaFileUpload","event","MediaType","images","videos","docs","audios","getTypeByExtension","extension","IMAGE","VIDEO","DOC","AUDIO","UNKNOW","getMediaThumbnail","media","Media","isTarget","thumbnail","Card","CardImg","CardBody","CardTitle","Filter","queryTypes","selectQueryTypes","sm","types","op","setGallery","setTargetMedia","GALLERY_URL","defaultFilter","useGalleryList","mediaList","gallery","formDataMediaType","assign","link","router","changeRouter","handleOpenFolder","temp","splice","pop","handleSelectMedia","undefined","customKeyUploadEffect","customKey","slice","breadcrumb","subLinks","_err","MediaList","renderList","onDoubleClick","CardHeader","MediaDetail","controls","CardText","toUpperCase","GalleryList","CLASS_URL","AcademicClassSelector","classes","setClasses","SchoolList","this","global","ponyfill","initialState","currentStudentId","currentStudentUserId","commonReducer","createReducer","builder","addCase","payload","_state","_action","setClassList","classList","classReducer","setConferenceRubricList","conferenceRubricList","conferenceRubricReducer","emailTemplateReducer","setSuggestionList","suggestionList","suggestionBankReducer","setStrategyList","strategyList","learningStrategyReducer","setSubjectList","subjectList","setLearningSupportCategoryList","learningSupportCategoryList","setQuestionList","questionList","questionBankReducer","setBadgeList","badgeList","setSemesterList","semesterList","setAssignmentList","assignmentList","setGoalExampleList","goalExampleList","studentList","setFeedbackList","feedbackList","setAssessmentList","initState","assessmentList","setReflectionList","reflectionList","reflectionReducer","setReflectionResultList","reflectionResultList","setQuestionByCategory","setSelectQuestion","setUnSelectQuestion","setMoveItemQuestion","setEditItemQuesion","setResetQuestionList","questionByCategoryList","selectedQuestions","selectQuestion","mergeArrayUniqueQuestion","array1","array2","ids","Set","d","arrMerged","has","questionCategoryReducer","sub","findIndex","old_index","old_index1","setQuestionCateList","questionCateList","questionCateReducer","setMyStudent","myStudentList","setAssistantList","assistantList","assistantReducer","setSessionTemplateList","sessionTemplateList","sessionTemplateReducer","setSessionTemplateGeneralClassList","sessionTemplateGeneralClassList","sessionTemplateGeneralClassReducer","setTutorialScreenList","tutorialScreenList","tutorialScreenReducer","setCustomAlertList","customAlertList","addTab","closeTab","editTab","dashboardReducer","tab","JSON","parse","stringify","Boolean","editingTab","startsWith","changeNote","changeTags","answerQuestion","setSessionPlayer","sessionId","session","studentId","teacherId","duration","conferenceRubric","studentDefaultQuestions","teacherDefaultQuestions","additionalQuestions","results","sessionPlayerReducer","isConfidential","teacherResult","isTeacherResult","teacherResultCloner","existedNote","notes","note","tags","questionId","resultCloner","existedResponse","questionResponses","setDataPlayer","answerQuestionDataPlayer","questions","subQuestions","answers","questionResponse","dataPlayer","questionResponseCloner","setCertificateList","certificateList","setImproveMyClass","improveMyClassList","setFilterWidget","filterWidget","widgetReducer","setBandScoreList","bandScoreList","setSchoolBlankDayList","schoolBlankDayList","rootReducer","combineReducers","conferenceRubrics","suggestionBank","learningStrategy","subjects","learningSupportCategories","questionBank","badges","semester","goalExamples","reflections","reflectionResults","feedbacks","assessments","questionByCategory","questionCate","myStudent","assignments","assistants","sesstionTemplates","sessionTemplateGeneralClasses","tutorialScreens","customAlerts","sessionPlayer","certificate","improveMyClass","widget","bandScores","schoolBlankDays","store","configureStore","reducer","middleware","getDefaultMiddleware","serializableCheck","concat","logger","isInViewport","el","rect","getBoundingClientRect","innerHeight","documentElement","clientHeight","right","innerWidth","clientWidth","debounce","wait","args","getTextFromHTML","htmlString","p","innerHTML","innerText","Math","random","substring"],"mappings":"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AC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAG,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAG,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CA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"}
1
+ {"version":3,"file":"index.js","sources":["../src/utils/constants.ts","../src/i18n.js","../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs","../src/components/Alerts/ErrorHandler.tsx","../src/components/Inputs/PasswordInput.tsx","../src/containers/Login/constant/types.ts","../src/redux/commons/action.ts","../src/containers/Login/views/block/BlockLogin.tsx","../src/utils/encodeParams.ts","../src/utils/getAccessToken.ts","../src/services/api.ts","../src/services/accountService.ts","../src/containers/Login/hooks/useForgotPassword.ts","../src/containers/Login/views/block/BlockForgetPassword.tsx","../src/utils/getStaticFileUrl.ts","../src/containers/Login/views/block/BlockResetPassword.tsx","../src/services/schoolService.ts","../src/containers/Login/constant/authConfig.ts","../src/utils/getFileUrl.ts","../src/utils/getCookieValue.ts","../src/containers/Login/hooks/useLogin.ts","../src/containers/Login/hooks/useCreatePassword.ts","../src/containers/Login/views/block/BlockCreatePassword.tsx","../src/containers/Login/views/Login.tsx","../src/containers/Login/views/block/QuoteContent.tsx","../src/containers/Login/views/block/IconContent.tsx","../src/containers/Login/views/block/ContentHomePage.tsx","../src/containers/Login/views/block/BlockBackground.tsx","../src/containers/Login/views/Dashboard.tsx","../src/containers/Commons/NotFound.tsx","../src/layouts/TheContent.tsx","../src/components/Buttons/AddButton.tsx","../src/components/Buttons/DeleteButtonIcon.tsx","../src/components/Buttons/LinkEditButton.tsx","../src/components/Alerts/EmptyDataAlert.tsx","../src/components/Pagination/CustomPagination.tsx","../src/redux/emailTemplates/action.ts","../src/redux/mailCategories/action.ts","../src/services/emailTemplateService.ts","../src/services/mailCategoryService.ts","../src/hooks/useFilters.ts","../src/containers/EmailTemplate/hooks/useEmailTemplateList.ts","../src/containers/EmailTemplate/views/EmailTemplateList.tsx","../src/components/Buttons/DetailActionButtons.tsx","../src/components/Buttons/AddButtonIcon.tsx","../src/containers/EmailTemplate/components/MailParam.tsx","../src/components/Selectors/MailCategorySelectors.tsx","../src/components/Labels/RequiredLabel.tsx","../src/components/Others/QuitPrompt.tsx","../src/containers/EmailTemplate/components/AttachmentFile.tsx","../src/services/fileServices.ts","../src/configs/editorConfig.ts","../src/containers/EmailTemplate/hooks/useEmailTemplateDetail.ts","../src/containers/EmailTemplate/configs/emailTemplateSchema.ts","../src/containers/EmailTemplate/views/EmailTemplateDetail.tsx","../src/components/Modals/CommonModal.tsx","../src/components/Selectors/CustomSelector.tsx","../src/services/skillService.ts","../src/containers/Skill/components/SkillSelector.tsx","../src/containers/Skill/components/SkillDetailModal.tsx","../src/redux/skills/action.ts","../src/containers/Skill/hooks/useSkillList.ts","../src/containers/Skill/hooks/useSkillDetail.ts","../src/containers/Skill/views/SkillList.tsx","../src/redux/users/action.ts","../src/services/userService.ts","../src/containers/User/constants/types.ts","../src/containers/User/constants/constants.ts","../src/containers/User/hooks/userFilters.ts","../src/containers/User/hooks/useUserList.ts","../src/components/Inputs/SearchBox.tsx","../src/components/Inputs/SearchBoxContainer.tsx","../src/utils/utcToLocalTime.ts","../src/components/Buttons/SyncButton.tsx","../src/containers/User/hooks/useClickOutside.ts","../src/containers/User/hooks/useFilterPopover.ts","../src/containers/User/components/FilterPopover.tsx","../src/containers/User/components/HeaderCell.tsx","../src/containers/User/hooks/useTableHeader.ts","../src/containers/User/components/TableHeader.tsx","../src/containers/User/hooks/useExportUsersCsv.ts","../src/services/csvImportService.ts","../src/containers/User/hooks/useCSVImport.ts","../src/containers/User/hooks/useResendMail.ts","../src/containers/User/views/UserList.tsx","../src/components/Tabs/CustomTab.tsx","../src/containers/User/components/TeacherSelector.tsx","../src/containers/User/hooks/useAssignStudentList.ts","../src/containers/User/hooks/useCounselorList.ts","../src/containers/User/hooks/useAssistantList.ts","../src/containers/User/hooks/useSecondaryTeacherList.ts","../src/containers/User/hooks/useTeacherList.ts","../src/containers/User/configs/utils.ts","../src/containers/User/hooks/useAssignStudent.ts","../src/containers/User/components/SwitchTeacherModal.tsx","../src/containers/User/components/AssignStudentModal.tsx","../src/containers/User/components/SwitchDataTeacherModel.tsx","../src/containers/User/components/RemoveTeacher.tsx","../src/containers/User/components/RemoveCounselor.tsx","../src/components/Tabs/TabsWithComponent.tsx","../src/containers/User/components/RemoveAssistant.tsx","../src/containers/User/components/RemoveSupportTeacher.tsx","../src/containers/User/components/DeleteBulkModel.tsx","../src/containers/User/views/AssignStudentList.tsx","../src/containers/User/hooks/useUserDeletedModal.ts","../src/containers/User/hooks/useUserDeletedList.ts","../src/containers/User/components/UserDeletedModal.tsx","../src/containers/User/views/UserDeletedList.tsx","../src/containers/User/components/UploadCSVButton.tsx","../src/services/csvService.ts","../src/containers/User/hooks/useCSVImportTab.ts","../src/containers/User/views/CSVImport.tsx","../src/containers/User/views/UserContainer.tsx","../src/components/Buttons/UploadFileButton.tsx","../src/containers/User/hooks/useUserDetail.ts","../src/containers/User/configs/userSchema.ts","../src/containers/User/configs/changePasswordSchema.ts","../src/containers/User/hooks/useRosterUserSelector.ts","../src/containers/User/views/RosterUserSelector.tsx","../src/containers/User/views/UserDetail.tsx","../src/components/Loading/Loading.tsx","../src/components/Scroll/ScrollToTop.tsx","../src/components/Modals/NotificationModal.tsx","../src/components/Headers/CommonHeader.tsx","../src/components/Modals/NotificationLogoutModal.tsx","../src/components/Buttons/EditButtonIcon.tsx","../src/components/Alerts/SandboxAlert.tsx","../src/components/Selectors/CreatableSelector.tsx","../src/components/Selectors/QuestionTypeSelector.tsx","../src/services/suggestionCategoryService.ts","../src/components/Selectors/SuggestionCategorySelector.tsx","../src/services/questionCategoryService.ts","../src/components/Selectors/QuestionCategorySelector.tsx","../src/components/Selectors/hooks/useCategorySelector.ts","../src/components/Selectors/CategorySelector.tsx","../src/components/Selectors/StarRatingSelector.tsx","../src/components/Buttons/ToggleButton.tsx","../src/components/Inputs/FileInput.tsx","../src/containers/Notifications/components/NotificationStatusSelector.tsx","../src/services/notificationService.ts","../src/redux/notifications/action.ts","../src/containers/Notifications/hooks/useNotificationList.ts","../src/containers/Notifications/views/NotificationList.tsx","../src/components/Alerts/CommonAlert.tsx","../src/containers/Gallery/components/ActionModal.tsx","../src/containers/Gallery/components/MediaNav.tsx","../src/assets/Images.ts","../src/containers/Gallery/constants/gallery.types.ts","../src/containers/Gallery/extensions/helpers.ts","../src/containers/Gallery/components/Media.tsx","../src/containers/Gallery/components/Filter.tsx","../src/redux/gallery/action.ts","../src/services/galleryService.ts","../src/containers/Gallery/hooks/useGalleryList.ts","../src/containers/Gallery/components/MediaList.tsx","../src/containers/Gallery/components/MediaDetail.tsx","../src/containers/Gallery/views/GalleryList.tsx","../src/services/classService.ts","../src/components/Selectors/AcademicClassSelector.tsx","../src/containers/DistrictSchools/views/SchoolList.tsx","../node_modules/redux/dist/redux.legacy-esm.js","../src/redux/commons/reducer.ts","../src/redux/classes/action.ts","../src/redux/classes/reducer.ts","../src/redux/conferenceRubrics/action.ts","../src/redux/conferenceRubrics/reducer.ts","../src/redux/faqs/action.ts","../src/redux/faqs/reducer.ts","../src/redux/skills/reducer.ts","../src/redux/emailTemplates/reducer.ts","../src/redux/suggestionBanks/action.ts","../src/redux/suggestionBanks/reducer.ts","../src/redux/learningStrategies/action.ts","../src/redux/learningStrategies/reducer.ts","../src/redux/subjects/action.ts","../src/redux/subjects/reducer.ts","../src/redux/learningSupportCategories/action.ts","../src/redux/learningSupportCategories/reducer.ts","../src/redux/questionBanks/action.ts","../src/redux/questionBanks/reducer.ts","../src/redux/badges/action.ts","../src/redux/badges/reducer.ts","../src/redux/semester/action.ts","../src/redux/semester/reducer.ts","../src/redux/assignment/action.ts","../src/redux/assignment/reducer.ts","../src/redux/goalExamples/action.ts","../src/redux/goalExamples/reducer.ts","../src/redux/users/reducer.ts","../src/redux/feedback/action.ts","../src/redux/feedback/reducer.ts","../src/redux/assessments/action.ts","../src/redux/assessments/reducer.ts","../src/redux/reflectionForms/action.ts","../src/redux/reflectionForms/reducer.ts","../src/redux/reflectionResults/action.ts","../src/redux/reflectionResults/reducer.ts","../src/redux/questionByCategory/action.ts","../src/redux/questionByCategory/reducer.ts","../src/redux/mailCategories/reducer.ts","../src/redux/questionCategory/action.ts","../src/redux/questionCategory/reducer.ts","../src/redux/notifications/reducer.ts","../src/redux/teacher/myStudent/action.ts","../src/redux/teacher/myStudent/reducer.ts","../src/redux/assistants/action.ts","../src/redux/assistants/reducer.ts","../src/redux/sessionTemplates/action.ts","../src/redux/sessionTemplates/reducer.ts","../src/redux/sessionTemplateGeneralClasses/action.ts","../src/redux/sessionTemplateGeneralClasses/reducer.ts","../src/redux/tutorialScreen/action.ts","../src/redux/tutorialScreen/reducer.ts","../src/redux/customAlert/action.ts","../src/redux/customAlert/reducer.ts","../src/redux/gallery/reducer.ts","../src/redux/dashboard/action.tsx","../src/redux/dashboard/reducer.tsx","../src/redux/sessionPlayers/action.ts","../src/redux/sessionPlayers/reducer.ts","../src/redux/dataPlayer/action.ts","../src/redux/dataPlayer/reducer.ts","../src/redux/certificate/action.ts","../src/redux/certificate/reducer.ts","../src/redux/improveMyClass/action.ts","../src/redux/improveMyClass/reducer.ts","../src/redux/widget/action.ts","../src/redux/widget/reducer.ts","../src/redux/bandScores/action.ts","../src/redux/bandScores/reducer.ts","../src/redux/schoolBlankDays/action.ts","../src/redux/schoolBlankDays/reducer.ts","../src/redux/navMobile/action.ts","../src/redux/navMobile/reducer.ts","../src/redux/weeklyQuests/action.ts","../src/redux/weeklyQuests/reducer.ts","../src/rootReducer.ts","../src/store.ts","../src/utils/firstCheckToken.ts","../src/utils/canAccessRoute.ts","../src/utils/domHelpers.ts","../src/utils/debounce.ts","../src/utils/getTextFromHTML.ts","../src/utils/generateRandomString.ts","../src/index.tsx"],"sourcesContent":["import { Filter } from \"../types/Filter\"\r\nimport { Language } from \"../types/Language\"\r\n\r\nexport const TINY_MCE_API_KEY =\r\n \"htqausuofrnali3nh9ivmlpq6v415o0tv2qikpg39bqf4pnk\"\r\n\r\nexport const GOOGLE_RECAPTCHA_KEY = \"6LfNtLUaAAAAAL24lbBV11jS-gBtt1mhtxb4NXs0\"\r\n\r\nexport const INIT_AMPLITUDE_KEY_PROD = \"860fa99c52ae79d98e904b4c862ddaac\"\r\nexport const INIT_AMPLITUDE_KEY_STAGE = \"adf89d0ed9b0d5fcc0d1bcfd535345dc\"\r\n\r\nexport const ACCESS_TOKEN = \"ACCESS_TOKEN\"\r\nexport const IS_USER_SESSION_BROWSER = \"IS_USER_SESSION_BROWSER\"\r\n\r\nexport const DEFAULT_PAGE_SIZE_VALUES = [\r\n { label: \"10\", value: 10 },\r\n { label: \"20\", value: 20 },\r\n { label: \"30\", value: 30 },\r\n { label: \"50\", value: 50 }\r\n]\r\n\r\nexport const DEFAULT_PAGE_SIZE = {\r\n label: \"10\",\r\n value: 10\r\n}\r\n\r\nexport const DEFAULT_FILTER: Filter = {\r\n searchString: \"\",\r\n currentPage: 1,\r\n pageSize: DEFAULT_PAGE_SIZE.value,\r\n sortBy: \"\",\r\n sortOrder: \"ASC\",\r\n name: \"\"\r\n}\r\n\r\nexport const COLORS = {\r\n DANGER: \"#dc3545\",\r\n WARNING: \"#ffc107\",\r\n SUCCESS: \"#28a745\",\r\n INFO: \"#007bff\"\r\n}\r\n\r\nexport const DATE_FORMAT = \"yyyy-MM-dd\"\r\n\r\nexport const DATE_RESULT = \"dd-MM-yyyy\"\r\n\r\nexport const FULL_DATE_RESULT = \"dd-MM-yyyy HH:mm\"\r\n\r\nexport const FULL_DATE_FORMAT = \"yyyy-MM-dd HH:mm\"\r\n\r\nexport const DATE_MIN_VALUE = \"0001-01-01T00:00:00\"\r\n\r\nexport const LICENSE_AGGRID =\r\n \"Alhanko&Johnson_BASE23_single_1_Devs__22_November_2020_[v2]_MTYwNjAwMzIwMDAwMA==d452f38afc893671cad92795e95d52a1\"\r\n\r\nexport const BASE_URL = (() => {\r\n const windowUrl = window.location.href\r\n if (windowUrl.includes(\"stage.marioforme.com\")) {\r\n return `${windowUrl.split(\"//\")[0]}//stage-api.marioforme.com`\r\n }\r\n\r\n if (windowUrl.includes(\"stage2.marioforme.com\")) {\r\n return `${windowUrl.split(\"//\")[0]}//stage2-api.marioforme.com`\r\n }\r\n\r\n const url = `${windowUrl.split(\"//\")[0]}//${windowUrl.split(\"//\")[1].split(\"/\")[0]\r\n }`\r\n return url\r\n})()\r\n\r\nexport const isLocalhost = Boolean(\r\n window.location.hostname === \"localhost\" ||\r\n window.location.hostname.includes(\"stage\") ||\r\n window.location.hostname.includes(\"brightsoft\") ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === \"[::1]\" ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n)\r\n\r\nexport const QUESTION_TYPES_OPTIONS = [\r\n { label: \"Single choice\", value: \"SingleChoice\" },\r\n { label: \"Multiple choice\", value: \"MultipleChoice\" },\r\n { label: \"Text input\", value: \"TextInput\" },\r\n // { label: \"Slider\", value: \"Slider\" },\r\n // { label: \"Progress bar\", value: \"ProgressBar\" },\r\n // { label: \"Star rating\", value: \"StarRating\" },\r\n // {\r\n // label: \"Text input with sub questions\",\r\n // value: \"TextInputWithSuggestions\"\r\n // },\r\n { label: \"Emotional\", value: \"Emotional\" },\r\n { label: \"Summarize\", value: \"Summarize\" },\r\n { label: \"Rating\", value: \"Rating\" },\r\n { label: \"Learning strategy\", value: \"LearningStrategy\" },\r\n { label: \"DropDown\", value: \"DropDown\" }\r\n]\r\n\r\nexport const QUESTION_TYPES = {\r\n SINGLE_CHOICE: \"SingleChoice\",\r\n MULTIPLE_CHOICE: \"MultipleChoice\",\r\n TEXT_INPUT: \"TextInput\",\r\n SLIDER: \"Slider\",\r\n PROGRESS_BAR: \"ProgressBar\",\r\n STAR_RATING: \"StarRating\",\r\n TEXT_INPUT_WITH_SUGGESTIONS: \"TextInputWithSuggestions\",\r\n EMOTIONAL: \"Emotional\",\r\n SUMMARIZE: \"Summarize\",\r\n RATING: \"Rating\",\r\n LEARNING_STRATEGY: \"LearningStrategy\",\r\n DROPDOWN: \"DropDown\"\r\n}\r\n\r\nexport const STAR_OPTIONS = [\r\n { label: 2, value: 2 },\r\n { label: 3, value: 3 },\r\n { label: 4, value: 4 },\r\n { label: 5, value: 5 }\r\n]\r\n\r\nexport const ANSWER_EDITOR_HEIGHT = 150\r\n\r\nexport const USER_ROLES = [\"Admin\", \"Assistant\", \"Teacher\", \"General ED teacher\", \"Counselor\", \"SecondaryTeacher\", \"Student\", \"Parent\"]\r\n\r\nexport const CHAT_CHANNEL = \"chat-channel\"\r\nexport const NOTIFICATION_CHANNEL = \"NOTIFICATION_CHANNEL\"\r\nexport const NEW_NOTIFICATION = \"NEW_NOTIFICATION\"\r\nexport const SANDBOX_NOTIFICATION = \"SANDBOX_NOTIFICATION\"\r\nexport const DEFAULT_IMAGE_URL =\r\n \"https://tleliteracy.com/wp-content/uploads/2017/02/default-avatar.png\"\r\n\r\nexport const EMOTIONS = [\r\n \"/images/very-sad-icon.png\",\r\n \"/images/sad-icon.png\",\r\n \"/images/normal-icon.png\",\r\n \"/images/happy-icon.png\",\r\n \"/images/very-happy-icon.png\"\r\n]\r\n\r\nexport const TAB_COLORS = {\r\n reflect: \"#c08497\",\r\n goal: \"#00979b\"\r\n}\r\n\r\nexport const ROLES = {\r\n ADMIN: \"Admin\",\r\n TEACHER: \"Teacher\",\r\n ASSISTANT: \"Assistant\",\r\n EDUTEACHER: \"General ED teacher\",\r\n STUDENT: \"Student\",\r\n PARENT: \"Parent\",\r\n COUNSELOR: \"Counselor\",\r\n SECONDARY_TEACHER: \"SecondaryTeacher\"\r\n}\r\nexport const NOTIFICATION_ALERT_KEY = \"NOTIFICATION_ALERT_KEY\";\r\n\r\nexport const handleUserRole = (userRoles: string[]) => {\r\n if (userRoles?.includes(\"Teacher\") && userRoles?.includes(\"Assistant\")) {\r\n const roles = userRoles.filter(r => r !== \"Teacher\" && r !== \"Assistant\")\r\n roles.push(\"Teacher/Assistant\")\r\n return roles\r\n }\r\n return userRoles\r\n}\r\n\r\nexport const MARIO_SUCCESS_BASE_URL = \"https://www.mariosuccess.com\"\r\n\r\nexport const LANGUAGES: Language[] = [\r\n {\r\n code: \"en-US\",\r\n fullName: \"English (United States)\",\r\n shortName: \"English, US\",\r\n nativeName: \"English\",\r\n name: \"United States\",\r\n image: \"/images/usa.png\"\r\n },\r\n // {\r\n // code: \"en-GB\",\r\n // fullName: \"English (United Kingdom)\",\r\n // shortName: \"English, UK\",\r\n // nativeName: \"English\",\r\n // name: \"United Kingdom\",\r\n // image: \"/images/united-kingdom.png\"\r\n // },\r\n // {\r\n // code: \"ar\",\r\n // fullName: \"Arabic\",\r\n // shortName: \"Arabic\",\r\n // nativeName: \"Arabic\",\r\n // name: \"Arabic\",\r\n // image: \"/images/Arabic.avif\"\r\n // },\r\n // {\r\n // code: \"es\",\r\n // fullName: \"Spanish\",\r\n // shortName: \"Spanish\",\r\n // nativeName: \"Spanish\",\r\n // name: \"Spanish\",\r\n // image: \"/images/spain.png\"\r\n // }\r\n]\r\n\r\nexport const DEFAULT_LANGUAGE_CODE = \"en-US\"\r\n\r\nexport const SUPPORTED_LANGUAGES_CODE = [\"en-US\", \"en-GB\", \"ar\", \"es\", \"zh\"]\r\n\r\nexport const screenWidth =\r\n window.innerWidth ||\r\n document.documentElement.clientWidth ||\r\n document.body.clientWidth\r\n\r\nexport enum CsvImportType {\r\n Teacher,\r\n Admin\r\n}\r\n\r\nconst domainName = window.location.hostname;\r\nconst listCheckMalvernCollege = ['malverncollege', 'stage', 'localhost']\r\nexport const isMalvernCollege = listCheckMalvernCollege.some(e => domainName.includes(e))","import i18n from \"i18next\";\r\nimport { initReactI18next } from \"react-i18next\";\r\nimport lang_us from \"./lang/lang_us.json\";\r\nimport lang_uk from \"./lang/lang_uk.json\";\r\nimport lang_ar from \"./lang/lang_ar.json\"\r\nimport lang_es from \"./lang/lang_es.json\"\r\nimport lang_zh from \"./lang/lang_zh.json\"\r\nimport { DEFAULT_LANGUAGE_CODE, SUPPORTED_LANGUAGES_CODE } from \"./utils/constants\";\r\n\r\nconst resources = {\r\n \"en-US\": {\r\n translation: lang_us\r\n },\r\n \"en-GB\": {\r\n translation: lang_uk\r\n },\r\n \"ar\": {\r\n translation: lang_ar\r\n },\r\n \"es\": {\r\n translation: lang_es\r\n },\r\n \"zh\": {\r\n translation: lang_zh\r\n }\r\n}\r\n\r\ni18n.use(initReactI18next).init({\r\n resources,\r\n supportedLngs: SUPPORTED_LANGUAGES_CODE,\r\n lng: DEFAULT_LANGUAGE_CODE,\r\n fallbackLng: DEFAULT_LANGUAGE_CODE,\r\n keySeparator: false,\r\n interpolation: {\r\n escapeValue: false\r\n }\r\n})\r\n\r\nexport default i18n\r\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import React, { FC } from \"react\"\r\n\r\ninterface Props {\r\n text: string\r\n}\r\n\r\nconst style = {\r\n fontSize: \"0.85rem\"\r\n}\r\n\r\nconst ErrorHandler: FC<Props> = ({ text }: Props) => {\r\n return (\r\n <p className=\"text-danger\" style={style}>\r\n {text}\r\n </p>\r\n )\r\n}\r\n\r\nexport default ErrorHandler\r\n","import React, { CSSProperties, FC } from \"react\"\r\nimport { Input } from \"reactstrap\"\r\n\r\ninterface Props {\r\n isShowPassword: boolean\r\n togglePasswordVisible: any\r\n onChange: any\r\n placeholder?: string\r\n}\r\n\r\nconst containerStyle: CSSProperties = {\r\n height: \"40px\",\r\n backgroundColor: \"#f7f9fc\",\r\n borderRadius: \"4px\",\r\n marginBottom: \"5px\",\r\n position: \"relative\"\r\n}\r\n\r\nconst inputStyle: CSSProperties = {\r\n backgroundColor: \"#ffffff\",\r\n paddingRight: \"50px\"\r\n}\r\n\r\nconst eyeIconStyle: CSSProperties = {\r\n fontSize: \"20px\",\r\n position: \"absolute\",\r\n right: \"10px\",\r\n color: \"#316CD9\"\r\n}\r\n\r\nconst camelCase = (str: string): string => {\r\n return str\r\n .toLowerCase()\r\n .replace(/[^a-zA-Z0-9]+(.)/g, (_, chr) => chr.toUpperCase())\r\n}\r\n\r\nconst PasswordInput: FC<Props> = ({\r\n isShowPassword,\r\n togglePasswordVisible,\r\n onChange,\r\n placeholder\r\n}: Props) => {\r\n return (\r\n <div className=\"d-flex align-items-center w-100\" style={containerStyle}>\r\n <Input\r\n className=\"border password-input\"\r\n style={inputStyle}\r\n type={isShowPassword ? \"text\" : \"password\"}\r\n name=\"password\"\r\n onChange={onChange}\r\n placeholder={!placeholder ? \"Password\" : placeholder}\r\n autocomplete={\r\n !placeholder ? \"password\" : camelCase(placeholder)\r\n }\r\n required\r\n />\r\n <i\r\n className={`far ${\r\n isShowPassword ? \"fa-eye-slash\" : \"fa-eye\"\r\n } mx-2 cursor-pointer`}\r\n style={eyeIconStyle}\r\n onClick={() => togglePasswordVisible()}\r\n title={isShowPassword ? \"Hide\" : \"Show\"}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default PasswordInput\r\n","export interface ICreatePassword {\r\n password: string\r\n reEnterPassword: string\r\n email: string\r\n userId: string\r\n token: string\r\n}\r\n\r\nexport enum TypeLogin{\r\n Google,\r\n ClassLink,\r\n MicrosoftSSO\r\n}\r\n\r\nexport interface IInformationUser {\r\n firstName: string\r\n lastName: string\r\n fullName: string\r\n imageUrl: string | null\r\n email: string\r\n accessToken: string\r\n googleId: string \r\n}\r\nexport enum LoginType {\r\n Default,\r\n Google,\r\n Impersonate\r\n}\r\n\r\nexport interface ISchool {\r\n schoolName: string\r\n schoolLogo: string\r\n schoolId: number\r\n}\r\n\r\nexport interface IDashboard {\r\n version?: string\r\n}","import { createAction } from \"@reduxjs/toolkit\"\r\nimport { IinitAmplitude } from \"../../types/Payload\"\r\n\r\nexport const setLoading = createAction<boolean | undefined>(\"common/setLoading\")\r\n\r\nexport const setModal = createAction<any>(\"common/setModal\")\r\n\r\nexport const setUser = createAction<any>(\"common/setUser\")\r\n\r\nexport const setSidebar = createAction<any>(\"common/setSidebar\")\r\n\r\nexport const setAlert = createAction<any>(\"common/setAlert\")\r\n\r\nexport const setIsLoginGoogle = createAction<any>(\"common/setIsLoginGoogle\")\r\n\r\nexport const setInforUserGoogle = createAction<any>(\"common/setInforUserGoogle\")\r\n\r\nexport const reset = createAction<undefined>(\"common/reset\")\r\n\r\nexport const showMenuBar = createAction<any>(\"common/showMenuBar\")\r\n\r\nexport const showFontSize = createAction<any>(\"common/showFontSize\")\r\n\r\nexport const setEnableIEP = createAction<boolean>(\"common/setEnableIEP\")\r\n\r\nexport const setEnableSurvey = createAction<boolean>(\"common/setEnableSurvey\")\r\n\r\nexport const setEnableMarioAi = createAction<boolean>(\"common/setEnableMarioAi\")\r\n\r\nexport const setSandboxMode = createAction<boolean>(\"common/setSandboxMode\")\r\n\r\nexport const setConversationOneToOne = createAction<boolean>(\"common/setConversationOneToOne\")\r\n\r\nexport const setLanguage = createAction<string>(\"common/setLanguage\")\r\n\r\nexport const setCurrentStudentId = createAction<number>(\r\n \"common/setCurrentStudentId\"\r\n)\r\n\r\nexport const setCurrentStudentUserId = createAction<string>(\r\n \"common/setCurrentStudentUserId\"\r\n)\r\n\r\nexport const setCurrentStudentName = createAction<string>(\r\n \"common/setCurrentStudentName\"\r\n)\r\n\r\nexport const setTurnOffPassWhenChangeMode = createAction<string>(\r\n \"common/setTurnOffPassWhenChangeMode\"\r\n)\r\n\r\nexport const initAmplitude = createAction<IinitAmplitude>(\"common/initAmplitude\")\r\n","import React, { FC, useCallback } from \"react\"\r\nimport { Col, Form, FormGroup, Input, Row } from \"reactstrap\"\r\nimport { Link } from \"react-router-dom\"\r\nimport styles from \"../../../../styles.module.scss\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { Formik } from \"formik\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../../components/Alerts/ErrorHandler\"\r\nimport PasswordInput from \"../../../../components/Inputs/PasswordInput\"\r\nimport { GoogleReCaptcha, useGoogleReCaptcha } from \"react-google-recaptcha-v3\"\r\nimport { GoogleOAuthProvider, GoogleLogin } from \"@react-oauth/google\"\r\n// import BlockSelectTeacher from \"./BlockSelectTeacher\"\r\nimport { ISchool, LoginType } from \"../../constant/types\"\r\nimport { TypeLogin, IInformationUser } from \"../../constant/types\"\r\nimport { setInforUserGoogle } from \"../../../../redux/commons/action\"\r\n\r\ninterface Props {\r\n defaultInfo?: any\r\n userLogin?: any\r\n onCancelModelAssign: Function\r\n openModelAssign: boolean\r\n school: ISchool\r\n isShowPassword: boolean\r\n setIsShowPassword: Function\r\n fnIsCheckLogin: Function\r\n isLoginGoogle: boolean\r\n submitLogin: Function\r\n infoUser: any\r\n googleClientId: string\r\n fnLoginSSO: Function\r\n extensionEmail: string\r\n onLoginWidthClever: Function\r\n}\r\n\r\nconst schema = yup.object({\r\n email: yup.string().email(\"Email is invalid\").required(\"Email is required\"),\r\n password: yup.string().required(\"Password is required\"),\r\n rememberMe: yup.boolean()\r\n})\r\n\r\nconst BlockLogin: FC<Props> = ({\r\n defaultInfo,\r\n userLogin,\r\n school,\r\n isShowPassword,\r\n setIsShowPassword,\r\n fnIsCheckLogin,\r\n // isLoginGoogle,\r\n // submitLogin,\r\n // infoUser,\r\n googleClientId,\r\n fnLoginSSO,\r\n extensionEmail,\r\n onLoginWidthClever\r\n}: Props) => {\r\n const togglePasswordVisible = () => setIsShowPassword(!isShowPassword)\r\n const dispatch = useDispatch()\r\n const { executeRecaptcha } = useGoogleReCaptcha()\r\n\r\n const clickHandler = useCallback(async () => {\r\n if (!executeRecaptcha) {\r\n console.log(\"execute recaptcha undefined\")\r\n return\r\n }\r\n const result = await executeRecaptcha(\"login\")\r\n return result\r\n }, [executeRecaptcha])\r\n\r\n const handleVerify = useCallback(() => {}, [])\r\n const onSuccessGoogle = (res: any) => {\r\n if (!!res?.accessToken) {\r\n let {\r\n email,\r\n familyName,\r\n givenName,\r\n imageUrl,\r\n name // fullName\r\n } = res.profileObj\r\n let accessToken = res.accessToken\r\n let googleId = res.googleId\r\n\r\n const hostName = window.location.hostname\r\n const subDomain = hostName.split(\".marioforme.com\")?.[0]\r\n const emailDomain = email.split(\"@\")?.[1]\r\n const matchExtension = extensionEmail\r\n ?.split(\",\")\r\n ?.map(x => x.trim())\r\n ?.filter(x => x)\r\n .some(ext => emailDomain.includes(ext))\r\n if (!emailDomain.includes(subDomain) && !matchExtension) {\r\n alert(\r\n \"The email address you used does not match the login information in the database. Please check that you are using your school assigned email address to log into MARIO for Me. If you have further trouble please notify your school site administrator\"\r\n )\r\n return\r\n }\r\n\r\n const infoLogin: IInformationUser = {\r\n firstName: givenName,\r\n lastName: familyName,\r\n imageUrl: imageUrl,\r\n fullName: name,\r\n email: email,\r\n accessToken: accessToken,\r\n googleId: googleId\r\n }\r\n dispatch(setInforUserGoogle(infoLogin))\r\n fnIsCheckLogin(\r\n TypeLogin.Google,\r\n infoLogin,\r\n accessToken,\r\n clickHandler\r\n )\r\n }\r\n }\r\n\r\n return (\r\n <React.Fragment>\r\n <Formik\r\n initialValues={defaultInfo}\r\n validationSchema={schema}\r\n onSubmit={async values => {\r\n try {\r\n const clickHandlerRes = await clickHandler()\r\n if (!clickHandlerRes) return\r\n values.captcha = clickHandlerRes\r\n values.loginType = LoginType.Default\r\n userLogin(values)\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n handleChange,\r\n handleBlur,\r\n handleSubmit,\r\n values,\r\n touched,\r\n errors,\r\n setFieldValue\r\n } = formikProps\r\n\r\n const emailError = touched.email && errors.email\r\n const passwordError = touched.password && errors.password\r\n\r\n return (\r\n <div className={`${styles[\"box-login\"]} w-100`}>\r\n <Form\r\n className={`${styles[\"block-login\"]}`}\r\n onSubmit={handleSubmit}\r\n >\r\n <div className={`${styles[\"block-form\"]}`}>\r\n <div className=\"d-flex align-items-center mb-4\">\r\n <img\r\n hidden={!school?.schoolLogo}\r\n src={school?.schoolLogo}\r\n className={`${styles[\"school-icon\"]} mr-3`}\r\n />\r\n <p\r\n className={`${styles[\"school-name\"]} mb-0`}\r\n >\r\n {school.schoolName}\r\n </p>\r\n </div>\r\n <p className={`${styles[\"title-login\"]}`}>\r\n Welcome Back!\r\n </p>\r\n <p\r\n className={`${styles[\"login-description\"]} mb-5`}\r\n >\r\n Please enter your MARIO Education\r\n account details\r\n </p>\r\n <FormGroup\r\n className={`${styles[\"form-user-name\"]}`}\r\n >\r\n <Input\r\n type=\"text\"\r\n name=\"email\"\r\n placeholder=\"Email\"\r\n value={values.email}\r\n onChange={handleChange}\r\n autocomplete=\"email\"\r\n onBlur={handleBlur(\"email\")}\r\n required\r\n />\r\n {emailError && (\r\n <ErrorHandler\r\n text={errors.email as string}\r\n />\r\n )}\r\n </FormGroup>\r\n <FormGroup>\r\n <PasswordInput\r\n isShowPassword={isShowPassword}\r\n togglePasswordVisible={\r\n togglePasswordVisible\r\n }\r\n onChange={(e: any) =>\r\n setFieldValue(\r\n \"password\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n {passwordError && (\r\n <ErrorHandler\r\n text={errors.password as string}\r\n />\r\n )}\r\n </FormGroup>\r\n <FormGroup>\r\n <GoogleReCaptcha\r\n action=\"login\"\r\n onVerify={handleVerify}\r\n />\r\n </FormGroup>\r\n <div className=\"d-flex justify-content-between\">\r\n <div className=\"d-flex align-items-center\">\r\n <input\r\n type=\"checkbox\"\r\n checked={\r\n !values.isSessionUserBrowser\r\n }\r\n className={`${styles[\"checkbox-keep-login\"]}`}\r\n onChange={() =>\r\n setFieldValue(\r\n \"isSessionUserBrowser\",\r\n !values.isSessionUserBrowser\r\n )\r\n }\r\n />\r\n <p\r\n className={`${styles[\"label-keep-login\"]} mb-0 ml-2`}\r\n >\r\n Keep me logged in\r\n </p>\r\n </div>\r\n <Link\r\n to=\"/forgot-password\"\r\n className={`${styles[\"link-to-login\"]}`}\r\n >\r\n Forgot password?\r\n </Link>\r\n </div>\r\n\r\n <button\r\n className={`${styles[\"btn-login\"]} mt-5`}\r\n type=\"submit\"\r\n >\r\n LOG IN\r\n </button>\r\n\r\n <p\r\n className={`${styles[\"option-text\"]} my-3 text-center`}\r\n >\r\n OR\r\n </p>\r\n <Row className=\"mb-4\">\r\n <Col\r\n lg={6}\r\n md={6}\r\n xs={12}\r\n className=\"pr-md-3\"\r\n >\r\n {!!googleClientId && (\r\n <GoogleOAuthProvider\r\n clientId={googleClientId}\r\n >\r\n <GoogleLogin\r\n onSuccess={\r\n onSuccessGoogle\r\n }\r\n onError={() =>\r\n console.log(\r\n \"Google login failed\"\r\n )\r\n }\r\n theme=\"outline\"\r\n size=\"large\"\r\n text=\"signin_with\"\r\n shape=\"rectangular\"\r\n containerProps={{\r\n className: `${styles[\"btn-login-google\"]} p-0 mb-4 mb-md-0`\r\n }}\r\n />\r\n </GoogleOAuthProvider>\r\n )}\r\n </Col>\r\n <Col\r\n lg={6}\r\n md={6}\r\n xs={12}\r\n className={`${styles[\"btn-login-sso\"]} pl-md-2`}\r\n hidden={!school?.schoolId}\r\n >\r\n <div\r\n className={\r\n styles[\"btn-login-with-sso\"]\r\n }\r\n onClick={() =>\r\n fnLoginSSO(clickHandler)\r\n }\r\n >\r\n <img src=\"images/microsoft-logo.png\" />\r\n <p>MICROSOFT</p>\r\n </div>\r\n </Col>\r\n </Row>\r\n\r\n {/* <div\r\n className={`${styles[\"btn-login-sso\"]} mb-3`}\r\n >\r\n <div\r\n className={\r\n styles[\"btn-login-with-sso\"]\r\n }\r\n onClick={() =>\r\n fnLoginSSO(clickHandler)\r\n }\r\n >\r\n <p>SIGN IN WITH SSO</p>\r\n </div>\r\n </div> */}\r\n\r\n <div\r\n className={`${styles[\"btn-login-sso\"]}`}\r\n >\r\n <div\r\n className={\r\n styles[\"btn-login-with-sso\"]\r\n }\r\n onClick={() =>\r\n window.open(\r\n \"https://launchpad.classlink.com/login\"\r\n )\r\n }\r\n >\r\n <img src=\"images/class-link-icon.png\" />\r\n <p>SIGN IN WITH CLASSLINK</p>\r\n </div>\r\n </div>\r\n\r\n <div\r\n className={`${styles[\"btn-login-sso\"]} mt-4`}\r\n >\r\n <div\r\n className={\r\n styles[\"btn-login-with-sso\"]\r\n }\r\n onClick={() => onLoginWidthClever()}\r\n >\r\n <img src=\"images/clever-icon.png\" />\r\n <p>SIGN IN WITH CLEVER</p>\r\n </div>\r\n </div>\r\n </div>\r\n </Form>\r\n </div>\r\n )\r\n }}\r\n </Formik>\r\n {/* {isLoginGoogle && (\r\n <BlockSelectTeacher\r\n onSubmit={(e: number) => submitLogin(e, clickHandler)}\r\n openModal={isLoginGoogle}\r\n token={infoUser.accessToken}\r\n email={infoUser.email}\r\n />\r\n )} */}\r\n </React.Fragment>\r\n )\r\n}\r\n\r\nexport default BlockLogin\r\n","export default (params: any) => {\r\n return Object.keys(params)\r\n .filter(key => params[key] || params[key] === 0 || params[key] === false)\r\n .map(key => {\r\n if (Array.isArray(params[key])) {\r\n return params[key].map((i: any) => `${encodeURIComponent(key)}=${encodeURIComponent(i)}`).join('&')\r\n }\r\n return `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`\r\n }).join('&')\r\n}","import { ACCESS_TOKEN, IS_USER_SESSION_BROWSER } from \"./constants\"\r\n\r\nexport default () => {\r\n try {\r\n const isSessionUserBrowser = sessionStorage.getItem(IS_USER_SESSION_BROWSER)\r\n return !isSessionUserBrowser ? localStorage.getItem(ACCESS_TOKEN) : sessionStorage.getItem(ACCESS_TOKEN)\r\n } catch (err) {\r\n return null;\r\n }\r\n}","import axios, { AxiosInstance } from \"axios\"\r\nimport encodeParams from \"../utils/encodeParams\"\r\nimport { ACCESS_TOKEN, BASE_URL, IS_USER_SESSION_BROWSER } from \"../utils/constants\"\r\nimport getAccessToken from \"../utils/getAccessToken\"\r\nimport * as amplitude from \"@amplitude/analytics-browser\"\r\nimport { formatInTimeZone } from \"date-fns-tz\"\r\n\r\nexport const api: AxiosInstance = axios.create({\r\n baseURL: BASE_URL,\r\n timeout: 0,\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n paramsSerializer: params => {\r\n return encodeParams(params)\r\n }\r\n})\r\n\r\nexport const apiUpload: AxiosInstance = axios.create({\r\n baseURL: BASE_URL,\r\n timeout: 60000,\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\"\r\n }\r\n})\r\n;[api, apiUpload].forEach(i =>\r\n i.interceptors.request.use(\r\n (config: any) => {\r\n const token = getAccessToken()\r\n if (token) {\r\n config.headers.Authorization = `Bearer ${token}`\r\n localStorage.setItem(\"LAST_TIME_REQUETST\", formatInTimeZone(new Date(), 'UTC','yyyy-MM-dd HH:mm:ss'))\r\n }\r\n return config\r\n },\r\n (error: any) => Promise.reject(error)\r\n )\r\n)\r\n;[api, apiUpload].forEach(i =>\r\n i.interceptors.response.use(\r\n response => {\r\n return response\r\n },\r\n error => {\r\n console.log({ error })\r\n if (error.response.status === 401) {\r\n Object.keys(localStorage).forEach((key) => {\r\n if (!key.includes('learning-plan')) delete localStorage[key];\r\n });\r\n const userEmail = localStorage.getItem(\"USER_EMAIL\") as string;\r\n const roles = localStorage.getItem(\"ROLES\") as string;\r\n const hostName = window.location.hostname;\r\n if(userEmail){\r\n amplitude.track(\"general: session end\", {user_id: userEmail, domain: hostName, roles: roles})\r\n amplitude.setSessionId(-1);\r\n }\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n sessionStorage.removeItem(ACCESS_TOKEN)\r\n sessionStorage.removeItem(IS_USER_SESSION_BROWSER)\r\n localStorage.removeItem(\"USER_EMAIL\")\r\n localStorage.removeItem(\"ROLES\")\r\n window.location.href = \"/login\"\r\n }\r\n if (error.response.status == 403) {\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n localStorage.removeItem(\"USER_EMAIL\")\r\n localStorage.removeItem(\"ROLES\")\r\n window.location.href = \"/login\"\r\n }\r\n return Promise.reject(error)\r\n }\r\n )\r\n)\r\n","import { ICreatePassword } from \"../containers/Login/constant/types\"\r\nimport { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst ACCOUNT_URL = `${BASE_URL}/api/account`\r\nconst USER_URL = `${BASE_URL}/api/user`\r\nconst TEACHER_URL = `${BASE_URL}/api/teacher`\r\nconst STUDENT_URL = `${BASE_URL}/api/Student`\r\nconst USER_EDU_URL = `${BASE_URL}/api/User`\r\n\r\nconst STUDENT_PROFILE = `${BASE_URL}/api/student/profile`\r\n\r\nexport const apiInforUserClassLink = (data: any) => api.post(`${BASE_URL}/api/User/infor-user-classlink`, data);\r\n\r\nexport const logIn = (data: any) => api.post(`${ACCOUNT_URL}/login`, data)\r\n\r\nexport const checkToken = (token: string) =>\r\n api.post(`${ACCOUNT_URL}/checktoken`, { token })\r\n\r\nexport const getInfo = () => api.get(`${ACCOUNT_URL}/info`)\r\n\r\nexport const forgotPassword = (data: any) =>\r\n api.post(`${ACCOUNT_URL}/forgotpassword`, data)\r\n\r\nexport const getUserNewPassword = (userId: string) =>\r\n api.get(`${ACCOUNT_URL}/new-user-create-password`, { params: { userId } })\r\n\r\nexport const checkResetToken = (token: string, key: string) =>\r\n api.post(`${ACCOUNT_URL}/checkResetToken`, { token, key })\r\n\r\nexport const resetPassword = (data: any) =>\r\n api.post(`${ACCOUNT_URL}/resetpassword`, data)\r\n\r\nexport const getStudentProfile = () => api.get(`${STUDENT_PROFILE}`)\r\n\r\nexport const logInTwoFactor = (data: any) =>\r\n api.post(`${ACCOUNT_URL}/logintwostep`, data)\r\n\r\nexport const checkUserGoogle = (type: any, body: any) =>\r\n api.post(`${USER_URL}/check-user`, body, { params: { type } })\r\n\r\nexport const getAllLoginTeacher = (param: any) =>\r\n api.get(`${TEACHER_URL}/get-teacher-login`, { params: param })\r\n\r\nexport const getGoogleClientId = () =>\r\n api.get(`${ACCOUNT_URL}/send-google`)\r\n\r\nexport const registerUserStudent = (body: any) => api.post(`${BASE_URL}/api/User/register-user`, body)\r\n\r\nexport const createPassword = (data: ICreatePassword) => api.post(`${ACCOUNT_URL}/createPassword`, data)\r\n\r\nexport const checkStudentAssign = () =>\r\n api.get(`${STUDENT_URL}/checkMainTeacher`)\r\n\r\nexport const assignTeacherByCode = (teacherCode: string) =>\r\n api.post(`${STUDENT_URL}/assign-teacher-by-code`, { teacherCode })\r\n\r\nexport const get = (filter: any) =>\r\n api.get(`${USER_EDU_URL}/all/deleted`, { params: filter })\r\n\r\nexport const remove = (id: string, userChangeId?: string) =>\r\n api.delete(`${USER_EDU_URL}/hardDelete/${id}`, {\r\n params: { userChangeId }\r\n })\r\n\r\nexport const getTeacher = () => api.get(`${USER_EDU_URL}/all/teacher`)","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useGoogleReCaptcha } from \"react-google-recaptcha-v3\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useNavigate, useLocation } from \"react-router-dom\"\r\nimport { setAlert, setLoading } from \"../../../redux/commons/action\"\r\nimport {\r\n checkResetToken,\r\n forgotPassword,\r\n resetPassword\r\n} from \"../../../services/accountService\"\r\nimport { ACCESS_TOKEN } from \"../../../utils/constants\"\r\nimport getAccessToken from \"../../../utils/getAccessToken\"\r\nimport { ICreatePassword } from \"../constant/types\"\r\n\r\ntype ForgotPasswordInfo = {\r\n email: string\r\n captcha: string\r\n}\r\n\r\nconst defaultInfo: ForgotPasswordInfo = {\r\n email: \"\",\r\n captcha: \"\"\r\n}\r\n\r\nconst DASHBOARD = \"/\"\r\nconst LOGIN = \"/login\"\r\nconst TITLE = \"Log in\"\r\n\r\nconst useForgotPassword = () => {\r\n const query = new URLSearchParams(useLocation().search)\r\n const token = query.get(\"token\")\r\n const key = query.get(\"key\") ?? \"\"\r\n const dispatch = useDispatch()\r\n const navigate = useNavigate()\r\n const [openLogin, setOpenLogin] = useState<boolean>(false)\r\n const toggle = useCallback(() => {\r\n setOpenLogin(!openLogin)\r\n }, [openLogin])\r\n const [isShowNewPassword, setIsShowNewPassword] = useState<boolean>(false)\r\n const [isShowReTypePassword, setIsShowReTypePassword] =\r\n useState<boolean>(false)\r\n const [initialValues, setInitialValues] = useState<ICreatePassword>({\r\n token: \"\",\r\n password: \"\",\r\n reEnterPassword: \"\",\r\n email: \"\",\r\n userId: \"\"\r\n })\r\n\r\n const [validLink, setValidLink] = useState<boolean>(true)\r\n const { executeRecaptcha } = useGoogleReCaptcha()\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n const token = getAccessToken()\r\n if (!!token) navigate(DASHBOARD)\r\n }, [])\r\n\r\n const forgotPasswordRequest = useCallback(async (data: any) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n await forgotPassword(data)\r\n navigate(LOGIN)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"A mail to reset password was sent\"\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n sessionStorage.removeItem(ACCESS_TOKEN)\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const checkResetTokenRequest = useCallback(\r\n async (token: string, key: string) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const res = await checkResetToken(token, key)\r\n if (res.data) {\r\n setInitialValues({\r\n ...initialValues,\r\n token: token,\r\n email: res.data\r\n })\r\n } else {\r\n setValidLink(false)\r\n }\r\n } catch (err) {\r\n setValidLink(false)\r\n }\r\n\r\n dispatch(setLoading(false))\r\n },\r\n []\r\n )\r\n\r\n const resetPasswordRequest = useCallback(async (data: any) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n await resetPassword({ ...data, key: key as string })\r\n navigate(LOGIN)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Reset password sucessfully\"\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n sessionStorage.removeItem(ACCESS_TOKEN)\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const clickHandler = useCallback(async () => {\r\n if (!executeRecaptcha) {\r\n console.log(\"execute recaptcha undefined\")\r\n return\r\n }\r\n const result = await executeRecaptcha(\"forgetPass\")\r\n return result\r\n }, [executeRecaptcha])\r\n\r\n const handleVerify = useCallback(() => {}, [])\r\n\r\n useEffect(() => {\r\n checkResetTokenRequest(token as string, key as string)\r\n }, [])\r\n\r\n return {\r\n defaultInfo,\r\n forgotPasswordRequest,\r\n checkResetTokenRequest,\r\n validLink,\r\n resetPasswordRequest,\r\n openLogin,\r\n toggle,\r\n isShowNewPassword,\r\n setIsShowNewPassword,\r\n isShowReTypePassword,\r\n setIsShowReTypePassword,\r\n clickHandler,\r\n handleVerify,\r\n initialValues\r\n }\r\n}\r\n\r\nexport default useForgotPassword\r\n","import { Formik } from \"formik\"\r\nimport React from \"react\"\r\nimport { GoogleReCaptcha } from \"react-google-recaptcha-v3\"\r\nimport { Link } from \"react-router-dom\"\r\nimport { Col, Input } from \"reactstrap\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../../components/Alerts/ErrorHandler\"\r\nimport styles from \"../../../../styles.module.scss\"\r\nimport useForgotPassword from \"../../hooks/useForgotPassword\"\r\nimport { ISchool } from \"../../constant/types\"\r\n// import CloseBlock from \"./CloseBlock\"\r\n\r\nconst initialValues = {\r\n email: \"\",\r\n captcha: \"\"\r\n}\r\n\r\nconst forgotPasswordSchema = yup.object({\r\n email: yup.string().email(\"Email is invalid\").required(\"Email is required\")\r\n})\r\n\r\ninterface Props {\r\n school: ISchool\r\n}\r\n\r\nconst BlockForgetPassword = ({ school }: Props) => {\r\n const {\r\n forgotPasswordRequest,\r\n clickHandler,\r\n handleVerify\r\n } = useForgotPassword()\r\n return (\r\n <Formik\r\n initialValues={initialValues}\r\n enableReinitialize\r\n validationSchema={forgotPasswordSchema}\r\n onSubmit={async values => {\r\n const clickHandlerRes = await clickHandler()\r\n if (!clickHandlerRes) return\r\n values.captcha = clickHandlerRes\r\n forgotPasswordRequest(values)\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n handleChange,\r\n handleSubmit,\r\n values,\r\n touched,\r\n errors\r\n } = formikProps\r\n return (\r\n <div className={`${styles[\"box-login\"]}`}>\r\n <div className={`${styles[\"block-login\"]}`}>\r\n <div className={`${styles[\"block-form\"]}`}>\r\n <div className=\"d-flex align-items-center mb-4\">\r\n <img\r\n src={school.schoolLogo}\r\n className={`${styles[\"school-icon\"]} mr-3`}\r\n />\r\n <p\r\n className={`${styles[\"school-name\"]} mb-0`}\r\n >\r\n {school.schoolName}\r\n </p>\r\n </div>\r\n <p className={`${styles[\"title-login\"]} `}>\r\n Forgot password\r\n </p>\r\n <p\r\n className={`${styles[\"recover-account\"]} mb-5`}\r\n >\r\n Enter email to recover your account\r\n </p>\r\n <div className=\"w-100\">\r\n <Input\r\n type=\"text\"\r\n name=\"email\"\r\n id=\"email\"\r\n placeholder=\"Input email\"\r\n onChange={handleChange}\r\n value={values.email}\r\n />\r\n {touched.email && errors.email && (\r\n <ErrorHandler text={errors.email} />\r\n )}\r\n </div>\r\n <Link\r\n to=\"/login\"\r\n className={`${styles[\"link-to-login\"]} mt-2`}\r\n >\r\n Return to login\r\n </Link>\r\n <GoogleReCaptcha\r\n action=\"forgetPass\"\r\n onVerify={handleVerify}\r\n />\r\n <Col className=\"p-0\">\r\n <button\r\n className={`${styles[\"btn-login\"]} mt-5`}\r\n onClick={() => handleSubmit()}\r\n >\r\n Continue\r\n </button>\r\n </Col>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default BlockForgetPassword\r\n","import { MARIO_SUCCESS_BASE_URL, isLocalhost } from \"./constants\";\r\n\r\nconst getStaticFileUrl = (url: string) => {\r\n const STAGE_DOMAIN = \"https://stage2.marioforme.com\";\r\n const isStage = STAGE_DOMAIN === location.origin\r\n if(!url) return \"\"\r\n if((isLocalhost && !isStage) || url.startsWith(\"http\")) return url;\r\n if(url.startsWith(\"/\")) return `${isStage ? STAGE_DOMAIN : MARIO_SUCCESS_BASE_URL}${url}`\r\n else return `${isStage ? STAGE_DOMAIN : MARIO_SUCCESS_BASE_URL}/${url}`\r\n}\r\n\r\nexport default getStaticFileUrl","import { Formik } from \"formik\"\r\nimport React from \"react\"\r\n// import { Link } from \"react-router-dom\"\r\nimport { Col, FormGroup, Input, Row } from \"reactstrap\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../../components/Alerts/ErrorHandler\"\r\n// import CloseButton from \"../../../../components/Buttons/CloseButton\"\r\nimport PasswordInput from \"../../../../components/Inputs/PasswordInput\"\r\nimport styles from \"../../../../styles.module.scss\"\r\nimport useForgotPassword from \"../../hooks/useForgotPassword\"\r\nimport getStaticFileUrl from \"../../../../utils/getStaticFileUrl\"\r\n\r\nconst resetPasswordSchema = yup.object({\r\n password: yup.string().required(\"New password is required\"),\r\n reEnterPassword: yup\r\n .string()\r\n .required(\"Please re-enter new password\")\r\n .test(\"matching\", \"Passwords do not match\", function () {\r\n return this.parent.password === this.parent.reEnterPassword\r\n })\r\n})\r\n\r\nconst BlockResetPassword = () => {\r\n const {\r\n validLink,\r\n resetPasswordRequest,\r\n isShowNewPassword,\r\n setIsShowNewPassword,\r\n isShowReTypePassword,\r\n setIsShowReTypePassword,\r\n initialValues\r\n } = useForgotPassword()\r\n\r\n // const navigate = useNavigate()\r\n // const close = () => {\r\n // navigate(\"/login\")\r\n // }\r\n\r\n return (\r\n <Formik\r\n initialValues={initialValues}\r\n enableReinitialize\r\n validationSchema={resetPasswordSchema}\r\n onSubmit={values => {\r\n resetPasswordRequest(values)\r\n }}\r\n >\r\n {formikProps => {\r\n const { setFieldValue, handleSubmit, touched, errors, values } =\r\n formikProps\r\n return (\r\n <Row className={`${styles[\"box-login\"]}`}>\r\n <Col className=\"p-0\">\r\n <div className={`${styles[\"block-login\"]}`}>\r\n <div className={`${styles[\"block-form\"]}`}>\r\n <img\r\n src={`${getStaticFileUrl(\r\n \"/images/horizontal-logo-blue.svg\"\r\n )}`}\r\n className={`${styles[\"img-login-rectangle\"]}`}\r\n />\r\n <p className={`${styles[\"title-login\"]}`}>\r\n Reset Password\r\n </p>\r\n <div className=\"w-100\">\r\n {validLink ? (\r\n <React.Fragment>\r\n <FormGroup\r\n className={`${styles[\"form-user-name\"]}`}\r\n >\r\n <Input\r\n disabled\r\n type=\"text\"\r\n name=\"email\"\r\n placeholder=\"Email\"\r\n value={values.email}\r\n autocomplete=\"email\"\r\n required\r\n className={`${styles[\"input\"]}`}\r\n />\r\n </FormGroup>\r\n <div\r\n className={`${styles[\"form-user-name\"]}`}\r\n >\r\n <PasswordInput\r\n isShowPassword={\r\n isShowNewPassword\r\n }\r\n togglePasswordVisible={() =>\r\n setIsShowNewPassword(\r\n !isShowNewPassword\r\n )\r\n }\r\n onChange={(e: any) =>\r\n setFieldValue(\r\n \"password\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n {touched.password &&\r\n errors.password && (\r\n <ErrorHandler\r\n text={\r\n errors.password\r\n }\r\n />\r\n )}\r\n </div>\r\n <div\r\n className={`${styles[\"form-user-name\"]}`}\r\n >\r\n <PasswordInput\r\n placeholder=\"Confirm Password\"\r\n isShowPassword={\r\n isShowReTypePassword\r\n }\r\n togglePasswordVisible={() =>\r\n setIsShowReTypePassword(\r\n !isShowReTypePassword\r\n )\r\n }\r\n onChange={(e: any) =>\r\n setFieldValue(\r\n \"reEnterPassword\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n {touched.reEnterPassword &&\r\n errors.reEnterPassword && (\r\n <ErrorHandler\r\n text={\r\n errors.reEnterPassword\r\n }\r\n />\r\n )}\r\n </div>\r\n </React.Fragment>\r\n ) : (\r\n <React.Fragment>\r\n <p\r\n className={`${styles[\"recover-account\"]} mb-5`}\r\n >\r\n Invalid reset password link\r\n </p>\r\n <p className=\"w-100\">\r\n It may have been accessed\r\n before or expired or you\r\n have just tried to reset\r\n another account's password\r\n </p>\r\n </React.Fragment>\r\n )}\r\n </div>\r\n\r\n {validLink && (\r\n <Col className=\"p-0\">\r\n <button\r\n className={`${styles[\"btn-login\"]} ${styles[\"btn-rounder\"]} mt-4`}\r\n onClick={() => handleSubmit()}\r\n >\r\n SET A NEW PASSWORD\r\n </button>\r\n </Col>\r\n )}\r\n {/* <p className=\"d-flex justify-content-between\">\r\n <Link\r\n to=\"/login\"\r\n className={`${styles[\"link-to-login\"]}`}\r\n >\r\n Return to login\r\n </Link>\r\n <a\r\n href=\"/privacy-policy/\"\r\n target=\"blank\"\r\n className={`${styles[\"link-to-login\"]}`}\r\n >\r\n Privacy Policy\r\n </a>\r\n </p> */}\r\n </div>\r\n </div>\r\n </Col>\r\n </Row>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default BlockResetPassword\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst SCHOOL_URL = `${BASE_URL}/api/school`\r\n\r\nexport const getSchoolSettings = () => api.get(`${SCHOOL_URL}/settings`)\r\n\r\nexport const getInfo = () => api.get(`${SCHOOL_URL}/info`)","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { LogLevel } from \"@azure/msal-browser\";\r\nimport { isLocalhost } from \"../../../utils/constants\";\r\n\r\n/**\r\n * Configuration object to be passed to MSAL instance on creation. \r\n * For a full list of MSAL.js configuration parameters, visit:\r\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/configuration.md \r\n */\r\nexport const msalConfig = {\r\n auth: {\r\n clientId: isLocalhost ? \"a27f8ac9-e039-4bbd-a9e1-3096e52a77bb\" : \"90c6897c-f17b-475e-a7a8-9a19651e0060\",\r\n authority: \"https://login.microsoftonline.com/common\",\r\n redirectUri: \"https://sso.marioforme.com/microsoft-login.html\"\r\n },\r\n cache: {\r\n cacheLocation: \"sessionStorage\", // This configures where your cache will be stored\r\n storeAuthStateInCookie: false, // Set this to \"true\" if you are having issues on IE11 or Edge\r\n },\r\n system: {\t\r\n loggerOptions: {\t\r\n loggerCallback: (level: LogLevel, message: string, containsPii: any) => {\t\r\n if (containsPii) {\t\t\r\n return;\t\t\r\n }\t\t\r\n switch (level) {\r\n case LogLevel.Error:\r\n console.error(message);\r\n return;\r\n case LogLevel.Info:\r\n console.info(message);\r\n return;\r\n case LogLevel.Verbose:\r\n console.debug(message);\r\n return;\r\n case LogLevel.Warning:\r\n console.warn(message);\r\n return;\r\n default:\r\n return;\r\n }\t\r\n }\t\r\n }\t\r\n }\r\n};\r\n\r\n/**\r\n * Scopes you add here will be prompted for user consent during sign-in.\r\n * By default, MSAL.js will add OIDC scopes (openid, profile, email) to any login request.\r\n * For more information about OIDC scopes, visit: \r\n * https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#openid-connect-scopes\r\n */\r\nexport const loginRequest = {\r\n scopes: [\"User.Read\"]\r\n};\r\n\r\n/**\r\n * Add here the scopes to request when obtaining an access token for MS Graph API. For more information, see:\r\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/resources-and-scopes.md\r\n */\r\nexport const graphConfig = {\r\n graphMeEndpoint: \"https://graph.microsoft.com/v1.0/me\" //e.g. https://graph.microsoft.com/v1.0/me\r\n};\r\n","import { BASE_URL } from \"./constants\"\r\n\r\nconst getFileUrl = (fileName: string) => {\r\n if (!fileName || !fileName.trim()) return \"\"\r\n return `${BASE_URL}/api/file/viewer?key=${fileName}`\r\n}\r\n\r\nexport default getFileUrl\r\n","\r\nconst getCookieValue = (name: string) => (\r\n document.cookie.match('(^|;)\\\\s*' + name + '\\\\s*=\\\\s*([^;]+)')?.pop() || ''\r\n )\r\n\r\n export default getCookieValue;","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { useNavigate } from \"react-router-dom\"\r\nimport { PublicClientApplication } from \"@azure/msal-browser\"\r\nimport {\r\n ACCESS_TOKEN,\r\n INIT_AMPLITUDE_KEY_PROD,\r\n INIT_AMPLITUDE_KEY_STAGE,\r\n IS_USER_SESSION_BROWSER,\r\n isLocalhost,\r\n NOTIFICATION_ALERT_KEY\r\n} from \"../../../utils/constants\"\r\nimport getAccessToken from \"../../../utils/getAccessToken\"\r\nimport {\r\n setLoading,\r\n setUser,\r\n setAlert,\r\n setSandboxMode,\r\n setIsLoginGoogle,\r\n setInforUserGoogle\r\n} from \"../../../redux/commons/action\"\r\nimport {\r\n logIn,\r\n checkUserGoogle,\r\n registerUserStudent,\r\n getGoogleClientId,\r\n apiInforUserClassLink /*, checkStudentAssign, assignTeacherByCode*/\r\n} from \"../../../services/accountService\"\r\nimport * as amplitude from \"@amplitude/analytics-browser\"\r\nimport { getInfo, getSchoolSettings } from \"../../../services/schoolService\"\r\nimport {\r\n TypeLogin,\r\n IInformationUser,\r\n LoginType,\r\n ISchool\r\n} from \"../constant/types\"\r\nimport { msalConfig } from \"../constant/authConfig\"\r\nimport getStaticFileUrl from \"../../../utils/getStaticFileUrl\"\r\nimport getFileUrl from \"../../../utils/getFileUrl\"\r\nimport getCookieValue from \"../../../utils/getCookieValue\"\r\n\r\ntype LoginInfo = {\r\n email: string\r\n password: string\r\n captcha: string\r\n rememberMe: boolean\r\n isSessionUserBrowser?: boolean\r\n}\r\n\r\nconst defaultInfo: LoginInfo = {\r\n email: \"\",\r\n password: \"\",\r\n captcha: \"\",\r\n rememberMe: false,\r\n isSessionUserBrowser: !!sessionStorage.getItem(IS_USER_SESSION_BROWSER)\r\n}\r\n\r\n// const HOMEPAGE_TEACHER = \"/home\"\r\nconst HOMEPAGE_TEACHER = \"/home\"\r\nconst HOMEPAGE_STUDENT = \"/home\"\r\nconst HOMEPAGE_ADMIN = \"/admin/home\"\r\nconst HOMEPAGE_PARENT = \"/parent\"\r\nconst HOMEPAGE_DISTRICT = \"/admin/schools\"\r\nconst HOMEPAGE_EDU_TEACHER = \"/list-student\"\r\nconst TITLE = \"Log in\"\r\n\r\nconst useLogin = () => {\r\n const dispatch = useDispatch()\r\n const navigate = useNavigate()\r\n const [openLogin, setOpenLogin] = useState<boolean>(false)\r\n const isLoginGoogle = useSelector(\r\n (state: any) => state.common.isLoginGoogle\r\n )\r\n const [googleClientId, setGoogleClientId] = useState<string>(\"\")\r\n const [googleRecaptchaId, setGoogleRecaptchaId] = useState<string>(\"\")\r\n const [extensionEmail, setExtensionEmail] = useState<string>(\"\")\r\n const infoUser = useSelector((state: any) => state.common.inforUserGoogle)\r\n const params = new URLSearchParams(location.search)\r\n const loginClassLink = params.get(\"type\") === \"classlink\"\r\n const tokenClassLink = params.get(\"token\")\r\n const isAdminUser = params.get(\"isAdminUser\")\r\n const [openModelAssign /*, setOpenModelAssign*/] = useState<boolean>(false)\r\n const [school, setSchool] = useState<ISchool>({\r\n schoolName: \"\",\r\n schoolLogo: \"\",\r\n schoolId: 0\r\n })\r\n\r\n const [msalInstance, setMsalInstance] = useState<any>(null)\r\n const toggle = useCallback(() => {\r\n setOpenLogin(!openLogin)\r\n }, [openLogin])\r\n const [isShowPassword, setIsShowPassword] = useState<boolean>(false)\r\n useEffect(() => {\r\n document.title = TITLE\r\n const authToken = getCookieValue(\"auth-token\")\r\n if (authToken) {\r\n const domain = window.location.hostname\r\n localStorage.setItem(ACCESS_TOKEN, authToken)\r\n document.cookie = `auth-token=;domain=${domain.includes(\"localhost\") ? domain : \".marioforme.com\"}; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/`\r\n document.cookie =\r\n \"redirect-uri=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/\"\r\n if (!!isAdminUser) {\r\n return navigate(\"/admin/home\")\r\n }\r\n }\r\n const token = getAccessToken()\r\n if (!!token) navigate(\"/\")\r\n getInfoGoogle()\r\n }, [isAdminUser])\r\n\r\n const handleCancelModelAssign = () => {\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n sessionStorage.removeItem(ACCESS_TOKEN)\r\n localStorage.removeItem(\"USER_EMAIL\")\r\n // setOpenModelAssign(false)\r\n }\r\n\r\n useEffect(() => {\r\n if (loginClassLink && tokenClassLink != \"\") {\r\n loginAccountClassLink()\r\n }\r\n }, [])\r\n\r\n const handleLoginWidthClever = () => {\r\n if (!isLocalhost) {\r\n const cleverSSOUrl = `https://clever.com/oauth/authorize?response_type=code&redirect_uri=${encodeURIComponent(\"https://classlink.marioforme.com/api/clever/clever-login\")}&client_id=${\"c3da6c669d239c70d48e\"}`\r\n window.location.href = cleverSSOUrl\r\n } else {\r\n const cleverSSOUrl = `https://clever.com/oauth/instant-login?client_id=c3da6c669d239c70d48e&district_id=66132a6f222bda41cc8abe5d`\r\n window.location.href = cleverSSOUrl\r\n }\r\n }\r\n\r\n const loginAccountClassLink = async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const data = {\r\n tokenClassLink: tokenClassLink\r\n }\r\n const res = await apiInforUserClassLink(data)\r\n const { email, token } = res.data\r\n const dataUser = {\r\n email: email,\r\n rememberMe: false,\r\n password: \"default\",\r\n accessToken: token\r\n }\r\n await userLogin(dataUser)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }\r\n\r\n const isDistrict = window.location.host.includes(\"-district\")\r\n\r\n // const handleCheckStudentAssignTeacher = useCallback(async () => {\r\n // dispatch(setLoading(true))\r\n // try {\r\n // const res = await checkStudentAssign()\r\n // if (!res.data) {\r\n // // setOpenModelAssign(true)\r\n // } else {\r\n // navigate(HOMEPAGE_STUDENT)\r\n // }\r\n // } catch (err) {\r\n // dispatch(\r\n // setAlert({\r\n // type: \"danger\",\r\n // message:\r\n // err.response?.data?.title ||\r\n // err.message\r\n // })\r\n // )\r\n // }\r\n // dispatch(setLoading(false))\r\n // }, [])\r\n\r\n // const handleAssignTeacherByCode = useCallback(async (teacherCode: string, setIsError: Function) => {\r\n // dispatch(setLoading(true))\r\n // try {\r\n // const res = await assignTeacherByCode(teacherCode)\r\n // if (res.data) {\r\n // // setOpenModelAssign(false)\r\n // navigate(HOMEPAGE_STUDENT)\r\n // }\r\n // } catch (err) {\r\n // setIsError(true)\r\n // dispatch(\r\n // setAlert({\r\n // type: \"danger\",\r\n // message:\r\n // err.response?.data?.title ||\r\n // err.message\r\n // })\r\n // )\r\n // }\r\n // dispatch(setLoading(false))\r\n // }, [])\r\n\r\n const getSchoolInfo = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await getInfo()\r\n const schoolLogo: string = res.data.schoolLogo ?? \"\"\r\n if (!!res.data) {\r\n setSchool({\r\n schoolName: res.data.schoolName,\r\n schoolLogo: !schoolLogo\r\n ? getStaticFileUrl(\"/images/logo_header_blue.png\")\r\n : getFileUrl(schoolLogo),\r\n schoolId: res.data.schoolId\r\n })\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const userLogin = useCallback(async (data: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const isSessionUserBrowser = data?.isSessionUserBrowser ?? false\r\n const res = await logIn({\r\n ...data,\r\n email: data?.email?.trim(),\r\n password: data?.password?.trim()\r\n })\r\n\r\n // if (res.data?.isTwoFactor) {\r\n // navigate(`/2fa?id=${res.data.id}`)\r\n // dispatch(setLoading(false))\r\n // return\r\n // }\r\n const {\r\n token,\r\n id,\r\n firstName,\r\n lastName,\r\n roles,\r\n email,\r\n profileImageFileName,\r\n isLoginFirst\r\n } = res.data\r\n\r\n if (!isSessionUserBrowser) {\r\n sessionStorage.removeItem(IS_USER_SESSION_BROWSER)\r\n localStorage.setItem(ACCESS_TOKEN, token)\r\n } else {\r\n sessionStorage.setItem(ACCESS_TOKEN, token)\r\n sessionStorage.setItem(\r\n IS_USER_SESSION_BROWSER,\r\n isSessionUserBrowser\r\n )\r\n }\r\n localStorage.removeItem(NOTIFICATION_ALERT_KEY)\r\n dispatch(\r\n setUser({\r\n id,\r\n firstName,\r\n lastName,\r\n roles,\r\n email,\r\n profileImageFileName\r\n })\r\n )\r\n\r\n if (!localStorage.getItem(\"ROLES\") && roles.includes(\"Admin\")) {\r\n localStorage.setItem(\"ROLES\", \"Admin\")\r\n }\r\n\r\n if (data?.email && !roles.includes(\"Admin\")) {\r\n amplitude.init(\r\n !isLocalhost\r\n ? INIT_AMPLITUDE_KEY_PROD\r\n : INIT_AMPLITUDE_KEY_STAGE,\r\n data.email,\r\n {\r\n defaultTracking: false\r\n }\r\n )\r\n const hostName = window.location.hostname\r\n const identify = new amplitude.Identify()\r\n identify.set(\"domain\", hostName)\r\n amplitude.identify(identify)\r\n amplitude.track(\"general: session start\", {\r\n user_id: data.email,\r\n domain: hostName,\r\n roles: data?.roles?.toString()\r\n })\r\n localStorage.setItem(\"USER_EMAIL\", data.email)\r\n if (isLoginFirst) {\r\n amplitude.track(\"general: first login\", {\r\n user_id: data.email,\r\n domain: hostName,\r\n roles: data?.roles?.toString()\r\n })\r\n }\r\n }\r\n\r\n if (isDistrict) {\r\n navigate(HOMEPAGE_DISTRICT)\r\n } else if (roles.includes(\"Admin\")) {\r\n navigate(HOMEPAGE_ADMIN)\r\n } else if (\r\n roles.includes(\"Teacher\") ||\r\n roles.includes(\"Assistant\") ||\r\n roles.includes(\"Counselor\") ||\r\n roles.includes(\"SecondaryTeacher\")\r\n ) {\r\n navigate(HOMEPAGE_TEACHER)\r\n } else if (roles.includes(\"Student\")) {\r\n // await handleCheckStudentAssignTeacher()\r\n navigate(HOMEPAGE_STUDENT)\r\n } else if (roles.includes(\"Parent\")) {\r\n navigate(HOMEPAGE_PARENT)\r\n } else if (roles.includes(\"EduTeacher\")) {\r\n navigate(HOMEPAGE_EDU_TEACHER)\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Login failed\"\r\n })\r\n )\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n sessionStorage.removeItem(ACCESS_TOKEN)\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const getInfoGoogle = async () => {\r\n try {\r\n const res = await getGoogleClientId()\r\n setGoogleClientId(res.data.googleClientId)\r\n setGoogleRecaptchaId(res.data.googleCaptchaId)\r\n setExtensionEmail(res.data.extensionEmail)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Login failed\"\r\n })\r\n )\r\n }\r\n }\r\n\r\n const fnIsCheckLogin = useCallback(\r\n async (\r\n type: TypeLogin,\r\n data: any,\r\n token: string,\r\n clickHandler?: any\r\n ) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await checkUserGoogle(type, data)\r\n const checkUser = res.data\r\n if (checkUser) {\r\n const dataUser = {\r\n email: data.email,\r\n isLoginGoogle: true,\r\n rememberMe: false,\r\n password: \"default\",\r\n accessToken: token,\r\n captcha: \"\",\r\n loginType: LoginType.Google\r\n }\r\n\r\n if (clickHandler != null) {\r\n const clickHandlerRes = await clickHandler()\r\n dataUser.captcha = clickHandlerRes\r\n }\r\n await userLogin(dataUser)\r\n dispatch(setIsLoginGoogle(false))\r\n } else {\r\n const res = await registerUserStudent(data)\r\n if (res?.data) {\r\n const dataUser = {\r\n email: data.email,\r\n isLoginGoogle: true,\r\n rememberMe: false,\r\n password: \"default\",\r\n accessToken: token,\r\n captcha: \"\",\r\n loginType: LoginType.Google\r\n }\r\n\r\n if (clickHandler != null) {\r\n const clickHandlerRes = await clickHandler()\r\n dataUser.captcha = clickHandlerRes\r\n }\r\n await userLogin(dataUser)\r\n }\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Login failed\"\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n []\r\n )\r\n\r\n const submitLogin = async (teacherId: number, clickHandler: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const data = {\r\n firstName: infoUser.firstName,\r\n lastName: infoUser.lastName,\r\n imageUrl: infoUser.imageUrl,\r\n fullName: infoUser.fullName,\r\n email: infoUser.email,\r\n accessToken: infoUser.accessToken,\r\n teacherId: teacherId\r\n }\r\n const res = await registerUserStudent(data)\r\n if (res.data) {\r\n const clickHandlerRes = await clickHandler()\r\n const dataLogin = {\r\n email: infoUser.email,\r\n captcha: clickHandlerRes,\r\n isLoginGoogle: true,\r\n rememberMe: false,\r\n password: \"default\",\r\n accessToken: infoUser.accessToken,\r\n loginType: LoginType.Google\r\n }\r\n dispatch(setIsLoginGoogle(false))\r\n await userLogin(dataLogin)\r\n navigate(HOMEPAGE_STUDENT)\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Login failed\"\r\n })\r\n )\r\n }\r\n dispatch(setIsLoginGoogle(false))\r\n dispatch(setLoading(false))\r\n }\r\n\r\n const getInformationSetting = async () => {\r\n try {\r\n const res = await getSchoolSettings()\r\n dispatch(setSandboxMode(res.data.isSandboxMode))\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n }\r\n\r\n const fnLoginSSO = async (clickHandler?: any) => {\r\n msalInstance\r\n .handleRedirectPromise()\r\n .then(async (tokenResponse: any) => {\r\n if (!school?.schoolId) return\r\n if (!tokenResponse) {\r\n const accounts = msalInstance.getAllAccounts()\r\n if (accounts.length === 0) {\r\n // No user signed in\r\n const domainRedirect = isLocalhost\r\n ? \"https://brightsoft.marioforme.com\"\r\n : \"https://sso.marioforme.com\"\r\n window.location.href =\r\n (window.location.hostname === \"localhost\"\r\n ? \"https://localhost:5001\"\r\n : domainRedirect) +\r\n `/microsoft-login.html?redirect-uri=${window.location.href}&schoolId=${school.schoolId}`\r\n } else {\r\n let currentAccount = accounts[0]\r\n await getCurrentAccount(currentAccount, clickHandler)\r\n }\r\n } else {\r\n // Do something with the tokenResponse\r\n let currentAccount = tokenResponse.account\r\n await getCurrentAccount(currentAccount, clickHandler)\r\n }\r\n })\r\n .catch((err: any) => {\r\n // Handle error\r\n console.error(err)\r\n })\r\n }\r\n\r\n const getCurrentAccount = async (account: any, clickHandler?: any) => {\r\n let fullName = account.name\r\n let infoLogin: IInformationUser = {\r\n firstName: fullName.split(\" \").slice(0, -1).join(\" \"),\r\n lastName: fullName.split(\" \").slice(-1).join(\" \"),\r\n fullName: fullName,\r\n imageUrl: \"\",\r\n email: account.username,\r\n accessToken: account.idTokenClaims.aio,\r\n googleId: account.tenantId\r\n }\r\n dispatch(setInforUserGoogle(infoLogin))\r\n await fnIsCheckLogin(\r\n TypeLogin.MicrosoftSSO,\r\n infoLogin,\r\n account.idTokenClaims.aio,\r\n clickHandler\r\n )\r\n }\r\n\r\n const initInformationSSO = async () => {\r\n const msalInstance = new PublicClientApplication(msalConfig)\r\n setMsalInstance(msalInstance)\r\n }\r\n\r\n useEffect(() => {\r\n let redirectUrl = window.location.href\r\n if (\r\n !!msalInstance &&\r\n redirectUrl.includes(\"code\") &&\r\n redirectUrl.includes(\"client_info\")\r\n ) {\r\n fnLoginSSO()\r\n }\r\n }, [JSON.stringify(msalInstance)])\r\n\r\n useEffect(() => {\r\n getInformationSetting()\r\n initInformationSSO()\r\n getSchoolInfo()\r\n }, [])\r\n\r\n return {\r\n defaultInfo,\r\n userLogin,\r\n openLogin,\r\n toggle,\r\n isShowPassword,\r\n setIsShowPassword,\r\n fnIsCheckLogin,\r\n isLoginGoogle,\r\n infoUser,\r\n submitLogin,\r\n googleClientId,\r\n googleRecaptchaId,\r\n handleCancelModelAssign,\r\n openModelAssign,\r\n // handleAssignTeacherByCode,\r\n fnLoginSSO,\r\n school,\r\n extensionEmail,\r\n handleLoginWidthClever\r\n }\r\n}\r\n\r\nexport default useLogin\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useGoogleReCaptcha } from \"react-google-recaptcha-v3\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useNavigate } from \"react-router-dom\"\r\nimport { setAlert, setLoading } from \"../../../redux/commons/action\"\r\nimport {\r\n getUserNewPassword,\r\n createPassword\r\n} from \"../../../services/accountService\"\r\nimport { ACCESS_TOKEN } from \"../../../utils/constants\"\r\nimport getAccessToken from \"../../../utils/getAccessToken\"\r\nimport { ICreatePassword } from \"../constant/types\"\r\n\r\nconst DASHBOARD = \"/\"\r\nconst LOGIN = \"/login\"\r\nconst TITLE = \"Log in\"\r\n\r\nconst useCreatePassword = () => {\r\n const dispatch = useDispatch()\r\n const navigate = useNavigate()\r\n const search = location.search\r\n const params = new URLSearchParams(search)\r\n const userId = params.get('userId')\r\n\r\n const [isShowNewPassword, setIsShowNewPassword] = useState<boolean>(false)\r\n const [isShowReTypePassword, setIsShowReTypePassword] = useState<boolean>(\r\n false\r\n )\r\n\r\n const [initialValues, setInitialValues] = useState<ICreatePassword>({\r\n password: \"\",\r\n reEnterPassword: \"\",\r\n email: \"\",\r\n userId: userId ?? \"\",\r\n token: \"\"\r\n })\r\n\r\n const { executeRecaptcha } = useGoogleReCaptcha()\r\n\r\n const handleGetUserNewPassword = useCallback(async (userId: string) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const res = await getUserNewPassword(userId)\r\n setInitialValues({...initialValues, email: res.data})\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const createPasswordRequest = useCallback(async (data: ICreatePassword) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n await createPassword(data)\r\n navigate(LOGIN)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Create password sucessfully\"\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title ||\r\n err.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n sessionStorage.removeItem(ACCESS_TOKEN)\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const clickHandler = useCallback(async () => {\r\n if (!executeRecaptcha) {\r\n console.log(\"execute recaptcha undefined\")\r\n return\r\n }\r\n const result = await executeRecaptcha(\"forgetPass\")\r\n return result\r\n }, [executeRecaptcha])\r\n\r\n const handleVerify = useCallback(() => {}, [])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n const token = getAccessToken()\r\n if (!!token) navigate(DASHBOARD)\r\n if (!!userId) handleGetUserNewPassword(userId)\r\n }, [userId])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n const token = getAccessToken()\r\n if (!!token) navigate(DASHBOARD)\r\n }, [])\r\n\r\n return {\r\n createPasswordRequest,\r\n isShowNewPassword,\r\n setIsShowNewPassword,\r\n isShowReTypePassword,\r\n setIsShowReTypePassword,\r\n clickHandler,\r\n handleVerify,\r\n initialValues\r\n }\r\n}\r\n\r\nexport default useCreatePassword\r\n","import { Formik } from \"formik\"\r\nimport React from \"react\"\r\nimport { Col, FormGroup, Input, Row } from \"reactstrap\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../../components/Alerts/ErrorHandler\"\r\nimport PasswordInput from \"../../../../components/Inputs/PasswordInput\"\r\nimport styles from \"../../../../styles.module.scss\"\r\nimport useCreatePassword from \"../../hooks/useCreatePassword\"\r\nimport getStaticFileUrl from \"../../../../utils/getStaticFileUrl\"\r\n\r\nconst resetPasswordSchema = yup.object({\r\n password: yup.string().required(\"Password is required\"),\r\n reEnterPassword: yup\r\n .string()\r\n .required(\"Please re-enter Password\")\r\n .test(\"matching\", \"Passwords do not match\", function () {\r\n return this.parent.password === this.parent.reEnterPassword\r\n })\r\n})\r\n\r\nconst BlockCreatePassword = () => {\r\n const {\r\n createPasswordRequest,\r\n isShowNewPassword,\r\n setIsShowNewPassword,\r\n isShowReTypePassword,\r\n setIsShowReTypePassword,\r\n initialValues\r\n } = useCreatePassword()\r\n\r\n return (\r\n <Formik\r\n initialValues={initialValues}\r\n enableReinitialize\r\n validationSchema={resetPasswordSchema}\r\n onSubmit={values => {\r\n createPasswordRequest(values)\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n setFieldValue,\r\n handleSubmit,\r\n touched,\r\n errors,\r\n values\r\n } = formikProps\r\n return (\r\n <Row className={`${styles[\"box-login\"]}`}>\r\n <Col className=\"p-0\">\r\n <div\r\n hidden={!values.email}\r\n className={`${styles[\"block-login\"]}`}\r\n >\r\n <div className={`${styles[\"block-form\"]}`}>\r\n <img\r\n src={`${getStaticFileUrl(\r\n \"/images/horizontal-logo-blue.svg\"\r\n )}`}\r\n className={`${styles[\"img-login-rectangle\"]}`}\r\n />\r\n <p className={`${styles[\"title-login\"]}`}>\r\n Create Your Password\r\n </p>\r\n <div className=\"w-100\">\r\n <React.Fragment>\r\n <FormGroup\r\n className={`${styles[\"form-user-name\"]}`}\r\n >\r\n <Input\r\n disabled\r\n type=\"text\"\r\n name=\"email\"\r\n placeholder=\"Email\"\r\n value={values.email}\r\n autocomplete=\"email\"\r\n required\r\n className={`${styles[\"input\"]}`}\r\n />\r\n </FormGroup>\r\n <div\r\n className={`${styles[\"form-user-name\"]}`}\r\n >\r\n <PasswordInput\r\n isShowPassword={\r\n isShowNewPassword\r\n }\r\n togglePasswordVisible={() =>\r\n setIsShowNewPassword(\r\n !isShowNewPassword\r\n )\r\n }\r\n onChange={(e: any) =>\r\n setFieldValue(\r\n \"password\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n {touched.password &&\r\n errors.password && (\r\n <ErrorHandler\r\n text={\r\n errors.password\r\n }\r\n />\r\n )}\r\n </div>\r\n <div\r\n className={`${styles[\"form-user-name\"]}`}\r\n >\r\n <PasswordInput\r\n placeholder=\"Confirm Password\"\r\n isShowPassword={\r\n isShowReTypePassword\r\n }\r\n togglePasswordVisible={() =>\r\n setIsShowReTypePassword(\r\n !isShowReTypePassword\r\n )\r\n }\r\n onChange={(e: any) =>\r\n setFieldValue(\r\n \"reEnterPassword\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n {touched.reEnterPassword &&\r\n errors.reEnterPassword && (\r\n <ErrorHandler\r\n text={\r\n errors.reEnterPassword\r\n }\r\n />\r\n )}\r\n </div>\r\n </React.Fragment>\r\n </div>\r\n <button\r\n className={`${styles[\"btn-login\"]} ${styles[\"btn-rounder\"]} mt-4`}\r\n onClick={() => handleSubmit()}\r\n >\r\n CREATE YOUR PASSWORD\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n hidden={!!values.email}\r\n className={`${styles[\"block-login\"]}`}\r\n >\r\n <div className={`${styles[\"block-form\"]}`}>\r\n <img\r\n src={`${getStaticFileUrl(\r\n \"/images/horizontal-logo-blue.svg\"\r\n )}`}\r\n className={`${styles[\"img-login-rectangle\"]}`}\r\n />\r\n <p className={`${styles[\"title-login\"]}`}>\r\n You cannot regenerate the password\r\n </p>\r\n </div>\r\n </div>\r\n </Col>\r\n </Row>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default BlockCreatePassword\r\n","import React, { useEffect } from \"react\"\r\n\r\nimport { Col, Row } from \"reactstrap\"\r\n\r\nimport BlockLogin from \"./block/BlockLogin\"\r\nimport BlockForgetPassword from \"./block/BlockForgetPassword\"\r\nimport BlockResetPassword from \"./block/BlockResetPassword\"\r\n// import BlockTwoFactorLogin from \"./block/BlockTwoFactorLogin\"\r\nimport useLogin from \"../hooks/useLogin\"\r\nimport styles from \"../../../styles.module.scss\"\r\nimport { GoogleReCaptchaProvider } from \"react-google-recaptcha-v3\"\r\nimport BlockCreatePassword from \"./block/BlockCreatePassword\"\r\nimport getStaticFileUrl from \"../../../utils/getStaticFileUrl\"\r\n\r\ninterface loginProps {\r\n isLogin?: boolean\r\n isForgotPassword?: boolean\r\n isResetPassword?: boolean\r\n isLoginTwoFactor?: boolean\r\n isCreatePassword?: boolean\r\n}\r\n\r\nconst LOGIN_TITLE = \"Log in\"\r\nconst FORGOT_PASSWORD_TITLE = \"Forgot password\"\r\nconst RESET_PASSWORD_TITLE = \"Reset password\"\r\n\r\nconst Login = (props: loginProps) => {\r\n const {\r\n isLogin,\r\n isForgotPassword,\r\n isResetPassword,\r\n isCreatePassword\r\n // isLoginTwoFactor\r\n } = props\r\n const {\r\n defaultInfo,\r\n userLogin,\r\n googleRecaptchaId,\r\n handleCancelModelAssign,\r\n school,\r\n openModelAssign,\r\n setIsShowPassword,\r\n fnIsCheckLogin,\r\n isLoginGoogle,\r\n submitLogin,\r\n infoUser,\r\n googleClientId,\r\n isShowPassword,\r\n fnLoginSSO,\r\n extensionEmail,\r\n handleLoginWidthClever\r\n } = useLogin()\r\n\r\n useEffect(() => {\r\n isLogin && (document.title = LOGIN_TITLE)\r\n isForgotPassword && (document.title = FORGOT_PASSWORD_TITLE)\r\n isResetPassword && (document.title = RESET_PASSWORD_TITLE)\r\n }, [isLogin, isForgotPassword, isResetPassword])\r\n\r\n return (\r\n <div className={`${styles[\"login\"]} container-fluid font-family-lato`}>\r\n <Row className={\"h-100\"}>\r\n <Col\r\n lg={8}\r\n md={12}\r\n xs={12}\r\n className=\"d-flex justify-content-center h-100 align-items-center p-3 flex-column\"\r\n >\r\n {!!googleRecaptchaId && (\r\n <GoogleReCaptchaProvider\r\n useRecaptchaNet\r\n reCaptchaKey={googleRecaptchaId}\r\n scriptProps={{\r\n async: true,\r\n defer: true,\r\n appendTo: \"body\"\r\n }}\r\n >\r\n {isLogin && (\r\n <BlockLogin\r\n userLogin={userLogin}\r\n defaultInfo={defaultInfo}\r\n onCancelModelAssign={\r\n handleCancelModelAssign\r\n }\r\n openModelAssign={openModelAssign}\r\n school={school}\r\n fnIsCheckLogin={fnIsCheckLogin}\r\n googleClientId={googleClientId}\r\n infoUser={infoUser}\r\n isLoginGoogle={isLoginGoogle}\r\n isShowPassword={isShowPassword}\r\n setIsShowPassword={setIsShowPassword}\r\n submitLogin={submitLogin}\r\n fnLoginSSO={fnLoginSSO}\r\n extensionEmail={extensionEmail}\r\n onLoginWidthClever={handleLoginWidthClever}\r\n />\r\n )}\r\n {isForgotPassword && (\r\n <BlockForgetPassword school={school} />\r\n )}\r\n </GoogleReCaptchaProvider>\r\n )}\r\n\r\n {isResetPassword && <BlockResetPassword />}\r\n {isCreatePassword && <BlockCreatePassword />}\r\n <a\r\n href=\"/privacy-policy/\"\r\n target=\"blank\"\r\n className={`${styles[\"privacy-policy\"]}`}\r\n >\r\n Privacy Policy\r\n </a>\r\n {/* {isLoginTwoFactor && <BlockTwoFactorLogin />} */}\r\n </Col>\r\n <Col\r\n className=\"p-3 mh-100 d-flex justify-content-end\"\r\n lg={4}\r\n md={12}\r\n xs={12}\r\n >\r\n <img\r\n src={`${getStaticFileUrl(window.innerWidth > 992 ? \"/images/img-login.png\" : \"/images/img-login-tablet.png\")}`}\r\n className={`${styles[\"img-login\"]}`}\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Login\r\n","import React from \"react\"\r\nimport styles from \"../../../../styles.module.scss\"\r\n\r\nconst QuoteContent = () => {\r\n return (\r\n <div className={`${styles[\"content-quote\"]}`}>\r\n <div className={`${styles[\"title-quote\"]} d-block`}>\r\n <p>Powerful</p>\r\n <p>Personalized</p>\r\n <p>Learning</p>\r\n </div>\r\n <div\r\n className={`${styles[\"descriptions-quote\"]} d-block`}\r\n >\r\n <p>Focus on what matters most to you and</p>\r\n <p>make learning meaningful.</p>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default QuoteContent\r\n","import React, { FC } from \"react\"\nimport styles from \"../../../../styles.module.scss\"\nimport getStaticFileUrl from \"../../../../utils/getStaticFileUrl\"\n\ninterface Props {\n srcIcon: string\n content: string\n}\nconst IconContent: FC<Props> = ({ srcIcon, content }: Props) => {\n return (\n <div key={content} className={`${styles[\"content-icon\"]}`}>\n <div className={`${styles[\"title-icon\"]}`}>\n <img src={getStaticFileUrl(srcIcon)} alt=\"icon\" />\n </div>\n <div\n className={`${styles[\"descriptions-icon\"]}`}\n dangerouslySetInnerHTML={{ __html: content }}\n />\n </div>\n )\n}\n\nexport default IconContent\n","import React, { FC } from \"react\"\r\nimport { Col, Row } from \"reactstrap\"\r\nimport QuoteContent from \"./QuoteContent\"\r\nimport IconContent from \"./IconContent\"\r\nimport styles from \"../../../../styles.module.scss\"\r\n\r\ninterface Props { }\r\nconst contents = [\r\n {\r\n scrIcon: \"/images/ChatsTeardrop.svg\",\r\n content:\r\n \"<p>Understand yourself better through <span>helpful feedback</span>.</p>\"\r\n },\r\n {\r\n scrIcon: \"/images/Student.svg\",\r\n content:\r\n \"<p>Create, explore, and share exciting <span>personalized</span> learning journeys.</p>\"\r\n },\r\n {\r\n scrIcon: \"/images/Confetti.svg\",\r\n content: \"<p>Set, monitor, and achieve <span>your goals</span>.</p>\"\r\n }\r\n]\r\n\r\nconst ContentHomePage: FC<Props> = ({ }: Props) => {\r\n return (\r\n <Row className={`${styles[\"page-not-login\"]}`}>\r\n <Col md={12}>\r\n <QuoteContent />\r\n </Col>\r\n\r\n <Col md={12} className={`${styles[\"box-content-home-page\"]} d-flex align-items-center`}>\r\n {contents.map((content: any) => (\r\n <IconContent\r\n key={content.scrIcon}\r\n srcIcon={content.scrIcon}\r\n content={content.content}\r\n />\r\n ))}\r\n </Col>\r\n </Row>\r\n )\r\n}\r\n\r\nexport default ContentHomePage\r\n","import React, { FC, useCallback, useEffect, useRef, useState } from 'react';\r\nimport styles from \"../../../../styles.module.scss\"\r\nimport getStaticFileUrl from '../../../../utils/getStaticFileUrl';\r\n\r\nconst DEFAULT_ANIMATION_DURATION = 10000\r\n\r\ninterface Props{\r\n data: string[]\r\n duration?: number\r\n}\r\n\r\nconst BlockBackground: FC<Props> = ({\r\n data,\r\n duration = DEFAULT_ANIMATION_DURATION\r\n}) => {\r\n const [activeImage, setActiveImage] = useState<number>(data.length)\r\n const ref = useRef<any>(null)\r\n\r\n const getActiveClass = useCallback((index: number) => {\r\n return index === activeImage ? `${styles[\"active\"]} ${styles[\"show\"]}` : ''\r\n }, [activeImage])\r\n\r\n const getBehindClass = useCallback((index: number) => {\r\n return (activeImage === 0 && index === data.length - 1) || index === activeImage - 1 ? styles[\"behind\"] : ''\r\n }, [activeImage, data.length])\r\n\r\n const animate = useCallback(() => {\r\n ref && ref.current && clearInterval(ref.current)\r\n ref.current = setInterval(() => {\r\n setActiveImage(state => state >= data.length - 1 ? 0 : state + 1)\r\n }, duration)\r\n }, [duration, data.length])\r\n\r\n useEffect(() => {\r\n animate()\r\n return () => {\r\n ref && ref.current && clearInterval(ref.current)\r\n }\r\n }, [data.length, duration])\r\n\r\n return (\r\n <div className={`${styles[\"bg-animate\"]} position-absolute`}>\r\n {\r\n data.map((img: string, index: number) => (\r\n <img\r\n key={index}\r\n alt={`Image ${index + 1}`}\r\n className={`${getBehindClass(index)} ${getActiveClass(index)}`}\r\n src={getStaticFileUrl(img)}\r\n />\r\n ))\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport default BlockBackground","import React, { useEffect, useState } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\n// import BlockLogin from \"./block/BlockLogin\"\r\n// import useLogin from \"../hooks/useLogin\"\r\nimport ContentHomePage from \"./block/ContentHomePage\"\r\n// import LoginNavButton from \"../../../components/Buttons/LoginNavButton\"\r\nimport styles from \"../../../styles.module.scss\"\r\nimport { GiHamburgerMenu } from \"react-icons/gi\"\r\nimport { Link } from \"react-router-dom\"\r\nconst HOME_ADMIN = \"/admin/users/user-list\"\r\nconst HOME_TEACHER = \"/home\"\r\nconst HOME_STUDENT = \"/home\"\r\n\r\nimport {\r\n Collapse,\r\n Navbar,\r\n NavbarBrand,\r\n Nav,\r\n NavItem,\r\n NavLink\r\n} from \"reactstrap\"\r\nimport getStaticFileUrl from \"../../../utils/getStaticFileUrl\"\r\nimport BlockBackground from \"./block/BlockBackground\"\r\nimport { IDashboard } from \"../constant/types\"\r\n\r\nconst DASHBOARD_TITLE = \"Dashboard\"\r\nconst ROOT_TITLE = \"Mario Education\"\r\nconst BG_IMAGES = [\r\n \"images/landing-page.jpg\",\r\n \"images/landing-page2.jpg\",\r\n \"images/landing-page3.jpg\"\r\n]\r\n\r\nconst Dashboard = ({ version }: IDashboard) => {\r\n const [isOpen, setIsOpen] = useState<boolean>(false)\r\n const user = useSelector((state: any) => state.common.user)\r\n\r\n const toggle = () => setIsOpen(!isOpen)\r\n\r\n useEffect(() => {\r\n !!user\r\n ? (document.title = DASHBOARD_TITLE)\r\n : (document.title = ROOT_TITLE)\r\n }, [user])\r\n\r\n return (\r\n <div\r\n className={`${styles[\"login\"]} ${styles[\"red-background\"]} position-relative`}\r\n >\r\n <span\r\n className={`${styles[\"version-prod\"]}`}\r\n >{`v ${version}`}</span>\r\n <BlockBackground data={BG_IMAGES} />\r\n <div className={`${styles[\"login-content\"]}`}>\r\n <Navbar light expand=\"md\">\r\n <NavbarBrand href=\"/\" className={`${styles[\"logo-home\"]}`}>\r\n <img\r\n src={getStaticFileUrl(\"/images/logo-white.svg\")}\r\n alt=\"mario\"\r\n />\r\n </NavbarBrand>\r\n <GiHamburgerMenu\r\n onClick={toggle}\r\n className={`${styles[\"hide-in-desktop\"]} ${styles[\"hamburger-menu\"]}`}\r\n />\r\n <Collapse\r\n isOpen={isOpen}\r\n navbar\r\n className={`${styles[\"collapse-box\"]}`}\r\n >\r\n <Nav\r\n className={`${styles[\"nav-home\"]} d-md-flex w-100 justify-content-center mr-auto`}\r\n navbar\r\n >\r\n <NavItem>\r\n <NavLink\r\n className={`${styles[\"learn-more\"]} align-self-md-center`}\r\n href=\"https://marioframework.com/software\"\r\n target=\"blank\"\r\n >\r\n Learn More\r\n </NavLink>\r\n </NavItem>\r\n <NavItem>\r\n <NavLink\r\n className={`${styles[\"learn-more\"]} align-self-md-center`}\r\n href=\"mailto: Info@marioeducation.com\"\r\n target=\"blank\"\r\n >\r\n Contact\r\n </NavLink>\r\n </NavItem>\r\n <NavItem>\r\n <NavLink\r\n className={`${styles[\"learn-more\"]} align-self-md-center`}\r\n href=\"/privacy-policy\"\r\n target=\"blank\"\r\n >\r\n Privacy Policy\r\n </NavLink>\r\n </NavItem>\r\n </Nav>\r\n <div\r\n className={`${styles[\"hide-in-mobile\"]} d-flex justify-content-end`}\r\n >\r\n {user ? (\r\n <Link\r\n to={\r\n user.roles.includes(\"Admin\")\r\n ? HOME_ADMIN\r\n : user.roles.includes(\"Teacher\")\r\n ? HOME_TEACHER\r\n : HOME_STUDENT\r\n }\r\n className={`${styles[\"btn-trans-border\"]}`}\r\n >\r\n Dashboard\r\n </Link>\r\n ) : (\r\n <Link\r\n to=\"/login\"\r\n className={`${styles[\"btn-trans-border\"]}`}\r\n >\r\n Login\r\n </Link>\r\n )}\r\n </div>\r\n </Collapse>\r\n </Navbar>\r\n\r\n <div className={``}>\r\n <ContentHomePage />\r\n </div>\r\n <div className={`${styles[\"digital-privacy-icon\"]}`}>\r\n <a\r\n href=\"https://cert.privo.com/#/companies/marioFrameworkLlc\"\r\n target=\"blank\"\r\n >\r\n <img\r\n src={getStaticFileUrl(\"/images/STUDENT.png\")}\r\n alt=\"icon\"\r\n />\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Dashboard\r\n","import React, { FC, useEffect } from \"react\"\nimport { Link } from \"react-router-dom\"\n\nconst TITLE = \"Not found\"\nconst NotFound: FC = () => {\n useEffect(() => {\n document.title = TITLE\n })\n return (\n <div className=\"not-found\">\n <div className=\"clearfix\">\n <h1 className=\"float-left display-3 mr-4\">404</h1>\n <div className=\"float-left\">\n <h4 className=\"pt-3\">Oops! You are lost.</h4>\n <p className=\"text-muted mb-2\">\n The page you are looking for was not found.\n </p>\n <div>\n <Link to=\"/\">Go to home</Link>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default NotFound\n","import React, { Suspense } from \"react\"\r\nimport { Route, Routes, useLocation } from \"react-router-dom\"\r\nimport { CContainer } from \"@coreui/react\"\r\nimport NotFound from \"../containers/Commons/NotFound\"\r\n\r\nconst loading = (\r\n <div className=\"pt-3 text-center\">\r\n <div className=\"sk-spinner sk-spinner-pulse\" />\r\n </div>\r\n)\r\n\r\nconst TheContent = ({ routes }: any) => {\r\n const location = useLocation()\r\n const { pathname } = location\r\n const dashboard = !pathname.includes(\"/admin\") ? \"box-container\" : \"\"\r\n const paddingAdmin = pathname.includes(\"/admin\") ? \"pt-3\" : \"\"\r\n return (\r\n <main className={`c-main ${dashboard}`}>\r\n <CContainer fluid className={`h-100 ${paddingAdmin}`}>\r\n <Suspense fallback={loading}>\r\n <Routes>\r\n {routes.map((route: any, idx: number) => (\r\n <Route\r\n key={idx}\r\n path={route.path}\r\n element={<route.component />}\r\n />\r\n ))}\r\n <Route path=\"*\" element={<NotFound />} />\r\n </Routes>\r\n </Suspense>\r\n </CContainer>\r\n </main>\r\n )\r\n}\r\n\r\nexport default React.memo(TheContent)\r\n","import React, { CSSProperties, FC } from \"react\"\r\nimport { Button } from \"reactstrap\"\r\nimport { FaPlus } from \"react-icons/fa\"\r\n\r\ninterface Props {\r\n text?: string\r\n onClick?(): void\r\n}\r\n\r\nconst buttonTextStyle: CSSProperties = {\r\n fontWeight: 500\r\n}\r\n\r\nconst buttonStyle: CSSProperties = {\r\n height: 38\r\n}\r\n\r\nconst AddButton: FC<Props> = ({ text, onClick }: Props) => {\r\n return (\r\n <Button\r\n onClick={onClick}\r\n color=\"success\"\r\n style={buttonStyle}\r\n className=\"d-flex align-items-center\"\r\n >\r\n <FaPlus />\r\n <span className=\"ml-2\" style={buttonTextStyle}>\r\n {text}\r\n </span>\r\n </Button>\r\n )\r\n}\r\n\r\nexport default AddButton\r\n","import React, { FC } from \"react\"\r\nimport { FaTrashAlt } from \"react-icons/fa\"\r\ninterface Props {\r\n onClick?: () => any\r\n className?: string\r\n}\r\n\r\nconst DeleteButtonIcon: FC<Props> = ({ onClick, className }: Props) => {\r\n return (\r\n <div\r\n className=\"d-inline text-center cursor-pointer hover-opacity\"\r\n title=\"Delete\"\r\n onClick={onClick}\r\n >\r\n <FaTrashAlt className={className} />\r\n </div>\r\n )\r\n}\r\n\r\nexport default DeleteButtonIcon\r\n","import React, { FC } from \"react\"\nimport { Button } from \"reactstrap\"\n\ninterface Props {\n label: string\n onClick: () => any\n}\n\nconst LinkEditButton: FC<Props> = ({ label, onClick }: Props) => {\n return (\n <Button className=\"text-left py-0\" color=\"link\" onClick={onClick}>\n {label}\n </Button>\n )\n}\n\nexport default LinkEditButton\n","import React, { CSSProperties } from \"react\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { Alert } from \"reactstrap\"\r\n\r\ninterface Props {\r\n label: string\r\n className?: string\r\n style?: CSSProperties\r\n}\r\n\r\nconst EmptyDataAlert = ({ label, className = \"\", style = {} }: Props) => {\r\n const { t } = useTranslation()\r\n return (\r\n <Alert color=\"primary\" className={className} style={style}>\r\n {t(\"no_item_to_display\", { item: label })}\r\n </Alert>\r\n )\r\n}\r\n\r\nexport default EmptyDataAlert\r\n","import React, { useEffect, useState } from \"react\"\r\nimport Select from \"react-select\"\r\nimport {\r\n Col,\r\n // Input,\r\n Pagination,\r\n PaginationItem,\r\n PaginationLink,\r\n Row\r\n} from \"reactstrap\"\r\nimport {\r\n DEFAULT_PAGE_SIZE_VALUES,\r\n DEFAULT_PAGE_SIZE\r\n} from \"../../utils/constants\"\r\n\r\nconst CustomPagination = (props: any) => {\r\n const { filters, changePage, totalRecordCount, changePageSize } = props\r\n const [input, setInput] = useState<string>(\"\")\r\n\r\n useEffect(() => {\r\n setInput(filters.currentPage.toString())\r\n }, [filters.currentPage])\r\n\r\n return (\r\n <Row>\r\n <Col md={12} className=\"d-flex justify-content-end\">\r\n <Pagination>\r\n <div className=\"mr-1 pagination-dropdown\">\r\n <Select\r\n className=\"text-center\"\r\n value={\r\n !!filters && !!filters.pageSize\r\n ? {\r\n label: filters.pageSize,\r\n value: filters.pageSize\r\n }\r\n : DEFAULT_PAGE_SIZE\r\n }\r\n options={DEFAULT_PAGE_SIZE_VALUES}\r\n onChange={(e: any) => changePageSize(e.value)}\r\n styles={{\r\n menu: base => ({ ...base, zIndex: 9999 })\r\n }}\r\n menuPosition={\"fixed\"}\r\n />\r\n </div>\r\n\r\n <PaginationItem className=\"mr-1\">\r\n <PaginationLink\r\n previous\r\n tag=\"button\"\r\n className=\"h-100\"\r\n disabled={filters.currentPage <= 1}\r\n onClick={() => changePage(filters.currentPage - 1)}\r\n >\r\n Prev\r\n </PaginationLink>\r\n </PaginationItem>\r\n\r\n <input\r\n type=\"text\"\r\n id=\"pageNumberInput\"\r\n className=\"page-input text-center pagination-input\"\r\n onChange={(e: any) => setInput(e.target.value)}\r\n onKeyUp={(e: any) => {\r\n if (e.key === \"Enter\" || e.keyCode === 13) {\r\n changePage(parseInt(input))\r\n }\r\n }}\r\n value={input}\r\n />\r\n\r\n <PaginationItem className=\"ml-1\">\r\n <PaginationLink\r\n next\r\n tag=\"button\"\r\n className=\"h-100\"\r\n disabled={\r\n filters.currentPage >\r\n totalRecordCount / filters.pageSize\r\n }\r\n onClick={() => changePage(filters.currentPage + 1)}\r\n >\r\n Next\r\n </PaginationLink>\r\n </PaginationItem>\r\n </Pagination>\r\n </Col>\r\n </Row>\r\n )\r\n}\r\n\r\nexport default CustomPagination\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setEmailTemplateList = createAction<any>(\r\n \"emailTemplate/setEmailTemplateList\"\r\n)\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setMailCategory = createAction<Array<object> | undefined>(\r\n \"mailCategories/setMailCategory\"\r\n)\r\n","import { BASE_URL } from \"../utils/constants\"\r\nimport { api } from \"./api\"\r\nimport { Filter } from \"../types/Filter\"\r\nconst TINY_MCE_KEY_URL = \"/api/TinyMCEKey\";\r\n\r\nconst EMAIL_TEMPLATE_URL = `${BASE_URL}/api/emailtemplate`\r\n\r\nexport const get = (filter: Filter) =>\r\n api.get(EMAIL_TEMPLATE_URL, { params: filter })\r\n\r\nexport const getById = (id: number) => api.get(`${EMAIL_TEMPLATE_URL}/${id}`)\r\n\r\nexport const create = (data: any) => api.post(EMAIL_TEMPLATE_URL, data)\r\n\r\nexport const update = (data: any) =>\r\n api.put(`${EMAIL_TEMPLATE_URL}/${data.id}`, data)\r\n\r\nexport const remove = (id: number) => api.delete(`${EMAIL_TEMPLATE_URL}/${id}`)\r\n\r\nexport const getTinyMCEKeyApi = () => api.get(`${TINY_MCE_KEY_URL}`)","import { BASE_URL } from \"../utils/constants\"\r\nimport { api } from \"./api\"\r\n\r\nconst MAIL_CATEGORY_URL = `${BASE_URL}/api/EmailTemplateCategory`\r\n\r\nexport const get = () => api.get(MAIL_CATEGORY_URL)\r\n","import { useState } from \"react\"\r\n\r\nimport { Filter } from \"../types/Filter\"\r\nimport { DEFAULT_FILTER } from \"../utils/constants\"\r\n\r\nconst useFilters = () => {\r\n const [filters, setFilters] = useState<Filter>(DEFAULT_FILTER)\r\n const changeFilters = (updatedFilters: any) => {\r\n const newFilters = {\r\n ...filters,\r\n ...updatedFilters\r\n }\r\n if (!!newFilters.searchString && !!updatedFilters.searchString && updatedFilters.searchString != filters.searchString) {\r\n newFilters.currentPage = 1\r\n }\r\n\r\n setFilters(newFilters)\r\n }\r\n\r\n return { filters, setFilters, changeFilters }\r\n}\r\n\r\nexport default useFilters\r\n","import { useEffect, useCallback } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { useNavigate } from \"react-router-dom\"\r\n\r\nimport { setLoading, setModal, setAlert } from \"../../../redux/commons/action\"\r\nimport { setEmailTemplateList } from \"../../../redux/emailTemplates/action\"\r\nimport { setMailCategory } from \"../../../redux/mailCategories/action\"\r\nimport { get, remove } from \"../../../services/emailTemplateService\"\r\nimport { get as getCategory } from \"../../../services/mailCategoryService\"\r\nimport useFilters from \"../../../hooks/useFilters\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\nconst EMAIL_TEMPLATE_URL = \"/admin/email-template\"\r\nconst CREATE_TEMPLATE_URL = \"/admin/create-email-template\"\r\nconst TITLE = \"Email template list\"\r\n\r\nconst useEmailTemplateList = () => {\r\n const navigate = useNavigate()\r\n const { t } = useTranslation()\r\n const emailTemplateList = useSelector(\r\n (state: any) => state.emailTemplate.emailTemplateList\r\n )\r\n const totalItems = useSelector(\r\n (state: any) => state.emailTemplate.totalItems\r\n )\r\n const mailCategoryList = useSelector(\r\n (state: any) => state.mailCategory.mailCategoryList\r\n )\r\n const { filters, changeFilters } = useFilters()\r\n\r\n const dispatch = useDispatch()\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await get(filters)\r\n const { items, totalItems } = res.data\r\n dispatch(\r\n setEmailTemplateList({ emailTemplateList: items, totalItems })\r\n )\r\n if (!!mailCategoryList && mailCategoryList.length == 0) {\r\n const response = await getCategory()\r\n dispatch(setMailCategory(response.data.items))\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [dispatch, filters])\r\n\r\n const removeData = useCallback(\r\n (id: number) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: t(\"do_you_want_to_remove_this_email_template\"),\r\n onConfirm: async () => {\r\n await remove(id)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Remove template successfully\"\r\n })\r\n )\r\n changeFilters({ currentPage: 1 })\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n },\r\n [filters]\r\n )\r\n\r\n const goToDetail = useCallback((id?: number) => {\r\n const url = !!id ? `${EMAIL_TEMPLATE_URL}/${id}` : CREATE_TEMPLATE_URL\r\n navigate(url)\r\n }, [])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [filters])\r\n\r\n return {\r\n emailTemplateList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n getData,\r\n removeData,\r\n goToDetail,\r\n mailCategoryList\r\n }\r\n}\r\n\r\nexport default useEmailTemplateList\r\n","import React, { FC } from \"react\"\r\nimport { Row, Col, Table } from \"reactstrap\"\r\n\r\nimport AddButton from \"../../../components/Buttons/AddButton\"\r\nimport DeleteButtonIcon from \"../../../components/Buttons/DeleteButtonIcon\"\r\nimport LinkEditButton from \"../../../components/Buttons/LinkEditButton\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport { format } from \"date-fns\"\r\nimport { DATE_RESULT } from \"../../../utils/constants\"\r\nimport useEmailTemplateList from \"../hooks/useEmailTemplateList\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\nconst header = \"email_template\"\r\n\r\nconst EmailTemplateList: FC = () => {\r\n const {\r\n emailTemplateList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n removeData,\r\n goToDetail,\r\n mailCategoryList\r\n } = useEmailTemplateList()\r\n const { t } = useTranslation()\r\n\r\n const onRemove = (id: number) => {\r\n removeData(id)\r\n }\r\n\r\n return (\r\n <div className=\"fadeIn animated\">\r\n <h5 className=\"mb-2\">{t(header)}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={4}>\r\n <AddButton\r\n text={t(\"create_template\")}\r\n onClick={() => goToDetail()}\r\n />\r\n </Col>\r\n <Col\r\n md={4}\r\n className=\"d-flex align-items-center justify-content-end\"\r\n >\r\n {t(\"total_of_templates\")}: {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n {emailTemplateList && emailTemplateList.length > 0 ? (\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">\r\n {t(\"template_name\")}\r\n </th>\r\n <th className=\"align-top\">\r\n {t(\"category_name\")}\r\n </th>\r\n <th className=\"align-top\">\r\n {t(\"created_date\")}\r\n </th>\r\n <th className=\"text-center\">\r\n {t(\"action\")}\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {emailTemplateList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n <LinkEditButton\r\n label={record.subject}\r\n onClick={() =>\r\n goToDetail(record.id)\r\n }\r\n />\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.category.name}\r\n </td>\r\n <td className=\"align-middle\">\r\n {format(\r\n new Date(record.createdAt),\r\n DATE_RESULT\r\n )}\r\n </td>\r\n\r\n <td className=\"text-center align-middle\">\r\n <DeleteButtonIcon\r\n onClick={() =>\r\n onRemove(record.id)\r\n }\r\n />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n ) : (\r\n <EmptyDataAlert label={t(\"template\")} />\r\n )}\r\n <Row className=\"mt-2\">\r\n <Col md={12}>\r\n <CustomPagination\r\n filters={filters}\r\n totalRecordCount={totalItems}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </Col>\r\n <Col md={4}>\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">\r\n {t(\"category_name\")}\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {mailCategoryList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n {record.name}\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default EmailTemplateList\r\n","import React, { FC, CSSProperties } from \"react\"\r\nimport { Row, Col, Button } from \"reactstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { screenWidth } from \"../../utils/constants\"\r\ninterface Props {\r\n confirmText: string\r\n onConfirm: () => any\r\n onCancel: () => any\r\n}\r\n\r\nconst style: CSSProperties = {\r\n width: \"100%\",\r\n position: \"fixed\",\r\n bottom: 70,\r\n backgroundColor: \"#fff\",\r\n borderTop: \"1px solid #ddd\",\r\n padding: \"18px 8px\",\r\n zIndex: 2\r\n}\r\n\r\nconst DetailActionButtons: FC<Props> = ({\r\n confirmText,\r\n onConfirm,\r\n onCancel\r\n}: Props) => {\r\n const { t } = useTranslation()\r\n const customizeStyle: CSSProperties =\r\n screenWidth <= 767\r\n ? Object.assign(style, {\r\n bottom: 0,\r\n magin: 0\r\n })\r\n : { ...style }\r\n return (\r\n <Row form style={customizeStyle}>\r\n <Col\r\n md={12}\r\n style={{ textAlign: screenWidth <= 767 ? \"right\" : \"left\" }}\r\n >\r\n <Button\r\n color=\"primary\"\r\n size=\"sm\"\r\n className=\"px-4 pl-1 mr-2 ml-3\"\r\n onClick={onConfirm}\r\n >\r\n {confirmText}\r\n </Button>\r\n <Button size=\"sm\" className=\"px-4 mr-2 ml-2\" onClick={onCancel}>\r\n {t(\"cancel\")}\r\n </Button>\r\n </Col>\r\n </Row>\r\n )\r\n}\r\n\r\nexport default DetailActionButtons\r\n","import React, { FC } from \"react\"\r\nimport { FaPlus } from \"react-icons/fa\"\r\ninterface Props {\r\n onClick: () => any\r\n}\r\n\r\nconst AddButtonIcon: FC<Props> = ({ onClick } : Props) => {\r\n return <div className=\"d-inline text-center cursor-pointer hover-opacity\" title=\"Delete\" onClick={onClick}>\r\n <FaPlus />\r\n </div>\r\n}\r\n\r\nexport default AddButtonIcon\r\n","import React, { FC } from \"react\"\r\nimport { Table } from \"reactstrap\"\r\n\r\nimport AddButtonIcon from \"../../../components/Buttons/AddButtonIcon\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\ninterface Props {\r\n onClick: any\r\n isResetPasswordTemplate: any\r\n}\r\n\r\nconst defaultparams = [\r\n { label: \"$USER_FIRST_NAME$\", meaning: \"user_first_name\" },\r\n { label: \"$USER_LAST_NAME$\", meaning: \"user_last_name\" },\r\n { label: \"$PASSWORD$\", meaning: \"password\" },\r\n { label: \"$USER_NAME$\", meaning: \"user_name\" },\r\n { label: \"$USER_EMAIL$\", meaning: \"user_email\" },\r\n { label: \"$MESSAGE$\", meaning: \"message\" },\r\n { label: \"$DOMAIN$\", meaning: \"domain\" }\r\n]\r\n\r\nconst MailSubject: FC<Props> = ({\r\n onClick,\r\n isResetPasswordTemplate\r\n}: Props) => {\r\n const {t} = useTranslation()\r\n !!isResetPasswordTemplate\r\n let params = !!isResetPasswordTemplate\r\n ? [...defaultparams, { label: \"$RESET_LINK$\", meaning: \"Reset link\" }]\r\n : defaultparams\r\n return (\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">{t(\"params\")}</th>\r\n <th className=\"align-top\">{t(\"meaning\")}</th>\r\n <th />\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {params.map(param => (\r\n <tr key={param.label}>\r\n <td className=\"align-middle\">{param.label}</td>\r\n <td className=\"align-middle\">{t(param.meaning)}</td>\r\n <td className=\"text-center align-middle\">\r\n <AddButtonIcon onClick={() => onClick(param)} />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n )\r\n}\r\n\r\nexport default MailSubject\r\n","import React, { useEffect } from \"react\"\nimport Select from \"react-select\"\nimport { setMailCategory } from \"../../redux/mailCategories/action\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport { get as getCategory } from \"../../services/mailCategoryService\"\n\nconst MailCategorySelector = (props: any) => {\n const dispatch = useDispatch()\n\n const mailCategoryList = useSelector(\n (state: any) => state.mailCategory.mailCategoryList\n )\n useEffect(() => {\n fetchMailCategory()\n }, [])\n const fetchMailCategory = async () => {\n try {\n const res = await getCategory()\n dispatch(setMailCategory(res.data.items))\n } catch (err) {\n console.error(err)\n }\n }\n const { id } = props\n const arrCategory = mailCategoryList.map((i: any) => {\n return {\n id: i.id,\n value: i.id,\n label: i.name\n }\n })\n const initValue = !!id\n ? arrCategory.find((option: any) => option.value === id) || null\n : null\n\n return <Select options={arrCategory} value={initValue} {...props} />\n}\n\nexport default MailCategorySelector\n","import React, { FC, memo } from \"react\"\r\nimport { Label } from \"reactstrap\"\r\n\r\ninterface Props {\r\n text: string\r\n className?: string\r\n}\r\n\r\nconst RequiredLabel: FC<Props> = ({ text, className }: Props) => {\r\n return (\r\n <Label className={className}>\r\n {text}\r\n <span className=\"ml-2 text-danger\">*</span>\r\n </Label>\r\n )\r\n}\r\n\r\nexport default memo(RequiredLabel)\r\n","import { useEffect } from \"react\"\r\nimport { useBlocker } from \"react-router-dom\"\r\n\r\nconst quitAlertMessage =\r\n \"You have some changes. Click OK to discard or click Cancel to continue edit, then click Update below to save your changes.\"\r\n\r\ninterface Props {\r\n when: boolean\r\n}\r\n\r\nexport default function QuitPrompt({ when }: Props) {\r\n const blocker = useBlocker(when)\r\n\r\n useEffect(() => {\r\n if (blocker.state === \"blocked\") {\r\n if (window.confirm(quitAlertMessage)) {\r\n blocker.proceed()\r\n } else {\r\n blocker.reset()\r\n }\r\n }\r\n }, [blocker])\r\n\r\n return null\r\n}\r\n","import React, { FC, Fragment } from \"react\"\n\ninterface Props {\n label: string\n onRemove: any\n}\n\nconst AttachmentFile: FC<Props> = ({ label, onRemove }: Props) => {\n return (\n <Fragment>\n <span className=\"mr-2\">{label}</span>\n <i\n className=\"fa fa-times text-danger cursor-pointer hover-opacity\"\n onClick={onRemove}\n />\n </Fragment>\n )\n}\n\nexport default AttachmentFile\n","import { BASE_URL } from \"../utils/constants\"\r\nimport { apiUpload, api } from \"./api\"\r\n\r\nconst UPLOAD_FILE_URL = `${BASE_URL}/api/file`\r\nconst SYSTEM_PROFILE = `${UPLOAD_FILE_URL}/system/profile`\r\nconst SYSTEM_STUDENT_BADGE = `${UPLOAD_FILE_URL}/system/student-badge`\r\nconst SYSTEM_CERTIFICATE = `${UPLOAD_FILE_URL}/system/certificate`\r\nconst SYSTEM_EMAIL = `${UPLOAD_FILE_URL}/system/email-attachment`\r\nconst SYSTEM_QUESTION = `${UPLOAD_FILE_URL}/system/question`\r\nconst SYSTEM_ANSWER = `${UPLOAD_FILE_URL}/system/answer`\r\nconst SYSTEM_TUTORIAL = `${UPLOAD_FILE_URL}/system/tutorial`\r\nconst CUSTOM_KEY = `${UPLOAD_FILE_URL}/custom-key`\r\nconst DELETE_FILE = `${UPLOAD_FILE_URL}/delete-file`\r\nconst DELETE_FOLDER = `${UPLOAD_FILE_URL}/delete-folder`\r\nconst CREATE_FOLDER = `${UPLOAD_FILE_URL}/create-folder`\r\nconst RENAME_FILE = `${UPLOAD_FILE_URL}/rename-file`\r\n\r\nexport const uploadFile = (formData: FormData) =>\r\n apiUpload.post(UPLOAD_FILE_URL, formData)\r\nexport const systemStudentBadge = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_STUDENT_BADGE, formData)\r\nexport const systemCertificateUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_CERTIFICATE, formData)\r\nexport const systemProfileUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_PROFILE, formData)\r\nexport const systemEmailUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_EMAIL, formData)\r\nexport const systemQuestionUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_QUESTION, formData)\r\nexport const systemAnswerUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_ANSWER, formData)\r\nexport const systemTutorialUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_TUTORIAL, formData)\r\nexport const customKeyUpload = (formData: FormData) =>\r\n apiUpload.post(CUSTOM_KEY, formData)\r\nexport const deleteFile = (key: string) =>\r\n api.delete(`${DELETE_FILE}?key=${key}`)\r\nexport const deleteFolder = (key: string) =>\r\n api.delete(`${DELETE_FOLDER}?key=${key}`)\r\nexport const createFolder = (prefix: string, folderName: string) =>\r\n api.post(CREATE_FOLDER, {\r\n prefix: prefix || \"\",\r\n folderName: folderName\r\n })\r\nexport const renameFile = (key: string, name: string) =>\r\n api.post(RENAME_FILE, { key: key, name: name })\r\n","import getFileUrl from \"../utils/getFileUrl\"\nimport { ANSWER_EDITOR_HEIGHT } from \"./../utils/constants\"\nimport {\n systemEmailUpload,\n systemQuestionUpload,\n systemAnswerUpload,\n systemTutorialUpload\n} from \"../services/fileServices\"\n\nconst config: any = {\n height: 500,\n menubar: false,\n force_br_newlines: true,\n force_p_newlines: false,\n branding: false,\n convert_urls: false,\n plugins: `advlist autolink lists link image charmap print preview anchor\n searchreplace visualblocks code fullscreen\n insertdatetime media table paste code help wordcount media`,\n toolbar: `undo redo | formatselect | bold italic backcolor | \\\n alignleft aligncenter alignright alignjustify | \\\n bullist numlist outdent indent | removeformat | image`,\n paste_data_images: true\n}\n\nconst email = {\n ...config,\n images_upload_handler: async function (blobInfo: any, success: Function) {\n const imageFile = new FormData()\n imageFile.append(\"file\", blobInfo.blob(), blobInfo.filename())\n try {\n const { data } = await systemEmailUpload(imageFile)\n success(getFileUrl(data.key))\n } catch (err) {\n return\n }\n }\n}\n\nconst question = {\n ...config,\n images_upload_handler: async function (blobInfo: any, success: any) {\n const imageFile = new FormData()\n imageFile.append(\"file\", blobInfo.blob(), blobInfo.filename())\n try {\n const { data } = await systemQuestionUpload(imageFile)\n success(getFileUrl(data.key))\n } catch (err) {\n return\n }\n }\n}\n\nconst answer = {\n ...config,\n height: ANSWER_EDITOR_HEIGHT,\n images_upload_handler: async function (blobInfo: any, success: Function) {\n const imageFile = new FormData()\n imageFile.append(\"file\", blobInfo.blob(), blobInfo.filename())\n try {\n const { data } = await systemAnswerUpload(imageFile)\n success(getFileUrl(data.key))\n } catch (err) {\n return\n }\n }\n}\n\nconst tutorial = {\n ...config,\n height: ANSWER_EDITOR_HEIGHT,\n media_live_embeds: true,\n plugins: `advlist autolink lists link image charmap print preview anchor\n searchreplace visualblocks code fullscreen\n insertdatetime media table paste code help wordcount media`,\n toolbar: `undo redo | formatselect | bold italic backcolor | \\\n alignleft aligncenter alignright alignjustify | \\\n bullist numlist outdent indent | removeformat | image | media`,\n images_upload_handler: async function (blobInfo: any, success: Function) {\n const imageFile = new FormData()\n imageFile.append(\"file\", blobInfo.blob(), blobInfo.filename())\n try {\n const { data } = await systemTutorialUpload(imageFile)\n success(getFileUrl(data.key))\n } catch (err) {\n return\n }\n },\n file_picker_callback: function (cb: any) {\n var input = document.createElement(\"input\")\n input.setAttribute(\"type\", \"file\")\n input.setAttribute(\"accept\", \"video/*\")\n input.onchange = async function (e: any) {\n const file = e.target.files[0]\n const { name } = file\n const formData = new FormData()\n formData.append(\"file\", file, name)\n\n const { data } = await systemTutorialUpload(formData)\n cb(getFileUrl(data.key))\n }\n\n input.click()\n }\n}\n\nconst editorConfig = {\n email,\n question,\n answer,\n tutorial\n}\n\nexport default editorConfig\n","import { useState, useEffect, useCallback } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useNavigate } from \"react-router-dom\"\r\n\r\nimport { setLoading, setAlert } from \"../../../redux/commons/action\"\r\nimport {\r\n getById,\r\n update,\r\n create,\r\n getTinyMCEKeyApi\r\n} from \"../../../services/emailTemplateService\"\r\nimport { systemEmailUpload } from \"../../../services/fileServices\"\r\n\r\ntype Attachment = {\r\n id?: number\r\n name: string\r\n key: string\r\n}\r\n\r\ntype EmailTemplateDetail = {\r\n id?: number\r\n subject: string\r\n categoryId: number\r\n body: string\r\n attachments: Attachment[]\r\n}\r\n\r\nconst initValue: EmailTemplateDetail = {\r\n id: 0,\r\n subject: \"\",\r\n categoryId: 0,\r\n body: \"\",\r\n attachments: []\r\n}\r\n\r\nconst EMAIL_TEMPLATE_LIST_URL = \"/admin/email-template\"\r\nconst TITLE = \"Email template detail\"\r\nconst MAX_FILES_SIZE = 4194304\r\n\r\nconst useEmailTemplateDetail = (id?: number) => {\r\n let editorRef: any\r\n const dispatch = useDispatch()\r\n const navigate = useNavigate()\r\n const [emailTemplateDetail, setEmailTemplateDetail] =\r\n useState<EmailTemplateDetail>(initValue)\r\n const [edited, setEdited] = useState<boolean>(false)\r\n const setEditedTrue = async () => {\r\n localStorage.setItem(window.location.href, \"true\")\r\n setEdited(true)\r\n }\r\n\r\n const [removedFiles, setRemovedFiles] = useState<string[]>([])\r\n const [fileUpload, setFileUpload] = useState<any>([])\r\n const [tinyMCEKey, setTinyMCEKey] = useState<string>(\"\")\r\n\r\n useEffect(() => {\r\n !!id && getData()\r\n }, [id])\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const res = await getById(id as number)\r\n setEmailTemplateDetail({\r\n id: res.data.id,\r\n subject: res.data.subject,\r\n categoryId: res.data.category.id,\r\n body: res.data.body,\r\n attachments: res.data.attachments || []\r\n })\r\n document.title = res.data.subject\r\n editorRef &&\r\n editorRef.editor.execCommand(\r\n \"mceSetContent\",\r\n false,\r\n res.data.body\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [id])\r\n\r\n const getTinyMCEKey = async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await getTinyMCEKeyApi()\r\n const data = res.data\r\n\r\n if (!!data) {\r\n setTinyMCEKey(data.key)\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || \"Get key failed\"\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }\r\n\r\n const setEditorRef = (node: any) => (editorRef = node)\r\n\r\n const addParams = (params: any) => {\r\n editorRef &&\r\n editorRef.editor.execCommand(\r\n \"mceInsertContent\",\r\n false,\r\n ` ${params.label}`\r\n )\r\n }\r\n\r\n const backToList = useCallback(() => {\r\n navigate(EMAIL_TEMPLATE_LIST_URL)\r\n }, [])\r\n\r\n const confirmData = useCallback(\r\n async (data: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n if (!!fileUpload && !!fileUpload.length) {\r\n const fileData: any = await uploadFiles()\r\n const newAttachments = fileData.map((item: any) => ({\r\n key: item.data.key,\r\n name: item.data.name\r\n }))\r\n data.attachments = [...data.attachments, ...newAttachments]\r\n }\r\n const next = !!id ? update : create\r\n\r\n await next(data)\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `${\r\n !!id ? \"Update\" : \"Create\"\r\n } template successfully`\r\n })\r\n )\r\n\r\n backToList()\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [id, fileUpload]\r\n )\r\n\r\n const onAttachFile = () => {\r\n const inputs = document.getElementsByClassName(\"input-attachment\")\r\n const newInput = document.createElement(\"input\")\r\n const emailDetail = document.getElementById(\"email-detail\")\r\n emailDetail?.append(newInput)\r\n newInput.className = \"input-attachment\"\r\n newInput.id = `inputAttachment-${inputs.length + 1}`\r\n newInput.type = \"file\"\r\n newInput.style.display = \"none\"\r\n newInput.setAttribute(\"multiple\", \"multiple\")\r\n newInput.addEventListener(\"change\", updateAttachment)\r\n newInput.click()\r\n }\r\n\r\n const updateAttachment = () => {\r\n const files: any = []\r\n let totalSize = 0\r\n\r\n const attachmentInputs: any =\r\n document.getElementsByClassName(\"input-attachment\")\r\n\r\n for (const attachmentInput of attachmentInputs) {\r\n for (const file of attachmentInput.files) {\r\n totalSize += file.size\r\n\r\n if (totalSize > MAX_FILES_SIZE) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Max attachment size is 4MB\"\r\n })\r\n )\r\n totalSize -= file.size\r\n attachmentInput.remove()\r\n }\r\n }\r\n }\r\n\r\n for (const attachmentInput of attachmentInputs) {\r\n for (const file of attachmentInput.files) {\r\n const { name } = file\r\n\r\n if (\r\n !removedFiles.includes(file) &&\r\n !files.some((file: any) => file.name === name)\r\n ) {\r\n files.push({ name, inputId: attachmentInput.id })\r\n }\r\n }\r\n\r\n continue\r\n }\r\n\r\n setFileUpload(files)\r\n }\r\n\r\n const removeAttachment = (inputId: string, fileName: string) => {\r\n if (\r\n fileUpload.filter((item: any) => item.inputId === inputId)\r\n .length === 1\r\n ) {\r\n const thisInput = document.getElementById(inputId)\r\n thisInput?.remove()\r\n\r\n let newRemovedFile = fileUpload.filter(\r\n (removed: any) => removed.inputId === inputId\r\n )\r\n\r\n fileUpload.filter(\r\n (item: any) => item.inputId !== newRemovedFile.inputId\r\n )\r\n removedFiles.push(newRemovedFile)\r\n\r\n setRemovedFiles([...removedFiles])\r\n setFileUpload([...fileUpload])\r\n return\r\n }\r\n\r\n setRemovedFiles([...removedFiles, fileName])\r\n }\r\n\r\n useEffect(() => {\r\n updateAttachment()\r\n }, [removedFiles])\r\n\r\n const uploadFiles = async () => {\r\n const attachmentInputs: any =\r\n document.getElementsByClassName(\"input-attachment\")\r\n\r\n const promises: Promise<any>[] = []\r\n\r\n for (const attachmentInput of attachmentInputs) {\r\n for (const file of attachmentInput.files) {\r\n const { name } = file\r\n const formData = new FormData()\r\n formData.append(\"file\", file, name)\r\n promises.push(systemEmailUpload(formData))\r\n }\r\n }\r\n\r\n return Promise.all(promises)\r\n }\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n getTinyMCEKey()\r\n setEdited(false)\r\n if (!!localStorage.getItem(window.location.href))\r\n localStorage.removeItem(window.location.href)\r\n }, [])\r\n\r\n return {\r\n emailTemplateDetail,\r\n setEditorRef,\r\n addParams,\r\n backToList,\r\n confirmData,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n onAttachFile,\r\n updateAttachment,\r\n fileUpload,\r\n removeAttachment,\r\n tinyMCEKey\r\n }\r\n}\r\n\r\nexport default useEmailTemplateDetail\r\n","import * as yup from \"yup\"\n\nconst schema = yup.object({\n subject: yup.string().required(\"Template subject is required\"),\n categoryId: yup\n .number()\n .required(\"Template category is required\")\n .test(\n \"test category id\",\n \"Template category is required\",\n (value: number) => value >= 1\n ),\n comment: yup.string(),\n body: yup.string().required(\"Template body is required\")\n})\n\nexport default schema\n","import React, { FC } from \"react\"\r\nimport { Row, Col, Input, Label, Button } from \"reactstrap\"\r\nimport { useParams } from \"react-router-dom\"\r\nimport { Editor } from \"@tinymce/tinymce-react\"\r\nimport { Formik } from \"formik\"\r\n\r\nimport DetailActionButtons from \"../../../components/Buttons/DetailActionButtons\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport MailParam from \"../components/MailParam\"\r\nimport MailCategorySelector from \"../../../components/Selectors/MailCategorySelectors\"\r\nimport RequiredLabel from \"../../../components/Labels/RequiredLabel\"\r\nimport QuitPrompt from \"../../../components/Others/QuitPrompt\"\r\nimport AttachmentFile from \"../components/AttachmentFile\"\r\nimport editorConfig from \"../../../configs/editorConfig\"\r\n\r\nimport useEmailTemplateDetail from \"../hooks/useEmailTemplateDetail\"\r\nimport schema from \"../configs/emailTemplateSchema\"\r\nimport { useSelector } from \"react-redux\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport NotFound from \"../../Commons/NotFound\"\r\n\r\nconst CREATE_TEMPLATE_HEADER = \"create_email_template\"\r\nconst EDIT_TEMPLATE_HEADER = \"edit_email_template\"\r\n\r\nconst EmailTemplateDetail: FC = () => {\r\n const { id } = useParams<{ id: string }>()\r\n if (!id) {\r\n return <NotFound />\r\n }\r\n const { t } = useTranslation()\r\n const {\r\n emailTemplateDetail,\r\n setEditorRef,\r\n addParams,\r\n backToList,\r\n confirmData,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n onAttachFile,\r\n fileUpload,\r\n removeAttachment\r\n } = useEmailTemplateDetail(parseInt(id))\r\n\r\n const header = !!id ? t(EDIT_TEMPLATE_HEADER) : t(CREATE_TEMPLATE_HEADER)\r\n\r\n const confirmText = !!id ? t(\"update\") : t(\"create\")\r\n\r\n const mailCategoryList = useSelector(\r\n (state: any) => state.mailCategory.mailCategoryList\r\n )\r\n // console.log({tinyMCEKey})\r\n return (\r\n <Formik\r\n initialValues={emailTemplateDetail}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={values => {\r\n confirmData(values)\r\n setEdited(false)\r\n if (!!localStorage.getItem(window.location.href))\r\n localStorage.removeItem(window.location.href)\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n setFieldValue,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit\r\n } = formikProps\r\n\r\n return (\r\n <div\r\n className=\"animated fadeIn detail-buttons-padding\"\r\n id=\"email-detail\"\r\n >\r\n <QuitPrompt when={edited} />\r\n <h5\r\n className=\"mb-2\"\r\n style={{ textTransform: \"capitalize\" }}\r\n >\r\n {header}\r\n </h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={8}>\r\n <RequiredLabel text={t(\"mail_subject\")} />\r\n <Input\r\n placeholder={t(\"mail_subject_nm\")}\r\n name=\"subject\"\r\n value={values.subject}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"subject\")}\r\n className=\"selector-input\"\r\n />\r\n {touched.subject && errors.subject && (\r\n <ErrorHandler text={errors.subject} />\r\n )}\r\n </Col>\r\n <Col md={4}>\r\n <RequiredLabel text={t(\"category\")} />\r\n <MailCategorySelector\r\n onChange={(e: any) => {\r\n setFieldValue(\"categoryId\", e.value)\r\n setEditedTrue()\r\n }}\r\n id={values.categoryId}\r\n />\r\n {touched.categoryId && errors.categoryId && (\r\n <ErrorHandler text={errors.categoryId} />\r\n )}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n <Row>\r\n <Col md={12} className=\"mb-2\">\r\n <RequiredLabel text={t(\"mail_body\")} />\r\n {(emailTemplateDetail.body || !id) && (\r\n <Editor\r\n tinymceScriptSrc=\"/tinymce/tinymce.min.js\"\r\n ref={node => setEditorRef(node)}\r\n initialValue={\r\n emailTemplateDetail.body\r\n }\r\n init={editorConfig.email}\r\n onEditorChange={content => {\r\n setFieldValue(\r\n \"body\",\r\n content\r\n )\r\n setEditedTrue()\r\n }}\r\n />\r\n )}\r\n {touched.body && errors.body && (\r\n <ErrorHandler text={errors.body} />\r\n )}\r\n </Col>\r\n <Col md={12}>\r\n <Row>\r\n <Col md={3}>\r\n <Button\r\n color=\"link\"\r\n size=\"sm\"\r\n className=\"pl-0\"\r\n onClick={onAttachFile}\r\n >\r\n {t(\"add_attachment\")}\r\n </Button>\r\n </Col>\r\n <Col md={12}>\r\n <Row>\r\n {values.attachments.map(\r\n attachment => (\r\n <Col\r\n md={2}\r\n key={\r\n attachment.key\r\n }\r\n >\r\n <AttachmentFile\r\n label={\r\n attachment.name\r\n }\r\n onRemove={() =>\r\n setFieldValue(\r\n \"attachments\",\r\n values.attachments.filter(\r\n a =>\r\n a.name !==\r\n attachment.name\r\n )\r\n )\r\n }\r\n />\r\n </Col>\r\n )\r\n )}\r\n {fileUpload.map(\r\n (\r\n file: any,\r\n index: number\r\n ) => (\r\n <Col\r\n md={2}\r\n key={index}\r\n className=\"d-flex align-items-center\"\r\n >\r\n <AttachmentFile\r\n label={\r\n file.name\r\n }\r\n onRemove={() =>\r\n removeAttachment(\r\n file.inputId,\r\n file.name\r\n )\r\n }\r\n />\r\n </Col>\r\n )\r\n )}\r\n </Row>\r\n </Col>\r\n </Row>\r\n </Col>\r\n </Row>\r\n </Col>\r\n <Col md={4}>\r\n <Label>{t(\"mail_params\")}</Label>\r\n <MailParam\r\n onClick={(param: any) => addParams(param)}\r\n isResetPasswordTemplate={\r\n values.categoryId ==\r\n (mailCategoryList &&\r\n mailCategoryList.length > 0 &&\r\n mailCategoryList.filter(\r\n (c: any) =>\r\n c.name == \"Reset password\"\r\n )[0].id)\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n <DetailActionButtons\r\n confirmText={confirmText}\r\n onConfirm={handleSubmit}\r\n onCancel={backToList}\r\n />\r\n </div>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default EmailTemplateDetail\r\n","import React, {\r\n forwardRef,\r\n useState,\r\n useCallback,\r\n useImperativeHandle\r\n} from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Button } from \"reactstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { setAlert, setModal } from \"../../redux/commons/action\"\r\n\r\nconst CommonModal = (props: any, ref: any) => {\r\n const {\r\n header,\r\n children,\r\n onConfirm,\r\n onCancel,\r\n confirmText,\r\n cancelText,\r\n noFooter,\r\n size,\r\n edited,\r\n setEditedFalse\r\n } = props\r\n const [isOpen, setIsOpen] = useState(false)\r\n const dispatch = useDispatch()\r\n const { t } = useTranslation()\r\n const showEditedWarningModal = (cb: any) => {\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: \"Are you sure to cancel?\",\r\n onConfirm: async () => {\r\n cb()\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n }\r\n const onToggle = () => {\r\n !!setEditedFalse && setEditedFalse()\r\n setIsOpen(!isOpen)\r\n !!isOpen && !!onCancel && onCancel()\r\n }\r\n const toggle = useCallback(\r\n (isShowConfirm?: boolean, cb?: any) => {\r\n if (!!isShowConfirm) {\r\n showEditedWarningModal(() => {\r\n onToggle()\r\n !!cb && cb()\r\n })\r\n } else {\r\n onToggle()\r\n !!cb && cb()\r\n }\r\n },\r\n [isOpen]\r\n )\r\n\r\n const cancel = useCallback(() => {\r\n toggle(!!edited, () => {\r\n onCancel && onCancel()\r\n })\r\n }, [toggle, onCancel, edited])\r\n\r\n useImperativeHandle(ref, () => ({\r\n toggle\r\n }))\r\n\r\n return (\r\n <Modal isOpen={isOpen} toggle={() => toggle(!!edited)} size={size}>\r\n <ModalHeader toggle={() => toggle(!!edited)}>{header}</ModalHeader>\r\n <ModalBody>{children}</ModalBody>\r\n {!noFooter && (\r\n <ModalFooter className=\"text-right\">\r\n {onConfirm && (\r\n <Button color=\"primary\" onClick={onConfirm}>\r\n {confirmText || t(\"confirm\")}\r\n </Button>\r\n )}\r\n <Button onClick={cancel}>\r\n {cancelText || t(\"cancel\")}\r\n </Button>\r\n </ModalFooter>\r\n )}\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default forwardRef(CommonModal)\r\n","import React from \"react\"\nimport Select from \"react-select\"\n\nconst CustomSelector = ({\n defaultValue,\n options,\n isDisabled,\n scrollBottom,\n ...rest\n}: any) => {\n const initValue =\n defaultValue !== null && typeof defaultValue !== \"undefined\"\n ? options.find((option: any) => option.value === defaultValue) ||\n null\n : null\n return (\n <Select\n isDisabled={isDisabled}\n options={options}\n value={initValue}\n menuPlacement={scrollBottom ? \"top\" : \"auto\"}\n {...rest}\n />\n )\n}\n\nexport default CustomSelector\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\nimport { Filter } from \"../types/Filter\"\r\n\r\nconst SKILL_URL = `${BASE_URL}/api/Skill`\r\n\r\nexport const get = (filter?: Filter) => api.get(SKILL_URL, { params: filter })\r\n\r\nexport const getById = (id: number) => api.get(`${SKILL_URL}/${id}`)\r\n\r\nexport const create = (data: any) => api.post(SKILL_URL, data)\r\n\r\nexport const update = (data: any) => api.put(`${SKILL_URL}/${data.id}`, data)\r\n\r\nexport const remove = (id: number) => api.delete(`${SKILL_URL}/${id}`)\r\n","import React, { useState, useEffect } from \"react\"\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\nimport { get } from \"../../../services/skillService\"\r\n\r\nconst SkillSelector = (props: any) => {\r\n const [skillList, setSkillList] = useState([])\r\n\r\n useEffect(() => {\r\n fetchSkill()\r\n }, [])\r\n\r\n const fetchSkill = async () => {\r\n try {\r\n const res = await get()\r\n setSkillList(res.data.items)\r\n } catch (err) {\r\n console.error(err.message)\r\n }\r\n }\r\n const { id, isDisabled } = props\r\n const arrSkill = skillList.map((i: any) => {\r\n return {\r\n id: i.id,\r\n value: i.id,\r\n label: i.path ? `${i.path}/${i.name}` : i.name\r\n }\r\n })\r\n\r\n return (\r\n <CustomSelector\r\n options={arrSkill}\r\n defaultValue={id}\r\n {...props}\r\n isDisabled={isDisabled}\r\n />\r\n )\r\n}\r\n\r\nexport default SkillSelector\r\n","import React, { forwardRef } from \"react\"\r\nimport { Row, Col, Input, Label } from \"reactstrap\"\r\nimport { Formik } from \"formik\"\r\nimport * as yup from \"yup\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport RequiredLabel from \"../../../components/Labels/RequiredLabel\"\r\nimport CommonModal from \"../../../components/Modals/CommonModal\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport SkillSelector from \"./SkillSelector\"\r\n\r\nconst schema = yup.object({\r\n name: yup.string().required(\"Name is required\"),\r\n description: yup.string()\r\n})\r\n\r\nconst SkillDetailModal = (props: any, ref: any) => {\r\n const {\r\n header,\r\n confirmText,\r\n onConfirm,\r\n skillDetail,\r\n onCancel,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse,\r\n isDisabled\r\n } = props\r\n const { t } = useTranslation()\r\n\r\n return (\r\n <Formik\r\n initialValues={skillDetail}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={(values, actions) => {\r\n onConfirm(values)\r\n actions.resetForm()\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit,\r\n resetForm\r\n } = formikProps\r\n\r\n return (\r\n <CommonModal\r\n header={header}\r\n confirmText={confirmText}\r\n onConfirm={handleSubmit}\r\n ref={ref}\r\n onCancel={() => {\r\n onCancel()\r\n resetForm()\r\n }}\r\n edited={edited}\r\n setEdited={setEdited}\r\n setEditedFalse={setEditedFalse}\r\n >\r\n <Row>\r\n <Col md={12} className=\"mb-2\">\r\n <RequiredLabel text={t(\"name\")} />\r\n <Input\r\n name=\"name\"\r\n placeholder={t(\"name\")}\r\n value={values.name}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"name\")}\r\n />\r\n {touched.name && errors.name && (\r\n <ErrorHandler\r\n text={errors.name as string}\r\n />\r\n )}\r\n </Col>\r\n <Col md={12} className=\"mb-2\">\r\n <Label>{t(\"description\")}</Label>\r\n <Input\r\n type=\"textarea\"\r\n rows={5}\r\n name=\"description\"\r\n placeholder={t(\"description\")}\r\n value={values.description}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"description\")}\r\n />\r\n </Col>\r\n <Col md={12} className=\"mb-2\">\r\n <Label>{t(\"parent_category\")}</Label>\r\n <SkillSelector\r\n isDisabled={isDisabled}\r\n onChange={(e: any) => {\r\n formikProps.setFieldValue(\r\n \"parentSkillId\",\r\n e.value\r\n )\r\n setEditedTrue()\r\n }}\r\n id={values.parentSkillId}\r\n />\r\n </Col>\r\n </Row>\r\n </CommonModal>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default forwardRef(SkillDetailModal)\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSkillList = createAction<any>(\"skills/setSkillList\")\r\n","import { useEffect, useCallback } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { setSkillList } from \"../../../redux/skills/action\"\r\nimport { setLoading, setModal, setAlert } from \"../../../redux/commons/action\"\r\n\r\nimport { get, remove } from \"../../../services/skillService\"\r\nimport useFilters from \"../../../hooks/useFilters\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\nconst TITLE = \"Skill list\"\r\nconst useSkillList = () => {\r\n const skillList = useSelector((state: any) => state.skills.skillList)\r\n const totalItems = useSelector((state: any) => state.skills.totalItems)\r\n const {t} = useTranslation()\r\n const { filters, changeFilters } = useFilters()\r\n\r\n const dispatch = useDispatch()\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await get(filters)\r\n const { items, totalItems } = res.data\r\n dispatch(setSkillList({ skillList: items, totalItems }))\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [dispatch, filters])\r\n\r\n const removeData = useCallback(\r\n (id: number) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: t(\"do_you_want_to_remove_this_skill\"),\r\n onConfirm: async () => {\r\n try {\r\n await remove(id)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: t(\"remove_skill_successfully\")\r\n })\r\n )\r\n changeFilters({ currentPage: 1 })\r\n } catch (error) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n error.response?.data?.title ||\r\n error.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n }\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n },\r\n [filters]\r\n )\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [filters])\r\n\r\n return {\r\n skillList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n getData,\r\n removeData\r\n }\r\n}\r\n\r\nexport default useSkillList\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setAlert, setLoading } from \"../../../redux/commons/action\"\r\nimport { create, getById, update } from \"../../../services/skillService\"\r\n\r\ntype SkillDetail = {\r\n name: string\r\n description: string\r\n path: string\r\n parentSkillId?: number | null\r\n}\r\n\r\nconst initValue: SkillDetail = {\r\n name: \"\",\r\n description: \"\",\r\n path: \"\",\r\n parentSkillId: null\r\n}\r\n\r\nconst useSkillDetail = () => {\r\n const dispatch = useDispatch()\r\n\r\n const [id, setId] = useState(0)\r\n const [skillDetail, setSkillDetail] = useState<SkillDetail>(initValue)\r\n const [edited, setEdited] = useState<boolean>(false)\r\n const setEditedTrue = async () => {\r\n localStorage.setItem(window.location.href, \"true\")\r\n setEdited(true)\r\n }\r\n const setEditedFalse = async () => {\r\n !!localStorage.getItem(window.location.href) &&\r\n localStorage.removeItem(window.location.href)\r\n setEdited(false)\r\n }\r\n useEffect(() => {\r\n !!id ? getData() : setSkillDetail(initValue)\r\n }, [id])\r\n\r\n const reset = () => {\r\n setId(0)\r\n setSkillDetail(initValue)\r\n }\r\n\r\n useEffect(() => {\r\n setEditedFalse()\r\n }, [])\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await getById(id)\r\n setSkillDetail(res.data)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [id])\r\n\r\n const confirmData = useCallback(\r\n async (values: any, cb: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const next = !!id ? update : create\r\n await next(values)\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `${\r\n !!id ? \"Update\" : \"Create\"\r\n } skill successfully`\r\n })\r\n )\r\n\r\n cb && cb()\r\n !!id && setId(0)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [id, skillDetail]\r\n )\r\n\r\n return {\r\n id,\r\n setId,\r\n skillDetail,\r\n confirmData,\r\n initValue,\r\n reset,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse\r\n }\r\n}\r\n\r\nexport default useSkillDetail\r\n","import React, { FC, useRef } from \"react\"\r\nimport { Row, Col, Table } from \"reactstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport DeleteButtonIcon from \"../../../components/Buttons/DeleteButtonIcon\"\r\nimport AddButton from \"../../../components/Buttons/AddButton\"\r\nimport LinkEditButton from \"../../../components/Buttons/LinkEditButton\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport QuitPrompt from \"../../../components/Others/QuitPrompt\"\r\n\r\nimport SkillDetailModal from \"../components/SkillDetailModal\"\r\n\r\nimport useSkillList from \"../hooks/useSkillList\"\r\nimport useSkillDetail from \"../hooks/useSkillDetail\"\r\n\r\nconst SkillList: FC = () => {\r\n const modal = useRef<any>(null)\r\n const { t } = useTranslation()\r\n const {\r\n skillList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n getData,\r\n removeData\r\n } = useSkillList()\r\n\r\n const {\r\n id,\r\n setId,\r\n skillDetail,\r\n confirmData,\r\n reset,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse\r\n } = useSkillDetail()\r\n\r\n const openModal = (skillId?: number) => {\r\n !!skillId ? setId(skillId) : setId(0)\r\n modal && modal.current && modal.current.toggle()\r\n }\r\n\r\n const onConfirm = (values: any) => {\r\n confirmData(values, () => {\r\n modal && modal.current && modal.current.toggle()\r\n getData()\r\n })\r\n setEditedFalse()\r\n }\r\n\r\n const onRemove = (id: number) => {\r\n removeData(id)\r\n }\r\n\r\n const onCancel = () => reset()\r\n\r\n return (\r\n <div className=\"fadeIn animated\">\r\n <SkillDetailModal\r\n ref={modal}\r\n header={!!id ? t(\"edit_skill\") : t(\"create_skill\")}\r\n confirmText={!!id ? t(\"update\") : t(\"create\")}\r\n onCancel={onCancel}\r\n onConfirm={onConfirm}\r\n skillDetail={skillDetail}\r\n edited={edited}\r\n setEdited={setEdited}\r\n setEditedTrue={setEditedTrue}\r\n setEditedFalse={setEditedFalse}\r\n isDisabled={id}\r\n />\r\n <QuitPrompt when={edited} />\r\n <Row className=\"my-2\">\r\n <Col md={4}>\r\n <AddButton\r\n text={t(\"create_skill\")}\r\n onClick={() => openModal()}\r\n />\r\n </Col>\r\n <Col\r\n md={4}\r\n className=\"d-flex align-items-center justify-content-end\"\r\n >\r\n {t(\"total_of_skills\")}: {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n {skillList && skillList.length > 0 ? (\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">{t('name')}</th>\r\n <th className=\"align-top\">{t('description')}</th>\r\n <th className=\"text-center\">{t('action')}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {skillList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n <LinkEditButton\r\n label={record.name}\r\n onClick={() =>\r\n openModal(record.id)\r\n }\r\n />\r\n {!!record.path && (\r\n <p className=\"mb-0 pl-3\">\r\n <i>{record.path}</i>\r\n </p>\r\n )}\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.description}\r\n </td>\r\n <td className=\"text-center align-middle\">\r\n <DeleteButtonIcon\r\n onClick={() =>\r\n onRemove(record.id)\r\n }\r\n />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n ) : (\r\n <EmptyDataAlert label={t(\"skill\")} />\r\n )}\r\n </Col>\r\n <Col md={8} className=\"text-right\">\r\n <CustomPagination\r\n totalRecordCount={totalItems}\r\n filters={filters}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SkillList\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setUserList = createAction<any>(\"users/setUserList\")\r\n\r\nexport const setStudentList = createAction<any>(\"users/setStudentList\")\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\nimport { Filter, UserRosterFilter } from \"../types/Filter\"\r\nimport { ResetPasswordDto } from \"../types/user\"\r\nimport { AssignStudentDto, StudentFilter, UserFilter, UserFilterField } from \"../containers/User/constants/types\"\r\n\r\nconst USER_URL = `${BASE_URL}/api/user`\r\nconst STUDENT_URL = `${BASE_URL}/api/student`\r\nconst CHANGE_PASSWORD = `${BASE_URL}/api/Account/changePassword`\r\nconst ACCOUNT_URL = `${BASE_URL}/api/account`\r\nconst EDU_USER_URL = `${BASE_URL}/api/User`\r\nconst ONE_ROSTER_USER_URL = `${BASE_URL}/api/usersOneRoster`\r\nconst MAPPING_ROSTER_USER_URL = `${BASE_URL}/api/mappingRosterUsers`\r\n\r\nexport const get = (filter: Filter) =>\r\n api.get(`${USER_URL}`, { params: filter })\r\n\r\nexport const getRosterUser = (filter: UserFilter) =>\r\n api.get(`${MAPPING_ROSTER_USER_URL}`, { params: filter })\r\n\r\nexport const getFilterRosterUser = (filter: UserFilterField) =>\r\n api.get(`${MAPPING_ROSTER_USER_URL}/filters`, { params: filter })\r\n\r\nexport const getStudentFilter = (filter: UserFilterField) =>\r\n api.get(`${EDU_USER_URL}/student-filters`, { params: filter })\r\n\r\nexport const getRosterUserExport = (filter: UserFilter) =>\r\n api.get(`${EDU_USER_URL}/export-csv`, { params: filter })\r\n\r\nexport const getById = (id: string) => api.get(`${USER_URL}/detail-user/${id}`)\r\n\r\nexport const create = (data: any) => api.post(`${USER_URL}`, data)\r\n\r\nexport const update = (data: any) => api.put(`${USER_URL}/${data.id}`, data)\r\n\r\nexport const updateStatusAll = (ids: string[]) => api.put(`${USER_URL}/update-status-all`, ids)\r\n\r\nexport const remove = (id: string) => api.delete(`${EDU_USER_URL}/delete-item-user/${id}`)\r\n\r\nexport const getAllStudent = (filter?: Filter) =>\r\n api.get(`${STUDENT_URL}`, { params: filter })\r\n\r\nexport const changePassword = (formData: any) =>\r\n api.post(CHANGE_PASSWORD, formData)\r\n\r\nexport const forgotChangePassword = (data: any) =>\r\n api.post(`${ACCOUNT_URL}/forgotchangepassword`, data)\r\n\r\nexport const switchAccountUser = (id: string) => api.post(`${EDU_USER_URL}/switch-user/${id}`)\r\n\r\nexport const getRosterUsersApi = (filter: UserRosterFilter) => api.get(`${ONE_ROSTER_USER_URL}`, {\r\n params: filter\r\n})\r\n\r\nexport const getRosterUserBySourcedIdApi = (sourcedId: string) => api.get(`${ONE_ROSTER_USER_URL}/${sourcedId}`)\r\n\r\nexport const syncRosterUsersApi = () => api.put(`${EDU_USER_URL}/sync-roster-user`)\r\n\r\nexport const resetPasswordForAdmin = (data: ResetPasswordDto) => api.post(`${ACCOUNT_URL}/reset-password-for-admin`, data)\r\nexport const getAssignStudentApi = (filter: StudentFilter) => api.get(`${EDU_USER_URL}/student-assign`, {\r\n params: filter\r\n})\r\n\r\nexport const getCounselors = () =>\r\n api.get(`${BASE_URL}/api/counselor`)\r\n\r\nexport const getAssistants = () =>\r\n api.get(`${BASE_URL}/api/assistant`)\r\n\r\nexport const getSecondaryTeachers = () =>\r\n api.get(`${BASE_URL}/api/secondaryTeacher`)\r\n\r\nexport const getTeachers = (filters: any) =>\r\n api.get(`${USER_URL}/all/teacher`, {\r\n params: filters\r\n })\r\n\r\nexport const assignStudentsApi =\r\n (data?: AssignStudentDto[]) => api.post(`${USER_URL}/student-assign`, data)\r\n\r\nexport const userRoleHasData = (userId: string) =>\r\n api.get(`${BASE_URL}/api/user/check-role-data/${userId}`)\r\n\r\nexport const addGradeToStudent = (userId: string, grade: string) =>\r\n api.post(`${EDU_USER_URL}/change-grade-for-student`, { studentUserId: userId, gradeLevel: grade })\r\n\r\nexport const changeMultiTeacherOfStudent = (params: any) =>\r\n api.put(`${USER_URL}/change-multi-teachers`, params)\r\nexport const changeMultiCounselorsOfStudent = (params: any) =>\r\n api.put(`${USER_URL}/change-multi-counselors`, params)\r\nexport const changeAssistantOfStudents = (params: any) =>\r\n api.put(`${USER_URL}/change-assistants`, params)\r\nexport const changeSecondaryTeacherOfStudents = (params: any) =>\r\n api.put(`${USER_URL}/change-secondary-teachers`, params)\r\n\r\nexport const changeGradeOfStudents = (id: string, gradeLevel: string) =>\r\n api.put(`${USER_URL}/update-user-grade/${id}`, {gradeLevel})\r\n\r\nexport const getRosterAllUserId = (filter: UserFilter) =>\r\n api.get(`${MAPPING_ROSTER_USER_URL}/all-userId`, { params: filter })\r\n\r\nexport const postRequestResendMail = (data: any) =>\r\n api.post(`${ACCOUNT_URL}/re-send-welcome-mail`, data)\r\n\r\nexport const removeBulkStaff = (data: any) => api.post(`${EDU_USER_URL}/remove-bulk-staff`, data)","export type User = {\r\n id: string\r\n firstName: string\r\n lastName: string\r\n firstInitial: string\r\n email: string\r\n phoneNumber: string\r\n roles: string[]\r\n dateOfBirth: string\r\n createTime: string\r\n isActive: boolean\r\n profileImageFileName: string\r\n fullName: string\r\n sourcedId: string\r\n rosterUser: RosterUser\r\n grade: string\r\n teachers: string\r\n assistants: string\r\n counselors: string\r\n eduTeachers: string\r\n supportTeachers: string\r\n}\r\n\r\nexport type RosterUser = {\r\n sourcedId: string\r\n username: string\r\n status: string\r\n givenName: string\r\n middleName: string\r\n familyName: string\r\n email: string\r\n grades: string\r\n role: string\r\n}\r\n\r\nexport type Option = {\r\n label: string\r\n value: string\r\n}\r\n\r\nexport type UserFilter = {\r\n currentPage?: number\r\n pageSize?: number\r\n searchString?: string\r\n isDescending?: boolean\r\n sortBy?: UserOrder\r\n searchBy?: SearchBy\r\n searchByStrings?: string[]\r\n isStudent?: string[]\r\n}\r\n\r\nexport type StudentFilter = {\r\n currentPage?: number\r\n pageSize?: number\r\n searchString?: string\r\n isAssigned?: boolean\r\n sortBy?: UserOrder\r\n orderBy?: string\r\n}\r\n\r\nexport type UserFilterField = {\r\n currentPage?: number\r\n pageSize?: number\r\n searchString?: string\r\n isDescending?: boolean\r\n searchBy?: SearchBy\r\n searchStringBy?: string\r\n isStudentFilter?: boolean\r\n byStudent?: boolean\r\n}\r\n\r\nexport type UserColumn = {\r\n isCenter?: boolean\r\n name: string\r\n sortBy?: UserOrder\r\n className?: string\r\n searchBy?: SearchBy\r\n getOption?: (user: any, t?: any) => FilterOption\r\n options?: FilterOption[]\r\n onSelectAll?: Function\r\n isCheckAll?: boolean\r\n}\r\n\r\nexport type StudentAssign = {\r\n studentId: number\r\n id: string\r\n email: string\r\n fullName: string\r\n gradeLevel: string\r\n phoneNumber: string\r\n isActive?: boolean\r\n dateOfBirth?: string\r\n profileImageFileName: string\r\n quote: string\r\n assistantName: string\r\n assistantEmail: string\r\n assistantUserId: string\r\n counselors: Array<ICounselor>\r\n secondaryTeacherName: string\r\n secondaryTeacherEmail: string\r\n secondaryTeacherUserId: string\r\n teachers: Array<ITeachers>\r\n}\r\n\r\nexport interface ITeachers {\r\n teacherUserId: string\r\n mainTeacherName: string\r\n mainTeacherEmail: string\r\n mainTeacherId?: number\r\n}\r\nexport interface ICounselor {\r\n counselorUserId: string\r\n counselorName: string\r\n counselorEmail: string\r\n studentId?: number\r\n}\r\n\r\nexport interface IStaffAssign {\r\n teacher: {\r\n id: string\r\n email: string\r\n }[]\r\n assistantId: string\r\n assistantEmail: string\r\n counselors: {\r\n id: string\r\n email: string\r\n }[]\r\n secondaryTeacherId: string\r\n secondaryTeacherEmail: string\r\n gradeLevel?: string\r\n}\r\n\r\nexport type Counselor = {\r\n id: string,\r\n counselorId: number,\r\n firstName: string,\r\n lastName: string,\r\n fullName: string,\r\n email: string\r\n}\r\n\r\nexport type Assistant = {\r\n id: string,\r\n assistantId: number,\r\n firstName: string,\r\n lastName: string,\r\n fullName: string,\r\n email: string\r\n}\r\n\r\nexport type SecondaryTeacher = {\r\n id: string,\r\n secondaryTeacherId: number,\r\n firstName: string,\r\n lastName: string,\r\n fullName: string,\r\n email: string\r\n}\r\n\r\nexport type Teacher = {\r\n id: string,\r\n email: string\r\n}\r\n\r\nexport interface IOptions {\r\n label: string\r\n value: string\r\n}\r\n\r\nexport type AssignStudentDto = {\r\n id: string\r\n mainTeacherUserId?: Array<string>\r\n mainTeacherEmail?: Array<string>\r\n assistantUserId?: string\r\n assistantEmail?: string\r\n counselorUserIds?: Array<string>\r\n counselorEmails?: Array<string>\r\n secondaryTeacherUserId?: string\r\n secondaryTeacherEmail?: string\r\n removeTeacherUserIds?: string[]\r\n teacherSwitchUserId?: string\r\n}\r\n\r\nexport type FilterOption = {\r\n label: string\r\n value: string\r\n}\r\n\r\nexport enum UserOrder {\r\n Id,\r\n Name,\r\n Email,\r\n Age,\r\n Role,\r\n Status,\r\n CreatedAt,\r\n RosterUser,\r\n Grade,\r\n Teacher,\r\n Assistant,\r\n Counselor,\r\n SecondaryTeacher\r\n}\r\n\r\nexport enum SearchBy {\r\n Id,\r\n Name,\r\n Email,\r\n Role,\r\n RosterUser,\r\n Status,\r\n Grade,\r\n Teacher,\r\n Assistant,\r\n Counselor,\r\n SecondaryTeacher\r\n}\r\n\r\nexport enum TeacherType {\r\n Teacher,\r\n Assistant,\r\n Counselor,\r\n SecondaryTeacher\r\n}\r\nexport type SwitchTeacherGroup = {\r\n studentId: number\r\n teacher: string,\r\n teacherChange: string\r\n}\r\nexport type SwitchAssistantGroup = {\r\n studentId: number,\r\n assistantUserId: string\r\n}\r\n\r\nexport interface IDeleteBulkModel {\r\n open: boolean\r\n onClose: () => void\r\n teachers: Option[]\r\n onChangeStaffRemove: Function\r\n switchStaffUsers: ISwitchStaffUser\r\n counselors: Option[]\r\n assistants: Option[]\r\n secondaryTeachers: Option[]\r\n onRemoveBulkStaff: Function\r\n studentUserIds?: string[]\r\n}\r\n\r\nexport interface IRemoveTeacher {\r\n teachers: Option[]\r\n onChangeStaffRemove: Function\r\n switchStaffUsers: ISwitchStaffUser\r\n}\r\n\r\nexport interface IRemoveAssistant {\r\n assistants: Option[]\r\n onChangeStaffRemove: Function\r\n switchStaffUsers: ISwitchStaffUser\r\n}\r\n\r\nexport interface IRemoveCounselor {\r\n counselors: Option[]\r\n onChangeStaffRemove: Function\r\n switchStaffUsers: ISwitchStaffUser\r\n}\r\n\r\nexport interface IRemoveSupportTeacher {\r\n secondaryTeachers: Option[]\r\n onChangeStaffRemove: Function\r\n switchStaffUsers: ISwitchStaffUser\r\n}\r\n\r\nexport interface ISwitchStaffUser {\r\n teacherRemoveUserIds: string[]\r\n teacherSwitchDataUserId: string\r\n assistantRemoveUserId: string[]\r\n assistantSwitchDataUserId: string\r\n counselorRemoveUserIds: string[]\r\n counselorSwitchDataUserId: string\r\n supportTeacherRemoveUserIds: string[]\r\n supportTeacherSwitchDataUserId: string\r\n}\r\n\r\nexport type USER_CHOICE = {\r\n id: string\r\n firstName: string\r\n lastName: string\r\n email: string\r\n fullName: string\r\n roles: string[]\r\n}","import { isMalvernCollege } from \"../../../utils/constants\";\r\nimport { IOptions, IStaffAssign, SearchBy, StudentFilter, USER_CHOICE, UserColumn, UserFilter, UserOrder } from \"./types\";\r\n\r\nexport const userOrders = {\r\n [UserOrder.Id]: \"filter-id\",\r\n [UserOrder.Name]: \"filter-name\",\r\n [UserOrder.Email]: \"filter-email\",\r\n [UserOrder.Age]: \"filter-age\",\r\n [UserOrder.Role]: \"filter-role\",\r\n [UserOrder.Status]: \"filter-status\",\r\n [UserOrder.CreatedAt]: \"filter-createdAt\",\r\n [UserOrder.RosterUser]: \"filter-roster\",\r\n [UserOrder.Grade]: \"filter-grade\",\r\n [UserOrder.Teacher]: \"filter-teacher\",\r\n [UserOrder.Assistant]: \"filter-assistant\",\r\n [UserOrder.Counselor]: \"filter-counselor\",\r\n [UserOrder.SecondaryTeacher]: \"filter-secondary\",\r\n}\r\n\r\nexport const UserColumns: UserColumn[] = [\r\n {\r\n name: \"name\",\r\n isCenter: true,\r\n sortBy: UserOrder.Name,\r\n searchBy: SearchBy.Name,\r\n className: \"align-top\",\r\n getOption: (user: string) => ({\r\n label: user || \"empty\",\r\n value: user\r\n })\r\n },\r\n {\r\n name: \"email\",\r\n isCenter: true,\r\n sortBy: UserOrder.Email,\r\n searchBy: SearchBy.Email,\r\n className: \"align-top\",\r\n getOption: (user: string) => ({\r\n label: user || \"empty\",\r\n value: user\r\n })\r\n },\r\n {\r\n name: \"age\",\r\n isCenter: true,\r\n sortBy: UserOrder.Age,\r\n className: \"align-top\"\r\n },\r\n {\r\n name: \"role\",\r\n isCenter: true,\r\n sortBy: UserOrder.Role,\r\n searchBy: SearchBy.Role,\r\n className: \"align-top\",\r\n getOption: (user: string) => ({\r\n label: !!user ? user?.replace?.(\"SecondaryTeacher\", \"SupportTeacher\") : \"empty\",\r\n value: user\r\n })\r\n },\r\n {\r\n name: \"active_status\",\r\n isCenter: true,\r\n sortBy: UserOrder.Status,\r\n searchBy: SearchBy.Status,\r\n className: \"align-top\",\r\n options: [\r\n {\r\n label: \"Active\",\r\n value: \"true\"\r\n },\r\n {\r\n label: \"Inactive\",\r\n value: \"false\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"created_time\",\r\n isCenter: true,\r\n sortBy: UserOrder.CreatedAt,\r\n className: \"align-top\"\r\n },\r\n {\r\n name: \"information_roster_sourced_id_full_name_email\",\r\n isCenter: true,\r\n sortBy: UserOrder.RosterUser,\r\n searchBy: SearchBy.RosterUser,\r\n className: \"align-top\",\r\n getOption: (user: string) => ({\r\n label: user || \"empty\",\r\n value: user\r\n })\r\n },\r\n {\r\n name: \"impersonate\",\r\n isCenter: true,\r\n className: \"align-top\"\r\n },\r\n {\r\n name: \"delete\",\r\n isCenter: true,\r\n className: \"align-top\"\r\n }\r\n]\r\n\r\nexport const DEFAULT_PAGE_SIZE = {\r\n label: \"10\",\r\n value: 10\r\n}\r\n\r\nexport const DEFAULT_FILTER: UserFilter = {\r\n searchString: \"\",\r\n currentPage: 1,\r\n pageSize: DEFAULT_PAGE_SIZE.value\r\n}\r\n\r\nexport const DEFAULT_STUDENT_FILTER: StudentFilter = {\r\n searchString: \"\",\r\n currentPage: 1,\r\n pageSize: DEFAULT_PAGE_SIZE.value\r\n}\r\n\r\nexport const DEFAULT_FILTER_POPOVER: UserFilter = {\r\n currentPage: 1,\r\n pageSize: 200\r\n}\r\n\r\nexport const CSV_PREFIX = \"data:text/csv;charset=utf-8,\";\r\n\r\nexport const initialStaffBulk: IStaffAssign = {\r\n assistantId: \"\",\r\n counselors: [],\r\n secondaryTeacherId: \"\",\r\n teacher: [],\r\n assistantEmail: \"\",\r\n secondaryTeacherEmail: \"\"\r\n}\r\n\r\nexport const initAssignStd = {\r\n studentId: 0,\r\n id: '',\r\n email: '',\r\n fullName: '',\r\n gradeLevel: '',\r\n phoneNumber: '',\r\n isActive: true,\r\n dateOfBirth: '',\r\n profileImageFileName: '',\r\n quote: '',\r\n assistantName: '',\r\n assistantEmail: '',\r\n assistantUserId: '',\r\n counselors: [],\r\n secondaryTeacherName: '',\r\n secondaryTeacherEmail: '',\r\n secondaryTeacherUserId: '',\r\n teachers: []\r\n}\r\n\r\nexport const GRADE_DEFAULT = [\r\n { label: \"K\", value: \"K\" },\r\n { label: \"G\", value: \"G\" },\r\n { label: \"1\", value: \"1\" },\r\n { label: \"2\", value: \"2\" },\r\n { label: \"3\", value: \"3\" },\r\n { label: \"4\", value: \"4\" },\r\n { label: \"5\", value: \"5\" },\r\n { label: \"6\", value: \"6\" },\r\n { label: \"7\", value: \"7\" },\r\n { label: \"8\", value: \"8\" },\r\n { label: \"9\", value: \"9\" },\r\n { label: \"10\", value: \"10\" },\r\n { label: \"11\", value: \"11\" },\r\n { label: \"12\", value: \"12\" },\r\n ...(isMalvernCollege ? [{ label: \"12/13\", value: \"12/13\" }] : []),\r\n { label: \"13\", value: \"13\" },\r\n]\r\nexport const GRADE = [\r\n \"K\",\r\n \"G\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\",\r\n \"5\",\r\n \"6\",\r\n \"7\",\r\n \"8\",\r\n \"9\",\r\n \"10\",\r\n \"11\",\r\n \"12\",\r\n ...(isMalvernCollege ? [\"12/13\"] : []),\r\n \"13\",\r\n]\r\n\r\nexport const gradeOptions: IOptions[] = [\r\n {\r\n label: \"K\",\r\n value: \"K\"\r\n },\r\n {\r\n label: \"G\",\r\n value: \"G\"\r\n },\r\n {\r\n label: \"1\",\r\n value: \"1\"\r\n },\r\n {\r\n label: \"2\",\r\n value: \"2\"\r\n },\r\n {\r\n label: \"3\",\r\n value: \"3\"\r\n },\r\n {\r\n label: \"4\",\r\n value: \"4\"\r\n },\r\n {\r\n label: \"5\",\r\n value: \"5\"\r\n },\r\n {\r\n label: \"6\",\r\n value: \"6\"\r\n },\r\n {\r\n label: \"7\",\r\n value: \"7\"\r\n },\r\n {\r\n label: \"8\",\r\n value: \"8\"\r\n },\r\n {\r\n label: \"9\",\r\n value: \"9\"\r\n },\r\n {\r\n label: \"10\",\r\n value: \"10\"\r\n },\r\n {\r\n label: \"11\",\r\n value: \"11\"\r\n },\r\n {\r\n label: \"12\",\r\n value: \"12\"\r\n },\r\n ...(isMalvernCollege ? [{ label: \"12/13\", value: \"12/13\" }] : []),\r\n {\r\n label: \"13\",\r\n value: \"13\"\r\n },\r\n]\r\n\r\nexport const initStaffDeleteBulk = {\r\n assistantRemoveUserId: [],\r\n counselorRemoveUserIds: [],\r\n teacherRemoveUserIds: [],\r\n teacherSwitchDataUserId: \"\",\r\n assistantSwitchDataUserId: \"\",\r\n counselorSwitchDataUserId: \"\",\r\n supportTeacherRemoveUserIds: [],\r\n supportTeacherSwitchDataUserId: \"\"\r\n}\r\n\r\nexport const initialUserChoice: USER_CHOICE = {\r\n id: \"\",\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n fullName: \"\",\r\n roles: []\r\n}","import { useState } from \"react\"\r\nimport { UserFilter } from \"../constants/types\"\r\nimport { DEFAULT_FILTER } from \"../constants/constants\"\r\n\r\nconst useFilters = () => {\r\n const [filters, setFilters] = useState<UserFilter>(DEFAULT_FILTER)\r\n const changeFilters = (updatedFilters: any) => {\r\n const newFilters = {\r\n ...filters,\r\n ...updatedFilters\r\n }\r\n if (!!newFilters.searchString && !!updatedFilters.searchString && updatedFilters.searchString != filters.searchString) {\r\n newFilters.currentPage = 1\r\n }\r\n\r\n setFilters(newFilters)\r\n }\r\n\r\n return { filters, setFilters, changeFilters }\r\n}\r\n\r\nexport default useFilters\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { useNavigate } from \"react-router-dom\"\r\n// import { setUser } from \"../../../index\"\r\nimport { setLoading, setModal, setAlert, setUser } from \"../../../redux/commons/action\"\r\nimport { setUserList } from \"../../../redux/users/action\"\r\nimport { getRosterUser, remove, switchAccountUser, syncRosterUsersApi, getRosterAllUserId } from \"../../../services/userService\"\r\nimport { logIn } from \"../../../services/accountService\"\r\nimport { ROLES, ACCESS_TOKEN, NOTIFICATION_ALERT_KEY, IS_USER_SESSION_BROWSER } from \"../../../utils/constants\"\r\nimport useFilters from \"./userFilters\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { LoginType } from \"../../Login/constant/types\"\r\n\r\nconst USER_URL = \"/admin/user\"\r\nconst CREATE_USER_URL = \"/admin/create-user\"\r\nconst TITLE = \"User list\"\r\nconst HOMEPAGE_TEACHER = \"/home\"\r\nconst HOMEPAGE_STUDENT = \"/home\"\r\nconst HOMEPAGE_ADMIN = \"/admin/home\"\r\nconst HOMEPAGE_PARENT = \"/parent\"\r\nconst HOMEPAGE_DISTRICT = \"/admin/schools\"\r\nconst HOMEPAGE_EDU_TEACHER = \"/list-student\"\r\n\r\nconst useUserList = () => {\r\n const navigate = useNavigate()\r\n const query = new URLSearchParams(location.search)\r\n const queryName = query.get(\"query\")\r\n const userList = useSelector((state: any) => state.users.userList)\r\n const totalItems = useSelector((state: any) => state.users.totalItems)\r\n const { filters, changeFilters } = useFilters()\r\n const fullName = !!queryName ? queryName : \"\"\r\n const [userIds, setUserIds] = useState<string[]>([])\r\n\r\n const isDistrict = window.location.host.includes(\"-district\")\r\n const dispatch = useDispatch()\r\n const { t } = useTranslation()\r\n\r\n const onSelectUser = (userId: string) => {\r\n const existUser = userIds.find(r => r == userId)\r\n !existUser ? setUserIds(userIds.concat([userId])) : setUserIds(userIds.filter(r => r != userId))\r\n }\r\n\r\n const onSelectAllUser = useCallback(\r\n async () => {\r\n if(userIds.length != 0) {\r\n setUserIds([])\r\n return\r\n }\r\n if (filters.searchBy !== undefined && filters.searchByStrings !== undefined && filters.searchByStrings.length === 0) {\r\n dispatch(setUserList({ userList: [], totalItems: 0 }))\r\n return\r\n }\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await getRosterAllUserId(filters)\r\n setUserIds(res.data || [])\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [dispatch, filters, userIds]\r\n )\r\n\r\n const getData = useCallback(\r\n async () => {\r\n if (filters.searchBy !== undefined && filters.searchByStrings !== undefined && filters.searchByStrings.length === 0) {\r\n dispatch(setUserList({ userList: [], totalItems: 0 }))\r\n return\r\n }\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await getRosterUser(filters)\r\n const { items, totalItems } = res.data\r\n for (const user of items) {\r\n user.roles = user.roles.map((r: string) => r != ROLES.EDUTEACHER ? r : \"EduTeacher\")\r\n }\r\n dispatch(setUserList({ userList: items, totalItems }))\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [dispatch, filters]\r\n )\r\n\r\n const handleSyncRosterUsers = async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await syncRosterUsersApi()\r\n if (res.data) {\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `${res.data} user${res.data > 1 ? \"s have\" : \" has\"} been synchronized`\r\n })\r\n )\r\n getData()\r\n } else {\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `Users synchronized`\r\n })\r\n )\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }\r\n\r\n const rosterUserInfo = (record: any) => {\r\n if (!record) return ''\r\n const result = []\r\n const { sourcedId, rosterUser } = record\r\n !!sourcedId && !!rosterUser && result.push(sourcedId)\r\n\r\n if (rosterUser) {\r\n const { givenName, middleName, familyName, email } = rosterUser\r\n const names = []\r\n !!familyName && names.push(familyName)\r\n !!middleName && names.push(middleName)\r\n !!givenName && names.push(givenName)\r\n result.push(names.join(\" \") || \"\")\r\n result.push(email || \"\")\r\n }\r\n\r\n return result.join(\" / \")\r\n }\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n changeFilters({\r\n ...filters,\r\n searchString: fullName\r\n })\r\n }, [fullName])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [JSON.stringify(filters)])\r\n\r\n const removeData = useCallback(\r\n (id: string) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: t(\"do_you_want_to_remove_this_user\"),\r\n onConfirm: async () => {\r\n await remove(id)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Remove user successfully\"\r\n })\r\n )\r\n if (filters.currentPage !== 1) changeFilters({ currentPage: 1 })\r\n else getData()\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n },\r\n [JSON.stringify(filters)]\r\n )\r\n\r\n const redirectLoginUser = (res: any) => {\r\n const isSessionUserBrowser = sessionStorage.getItem(IS_USER_SESSION_BROWSER)\r\n const {\r\n token,\r\n id,\r\n firstName,\r\n lastName,\r\n roles,\r\n email,\r\n profileImageFileName,\r\n } = res.data;\r\n if(!isSessionUserBrowser) {\r\n localStorage.setItem(ACCESS_TOKEN, token)\r\n } else {\r\n sessionStorage.setItem(ACCESS_TOKEN, token)\r\n }\r\n if (roles.includes(\"Admin\")) {\r\n localStorage.setItem(\"ROLES\", \"Admin\")\r\n }\r\n localStorage.removeItem(NOTIFICATION_ALERT_KEY)\r\n dispatch(\r\n setUser({\r\n id,\r\n firstName,\r\n lastName,\r\n roles,\r\n email,\r\n profileImageFileName\r\n })\r\n )\r\n if (isDistrict) {\r\n navigate(HOMEPAGE_DISTRICT)\r\n } else if (roles.includes(\"Admin\")) {\r\n navigate(HOMEPAGE_ADMIN)\r\n } else if (roles.includes(\"Teacher\") || roles.includes(\"Assistant\")) {\r\n navigate(HOMEPAGE_TEACHER)\r\n } else if (roles.includes(\"Student\")) {\r\n navigate(HOMEPAGE_STUDENT)\r\n } else if (roles.includes(\"Parent\")) {\r\n navigate(HOMEPAGE_PARENT)\r\n } else if (roles.includes(\"EduTeacher\")) {\r\n navigate(HOMEPAGE_EDU_TEACHER)\r\n } else if (roles.includes(\"Counselor\") || roles.includes(\"SecondaryTeacher\")) {\r\n navigate(HOMEPAGE_TEACHER)\r\n }\r\n }\r\n const switchUser = useCallback(\r\n async (id: string) => {\r\n try {\r\n const res = await switchAccountUser(id);\r\n const data = res.data;\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: t(\"do_you_want_to_impersonate_this_user\"),\r\n onConfirm: async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const req = {\r\n email: data.email,\r\n password: \"default\",\r\n accessToken: data.token,\r\n loginType: LoginType.Impersonate\r\n }\r\n const res = await logIn(req)\r\n localStorage.clear();\r\n redirectLoginUser(res);\r\n } catch (err) {\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n }\r\n dispatch(setLoading(false))\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n },\r\n [filters]\r\n )\r\n\r\n const reDirectDetailPage = (id?: number) => {\r\n const url = !!id ? `${USER_URL}/${id}` : CREATE_USER_URL\r\n navigate(url)\r\n }\r\n return {\r\n userList,\r\n totalItems,\r\n filters,\r\n queryName,\r\n fullName,\r\n getData,\r\n removeData,\r\n changeFilters,\r\n reDirectDetailPage,\r\n switchUser,\r\n handleSyncRosterUsers,\r\n rosterUserInfo,\r\n userIds,\r\n onSelectAllUser,\r\n onSelectUser\r\n }\r\n}\r\n\r\nexport default useUserList\r\n","import React, {\r\n memo,\r\n useState,\r\n useEffect,\r\n useCallback,\r\n CSSProperties\r\n} from \"react\"\r\nimport { Input } from \"reactstrap\"\r\n\r\ninterface Props {\r\n initValue: string\r\n onSearch: (searchString?: string) => any\r\n placeholder?: string\r\n className?: string\r\n style?: CSSProperties\r\n}\r\n\r\nconst SearchBox = ({\r\n initValue,\r\n onSearch,\r\n placeholder = \"Type something to search\",\r\n className = \"\",\r\n style = {}\r\n}: Props) => {\r\n const [searchString, setSearchString] = useState(initValue)\r\n useEffect(() => {\r\n setSearchString(initValue)\r\n }, [initValue])\r\n\r\n const onKeyUp = useCallback(\r\n (e: any) => {\r\n e.key === \"Enter\" && onSearch(searchString)\r\n },\r\n [searchString, onSearch]\r\n )\r\n\r\n return (\r\n <Input\r\n placeholder={placeholder}\r\n value={searchString}\r\n onChange={e => setSearchString(e.target.value)}\r\n onKeyUp={onKeyUp}\r\n className={className}\r\n style={style}\r\n />\r\n )\r\n}\r\n\r\nexport default memo<Props>(SearchBox)\r\n","import React, { CSSProperties } from \"react\"\r\n\r\nimport AddButton from \"../Buttons/AddButton\"\r\nimport SearchBox from \"./SearchBox\"\r\n\r\ninterface Props {\r\n text: string\r\n onClick: () => void\r\n initValue: string\r\n onSearch: (searchString?: string) => void\r\n placeholder: string\r\n}\r\n\r\nconst searchInputStyle: CSSProperties = {\r\n height: 38\r\n}\r\n\r\nconst SearchBoxContainer = ({\r\n text,\r\n initValue,\r\n onClick,\r\n onSearch,\r\n placeholder = \"Type something to search\"\r\n}: Props) => {\r\n return (\r\n <div className=\"d-flex align-items-center\">\r\n <div>\r\n <AddButton text={text} onClick={onClick} />\r\n </div>\r\n <div className=\"flex-grow-1 ml-2\">\r\n <SearchBox\r\n initValue={initValue}\r\n onSearch={onSearch}\r\n placeholder={placeholder}\r\n style={searchInputStyle}\r\n />\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SearchBoxContainer\r\n","import { format, parseISO } from \"date-fns\"\r\nimport { DATE_MIN_VALUE } from \"../utils/constants\"\r\n\r\nexport default (time: string, FORMAT?: string) => {\r\n if (time === DATE_MIN_VALUE) return \"\"\r\n try {\r\n const date = parseISO(time)\r\n return format(date, FORMAT || \"yyyy-MM-dd\")\r\n } catch {\r\n return \"\"\r\n }\r\n}\r\n","import React, { CSSProperties, FC } from \"react\"\r\nimport { FaSyncAlt } from \"react-icons/fa\"\r\nimport { Button } from \"reactstrap\"\r\n\r\nconst buttonTextStyle: CSSProperties = {\r\n fontWeight: 500\r\n}\r\n\r\nconst buttonStyle: CSSProperties = {\r\n height: 38\r\n}\r\n\r\ninterface Props {\r\n onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void\r\n className?: string\r\n text: string\r\n}\r\n\r\nconst SyncButtonIcon: FC<Props> = ({\r\n text,\r\n onClick,\r\n className = \"\"\r\n}: Props) => {\r\n return (\r\n <Button\r\n onClick={onClick}\r\n color=\"primary\"\r\n style={buttonStyle}\r\n className={`d-flex align-items-center ${className}`}\r\n >\r\n <FaSyncAlt />\r\n <span className=\"ml-2\" style={buttonTextStyle}>\r\n {text}\r\n </span>\r\n </Button>\r\n )\r\n}\r\n\r\nexport default SyncButtonIcon\r\n","import { useEffect } from \"react\"\r\n\r\nconst useClickOutside = (wrapperRef: any, onClickOutside?: () => void) => {\r\n useEffect(() => {\r\n function handleClickOutside(event: any) {\r\n if (\r\n wrapperRef.current &&\r\n !wrapperRef.current.contains(event.target)\r\n ) {\r\n onClickOutside?.()\r\n }\r\n }\r\n document.addEventListener(\"mousedown\", handleClickOutside)\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside)\r\n }\r\n }, [wrapperRef.current])\r\n}\r\n\r\nexport default useClickOutside\r\n","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\"\r\nimport useClickOutside from \"../hooks/useClickOutside\"\r\nimport { FilterOption, SearchBy, UserFilter, UserOrder } from \"../constants/types\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { PopoverProps } from \"reactstrap\"\r\n\r\ninterface Props extends PopoverProps {\r\n filters?: UserFilter\r\n sortBy: UserOrder\r\n searchBy?: SearchBy\r\n users: string[]\r\n defaultOptions?: FilterOption[]\r\n selectedOptions?: string[]\r\n searchKey: string\r\n onChangeSearchKey: (value: string) => void\r\n onOptionsChange?: (value?: string[], searchBy?: SearchBy) => void\r\n onSearch?: (search: string, searchBy: SearchBy) => void\r\n onClose?: () => void\r\n onFilter?: () => void\r\n onChangeFilters?: (filter: UserFilter) => void\r\n getOption?: (user: any, t?: any) => FilterOption\r\n}\r\n\r\nconst useFilterPopover = (props: Props) => {\r\n const {\r\n isOpen,\r\n sortBy,\r\n filters,\r\n users,\r\n searchBy,\r\n defaultOptions,\r\n selectedOptions,\r\n searchKey,\r\n onChangeSearchKey,\r\n onOptionsChange,\r\n onSearch,\r\n onClose,\r\n onChangeFilters,\r\n getOption\r\n } = props\r\n\r\n const [sOptions, setSOptions] = useState<any[]>()\r\n const [filteredOptions, setFilteredOptions] = useState<FilterOption[]>([])\r\n const ref = useRef<HTMLDivElement>(null)\r\n const inputRef = useRef<any>(null)\r\n\r\n useClickOutside(ref, onClose)\r\n\r\n const { t } = useTranslation()\r\n\r\n const handleSearch = useCallback(\r\n () => {\r\n if (!isOpen) return\r\n const searchString = searchKey?.trim?.() ?? \"\"\r\n searchBy != undefined && !defaultOptions && onSearch?.(searchString, searchBy)\r\n searchBy != undefined && !!defaultOptions && setFilteredOptions(defaultOptions.filter(i => i.label.toLowerCase().includes(searchString.toLowerCase())))\r\n },\r\n [searchBy, searchKey, JSON.stringify(defaultOptions), isOpen]\r\n )\r\n\r\n const debounceSearch = () => {\r\n if (!!inputRef.current) clearTimeout(inputRef.current)\r\n inputRef.current = setTimeout(handleSearch, 500)\r\n }\r\n\r\n const handleChangeSearchKey = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const value = e.target.value\r\n onChangeSearchKey(value)\r\n }\r\n\r\n const handleApplyFilter = useCallback(() => {\r\n onOptionsChange?.(sOptions, searchBy)\r\n onClose?.()\r\n }, [JSON.stringify(sOptions)])\r\n\r\n const handleOptionSelected = useCallback((e?: any) => {\r\n const value = e.target.value ?? \"\"\r\n let newOptions = sOptions ?? []\r\n let index = newOptions.indexOf(value)\r\n\r\n if (index > -1) {\r\n newOptions.splice(index, 1);\r\n } else {\r\n newOptions = [...newOptions, value]\r\n }\r\n setSOptions(newOptions == undefined ? newOptions : [...newOptions])\r\n }, [JSON.stringify(sOptions)])\r\n\r\n const handleOptionSelectedAll = useCallback((e?: any) => {\r\n const value = e.target.checked\r\n if (!value) setSOptions([])\r\n else setSOptions(undefined)\r\n }, [])\r\n\r\n const handleSortDesc = useCallback(() => {\r\n onChangeFilters?.({\r\n ...filters,\r\n sortBy: sortBy,\r\n isDescending: true\r\n })\r\n onClose?.()\r\n }, [JSON.stringify(filters), searchBy])\r\n\r\n const handleSortAsc = useCallback(() => {\r\n onChangeFilters?.({\r\n ...filters,\r\n sortBy: sortBy,\r\n isDescending: false\r\n })\r\n onClose?.()\r\n }, [JSON.stringify(filters), searchBy])\r\n\r\n const options = useMemo(() => {\r\n if (!getOption) return []\r\n return users.map(i => getOption(i, t))\r\n }, [JSON.stringify(users), JSON.stringify(getOption)])\r\n\r\n const isAscending = filters?.isDescending == false && filters.sortBy === sortBy\r\n const isDescending = !!filters?.isDescending && filters.sortBy === sortBy\r\n\r\n useEffect(() => {\r\n if (filters?.searchBy !== searchBy) setSOptions(undefined)\r\n else setSOptions(selectedOptions)\r\n }, [JSON.stringify(selectedOptions), filters?.searchBy])\r\n\r\n useEffect(() => {\r\n setFilteredOptions(defaultOptions || [])\r\n }, [JSON.stringify(defaultOptions)])\r\n\r\n useEffect(() => {\r\n debounceSearch()\r\n }, [searchKey, isOpen])\r\n\r\n return {\r\n ref,\r\n options,\r\n inputRef,\r\n sOptions,\r\n isAscending,\r\n isDescending,\r\n filteredOptions,\r\n searchKey,\r\n handleSearch,\r\n handleApplyFilter,\r\n handleOptionSelected,\r\n handleOptionSelectedAll,\r\n handleSortDesc,\r\n handleSortAsc,\r\n handleChangeSearchKey\r\n }\r\n}\r\n\r\nexport default useFilterPopover","import React, { FC } from \"react\"\r\nimport { AiOutlineSortAscending, AiOutlineSortDescending } from \"react-icons/ai\"\r\nimport { BiSearchAlt2 } from \"react-icons/bi\"\r\nimport {\r\n Label,\r\n Popover,\r\n PopoverBody,\r\n PopoverProps,\r\n Input,\r\n FormGroup,\r\n Button\r\n} from \"reactstrap\"\r\nimport styles from \"../../../styles.module.scss\"\r\nimport {\r\n FilterOption,\r\n SearchBy,\r\n UserFilter,\r\n UserOrder\r\n} from \"../constants/types\"\r\nimport useFilterPopover from \"../hooks/useFilterPopover\"\r\n\r\ninterface Props extends PopoverProps {\r\n filters?: UserFilter\r\n sortBy: UserOrder\r\n searchBy?: SearchBy\r\n users: string[]\r\n defaultOptions?: FilterOption[]\r\n selectedOptions?: string[]\r\n searchKey: string\r\n onChangeSearchKey: (value: string) => void\r\n onOptionsChange?: (value?: string[], searchBy?: SearchBy) => void\r\n onSearch?: (search: string, searchBy: SearchBy) => void\r\n onClose?: () => void\r\n onFilter?: () => void\r\n onChangeFilters?: (filter: UserFilter) => void\r\n getOption?: (user: any, t?: any) => FilterOption\r\n}\r\nconst FilterPopover: FC<Props> = props => {\r\n const {\r\n defaultOptions,\r\n onClose,\r\n getOption\r\n } = props\r\n\r\n const {\r\n ref,\r\n inputRef,\r\n options,\r\n sOptions,\r\n isAscending,\r\n isDescending,\r\n filteredOptions,\r\n searchKey,\r\n handleChangeSearchKey,\r\n handleApplyFilter,\r\n handleOptionSelected,\r\n handleOptionSelectedAll,\r\n handleSortDesc,\r\n handleSortAsc\r\n } = useFilterPopover(props)\r\n \r\n return (\r\n <Popover {...props} hideArrow>\r\n <PopoverBody className={`pb-3`}>\r\n <div ref={ref} className={styles[\"popover\"]}>\r\n <div\r\n className={`d-flex flex-column ${styles[\"popover__sort\"]}`}\r\n >\r\n <Label className=\"font-weight-bold\">Sort</Label>\r\n <div\r\n className={`px-1 ${styles[\"popover__sort__item\"]} ${\r\n isAscending &&\r\n styles[\"popover__sort__item--active\"]\r\n }`}\r\n onClick={handleSortAsc}\r\n >\r\n <AiOutlineSortAscending className=\"mr-1\" />\r\n Ascending\r\n </div>\r\n <div\r\n className={`px-1 mt-1 ${\r\n styles[\"popover__sort__item\"]\r\n } ${\r\n isDescending &&\r\n styles[\"popover__sort__item--active\"]\r\n }`}\r\n onClick={handleSortDesc}\r\n >\r\n <AiOutlineSortDescending className=\"mr-1\" />\r\n Descending\r\n </div>\r\n </div>\r\n\r\n {(typeof getOption != 'undefined' || !!defaultOptions) && (\r\n <React.Fragment>\r\n <div className=\"border border-top-1 border-bottom-0 mx-1 my-2\"></div>\r\n <div className=\"d-flex flex-column\">\r\n <Label className=\"font-weight-bold\">\r\n Filter\r\n </Label>\r\n <div className={`position-relative px-1 ${styles[\"popover__search\"]}`}>\r\n <BiSearchAlt2\r\n className={`position-absolute ${styles[\"popover__search__icon\"]}`}\r\n />\r\n <Input\r\n ref={inputRef}\r\n className={styles[\"popover__search__input\"]}\r\n value={searchKey}\r\n onChange={handleChangeSearchKey}\r\n />\r\n </div>\r\n <div\r\n className={`mx-1 mt-2 p-2 bg-light ${styles[\"popover__options\"]}`}\r\n >\r\n <FormGroup\r\n className=\"d-flex align-items-center\"\r\n check\r\n >\r\n <Input\r\n type=\"checkbox\"\r\n onChange={handleOptionSelectedAll}\r\n checked={sOptions == undefined}\r\n />{\" \"}\r\n <Label check>(Select all)</Label>\r\n </FormGroup>\r\n {!!getOption &&\r\n !defaultOptions &&\r\n options.map((i: FilterOption) => (\r\n <FormGroup\r\n key={i.value}\r\n className=\"d-flex align-items-center\"\r\n check\r\n >\r\n <Input\r\n type=\"checkbox\"\r\n value={i.value}\r\n onChange={handleOptionSelected}\r\n checked={sOptions?.includes(i.value) || sOptions == undefined}\r\n />{\" \"}\r\n <Label check>{i.label}</Label>\r\n </FormGroup>\r\n ))}\r\n {!!defaultOptions &&\r\n filteredOptions.map((i: FilterOption) => (\r\n <FormGroup\r\n key={i.value}\r\n className=\"d-flex align-items-center\"\r\n check\r\n >\r\n <Input\r\n type=\"checkbox\"\r\n value={i.value}\r\n onChange={handleOptionSelected}\r\n checked={sOptions?.includes(i.value) || sOptions == undefined}\r\n />{\" \"}\r\n <Label check>{i.label}</Label>\r\n </FormGroup>\r\n ))}\r\n </div>\r\n </div>\r\n <div className=\"d-flex justify-content-end mt-3\">\r\n <Button\r\n color=\"primary\"\r\n className=\"mr-2\"\r\n size=\"sm\"\r\n onClick={handleApplyFilter}\r\n >\r\n Apply Filter\r\n </Button>\r\n <Button\r\n color=\"secondary\"\r\n size=\"sm\"\r\n onClick={onClose}\r\n >\r\n Cancel\r\n </Button>\r\n </div>\r\n </React.Fragment>\r\n )}\r\n </div>\r\n </PopoverBody>\r\n </Popover>\r\n )\r\n}\r\n\r\nexport default FilterPopover\r\n","import React, { useMemo, useState } from \"react\"\r\nimport { FC } from \"react\"\r\nimport { SearchBy, UserColumn, UserFilter, UserOrder } from \"../constants/types\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { BiFilterAlt } from \"react-icons/bi\"\r\nimport { HiFilter } from \"react-icons/hi\"\r\nimport FilterPopover from \"./FilterPopover\"\r\nimport { userOrders } from \"../constants/constants\"\r\nimport styles from \"../../../styles.module.scss\"\r\nimport { AiOutlineSortAscending, AiOutlineSortDescending } from \"react-icons/ai\"\r\n\r\ninterface Props {\r\n data: UserColumn\r\n popoverId?: string\r\n filters?: UserFilter\r\n searchString?: string\r\n users: string[]\r\n selectedOptions?: string[]\r\n onOptionsChange?: (value?: string[], searchBy?: SearchBy) => void\r\n onSearch?: (search: string, searchBy: SearchBy) => void\r\n onOpenFilter?: (id: string, searchBy?: SearchBy, searchStringBy?: string, sortBy?: UserOrder) => void\r\n onClose?: () => void\r\n onChangeFilters?: (filter: UserFilter) => void\r\n isCenter?: boolean,\r\n isActive?: boolean,\r\n}\r\n\r\nconst HeaderCell: FC<Props> = ({\r\n data,\r\n popoverId,\r\n filters,\r\n searchString,\r\n users,\r\n selectedOptions,\r\n onOptionsChange,\r\n onSearch,\r\n onChangeFilters,\r\n onOpenFilter,\r\n onClose,\r\n isCenter,\r\n isActive = false\r\n}) => {\r\n const { t } = useTranslation()\r\n const [searchKey, setSearchKey] = useState<string>(\"\")\r\n const id = useMemo(\r\n () => (data.sortBy != undefined ? userOrders[data.sortBy] : \"\"),\r\n [data.sortBy]\r\n )\r\n const isOpen = useMemo(() => popoverId === id, [id, popoverId])\r\n const handleOpenFilter = () => {\r\n onOpenFilter?.(id, data.searchBy, searchKey, data.sortBy)\r\n }\r\n\r\n const handleChangeSearchKey = (value: string) => {\r\n setSearchKey(value)\r\n }\r\n\r\n return (\r\n <th className={data.className}>\r\n {!!id && data.sortBy !== undefined ? (\r\n <div className={`w-100 d-flex ${!isCenter ? \"justify-content-between\" : \"justify-content-center\"} align-items-center ${styles[\"table-filter-icon\"]}`}>\r\n {t(data.name)}\r\n <div\r\n className=\"ml-2 p-1\"\r\n id={id}\r\n onClick={handleOpenFilter}\r\n style={{\r\n cursor: \"pointer\"\r\n }}\r\n >\r\n {\r\n data.sortBy !== undefined && data.sortBy === filters?.sortBy\r\n &&\r\n <span>\r\n {\r\n filters.isDescending\r\n ?\r\n <AiOutlineSortDescending />\r\n :\r\n <AiOutlineSortAscending />\r\n }\r\n </span>\r\n }\r\n\r\n {\r\n !!filters?.searchByStrings?.length && data.searchBy === filters?.searchBy\r\n ?\r\n <HiFilter color={isActive ? '#007bff' : '#242424'} />\r\n :\r\n <BiFilterAlt color={isActive ? '#007bff' : '#242424'} />\r\n }\r\n </div>\r\n <FilterPopover\r\n placement=\"bottom-end\"\r\n target={id}\r\n users={users}\r\n isOpen={isOpen}\r\n filters={filters}\r\n sortBy={data.sortBy}\r\n searchKey={searchKey}\r\n searchBy={data.searchBy}\r\n searchString={searchString}\r\n defaultOptions={data.options}\r\n selectedOptions={selectedOptions}\r\n onClose={onClose}\r\n onSearch={onSearch}\r\n getOption={data.getOption}\r\n onChangeFilters={onChangeFilters}\r\n onOptionsChange={onOptionsChange}\r\n onChangeSearchKey={handleChangeSearchKey}\r\n />\r\n </div>\r\n ) : (\r\n t(data.name)\r\n )}\r\n </th>\r\n )\r\n}\r\n\r\nexport default HeaderCell\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { SearchBy, UserFilter, UserFilterField, UserOrder } from \"../constants/types\"\r\nimport { getFilterRosterUser, getStudentFilter } from \"../../../services/userService\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setAlert } from \"../../../redux/commons/action\"\r\nimport { DEFAULT_FILTER_POPOVER, GRADE, } from \"../constants/constants\"\r\nimport { useLocation } from \"react-router-dom\"\r\n\r\ninterface Props {\r\n filters: UserFilter\r\n onChangeFilters?: (filter: UserFilter) => void\r\n isStudentFilter?: boolean\r\n teacherOptions?: any[]\r\n assistantOptions?: any[]\r\n counselorOptions?: any[]\r\n secondaryTeacherOptions?: any[]\r\n}\r\n\r\nconst useTableHeader = (props: Props) => {\r\n const {\r\n filters,\r\n onChangeFilters,\r\n isStudentFilter,\r\n teacherOptions,\r\n assistantOptions,\r\n counselorOptions,\r\n secondaryTeacherOptions\r\n } = props\r\n const [popoverId, setPopoverId] = useState<string>()\r\n const [users, setUsers] = useState<string[]>([])\r\n const [popoverFilters, setPopoverFilters] = useState<UserFilterField>({\r\n ...DEFAULT_FILTER_POPOVER,\r\n isDescending: filters.isDescending,\r\n searchString: filters.searchString\r\n })\r\n const dispatch = useDispatch()\r\n const params = useLocation()\r\n\r\n const getData = useCallback(\r\n async (byStudent?: boolean) => {\r\n try {\r\n const res = !isStudentFilter ? await getFilterRosterUser({ ...popoverFilters, byStudent }) : await getStudentFilter(popoverFilters)\r\n const items: string[] = res.data?.items || []\r\n setUsers(items)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n },\r\n [JSON.stringify(popoverFilters), isStudentFilter]\r\n )\r\n const handleFilterIcon = useCallback((id: string, searchBy?: SearchBy, searchStringBy?: string, sortBy?: UserOrder) => {\r\n setPopoverId(id)\r\n setPopoverFilters({\r\n ...popoverFilters,\r\n searchBy,\r\n searchStringBy,\r\n isDescending: filters.sortBy === sortBy ? filters.isDescending : undefined,\r\n searchString: filters.searchString\r\n })\r\n }, [JSON.stringify(popoverFilters), filters.isDescending, filters.searchString])\r\n\r\n const handleCloseFilter = () => {\r\n setPopoverId(\"\")\r\n }\r\n\r\n const handleSearch = useCallback((search: string, searchBy?: SearchBy) => {\r\n setPopoverFilters({\r\n ...popoverFilters,\r\n searchBy,\r\n searchStringBy: search\r\n })\r\n }, [JSON.stringify(popoverFilters)])\r\n\r\n const handleChangeFilters = useCallback((value?: string[], searchBy?: SearchBy) => {\r\n if (!!searchBy) {\r\n onChangeFilters?.({\r\n ...filters,\r\n [SearchBy[searchBy]]: value\r\n })\r\n }\r\n }, [JSON.stringify(filters)])\r\n\r\n useEffect(() => {\r\n if (!params.pathname.includes('users/assign-student')) return\r\n\r\n const sortAlphabetically = (arr: string[]) =>\r\n arr.sort((a, b) => a.localeCompare(b))\r\n const searchString = popoverFilters.searchStringBy?.toLowerCase() || ''\r\n\r\n if (popoverFilters.searchBy === SearchBy.Grade) {\r\n setUsers(GRADE)\r\n } else {\r\n let options: string[] = []\r\n\r\n switch (popoverFilters.searchBy) {\r\n case SearchBy.Name:\r\n getData(true)\r\n break\r\n case SearchBy.Teacher:\r\n options = teacherOptions?.map(e => e.label).filter(Boolean) || []\r\n break\r\n case SearchBy.Assistant:\r\n options = assistantOptions?.map(e => e.label).filter(Boolean) || []\r\n break\r\n case SearchBy.Counselor:\r\n options = counselorOptions?.map(e => e.label).filter(Boolean) || []\r\n break\r\n case SearchBy.SecondaryTeacher:\r\n options = secondaryTeacherOptions?.map(e => e.label).filter(Boolean) || []\r\n break\r\n }\r\n\r\n const uniqueOptions = Array.from(new Set(options))\r\n\r\n const filtered = searchString\r\n ? uniqueOptions.filter(opt =>\r\n opt.toLowerCase().includes(searchString)\r\n )\r\n : uniqueOptions\r\n\r\n const sorted = sortAlphabetically(filtered)\r\n setUsers(sorted)\r\n }\r\n }, [\r\n JSON.stringify(popoverFilters),\r\n teacherOptions,\r\n assistantOptions,\r\n counselorOptions,\r\n secondaryTeacherOptions,\r\n params.pathname\r\n ])\r\n\r\n\r\n useEffect(() => {\r\n const isLocalSearch = params.pathname.includes('users/assign-student') &&\r\n popoverFilters.searchBy !== undefined\r\n\r\n if (!isLocalSearch && popoverFilters.searchBy !== undefined) {\r\n getData()\r\n }\r\n }, [\r\n JSON.stringify(popoverFilters),\r\n params.pathname\r\n ])\r\n\r\n return {\r\n popoverFilters,\r\n popoverId,\r\n users,\r\n handleFilterIcon,\r\n handleCloseFilter,\r\n handleSearch,\r\n handleChangeFilters\r\n }\r\n}\r\n\r\nexport default useTableHeader","import React from \"react\"\r\nimport { FC } from \"react\"\r\nimport { SearchBy, UserColumn, UserFilter } from \"../constants/types\"\r\nimport HeaderCell from \"./HeaderCell\"\r\nimport useTableHeader from \"../hooks/useTableHeader\"\r\n\r\ninterface Props {\r\n headers: UserColumn[]\r\n filters: UserFilter\r\n fullName?: string\r\n onChangeFilters?: (filter: UserFilter) => void\r\n isStudentFilter?: boolean\r\n teacherOptions?: any[]\r\n assistantOptions?: any[]\r\n counselorOptions?: any[]\r\n secondaryTeacherOptions?: any[]\r\n}\r\nconst TableHeader: FC<Props> = ({\r\n headers,\r\n filters,\r\n onChangeFilters,\r\n isStudentFilter,\r\n teacherOptions = [],\r\n assistantOptions = [],\r\n counselorOptions = [],\r\n secondaryTeacherOptions = []\r\n}) => {\r\n const {\r\n popoverId,\r\n users,\r\n handleFilterIcon,\r\n handleCloseFilter,\r\n handleSearch,\r\n handleChangeFilters\r\n } = useTableHeader({\r\n filters,\r\n onChangeFilters,\r\n isStudentFilter,\r\n teacherOptions,\r\n assistantOptions,\r\n counselorOptions,\r\n secondaryTeacherOptions\r\n })\r\n\r\n const filterKeys = Object.entries(filters)\r\n .filter(([_, value]) =>\r\n value !== '' &&\r\n !(Array.isArray(value) && value.length === 0) &&\r\n value !== null &&\r\n value !== undefined\r\n )\r\n .map(([key]) => key)\r\n\r\n\r\n const enumMap = Object.entries(SearchBy)\r\n .filter(([k, __v]) => isNaN(Number(k))) as [string, number][]\r\n\r\n const activeSearchByEntries = filterKeys\r\n .map(key => enumMap.find(([k]) => k === key))\r\n .filter((item): item is [string, number] => !!item)\r\n\r\n return (\r\n <tr>\r\n {headers.map(header => {\r\n return !header.onSelectAll ? (\r\n <HeaderCell\r\n users={users}\r\n data={header}\r\n key={header.name}\r\n isCenter={header.isCenter}\r\n filters={filters}\r\n popoverId={popoverId}\r\n selectedOptions={filters.searchByStrings}\r\n onSearch={handleSearch}\r\n onClose={handleCloseFilter}\r\n onOpenFilter={handleFilterIcon}\r\n onChangeFilters={onChangeFilters}\r\n onOptionsChange={handleChangeFilters}\r\n isActive={\r\n typeof header.searchBy === 'number' && activeSearchByEntries.some(([_, value]) => value === header.searchBy)\r\n }\r\n />\r\n ) : (\r\n <th key={header.name} className={`align-middle text-center ${header.className}`}>\r\n <input\r\n type=\"checkbox\"\r\n onChange={() => header.onSelectAll?.()}\r\n checked={header.isCheckAll ?? false}\r\n />\r\n </th>\r\n )\r\n })}\r\n </tr>\r\n )\r\n}\r\n\r\nexport default TableHeader\r\n","import { useDispatch, useSelector } from \"react-redux\"\r\nimport { setAlert, setLoading } from \"../../../redux/commons/action\"\r\nimport { CSV_PREFIX } from \"../constants/constants\"\r\nimport { User, UserFilter } from \"../constants/types\"\r\nimport { getRosterUserExport } from \"../../../services/userService\"\r\nimport { DATE_MIN_VALUE } from \"../../../utils/constants\"\r\nimport { differenceInCalendarYears, parseISO } from \"date-fns\"\r\nimport utcToLocalTime from \"../../../utils/utcToLocalTime\"\r\n\r\nconst useExportUsersCsv = () => {\r\n const dispatch = useDispatch()\r\n const schoolName = useSelector((state: any) => state?.common?.user?.schoolName) || \"\"\r\n\r\n const exportUsers = async (filters: UserFilter) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await getRosterUserExport(filters)\r\n const data: User[] = res.data\r\n const encodedUri = convertDataExportUser(data)\r\n const link = document.createElement(\"a\")\r\n link.href = encodedUri\r\n link.download = `${schoolName}_Users_Report.csv`\r\n link.click()\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }\r\n\r\n const convertDataExportUser = (data: User[]): string => {\r\n let headers = \"First Name,Last Name,Email,Phone,Age,Grade,Role,Active Status,Create Time,Roster Sourced Id,Roster Status,Roster Family Name,Roster Middle Name,Roster Given Name,Roster Email,Roster Role,Roster Grades,Teachers,Assistants,Counselors,SupportTeachers,EduTeachers\\n\"\r\n const content = data.map((user: User) => {\r\n const age = user.dateOfBirth !== DATE_MIN_VALUE ? differenceInCalendarYears(\r\n new Date(),\r\n parseISO(user.dateOfBirth)\r\n ) : \"\"\r\n return `${escapeCell(user.firstName)},${escapeCell(user.lastName)},${escapeCell(user.email)},${escapeCell(user.phoneNumber)},${age},${escapeCell(user.grade)},${escapeCell(user.roles.join(\", \").replace(\"SecondaryTeacher\", \"SupportTeacher\"))},${user.isActive ? \"Active\" : \"Inactive\"},${utcToLocalTime(user?.createTime, \"yyyy-MM-DD HH:mm\")},${escapeCell(user.sourcedId)},${escapeCell(user.rosterUser?.status)},${escapeCell(user.rosterUser?.familyName)},${escapeCell(user.rosterUser?.middleName)},${escapeCell(user.rosterUser?.givenName)},${escapeCell(user.rosterUser?.email)},${escapeCell(user.rosterUser?.role)},${escapeCell(user.rosterUser?.grades)},${escapeCell(user.teachers)},${escapeCell(user.assistants)},${escapeCell(user.counselors)},${escapeCell(user.supportTeachers)},${escapeCell(user.eduTeachers)}`;\r\n }).join('\\n')\r\n return `${CSV_PREFIX}${headers}${encodeURIComponent(content)}`\r\n }\r\n\r\n const escapeCell = (value: string) => {\r\n if(!value) return \"\"\r\n return `\"${value.replace(/\"/g, '\"\"').replaceAll(/\\n/g, \" \")}\"`\r\n }\r\n\r\n return {\r\n exportUsers\r\n }\r\n}\r\n\r\nexport default useExportUsersCsv","import { api, apiUpload } from \"../services/api\"\r\nimport { BASE_URL, CsvImportType } from \"../utils/constants\"\r\n\r\nconst CSV_FILE_URL = `${BASE_URL}/api/ImportCsv/csv`\r\nconst CSV_FILE_TEACHER = `${BASE_URL}/api/Teacher`\r\n\r\nexport const downloadTemplateFile = () => api.get(`${CSV_FILE_TEACHER}/download-template-file-isb`)\r\n\r\nexport const importCSV = (formData: FormData, subFolder: string) =>\r\n apiUpload.post(`${CSV_FILE_URL}/${subFolder}`, formData)\r\n\r\nexport const importStudentCSV = (formData: FormData) =>\r\n apiUpload.post(`${CSV_FILE_TEACHER}/adminImportStudent`, formData)\r\n\r\nexport const importClassReflectionCSV = (formData: FormData) => apiUpload.post(`${CSV_FILE_URL}/importClassReflection`, formData)\r\n\r\nexport const importStudentByTeacher = (teacherId: number, formData: FormData) =>\r\n apiUpload.post(`${CSV_FILE_TEACHER}/adminImportStudentByTeacherId/${teacherId}`, formData)\r\n\r\nexport const importUsersCSV = (formData: FormData) =>\r\n apiUpload.post(`${CSV_FILE_TEACHER}/adminImport`, formData)\r\n\r\nexport const downloadTemplateFileUser = () => api.get(`${CSV_FILE_TEACHER}/download-template-file-user`)\r\nexport const validateCsvApi = (formData: FormData, type: CsvImportType) =>\r\n api.post(`${CSV_FILE_TEACHER}/validate-csv-template-student/${type}`, formData)","import { useCallback, useState } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport Papa from \"papaparse\"\r\nimport {\r\n importCSV,\r\n importClassReflectionCSV,\r\n importStudentByTeacher,\r\n importUsersCSV,\r\n downloadTemplateFileUser\r\n} from \"../../../services/csvImportService\"\r\nimport { setAlert, setLoading, setModal } from \"../../../redux/commons/action\"\r\n\r\nenum CSVType {\r\n Students = \"students\",\r\n Subjects = \"subjects\",\r\n Grades = \"grades\",\r\n Attendances = \"attendances\",\r\n ClassReflection = \"classReflection\",\r\n Others = \"others\",\r\n AllUser = \"allUser\"\r\n}\r\n\r\nexport interface Option {\r\n label: string\r\n value: number\r\n}\r\n\r\nconst id = \"csvupload\"\r\nconst initClassReflect = {\r\n teacherName: \"\",\r\n teacherEmail: \"\",\r\n studentIds: [],\r\n file: \"\"\r\n}\r\nconst useCSVImport = () => {\r\n const dispatch = useDispatch()\r\n const isLoading = useSelector((state: any) => state.common.isLoading)\r\n const [type, setType] = useState<CSVType | null>(null)\r\n const [dataFile, setDataFile] = useState<any>()\r\n const [arrStudent, setArrStudent] = useState<any>([])\r\n const [initImportReflection, setInitImportReflection] = useState<any>(\r\n initClassReflect\r\n )\r\n const [studentDataFile, setStudentDataFile] = useState<any>()\r\n const domainName = window.location.hostname\r\n const isCheckDomainIBS =\r\n domainName.includes(\"isb\") || domainName.includes(\"stage\")\r\n const [defaultTeacher, setDefaultTeacher] = useState<number>(0)\r\n const [fileName, setFileName] = useState<string>(\"\")\r\n\r\n const downloadTemplateUser = async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await downloadTemplateFileUser()\r\n var data = new Blob([res.data.content], { type: \"text/csv\" })\r\n const fileURL = window.URL.createObjectURL(data)\r\n var a = document.createElement(\"a\")\r\n a.href = fileURL\r\n a.setAttribute(\"download\", res.data.nameFile)\r\n a.click()\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Download successfully\"\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }\r\n\r\n const upload = useCallback(\r\n async (file: any) => {\r\n if (!type || !file) return\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const formData = new FormData()\r\n formData.append(\"file\", file, file.name)\r\n\r\n if (type == CSVType.AllUser) {\r\n const fileTextRaw = await file.text()\r\n\r\n let fileText = fileTextRaw.trim()\r\n const rows = fileText\r\n .split(\"\\n\")\r\n .map((row: any) => row.trim())\r\n const headerIndex = rows.findIndex((row: any) =>\r\n row.split(\",\").includes(\"FirstName\")\r\n )\r\n\r\n if (headerIndex === 0) {\r\n throw new Error(\"Invalid CSV: Missing header row.\")\r\n }\r\n\r\n fileText = rows.slice(headerIndex).join(\"\\n\")\r\n\r\n const parsedData = Papa.parse(fileText, {\r\n header: true,\r\n skipEmptyLines: true\r\n })\r\n const header = parsedData.meta.fields\r\n const dataRows = parsedData.data\r\n\r\n if (!header) {\r\n throw new Error(\"Unable to determine header from CSV file\");\r\n }\r\n\r\n const chunkSize = 20\r\n const chunks: any[] = []\r\n for (let i = 0; i < dataRows.length; i += chunkSize) {\r\n const chunkData = dataRows.slice(i, i + chunkSize)\r\n const csvChunk = Papa.unparse({\r\n fields: header,\r\n data: chunkData\r\n })\r\n chunks.push(csvChunk)\r\n }\r\n\r\n for (let i = 0; i < chunks.length; i++) {\r\n const blob = new Blob([chunks[i]], { type: \"text/csv\" })\r\n const formData = new FormData()\r\n formData.append(\r\n \"file\",\r\n blob,\r\n `students_chunk${i + 1}.csv`\r\n )\r\n\r\n await importUsersCSV(formData)\r\n }\r\n } else {\r\n if (isCheckDomainIBS) {\r\n if (type == CSVType.ClassReflection) {\r\n await importClassReflectionCSV(formData)\r\n }\r\n } else {\r\n await importCSV(formData, type.toString())\r\n }\r\n }\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Import CSV successfully\"\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n const inputId: any = document.getElementById(id)\r\n const input: any = document.getElementById(\"import-student\")\r\n const importClass: any = document.getElementById(\r\n \"import-classReflection\"\r\n )\r\n inputId && (inputId.value = \"\")\r\n input && (input.value = \"\")\r\n importClass && (importClass.value = \"\")\r\n },\r\n [type]\r\n )\r\n\r\n const uploadByTeacherId = async (file: any) => {\r\n if (!defaultTeacher) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Select teacher before import csv\"\r\n })\r\n )\r\n return\r\n }\r\n if (!type || !file) return\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const formData = new FormData()\r\n formData.append(\"file\", file, file.name)\r\n await importStudentByTeacher(defaultTeacher, formData)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Import CSV successfully\"\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n const input: any = document.getElementById(\"teacherSelector\")\r\n input && (input.value = \"\")\r\n }\r\n\r\n const onConfirm = async (values: any) => {\r\n if (!dataFile || !dataFile) return\r\n dispatch(setLoading(true))\r\n try {\r\n const formData = new FormData()\r\n formData.append(\"file\", dataFile, dataFile.name)\r\n formData.append(\"teacherName\", values.teacherName)\r\n formData.append(\"teacherEmail\", values.teacherEmail)\r\n values.studentIds.forEach((item: any) => {\r\n formData.append(\"studentIds\", item)\r\n })\r\n await importClassReflectionCSV(formData)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Import CSV successfully\"\r\n })\r\n )\r\n setInitImportReflection(initClassReflect)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n const input: any = document.getElementById(id)\r\n input && (input.value = \"\")\r\n }\r\n const onChangeTeacher = (teacher: Option) => {\r\n setDefaultTeacher(teacher.value)\r\n }\r\n\r\n const setDataFileImportStudent = (dataFile: any) => {\r\n setStudentDataFile(dataFile)\r\n setFileName(dataFile?.name || \"\")\r\n }\r\n const onUpLoadStudentFile = () => {\r\n if (!studentDataFile) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Select CSV to import\"\r\n })\r\n )\r\n return\r\n }\r\n uploadByTeacherId(studentDataFile)\r\n }\r\n\r\n const onStudentSubmit = () => {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: \"Are you sure upload this file?\",\r\n onConfirm: () => {\r\n onUpLoadStudentFile()\r\n }\r\n })\r\n )\r\n }\r\n return {\r\n isLoading,\r\n id,\r\n setType,\r\n upload,\r\n initImportReflection,\r\n setInitImportReflection,\r\n onConfirm,\r\n CSVType,\r\n dataFile,\r\n setDataFile,\r\n setArrStudent,\r\n arrStudent,\r\n isCheckDomainIBS,\r\n onChangeTeacher,\r\n uploadByTeacherId,\r\n setDataFileImportStudent,\r\n onUpLoadStudentFile,\r\n defaultTeacher,\r\n fileName,\r\n onStudentSubmit,\r\n downloadTemplateUser\r\n }\r\n}\r\n\r\nexport default useCSVImport\r\n","\r\nimport { useDispatch } from \"react-redux\"\r\nimport { postRequestResendMail } from \"../../../services/userService\"\r\nimport { setAlert, setLoading } from \"../../../redux/commons/action\"\r\n\r\nconst useResendMail = () => {\r\n const dispatch = useDispatch()\r\n\r\n const postDataResendMail = async (data: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n await postRequestResendMail(data)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Send Successfully\"\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }\r\n\r\n const handleSendMultiUsers = (listUserIds: any) => {\r\n postDataResendMail({ userIds: [...listUserIds] })\r\n }\r\n\r\n const handleSendSingleUser = (userId: string) => {\r\n postDataResendMail({ userIds: [userId] })\r\n }\r\n\r\n return {\r\n handleSendMultiUsers,\r\n handleSendSingleUser\r\n }\r\n}\r\n\r\nexport default useResendMail\r\n","import React, { CSSProperties } from \"react\"\r\nimport { Row, Col, Table, Input } from \"reactstrap\"\r\nimport differenceInCalendarYears from \"date-fns/differenceInCalendarYears\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport useUserList from \"../hooks/useUserList\"\r\nimport LinkEditButton from \"../../../components/Buttons/LinkEditButton\"\r\nimport DeleteButtonIcon from \"../../../components/Buttons/DeleteButtonIcon\"\r\nimport { FaUsersCog } from \"react-icons/fa\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport SearchBoxContainer from \"../../../components/Inputs/SearchBoxContainer\"\r\nimport utcToLocalTime from \"../../../utils/utcToLocalTime\"\r\nimport SyncButtonIcon from \"../../../components/Buttons/SyncButton\"\r\nimport TableHeader from \"../components/TableHeader\"\r\nimport { UserColumns } from \"../constants/constants\"\r\nimport { DATE_MIN_VALUE, screenWidth } from \"../../../utils/constants\"\r\nimport styles from \"../../../styles.module.scss\"\r\nimport useExportUsersCsv from \"../hooks/useExportUsersCsv\"\r\nimport useCSVImport from \"../hooks/useCSVImport\"\r\nimport { UserColumn } from \"../constants/types\"\r\nimport useResendMail from \"../hooks/useResendMail\"\r\n\r\nconst buttonTextStyle: CSSProperties = {\r\n fontWeight: 500\r\n}\r\n\r\nconst buttonStyle: CSSProperties = {\r\n height: 38\r\n}\r\n\r\nconst header = \"user\"\r\nconst UserList = () => {\r\n const {\r\n queryName,\r\n userList,\r\n totalItems,\r\n filters,\r\n fullName,\r\n removeData,\r\n changeFilters,\r\n reDirectDetailPage,\r\n switchUser,\r\n handleSyncRosterUsers,\r\n rosterUserInfo,\r\n onSelectUser,\r\n userIds,\r\n onSelectAllUser\r\n } = useUserList()\r\n\r\n const { handleSendMultiUsers } = useResendMail()\r\n\r\n const { upload } = useCSVImport()\r\n\r\n const {\r\n exportUsers\r\n } = useExportUsersCsv()\r\n\r\n const { t } = useTranslation()\r\n\r\n const handleExportUsers = () => exportUsers(filters)\r\n const headerColumns: UserColumn[] = [\r\n {\r\n name: \"\",\r\n isCenter: true,\r\n onSelectAll: () => { onSelectAllUser() },\r\n isCheckAll: userIds.length == totalItems && totalItems != 0\r\n } as UserColumn\r\n ].concat(UserColumns)\r\n\r\n return (\r\n <div className={`fadeIn animated h-100 ${screenWidth <= 767 ? styles['p-0-12'] : ''}`}>\r\n <h5 className=\"mt-4 mb-2\">{t(`${header}`)}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={8}>\r\n <SearchBoxContainer\r\n text={t(\"create_user\")}\r\n onClick={() => reDirectDetailPage()}\r\n initValue={!!queryName ? queryName : \"\"}\r\n onSearch={(searchString?: any) =>\r\n changeFilters({\r\n searchString: searchString\r\n })\r\n }\r\n placeholder={t(\"type_something_to_search_by_user_name\")}\r\n />\r\n </Col>\r\n <Col\r\n md={4}\r\n className=\"d-flex justify-content-end align-items-center\"\r\n >\r\n {t(\"total_of_users\")} : {totalItems}\r\n </Col>\r\n <Col md={12} className=\"d-flex justify-content-end my-2\">\r\n <button\r\n className={`btn btn-success d-flex align-items-center border-0 mr-2`}\r\n style={buttonStyle}\r\n onClick={() => handleSendMultiUsers(userIds)}\r\n >\r\n <p className={`${styles[\"button-content\"]} mb-0`} style={buttonTextStyle}>\r\n {t('welcome_email_resend')}\r\n </p>\r\n </button>\r\n <Input\r\n id=\"import-user\"\r\n className=\"d-none\"\r\n type=\"file\"\r\n onChange={(e: any) => upload(e.target.files[0])}\r\n accept=\"text/csv\"\r\n />\r\n <SyncButtonIcon text={t(`sync_roster_users`)} onClick={handleSyncRosterUsers} />\r\n <button\r\n className={`btn btn-success d-flex align-items-center border-0 p-0 ml-2`}\r\n style={buttonStyle}\r\n onClick={handleExportUsers}\r\n >\r\n <div className={`${styles[\"button-icon\"]}`}>\r\n <img src=\"images/export-icon.svg\" alt=\"\" />\r\n </div>\r\n <p className={`${styles[\"button-content\"]} mb-0`} style={buttonTextStyle}>\r\n {t('export_to_csv')}\r\n </p>\r\n </button>\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={12}>\r\n <div style={{ overflow: 'auto' }}>\r\n <Table bordered hover striped size=\"sm\">\r\n <thead>\r\n <TableHeader\r\n headers={headerColumns}\r\n filters={filters}\r\n fullName={fullName}\r\n onChangeFilters={changeFilters}\r\n />\r\n </thead>\r\n <tbody>\r\n {userList && userList.length > 0 && userList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n <input\r\n type=\"checkbox\"\r\n onChange={() => onSelectUser(record.id)}\r\n checked={userIds.includes(record.id) ?? false}\r\n />\r\n </td>\r\n <td className=\"align-middle\">\r\n <LinkEditButton\r\n label={`${record.fullName}`}\r\n onClick={() =>\r\n reDirectDetailPage(\r\n record.id\r\n )\r\n }\r\n />\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.email}\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.dateOfBirth !== DATE_MIN_VALUE && differenceInCalendarYears(\r\n new Date(),\r\n new Date(record.dateOfBirth)\r\n )}\r\n </td>\r\n <td className=\"align-middle\">\r\n {!!record.roles &&\r\n record.roles.map((role: string) => role === \"SecondaryTeacher\" ? \"SupportTeacher\" : role).join(\", \")}\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.isActive\r\n ? t(\"active\")\r\n : t(\"inactive\")}\r\n </td>\r\n <td className=\"align-middle\">\r\n {\r\n utcToLocalTime(record?.createTime, \"yyyy-MM-DD HH:mm\")\r\n }\r\n </td>\r\n <td>\r\n {rosterUserInfo(record)}\r\n </td>\r\n <td className=\"align-middle\">\r\n <FaUsersCog\r\n style={{ fontSize: \"18px\", margin: \"0 10px\", cursor: \"pointer\" }}\r\n onClick={() =>\r\n switchUser(record.id)\r\n }\r\n />\r\n </td>\r\n <td className=\"align-middle\" style={{ padding: \"0 15px\" }}>\r\n <DeleteButtonIcon\r\n onClick={() =>\r\n removeData(record.id)\r\n }\r\n />\r\n </td>\r\n </tr>\r\n ))}\r\n {\r\n (!userList || !userList.length) &&\r\n <tr>\r\n <td colSpan={12} className=\"p-0\">\r\n <EmptyDataAlert className=\"mb-0\" label={t(\"user\")} />\r\n </td>\r\n </tr>\r\n }\r\n </tbody>\r\n </Table>\r\n </div>\r\n </Col>\r\n <Col md={12}>\r\n <CustomPagination\r\n filters={filters}\r\n totalRecordCount={totalItems}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default UserList\r\n","import React, { useEffect } from \"react\"\r\nimport {\r\n Col,\r\n Row,\r\n TabContent,\r\n TabPane,\r\n Nav,\r\n NavItem,\r\n NavLink\r\n} from \"reactstrap\"\r\nimport { Route, useNavigate, useLocation } from \"react-router-dom\"\r\nimport NotFound from \"../../containers/Commons/NotFound\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { useSelector } from \"react-redux\"\r\nimport i18n from \"../../i18n\"\r\n\r\nconst CustomTabs = (props: any) => {\r\n const { t } = useTranslation()\r\n const navigate = useNavigate()\r\n const location = useLocation()\r\n const language = useSelector((state: any) => state.common.language)\r\n const { pathname } = location\r\n const { tabs, title } = props\r\n const toggle = (path: any) => {\r\n navigate(path)\r\n }\r\n\r\n useEffect(() => {\r\n i18n.changeLanguage(language)\r\n }, [language])\r\n\r\n const renderContent = () => {\r\n const activeTab = tabs.map((t: any) => t.path).indexOf(pathname)\r\n if (activeTab === -1) {\r\n return <NotFound />\r\n }\r\n return (\r\n <Row>\r\n <Col md={12}>\r\n <h5>{t(title)}</h5>\r\n </Col>\r\n <Col xl={12}>\r\n <Nav tabs>\r\n {tabs.map((i: any) => (\r\n <NavItem key={i.path}>\r\n <NavLink\r\n className={`${\r\n i.path === pathname ? \"active\" : \"\"\r\n } cursor-pointer`}\r\n onClick={() => {\r\n toggle(i.path)\r\n }}\r\n >\r\n {t(i.title)}\r\n </NavLink>\r\n </NavItem>\r\n ))}\r\n </Nav>\r\n <TabContent\r\n activeTab={pathname}\r\n className=\"border-bottom-0 border-left-0 border-right-0\"\r\n >\r\n {tabs.map((i: any) => (\r\n <TabPane key={i.path} tabId={i.path}>\r\n <Route\r\n path={i.path}\r\n element={<i.component />}\r\n />\r\n </TabPane>\r\n ))}\r\n </TabContent>\r\n </Col>\r\n </Row>\r\n )\r\n }\r\n return <div className=\"animated fadeIn\">{renderContent()}</div>\r\n}\r\n\r\nexport default CustomTabs\r\n","import React, { useState } from \"react\"\r\nimport CreatableSelect from 'react-select/creatable';\r\n\r\nconst TeacherSelector = ({\r\n options,\r\n isDisabled,\r\n scrollBottom,\r\n onCreateOption,\r\n ...rest\r\n}: any) => {\r\n const [errorMessage, setErrorMessage] = useState<string>()\r\n \r\n // const validateEmail = (email: string) => {\r\n // return String(email)\r\n // .toLowerCase()\r\n // .match(\r\n // /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\r\n // );\r\n // };\r\n\r\n // const handleCreateTeacherOption = (newTeacherEmail: string) => {\r\n // if(!validateEmail(newTeacherEmail)){\r\n // setErrorMessage(`Invalid email format for email: ${newTeacherEmail}`)\r\n // return\r\n // }else{\r\n // setErrorMessage(undefined)\r\n // }\r\n // const newTeacher = {\r\n // label: newTeacherEmail,\r\n // value: -(new Date().getTime())\r\n // }\r\n // onCreateOption?.(newTeacher)\r\n // }\r\n\r\n const handleFocus = () => {\r\n setErrorMessage(undefined)\r\n }\r\n\r\n return (\r\n <div className=\"w-100\">\r\n <div className=\"w-100\">\r\n <CreatableSelect\r\n isDisabled={isDisabled}\r\n options={options}\r\n menuPlacement={scrollBottom ? \"top\" : \"auto\"}\r\n // onCreateOption={handleCreateTeacherOption}\r\n onFocus={handleFocus}\r\n {...rest}\r\n />\r\n </div>\r\n {\r\n !!errorMessage\r\n &&\r\n <p className=\"text-danger mb-0 mt-1\">{errorMessage}</p>\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport default TeacherSelector\r\n","import { useState, useEffect, useCallback, useMemo } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { ICounselor, ITeachers, StudentAssign, StudentFilter, UserOrder } from \"../constants/types\"\r\nimport { setAlert, setLoading } from \"../../../redux/commons/action\"\r\nimport { DEFAULT_STUDENT_FILTER, initAssignStd } from \"../constants/constants\"\r\nimport { getAssignStudentApi } from \"../../../services/userService\"\r\ntype JsonValue = string | number | boolean | null | JsonValue[] | { [key: string]: JsonValue }\r\n\r\nconst useAssignStudentList = () => {\r\n const dispatch = useDispatch()\r\n const [userList, setUserList] = useState<StudentAssign[]>([])\r\n const [filters, setFilters] = useState<StudentFilter>(DEFAULT_STUDENT_FILTER)\r\n const [totalItem, setTotalItem] = useState<number>(0)\r\n const [isCheckAll, setIsCheckAll] = useState<boolean>(false)\r\n const [isCheck, setIsCheck] = useState<any>([])\r\n const [userSelected, setUserSelected] = useState<StudentAssign[]>([])\r\n const [selectedUser, setSelectedUser] = useState<StudentAssign>(initAssignStd)\r\n const fullName = \"\"\r\n\r\n const changeFilters = (updatedFilters: any) => {\r\n const newFilters = {\r\n ...filters,\r\n ...updatedFilters\r\n }\r\n if (\r\n !!newFilters.searchString &&\r\n !!updatedFilters.searchString &&\r\n updatedFilters.searchString != filters.searchString\r\n ) {\r\n newFilters.currentPage = 1\r\n }\r\n\r\n setFilters(newFilters)\r\n }\r\n\r\n const studentTeacherSelected = useMemo(() => {\r\n const allTeachers = userList\r\n .filter(r => isCheck.includes(r.id))\r\n .flatMap(student => student.teachers)\r\n\r\n const uniqueTeachersMap = new Map<string, ITeachers>()\r\n\r\n allTeachers.forEach(teacher => {\r\n if (!uniqueTeachersMap.has(teacher.teacherUserId)) {\r\n uniqueTeachersMap.set(teacher.teacherUserId, teacher)\r\n }\r\n })\r\n\r\n return Array.from(uniqueTeachersMap.values()).map(teacher => ({\r\n value: teacher.teacherUserId,\r\n label: teacher.mainTeacherEmail\r\n }))\r\n }, [userSelected, isCheck])\r\n\r\n const studentCounselorSelected = useMemo(() => {\r\n const allCounselors = userList\r\n .filter(r => isCheck.includes(r.id))\r\n .flatMap(student => student.counselors)\r\n\r\n const uniqueTeachersMap = new Map<string, ICounselor>()\r\n\r\n allCounselors.forEach(counselor => {\r\n if (!uniqueTeachersMap.has(counselor.counselorUserId)) {\r\n uniqueTeachersMap.set(counselor.counselorUserId, counselor)\r\n }\r\n })\r\n\r\n return Array.from(uniqueTeachersMap.values()).map(counselor => ({\r\n value: counselor.counselorUserId,\r\n label: counselor.counselorEmail\r\n }))\r\n }, [userSelected, isCheck])\r\n\r\n const studentAssistantSelected = useMemo(() => {\r\n const assistants = userList\r\n .filter(r => isCheck.includes(r.id) && r.assistantUserId)\r\n .map(student => ({\r\n value: student.assistantUserId,\r\n label: student.assistantEmail\r\n }))\r\n const uniqueMap = new Map<string, { value: string; label: string }>()\r\n\r\n assistants.forEach(assistant => {\r\n if (!uniqueMap.has(assistant.value)) {\r\n uniqueMap.set(assistant.value, assistant)\r\n }\r\n })\r\n\r\n return Array.from(uniqueMap.values())\r\n }, [userList, isCheck])\r\n\r\n const studentSecondaryTeacherSelected = useMemo(() => {\r\n const secondaryTeachers = userList\r\n .filter(r => isCheck.includes(r.id) && r.secondaryTeacherUserId)\r\n .map(student => ({\r\n value: student.secondaryTeacherUserId,\r\n label: student.secondaryTeacherEmail\r\n }))\r\n const uniqueMap = new Map<string, { value: string; label: string }>()\r\n\r\n secondaryTeachers.forEach(secondaryTeacher => {\r\n if (!uniqueMap.has(secondaryTeacher.value)) {\r\n uniqueMap.set(secondaryTeacher.value, secondaryTeacher)\r\n }\r\n })\r\n\r\n return Array.from(uniqueMap.values())\r\n }, [userList, isCheck])\r\n\r\n const handelSort = useCallback((sortBy: UserOrder) => {\r\n if (sortBy !== filters.sortBy) {\r\n changeFilters({\r\n sortBy,\r\n orderBy: \"ASC\",\r\n currentPage: 1\r\n })\r\n } else {\r\n changeFilters({\r\n sortBy,\r\n orderBy: filters.orderBy !== \"DESC\" ? \"DESC\" : \"ASC\",\r\n currentPage: 1\r\n })\r\n }\r\n }, [JSON.stringify(filters)])\r\n\r\n const getDataUserList = async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const original = Object.entries(filters)\r\n .filter(([_, value]) => value !== undefined)\r\n .reduce((acc, [key, value]) => {\r\n acc[key] = value as JsonValue\r\n return acc\r\n }, {} as Record<string, JsonValue>)\r\n\r\n\r\n const formatted: Record<string, JsonValue> = {}\r\n\r\n for (const key in original) {\r\n const newKey = key.charAt(0).toLowerCase() + key.slice(1)\r\n formatted[newKey] = original[key]\r\n }\r\n\r\n const res = await getAssignStudentApi(formatted)\r\n setUserList(res?.data?.items)\r\n setTotalItem(res?.data?.totalItems)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }\r\n\r\n const handleSelectAll = () => {\r\n setIsCheckAll(!isCheckAll)\r\n setIsCheck(userList.map((i: StudentAssign) => i.id))\r\n setUserSelected(userList)\r\n if (isCheckAll) {\r\n setIsCheck([]);\r\n setUserSelected([]);\r\n }\r\n }\r\n\r\n const handleClickCheck = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const { id, checked } = e.target\r\n\r\n if (checked) {\r\n setIsCheck((prev: any) => [...prev, id])\r\n const selected = userList.find(r => r.id === id)\r\n if (selected) setUserSelected(prev => [...prev, selected])\r\n } else {\r\n setIsCheck((prev: any) => prev.filter((item: any) => item !== id))\r\n setUserSelected(prev => prev.filter(item => item.id !== id))\r\n }\r\n }\r\n\r\n const handleRetrievedData = useCallback(() => {\r\n if (filters.currentPage == 1) getDataUserList()\r\n else changeFilters({ currentPage: 1 })\r\n setIsCheck([])\r\n setUserSelected([])\r\n setIsCheckAll(false)\r\n }, [JSON.stringify(filters)])\r\n\r\n useEffect(() => {\r\n getDataUserList()\r\n }, [JSON.stringify(filters)])\r\n\r\n useEffect(() => {\r\n document.title = \"User | Assign student\"\r\n }, [])\r\n\r\n useEffect(() => {\r\n changeFilters({\r\n ...filters,\r\n searchString: fullName\r\n })\r\n }, [fullName])\r\n\r\n return {\r\n handelSort,\r\n handleRetrievedData,\r\n totalItem,\r\n userList,\r\n filters,\r\n changeFilters,\r\n handleSelectAll,\r\n handleClickCheck,\r\n isCheckAll,\r\n isCheck,\r\n fullName,\r\n selectedUser, setSelectedUser,\r\n userSelected,\r\n getDataUserList,\r\n studentTeacherSelected,\r\n studentCounselorSelected,\r\n studentAssistantSelected,\r\n studentSecondaryTeacherSelected\r\n }\r\n}\r\n\r\nexport default useAssignStudentList\r\n","import { useEffect, useState, useCallback } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport {\r\n getCounselors,\r\n} from \"../../../services/userService\"\r\nimport { setAlert } from \"../../../redux/commons/action\"\r\nimport { Counselor, IOptions } from \"../constants/types\"\r\n\r\nconst useCounselorList = () => {\r\n const dispatch = useDispatch()\r\n const [counselorOptions, setCounselorOptions] = useState<Array<IOptions>>([])\r\n const [selectedCounselors, setSelectedCounselors] = useState<object>()\r\n\r\n const getDataCounselors = async () => {\r\n try {\r\n const res = await getCounselors()\r\n res.data.items && setCounselorOptions(res.data.items.map?.((record: Counselor) => ({\r\n label: record.email,\r\n value: record.id\r\n })) || [])\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n }\r\n\r\n const handleSelectCounselor = useCallback((counselorId: string, studentUserId: string) => {\r\n let selectedCounselor = counselorOptions.find((t: IOptions) => t.value === counselorId);\r\n setSelectedCounselors({\r\n ...selectedCounselors,\r\n [studentUserId]: selectedCounselor\r\n })\r\n }, [JSON.stringify(selectedCounselors), JSON.stringify(counselorOptions)])\r\n\r\n const handleCreateCounselorOption = useCallback((newCounselor: IOptions, studentUserId: string, isSelect?: boolean) => {\r\n setCounselorOptions([\r\n ...counselorOptions,\r\n newCounselor\r\n ])\r\n if(!!isSelect) {\r\n setSelectedCounselors({\r\n ...selectedCounselors,\r\n [studentUserId]: newCounselor\r\n })\r\n }\r\n }, [JSON.stringify(counselorOptions), JSON.stringify(selectedCounselors)])\r\n\r\n useEffect(() => {\r\n getDataCounselors()\r\n }, [])\r\n\r\n return {\r\n selectedCounselors,\r\n counselorOptions,\r\n handleSelectCounselor,\r\n handleCreateCounselorOption,\r\n setSelectedCounselors\r\n }\r\n}\r\n\r\nexport default useCounselorList\r\n","import { useEffect, useState, useCallback } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport {\r\n getAssistants,\r\n} from \"../../../services/userService\"\r\nimport { setAlert } from \"../../../redux/commons/action\"\r\nimport { Assistant, IOptions } from \"../constants/types\"\r\n\r\nconst useAssistantList = () => {\r\n const dispatch = useDispatch()\r\n const [assistantOptions, setAssistantOptions] = useState<Array<IOptions>>([])\r\n const [selectedAssistants, setSelectedAssistants] = useState<object>()\r\n\r\n const getDataAssistants = async () => {\r\n try {\r\n const res = await getAssistants()\r\n res.data.items && setAssistantOptions(res.data.items.map?.((record: Assistant) => ({\r\n label: record.email,\r\n value: record.id\r\n })) || [])\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n }\r\n\r\n const handleSelectAssistant = useCallback((assistantId: string, studentUserId: string) => {\r\n let selectedAssistant = assistantOptions.find((t: IOptions) => t.value === assistantId);\r\n setSelectedAssistants({\r\n ...selectedAssistants,\r\n [studentUserId]: selectedAssistant\r\n })\r\n }, [JSON.stringify(selectedAssistants), JSON.stringify(assistantOptions)])\r\n\r\n const handleCreateAssistantOption = useCallback((newAssistant: IOptions, studentUserId: string, isSelect?: boolean) => {\r\n setAssistantOptions([\r\n ...assistantOptions,\r\n newAssistant\r\n ])\r\n if(!!isSelect) {\r\n setSelectedAssistants({\r\n ...selectedAssistants,\r\n [studentUserId]: newAssistant\r\n })\r\n }\r\n }, [JSON.stringify(assistantOptions), JSON.stringify(selectedAssistants)])\r\n\r\n useEffect(() => {\r\n getDataAssistants()\r\n }, [])\r\n\r\n return {\r\n selectedAssistants,\r\n assistantOptions,\r\n handleSelectAssistant,\r\n handleCreateAssistantOption,\r\n setSelectedAssistants\r\n }\r\n}\r\n\r\nexport default useAssistantList\r\n","import { useEffect, useState, useCallback } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport {\r\n getSecondaryTeachers,\r\n} from \"../../../services/userService\"\r\nimport { setAlert } from \"../../../redux/commons/action\"\r\nimport { SecondaryTeacher, IOptions } from \"../constants/types\"\r\n\r\nconst useSecondaryTeacherList = () => {\r\n const dispatch = useDispatch()\r\n const [secondaryTeacherOptions, setSecondaryTeacherOptions] = useState<Array<IOptions>>([])\r\n const [selectedSecondaryTeachers, setSelectedSecondaryTeachers] = useState<object>()\r\n\r\n const getDataSecondaryTeachers = async () => {\r\n try {\r\n const res = await getSecondaryTeachers()\r\n res.data.items && setSecondaryTeacherOptions(res.data.items.map?.((record: SecondaryTeacher) => ({\r\n label: record.email,\r\n value: record.id,\r\n id: record.secondaryTeacherId\r\n })) || [])\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n }\r\n\r\n const handleSelectSecondaryTeacher = useCallback((secondaryTeacherId: string, studentUserId: string) => {\r\n let selectedSecondaryTeacher = secondaryTeacherOptions.find((t: IOptions) => t.value === secondaryTeacherId);\r\n setSelectedSecondaryTeachers({\r\n ...selectedSecondaryTeachers,\r\n [studentUserId]: selectedSecondaryTeacher\r\n })\r\n }, [JSON.stringify(selectedSecondaryTeachers), JSON.stringify(secondaryTeacherOptions)])\r\n\r\n const handleCreateSecondaryTeacherOption = useCallback((newSecondaryTeacher: IOptions, studentUserId: string, isSelect?: boolean) => {\r\n setSecondaryTeacherOptions([\r\n ...secondaryTeacherOptions,\r\n newSecondaryTeacher\r\n ])\r\n if (!!isSelect) {\r\n setSelectedSecondaryTeachers({\r\n ...selectedSecondaryTeachers,\r\n [studentUserId]: newSecondaryTeacher\r\n })\r\n }\r\n }, [JSON.stringify(secondaryTeacherOptions), JSON.stringify(selectedSecondaryTeachers)])\r\n\r\n useEffect(() => {\r\n getDataSecondaryTeachers()\r\n }, [])\r\n\r\n return {\r\n selectedSecondaryTeachers,\r\n secondaryTeacherOptions,\r\n handleSelectSecondaryTeacher,\r\n handleCreateSecondaryTeacherOption,\r\n setSelectedSecondaryTeachers\r\n }\r\n}\r\n\r\nexport default useSecondaryTeacherList\r\n","import { useEffect, useState, useCallback } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport {\r\n getTeachers,\r\n} from \"../../../services/userService\"\r\nimport { setAlert } from \"../../../redux/commons/action\"\r\nimport { Teacher, IOptions } from \"../constants/types\"\r\n\r\nconst useTeacherList = () => {\r\n const dispatch = useDispatch()\r\n const [teacherOptions, setTeacherOptions] = useState<Array<IOptions>>([])\r\n const [selectedTeachers, setSelectedTeachers] = useState<object>()\r\n\r\n const getDataTeachers = async () => {\r\n try {\r\n const res = await getTeachers({\r\n sortBy: \"Email\"\r\n })\r\n res.data && setTeacherOptions(res.data.map?.((record: Teacher) => ({\r\n label: record.email,\r\n value: record.id\r\n })) || [])\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n }\r\n\r\n const handleSelectTeacher = useCallback((teacherIds: Array<string>, studentUserId: string) => {\r\n let selectedTeacher = teacherOptions.filter((t: IOptions) => teacherIds.includes(t.value));\r\n setSelectedTeachers({\r\n ...selectedTeachers,\r\n [studentUserId]: selectedTeacher\r\n })\r\n }, [JSON.stringify(selectedTeachers), JSON.stringify(teacherOptions)])\r\n\r\n const handleCreateTeacherOption = useCallback((newTeacher: IOptions, studentUserId: string, isSelectTeacher?: boolean) => {\r\n setTeacherOptions([\r\n ...teacherOptions,\r\n newTeacher\r\n ])\r\n if (!!isSelectTeacher) {\r\n setSelectedTeachers({\r\n ...selectedTeachers,\r\n [studentUserId]: newTeacher\r\n })\r\n }\r\n }, [JSON.stringify(teacherOptions), JSON.stringify(selectedTeachers)])\r\n\r\n useEffect(() => {\r\n getDataTeachers()\r\n }, [])\r\n\r\n return {\r\n selectedTeachers,\r\n teacherOptions,\r\n handleSelectTeacher,\r\n handleCreateTeacherOption,\r\n setSelectedTeachers\r\n }\r\n}\r\n\r\nexport default useTeacherList\r\n","import { StudentAssign, TeacherType } from \"../constants/types\"\r\ntype StaffItem = {\r\n label: string\r\n value: string\r\n name: string\r\n}\r\n\r\nexport const extractStaffList = (students: StudentAssign[], type: TeacherType): StaffItem[] => {\r\n const result: StaffItem[] = []\r\n\r\n if (type === TeacherType.Teacher) {\r\n // Main teachers\r\n for (const student of students) {\r\n for (const teacher of student.teachers || []) {\r\n result.push({\r\n label: teacher.mainTeacherEmail,\r\n value: teacher.teacherUserId,\r\n name: teacher.mainTeacherName\r\n })\r\n }\r\n }\r\n } else if (type === TeacherType.Assistant) {\r\n // Assistants\r\n for (const student of students) {\r\n if (student.assistantEmail && student.assistantUserId) {\r\n result.push({\r\n label: student.assistantEmail,\r\n value: student.assistantUserId,\r\n name: student.assistantName || ''\r\n })\r\n }\r\n }\r\n } else if (type === TeacherType.Counselor) {\r\n // Counselors\r\n for (const student of students) {\r\n for (const counselor of student.counselors || []) {\r\n result.push({\r\n label: counselor.counselorEmail,\r\n value: counselor.counselorUserId,\r\n name: counselor.counselorName\r\n })\r\n }\r\n }\r\n }\r\n\r\n // Remove duplicates by `value` (userId)\r\n const uniqueMap = new Map<string, StaffItem>()\r\n for (const item of result) {\r\n if (!uniqueMap.has(item.value)) {\r\n uniqueMap.set(item.value, item)\r\n }\r\n }\r\n\r\n // Convert map to array & sort by label (email) alphabetically\r\n return Array.from(uniqueMap.values()).sort((a, b) =>\r\n a.label.localeCompare(b.label)\r\n )\r\n}","import { useDispatch } from \"react-redux\"\r\nimport { setAlert, setLoading, setModal } from \"../../../redux/commons/action\"\r\nimport { AssignStudentDto, IStaffAssign, ISwitchStaffUser, StudentAssign, TeacherType } from \"../constants/types\"\r\nimport { addGradeToStudent, assignStudentsApi, changeAssistantOfStudents, changeMultiCounselorsOfStudent, changeMultiTeacherOfStudent, changeSecondaryTeacherOfStudents, updateStatusAll, removeBulkStaff } from \"../../../services/userService\"\r\nimport { useCallback, useEffect, useState } from \"react\"\r\nimport { initialStaffBulk, initStaffDeleteBulk } from \"../constants/constants\"\r\nimport { extractStaffList } from \"../configs/utils\"\r\n\r\nconst useAssignStudent = (\r\n teacherSelected?: any,\r\n assistantSelected?: Record<string, any>,\r\n counselorSelected?: Record<string, any>,\r\n secondaryTeacherSelected?: Record<string, any>,\r\n callback?: Function,\r\n selectedUser?: StudentAssign,\r\n getDataUserList?: any,\r\n userSelected?: StudentAssign[]\r\n) => {\r\n const dispatch = useDispatch()\r\n const [openModelBulk, setOpenModelBulk] = useState<boolean>(false)\r\n const [staffBulkAssign, setStaffBulkAssign] = useState<IStaffAssign>(initialStaffBulk)\r\n const [openInactiveModal, setOpenInactiveModal] = useState<boolean>(false);\r\n const [openSwitchModal, setOpenSwitchModal] = useState<boolean>(false);\r\n const [modalType, setModalType] = useState<TeacherType>(TeacherType.Teacher);\r\n const [optionsSwitch, setOptionsSwitch] = useState<any[]>([])\r\n const [teacherSwitchList, setTeacherSwitchList] = useState<any[]>([])\r\n const [studentSwitchList, setStudentSwitchList] = useState<any[]>([])\r\n const [textModal, setTextModal] = useState<any>({\r\n header: '',\r\n titleSelect: '',\r\n selectPlaceholder: '',\r\n changeTitle: '',\r\n changePlaceholder: ''\r\n })\r\n const [teacherChangeUserId, setTeacherChangeUserId] = useState<string>('')\r\n const [teacherSelectForChangeUserId, setTeacherSelectForChangeUserId] = useState<string>('')\r\n const [openDetailModal, setOpenDetailModal] = useState<boolean>(false)\r\n const [activeIndex, setActiveIndex] = useState<number>(0);\r\n const [removeTeacherUserIds, setRemoveTeacherUserIds] = useState<string[]>([])\r\n const [teacherSwitchUserId, setTeacherSwitchUserId] = useState<string>(\"\")\r\n const [openModelSwitchDataTeacher, setOpenModelSwitchDataTeacher] = useState<boolean>(false)\r\n const [openModelDeleteBulk, setOpenModelDeleteBulk] = useState<boolean>(false)\r\n const [switchStaffUsers, setSwitchStaffUsers] = useState<ISwitchStaffUser>(initStaffDeleteBulk)\r\n\r\n const handelChangeStaffRemove = (updatedFilters: any) => {\r\n setSwitchStaffUsers({\r\n ...switchStaffUsers,\r\n ...updatedFilters\r\n })\r\n }\r\n\r\n const onToggleModelDeleteBulk = (listUserIds?: string[]) => {\r\n if (listUserIds && listUserIds.length === 0) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Please select students!\"\r\n })\r\n )\r\n return\r\n }\r\n setOpenModelDeleteBulk(!openModelDeleteBulk)\r\n setStaffBulkAssign({ ...initialStaffBulk })\r\n setSwitchStaffUsers({ ...initStaffDeleteBulk })\r\n }\r\n\r\n const onToggleModelSwitchDataTeacher = () => {\r\n setOpenModelSwitchDataTeacher(!openModelSwitchDataTeacher)\r\n setTeacherSwitchUserId(\"\")\r\n }\r\n\r\n const onSelectRemoveTeacher = (userId: string) => {\r\n removeTeacherUserIds.includes(userId)\r\n ? setRemoveTeacherUserIds(removeTeacherUserIds.filter(id => id !== userId))\r\n : setRemoveTeacherUserIds([...removeTeacherUserIds, userId])\r\n }\r\n\r\n const toggleCollapse = (index: number) => {\r\n setActiveIndex(prev => (prev === index ? -1 : index))\r\n }\r\n\r\n const handleToggleModel = (listUserIds?: string[]) => {\r\n if (listUserIds && listUserIds.length === 0) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Please select students!\"\r\n })\r\n )\r\n return\r\n }\r\n setOpenModelBulk(!openModelBulk)\r\n setStaffBulkAssign({ ...initialStaffBulk })\r\n }\r\n\r\n const handleToggleSwitchModel = (listUser: StudentAssign[], modal: TeacherType, options: any[]) => {\r\n if (listUser && listUser.length === 0) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Please select students!\"\r\n })\r\n )\r\n return\r\n }\r\n setStudentSwitchList(listUser)\r\n setTeacherSwitchList(extractStaffList(listUser, modal))\r\n setModalType(modal)\r\n switch (modal) {\r\n case TeacherType.Teacher:\r\n setTextModal({\r\n header: 'switch_teacher',\r\n titleSelect: 'current_teacher_name',\r\n selectPlaceholder: 'select_teacher',\r\n changeTitle: 'select_teacher_change',\r\n changePlaceholder: 'select_teacher_change'\r\n })\r\n break;\r\n case TeacherType.Assistant:\r\n setTextModal({\r\n header: 'switch_assistant',\r\n titleSelect: 'current_assistant_name',\r\n selectPlaceholder: '',\r\n changeTitle: '',\r\n changePlaceholder: 'select_assistant_change'\r\n })\r\n break;\r\n case TeacherType.Counselor:\r\n setTextModal({\r\n header: 'switch_counselor',\r\n titleSelect: 'current_counselor_name',\r\n selectPlaceholder: 'select_counselor',\r\n changeTitle: 'select_counselor_change',\r\n changePlaceholder: 'select_counselor_change'\r\n })\r\n break;\r\n case TeacherType.SecondaryTeacher:\r\n setTextModal({\r\n header: 'switch_support_teacher',\r\n titleSelect: 'current_assistant_name',\r\n selectPlaceholder: '',\r\n changeTitle: '',\r\n changePlaceholder: 'select_support_teacher_change'\r\n })\r\n break;\r\n default:\r\n break;\r\n }\r\n setOpenSwitchModal(!openSwitchModal)\r\n setOptionsSwitch(options)\r\n }\r\n\r\n const onCloseSwitchModal = () => {\r\n setOptionsSwitch([])\r\n setOpenSwitchModal(false)\r\n setOpenDetailModal(false)\r\n setModalType(TeacherType.Teacher)\r\n setTeacherSwitchList([])\r\n setTeacherChangeUserId('')\r\n setTeacherSelectForChangeUserId('')\r\n setTextModal({\r\n header: '',\r\n titleSelect: '',\r\n selectPlaceholder: '',\r\n changeTitle: '',\r\n changePlaceholder: ''\r\n })\r\n setRemoveTeacherUserIds([])\r\n }\r\n\r\n const onClose = () => {\r\n setOpenDetailModal(false)\r\n setActiveIndex(0)\r\n setRemoveTeacherUserIds([])\r\n }\r\n\r\n const updateSwitchStaff = async (teachers: any[], type: TeacherType) => {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: `Do you want to change ${type === TeacherType.Teacher ? 'teacher' : type === TeacherType.Assistant ? 'assistant' : type === TeacherType.SecondaryTeacher ? 'support teacher' : 'counselor'} for ${teachers.length} student(s)?`,\r\n onConfirm: async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = type === TeacherType.Teacher\r\n ? await changeMultiTeacherOfStudent(teachers)\r\n : type === TeacherType.Assistant\r\n ? await changeAssistantOfStudents(teachers)\r\n : type === TeacherType.Counselor\r\n ? await changeMultiCounselorsOfStudent(teachers)\r\n : await changeSecondaryTeacherOfStudents(teachers)\r\n if (res && res?.data) {\r\n onCloseSwitchModal()\r\n callback?.()\r\n await getDataUserList()\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `Change ${type === TeacherType.Teacher ? 'teacher' : type === TeacherType.Assistant ? 'assistant' : type === TeacherType.SecondaryTeacher ? 'support teacher' : 'counselor'} successfully`\r\n })\r\n )\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }\r\n })\r\n )\r\n }\r\n\r\n const handleUpdateSwitch = () => {\r\n let filteredStudents: any[] = []\r\n switch (modalType) {\r\n case TeacherType.Teacher:\r\n filteredStudents = studentSwitchList\r\n .filter(student => {\r\n const teacherIds = student.teachers.map((t: any) => t.teacherUserId)\r\n return teacherIds.includes(teacherSelectForChangeUserId) && !teacherIds.includes(teacherChangeUserId)\r\n })\r\n .map((e: any) => ({\r\n studentId: e.studentId,\r\n teacher: teacherSelectForChangeUserId,\r\n teacherChange: teacherChangeUserId\r\n }))\r\n break;\r\n case TeacherType.Counselor:\r\n filteredStudents = studentSwitchList\r\n .filter(student => {\r\n const counselorIds = student.counselors.map((t: any) => t.counselorUserId)\r\n return counselorIds.includes(teacherSelectForChangeUserId) && !counselorIds.includes(teacherChangeUserId)\r\n })\r\n .map((e: any) => ({\r\n studentId: e.studentId,\r\n counselor: teacherSelectForChangeUserId,\r\n counselorChange: teacherChangeUserId\r\n }))\r\n break;\r\n case TeacherType.Assistant:\r\n filteredStudents = studentSwitchList\r\n .filter((e) => e?.assistantUserId && e?.teachers?.length > 0)\r\n .map(student => ({\r\n studentId: student.studentId,\r\n assistantUserId: teacherChangeUserId\r\n }))\r\n break;\r\n\r\n case TeacherType.SecondaryTeacher:\r\n filteredStudents = studentSwitchList\r\n .filter((e) => e?.secondaryTeacherUserId && e?.teachers?.length > 0)\r\n .map(student => ({\r\n studentId: student.studentId,\r\n secondaryTeacherId: teacherChangeUserId\r\n }))\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n if (filteredStudents.length === 0) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"No change to update!\"\r\n })\r\n )\r\n return\r\n }\r\n\r\n updateSwitchStaff(filteredStudents || [], modalType)\r\n }\r\n\r\n const handleToggleInactiveModal = (listUserIds?: string[]) => {\r\n if (listUserIds && listUserIds.length === 0) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Please select student(s)!\"\r\n })\r\n )\r\n return\r\n }\r\n setOpenInactiveModal(!openInactiveModal)\r\n }\r\n\r\n const handleChangeStaffBulk = (name: string, value: any) => {\r\n switch (name) {\r\n case 'assistant':\r\n setStaffBulkAssign({\r\n ...staffBulkAssign,\r\n assistantId: value.value,\r\n assistantEmail: value.label,\r\n })\r\n break;\r\n case 'secondary':\r\n setStaffBulkAssign({\r\n ...staffBulkAssign,\r\n secondaryTeacherId: value.value,\r\n secondaryTeacherEmail: value.label,\r\n })\r\n break;\r\n case 'grade':\r\n setStaffBulkAssign({\r\n ...staffBulkAssign,\r\n gradeLevel: value.value\r\n })\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n\r\n const handleChangeTeacherBulk = (value: any[]) => {\r\n setStaffBulkAssign({\r\n ...staffBulkAssign,\r\n teacher: value\r\n })\r\n }\r\n\r\n const handleChangeCounselorBulk = (value: any[]) => {\r\n setStaffBulkAssign({\r\n ...staffBulkAssign,\r\n counselors: value\r\n })\r\n }\r\n\r\n const assignStudents = async (users: AssignStudentDto[]) => {\r\n dispatch(setLoading(true))\r\n try {\r\n await assignStudentsApi(users)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Student assigned successfully\"\r\n })\r\n )\r\n callback?.()\r\n onCloseSwitchModal()\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }\r\n\r\n const handleAssignMultiStudent = useCallback((listUserIds: string[]) => {\r\n if (listUserIds.length === 0) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Not found selected student.\"\r\n })\r\n )\r\n return\r\n }\r\n const isMissingTeacher = listUserIds.some((i: string) => {\r\n const teacher = teacherSelected?.[i]\r\n const assistant = assistantSelected?.[i]\r\n const counselor = counselorSelected?.[i]\r\n const secondaryTeacher = secondaryTeacherSelected?.[i]\r\n\r\n return (!teacher && !assistant && !counselor && !secondaryTeacher)\r\n })\r\n if (isMissingTeacher) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Please select/add teacher for all selected student first.\"\r\n })\r\n )\r\n return\r\n }\r\n\r\n const users = listUserIds.map((i: string) => {\r\n const teacher = teacherSelected?.[i]\r\n const assistant = assistantSelected?.[i]\r\n const counselor = counselorSelected?.[i]\r\n const secondaryTeacher = secondaryTeacherSelected?.[i]\r\n\r\n const value: AssignStudentDto = {\r\n id: i\r\n }\r\n if (!!teacher) {\r\n value.mainTeacherUserId = !!teacher ? teacher.map((i: any) => i.value) : undefined\r\n value.mainTeacherEmail = !!teacher ? teacher.map((i: any) => i.label) : undefined\r\n }\r\n\r\n if (!!assistant) {\r\n value.assistantUserId = !!assistant?.value && typeof assistant?.value === 'string' ? assistant?.value : undefined\r\n value.assistantEmail = !!assistant?.value && typeof assistant?.value === 'number' ? assistant?.label : undefined\r\n }\r\n\r\n if (!!counselor) {\r\n value.counselorUserIds = !!counselor ? counselor.map((i: any) => i.value) : undefined\r\n value.counselorEmails = !!counselor ? counselor.map((i: any) => i.label) : undefined\r\n }\r\n\r\n if (!!secondaryTeacher) {\r\n value.secondaryTeacherUserId = !!secondaryTeacher?.value && typeof secondaryTeacher?.value === 'string' ? secondaryTeacher?.value : undefined\r\n value.secondaryTeacherEmail = !!secondaryTeacher?.value && typeof secondaryTeacher?.value === 'number' ? secondaryTeacher?.label : undefined\r\n }\r\n\r\n return value\r\n })\r\n\r\n assignStudents([...users])\r\n }, [JSON.stringify(teacherSelected), JSON.stringify(assistantSelected), JSON.stringify(counselorSelected), JSON.stringify(secondaryTeacherSelected)])\r\n\r\n const handleAssignSingleStudent = useCallback((id: string) => {\r\n const teacher = teacherSelected?.[id]\r\n const assistant = assistantSelected?.[id]\r\n const counselor = counselorSelected?.[id]\r\n const secondaryTeacher = secondaryTeacherSelected?.[id]\r\n if (!teacher && !assistant && !counselor && !secondaryTeacher) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Please select/add teacher for selected student first.\"\r\n })\r\n )\r\n return\r\n }\r\n\r\n const studentRequest: AssignStudentDto = {\r\n id\r\n }\r\n\r\n if (!!teacher) {\r\n studentRequest.mainTeacherUserId = !!teacher ? teacher.map((i: any) => i.value) : undefined\r\n studentRequest.mainTeacherEmail = !!teacher ? teacher.map((i: any) => i.label) : undefined\r\n }\r\n\r\n if (!!assistant) {\r\n studentRequest.assistantUserId = !!assistant?.value && typeof assistant?.value === 'string' ? assistant?.value : undefined\r\n studentRequest.assistantEmail = !!assistant?.value && typeof assistant?.value === 'number' ? assistant?.label : undefined\r\n }\r\n\r\n if (!!counselor) {\r\n studentRequest.counselorUserIds = !!counselor ? counselor.map((i: any) => i.value) : undefined\r\n studentRequest.counselorEmails = !!counselor ? counselor.map((i: any) => i.label) : undefined\r\n }\r\n\r\n if (!!secondaryTeacher) {\r\n studentRequest.secondaryTeacherUserId = !!secondaryTeacher?.value && typeof secondaryTeacher?.value === 'string' ? secondaryTeacher?.value : undefined\r\n studentRequest.secondaryTeacherEmail = !!secondaryTeacher?.value && typeof secondaryTeacher?.value === 'number' ? secondaryTeacher?.label : undefined\r\n }\r\n\r\n assignStudents([studentRequest])\r\n }, [JSON.stringify(teacherSelected), JSON.stringify(assistantSelected), JSON.stringify(counselorSelected), JSON.stringify(secondaryTeacherSelected)])\r\n\r\n const onAssignStaffToStudents = async (listUserIds: string[]) => {\r\n if (listUserIds.length === 0) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Not found selected student.\"\r\n })\r\n )\r\n return\r\n }\r\n if (staffBulkAssign.teacher.length === 0 && staffBulkAssign.counselors.length === 0 && !staffBulkAssign.assistantId && !staffBulkAssign.secondaryTeacherId) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"No change to assign!\"\r\n })\r\n )\r\n return\r\n }\r\n\r\n const allUsersHaveTeachers =\r\n (userSelected\r\n ?.filter(user => listUserIds?.includes(user.id))\r\n ?.every(u => Array.isArray(u.teachers) && u.teachers.length > 0)\r\n ) ?? false;\r\n\r\n if(staffBulkAssign.teacher.length === 0 && !allUsersHaveTeachers) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Please assign a teacher to each student before giving other educators access to them\"\r\n })\r\n )\r\n return\r\n }\r\n\r\n dispatch(setLoading(true))\r\n try {\r\n if (staffBulkAssign.teacher.length > 0 && userSelected && userSelected.length > 0) {\r\n const users = userSelected\r\n .filter(user => listUserIds.includes(user.id))\r\n .map(user => {\r\n const existingTeacherIds = user.teachers?.map(t => t.teacherUserId) || []\r\n\r\n const unmatchedTeachers = staffBulkAssign.teacher.filter(\r\n t => !existingTeacherIds.includes(t.id)\r\n )\r\n\r\n return {\r\n id: user.id,\r\n mainTeacherUserId: unmatchedTeachers.map(t => t.id),\r\n mainTeacherEmail: unmatchedTeachers.map(t => t.email)\r\n }\r\n })\r\n .filter(u => u.mainTeacherUserId.length > 0 || u.mainTeacherEmail.length > 0)\r\n\r\n if (users.length > 0) {\r\n await assignStudentsApi(users)\r\n }\r\n }\r\n\r\n if (staffBulkAssign.counselors.length > 0 && userSelected && userSelected.length > 0) {\r\n const users = userSelected\r\n .filter(user => listUserIds.includes(user.id))\r\n .map(user => {\r\n const existingCounselorIds = user.counselors?.map(t => t.counselorUserId) || []\r\n\r\n const unmatchedTeachers = staffBulkAssign.counselors.filter(\r\n t => !existingCounselorIds.includes(t.id)\r\n )\r\n\r\n return {\r\n id: user.id,\r\n counselorUserIds: unmatchedTeachers.map(t => t.id),\r\n counselorEmails: unmatchedTeachers.map(t => t.email)\r\n }\r\n })\r\n .filter(u => u.counselorUserIds.length > 0 || u.counselorEmails.length > 0)\r\n\r\n if (users.length > 0) {\r\n await assignStudentsApi(users)\r\n }\r\n }\r\n\r\n const listUserHasAssistant = userSelected?.filter((user: any) => !user.assistantUserId)\r\n if (listUserHasAssistant && listUserHasAssistant?.length > 0 && staffBulkAssign.assistantId) {\r\n const users = listUserHasAssistant.map((i: StudentAssign) => {\r\n const value: AssignStudentDto = {\r\n id: i.id,\r\n assistantUserId: staffBulkAssign.assistantId,\r\n assistantEmail: staffBulkAssign.assistantEmail,\r\n }\r\n\r\n return value\r\n })\r\n await assignStudentsApi(users.filter((u): u is AssignStudentDto => u !== undefined))\r\n }\r\n const listUserHasSecondaryTeacher = userSelected?.filter((user: any) => !user.secondaryTeacherUserId)\r\n if (listUserHasSecondaryTeacher && listUserHasSecondaryTeacher?.length > 0 && staffBulkAssign.secondaryTeacherId) {\r\n const users = listUserHasSecondaryTeacher.map((i: StudentAssign) => {\r\n const value: AssignStudentDto = {\r\n id: i.id,\r\n secondaryTeacherUserId: staffBulkAssign.secondaryTeacherId,\r\n secondaryTeacherEmail: staffBulkAssign.secondaryTeacherEmail,\r\n }\r\n\r\n return value\r\n })\r\n await assignStudentsApi(users.filter((u): u is AssignStudentDto => u !== undefined))\r\n }\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Student assigned successfully\"\r\n })\r\n )\r\n callback?.()\r\n onCloseSwitchModal()\r\n handleToggleModel()\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n\r\n }\r\n\r\n const handleEditAssignForStudents = async (teacherUserId?: string) => {\r\n if (staffBulkAssign.teacher.length === 0) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Please select teacher before assign!\"\r\n })\r\n )\r\n return\r\n }\r\n\r\n if(removeTeacherUserIds.length > 0 && !teacherUserId) {\r\n setOpenModelSwitchDataTeacher(true)\r\n return\r\n }\r\n\r\n const value: AssignStudentDto = {\r\n id: selectedUser?.id || '',\r\n mainTeacherUserId: staffBulkAssign.teacher\r\n .filter((e: any) => !selectedUser?.teachers?.some((teacher: any) => teacher.teacherUserId === e.id))\r\n .map((e: any) => e.id) || [],\r\n mainTeacherEmail: staffBulkAssign.teacher\r\n .filter((e: any) => !selectedUser?.teachers?.some((teacher: any) => teacher.teacherUserId === e.id))\r\n .map((e: any) => e.email) || [],\r\n assistantUserId: !!staffBulkAssign?.assistantId ? staffBulkAssign?.assistantId : undefined,\r\n assistantEmail: !!staffBulkAssign?.assistantEmail ? staffBulkAssign?.assistantEmail : undefined,\r\n counselorUserIds: staffBulkAssign.counselors.map(t => t.id) || [],\r\n counselorEmails: staffBulkAssign.counselors.map(t => t.email) || [],\r\n secondaryTeacherUserId: !!staffBulkAssign?.secondaryTeacherId ? staffBulkAssign?.secondaryTeacherId : undefined,\r\n secondaryTeacherEmail: !!staffBulkAssign?.secondaryTeacherEmail ? staffBulkAssign?.secondaryTeacherEmail : undefined,\r\n removeTeacherUserIds: removeTeacherUserIds,\r\n teacherSwitchUserId: teacherUserId || ''\r\n }\r\n\r\n if (staffBulkAssign?.gradeLevel && staffBulkAssign.gradeLevel !== selectedUser?.gradeLevel) {\r\n await addGradeToStudent(selectedUser?.id || '', staffBulkAssign?.gradeLevel)\r\n }\r\n assignStudents([value])\r\n }\r\n\r\n const handleInactiveStudents = async (listStudentIds: string[], callback: () => void) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await updateStatusAll(listStudentIds)\r\n if (res.status == 200) {\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `Inactive ${listStudentIds.length} Students successfully`\r\n })\r\n )\r\n callback()\r\n }\r\n } catch (error) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: error.response?.data?.title || error.message\r\n })\r\n )\r\n }\r\n setOpenInactiveModal(!openInactiveModal)\r\n dispatch(setLoading(false))\r\n }\r\n\r\n const handleRemoveBulkStaff = useCallback(async(studentUserIds: string[]) => {\r\n if(switchStaffUsers.assistantRemoveUserId.length && !switchStaffUsers.assistantSwitchDataUserId) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Please select an assistant to transfer data!\"\r\n })\r\n )\r\n return\r\n }\r\n\r\n if(switchStaffUsers.teacherRemoveUserIds.length && !switchStaffUsers.teacherSwitchDataUserId) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Please select a teacher to transfer data!\"\r\n })\r\n )\r\n return\r\n }\r\n\r\n if(switchStaffUsers.counselorRemoveUserIds.length && !switchStaffUsers.counselorSwitchDataUserId) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Please select a counselor to transfer data!\"\r\n })\r\n )\r\n return\r\n }\r\n\r\n if(switchStaffUsers.supportTeacherRemoveUserIds.length && !switchStaffUsers.supportTeacherSwitchDataUserId) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Please select a support teacher to transfer data!\"\r\n })\r\n )\r\n return\r\n }\r\n\r\n dispatch(setLoading(true))\r\n try {\r\n await removeBulkStaff({...switchStaffUsers, studentUserIds: studentUserIds || []})\r\n callback?.()\r\n await getDataUserList()\r\n } catch (error) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: error.response?.data?.title || error.message\r\n })\r\n )\r\n }\r\n onToggleModelDeleteBulk()\r\n dispatch(setLoading(false))\r\n }, [switchStaffUsers])\r\n\r\n useEffect(() => {\r\n if (selectedUser?.id) {\r\n setStaffBulkAssign({\r\n teacher: selectedUser?.teachers?.map(e => ({\r\n id: e.teacherUserId,\r\n email: e.mainTeacherEmail\r\n })),\r\n assistantId: selectedUser?.assistantUserId,\r\n assistantEmail: selectedUser?.assistantEmail,\r\n counselors: selectedUser?.counselors?.map(e => ({\r\n id: e.counselorUserId,\r\n email: e.counselorEmail\r\n })),\r\n secondaryTeacherEmail: selectedUser?.secondaryTeacherEmail,\r\n secondaryTeacherId: selectedUser?.secondaryTeacherUserId,\r\n gradeLevel: selectedUser?.gradeLevel\r\n })\r\n }\r\n\r\n return () => {\r\n setStaffBulkAssign(initialStaffBulk)\r\n }\r\n }, [selectedUser])\r\n\r\n\r\n return {\r\n handleAssignSingleStudent,\r\n handleAssignMultiStudent,\r\n openModelBulk,\r\n handleToggleModel,\r\n handleChangeStaffBulk,\r\n staffBulkAssign,\r\n onAssignStaffToStudents,\r\n handleToggleInactiveModal,\r\n openInactiveModal,\r\n handleInactiveStudents,\r\n handleChangeTeacherBulk,\r\n handleEditAssignForStudents,\r\n handleToggleSwitchModel,\r\n openSwitchModal,\r\n optionsSwitch,\r\n modalType,\r\n textModal,\r\n teacherSwitchList,\r\n onCloseSwitchModal,\r\n handleUpdateSwitch,\r\n setTeacherChangeUserId,\r\n setTeacherSelectForChangeUserId,\r\n teacherSelectForChangeUserId,\r\n openDetailModal, setOpenDetailModal,\r\n toggleCollapse, activeIndex,\r\n handleChangeCounselorBulk,\r\n onClose,\r\n removeTeacherUserIds,\r\n onSelectRemoveTeacher,\r\n openModelSwitchDataTeacher,\r\n onToggleModelSwitchDataTeacher,\r\n teacherSwitchUserId,\r\n setTeacherSwitchUserId,\r\n onToggleModelDeleteBulk,\r\n openModelDeleteBulk,\r\n handelChangeStaffRemove,\r\n switchStaffUsers,\r\n handleRemoveBulkStaff\r\n }\r\n}\r\n\r\nexport default useAssignStudent","import React, { forwardRef, Fragment } from \"react\"\r\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from \"reactstrap\"\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\nimport styles from '../../../styles.module.scss'\r\nimport TeacherSelector from \"./TeacherSelector\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { TeacherType } from \"../constants/types\"\r\nconst SwitchTeacherModal = (props: any) => {\r\n const {\r\n textModal,\r\n isOpen,\r\n teachers,\r\n options,\r\n onClose,\r\n onSave,\r\n modalType,\r\n setTeacherChangeUserId,\r\n setTeacherSelectForChangeUserId,\r\n teacherSelectForChangeUserId\r\n } = props\r\n const { t } = useTranslation()\r\n\r\n return (\r\n <Modal\r\n centered\r\n isOpen={isOpen}\r\n toggle={onClose}\r\n >\r\n <ModalHeader className={styles['header-assign-for-student']}>\r\n {t(textModal.header)}\r\n </ModalHeader>\r\n <ModalBody>\r\n {modalType !== TeacherType.Assistant || modalType !== TeacherType.SecondaryTeacher && (\r\n <Fragment>\r\n <div>{t(textModal.titleSelect)}</div>\r\n <ul style={{ maxHeight: 200, overflow: 'auto' }}>\r\n {teachers.map((e: any) => (\r\n <li key={e.label}>{e.name}-{e.label}</li>\r\n ))}\r\n </ul>\r\n </Fragment>\r\n )}\r\n {\r\n (modalType === TeacherType.Teacher || modalType === TeacherType.Counselor) && (\r\n <Fragment>\r\n <div>{t(textModal.selectPlaceholder)}</div>\r\n <CustomSelector\r\n options={teachers}\r\n value={teachers.filter((e: any) => e.value === teacherSelectForChangeUserId)}\r\n placeholder={t(textModal.selectPlaceholder)}\r\n className={`flex-grow-1 mb-3 ${styles['custom-chip-teacher-select']}`}\r\n onChange={(e: any) => {\r\n setTeacherSelectForChangeUserId(e.value)\r\n }}\r\n isClearable={true}\r\n style={{ maxWidth: 120 }}\r\n />\r\n </Fragment>\r\n )\r\n }\r\n <div>{t(textModal.changeTitle)}</div>\r\n <TeacherSelector\r\n options={options}\r\n onChange={(e: any) => {\r\n if (modalType !== TeacherType.SecondaryTeacher) {\r\n setTeacherChangeUserId(e.value)\r\n } else {\r\n setTeacherChangeUserId(e.id)\r\n }\r\n }}\r\n placeholder={t(textModal.changePlaceholder)}\r\n className=\"flex-grow-1 mb-3\"\r\n />\r\n </ModalBody>\r\n <ModalFooter className=\"textModal-right\">\r\n <Button onClick={() => onClose(false)}>{t(\"cancel\")}</Button>\r\n <Button color=\"primary\" onClick={() => {\r\n onSave()\r\n }}>{t(\"save\")}</Button>\r\n </ModalFooter>\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default forwardRef(SwitchTeacherModal)\r\n","import React, { FC } from 'react'\r\nimport { Button, Card, CardBody, Collapse, Modal, ModalBody, ModalFooter, ModalHeader } from 'reactstrap'\r\nimport styles from '../../../styles.module.scss'\r\nimport { IOptions, IStaffAssign, StudentAssign } from '../constants/types'\r\nimport CustomSelector from '../../../components/Selectors/CustomSelector'\r\nimport { useTranslation } from 'react-i18next'\r\nimport TeacherSelector from './TeacherSelector'\r\nimport Select from 'react-select'\r\nimport { GRADE_DEFAULT } from '../constants/constants'\r\ninterface IProps {\r\n openDetailModal: boolean\r\n onClose: Function\r\n selectedUser: StudentAssign,\r\n staffBulkAssign: IStaffAssign\r\n teacherOptions: any[]\r\n assistantOptions: any[]\r\n counselorOptions: any[]\r\n secondaryTeacherOptions: any[]\r\n handleChangeTeacherBulk: Function\r\n handleChangeCounselorBulk: Function\r\n handleChangeStaffBulk: Function\r\n handleEditAssignForStudents: Function\r\n toggleCollapse: (index: number) => void\r\n activeIndex: number\r\n}\r\n\r\nconst AssignStudentModal: FC<IProps> = ({\r\n openDetailModal, onClose,\r\n selectedUser,\r\n staffBulkAssign,\r\n teacherOptions,\r\n handleChangeTeacherBulk,\r\n handleChangeCounselorBulk,\r\n assistantOptions,\r\n counselorOptions,\r\n secondaryTeacherOptions,\r\n handleChangeStaffBulk,\r\n handleEditAssignForStudents,\r\n toggleCollapse,\r\n activeIndex,\r\n}) => {\r\n const { t } = useTranslation()\r\n const dataCollapse = [\r\n selectedUser?.teachers || [],\r\n selectedUser?.counselors || [],\r\n ]\r\n\r\n return (\r\n <Modal\r\n centered\r\n isOpen={openDetailModal}\r\n toggle={() => onClose()}\r\n >\r\n <ModalHeader className={styles['header-assign-for-student']}>\r\n <div>Assign student {selectedUser?.fullName}</div>\r\n <div>Grade {selectedUser?.gradeLevel}</div>\r\n </ModalHeader>\r\n <ModalBody>\r\n {dataCollapse.map((arr: any[], index: number) => (\r\n <div key={index}>\r\n <button\r\n type='button'\r\n className={`btn ${styles['btn-collapse']} ${activeIndex === index ? 'btn-link ' : ''}`}\r\n onClick={() => toggleCollapse(index)}\r\n >\r\n {t(index === 0 ? 'current_teacher_name' : 'current_counselor_name')}{` `}\r\n {`(${arr.length})`}{` `}\r\n <i className={`fa fa-angle-${activeIndex === index ? 'up' : 'down'}`} />\r\n </button>\r\n <Collapse isOpen={activeIndex === index}>\r\n <Card>\r\n <CardBody>\r\n {arr.length > 0\r\n ? arr.map((item: any) => (\r\n index === 0\r\n ? (\r\n <li key={item.mainTeacherEmail}>{item.mainTeacherName} - {item.mainTeacherEmail}</li>\r\n )\r\n : (\r\n <li key={item.counselorUserId}>{item.counselorName} - {item.counselorEmail}</li>\r\n )))\r\n : <div>{t('no_data')}</div>\r\n }\r\n </CardBody>\r\n </Card>\r\n </Collapse>\r\n </div>\r\n ))}\r\n\r\n <div>{t('teacher_email')}</div>\r\n <CustomSelector\r\n isMulti\r\n value={staffBulkAssign.teacher\r\n .filter((e: any) => !selectedUser.teachers?.some((teacher: any) => teacher.teacherUserId === e.id))\r\n .map((e: any) => ({ label: e.email, value: e.id }))\r\n }\r\n options={teacherOptions.filter((e: any) => !selectedUser.teachers?.some((teacher: any) => teacher.teacherUserId === e.value))}\r\n placeholder={t(\"select_teacher\")}\r\n className={`flex-grow-1 mb-3 ${styles['custom-chip-teacher-select']}`}\r\n onChange={(value: any[]) => {\r\n const data = value.map((e: any) => ({\r\n id: e.value,\r\n email: e.label,\r\n }))\r\n handleChangeTeacherBulk(data)\r\n }}\r\n isClearable={true}\r\n style={{ maxWidth: 120 }}\r\n />\r\n\r\n <div>{t('assistant_email')}</div>\r\n <TeacherSelector\r\n value={assistantOptions.find(r => r.value == staffBulkAssign.assistantId || r.label == staffBulkAssign.assistantEmail) || null}\r\n options={assistantOptions}\r\n onChange={(e: IOptions) => {\r\n handleChangeStaffBulk(\"assistant\", e)\r\n }}\r\n placeholder={t(\"select_assistant\")}\r\n className=\"flex-grow-1 mb-3\"\r\n />\r\n <div>{t('counselor_email')}</div>\r\n <CustomSelector\r\n isMulti\r\n value={staffBulkAssign.counselors\r\n .filter((e: any) => !selectedUser.counselors?.some((counselor: any) => counselor.counselorUserId === e.id))\r\n .map((e: any) => ({ label: e.email, value: e.id }))\r\n }\r\n options={counselorOptions.filter((e: any) => !selectedUser.counselors?.some((counselor: any) => counselor.counselorUserId === e.value))}\r\n placeholder={t(\"select_counselor\")}\r\n className={`flex-grow-1 mb-3 ${styles['custom-chip-teacher-select']}`}\r\n onChange={(value: any[]) => {\r\n const data = value.map((e: any) => ({\r\n id: e.value,\r\n email: e.label,\r\n }))\r\n handleChangeCounselorBulk(data)\r\n }}\r\n isClearable={true}\r\n style={{ maxWidth: 120 }}\r\n />\r\n <div>{t('support_teacher_email')}</div>\r\n <TeacherSelector\r\n value={secondaryTeacherOptions.find(r => r.value == staffBulkAssign.secondaryTeacherId || r.label == staffBulkAssign.secondaryTeacherEmail) || null}\r\n options={secondaryTeacherOptions}\r\n onChange={(e: IOptions) => {\r\n handleChangeStaffBulk(\"secondary\", e)\r\n }}\r\n placeholder={t(\"select_support_teacher\")}\r\n className=\"flex-grow-1\"\r\n />\r\n <div>{t('grade')}</div>\r\n <Select\r\n value={GRADE_DEFAULT.find(e => e.value === staffBulkAssign.gradeLevel)}\r\n options={GRADE_DEFAULT}\r\n placeholder={t(\"select_grade\")}\r\n className=\"flex-grow-1 mb-3\"\r\n onChange={(value: any) => {\r\n handleChangeStaffBulk(\"grade\", value)\r\n }}\r\n styles={{\r\n container: (provided) => ({ ...provided, maxWidth: 120 })\r\n }}\r\n />\r\n </ModalBody>\r\n <ModalFooter className=\"text-right\">\r\n <Button onClick={() => onClose()}>{t(\"cancel\")}</Button>\r\n <Button color=\"primary\" onClick={() => {\r\n handleEditAssignForStudents()\r\n }}>{t(\"save\")}</Button>\r\n </ModalFooter>\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default AssignStudentModal","import React, { FC } from \"react\"\r\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from \"reactstrap\"\r\nimport styles from \"../../../styles.module.scss\"\r\nimport { ITeachers } from \"../constants/types\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\ninterface IProps {\r\n open: boolean\r\n onClose: Function\r\n teachers: ITeachers[]\r\n onConfirm: Function\r\n teacherSwitchUserId: string\r\n setTeacherSwitchUserId: Function\r\n}\r\n\r\nconst SwitchDataTeacherModel: FC<IProps> = ({\r\n open,\r\n onClose,\r\n teachers,\r\n onConfirm,\r\n teacherSwitchUserId,\r\n setTeacherSwitchUserId\r\n}) => {\r\n const { t } = useTranslation()\r\n\r\n return (\r\n <Modal centered isOpen={open} toggle={() => onClose()}>\r\n <ModalHeader className={styles[\"header-assign-for-student\"]}>\r\n <div>Select teacher switch data</div>\r\n </ModalHeader>\r\n <ModalBody className=\"p-0\">\r\n <div className={styles[\"switch-data-teachers\"]}>\r\n {teachers.map(r => (\r\n <p\r\n onClick={() => setTeacherSwitchUserId(r.teacherUserId)}\r\n className={`${styles[\"switch-data-teacher-item\"]} ${\r\n r.teacherUserId == teacherSwitchUserId\r\n ? styles[\"item-checked\"]\r\n : \"\"\r\n }`}\r\n >\r\n {r.mainTeacherName}\r\n </p>\r\n ))}\r\n </div>\r\n </ModalBody>\r\n <ModalFooter className=\"text-right\">\r\n <Button onClick={() => onClose()}>{t(\"cancel\")}</Button>\r\n <Button\r\n disabled={!teacherSwitchUserId}\r\n color=\"primary\"\r\n onClick={async () => {\r\n await onConfirm(teacherSwitchUserId)\r\n onClose()\r\n }}\r\n >\r\n {t(\"save\")}\r\n </Button>\r\n </ModalFooter>\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default SwitchDataTeacherModel\r\n","import React from \"react\"\r\nimport { IRemoveTeacher, Option } from \"../constants/types\"\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport styles from \"../../../styles.module.scss\"\r\n\r\nconst RemoveTeacher = ({\r\n teachers,\r\n onChangeStaffRemove,\r\n switchStaffUsers\r\n}: IRemoveTeacher) => {\r\n const { t } = useTranslation()\r\n return (\r\n <div>\r\n <h6>Select teacher to remove</h6>\r\n <CustomSelector\r\n isMulti\r\n value={\r\n teachers.filter(t =>\r\n switchStaffUsers.teacherRemoveUserIds.includes(t.value)\r\n ) || []\r\n }\r\n options={\r\n teachers.filter(\r\n r =>\r\n !switchStaffUsers.teacherRemoveUserIds.includes(\r\n r.value\r\n ) &&\r\n r.value !== switchStaffUsers.teacherSwitchDataUserId\r\n ) || []\r\n }\r\n placeholder={t(\"select_teacher\")}\r\n className={`flex-grow-1 mb-3 ${styles[\"custom-chip-teacher-select\"]}`}\r\n onChange={(value: Option[]) => {\r\n onChangeStaffRemove({\r\n teacherRemoveUserIds: value.map(v => v.value)\r\n })\r\n }}\r\n isClearable={true}\r\n />\r\n\r\n <h6 className=\"mt-3\">Select the teacher to transfer data to</h6>\r\n <CustomSelector\r\n value={\r\n teachers.find(\r\n t => switchStaffUsers.teacherSwitchDataUserId == t.value\r\n ) || null\r\n }\r\n options={\r\n teachers.filter(\r\n r =>\r\n !switchStaffUsers.teacherRemoveUserIds.includes(\r\n r.value\r\n ) &&\r\n r.value !== switchStaffUsers.teacherSwitchDataUserId\r\n ) || []\r\n }\r\n placeholder={t(\"select_teacher\")}\r\n className={`flex-grow-1 mb-3 ${styles[\"custom-chip-teacher-select\"]}`}\r\n onChange={(value: Option) => {\r\n console.log(\"value\", value)\r\n onChangeStaffRemove({\r\n teacherSwitchDataUserId: value?.value\r\n })\r\n }}\r\n isClearable={true}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default RemoveTeacher\r\n","import React from \"react\"\r\nimport { IRemoveCounselor, Option } from \"../constants/types\"\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport styles from \"../../../styles.module.scss\"\r\n\r\nconst RemoveCounselor = ({\r\n counselors,\r\n onChangeStaffRemove,\r\n switchStaffUsers\r\n}: IRemoveCounselor) => {\r\n const { t } = useTranslation()\r\n return (\r\n <div>\r\n <h6>Select counselor to remove</h6>\r\n <CustomSelector\r\n isMulti\r\n value={\r\n counselors.filter(t =>\r\n switchStaffUsers.counselorRemoveUserIds.includes(t.value)\r\n ) || []\r\n }\r\n options={\r\n counselors.filter(\r\n r =>\r\n !switchStaffUsers.counselorRemoveUserIds.includes(\r\n r.value\r\n ) &&\r\n r.value !== switchStaffUsers.counselorSwitchDataUserId\r\n ) || []\r\n }\r\n placeholder={t(\"select_counselor\")}\r\n className={`flex-grow-1 mb-3 ${styles[\"custom-chip-teacher-select\"]}`}\r\n onChange={(value: Option[]) => {\r\n onChangeStaffRemove({\r\n counselorRemoveUserIds: value.map(v => v.value)\r\n })\r\n }}\r\n isClearable={true}\r\n />\r\n\r\n <h6 className=\"mt-3\">Select the counselor to transfer data to</h6>\r\n <CustomSelector\r\n value={\r\n counselors.find(\r\n t => switchStaffUsers.counselorSwitchDataUserId == t.value\r\n ) || null\r\n }\r\n options={\r\n counselors.filter(\r\n r =>\r\n !switchStaffUsers.counselorRemoveUserIds.includes(\r\n r.value\r\n ) &&\r\n r.value !== switchStaffUsers.counselorSwitchDataUserId\r\n ) || []\r\n }\r\n placeholder={t(\"select_counselor\")}\r\n className={`flex-grow-1 mb-3 ${styles[\"custom-chip-counselor-select\"]}`}\r\n onChange={(value: Option) => {\r\n onChangeStaffRemove({\r\n counselorSwitchDataUserId: value?.value\r\n })\r\n }}\r\n isClearable={true}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default RemoveCounselor\r\n","import { useState } from \"react\"\r\nimport {\r\n Col,\r\n Nav,\r\n NavItem,\r\n NavLink,\r\n Row,\r\n TabContent,\r\n TabPane\r\n} from \"reactstrap\"\r\nimport React from \"react\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\ninterface ITab {\r\n title: string\r\n component: React.ComponentType<any>\r\n}\r\n\r\ninterface Props {\r\n tabs: ITab[]\r\n}\r\n\r\nconst TabsWithComponent = ({ tabs }: Props) => {\r\n const { t } = useTranslation()\r\n const [activeTabKey, setActiveTabKey] = useState<number>(0)\r\n\r\n const toggle = (key: number) => {\r\n setActiveTabKey(key)\r\n }\r\n\r\n const renderContent = () => {\r\n return (\r\n <Row>\r\n <Col xl={12}>\r\n <Nav tabs>\r\n {tabs.map((tab: ITab, index: number) => {\r\n const isActive = index === activeTabKey\r\n return (\r\n <NavItem key={index}>\r\n <NavLink\r\n className={`${\r\n isActive ? \"active\" : \"\"\r\n } cursor-pointer`}\r\n onClick={() => toggle(index)}\r\n >\r\n {t(tab.title)}\r\n </NavLink>\r\n </NavItem>\r\n )\r\n })}\r\n </Nav>\r\n <TabContent\r\n activeTab={activeTabKey}\r\n className=\"border-bottom-0 border-left-0 border-right-0 p-3\"\r\n >\r\n {tabs.map((tab: ITab, index: number) => {\r\n return (\r\n <TabPane key={index} tabId={index}>\r\n {<tab.component />}\r\n </TabPane>\r\n )\r\n })}\r\n </TabContent>\r\n </Col>\r\n </Row>\r\n )\r\n }\r\n\r\n return <div className=\"animated fadeIn\">{renderContent()}</div>\r\n}\r\n\r\nexport default TabsWithComponent\r\n","import React from \"react\"\r\nimport { IRemoveAssistant, Option } from \"../constants/types\"\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport styles from \"../../../styles.module.scss\"\r\n\r\nconst RemoveAssistant = ({\r\n assistants,\r\n onChangeStaffRemove,\r\n switchStaffUsers\r\n}: IRemoveAssistant) => {\r\n const { t } = useTranslation()\r\n return (\r\n <div>\r\n <h6>Select assistant to remove</h6>\r\n <CustomSelector\r\n isMulti\r\n value={\r\n assistants.filter(t =>\r\n switchStaffUsers.assistantRemoveUserId.includes(t.value)\r\n ) || []\r\n }\r\n options={\r\n assistants.filter(\r\n r =>\r\n !switchStaffUsers.assistantRemoveUserId.includes(\r\n r.value\r\n ) &&\r\n r.value !== switchStaffUsers.assistantSwitchDataUserId\r\n ) || []\r\n }\r\n placeholder={t(\"select_assistant\")}\r\n className={`flex-grow-1 mb-3 ${styles[\"custom-chip-teacher-select\"]}`}\r\n onChange={(value: Option[]) => {\r\n onChangeStaffRemove({\r\n assistantRemoveUserId: value.map(v => v.value)\r\n })\r\n }}\r\n isClearable={true}\r\n />\r\n\r\n <h6 className=\"mt-3\">Select the assistant to transfer data to</h6>\r\n <CustomSelector\r\n value={\r\n assistants.find(\r\n t =>\r\n switchStaffUsers.assistantSwitchDataUserId ==\r\n t.value\r\n ) || null\r\n }\r\n options={\r\n assistants.filter(\r\n r =>\r\n !switchStaffUsers.assistantRemoveUserId.includes(\r\n r.value\r\n ) &&\r\n r.value !==\r\n switchStaffUsers.assistantSwitchDataUserId\r\n ) || []\r\n }\r\n placeholder={t(\"select_assistant\")}\r\n className={`flex-grow-1 mb-3 ${styles[\"custom-chip-assistant-select\"]}`}\r\n onChange={(value: Option) => {\r\n console.log(\"value\", value)\r\n onChangeStaffRemove({\r\n assistantSwitchDataUserId: value?.value\r\n })\r\n }}\r\n isClearable={true}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default RemoveAssistant\r\n","import React from \"react\"\r\nimport { IRemoveSupportTeacher, Option } from \"../constants/types\"\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport styles from \"../../../styles.module.scss\"\r\n\r\nconst RemoveSupportTeacher = ({\r\n secondaryTeachers,\r\n onChangeStaffRemove,\r\n switchStaffUsers\r\n}: IRemoveSupportTeacher) => {\r\n const { t } = useTranslation()\r\n return (\r\n <div>\r\n <h6>Select support teacher to remove</h6>\r\n <CustomSelector\r\n isMulti\r\n value={\r\n secondaryTeachers.filter(t =>\r\n switchStaffUsers.supportTeacherRemoveUserIds.includes(t.value)\r\n ) || []\r\n }\r\n options={\r\n secondaryTeachers.filter(\r\n r =>\r\n !switchStaffUsers.supportTeacherRemoveUserIds.includes(\r\n r.value\r\n ) &&\r\n r.value !== switchStaffUsers.supportTeacherSwitchDataUserId\r\n ) || []\r\n }\r\n placeholder={t(\"select_support_teacher\")}\r\n className={`flex-grow-1 mb-3 ${styles[\"custom-chip-teacher-select\"]}`}\r\n onChange={(value: Option[]) => {\r\n onChangeStaffRemove({\r\n supportTeacherRemoveUserIds: value.map(v => v.value)\r\n })\r\n }}\r\n isClearable={true}\r\n />\r\n\r\n <h6 className=\"mt-3\">\r\n Select the support teacher to transfer data to\r\n </h6>\r\n <CustomSelector\r\n value={\r\n secondaryTeachers.find(\r\n t =>\r\n switchStaffUsers.supportTeacherSwitchDataUserId ==\r\n t.value\r\n ) || null\r\n }\r\n options={\r\n secondaryTeachers.filter(\r\n r =>\r\n !switchStaffUsers.supportTeacherRemoveUserIds.includes(\r\n r.value\r\n ) &&\r\n r.value !==\r\n switchStaffUsers.supportTeacherSwitchDataUserId\r\n ) || []\r\n }\r\n placeholder={t(\"select_support_teacher\")}\r\n className={`flex-grow-1 mb-3 ${styles[\"custom-chip-teacher-select\"]}`}\r\n onChange={(value: Option) => {\r\n onChangeStaffRemove({\r\n supportTeacherSwitchDataUserId: value?.value\r\n })\r\n }}\r\n isClearable={true}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default RemoveSupportTeacher\r\n","import React from \"react\"\r\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from \"reactstrap\"\r\nimport { IDeleteBulkModel } from \"../constants/types\"\r\nimport styles from \"../../../styles.module.scss\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport RemoveTeacher from \"./RemoveTeacher\"\r\nimport RemoveCounselor from \"./RemoveCounselor\"\r\nimport TabsWithComponent from \"../../../components/Tabs/TabsWithComponent\"\r\nimport RemoveAssistant from \"./RemoveAssistant\"\r\nimport RemoveSupportTeacher from \"./RemoveSupportTeacher\"\r\n\r\nconst DeleteBulkModel = ({\r\n open,\r\n onClose,\r\n teachers,\r\n onChangeStaffRemove,\r\n switchStaffUsers,\r\n assistants,\r\n onRemoveBulkStaff,\r\n counselors,\r\n studentUserIds,\r\n secondaryTeachers\r\n}: IDeleteBulkModel) => {\r\n const { t } = useTranslation()\r\n\r\n const tabs = [\r\n {\r\n title: \"Remove Teacher\",\r\n component: () => (\r\n <RemoveTeacher\r\n teachers={teachers}\r\n onChangeStaffRemove={onChangeStaffRemove}\r\n switchStaffUsers={switchStaffUsers}\r\n />\r\n )\r\n },\r\n {\r\n title: \"Remove Assistant\",\r\n component: () => (\r\n <RemoveAssistant\r\n assistants={assistants}\r\n onChangeStaffRemove={onChangeStaffRemove}\r\n switchStaffUsers={switchStaffUsers}\r\n />\r\n )\r\n },\r\n {\r\n title: \"Remove Counselor\",\r\n component: () => (\r\n <RemoveCounselor\r\n counselors={counselors}\r\n onChangeStaffRemove={onChangeStaffRemove}\r\n switchStaffUsers={switchStaffUsers}\r\n />\r\n )\r\n },\r\n {\r\n title: \"Remove Support Teacher\",\r\n component: () => (\r\n <RemoveSupportTeacher\r\n secondaryTeachers={secondaryTeachers}\r\n onChangeStaffRemove={onChangeStaffRemove}\r\n switchStaffUsers={switchStaffUsers}\r\n />\r\n )\r\n }\r\n ]\r\n return (\r\n <Modal size=\"lg\" centered isOpen={open} toggle={() => onClose()}>\r\n <ModalHeader\r\n className={`${styles[\"header-assign-for-student\"]} border-0`}\r\n >\r\n <div>Remove Bulk</div>\r\n </ModalHeader>\r\n <ModalBody className=\"p-0\">\r\n <TabsWithComponent tabs={tabs} />\r\n </ModalBody>\r\n <ModalFooter className=\"text-right\">\r\n <Button onClick={() => onClose()}>{t(\"cancel\")}</Button>\r\n <Button\r\n disabled={\r\n !switchStaffUsers.teacherRemoveUserIds.length &&\r\n !switchStaffUsers.assistantRemoveUserId &&\r\n !switchStaffUsers.counselorRemoveUserIds.length\r\n }\r\n color=\"primary\"\r\n onClick={async () => {\r\n await onRemoveBulkStaff(studentUserIds)\r\n }}\r\n >\r\n Remove\r\n </Button>\r\n </ModalFooter>\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default DeleteBulkModel\r\n","import React, { useState } from \"react\"\r\nimport { Col, Row, Table, Button, Modal, ModalHeader, ModalFooter, ModalBody, CardText, Tooltip } from \"reactstrap\"\r\n// import { AiOutlineSortAscending, AiOutlineSortDescending } from \"react-icons/ai\"\r\n// import styles from \"../../../styles.module.scss\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport SearchBox from \"../../../components/Inputs/SearchBox\"\r\nimport { IOptions, SearchBy, StudentAssign, UserColumn, UserOrder, ITeachers, ICounselor } from \"../constants/types\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport TeacherSelector from \"../components/TeacherSelector\"\r\nimport useAssignStudentList from \"../hooks/useAssignStudentList\"\r\nimport useCounselorList from \"../hooks/useCounselorList\"\r\nimport useAssistantList from \"../hooks/useAssistantList\"\r\nimport useSecondaryTeacherList from \"../hooks/useSecondaryTeacherList\"\r\nimport useTeacherList from \"../hooks/useTeacherList\"\r\nimport useAssignStudent from \"../hooks/useAssignStudent\"\r\nimport TableHeader from \"../components/TableHeader\"\r\nimport { IoIosWarning } from \"react-icons/io\";\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\nimport styles from '../../../styles.module.scss'\r\nimport SwitchTeacherModal from \"../components/SwitchTeacherModal\"\r\nimport AssignStudentModal from \"../components/AssignStudentModal\"\r\nimport SwitchDataTeacherModel from \"../components/SwitchDataTeacherModel\"\r\nimport DeleteBulkModel from \"../components/DeleteBulkModel\"\r\n\r\n\r\nconst AssignStudentList = () => {\r\n const { t } = useTranslation()\r\n\r\n const {\r\n selectedTeachers,\r\n teacherOptions,\r\n setSelectedTeachers\r\n } = useTeacherList()\r\n\r\n const {\r\n selectedAssistants,\r\n assistantOptions,\r\n setSelectedAssistants\r\n } = useAssistantList()\r\n\r\n const {\r\n selectedCounselors,\r\n counselorOptions,\r\n setSelectedCounselors\r\n } = useCounselorList()\r\n\r\n const {\r\n selectedSecondaryTeachers,\r\n secondaryTeacherOptions,\r\n setSelectedSecondaryTeachers\r\n } = useSecondaryTeacherList()\r\n\r\n const {\r\n isCheck,\r\n isCheckAll,\r\n userList,\r\n filters,\r\n totalItem,\r\n handleClickCheck,\r\n handleSelectAll,\r\n changeFilters,\r\n fullName,\r\n handleRetrievedData,\r\n selectedUser, setSelectedUser,\r\n getDataUserList,\r\n userSelected,\r\n studentTeacherSelected,\r\n studentCounselorSelected,\r\n studentAssistantSelected,\r\n studentSecondaryTeacherSelected\r\n } = useAssignStudentList()\r\n\r\n const handleResetData = () => {\r\n handleRetrievedData()\r\n setSelectedTeachers(undefined)\r\n setSelectedAssistants(undefined)\r\n setSelectedCounselors(undefined)\r\n setSelectedSecondaryTeachers(undefined)\r\n }\r\n\r\n const {\r\n openModelBulk,\r\n handleToggleModel,\r\n staffBulkAssign,\r\n handleChangeStaffBulk,\r\n onAssignStaffToStudents,\r\n handleToggleInactiveModal,\r\n openInactiveModal,\r\n handleInactiveStudents,\r\n handleChangeTeacherBulk,\r\n handleChangeCounselorBulk,\r\n handleEditAssignForStudents,\r\n // handleToggleSwitchModel,\r\n modalType,\r\n openSwitchModal,\r\n optionsSwitch,\r\n textModal,\r\n teacherSwitchList,\r\n onCloseSwitchModal,\r\n handleUpdateSwitch,\r\n setTeacherChangeUserId,\r\n setTeacherSelectForChangeUserId,\r\n teacherSelectForChangeUserId,\r\n openDetailModal, setOpenDetailModal,\r\n toggleCollapse, activeIndex, onClose,\r\n removeTeacherUserIds,\r\n // onSelectRemoveTeacher,\r\n openModelSwitchDataTeacher,\r\n onToggleModelSwitchDataTeacher,\r\n teacherSwitchUserId,\r\n setTeacherSwitchUserId,\r\n onToggleModelDeleteBulk,\r\n openModelDeleteBulk,\r\n handelChangeStaffRemove,\r\n switchStaffUsers,\r\n handleRemoveBulkStaff\r\n } = useAssignStudent(\r\n selectedTeachers,\r\n selectedAssistants,\r\n selectedCounselors,\r\n selectedSecondaryTeachers,\r\n handleResetData,\r\n selectedUser,\r\n getDataUserList,\r\n userSelected\r\n )\r\n\r\n const AssignStudentColumns: UserColumn[] = [\r\n {\r\n name: \"\",\r\n isCenter: true,\r\n onSelectAll: handleSelectAll,\r\n isCheckAll: isCheckAll,\r\n className: `align-top ${styles['fixed-width-40']}`,\r\n\r\n },\r\n {\r\n name: \"student_name\",\r\n isCenter: true,\r\n sortBy: UserOrder.Name,\r\n searchBy: SearchBy.Name,\r\n className: `align-top ${styles['fixed-width']}`,\r\n getOption: (user: string) => {\r\n return {\r\n label: user || \"empty\",\r\n value: user\r\n }\r\n }\r\n },\r\n {\r\n name: \"grade\",\r\n isCenter: true,\r\n sortBy: UserOrder.Grade,\r\n searchBy: SearchBy.Grade,\r\n className: `align-center justify-center ${styles['fixed-width-80']}`,\r\n getOption: (grade: string) => {\r\n return {\r\n label: grade || \"empty\",\r\n value: grade\r\n }\r\n }\r\n },\r\n {\r\n name: \"teacher_emails\",\r\n isCenter: true,\r\n className: \"align-center justify-center\",\r\n sortBy: UserOrder.Teacher,\r\n searchBy: SearchBy.Teacher,\r\n getOption: (user: string) => {\r\n return {\r\n label: user || \"empty\",\r\n value: user\r\n }\r\n }\r\n },\r\n {\r\n name: \"assistant_email\",\r\n isCenter: true,\r\n className: \"align-center justify-center\",\r\n sortBy: UserOrder.Assistant,\r\n searchBy: SearchBy.Assistant,\r\n getOption: (user: string) => ({\r\n label: user || \"empty\",\r\n value: user\r\n })\r\n },\r\n {\r\n name: \"counselor_emails\",\r\n isCenter: true,\r\n className: \"align-center justify-center\",\r\n sortBy: UserOrder.Counselor,\r\n searchBy: SearchBy.Counselor,\r\n getOption: (user: string) => ({\r\n label: user || \"empty\",\r\n value: user\r\n })\r\n },\r\n {\r\n name: \"support_teacher_email\",\r\n isCenter: true,\r\n className: \"align-center justify-center\",\r\n sortBy: UserOrder.SecondaryTeacher,\r\n searchBy: SearchBy.SecondaryTeacher,\r\n getOption: (user: string) => ({\r\n label: user || \"empty\",\r\n value: user\r\n })\r\n },\r\n ]\r\n\r\n const [openTooltip, setOpenTooltip] = useState<string | null>(null);\r\n\r\n const toggle = (id: string) => {\r\n setOpenTooltip((prev) => (prev === id ? null : id));\r\n };\r\n\r\n return (\r\n <div className=\"fadeIn animated\">\r\n <h5 className=\"mt-4 mb-2\">{t(\"assign_student\")}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={3}>\r\n <SearchBox\r\n initValue={filters?.searchString || \"\"}\r\n onSearch={(searchString?: any) =>\r\n changeFilters({ searchString: searchString })\r\n }\r\n placeholder={t(\"type_something_to_search_students\")}\r\n />\r\n </Col>\r\n <Col md={8} className=\"d-flex justify-content-end align-items-center\">\r\n <Row className=\"mb-2\">\r\n <Col style={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap', gap: 4 }}>\r\n {/* <Button onClick={() => handleToggleSwitchModel(userSelected, TeacherType.Teacher, teacherOptions)} color=\"primary\">\r\n {t(\"switch_teacher\")}\r\n </Button>\r\n <Button onClick={() => handleToggleSwitchModel(userSelected, TeacherType.Assistant, assistantOptions)} color=\"primary\">\r\n {t(\"switch_assistant\")}\r\n </Button>\r\n <Button onClick={() => handleToggleSwitchModel(userSelected, TeacherType.Counselor, counselorOptions)} color=\"primary\">\r\n {t(\"switch_counselor\")}\r\n </Button>\r\n <Button onClick={() => handleToggleSwitchModel(userSelected, TeacherType.SecondaryTeacher, secondaryTeacherOptions)} color=\"primary\">\r\n {t(\"switch_support_teacher\")}\r\n </Button> */}\r\n <Button onClick={() => handleToggleModel(isCheck)} color=\"primary\">\r\n {t(\"assign_bulk\")}\r\n </Button>\r\n <Button onClick={() => onToggleModelDeleteBulk(isCheck)} color=\"primary\">\r\n {t(\"delete_bulk\")}\r\n </Button>\r\n <Button onClick={() => handleToggleInactiveModal(isCheck)} color=\"primary\">\r\n {t(\"inactive_students\")}\r\n </Button>\r\n </Col>\r\n </Row>\r\n </Col>\r\n <Col\r\n md={1}\r\n className=\"d-flex justify-content-end align-items-center\"\r\n >\r\n {t(\"total_of_users\")}: {totalItem}\r\n </Col>\r\n </Row>\r\n <Modal centered isOpen={openModelBulk} toggle={() => handleToggleModel()}>\r\n <ModalHeader>{t(\"assign_bulk_student\")}</ModalHeader>\r\n <ModalBody>\r\n <CustomSelector\r\n isMulti\r\n value={staffBulkAssign.teacher.map((e: any) => ({ label: e.email, value: e.id }))}\r\n options={teacherOptions}\r\n placeholder={t(\"select_teacher\")}\r\n className={`flex-grow-1 mb-3 ${styles['custom-chip-teacher-select']}`}\r\n onChange={(value: any[]) => {\r\n const data = value.map((e: any) => ({\r\n id: e.value,\r\n email: e.label,\r\n }))\r\n handleChangeTeacherBulk(data)\r\n }}\r\n isClearable={true}\r\n style={{ maxWidth: 120 }}\r\n />\r\n\r\n <TeacherSelector\r\n value={assistantOptions.find(r => r.value == staffBulkAssign.assistantId || r.label == staffBulkAssign.assistantEmail) || null}\r\n options={assistantOptions}\r\n onChange={(e: IOptions) => handleChangeStaffBulk(\"assistant\", e)}\r\n placeholder={t(\"select_assistant\")}\r\n className=\"flex-grow-1 mb-3\"\r\n />\r\n <CustomSelector\r\n isMulti\r\n value={staffBulkAssign.counselors.map((e: any) => ({ label: e.email, value: e.id }))}\r\n options={counselorOptions}\r\n placeholder={t(\"select_counselor\")}\r\n className={`flex-grow-1 mb-3 ${styles['custom-chip-teacher-select']}`}\r\n onChange={(value: any[]) => {\r\n const data = value.map((e: any) => ({\r\n id: e.value,\r\n email: e.label,\r\n }))\r\n handleChangeCounselorBulk(data)\r\n }}\r\n isClearable={true}\r\n style={{ maxWidth: 120 }}\r\n />\r\n <TeacherSelector\r\n value={secondaryTeacherOptions.find(r => r.value == staffBulkAssign.secondaryTeacherId || r.label == staffBulkAssign.secondaryTeacherEmail) || null}\r\n options={secondaryTeacherOptions}\r\n onChange={(e: IOptions) => handleChangeStaffBulk(\"secondary\", e)}\r\n placeholder={t(\"select_support_teacher\")}\r\n className=\"flex-grow-1\"\r\n />\r\n </ModalBody>\r\n <ModalFooter className=\"text-right\">\r\n <Button onClick={() => handleToggleModel()}>{t(\"cancel\")}</Button>\r\n <Button color=\"primary\" onClick={() => onAssignStaffToStudents(isCheck)}>{t(\"assign\")}</Button>\r\n </ModalFooter>\r\n </Modal>\r\n\r\n <Modal centered isOpen={openInactiveModal} toggle={() => handleToggleInactiveModal()}>\r\n <ModalHeader>{t(\"inactive_students\")}</ModalHeader>\r\n <ModalBody style={{ display: 'flex', gap: 12 }}>\r\n <IoIosWarning color=\"red\" size={30} />\r\n <CardText style={{ fontSize: 20, margin: 0, display: 'flex', alignItems: 'center' }}>\r\n {t(\"are_you_sure_you_want_to_inactive_students\", { number: isCheck.length })}\r\n </CardText>\r\n </ModalBody>\r\n <ModalFooter className=\"text-right\">\r\n <Button onClick={() => handleToggleInactiveModal()}>{t(\"cancel\")}</Button>\r\n <Button color=\"primary\" onClick={() => handleInactiveStudents(isCheck, handleResetData)}>{t(\"confirm\")}</Button>\r\n </ModalFooter>\r\n </Modal>\r\n\r\n <Row className=\"mb-2\">\r\n <Col md={12}>\r\n\r\n <div>\r\n <Table bordered hover striped size=\"sm\" className={`${styles['table-fixed']}`}>\r\n <thead>\r\n <TableHeader\r\n headers={AssignStudentColumns}\r\n filters={filters}\r\n fullName={fullName}\r\n onChangeFilters={changeFilters}\r\n teacherOptions={teacherOptions}\r\n assistantOptions={assistantOptions}\r\n counselorOptions={counselorOptions}\r\n secondaryTeacherOptions={secondaryTeacherOptions}\r\n />\r\n </thead>\r\n {!!userList && userList.length > 0 ? (\r\n <tbody>\r\n {userList.map((item: StudentAssign, index: number) => (\r\n <tr key={item.id}>\r\n <td className={`align-middle text-center ${styles['fixed-width-40']}`}>\r\n <input\r\n id={item.id}\r\n type=\"checkbox\"\r\n onChange={handleClickCheck}\r\n checked={isCheck.includes(\r\n item.id\r\n )}\r\n />\r\n </td>\r\n <td\r\n className={`align-middle ${styles['fixed-width']}`}\r\n id={`student_name_${item.id}_${index}`}\r\n onMouseEnter={() => toggle(`student_name_${item.id}_${index}`)}\r\n onMouseLeave={() => toggle(`student_name_${item.id}_${index}`)}\r\n >\r\n <button\r\n type=\"button\"\r\n className={`${styles[\"button-user-name\"]} btn-link`}\r\n onClick={() => {\r\n setSelectedUser(item)\r\n setOpenDetailModal(true)\r\n }}\r\n >\r\n {item.fullName}\r\n </button>\r\n <Tooltip\r\n placement=\"top\"\r\n isOpen={openTooltip === `student_name_${item.id}_${index}`}\r\n target={`student_name_${item.id}_${index}`}\r\n >\r\n {item.fullName}\r\n </Tooltip>\r\n </td>\r\n <td\r\n className={`align-middle ${styles['fixed-width']}`}\r\n id={`student_email_${item.id}_${index}`}\r\n onMouseEnter={() => toggle(`student_email_${item.id}_${index}`)}\r\n onMouseLeave={() => toggle(`student_email_${item.id}_${index}`)}\r\n >\r\n <p>{item.gradeLevel}</p>\r\n </td>\r\n <td\r\n className={`align-middle ${styles['equal-width']}`}\r\n id={`student_teacher_${item.id}_${index}`}\r\n onMouseEnter={() => toggle(`student_teacher_${item.id}_${index}`)}\r\n onMouseLeave={() => toggle(`student_teacher_${item.id}_${index}`)}\r\n >\r\n {\r\n !!item.teachers && item.teachers.length > 0 &&\r\n <React.Fragment>\r\n {\r\n item.teachers.map((record: ITeachers) => (\r\n <p key={record.mainTeacherEmail} className=\"mb-0\">{record.mainTeacherName} - {record.mainTeacherEmail}</p>\r\n ))\r\n }\r\n </React.Fragment>\r\n }\r\n {!!item.teachers && item.teachers.length > 0 && <Tooltip\r\n placement=\"top\"\r\n isOpen={openTooltip === `student_teacher_${item.id}_${index}`}\r\n target={`student_teacher_${item.id}_${index}`}\r\n >\r\n {\r\n item.teachers.map((record: ITeachers) => (\r\n <p key={record.mainTeacherEmail} className=\"mb-0\">{record.mainTeacherName} - {record.mainTeacherEmail}</p>\r\n ))\r\n }\r\n </Tooltip>}\r\n </td>\r\n <td\r\n className={`align-middle ${styles['equal-width']}`}\r\n id={`student_assistant_${item.id}_${index}`}\r\n onMouseEnter={() => toggle(`student_assistant_${item.id}_${index}`)}\r\n onMouseLeave={() => toggle(`student_assistant_${item.id}_${index}`)}\r\n >\r\n {\r\n !!item.assistantEmail &&\r\n <p className=\"mb-0\">{item.assistantName} - {item.assistantEmail}</p>\r\n }\r\n {!!item.assistantEmail && <Tooltip\r\n placement=\"top\"\r\n isOpen={openTooltip === `student_assistant_${item.id}_${index}`}\r\n target={`student_assistant_${item.id}_${index}`}\r\n >\r\n {item.assistantName}-{item.assistantEmail}\r\n </Tooltip>}\r\n </td>\r\n\r\n <td\r\n className={`align-middle ${styles['equal-width']}`}\r\n id={`student_counselor_${item.id}_${index}`}\r\n onMouseEnter={() => toggle(`student_counselor_${item.id}_${index}`)}\r\n onMouseLeave={() => toggle(`student_counselor_${item.id}_${index}`)}\r\n >\r\n {\r\n !!item.counselors && item.counselors.length > 0 &&\r\n <React.Fragment>\r\n {\r\n item.counselors.map((record: ICounselor) => (\r\n <p key={record.counselorUserId} className=\"mb-0\">{record.counselorName} - {record.counselorEmail}</p>\r\n ))\r\n }\r\n </React.Fragment>\r\n }\r\n {!!item.counselors && item.counselors.length > 0 && <Tooltip\r\n placement=\"top\"\r\n isOpen={openTooltip === `student_counselor_${item.id}_${index}`}\r\n target={`student_counselor_${item.id}_${index}`}\r\n >\r\n {\r\n item.counselors.map((record: ICounselor) => (\r\n <p key={record.counselorUserId} className=\"mb-0\">{record.counselorName} - {record.counselorEmail}</p>\r\n ))\r\n }\r\n </Tooltip>}\r\n </td>\r\n <td\r\n className={`align-middle ${styles['equal-width']}`}\r\n id={`student_secondary_teacher_${item.id}_${index}`}\r\n onMouseEnter={() => toggle(`student_secondary_teacher_${item.id}_${index}`)}\r\n onMouseLeave={() => toggle(`student_secondary_teacher_${item.id}_${index}`)}\r\n >\r\n {!!item.secondaryTeacherEmail && <p className=\"mb-0\">{item.secondaryTeacherName} - {item.secondaryTeacherEmail}</p>}\r\n {\r\n !!item.secondaryTeacherEmail &&\r\n <Tooltip\r\n placement=\"top\"\r\n isOpen={openTooltip === `student_secondary_teacher_${item.id}_${index}`}\r\n target={`student_secondary_teacher_${item.id}_${index}`}\r\n >\r\n {item.secondaryTeacherName} - {item.secondaryTeacherEmail}\r\n </Tooltip>\r\n }\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>) : (\r\n <div style={{ width: 'max-content', padding: 20 }}>{t('no_data')}</div>\r\n )}\r\n </Table>\r\n </div>\r\n\r\n </Col>\r\n <Col md={12}>\r\n <CustomPagination\r\n filters={filters}\r\n totalRecordCount={totalItem}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n <AssignStudentModal\r\n openDetailModal={openDetailModal}\r\n onClose={onClose}\r\n selectedUser={selectedUser}\r\n staffBulkAssign={staffBulkAssign}\r\n teacherOptions={teacherOptions}\r\n handleChangeTeacherBulk={handleChangeTeacherBulk}\r\n handleChangeCounselorBulk={handleChangeCounselorBulk}\r\n assistantOptions={assistantOptions}\r\n counselorOptions={counselorOptions}\r\n secondaryTeacherOptions={secondaryTeacherOptions}\r\n handleChangeStaffBulk={handleChangeStaffBulk}\r\n handleEditAssignForStudents={handleEditAssignForStudents}\r\n toggleCollapse={toggleCollapse}\r\n activeIndex={activeIndex}\r\n // removeTeacherUserIds={removeTeacherUserIds}\r\n // onSelectRemoveTeacher={onSelectRemoveTeacher}\r\n />\r\n <SwitchTeacherModal\r\n textModal={textModal}\r\n isOpen={openSwitchModal}\r\n teachers={teacherSwitchList}\r\n options={optionsSwitch}\r\n onClose={onCloseSwitchModal}\r\n onSave={handleUpdateSwitch}\r\n modalType={modalType}\r\n setTeacherChangeUserId={setTeacherChangeUserId}\r\n setTeacherSelectForChangeUserId={setTeacherSelectForChangeUserId}\r\n teacherSelectForChangeUserId={teacherSelectForChangeUserId}\r\n />\r\n\r\n <SwitchDataTeacherModel \r\n open={openModelSwitchDataTeacher} \r\n onClose={onToggleModelSwitchDataTeacher}\r\n teachers={selectedUser?.teachers?.filter(r => !removeTeacherUserIds.includes(r.teacherUserId)) || []}\r\n onConfirm={handleEditAssignForStudents}\r\n teacherSwitchUserId={teacherSwitchUserId}\r\n setTeacherSwitchUserId={setTeacherSwitchUserId}\r\n />\r\n\r\n <DeleteBulkModel\r\n open={openModelDeleteBulk}\r\n onClose={onToggleModelDeleteBulk}\r\n teachers={studentTeacherSelected}\r\n onChangeStaffRemove={handelChangeStaffRemove}\r\n switchStaffUsers={switchStaffUsers}\r\n counselors={studentCounselorSelected}\r\n assistants={studentAssistantSelected}\r\n onRemoveBulkStaff={handleRemoveBulkStaff}\r\n studentUserIds={isCheck}\r\n secondaryTeachers={studentSecondaryTeacherSelected}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default AssignStudentList\r\n","import { useDispatch } from \"react-redux\"\r\nimport { useEffect, useState } from \"react\"\r\nimport { getTeacher } from \"../../../services/accountService\"\r\nimport { setAlert } from \"../../../redux/commons/action\"\r\nimport { USER_CHOICE } from \"../constants/types\"\r\nimport { initialUserChoice } from \"../constants/constants\"\r\n\r\nconst useUserDeletedModal = () => {\r\n const dispatch = useDispatch()\r\n const [userChoiced, setUserChoiced] = useState<USER_CHOICE>(\r\n initialUserChoice\r\n )\r\n const [teacherList, setTeacherList] = useState([])\r\n const [teacherChangeId, setTeacherChangeId] = useState<string>(\"\")\r\n\r\n const getAllTeacher = async () => {\r\n try {\r\n const res = await getTeacher()\r\n setTeacherList(res.data)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n }\r\n\r\n const options = teacherList.map((record: any) => ({\r\n label: `${record.name} - ${record.email}`,\r\n value: record.id\r\n }))\r\n\r\n useEffect(() => {\r\n userChoiced.roles?.includes(\"Teacher\") && getAllTeacher()\r\n }, [userChoiced])\r\n\r\n return {\r\n userChoiced,\r\n setUserChoiced,\r\n teacherList,\r\n options,\r\n setTeacherChangeId,\r\n teacherChangeId\r\n }\r\n}\r\nexport default useUserDeletedModal\r\n","import { useCallback, useEffect, useRef, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport useUserDeletedModal from \"./useUserDeletedModal\"\r\nimport useFilters from \"../../../hooks/useFilters\"\r\nimport { setAlert, setLoading, setModal } from \"../../../redux/commons/action\"\r\nimport { get, remove } from \"../../../services/accountService\"\r\nimport { USER_CHOICE } from \"../constants/types\"\r\nimport { initialUserChoice } from \"../constants/constants\"\r\n\r\nconst TITLE = \"User deleted list\"\r\nconst useUserDeletedList = () => {\r\n // const navigate = useNavigate()\r\n const {\r\n userChoiced,\r\n setUserChoiced,\r\n options,\r\n teacherChangeId,\r\n setTeacherChangeId\r\n } = useUserDeletedModal()\r\n const [userList, setUserList] = useState<USER_CHOICE[]>([])\r\n const [totalItems, setTotalItems] = useState<number>(0)\r\n const { filters, changeFilters } = useFilters()\r\n\r\n const dispatch = useDispatch()\r\n const modal = useRef<any>(null)\r\n const openModal = () => {\r\n modal && modal.current && modal.current.toggle()\r\n }\r\n const resetData = () => {\r\n setTeacherChangeId(\"\")\r\n setUserChoiced(initialUserChoice)\r\n }\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await get(filters)\r\n const { items, totalItems } = res.data\r\n setUserList(items)\r\n setTotalItems(totalItems)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [dispatch, filters])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [filters])\r\n\r\n const removeData = useCallback(\r\n (id: string) => {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: \"Do you want to remove this user?\",\r\n onConfirm: async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n if (userChoiced.roles.includes(\"Teacher\")) {\r\n await remove(id, teacherChangeId)\r\n } else {\r\n await remove(id)\r\n }\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Remove user successfully\"\r\n })\r\n )\r\n openModal()\r\n resetData()\r\n changeFilters({ currentPage: 1 })\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }\r\n })\r\n )\r\n },\r\n [filters, teacherChangeId, userChoiced]\r\n )\r\n return {\r\n userList,\r\n totalItems,\r\n filters,\r\n getData,\r\n removeData,\r\n changeFilters,\r\n modal,\r\n openModal,\r\n userChoiced,\r\n setUserChoiced,\r\n options,\r\n teacherChangeId,\r\n setTeacherChangeId,\r\n resetData\r\n }\r\n}\r\n\r\nexport default useUserDeletedList\r\n","import React, { forwardRef } from \"react\"\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Alert, Button, Col, Row } from \"reactstrap\"\r\nimport CommonModal from \"../../../components/Modals/CommonModal\";\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\";\r\n\r\nconst UserDeletedModal = (props: any, ref: any) => {\r\n const {\r\n header,\r\n removeData,\r\n resetData,\r\n userChoiced,\r\n options,\r\n teacherChangeId,\r\n setTeacherChangeId\r\n } = props\r\n const { t } = useTranslation();\r\n\r\n const getFile = () => {\r\n var url =\r\n window.location.origin + \"/api/ExportDataUser/\" + userChoiced.id\r\n window.open(url)\r\n }\r\n\r\n return (\r\n <CommonModal\r\n header={header}\r\n ref={ref}\r\n onCancel={() => {\r\n resetData()\r\n }}\r\n >\r\n <Row>\r\n <Col md={12} className=\"mb-2\">\r\n <p>{t(\"export_user_data\")}</p>\r\n <div className=\"pb-3\">\r\n <Button\r\n color=\"success\"\r\n onClick={() => {\r\n getFile()\r\n }}\r\n >\r\n {t(\"download_users_data\")}\r\n </Button>\r\n </div>\r\n <p>Delete user</p>\r\n {!!userChoiced && (\r\n <div>\r\n {userChoiced.roles.includes(\"Student\") && (\r\n <div>\r\n <Alert color=\"danger\">\r\n {t(\"alert_delete_user\")}\r\n </Alert>\r\n <Button\r\n color=\"danger\"\r\n onClick={() =>\r\n removeData(userChoiced.id)\r\n }\r\n >\r\n {t(\"delete_user\")}\r\n </Button>\r\n </div>\r\n )}\r\n {userChoiced.roles.includes(\"Admin\") && (\r\n <div>\r\n <Alert color=\"danger\">\r\n {t(\"alert_delete_user\")}\r\n </Alert>\r\n <Button\r\n color=\"danger\"\r\n onClick={() =>\r\n removeData(userChoiced.id)\r\n }\r\n >\r\n {t(\"delete_user\")}\r\n </Button>\r\n </div>\r\n )}\r\n {userChoiced.roles.includes(\"Teacher\") && (\r\n <div>\r\n <Alert color=\"warning\">\r\n {t(\"alert_delete_user\")}\r\n </Alert>\r\n <CustomSelector\r\n options={options}\r\n defaultValue={teacherChangeId}\r\n placeholder=\"select_teacher_change\"\r\n onChange={(e: any) =>\r\n setTeacherChangeId(e.value)\r\n }\r\n />\r\n {!!teacherChangeId && (\r\n <div className={\"mt-2\"}>\r\n <Alert color=\"danger\">\r\n {t(\"alert_delete_user\")}\r\n </Alert>\r\n <Button\r\n color=\"danger\"\r\n onClick={() =>\r\n removeData(userChoiced.id)\r\n }\r\n >\r\n {t(\"delete_user\")}\r\n </Button>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n {(userChoiced.roles.includes(\"Parent\") || userChoiced.roles.includes(\"Counselor\") || userChoiced.roles.includes(\"SecondaryTeacher\")) && (\r\n <div>\r\n <Alert color=\"danger\">\r\n {t(\"alert_delete_user\")}\r\n </Alert>\r\n <Button\r\n color=\"danger\"\r\n onClick={() =>\r\n removeData(userChoiced.id)\r\n }\r\n >\r\n {t(\"delete_user\")}\r\n </Button>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </Col>\r\n </Row>\r\n </CommonModal>\r\n )\r\n}\r\n\r\nexport default forwardRef(UserDeletedModal)\r\n","import React from \"react\"\r\nimport { Col, Row, Table } from \"reactstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport useUserDeletedList from \"../hooks/useUserDeletedList\"\r\nimport SearchBox from \"../../../components/Inputs/SearchBox\"\r\nimport LinkEditButton from \"../../../components/Buttons/LinkEditButton\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport UserDeletedModal from \"../components/UserDeletedModal\"\r\nimport { USER_CHOICE } from \"../constants/types\"\r\n\r\nconst header = \"user_deleted\"\r\nconst UserDeleteList = () => {\r\n const {\r\n userList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n removeData,\r\n openModal,\r\n modal,\r\n userChoiced,\r\n setUserChoiced,\r\n options,\r\n teacherChangeId,\r\n setTeacherChangeId,\r\n resetData\r\n } = useUserDeletedList()\r\n const { t } = useTranslation()\r\n\r\n const choiceUser = (userChoiced?: USER_CHOICE) => {\r\n !!userChoiced && setUserChoiced(userChoiced)\r\n openModal()\r\n }\r\n\r\n return (\r\n <div className=\"fadeIn animated\">\r\n <h5 className=\"mt-4 mb-2\">{t(header)}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={8}>\r\n <SearchBox\r\n initValue={filters.searchString}\r\n onSearch={(searchString?: any) =>\r\n changeFilters({ searchString })\r\n }\r\n placeholder={t(\"type_something_to_search_reflection_result\")}\r\n />\r\n </Col>\r\n <Col\r\n md={4}\r\n className=\"d-flex justify-content-end align-items-center\"\r\n >\r\n {t(\"total_of_users\")}: {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={12}>\r\n {userList && userList.length > 0 ? (\r\n <div>\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">{t(\"name\")}</th>\r\n <th className=\"align-top\">{t(\"email\")}</th>\r\n <th className=\"align-top\">{t(\"role\")}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {userList.map(record => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n <LinkEditButton\r\n label={`${record.fullName}`}\r\n onClick={() =>\r\n choiceUser(record)\r\n }\r\n />\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.email}\r\n </td>\r\n <td className=\"align-middle\">\r\n {!!record.roles &&\r\n record.roles.map((role: string) => role === \"SecondaryTeacher\" ? \"SupportTeacher\" : role).join(\", \")}\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n </div>\r\n ) : (\r\n <EmptyDataAlert label={t(\"user\")} />\r\n )}\r\n </Col>\r\n <Col md={12}>\r\n <CustomPagination\r\n filters={filters}\r\n totalRecordCount={totalItems}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n <UserDeletedModal\r\n ref={modal}\r\n header={userChoiced.fullName}\r\n onCancel={() => { }}\r\n userChoiced={userChoiced}\r\n removeData={removeData}\r\n options={options}\r\n teacherChangeId={teacherChangeId}\r\n setTeacherChangeId={setTeacherChangeId}\r\n resetData={resetData}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default UserDeleteList\r\n","import React, { FC } from \"react\"\r\nimport { Label } from \"reactstrap\"\r\n\r\ninterface Props {\r\n htmlFor: string\r\n isDisabled: boolean\r\n text: string\r\n backgroundColor: string\r\n onClick: Function\r\n isClassReflection?: boolean\r\n}\r\n\r\nconst style = {\r\n padding: \"4px 8px\",\r\n marginBottom: 0,\r\n borderRadius: \"4px\",\r\n color: \"#fff\",\r\n fontWeight: 500,\r\n fontSize: \"14px\",\r\n height: \"56px\",\r\n justifyContent: \"center\",\r\n}\r\n\r\nconst UploadCSVButton: FC<Props> = ({\r\n htmlFor,\r\n isDisabled,\r\n text,\r\n backgroundColor,\r\n onClick,\r\n isClassReflection\r\n}: Props) => {\r\n return (\r\n <Label\r\n htmlFor={htmlFor}\r\n role=\"button\"\r\n tabIndex={0}\r\n className={`d-flex align-items-center justfy-content-center mr-2\r\n ${isClassReflection ? \"w-25\" : \"\"}\r\n ${!isDisabled ? \"cursor-pointer hover-opacity\" : \"\"\r\n }`}\r\n style={{\r\n ...style,\r\n backgroundColor,\r\n opacity: !isDisabled ? 1 : 0.5\r\n }}\r\n onClick={(_e: any) => onClick()}\r\n >\r\n <React.Fragment>\r\n <i className=\"fa fa-paperclip mr-1\" aria-hidden=\"true\" />\r\n {text}\r\n </React.Fragment>\r\n </Label>\r\n )\r\n}\r\n\r\nexport default UploadCSVButton\r\n","import { BASE_URL } from \"../utils/constants\"\r\nimport { apiUpload, api } from \"./api\"\r\nconst CSV_FILE_URL = `${BASE_URL}/api/ImportCsv/csv`\r\nconst CSV_FILE_TEACHER = `${BASE_URL}/api/Teacher`\r\n\r\nexport const downloadTemplateFile = () => api.get(`${CSV_FILE_TEACHER}/download-template-file-isb`)\r\n\r\nexport const importCSV = (formData: FormData, subFolder: string) =>\r\n apiUpload.post(`${CSV_FILE_URL}/${subFolder}`, formData)\r\n\r\nexport const importStudentCSV = (formData: FormData) =>\r\n apiUpload.post(`${CSV_FILE_TEACHER}/adminImportStudent`, formData)\r\n\r\nexport const importClassReflectionCSV = (formData: FormData) => apiUpload.post(`${CSV_FILE_URL}/importClassReflection`, formData)\r\n\r\nexport const importStudentByTeacher = (teacherId: number, formData: FormData) =>\r\n apiUpload.post(`${CSV_FILE_TEACHER}/adminImportStudentByTeacherId/${teacherId}`, formData)\r\n\r\nexport const importUsersCSV = (formData: FormData) =>\r\n apiUpload.post(`${CSV_FILE_TEACHER}/adminImport`, formData)\r\n\r\nexport const importChunkFileUsers = (data: any) =>\r\n api.post(`${CSV_FILE_TEACHER}/adminImportChunkUser`, data)\r\n\r\nexport const downloadTemplateFileUser = () => api.get(`${CSV_FILE_TEACHER}/download-template-file-user`)\r\n","import { useCallback, useState, useEffect } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport Papa from \"papaparse\"\r\nimport { setAlert, setLoading, setModal } from \"../../../redux/commons/action\"\r\nimport { downloadTemplateFileUser, importClassReflectionCSV, importCSV, importStudentByTeacher, importChunkFileUsers } from \"../../../services/csvService\"\r\nimport { validateCsvApi } from \"../../../services/csvImportService\"\r\nimport { CsvImportType } from \"../../../utils/constants\"\r\n\r\nenum CSVType {\r\n Students = \"students\",\r\n Subjects = \"subjects\",\r\n Grades = \"grades\",\r\n Attendances = \"attendances\",\r\n ClassReflection = \"classReflection\",\r\n Others = \"others\",\r\n AllUser = \"allUser\"\r\n}\r\n\r\ninterface CSVImportButton {\r\n text: string\r\n backgroundColor: string\r\n type: CSVType\r\n}\r\n\r\nexport interface Option {\r\n label: string\r\n value: number\r\n}\r\n\r\nconst isbButtons: CSVImportButton[] = [\r\n {\r\n text: \"import_users\",\r\n backgroundColor: \"#0abde3\",\r\n type: CSVType.AllUser\r\n }\r\n]\r\n\r\nconst othersButtons: CSVImportButton[] = [\r\n // {\r\n // text: \"Import students\",\r\n // backgroundColor: \"#0abde3\",\r\n // type: CSVType.Students\r\n // },\r\n // {\r\n // text: \"Import subjects\",\r\n // backgroundColor: \"#1dd1a1\",\r\n // type: CSVType.Subjects\r\n // },\r\n // { text: \"Import grades\", backgroundColor: \"#54a0ff\", type: CSVType.Grades },\r\n // {\r\n // text: \"Import attendances\",\r\n // backgroundColor: \"#feca57\",\r\n // type: CSVType.Attendances\r\n // },\r\n {\r\n text: \"import_class_reflection\",\r\n backgroundColor: \"#e74c3c\",\r\n type: CSVType.ClassReflection\r\n },\r\n // { text: \"Import others\", backgroundColor: \"#8395a7\", type: CSVType.Others }\r\n]\r\n\r\nconst title = \"CSV Import\"\r\n\r\nconst id = \"csvupload\"\r\nconst initClassReflect = {\r\n teacherName: '',\r\n teacherEmail: '',\r\n studentIds: [],\r\n file: ''\r\n}\r\nconst useCSVImportTab = () => {\r\n const dispatch = useDispatch()\r\n const isLoading = useSelector((state: any) => state.common.isLoading)\r\n const [type, setType] = useState<CSVType | null>(null)\r\n const [dataFile, setDataFile] = useState<any>();\r\n const [arrStudent, setArrStudent] = useState<any>([]);\r\n const [initImportReflection, setInitImportReflection] = useState<any>(initClassReflect)\r\n const [studentDataFile, setStudentDataFile] = useState<any>();\r\n const [errorsValidate, setErrorsValidate] = useState<string[]>([])\r\n // const domainName = window.location.hostname;\r\n const isCheckDomainIBS = true;\r\n const [defaultTeacher, setDefaultTeacher] = useState<number>(0);\r\n const [fileName, setFileName] = useState<string>(\"\");\r\n useEffect(() => {\r\n document.title = title\r\n }, [])\r\n\r\n const buttons = isCheckDomainIBS ? isbButtons : othersButtons\r\n\r\n const downloadTemplateUser = async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await downloadTemplateFileUser()\r\n var data = new Blob([res.data.content], { type: 'text/csv' });\r\n const fileURL = window.URL.createObjectURL(data);\r\n var a = document.createElement(\"a\");\r\n a.href = fileURL;\r\n a.setAttribute(\"download\", res.data.nameFile);\r\n a.click();\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Download successfully\"\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }\r\n\r\n // const safeImport = async (_importUsersCSV: any, _formData: FormData, chunkIndex?: number) => {\r\n // for (let retry = 0; retry < 2; retry++) {\r\n // try {\r\n // // return await importUsersCSV(formData);\r\n // } catch (err) {\r\n // if (err.response) {\r\n // throw err;\r\n // }\r\n\r\n // console.warn(\r\n // `⚠️ Chunk ${chunkIndex} network error, retry ${retry + 1}/2...`\r\n // );\r\n\r\n // if (retry < 1) {\r\n // await new Promise(res => setTimeout(res, 500));\r\n // } else {\r\n // throw err;\r\n // }\r\n\r\n // throw err;\r\n // }\r\n // }\r\n // }\r\n\r\n const upload = useCallback(\r\n async (file: any) => {\r\n if (!type || !file) return\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const formData = new FormData()\r\n formData.append(\"file\", file, file.name)\r\n const typeOfCsv = type === CSVType.AllUser ? CsvImportType.Admin : CsvImportType.Teacher\r\n const res = await validateCsvApi(formData, typeOfCsv)\r\n if (res.data && res.data.length > 0) {\r\n setErrorsValidate(res.data)\r\n dispatch(setLoading(false))\r\n return\r\n }\r\n if (type == CSVType.AllUser) {\r\n const fileTextRaw = await file.text();\r\n let fileText = fileTextRaw.trim()\r\n const rows = fileText.split(\"\\n\").map((row: any) => row.trim());\r\n const headerIndex = rows.findIndex((row: any) => row.split(\",\").includes(\"First Name\"));\r\n if (headerIndex === 0) {\r\n throw new Error(\"Invalid CSV: Missing header row.\");\r\n }\r\n\r\n fileText = rows.slice(headerIndex).join(\"\\n\");\r\n\r\n const parsedData = Papa.parse(fileText, { header: true, skipEmptyLines: true });\r\n const header = parsedData.meta.fields;\r\n const dataRows = parsedData.data;\r\n if (!!!dataRows.length) {\r\n dispatch(setLoading(false))\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: 'The file has no data or some column names are misformed.'\r\n })\r\n )\r\n return\r\n }\r\n\r\n const chunkSize = 10;\r\n const chunks: string[][][] = [];\r\n for (let i = 0; i < dataRows.length; i += chunkSize) {\r\n const chunkData = dataRows.slice(i, i + chunkSize);\r\n const valuesOnly: string[][] = chunkData.map((row: any) =>\r\n Object.values(row as Record<string, string>).map(v => (v ?? \"\").toString().trim())\r\n );\r\n\r\n if (header) {\r\n valuesOnly.unshift(header);\r\n }\r\n\r\n console.log({ valuesOnly });\r\n chunks.push(valuesOnly);\r\n\r\n }\r\n\r\n for (let i = 0; i < chunks.length; i++) {\r\n await importChunkFileUsers({\r\n chunks: chunks[i]\r\n });\r\n await new Promise(res => setTimeout(res, 500));\r\n }\r\n } else {\r\n if (isCheckDomainIBS) {\r\n if (type == CSVType.ClassReflection) {\r\n await importClassReflectionCSV(formData)\r\n }\r\n } else {\r\n await importCSV(formData, type.toString())\r\n }\r\n }\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Import CSV successfully\"\r\n })\r\n )\r\n } catch (err) {\r\n console.error(\"❌ Upload failed\", err);\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n const inputId: any = document.getElementById(id)\r\n const input: any = document.getElementById('import-student')\r\n const importClass: any = document.getElementById('import-classReflection')\r\n inputId && (inputId.value = \"\")\r\n input && (input.value = \"\")\r\n importClass && (importClass.value = \"\")\r\n },\r\n [type]\r\n )\r\n\r\n const uploadByTeacherId = async (file: any) => {\r\n if (!defaultTeacher) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Select teacher before import csv\"\r\n })\r\n )\r\n return;\r\n }\r\n if (!type || !file) return\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const formData = new FormData()\r\n formData.append(\"file\", file, file.name)\r\n await importStudentByTeacher(defaultTeacher, formData)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Import CSV successfully\"\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n const input: any = document.getElementById('teacherSelector')\r\n input && (input.value = \"\")\r\n }\r\n\r\n const onConfirm = async (values: any) => {\r\n if (!dataFile || !dataFile) return\r\n dispatch(setLoading(true))\r\n try {\r\n const formData = new FormData()\r\n formData.append(\"file\", dataFile, dataFile.name)\r\n formData.append(\"teacherName\", values.teacherName)\r\n formData.append(\"teacherEmail\", values.teacherEmail)\r\n values.studentIds.forEach((item: any) => {\r\n formData.append(\"studentIds\", item)\r\n })\r\n await importClassReflectionCSV(formData)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Import CSV successfully\"\r\n })\r\n )\r\n setInitImportReflection(initClassReflect)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n const input: any = document.getElementById(id)\r\n input && (input.value = \"\")\r\n }\r\n const onChangeTeacher = (teacher: Option) => {\r\n setDefaultTeacher(teacher.value)\r\n }\r\n\r\n const setDataFileImportStudent = (dataFile: any) => {\r\n setStudentDataFile(dataFile);\r\n setFileName(dataFile?.name || \"\");\r\n\r\n }\r\n const onUpLoadStudentFile = () => {\r\n if (!studentDataFile) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Select CSV to import\"\r\n })\r\n )\r\n return;\r\n }\r\n uploadByTeacherId(studentDataFile)\r\n }\r\n\r\n const onStudentSubmit = () => {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message:\r\n \"Are you sure upload this file?\",\r\n onConfirm: () => {\r\n onUpLoadStudentFile();\r\n }\r\n })\r\n )\r\n }\r\n return {\r\n isLoading,\r\n buttons,\r\n id,\r\n setType,\r\n upload,\r\n initImportReflection,\r\n setInitImportReflection,\r\n onConfirm,\r\n CSVType,\r\n dataFile,\r\n setDataFile,\r\n setArrStudent,\r\n arrStudent,\r\n isCheckDomainIBS,\r\n onChangeTeacher,\r\n uploadByTeacherId,\r\n setDataFileImportStudent,\r\n onUpLoadStudentFile,\r\n defaultTeacher,\r\n fileName,\r\n onStudentSubmit,\r\n downloadTemplateUser,\r\n errorsValidate, setErrorsValidate\r\n }\r\n}\r\n\r\nexport default useCSVImportTab\r\n","import React, { FC } from \"react\"\r\nimport { Formik } from \"formik\"\r\nimport { Button, Col, Input, Row } from \"reactstrap\"\r\nimport { AiOutlineDownload } from \"react-icons/ai\"\r\nimport * as yup from \"yup\"\r\n\r\nimport UploadCSVButton from \"../components/UploadCSVButton\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport RequiredLabel from \"../../../components/Labels/RequiredLabel\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport useCSVImportTab from \"../hooks/useCSVImportTab\"\r\n\r\nconst schema = yup.object({\r\n teacherName: yup\r\n .string()?.trim().required(),\r\n teacherEmail: yup\r\n .string()\r\n ?.trim()\r\n .email('Invalid email')\r\n .required(),\r\n studentIds: yup\r\n .array()\r\n .required()\r\n .test(\r\n \"test students\",\r\n \"Please choose student\",\r\n function () {\r\n return (\r\n !!this.parent.studentIds && !!this.parent.studentIds.length\r\n )\r\n }\r\n ),\r\n file: yup.string()?.trim().required()\r\n})\r\n\r\nconst CSVImport: FC = () => {\r\n const { initImportReflection, onConfirm, isLoading, setType, id, CSVType, dataFile, setDataFile, setArrStudent,\r\n buttons, upload, isCheckDomainIBS, downloadTemplateUser,\r\n errorsValidate, setErrorsValidate\r\n } = useCSVImportTab()\r\n const { t } = useTranslation()\r\n\r\n return (\r\n <div className=\"animated fadeIn pt-3\">\r\n {\r\n isCheckDomainIBS ? (\r\n <React.Fragment>\r\n <Input\r\n className=\"d-none\"\r\n type=\"file\"\r\n id={\"import-user\"}\r\n // multiple\r\n onChange={(e: any) => upload(e.target.files[0])}\r\n accept=\"text/csv\"\r\n />\r\n <Input\r\n className=\"d-none\"\r\n type=\"file\"\r\n id={\"import-classReflection\"}\r\n // multiple\r\n onChange={(e: any) => upload(e.target.files[0])}\r\n accept=\"text/csv\"\r\n />\r\n <div className=\"class-reflection\">\r\n <Formik\r\n initialValues={initImportReflection}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={(values, actions) => {\r\n onConfirm(values)\r\n setDataFile('')\r\n setArrStudent([])\r\n actions.resetForm()\r\n }}\r\n >\r\n {formProps => {\r\n const {\r\n // values,\r\n touched,\r\n errors,\r\n // handleSubmit,\r\n // handleChange\r\n } = formProps\r\n return (\r\n <Row className=\"mb-2\">\r\n <Input\r\n className=\"d-none\"\r\n type=\"file\"\r\n id={id}\r\n // multiple\r\n onChange={(e: any) => {\r\n setDataFile(e.target.files[0])\r\n formProps.setFieldValue('file', 'imported')\r\n const input: any = document.getElementById(id)\r\n input && (input.value = \"\")\r\n }}\r\n accept=\"text/csv\"\r\n />\r\n <Col md={6} className=\"mb-2 d-flex mt-5\">\r\n <Row className=\"w-100 flex-column\">\r\n <Col md={12} className=\"\">\r\n <RequiredLabel text={t(\"import_class_reflection\")} />\r\n <UploadCSVButton\r\n key={\"Import class reflections\"}\r\n htmlFor={\"import-classReflection\"}\r\n text={t(\"import_class_reflection\")}\r\n isDisabled={isLoading}\r\n backgroundColor={\"#e74c3c\"}\r\n onClick={() => {\r\n setType(CSVType.ClassReflection)\r\n }}\r\n />\r\n {!!dataFile && <p style={{ color: '#007bff', fontStyle: 'italic', marginTop: '5px' }}>{dataFile.name}</p>}\r\n </Col>\r\n {\r\n !dataFile && (\r\n <Col md={12} className=\"mb-2\">\r\n {touched.file && errors.file && (\r\n <ErrorHandler\r\n text={errors.file as string}\r\n />\r\n )}\r\n </Col>\r\n )\r\n }\r\n </Row>\r\n </Col>\r\n <Col md={6} className=\"mb-2\">\r\n <Row className=\"flex-column\">\r\n <Col md={12} className=\"mb-2 text-right\">\r\n <Button\r\n role=\"button\"\r\n color=\"primary\"\r\n onClick={() => downloadTemplateUser()}\r\n >\r\n <p className=\"d-flex align-items-center mb-0\">\r\n {t(\"download_template\")} <AiOutlineDownload size={20} className=\"ml-2\" />\r\n </p>\r\n </Button>\r\n </Col>\r\n <Col md={12} className=\"mb-2\">\r\n <RequiredLabel text={t(\"import_users\")} />\r\n {buttons.map((button: any) => (\r\n <UploadCSVButton\r\n key={button.text}\r\n htmlFor={'import-user'}\r\n text={button.text}\r\n isDisabled={isLoading}\r\n backgroundColor={button.backgroundColor}\r\n onClick={() => setType(button.type)}\r\n />\r\n ))}\r\n </Col>\r\n {errorsValidate?.length > 0 && errorsValidate.map((error, index) => (\r\n <ErrorHandler\r\n key={index}\r\n text={error}\r\n />\r\n ))}\r\n </Row>\r\n </Col>\r\n </Row>\r\n )\r\n }}\r\n </Formik>\r\n </div>\r\n </React.Fragment>\r\n ) : (\r\n <React.Fragment>\r\n <Row>\r\n <Col md={12} className=\"mt-2 mb-2 text-left\">\r\n <Button\r\n role=\"button\"\r\n color=\"primary\"\r\n onClick={() => downloadTemplateUser()}\r\n >\r\n <p className=\"d-flex align-items-center mb-0\">\r\n {t(\"download_template\")} <AiOutlineDownload size={20} className=\"ml-2\" />\r\n </p>\r\n </Button>\r\n </Col>\r\n <Col md={6} className=\"mb-3\">\r\n <Input\r\n id=\"import-user\"\r\n className=\"d-none\"\r\n type=\"file\"\r\n onChange={(e: any) => upload(e.target.files[0])}\r\n accept=\"text/csv\"\r\n />\r\n <RequiredLabel text={t(\"import_users\")} />\r\n\r\n <UploadCSVButton\r\n key=\"import-users\"\r\n htmlFor={'import-user'}\r\n text={t(\"import_users\")}\r\n isDisabled={isLoading}\r\n backgroundColor={\"#0abde3\"}\r\n onClick={() => {\r\n setType(CSVType.AllUser)\r\n errorsValidate.length > 0 && setErrorsValidate([])\r\n }}\r\n />\r\n </Col>\r\n {errorsValidate.length > 0 && errorsValidate.map((error, index) => (\r\n <ErrorHandler\r\n key={index}\r\n text={error}\r\n />\r\n ))}\r\n\r\n <Col md={6} className=\"mb-3\">\r\n <Input\r\n className=\"d-none\"\r\n type=\"file\"\r\n id={id}\r\n // multiple\r\n onChange={(e: any) => upload(e.target.files[0])}\r\n accept=\"text/csv\"\r\n />\r\n {buttons.map((button: any) => (\r\n <React.Fragment>\r\n <RequiredLabel text={t(button.text)} />\r\n\r\n <UploadCSVButton\r\n key={button.text}\r\n htmlFor={id}\r\n text={t(button.text)}\r\n isDisabled={isLoading}\r\n backgroundColor={button.backgroundColor}\r\n onClick={() => setType(button.type)}\r\n />\r\n </React.Fragment>\r\n ))}\r\n </Col>\r\n </Row>\r\n </React.Fragment>\r\n\r\n )\r\n }\r\n\r\n </div>\r\n )\r\n}\r\n\r\nexport default CSVImport\r\n","import React from \"react\"\r\nimport CustomTabs from \"../../../components/Tabs/CustomTab\"\r\nimport UserList from \"./UserList\"\r\nimport AssignStudentList from \"./AssignStudentList\"\r\nimport UserDeleteList from \"./UserDeletedList\"\r\nimport CSVImport from \"./CSVImport\"\r\n\r\nconst tabs = [\r\n {\r\n path: \"/admin/users/user-list\",\r\n title: \"user_list\",\r\n component: UserList\r\n },\r\n {\r\n path: \"/admin/users/assign-student\",\r\n title: \"assign_student\",\r\n component: AssignStudentList\r\n },\r\n {\r\n path: \"/admin/users/user-deleted\",\r\n title: \"user_deleted\",\r\n component: UserDeleteList\r\n },\r\n {\r\n path: \"/admin/users/import-csv\",\r\n title: \"csv_import\",\r\n component: CSVImport\r\n },\r\n]\r\n\r\n\r\nconst UserContainer = () => {\r\n return <CustomTabs tabs={tabs} />\r\n}\r\n\r\nexport default UserContainer","import React, { FC, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { Form, Input, Label, Button } from \"reactstrap\"\r\nimport { FaTrashAlt } from \"react-icons/fa\"\r\nimport { MdAttachFile } from \"react-icons/md\"\r\nimport getFileUrl from \"../../utils/getFileUrl\"\r\nimport { setAlert } from \"../../redux/commons/action\"\r\n\r\nimport styles from \"../../styles.module.scss\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\ninterface Props {\r\n fileName?: string\r\n maxWidth?: string\r\n maxHeight?: string\r\n setFile: any\r\n onAddImage?: any\r\n canDelete?: boolean\r\n onDelete?: () => void\r\n isCheckFeedBack?: boolean\r\n}\r\n\r\nconst MAX_FILE_SIZE = 20097152\r\n\r\nconst UploadFileButton: FC<Props> = ({\r\n fileName,\r\n maxWidth,\r\n maxHeight,\r\n setFile,\r\n canDelete,\r\n onDelete,\r\n isCheckFeedBack,\r\n onAddImage\r\n}: Props) => {\r\n const dispatch = useDispatch()\r\n const { t } = useTranslation()\r\n const [imagePreviewUrl, setImagePreviewUrl] = useState<any>(\"\")\r\n\r\n const imageStyle = {\r\n maxWidth: maxWidth || \"100%\",\r\n maxHeight: maxHeight || \"100%\"\r\n }\r\n const imageSrc = imagePreviewUrl || getFileUrl(fileName as string)\r\n\r\n const handleImageChange = (e: any) => {\r\n e.preventDefault()\r\n\r\n let reader = new FileReader()\r\n let newFile = e.target.files[0]\r\n\r\n if (newFile.size > MAX_FILE_SIZE) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"File can't be larger than 2MB\"\r\n })\r\n )\r\n return\r\n }\r\n\r\n reader.onloadend = () => {\r\n setFile(newFile)\r\n setImagePreviewUrl(reader.result)\r\n }\r\n\r\n if (newFile) {\r\n reader.readAsDataURL(newFile)\r\n }\r\n !!onAddImage && onAddImage()\r\n }\r\n\r\n const imagePreviewContainer =\r\n imagePreviewUrl || fileName ? (\r\n <img style={imageStyle} src={imageSrc} alt=\"image\" />\r\n ) : null\r\n\r\n return (\r\n <div className=\"mb-2\">\r\n <Form className=\"mb-2\">\r\n <Input\r\n className=\"d-none\"\r\n type=\"file\"\r\n id=\"uploadFile\"\r\n onChange={handleImageChange}\r\n accept=\"image/*\"\r\n />\r\n <div className=\"d-flex align-items-center\">\r\n <Label\r\n htmlFor=\"uploadFile\"\r\n role=\"button\"\r\n tabIndex={0}\r\n className={styles[\"input-file-label\"]}\r\n >\r\n {isCheckFeedBack == true ? (\r\n <MdAttachFile />\r\n ) : (\r\n <React.Fragment>\r\n <i\r\n className=\"fa fa-paperclip mr-1\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n {imagePreviewUrl || fileName\r\n ? \"Change file\"\r\n : t(\"choose_file\")}\r\n </React.Fragment>\r\n )}\r\n </Label>\r\n\r\n {canDelete && imagePreviewContainer && (\r\n <Button\r\n size=\"sm\"\r\n color=\"danger\"\r\n className={`${styles[\"delete-avatar-button\"]} ml-2 d-flex align-items-center justify-content-center`}\r\n onClick={() => {\r\n setImagePreviewUrl(null)\r\n onDelete && onDelete()\r\n }}\r\n >\r\n <FaTrashAlt />\r\n </Button>\r\n )}\r\n </div>\r\n </Form>\r\n {imagePreviewContainer}\r\n </div>\r\n )\r\n}\r\n\r\nexport default UploadFileButton\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useNavigate } from \"react-router-dom\"\r\nimport { format } from \"date-fns\"\r\n\r\nimport { DATE_FORMAT, ROLES } from \"../../../utils/constants\"\r\nimport { setLoading, setAlert } from \"../../../redux/commons/action\"\r\nimport {\r\n create,\r\n update,\r\n changePassword,\r\n forgotChangePassword,\r\n getById,\r\n resetPasswordForAdmin,\r\n userRoleHasData,\r\n getTeachers,\r\n changeGradeOfStudents\r\n} from \"../../../services/userService\"\r\n\r\nimport { systemProfileUpload } from \"../../../services/fileServices\"\r\nimport { ResetPasswordDto } from \"../../../types/user\"\r\nimport { IOptions, Teacher } from \"../constants/types\"\r\n\r\ntype UserDetail = {\r\n id?: string\r\n firstName: string\r\n lastName: string\r\n email?: string\r\n dateOfBirth?: string\r\n roles: string[]\r\n isActive: boolean\r\n profileImageFileName: string\r\n sourcedId?: string\r\n teacherUserId?: string[]\r\n gradeLevel?: string\r\n}\r\n\r\ntype IUerRoleDataCheck = {\r\n isHasTeacherData: boolean\r\n isHasEduTeacherData: boolean\r\n isHasAssistantData: boolean\r\n isHasCounselorData: boolean\r\n isHasSecondaryTeacherData: boolean\r\n}\r\n\r\nconst initValue: UserDetail = {\r\n id: \"\",\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n dateOfBirth: \"\",\r\n roles: [],\r\n isActive: true,\r\n profileImageFileName: \"\",\r\n teacherUserId: []\r\n}\r\n\r\nconst USER_LIST_URL = \"/admin/users/user-list\"\r\nconst TITLE = \"User detail\"\r\n\r\nconst useUserDetail = (id?: string) => {\r\n const dispatch = useDispatch()\r\n const navigate = useNavigate()\r\n const [userDetail, setUserDetail] = useState<UserDetail>(initValue)\r\n const [openModel, setOpenModel] = useState<boolean>(false)\r\n const [teacherOptions, setTeacherOptions] = useState<Array<IOptions>>([])\r\n const [file, setFile] = useState<any>(null)\r\n const [edited, setEdited] = useState<boolean>(false)\r\n const [userHasData, setUserHasData] = useState<IUerRoleDataCheck>({\r\n isHasAssistantData: false,\r\n isHasCounselorData: false,\r\n isHasEduTeacherData: false,\r\n isHasSecondaryTeacherData: false,\r\n isHasTeacherData: false\r\n })\r\n\r\n const setEditedTrue = async () => {\r\n localStorage.setItem(window.location.href, \"true\")\r\n setEdited(true)\r\n }\r\n const [currentRoles, setCurrentRoles] = useState<string[]>([])\r\n\r\n const handleToggleModel = () => {\r\n setOpenModel(!openModel)\r\n }\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n setEdited(false)\r\n if (!!localStorage.getItem(window.location.href))\r\n localStorage.removeItem(window.location.href)\r\n }, [])\r\n useEffect(() => {\r\n if (!!id) {\r\n getUserRoleHasData()\r\n getData()\r\n }\r\n\r\n !id && getDataTeachers()\r\n }, [id])\r\n\r\n const getUserRoleHasData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const res = await userRoleHasData(id as string)\r\n setUserHasData(res.data)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [id])\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const res = await getById(id as string)\r\n setUserDetail({\r\n ...res.data,\r\n dateOfBirth: format(new Date(res.data.dateOfBirth), DATE_FORMAT),\r\n roles: res.data.roles.map((r: string) => r != \"EduTeacher\" ? r : ROLES.EDUTEACHER)\r\n })\r\n setCurrentRoles(res?.data?.roles ?? [])\r\n document.title = res.data?.fullName\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [id])\r\n\r\n const getDataTeachers = async () => {\r\n try {\r\n const res = await getTeachers({\r\n sortBy: \"Email\"\r\n })\r\n res.data && setTeacherOptions(res.data.map?.((record: Teacher) => ({\r\n label: record.email,\r\n value: record.id\r\n })) || [])\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n }\r\n\r\n const backToList = useCallback((user?: string) => {\r\n !!user && typeof user === \"string\"\r\n ? navigate(USER_LIST_URL + `?query=${user}`)\r\n : navigate(USER_LIST_URL)\r\n }, [])\r\n\r\n const confirmData = useCallback(\r\n async (data: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n if (!!file) {\r\n const formData = new FormData()\r\n const { name } = file\r\n formData.append(\"file\", file, name)\r\n const res = await systemProfileUpload(formData)\r\n const imageUrl = res?.data?.key\r\n data.profileImageFileName = imageUrl\r\n }\r\n\r\n const next = !!id ? update : create\r\n !id && delete data.id\r\n\r\n if (data.dateOfBirth === \"\") {\r\n delete data.dateOfBirth\r\n }\r\n\r\n const result = await next(data)\r\n if (!!result) {\r\n getById(result.data.id).then(e => {\r\n backToList(e.data.fullName)\r\n })\r\n }\r\n\r\n if (!id) {\r\n alert(\"Password of \" + result.data.email + \" is \" + `\\\"${result.data.password}\\\"`);\r\n }\r\n\r\n if (result.data.id) {\r\n await changeGradeOfStudents(result.data.id, data.gradeLevel)\r\n }\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `${!!id ? \"Update\" : \"Create\"\r\n } user successfully`\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [id, file]\r\n )\r\n\r\n const handleDisableRoles = (currentRoles: string) => {\r\n return [\"Student\", \"Parent\", \"EduTeacher\"].includes(currentRoles)\r\n }\r\n\r\n const confirmChangePassword = async (data: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n await changePassword(data)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Change password successfully\"\r\n })\r\n )\r\n } catch (e) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: e.response?.data?.title || e.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }\r\n\r\n const forgotPasswordRequest = useCallback(async (data: any) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n await forgotChangePassword(data)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Send forgot password link successfully\"\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const handleResetPassword = useCallback(\r\n async (userId: string) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const form: ResetPasswordDto = {\r\n userId: userId\r\n }\r\n const res = await resetPasswordForAdmin(form)\r\n if (res.data) {\r\n const fullName = `${userDetail.firstName} ${userDetail.lastName}`\r\n alert(`Password of ${fullName} is ${res.data}`)\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `Update user password successfully`\r\n })\r\n )\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [userDetail]\r\n )\r\n\r\n return {\r\n userDetail,\r\n backToList,\r\n confirmData,\r\n file,\r\n setFile,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n confirmChangePassword,\r\n forgotPasswordRequest,\r\n currentRoles,\r\n handleDisableRoles,\r\n handleResetPassword,\r\n teacherOptions,\r\n openModel,\r\n handleToggleModel,\r\n userHasData\r\n }\r\n}\r\n\r\nexport default useUserDetail\r\n","import * as yup from \"yup\"\r\n\r\nconst userSchema = yup.object({\r\n firstName: yup.string().required(\"First name is required\"),\r\n lastName: yup.string().required(\"Last name is required\"),\r\n email: yup.string().email(\"Email is invalid\").required(\"Email is required\"),\r\n roles: yup.array().of(yup.string()).min(1, \"Role is required\")\r\n})\r\n\r\nexport default userSchema\r\n","import * as yup from \"yup\"\r\n\r\nconst changePasswordSchema = yup.object({\r\n oldPassword: yup.string().required(\"Current password is required\"),\r\n newPassword: yup.string().required(\"New password is required\"),\r\n confirmedNewPassword: yup.string().required(\"Confirm password is required\")\r\n})\r\n\r\nexport default changePasswordSchema\r\n","import { useDispatch } from \"react-redux\"\r\nimport { UserRosterFilter } from \"../../../types/Filter\"\r\nimport { useCallback, useEffect, useState } from \"react\"\r\nimport { Option, RosterUser } from \"../constants/types\"\r\nimport { setAlert } from \"../../../redux/commons/action\"\r\nimport { getRosterUserBySourcedIdApi, getRosterUsersApi } from \"../../../services/userService\"\r\n\r\nconst defaultFilter: UserRosterFilter = {\r\n currentPage: 1,\r\n pageSize: 100\r\n}\r\n\r\nconst useRosterUserSelector = (roles: string[], value?: string) => {\r\n const [users, setUsers] = useState<Option[]>([])\r\n const [isLoading, setLoading] = useState<boolean>(false)\r\n const [filter, setFilter] = useState<UserRosterFilter>(defaultFilter)\r\n const [user, setUser] = useState<Option>()\r\n\r\n const dispatch = useDispatch()\r\n\r\n const getRosterUsers = useCallback(async () => {\r\n setLoading(true)\r\n try {\r\n const res = await getRosterUsersApi(filter)\r\n const users: RosterUser[] = res.data?.items || []\r\n setUsers(mapUsersToOptions(users))\r\n } catch (err) {\r\n dispatch(setAlert({\r\n type: \"error\",\r\n message: \"Cannot get roster users\"\r\n }))\r\n }\r\n setLoading(false)\r\n }, [JSON.stringify(filter)])\r\n\r\n const getUserBySourcedId = useCallback(async () => {\r\n if (!value) return\r\n const v = users.find(i => i.value === value)\r\n if (v) {\r\n setUser(v)\r\n return\r\n }\r\n setLoading(true)\r\n try {\r\n const res = await getRosterUserBySourcedIdApi(value)\r\n const user: RosterUser = res.data\r\n setUser({\r\n label: rosterUserInfo(user),\r\n value: user.sourcedId\r\n })\r\n } catch (err) {\r\n console.log(\"err:\", err);\r\n }\r\n setLoading(false)\r\n }, [value])\r\n\r\n const mapUsersToOptions = (users: RosterUser[]): Option[] => {\r\n return users.map(i => ({\r\n label: rosterUserInfo(i),\r\n value: i.sourcedId\r\n }))\r\n }\r\n\r\n const rosterUserInfo = (rosterUser: RosterUser) => {\r\n const result = []\r\n const { givenName, middleName, familyName, email, role } = rosterUser\r\n const names = []\r\n !!givenName && names.push(givenName)\r\n !!middleName && names.push(middleName)\r\n !!familyName && names.push(familyName)\r\n !!names.length && result.push(names.join(\" \"))\r\n !!email && result.push(email)\r\n return `${result.join(\" - \")}${role ? ` (${role})` : ''}`\r\n }\r\n\r\n const handleInputChange = (value: string) => {\r\n setFilter(state => ({ ...state, searchString: value }))\r\n }\r\n\r\n const handleChangeFilter = useCallback((newFilter: UserRosterFilter) => {\r\n setFilter({\r\n ...filter,\r\n ...newFilter\r\n })\r\n }, [JSON.stringify(filter)])\r\n\r\n useEffect(() => {\r\n !!filter.roles?.length && getRosterUsers()\r\n }, [JSON.stringify(filter)])\r\n\r\n useEffect(() => {\r\n handleChangeFilter({\r\n roles\r\n })\r\n }, [JSON.stringify(roles)])\r\n\r\n useEffect(() => {\r\n getUserBySourcedId()\r\n }, [value])\r\n\r\n return {\r\n users,\r\n isLoading,\r\n user,\r\n handleInputChange\r\n }\r\n}\r\n\r\nexport default useRosterUserSelector","import React, { FC } from \"react\"\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\nimport useRosterUserSelector from \"../hooks/useRosterUserSelector\"\r\n\r\ninterface Props{\r\n onChange: (e: any) => void\r\n value?: string\r\n roles: string[]\r\n}\r\n\r\nconst RosterUserSelector : FC<Props> = ({ value, roles, onChange }) => {\r\n const {\r\n users,\r\n isLoading,\r\n user,\r\n handleInputChange\r\n } = useRosterUserSelector(roles, value)\r\n \r\n return (\r\n <CustomSelector\r\n options={users}\r\n value={user}\r\n placeholder=\"Select user\"\r\n onChange={onChange}\r\n isLoading={isLoading}\r\n onInputChange={handleInputChange}\r\n />\r\n )\r\n}\r\n\r\nexport default RosterUserSelector ","import React, { useCallback } from \"react\"\r\nimport { useParams } from \"react-router-dom\"\r\nimport {\r\n // Button,\r\n Col,\r\n FormGroup,\r\n Row,\r\n Input,\r\n Button,\r\n Label,\r\n Modal,\r\n ModalHeader,\r\n ModalFooter,\r\n ModalBody\r\n} from \"reactstrap\"\r\nimport { Formik } from \"formik\"\r\nimport DatePicker from \"react-datepicker\"\r\nimport { format } from \"date-fns\"\r\nimport toDate from \"date-fns/toDate\"\r\nimport { useSelector } from \"react-redux\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport DetailActionButtons from \"../../../components/Buttons/DetailActionButtons\"\r\nimport UploadFileButton from \"../../../components/Buttons/UploadFileButton\"\r\nimport useUserDetail from \"../hooks/useUserDetail\"\r\nimport schema from \"../configs/userSchema\"\r\nimport schemaChangePassword from \"../configs/changePasswordSchema\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport { USER_ROLES, DATE_FORMAT, screenWidth } from \"../../../utils/constants\"\r\nimport RequiredLabel from \"../../../components/Labels/RequiredLabel\"\r\nimport { DEFAULT_IMAGE_URL, ROLES } from \"../../../utils/constants\"\r\nimport QuitPrompt from \"../../../components/Others/QuitPrompt\"\r\nimport RosterUserSelector from \"./RosterUserSelector\"\r\nimport TeacherSelector from \"../components/TeacherSelector\"\r\nimport { IOptions } from \"../constants/types\"\r\nimport styles from \"../../../styles.module.scss\"\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\nimport { gradeOptions } from \"../constants/constants\"\r\n\r\nconst CREATE_USER = \"create_user\"\r\nconst EDIT_USER_HEADER = \"edit_user\"\r\nconst CHANGE_PASSWORD = \"change_password\"\r\n\r\nconst UserDetail = () => {\r\n const { id } = useParams<{ id: string }>()\r\n const user = useSelector((state: any) => state.common.user)\r\n const { t } = useTranslation()\r\n const {\r\n userDetail,\r\n backToList,\r\n confirmData,\r\n file,\r\n setFile,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n confirmChangePassword,\r\n forgotPasswordRequest,\r\n currentRoles,\r\n handleDisableRoles,\r\n handleResetPassword,\r\n teacherOptions,\r\n openModel,\r\n handleToggleModel,\r\n userHasData\r\n } = useUserDetail(id)\r\n\r\n const initialValueForm = {\r\n oldPassword: \"\",\r\n newPassword: \"\",\r\n confirmedNewPassword: \"\"\r\n }\r\n\r\n const header = !!id ? t(`${EDIT_USER_HEADER}`) : t(`${CREATE_USER}`)\r\n\r\n const confirmText = !!id ? t(\"update\") : t(\"create\")\r\n const getFile = () => {\r\n var url = window.location.origin + \"/api/ExportDataUser/\" + id\r\n window.open(url)\r\n }\r\n\r\n const onForgotPw = async (email: string) => {\r\n var data = {\r\n email: email\r\n }\r\n forgotPasswordRequest(data)\r\n }\r\n\r\n const onResetPw = () => {\r\n if (!id) return\r\n const title = \"You want to reset this user's password\"\r\n if (confirm(title) == true) {\r\n handleResetPassword(id)\r\n }\r\n }\r\n\r\n return (\r\n <Formik\r\n initialValues={userDetail}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={values => {\r\n confirmData({\r\n ...values,\r\n roles: values.roles.map(r =>\r\n r != ROLES.EDUTEACHER ? r : \"EduTeacher\"\r\n )\r\n })\r\n setEdited(false)\r\n if (!!localStorage.getItem(window.location.href))\r\n localStorage.removeItem(window.location.href)\r\n }}\r\n >\r\n {formProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n setFieldValue,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit\r\n } = formProps\r\n\r\n const toggleRoles = useCallback(\r\n (role: string) => {\r\n if (values.roles.includes(role)) {\r\n setFieldValue(\r\n \"roles\",\r\n values.roles.filter(r => r !== role)\r\n )\r\n return\r\n }\r\n\r\n if ([ROLES.STUDENT, ROLES.PARENT].includes(role)) {\r\n setFieldValue(\"roles\", [role])\r\n return\r\n }\r\n\r\n if (\r\n values.roles.includes(ROLES.STUDENT) &&\r\n ROLES.STUDENT != role\r\n ) {\r\n setFieldValue(\"roles\", [role])\r\n return\r\n }\r\n\r\n // const teacherAssistantRoles = values.roles.filter(\r\n // (item: string) =>\r\n // ![\r\n // ROLES.STUDENT,\r\n // ROLES.ADMIN,\r\n // ROLES.PARENT,\r\n // ROLES.EDUTEACHER,\r\n // ROLES.COUNSELOR,\r\n // ROLES.SECONDARY_TEACHER\r\n // ].includes(item)\r\n // )\r\n\r\n setFieldValue(\"roles\", [...values.roles, role])\r\n },\r\n [values.roles]\r\n )\r\n\r\n return (\r\n <div\r\n className={`animated fadeIn detail-buttons-padding ${screenWidth <= 767 ? styles[\"p-0-12\"] : \"\"}`}\r\n >\r\n <QuitPrompt when={edited} />\r\n <h5 className=\"mb-2\">{header}</h5>\r\n\r\n <Row className=\"pt-2\">\r\n <Col md={8}>\r\n <Row>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel\r\n text={t(\"first_name\")}\r\n className=\"text-capitalize\"\r\n />\r\n <Input\r\n name=\"firstName\"\r\n value={values.firstName}\r\n onChange={(e: any) => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"subject\")}\r\n placeholder={t(\"first_name\")}\r\n className={styles[\"input-name\"]}\r\n />\r\n {touched.firstName &&\r\n errors.firstName && (\r\n <ErrorHandler\r\n text={errors.firstName}\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={6}>\r\n <FormGroup>\r\n <Label>{t(\"date_of_birth\")}</Label>\r\n <div>\r\n <DatePicker\r\n value={values.dateOfBirth}\r\n todayButton=\"Today\"\r\n peekNextMonth\r\n showMonthDropdown\r\n showYearDropdown\r\n dropdownMode=\"select\"\r\n selected={\r\n values.dateOfBirth\r\n ? toDate(\r\n new Date(\r\n values.dateOfBirth\r\n )\r\n )\r\n : null\r\n }\r\n onChange={(e: any) => {\r\n formProps.setFieldValue(\r\n \"dateOfBirth\",\r\n format(\r\n e,\r\n DATE_FORMAT\r\n )\r\n )\r\n setEditedTrue()\r\n }}\r\n placeholderText={t(\r\n \"date_of_birth\"\r\n )}\r\n customInput={\r\n <Input\r\n type=\"text\"\r\n style={{\r\n width: \"maxContent\"\r\n }}\r\n placeholder={t(\r\n \"date_of_birth\"\r\n )}\r\n />\r\n }\r\n />\r\n </div>\r\n </FormGroup>\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel\r\n text={t(\"last_name\")}\r\n className=\"text-capitalize\"\r\n />\r\n <Input\r\n name=\"lastName\"\r\n value={values.lastName}\r\n onChange={(e: any) => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"lastName\")}\r\n placeholder={t(\"last_name\")}\r\n className={styles[\"input-name\"]}\r\n />\r\n {touched.lastName &&\r\n errors.lastName && (\r\n <ErrorHandler\r\n text={errors.lastName}\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"roles\")} />\r\n <Row>\r\n <Col\r\n md={12}\r\n className=\"d-flex flex-wrap align-items-center\"\r\n >\r\n {USER_ROLES.map(\r\n (role: string) => (\r\n <div\r\n key={role}\r\n className=\"mr-3\"\r\n >\r\n <Input\r\n type=\"checkbox\"\r\n id={`role-checkbox-${role}`}\r\n label={\r\n role ===\r\n \"SecondaryTeacher\"\r\n ? \"SupportTeacher\"\r\n : `${role}`\r\n }\r\n checked={values.roles.includes(\r\n role\r\n )}\r\n onChange={() => {\r\n if (\r\n !!id &&\r\n ((userHasData.isHasTeacherData &&\r\n role ===\r\n \"Teacher\") ||\r\n (userHasData.isHasAssistantData &&\r\n role ===\r\n \"Assistant\") ||\r\n (userHasData.isHasCounselorData &&\r\n role ===\r\n \"Counselor\") ||\r\n (userHasData.isHasSecondaryTeacherData &&\r\n role ===\r\n \"SecondaryTeacher\") ||\r\n (role ==\r\n \"Student\" &&\r\n (userHasData.isHasAssistantData ||\r\n userHasData.isHasCounselorData ||\r\n userHasData.isHasSecondaryTeacherData ||\r\n userHasData.isHasTeacherData)))\r\n ) {\r\n alert(\r\n \"Please switch data before removing the role\"\r\n )\r\n } else {\r\n toggleRoles(\r\n role\r\n )\r\n setEditedTrue()\r\n }\r\n }}\r\n disabled={\r\n currentRoles.includes(\r\n \"Parent\"\r\n ) ||\r\n (currentRoles.includes(\r\n \"Student\"\r\n ) &&\r\n !!id)\r\n ? currentRoles\r\n .concat(\r\n [\r\n \"Student\",\r\n \"Parent\"\r\n ]\r\n )\r\n .includes(\r\n role\r\n ) ||\r\n currentRoles.every(\r\n handleDisableRoles\r\n )\r\n : [\r\n \"Parent\"\r\n ].includes(\r\n role\r\n )\r\n }\r\n />\r\n </div>\r\n )\r\n )}\r\n </Col>\r\n </Row>\r\n {touched.roles && errors.roles && (\r\n <ErrorHandler\r\n text={\r\n errors.roles as string\r\n }\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"email\")} />\r\n <Input\r\n name=\"email\"\r\n value={values.email}\r\n onChange={(e: any) => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"email\")}\r\n placeholder={t(\"email\")}\r\n />\r\n {touched.email && errors.email && (\r\n <ErrorHandler\r\n text={errors.email}\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"status\")} />\r\n <Row>\r\n <Col md={3}>\r\n <Input\r\n id={`role-checkbox-active`}\r\n type=\"radio\"\r\n name=\"active\"\r\n label={t(\"active\")}\r\n checked={\r\n !!values &&\r\n !!values.isActive\r\n }\r\n onChange={() => {\r\n setFieldValue(\r\n \"isActive\",\r\n true\r\n )\r\n setEditedTrue()\r\n }}\r\n />\r\n </Col>\r\n <Col md={3}>\r\n <Input\r\n id={`role-checkbox-inActive`}\r\n type=\"radio\"\r\n name=\"active\"\r\n label={t(\"inactive\")}\r\n checked={\r\n !!values &&\r\n !values.isActive\r\n }\r\n onChange={() =>\r\n setFieldValue(\r\n \"isActive\",\r\n false\r\n )\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </FormGroup>\r\n </Col>\r\n </Row>\r\n {values.roles.includes(ROLES.STUDENT) && (\r\n <Row>\r\n <Col md={6}>\r\n <FormGroup>\r\n <Label>Grade Level</Label>\r\n <CustomSelector\r\n options={gradeOptions}\r\n value={gradeOptions.find(\r\n r =>\r\n r.value ==\r\n values.gradeLevel\r\n )}\r\n placeholder=\"Grade Level\"\r\n onChange={(e: IOptions) => {\r\n setFieldValue(\r\n \"gradeLevel\",\r\n e.value\r\n )\r\n }}\r\n />\r\n </FormGroup>\r\n </Col>\r\n </Row>\r\n )}\r\n {!!id && (\r\n <Row>\r\n <Col md={6}>\r\n {(!values.roles.includes(\"Admin\") ||\r\n values.roles.length > 1) &&\r\n !!values.roles.length && (\r\n <FormGroup>\r\n <Label>\r\n Map from Roster\r\n </Label>\r\n <RosterUserSelector\r\n roles={values.roles}\r\n value={\r\n values.sourcedId\r\n }\r\n onChange={(\r\n e: any\r\n ) =>\r\n setFieldValue(\r\n \"sourcedId\",\r\n e.value\r\n )\r\n }\r\n />\r\n </FormGroup>\r\n )}\r\n </Col>\r\n <Col md={6}>\r\n <Button\r\n color=\"primary\"\r\n className=\"w-100\"\r\n onClick={() => {\r\n onForgotPw(\r\n values.email || \"\"\r\n )\r\n }}\r\n >\r\n {t(\"send_forgot_password_link\")}\r\n </Button>\r\n <Button\r\n color=\"primary\"\r\n className=\"w-100 mt-3\"\r\n onClick={() => onResetPw()}\r\n >\r\n {t(\"reset_password\")}\r\n </Button>\r\n <Button\r\n color=\"success\"\r\n className=\"w-100 mt-3\"\r\n onClick={() => {\r\n getFile()\r\n }}\r\n >\r\n {t(\"download_user_data\")}\r\n </Button>\r\n </Col>\r\n </Row>\r\n )}\r\n </Col>\r\n <Col md={4}>\r\n <Row>\r\n <Col md={8}>\r\n <UploadFileButton\r\n setFile={setFile}\r\n fileName={\r\n values.profileImageFileName\r\n }\r\n onAddImage={setEditedTrue}\r\n canDelete\r\n onDelete={() => {\r\n setFile(null)\r\n setFieldValue(\r\n \"profileImageFileName\",\r\n \"\"\r\n )\r\n setEditedTrue()\r\n }}\r\n />\r\n {!file &&\r\n !values.profileImageFileName && (\r\n <img\r\n src={DEFAULT_IMAGE_URL}\r\n style={{ maxWidth: \"100%\" }}\r\n />\r\n )}\r\n </Col>\r\n </Row>\r\n </Col>\r\n </Row>\r\n {user.id === id ? (\r\n <div>\r\n <h5 className=\"mt-3\">\r\n {t(`${CHANGE_PASSWORD}`)}\r\n </h5>\r\n <Formik\r\n initialValues={initialValueForm}\r\n enableReinitialize\r\n validationSchema={schemaChangePassword}\r\n onSubmit={values => {\r\n confirmChangePassword(values)\r\n }}\r\n >\r\n {formProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n handleChange,\r\n handleSubmit\r\n } = formProps\r\n return (\r\n <Row className=\"pt-2 pb-5\">\r\n <Col md={7}>\r\n <FormGroup>\r\n <RequiredLabel\r\n text={t(\r\n \"current_password\"\r\n )}\r\n className=\"text-capitalize\"\r\n />\r\n <Input\r\n name=\"oldPassword\"\r\n type=\"password\"\r\n value={\r\n values.oldPassword\r\n }\r\n onChange={(\r\n e: any\r\n ) => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\r\n \"subject\"\r\n )}\r\n placeholder={t(\r\n \"current_password\"\r\n )}\r\n className={\r\n styles[\r\n \"input-name\"\r\n ]\r\n }\r\n />\r\n {touched.oldPassword &&\r\n errors.oldPassword && (\r\n <ErrorHandler\r\n text={\r\n errors.oldPassword\r\n }\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={7}>\r\n <FormGroup>\r\n <RequiredLabel\r\n text={t(\r\n \"new_password\"\r\n )}\r\n className=\"text-capitalize\"\r\n />\r\n <Input\r\n name=\"newPassword\"\r\n type=\"password\"\r\n value={\r\n values.newPassword\r\n }\r\n onChange={(\r\n e: any\r\n ) => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\r\n \"subject\"\r\n )}\r\n placeholder={t(\r\n \"new_password\"\r\n )}\r\n className={\r\n styles[\r\n \"input-name\"\r\n ]\r\n }\r\n />\r\n {touched.newPassword &&\r\n errors.newPassword && (\r\n <ErrorHandler\r\n text={\r\n errors.newPassword\r\n }\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={7}>\r\n <FormGroup>\r\n <RequiredLabel\r\n text={t(\r\n \"confirm_password\"\r\n )}\r\n className=\"text-capitalize\"\r\n />\r\n <Input\r\n name=\"confirmedNewPassword\"\r\n type=\"password\"\r\n value={\r\n values.confirmedNewPassword\r\n }\r\n onChange={(\r\n e: any\r\n ) => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\r\n \"subject\"\r\n )}\r\n placeholder={t(\r\n \"confirm_password\"\r\n )}\r\n className={\r\n styles[\r\n \"input-name\"\r\n ]\r\n }\r\n />\r\n {touched.confirmedNewPassword &&\r\n errors.confirmedNewPassword && (\r\n <ErrorHandler\r\n text={\r\n errors.confirmedNewPassword\r\n }\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={12}>\r\n <Button\r\n color=\"primary\"\r\n size=\"sm\"\r\n className=\"px-4 pl-1 mr-2 ml-3\"\r\n onClick={() =>\r\n handleSubmit()\r\n }\r\n >\r\n {t(\"save\")}\r\n </Button>\r\n </Col>\r\n </Row>\r\n )\r\n }}\r\n </Formik>\r\n </div>\r\n ) : null}\r\n <DetailActionButtons\r\n confirmText={confirmText}\r\n onConfirm={\r\n values.roles.includes(ROLES.STUDENT) && !id\r\n ? handleToggleModel\r\n : handleSubmit\r\n }\r\n onCancel={backToList}\r\n />\r\n <Modal\r\n centered\r\n isOpen={openModel}\r\n toggle={() => handleToggleModel()}\r\n >\r\n <ModalHeader>Assign Teacher</ModalHeader>\r\n <ModalBody>\r\n <TeacherSelector\r\n isMulti\r\n value={\r\n teacherOptions.filter(r =>\r\n values.teacherUserId?.includes(\r\n r.value\r\n )\r\n ) || null\r\n }\r\n options={teacherOptions}\r\n onChange={(e: Array<IOptions>) =>\r\n setFieldValue(\r\n \"teacherUserId\",\r\n e.map(i => i.value)\r\n )\r\n }\r\n placeholder={t(\"select_teacher\")}\r\n className=\"flex-grow-1 mb-3\"\r\n />\r\n </ModalBody>\r\n <ModalFooter className=\"text-right\">\r\n <Button onClick={() => handleToggleModel()}>\r\n Cancel\r\n </Button>\r\n <Button\r\n disabled={!values.teacherUserId}\r\n color=\"primary\"\r\n onClick={() => {\r\n handleSubmit()\r\n }}\r\n >\r\n Assign\r\n </Button>\r\n </ModalFooter>\r\n </Modal>\r\n </div>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default UserDetail\r\n","import React, { FC, CSSProperties } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\nimport { formatInTimeZone } from \"date-fns-tz\"\r\n\r\nconst loadingStyle: CSSProperties = {\r\n minWidth: \"100vw\",\r\n minHeight: \"100vh\",\r\n position: \"fixed\",\r\n top: 0,\r\n left: 0,\r\n zIndex: 999999999,\r\n backgroundColor: \"rgba(0, 0, 0, 0.4)\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n}\r\n\r\nconst Loading: FC = () => {\r\n const isLoading = useSelector((state: any) => state.common.isLoading)\r\n localStorage.setItem(\r\n \"LAST_TIME_REQUETST\",\r\n formatInTimeZone(new Date(), 'UTC', 'yyyy-MM-dd HH:mm:ss')\r\n )\r\n return isLoading ? (\r\n <div style={loadingStyle}>\r\n <div className=\"spinner-border text-secondary\" role=\"status\">\r\n <span className=\"sr-only\">Loading...</span>\r\n </div>\r\n </div>\r\n ) : null\r\n}\r\n\r\nexport default Loading\r\n","import { FC, useEffect } from \"react\"\nimport { useLocation } from \"react-router-dom\"\n\nconst ScrollToTop: FC = () => {\n const { pathname } = useLocation()\n\n useEffect(() => {\n window.scrollTo(0, 0)\n }, [pathname])\n return null\n}\n\nexport default ScrollToTop\n","import React, { useCallback } from \"react\"\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Button } from \"reactstrap\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { setModal } from \"../../redux/commons/action\"\r\nimport { COLORS } from \"../../utils/constants\"\r\n\r\nconst modalInfo = (type?: string) => {\r\n switch (type) {\r\n case \"danger\":\r\n return {\r\n header: \"Error\",\r\n color: COLORS.DANGER\r\n }\r\n\r\n case \"warning\":\r\n return {\r\n header: \"Warning\",\r\n color: COLORS.WARNING\r\n }\r\n\r\n case \"success\":\r\n return {\r\n header: \"Success\",\r\n color: COLORS.SUCCESS\r\n }\r\n\r\n default:\r\n return {\r\n header: \"Infomation\",\r\n color: COLORS.INFO\r\n }\r\n }\r\n}\r\n\r\nconst NotificationModal = () => {\r\n const dispatch = useDispatch()\r\n const modal = useSelector((state: any) => state.common.modal)\r\n const { t } = useTranslation()\r\n const { isOpen, type, message, onConfirm } = modal\r\n\r\n const toggle = useCallback(() => {\r\n dispatch(setModal({ isOpen: !isOpen, type }))\r\n }, [isOpen])\r\n\r\n const headerStyle = { backgroundColor: modalInfo(type).color }\r\n\r\n const confirm = () => {\r\n onConfirm && onConfirm()\r\n toggle()\r\n }\r\n\r\n return (\r\n <Modal isOpen={isOpen} toggle={toggle} fade>\r\n <ModalHeader toggle={toggle} style={headerStyle}>\r\n {modalInfo(type).header}\r\n </ModalHeader>\r\n <ModalBody>{message}</ModalBody>\r\n <ModalFooter>\r\n {onConfirm && (\r\n <Button color={type} onClick={confirm}>\r\n {t(\"confirm\")}\r\n </Button>\r\n )}\r\n <Button color=\"secondary\" onClick={toggle}>\r\n {t(\"cancel\")}\r\n </Button>\r\n </ModalFooter>\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default NotificationModal\r\n","import React, { CSSProperties, FC } from \"react\"\nimport { Row, Col } from \"reactstrap\"\ninterface Props {\n header: string\n rootHeader?: string\n}\n\nconst headerStyle: CSSProperties = {\n // borderBottom: \"1px solid gray\",\n paddingBottom: \"16px\"\n}\n\nconst headerTextStyle: CSSProperties = {\n fontSize: \"1.5rem\",\n textAlign: \"center\"\n}\n\nconst CommonHeader: FC<Props> = ({ header, rootHeader }) => {\n return (\n <div style={headerStyle}>\n <Row>\n {rootHeader && (\n <Col md={4}>\n <span className=\"text-muted\" style={headerTextStyle}>\n {rootHeader}\n </span>\n </Col>\n )}\n <Col md={4}>\n <span style={headerTextStyle}>{header}</span>\n </Col>\n </Row>\n </div>\n )\n}\n\nexport default CommonHeader\n","import React, { useState, useEffect } from \"react\"\r\nimport { parse, differenceInMinutes, addMinutes, format } from \"date-fns\"\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Button } from \"reactstrap\"\r\nimport utcToLocalTime from \"../../utils/utcToLocalTime\"\r\nimport getAccessToken from \"../../utils/getAccessToken\"\r\nimport { ACCESS_TOKEN } from \"../../utils/constants\"\r\nimport { useNavigate } from \"react-router-dom\"\r\n\r\nconst IDLE_MINUTES_WARNING = 13\r\nconst AUTO_LOGOUT_MINUTES = 15\r\n\r\nconst NotificationLogoutModal = () => {\r\n const navigate = useNavigate()\r\n const [isOpen, setIsOpen] = useState(false)\r\n const [objTime, setObjTime] = useState({\r\n minutes: 0,\r\n timeLogout: \"\"\r\n })\r\n\r\n const getLastActivity = () => {\r\n try {\r\n return localStorage?.getItem?.(\"LAST_ACTIVITY_TIME\") ?? null\r\n } catch {\r\n return null\r\n }\r\n }\r\n\r\n const doLogout = () => {\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n sessionStorage.removeItem(ACCESS_TOKEN)\r\n localStorage.removeItem(\"ROLES\")\r\n localStorage.removeItem(\"LAST_ACTIVITY_TIME\")\r\n setIsOpen(false)\r\n navigate(\"/login\", { replace: true })\r\n }\r\n\r\n const checkOpenModalLogout = () => {\r\n const accessToken = getAccessToken()\r\n if (!accessToken) return\r\n\r\n const lastActivity = getLastActivity()\r\n if (!lastActivity) {\r\n localStorage?.setItem?.(\r\n \"LAST_ACTIVITY_TIME\",\r\n new Date().toISOString()\r\n )\r\n return\r\n }\r\n\r\n const timeMoment = parse(lastActivity, 'yyyy-MM-dd HH:mm', new Date())\r\n const currentTime = new Date()\r\n const minutes = differenceInMinutes(currentTime, timeMoment)\r\n\r\n if (minutes >= AUTO_LOGOUT_MINUTES) {\r\n doLogout()\r\n return\r\n }\r\n\r\n const timeLogout = utcToLocalTime(\r\n format(\r\n addMinutes(currentTime, AUTO_LOGOUT_MINUTES - minutes),\r\n \"yyyy-MM-dd HH:mm\"\r\n ),\r\n \"HH:mm\"\r\n )\r\n if (minutes >= IDLE_MINUTES_WARNING) {\r\n setObjTime({\r\n minutes,\r\n timeLogout\r\n })\r\n setIsOpen(true)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n checkOpenModalLogout()\r\n }, 60 * 1000)\r\n\r\n return () => clearInterval(interval)\r\n }, [])\r\n\r\n const onToggle = () => {\r\n setIsOpen(!isOpen)\r\n }\r\n return (\r\n <Modal isOpen={isOpen} toggle={onToggle} size={\"xs\"}>\r\n <ModalHeader toggle={onToggle}>Notification Logout</ModalHeader>\r\n <ModalBody>\r\n {`Are you still here? You have had no action for ${objTime?.minutes} mins. \r\n Your account could be log out after ${AUTO_LOGOUT_MINUTES - objTime?.minutes} mins at ${objTime?.timeLogout} if you don't action.`}\r\n </ModalBody>\r\n <ModalFooter className=\"text-right\">\r\n <Button color=\"primary\" onClick={onToggle}>\r\n {\"Confirm\"}\r\n </Button>\r\n </ModalFooter>\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default NotificationLogoutModal\r\n","import React, { FC } from \"react\"\nimport { FaRegEdit } from \"react-icons/fa\"\ninterface Props {\n onClick: () => any\n}\n\nconst EditButtonIcon: FC<Props> = ({ onClick }: Props) => {\n return (\n <div\n className=\"d-inline text-center cursor-pointer hover-opacity\"\n title=\"Edit\"\n onClick={onClick}\n >\n <FaRegEdit />\n </div>\n )\n}\n\nexport default EditButtonIcon\n","import React, { FC } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\n\r\nconst SandboxAlert: FC = () => {\r\n const isSandboxMode = useSelector(\r\n (state: any) => state?.common?.isSandboxMode\r\n )\r\n const isLoginPage = location.pathname === \"/login\"\r\n return (\r\n isSandboxMode && (\r\n <div\r\n className={`sandbox-alert ${isLoginPage ? \"sandbox-alert--login\" : \"\"} d-flex justify-content-center align-items-center p-3`}\r\n >\r\n <div>Sandbox Mode:</div>{\" \"}\r\n <div className=\"ml-2 green-circle\"></div>\r\n </div>\r\n )\r\n )\r\n}\r\n\r\nexport default SandboxAlert\r\n","import React from \"react\"\r\n\r\nimport Creatable from \"react-select/creatable\"\r\n\r\nconst components = {\r\n DropdownIndicator: null\r\n}\r\n\r\nconst CreatableSelector = (props: any) => {\r\n const {\r\n inputValue,\r\n value,\r\n placeholder,\r\n handleChange,\r\n handleInputChange,\r\n handleKeyDown\r\n } = props\r\n return (\r\n <Creatable\r\n components={components}\r\n placeholder={placeholder || \"Type something to create option\"}\r\n isClearable\r\n isMulti\r\n menuIsOpen={false}\r\n value={value}\r\n inputValue={inputValue}\r\n onChange={handleChange}\r\n onInputChange={handleInputChange}\r\n onKeyDown={handleKeyDown}\r\n />\r\n )\r\n}\r\n\r\nexport default CreatableSelector\r\n","import React from \"react\"\nimport Select from \"react-select\"\n\nimport { QUESTION_TYPES_OPTIONS } from \"../../utils/constants\"\nconst QuestionTypeSelector = (props: any) => {\n const { id } = props\n\n const initValue = !!id\n ? QUESTION_TYPES_OPTIONS.find(option => option.value === id) || null\n : null\n\n return (\n <Select options={QUESTION_TYPES_OPTIONS} value={initValue} {...props} />\n )\n}\n\nexport default QuestionTypeSelector\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst CATEGORY_URL = `${BASE_URL}/api/SuggestionCategory`\r\nexport const get = () => api.get(CATEGORY_URL)\r\n","import React, { useState, useEffect } from \"react\"\nimport Select from \"react-select\"\nimport { get } from \"../../services/suggestionCategoryService\"\n\nconst SuggestionCategorySelector = (props: any) => {\n const [categoryList, setCategoryList] = useState([])\n\n useEffect(() => {\n fetchCategory()\n }, [])\n\n const fetchCategory = async () => {\n try {\n const res = await get()\n setCategoryList(res.data.items)\n } catch (err) {\n console.error(err)\n }\n }\n const { id } = props\n const arrCategory = categoryList.map((i: any) => {\n return {\n id: i.id,\n value: i.id,\n label: i.name\n }\n })\n\n const initValue = !!id\n ? arrCategory.find((option: any) => option.value === id) || null\n : null\n\n return <Select options={arrCategory} value={initValue} {...props} />\n}\n\nexport default SuggestionCategorySelector\n","import { api } from \"../services/api\"\r\nimport { Filter } from \"../types/Filter\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst CATEGORY_URL = `${BASE_URL}/api/QuestionCategory`\r\nexport const get = (parentCategoryId?: number) => api.get(CATEGORY_URL, {params: {parentCategoryId}})\r\nexport const getByFilter = (filter?: Filter) => api.get(CATEGORY_URL, { params: filter })\r\n","import React, { useState, useEffect } from \"react\"\nimport Select from \"react-select\"\nimport { get } from \"../../services/questionCategoryService\"\n\nconst QuestionCategorySelector = (props: any) => {\n const [getCategoryList, setCategoryList] = useState([])\n const { id, parentCategoryId } = props\n\n useEffect(() => {\n fetchCategory()\n }, [])\n\n const fetchCategory = async () => {\n try {\n const res = await get(parentCategoryId)\n setCategoryList(res.data.items)\n } catch (err) {\n console.error(err)\n }\n }\n const arrCategory = getCategoryList.map((i: any) => {\n return {\n id: i.id,\n value: i.id,\n label: i.name\n }\n })\n\n const initValue = !!id\n ? arrCategory.find((option: any) => option.value === id) || null\n : null\n\n return <Select options={arrCategory} value={initValue} {...props} />\n}\n\nexport default QuestionCategorySelector\n","import { useState, useCallback, useEffect } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setAlert, setLoading } from \"../../../redux/commons/action\"\r\nimport { getByFilter } from \"../../../services/questionCategoryService\"\r\nimport { DEFAULT_FILTER } from \"../../../utils/constants\"\r\nimport { CategoryOption } from \"../constants/constant\"\r\n\r\nconst useCategorySelector = () => {\r\n const [categories, setCategories] = useState<CategoryOption[]>([])\r\n const dispatch = useDispatch()\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await getByFilter({ ...DEFAULT_FILTER, pageSize: -1 })\r\n const convertedCategories = convertOptions(res.data.items)\r\n setCategories(convertedCategories)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const convertOptions = (\r\n categories: CategoryOption[],\r\n parent?: CategoryOption,\r\n children?: CategoryOption[]\r\n ) => {\r\n let result: CategoryOption[] = []\r\n if (!parent) {\r\n const noParentCategories = categories.filter(\r\n (c: CategoryOption) => !c.parentCategoryId\r\n )\r\n noParentCategories.forEach((c: CategoryOption) => {\r\n const childrenOfCategory = categories.filter(\r\n (cg: CategoryOption) => cg.parentCategoryId?.includes(c.id)\r\n )\r\n const category: CategoryOption = {\r\n ...c,\r\n label: c.name,\r\n value: c.id,\r\n level: 0,\r\n isDisabled: false\r\n }\r\n result = result.concat(\r\n convertOptions(categories, category, childrenOfCategory)\r\n )\r\n })\r\n } else {\r\n result.push(parent)\r\n children?.forEach((c: CategoryOption) => {\r\n const childrenOfCategory = categories.filter(\r\n (cg: CategoryOption) => cg.parentCategoryId?.includes(c.id)\r\n )\r\n const category: CategoryOption = {\r\n ...c,\r\n label: c.name,\r\n value: c.id,\r\n level: parent.level ? parent.level + 1 : 1,\r\n isDisabled: false\r\n }\r\n result = result.concat(\r\n convertOptions(categories, category, childrenOfCategory)\r\n )\r\n })\r\n }\r\n return result\r\n }\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [])\r\n\r\n return {\r\n categories\r\n }\r\n}\r\n\r\nexport default useCategorySelector\r\n","import React from \"react\"\r\nimport Select, { StylesConfig } from \"react-select\"\r\nimport { CategoryOption } from \"./constants/constant\"\r\nimport useCategorySelector from \"./hooks/useCategorySelector\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\nconst optionStyles: StylesConfig<CategoryOption, false> = {\r\n control: (styles: any) => ({ ...styles, backgroundColor: \"white\" }),\r\n option: (styles: any, { data }) => {\r\n return {\r\n ...styles,\r\n fontWeight: !data?.level ? \"bold\" : \"normal\",\r\n paddingLeft: `${(data?.level || 0) + 1}rem`,\r\n paddingRight: \"1rem\",\r\n cursor: data.isDisabled ? \"not-allowed\" : \"pointer\",\r\n color: \"var(--color)\",\r\n \"&:first-letter\": {\r\n textTransform: \"uppercase\"\r\n }\r\n }\r\n }\r\n}\r\nconst CategorySelector = ({ value, ...rest }: any) => {\r\n const { categories } = useCategorySelector()\r\n const { t } = useTranslation()\r\n\r\n const initialValue = !!value\r\n ? categories.find((option: CategoryOption) => option.value === value) ||\r\n null\r\n : null\r\n\r\n return (\r\n <Select\r\n value={initialValue}\r\n options={categories}\r\n styles={optionStyles}\r\n placeholder={t(\"select_category\")}\r\n {...rest}\r\n />\r\n )\r\n}\r\n\r\nexport default CategorySelector\r\n","import React from \"react\"\nimport Select from \"react-select\"\n\nimport { STAR_OPTIONS } from \"../../utils/constants\"\n\nconst StarRatingSelector = (props: any) => {\n const { id } = props\n\n const initValue = !!id\n ? STAR_OPTIONS.find(option => option.value === id) || null\n : null\n\n return (\n <Select\n options={STAR_OPTIONS}\n value={initValue}\n {...props}\n menuPlacement=\"top\"\n />\n )\n}\n\nexport default StarRatingSelector\n","import React, { FC } from \"react\"\nimport { Button } from \"reactstrap\"\n\ninterface Props {\n textLeft: string\n textRight: string\n isLeft: boolean\n clickLeft: any\n clickRight: any\n}\n\nconst ACTIVE_COLOR = \"primary\"\nconst INACTIVE_COLOR = \"secondary\"\n\nconst ToggleButton: FC<Props> = ({\n textLeft,\n textRight,\n isLeft,\n clickLeft,\n clickRight\n}: Props) => {\n return (\n <div className=\"w-100 d-flex\">\n <Button\n size=\"sm\"\n color={isLeft ? ACTIVE_COLOR : INACTIVE_COLOR}\n onClick={clickLeft}\n className=\"toggle-btn toggle-btn-left flex-grow-1\"\n >\n {textLeft}\n </Button>\n <Button\n size=\"sm\"\n color={!isLeft ? ACTIVE_COLOR : INACTIVE_COLOR}\n onClick={clickRight}\n className=\"toggle-btn toggle-btn-right flex-grow-1\"\n >\n {textRight}\n </Button>\n </div>\n )\n}\n\nexport default ToggleButton\n","import React, { Fragment } from \"react\"\r\nimport { Input, Label } from \"reactstrap\"\r\nimport { customKeyUpload } from \"../../services/fileServices\"\r\nimport getFileUrl from \"../../utils/getFileUrl\"\r\n\r\ninterface Props {\r\n icon: React.ReactNode\r\n accept?: string | undefined\r\n callback: (fileName: string, filePath: string, fileType: string) => void\r\n}\r\n\r\nconst InputFile = ({ icon, accept = \"*\", callback }: Props) => {\r\n const handleFileChange = async (e: any) => {\r\n try {\r\n const formData = new FormData()\r\n const file = e.target.files[0]\r\n const fileName = file.name\r\n formData.append(\"file\", file, fileName)\r\n formData.append(\"customKey\", \"conversation\")\r\n const res = await customKeyUpload(formData)\r\n const { name, key, type } = res.data\r\n callback(name, getFileUrl(key), type)\r\n } catch (err) {\r\n console.error(err.message)\r\n }\r\n }\r\n\r\n return (\r\n <Fragment>\r\n <Input\r\n className=\"d-none\"\r\n type=\"file\"\r\n id=\"upload-file-btn\"\r\n onChange={handleFileChange}\r\n accept={accept}\r\n />\r\n <Label htmlFor=\"upload-file-btn\" role=\"button\">\r\n {icon}\r\n </Label>\r\n </Fragment>\r\n )\r\n}\r\n\r\nexport default InputFile\r\n","import React, { FC, memo } from \"react\"\r\n\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\n\r\nconst options = [\r\n { value: true, label: \"Read\" },\r\n { value: false, label: \"Unread\" }\r\n]\r\n\r\ninterface Props {\r\n value: boolean\r\n onChange: any\r\n}\r\n\r\nconst NotificationStatusSelector: FC<Props> = ({ value, onChange }: Props) => {\r\n const customSelector = {\r\n menu: (provided: any) => ({ ...provided, zIndex: 10 })\r\n }\r\n return (\r\n <CustomSelector\r\n defaultValue={value}\r\n options={options}\r\n onChange={onChange}\r\n styles={customSelector}\r\n />\r\n )\r\n}\r\n\r\nexport default memo(NotificationStatusSelector)\r\n","import { api } from \"./api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst NOTIFICATION_URL = `${BASE_URL}/api/notification`\r\n\r\nexport const get = (filter: any) =>\r\n api.get(NOTIFICATION_URL, { params: { ...filter } })\r\n\r\nexport const getUnReadNotifications = () =>\r\n api.get(`${NOTIFICATION_URL}/unread`)\r\n\r\nexport const updateLastTimeCheckNotification = () =>\r\n api.put(`${NOTIFICATION_URL}/lasttimechecknotification`)\r\n\r\nexport const getById = (id: number) => api.get(`${NOTIFICATION_URL}/${id}`)\r\n\r\nexport const updateStatusNotification = (id: number) =>\r\n api.put(`${NOTIFICATION_URL}/${id}`)\r\n\r\nexport const clearChatNotification = () =>\r\n api.delete(`${NOTIFICATION_URL}/chat`)\r\n\r\nexport const updateAllStatus = () =>\r\n api.put(`${NOTIFICATION_URL}/updateAllStatus`)\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setNotification = createAction<any>(\r\n \"notifications/setNotification\"\r\n)\r\n\r\nexport const setUnReadNotification = createAction<number>(\r\n \"notifications/setUnReadNotification\"\r\n)\r\n\r\nexport const updateUnReadNotification = createAction<number>(\r\n \"notifications/updateUnReadNotification\"\r\n)\r\n","import { useState, useCallback, useEffect } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport Pusher from \"pusher-js/with-encryption\"\r\n\r\nimport {\r\n get,\r\n updateStatusNotification,\r\n updateAllStatus\r\n} from \"../../../services/notificationService\"\r\n\r\nimport { setLoading, setModal, setAlert } from \"../../../redux/commons/action\"\r\nimport { setNotification } from \"../../../redux/notifications/action\"\r\nimport { useParams } from \"react-router-dom\"\r\n\r\nconst defaultFilters = {\r\n currentPage: 1,\r\n pageSize: 30,\r\n searchString: \"\",\r\n isRead: false\r\n}\r\n\r\nconst TITLE = \"Notification list\"\r\n\r\nconst NOTIFICATION_CHANNEL = \"NOTIFICATION_CHANNEL\"\r\nconst NEW_NOTIFICATION = \"NEW_NOTIFICATION\"\r\n\r\nconst useNotificationList = () => {\r\n const dispatch = useDispatch()\r\n const { roles } = useParams<{roles: string}>()\r\n const user = useSelector((state: any) => state.common.user)\r\n const userId = user?.id\r\n const studentId = user?.studentId\r\n const notificationList = useSelector(\r\n (state: any) => state.notification.notificationList\r\n )\r\n const pusherKey = useSelector((state: any) => state.common.user.pusherKey)\r\n const pusherCluster = useSelector(\r\n (state: any) => state.common.user.pusherCluster\r\n )\r\n\r\n const totalItems = useSelector(\r\n (state: any) => state.notification.totalItems\r\n )\r\n const unReadNotification = useSelector(\r\n (state: any) => state.notification.unReadNotification\r\n )\r\n const [filters, setFilters] = useState(defaultFilters)\r\n const [toggleUpdateAllStatus, setToggleUpdateAllStatus] = useState<boolean>(false)\r\n\r\n const changeFilters = (objectValue: any) =>\r\n setFilters({\r\n ...filters,\r\n ...objectValue\r\n })\r\n\r\n const viewNotification = (notification: any) => {\r\n const { source, extraData } = notification\r\n switch (source) {\r\n case \"AssessmentAssignment\":\r\n window.open(`/player/diagnosticsurvey/${Number(extraData)}`)\r\n break\r\n case \"NewConferenceCreated\":\r\n window.open(\r\n `/start-conference/${JSON.parse(extraData)?.[0]}/${\r\n JSON.parse(extraData)?.[1]\r\n }/conferenceRubric`\r\n )\r\n break\r\n case \"Class Reflection\":\r\n window.open(\r\n `/start-reflection/${extraData?.replace(/[\\[\\]]/g, '')?.split(',')?.[1]}`\r\n )\r\n break\r\n case \"Class Reflection Completed\":\r\n window.open(\r\n `/result-reflection/${extraData?.replace(/[\\[\\]]/g, '')?.split(',')?.[1]}`\r\n )\r\n break\r\n case \"External Reflection Completed\":\r\n window.open(\r\n `/result-reflection/${JSON.parse(extraData)?.[0]}/external`\r\n )\r\n break\r\n case \"NewSessionCreated\":\r\n window.open(\r\n `/start-question/${JSON.parse(extraData)?.[0]}/${\r\n JSON.parse(extraData)?.[1]\r\n }`\r\n )\r\n break\r\n case \"NewSessionComplete\":\r\n window.open(\r\n `/start-question/${JSON.parse(extraData)?.[0]}/${\r\n JSON.parse(extraData)?.[1]\r\n }`\r\n )\r\n break\r\n case \"ActionPointReminder\":\r\n window.open(\r\n `/action-point/to-do`\r\n )\r\n break\r\n case \"SendNotiPLP\":\r\n window.open(\r\n `/personal-learning-plan`\r\n )\r\n break\r\n case \"SendNotiGOAL\":\r\n window.open(\r\n `/my-goals/${JSON.parse(extraData)}`\r\n )\r\n break\r\n case \"CertificateApproved\":\r\n window.open(`/dashboard/certification/2`)\r\n break\r\n case \"RequestCheckIn\":\r\n window.open(\r\n `/start-question/${JSON.parse(extraData)?.[0]}/${\r\n JSON.parse(extraData)?.[1]\r\n }`\r\n )\r\n case \"NewSurveyCreated\":\r\n !!studentId && window.open(\r\n `/start-survey/${JSON.parse(extraData)?.[0]}/${studentId}`\r\n )\r\n break;\r\n case \"StudentCompletedSurvey\":\r\n !window.open(\r\n `/start-survey/${JSON.parse(extraData)?.[0]}/${JSON.parse(extraData)?.[1]}`\r\n )\r\n break;\r\n default:\r\n break\r\n }\r\n }\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const res = await get({...filters, roles: !roles?.trim() ? user?.roles : [roles]})\r\n const { items, totalItems } = res.data\r\n dispatch(\r\n setNotification({\r\n notificationList: items,\r\n totalItems\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [filters])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n getData()\r\n const pusher = new Pusher(pusherKey, { cluster: pusherCluster })\r\n const channel = pusher.subscribe(`${NOTIFICATION_CHANNEL}-${userId}`)\r\n \r\n channel.bind(NEW_NOTIFICATION, getData)\r\n return () => pusher.unsubscribe(`${NOTIFICATION_CHANNEL}-${userId}`)\r\n }, [filters, userId])\r\n\r\n const updateNotification = useCallback(\r\n (id: number, isRead: boolean) => {\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: `Do you want to mark this notification ${\r\n isRead ? \"read\" : \"unread\"\r\n }?`,\r\n onConfirm: async () => {\r\n await updateStatusNotification(id)\r\n getData()\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n },\r\n [notificationList, unReadNotification]\r\n )\r\n\r\n const updateAll = useCallback(async () => {\r\n try {\r\n if (notificationList.length === 0) throw new Error(\"There are no unread messages\")\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: `Do you want to mark all notification ?`,\r\n onConfirm: async () => {\r\n setToggleUpdateAllStatus(true)\r\n await updateAllStatus()\r\n getData()\r\n setToggleUpdateAllStatus(false)\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n }, [notificationList])\r\n\r\n return {\r\n notificationList,\r\n totalItems,\r\n unReadNotification,\r\n filters,\r\n changeFilters,\r\n updateNotification,\r\n viewNotification,\r\n updateAll,\r\n toggleUpdateAllStatus\r\n }\r\n}\r\n\r\nexport default useNotificationList\r\n","import React from \"react\"\r\nimport { Row, Col, Table, Input } from \"reactstrap\"\r\nimport { AiOutlineEye } from \"react-icons/ai\"\r\n\r\nimport SearchBox from \"../../../components/Inputs/SearchBox\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport NotificationStatusSelector from \"../components/NotificationStatusSelector\"\r\n\r\nimport utcToLocalTime from \"../../../utils/utcToLocalTime\"\r\n\r\nimport useNotificationList from \"../hooks/useNotificationList\"\r\nimport styles from \"../../../styles.module.scss\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\nconst header = \"Notification list\"\r\nconst ICON_SIZE = 20\r\n\r\nconst NotificationList = () => {\r\n const {\r\n notificationList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n updateNotification,\r\n viewNotification,\r\n updateAll,\r\n toggleUpdateAllStatus\r\n } = useNotificationList()\r\n const { t } = useTranslation()\r\n\r\n return (\r\n <div className=\"animated fadeIn\" style={{ padding: \"20px 40px 160px\" }}>\r\n <h5 className=\"mb-2\">{header}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={8}>\r\n <SearchBox\r\n initValue={filters.searchString}\r\n onSearch={(searchString?: any) =>\r\n changeFilters({\r\n searchString: searchString\r\n })\r\n }\r\n placeholder=\"Type something to search\"\r\n />\r\n </Col>\r\n <Col md={4}>\r\n <NotificationStatusSelector\r\n value={filters.isRead}\r\n onChange={(e: any) =>\r\n changeFilters({ isRead: e.value })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n <Row className=\"my-2 d-flex justify-content-center\">\r\n <Col md={12} className=\"d-flex justify-content-end align-items-center\">\r\n {filters.isRead === false && (\r\n <div className=\"d-flex align-items-center justify-content-end mx-2\">\r\n Mark all as read\r\n <Input\r\n checked={toggleUpdateAllStatus}\r\n className=\"mx-2\"\r\n type=\"checkbox\"\r\n id={`status-checkbox`}\r\n onChange={() => updateAll()}\r\n />\r\n </div>\r\n )}\r\n Total of notifications: {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={12}>\r\n {notificationList && notificationList.length > 0 ? (\r\n <div>\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">Text</th>\r\n <th className=\"align-top\">Time</th>\r\n <th className=\"text-center\">Is read</th>\r\n <th className=\"text-center\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {notificationList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n {record.text}\r\n </td>\r\n <td className=\"align-middle\">\r\n {utcToLocalTime(\r\n record.time,\r\n \"yyyy-MM-DD HH:mm\"\r\n )}\r\n </td>\r\n <td\r\n className={`${styles[\"control-input\"]} text-center align-middle`}\r\n >\r\n <Input\r\n type=\"checkbox\"\r\n id={`status-checkbox-${record.id}`}\r\n checked={record.isRead}\r\n onChange={() =>\r\n updateNotification(\r\n record.id,\r\n !record.isRead\r\n )\r\n }\r\n />\r\n </td>\r\n <td className=\"text-center align-middle\">\r\n {[\r\n \"AssessmentAssignment\",\r\n \"NewConferenceCreated\",\r\n \"NewSessionCreated\",\r\n \"CertificateApproved\",\r\n \"Class Reflection\",\r\n \"NewSessionComplete\",\r\n \"ActionPointReminder\",\r\n \"SendNotiPLP\",\r\n \"SendNotiGOAL\",\r\n \"Class Reflection Completed\",\r\n \"External Reflection Completed\",\r\n \"RequestCheckIn\",\r\n \"NewSurveyCreated\",\r\n \"StudentCompletedSurvey\"\r\n ].includes(record.source) && (\r\n <AiOutlineEye\r\n className=\"cursor-pointer\"\r\n size={ICON_SIZE}\r\n title=\"Detail\"\r\n onClick={() =>\r\n viewNotification(\r\n record\r\n )\r\n }\r\n />\r\n )}\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n </div>\r\n ) : (\r\n <EmptyDataAlert label={t('notification')} />\r\n )}\r\n </Col>\r\n <Col md={12}>\r\n <CustomPagination\r\n filters={filters}\r\n totalRecordCount={totalItems}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default NotificationList\r\n","import React, { FC, useRef, useEffect } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { Alert } from \"reactstrap\"\r\nimport styles from \"../../styles.module.scss\"\r\n\r\nimport { setAlert } from \"../../redux/commons/action\"\r\n\r\nconst CommonAlert: FC = () => {\r\n const dispatch = useDispatch()\r\n const alert = useSelector((state: any) => state.common.alert)\r\n const timeout = useRef<any>(null)\r\n\r\n const onDismiss = () => {\r\n dispatch(setAlert({ message: \"\" }))\r\n timeout && timeout.current && clearTimeout(timeout.current)\r\n }\r\n\r\n useEffect(() => {\r\n if (!!alert.message?.length) {\r\n timeout && timeout.current && clearTimeout(timeout.current)\r\n timeout.current = setTimeout(() => {\r\n dispatch(setAlert({ message: \"\" }))\r\n }, 3000)\r\n }\r\n }, [alert])\r\n\r\n return alert.message?.length > 0 ? (\r\n <div\r\n className={`app-alert ${styles[\"app-alert\"]} ${styles[`app-alert--${alert.type}`]}`}\r\n >\r\n <Alert\r\n color={alert.type}\r\n isOpen={alert.message.length > 0}\r\n toggle={onDismiss}\r\n >\r\n {alert.message}\r\n </Alert>\r\n </div>\r\n ) : null\r\n}\r\n\r\nexport default CommonAlert\r\n","import { Formik } from \"formik\"\nimport React, { forwardRef } from \"react\"\nimport { Col, Input, Row } from \"reactstrap\"\nimport * as yup from \"yup\"\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\nimport CommonModal from \"../../../components/Modals/CommonModal\"\n\nconst schema = yup.object({\n name: yup.string().required(\"Name is required\")\n})\n\nconst ActionModal = (props: any, ref: any) => {\n const { targetMedia, onConfirm } = props\n const confirmText = targetMedia?.key ? \"Update\" : \"Create\"\n const header = targetMedia?.key ? \"Rename\" : \"Folder\"\n return (\n <Formik\n initialValues={{ name: targetMedia?.name }}\n enableReinitialize\n validationSchema={schema}\n onSubmit={(values, actions) => {\n onConfirm && onConfirm(values)\n actions.resetForm()\n }}\n >\n {formikProps => {\n const {\n values,\n touched,\n errors,\n handleChange,\n handleBlur,\n handleSubmit\n } = formikProps\n return (\n <CommonModal\n header={header}\n confirmText={confirmText}\n onConfirm={handleSubmit}\n ref={ref}\n >\n <Row>\n <Col md={12}>\n <Input\n name=\"name\"\n placeholder={`Enter your ${\n targetMedia?.key ? \"file\" : \"folder\"\n } name`}\n value={values.name}\n onChange={handleChange}\n onBlur={handleBlur(\"question\")}\n />\n {touched.name && errors.name && (\n <ErrorHandler\n text={errors.name as string}\n />\n )}\n </Col>\n </Row>\n </CommonModal>\n )\n }}\n </Formik>\n )\n}\n\nexport default forwardRef(ActionModal)\n","import React, { FC, useRef } from \"react\"\r\nimport { Row, Col, Button, Label } from \"reactstrap\"\r\nimport {\r\n FaFolderPlus,\r\n FaFileUpload,\r\n FaArrowLeft,\r\n FaDownload,\r\n FaTrash,\r\n FaEdit\r\n} from \"react-icons/fa\"\r\nimport ActionModal from \"./ActionModal\"\r\nimport { S3Object } from \"../constants/gallery.types\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\ninterface MediaNavInterface {\r\n isLibrary?: boolean\r\n step: number\r\n breadcumb: string\r\n currentPrefix: string\r\n targetMedia: S3Object\r\n handleSelectFile: Function\r\n handleCreateFolder: Function\r\n handleRenameFile: Function\r\n handleGoBack: () => void\r\n handleDownloadMedia: () => void\r\n handleDeleteMediaOrFolder: () => void\r\n showErrorAlert: (message: string) => void\r\n}\r\n\r\nconst MediaNav: FC<MediaNavInterface> = ({\r\n isLibrary,\r\n step,\r\n breadcumb,\r\n currentPrefix,\r\n targetMedia,\r\n handleSelectFile,\r\n handleCreateFolder,\r\n handleRenameFile,\r\n handleGoBack,\r\n handleDownloadMedia,\r\n handleDeleteMediaOrFolder,\r\n showErrorAlert\r\n}) => {\r\n const modal = useRef<any>(null)\r\n const inputFile = useRef<HTMLInputElement>(null)\r\n const { t } = useTranslation()\r\n\r\n const openModal = () => modal?.current?.toggle()\r\n\r\n const renderGroupButtons = () => (\r\n <Row className=\"p-2 pl-3\">\r\n {!!step && (\r\n <Button\r\n className=\"mr-2\"\r\n color=\"secondary\"\r\n onClick={handleGoBack}\r\n >\r\n <FaArrowLeft />\r\n <Label className=\"ml-1 h6 m-0\">Go up</Label>\r\n </Button>\r\n )}\r\n {targetMedia && !targetMedia.isFolder && (\r\n <Button\r\n className=\"mr-2\"\r\n color=\"success\"\r\n onClick={handleDownloadMedia}\r\n >\r\n <FaDownload />\r\n <Label className=\"ml-1 h6 m-0\">Download</Label>\r\n </Button>\r\n )}\r\n {targetMedia && !isLibrary && (\r\n <Button\r\n className=\"mr-2\"\r\n color=\"danger\"\r\n onClick={handleDeleteMediaOrFolder}\r\n >\r\n <FaTrash />\r\n <Label className=\"ml-1 h6 m-0\">Delete</Label>\r\n </Button>\r\n )}\r\n {targetMedia && !isLibrary && !targetMedia.isFolder && (\r\n <Button className=\"mr-2\" color=\"primary\" onClick={openModal}>\r\n <FaEdit />\r\n <Label className=\"ml-1 h6 m-0\">Rename</Label>\r\n </Button>\r\n )}\r\n {!targetMedia && !isLibrary && (\r\n <Button className=\"mr-2\" color=\"success\" onClick={openModal}>\r\n <FaFolderPlus />\r\n <Label className=\"ml-1 h6 m-0\">{t(\"new_folder\")}</Label>\r\n </Button>\r\n )}\r\n {!targetMedia && !isLibrary && (\r\n <Button\r\n className=\"mr-2\"\r\n color=\"info\"\r\n onClick={() => inputFile?.current?.click()}\r\n >\r\n <FaFileUpload />\r\n <Label className=\"ml-1 h6 m-0\">{t(\"upload\")}</Label>\r\n </Button>\r\n )}\r\n {breadcumb && (\r\n <Col className=\"h-100 d-flex align-items-center\">\r\n {breadcumb}\r\n </Col>\r\n )}\r\n </Row>\r\n )\r\n\r\n return (\r\n <div>\r\n {renderGroupButtons()}\r\n <ActionModal\r\n ref={modal}\r\n targetMedia={targetMedia}\r\n onConfirm={async (values: any) => {\r\n if (values.name != \"\") {\r\n if (targetMedia && !targetMedia.isFolder) {\r\n openModal()\r\n await handleRenameFile(values.name)\r\n } else {\r\n openModal()\r\n await handleCreateFolder(currentPrefix, values.name)\r\n }\r\n } else {\r\n showErrorAlert(\"Name can't be empty\")\r\n }\r\n }}\r\n />\r\n\r\n <input\r\n type=\"file\"\r\n id=\"customMediaUpload\"\r\n ref={inputFile}\r\n style={{ display: \"none\" }}\r\n onChange={async (event: any) => {\r\n const file = event?.target?.files[0]\r\n if (file) {\r\n await handleSelectFile({ key: currentPrefix, file })\r\n }\r\n }}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default React.memo(MediaNav)\r\n","const Images = {\r\n USER_CONVERSATION_AVATAR: \"images/user.png\",\r\n GROUP_CONVERSATION_AVATAR: \"images/group.png\",\r\n LOGO: \"images/logo-white.svg\",\r\n LOGO_HEADER: \"images/logo-header.png\",\r\n LOGO_MINIMIZED: \"images/logo-small.png\",\r\n DOCS_IMAGE: \"images/docs.png\",\r\n AUDIO_IMAGE: \"images/audio.png\",\r\n PHOTO_IMAGE: \"images/image.png\",\r\n VIDEO_IMAGE: \"images/video.png\",\r\n FOLDER_IMAGE: \"images/folder.png\",\r\n UNKNOW_IMAGE: \"images/unknow.png\",\r\n\r\n}\r\n\r\nexport default Images\r\n","export type S3Object = {\r\n name?: string\r\n key?: string\r\n extension?: string\r\n isFolder?: boolean\r\n}\r\n\r\nexport enum MediaType {\r\n IMAGE,\r\n VIDEO,\r\n AUDIO,\r\n DOC,\r\n UNKNOW\r\n}\r\n\r\nexport type FilterType = {\r\n searchString?: string\r\n types?: MediaType[]\r\n prefix?: string\r\n fromDate?: number\r\n toDate?: number\r\n isLibrary?: boolean\r\n}\r\n","import Images from '../../../assets/Images';\r\nimport getFileUrl from '../../../utils/getFileUrl';\r\nimport {MediaType, S3Object} from '../constants/gallery.types'\r\n\r\nconst images = [\"png\", \"jpg\", \"jpeg\", \"gif\"]\r\nconst videos = [\"mp4\", \"mp4v\"]\r\nconst docs = [\"txt\", \"pdf\", \"doc\", \"docx\", \"xls\", \"csv\"]\r\nconst audios = [\"wav\", \"mp3\"]\r\n\r\n\r\nexport const getTypeByExtension: (extension: string | undefined) => MediaType = (extension) => {\r\n if(extension){\r\n if(images.includes(extension)) return MediaType.IMAGE\r\n if(videos.includes(extension)) return MediaType.VIDEO\r\n if(docs.includes(extension)) return MediaType.DOC\r\n if(audios.includes(extension)) return MediaType.AUDIO\r\n }\r\n return MediaType.UNKNOW\r\n}\r\n\r\nexport const getMediaThumbnail = (media: S3Object) => {\r\n if(media.isFolder) return Images.FOLDER_IMAGE;\r\n const type = getTypeByExtension(media.extension)\r\n\r\n if(type === MediaType.IMAGE){\r\n return Images.PHOTO_IMAGE\r\n }\r\n if(type === MediaType.VIDEO){\r\n return Images.VIDEO_IMAGE\r\n }\r\n if(type === MediaType.AUDIO){\r\n return Images.AUDIO_IMAGE\r\n }\r\n if(type === MediaType.DOC){\r\n return Images.DOCS_IMAGE\r\n }\r\n return Images.UNKNOW_IMAGE;\r\n}\r\n\r\nexport const getMediaImage = (media: S3Object) => {\r\n if(media.isFolder) return Images.FOLDER_IMAGE;\r\n const type = getTypeByExtension(media.extension)\r\n\r\n if(type === MediaType.IMAGE){\r\n return getFileUrl(media.key || \"\")\r\n }\r\n if(type === MediaType.VIDEO){\r\n return Images.VIDEO_IMAGE\r\n }\r\n if(type === MediaType.AUDIO){\r\n return Images.AUDIO_IMAGE\r\n }\r\n if(type === MediaType.DOC){\r\n return Images.DOCS_IMAGE\r\n }\r\n return \"\";\r\n}\r\n","import React, {FC} from 'react'\r\nimport {Card,CardImg, CardBody, CardTitle} from 'reactstrap';\r\nimport {S3Object} from '../constants/gallery.types'\r\nimport styles from '../styles/media.styles.module.scss'\r\nimport {getMediaThumbnail} from '../extensions/helpers'\r\nimport getStaticFileUrl from '../../../utils/getStaticFileUrl';\r\n\r\ninterface MediaInterface {\r\n media: S3Object,\r\n isTarget: boolean\r\n}\r\n\r\nconst Media: FC<MediaInterface> = ({media, isTarget}) => {\r\n const thumbnail = getMediaThumbnail(media)\r\n return (\r\n <Card className={`${isTarget ? styles[\"media-image-selected\"] : ''} border-0 `}>\r\n <CardImg\r\n className={`${styles[\"media-image\"]} p-1`}\r\n top\r\n width=\"90%\"\r\n src={getStaticFileUrl(thumbnail)}\r\n alt={media.name}\r\n />\r\n <CardBody className=\"p-1\" style={{height: 45}}>\r\n <CardTitle tag=\"h6\" className={styles[\"media-title\"]}>{media.name}</CardTitle>\r\n </CardBody>\r\n </Card>\r\n )\r\n}\r\n\r\nexport default React.memo(Media)\r\n","import React, {\r\n FC,\r\n useState\r\n // , useRef\r\n} from \"react\"\r\nimport {\r\n Col,\r\n // FormGroup,\r\n // Input,\r\n // Label,\r\n Row\r\n} from \"reactstrap\"\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\nimport { FilterType, MediaType } from \"../constants/gallery.types\"\r\n// import DatePicker from \"react-datepicker\"\r\n// import { getTime, format } from \"date-fns\"\r\n// import { DATE_FORMAT } from \"../../../utils/constants\"\r\nimport styles from \"../styles/media.styles.module.scss\"\r\n// import useGalleryDetail from \"../hooks/galleryDetail\"\r\nimport SearchBox from \"../../../components/Inputs/SearchBox\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\ninterface FilterInterface {\r\n changeFilters: (filter: FilterType) => void\r\n filters: FilterType\r\n}\r\n\r\ntype MediaOption = {\r\n value: MediaType\r\n label: string\r\n}\r\n\r\nconst options: MediaOption[] = [\r\n { value: MediaType.IMAGE, label: \"images\" },\r\n { value: MediaType.AUDIO, label: \"audios\" },\r\n { value: MediaType.DOC, label: \"docs\" },\r\n { value: MediaType.VIDEO, label: \"videos\" }\r\n]\r\n\r\nconst Filter: FC<FilterInterface> = ({\r\n changeFilters\r\n // filters\r\n}) => {\r\n const [queryTypes, selectQueryTypes] = useState<MediaOption[]>()\r\n const {t} = useTranslation()\r\n return (\r\n <Row className={`${styles[\"filter-media-file\"]}`}>\r\n <Col sm={8}>\r\n <SearchBox\r\n initValue=\"\"\r\n onSearch={(searchString?: any) =>\r\n changeFilters({\r\n searchString: searchString\r\n })\r\n }\r\n placeholder={t(\"type_something_to_search_by_file_name\")}\r\n />\r\n </Col>\r\n\r\n <Col sm={4}>\r\n <CustomSelector\r\n value={queryTypes}\r\n isMulti\r\n options={options.map((x:any)=>({...x, label: t(x.label)}))}\r\n onChange={(options: MediaOption[]) => {\r\n selectQueryTypes(options)\r\n const types = options.map((op: MediaOption) => op.value)\r\n changeFilters({ types })\r\n }}\r\n />\r\n </Col>\r\n {/* <Col sm={4}>\r\n <FormGroup>\r\n <Label>From date</Label>\r\n <DatePicker\r\n wrapperClassName={`${styles[\"date-time-input\"]} w-100`}\r\n value={\r\n !!filters.fromDate\r\n ? format(filters.fromDate, DATE_FORMAT)\r\n : undefined\r\n }\r\n todayButton=\"Today\"\r\n peekNextMonth\r\n showMonthDropdown\r\n showYearDropdown\r\n dropdownMode=\"select\"\r\n placeholderText=\"From date\"\r\n onChange={(date: Date) => {\r\n changeFilters({\r\n fromDate: getTime(date)\r\n })\r\n }}\r\n customInput={<Input type=\"text\" />}\r\n />\r\n </FormGroup>\r\n </Col>\r\n <Col sm={4}>\r\n <FormGroup>\r\n <Label>To date</Label>\r\n <DatePicker\r\n wrapperClassName={`${styles[\"date-time-input\"]} w-100`}\r\n value={\r\n !!filters.toDate\r\n ? format(filters.toDate, DATE_FORMAT)\r\n : undefined\r\n }\r\n todayButton=\"Today\"\r\n peekNextMonth\r\n showMonthDropdown\r\n showYearDropdown\r\n dropdownMode=\"select\"\r\n placeholderText=\"To date\"\r\n onChange={(date: Date) => {\r\n changeFilters({\r\n toDate: getTime(date)\r\n })\r\n }}\r\n customInput={<Input type=\"text\"/>}\r\n />\r\n </FormGroup>\r\n </Col> */}\r\n </Row>\r\n )\r\n}\r\n\r\nexport default Filter\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setGallery = createAction<any>(\"gallery/setGallery\")\r\nexport const setTargetMedia = createAction<any>(\"gallery/setTargetMedia\")\r\n\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\nimport { FilterType } from './../containers/Gallery/constants/gallery.types';\r\n\r\nconst GALLERY_URL = `${BASE_URL}/api/file`\r\n\r\nexport const get = (filter: FilterType) =>\r\n api.get(`${GALLERY_URL}`, { params: filter })\r\n","import { setModal } from \"../../../redux/commons/action\"\nimport { useState, useCallback, useEffect, useMemo } from \"react\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport { setLoading, setAlert } from \"../../../redux/commons/action\"\nimport { setGallery, setTargetMedia } from \"../../../redux/gallery/action\"\nimport { get } from \"../../../services/galleryService\"\nimport { FilterType } from \"../constants/gallery.types\"\nimport {\n renameFile,\n customKeyUpload,\n deleteFile,\n deleteFolder,\n createFolder\n} from \"../../../services/fileServices\"\nimport { S3Object } from \"../constants/gallery.types\"\nimport getFileUrl from \"../../../utils/getFileUrl\"\n\nconst TITLE = \"Gallery\"\n\nconst defaultFilter: FilterType = {\n searchString: \"\"\n}\n\ninterface FormDataMediaType {\n file: File\n key?: string\n}\n\ninterface RouterType {\n link: string\n step: number\n}\n\nconst useGalleryList = (isLibrary: boolean = false) => {\n const mediaList = useSelector((state: any) => state.gallery.mediaList)\n const totalItems = useSelector((state: any) => state.gallery.totalItems)\n const targetMedia: S3Object = useSelector(\n (state: any) => state.gallery.targetMedia\n )\n const dispatch = useDispatch()\n\n const [formDataMediaType, handleSelectFile] = useState<FormDataMediaType>()\n const [filters, setFilters] = useState<FilterType>(\n Object.assign(\n { ...defaultFilter },\n isLibrary ? { isLibrary: true } : {}\n )\n )\n const [router, changeRouter] = useState<RouterType>({ link: \"\", step: 0 })\n\n const handleOpenFolder = (media: S3Object) => {\n if (media.isFolder) {\n setFilters({ prefix: media.key, isLibrary })\n if (media.key) {\n changeRouter({\n link: media.key,\n step: router.step + 1\n })\n }\n }\n }\n\n const handleGoBack = () => {\n const { link, step } = router\n if (!link || link == \"\" || step < 1) return\n let temp = link.split(\"/\")\n if (temp[temp.length - 1] === \"\") {\n changeRouter({\n link: `${temp.splice(0, temp.length - 2).join(\"/\")}/`,\n step: step - 1\n })\n } else {\n temp.pop()\n changeRouter({ link: `${temp.join(\"/\")}/`, step: step - 1 })\n }\n }\n\n const handleSelectMedia = (media: S3Object) => {\n dispatch(setTargetMedia({ targetMedia: undefined }))\n if (targetMedia) {\n if (media.key === targetMedia.key) {\n dispatch(setTargetMedia({ targetMedia: undefined }))\n } else {\n dispatch(setTargetMedia({ targetMedia: media }))\n }\n } else {\n dispatch(setTargetMedia({ targetMedia: media }))\n }\n }\n\n const handleRenameFile = async (name: string) => {\n if (targetMedia?.key && name) {\n dispatch(setLoading(true))\n await renameFile(targetMedia.key, name)\n dispatch(setTargetMedia({ targetMedia: undefined }))\n dispatch(setLoading(false))\n getData()\n }\n }\n\n const handleDownloadMedia = () => {\n if (targetMedia?.key) {\n const url = getFileUrl(targetMedia.key)\n window.open(url, \"_blank\")\n } else {\n dispatch(\n setAlert({\n type: \"danger\",\n message: \"Error to download media, please try later.\"\n })\n )\n }\n }\n\n const showErrorAlert = (message: string) => {\n setAlert({ type: \"danger\", message })\n }\n\n const handleDeleteMediaOrFolder = async () => {\n if (targetMedia?.key) {\n dispatch(\n setModal({\n isOpen: true,\n type: \"warning\",\n message: `Do you want to remove this ${\n targetMedia.isFolder ? \"folder\" : \"file\"\n }`,\n onConfirm: async () => {\n dispatch(setLoading(true))\n if (targetMedia.isFolder) {\n await deleteFolder(targetMedia.key || \"\")\n dispatch(setTargetMedia({ targetMedia: undefined }))\n } else {\n await deleteFile(targetMedia?.key || \"\")\n dispatch(setTargetMedia({ targetMedia: undefined }))\n }\n dispatch(setLoading(false))\n getData()\n }\n })\n )\n } else {\n dispatch(\n setAlert({\n type: \"danger\",\n message: \"Error to delete media, please try later.\"\n })\n )\n }\n }\n\n const handleCreateFolder = async (prefix: string, folderName: string) => {\n if (folderName) {\n await createFolder(prefix, folderName)\n getData()\n }\n }\n\n const changeFilters = (updatedFilters: FilterType) =>\n setFilters({\n ...filters,\n ...updatedFilters\n })\n\n const getData = useCallback(async () => {\n dispatch(setLoading(true))\n try {\n const res = await get(filters)\n dispatch(\n setGallery({\n mediaList: res.data,\n totalItems: res.data.length || 0\n })\n )\n } catch (err) {\n dispatch(\n setAlert({\n type: \"danger\",\n message: err.response?.data?.title || err.message\n })\n )\n }\n dispatch(setLoading(false))\n }, [dispatch, filters])\n\n useEffect(() => {\n document.title = TITLE\n dispatch(setTargetMedia({ targetMedia: undefined }))\n }, [])\n\n useEffect(() => {\n changeFilters({ prefix: router.link })\n }, [router.link])\n\n useEffect(() => {\n getData()\n }, [filters])\n\n useEffect(() => {\n async function customKeyUploadEffect() {\n if (isLibrary) return\n dispatch(setLoading(true))\n try {\n if (formDataMediaType) {\n const { file, key } = formDataMediaType\n const { name } = file\n const customKey = key\n const formData = new FormData()\n formData.append(\"file\", file, name)\n formData.append(\"customKey\", customKey?.slice(0, -1) || \"\")\n await customKeyUpload(formData)\n getData()\n }\n } catch (err) {\n dispatch(\n setAlert({\n type: \"danger\",\n message: err.response?.data?.title || err.message\n })\n )\n }\n dispatch(setLoading(false))\n }\n\n customKeyUploadEffect()\n }, [formDataMediaType])\n\n const breadcrumb = useMemo(() => {\n try {\n const subLinks = router.link?.split(\"/\")\n return subLinks.splice(2, subLinks.length).join(\"/\")\n } catch (_err) {\n return \"\"\n }\n }, [router.link])\n\n return {\n mediaList,\n filters,\n totalItems,\n targetMedia,\n router,\n breadcrumb,\n getData,\n changeFilters,\n handleSelectFile,\n handleOpenFolder,\n handleSelectMedia,\n handleRenameFile,\n handleDownloadMedia,\n handleDeleteMediaOrFolder,\n handleCreateFolder,\n handleGoBack,\n showErrorAlert\n }\n}\n\nexport default useGalleryList\n","import React, { FC } from \"react\"\nimport { Row, Col, Card, CardHeader, CardBody } from \"reactstrap\"\nimport { S3Object } from \"../constants/gallery.types\"\nimport MediaNav from \"../components/MediaNav\"\nimport Media from \"../components/Media\"\nimport Filter from \"../components/Filter\"\nimport styles from \"../styles/media.styles.module.scss\"\nimport useGalleryList from \"../hooks/useGalleryList\"\n\ninterface Props {\n height: string\n isLibrary?: boolean\n}\n\nconst MediaList: FC<Props> = ({ height, isLibrary }: Props) => {\n const {\n filters,\n mediaList,\n targetMedia,\n router,\n breadcrumb,\n changeFilters,\n handleOpenFolder,\n handleSelectMedia,\n handleSelectFile,\n handleCreateFolder,\n handleRenameFile,\n handleDownloadMedia,\n handleDeleteMediaOrFolder,\n handleGoBack,\n showErrorAlert\n } = useGalleryList(isLibrary)\n\n const renderList = () =>\n mediaList.map((media: S3Object) => {\n const isTarget = targetMedia?.key === media.key\n\n return (\n <Col className=\"p-2\" xs=\"auto\" key={media.key}>\n <div\n onDoubleClick={() => handleOpenFolder(media)}\n onClick={() => handleSelectMedia(media)}\n className={styles[\"media-wrapper\"]}\n >\n <Media media={media} isTarget={isTarget} />\n </div>\n </Col>\n )\n })\n\n return (\n <Card>\n <CardHeader>\n <Filter changeFilters={changeFilters} filters={filters} />\n <MediaNav\n isLibrary={isLibrary}\n step={router.step}\n breadcumb={breadcrumb}\n currentPrefix={filters.prefix || \"\"}\n targetMedia={targetMedia}\n handleSelectFile={handleSelectFile}\n handleCreateFolder={handleCreateFolder}\n handleRenameFile={handleRenameFile}\n handleDownloadMedia={handleDownloadMedia}\n handleDeleteMediaOrFolder={handleDeleteMediaOrFolder}\n handleGoBack={handleGoBack}\n showErrorAlert={showErrorAlert}\n />\n </CardHeader>\n <CardBody style={{ minHeight: height }}>\n <Row className=\"p-1\">{renderList()}</Row>\n </CardBody>\n </Card>\n )\n}\n\nexport default MediaList\n","import React, { FC } from \"react\"\r\nimport {\r\n Card,\r\n CardImg,\r\n CardTitle,\r\n CardHeader,\r\n CardBody,\r\n CardText\r\n} from \"reactstrap\"\r\nimport getFileUrl from \"../../../utils/getFileUrl\"\r\nimport { MediaType, S3Object } from \"../constants/gallery.types\"\r\nimport { getTypeByExtension } from \"../extensions/helpers\"\r\ninterface MediaDetailInterface {\r\n targetMedia: S3Object\r\n}\r\n\r\nconst MediaDetail: FC<MediaDetailInterface> = ({ targetMedia }) => {\r\n if (!targetMedia || targetMedia?.isFolder) return <div />\r\n const type = getTypeByExtension(targetMedia.extension)\r\n const url = getFileUrl(targetMedia.key || \"\")\r\n\r\n return (\r\n <Card className=\"position-sticky\">\r\n <CardHeader>{targetMedia?.name || \"Media name\"}</CardHeader>\r\n {type === MediaType.IMAGE && (\r\n <CardImg className=\"p-2\" src={url} loading=\"lazy\" />\r\n )}\r\n {type === MediaType.VIDEO && (\r\n <div className=\"p-2\">\r\n <video\r\n id={targetMedia.key}\r\n width=\"100%\"\r\n height=\"100%\"\r\n controls\r\n >\r\n <source src={url} />\r\n </video>\r\n </div>\r\n )}\r\n {type === MediaType.AUDIO && (\r\n <div className=\"p-2\">\r\n <audio controls className=\"w-100\">\r\n <source src={url}/>\r\n </audio>\r\n </div>\r\n )}\r\n <CardBody>\r\n <CardTitle tag=\"h6\">General Info</CardTitle>\r\n <CardText>\r\n File extension: {targetMedia.extension?.toUpperCase()}\r\n </CardText>\r\n </CardBody>\r\n </Card>\r\n )\r\n}\r\n\r\nexport default React.memo(MediaDetail)\r\n","import React, { FC } from \"react\"\r\nimport { Row, Col } from \"reactstrap\"\r\nimport { useSelector } from \"react-redux\"\r\nimport MediaList from \"../components/MediaList\"\r\nimport MediaDetail from \"../components/MediaDetail\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\nconst header = \"media_gallery\"\r\ninterface Props {\r\n isLibrary?: boolean\r\n}\r\n\r\nconst GalleryList: FC<Props> = ({ isLibrary }: Props) => {\r\n const targetMedia = useSelector((state: any) => state.gallery.targetMedia)\r\n const { t } = useTranslation()\r\n\r\n return (\r\n <div className=\"fadeIn animated\">\r\n {!isLibrary && <h5 className=\"mb-2\">{t(header)}</h5>}\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n <MediaList height=\"100vh\" isLibrary={isLibrary} />\r\n </Col>\r\n <Col md={4}>\r\n <MediaDetail\r\n key={targetMedia?.key}\r\n targetMedia={targetMedia}\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\nexport default GalleryList\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst CLASS_URL = `${BASE_URL}/api/academicclass`\r\n\r\nexport const get = () => api.get(CLASS_URL)\r\n","import React, { useState, useEffect } from \"react\"\nimport Select from \"react-select\"\nimport { get } from \"../../services/classService\"\n\nconst AcademicClassSelector = (props: any) => {\n const [classes, setClasses] = useState([])\n\n useEffect(() => {\n getData()\n }, [])\n\n const getData = async () => {\n try {\n const res = await get()\n setClasses(res.data.items)\n } catch (err) {\n console.error(err)\n }\n }\n const { id } = props\n const options = classes.map((i: any) => {\n return {\n id: i.id,\n value: i.id,\n label: i.name\n }\n })\n\n const initValue = !!id\n ? options.find((option: any) => option.value === id) || null\n : null\n\n return <Select options={options} value={initValue} {...props} />\n}\n\nexport default AcademicClassSelector\n","import React, { FC } from \"react\"\n\nconst SchoolList: FC = () => {\n return <div>District school list</div>\n}\n\nexport default SchoolList\n","// src/utils/formatProdErrorMessage.ts\nfunction formatProdErrorMessage(code) {\n return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;\n}\n\n// src/utils/symbol-observable.ts\nvar $$observable = /* @__PURE__ */ (() => typeof Symbol === \"function\" && Symbol.observable || \"@@observable\")();\nvar symbol_observable_default = $$observable;\n\n// src/utils/actionTypes.ts\nvar randomString = () => Math.random().toString(36).substring(7).split(\"\").join(\".\");\nvar ActionTypes = {\n INIT: `@@redux/INIT${/* @__PURE__ */ randomString()}`,\n REPLACE: `@@redux/REPLACE${/* @__PURE__ */ randomString()}`,\n PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nvar actionTypes_default = ActionTypes;\n\n// src/utils/isPlainObject.ts\nfunction isPlainObject(obj) {\n if (typeof obj !== \"object\" || obj === null)\n return false;\n let proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}\n\n// src/utils/kindOf.ts\nfunction miniKindOf(val) {\n if (val === void 0)\n return \"undefined\";\n if (val === null)\n return \"null\";\n const type = typeof val;\n switch (type) {\n case \"boolean\":\n case \"string\":\n case \"number\":\n case \"symbol\":\n case \"function\": {\n return type;\n }\n }\n if (Array.isArray(val))\n return \"array\";\n if (isDate(val))\n return \"date\";\n if (isError(val))\n return \"error\";\n const constructorName = ctorName(val);\n switch (constructorName) {\n case \"Symbol\":\n case \"Promise\":\n case \"WeakMap\":\n case \"WeakSet\":\n case \"Map\":\n case \"Set\":\n return constructorName;\n }\n return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\\s/g, \"\");\n}\nfunction ctorName(val) {\n return typeof val.constructor === \"function\" ? val.constructor.name : null;\n}\nfunction isError(val) {\n return val instanceof Error || typeof val.message === \"string\" && val.constructor && typeof val.constructor.stackTraceLimit === \"number\";\n}\nfunction isDate(val) {\n if (val instanceof Date)\n return true;\n return typeof val.toDateString === \"function\" && typeof val.getDate === \"function\" && typeof val.setDate === \"function\";\n}\nfunction kindOf(val) {\n let typeOfVal = typeof val;\n if (process.env.NODE_ENV !== \"production\") {\n typeOfVal = miniKindOf(val);\n }\n return typeOfVal;\n}\n\n// src/createStore.ts\nfunction createStore(reducer, preloadedState, enhancer) {\n if (typeof reducer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"function\" || typeof enhancer === \"function\" && typeof arguments[3] === \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : \"It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.\");\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"undefined\") {\n enhancer = preloadedState;\n preloadedState = void 0;\n }\n if (typeof enhancer !== \"undefined\") {\n if (typeof enhancer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);\n }\n return enhancer(createStore)(reducer, preloadedState);\n }\n let currentReducer = reducer;\n let currentState = preloadedState;\n let currentListeners = /* @__PURE__ */ new Map();\n let nextListeners = currentListeners;\n let listenerIdCounter = 0;\n let isDispatching = false;\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = /* @__PURE__ */ new Map();\n currentListeners.forEach((listener, key) => {\n nextListeners.set(key, listener);\n });\n }\n }\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : \"You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.\");\n }\n return currentState;\n }\n function subscribe(listener) {\n if (typeof listener !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : \"You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api/store#subscribelistener for more details.\");\n }\n let isSubscribed = true;\n ensureCanMutateNextListeners();\n const listenerId = listenerIdCounter++;\n nextListeners.set(listenerId, listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : \"You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api/store#subscribelistener for more details.\");\n }\n isSubscribed = false;\n ensureCanMutateNextListeners();\n nextListeners.delete(listenerId);\n currentListeners = null;\n };\n }\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);\n }\n if (typeof action.type === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n if (typeof action.type !== \"string\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(17) : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : \"Reducers may not dispatch actions.\");\n }\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n const listeners = currentListeners = nextListeners;\n listeners.forEach((listener) => {\n listener();\n });\n return action;\n }\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);\n }\n currentReducer = nextReducer;\n dispatch({\n type: actionTypes_default.REPLACE\n });\n }\n function observable() {\n const outerSubscribe = subscribe;\n return {\n /**\n * The minimal observable subscription method.\n * @param observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe(observer) {\n if (typeof observer !== \"object\" || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);\n }\n function observeState() {\n const observerAsObserver = observer;\n if (observerAsObserver.next) {\n observerAsObserver.next(getState());\n }\n }\n observeState();\n const unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe\n };\n },\n [symbol_observable_default]() {\n return this;\n }\n };\n }\n dispatch({\n type: actionTypes_default.INIT\n });\n const store = {\n dispatch,\n subscribe,\n getState,\n replaceReducer,\n [symbol_observable_default]: observable\n };\n return store;\n}\nfunction legacy_createStore(reducer, preloadedState, enhancer) {\n return createStore(reducer, preloadedState, enhancer);\n}\n\n// src/utils/warning.ts\nfunction warning(message) {\n if (typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(message);\n }\n try {\n throw new Error(message);\n } catch (e) {\n }\n}\n\n// src/combineReducers.ts\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n const reducerKeys = Object.keys(reducers);\n const argumentName = action && action.type === actionTypes_default.INIT ? \"preloadedState argument passed to createStore\" : \"previous state received by the reducer\";\n if (reducerKeys.length === 0) {\n return \"Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.\";\n }\n if (!isPlainObject(inputState)) {\n return `The ${argumentName} has unexpected type of \"${kindOf(inputState)}\". Expected argument to be an object with the following keys: \"${reducerKeys.join('\", \"')}\"`;\n }\n const unexpectedKeys = Object.keys(inputState).filter((key) => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n unexpectedKeys.forEach((key) => {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === actionTypes_default.REPLACE)\n return;\n if (unexpectedKeys.length > 0) {\n return `Unexpected ${unexpectedKeys.length > 1 ? \"keys\" : \"key\"} \"${unexpectedKeys.join('\", \"')}\" found in ${argumentName}. Expected to find one of the known reducer keys instead: \"${reducerKeys.join('\", \"')}\". Unexpected keys will be ignored.`;\n }\n}\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach((key) => {\n const reducer = reducers[key];\n const initialState = reducer(void 0, {\n type: actionTypes_default.INIT\n });\n if (typeof initialState === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : `The slice reducer for key \"${key}\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);\n }\n if (typeof reducer(void 0, {\n type: actionTypes_default.PROBE_UNKNOWN_ACTION()\n }) === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : `The slice reducer for key \"${key}\" returned undefined when probed with a random type. Don't try to handle '${actionTypes_default.INIT}' or other actions in \"redux/*\" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.`);\n }\n });\n}\nfunction combineReducers(reducers) {\n const reducerKeys = Object.keys(reducers);\n const finalReducers = {};\n for (let i = 0; i < reducerKeys.length; i++) {\n const key = reducerKeys[i];\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducers[key] === \"undefined\") {\n warning(`No reducer provided for key \"${key}\"`);\n }\n }\n if (typeof reducers[key] === \"function\") {\n finalReducers[key] = reducers[key];\n }\n }\n const finalReducerKeys = Object.keys(finalReducers);\n let unexpectedKeyCache;\n if (process.env.NODE_ENV !== \"production\") {\n unexpectedKeyCache = {};\n }\n let shapeAssertionError;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n return function combination(state = {}, action) {\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n if (process.env.NODE_ENV !== \"production\") {\n const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n let hasChanged = false;\n const nextState = {};\n for (let i = 0; i < finalReducerKeys.length; i++) {\n const key = finalReducerKeys[i];\n const reducer = finalReducers[key];\n const previousStateForKey = state[key];\n const nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === \"undefined\") {\n const actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : `When called with an action of type ${actionType ? `\"${String(actionType)}\"` : \"(unknown type)\"}, the slice reducer for key \"${key}\" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.`);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\n// src/bindActionCreators.ts\nfunction bindActionCreator(actionCreator, dispatch) {\n return function(...args) {\n return dispatch(actionCreator.apply(this, args));\n };\n}\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === \"function\") {\n return bindActionCreator(actionCreators, dispatch);\n }\n if (typeof actionCreators !== \"object\" || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : `bindActionCreators expected an object or a function, but instead received: '${kindOf(actionCreators)}'. Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?`);\n }\n const boundActionCreators = {};\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n if (typeof actionCreator === \"function\") {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n// src/compose.ts\nfunction compose(...funcs) {\n if (funcs.length === 0) {\n return (arg) => arg;\n }\n if (funcs.length === 1) {\n return funcs[0];\n }\n return funcs.reduce((a, b) => (...args) => a(b(...args)));\n}\n\n// src/applyMiddleware.ts\nfunction applyMiddleware(...middlewares) {\n return (createStore2) => (reducer, preloadedState) => {\n const store = createStore2(reducer, preloadedState);\n let dispatch = () => {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : \"Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.\");\n };\n const middlewareAPI = {\n getState: store.getState,\n dispatch: (action, ...args) => dispatch(action, ...args)\n };\n const chain = middlewares.map((middleware) => middleware(middlewareAPI));\n dispatch = compose(...chain)(store.dispatch);\n return {\n ...store,\n dispatch\n };\n };\n}\n\n// src/utils/isAction.ts\nfunction isAction(action) {\n return isPlainObject(action) && \"type\" in action && typeof action.type === \"string\";\n}\nexport {\n actionTypes_default as __DO_NOT_USE__ActionTypes,\n applyMiddleware,\n bindActionCreators,\n combineReducers,\n compose,\n createStore,\n isAction,\n isPlainObject,\n legacy_createStore\n};\n//# sourceMappingURL=redux.mjs.map","import { createReducer } from \"@reduxjs/toolkit\"\r\nimport { DEFAULT_LANGUAGE_CODE } from \"../../utils/constants\"\r\n\r\nimport {\r\n setLoading,\r\n setModal,\r\n setUser,\r\n setSidebar,\r\n setAlert,\r\n reset,\r\n setCurrentStudentId,\r\n setCurrentStudentUserId,\r\n setCurrentStudentName,\r\n setTurnOffPassWhenChangeMode,\r\n showMenuBar,\r\n showFontSize,\r\n initAmplitude,\r\n setEnableIEP,\r\n setEnableSurvey,\r\n setConversationOneToOne,\r\n setLanguage,\r\n setSandboxMode,\r\n setIsLoginGoogle,\r\n setInforUserGoogle,\r\n setEnableMarioAi\r\n} from \"./action\"\r\n\r\nconst initialState: any = {\r\n sidebarShow: \"responsive\",\r\n isLoading: false,\r\n alert: {\r\n type: \"\",\r\n message: \"\"\r\n },\r\n modal: {\r\n isOpen: false\r\n },\r\n user: null,\r\n currentStudentId: parseInt(localStorage.getItem(\"currentStudentId\") ?? \"0\"),\r\n currentStudentUserId: localStorage.getItem(\"currentStudentUserId\") || \"\",\r\n currentStudentName: localStorage.getItem(\"currentStudentName\") || \"\",\r\n turnOffPassWhenChangeMode: false,\r\n menuBar: true,\r\n defaultFontSize: 16,\r\n isEnableIEP: true,\r\n isEnableSurvey: false,\r\n isEnableMarioAi: false,\r\n isConversationOneToOne: false,\r\n isSandboxMode: false,\r\n isLoginGoogle: false,\r\n inforUserGoogle: null,\r\n language: DEFAULT_LANGUAGE_CODE,\r\n amplitude: {\r\n user_id: \"\",\r\n status: \"\",\r\n student_id: \"\",\r\n page: \"\",\r\n part: \"\",\r\n iep_date: null,\r\n saved: null,\r\n first_login: \"\",\r\n duration_since: 0,\r\n last_page: \"\",\r\n event: \"\",\r\n roles: \"\"\r\n }\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setLoading, (state, action) => {\r\n state.isLoading = action.payload\r\n })\r\n .addCase(setModal, (state, action) => {\r\n state.modal = action.payload\r\n })\r\n .addCase(setUser, (state, action) => {\r\n state.user = action.payload\r\n })\r\n .addCase(setSidebar, (state, action) => {\r\n state.sidebarShow = action.payload\r\n })\r\n .addCase(setIsLoginGoogle, (state, action) => {\r\n state.isLoginGoogle = action.payload\r\n })\r\n .addCase(setInforUserGoogle, (state, action) => {\r\n state.inforUserGoogle = action.payload\r\n })\r\n .addCase(setAlert, (state, action) => {\r\n state.alert = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n localStorage.removeItem(\"currentStudentId\")\r\n localStorage.removeItem(\"currentStudentUserId\")\r\n localStorage.removeItem(\"currentStudentName\")\r\n return initialState\r\n })\r\n .addCase(setCurrentStudentId, (state, action) => {\r\n state.currentStudentId = action.payload\r\n })\r\n .addCase(setCurrentStudentUserId, (state, action) => {\r\n state.currentStudentUserId = action.payload\r\n })\r\n .addCase(setCurrentStudentName, (state, action) => {\r\n state.currentStudentName = action.payload\r\n })\r\n .addCase(setTurnOffPassWhenChangeMode, (state, action) => {\r\n state.turnOffPassWhenChangeMode = action.payload\r\n })\r\n .addCase(showMenuBar, (state, action) => {\r\n state.menuBar = action.payload\r\n })\r\n .addCase(setEnableIEP, (state, action) => {\r\n state.isEnableIEP = action.payload\r\n })\r\n .addCase(setEnableSurvey, (state, action) => {\r\n state.isEnableSurvey = action.payload\r\n })\r\n .addCase(setEnableMarioAi, (state, action) => {\r\n state.isEnableMarioAi = action.payload\r\n })\r\n .addCase(setConversationOneToOne, (state, action) => {\r\n state.isConversationOneToOne = action.payload\r\n })\r\n .addCase(setLanguage, (state, action) => {\r\n state.language = action.payload\r\n })\r\n .addCase(showFontSize, (state, action) => {\r\n state.defaultFontSize = action.payload\r\n })\r\n .addCase(setSandboxMode, (state, action) => {\r\n state.isSandboxMode = action.payload\r\n })\r\n .addCase(initAmplitude, (state, action) => {\r\n const hostName = window.location.hostname;\r\n var eventProperties = {\r\n user_id: action.payload?.name,\r\n status: action.payload?.status ? action.payload?.status : \"\",\r\n student_id: action.payload?.student_id\r\n ? action.payload.student_id\r\n : \"\",\r\n page: action.payload?.page ? action.payload.page : \"\",\r\n part: action.payload?.part ? action.payload.part : \"\",\r\n iep_date: action.payload?.iep_date\r\n ? action.payload.iep_date\r\n : null,\r\n saved:\r\n typeof action.payload?.saved == \"boolean\"\r\n ? action.payload.saved\r\n : null,\r\n first_login: action.payload?.first_login\r\n ? action.payload.first_login\r\n : \"\",\r\n duration_since: action.payload?.duration_since\r\n ? action.payload.duration_since\r\n : 0,\r\n last_page: action.payload?.last_page\r\n ? action.payload.last_page\r\n : \"\",\r\n event: action.payload.event,\r\n domain: !!hostName ? hostName : \"\",\r\n roles: !!action.payload?.roles ? action.payload?.roles?.toString() : \"\",\r\n answer: !!action.payload?.answer\r\n ? action.payload.answer\r\n : \"\",\r\n chart: !!action.payload?.chart\r\n ? action.payload.chart\r\n : \"\"\r\n }\r\n state.amplitude = eventProperties\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setClassList = createAction<any>(\"classes/setClassList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setClassList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n classList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst classReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setClassList, (state, action) => {\r\n state.classList = action.payload.classList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default classReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setConferenceRubricList = createAction<any>(\r\n \"conferenceRubric/setConferenceRubricList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setConferenceRubricList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n conferenceRubricList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst conferenceRubricReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setConferenceRubricList, (state, action) => {\r\n state.conferenceRubricList = action.payload.conferenceRubricList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default conferenceRubricReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setFaqList = createAction<any>(\"faqs/setFaqList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setFaqList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n faqList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setFaqList, (state, action) => {\r\n state.faqList = action.payload.faqList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSkillList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n skillList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSkillList, (state, action) => {\r\n state.skillList = action.payload.skillList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setEmailTemplateList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n emailTemplateList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst emailTemplateReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setEmailTemplateList, (state, action) => {\r\n state.emailTemplateList = action.payload.emailTemplateList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default emailTemplateReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSuggestionList = createAction<any>(\r\n \"suggestionBank/setSuggestionList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSuggestionList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n suggestionList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst suggestionBankReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSuggestionList, (state, action) => {\r\n state.suggestionList = action.payload.suggestionList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default suggestionBankReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setStrategyList = createAction<any>(\r\n \"learningStrategy/setStrategyList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setStrategyList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n strategyList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst learningStrategyReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setStrategyList, (state, action) => {\r\n state.strategyList = action.payload.strategyList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default learningStrategyReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSubjectList = createAction<any>(\"subjects/setSubjectList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSubjectList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n subjectList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSubjectList, (state, action) => {\r\n state.subjectList = action.payload.subjectList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setLearningSupportCategoryList = createAction<any>(\r\n \"learningSupportCategories/setLearningSupportCategoryList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setLearningSupportCategoryList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n learningSupportCategoryList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setLearningSupportCategoryList, (state, action) => {\r\n state.learningSupportCategoryList =\r\n action.payload.learningSupportCategoryList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setQuestionList = createAction<any>(\"questionBank/setQuestionList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setQuestionList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n questionList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst questionBankReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setQuestionList, (state, action) => {\r\n state.questionList = action.payload.questionList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionBankReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setBadgeList = createAction<any>(\"badges/setBadgeList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setBadgeList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n badgeList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setBadgeList, (state, action) => {\r\n state.badgeList = action.payload.badgeList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSemesterList = createAction<any>(\"semester/setSemesterList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSemesterList } from \"./action\"\r\n\r\nconst initialState: any = {\r\n semesterList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder.addCase(setSemesterList, (state, action) => {\r\n state.semesterList = action.payload.semesterList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setAssignmentList = createAction<any>(\"assignment/setAssignmentList\")","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setAssignmentList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n assignmentList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setAssignmentList, (state, action) => {\r\n state.assignmentList = action.payload.assignmentList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setGoalExampleList = createAction<any>(\r\n \"goalExamples/setGoalExampleList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setGoalExampleList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n goalExampleList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setGoalExampleList, (state, action) => {\r\n state.goalExampleList = action.payload.goalExampleList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setUserList, setStudentList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n userList: [],\r\n totalItems: 0,\r\n studentList: []\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setUserList, (state, action) => {\r\n state.userList = action.payload.userList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(setStudentList, (state, action) => {\r\n state.studentList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setFeedbackList = createAction<any>(\"feedback/setFeedbackList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setFeedbackList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n feedbackList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setFeedbackList, (state, action) => {\r\n state.feedbackList = action.payload.feedbackList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setAssessmentList = createAction<any>(\r\n \"assessments/setAssessmentList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\nimport { setAssessmentList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initState = {\r\n assessmentList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initState, builder => {\r\n builder\r\n .addCase(setAssessmentList, (state, action) => {\r\n state.assessmentList = action.payload.assessmentList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setReflectionList = createAction<any>(\r\n \"reflectionForms/setReflectionList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setReflectionList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n reflectionList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst reflectionReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setReflectionList, (state, action) => {\r\n state.reflectionList = action.payload.reflectionList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default reflectionReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setReflectionResultList = createAction<any>(\r\n \"reflectionForms/setReflectionResultList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setReflectionResultList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n reflectionResultList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst reflectionReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setReflectionResultList, (state, action) => {\r\n state.reflectionResultList = action.payload.reflectionResultList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default reflectionReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setQuestionByCategory = createAction<Array<object> | undefined>(\r\n \"questionByCategory/setQuestionByCategory\"\r\n)\r\nexport const setSelectQuestion = createAction<{ id: number }>(\r\n \"questionByCategory/setSelectQuestion\"\r\n)\r\nexport const setUnSelectQuestion = createAction<Array<object> | undefined>(\r\n \"questionByCategory/setUnSelectQuestion\"\r\n)\r\nexport const setMoveItemQuestion = createAction<string | undefined>(\r\n \"questionByCategory/setMoveItemQuestion\"\r\n)\r\nexport const setEditItemQuesion = createAction<Array<object> | undefined>(\r\n \"questionByCategory/setEditItemQuesion\"\r\n)\r\nexport const setResetQuestionList = createAction<Array<object> | undefined>(\r\n \"questionByCategory/setResetQuestionList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport {\r\n setQuestionByCategory,\r\n setSelectQuestion,\r\n setUnSelectQuestion,\r\n setMoveItemQuestion,\r\n setEditItemQuesion,\r\n setResetQuestionList\r\n} from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n questionByCategoryList: [],\r\n selectedQuestions: [],\r\n selectQuestion: []\r\n}\r\nconst mergeArrayUniqueQuestion = (array1: any, array2: any) => {\r\n var ids = new Set(array1.map((d: any) => d.id))\r\n var arrMerged = [...array1, ...array2.filter((d: any) => !ids.has(d.id))]\r\n return arrMerged\r\n}\r\nconst questionCategoryReducer = createReducer(initialState, builder => {\r\n builder.addCase(setQuestionByCategory, (state, action) => {\r\n state.questionByCategoryList = action.payload\r\n if (state.selectedQuestions.length > 0) {\r\n state.questionByCategoryList = state.questionByCategoryList.filter(\r\n (item: any) => {\r\n return !state.selectedQuestions.some(\r\n (sub: any) => sub.id === item.id\r\n )\r\n }\r\n )\r\n }\r\n })\r\n builder.addCase(setSelectQuestion, (state, action) => {\r\n let index = state.selectQuestion.findIndex(\r\n (item: any) => item.id === action.payload.id\r\n )\r\n if (index === -1) {\r\n state.selectQuestion.push(action.payload)\r\n } else {\r\n state.selectQuestion.splice(index, 1)\r\n }\r\n })\r\n builder.addCase(setUnSelectQuestion, (state, action) => {\r\n state.selectQuestion = action.payload\r\n })\r\n builder.addCase(setMoveItemQuestion, (state, action) => {\r\n switch (action.payload) {\r\n case \"right\":\r\n state.selectedQuestions = mergeArrayUniqueQuestion(\r\n state.selectedQuestions,\r\n state.selectQuestion\r\n )\r\n state.questionByCategoryList = state.questionByCategoryList.filter(\r\n (item: any) => {\r\n return !state.selectedQuestions.some(\r\n (sub: any) => sub.id === item.id\r\n )\r\n }\r\n )\r\n state.selectQuestion = []\r\n break\r\n case \"right-all\":\r\n state.selectedQuestions = mergeArrayUniqueQuestion(\r\n state.selectedQuestions,\r\n state.questionByCategoryList\r\n )\r\n state.selectQuestion = []\r\n state.questionByCategoryList = []\r\n break\r\n case \"left\":\r\n state.questionByCategoryList = mergeArrayUniqueQuestion(\r\n state.questionByCategoryList,\r\n state.selectQuestion\r\n )\r\n state.selectedQuestions = state.selectedQuestions.filter(\r\n (item: any) => {\r\n return !state.selectQuestion.some(\r\n (sub: any) => sub.id === item.id\r\n )\r\n }\r\n )\r\n state.selectQuestion = []\r\n break\r\n case \"left-all\":\r\n state.questionByCategoryList = mergeArrayUniqueQuestion(\r\n state.questionByCategoryList,\r\n state.selectedQuestions\r\n )\r\n state.selectedQuestions = []\r\n state.selectQuestion = []\r\n break\r\n case \"move-up\":\r\n const old_index = state.selectedQuestions.findIndex(\r\n (item: any) => item.id === state.selectQuestion[0].id\r\n )\r\n if (old_index !== -1) {\r\n state.selectedQuestions.splice(\r\n old_index - 1,\r\n 0,\r\n state.selectedQuestions.splice(old_index, 1)[0]\r\n )\r\n }\r\n break\r\n case \"move-down\":\r\n const old_index1 = state.selectedQuestions.findIndex(\r\n (item: any) => item.id === state.selectQuestion[0].id\r\n )\r\n if (old_index1 !== -1) {\r\n state.selectedQuestions.splice(\r\n old_index1 + 1,\r\n 0,\r\n state.selectedQuestions.splice(old_index1, 1)[0]\r\n )\r\n }\r\n break\r\n default:\r\n break\r\n }\r\n })\r\n builder.addCase(setEditItemQuesion, (state, action) => {\r\n state.questionByCategoryList = []\r\n state.selectedQuestions = action.payload\r\n })\r\n builder.addCase(setResetQuestionList, state => {\r\n state.questionByCategoryList = []\r\n state.selectedQuestions = []\r\n })\r\n builder.addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionCategoryReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setMailCategory } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n mailCategoryList: []\r\n}\r\n\r\nconst questionBankReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setMailCategory, (state, action) => {\r\n state.mailCategoryList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionBankReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setQuestionCateList = createAction<any>(\r\n \"questionCate/setQuestionCateList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setQuestionCateList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n questionCateList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst questionCateReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setQuestionCateList, (state, action) => {\r\n state.questionCateList = action.payload.questionCateList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionCateReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport {\r\n setNotification,\r\n setUnReadNotification,\r\n updateUnReadNotification\r\n} from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n notificationList: [],\r\n totalItems: 0,\r\n unReadNotification: 0\r\n}\r\n\r\nconst questionBankReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setNotification, (state, action) => {\r\n ;(state.notificationList = action.payload.notificationList),\r\n (state.totalItems = action.payload.totalItems),\r\n (state.unReadNotification = action.payload.unReadNotification)\r\n })\r\n .addCase(setUnReadNotification, (state, action) => {\r\n state.unReadNotification = action.payload\r\n })\r\n .addCase(updateUnReadNotification, (state, action) => {\r\n state.unReadNotification += action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionBankReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setMyStudent = createAction<any>(\"myStudent/setMyStudentList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setMyStudent } from \"./action\"\r\nimport { reset } from \"../../commons/action\"\r\n\r\nconst initialState: any = {\r\n myStudentList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setMyStudent, (state, action) => {\r\n state.myStudentList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setAssistantList = createAction<Array<object> | undefined>(\r\n \"assistants/setAssistantList\"\r\n)\r\n// export const setStudentAssistantList = createAction<Array<object> | undefined>(\r\n// \"assistants/setStudentAssistantList\"\r\n// )\r\n// export const setStudentByAssistant = createAction<Array<object> | undefined>(\r\n// \"assistants/setStudentByAssistant\"\r\n// )\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setAssistantList } from \"./action\"\r\n\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n assistantList: []\r\n}\r\n\r\nconst assistantReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setAssistantList, (state, action) => {\r\n state.assistantList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default assistantReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSessionTemplateList = createAction<any>(\r\n \"sessionTemplates/setSessionTemplateList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSessionTemplateList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n sessionTemplateList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst sessionTemplateReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSessionTemplateList, (state, action) => {\r\n state.sessionTemplateList = action.payload.sessionTemplateList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default sessionTemplateReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSessionTemplateGeneralClassList = createAction<any>(\r\n \"sessionTemplateGeneralClasses/setSessionTemplateList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSessionTemplateGeneralClassList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n sessionTemplateGeneralClassList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst sessionTemplateGeneralClassReducer = createReducer(\r\n initialState,\r\n builder => {\r\n builder\r\n .addCase(setSessionTemplateGeneralClassList, (state, action) => {\r\n state.sessionTemplateGeneralClassList =\r\n action.payload.sessionTemplateGeneralClassList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n }\r\n)\r\n\r\nexport default sessionTemplateGeneralClassReducer\r\n","import {createAction} from \"@reduxjs/toolkit\"\r\n\r\nexport const setTutorialScreenList = createAction<any>(\"tutorialScreens/setTutorialScreenList\")\r\n\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\nimport { setTutorialScreenList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initState = {\r\n tutorialScreenList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst tutorialScreenReducer = createReducer(initState, builder => {\r\n builder\r\n .addCase(setTutorialScreenList, (state, action) => {\r\n state.tutorialScreenList = action.payload.tutorialScreenList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initState\r\n })\r\n})\r\n\r\nexport default tutorialScreenReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setCustomAlertList = createAction<any>(\"customAlerts/setCustomAlertList\")","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setCustomAlertList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n customAlertList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setCustomAlertList, (state, action) => {\r\n state.customAlertList = action.payload.customAlertList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setGallery, setTargetMedia } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n mediaList: [],\r\n totalItems: 0,\r\n targetMedia: undefined\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setGallery, (state, action) => {\r\n state.mediaList = action.payload.mediaList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(setTargetMedia, (state, action) => {\r\n state.targetMedia = action.payload.targetMedia\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\nimport { NavbarTab } from \"../../types/Dashboard\"\r\n\r\nexport const addTab = createAction<NavbarTab>(\"dashboard/addTab\")\r\nexport const closeTab = createAction<number>(\"dashboard/closeTab\")\r\nexport const editTab = createAction<NavbarTab>(\"dashboard/editTab\")\r\nexport const clearTab = createAction(\"dashboard/clearTab\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\nimport { closeTab, addTab, editTab, clearTab } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n tabs: !!localStorage.getItem(\"myTab\")\r\n ? JSON.parse(localStorage.getItem(\"myTab\") ?? \"\")\r\n : []\r\n}\r\nconst dashboardReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(addTab, (state, action) => {\r\n if (state.tabs.some((tab: any) => tab.url === action.payload.url)) {\r\n return state\r\n }\r\n\r\n return {\r\n ...state,\r\n tabs: [action.payload, ...state.tabs]\r\n }\r\n })\r\n .addCase(closeTab, (state, action) => {\r\n let tabs = JSON.parse(JSON.stringify(state.tabs))\r\n delete tabs[action.payload]\r\n tabs = tabs.filter(Boolean)\r\n\r\n return { ...state, tabs }\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n localStorage.removeItem(\"myTab\")\r\n return { tabs: [] }\r\n })\r\n .addCase(editTab, (state, action) => {\r\n const tabs = JSON.parse(JSON.stringify(state.tabs))\r\n const editingTab = tabs.find(\r\n (tab: any) => action.payload.label === tab.label\r\n )\r\n editingTab.url = action.payload.url\r\n return {\r\n ...state,\r\n tabs\r\n }\r\n })\r\n .addCase(clearTab, (_state, _action) => {\r\n localStorage.removeItem(\"myTab\")\r\n return { tabs: [] }\r\n })\r\n})\r\n\r\nexport default dashboardReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const changeNote = createAction<any>(\"sessionPlayer/changeNote\")\r\nexport const changeTags = createAction<any>(\"sessionPlayer/changeTags\")\r\nexport const answerQuestion = createAction<any>(\"sessionPlayer/answerQuestion\")\r\nexport const setSessionPlayer = createAction<any>(\r\n \"sessionPlayer/setSessionPlayer\"\r\n)\r\nexport const setStartTime = createAction<any>(\"sessionPlayer/setStartTime\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport {\r\n changeNote,\r\n changeTags,\r\n answerQuestion,\r\n setSessionPlayer,\r\n setStartTime\r\n} from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n sessionId: 0,\r\n session: {\r\n id: 0,\r\n studentId: 0,\r\n teacherId: 0,\r\n duration: 0,\r\n conferenceRubric: null,\r\n studentDefaultQuestions: [],\r\n teacherDefaultQuestions: [],\r\n additionalQuestions: []\r\n },\r\n results: [],\r\n startTime: \"\"\r\n}\r\n\r\nconst sessionPlayerReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSessionPlayer, (_state, action) => {\r\n return action.payload\r\n })\r\n .addCase(changeNote, (state, action) => {\r\n const { isConfidential, text } = action.payload\r\n const teacherResult = state.results.find(\r\n (result: any) => result.isTeacherResult\r\n )\r\n if (!teacherResult) return state\r\n const teacherResultCloner = JSON.parse(\r\n JSON.stringify(teacherResult)\r\n )\r\n\r\n const existedNote = teacherResultCloner.notes.find(\r\n (note: any) => !!note.isConfidential === isConfidential\r\n )\r\n\r\n if (existedNote) {\r\n existedNote.text = text\r\n } else {\r\n teacherResultCloner.notes.push({ isConfidential, text })\r\n }\r\n\r\n return {\r\n ...state,\r\n results: state.results.map((result: any) =>\r\n result.isTeacherResult ? teacherResultCloner : result\r\n )\r\n }\r\n })\r\n .addCase(changeTags, (state, action) => {\r\n const tags = action.payload\r\n const teacherResult = state.results.find(\r\n (result: any) => result.isTeacherResult\r\n )\r\n if (!teacherResult) return state\r\n const teacherResultCloner = JSON.parse(\r\n JSON.stringify(teacherResult)\r\n )\r\n teacherResultCloner.tags = tags\r\n return {\r\n ...state,\r\n results: state.results.map((result: any) =>\r\n result.isTeacherResult ? teacherResultCloner : result\r\n )\r\n }\r\n })\r\n .addCase(answerQuestion, (state, action) => {\r\n const { text, questionId, isTeacherResult } = action.payload\r\n const result = state.results.find(\r\n (result: any) => result.isTeacherResult === isTeacherResult\r\n )\r\n if (!result) return state\r\n const resultCloner = JSON.parse(JSON.stringify(result))\r\n const existedResponse = resultCloner.questionResponses.find(\r\n (response: any) => response.questionId === questionId\r\n )\r\n if (!existedResponse) {\r\n resultCloner.questionResponses.push({ questionId, text })\r\n } else {\r\n existedResponse.text = text\r\n }\r\n\r\n return {\r\n ...state,\r\n results: state.results.map((result: any) =>\r\n result.isTeacherResult === isTeacherResult\r\n ? resultCloner\r\n : result\r\n )\r\n }\r\n })\r\n .addCase(setStartTime, (state, action) => {\r\n const startTime = action.payload\r\n if (!startTime) return state\r\n state.startTime = startTime\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default sessionPlayerReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setDataPlayer = createAction<any>(\"dataPlayer/setDataPlayer\")\r\nexport const answerQuestionDataPlayer = createAction<any>(\r\n \"dataPlayer/answerQuestionDataPlayer\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setDataPlayer, answerQuestionDataPlayer } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n id: 0,\r\n questions: [\r\n {\r\n id: 0,\r\n text: \"\",\r\n type: \"\",\r\n subQuestions: [],\r\n answers: []\r\n }\r\n ],\r\n questionResponse: []\r\n}\r\n\r\nconst dataPlayer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setDataPlayer, (_state, action) => {\r\n return action.payload\r\n })\r\n .addCase(answerQuestionDataPlayer, (state, action) => {\r\n const { questionId, text } = action.payload\r\n const questionResponse = state.questionResponse\r\n if (!questionResponse) return state\r\n const questionResponseCloner = JSON.parse(\r\n JSON.stringify(questionResponse)\r\n )\r\n const existedResponse = questionResponseCloner.find(\r\n (response: any) => response.questionId === questionId\r\n )\r\n if (!existedResponse) {\r\n questionResponseCloner.push({\r\n questionId: questionId,\r\n text: text\r\n })\r\n } else {\r\n existedResponse.text = text\r\n }\r\n\r\n return {\r\n ...state,\r\n questionResponse: questionResponseCloner\r\n }\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\nexport default dataPlayer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setCertificateList = createAction<any>(\r\n \"certificates/setCertificateList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setCertificateList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n certificateList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setCertificateList, (state, action) => {\r\n state.certificateList = action.payload.certificateList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setImproveMyClass = createAction<any>(\r\n \"improveMyClass/setImproveMyClass\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setImproveMyClass } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n improveMyClassList: []\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setImproveMyClass, (state, action) => {\r\n state.improveMyClassList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setFilterWidget = createAction<any>(\"setFilterWidget\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setFilterWidget } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst enum Filter {\r\n Year = \"Year\",\r\n Semester = \"Semester\"\r\n}\r\n\r\nconst initialState: any = {\r\n filterWidget: Filter.Year\r\n}\r\n\r\nconst widgetReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setFilterWidget, (state, action) => {\r\n state.filterWidget = action.payload.filterWidget\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\nexport default widgetReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setBandScoreList = createAction<any>(\"bandScores/setBandScoreList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setBandScoreList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n bandScoreList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setBandScoreList, (state, action) => {\r\n state.bandScoreList = action.payload.bandScoreList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSchoolBlankDayList = createAction<any>(\r\n \"schoolBlankDays/setSchoolBlankDayList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSchoolBlankDayList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n schoolBlankDayList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSchoolBlankDayList, (state, action) => {\r\n state.schoolBlankDayList = action.payload.schoolBlankDayList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setStudentIdSelectedByTeacher = createAction<number>(\r\n \"navMobile/setStudentIdSelectedByTeacher\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setStudentIdSelectedByTeacher } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n studentIdSelectedByTeacher: 0\r\n}\r\n\r\nconst navMobileReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setStudentIdSelectedByTeacher, (state, action) => {\r\n state.studentIdSelectedByTeacher = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default navMobileReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setWeeklyQuestList = createAction<any>(\"setWeeklyQuestList\")\r\nexport const setOpenModelCongratulation = createAction<boolean>(\"setOpenModelCongratulation\")","import { createReducer } from \"@reduxjs/toolkit\"\r\nimport { setOpenModelCongratulation, setWeeklyQuestList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState = {\r\n isOpenModelCongratulation: false,\r\n lastQuest: undefined,\r\n weeklyQuests: []\r\n}\r\n\r\nconst weeklyQuestReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setWeeklyQuestList, (state, action) => {\r\n state.weeklyQuests = action.payload\r\n })\r\n .addCase(setOpenModelCongratulation, (state, action) => {\r\n state.isOpenModelCongratulation = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default weeklyQuestReducer\r\n","import { combineReducers } from \"redux\"\n\nimport common from \"./redux/commons/reducer\"\nimport classes from \"./redux/classes/reducer\"\nimport conferenceRubrics from \"./redux/conferenceRubrics/reducer\"\nimport faqs from \"./redux/faqs/reducer\"\nimport skills from \"./redux/skills/reducer\"\nimport emailTemplate from \"./redux/emailTemplates/reducer\"\nimport suggestionBank from \"./redux/suggestionBanks/reducer\"\nimport learningStrategy from \"./redux/learningStrategies/reducer\"\nimport subjects from \"./redux/subjects/reducer\"\nimport learningSupportCategories from \"./redux/learningSupportCategories/reducer\"\nimport questionBank from \"./redux/questionBanks/reducer\"\nimport badges from \"./redux/badges/reducer\"\nimport semester from \"./redux/semester/reducer\"\nimport assignments from \"./redux/assignment/reducer\"\nimport goalExamples from \"./redux/goalExamples/reducer\"\nimport users from \"./redux/users/reducer\"\nimport feedbacks from \"./redux/feedback/reducer\"\nimport assessments from \"./redux/assessments/reducer\"\nimport reflections from \"./redux/reflectionForms/reducer\"\nimport reflectionResults from \"./redux/reflectionResults/reducer\"\nimport questionByCategory from \"./redux/questionByCategory/reducer\"\nimport mailCategory from \"./redux/mailCategories/reducer\"\nimport questionCate from \"./redux/questionCategory/reducer\"\nimport notification from \"./redux/notifications/reducer\"\nimport myStudent from \"./redux/teacher/myStudent/reducer\"\nimport assistants from \"./redux/assistants/reducer\"\nimport sesstionTemplates from \"./redux/sessionTemplates/reducer\"\nimport sessionTemplateGeneralClasses from \"./redux/sessionTemplateGeneralClasses/reducer\"\nimport tutorialScreens from \"./redux/tutorialScreen/reducer\"\nimport customAlerts from \"./redux/customAlert/reducer\"\nimport gallery from \"./redux/gallery/reducer\"\nimport dashboard from \"./redux/dashboard/reducer\"\nimport sessionPlayer from \"./redux/sessionPlayers/reducer\"\nimport dataPlayer from \"./redux/dataPlayer/reducer\"\nimport certificate from \"./redux/certificate/reducer\"\nimport improveMyClass from \"./redux/improveMyClass/reducer\"\nimport widget from \"./redux/widget/reducer\"\nimport bandScores from \"./redux/bandScores/reducer\"\nimport schoolBlankDays from \"./redux/schoolBlankDays/reducer\"\nimport navMobileReducer from \"./redux/navMobile/reducer\"\nimport weeklyQuests from \"./redux/weeklyQuests/reducer\"\n\nconst rootReducer = combineReducers({\n common,\n classes,\n conferenceRubrics,\n faqs,\n skills,\n emailTemplate,\n suggestionBank,\n learningStrategy,\n subjects,\n learningSupportCategories,\n questionBank,\n badges,\n semester,\n goalExamples,\n users,\n reflections,\n reflectionResults,\n feedbacks,\n assessments,\n questionByCategory,\n mailCategory,\n questionCate,\n notification,\n myStudent,\n assignments,\n assistants,\n sesstionTemplates,\n sessionTemplateGeneralClasses,\n tutorialScreens,\n customAlerts,\n gallery,\n dashboard,\n sessionPlayer,\n dataPlayer,\n certificate,\n improveMyClass,\n widget,\n bandScores,\n schoolBlankDays,\n navMobileReducer,\n weeklyQuests\n})\n\nexport default rootReducer\n","import { configureStore } from \"@reduxjs/toolkit\"\r\nimport { Store } from \"redux\"\r\n\r\nimport rootReducer from \"./rootReducer\"\r\n\r\nconst store: Store = configureStore({\r\n reducer: rootReducer,\r\n middleware: getDefaultMiddleware =>\r\n getDefaultMiddleware({ serializableCheck: false })\r\n})\r\n\r\nexport default store\r\n","import getAccessToken from \"./getAccessToken\"\r\nimport { checkToken } from \"../services/accountService\"\r\n\r\nconst firstCheckToken = async () => {\r\n try {\r\n const token = getAccessToken()\r\n if (!token) return false\r\n\r\n const tokenStatus = await checkToken(token)\r\n if (!tokenStatus.data) return false\r\n\r\n return true\r\n } catch (err) {\r\n return false\r\n }\r\n}\r\n\r\nexport default firstCheckToken\r\n","const canAccess = (userRoles: any[], componentRoles: any[]) => {\r\n if (!Array.isArray(userRoles)) {\r\n return false\r\n }\r\n if (Array.isArray(componentRoles)) {\r\n const intersects = userRoles.filter(i => componentRoles.includes(i))\r\n return intersects.length > 0\r\n }\r\n return true\r\n}\r\n\r\nexport default canAccess\r\n","export const isInViewport = (el: any) => {\r\n const rect = el?.getBoundingClientRect()\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <=\r\n (window.innerHeight || document.documentElement.clientHeight) &&\r\n rect.right <=\r\n (window.innerWidth || document.documentElement.clientWidth)\r\n )\r\n}\r\n\r\nexport const toogleSidebar = () => {\r\n // @ts-ignore\r\n document.querySelector(\"#sidebar-minimizer\").click()\r\n}\r\n","const debounce = (callback: any, wait: number) => {\r\n let timeout: any = null\r\n return (...args: any[]) => {\r\n const next = () => callback(...args)\r\n clearTimeout(timeout)\r\n timeout = setTimeout(next, wait)\r\n }\r\n}\r\n\r\nexport default debounce\r\n","const getTextFromHTML = (htmlString: string) => {\r\n const p = document.createElement(\"p\")\r\n p.innerHTML = htmlString\r\n const text = p.innerText\r\n p.remove()\r\n return text\r\n}\r\n\r\nexport default getTextFromHTML\r\n","export default () => (Math.random() + 1).toString(36).substring(7)\r\n","import \"bootstrap/dist/css/bootstrap.min.css\"\r\nimport i18n from \"./i18n\"\r\nimport { useTranslation, I18nextProvider } from \"react-i18next\"\r\nimport Login from \"./containers/Login/views/Login\"\r\nimport Dashboard from \"./containers/Login/views/Dashboard\"\r\nimport TheContent from \"./layouts/TheContent\"\r\nimport EmailTemplateList from \"./containers/EmailTemplate/views/EmailTemplateList\"\r\nimport EmailTemplateDetail from \"./containers/EmailTemplate/views/EmailTemplateDetail\"\r\nimport SkillList from \"./containers/Skill/views/SkillList\"\r\nimport UserList from \"./containers/User/views/UserList\"\r\nimport UserContainer from \"./containers/User/views/UserContainer\"\r\nimport UserDetail from \"./containers/User/views/UserDetail\"\r\nimport Loading from \"./components/Loading/Loading\"\r\nimport ScrollToTop from \"./components/Scroll/ScrollToTop\"\r\nimport NotificationModal from \"./components/Modals/NotificationModal\"\r\nimport CommonHeader from \"./components/Headers/CommonHeader\"\r\nimport CommonModal from \"./components/Modals/CommonModal\"\r\nimport NotificationLogoutModal from \"./components/Modals/NotificationLogoutModal\"\r\nimport AddButton from \"./components/Buttons/AddButton\"\r\nimport DeleteButtonIcon from \"./components/Buttons/DeleteButtonIcon\"\r\nimport EditButtonIcon from \"./components/Buttons/EditButtonIcon\"\r\nimport CustomPagination from \"./components/Pagination/CustomPagination\"\r\nimport LinkEditButton from \"./components/Buttons/LinkEditButton\"\r\nimport EmptyDataAlert from \"./components/Alerts/EmptyDataAlert\"\r\nimport SandboxAlert from \"./components/Alerts/SandboxAlert\"\r\nimport CreatableSelector from \"./components/Selectors/CreatableSelector\"\r\nimport SearchBox from \"./components/Inputs/SearchBox\"\r\nimport QuestionTypeSelector from \"./components/Selectors/QuestionTypeSelector\"\r\nimport SuggestionCategorySelector from \"./components/Selectors/SuggestionCategorySelector\"\r\nimport QuestionCategorySelector from \"./components/Selectors/QuestionCategorySelector\"\r\nimport CategorySelector from \"./components/Selectors/CategorySelector\"\r\nimport ErrorHandler from \"./components/Alerts/ErrorHandler\"\r\nimport DetailActionButtons from \"./components/Buttons/DetailActionButtons\"\r\nimport RequiredLabel from \"./components/Labels/RequiredLabel\"\r\nimport StarRatingSelector from \"./components/Selectors/StarRatingSelector\"\r\nimport ToggleButton from \"./components/Buttons/ToggleButton\"\r\nimport FileInput from \"./components/Inputs/FileInput\"\r\nimport NotFound from \"./containers/Commons/NotFound\"\r\nimport NotificationList from \"./containers/Notifications/views/NotificationList\"\r\nimport CustomSelector from \"./components/Selectors/CustomSelector\"\r\nimport UploadFileButton from \"./components/Buttons/UploadFileButton\"\r\nimport SearchBoxContainer from \"./components/Inputs/SearchBoxContainer\"\r\nimport CustomTab from \"./components/Tabs/CustomTab\"\r\nimport CommonAlert from \"./components/Alerts/CommonAlert\"\r\nimport GalleryList from \"./containers/Gallery/views/GalleryList\"\r\nimport useGalleryList from \"./containers/Gallery/hooks/useGalleryList\"\r\nimport QuitPrompt from \"./components/Others/QuitPrompt\"\r\nimport AcademicClassSelector from \"./components/Selectors/AcademicClassSelector\"\r\nimport SchoolList from \"./containers/DistrictSchools/views/SchoolList\"\r\nimport {\r\n INIT_AMPLITUDE_KEY_STAGE,\r\n INIT_AMPLITUDE_KEY_PROD,\r\n isLocalhost,\r\n IS_USER_SESSION_BROWSER\r\n} from \"./utils/constants\"\r\n\r\nimport store from \"./store\"\r\nimport { api, apiUpload } from \"./services/api\"\r\nimport editorConfig from \"./configs/editorConfig\"\r\nimport {\r\n BASE_URL,\r\n DEFAULT_FILTER,\r\n LICENSE_AGGRID,\r\n TINY_MCE_API_KEY,\r\n QUESTION_TYPES,\r\n ANSWER_EDITOR_HEIGHT,\r\n CHAT_CHANNEL,\r\n NOTIFICATION_CHANNEL,\r\n DATE_RESULT,\r\n DATE_FORMAT,\r\n FULL_DATE_RESULT,\r\n ACCESS_TOKEN,\r\n GOOGLE_RECAPTCHA_KEY,\r\n EMOTIONS,\r\n QUESTION_TYPES_OPTIONS,\r\n TAB_COLORS,\r\n NOTIFICATION_ALERT_KEY,\r\n SANDBOX_NOTIFICATION,\r\n DEFAULT_LANGUAGE_CODE,\r\n LANGUAGES,\r\n SUPPORTED_LANGUAGES_CODE\r\n} from \"./utils/constants\"\r\n\r\nimport firstCheckToken from \"./utils/firstCheckToken\"\r\nimport canAccessRoute from \"./utils/canAccessRoute\"\r\nimport { getInfo } from \"./services/accountService\"\r\n\r\nimport { isInViewport } from \"./utils/domHelpers\"\r\nimport debounce from \"./utils/debounce\"\r\nimport getFileUrl from \"./utils/getFileUrl\"\r\nimport getTextFromHTML from \"./utils/getTextFromHTML\"\r\nimport utcToLocalTime from \"./utils/utcToLocalTime\"\r\nimport getStaticFileUrl from \"./utils/getStaticFileUrl\"\r\nimport getCookieValue from \"./utils/getCookieValue\"\r\n\r\nimport {\r\n uploadFile,\r\n systemStudentBadge,\r\n systemCertificateUpload\r\n} from \"./services/fileServices\"\r\n\r\nimport {\r\n setLoading,\r\n setModal,\r\n setAlert,\r\n setUser,\r\n reset,\r\n setCurrentStudentId,\r\n setCurrentStudentUserId,\r\n setCurrentStudentName,\r\n setTurnOffPassWhenChangeMode,\r\n showMenuBar,\r\n showFontSize,\r\n initAmplitude\r\n} from \"./redux/commons/action\"\r\nimport { setClassList } from \"./redux/classes/action\"\r\nimport { setConferenceRubricList } from \"./redux/conferenceRubrics/action\"\r\nimport { setSuggestionList } from \"./redux/suggestionBanks/action\"\r\nimport { setStrategyList } from \"./redux/learningStrategies/action\"\r\nimport { setSubjectList } from \"./redux/subjects/action\"\r\nimport { setLearningSupportCategoryList } from \"./redux/learningSupportCategories/action\"\r\nimport { setQuestionList } from \"./redux/questionBanks/action\"\r\nimport { setBadgeList } from \"./redux/badges/action\"\r\nimport { setSemesterList } from \"./redux/semester/action\"\r\nimport { setAssignmentList } from \"./redux/assignment/action\"\r\nimport { setGoalExampleList } from \"./redux/goalExamples/action\"\r\nimport { setUserList, setStudentList } from \"./redux/users/action\"\r\nimport { setFeedbackList } from \"./redux/feedback/action\"\r\nimport { setAssessmentList } from \"./redux/assessments/action\"\r\nimport { setMyStudent } from \"./redux/teacher/myStudent/action\"\r\nimport {\r\n setQuestionByCategory,\r\n setSelectQuestion,\r\n setMoveItemQuestion,\r\n setEditItemQuesion,\r\n setResetQuestionList\r\n} from \"./redux/questionByCategory/action\"\r\nimport { setImproveMyClass } from \"./redux/improveMyClass/action\"\r\nimport { setAssistantList } from \"./redux/assistants/action\"\r\nimport { setMailCategory } from \"./redux/mailCategories/action\"\r\nimport { setReflectionList } from \"./redux/reflectionForms/action\"\r\nimport { setReflectionResultList } from \"./redux/reflectionResults/action\"\r\nimport { setSessionTemplateList } from \"./redux/sessionTemplates/action\"\r\nimport { setSessionTemplateGeneralClassList } from \"./redux/sessionTemplateGeneralClasses/action\"\r\nimport { setTutorialScreenList } from \"./redux/tutorialScreen/action\"\r\nimport { setCustomAlertList } from \"./redux/customAlert/action\"\r\nimport { setCertificateList } from \"./redux/certificate/action\"\r\nimport {\r\n changeNote,\r\n changeTags,\r\n answerQuestion,\r\n setSessionPlayer,\r\n setStartTime\r\n} from \"./redux/sessionPlayers/action\"\r\nimport { closeTab, addTab, editTab, clearTab } from \"./redux/dashboard/action\"\r\nimport { setSchoolBlankDayList } from \"./redux/schoolBlankDays/action\"\r\n\r\nimport { Filter } from \"./types/Filter\"\r\nimport { Conversation } from \"./types/Conversation\"\r\nimport { Message } from \"./types/Message\"\r\nimport { ConversationMember } from \"./types/ConversationMember\"\r\nimport { NavbarTab } from \"./types/Dashboard\"\r\n\r\nimport generateRandomString from \"./utils/generateRandomString\"\r\n\r\nimport Images from \"./assets/Images\"\r\nimport { setQuestionCateList } from \"./redux/questionCategory/action\"\r\nimport {\r\n setDataPlayer,\r\n answerQuestionDataPlayer\r\n} from \"./redux/dataPlayer/action\"\r\nimport { setFilterWidget } from \"./redux/widget/action\"\r\nimport { setBandScoreList } from \"./redux/bandScores/action\"\r\nimport { setStudentIdSelectedByTeacher } from \"./redux/navMobile/action\"\r\nimport {\r\n setEnableIEP,\r\n setEnableSurvey,\r\n setConversationOneToOne,\r\n setLanguage,\r\n setSandboxMode,\r\n setEnableMarioAi\r\n} from \"./redux/commons/action\"\r\n\r\nimport useFilters from \"./hooks/useFilters\"\r\nimport * as amplitude from \"@amplitude/analytics-browser\"\r\nimport {\r\n setWeeklyQuestList,\r\n setOpenModelCongratulation\r\n} from \"./redux/weeklyQuests/action\"\r\nimport getAccessToken from \"./utils/getAccessToken\"\r\nconst amplitudeClient = amplitude\r\n\r\nexport {\r\n // components && views\r\n Login,\r\n Dashboard,\r\n TheContent,\r\n NotFound,\r\n EmailTemplateList,\r\n EmailTemplateDetail,\r\n SkillList,\r\n UserList,\r\n UserContainer,\r\n UserDetail,\r\n Loading,\r\n NotificationModal,\r\n CommonHeader,\r\n CommonModal,\r\n NotificationLogoutModal,\r\n AddButton,\r\n DeleteButtonIcon,\r\n EditButtonIcon,\r\n LinkEditButton,\r\n ToggleButton,\r\n EmptyDataAlert,\r\n SandboxAlert,\r\n CreatableSelector,\r\n CustomPagination,\r\n SearchBox,\r\n FileInput,\r\n QuitPrompt,\r\n QuestionTypeSelector,\r\n QuestionCategorySelector,\r\n SuggestionCategorySelector,\r\n CategorySelector,\r\n ErrorHandler,\r\n DetailActionButtons,\r\n RequiredLabel,\r\n StarRatingSelector,\r\n NotificationList,\r\n CustomSelector,\r\n UploadFileButton,\r\n SearchBoxContainer,\r\n CustomTab,\r\n CommonAlert,\r\n GalleryList,\r\n useGalleryList,\r\n AcademicClassSelector,\r\n SchoolList,\r\n // store redux\r\n store,\r\n // actions\r\n showMenuBar,\r\n showFontSize,\r\n setLoading,\r\n setModal,\r\n setAlert,\r\n setClassList,\r\n setConferenceRubricList,\r\n setSuggestionList,\r\n setStrategyList,\r\n setSubjectList,\r\n setLearningSupportCategoryList,\r\n setQuestionList,\r\n setUserList,\r\n setStudentList,\r\n setBadgeList,\r\n setGoalExampleList,\r\n setSemesterList,\r\n setFeedbackList,\r\n setAssessmentList,\r\n setQuestionByCategory,\r\n setSelectQuestion,\r\n setMoveItemQuestion,\r\n setReflectionList,\r\n setReflectionResultList,\r\n setEditItemQuesion,\r\n setResetQuestionList,\r\n setMailCategory,\r\n setUser,\r\n setAssignmentList,\r\n setAssistantList,\r\n setSessionTemplateList,\r\n setTutorialScreenList,\r\n setSessionTemplateGeneralClassList,\r\n setCustomAlertList,\r\n setCertificateList,\r\n closeTab,\r\n addTab,\r\n editTab,\r\n clearTab,\r\n changeNote,\r\n changeTags,\r\n answerQuestion,\r\n setSessionPlayer,\r\n setStartTime,\r\n setTurnOffPassWhenChangeMode,\r\n reset,\r\n setImproveMyClass,\r\n setSchoolBlankDayList,\r\n setEnableIEP,\r\n setEnableSurvey,\r\n setEnableMarioAi,\r\n setConversationOneToOne,\r\n setLanguage,\r\n setWeeklyQuestList,\r\n setOpenModelCongratulation,\r\n setSandboxMode,\r\n i18n,\r\n useTranslation,\r\n I18nextProvider,\r\n // api\r\n api,\r\n apiUpload,\r\n uploadFile,\r\n systemStudentBadge,\r\n systemCertificateUpload,\r\n // constants\r\n BASE_URL,\r\n DEFAULT_FILTER,\r\n LICENSE_AGGRID,\r\n TINY_MCE_API_KEY,\r\n QUESTION_TYPES,\r\n QUESTION_TYPES_OPTIONS,\r\n ANSWER_EDITOR_HEIGHT,\r\n CHAT_CHANNEL,\r\n NOTIFICATION_CHANNEL,\r\n DATE_RESULT,\r\n DATE_FORMAT,\r\n FULL_DATE_RESULT,\r\n ACCESS_TOKEN,\r\n NOTIFICATION_ALERT_KEY,\r\n GOOGLE_RECAPTCHA_KEY,\r\n DEFAULT_LANGUAGE_CODE,\r\n LANGUAGES,\r\n SUPPORTED_LANGUAGES_CODE,\r\n EMOTIONS,\r\n TAB_COLORS,\r\n SANDBOX_NOTIFICATION,\r\n // type\r\n Filter,\r\n Conversation,\r\n Message,\r\n ConversationMember,\r\n NavbarTab,\r\n // configs\r\n editorConfig,\r\n // utils\r\n generateRandomString,\r\n isInViewport,\r\n debounce,\r\n firstCheckToken,\r\n canAccessRoute,\r\n getFileUrl,\r\n getTextFromHTML,\r\n utcToLocalTime,\r\n // services\r\n getInfo,\r\n // assets\r\n Images,\r\n setQuestionCateList,\r\n setMyStudent,\r\n setDataPlayer,\r\n answerQuestionDataPlayer,\r\n setCurrentStudentUserId,\r\n setCurrentStudentId,\r\n setCurrentStudentName,\r\n setFilterWidget,\r\n setBandScoreList,\r\n setStudentIdSelectedByTeacher,\r\n // hooks\r\n useFilters,\r\n ScrollToTop,\r\n initAmplitude,\r\n amplitudeClient,\r\n INIT_AMPLITUDE_KEY_STAGE,\r\n INIT_AMPLITUDE_KEY_PROD,\r\n isLocalhost,\r\n getStaticFileUrl,\r\n IS_USER_SESSION_BROWSER,\r\n getCookieValue,\r\n getAccessToken\r\n}\r\n"],"names":["TINY_MCE_API_KEY","GOOGLE_RECAPTCHA_KEY","INIT_AMPLITUDE_KEY_PROD","INIT_AMPLITUDE_KEY_STAGE","ACCESS_TOKEN","IS_USER_SESSION_BROWSER","DEFAULT_PAGE_SIZE_VALUES","label","value","DEFAULT_PAGE_SIZE","DEFAULT_FILTER","searchString","currentPage","pageSize","sortBy","sortOrder","name","COLORS","DANGER","WARNING","SUCCESS","INFO","DATE_FORMAT","DATE_RESULT","FULL_DATE_RESULT","DATE_MIN_VALUE","LICENSE_AGGRID","BASE_URL","windowUrl","window","location","href","includes","split","url","isLocalhost","Boolean","hostname","match","QUESTION_TYPES_OPTIONS","QUESTION_TYPES","SINGLE_CHOICE","MULTIPLE_CHOICE","TEXT_INPUT","SLIDER","PROGRESS_BAR","STAR_RATING","TEXT_INPUT_WITH_SUGGESTIONS","EMOTIONAL","SUMMARIZE","RATING","LEARNING_STRATEGY","DROPDOWN","STAR_OPTIONS","ANSWER_EDITOR_HEIGHT","USER_ROLES","CHAT_CHANNEL","NOTIFICATION_CHANNEL","SANDBOX_NOTIFICATION","DEFAULT_IMAGE_URL","EMOTIONS","TAB_COLORS","reflect","goal","ROLES","ADMIN","TEACHER","ASSISTANT","EDUTEACHER","STUDENT","PARENT","COUNSELOR","SECONDARY_TEACHER","NOTIFICATION_ALERT_KEY","MARIO_SUCCESS_BASE_URL","LANGUAGES","code","fullName","shortName","nativeName","image","DEFAULT_LANGUAGE_CODE","SUPPORTED_LANGUAGES_CODE","screenWidth","innerWidth","document","documentElement","clientWidth","body","CsvImportType","domainName","listCheckMalvernCollege","isMalvernCollege","some","e","resources","translation","lang_us","lang_uk","lang_ar","lang_es","lang_zh","i18n","use","initReactI18next","init","supportedLngs","lng","fallbackLng","keySeparator","interpolation","escapeValue","style","fontSize","ErrorHandler","_ref","text","React","className","containerStyle","height","backgroundColor","borderRadius","marginBottom","position","inputStyle","paddingRight","eyeIconStyle","right","color","camelCase","str","toLowerCase","replace","_","chr","toUpperCase","PasswordInput","isShowPassword","togglePasswordVisible","onChange","placeholder","Input","type","autocomplete","required","onClick","title","TypeLogin","LoginType","setLoading","createAction","setModal","setUser","setSidebar","setAlert","setIsLoginGoogle","setInforUserGoogle","reset","showMenuBar","showFontSize","setEnableIEP","setEnableSurvey","setEnableMarioAi","setSandboxMode","setConversationOneToOne","setLanguage","setCurrentStudentId","setCurrentStudentUserId","setCurrentStudentName","setTurnOffPassWhenChangeMode","initAmplitude","schema","yup","email","password","rememberMe","BlockLogin","defaultInfo","userLogin","school","setIsShowPassword","fnIsCheckLogin","googleClientId","fnLoginSSO","extensionEmail","onLoginWidthClever","dispatch","useDispatch","_useGoogleReCaptcha","useGoogleReCaptcha","executeRecaptcha","clickHandler","useCallback","console","log","Promise","resolve","reject","handleVerify","onSuccessGoogle","res","accessToken","_hostName$split","_email$split","_extensionEmail$split","_extensionEmail$split2","_res$profileObj","profileObj","familyName","givenName","imageUrl","googleId","hostName","subDomain","emailDomain","matchExtension","map","x","trim","filter","ext","alert","infoLogin","firstName","lastName","Google","Fragment","Formik","initialValues","validationSchema","onSubmit","values","then","clickHandlerRes","captcha","loginType","Default","err","error","formikProps","handleChange","handleBlur","handleSubmit","touched","errors","setFieldValue","emailError","passwordError","styles","Form","hidden","schoolLogo","src","schoolName","FormGroup","onBlur","target","GoogleReCaptcha","action","onVerify","checked","isSessionUserBrowser","Link","to","Row","Col","lg","md","xs","GoogleOAuthProvider","clientId","GoogleLogin","onSuccess","onError","theme","size","shape","containerProps","schoolId","open","params","Object","keys","key","Array","isArray","i","encodeURIComponent","join","sessionStorage","getItem","localStorage","api","axios","create","baseURL","timeout","headers","paramsSerializer","encodeParams","apiUpload","forEach","interceptors","request","config","token","getAccessToken","Authorization","setItem","formatInTimeZone","Date","response","status","userEmail","roles","amplitude","user_id","domain","removeItem","ACCOUNT_URL","USER_URL","USER_EDU_URL","apiInforUserClassLink","data","post","logIn","checkToken","getInfo","get","forgotPassword","getUserNewPassword","userId","checkResetToken","resetPassword","checkUserGoogle","getGoogleClientId","registerUserStudent","createPassword","remove","id","userChangeId","getTeacher","DASHBOARD","LOGIN","TITLE","useForgotPassword","query","URLSearchParams","useLocation","search","_query$get","navigate","useNavigate","_useState","useState","openLogin","setOpenLogin","toggle","_useState2","isShowNewPassword","setIsShowNewPassword","_useState3","isShowReTypePassword","setIsShowReTypePassword","_useState4","reEnterPassword","setInitialValues","_useState5","validLink","setValidLink","useEffect","forgotPasswordRequest","_temp","_catch","message","_err$response","_err$response$data","_temp2","checkResetTokenRequest","_temp3","_extends","_temp4","resetPasswordRequest","_temp5","_err$response2","_err$response2$data","_temp6","forgotPasswordSchema","BlockForgetPassword","_useForgotPassword","enableReinitialize","getStaticFileUrl","STAGE_DOMAIN","isStage","origin","startsWith","resetPasswordSchema","test","parent","BlockResetPassword","disabled","SCHOOL_URL","getSchoolSettings","msalConfig","auth","authority","redirectUri","cache","cacheLocation","storeAuthStateInCookie","system","loggerOptions","loggerCallback","level","containsPii","LogLevel","Error","Info","info","Verbose","debug","Warning","warn","getFileUrl","fileName","getCookieValue","_document$cookie$matc","cookie","pop","HOMEPAGE_TEACHER","HOMEPAGE_STUDENT","HOMEPAGE_ADMIN","HOMEPAGE_PARENT","HOMEPAGE_DISTRICT","HOMEPAGE_EDU_TEACHER","useLogin","isLoginGoogle","useSelector","state","common","setGoogleClientId","googleRecaptchaId","setGoogleRecaptchaId","setExtensionEmail","infoUser","inforUserGoogle","loginClassLink","tokenClassLink","isAdminUser","openModelAssign","_useState6","setSchool","_useState7","msalInstance","setMsalInstance","_useState8","authToken","getInfoGoogle","handleCancelModelAssign","loginAccountClassLink","handleLoginWidthClever","cleverSSOUrl","_res$data","dataUser","isDistrict","host","getSchoolInfo","_res$data$schoolLogo","_data$isSessionUserBr","_data$email","_data$password","_res$data2","profileImageFileName","isLoginFirst","_data$roles","defaultTracking","identify","set","toString","_data$roles2","_err$response3","_err$response3$data","googleCaptchaId","_err$response4","_err$response4$data","_temp7","_temp12","checkUser","_temp11","_temp9","_temp8","_temp10","_temp1","_temp0","_err$response5","_err$response5$data","_temp13","submitLogin","teacherId","_temp15","_temp14","dataLogin","_err$response6","_err$response6$data","_temp16","getInformationSetting","isSandboxMode","_temp17","handleRedirectPromise","tokenResponse","_temp19","accounts","getAllAccounts","_temp18","length","domainRedirect","currentAccount","getCurrentAccount","account","slice","username","idTokenClaims","aio","tenantId","MicrosoftSSO","initInformationSSO","PublicClientApplication","redirectUrl","JSON","stringify","useCreatePassword","handleGetUserNewPassword","createPasswordRequest","BlockCreatePassword","_useCreatePassword","LOGIN_TITLE","FORGOT_PASSWORD_TITLE","RESET_PASSWORD_TITLE","Login","props","isLogin","isForgotPassword","isResetPassword","isCreatePassword","_useLogin","GoogleReCaptchaProvider","useRecaptchaNet","reCaptchaKey","scriptProps","async","defer","appendTo","onCancelModelAssign","QuoteContent","IconContent","srcIcon","content","alt","dangerouslySetInnerHTML","__html","contents","scrIcon","ContentHomePage","DEFAULT_ANIMATION_DURATION","BlockBackground","_ref$duration","duration","activeImage","setActiveImage","ref","useRef","getActiveClass","index","getBehindClass","animate","current","clearInterval","setInterval","img","HOME_ADMIN","HOME_TEACHER","HOME_STUDENT","DASHBOARD_TITLE","ROOT_TITLE","BG_IMAGES","Dashboard","version","isOpen","setIsOpen","user","Navbar","light","expand","NavbarBrand","GiHamburgerMenu","Collapse","navbar","Nav","NavItem","NavLink","NotFound","loading","TheContent","routes","pathname","dashboard","paddingAdmin","CContainer","fluid","Suspense","fallback","Routes","route","idx","Route","path","element","component","memo","buttonTextStyle","fontWeight","buttonStyle","AddButton","Button","FaPlus","DeleteButtonIcon","FaTrashAlt","LinkEditButton","EmptyDataAlert","_ref$className","_ref$style","_useTranslation","useTranslation","t","Alert","item","CustomPagination","filters","changePage","totalRecordCount","changePageSize","input","setInput","Pagination","Select","options","menu","base","zIndex","menuPosition","PaginationItem","PaginationLink","previous","tag","onKeyUp","keyCode","parseInt","next","setEmailTemplateList","setMailCategory","TINY_MCE_KEY_URL","EMAIL_TEMPLATE_URL","getById","update","put","getTinyMCEKeyApi","MAIL_CATEGORY_URL","useFilters","setFilters","changeFilters","updatedFilters","newFilters","CREATE_TEMPLATE_URL","useEmailTemplateList","emailTemplateList","emailTemplate","totalItems","mailCategoryList","mailCategory","_useFilters","getData","items","getCategory","removeData","onConfirm","goToDetail","header","EmailTemplateList","_useEmailTemplateList","onRemove","Table","bordered","hover","striped","responsive","record","subject","category","format","createdAt","width","bottom","borderTop","padding","DetailActionButtons","confirmText","onCancel","customizeStyle","assign","magin","form","textAlign","AddButtonIcon","defaultparams","meaning","MailSubject","isResetPasswordTemplate","concat","param","MailCategorySelector","fetchMailCategory","arrCategory","initValue","find","option","RequiredLabel","Label","quitAlertMessage","QuitPrompt","when","blocker","useBlocker","confirm","proceed","AttachmentFile","UPLOAD_FILE_URL","SYSTEM_PROFILE","SYSTEM_STUDENT_BADGE","SYSTEM_CERTIFICATE","SYSTEM_EMAIL","SYSTEM_QUESTION","SYSTEM_ANSWER","SYSTEM_TUTORIAL","CUSTOM_KEY","DELETE_FILE","DELETE_FOLDER","CREATE_FOLDER","RENAME_FILE","uploadFile","formData","systemStudentBadge","systemCertificateUpload","systemProfileUpload","systemEmailUpload","systemQuestionUpload","systemAnswerUpload","systemTutorialUpload","customKeyUpload","deleteFile","deleteFolder","createFolder","prefix","folderName","renameFile","menubar","force_br_newlines","force_p_newlines","branding","convert_urls","plugins","toolbar","paste_data_images","images_upload_handler","blobInfo","success","imageFile","FormData","append","blob","filename","question","_ref2","answer","_ref3","tutorial","media_live_embeds","_ref4","file_picker_callback","cb","createElement","setAttribute","onchange","file","files","_ref5","click","editorConfig","categoryId","attachments","EMAIL_TEMPLATE_LIST_URL","MAX_FILES_SIZE","useEmailTemplateDetail","editorRef","emailTemplateDetail","setEmailTemplateDetail","edited","setEdited","setEditedTrue","removedFiles","setRemovedFiles","fileUpload","setFileUpload","tinyMCEKey","setTinyMCEKey","editor","execCommand","getTinyMCEKey","setEditorRef","node","addParams","backToList","confirmData","uploadFiles","fileData","newAttachments","onAttachFile","inputs","getElementsByClassName","newInput","emailDetail","getElementById","display","addEventListener","updateAttachment","totalSize","attachmentInputs","_iterator","_createForOfIteratorHelperLoose","_step","done","attachmentInput","_iterator3","_step3","_iterator2","_step2","_loop","_step4","push","inputId","_iterator4","removeAttachment","thisInput","newRemovedFile","removed","promises","_iterator5","_step5","_iterator6","_step6","all","comment","CREATE_TEMPLATE_HEADER","EDIT_TEMPLATE_HEADER","EmailTemplateDetail","_useParams","useParams","_useEmailTemplateDeta","textTransform","Editor","tinymceScriptSrc","initialValue","onEditorChange","attachment","a","MailParam","c","CommonModal","children","cancelText","noFooter","setEditedFalse","showEditedWarningModal","onToggle","isShowConfirm","cancel","useImperativeHandle","Modal","ModalHeader","ModalBody","ModalFooter","forwardRef","CustomSelector","defaultValue","isDisabled","scrollBottom","rest","_objectWithoutPropertiesLoose","_excluded","menuPlacement","SKILL_URL","SkillSelector","skillList","setSkillList","fetchSkill","arrSkill","description","SkillDetailModal","skillDetail","actions","resetForm","rows","parentSkillId","useSkillList","skills","_error$response","_error$response$data","useSkillDetail","setId","setSkillDetail","SkillList","modal","_useSkillList","_useSkillDetail","openModal","skillId","setUserList","setStudentList","CHANGE_PASSWORD","EDU_USER_URL","ONE_ROSTER_USER_URL","MAPPING_ROSTER_USER_URL","getRosterUser","getFilterRosterUser","getStudentFilter","getRosterUserExport","updateStatusAll","ids","changePassword","forgotChangePassword","switchAccountUser","getRosterUsersApi","getRosterUserBySourcedIdApi","sourcedId","syncRosterUsersApi","resetPasswordForAdmin","getAssignStudentApi","getCounselors","getAssistants","getSecondaryTeachers","getTeachers","assignStudentsApi","userRoleHasData","addGradeToStudent","grade","studentUserId","gradeLevel","changeMultiTeacherOfStudent","changeMultiCounselorsOfStudent","changeAssistantOfStudents","changeSecondaryTeacherOfStudents","changeGradeOfStudents","getRosterAllUserId","postRequestResendMail","removeBulkStaff","UserOrder","SearchBy","TeacherType","userOrders","_userOrders","Id","Name","Email","Age","Role","Status","CreatedAt","RosterUser","Grade","Teacher","Assistant","Counselor","SecondaryTeacher","UserColumns","isCenter","searchBy","getOption","_user$replace","call","DEFAULT_STUDENT_FILTER","DEFAULT_FILTER_POPOVER","CSV_PREFIX","initialStaffBulk","assistantId","counselors","secondaryTeacherId","teacher","assistantEmail","secondaryTeacherEmail","initAssignStd","studentId","phoneNumber","isActive","dateOfBirth","quote","assistantName","assistantUserId","secondaryTeacherName","secondaryTeacherUserId","teachers","GRADE_DEFAULT","GRADE","gradeOptions","initStaffDeleteBulk","assistantRemoveUserId","counselorRemoveUserIds","teacherRemoveUserIds","teacherSwitchDataUserId","assistantSwitchDataUserId","counselorSwitchDataUserId","supportTeacherRemoveUserIds","supportTeacherSwitchDataUserId","initialUserChoice","CREATE_USER_URL","useUserList","queryName","userList","users","userIds","setUserIds","onSelectUser","existUser","r","onSelectAllUser","undefined","searchByStrings","handleSyncRosterUsers","rosterUserInfo","result","rosterUser","middleName","names","redirectLoginUser","switchUser","req","Impersonate","clear","reDirectDetailPage","SearchBox","onSearch","_ref$placeholder","setSearchString","searchInputStyle","SearchBoxContainer","time","FORMAT","date","parseISO","_unused","SyncButtonIcon","FaSyncAlt","useClickOutside","wrapperRef","onClickOutside","handleClickOutside","event","contains","removeEventListener","useFilterPopover","defaultOptions","selectedOptions","searchKey","onChangeSearchKey","onOptionsChange","onClose","onChangeFilters","sOptions","setSOptions","filteredOptions","setFilteredOptions","inputRef","handleSearch","_searchKey$trim","_searchKey$trim2","debounceSearch","clearTimeout","setTimeout","handleChangeSearchKey","handleApplyFilter","handleOptionSelected","_e$target$value","newOptions","indexOf","splice","handleOptionSelectedAll","handleSortDesc","isDescending","handleSortAsc","useMemo","isAscending","FilterPopover","_useFilterPopover","Popover","hideArrow","PopoverBody","AiOutlineSortAscending","AiOutlineSortDescending","BiSearchAlt2","check","HeaderCell","popoverId","onOpenFilter","_ref$isActive","setSearchKey","handleOpenFilter","cursor","_filters$searchByStri","HiFilter","BiFilterAlt","placement","useTableHeader","isStudentFilter","teacherOptions","assistantOptions","counselorOptions","secondaryTeacherOptions","setPopoverId","setUsers","popoverFilters","setPopoverFilters","byStudent","handleFilterIcon","searchStringBy","handleCloseFilter","handleChangeFilters","_extends2","sortAlphabetically","arr","sort","b","localeCompare","_popoverFilters$searc","uniqueOptions","from","Set","filtered","opt","sorted","isLocalSearch","TableHeader","_ref$teacherOptions","_ref$assistantOptions","_ref$counselorOptions","_ref$secondaryTeacher","_useTableHeader","filterKeys","entries","enumMap","k","isNaN","Number","activeSearchByEntries","onSelectAll","_ref6","_header$onSelectAll","_header$isCheckAll","isCheckAll","useExportUsersCsv","_state$common","_state$common$user","exportUsers","encodedUri","convertDataExportUser","link","download","age","differenceInCalendarYears","escapeCell","utcToLocalTime","createTime","_user$rosterUser","_user$rosterUser2","_user$rosterUser3","_user$rosterUser4","_user$rosterUser5","_user$rosterUser6","role","_user$rosterUser7","grades","assistants","supportTeachers","eduTeachers","replaceAll","CSV_FILE_URL","CSV_FILE_TEACHER","importCSV","subFolder","importClassReflectionCSV","importStudentByTeacher","importUsersCSV","downloadTemplateFileUser","validateCsvApi","CSVType","initClassReflect","teacherName","teacherEmail","studentIds","useCSVImport","isLoading","setType","dataFile","setDataFile","arrStudent","setArrStudent","initImportReflection","setInitImportReflection","studentDataFile","setStudentDataFile","isCheckDomainIBS","defaultTeacher","setDefaultTeacher","setFileName","downloadTemplateUser","Blob","fileURL","URL","createObjectURL","nameFile","upload","importClass","_exit","_result","AllUser","fileTextRaw","fileText","row","headerIndex","findIndex","parsedData","Papa","parse","skipEmptyLines","meta","fields","dataRows","chunkSize","chunks","chunkData","csvChunk","unparse","_forTo","ClassReflection","uploadByTeacherId","onChangeTeacher","setDataFileImportStudent","onUpLoadStudentFile","onStudentSubmit","useResendMail","postDataResendMail","handleSendMultiUsers","listUserIds","handleSendSingleUser","UserList","_useUserList","_useResendMail","_useCSVImport","_useExportUsersCsv","handleExportUsers","headerColumns","accept","overflow","_userIds$includes","FaUsersCog","margin","colSpan","CustomTabs","language","tabs","changeLanguage","renderContent","activeTab","xl","TabContent","TabPane","tabId","TeacherSelector","onCreateOption","errorMessage","setErrorMessage","handleFocus","CreatableSelect","onFocus","useAssignStudentList","totalItem","setTotalItem","setIsCheckAll","isCheck","setIsCheck","userSelected","setUserSelected","selectedUser","setSelectedUser","studentTeacherSelected","allTeachers","flatMap","student","uniqueTeachersMap","Map","has","teacherUserId","mainTeacherEmail","studentCounselorSelected","allCounselors","counselor","counselorUserId","counselorEmail","studentAssistantSelected","uniqueMap","assistant","studentSecondaryTeacherSelected","secondaryTeachers","secondaryTeacher","handelSort","orderBy","getDataUserList","original","reduce","acc","formatted","newKey","charAt","handleSelectAll","handleClickCheck","_e$target","prev","selected","handleRetrievedData","useCounselorList","setCounselorOptions","selectedCounselors","setSelectedCounselors","getDataCounselors","_res$data$items$map","_res$data$items","handleSelectCounselor","counselorId","selectedCounselor","handleCreateCounselorOption","newCounselor","isSelect","_extends3","useAssistantList","setAssistantOptions","selectedAssistants","setSelectedAssistants","getDataAssistants","handleSelectAssistant","selectedAssistant","handleCreateAssistantOption","newAssistant","useSecondaryTeacherList","setSecondaryTeacherOptions","selectedSecondaryTeachers","setSelectedSecondaryTeachers","getDataSecondaryTeachers","handleSelectSecondaryTeacher","selectedSecondaryTeacher","handleCreateSecondaryTeacherOption","newSecondaryTeacher","useTeacherList","setTeacherOptions","selectedTeachers","setSelectedTeachers","getDataTeachers","_res$data$map","handleSelectTeacher","teacherIds","selectedTeacher","handleCreateTeacherOption","newTeacher","isSelectTeacher","extractStaffList","students","mainTeacherName","counselorName","_i","useAssignStudent","teacherSelected","assistantSelected","counselorSelected","secondaryTeacherSelected","callback","openModelBulk","setOpenModelBulk","staffBulkAssign","setStaffBulkAssign","openInactiveModal","setOpenInactiveModal","openSwitchModal","setOpenSwitchModal","modalType","setModalType","optionsSwitch","setOptionsSwitch","teacherSwitchList","setTeacherSwitchList","studentSwitchList","setStudentSwitchList","_useState9","titleSelect","selectPlaceholder","changeTitle","changePlaceholder","textModal","setTextModal","_useState0","teacherChangeUserId","setTeacherChangeUserId","_useState1","teacherSelectForChangeUserId","setTeacherSelectForChangeUserId","_useState10","openDetailModal","setOpenDetailModal","_useState11","activeIndex","setActiveIndex","_useState12","removeTeacherUserIds","setRemoveTeacherUserIds","_useState13","teacherSwitchUserId","setTeacherSwitchUserId","_useState14","openModelSwitchDataTeacher","setOpenModelSwitchDataTeacher","_useState15","openModelDeleteBulk","setOpenModelDeleteBulk","_useState16","switchStaffUsers","setSwitchStaffUsers","handelChangeStaffRemove","onToggleModelDeleteBulk","onToggleModelSwitchDataTeacher","onSelectRemoveTeacher","toggleCollapse","handleToggleModel","handleToggleSwitchModel","listUser","onCloseSwitchModal","updateSwitchStaff","_changeMultiTeacherOf","_changeAssistantOfStu","handleUpdateSwitch","filteredStudents","teacherChange","counselorIds","counselorChange","_e$teachers","_e$teachers2","handleToggleInactiveModal","handleChangeStaffBulk","handleChangeTeacherBulk","handleChangeCounselorBulk","assignStudents","handleAssignMultiStudent","isMissingTeacher","mainTeacherUserId","counselorUserIds","counselorEmails","handleAssignSingleStudent","studentRequest","onAssignStaffToStudents","allUsersHaveTeachers","_userSelected$filter$","_userSelected$filter","every","u","listUserHasSecondaryTeacher","listUserHasAssistant","existingCounselorIds","_user$counselors","unmatchedTeachers","existingTeacherIds","_user$teachers","_temp20","handleEditAssignForStudents","_selectedUser$teacher","_selectedUser$teacher2","_temp21","_temp22","handleInactiveStudents","listStudentIds","_temp23","_temp24","handleRemoveBulkStaff","studentUserIds","_temp25","_error$response2","_error$response2$data","_temp26","_selectedUser$teacher3","_selectedUser$counsel","SwitchTeacherModal","onSave","centered","maxHeight","isClearable","maxWidth","AssignStudentModal","dataCollapse","Card","CardBody","isMulti","_selectedUser$counsel2","container","provided","SwitchDataTeacherModel","RemoveTeacher","onChangeStaffRemove","v","RemoveCounselor","TabsWithComponent","activeTabKey","setActiveTabKey","tab","RemoveAssistant","RemoveSupportTeacher","DeleteBulkModel","onRemoveBulkStaff","AssignStudentList","_useTeacherList","_useAssistantList","_useCounselorList","_useSecondaryTeacherL","_useAssignStudentList","handleResetData","_useAssignStudent","AssignStudentColumns","openTooltip","setOpenTooltip","alignItems","flexWrap","gap","IoIosWarning","CardText","number","onMouseEnter","onMouseLeave","Tooltip","useUserDeletedModal","userChoiced","setUserChoiced","teacherList","setTeacherList","teacherChangeId","setTeacherChangeId","getAllTeacher","_userChoiced$roles","useUserDeletedList","_useUserDeletedModal","setTotalItems","resetData","UserDeletedModal","getFile","UserDeleteList","_useUserDeletedList","choiceUser","justifyContent","UploadCSVButton","htmlFor","isClassReflection","tabIndex","opacity","_e","importChunkFileUsers","isbButtons","useCSVImportTab","errorsValidate","setErrorsValidate","buttons","typeOfCsv","Admin","_exit2","_result2","valuesOnly","unshift","_yup$string","_yup$string2","_yup$string3","CSVImport","_useCSVImportTab","formProps","fontStyle","marginTop","AiOutlineDownload","button","UserContainer","MAX_FILE_SIZE","UploadFileButton","setFile","canDelete","onDelete","isCheckFeedBack","onAddImage","imagePreviewUrl","setImagePreviewUrl","imageStyle","imageSrc","handleImageChange","preventDefault","reader","FileReader","newFile","onloadend","readAsDataURL","imagePreviewContainer","MdAttachFile","USER_LIST_URL","useUserDetail","userDetail","setUserDetail","openModel","setOpenModel","isHasAssistantData","isHasCounselorData","isHasEduTeacherData","isHasSecondaryTeacherData","isHasTeacherData","userHasData","setUserHasData","currentRoles","setCurrentRoles","getUserRoleHasData","_res$data$roles","_res$data3","_res$data4","handleDisableRoles","confirmChangePassword","_e$response","_e$response$data","handleResetPassword","userSchema","of","min","changePasswordSchema","oldPassword","newPassword","confirmedNewPassword","defaultFilter","useRosterUserSelector","setFilter","getRosterUsers","mapUsersToOptions","getUserBySourcedId","handleInputChange","handleChangeFilter","newFilter","_filter$roles","RosterUserSelector","_useRosterUserSelecto","onInputChange","CREATE_USER","EDIT_USER_HEADER","UserDetail","_useUserDetail","initialValueForm","onForgotPw","onResetPw","toggleRoles","DatePicker","todayButton","peekNextMonth","showMonthDropdown","showYearDropdown","dropdownMode","toDate","placeholderText","customInput","schemaChangePassword","_values$teacherUserId","loadingStyle","minWidth","minHeight","top","left","Loading","ScrollToTop","_useLocation","scrollTo","modalInfo","NotificationModal","headerStyle","fade","paddingBottom","headerTextStyle","CommonHeader","rootHeader","IDLE_MINUTES_WARNING","AUTO_LOGOUT_MINUTES","NotificationLogoutModal","minutes","timeLogout","objTime","setObjTime","getLastActivity","_localStorage$getItem","_localStorage","_localStorage$getItem2","doLogout","checkOpenModalLogout","lastActivity","_localStorage2","_localStorage2$setIte","toISOString","timeMoment","currentTime","differenceInMinutes","addMinutes","interval","EditButtonIcon","FaRegEdit","SandboxAlert","isLoginPage","components","DropdownIndicator","CreatableSelector","inputValue","handleKeyDown","Creatable","menuIsOpen","onKeyDown","QuestionTypeSelector","CATEGORY_URL","SuggestionCategorySelector","categoryList","setCategoryList","fetchCategory","parentCategoryId","getByFilter","QuestionCategorySelector","getCategoryList","useCategorySelector","categories","setCategories","convertedCategories","convertOptions","noParentCategories","childrenOfCategory","cg","_cg$parentCategoryId","_cg$parentCategoryId2","optionStyles","control","paddingLeft","CategorySelector","_useCategorySelector","StarRatingSelector","ACTIVE_COLOR","INACTIVE_COLOR","ToggleButton","textLeft","textRight","isLeft","clickLeft","clickRight","InputFile","icon","_ref$accept","handleFileChange","NotificationStatusSelector","customSelector","NOTIFICATION_URL","updateStatusNotification","updateAllStatus","setNotification","setUnReadNotification","updateUnReadNotification","defaultFilters","isRead","NEW_NOTIFICATION","useNotificationList","notificationList","notification","pusherKey","pusherCluster","unReadNotification","toggleUpdateAllStatus","setToggleUpdateAllStatus","objectValue","viewNotification","source","extraData","_JSON$parse","_JSON$parse2","_extraData$replace","_extraData$replace$sp","_extraData$replace2","_extraData$replace2$s","_JSON$parse3","_JSON$parse4","_JSON$parse5","_JSON$parse6","_JSON$parse7","_JSON$parse8","_JSON$parse9","_JSON$parse0","_JSON$parse1","_JSON$parse10","pusher","Pusher","cluster","channel","subscribe","bind","unsubscribe","updateNotification","updateAll","ICON_SIZE","NotificationList","_useNotificationList","AiOutlineEye","CommonAlert","onDismiss","_alert$message","_alert$message2","ActionModal","targetMedia","MediaNav","isLibrary","step","breadcumb","currentPrefix","handleSelectFile","handleCreateFolder","handleRenameFile","handleGoBack","handleDownloadMedia","handleDeleteMediaOrFolder","showErrorAlert","inputFile","_modal$current","renderGroupButtons","FaArrowLeft","isFolder","FaDownload","FaTrash","FaEdit","FaFolderPlus","_inputFile$current","FaFileUpload","_event$target","Images","USER_CONVERSATION_AVATAR","GROUP_CONVERSATION_AVATAR","LOGO","LOGO_HEADER","LOGO_MINIMIZED","DOCS_IMAGE","AUDIO_IMAGE","PHOTO_IMAGE","VIDEO_IMAGE","FOLDER_IMAGE","UNKNOW_IMAGE","MediaType","images","videos","docs","audios","getTypeByExtension","extension","IMAGE","VIDEO","DOC","AUDIO","UNKNOW","getMediaThumbnail","media","Media","isTarget","thumbnail","CardImg","CardTitle","Filter","queryTypes","selectQueryTypes","sm","types","op","setGallery","setTargetMedia","GALLERY_URL","useGalleryList","mediaList","gallery","formDataMediaType","router","changeRouter","handleOpenFolder","temp","handleSelectMedia","customKeyUploadEffect","customKey","breadcrumb","_router$link","subLinks","_err","MediaList","_useGalleryList","renderList","onDoubleClick","CardHeader","MediaDetail","controls","_targetMedia$extensio","GalleryList","CLASS_URL","AcademicClassSelector","classes","setClasses","SchoolList","warning","initialState","sidebarShow","currentStudentId","currentStudentUserId","currentStudentName","turnOffPassWhenChangeMode","menuBar","defaultFontSize","isEnableIEP","isEnableSurvey","isEnableMarioAi","isConversationOneToOne","student_id","page","part","iep_date","saved","first_login","duration_since","last_page","commonReducer","createReducer","builder","addCase","payload","_state","_action","eventProperties","_action$payload","_action$payload2","_action$payload3","_action$payload4","_action$payload5","_action$payload6","_action$payload7","_action$payload8","_action$payload9","_action$payload0","_action$payload1","_action$payload10","_action$payload11","_action$payload11$rol","_action$payload12","chart","_action$payload13","setClassList","classList","classReducer","setConferenceRubricList","conferenceRubricList","conferenceRubricReducer","setFaqList","faqList","emailTemplateReducer","setSuggestionList","suggestionList","suggestionBankReducer","setStrategyList","strategyList","learningStrategyReducer","setSubjectList","subjectList","setLearningSupportCategoryList","learningSupportCategoryList","setQuestionList","questionList","questionBankReducer","setBadgeList","badgeList","setSemesterList","semesterList","setAssignmentList","assignmentList","setGoalExampleList","goalExampleList","studentList","setFeedbackList","feedbackList","setAssessmentList","initState","assessmentList","setReflectionList","reflectionList","reflectionReducer","setReflectionResultList","reflectionResultList","setQuestionByCategory","setSelectQuestion","setUnSelectQuestion","setMoveItemQuestion","setEditItemQuesion","setResetQuestionList","questionByCategoryList","selectedQuestions","selectQuestion","mergeArrayUniqueQuestion","array1","array2","d","arrMerged","questionCategoryReducer","sub","old_index","old_index1","setQuestionCateList","questionCateList","questionCateReducer","setMyStudent","myStudentList","setAssistantList","assistantList","assistantReducer","setSessionTemplateList","sessionTemplateList","sessionTemplateReducer","setSessionTemplateGeneralClassList","sessionTemplateGeneralClassList","sessionTemplateGeneralClassReducer","setTutorialScreenList","tutorialScreenList","tutorialScreenReducer","setCustomAlertList","customAlertList","addTab","closeTab","editTab","clearTab","dashboardReducer","editingTab","changeNote","changeTags","answerQuestion","setSessionPlayer","setStartTime","sessionId","session","conferenceRubric","studentDefaultQuestions","teacherDefaultQuestions","additionalQuestions","results","startTime","sessionPlayerReducer","isConfidential","teacherResult","isTeacherResult","teacherResultCloner","existedNote","notes","note","tags","questionId","resultCloner","existedResponse","questionResponses","setDataPlayer","answerQuestionDataPlayer","questions","subQuestions","answers","questionResponse","dataPlayer","questionResponseCloner","setCertificateList","certificateList","setImproveMyClass","improveMyClassList","setFilterWidget","filterWidget","widgetReducer","setBandScoreList","bandScoreList","setSchoolBlankDayList","schoolBlankDayList","setStudentIdSelectedByTeacher","studentIdSelectedByTeacher","navMobileReducer","setWeeklyQuestList","setOpenModelCongratulation","isOpenModelCongratulation","lastQuest","weeklyQuests","weeklyQuestReducer","rootReducer","combineReducers","conferenceRubrics","faqs","suggestionBank","learningStrategy","subjects","learningSupportCategories","questionBank","badges","semester","goalExamples","reflections","reflectionResults","feedbacks","assessments","questionByCategory","questionCate","myStudent","assignments","sesstionTemplates","sessionTemplateGeneralClasses","tutorialScreens","customAlerts","sessionPlayer","certificate","improveMyClass","widget","bandScores","schoolBlankDays","store","configureStore","reducer","middleware","getDefaultMiddleware","serializableCheck","firstCheckToken","tokenStatus","canAccess","userRoles","componentRoles","intersects","isInViewport","el","rect","getBoundingClientRect","innerHeight","clientHeight","debounce","wait","args","_len","_key","arguments","apply","getTextFromHTML","htmlString","p","innerHTML","innerText","Math","random","substring","amplitudeClient"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGaA,gBAAgB,GACzB,kDAAkD;AAEtD,IAAaC,oBAAoB,GAAG,0CAA0C;AAE9E,IAAaC,uBAAuB,GAAG,kCAAkC;AACzE,IAAaC,wBAAwB,GAAG,kCAAkC;AAE1E,IAAaC,YAAY,GAAG,cAAc;AAC1C,IAAaC,uBAAuB,GAAG,yBAAyB;AAEhE,AAAO,IAAMC,wBAAwB,GAAG,CACpC;EAAEC,KAAK,EAAE,IAAI;EAAEC,KAAK,EAAE;CAAI,EAC1B;EAAED,KAAK,EAAE,IAAI;EAAEC,KAAK,EAAE;CAAI,EAC1B;EAAED,KAAK,EAAE,IAAI;EAAEC,KAAK,EAAE;CAAI,EAC1B;EAAED,KAAK,EAAE,IAAI;EAAEC,KAAK,EAAE;CAAI,CAC7B;AAED,AAAO,IAAMC,iBAAiB,GAAG;EAC7BF,KAAK,EAAE,IAAI;EACXC,KAAK,EAAE;CACV;AAED,IAAaE,cAAc,GAAW;EAClCC,YAAY,EAAE,EAAE;EAChBC,WAAW,EAAE,CAAC;EACdC,QAAQ,EAAEJ,iBAAiB,CAACD,KAAK;EACjCM,MAAM,EAAE,EAAE;EACVC,SAAS,EAAE,KAAK;EAChBC,IAAI,EAAE;CACT;AAED,AAAO,IAAMC,MAAM,GAAG;EAClBC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,IAAI,EAAE;CACT;AAED,IAAaC,WAAW,GAAG,YAAY;AAEvC,IAAaC,WAAW,GAAG,YAAY;AAEvC,IAAaC,gBAAgB,GAAG,kBAAkB;AAElD,AAEO,IAAMC,cAAc,GAAG,qBAAqB;AAEnD,IAAaC,cAAc,GACvB,kHAAkH;AAEtH,IAAaC,QAAQ,GAAI;EACrB,IAAMC,SAAS,GAAGC,MAAM,CAACC,QAAQ,CAACC,IAAI;EACtC,IAAIH,SAAS,CAACI,QAAQ,CAAC,sBAAsB,CAAC,EAAE;IAC5C,OAAUJ,SAAS,CAACK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;EAGtC,IAAIL,SAAS,CAACI,QAAQ,CAAC,uBAAuB,CAAC,EAAE;IAC7C,OAAUJ,SAAS,CAACK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;EAGtC,IAAMC,GAAG,GAAMN,SAAS,CAACK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAKL,SAAS,CAACK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAACA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAC3E;EACN,OAAOC,GAAG;AACd,CAAC,EAAG;AAEJ,IAAaC,WAAW,GAAGC,OAAO,CAC9BP,MAAM,CAACC,QAAQ,CAACO,QAAQ,KAAK,WAAW,IACxCR,MAAM,CAACC,QAAQ,CAACO,QAAQ,CAACL,QAAQ,CAAC,OAAO,CAAC,IAC1CH,MAAM,CAACC,QAAQ,CAACO,QAAQ,CAACL,QAAQ,CAAC,YAAY,CAAC,IAE/CH,MAAM,CAACC,QAAQ,CAACO,QAAQ,KAAK,OAAO,IAEpCR,MAAM,CAACC,QAAQ,CAACO,QAAQ,CAACC,KAAK,CAC1B,wDAAwD,CAC3D,CACJ;AAED,IAAaC,sBAAsB,GAAG,CAClC;EAAEhC,KAAK,EAAE,eAAe;EAAEC,KAAK,EAAE;CAAgB,EACjD;EAAED,KAAK,EAAE,iBAAiB;EAAEC,KAAK,EAAE;CAAkB,EACrD;EAAED,KAAK,EAAE,YAAY;EAAEC,KAAK,EAAE;CAAa,EAQ3C;EAAED,KAAK,EAAE,WAAW;EAAEC,KAAK,EAAE;CAAa,EAC1C;EAAED,KAAK,EAAE,WAAW;EAAEC,KAAK,EAAE;CAAa,EAC1C;EAAED,KAAK,EAAE,QAAQ;EAAEC,KAAK,EAAE;CAAU,EACpC;EAAED,KAAK,EAAE,mBAAmB;EAAEC,KAAK,EAAE;CAAoB,EACzD;EAAED,KAAK,EAAE,UAAU;EAAEC,KAAK,EAAE;CAAY,CAC3C;AAED,IAAagC,cAAc,GAAG;EAC1BC,aAAa,EAAE,cAAc;EAC7BC,eAAe,EAAE,gBAAgB;EACjCC,UAAU,EAAE,WAAW;EACvBC,MAAM,EAAE,QAAQ;EAChBC,YAAY,EAAE,aAAa;EAC3BC,WAAW,EAAE,YAAY;EACzBC,2BAA2B,EAAE,0BAA0B;EACvDC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EACtBC,MAAM,EAAE,QAAQ;EAChBC,iBAAiB,EAAE,kBAAkB;EACrCC,QAAQ,EAAE;CACb;AAED,AAAO,IAAMC,YAAY,GAAG,CACxB;EAAE9C,KAAK,EAAE,CAAC;EAAEC,KAAK,EAAE;CAAG,EACtB;EAAED,KAAK,EAAE,CAAC;EAAEC,KAAK,EAAE;CAAG,EACtB;EAAED,KAAK,EAAE,CAAC;EAAEC,KAAK,EAAE;CAAG,EACtB;EAAED,KAAK,EAAE,CAAC;EAAEC,KAAK,EAAE;CAAG,CACzB;AAED,IAAa8C,oBAAoB,GAAG,GAAG;AAEvC,AAAO,IAAMC,UAAU,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,oBAAoB,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,EAAE,QAAQ,CAAC;AAEvI,IAAaC,YAAY,GAAG,cAAc;AAC1C,IAAaC,oBAAoB,GAAG,sBAAsB;AAC1D,IACaC,oBAAoB,GAAG,sBAAsB;AAC1D,AAAO,IAAMC,iBAAiB,GAC1B,uEAAuE;AAE3E,IAAaC,QAAQ,GAAG,CACpB,2BAA2B,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,6BAA6B,CAChC;AAED,IAAaC,UAAU,GAAG;EACtBC,OAAO,EAAE,SAAS;EAClBC,IAAI,EAAE;CACT;AAED,AAAO,IAAMC,KAAK,GAAG;EACjBC,KAAK,EAAE,OAAO;EACdC,OAAO,EAAE,SAAS;EAClBC,SAAS,EAAE,WAAW;EACtBC,UAAU,EAAE,oBAAoB;EAChCC,OAAO,EAAE,SAAS;EAClBC,MAAM,EAAE,QAAQ;EAChBC,SAAS,EAAE,WAAW;EACtBC,iBAAiB,EAAE;CACtB;AACD,IAAaC,sBAAsB,GAAG,wBAAwB;AAE9D,AASO,IAAMC,sBAAsB,GAAG,8BAA8B;AAEpE,IAAaC,SAAS,GAAe,CACjC;EACIC,IAAI,EAAE,OAAO;EACbC,QAAQ,EAAE,yBAAyB;EACnCC,SAAS,EAAE,aAAa;EACxBC,UAAU,EAAE,SAAS;EACrB/D,IAAI,EAAE,eAAe;EACrBgE,KAAK,EAAE;CACV,CAyBJ;AAED,IAAaC,qBAAqB,GAAG,OAAO;AAE5C,IAAaC,wBAAwB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAE5E,AAAO,IAAMC,WAAW,GACpBtD,MAAM,CAACuD,UAAU,IACjBC,QAAQ,CAACC,eAAe,CAACC,WAAW,IACpCF,QAAQ,CAACG,IAAI,CAACD,WAAW;AAE7B,AAAA,IAAYE,aAGX;AAHD,WAAYA,aAAa;EACrBA,uDAAO;EACPA,mDAAK;AACT,CAAC,EAHWA,aAAa,KAAbA,aAAa;AAKzB,IAAMC,UAAU,GAAG7D,MAAM,CAACC,QAAQ,CAACO,QAAQ;AAC3C,IAAMsD,uBAAuB,GAAG,CAAC,gBAAgB,EAAE,OAAO,EAAE,WAAW,CAAC;AACxE,AAAO,IAAMC,gBAAgB,GAAGD,uBAAuB,CAACE,IAAI,CAAC,UAAAC,CAAC;EAAA,OAAIJ,UAAU,CAAC1D,QAAQ,CAAC8D,CAAC,CAAC;AAAA,EAAC;;ACnNzF,IAAMC,WAAS,GAAG;EAChB,OAAO,EAAE;IACPC,WAAW,EAAEC;GACd;EACD,OAAO,EAAE;IACPD,WAAW,EAAEE;GACd;EACD,IAAI,EAAE;IACJF,WAAW,EAAEG;GACd;EACD,IAAI,EAAE;IACJH,WAAW,EAAEI;GACd;EACD,IAAI,EAAE;IACJJ,WAAW,EAAEK;;AAEjB,CAAC;AAEDC,IAAI,CAACC,GAAG,CAACC,6BAAgB,CAAC,CAACC,IAAI,CAAC;EAC5BV,SAAS,EAATA,WAAS;EACTW,aAAa,EAAExB,wBAAwB;EACvCyB,GAAG,EAAE1B,qBAAqB;EAC1B2B,WAAW,EAAE3B,qBAAqB;EAClC4B,YAAY,EAAE,KAAK;EACnBC,aAAa,EAAE;IACXC,WAAW,EAAE;;AAErB,CAAC,CAAC;;ACpCF;AACA,AAAO,MAAM,KAAK,gBAAgB,CAAC,WAAW;AAC9C,CAAC,SAAS,KAAK,GAAG,EAAE;AACpB,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,WAAW,EAAE,UAAU,EAAE;AAC1D,EAAE,MAAM,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;AAC7B,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;AACvB,EAAE,IAAI,KAAK,EAAE;AACb,GAAG,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,GAAG,WAAW,GAAG,UAAU,CAAC;AACzD,GAAG,IAAI,QAAQ,EAAE;AACjB,IAAI,IAAI;AACR,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,KAAK,CAAC,OAAO,CAAC,EAAE;AAChB,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,IAAI,MAAM;AACV,IAAI,OAAO,IAAI,CAAC;AAChB,IAAI;AACJ,GAAG;AACH,EAAE,IAAI,CAAC,CAAC,GAAG,SAAS,KAAK,EAAE;AAC3B,GAAG,IAAI;AACP,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;AAC1B,IAAI,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE;AACrB,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAClE,KAAK,MAAM,IAAI,UAAU,EAAE;AAC3B,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,KAAK,MAAM;AACX,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/B,KAAK;AACL,IAAI,CAAC,OAAO,CAAC,EAAE;AACf,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,IAAI;AACJ,GAAG,CAAC;AACJ,EAAE,OAAO,MAAM,CAAC;AAChB,GAAE;AACF,CAAC,OAAO,KAAK,CAAC;AACd,CAAC,GAAG,CAAC;AACL;AACA;AACA,AAAO,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;AAC5C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;AACd,EAAE,IAAI,KAAK,YAAY,KAAK,EAAE;AAC9B,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE;AAChB,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;AACnB,KAAK,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;AACrB,KAAK;AACL,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;AACpB,IAAI,MAAM;AACV,IAAI,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9C,IAAI,OAAO;AACX,IAAI;AACJ,GAAG;AACH,EAAE,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE;AAC3B,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5E,GAAG,OAAO;AACV,GAAG;AACH,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;AACjB,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;AACjB,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;AAC1B,EAAE,IAAI,QAAQ,EAAE;AAChB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClB,GAAG;AACH,EAAE;AACF,CAAC;AACD;AACA,AAAO,SAAS,cAAc,CAAC,QAAQ,EAAE;AACzC,CAAC,OAAO,QAAQ,YAAY,KAAK,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC;AACD,AA4CA;AACA;AACA,AAAO,SAAS,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;AAC3C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC;AAC1B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE;AACzB,EAAE,IAAI;AACN,GAAG,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE;AACtD,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;AAC/B,KAAK,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE;AACjC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;AACxB,MAAM,MAAM;AACZ,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,MAAM,OAAO;AACb,MAAM;AACN,KAAK;AACL,IAAI;AACJ,GAAG,IAAI,IAAI,EAAE;AACb,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAC7B,IAAI,MAAM;AACV,IAAI,IAAI,GAAG,MAAM,CAAC;AAClB,IAAI;AACJ,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,GAAG;AACH,EAAE;AACF,CAAC,MAAM,EAAE,CAAC;AACV,CAAC,OAAO,IAAI,CAAC;AACb,CAAC;AACD,AAsBA;AACA,AAAO,MAAM,eAAe,iBAAiB,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,YAAY,CAAC;AAC/J,AA2DA;AACA,AAAO,MAAM,oBAAoB,iBAAiB,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,iBAAiB,CAAC;AACxL,AA8UA;AACA;AACA,AAAO,SAAS,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AACtC,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;AACtB,EAAE,CAAC,MAAM,CAAC,EAAE;AACZ,EAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACpB,EAAE;AACF,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;AAC5B,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AACtC,EAAE;AACF,CAAC,OAAO,MAAM,CAAC;AACf,CAAC;;;;ACtjBD,IAAMC,KAAK,GAAG;EACVC,QAAQ,EAAE;CACb;AAED,IAAMC,YAAY,GAAc,SAA1BA,YAAYA,CAAAC,IAAA;MAAiBC,IAAI,GAAAD,IAAA,CAAJC,IAAI;EACnC,OACIC;IAAGC,SAAS,EAAC,aAAa;IAACN,KAAK,EAAEA;KAC7BI,IAAI,CACL;AAEZ,CAAC;;ACND,IAAMG,cAAc,GAAkB;EAClCC,MAAM,EAAE,MAAM;EACdC,eAAe,EAAE,SAAS;EAC1BC,YAAY,EAAE,KAAK;EACnBC,YAAY,EAAE,KAAK;EACnBC,QAAQ,EAAE;CACb;AAED,IAAMC,UAAU,GAAkB;EAC9BJ,eAAe,EAAE,SAAS;EAC1BK,YAAY,EAAE;CACjB;AAED,IAAMC,YAAY,GAAkB;EAChCd,QAAQ,EAAE,MAAM;EAChBW,QAAQ,EAAE,UAAU;EACpBI,KAAK,EAAE,MAAM;EACbC,KAAK,EAAE;CACV;AAED,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAIC,GAAW;EAC1B,OAAOA,GAAG,CACLC,WAAW,EAAE,CACbC,OAAO,CAAC,mBAAmB,EAAE,UAACC,CAAC,EAAEC,GAAG;IAAA,OAAKA,GAAG,CAACC,WAAW,EAAE;IAAC;AACpE,CAAC;AAED,IAAMC,aAAa,GAAc,SAA3BA,aAAaA,CAAAtB,IAAA;MACfuB,cAAc,GAAAvB,IAAA,CAAduB,cAAc;IACdC,qBAAqB,GAAAxB,IAAA,CAArBwB,qBAAqB;IACrBC,QAAQ,GAAAzB,IAAA,CAARyB,QAAQ;IACRC,WAAW,GAAA1B,IAAA,CAAX0B,WAAW;EAEX,OACIxB;IAAKC,SAAS,EAAC,iCAAiC;IAACN,KAAK,EAAEO;KACpDF,6BAACyB,gBAAK;IACFxB,SAAS,EAAC,uBAAuB;IACjCN,KAAK,EAAEa,UAAU;IACjBkB,IAAI,EAAEL,cAAc,GAAG,MAAM,GAAG,UAAU;IAC1C1H,IAAI,EAAC,UAAU;IACf4H,QAAQ,EAAEA,QAAQ;IAClBC,WAAW,EAAE,CAACA,WAAW,GAAG,UAAU,GAAGA,WAAW;IACpDG,YAAY,EACR,CAACH,WAAW,GAAG,UAAU,GAAGX,SAAS,CAACW,WAAW,CAAC;IAEtDI,QAAQ;IACV,EACF5B;IACIC,SAAS,YACLoB,cAAc,GAAG,cAAc,GAAG,QACtC,0BAAsB;IACtB1B,KAAK,EAAEe,YAAY;IACnBmB,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQP,qBAAqB,EAAE;;IACtCQ,KAAK,EAAET,cAAc,GAAG,MAAM,GAAG;IACnC,CACA;AAEd,CAAC;;AC1DD,IAAYU,SAIX;AAJD,WAAYA,SAAS;EACjBA,6CAAM;EACNA,mDAAS;EACTA,yDAAY;AAChB,CAAC,EAJWA,SAAS,KAATA,SAAS;AAerB,AAAA,IAAYC,SAIX;AAJD,WAAYA,SAAS;EACjBA,+CAAO;EACPA,6CAAM;EACNA,uDAAW;AACf,CAAC,EAJWA,SAAS,KAATA,SAAS;;ICpBRC,UAAU,GAAGC,oBAAY,CAAsB,mBAAmB,CAAC;AAEhF,IAAaC,QAAQ,GAAGD,oBAAY,CAAM,iBAAiB,CAAC;AAE5D,IAAaE,OAAO,GAAGF,oBAAY,CAAM,gBAAgB,CAAC;AAE1D,AAAO,IAAMG,UAAU,GAAGH,oBAAY,CAAM,mBAAmB,CAAC;AAEhE,IAAaI,QAAQ,GAAGJ,oBAAY,CAAM,iBAAiB,CAAC;AAE5D,AAAO,IAAMK,gBAAgB,GAAGL,oBAAY,CAAM,yBAAyB,CAAC;AAE5E,AAAO,IAAMM,kBAAkB,GAAGN,oBAAY,CAAM,2BAA2B,CAAC;AAEhF,IAAaO,KAAK,GAAGP,oBAAY,CAAY,cAAc,CAAC;AAE5D,IAAaQ,WAAW,GAAGR,oBAAY,CAAM,oBAAoB,CAAC;AAElE,IAAaS,YAAY,GAAGT,oBAAY,CAAM,qBAAqB,CAAC;AAEpE,IAAaU,YAAY,GAAGV,oBAAY,CAAU,qBAAqB,CAAC;AAExE,IAAaW,eAAe,GAAGX,oBAAY,CAAU,wBAAwB,CAAC;AAE9E,IAAaY,gBAAgB,GAAGZ,oBAAY,CAAU,yBAAyB,CAAC;AAEhF,IAAaa,cAAc,GAAGb,oBAAY,CAAU,uBAAuB,CAAC;AAE5E,IAAac,uBAAuB,GAAGd,oBAAY,CAAU,gCAAgC,CAAC;AAE9F,IAAae,WAAW,GAAGf,oBAAY,CAAS,oBAAoB,CAAC;AAErE,IAAagB,mBAAmB,GAAGhB,oBAAY,CAC3C,4BAA4B,CAC/B;AAED,IAAaiB,uBAAuB,GAAGjB,oBAAY,CAC/C,gCAAgC,CACnC;AAED,IAAakB,qBAAqB,GAAGlB,oBAAY,CAC7C,8BAA8B,CACjC;AAED,IAAamB,4BAA4B,GAAGnB,oBAAY,CACpD,qCAAqC,CACxC;AAED,IAAaoB,aAAa,GAAGpB,oBAAY,CAAiB,sBAAsB,CAAC;;ACjBjF,IAAMqB,MAAM,GAAGC,UAAU,CAAC;EACtBC,KAAK,EAAED,UAAU,EAAE,CAACC,KAAK,CAAC,kBAAkB,CAAC,CAAC7B,QAAQ,CAAC,mBAAmB,CAAC;EAC3E8B,QAAQ,EAAEF,UAAU,EAAE,CAAC5B,QAAQ,CAAC,sBAAsB,CAAC;EACvD+B,UAAU,EAAEH,WAAW;CAC1B,CAAC;AAEF,IAAMI,UAAU,GAAc,SAAxBA,UAAUA,CAAA9D,IAAA;MACZ+D,WAAW,GAAA/D,IAAA,CAAX+D,WAAW;IACXC,SAAS,GAAAhE,IAAA,CAATgE,SAAS;IACTC,MAAM,GAAAjE,IAAA,CAANiE,MAAM;IACN1C,cAAc,GAAAvB,IAAA,CAAduB,cAAc;IACd2C,iBAAiB,GAAAlE,IAAA,CAAjBkE,iBAAiB;IACjBC,cAAc,GAAAnE,IAAA,CAAdmE,cAAc;IAIdC,cAAc,GAAApE,IAAA,CAAdoE,cAAc;IACdC,UAAU,GAAArE,IAAA,CAAVqE,UAAU;IACVC,cAAc,GAAAtE,IAAA,CAAdsE,cAAc;IACdC,kBAAkB,GAAAvE,IAAA,CAAlBuE,kBAAkB;EAElB,IAAM/C,qBAAqB,GAAG,SAAxBA,qBAAqBA;IAAA,OAAS0C,iBAAiB,CAAC,CAAC3C,cAAc,CAAC;;EACtE,IAAMiD,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAAC,mBAAA,GAA6BC,yCAAkB,EAAE;IAAzCC,gBAAgB,GAAAF,mBAAA,CAAhBE,gBAAgB;EAExB,IAAMC,YAAY,GAAGC,iBAAW;IAAA;MAC5B,IAAI,CAACF,gBAAgB,EAAE;QACnBG,OAAO,CAACC,GAAG,CAAC,6BAA6B,CAAC;QAC1C,OAAAC,OAAA,CAAAC,OAAA;;MACH,OAAAD,OAAA,CAAAC,OAAA,CACoBN,gBAAgB,CAAC,OAAO,CAAC;KAEjD,QAAAjG,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,CAACiG,gBAAgB,CAAC,CAAC;EAEtB,IAAMQ,YAAY,GAAGN,iBAAW,CAAC,cAAQ,EAAE,EAAE,CAAC;EAC9C,IAAMO,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,GAAQ;IAC7B,IAAI,CAAC,EAACA,GAAG,aAAHA,GAAG,eAAHA,GAAG,CAAEC,WAAW,GAAE;MAAA,IAAAC,eAAA,EAAAC,YAAA,EAAAC,qBAAA,EAAAC,sBAAA;MACpB,IAAAC,eAAA,GAMIN,GAAG,CAACO,UAAU;QALdlC,KAAK,GAAAiC,eAAA,CAALjC,KAAK;QACLmC,UAAU,GAAAF,eAAA,CAAVE,UAAU;QACVC,SAAS,GAAAH,eAAA,CAATG,SAAS;QACTC,QAAQ,GAAAJ,eAAA,CAARI,QAAQ;QACRnM,IAAI,GAAA+L,eAAA,CAAJ/L,IAAI;MAER,IAAI0L,WAAW,GAAGD,GAAG,CAACC,WAAW;MACjC,IAAIU,QAAQ,GAAGX,GAAG,CAACW,QAAQ;MAE3B,IAAMC,QAAQ,GAAGxL,MAAM,CAACC,QAAQ,CAACO,QAAQ;MACzC,IAAMiL,SAAS,IAAAX,eAAA,GAAGU,QAAQ,CAACpL,KAAK,CAAC,iBAAiB,CAAC,cAAA0K,eAAA,uBAAjCA,eAAA,CAAoC,CAAC,CAAC;MACxD,IAAMY,WAAW,IAAAX,YAAA,GAAG9B,KAAK,CAAC7I,KAAK,CAAC,GAAG,CAAC,cAAA2K,YAAA,uBAAhBA,YAAA,CAAmB,CAAC,CAAC;MACzC,IAAMY,cAAc,GAAG/B,cAAc,aAAdA,cAAc,wBAAAoB,qBAAA,GAAdpB,cAAc,CAC/BxJ,KAAK,CAAC,GAAG,CAAC,cAAA4K,qBAAA,wBAAAC,sBAAA,GADOD,qBAAA,CAEjBY,GAAG,CAAC,UAAAC,CAAC;QAAA,OAAIA,CAAC,CAACC,IAAI,EAAE;QAAC,cAAAb,sBAAA,uBAFDA,sBAAA,CAGjBc,MAAM,CAAC,UAAAF,CAAC;QAAA,OAAIA,CAAC;QAAC,CACf7H,IAAI,CAAC,UAAAgI,GAAG;QAAA,OAAIN,WAAW,CAACvL,QAAQ,CAAC6L,GAAG,CAAC;QAAC;MAC3C,IAAI,CAACN,WAAW,CAACvL,QAAQ,CAACsL,SAAS,CAAC,IAAI,CAACE,cAAc,EAAE;QACrDM,KAAK,CACD,0PAA0P,CAC7P;QACD;;MAGJ,IAAMC,SAAS,GAAqB;QAChCC,SAAS,EAAEd,SAAS;QACpBe,QAAQ,EAAEhB,UAAU;QACpBE,QAAQ,EAAEA,QAAQ;QAClBtI,QAAQ,EAAE7D,IAAI;QACd8J,KAAK,EAAEA,KAAK;QACZ4B,WAAW,EAAEA,WAAW;QACxBU,QAAQ,EAAEA;OACb;MACDzB,QAAQ,CAAC9B,kBAAkB,CAACkE,SAAS,CAAC,CAAC;MACvCzC,cAAc,CACVlC,SAAS,CAAC8E,MAAM,EAChBH,SAAS,EACTrB,WAAW,EACXV,YAAY,CACf;;GAER;EAED,OACI3E,6BAACA,cAAK,CAAC8G,QAAQ,QACX9G,6BAAC+G,aAAM;IACHC,aAAa,EAAEnD,WAAW;IAC1BoD,gBAAgB,EAAE1D,MAAM;IACxB2D,QAAQ,YAAQC,MAAM;MAAA;kDACd;UAAA,OAAApC,OAAA,CAAAC,OAAA,CAC8BL,YAAY,EAAE,EAAAyC,IAAA,WAAtCC,eAAe;YACrB,IAAI,CAACA,eAAe,EAAE;YACtBF,MAAM,CAACG,OAAO,GAAGD,eAAe;YAChCF,MAAM,CAACI,SAAS,GAAGvF,SAAS,CAACwF,OAAO;YACpC1D,SAAS,CAACqD,MAAM,CAAC;;SACpB,YAAQM,GAAG,EAAE;UACV5C,OAAO,CAAC6C,KAAK,CAACD,GAAG,CAAC;SACrB;OACJ,QAAAhJ,CAAA;QAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;KAEA,UAAAkJ,WAAW;IACR,IACIC,YAAY,GAOZD,WAAW,CAPXC,YAAY;MACZC,UAAU,GAMVF,WAAW,CANXE,UAAU;MACVC,YAAY,GAKZH,WAAW,CALXG,YAAY;MACZX,MAAM,GAINQ,WAAW,CAJXR,MAAM;MACNY,OAAO,GAGPJ,WAAW,CAHXI,OAAO;MACPC,MAAM,GAENL,WAAW,CAFXK,MAAM;MACNC,aAAa,GACbN,WAAW,CADXM,aAAa;IAGjB,IAAMC,UAAU,GAAGH,OAAO,CAACtE,KAAK,IAAIuE,MAAM,CAACvE,KAAK;IAChD,IAAM0E,aAAa,GAAGJ,OAAO,CAACrE,QAAQ,IAAIsE,MAAM,CAACtE,QAAQ;IAEzD,OACI1D;MAAKC,SAAS,EAAKmI,MAAM,CAAC,WAAW,CAAC;OAClCpI,6BAACqI,eAAI;MACDpI,SAAS,OAAKmI,MAAM,CAAC,aAAa,CAAG;MACrClB,QAAQ,EAAEY;OAEV9H;MAAKC,SAAS,OAAKmI,MAAM,CAAC,YAAY;OAClCpI;MAAKC,SAAS,EAAC;OACXD;MACIsI,MAAM,EAAE,EAACvE,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEwE,UAAU;MAC3BC,GAAG,EAAEzE,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEwE,UAAU;MACvBtI,SAAS,EAAKmI,MAAM,CAAC,aAAa,CAAC;MACrC,EACFpI;MACIC,SAAS,EAAKmI,MAAM,CAAC,aAAa,CAAC;OAElCrE,MAAM,CAAC0E,UAAU,CAClB,CACF,EACNzI;MAAGC,SAAS,OAAKmI,MAAM,CAAC,aAAa;uBAEjC,EACJpI;MACIC,SAAS,EAAKmI,MAAM,CAAC,mBAAmB,CAAC;2DAIzC,EACJpI,6BAAC0I,oBAAS;MACNzI,SAAS,OAAKmI,MAAM,CAAC,gBAAgB;OAErCpI,6BAACyB,gBAAK;MACFC,IAAI,EAAC,MAAM;MACX/H,IAAI,EAAC,OAAO;MACZ6H,WAAW,EAAC,OAAO;MACnBrI,KAAK,EAAEgO,MAAM,CAAC1D,KAAK;MACnBlC,QAAQ,EAAEqG,YAAY;MACtBjG,YAAY,EAAC,OAAO;MACpBgH,MAAM,EAAEd,UAAU,CAAC,OAAO,CAAC;MAC3BjG,QAAQ;MACV,EACDsG,UAAU,IACPlI,6BAACH,YAAY;MACTE,IAAI,EAAEiI,MAAM,CAACvE;MAEpB,CACO,EACZzD,6BAAC0I,oBAAS,QACN1I,6BAACoB,aAAa;MACVC,cAAc,EAAEA,cAAc;MAC9BC,qBAAqB,EACjBA,qBAAqB;MAEzBC,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;QAAA,OACbwJ,aAAa,CACT,UAAU,EACVxJ,CAAC,CAACmK,MAAM,CAACzP,KAAK,CACjB;;MAEP,EACDgP,aAAa,IACVnI,6BAACH,YAAY;MACTE,IAAI,EAAEiI,MAAM,CAACtE;MAEpB,CACO,EACZ1D,6BAAC0I,oBAAS,QACN1I,6BAAC6I,sCAAe;MACZC,MAAM,EAAC,OAAO;MACdC,QAAQ,EAAE7D;MACZ,CACM,EACZlF;MAAKC,SAAS,EAAC;OACXD;MAAKC,SAAS,EAAC;OACXD;MACI0B,IAAI,EAAC,UAAU;MACfsH,OAAO,EACH,CAAC7B,MAAM,CAAC8B,oBAAoB;MAEhChJ,SAAS,OAAKmI,MAAM,CAAC,qBAAqB,CAAG;MAC7C7G,QAAQ,EAAE,SAAVA,QAAQA;QAAA,OACJ0G,aAAa,CACT,sBAAsB,EACtB,CAACd,MAAM,CAAC8B,oBAAoB,CAC/B;;MAEP,EACFjJ;MACIC,SAAS,EAAKmI,MAAM,CAAC,kBAAkB,CAAC;2BAGxC,CACF,EACNpI,6BAACkJ,mBAAI;MACDC,EAAE,EAAC,kBAAkB;MACrBlJ,SAAS,OAAKmI,MAAM,CAAC,eAAe;0BAGjC,CACL,EAENpI;MACIC,SAAS,EAAKmI,MAAM,CAAC,WAAW,CAAC,UAAO;MACxC1G,IAAI,EAAC;gBAGA,EAET1B;MACIC,SAAS,EAAKmI,MAAM,CAAC,aAAa,CAAC;YAGnC,EACJpI,6BAACoJ,cAAG;MAACnJ,SAAS,EAAC;OACXD,6BAACqJ,cAAG;MACAC,EAAE,EAAE,CAAC;MACLC,EAAE,EAAE,CAAC;MACLC,EAAE,EAAE,EAAE;MACNvJ,SAAS,EAAC;OAET,CAAC,CAACiE,cAAc,IACblE,6BAACyJ,0BAAmB;MAChBC,QAAQ,EAAExF;OAEVlE,6BAAC2J,kBAAW;MACRC,SAAS,EACLzE,eAAe;MAEnB0E,OAAO,EAAE,SAATA,OAAOA;QAAA,OACHhF,OAAO,CAACC,GAAG,CACP,qBAAqB,CACxB;;MAELgF,KAAK,EAAC,SAAS;MACfC,IAAI,EAAC,OAAO;MACZhK,IAAI,EAAC,aAAa;MAClBiK,KAAK,EAAC,aAAa;MACnBC,cAAc,EAAE;QACZhK,SAAS,EAAKmI,MAAM,CAAC,kBAAkB,CAAC;;MAE9C,CAET,CACC,EACNpI,6BAACqJ,cAAG;MACAC,EAAE,EAAE,CAAC;MACLC,EAAE,EAAE,CAAC;MACLC,EAAE,EAAE,EAAE;MACNvJ,SAAS,EAAKmI,MAAM,CAAC,eAAe,CAAC,aAAU;MAC/CE,MAAM,EAAE,EAACvE,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEmG,QAAQ;OAEzBlK;MACIC,SAAS,EACLmI,MAAM,CAAC,oBAAoB,CAAC;MAEhCvG,OAAO,EAAE,SAATA,OAAOA;QAAA,OACHsC,UAAU,CAACQ,YAAY,CAAC;;OAG5B3E;MAAKwI,GAAG,EAAC;MAA8B,EACvCxI,oDAAgB,CACd,CACJ,CACJ,EAiBNA;MACIC,SAAS,OAAKmI,MAAM,CAAC,eAAe;OAEpCpI;MACIC,SAAS,EACLmI,MAAM,CAAC,oBAAoB,CAAC;MAEhCvG,OAAO,EAAE,SAATA,OAAOA;QAAA,OACHrH,MAAM,CAAC2P,IAAI,CACP,uCAAuC,CAC1C;;OAGLnK;MAAKwI,GAAG,EAAC;MAA+B,EACxCxI,iEAA6B,CAC3B,CACJ,EAENA;MACIC,SAAS,EAAKmI,MAAM,CAAC,eAAe,CAAC;OAErCpI;MACIC,SAAS,EACLmI,MAAM,CAAC,oBAAoB,CAAC;MAEhCvG,OAAO,EAAE,SAATA,OAAOA;QAAA,OAAQwC,kBAAkB,EAAE;;OAEnCrE;MAAKwI,GAAG,EAAC;MAA2B,EACpCxI,8DAA0B,CACxB,CACJ,CACJ,CACH,CACL;GAEb,CACI,CASI;AAEzB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrXD,oBAAe,UAACoK,MAAW;EACvB,OAAOC,MAAM,CAACC,IAAI,CAACF,MAAM,CAAC,CACrB7D,MAAM,CAAC,UAAAgE,GAAG;IAAA,OAAIH,MAAM,CAACG,GAAG,CAAC,IAAIH,MAAM,CAACG,GAAG,CAAC,KAAK,CAAC,IAAIH,MAAM,CAACG,GAAG,CAAC,KAAK,KAAK;IAAC,CACxEnE,GAAG,CAAC,UAAAmE,GAAG;IACJ,IAAIC,KAAK,CAACC,OAAO,CAACL,MAAM,CAACG,GAAG,CAAC,CAAC,EAAE;MAC5B,OAAOH,MAAM,CAACG,GAAG,CAAC,CAACnE,GAAG,CAAC,UAACsE,CAAM;QAAA,OAAQC,kBAAkB,CAACJ,GAAG,CAAC,SAAII,kBAAkB,CAACD,CAAC,CAAC;OAAE,CAAC,CAACE,IAAI,CAAC,GAAG,CAAC;;IAEvG,OAAUD,kBAAkB,CAACJ,GAAG,CAAC,SAAII,kBAAkB,CAACP,MAAM,CAACG,GAAG,CAAC,CAAC;GACvE,CAAC,CAACK,IAAI,CAAC,GAAG,CAAC;AACpB,CAAC;;ACPD,sBAAe;EACX,IAAI;IACF,IAAM3B,oBAAoB,GAAG4B,cAAc,CAACC,OAAO,CAAC9R,uBAAuB,CAAC;IAC5E,OAAO,CAACiQ,oBAAoB,GAAG8B,YAAY,CAACD,OAAO,CAAC/R,YAAY,CAAC,GAAG8R,cAAc,CAACC,OAAO,CAAC/R,YAAY,CAAC;GACzG,CAAC,OAAO0O,GAAG,EAAE;IACZ,OAAO,IAAI;;AAEjB,CAAC;;ICFYuD,GAAG,GAAkBC,KAAK,CAACC,MAAM,CAAC;EAC3CC,OAAO,EAAE7Q,QAAQ;EACjB8Q,OAAO,EAAE,CAAC;EACVC,OAAO,EAAE;IACL,cAAc,EAAE;GACnB;EACDC,gBAAgB,EAAE,SAAlBA,gBAAgBA,CAAElB,MAAM;IACpB,OAAOmB,YAAY,CAACnB,MAAM,CAAC;;CAElC,CAAC;AAEF,IAAaoB,SAAS,GAAkBP,KAAK,CAACC,MAAM,CAAC;EACjDC,OAAO,EAAE7Q,QAAQ;EACjB8Q,OAAO,EAAE,KAAK;EACdC,OAAO,EAAE;IACL,cAAc,EAAE;;CAEvB,CAAC;AACD,CAACL,GAAG,EAAEQ,SAAS,CAAC,CAACC,OAAO,CAAC,UAAAf,CAAC;EAAA,OACvBA,CAAC,CAACgB,YAAY,CAACC,OAAO,CAACzM,GAAG,CACtB,UAAC0M,MAAW;IACR,IAAMC,KAAK,GAAGC,cAAc,EAAE;IAC9B,IAAID,KAAK,EAAE;MACPD,MAAM,CAACP,OAAO,CAACU,aAAa,eAAaF,KAAO;MAChDd,YAAY,CAACiB,OAAO,CAAC,oBAAoB,EAAEC,0BAAgB,CAAC,IAAIC,IAAI,EAAE,EAAE,KAAK,EAAC,qBAAqB,CAAC,CAAC;;IAEzG,OAAON,MAAM;GAChB,EACD,UAAClE,KAAU;IAAA,OAAK3C,OAAO,CAACE,MAAM,CAACyC,KAAK,CAAC;IACxC;AAAA,EACJ;AACA,CAACsD,GAAG,EAAEQ,SAAS,CAAC,CAACC,OAAO,CAAC,UAAAf,CAAC;EAAA,OACvBA,CAAC,CAACgB,YAAY,CAACS,QAAQ,CAACjN,GAAG,CACvB,UAAAiN,QAAQ;IACJ,OAAOA,QAAQ;GAClB,EACD,UAAAzE,KAAK;IACD7C,OAAO,CAACC,GAAG,CAAC;MAAE4C,KAAK,EAALA;KAAO,CAAC;IACtB,IAAIA,KAAK,CAACyE,QAAQ,CAACC,MAAM,KAAK,GAAG,EAAE;MAC/B/B,MAAM,CAACC,IAAI,CAACS,YAAY,CAAC,CAACU,OAAO,CAAC,UAAClB,GAAG;QAClC,IAAI,CAACA,GAAG,CAAC5P,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAOoQ,YAAY,CAACR,GAAG,CAAC;OAC/D,CAAC;MACF,IAAM8B,SAAS,GAAGtB,YAAY,CAACD,OAAO,CAAC,YAAY,CAAW;MAC9D,IAAMwB,KAAK,GAAGvB,YAAY,CAACD,OAAO,CAAC,OAAO,CAAW;MACrD,IAAM9E,QAAQ,GAAGxL,MAAM,CAACC,QAAQ,CAACO,QAAQ;MACzC,IAAGqR,SAAS,EAAC;QACXE,eAAe,CAAC,sBAAsB,EAAE;UAACC,OAAO,EAAEH,SAAS;UAAEI,MAAM,EAAEzG,QAAQ;UAAEsG,KAAK,EAAEA;SAAM,CAAC;QAC7FC,sBAAsB,CAAC,CAAC,CAAC,CAAC;;MAE5BxB,YAAY,CAAC2B,UAAU,CAAC3T,YAAY,CAAC;MACrC8R,cAAc,CAAC6B,UAAU,CAAC3T,YAAY,CAAC;MACvC8R,cAAc,CAAC6B,UAAU,CAAC1T,uBAAuB,CAAC;MAClD+R,YAAY,CAAC2B,UAAU,CAAC,YAAY,CAAC;MACrC3B,YAAY,CAAC2B,UAAU,CAAC,OAAO,CAAC;MAChClS,MAAM,CAACC,QAAQ,CAACC,IAAI,GAAG,QAAQ;;IAEnC,IAAIgN,KAAK,CAACyE,QAAQ,CAACC,MAAM,IAAI,GAAG,EAAE;MAC9BrB,YAAY,CAAC2B,UAAU,CAAC3T,YAAY,CAAC;MACrCgS,YAAY,CAAC2B,UAAU,CAAC,YAAY,CAAC;MACrC3B,YAAY,CAAC2B,UAAU,CAAC,OAAO,CAAC;MAChClS,MAAM,CAACC,QAAQ,CAACC,IAAI,GAAG,QAAQ;;IAEnC,OAAOqK,OAAO,CAACE,MAAM,CAACyC,KAAK,CAAC;GAC/B,CACJ;AAAA,EACJ;;ACpED,IAAMiF,WAAW,GAAMrS,QAAQ,iBAAc;AAC7C,IAAMsS,QAAQ,GAAMtS,QAAQ,cAAW;AACvC,AAEA,IAAMuS,YAAY,GAAMvS,QAAQ,cAAW;AAE3C,AAEO,IAAMwS,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,IAAS;EAAA,OAAK/B,GAAG,CAACgC,IAAI,CAAI1S,QAAQ,qCAAkCyS,IAAI,CAAC;AAAA;AAE/G,AAAO,IAAME,KAAK,GAAG,SAARA,KAAKA,CAAIF,IAAS;EAAA,OAAK/B,GAAG,CAACgC,IAAI,CAAIL,WAAW,aAAUI,IAAI,CAAC;AAAA;AAE1E,AAAO,IAAMG,UAAU,GAAG,SAAbA,UAAUA,CAAIrB,KAAa;EAAA,OACpCb,GAAG,CAACgC,IAAI,CAAIL,WAAW,kBAAe;IAAEd,KAAK,EAALA;GAAO,CAAC;AAAA;AAEpD,IAAasB,OAAO,GAAG,SAAVA,OAAOA;EAAA,OAASnC,GAAG,CAACoC,GAAG,CAAIT,WAAW,UAAO,CAAC;AAAA;AAE3D,AAAO,IAAMU,cAAc,GAAG,SAAjBA,cAAcA,CAAIN,IAAS;EAAA,OACpC/B,GAAG,CAACgC,IAAI,CAAIL,WAAW,sBAAmBI,IAAI,CAAC;AAAA;AAEnD,AAAO,IAAMO,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,MAAc;EAAA,OAC7CvC,GAAG,CAACoC,GAAG,CAAIT,WAAW,gCAA6B;IAAEvC,MAAM,EAAE;MAAEmD,MAAM,EAANA;;GAAU,CAAC;AAAA;AAE9E,AAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAI3B,KAAa,EAAEtB,GAAW;EAAA,OACtDS,GAAG,CAACgC,IAAI,CAAIL,WAAW,uBAAoB;IAAEd,KAAK,EAALA,KAAK;IAAEtB,GAAG,EAAHA;GAAK,CAAC;AAAA;AAE9D,AAAO,IAAMkD,aAAa,GAAG,SAAhBA,aAAaA,CAAIV,IAAS;EAAA,OACnC/B,GAAG,CAACgC,IAAI,CAAIL,WAAW,qBAAkBI,IAAI,CAAC;AAAA;AAElD,AAKO,IAAMW,eAAe,GAAG,SAAlBA,eAAeA,CAAIhM,IAAS,EAAEvD,IAAS;EAAA,OAChD6M,GAAG,CAACgC,IAAI,CAAIJ,QAAQ,kBAAezO,IAAI,EAAE;IAAEiM,MAAM,EAAE;MAAE1I,IAAI,EAAJA;;GAAQ,CAAC;AAAA;AAElE,AAGO,IAAMiM,iBAAiB,GAAG,SAApBA,iBAAiBA;EAAA,OAC1B3C,GAAG,CAACoC,GAAG,CAAIT,WAAW,iBAAc,CAAC;AAAA;AAEzC,AAAO,IAAMiB,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIzP,IAAS;EAAA,OAAK6M,GAAG,CAACgC,IAAI,CAAI1S,QAAQ,8BAA2B6D,IAAI,CAAC;AAAA;AAEtG,AAAO,IAAM0P,cAAc,GAAG,SAAjBA,cAAcA,CAAId,IAAqB;EAAA,OAAK/B,GAAG,CAACgC,IAAI,CAAIL,WAAW,sBAAmBI,IAAI,CAAC;AAAA;AAExG,AAMO,IAAMK,GAAG,GAAG,SAANA,GAAGA,CAAI7G,MAAW;EAAA,OAC3ByE,GAAG,CAACoC,GAAG,CAAIP,YAAY,mBAAgB;IAAEzC,MAAM,EAAE7D;GAAQ,CAAC;AAAA;AAE9D,AAAO,IAAMuH,MAAM,GAAG,SAATA,MAAMA,CAAIC,EAAU,EAAEC,YAAqB;EAAA,OACpDhD,GAAG,UAAO,CAAI6B,YAAY,oBAAekB,EAAE,EAAI;IAC3C3D,MAAM,EAAE;MAAE4D,YAAY,EAAZA;;GACb,CAAC;AAAA;AAEN,AAAO,IAAMC,UAAU,GAAG,SAAbA,UAAUA;EAAA,OAASjD,GAAG,CAACoC,GAAG,CAAIP,YAAY,iBAAc,CAAC;AAAA;;AC9CtE,IAAMhJ,WAAW,GAAuB;EACpCJ,KAAK,EAAE,EAAE;EACT6D,OAAO,EAAE;CACZ;AAED,IAAM4G,SAAS,GAAG,GAAG;AACrB,IAAMC,KAAK,GAAG,QAAQ;AACtB,IAAMC,KAAK,GAAG,QAAQ;AAEtB,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA;;EACnB,IAAMC,KAAK,GAAG,IAAIC,eAAe,CAACC,0BAAW,EAAE,CAACC,MAAM,CAAC;EACvD,IAAM5C,KAAK,GAAGyC,KAAK,CAAClB,GAAG,CAAC,OAAO,CAAC;EAChC,IAAM7C,GAAG,IAAAmE,UAAA,GAAGJ,KAAK,CAAClB,GAAG,CAAC,KAAK,CAAC,YAAAsB,UAAA,GAAI,EAAE;EAClC,IAAMpK,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAMoK,QAAQ,GAAGC,0BAAW,EAAE;EAC9B,IAAAC,SAAA,GAAkCC,cAAQ,CAAU,KAAK,CAAC;IAAnDC,SAAS,GAAAF,SAAA;IAAEG,YAAY,GAAAH,SAAA;EAC9B,IAAMI,MAAM,GAAGrK,iBAAW,CAAC;IACvBoK,YAAY,CAAC,CAACD,SAAS,CAAC;GAC3B,EAAE,CAACA,SAAS,CAAC,CAAC;EACf,IAAAG,UAAA,GAAkDJ,cAAQ,CAAU,KAAK,CAAC;IAAnEK,iBAAiB,GAAAD,UAAA;IAAEE,oBAAoB,GAAAF,UAAA;EAC9C,IAAAG,UAAA,GACIP,cAAQ,CAAU,KAAK,CAAC;IADrBQ,oBAAoB,GAAAD,UAAA;IAAEE,uBAAuB,GAAAF,UAAA;EAEpD,IAAAG,UAAA,GAA0CV,cAAQ,CAAkB;MAChEjD,KAAK,EAAE,EAAE;MACTnI,QAAQ,EAAE,EAAE;MACZ+L,eAAe,EAAE,EAAE;MACnBhM,KAAK,EAAE,EAAE;MACT8J,MAAM,EAAE;KACX,CAAC;IANKvG,aAAa,GAAAwI,UAAA;IAAEE,gBAAgB,GAAAF,UAAA;EAQtC,IAAAG,UAAA,GAAkCb,cAAQ,CAAU,IAAI,CAAC;IAAlDc,SAAS,GAAAD,UAAA;IAAEE,YAAY,GAAAF,UAAA;EAC9B,IAAAnL,mBAAA,GAA6BC,yCAAkB,EAAE;IAAzCC,gBAAgB,GAAAF,mBAAA,CAAhBE,gBAAgB;EAExBoL,eAAS,CAAC;IACN9R,QAAQ,CAAC8D,KAAK,GAAGsM,KAAK;IACtB,IAAMvC,KAAK,GAAGC,cAAc,EAAE;IAC9B,IAAI,CAAC,CAACD,KAAK,EAAE8C,QAAQ,CAACT,SAAS,CAAC;GACnC,EAAE,EAAE,CAAC;EAEN,IAAM6B,qBAAqB,GAAGnL,iBAAW,WAAQmI,IAAS;IAAA;;QA0BtDzI,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAzB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA+N,KAAA,GAAAC,MAAA,aAEtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACMqI,cAAc,CAACN,IAAI,CAAC,EAAA3F,IAAA;UAC1BuH,QAAQ,CAACR,KAAK,CAAC;UACf7J,QAAQ,CACJhC,QAAQ,CAAC;YACLZ,IAAI,EAAE,SAAS;YACfwO,OAAO,EAAE;WACZ,CAAC,CACL;;OACJ,YAAQzI,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EACH,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KACzB2F,GAAG,CAACyI,OAAO,IACX;SACP,CAAC,CACL;QACDnF,YAAY,CAAC2B,UAAU,CAAC3T,YAAY,CAAC;QACrC8R,cAAc,CAAC6B,UAAU,CAAC3T,YAAY,CAAC;OAC1C;MAAA,OAAAgM,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA,CAAAiJ,MAAA,IAAAA,MAAA,CAAAL,KAAA;KAGJ,QAAAvR,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,EAAE,CAAC;EAEN,IAAM6R,sBAAsB,GAAG1L,iBAAW,WAC/BiH,KAAa,EAAEtB,GAAW;IAAA;;QAkB7BjG,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAjB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAsO,MAAA,GAAAN,MAAA,aAEtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkBwI,eAAe,CAAC3B,KAAK,EAAEtB,GAAG,CAAC,EAAAnD,IAAA,WAAvChC,GAAG;UAAA,IACLA,GAAG,CAAC2H,IAAI;YACR2C,gBAAgB,CAAAc,QAAA,KACTxJ,aAAa;cAChB6E,KAAK,EAAEA,KAAK;cACZpI,KAAK,EAAE2B,GAAG,CAAC2H;cACd,CAAC;;YAEF8C,YAAY,CAAC,KAAK,CAAC;;;OAE1B,cAAa;QACVA,YAAY,CAAC,KAAK,CAAC;OACtB;MAAA,OAAA9K,OAAA,CAAAC,OAAA,CAAAuL,MAAA,IAAAA,MAAA,CAAAnJ,IAAA,GAAAmJ,MAAA,CAAAnJ,IAAA,CAAAqJ,MAAA,IAAAA,MAAA,CAAAF,MAAA;KAGJ,QAAA9R,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KACD,EAAE,CACL;EAED,IAAMiS,oBAAoB,GAAG9L,iBAAW,WAAQmI,IAAS;IAAA;;QA0BrDzI,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAzB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA0O,MAAA,GAAAV,MAAA,aAEtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACMyI,aAAa,CAAA+C,QAAA,KAAMzD,IAAI;UAAExC,GAAG,EAAEA;UAAe,CAAC,EAAAnD,IAAA;UACpDuH,QAAQ,CAACR,KAAK,CAAC;UACf7J,QAAQ,CACJhC,QAAQ,CAAC;YACLZ,IAAI,EAAE,SAAS;YACfwO,OAAO,EAAE;WACZ,CAAC,CACL;;OACJ,YAAQzI,GAAG,EAAE;QAAA,IAAAmJ,cAAA,EAAAC,mBAAA;QACVvM,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EACH,EAAAU,cAAA,GAAAnJ,GAAG,CAAC0E,QAAQ,cAAAyE,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7D,IAAI,cAAA8D,mBAAA,uBAAlBA,mBAAA,CAAoB/O,KAAK,KACzB2F,GAAG,CAACyI,OAAO,IACX;SACP,CAAC,CACL;QACDnF,YAAY,CAAC2B,UAAU,CAAC3T,YAAY,CAAC;QACrC8R,cAAc,CAAC6B,UAAU,CAAC3T,YAAY,CAAC;OAC1C;MAAA,OAAAgM,OAAA,CAAAC,OAAA,CAAA2L,MAAA,IAAAA,MAAA,CAAAvJ,IAAA,GAAAuJ,MAAA,CAAAvJ,IAAA,CAAA0J,MAAA,IAAAA,MAAA,CAAAH,MAAA;KAGJ,QAAAlS,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,EAAE,CAAC;EAEN,IAAMkG,YAAY,GAAGC,iBAAW;IAAA;MAC5B,IAAI,CAACF,gBAAgB,EAAE;QACnBG,OAAO,CAACC,GAAG,CAAC,6BAA6B,CAAC;QAC1C,OAAAC,OAAA,CAAAC,OAAA;;MACH,OAAAD,OAAA,CAAAC,OAAA,CACoBN,gBAAgB,CAAC,YAAY,CAAC;KAEtD,QAAAjG,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,CAACiG,gBAAgB,CAAC,CAAC;EAEtB,IAAMQ,YAAY,GAAGN,iBAAW,CAAC,cAAQ,EAAE,EAAE,CAAC;EAE9CkL,eAAS,CAAC;IACNQ,sBAAsB,CAACzE,KAAe,EAAEtB,GAAa,CAAC;GACzD,EAAE,EAAE,CAAC;EAEN,OAAO;IACH1G,WAAW,EAAXA,WAAW;IACXkM,qBAAqB,EAArBA,qBAAqB;IACrBO,sBAAsB,EAAtBA,sBAAsB;IACtBV,SAAS,EAATA,SAAS;IACTc,oBAAoB,EAApBA,oBAAoB;IACpB3B,SAAS,EAATA,SAAS;IACTE,MAAM,EAANA,MAAM;IACNE,iBAAiB,EAAjBA,iBAAiB;IACjBC,oBAAoB,EAApBA,oBAAoB;IACpBE,oBAAoB,EAApBA,oBAAoB;IACpBC,uBAAuB,EAAvBA,uBAAuB;IACvB5K,YAAY,EAAZA,YAAY;IACZO,YAAY,EAAZA,YAAY;IACZ8B,aAAa,EAAbA;GACH;AACL,CAAC;;AC/JD,IAAMA,aAAa,GAAG;EAClBvD,KAAK,EAAE,EAAE;EACT6D,OAAO,EAAE;CACZ;AAED,IAAMyJ,oBAAoB,GAAGvN,UAAU,CAAC;EACpCC,KAAK,EAAED,UAAU,EAAE,CAACC,KAAK,CAAC,kBAAkB,CAAC,CAAC7B,QAAQ,CAAC,mBAAmB;CAC7E,CAAC;AAMF,IAAMoP,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAlR,IAAA;MAAMiE,MAAM,GAAAjE,IAAA,CAANiE,MAAM;EACjC,IAAAkN,kBAAA,GAII5C,iBAAiB,EAAE;IAHnB0B,qBAAqB,GAAAkB,kBAAA,CAArBlB,qBAAqB;IACrBpL,YAAY,GAAAsM,kBAAA,CAAZtM,YAAY;IACZO,YAAY,GAAA+L,kBAAA,CAAZ/L,YAAY;EAEhB,OACIlF,6BAAC+G,aAAM;IACHC,aAAa,EAAEA,aAAa;IAC5BkK,kBAAkB;IAClBjK,gBAAgB,EAAE8J,oBAAoB;IACtC7J,QAAQ,YAAQC,MAAM;MAAA;+BACYxC,YAAY,EAAE,EAAAyC,IAAA,WAAtCC,eAAe;UACrB,IAAI,CAACA,eAAe,EAAE;UACtBF,MAAM,CAACG,OAAO,GAAGD,eAAe;UAChC0I,qBAAqB,CAAC5I,MAAM,CAAC;;OAChC,QAAA1I,CAAA;QAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;KAEA,UAAAkJ,WAAW;IACR,IACIC,YAAY,GAKZD,WAAW,CALXC,YAAY;MACZE,YAAY,GAIZH,WAAW,CAJXG,YAAY;MACZX,MAAM,GAGNQ,WAAW,CAHXR,MAAM;MACNY,OAAO,GAEPJ,WAAW,CAFXI,OAAO;MACPC,MAAM,GACNL,WAAW,CADXK,MAAM;IAEV,OACIhI;MAAKC,SAAS,OAAKmI,MAAM,CAAC,WAAW;OACjCpI;MAAKC,SAAS,OAAKmI,MAAM,CAAC,aAAa;OACnCpI;MAAKC,SAAS,OAAKmI,MAAM,CAAC,YAAY;OAClCpI;MAAKC,SAAS,EAAC;OACXD;MACIwI,GAAG,EAAEzE,MAAM,CAACwE,UAAU;MACtBtI,SAAS,EAAKmI,MAAM,CAAC,aAAa,CAAC;MACrC,EACFpI;MACIC,SAAS,EAAKmI,MAAM,CAAC,aAAa,CAAC;OAElCrE,MAAM,CAAC0E,UAAU,CAClB,CACF,EACNzI;MAAGC,SAAS,EAAKmI,MAAM,CAAC,aAAa,CAAC;yBAElC,EACJpI;MACIC,SAAS,EAAKmI,MAAM,CAAC,iBAAiB,CAAC;6CAGvC,EACJpI;MAAKC,SAAS,EAAC;OACXD,6BAACyB,gBAAK;MACFC,IAAI,EAAC,MAAM;MACX/H,IAAI,EAAC,OAAO;MACZoU,EAAE,EAAC,OAAO;MACVvM,WAAW,EAAC,aAAa;MACzBD,QAAQ,EAAEqG,YAAY;MACtBzO,KAAK,EAAEgO,MAAM,CAAC1D;MAChB,EACDsE,OAAO,CAACtE,KAAK,IAAIuE,MAAM,CAACvE,KAAK,IAC1BzD,6BAACH,YAAY;MAACE,IAAI,EAAEiI,MAAM,CAACvE;MAC9B,CACC,EACNzD,6BAACkJ,mBAAI;MACDC,EAAE,EAAC,QAAQ;MACXlJ,SAAS,EAAKmI,MAAM,CAAC,eAAe,CAAC;yBAGlC,EACPpI,6BAAC6I,sCAAe;MACZC,MAAM,EAAC,YAAY;MACnBC,QAAQ,EAAE7D;MACZ,EACFlF,6BAACqJ,cAAG;MAACpJ,SAAS,EAAC;OACXD;MACIC,SAAS,EAAKmI,MAAM,CAAC,WAAW,CAAC,UAAO;MACxCvG,OAAO,EAAE,SAATA,OAAOA;QAAA,OAAQiG,YAAY,EAAE;;kBAGxB,CACP,CACJ,CACJ,CACJ;GAEb,CACI;AAEjB,CAAC;;AC9GD,IAAMqJ,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAItW,GAAW;EACjC,IAAMuW,YAAY,GAAG,+BAA+B;EACpD,IAAMC,OAAO,GAAGD,YAAY,KAAK3W,QAAQ,CAAC6W,MAAM;EAChD,IAAG,CAACzW,GAAG,EAAE,OAAO,EAAE;EAClB,IAAIC,WAAW,IAAI,CAACuW,OAAO,IAAKxW,GAAG,CAAC0W,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO1W,GAAG;EAClE,IAAGA,GAAG,CAAC0W,UAAU,CAAC,GAAG,CAAC,EAAE,aAAUF,OAAO,GAAGD,YAAY,GAAG/T,sBAAsB,IAAGxC,GAAG,CAAE,KACpF,QAAUwW,OAAO,GAAGD,YAAY,GAAG/T,sBAAsB,UAAIxC,GAAG;AACzE,CAAC;;ACGD,IAAM2W,mBAAmB,GAAGhO,UAAU,CAAC;EACnCE,QAAQ,EAAEF,UAAU,EAAE,CAAC5B,QAAQ,CAAC,0BAA0B,CAAC;EAC3D6N,eAAe,EAAEjM,UACN,EAAE,CACR5B,QAAQ,CAAC,8BAA8B,CAAC,CACxC6P,IAAI,CAAC,UAAU,EAAE,wBAAwB,EAAE;IACxC,OAAO,IAAI,CAACC,MAAM,CAAChO,QAAQ,KAAK,IAAI,CAACgO,MAAM,CAACjC,eAAe;GAC9D;CACR,CAAC;AAEF,IAAMkC,kBAAkB,GAAG,SAArBA,kBAAkBA;EACpB,IAAAV,kBAAA,GAQI5C,iBAAiB,EAAE;IAPnBuB,SAAS,GAAAqB,kBAAA,CAATrB,SAAS;IACTc,oBAAoB,GAAAO,kBAAA,CAApBP,oBAAoB;IACpBvB,iBAAiB,GAAA8B,kBAAA,CAAjB9B,iBAAiB;IACjBC,oBAAoB,GAAA6B,kBAAA,CAApB7B,oBAAoB;IACpBE,oBAAoB,GAAA2B,kBAAA,CAApB3B,oBAAoB;IACpBC,uBAAuB,GAAA0B,kBAAA,CAAvB1B,uBAAuB;IACvBvI,aAAa,GAAAiK,kBAAA,CAAbjK,aAAa;EAQjB,OACIhH,6BAAC+G,aAAM;IACHC,aAAa,EAAEA,aAAa;IAC5BkK,kBAAkB;IAClBjK,gBAAgB,EAAEuK,mBAAmB;IACrCtK,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,MAAM;MACZuJ,oBAAoB,CAACvJ,MAAM,CAAC;;KAG/B,UAAAQ,WAAW;IACR,IAAQM,aAAa,GACjBN,WAAW,CADPM,aAAa;MAAEH,YAAY,GAC/BH,WAAW,CADQG,YAAY;MAAEC,OAAO,GACxCJ,WAAW,CADsBI,OAAO;MAAEC,MAAM,GAChDL,WAAW,CAD+BK,MAAM;MAAEb,MAAM,GACxDQ,WAAW,CADuCR,MAAM;IAE5D,OACInH,6BAACoJ,cAAG;MAACnJ,SAAS,OAAKmI,MAAM,CAAC,WAAW;OACjCpI,6BAACqJ,cAAG;MAACpJ,SAAS,EAAC;OACXD;MAAKC,SAAS,OAAKmI,MAAM,CAAC,aAAa;OACnCpI;MAAKC,SAAS,OAAKmI,MAAM,CAAC,YAAY;OAClCpI;MACIwI,GAAG,OAAK2I,gBAAgB,CACpB,kCAAkC,CACnC;MACHlR,SAAS,OAAKmI,MAAM,CAAC,qBAAqB;MAC5C,EACFpI;MAAGC,SAAS,OAAKmI,MAAM,CAAC,aAAa;wBAEjC,EACJpI;MAAKC,SAAS,EAAC;OACV2P,SAAS,GACN5P,6BAACA,cAAK,CAAC8G,QAAQ,QACX9G,6BAAC0I,oBAAS;MACNzI,SAAS,OAAKmI,MAAM,CAAC,gBAAgB;OAErCpI,6BAACyB,gBAAK;MACFmQ,QAAQ;MACRlQ,IAAI,EAAC,MAAM;MACX/H,IAAI,EAAC,OAAO;MACZ6H,WAAW,EAAC,OAAO;MACnBrI,KAAK,EAAEgO,MAAM,CAAC1D,KAAK;MACnB9B,YAAY,EAAC,OAAO;MACpBC,QAAQ;MACR3B,SAAS,OAAKmI,MAAM,CAAC,OAAO;MAC9B,CACM,EACZpI;MACIC,SAAS,OAAKmI,MAAM,CAAC,gBAAgB;OAErCpI,6BAACoB,aAAa;MACVC,cAAc,EACV8N,iBAAiB;MAErB7N,qBAAqB,EAAE,SAAvBA,qBAAqBA;QAAA,OACjB8N,oBAAoB,CAChB,CAACD,iBAAiB,CACrB;;MAEL5N,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;QAAA,OACbwJ,aAAa,CACT,UAAU,EACVxJ,CAAC,CAACmK,MAAM,CAACzP,KAAK,CACjB;;MAEP,EACD4O,OAAO,CAACrE,QAAQ,IACbsE,MAAM,CAACtE,QAAQ,IACX1D,6BAACH,YAAY;MACTE,IAAI,EACAiI,MAAM,CAACtE;MAGlB,CACH,EACN1D;MACIC,SAAS,OAAKmI,MAAM,CAAC,gBAAgB;OAErCpI,6BAACoB,aAAa;MACVI,WAAW,EAAC,kBAAkB;MAC9BH,cAAc,EACViO,oBAAoB;MAExBhO,qBAAqB,EAAE,SAAvBA,qBAAqBA;QAAA,OACjBiO,uBAAuB,CACnB,CAACD,oBAAoB,CACxB;;MAEL/N,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;QAAA,OACbwJ,aAAa,CACT,iBAAiB,EACjBxJ,CAAC,CAACmK,MAAM,CAACzP,KAAK,CACjB;;MAEP,EACD4O,OAAO,CAAC0H,eAAe,IACpBzH,MAAM,CAACyH,eAAe,IAClBzP,6BAACH,YAAY;MACTE,IAAI,EACAiI,MAAM,CAACyH;MAGlB,CACH,CACO,GAEjBzP,6BAACA,cAAK,CAAC8G,QAAQ,QACX9G;MACIC,SAAS,EAAKmI,MAAM,CAAC,iBAAiB,CAAC;qCAGvC,EACJpI;MAAGC,SAAS,EAAC;gHAKT,CAEX,CACC,EAEL2P,SAAS,IACN5P,6BAACqJ,cAAG;MAACpJ,SAAS,EAAC;OACXD;MACIC,SAAS,EAAKmI,MAAM,CAAC,WAAW,CAAC,SAAIA,MAAM,CAAC,aAAa,CAAC,UAAO;MACjEvG,OAAO,EAAE,SAATA,OAAOA;QAAA,OAAQiG,YAAY,EAAE;;4BAGxB,CAEhB,CAgBC,CACJ,CACJ,CACJ;GAEb,CACI;AAEjB,CAAC;;AC1LD,IAAM+J,UAAU,GAAMvX,QAAQ,gBAAa;AAE3C,AAAO,IAAMwX,iBAAiB,GAAG,SAApBA,iBAAiBA;EAAA,OAAS9G,GAAG,CAACoC,GAAG,CAAIyE,UAAU,cAAW,CAAC;AAAA;AAExE,AAAO,IAAM1E,SAAO,GAAG,SAAVA,OAAOA;EAAA,OAASnC,GAAG,CAACoC,GAAG,CAAIyE,UAAU,UAAO,CAAC;AAAA;;ACMnD,IAAME,UAAU,GAAG;EACtBC,IAAI,EAAE;IACFtI,QAAQ,EAAE5O,WAAW,GAAG,sCAAsC,GAAG,sCAAsC;IACvGmX,SAAS,EAAE,0CAA0C;IACrDC,WAAW,EAAE;GAChB;EACDC,KAAK,EAAE;IACHC,aAAa,EAAE,gBAAgB;IAC/BC,sBAAsB,EAAE;GAC3B;EACDC,MAAM,EAAE;IACJC,aAAa,EAAE;MACXC,cAAc,EAAE,SAAhBA,cAAcA,CAAGC,KAAe,EAAEvC,OAAe,EAAEwC,WAAgB;QAC/D,IAAIA,WAAW,EAAE;UACb;;QAEJ,QAAQD,KAAK;UACT,KAAKE,oBAAQ,CAACC,KAAK;YACf/N,OAAO,CAAC6C,KAAK,CAACwI,OAAO,CAAC;YACtB;UACJ,KAAKyC,oBAAQ,CAACE,IAAI;YACdhO,OAAO,CAACiO,IAAI,CAAC5C,OAAO,CAAC;YACrB;UACJ,KAAKyC,oBAAQ,CAACI,OAAO;YACjBlO,OAAO,CAACmO,KAAK,CAAC9C,OAAO,CAAC;YACtB;UACJ,KAAKyC,oBAAQ,CAACM,OAAO;YACjBpO,OAAO,CAACqO,IAAI,CAAChD,OAAO,CAAC;YACrB;UACJ;YACI;;;;;CAKvB;;AC9CD,IAAMiD,UAAU,GAAG,SAAbA,UAAUA,CAAIC,QAAgB;EAChC,IAAI,CAACA,QAAQ,IAAI,CAACA,QAAQ,CAAC9M,IAAI,EAAE,EAAE,OAAO,EAAE;EAC5C,OAAUhM,QAAQ,6BAAwB8Y,QAAQ;AACtD,CAAC;;ACJD,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAI1Z,IAAY;EAAA,IAAA2Z,qBAAA;EAAA,OAChC,EAAAA,qBAAA,GAAAtV,QAAQ,CAACuV,MAAM,CAACtY,KAAK,CAAC,WAAW,GAAGtB,IAAI,GAAG,kBAAkB,CAAC,cAAA2Z,qBAAA,uBAA9DA,qBAAA,CAAgEE,GAAG,EAAE,KAAI,EAAE;AAAA,CAC5E;;AC8CH,IAAM3P,aAAW,GAAc;EAC3BJ,KAAK,EAAE,EAAE;EACTC,QAAQ,EAAE,EAAE;EACZ4D,OAAO,EAAE,EAAE;EACX3D,UAAU,EAAE,KAAK;EACjBsF,oBAAoB,EAAE,CAAC,CAAC4B,cAAc,CAACC,OAAO,CAAC9R,uBAAuB;CACzE;AAGD,IAAMya,gBAAgB,GAAG,OAAO;AAChC,IAAMC,gBAAgB,GAAG,OAAO;AAChC,IAAMC,cAAc,GAAG,aAAa;AACpC,IAAMC,eAAe,GAAG,SAAS;AACjC,IAAMC,iBAAiB,GAAG,gBAAgB;AAC1C,IAAMC,oBAAoB,GAAG,eAAe;AAC5C,IAAM1F,OAAK,GAAG,QAAQ;AAEtB,IAAM2F,QAAQ,GAAG,SAAXA,QAAQA;EACV,IAAMzP,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAMoK,QAAQ,GAAGC,0BAAW,EAAE;EAC9B,IAAAC,SAAA,GAAkCC,cAAQ,CAAU,KAAK,CAAC;IAAnDC,SAAS,GAAAF,SAAA;IAAEG,YAAY,GAAAH,SAAA;EAC9B,IAAMmF,aAAa,GAAGC,sBAAW,CAC7B,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACC,MAAM,CAACH,aAAa;IAC7C;EACD,IAAA9E,UAAA,GAA4CJ,cAAQ,CAAS,EAAE,CAAC;IAAzD5K,cAAc,GAAAgL,UAAA;IAAEkF,iBAAiB,GAAAlF,UAAA;EACxC,IAAAG,UAAA,GAAkDP,cAAQ,CAAS,EAAE,CAAC;IAA/DuF,iBAAiB,GAAAhF,UAAA;IAAEiF,oBAAoB,GAAAjF,UAAA;EAC9C,IAAAG,UAAA,GAA4CV,cAAQ,CAAS,EAAE,CAAC;IAAzD1K,cAAc,GAAAoL,UAAA;IAAE+E,iBAAiB,GAAA/E,UAAA;EACxC,IAAMgF,QAAQ,GAAGP,sBAAW,CAAC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACC,MAAM,CAACM,eAAe;IAAC;EAC1E,IAAMrK,MAAM,GAAG,IAAImE,eAAe,CAAC9T,QAAQ,CAACgU,MAAM,CAAC;EACnD,IAAMiG,cAAc,GAAGtK,MAAM,CAACgD,GAAG,CAAC,MAAM,CAAC,KAAK,WAAW;EACzD,IAAMuH,cAAc,GAAGvK,MAAM,CAACgD,GAAG,CAAC,OAAO,CAAC;EAC1C,IAAMwH,WAAW,GAAGxK,MAAM,CAACgD,GAAG,CAAC,aAAa,CAAC;EAC7C,IAAAuC,UAAA,GAAmDb,cAAQ,CAAU,KAAK,CAAC;IAApE+F,eAAe,GAAAlF,UAAA;EACtB,IAAAmF,UAAA,GAA4BhG,cAAQ,CAAU;MAC1CrG,UAAU,EAAE,EAAE;MACdF,UAAU,EAAE,EAAE;MACd2B,QAAQ,EAAE;KACb,CAAC;IAJKnG,MAAM,GAAA+Q,UAAA;IAAEC,SAAS,GAAAD,UAAA;EAMxB,IAAAE,UAAA,GAAwClG,cAAQ,CAAM,IAAI,CAAC;IAApDmG,YAAY,GAAAD,UAAA;IAAEE,eAAe,GAAAF,UAAA;EACpC,IAAM/F,MAAM,GAAGrK,iBAAW,CAAC;IACvBoK,YAAY,CAAC,CAACD,SAAS,CAAC;GAC3B,EAAE,CAACA,SAAS,CAAC,CAAC;EACf,IAAAoG,UAAA,GAA4CrG,cAAQ,CAAU,KAAK,CAAC;IAA7DzN,cAAc,GAAA8T,UAAA;IAAEnR,iBAAiB,GAAAmR,UAAA;EACxCrF,eAAS,CAAC;IACN9R,QAAQ,CAAC8D,KAAK,GAAGsM,OAAK;IACtB,IAAMgH,SAAS,GAAG/B,cAAc,CAAC,YAAY,CAAC;IAC9C,IAAI+B,SAAS,EAAE;MACX,IAAM3I,MAAM,GAAGjS,MAAM,CAACC,QAAQ,CAACO,QAAQ;MACvC+P,YAAY,CAACiB,OAAO,CAACjT,YAAY,EAAEqc,SAAS,CAAC;MAC7CpX,QAAQ,CAACuV,MAAM,4BAAyB9G,MAAM,CAAC9R,QAAQ,CAAC,WAAW,CAAC,GAAG8R,MAAM,GAAG,iBAAiB,qDAAiD;MAClJzO,QAAQ,CAACuV,MAAM,GACX,8DAA8D;MAClE,IAAI,CAAC,CAACqB,WAAW,EAAE;QACf,OAAOjG,QAAQ,CAAC,aAAa,CAAC;;;IAGtC,IAAM9C,KAAK,GAAGC,cAAc,EAAE;IAC9B,IAAI,CAAC,CAACD,KAAK,EAAE8C,QAAQ,CAAC,GAAG,CAAC;IAC1B0G,aAAa,EAAE;GAClB,EAAE,CAACT,WAAW,CAAC,CAAC;EAEjB,IAAMU,uBAAuB,GAAG,SAA1BA,uBAAuBA;IACzBvK,YAAY,CAAC2B,UAAU,CAAC3T,YAAY,CAAC;IACrC8R,cAAc,CAAC6B,UAAU,CAAC3T,YAAY,CAAC;IACvCgS,YAAY,CAAC2B,UAAU,CAAC,YAAY,CAAC;GAExC;EAEDoD,eAAS,CAAC;IACN,IAAI4E,cAAc,IAAIC,cAAc,IAAI,EAAE,EAAE;MACxCY,qBAAqB,EAAE;;GAE9B,EAAE,EAAE,CAAC;EAEN,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA;IACxB,IAAI,CAAC1a,WAAW,EAAE;MACd,IAAM2a,YAAY,2EAAyE9K,kBAAkB,CAAC,0DAA0D,CAAC,mBAAc,sBAAwB;MAC/MnQ,MAAM,CAACC,QAAQ,CAACC,IAAI,GAAG+a,YAAY;KACtC,MAAM;MACH,IAAMA,aAAY,+GAA+G;MACjIjb,MAAM,CAACC,QAAQ,CAACC,IAAI,GAAG+a,aAAY;;GAE1C;EAED,IAAMF,qBAAqB,YAArBA,qBAAqBA;IAAA;;QAuBvBjR,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAtB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA+N,KAAA,GAAAC,MAAA,aACtB;QACA,IAAMlD,IAAI,GAAG;UACT4H,cAAc,EAAEA;SACnB;QAAA,OAAA5P,OAAA,CAAAC,OAAA,CACiB8H,qBAAqB,CAACC,IAAI,CAAC,EAAA3F,IAAA,WAAvChC,GAAG;UACT,IAAAsQ,SAAA,GAAyBtQ,GAAG,CAAC2H,IAAI;YAAzBtJ,KAAK,GAAAiS,SAAA,CAALjS,KAAK;YAAEoI,KAAK,GAAA6J,SAAA,CAAL7J,KAAK;UACpB,IAAM8J,QAAQ,GAAG;YACblS,KAAK,EAAEA,KAAK;YACZE,UAAU,EAAE,KAAK;YACjBD,QAAQ,EAAE,SAAS;YACnB2B,WAAW,EAAEwG;WAChB;UAAA,OAAA9G,OAAA,CAAAC,OAAA,CACKlB,SAAS,CAAC6R,QAAQ,CAAC,EAAAvO,IAAA;;OAC5B,YAAQK,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA,CAAAiJ,MAAA,IAAAA,MAAA,CAAAL,KAAA;KAEJ,QAAAvR,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMmX,UAAU,GAAGpb,MAAM,CAACC,QAAQ,CAACob,IAAI,CAAClb,QAAQ,CAAC,WAAW,CAAC;EA8C7D,IAAMmb,aAAa,GAAGlR,iBAAW;IAAA;;QAuB7BN,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAtB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAsO,MAAA,GAAAN,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkBmI,SAAO,EAAE,EAAA/F,IAAA,WAArBhC,GAAG;UAAA,IAAA2Q,oBAAA;UACT,IAAMxN,UAAU,IAAAwN,oBAAA,GAAW3Q,GAAG,CAAC2H,IAAI,CAACxE,UAAU,YAAAwN,oBAAA,GAAI,EAAE;UAAA,IAChD,CAAC,CAAC3Q,GAAG,CAAC2H,IAAI;YACVgI,SAAS,CAAC;cACNtM,UAAU,EAAErD,GAAG,CAAC2H,IAAI,CAACtE,UAAU;cAC/BF,UAAU,EAAE,CAACA,UAAU,GACjB4I,gBAAgB,CAAC,8BAA8B,CAAC,GAChDgC,UAAU,CAAC5K,UAAU,CAAC;cAC5B2B,QAAQ,EAAE9E,GAAG,CAAC2H,IAAI,CAAC7C;aACtB,CAAC;;;OAET,YAAQzC,GAAG,EAAE;QAAA,IAAAmJ,cAAA,EAAAC,mBAAA;QACVvM,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAU,cAAA,GAAAnJ,GAAG,CAAC0E,QAAQ,cAAAyE,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7D,IAAI,cAAA8D,mBAAA,uBAAlBA,mBAAA,CAAoB/O,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAuL,MAAA,IAAAA,MAAA,CAAAnJ,IAAA,GAAAmJ,MAAA,CAAAnJ,IAAA,CAAAqJ,MAAA,IAAAA,MAAA,CAAAF,MAAA;KAGJ,QAAA9R,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,EAAE,CAAC;EAEN,IAAMqF,SAAS,GAAGc,iBAAW,WAAQmI,IAAS;IAAA;;QAkH1CzI,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAjH3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA0O,MAAA,GAAAV,MAAA,aACtB;QAAA,IAAA+F,qBAAA,EAAAC,WAAA,EAAAC,cAAA;QACA,IAAMjN,oBAAoB,IAAA+M,qBAAA,GAAGjJ,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE9D,oBAAoB,YAAA+M,qBAAA,GAAI,KAAK;QAAA,OAAAjR,OAAA,CAAAC,OAAA,CAC9CiI,KAAK,CAAAuD,QAAA,KAChBzD,IAAI;UACPtJ,KAAK,EAAEsJ,IAAI,aAAJA,IAAI,wBAAAkJ,WAAA,GAAJlJ,IAAI,CAAEtJ,KAAK,cAAAwS,WAAA,uBAAXA,WAAA,CAAa3P,IAAI,EAAE;UAC1B5C,QAAQ,EAAEqJ,IAAI,aAAJA,IAAI,wBAAAmJ,cAAA,GAAJnJ,IAAI,CAAErJ,QAAQ,cAAAwS,cAAA,uBAAdA,cAAA,CAAgB5P,IAAI;UACjC,CAAC,EAAAc,IAAA,WAJIhC,GAAG;UAWT,IAAA+Q,UAAA,GASI/Q,GAAG,CAAC2H,IAAI;YARRlB,KAAK,GAAAsK,UAAA,CAALtK,KAAK;YACLkC,EAAE,GAAAoI,UAAA,CAAFpI,EAAE;YACFpH,SAAS,GAAAwP,UAAA,CAATxP,SAAS;YACTC,QAAQ,GAAAuP,UAAA,CAARvP,QAAQ;YACR0F,KAAK,GAAA6J,UAAA,CAAL7J,KAAK;YACL7I,KAAK,GAAA0S,UAAA,CAAL1S,KAAK;YACL2S,oBAAoB,GAAAD,UAAA,CAApBC,oBAAoB;YACpBC,YAAY,GAAAF,UAAA,CAAZE,YAAY;UAGhB,IAAI,CAACpN,oBAAoB,EAAE;YACvB4B,cAAc,CAAC6B,UAAU,CAAC1T,uBAAuB,CAAC;YAClD+R,YAAY,CAACiB,OAAO,CAACjT,YAAY,EAAE8S,KAAK,CAAC;WAC5C,MAAM;YACHhB,cAAc,CAACmB,OAAO,CAACjT,YAAY,EAAE8S,KAAK,CAAC;YAC3ChB,cAAc,CAACmB,OAAO,CAClBhT,uBAAuB,EACvBiQ,oBAAoB,CACvB;;UAEL8B,YAAY,CAAC2B,UAAU,CAACtP,sBAAsB,CAAC;UAC/CkH,QAAQ,CACJlC,OAAO,CAAC;YACJ2L,EAAE,EAAFA,EAAE;YACFpH,SAAS,EAATA,SAAS;YACTC,QAAQ,EAARA,QAAQ;YACR0F,KAAK,EAALA,KAAK;YACL7I,KAAK,EAALA,KAAK;YACL2S,oBAAoB,EAApBA;WACH,CAAC,CACL;UAED,IAAI,CAACrL,YAAY,CAACD,OAAO,CAAC,OAAO,CAAC,IAAIwB,KAAK,CAAC3R,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC3DoQ,YAAY,CAACiB,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;;UAG1C,IAAIe,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEtJ,KAAK,IAAI,CAAC6I,KAAK,CAAC3R,QAAQ,CAAC,OAAO,CAAC,EAAE;YAAA,IAAA2b,WAAA;YACzC/J,cAAc,CACV,CAACzR,WAAW,GACNjC,uBAAuB,GACvBC,wBAAwB,EAC9BiU,IAAI,CAACtJ,KAAK,EACV;cACI8S,eAAe,EAAE;aACpB,CACJ;YACD,IAAMvQ,QAAQ,GAAGxL,MAAM,CAACC,QAAQ,CAACO,QAAQ;YACzC,IAAMwb,QAAQ,GAAG,IAAIjK,kBAAkB,EAAE;YACzCiK,QAAQ,CAACC,GAAG,CAAC,QAAQ,EAAEzQ,QAAQ,CAAC;YAChCuG,kBAAkB,CAACiK,QAAQ,CAAC;YAC5BjK,eAAe,CAAC,wBAAwB,EAAE;cACtCC,OAAO,EAAEO,IAAI,CAACtJ,KAAK;cACnBgJ,MAAM,EAAEzG,QAAQ;cAChBsG,KAAK,EAAES,IAAI,aAAJA,IAAI,wBAAAuJ,WAAA,GAAJvJ,IAAI,CAAET,KAAK,cAAAgK,WAAA,uBAAXA,WAAA,CAAaI,QAAQ;aAC/B,CAAC;YACF3L,YAAY,CAACiB,OAAO,CAAC,YAAY,EAAEe,IAAI,CAACtJ,KAAK,CAAC;YAC9C,IAAI4S,YAAY,EAAE;cAAA,IAAAM,YAAA;cACdpK,eAAe,CAAC,sBAAsB,EAAE;gBACpCC,OAAO,EAAEO,IAAI,CAACtJ,KAAK;gBACnBgJ,MAAM,EAAEzG,QAAQ;gBAChBsG,KAAK,EAAES,IAAI,aAAJA,IAAI,wBAAA4J,YAAA,GAAJ5J,IAAI,CAAET,KAAK,cAAAqK,YAAA,uBAAXA,YAAA,CAAaD,QAAQ;eAC/B,CAAC;;;UAET,IAEGd,UAAU;YACVjH,QAAQ,CAACkF,iBAAiB,CAAC;iBACxB,IAAIvH,KAAK,CAAC3R,QAAQ,CAAC,OAAO,CAAC,EAAE;YAChCgU,QAAQ,CAACgF,cAAc,CAAC;WAC3B,MAAM,IACHrH,KAAK,CAAC3R,QAAQ,CAAC,SAAS,CAAC,IACzB2R,KAAK,CAAC3R,QAAQ,CAAC,WAAW,CAAC,IAC3B2R,KAAK,CAAC3R,QAAQ,CAAC,WAAW,CAAC,IAC3B2R,KAAK,CAAC3R,QAAQ,CAAC,kBAAkB,CAAC,EACpC;YACEgU,QAAQ,CAAC8E,gBAAgB,CAAC;WAC7B,MAAM,IAAInH,KAAK,CAAC3R,QAAQ,CAAC,SAAS,CAAC,EAAE;YAElCgU,QAAQ,CAAC+E,gBAAgB,CAAC;WAC7B,MAAM,IAAIpH,KAAK,CAAC3R,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACjCgU,QAAQ,CAACiF,eAAe,CAAC;WAC5B,MAAM,IAAItH,KAAK,CAAC3R,QAAQ,CAAC,YAAY,CAAC,EAAE;YACrCgU,QAAQ,CAACmF,oBAAoB,CAAC;;;OAErC,YAAQrM,GAAG,EAAE;QAAA,IAAAmP,cAAA,EAAAC,mBAAA;QACVvS,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EACH,EAAA0G,cAAA,GAAAnP,GAAG,CAAC0E,QAAQ,cAAAyK,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7J,IAAI,cAAA8J,mBAAA,uBAAlBA,mBAAA,CAAoB/U,KAAK,KACzB2F,GAAG,CAACyI,OAAO,IACX;SACP,CAAC,CACL;QACDnF,YAAY,CAAC2B,UAAU,CAAC3T,YAAY,CAAC;QACrC8R,cAAc,CAAC6B,UAAU,CAAC3T,YAAY,CAAC;OAC1C;MAAA,OAAAgM,OAAA,CAAAC,OAAA,CAAA2L,MAAA,IAAAA,MAAA,CAAAvJ,IAAA,GAAAuJ,MAAA,CAAAvJ,IAAA,CAAA0J,MAAA,IAAAA,MAAA,CAAAH,MAAA;KAGJ,QAAAlS,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,EAAE,CAAC;EAEN,IAAM4W,aAAa,YAAbA,aAAaA;IAAA;sCACX;QAAA,OAAAtQ,OAAA,CAAAC,OAAA,CACkB2I,iBAAiB,EAAE,EAAAvG,IAAA,WAA/BhC,GAAG;UACTgP,iBAAiB,CAAChP,GAAG,CAAC2H,IAAI,CAAC7I,cAAc,CAAC;UAC1CoQ,oBAAoB,CAAClP,GAAG,CAAC2H,IAAI,CAAC+J,eAAe,CAAC;UAC9CvC,iBAAiB,CAACnP,GAAG,CAAC2H,IAAI,CAAC3I,cAAc,CAAC;;OAC7C,YAAQqD,GAAG,EAAE;QAAA,IAAAsP,cAAA,EAAAC,mBAAA;QACV1S,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EACH,EAAA6G,cAAA,GAAAtP,GAAG,CAAC0E,QAAQ,cAAA4K,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAchK,IAAI,cAAAiK,mBAAA,uBAAlBA,mBAAA,CAAoBlV,KAAK,KACzB2F,GAAG,CAACyI,OAAO,IACX;SACP,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAiS,MAAA,IAAAA,MAAA,CAAA7P,IAAA,GAAA6P,MAAA,CAAA7P,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMwF,cAAc,GAAGW,iBAAW,WAE1BlD,IAAe,EACfqL,IAAS,EACTlB,KAAa,EACblH,YAAkB;IAAA;;QAsDlBL,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MApD3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAiV,OAAA,GAAAjH,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkB0I,eAAe,CAAChM,IAAI,EAAEqL,IAAI,CAAC,EAAA3F,IAAA,WAAvChC,GAAG;UACT,IAAM+R,SAAS,GAAG/R,GAAG,CAAC2H,IAAI;UAAA,IAAAqK,OAAA;YAAA,IACtBD,SAAS;cAAA,IAAAE,MAAA,YAAAA;gBAAA,OAAAtS,OAAA,CAAAC,OAAA,CAeHlB,SAAS,CAAC6R,QAAQ,CAAC,EAAAvO,IAAA;kBACzB9C,QAAQ,CAAC/B,gBAAgB,CAAC,KAAK,CAAC,CAAC;;;cAfjC,IAAMoT,QAAQ,GAAG;gBACblS,KAAK,EAAEsJ,IAAI,CAACtJ,KAAK;gBACjBuQ,aAAa,EAAE,IAAI;gBACnBrQ,UAAU,EAAE,KAAK;gBACjBD,QAAQ,EAAE,SAAS;gBACnB2B,WAAW,EAAEwG,KAAK;gBAClBvE,OAAO,EAAE,EAAE;gBACXC,SAAS,EAAEvF,SAAS,CAAC6E;eACxB;cAAA,IAAAyQ,MAAA;gBAAA,IAEG3S,YAAY,IAAI,IAAI;kBAAA,OAAAI,OAAA,CAAAC,OAAA,CACUL,YAAY,EAAE,EAAAyC,IAAA,WAAtCC,eAAe;oBACrBsO,QAAQ,CAACrO,OAAO,GAAGD,eAAe;;;;cAAA,OAAAiQ,MAAA,IAAAA,MAAA,CAAAlQ,IAAA,GAAAkQ,MAAA,CAAAlQ,IAAA,CAAAiQ,MAAA,IAAAA,MAAA,CAAAC,MAAA;;cAAA,OAAAvS,OAAA,CAAAC,OAAA,CAKpB4I,mBAAmB,CAACb,IAAI,CAAC,EAAA3F,IAAA,WAArChC,GAAG;gBAAA,IAAAmS,OAAA;kBAAA,IACLnS,GAAG,aAAHA,GAAG,eAAHA,GAAG,CAAE2H,IAAI;oBAAA,IAAAyK,MAAA,YAAAA;sBAAA,OAAAzS,OAAA,CAAAC,OAAA,CAeHlB,SAAS,CAAC6R,SAAQ,CAAC,EAAAvO,IAAA;;oBAdzB,IAAMuO,SAAQ,GAAG;sBACblS,KAAK,EAAEsJ,IAAI,CAACtJ,KAAK;sBACjBuQ,aAAa,EAAE,IAAI;sBACnBrQ,UAAU,EAAE,KAAK;sBACjBD,QAAQ,EAAE,SAAS;sBACnB2B,WAAW,EAAEwG,KAAK;sBAClBvE,OAAO,EAAE,EAAE;sBACXC,SAAS,EAAEvF,SAAS,CAAC6E;qBACxB;oBAAA,IAAA4Q,MAAA;sBAAA,IAEG9S,YAAY,IAAI,IAAI;wBAAA,OAAAI,OAAA,CAAAC,OAAA,CACUL,YAAY,EAAE,EAAAyC,IAAA,WAAtCC,eAAe;0BACrBsO,SAAQ,CAACrO,OAAO,GAAGD,eAAe;;;;oBAAA,OAAAoQ,MAAA,IAAAA,MAAA,CAAArQ,IAAA,GAAAqQ,MAAA,CAAArQ,IAAA,CAAAoQ,MAAA,IAAAA,MAAA,CAAAC,MAAA;;;gBAAA,IAAAF,OAAA,IAAAA,OAAA,CAAAnQ,IAAA,SAAAmQ,OAAA,CAAAnQ,IAAA;;;;UAAA,IAAAgQ,OAAA,IAAAA,OAAA,CAAAhQ,IAAA,SAAAgQ,OAAA,CAAAhQ,IAAA;;OAKjD,YAAQK,GAAG,EAAE;QAAA,IAAAiQ,cAAA,EAAAC,mBAAA;QACVrT,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EACH,EAAAwH,cAAA,GAAAjQ,GAAG,CAAC0E,QAAQ,cAAAuL,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc3K,IAAI,cAAA4K,mBAAA,uBAAlBA,mBAAA,CAAoB7V,KAAK,KACzB2F,GAAG,CAACyI,OAAO,IACX;SACP,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAkS,OAAA,IAAAA,OAAA,CAAA9P,IAAA,GAAA8P,OAAA,CAAA9P,IAAA,CAAAwQ,OAAA,IAAAA,OAAA,CAAAV,OAAA;KAEJ,QAAAzY,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KACD,EAAE,CACL;EAED,IAAMoZ,WAAW,YAAXA,WAAWA,CAAUC,SAAiB,EAAEnT,YAAiB;IAAA;;QAuC3DL,QAAQ,CAAC/B,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACjC+B,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAvC3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA8V,OAAA,GAAA9H,MAAA,aACtB;QACA,IAAMlD,IAAI,GAAG;UACTpG,SAAS,EAAE6N,QAAQ,CAAC7N,SAAS;UAC7BC,QAAQ,EAAE4N,QAAQ,CAAC5N,QAAQ;UAC3Bd,QAAQ,EAAE0O,QAAQ,CAAC1O,QAAQ;UAC3BtI,QAAQ,EAAEgX,QAAQ,CAAChX,QAAQ;UAC3BiG,KAAK,EAAE+Q,QAAQ,CAAC/Q,KAAK;UACrB4B,WAAW,EAAEmP,QAAQ,CAACnP,WAAW;UACjCyS,SAAS,EAAEA;SACd;QAAA,OAAA/S,OAAA,CAAAC,OAAA,CACiB4I,mBAAmB,CAACb,IAAI,CAAC,EAAA3F,IAAA,WAArChC,GAAG;UAAA,IAAA4S,OAAA;YAAA,IACL5S,GAAG,CAAC2H,IAAI;cAAA,OAAAhI,OAAA,CAAAC,OAAA,CACsBL,YAAY,EAAE,EAAAyC,IAAA,WAAtCC,eAAe;gBACrB,IAAM4Q,SAAS,GAAG;kBACdxU,KAAK,EAAE+Q,QAAQ,CAAC/Q,KAAK;kBACrB6D,OAAO,EAAED,eAAe;kBACxB2M,aAAa,EAAE,IAAI;kBACnBrQ,UAAU,EAAE,KAAK;kBACjBD,QAAQ,EAAE,SAAS;kBACnB2B,WAAW,EAAEmP,QAAQ,CAACnP,WAAW;kBACjCkC,SAAS,EAAEvF,SAAS,CAAC6E;iBACxB;gBACDvC,QAAQ,CAAC/B,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAAA,OAAAwC,OAAA,CAAAC,OAAA,CAC3BlB,SAAS,CAACmU,SAAS,CAAC,EAAA7Q,IAAA;kBAC1BuH,QAAQ,CAAC+E,gBAAgB,CAAC;;;;;UAAA,IAAAsE,OAAA,IAAAA,OAAA,CAAA5Q,IAAA,SAAA4Q,OAAA,CAAA5Q,IAAA;;OAEjC,YAAQK,GAAG,EAAE;QAAA,IAAAyQ,cAAA,EAAAC,mBAAA;QACV7T,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EACH,EAAAgI,cAAA,GAAAzQ,GAAG,CAAC0E,QAAQ,cAAA+L,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAcnL,IAAI,cAAAoL,mBAAA,uBAAlBA,mBAAA,CAAoBrW,KAAK,KACzB2F,GAAG,CAACyI,OAAO,IACX;SACP,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAA+S,OAAA,IAAAA,OAAA,CAAA3Q,IAAA,GAAA2Q,OAAA,CAAA3Q,IAAA,CAAAgR,OAAA,IAAAA,OAAA,CAAAL,OAAA;KAGJ,QAAAtZ,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAM4Z,qBAAqB,YAArBA,qBAAqBA;IAAA;uCACnB;QAAA,OAAAtT,OAAA,CAAAC,OAAA,CACkB8M,iBAAiB,EAAE,EAAA1K,IAAA,WAA/BhC,GAAG;UACTd,QAAQ,CAACvB,cAAc,CAACqC,GAAG,CAAC2H,IAAI,CAACuL,aAAa,CAAC,CAAC;;OACnD,YAAQ7Q,GAAG,EAAE;QACV5C,OAAO,CAAC6C,KAAK,CAACD,GAAG,CAAC;OACrB;MAAA,OAAA1C,OAAA,CAAAC,OAAA,CAAAuT,OAAA,IAAAA,OAAA,CAAAnR,IAAA,GAAAmR,OAAA,CAAAnR,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAM0F,UAAU,YAAVA,UAAUA,CAAUQ,YAAkB;IAAA;MACxCsQ,YAAY,CACPuD,qBAAqB,EAAE,CACvBpR,IAAI,WAAQqR,aAAkB;QAAA;UAC3B,IAAI,EAAC1U,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEmG,QAAQ,GAAE,OAAAnF,OAAA,CAAAC,OAAA;UAAM,IAAA0T,OAAA;YAAA,IACzB,CAACD,aAAa;cACd,IAAME,QAAQ,GAAG1D,YAAY,CAAC2D,cAAc,EAAE;cAAA,IAAAC,OAAA;gBAAA,IAC1CF,QAAQ,CAACG,MAAM,KAAK,CAAC;kBAErB,IAAMC,cAAc,GAAGje,WAAW,GAC5B,mCAAmC,GACnC,4BAA4B;kBAClCN,MAAM,CAACC,QAAQ,CAACC,IAAI,GAChB,CAACF,MAAM,CAACC,QAAQ,CAACO,QAAQ,KAAK,WAAW,GACnC,wBAAwB,GACxB+d,cAAc,6CACkBve,MAAM,CAACC,QAAQ,CAACC,IAAI,kBAAaqJ,MAAM,CAACmG,QAAQ,CAAE;;kBAE5F,IAAI8O,cAAc,GAAGL,QAAQ,CAAC,CAAC,CAAC;kBAAA,OAAA5T,OAAA,CAAAC,OAAA,CAC1BiU,iBAAiB,CAACD,cAAc,EAAErU,YAAY,CAAC,EAAAyC,IAAA;;;cAAA,IAAAyR,OAAA,IAAAA,OAAA,CAAAzR,IAAA,SAAAyR,OAAA,CAAAzR,IAAA;;cAIzD,IAAI4R,cAAc,GAAGP,aAAa,CAACS,OAAO;cAAA,OAAAnU,OAAA,CAAAC,OAAA,CACpCiU,iBAAiB,CAACD,cAAc,EAAErU,YAAY,CAAC,EAAAyC,IAAA;;;UAAA,OAAArC,OAAA,CAAAC,OAAA,CAAA0T,OAAA,IAAAA,OAAA,CAAAtR,IAAA,GAAAsR,OAAA,CAAAtR,IAAA;SAE5D,QAAA3I,CAAA;UAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;QAAC,SACI,CAAC,UAACgJ,GAAQ;QAEZ5C,OAAO,CAAC6C,KAAK,CAACD,GAAG,CAAC;OACrB,CAAC;MAAA,OAAA1C,OAAA,CAAAC,OAAA;KACT,QAAAvG,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMwa,iBAAiB,YAAjBA,iBAAiBA,CAAUC,OAAY,EAAEvU,YAAkB;IAAA;MAC7D,IAAInH,QAAQ,GAAG0b,OAAO,CAACvf,IAAI;MAC3B,IAAI+M,SAAS,GAAqB;QAC9BC,SAAS,EAAEnJ,QAAQ,CAAC5C,KAAK,CAAC,GAAG,CAAC,CAACue,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAACvO,IAAI,CAAC,GAAG,CAAC;QACrDhE,QAAQ,EAAEpJ,QAAQ,CAAC5C,KAAK,CAAC,GAAG,CAAC,CAACue,KAAK,CAAC,CAAC,CAAC,CAAC,CAACvO,IAAI,CAAC,GAAG,CAAC;QACjDpN,QAAQ,EAAEA,QAAQ;QAClBsI,QAAQ,EAAE,EAAE;QACZrC,KAAK,EAAEyV,OAAO,CAACE,QAAQ;QACvB/T,WAAW,EAAE6T,OAAO,CAACG,aAAa,CAACC,GAAG;QACtCvT,QAAQ,EAAEmT,OAAO,CAACK;OACrB;MACDjV,QAAQ,CAAC9B,kBAAkB,CAACkE,SAAS,CAAC,CAAC;MAAA,OAAA3B,OAAA,CAAAC,OAAA,CACjCf,cAAc,CAChBlC,SAAS,CAACyX,YAAY,EACtB9S,SAAS,EACTwS,OAAO,CAACG,aAAa,CAACC,GAAG,EACzB3U,YAAY,CACf,EAAAyC,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMgb,kBAAkB,YAAlBA,kBAAkBA;IAAA;MACpB,IAAMxE,aAAY,GAAG,IAAIyE,mCAAuB,CAAC3H,UAAU,CAAC;MAC5DmD,eAAe,CAACD,aAAY,CAAC;MAAA,OAAAlQ,OAAA,CAAAC,OAAA;KAChC,QAAAvG,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAEDqR,eAAS,CAAC;IACN,IAAI6J,WAAW,GAAGnf,MAAM,CAACC,QAAQ,CAACC,IAAI;IACtC,IACI,CAAC,CAACua,YAAY,IACd0E,WAAW,CAAChf,QAAQ,CAAC,MAAM,CAAC,IAC5Bgf,WAAW,CAAChf,QAAQ,CAAC,aAAa,CAAC,EACrC;MACEwJ,UAAU,EAAE;;GAEnB,EAAE,CAACyV,IAAI,CAACC,SAAS,CAAC5E,YAAY,CAAC,CAAC,CAAC;EAElCnF,eAAS,CAAC;IACNuI,qBAAqB,EAAE;IACvBoB,kBAAkB,EAAE;IACpB3D,aAAa,EAAE;GAClB,EAAE,EAAE,CAAC;EAEN,OAAO;IACHjS,WAAW,EAAXA,aAAW;IACXC,SAAS,EAATA,SAAS;IACTiL,SAAS,EAATA,SAAS;IACTE,MAAM,EAANA,MAAM;IACN5N,cAAc,EAAdA,cAAc;IACd2C,iBAAiB,EAAjBA,iBAAiB;IACjBC,cAAc,EAAdA,cAAc;IACd+P,aAAa,EAAbA,aAAa;IACbQ,QAAQ,EAARA,QAAQ;IACRqD,WAAW,EAAXA,WAAW;IACX3T,cAAc,EAAdA,cAAc;IACdmQ,iBAAiB,EAAjBA,iBAAiB;IACjBiB,uBAAuB,EAAvBA,uBAAuB;IACvBT,eAAe,EAAfA,eAAe;IAEf1Q,UAAU,EAAVA,UAAU;IACVJ,MAAM,EAANA,MAAM;IACNK,cAAc,EAAdA,cAAc;IACdoR,sBAAsB,EAAtBA;GACH;AACL,CAAC;;ACvjBD,IAAMtH,WAAS,GAAG,GAAG;AACrB,IAAMC,OAAK,GAAG,QAAQ;AACtB,IAAMC,OAAK,GAAG,QAAQ;AAEtB,IAAM0L,iBAAiB,GAAG,SAApBA,iBAAiBA;EACnB,IAAMxV,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAMoK,QAAQ,GAAGC,0BAAW,EAAE;EAC9B,IAAMH,MAAM,GAAGhU,QAAQ,CAACgU,MAAM;EAC9B,IAAMrE,MAAM,GAAG,IAAImE,eAAe,CAACE,MAAM,CAAC;EAC1C,IAAMlB,MAAM,GAAGnD,MAAM,CAACgD,GAAG,CAAC,QAAQ,CAAC;EAEnC,IAAAyB,SAAA,GAAkDC,cAAQ,CAAU,KAAK,CAAC;IAAnEK,iBAAiB,GAAAN,SAAA;IAAEO,oBAAoB,GAAAP,SAAA;EAC9C,IAAAK,UAAA,GAAwDJ,cAAQ,CAC5D,KAAK,CACR;IAFMQ,oBAAoB,GAAAJ,UAAA;IAAEK,uBAAuB,GAAAL,UAAA;EAIpD,IAAAG,UAAA,GAA0CP,cAAQ,CAAkB;MAChEpL,QAAQ,EAAE,EAAE;MACZ+L,eAAe,EAAE,EAAE;MACnBhM,KAAK,EAAE,EAAE;MACT8J,MAAM,EAAEA,MAAM,WAANA,MAAM,GAAI,EAAE;MACpB1B,KAAK,EAAE;KACV,CAAC;IANK7E,aAAa,GAAAqI,UAAA;IAAEK,gBAAgB,GAAAL,UAAA;EAQtC,IAAA7K,mBAAA,GAA6BC,yCAAkB,EAAE;IAAzCC,gBAAgB,GAAAF,mBAAA,CAAhBE,gBAAgB;EAExB,IAAMqV,wBAAwB,GAAGnV,iBAAW,WAAQ2I,MAAc;IAAA;;QAe9DjJ,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAd3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA+N,KAAA,GAAAC,MAAA,aAEtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkBsI,kBAAkB,CAACC,MAAM,CAAC,EAAAnG,IAAA,WAAtChC,GAAG;UACTsK,gBAAgB,CAAAc,QAAA,KAAKxJ,aAAa;YAAEvD,KAAK,EAAE2B,GAAG,CAAC2H;YAAK,CAAC;;OACxD,YAAQtF,GAAG,EAAE;QACVnD,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAEzI,GAAG,CAACyI;SAChB,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA,CAAAiJ,MAAA,IAAAA,MAAA,CAAAL,KAAA;KAGJ,QAAAvR,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,EAAE,CAAC;EAEN,IAAMub,qBAAqB,GAAGpV,iBAAW,WAAQmI,IAAqB;IAAA;;QAyBlEzI,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAxB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAsO,MAAA,GAAAN,MAAA,aAEtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACM6I,cAAc,CAACd,IAAI,CAAC,EAAA3F,IAAA;UAC1BuH,QAAQ,CAACR,OAAK,CAAC;UACf7J,QAAQ,CACJhC,QAAQ,CAAC;YACLZ,IAAI,EAAE,SAAS;YACfwO,OAAO,EAAE;WACZ,CAAC,CACL;;OACJ,YAAQzI,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAC1B2F,GAAG,CAACyI,OAAO,IACX;SACX,CAAC,CACL;QACDnF,YAAY,CAAC2B,UAAU,CAAC3T,YAAY,CAAC;QACrC8R,cAAc,CAAC6B,UAAU,CAAC3T,YAAY,CAAC;OAC1C;MAAA,OAAAgM,OAAA,CAAAC,OAAA,CAAAuL,MAAA,IAAAA,MAAA,CAAAnJ,IAAA,GAAAmJ,MAAA,CAAAnJ,IAAA,CAAAqJ,MAAA,IAAAA,MAAA,CAAAF,MAAA;KAGJ,QAAA9R,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,EAAE,CAAC;EAEN,IAAMkG,YAAY,GAAGC,iBAAW;IAAA;MAC5B,IAAI,CAACF,gBAAgB,EAAE;QACnBG,OAAO,CAACC,GAAG,CAAC,6BAA6B,CAAC;QAC1C,OAAAC,OAAA,CAAAC,OAAA;;MACH,OAAAD,OAAA,CAAAC,OAAA,CACoBN,gBAAgB,CAAC,YAAY,CAAC;KAEtD,QAAAjG,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,CAACiG,gBAAgB,CAAC,CAAC;EAEtB,IAAMQ,YAAY,GAAGN,iBAAW,CAAC,cAAQ,EAAE,EAAE,CAAC;EAE9CkL,eAAS,CAAC;IACN9R,QAAQ,CAAC8D,KAAK,GAAGsM,OAAK;IACtB,IAAMvC,KAAK,GAAGC,cAAc,EAAE;IAC9B,IAAI,CAAC,CAACD,KAAK,EAAE8C,QAAQ,CAACT,WAAS,CAAC;IAChC,IAAI,CAAC,CAACX,MAAM,EAAEwM,wBAAwB,CAACxM,MAAM,CAAC;GACjD,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZuC,eAAS,CAAC;IACN9R,QAAQ,CAAC8D,KAAK,GAAGsM,OAAK;IACtB,IAAMvC,KAAK,GAAGC,cAAc,EAAE;IAC9B,IAAI,CAAC,CAACD,KAAK,EAAE8C,QAAQ,CAACT,WAAS,CAAC;GACnC,EAAE,EAAE,CAAC;EAEN,OAAO;IACH8L,qBAAqB,EAArBA,qBAAqB;IACrB7K,iBAAiB,EAAjBA,iBAAiB;IACjBC,oBAAoB,EAApBA,oBAAoB;IACpBE,oBAAoB,EAApBA,oBAAoB;IACpBC,uBAAuB,EAAvBA,uBAAuB;IACvB5K,YAAY,EAAZA,YAAY;IACZO,YAAY,EAAZA,YAAY;IACZ8B,aAAa,EAAbA;GACH;AACL,CAAC;;AC7GD,IAAMwK,qBAAmB,GAAGhO,UAAU,CAAC;EACnCE,QAAQ,EAAEF,UAAU,EAAE,CAAC5B,QAAQ,CAAC,sBAAsB,CAAC;EACvD6N,eAAe,EAAEjM,UACN,EAAE,CACR5B,QAAQ,CAAC,0BAA0B,CAAC,CACpC6P,IAAI,CAAC,UAAU,EAAE,wBAAwB,EAAE;IACxC,OAAO,IAAI,CAACC,MAAM,CAAChO,QAAQ,KAAK,IAAI,CAACgO,MAAM,CAACjC,eAAe;GAC9D;CACR,CAAC;AAEF,IAAMwK,mBAAmB,GAAG,SAAtBA,mBAAmBA;EACrB,IAAAC,kBAAA,GAOIJ,iBAAiB,EAAE;IANnBE,qBAAqB,GAAAE,kBAAA,CAArBF,qBAAqB;IACrB7K,iBAAiB,GAAA+K,kBAAA,CAAjB/K,iBAAiB;IACjBC,oBAAoB,GAAA8K,kBAAA,CAApB9K,oBAAoB;IACpBE,oBAAoB,GAAA4K,kBAAA,CAApB5K,oBAAoB;IACpBC,uBAAuB,GAAA2K,kBAAA,CAAvB3K,uBAAuB;IACvBvI,aAAa,GAAAkT,kBAAA,CAAblT,aAAa;EAGjB,OACIhH,6BAAC+G,aAAM;IACHC,aAAa,EAAEA,aAAa;IAC5BkK,kBAAkB;IAClBjK,gBAAgB,EAAEuK,qBAAmB;IACrCtK,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,MAAM;MACZ6S,qBAAqB,CAAC7S,MAAM,CAAC;;KAGhC,UAAAQ,WAAW;IACR,IACIM,aAAa,GAKbN,WAAW,CALXM,aAAa;MACbH,YAAY,GAIZH,WAAW,CAJXG,YAAY;MACZC,OAAO,GAGPJ,WAAW,CAHXI,OAAO;MACPC,MAAM,GAENL,WAAW,CAFXK,MAAM;MACNb,MAAM,GACNQ,WAAW,CADXR,MAAM;IAEV,OACInH,6BAACoJ,cAAG;MAACnJ,SAAS,OAAKmI,MAAM,CAAC,WAAW;OACjCpI,6BAACqJ,cAAG;MAACpJ,SAAS,EAAC;OACXD;MACIsI,MAAM,EAAE,CAACnB,MAAM,CAAC1D,KAAK;MACrBxD,SAAS,OAAKmI,MAAM,CAAC,aAAa;OAElCpI;MAAKC,SAAS,OAAKmI,MAAM,CAAC,YAAY;OAClCpI;MACIwI,GAAG,OAAK2I,gBAAgB,CACpB,kCAAkC,CACnC;MACHlR,SAAS,OAAKmI,MAAM,CAAC,qBAAqB;MAC5C,EACFpI;MAAGC,SAAS,OAAKmI,MAAM,CAAC,aAAa;8BAEjC,EACJpI;MAAKC,SAAS,EAAC;OACXD,6BAACA,cAAK,CAAC8G,QAAQ,QACX9G,6BAAC0I,oBAAS;MACNzI,SAAS,OAAKmI,MAAM,CAAC,gBAAgB;OAErCpI,6BAACyB,gBAAK;MACFmQ,QAAQ;MACRlQ,IAAI,EAAC,MAAM;MACX/H,IAAI,EAAC,OAAO;MACZ6H,WAAW,EAAC,OAAO;MACnBrI,KAAK,EAAEgO,MAAM,CAAC1D,KAAK;MACnB9B,YAAY,EAAC,OAAO;MACpBC,QAAQ;MACR3B,SAAS,OAAKmI,MAAM,CAAC,OAAO;MAC9B,CACM,EACZpI;MACIC,SAAS,OAAKmI,MAAM,CAAC,gBAAgB;OAErCpI,6BAACoB,aAAa;MACVC,cAAc,EACV8N,iBAAiB;MAErB7N,qBAAqB,EAAE,SAAvBA,qBAAqBA;QAAA,OACjB8N,oBAAoB,CAChB,CAACD,iBAAiB,CACrB;;MAEL5N,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;QAAA,OACbwJ,aAAa,CACT,UAAU,EACVxJ,CAAC,CAACmK,MAAM,CAACzP,KAAK,CACjB;;MAEP,EACD4O,OAAO,CAACrE,QAAQ,IACbsE,MAAM,CAACtE,QAAQ,IACX1D,6BAACH,YAAY;MACTE,IAAI,EACAiI,MAAM,CAACtE;MAGlB,CACH,EACN1D;MACIC,SAAS,OAAKmI,MAAM,CAAC,gBAAgB;OAErCpI,6BAACoB,aAAa;MACVI,WAAW,EAAC,kBAAkB;MAC9BH,cAAc,EACViO,oBAAoB;MAExBhO,qBAAqB,EAAE,SAAvBA,qBAAqBA;QAAA,OACjBiO,uBAAuB,CACnB,CAACD,oBAAoB,CACxB;;MAEL/N,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;QAAA,OACbwJ,aAAa,CACT,iBAAiB,EACjBxJ,CAAC,CAACmK,MAAM,CAACzP,KAAK,CACjB;;MAEP,EACD4O,OAAO,CAAC0H,eAAe,IACpBzH,MAAM,CAACyH,eAAe,IAClBzP,6BAACH,YAAY;MACTE,IAAI,EACAiI,MAAM,CAACyH;MAGlB,CACH,CACO,CACf,EACNzP;MACIC,SAAS,EAAKmI,MAAM,CAAC,WAAW,CAAC,SAAIA,MAAM,CAAC,aAAa,CAAC,UAAO;MACjEvG,OAAO,EAAE,SAATA,OAAOA;QAAA,OAAQiG,YAAY,EAAE;;8BAGxB,CACP,CACJ,EACN9H;MACIsI,MAAM,EAAE,CAAC,CAACnB,MAAM,CAAC1D,KAAK;MACtBxD,SAAS,OAAKmI,MAAM,CAAC,aAAa;OAElCpI;MAAKC,SAAS,OAAKmI,MAAM,CAAC,YAAY;OAClCpI;MACIwI,GAAG,OAAK2I,gBAAgB,CACpB,kCAAkC,CACnC;MACHlR,SAAS,OAAKmI,MAAM,CAAC,qBAAqB;MAC5C,EACFpI;MAAGC,SAAS,OAAKmI,MAAM,CAAC,aAAa;4CAEjC,CACF,CACJ,CACJ,CACJ;GAEb,CACI;AAEjB,CAAC;;ACnJD,IAAM+R,WAAW,GAAG,QAAQ;AAC5B,IAAMC,qBAAqB,GAAG,iBAAiB;AAC/C,IAAMC,oBAAoB,GAAG,gBAAgB;AAE7C,IAAMC,KAAK,GAAG,SAARA,KAAKA,CAAIC,KAAiB;EAC5B,IACIC,OAAO,GAKPD,KAAK,CALLC,OAAO;IACPC,gBAAgB,GAIhBF,KAAK,CAJLE,gBAAgB;IAChBC,eAAe,GAGfH,KAAK,CAHLG,eAAe;IACfC,gBAAgB,GAEhBJ,KAAK,CAFLI,gBAAgB;EAGpB,IAAAC,SAAA,GAiBI7G,QAAQ,EAAE;IAhBVlQ,WAAW,GAAA+W,SAAA,CAAX/W,WAAW;IACXC,SAAS,GAAA8W,SAAA,CAAT9W,SAAS;IACTuQ,iBAAiB,GAAAuG,SAAA,CAAjBvG,iBAAiB;IACjBiB,uBAAuB,GAAAsF,SAAA,CAAvBtF,uBAAuB;IACvBvR,MAAM,GAAA6W,SAAA,CAAN7W,MAAM;IACN8Q,eAAe,GAAA+F,SAAA,CAAf/F,eAAe;IACf7Q,iBAAiB,GAAA4W,SAAA,CAAjB5W,iBAAiB;IACjBC,cAAc,GAAA2W,SAAA,CAAd3W,cAAc;IACd+P,aAAa,GAAA4G,SAAA,CAAb5G,aAAa;IACb6D,WAAW,GAAA+C,SAAA,CAAX/C,WAAW;IACXrD,QAAQ,GAAAoG,SAAA,CAARpG,QAAQ;IACRtQ,cAAc,GAAA0W,SAAA,CAAd1W,cAAc;IACd7C,cAAc,GAAAuZ,SAAA,CAAdvZ,cAAc;IACd8C,UAAU,GAAAyW,SAAA,CAAVzW,UAAU;IACVC,cAAc,GAAAwW,SAAA,CAAdxW,cAAc;IACdoR,sBAAsB,GAAAoF,SAAA,CAAtBpF,sBAAsB;EAG1B1F,eAAS,CAAC;IACN0K,OAAO,KAAKxc,QAAQ,CAAC8D,KAAK,GAAGqY,WAAW,CAAC;IACzCM,gBAAgB,KAAKzc,QAAQ,CAAC8D,KAAK,GAAGsY,qBAAqB,CAAC;IAC5DM,eAAe,KAAK1c,QAAQ,CAAC8D,KAAK,GAAGuY,oBAAoB,CAAC;GAC7D,EAAE,CAACG,OAAO,EAAEC,gBAAgB,EAAEC,eAAe,CAAC,CAAC;EAEhD,OACI1a;IAAKC,SAAS,EAAKmI,MAAM,CAAC,OAAO,CAAC;KAC9BpI,6BAACoJ,cAAG;IAACnJ,SAAS,EAAE;KACZD,6BAACqJ,cAAG;IACAC,EAAE,EAAE,CAAC;IACLC,EAAE,EAAE,EAAE;IACNC,EAAE,EAAE,EAAE;IACNvJ,SAAS,EAAC;KAET,CAAC,CAACoU,iBAAiB,IAChBrU,6BAAC6a,8CAAuB;IACpBC,eAAe;IACfC,YAAY,EAAE1G,iBAAiB;IAC/B2G,WAAW,EAAE;MACTC,KAAK,EAAE,IAAI;MACXC,KAAK,EAAE,IAAI;MACXC,QAAQ,EAAE;;KAGbX,OAAO,IACJxa,6BAAC4D,UAAU;IACPE,SAAS,EAAEA,SAAS;IACpBD,WAAW,EAAEA,WAAW;IACxBuX,mBAAmB,EACf9F,uBAAuB;IAE3BT,eAAe,EAAEA,eAAe;IAChC9Q,MAAM,EAAEA,MAAM;IACdE,cAAc,EAAEA,cAAc;IAC9BC,cAAc,EAAEA,cAAc;IAC9BsQ,QAAQ,EAAEA,QAAQ;IAClBR,aAAa,EAAEA,aAAa;IAC5B3S,cAAc,EAAEA,cAAc;IAC9B2C,iBAAiB,EAAEA,iBAAiB;IACpC6T,WAAW,EAAEA,WAAW;IACxB1T,UAAU,EAAEA,UAAU;IACtBC,cAAc,EAAEA,cAAc;IAC9BC,kBAAkB,EAAEmR;IAE3B,EACAiF,gBAAgB,IACbza,6BAACgR,mBAAmB;IAACjN,MAAM,EAAEA;IAChC,CAER,EAEA2W,eAAe,IAAI1a,6BAAC2R,kBAAkB,OAAG,EACzCgJ,gBAAgB,IAAI3a,6BAACia,mBAAmB,OAAG,EAC5Cja;IACItF,IAAI,EAAC,kBAAkB;IACvBkO,MAAM,EAAC,OAAO;IACd3I,SAAS,OAAKmI,MAAM,CAAC,gBAAgB;sBAGrC,CAEF,EACNpI,6BAACqJ,cAAG;IACApJ,SAAS,EAAC,uCAAuC;IACjDqJ,EAAE,EAAE,CAAC;IACLC,EAAE,EAAE,EAAE;IACNC,EAAE,EAAE;KAEJxJ;IACIwI,GAAG,OAAK2I,gBAAgB,CAAC3W,MAAM,CAACuD,UAAU,GAAG,GAAG,GAAG,uBAAuB,GAAG,8BAA8B,CAAG;IAC9GkC,SAAS,OAAKmI,MAAM,CAAC,WAAW;IAClC,CACA,CACJ,CACJ;AAEd,CAAC;;AC/HD,IAAMiT,YAAY,GAAG,SAAfA,YAAYA;EACd,OACIrb;IAAKC,SAAS,OAAKmI,MAAM,CAAC,eAAe;KACrCpI;IAAKC,SAAS,EAAKmI,MAAM,CAAC,aAAa,CAAC;KACpCpI,mDAAe,EACfA,uDAAmB,EACnBA,mDAAe,CACb,EACNA;IACIC,SAAS,EAAKmI,MAAM,CAAC,oBAAoB,CAAC;KAE1CpI,gFAA4C,EAC5CA,oEAAgC,CAC9B,CACJ;AAEd,CAAC;;ACXD,IAAMsb,WAAW,GAAc,SAAzBA,WAAWA,CAAAxb,IAAA;MAAiByb,OAAO,GAAAzb,IAAA,CAAPyb,OAAO;IAAEC,OAAO,GAAA1b,IAAA,CAAP0b,OAAO;EAC9C,OACIxb;IAAKuK,GAAG,EAAEiR,OAAO;IAAEvb,SAAS,OAAKmI,MAAM,CAAC,cAAc;KAClDpI;IAAKC,SAAS,OAAKmI,MAAM,CAAC,YAAY;KAClCpI;IAAKwI,GAAG,EAAE2I,gBAAgB,CAACoK,OAAO,CAAC;IAAEE,GAAG,EAAC;IAAS,CAChD,EACNzb;IACIC,SAAS,OAAKmI,MAAM,CAAC,mBAAmB,CAAG;IAC3CsT,uBAAuB,EAAE;MAAEC,MAAM,EAAEH;;IACrC,CACA;AAEd,CAAC;;ACbD,IAAMI,QAAQ,GAAG,CACb;EACIC,OAAO,EAAE,2BAA2B;EACpCL,OAAO,EACH;CACP,EACD;EACIK,OAAO,EAAE,qBAAqB;EAC9BL,OAAO,EACH;CACP,EACD;EACIK,OAAO,EAAE,sBAAsB;EAC/BL,OAAO,EAAE;CACZ,CACJ;AAED,IAAMM,eAAe,GAAc,SAA7BA,eAAeA,CAAAhc,IAAA;;EACjB,OACIE,6BAACoJ,cAAG;IAACnJ,SAAS,OAAKmI,MAAM,CAAC,gBAAgB;KACtCpI,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ,6BAACqb,YAAY,OAAG,CACd,EAENrb,6BAACqJ,cAAG;IAACE,EAAE,EAAE,EAAE;IAAEtJ,SAAS,EAAKmI,MAAM,CAAC,uBAAuB,CAAC;KACrDwT,QAAQ,CAACxV,GAAG,CAAC,UAACoV,OAAY;IAAA,OACvBxb,6BAACsb,WAAW;MACR/Q,GAAG,EAAEiR,OAAO,CAACK,OAAO;MACpBN,OAAO,EAAEC,OAAO,CAACK,OAAO;MACxBL,OAAO,EAAEA,OAAO,CAACA;MACnB;GACL,CAAC,CACA,CACJ;AAEd,CAAC;;ACtCD,IAAMO,0BAA0B,GAAG,KAAK;AAOxC,IAAMC,eAAe,GAAc,SAA7BA,eAAeA,CAAAlc,IAAA;MACjBiN,IAAI,GAAAjN,IAAA,CAAJiN,IAAI;IAAAkP,aAAA,GAAAnc,IAAA,CACJoc,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAGF,0BAA0B,GAAAE,aAAA;EAErC,IAAApN,SAAA,GAAsCC,cAAQ,CAAS/B,IAAI,CAAC+L,MAAM,CAAC;IAA5DqD,WAAW,GAAAtN,SAAA;IAAEuN,cAAc,GAAAvN,SAAA;EAClC,IAAMwN,GAAG,GAAGC,YAAM,CAAM,IAAI,CAAC;EAE7B,IAAMC,cAAc,GAAG3X,iBAAW,CAAC,UAAC4X,KAAa;IAC7C,OAAOA,KAAK,KAAKL,WAAW,GAAM/T,MAAM,CAAC,QAAQ,CAAC,SAAIA,MAAM,CAAC,MAAM,CAAC,GAAK,EAAE;GAC9E,EAAE,CAAC+T,WAAW,CAAC,CAAC;EAEjB,IAAMM,cAAc,GAAG7X,iBAAW,CAAC,UAAC4X,KAAa;IAC7C,OAAQL,WAAW,KAAK,CAAC,IAAIK,KAAK,KAAKzP,IAAI,CAAC+L,MAAM,GAAG,CAAC,IAAK0D,KAAK,KAAKL,WAAW,GAAG,CAAC,GAAG/T,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;GAC/G,EAAE,CAAC+T,WAAW,EAAEpP,IAAI,CAAC+L,MAAM,CAAC,CAAC;EAE9B,IAAM4D,OAAO,GAAG9X,iBAAW,CAAC;IACxByX,GAAG,IAAIA,GAAG,CAACM,OAAO,IAAIC,aAAa,CAACP,GAAG,CAACM,OAAO,CAAC;IAChDN,GAAG,CAACM,OAAO,GAAGE,WAAW,CAAC;MACvBT,cAAc,CAAC,UAAAlI,KAAK;QAAA,OAAIA,KAAK,IAAInH,IAAI,CAAC+L,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG5E,KAAK,GAAG,CAAC;QAAC;KACnE,EAAEgI,QAAQ,CAAC;GACf,EAAE,CAACA,QAAQ,EAAEnP,IAAI,CAAC+L,MAAM,CAAC,CAAC;EAE3BhJ,eAAS,CAAC;IACN4M,OAAO,EAAE;IACT,OAAO;MACHL,GAAG,IAAIA,GAAG,CAACM,OAAO,IAAIC,aAAa,CAACP,GAAG,CAACM,OAAO,CAAC;KACnD;GACJ,EAAE,CAAC5P,IAAI,CAAC+L,MAAM,EAAEoD,QAAQ,CAAC,CAAC;EAE3B,OACIlc;IAAKC,SAAS,EAAKmI,MAAM,CAAC,YAAY,CAAC;KAE/B2E,IAAI,CAAC3G,GAAG,CAAC,UAAC0W,GAAW,EAAEN,KAAa;IAAA,OAChCxc;MACIuK,GAAG,EAAEiS,KAAK;MACVf,GAAG,cAAWe,KAAK,GAAG,CAAC,CAAE;MACzBvc,SAAS,EAAKwc,cAAc,CAACD,KAAK,CAAC,SAAID,cAAc,CAACC,KAAK,CAAG;MAC9DhU,GAAG,EAAE2I,gBAAgB,CAAC2L,GAAG;MAC3B;GACL,CAAC,CAEJ;AAEd,CAAC;;AC7CD,IAAMC,UAAU,GAAG,wBAAwB;AAC3C,IAAMC,YAAY,GAAG,OAAO;AAC5B,IAAMC,YAAY,GAAG,OAAO;AAE5B,AAYA,IAAMC,eAAe,GAAG,WAAW;AACnC,IAAMC,UAAU,GAAG,iBAAiB;AACpC,IAAMC,SAAS,GAAG,CACd,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,CAC7B;AAED,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAAvd,IAAA;MAAMwd,OAAO,GAAAxd,IAAA,CAAPwd,OAAO;EACxB,IAAAzO,SAAA,GAA4BC,cAAQ,CAAU,KAAK,CAAC;IAA7CyO,MAAM,GAAA1O,SAAA;IAAE2O,SAAS,GAAA3O,SAAA;EACxB,IAAM4O,IAAI,GAAGxJ,sBAAW,CAAC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACC,MAAM,CAACsJ,IAAI;IAAC;EAE3D,IAAMxO,MAAM,GAAG,SAATA,MAAMA;IAAA,OAASuO,SAAS,CAAC,CAACD,MAAM,CAAC;;EAEvCzN,eAAS,CAAC;IACN,CAAC,CAAC2N,IAAI,GACCzf,QAAQ,CAAC8D,KAAK,GAAGob,eAAe,GAChClf,QAAQ,CAAC8D,KAAK,GAAGqb,UAAW;GACtC,EAAE,CAACM,IAAI,CAAC,CAAC;EAEV,OACIzd;IACIC,SAAS,EAAKmI,MAAM,CAAC,OAAO,CAAC,SAAIA,MAAM,CAAC,gBAAgB,CAAC;KAEzDpI;IACIC,SAAS,OAAKmI,MAAM,CAAC,cAAc;YAChCkV,OAAS,CAAQ,EACxBtd,6BAACgc,eAAe;IAACjP,IAAI,EAAEqQ;IAAa,EACpCpd;IAAKC,SAAS,OAAKmI,MAAM,CAAC,eAAe;KACrCpI,6BAAC0d,iBAAM;IAACC,KAAK;IAACC,MAAM,EAAC;KACjB5d,6BAAC6d,sBAAW;IAACnjB,IAAI,EAAC,GAAG;IAACuF,SAAS,OAAKmI,MAAM,CAAC,WAAW;KAClDpI;IACIwI,GAAG,EAAE2I,gBAAgB,CAAC,wBAAwB,CAAC;IAC/CsK,GAAG,EAAC;IACN,CACQ,EACdzb,6BAAC8d,kBAAe;IACZjc,OAAO,EAAEoN,MAAM;IACfhP,SAAS,EAAKmI,MAAM,CAAC,iBAAiB,CAAC,SAAIA,MAAM,CAAC,gBAAgB;IACpE,EACFpI,6BAAC+d,mBAAQ;IACLR,MAAM,EAAEA,MAAM;IACdS,MAAM;IACN/d,SAAS,OAAKmI,MAAM,CAAC,cAAc;KAEnCpI,6BAACie,cAAG;IACAhe,SAAS,EAAKmI,MAAM,CAAC,UAAU,CAAC,oDAAiD;IACjF4V,MAAM;KAENhe,6BAACke,kBAAO,QACJle,6BAACme,kBAAO;IACJle,SAAS,EAAKmI,MAAM,CAAC,YAAY,CAAC,0BAAuB;IACzD1N,IAAI,EAAC,qCAAqC;IAC1CkO,MAAM,EAAC;kBAGD,CACJ,EACV5I,6BAACke,kBAAO,QACJle,6BAACme,kBAAO;IACJle,SAAS,EAAKmI,MAAM,CAAC,YAAY,CAAC,0BAAuB;IACzD1N,IAAI,EAAC,iCAAiC;IACtCkO,MAAM,EAAC;eAGD,CACJ,EACV5I,6BAACke,kBAAO,QACJle,6BAACme,kBAAO;IACJle,SAAS,EAAKmI,MAAM,CAAC,YAAY,CAAC,0BAAuB;IACzD1N,IAAI,EAAC,iBAAiB;IACtBkO,MAAM,EAAC;sBAGD,CACJ,CACR,EACN5I;IACIC,SAAS,EAAKmI,MAAM,CAAC,gBAAgB,CAAC;KAErCqV,IAAI,GACDzd,6BAACkJ,mBAAI;IACDC,EAAE,EACEsU,IAAI,CAACnR,KAAK,CAAC3R,QAAQ,CAAC,OAAO,CAAC,GACtBoiB,UAAU,GACVU,IAAI,CAACnR,KAAK,CAAC3R,QAAQ,CAAC,SAAS,CAAC,GAC5BqiB,YAAY,GACZC,YAAY;IAExBhd,SAAS,OAAKmI,MAAM,CAAC,kBAAkB;iBAGpC,GAEPpI,6BAACkJ,mBAAI;IACDC,EAAE,EAAC,QAAQ;IACXlJ,SAAS,OAAKmI,MAAM,CAAC,kBAAkB;aAI9C,CACC,CACC,CACN,EAETpI;IAAKC,SAAS;KACVD,6BAAC8b,eAAe,OAAG,CACjB,EACN9b;IAAKC,SAAS,OAAKmI,MAAM,CAAC,sBAAsB;KAC5CpI;IACItF,IAAI,EAAC,sDAAsD;IAC3DkO,MAAM,EAAC;KAEP5I;IACIwI,GAAG,EAAE2I,gBAAgB,CAAC,qBAAqB,CAAC;IAC5CsK,GAAG,EAAC;IACN,CACF,CACF,CACJ,CACJ;AAEd,CAAC;;AChJD,IAAMrN,OAAK,GAAG,WAAW;AACzB,IAAMgQ,QAAQ,GAAO,SAAfA,QAAQA;EACVtO,eAAS,CAAC;IACN9R,QAAQ,CAAC8D,KAAK,GAAGsM,OAAK;GACzB,CAAC;EACF,OACIpO;IAAKC,SAAS,EAAC;KACXD;IAAKC,SAAS,EAAC;KACXD;IAAIC,SAAS,EAAC;WAAoC,EAClDD;IAAKC,SAAS,EAAC;KACXD;IAAIC,SAAS,EAAC;2BAA+B,EAC7CD;IAAGC,SAAS,EAAC;mDAET,EACJD,0CACIA,6BAACkJ,mBAAI;IAACC,EAAE,EAAC;kBAAqB,CAC5B,CACJ,CACJ,CACJ;AAEd,CAAC;;ACnBD,IAAMkV,OAAO,GACTre;EAAKC,SAAS,EAAC;GACXD;EAAKC,SAAS,EAAC;EAAgC,CAEtD;AAED,IAAMqe,UAAU,GAAG,SAAbA,UAAUA,CAAAxe,IAAA;MAAMye,MAAM,GAAAze,IAAA,CAANye,MAAM;EACxB,IAAM9jB,QAAQ,GAAG+T,0BAAW,EAAE;EAC9B,IAAQgQ,QAAQ,GAAK/jB,QAAQ,CAArB+jB,QAAQ;EAChB,IAAMC,SAAS,GAAG,CAACD,QAAQ,CAAC7jB,QAAQ,CAAC,QAAQ,CAAC,GAAG,eAAe,GAAG,EAAE;EACrE,IAAM+jB,YAAY,GAAGF,QAAQ,CAAC7jB,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,EAAE;EAC9D,OACIqF;IAAMC,SAAS,cAAYwe;KACvBze,6BAAC2e,gBAAU;IAACC,KAAK;IAAC3e,SAAS,aAAWye;KAClC1e,6BAAC6e,cAAQ;IAACC,QAAQ,EAAET;KAChBre,6BAAC+e,qBAAM,QACFR,MAAM,CAACnY,GAAG,CAAC,UAAC4Y,KAAU,EAAEC,GAAW;IAAA,OAChCjf,6BAACkf,oBAAK;MACF3U,GAAG,EAAE0U,GAAG;MACRE,IAAI,EAAEH,KAAK,CAACG,IAAI;MAChBC,OAAO,EAAEpf,6BAACgf,KAAK,CAACK,SAAS;MAC3B;GACL,CAAC,EACFrf,6BAACkf,oBAAK;IAACC,IAAI,EAAC,GAAG;IAACC,OAAO,EAAEpf,6BAACoe,QAAQ;IAAO,CACpC,CACF,CACF,CACV;AAEf,CAAC;AAED,mBAAepe,cAAK,CAACsf,IAAI,CAAChB,UAAU,CAAC;;AC3BrC,IAAMiB,eAAe,GAAkB;EACnCC,UAAU,EAAE;CACf;AAED,IAAMC,WAAW,GAAkB;EAC/Btf,MAAM,EAAE;CACX;AAED,IAAMuf,SAAS,GAAc,SAAvBA,SAASA,CAAA5f,IAAA;MAAiBC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAE8B,OAAO,GAAA/B,IAAA,CAAP+B,OAAO;EACzC,OACI7B,6BAAC2f,iBAAM;IACH9d,OAAO,EAAEA,OAAO;IAChBjB,KAAK,EAAC,SAAS;IACfjB,KAAK,EAAE8f,WAAW;IAClBxf,SAAS,EAAC;KAEVD,6BAAC4f,SAAM,OAAG,EACV5f;IAAMC,SAAS,EAAC,MAAM;IAACN,KAAK,EAAE4f;KACzBxf,IAAI,CACF,CACF;AAEjB,CAAC;;ACxBD,IAAM8f,gBAAgB,GAAc,SAA9BA,gBAAgBA,CAAA/f,IAAA;MAAiB+B,OAAO,GAAA/B,IAAA,CAAP+B,OAAO;IAAE5B,SAAS,GAAAH,IAAA,CAATG,SAAS;EACrD,OACID;IACIC,SAAS,EAAC,mDAAmD;IAC7D6B,KAAK,EAAC,QAAQ;IACdD,OAAO,EAAEA;KAET7B,6BAAC8f,aAAU;IAAC7f,SAAS,EAAEA;IAAa,CAClC;AAEd,CAAC;;ACTD,IAAM8f,cAAc,GAAc,SAA5BA,cAAcA,CAAAjgB,IAAA;MAAiB5G,KAAK,GAAA4G,IAAA,CAAL5G,KAAK;IAAE2I,OAAO,GAAA/B,IAAA,CAAP+B,OAAO;EAC/C,OACI7B,6BAAC2f,iBAAM;IAAC1f,SAAS,EAAC,gBAAgB;IAACW,KAAK,EAAC,MAAM;IAACiB,OAAO,EAAEA;KACpD3I,KAAK,CACD;AAEjB,CAAC;;ACJD,IAAM8mB,cAAc,GAAG,SAAjBA,cAAcA,CAAAlgB,IAAA;MAAM5G,KAAK,GAAA4G,IAAA,CAAL5G,KAAK;IAAA+mB,cAAA,GAAAngB,IAAA,CAAEG,SAAS;IAATA,SAAS,GAAAggB,cAAA,cAAG,EAAE,GAAAA,cAAA;IAAAC,UAAA,GAAApgB,IAAA,CAAEH,KAAK;IAALA,KAAK,GAAAugB,UAAA,cAAG,EAAE,GAAAA,UAAA;EACvD,IAAAC,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACT,OACIrgB,6BAACsgB,gBAAK;IAAC1f,KAAK,EAAC,SAAS;IAACX,SAAS,EAAEA,SAAS;IAAEN,KAAK,EAAEA;KAC/C0gB,CAAC,CAAC,oBAAoB,EAAE;IAAEE,IAAI,EAAErnB;GAAO,CAAC,CACrC;AAEhB,CAAC;;ACFD,IAAMsnB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIjG,KAAU;EAChC,IAAQkG,OAAO,GAAmDlG,KAAK,CAA/DkG,OAAO;IAAEC,UAAU,GAAuCnG,KAAK,CAAtDmG,UAAU;IAAEC,gBAAgB,GAAqBpG,KAAK,CAA1CoG,gBAAgB;IAAEC,cAAc,GAAKrG,KAAK,CAAxBqG,cAAc;EAC7D,IAAA/R,SAAA,GAA0BC,cAAQ,CAAS,EAAE,CAAC;IAAvC+R,KAAK,GAAAhS,SAAA;IAAEiS,QAAQ,GAAAjS,SAAA;EAEtBiB,eAAS,CAAC;IACNgR,QAAQ,CAACL,OAAO,CAAClnB,WAAW,CAACmd,QAAQ,EAAE,CAAC;GAC3C,EAAE,CAAC+J,OAAO,CAAClnB,WAAW,CAAC,CAAC;EAEzB,OACIyG,6BAACoJ,cAAG,QACApJ,6BAACqJ,cAAG;IAACE,EAAE,EAAE,EAAE;IAAEtJ,SAAS,EAAC;KACnBD,6BAAC+gB,qBAAU,QACP/gB;IAAKC,SAAS,EAAC;KACXD,6BAACghB,MAAM;IACH/gB,SAAS,EAAC,aAAa;IACvB9G,KAAK,EACD,CAAC,CAACsnB,OAAO,IAAI,CAAC,CAACA,OAAO,CAACjnB,QAAQ,GACzB;MACIN,KAAK,EAAEunB,OAAO,CAACjnB,QAAQ;MACvBL,KAAK,EAAEsnB,OAAO,CAACjnB;KAClB,GACDJ,iBAAiB;IAE3B6nB,OAAO,EAAEhoB,wBAAwB;IACjCsI,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;MAAA,OAAKmiB,cAAc,CAACniB,CAAC,CAACtF,KAAK,CAAC;;IAC7CiP,MAAM,EAAE;MACJ8Y,IAAI,EAAE,SAANA,IAAIA,CAAEC,IAAI;QAAA,OAAA3Q,QAAA,KAAU2Q,IAAI;UAAEC,MAAM,EAAE;;;KACrC;IACDC,YAAY,EAAE;IAChB,CACA,EAENrhB,6BAACshB,yBAAc;IAACrhB,SAAS,EAAC;KACtBD,6BAACuhB,yBAAc;IACXC,QAAQ;IACRC,GAAG,EAAC,QAAQ;IACZxhB,SAAS,EAAC,OAAO;IACjB2R,QAAQ,EAAE6O,OAAO,CAAClnB,WAAW,IAAI,CAAC;IAClCsI,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQ6e,UAAU,CAACD,OAAO,CAAClnB,WAAW,GAAG,CAAC,CAAC;;YAGrC,CACJ,EAEjByG;IACI0B,IAAI,EAAC,MAAM;IACXqM,EAAE,EAAC,iBAAiB;IACpB9N,SAAS,EAAC,yCAAyC;IACnDsB,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;MAAA,OAAKqiB,QAAQ,CAACriB,CAAC,CAACmK,MAAM,CAACzP,KAAK,CAAC;;IAC9CuoB,OAAO,EAAE,SAATA,OAAOA,CAAGjjB,CAAM;MACZ,IAAIA,CAAC,CAAC8L,GAAG,KAAK,OAAO,IAAI9L,CAAC,CAACkjB,OAAO,KAAK,EAAE,EAAE;QACvCjB,UAAU,CAACkB,QAAQ,CAACf,KAAK,CAAC,CAAC;;KAElC;IACD1nB,KAAK,EAAE0nB;IACT,EAEF7gB,6BAACshB,yBAAc;IAACrhB,SAAS,EAAC;KACtBD,6BAACuhB,yBAAc;IACXM,IAAI;IACJJ,GAAG,EAAC,QAAQ;IACZxhB,SAAS,EAAC,OAAO;IACjB2R,QAAQ,EACJ6O,OAAO,CAAClnB,WAAW,GACnBonB,gBAAgB,GAAGF,OAAO,CAACjnB,QAAQ;IAEvCqI,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQ6e,UAAU,CAACD,OAAO,CAAClnB,WAAW,GAAG,CAAC,CAAC;;YAGrC,CACJ,CACR,CACX,CACJ;AAEd,CAAC;;ACxFM,IAAMuoB,oBAAoB,GAAG5f,oBAAY,CAC5C,oCAAoC,CACvC;;ICFY6f,eAAe,GAAG7f,oBAAY,CACvC,gCAAgC,CACnC;;ACDD,IAAM8f,gBAAgB,GAAG,iBAAiB;AAE1C,IAAMC,kBAAkB,GAAM3nB,QAAQ,uBAAoB;AAE1D,AAAO,IAAM8S,KAAG,GAAG,SAANA,GAAGA,CAAI7G,MAAc;EAAA,OAC9ByE,GAAG,CAACoC,GAAG,CAAC6U,kBAAkB,EAAE;IAAE7X,MAAM,EAAE7D;GAAQ,CAAC;AAAA;AAEnD,AAAO,IAAM2b,OAAO,GAAG,SAAVA,OAAOA,CAAInU,EAAU;EAAA,OAAK/C,GAAG,CAACoC,GAAG,CAAI6U,kBAAkB,SAAIlU,EAAI,CAAC;AAAA;AAE7E,AAAO,IAAM7C,QAAM,GAAG,SAATA,MAAMA,CAAI6B,IAAS;EAAA,OAAK/B,GAAG,CAACgC,IAAI,CAACiV,kBAAkB,EAAElV,IAAI,CAAC;AAAA;AAEvE,AAAO,IAAMoV,QAAM,GAAG,SAATA,MAAMA,CAAIpV,IAAS;EAAA,OAC5B/B,GAAG,CAACoX,GAAG,CAAIH,kBAAkB,SAAIlV,IAAI,CAACgB,EAAE,EAAIhB,IAAI,CAAC;AAAA;AAErD,AAAO,IAAMe,QAAM,GAAG,SAATA,MAAMA,CAAIC,EAAU;EAAA,OAAK/C,GAAG,UAAO,CAAIiX,kBAAkB,SAAIlU,EAAI,CAAC;AAAA;AAE/E,AAAO,IAAMsU,gBAAgB,GAAG,SAAnBA,gBAAgBA;EAAA,OAASrX,GAAG,CAACoC,GAAG,MAAI4U,gBAAkB,CAAC;AAAA;;AChBpE,IAAMM,iBAAiB,GAAMhoB,QAAQ,+BAA4B;AAEjE,AAAO,IAAM8S,KAAG,GAAG,SAANA,GAAGA;EAAA,OAASpC,GAAG,CAACoC,GAAG,CAACkV,iBAAiB,CAAC;AAAA;;ACAnD,IAAMC,UAAU,GAAG,SAAbA,UAAUA;EACZ,IAAA1T,SAAA,GAA8BC,cAAQ,CAASzV,cAAc,CAAC;IAAvDonB,OAAO,GAAA5R,SAAA;IAAE2T,UAAU,GAAA3T,SAAA;EAC1B,IAAM4T,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,cAAmB;IACtC,IAAMC,UAAU,GAAAnS,QAAA,KACTiQ,OAAO,EACPiC,cAAc,CACpB;IACD,IAAI,CAAC,CAACC,UAAU,CAACrpB,YAAY,IAAI,CAAC,CAACopB,cAAc,CAACppB,YAAY,IAAIopB,cAAc,CAACppB,YAAY,IAAImnB,OAAO,CAACnnB,YAAY,EAAE;MACnHqpB,UAAU,CAACppB,WAAW,GAAG,CAAC;;IAG9BipB,UAAU,CAACG,UAAU,CAAC;GACzB;EAED,OAAO;IAAElC,OAAO,EAAPA,OAAO;IAAE+B,UAAU,EAAVA,UAAU;IAAEC,aAAa,EAAbA;GAAe;AACjD,CAAC;;ACRD,IAAMR,oBAAkB,GAAG,uBAAuB;AAClD,IAAMW,mBAAmB,GAAG,8BAA8B;AAC1D,IAAMxU,OAAK,GAAG,qBAAqB;AAEnC,IAAMyU,oBAAoB,GAAG,SAAvBA,oBAAoBA;EACtB,IAAMlU,QAAQ,GAAGC,0BAAW,EAAE;EAC9B,IAAAuR,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACT,IAAMyC,iBAAiB,GAAG7O,sBAAW,CACjC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAAC6O,aAAa,CAACD,iBAAiB;IACxD;EACD,IAAME,UAAU,GAAG/O,sBAAW,CAC1B,UAACC,KAAU;IAAA,OAAKA,KAAK,CAAC6O,aAAa,CAACC,UAAU;IACjD;EACD,IAAMC,gBAAgB,GAAGhP,sBAAW,CAChC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACgP,YAAY,CAACD,gBAAgB;IACtD;EACD,IAAAE,WAAA,GAAmCZ,UAAU,EAAE;IAAvC9B,OAAO,GAAA0C,WAAA,CAAP1C,OAAO;IAAEgC,aAAa,GAAAU,WAAA,CAAbV,aAAa;EAE9B,IAAMne,QAAQ,GAAGC,sBAAW,EAAE;EAE9B,IAAM6e,OAAO,GAAGxe,iBAAW;IAAA;;QAoBvBN,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAnB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAoO,MAAA,GAAAJ,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkBoI,KAAG,CAACqT,OAAO,CAAC,EAAArZ,IAAA,WAAxBhC,GAAG;UACT,IAAAsQ,SAAA,GAA8BtQ,GAAG,CAAC2H,IAAI;YAA9BsW,KAAK,GAAA3N,SAAA,CAAL2N,KAAK;YAAEL,UAAU,GAAAtN,SAAA,CAAVsN,UAAU;UACzB1e,QAAQ,CACJwd,oBAAoB,CAAC;YAAEgB,iBAAiB,EAAEO,KAAK;YAAEL,UAAU,EAAVA;WAAY,CAAC,CACjE;UAAA,IAAAhT,KAAA;YAAA,IACG,CAAC,CAACiT,gBAAgB,IAAIA,gBAAgB,CAACnK,MAAM,IAAI,CAAC;cAAA,OAAA/T,OAAA,CAAAC,OAAA,CAC3Bse,KAAW,EAAE,EAAAlc,IAAA,WAA9B+E,QAAQ;gBACd7H,QAAQ,CAACyd,eAAe,CAAC5V,QAAQ,CAACY,IAAI,CAACsW,KAAK,CAAC,CAAC;;;;UAAA,IAAArT,KAAA,IAAAA,KAAA,CAAA5I,IAAA,SAAA4I,KAAA,CAAA5I,IAAA;;OAErD,YAAQK,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAqL,MAAA,IAAAA,MAAA,CAAAjJ,IAAA,GAAAiJ,MAAA,CAAAjJ,IAAA,CAAAmJ,MAAA,IAAAA,MAAA,CAAAF,MAAA;KAEJ,QAAA5R,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,CAAC6F,QAAQ,EAAEmc,OAAO,CAAC,CAAC;EAEvB,IAAM8C,UAAU,GAAG3e,iBAAW,CAC1B,UAACmJ,EAAU;IACPzJ,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE1B,IAAI;MACAqC,QAAQ,CACJnC,QAAQ,CAAC;QACLob,MAAM,EAAE,IAAI;QACZ7b,IAAI,EAAE,SAAS;QACfwO,OAAO,EAAEmQ,CAAC,CAAC,2CAA2C,CAAC;QACvDmD,SAAS;UAAA;mCACC1V,QAAM,CAACC,EAAE,CAAC,EAAA3G,IAAA;cAChB9C,QAAQ,CACJhC,QAAQ,CAAC;gBACLZ,IAAI,EAAE,SAAS;gBACfwO,OAAO,EAAE;eACZ,CAAC,CACL;cACDuS,aAAa,CAAC;gBAAElpB,WAAW,EAAE;eAAG,CAAC;;WACpC,QAAAkF,CAAA;YAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;OACJ,CAAC,CACL;KACJ,CAAC,OAAOgJ,GAAG,EAAE;MAAA,IAAAmJ,cAAA,EAAAC,mBAAA;MACVvM,QAAQ,CACJhC,QAAQ,CAAC;QACLZ,IAAI,EAAE,QAAQ;QACdwO,OAAO,EAAE,EAAAU,cAAA,GAAAnJ,GAAG,CAAC0E,QAAQ,cAAAyE,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7D,IAAI,cAAA8D,mBAAA,uBAAlBA,mBAAA,CAAoB/O,KAAK,KAAI2F,GAAG,CAACyI;OAC7C,CAAC,CACL;;IAGL5L,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;GAC9B,EACD,CAACwe,OAAO,CAAC,CACZ;EAED,IAAMgD,UAAU,GAAG7e,iBAAW,CAAC,UAACmJ,EAAW;IACvC,IAAMlT,GAAG,GAAG,CAAC,CAACkT,EAAE,GAAMkU,oBAAkB,SAAIlU,EAAE,GAAK6U,mBAAmB;IACtEjU,QAAQ,CAAC9T,GAAG,CAAC;GAChB,EAAE,EAAE,CAAC;EAENiV,eAAS,CAAC;IACN9R,QAAQ,CAAC8D,KAAK,GAAGsM,OAAK;GACzB,EAAE,EAAE,CAAC;EAEN0B,eAAS,CAAC;IACNsT,OAAO,EAAE;GACZ,EAAE,CAAC3C,OAAO,CAAC,CAAC;EAEb,OAAO;IACHqC,iBAAiB,EAAjBA,iBAAiB;IACjBE,UAAU,EAAVA,UAAU;IACVvC,OAAO,EAAPA,OAAO;IACPgC,aAAa,EAAbA,aAAa;IACbW,OAAO,EAAPA,OAAO;IACPG,UAAU,EAAVA,UAAU;IACVE,UAAU,EAAVA,UAAU;IACVR,gBAAgB,EAAhBA;GACH;AACL,CAAC;;ACrGD,IAAMS,MAAM,GAAG,gBAAgB;AAE/B,IAAMC,iBAAiB,GAAO,SAAxBA,iBAAiBA;EACnB,IAAAC,qBAAA,GAQIf,oBAAoB,EAAE;IAPtBC,iBAAiB,GAAAc,qBAAA,CAAjBd,iBAAiB;IACjBE,UAAU,GAAAY,qBAAA,CAAVZ,UAAU;IACVvC,OAAO,GAAAmD,qBAAA,CAAPnD,OAAO;IACPgC,aAAa,GAAAmB,qBAAA,CAAbnB,aAAa;IACbc,UAAU,GAAAK,qBAAA,CAAVL,UAAU;IACVE,UAAU,GAAAG,qBAAA,CAAVH,UAAU;IACVR,gBAAgB,GAAAW,qBAAA,CAAhBX,gBAAgB;EAEpB,IAAA9C,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EAET,IAAMwD,QAAQ,GAAG,SAAXA,QAAQA,CAAI9V,EAAU;IACxBwV,UAAU,CAACxV,EAAE,CAAC;GACjB;EAED,OACI/N;IAAKC,SAAS,EAAC;KACXD;IAAIC,SAAS,EAAC;KAAQogB,CAAC,CAACqD,MAAM,CAAC,CAAM,EAErC1jB,6BAACoJ,cAAG;IAACnJ,SAAS,EAAC;KACXD,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ,6BAAC0f,SAAS;IACN3f,IAAI,EAAEsgB,CAAC,CAAC,iBAAiB,CAAC;IAC1Bxe,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQ4hB,UAAU,EAAE;;IAC7B,CACA,EACNzjB,6BAACqJ,cAAG;IACAE,EAAE,EAAE,CAAC;IACLtJ,SAAS,EAAC;KAETogB,CAAC,CAAC,oBAAoB,CAAC,QAAI2C,UAAU,CACpC,CACJ,EACNhjB,6BAACoJ,cAAG;IAACnJ,SAAS,EAAC;KACXD,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACJuZ,iBAAiB,IAAIA,iBAAiB,CAAChK,MAAM,GAAG,CAAC,GAC9C9Y,6BAAC8jB,gBAAK;IAACC,QAAQ;IAACC,KAAK;IAACC,OAAO;IAACC,UAAU;IAACna,IAAI,EAAC;KAC1C/J,4CACIA,yCACIA;IAAIC,SAAS,EAAC;KACTogB,CAAC,CAAC,eAAe,CAAC,CAClB,EACLrgB;IAAIC,SAAS,EAAC;KACTogB,CAAC,CAAC,eAAe,CAAC,CAClB,EACLrgB;IAAIC,SAAS,EAAC;KACTogB,CAAC,CAAC,cAAc,CAAC,CACjB,EACLrgB;IAAIC,SAAS,EAAC;KACTogB,CAAC,CAAC,QAAQ,CAAC,CACX,CACJ,CACD,EACRrgB,4CACK8iB,iBAAiB,CAAC1c,GAAG,CAAC,UAAC+d,MAAW;IAAA,OAC/BnkB;MAAIuK,GAAG,EAAE4Z,MAAM,CAACpW;OACZ/N;MAAIC,SAAS,EAAC;OACVD,6BAAC+f,cAAc;MACX7mB,KAAK,EAAEirB,MAAM,CAACC,OAAO;MACrBviB,OAAO,EAAE,SAATA,OAAOA;QAAA,OACH4hB,UAAU,CAACU,MAAM,CAACpW,EAAE,CAAC;;MAE3B,CACD,EACL/N;MAAIC,SAAS,EAAC;OACTkkB,MAAM,CAACE,QAAQ,CAAC1qB,IAAI,CACpB,EACLqG;MAAIC,SAAS,EAAC;OACTqkB,cAAM,CACH,IAAIpY,IAAI,CAACiY,MAAM,CAACI,SAAS,CAAC,EAC1BrqB,WAAW,CACd,CACA,EAEL8F;MAAIC,SAAS,EAAC;OACVD,6BAAC6f,gBAAgB;MACbhe,OAAO,EAAE,SAATA,OAAOA;QAAA,OACHgiB,QAAQ,CAACM,MAAM,CAACpW,EAAE,CAAC;;MAEzB,CACD,CACJ;GACR,CAAC,CACE,CACJ,GAER/N,6BAACggB,cAAc;IAAC9mB,KAAK,EAAEmnB,CAAC,CAAC,UAAU;IACtC,EACDrgB,6BAACoJ,cAAG;IAACnJ,SAAS,EAAC;KACXD,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ,6BAACwgB,gBAAgB;IACbC,OAAO,EAAEA,OAAO;IAChBE,gBAAgB,EAAEqC,UAAU;IAC5BpC,cAAc,EAAE,SAAhBA,cAAcA,CAAGpnB,QAAgB;MAAA,OAC7BipB,aAAa,CAAC;QAAEjpB,QAAQ,EAARA;OAAU,CAAC;;IAE/BknB,UAAU,EAAE,SAAZA,UAAUA,CAAGnnB,WAAmB;MAAA,OAC5BkpB,aAAa,CAAC;QAAElpB,WAAW,EAAXA;OAAa,CAAC;;IAEpC,CACA,CACJ,CACJ,EACNyG,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ,6BAAC8jB,gBAAK;IAACC,QAAQ;IAACC,KAAK;IAACC,OAAO;IAACC,UAAU;IAACna,IAAI,EAAC;KAC1C/J,4CACIA,yCACIA;IAAIC,SAAS,EAAC;KACTogB,CAAC,CAAC,eAAe,CAAC,CAClB,CACJ,CACD,EACRrgB,4CACKijB,gBAAgB,CAAC7c,GAAG,CAAC,UAAC+d,MAAW;IAAA,OAC9BnkB;MAAIuK,GAAG,EAAE4Z,MAAM,CAACpW;OACZ/N;MAAIC,SAAS,EAAC;OACTkkB,MAAM,CAACxqB,IAAI,CACX,CACJ;GACR,CAAC,CACE,CACJ,CACN,CACJ,CACJ;AAEd,CAAC;;ACpID,IAAMgG,OAAK,GAAkB;EACzB6kB,KAAK,EAAE,MAAM;EACbjkB,QAAQ,EAAE,OAAO;EACjBkkB,MAAM,EAAE,EAAE;EACVrkB,eAAe,EAAE,MAAM;EACvBskB,SAAS,EAAE,gBAAgB;EAC3BC,OAAO,EAAE,UAAU;EACnBvD,MAAM,EAAE;CACX;AAED,IAAMwD,mBAAmB,GAAc,SAAjCA,mBAAmBA,CAAA9kB,IAAA;MACrB+kB,WAAW,GAAA/kB,IAAA,CAAX+kB,WAAW;IACXrB,SAAS,GAAA1jB,IAAA,CAAT0jB,SAAS;IACTsB,QAAQ,GAAAhlB,IAAA,CAARglB,QAAQ;EAER,IAAA3E,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACT,IAAM0E,cAAc,GAChBjnB,WAAW,IAAI,GAAG,GACZuM,MAAM,CAAC2a,MAAM,CAACrlB,OAAK,EAAE;IACjB8kB,MAAM,EAAE,CAAC;IACTQ,KAAK,EAAE;GACV,CAAC,GAAAzU,QAAA,KACG7Q,OAAK,CAAE;EACtB,OACIK,6BAACoJ,cAAG;IAAC8b,IAAI;IAACvlB,KAAK,EAAEolB;KACb/kB,6BAACqJ,cAAG;IACAE,EAAE,EAAE,EAAE;IACN5J,KAAK,EAAE;MAAEwlB,SAAS,EAAErnB,WAAW,IAAI,GAAG,GAAG,OAAO,GAAG;;KAEnDkC,6BAAC2f,iBAAM;IACH/e,KAAK,EAAC,SAAS;IACfmJ,IAAI,EAAC,IAAI;IACT9J,SAAS,EAAC,qBAAqB;IAC/B4B,OAAO,EAAE2hB;KAERqB,WAAW,CACP,EACT7kB,6BAAC2f,iBAAM;IAAC5V,IAAI,EAAC,IAAI;IAAC9J,SAAS,EAAC,gBAAgB;IAAC4B,OAAO,EAAEijB;KACjDzE,CAAC,CAAC,QAAQ,CAAC,CACP,CACP,CACJ;AAEd,CAAC;;AC/CD,IAAM+E,aAAa,GAAc,SAA3BA,aAAaA,CAAAtlB,IAAA;MAAiB+B,OAAO,GAAA/B,IAAA,CAAP+B,OAAO;EACvC,OAAO7B;IAAKC,SAAS,EAAC,mDAAmD;IAAC6B,KAAK,EAAC,QAAQ;IAACD,OAAO,EAAEA;KAC9F7B,6BAAC4f,SAAM,OAAG,CACR;AACV,CAAC;;ACCD,IAAMyF,aAAa,GAAG,CAClB;EAAEnsB,KAAK,EAAE,mBAAmB;EAAEosB,OAAO,EAAE;CAAmB,EAC1D;EAAEpsB,KAAK,EAAE,kBAAkB;EAAEosB,OAAO,EAAE;CAAkB,EACxD;EAAEpsB,KAAK,EAAE,YAAY;EAAEosB,OAAO,EAAE;CAAY,EAC5C;EAAEpsB,KAAK,EAAE,aAAa;EAAEosB,OAAO,EAAE;CAAa,EAC9C;EAAEpsB,KAAK,EAAE,cAAc;EAAEosB,OAAO,EAAE;CAAc,EAChD;EAAEpsB,KAAK,EAAE,WAAW;EAAEosB,OAAO,EAAE;CAAW,EAC1C;EAAEpsB,KAAK,EAAE,UAAU;EAAEosB,OAAO,EAAE;CAAU,CAC3C;AAED,IAAMC,WAAW,GAAc,SAAzBA,WAAWA,CAAAzlB,IAAA;MACb+B,QAAO,GAAA/B,IAAA,CAAP+B,OAAO;IACP2jB,uBAAuB,GAAA1lB,IAAA,CAAvB0lB,uBAAuB;EAEvB,IAAArF,eAAA,GAAYC,2BAAc,EAAE;IAArBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EAER,IAAIjW,MAAM,GAAG,CAAC,CAACob,uBAAuB,MAAAC,MAAA,CAC5BJ,aAAa,GAAE;IAAEnsB,KAAK,EAAE,cAAc;IAAEosB,OAAO,EAAE;GAAc,KACnED,aAAa;EACnB,OACIrlB,6BAAC8jB,gBAAK;IAACC,QAAQ;IAACC,KAAK;IAACC,OAAO;IAACC,UAAU;IAACna,IAAI,EAAC;KAC1C/J,4CACIA,yCACIA;IAAIC,SAAS,EAAC;KAAaogB,CAAC,CAAC,QAAQ,CAAC,CAAM,EAC5CrgB;IAAIC,SAAS,EAAC;KAAaogB,CAAC,CAAC,SAAS,CAAC,CAAM,EAC7CrgB,wCAAM,CACL,CACD,EACRA,4CACKoK,MAAM,CAAChE,GAAG,CAAC,UAAAsf,KAAK;IAAA,OACb1lB;MAAIuK,GAAG,EAAEmb,KAAK,CAACxsB;OACX8G;MAAIC,SAAS,EAAC;OAAgBylB,KAAK,CAACxsB,KAAK,CAAM,EAC/C8G;MAAIC,SAAS,EAAC;OAAgBogB,CAAC,CAACqF,KAAK,CAACJ,OAAO,CAAC,CAAM,EACpDtlB;MAAIC,SAAS,EAAC;OACVD,6BAAColB,aAAa;MAACvjB,OAAO,EAAE,SAATA,OAAOA;QAAA,OAAQA,QAAO,CAAC6jB,KAAK,CAAC;;MAAI,CAC/C,CACJ;GACR,CAAC,CACE,CACJ;AAEhB,CAAC;;AC9CD,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIpL,KAAU;EACpC,IAAMjW,QAAQ,GAAGC,sBAAW,EAAE;EAE9B,IAAM0e,gBAAgB,GAAGhP,sBAAW,CAChC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACgP,YAAY,CAACD,gBAAgB;IACtD;EACDnT,eAAS,CAAC;IACN8V,iBAAiB,EAAE;GACtB,EAAE,EAAE,CAAC;EACN,IAAMA,iBAAiB,YAAjBA,iBAAiBA;IAAA;qCACf;QAAA,OAAA7gB,OAAA,CAAAC,OAAA,CACkBse,KAAW,EAAE,EAAAlc,IAAA,WAAzBhC,GAAG;UACTd,QAAQ,CAACyd,eAAe,CAAC3c,GAAG,CAAC2H,IAAI,CAACsW,KAAK,CAAC,CAAC;;OAC5C,YAAQ5b,GAAG,EAAE;QACV5C,OAAO,CAAC6C,KAAK,CAACD,GAAG,CAAC;OACrB;MAAA,OAAA1C,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EACD,IAAQsP,EAAE,GAAKwM,KAAK,CAAZxM,EAAE;EACV,IAAM8X,WAAW,GAAG5C,gBAAgB,CAAC7c,GAAG,CAAC,UAACsE,CAAM;IAC5C,OAAO;MACHqD,EAAE,EAAErD,CAAC,CAACqD,EAAE;MACR5U,KAAK,EAAEuR,CAAC,CAACqD,EAAE;MACX7U,KAAK,EAAEwR,CAAC,CAAC/Q;KACZ;GACJ,CAAC;EACF,IAAMmsB,SAAS,GAAG,CAAC,CAAC/X,EAAE,GAChB8X,WAAW,CAACE,IAAI,CAAC,UAACC,MAAW;IAAA,OAAKA,MAAM,CAAC7sB,KAAK,KAAK4U,EAAE;IAAC,IAAI,IAAI,GAC9D,IAAI;EAEV,OAAO/N,6BAACghB,MAAM;IAACC,OAAO,EAAE4E,WAAW;IAAE1sB,KAAK,EAAE2sB;KAAevL,KAAK,EAAI;AACxE,CAAC;;AC5BD,IAAM0L,aAAa,GAAc,SAA3BA,aAAaA,CAAAnmB,IAAA;MAAiBC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAEE,SAAS,GAAAH,IAAA,CAATG,SAAS;EAC/C,OACID,6BAACkmB,gBAAK;IAACjmB,SAAS,EAAEA;KACbF,IAAI,EACLC;IAAMC,SAAS,EAAC;SAA2B,CACvC;AAEhB,CAAC;AAED,sBAAeqf,UAAI,CAAC2G,aAAa,CAAC;;ACdlC,IAAME,gBAAgB,GAClB,4HAA4H;AAMhI,SAAwBC,UAAUA,CAAAtmB,IAAA;MAAGumB,IAAI,GAAAvmB,IAAA,CAAJumB,IAAI;EACrC,IAAMC,OAAO,GAAGC,yBAAU,CAACF,IAAI,CAAC;EAEhCvW,eAAS,CAAC;IACN,IAAIwW,OAAO,CAACpS,KAAK,KAAK,SAAS,EAAE;MAC7B,IAAI1Z,MAAM,CAACgsB,OAAO,CAACL,gBAAgB,CAAC,EAAE;QAClCG,OAAO,CAACG,OAAO,EAAE;OACpB,MAAM;QACHH,OAAO,CAAC7jB,KAAK,EAAE;;;GAG1B,EAAE,CAAC6jB,OAAO,CAAC,CAAC;EAEb,OAAO,IAAI;AACf;;ACjBA,IAAMI,cAAc,GAAc,SAA5BA,cAAcA,CAAA5mB,IAAA;MAAiB5G,KAAK,GAAA4G,IAAA,CAAL5G,KAAK;IAAE2qB,QAAQ,GAAA/jB,IAAA,CAAR+jB,QAAQ;EAChD,OACI7jB,6BAAC8G,cAAQ,QACL9G;IAAMC,SAAS,EAAC;KAAQ/G,KAAK,CAAQ,EACrC8G;IACIC,SAAS,EAAC,sDAAsD;IAChE4B,OAAO,EAAEgiB;IACX,CACK;AAEnB,CAAC;;ACdD,IAAM8C,eAAe,GAAMrsB,QAAQ,cAAW;AAC9C,IAAMssB,cAAc,GAAMD,eAAe,oBAAiB;AAC1D,IAAME,oBAAoB,GAAMF,eAAe,0BAAuB;AACtE,IAAMG,kBAAkB,GAAMH,eAAe,wBAAqB;AAClE,IAAMI,YAAY,GAAMJ,eAAe,6BAA0B;AACjE,IAAMK,eAAe,GAAML,eAAe,qBAAkB;AAC5D,IAAMM,aAAa,GAAMN,eAAe,mBAAgB;AACxD,IAAMO,eAAe,GAAMP,eAAe,qBAAkB;AAC5D,IAAMQ,UAAU,GAAMR,eAAe,gBAAa;AAClD,IAAMS,WAAW,GAAMT,eAAe,iBAAc;AACpD,IAAMU,aAAa,GAAMV,eAAe,mBAAgB;AACxD,IAAMW,aAAa,GAAMX,eAAe,mBAAgB;AACxD,IAAMY,WAAW,GAAMZ,eAAe,iBAAc;AAEpD,IAAaa,UAAU,GAAG,SAAbA,UAAUA,CAAIC,QAAkB;EAAA,OACzCjc,SAAS,CAACwB,IAAI,CAAC2Z,eAAe,EAAEc,QAAQ,CAAC;AAAA;AAC7C,IAAaC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAID,QAAkB;EAAA,OACjDjc,SAAS,CAACwB,IAAI,CAAC6Z,oBAAoB,EAAEY,QAAQ,CAAC;AAAA;AAClD,IAAaE,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAIF,QAAkB;EAAA,OACtDjc,SAAS,CAACwB,IAAI,CAAC8Z,kBAAkB,EAAEW,QAAQ,CAAC;AAAA;AAChD,AAAO,IAAMG,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIH,QAAkB;EAAA,OAClDjc,SAAS,CAACwB,IAAI,CAAC4Z,cAAc,EAAEa,QAAQ,CAAC;AAAA;AAC5C,AAAO,IAAMI,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIJ,QAAkB;EAAA,OAChDjc,SAAS,CAACwB,IAAI,CAAC+Z,YAAY,EAAEU,QAAQ,CAAC;AAAA;AAC1C,AAAO,IAAMK,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIL,QAAkB;EAAA,OACnDjc,SAAS,CAACwB,IAAI,CAACga,eAAe,EAAES,QAAQ,CAAC;AAAA;AAC7C,AAAO,IAAMM,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIN,QAAkB;EAAA,OACjDjc,SAAS,CAACwB,IAAI,CAACia,aAAa,EAAEQ,QAAQ,CAAC;AAAA;AAC3C,AAAO,IAAMO,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIP,QAAkB;EAAA,OACnDjc,SAAS,CAACwB,IAAI,CAACka,eAAe,EAAEO,QAAQ,CAAC;AAAA;AAC7C,AAAO,IAAMQ,eAAe,GAAG,SAAlBA,eAAeA,CAAIR,QAAkB;EAAA,OAC9Cjc,SAAS,CAACwB,IAAI,CAACma,UAAU,EAAEM,QAAQ,CAAC;AAAA;AACxC,AAAO,IAAMS,UAAU,GAAG,SAAbA,UAAUA,CAAI3d,GAAW;EAAA,OAClCS,GAAG,UAAO,CAAIoc,WAAW,aAAQ7c,GAAK,CAAC;AAAA;AAC3C,AAAO,IAAM4d,YAAY,GAAG,SAAfA,YAAYA,CAAI5d,GAAW;EAAA,OACpCS,GAAG,UAAO,CAAIqc,aAAa,aAAQ9c,GAAK,CAAC;AAAA;AAC7C,AAAO,IAAM6d,YAAY,GAAG,SAAfA,YAAYA,CAAIC,MAAc,EAAEC,UAAkB;EAAA,OAC3Dtd,GAAG,CAACgC,IAAI,CAACsa,aAAa,EAAE;IACpBe,MAAM,EAAEA,MAAM,IAAI,EAAE;IACpBC,UAAU,EAAEA;GACf,CAAC;AAAA;AACN,AAAO,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAIhe,GAAW,EAAE5Q,IAAY;EAAA,OAChDqR,GAAG,CAACgC,IAAI,CAACua,WAAW,EAAE;IAAEhd,GAAG,EAAEA,GAAG;IAAE5Q,IAAI,EAAEA;GAAM,CAAC;AAAA;;ACpCnD,IAAMiS,MAAM,GAAQ;EAChBzL,MAAM,EAAE,GAAG;EACXqoB,OAAO,EAAE,KAAK;EACdC,iBAAiB,EAAE,IAAI;EACvBC,gBAAgB,EAAE,KAAK;EACvBC,QAAQ,EAAE,KAAK;EACfC,YAAY,EAAE,KAAK;EACnBC,OAAO,0LAEwD;EAC/DC,OAAO,4KAEmD;EAC1DC,iBAAiB,EAAE;CACtB;AAED,IAAMtlB,OAAK,GAAA+M,QAAA,KACJ5E,MAAM;EACTod,qBAAqB,WAArBA,qBAAqBA,CAAkBC,QAAa,EAAEC,OAAiB;IAAA;MACnE,IAAMC,SAAS,GAAG,IAAIC,QAAQ,EAAE;MAChCD,SAAS,CAACE,MAAM,CAAC,MAAM,EAAEJ,QAAQ,CAACK,IAAI,EAAE,EAAEL,QAAQ,CAACM,QAAQ,EAAE,CAAC;MAAA,IAAAvZ,KAAA,GAAAC,MAAA,aAC1D;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACuB6iB,iBAAiB,CAACsB,SAAS,CAAC,EAAA/hB,IAAA,WAAAtH,IAAA;UAAA,IAA3CiN,IAAI,GAAAjN,IAAA,CAAJiN,IAAI;UACZmc,OAAO,CAAC/V,UAAU,CAACpG,IAAI,CAACxC,GAAG,CAAC,CAAC;;OAChC,cAAa,EAEb;MAAA,OAAAxF,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;AAAA,EACJ;AAED,IAAM+qB,UAAQ,GAAAhZ,QAAA,KACP5E,MAAM;EACTod,qBAAqB,WAArBA,qBAAqBA,CAAkBC,QAAa,EAAEC,OAAY;IAAA;MAC9D,IAAMC,SAAS,GAAG,IAAIC,QAAQ,EAAE;MAChCD,SAAS,CAACE,MAAM,CAAC,MAAM,EAAEJ,QAAQ,CAACK,IAAI,EAAE,EAAEL,QAAQ,CAACM,QAAQ,EAAE,CAAC;MAAA,IAAAlZ,MAAA,GAAAJ,MAAA,aAC1D;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACuB8iB,oBAAoB,CAACqB,SAAS,CAAC,EAAA/hB,IAAA,WAAAqiB,KAAA;UAAA,IAA9C1c,IAAI,GAAA0c,KAAA,CAAJ1c,IAAI;UACZmc,OAAO,CAAC/V,UAAU,CAACpG,IAAI,CAACxC,GAAG,CAAC,CAAC;;OAChC,cAAa,EAEb;MAAA,OAAAxF,OAAA,CAAAC,OAAA,CAAAqL,MAAA,IAAAA,MAAA,CAAAjJ,IAAA,GAAAiJ,MAAA,CAAAjJ,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;AAAA,EACJ;AAED,IAAMirB,QAAM,GAAAlZ,QAAA,KACL5E,MAAM;EACTzL,MAAM,EAAElE,oBAAoB;EAC5B+sB,qBAAqB,WAArBA,qBAAqBA,CAAkBC,QAAa,EAAEC,OAAiB;IAAA;MACnE,IAAMC,SAAS,GAAG,IAAIC,QAAQ,EAAE;MAChCD,SAAS,CAACE,MAAM,CAAC,MAAM,EAAEJ,QAAQ,CAACK,IAAI,EAAE,EAAEL,QAAQ,CAACM,QAAQ,EAAE,CAAC;MAAA,IAAAhZ,MAAA,GAAAN,MAAA,aAC1D;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACuB+iB,kBAAkB,CAACoB,SAAS,CAAC,EAAA/hB,IAAA,WAAAuiB,KAAA;UAAA,IAA5C5c,IAAI,GAAA4c,KAAA,CAAJ5c,IAAI;UACZmc,OAAO,CAAC/V,UAAU,CAACpG,IAAI,CAACxC,GAAG,CAAC,CAAC;;OAChC,cAAa,EAEb;MAAA,OAAAxF,OAAA,CAAAC,OAAA,CAAAuL,MAAA,IAAAA,MAAA,CAAAnJ,IAAA,GAAAmJ,MAAA,CAAAnJ,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;AAAA,EACJ;AAED,IAAMmrB,QAAQ,GAAApZ,QAAA,KACP5E,MAAM;EACTzL,MAAM,EAAElE,oBAAoB;EAC5B4tB,iBAAiB,EAAE,IAAI;EACvBhB,OAAO,0LAEwD;EAC/DC,OAAO,oLAE2D;EAClEE,qBAAqB,WAArBA,qBAAqBA,CAAkBC,QAAa,EAAEC,OAAiB;IAAA;MACnE,IAAMC,SAAS,GAAG,IAAIC,QAAQ,EAAE;MAChCD,SAAS,CAACE,MAAM,CAAC,MAAM,EAAEJ,QAAQ,CAACK,IAAI,EAAE,EAAEL,QAAQ,CAACM,QAAQ,EAAE,CAAC;MAAA,IAAA9Y,MAAA,GAAAR,MAAA,aAC1D;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACuBgjB,oBAAoB,CAACmB,SAAS,CAAC,EAAA/hB,IAAA,WAAA0iB,KAAA;UAAA,IAA9C/c,IAAI,GAAA+c,KAAA,CAAJ/c,IAAI;UACZmc,OAAO,CAAC/V,UAAU,CAACpG,IAAI,CAACxC,GAAG,CAAC,CAAC;;OAChC,cAAa,EAEb;MAAA,OAAAxF,OAAA,CAAAC,OAAA,CAAAyL,MAAA,IAAAA,MAAA,CAAArJ,IAAA,GAAAqJ,MAAA,CAAArJ,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EACDsrB,oBAAoB,EAAE,SAAtBA,oBAAoBA,CAAYC,EAAO;IACnC,IAAInJ,KAAK,GAAG7iB,QAAQ,CAACisB,aAAa,CAAC,OAAO,CAAC;IAC3CpJ,KAAK,CAACqJ,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;IAClCrJ,KAAK,CAACqJ,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC;IACvCrJ,KAAK,CAACsJ,QAAQ,aAAmB1rB,CAAM;MAAA;QACnC,IAAM2rB,IAAI,GAAG3rB,CAAC,CAACmK,MAAM,CAACyhB,KAAK,CAAC,CAAC,CAAC;QAC9B,IAAQ1wB,IAAI,GAAKywB,IAAI,CAAbzwB,IAAI;QACZ,IAAM8tB,QAAQ,GAAG,IAAI2B,QAAQ,EAAE;QAC/B3B,QAAQ,CAAC4B,MAAM,CAAC,MAAM,EAAEe,IAAI,EAAEzwB,IAAI,CAAC;QAAA,OAAAoL,OAAA,CAAAC,OAAA,CAEZgjB,oBAAoB,CAACP,QAAQ,CAAC,EAAArgB,IAAA,WAAAkjB,KAAA;UAAA,IAA7Cvd,IAAI,GAAAud,KAAA,CAAJvd,IAAI;UACZid,EAAE,CAAC7W,UAAU,CAACpG,IAAI,CAACxC,GAAG,CAAC,CAAC;;OAC3B,QAAA9L,CAAA;QAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;IAEDoiB,KAAK,CAAC0J,KAAK,EAAE;;AAChB,EACJ;AAED,IAAMC,YAAY,GAAG;EACjB/mB,KAAK,EAALA,OAAK;EACL+lB,QAAQ,EAARA,UAAQ;EACRE,MAAM,EAANA,QAAM;EACNE,QAAQ,EAARA;CACH;;ACpFD,IAAM9D,SAAS,GAAwB;EACnC/X,EAAE,EAAE,CAAC;EACLqW,OAAO,EAAE,EAAE;EACXqG,UAAU,EAAE,CAAC;EACbtsB,IAAI,EAAE,EAAE;EACRusB,WAAW,EAAE;CAChB;AAED,IAAMC,uBAAuB,GAAG,uBAAuB;AACvD,IAAMvc,OAAK,GAAG,uBAAuB;AACrC,IAAMwc,cAAc,GAAG,OAAO;AAE9B,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAI9c,EAAW;EACvC,IAAI+c,SAAc;EAClB,IAAMxmB,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAMoK,QAAQ,GAAGC,0BAAW,EAAE;EAC9B,IAAAC,SAAA,GACIC,cAAQ,CAAsBgX,SAAS,CAAC;IADrCiF,mBAAmB,GAAAlc,SAAA;IAAEmc,sBAAsB,GAAAnc,SAAA;EAElD,IAAAK,UAAA,GAA4BJ,cAAQ,CAAU,KAAK,CAAC;IAA7Cmc,MAAM,GAAA/b,UAAA;IAAEgc,SAAS,GAAAhc,UAAA;EACxB,IAAMic,aAAa,YAAbA,aAAaA;IAAA;MACfpgB,YAAY,CAACiB,OAAO,CAACxR,MAAM,CAACC,QAAQ,CAACC,IAAI,EAAE,MAAM,CAAC;MAClDwwB,SAAS,CAAC,IAAI,CAAC;MAAA,OAAAnmB,OAAA,CAAAC,OAAA;KAClB,QAAAvG,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAA4Q,UAAA,GAAwCP,cAAQ,CAAW,EAAE,CAAC;IAAvDsc,YAAY,GAAA/b,UAAA;IAAEgc,eAAe,GAAAhc,UAAA;EACpC,IAAAG,UAAA,GAAoCV,cAAQ,CAAM,EAAE,CAAC;IAA9Cwc,UAAU,GAAA9b,UAAA;IAAE+b,aAAa,GAAA/b,UAAA;EAChC,IAAAG,UAAA,GAAoCb,cAAQ,CAAS,EAAE,CAAC;IAAjD0c,UAAU,GAAA7b,UAAA;IAAE8b,aAAa,GAAA9b,UAAA;EAEhCG,eAAS,CAAC;IACN,CAAC,CAAC/B,EAAE,IAAIqV,OAAO,EAAE;GACpB,EAAE,CAACrV,EAAE,CAAC,CAAC;EAER,IAAMqV,OAAO,GAAGxe,iBAAW;IAAA;;QA4BvBN,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MA3B3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA+N,KAAA,GAAAC,MAAA,aAEtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkBkd,OAAO,CAACnU,EAAY,CAAC,EAAA3G,IAAA,WAAjChC,GAAG;UACT4lB,sBAAsB,CAAC;YACnBjd,EAAE,EAAE3I,GAAG,CAAC2H,IAAI,CAACgB,EAAE;YACfqW,OAAO,EAAEhf,GAAG,CAAC2H,IAAI,CAACqX,OAAO;YACzBqG,UAAU,EAAErlB,GAAG,CAAC2H,IAAI,CAACsX,QAAQ,CAACtW,EAAE;YAChC5P,IAAI,EAAEiH,GAAG,CAAC2H,IAAI,CAAC5O,IAAI;YACnBusB,WAAW,EAAEtlB,GAAG,CAAC2H,IAAI,CAAC2d,WAAW,IAAI;WACxC,CAAC;UACF1sB,QAAQ,CAAC8D,KAAK,GAAGsD,GAAG,CAAC2H,IAAI,CAACqX,OAAO;UACjC0G,SAAS,IACLA,SAAS,CAACY,MAAM,CAACC,WAAW,CACxB,eAAe,EACf,KAAK,EACLvmB,GAAG,CAAC2H,IAAI,CAAC5O,IAAI,CAChB;;OACR,YAAQsJ,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA,CAAAiJ,MAAA,IAAAA,MAAA,CAAAL,KAAA;KAGJ,QAAAvR,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,CAACsP,EAAE,CAAC,CAAC;EAER,IAAM6d,aAAa,YAAbA,aAAaA;IAAA;;QAiBftnB,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAhB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAsO,MAAA,GAAAN,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkBqd,gBAAgB,EAAE,EAAAjb,IAAA,WAA9BhC,GAAG;UACT,IAAM2H,IAAI,GAAG3H,GAAG,CAAC2H,IAAI;UAAA,IAEjB,CAAC,CAACA,IAAI;YACN0e,aAAa,CAAC1e,IAAI,CAACxC,GAAG,CAAC;;;OAE9B,YAAQ9C,GAAG,EAAE;QAAA,IAAAmJ,cAAA,EAAAC,mBAAA;QACVvM,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAU,cAAA,GAAAnJ,GAAG,CAAC0E,QAAQ,cAAAyE,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7D,IAAI,cAAA8D,mBAAA,uBAAlBA,mBAAA,CAAoB/O,KAAK,KAAI;SACzC,CAAC,CACL;OACJ;MAAA,OAAAiD,OAAA,CAAAC,OAAA,CAAAuL,MAAA,IAAAA,MAAA,CAAAnJ,IAAA,GAAAmJ,MAAA,CAAAnJ,IAAA,CAAAqJ,MAAA,IAAAA,MAAA,CAAAF,MAAA;KAEJ,QAAA9R,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMotB,YAAY,GAAG,SAAfA,YAAYA,CAAIC,IAAS;IAAA,OAAMhB,SAAS,GAAGgB,IAAI;GAAC;EAEtD,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAI3hB,MAAW;IAC1B0gB,SAAS,IACLA,SAAS,CAACY,MAAM,CAACC,WAAW,CACxB,kBAAkB,EAClB,KAAK,QACDvhB,MAAM,CAAClR,KAAO,CACrB;GACR;EAED,IAAM8yB,UAAU,GAAGpnB,iBAAW,CAAC;IAC3B+J,QAAQ,CAACgc,uBAAuB,CAAC;GACpC,EAAE,EAAE,CAAC;EAEN,IAAMsB,WAAW,GAAGrnB,iBAAW,WACpBmI,IAAS;IAAA;;QAiCZzI,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAhC3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAgV,MAAA,GAAAhH,MAAA,aACtB;QAAA,SAAAa;UASA,IAAM+Q,IAAI,GAAG,CAAC,CAAC9T,EAAE,GAAGoU,QAAM,GAAGjX,QAAM;UAAA,OAAAnG,OAAA,CAAAC,OAAA,CAE7B6c,IAAI,CAAC9U,IAAI,CAAC,EAAA3F,IAAA;YAEhB9C,QAAQ,CACJhC,QAAQ,CAAC;cACLZ,IAAI,EAAE,SAAS;cACfwO,OAAO,GACH,CAAC,CAACnC,EAAE,GAAG,QAAQ,GAAG,QACtB;aACH,CAAC,CACL;YAEDie,UAAU,EAAE;;;QAAA,IAAArb,MAAA;UAAA,IArBR,CAAC,CAAC2a,UAAU,IAAI,CAAC,CAACA,UAAU,CAACxS,MAAM;YAAA,OAAA/T,OAAA,CAAAC,OAAA,CACPknB,WAAW,EAAE,EAAA9kB,IAAA,WAAnC+kB,QAAQ;cACd,IAAMC,cAAc,GAAGD,QAAQ,CAAC/lB,GAAG,CAAC,UAACma,IAAS;gBAAA,OAAM;kBAChDhW,GAAG,EAAEgW,IAAI,CAACxT,IAAI,CAACxC,GAAG;kBAClB5Q,IAAI,EAAE4mB,IAAI,CAACxT,IAAI,CAACpT;iBACnB;eAAC,CAAC;cACHoT,IAAI,CAAC2d,WAAW,MAAAjF,MAAA,CAAO1Y,IAAI,CAAC2d,WAAW,EAAK0B,cAAc,CAAC;;;;QAAA,OAAAzb,MAAA,IAAAA,MAAA,CAAAvJ,IAAA,GAAAuJ,MAAA,CAAAvJ,IAAA,CAAA0J,MAAA,IAAAA,MAAA,CAAAH,MAAA;OAgBlE,YAAQlJ,GAAG,EAAE;QAAA,IAAAmP,cAAA,EAAAC,mBAAA;QACVvS,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAA0G,cAAA,GAAAnP,GAAG,CAAC0E,QAAQ,cAAAyK,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7J,IAAI,cAAA8J,mBAAA,uBAAlBA,mBAAA,CAAoB/U,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAiS,MAAA,IAAAA,MAAA,CAAA7P,IAAA,GAAA6P,MAAA,CAAA7P,IAAA,CAAAkQ,MAAA,IAAAA,MAAA,CAAAL,MAAA;KAEJ,QAAAxY,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KACD,CAACsP,EAAE,EAAEud,UAAU,CAAC,CACnB;EAED,IAAMe,YAAY,GAAG,SAAfA,YAAYA;IACd,IAAMC,MAAM,GAAGtuB,QAAQ,CAACuuB,sBAAsB,CAAC,kBAAkB,CAAC;IAClE,IAAMC,QAAQ,GAAGxuB,QAAQ,CAACisB,aAAa,CAAC,OAAO,CAAC;IAChD,IAAMwC,WAAW,GAAGzuB,QAAQ,CAAC0uB,cAAc,CAAC,cAAc,CAAC;IAC3DD,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEpD,MAAM,CAACmD,QAAQ,CAAC;IAC7BA,QAAQ,CAACvsB,SAAS,GAAG,kBAAkB;IACvCusB,QAAQ,CAACze,EAAE,yBAAsBue,MAAM,CAACxT,MAAM,GAAG,CAAC,CAAE;IACpD0T,QAAQ,CAAC9qB,IAAI,GAAG,MAAM;IACtB8qB,QAAQ,CAAC7sB,KAAK,CAACgtB,OAAO,GAAG,MAAM;IAC/BH,QAAQ,CAACtC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC;IAC7CsC,QAAQ,CAACI,gBAAgB,CAAC,QAAQ,EAAEC,gBAAgB,CAAC;IACrDL,QAAQ,CAACjC,KAAK,EAAE;GACnB;EAED,IAAMsC,gBAAgB,GAAG,SAAnBA,gBAAgBA;IAClB,IAAMxC,KAAK,GAAQ,EAAE;IACrB,IAAIyC,SAAS,GAAG,CAAC;IAEjB,IAAMC,gBAAgB,GAClB/uB,QAAQ,CAACuuB,sBAAsB,CAAC,kBAAkB,CAAC;IAEvD,SAAAS,SAAA,GAAAC,+BAAA,CAA8BF,gBAAgB,GAAAG,KAAA,IAAAA,KAAA,GAAAF,SAAA,IAAAG,IAAA,GAAE;MAAA,IAArCC,eAAe,GAAAF,KAAA,CAAA/zB,KAAA;MACtB,SAAAk0B,UAAA,GAAAJ,+BAAA,CAAmBG,eAAe,CAAC/C,KAAK,GAAAiD,MAAA,IAAAA,MAAA,GAAAD,UAAA,IAAAF,IAAA,GAAE;QAAA,IAA/B/C,IAAI,GAAAkD,MAAA,CAAAn0B,KAAA;QACX2zB,SAAS,IAAI1C,IAAI,CAACrgB,IAAI;QAEtB,IAAI+iB,SAAS,GAAGlC,cAAc,EAAE;UAC5BtmB,QAAQ,CACJhC,QAAQ,CAAC;YACLZ,IAAI,EAAE,QAAQ;YACdwO,OAAO,EAAE;WACZ,CAAC,CACL;UACD4c,SAAS,IAAI1C,IAAI,CAACrgB,IAAI;UACtBqjB,eAAe,CAACtf,MAAM,EAAE;;;;IAKpC,SAAAyf,UAAA,GAAAN,+BAAA,CAA8BF,gBAAgB,GAAAS,MAAA,IAAAA,MAAA,GAAAD,UAAA,IAAAJ,IAAA,GAAE;MAAA,IAArCC,gBAAe,GAAAI,MAAA,CAAAr0B,KAAA;MAAA,IAAAs0B,KAAA,YAAAA,QACoB;QAAA,IAA/BrD,IAAI,GAAAsD,MAAA,CAAAv0B,KAAA;QACX,IAAQQ,IAAI,GAAKywB,IAAI,CAAbzwB,IAAI;QAEZ,IACI,CAACyxB,YAAY,CAACzwB,QAAQ,CAACyvB,IAAI,CAAC,IAC5B,CAACC,KAAK,CAAC7rB,IAAI,CAAC,UAAC4rB,IAAS;UAAA,OAAKA,IAAI,CAACzwB,IAAI,KAAKA,IAAI;UAAC,EAChD;UACE0wB,KAAK,CAACsD,IAAI,CAAC;YAAEh0B,IAAI,EAAJA,IAAI;YAAEi0B,OAAO,EAAER,gBAAe,CAACrf;WAAI,CAAC;;OAExD;MATD,SAAA8f,UAAA,GAAAZ,+BAAA,CAAmBG,gBAAe,CAAC/C,KAAK,GAAAqD,MAAA,IAAAA,MAAA,GAAAG,UAAA,IAAAV,IAAA;QAAAM,KAAA;;MAWxC;;IAGJlC,aAAa,CAAClB,KAAK,CAAC;GACvB;EAED,IAAMyD,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIF,OAAe,EAAExa,QAAgB;IACvD,IACIkY,UAAU,CAAC/kB,MAAM,CAAC,UAACga,IAAS;MAAA,OAAKA,IAAI,CAACqN,OAAO,KAAKA,OAAO;MAAC,CACrD9U,MAAM,KAAK,CAAC,EACnB;MACE,IAAMiV,SAAS,GAAG/vB,QAAQ,CAAC0uB,cAAc,CAACkB,OAAO,CAAC;MAClDG,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEjgB,MAAM,EAAE;MAEnB,IAAIkgB,cAAc,GAAG1C,UAAU,CAAC/kB,MAAM,CAClC,UAAC0nB,OAAY;QAAA,OAAKA,OAAO,CAACL,OAAO,KAAKA,OAAO;QAChD;MAEDtC,UAAU,CAAC/kB,MAAM,CACb,UAACga,IAAS;QAAA,OAAKA,IAAI,CAACqN,OAAO,KAAKI,cAAc,CAACJ,OAAO;QACzD;MACDxC,YAAY,CAACuC,IAAI,CAACK,cAAc,CAAC;MAEjC3C,eAAe,IAAA5F,MAAA,CAAK2F,YAAY,CAAC,CAAC;MAClCG,aAAa,IAAA9F,MAAA,CAAK6F,UAAU,CAAC,CAAC;MAC9B;;IAGJD,eAAe,IAAA5F,MAAA,CAAK2F,YAAY,GAAEhY,QAAQ,EAAC,CAAC;GAC/C;EAEDtD,eAAS,CAAC;IACN+c,gBAAgB,EAAE;GACrB,EAAE,CAACzB,YAAY,CAAC,CAAC;EAElB,IAAMc,WAAW,YAAXA,WAAWA;IAAA;MACb,IAAMa,gBAAgB,GAClB/uB,QAAQ,CAACuuB,sBAAsB,CAAC,kBAAkB,CAAC;MAEvD,IAAM2B,QAAQ,GAAmB,EAAE;MAEnC,SAAAC,UAAA,GAAAlB,+BAAA,CAA8BF,gBAAgB,GAAAqB,MAAA,IAAAA,MAAA,GAAAD,UAAA,IAAAhB,IAAA,GAAE;QAAA,IAArCC,eAAe,GAAAgB,MAAA,CAAAj1B,KAAA;QACtB,SAAAk1B,UAAA,GAAApB,+BAAA,CAAmBG,eAAe,CAAC/C,KAAK,GAAAiE,MAAA,IAAAA,MAAA,GAAAD,UAAA,IAAAlB,IAAA,GAAE;UAAA,IAA/B/C,IAAI,GAAAkE,MAAA,CAAAn1B,KAAA;UACX,IAAQQ,IAAI,GAAKywB,IAAI,CAAbzwB,IAAI;UACZ,IAAM8tB,QAAQ,GAAG,IAAI2B,QAAQ,EAAE;UAC/B3B,QAAQ,CAAC4B,MAAM,CAAC,MAAM,EAAEe,IAAI,EAAEzwB,IAAI,CAAC;UACnCu0B,QAAQ,CAACP,IAAI,CAAC9F,iBAAiB,CAACJ,QAAQ,CAAC,CAAC;;;MAIlD,OAAO1iB,OAAO,CAACwpB,GAAG,CAACL,QAAQ,CAAC;KAC/B,QAAAzvB,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAEDqR,eAAS,CAAC;IACN9R,QAAQ,CAAC8D,KAAK,GAAGsM,OAAK;IACtBwd,aAAa,EAAE;IACfV,SAAS,CAAC,KAAK,CAAC;IAChB,IAAI,CAAC,CAACngB,YAAY,CAACD,OAAO,CAACtQ,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAC,EAC5CqQ,YAAY,CAAC2B,UAAU,CAAClS,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAC;GACpD,EAAE,EAAE,CAAC;EAEN,OAAO;IACHqwB,mBAAmB,EAAnBA,mBAAmB;IACnBc,YAAY,EAAZA,YAAY;IACZE,SAAS,EAATA,SAAS;IACTC,UAAU,EAAVA,UAAU;IACVC,WAAW,EAAXA,WAAW;IACXhB,MAAM,EAANA,MAAM;IACNC,SAAS,EAATA,SAAS;IACTC,aAAa,EAAbA,aAAa;IACbkB,YAAY,EAAZA,YAAY;IACZQ,gBAAgB,EAAhBA,gBAAgB;IAChBvB,UAAU,EAAVA,UAAU;IACVwC,gBAAgB,EAAhBA,gBAAgB;IAChBtC,UAAU,EAAVA;GACH;AACL,CAAC;;AChSD,IAAMjoB,QAAM,GAAGC,UAAU,CAAC;EACtB4gB,OAAO,EAAE5gB,UAAU,EAAE,CAAC5B,QAAQ,CAAC,8BAA8B,CAAC;EAC9D6oB,UAAU,EAAEjnB,UACD,EAAE,CACR5B,QAAQ,CAAC,+BAA+B,CAAC,CACzC6P,IAAI,CACD,kBAAkB,EAClB,+BAA+B,EAC/B,UAACtY,KAAa;IAAA,OAAKA,KAAK,IAAI,CAAC;IAChC;EACLq1B,OAAO,EAAEhrB,UAAU,EAAE;EACrBrF,IAAI,EAAEqF,UAAU,EAAE,CAAC5B,QAAQ,CAAC,2BAA2B;CAC1D,CAAC;;ACOF,IAAM6sB,sBAAsB,GAAG,uBAAuB;AACtD,IAAMC,oBAAoB,GAAG,qBAAqB;AAElD,IAAMC,mBAAmB,GAAO,SAA1BA,mBAAmBA;EACrB,IAAAC,UAAA,GAAeC,wBAAS,EAAkB;IAAlC9gB,EAAE,GAAA6gB,UAAA,CAAF7gB,EAAE;EACV,IAAI,CAACA,EAAE,EAAE;IACL,OAAO/N,6BAACoe,QAAQ,OAAG;;EAEvB,IAAA+B,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACT,IAAAyO,qBAAA,GAYIjE,sBAAsB,CAACjJ,QAAQ,CAAC7T,EAAE,CAAC,CAAC;IAXpCgd,mBAAmB,GAAA+D,qBAAA,CAAnB/D,mBAAmB;IACnBc,YAAY,GAAAiD,qBAAA,CAAZjD,YAAY;IACZE,SAAS,GAAA+C,qBAAA,CAAT/C,SAAS;IACTC,UAAU,GAAA8C,qBAAA,CAAV9C,UAAU;IACVC,WAAW,GAAA6C,qBAAA,CAAX7C,WAAW;IACXhB,MAAM,GAAA6D,qBAAA,CAAN7D,MAAM;IACNC,SAAS,GAAA4D,qBAAA,CAAT5D,SAAS;IACTC,aAAa,GAAA2D,qBAAA,CAAb3D,aAAa;IACbkB,YAAY,GAAAyC,qBAAA,CAAZzC,YAAY;IACZf,UAAU,GAAAwD,qBAAA,CAAVxD,UAAU;IACVwC,gBAAgB,GAAAgB,qBAAA,CAAhBhB,gBAAgB;EAGpB,IAAMpK,MAAM,GAAG,CAAC,CAAC3V,EAAE,GAAGsS,CAAC,CAACqO,oBAAoB,CAAC,GAAGrO,CAAC,CAACoO,sBAAsB,CAAC;EAEzE,IAAM5J,WAAW,GAAG,CAAC,CAAC9W,EAAE,GAAGsS,CAAC,CAAC,QAAQ,CAAC,GAAGA,CAAC,CAAC,QAAQ,CAAC;EAEpD,IAAM4C,gBAAgB,GAAGhP,sBAAW,CAChC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACgP,YAAY,CAACD,gBAAgB;IACtD;EAED,OACIjjB,6BAAC+G,aAAM;IACHC,aAAa,EAAE+jB,mBAAmB;IAClC7Z,kBAAkB;IAClBjK,gBAAgB,EAAE1D,QAAM;IACxB2D,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,MAAM;MACZ8kB,WAAW,CAAC9kB,MAAM,CAAC;MACnB+jB,SAAS,CAAC,KAAK,CAAC;MAChB,IAAI,CAAC,CAACngB,YAAY,CAACD,OAAO,CAACtQ,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAC,EAC5CqQ,YAAY,CAAC2B,UAAU,CAAClS,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAC;;KAGpD,UAAAiN,WAAW;IACR,IACIR,MAAM,GAONQ,WAAW,CAPXR,MAAM;MACNY,OAAO,GAMPJ,WAAW,CANXI,OAAO;MACPC,MAAM,GAKNL,WAAW,CALXK,MAAM;MACNC,aAAa,GAIbN,WAAW,CAJXM,aAAa;MACbL,YAAY,GAGZD,WAAW,CAHXC,YAAY;MACZC,UAAU,GAEVF,WAAW,CAFXE,UAAU;MACVC,YAAY,GACZH,WAAW,CADXG,YAAY;IAGhB,OACI9H;MACIC,SAAS,EAAC,wCAAwC;MAClD8N,EAAE,EAAC;OAEH/N,6BAAComB,UAAU;MAACC,IAAI,EAAE4E;MAAU,EAC5BjrB;MACIC,SAAS,EAAC,MAAM;MAChBN,KAAK,EAAE;QAAEovB,aAAa,EAAE;;OAEvBrL,MAAM,CACN,EAEL1jB,6BAACoJ,cAAG;MAACnJ,SAAS,EAAC;OACXD,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAACimB,eAAa;MAAClmB,IAAI,EAAEsgB,CAAC,CAAC,cAAc;MAAK,EAC1CrgB,6BAACyB,gBAAK;MACFD,WAAW,EAAE6e,CAAC,CAAC,iBAAiB,CAAC;MACjC1mB,IAAI,EAAC,SAAS;MACdR,KAAK,EAAEgO,MAAM,CAACid,OAAO;MACrB7iB,QAAQ,EAAE,SAAVA,QAAQA,CAAE9C,CAAC;QACPmJ,YAAY,CAACnJ,CAAC,CAAC;QACf0sB,aAAa,EAAE;OAClB;MACDxiB,MAAM,EAAEd,UAAU,CAAC,SAAS,CAAC;MAC7B5H,SAAS,EAAC;MACZ,EACD8H,OAAO,CAACqc,OAAO,IAAIpc,MAAM,CAACoc,OAAO,IAC9BpkB,6BAACH,YAAY;MAACE,IAAI,EAAEiI,MAAM,CAACoc;MAC9B,CACC,EACNpkB,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAACimB,eAAa;MAAClmB,IAAI,EAAEsgB,CAAC,CAAC,UAAU;MAAK,EACtCrgB,6BAAC2lB,oBAAoB;MACjBpkB,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;QACbwJ,aAAa,CAAC,YAAY,EAAExJ,CAAC,CAACtF,KAAK,CAAC;QACpCgyB,aAAa,EAAE;OAClB;MACDpd,EAAE,EAAE5G,MAAM,CAACsjB;MACb,EACD1iB,OAAO,CAAC0iB,UAAU,IAAIziB,MAAM,CAACyiB,UAAU,IACpCzqB,6BAACH,YAAY;MAACE,IAAI,EAAEiI,MAAM,CAACyiB;MAC9B,CACC,CACJ,EACNzqB,6BAACoJ,cAAG;MAACnJ,SAAS,EAAC;OACXD,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAACoJ,cAAG,QACApJ,6BAACqJ,cAAG;MAACE,EAAE,EAAE,EAAE;MAAEtJ,SAAS,EAAC;OACnBD,6BAACimB,eAAa;MAAClmB,IAAI,EAAEsgB,CAAC,CAAC,WAAW;MAAK,EACtC,CAAC0K,mBAAmB,CAAC5sB,IAAI,IAAI,CAAC4P,EAAE,KAC7B/N,6BAACgvB,mBAAM;MACHC,gBAAgB,EAAC,yBAAyB;MAC1C5S,GAAG,EAAE,SAALA,GAAGA,CAAEyP,IAAI;QAAA,OAAID,YAAY,CAACC,IAAI,CAAC;;MAC/BoD,YAAY,EACRnE,mBAAmB,CAAC5sB,IAAI;MAE5BiB,IAAI,EAAEorB,YAAY,CAAC/mB,KAAK;MACxB0rB,cAAc,EAAE,SAAhBA,cAAcA,CAAE3T,OAAO;QACnBvT,aAAa,CACT,MAAM,EACNuT,OAAO,CACV;QACD2P,aAAa,EAAE;;MAG1B,EACApjB,OAAO,CAAC5J,IAAI,IAAI6J,MAAM,CAAC7J,IAAI,IACxB6B,6BAACH,YAAY;MAACE,IAAI,EAAEiI,MAAM,CAAC7J;MAC9B,CACC,EACN6B,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAACoJ,cAAG,QACApJ,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAAC2f,iBAAM;MACH/e,KAAK,EAAC,MAAM;MACZmJ,IAAI,EAAC,IAAI;MACT9J,SAAS,EAAC,MAAM;MAChB4B,OAAO,EAAEwqB;OAERhM,CAAC,CAAC,gBAAgB,CAAC,CACf,CACP,EACNrgB,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAACoJ,cAAG,QACCjC,MAAM,CAACujB,WAAW,CAACtkB,GAAG,CACnB,UAAAgpB,UAAU;MAAA,OACNpvB,6BAACqJ,cAAG;QACAE,EAAE,EAAE,CAAC;QACLgB,GAAG,EACC6kB,UAAU,CAAC7kB;SAGfvK,6BAAC0mB,cAAc;QACXxtB,KAAK,EACDk2B,UAAU,CAACz1B,IAAI;QAEnBkqB,QAAQ,EAAE,SAAVA,QAAQA;UAAA,OACJ5b,aAAa,CACT,aAAa,EACbd,MAAM,CAACujB,WAAW,CAACnkB,MAAM,CACrB,UAAA8oB,CAAC;YAAA,OACGA,CAAC,CAAC11B,IAAI,KACNy1B,UAAU,CAACz1B,IAAI;YACtB,CACJ;;QAEP,CACA;KACT,CACJ,EACA2xB,UAAU,CAACllB,GAAG,CACX,UACIgkB,IAAS,EACT5N,KAAa;MAAA,OAEbxc,6BAACqJ,cAAG;QACAE,EAAE,EAAE,CAAC;QACLgB,GAAG,EAAEiS,KAAK;QACVvc,SAAS,EAAC;SAEVD,6BAAC0mB,cAAc;QACXxtB,KAAK,EACDkxB,IAAI,CAACzwB,IAAI;QAEbkqB,QAAQ,EAAE,SAAVA,QAAQA;UAAA,OACJiK,gBAAgB,CACZ1D,IAAI,CAACwD,OAAO,EACZxD,IAAI,CAACzwB,IAAI,CACZ;;QAEP,CACA;KACT,CACJ,CACC,CACJ,CACJ,CACJ,CACJ,CACJ,EACNqG,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAACkmB,gBAAK,QAAE7F,CAAC,CAAC,aAAa,CAAC,CAAS,EACjCrgB,6BAACsvB,WAAS;MACNztB,OAAO,EAAE,SAATA,OAAOA,CAAG6jB,KAAU;QAAA,OAAKqG,SAAS,CAACrG,KAAK,CAAC;;MACzCF,uBAAuB,EACnBre,MAAM,CAACsjB,UAAU,KAChBxH,gBAAgB,IACbA,gBAAgB,CAACnK,MAAM,GAAG,CAAC,IAC3BmK,gBAAgB,CAAC1c,MAAM,CACnB,UAACgpB,CAAM;QAAA,OACHA,CAAC,CAAC51B,IAAI,IAAI,gBAAgB;QACjC,CAAC,CAAC,CAAC,CAACoU,EAAE;MAEjB,CACA,CACJ,EACN/N,6BAAC4kB,mBAAmB;MAChBC,WAAW,EAAEA,WAAW;MACxBrB,SAAS,EAAE1b,YAAY;MACvBgd,QAAQ,EAAEkH;MACZ,CACA;GAEb,CACI;AAEjB,CAAC;;ACvOD,IAAMwD,WAAW,GAAG,SAAdA,WAAWA,CAAIjV,KAAU,EAAE8B,GAAQ;EACrC,IACIqH,MAAM,GAUNnJ,KAAK,CAVLmJ,MAAM;IACN+L,QAAQ,GASRlV,KAAK,CATLkV,QAAQ;IACRjM,SAAS,GAQTjJ,KAAK,CARLiJ,SAAS;IACTsB,QAAQ,GAORvK,KAAK,CAPLuK,QAAQ;IACRD,WAAW,GAMXtK,KAAK,CANLsK,WAAW;IACX6K,UAAU,GAKVnV,KAAK,CALLmV,UAAU;IACVC,QAAQ,GAIRpV,KAAK,CAJLoV,QAAQ;IACR5lB,IAAI,GAGJwQ,KAAK,CAHLxQ,IAAI;IACJkhB,MAAM,GAEN1Q,KAAK,CAFL0Q,MAAM;IACN2E,cAAc,GACdrV,KAAK,CADLqV,cAAc;EAElB,IAAA/gB,SAAA,GAA4BC,cAAQ,CAAC,KAAK,CAAC;IAApCyO,MAAM,GAAA1O,SAAA;IAAE2O,SAAS,GAAA3O,SAAA;EACxB,IAAMvK,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAA4b,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACT,IAAMwP,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAI7F,EAAO;IACnC,IAAI;MACA1lB,QAAQ,CACJnC,QAAQ,CAAC;QACLob,MAAM,EAAE,IAAI;QACZ7b,IAAI,EAAE,SAAS;QACfwO,OAAO,EAAE,yBAAyB;QAClCsT,SAAS;UAAA;YACLwG,EAAE,EAAE;YAAA,OAAAjlB,OAAA,CAAAC,OAAA;WACP,QAAAvG,CAAA;YAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;OACJ,CAAC,CACL;KACJ,CAAC,OAAOgJ,GAAG,EAAE;MAAA,IAAA0I,aAAA,EAAAC,kBAAA;MACV9L,QAAQ,CACJhC,QAAQ,CAAC;QACLZ,IAAI,EAAE,QAAQ;QACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;OAC7C,CAAC,CACL;;GAER;EACD,IAAM4f,QAAQ,GAAG,SAAXA,QAAQA;IACV,CAAC,CAACF,cAAc,IAAIA,cAAc,EAAE;IACpCpS,SAAS,CAAC,CAACD,MAAM,CAAC;IAClB,CAAC,CAACA,MAAM,IAAI,CAAC,CAACuH,QAAQ,IAAIA,QAAQ,EAAE;GACvC;EACD,IAAM7V,OAAM,GAAGrK,iBAAW,CACtB,UAACmrB,aAAuB,EAAE/F,EAAQ;IAC9B,IAAI,CAAC,CAAC+F,aAAa,EAAE;MACjBF,sBAAsB,CAAC;QACnBC,QAAQ,EAAE;QACV,CAAC,CAAC9F,EAAE,IAAIA,EAAE,EAAE;OACf,CAAC;KACL,MAAM;MACH8F,QAAQ,EAAE;MACV,CAAC,CAAC9F,EAAE,IAAIA,EAAE,EAAE;;GAEnB,EACD,CAACzM,MAAM,CAAC,CACX;EAED,IAAMyS,MAAM,GAAGprB,iBAAW,CAAC;IACvBqK,OAAM,CAAC,CAAC,CAACgc,MAAM,EAAE;MACbnG,QAAQ,IAAIA,QAAQ,EAAE;KACzB,CAAC;GACL,EAAE,CAAC7V,OAAM,EAAE6V,QAAQ,EAAEmG,MAAM,CAAC,CAAC;EAE9BgF,yBAAmB,CAAC5T,GAAG,EAAE;IAAA,OAAO;MAC5BpN,MAAM,EAANA;KACH;GAAC,CAAC;EAEH,OACIjP,6BAACkwB,gBAAK;IAAC3S,MAAM,EAAEA,MAAM;IAAEtO,MAAM,EAAE,SAARA,MAAMA;MAAA,OAAQA,OAAM,CAAC,CAAC,CAACgc,MAAM,CAAC;;IAAElhB,IAAI,EAAEA;KACzD/J,6BAACmwB,sBAAW;IAAClhB,MAAM,EAAE,SAARA,MAAMA;MAAA,OAAQA,OAAM,CAAC,CAAC,CAACgc,MAAM,CAAC;;KAAGvH,MAAM,CAAe,EACnE1jB,6BAACowB,oBAAS,QAAEX,QAAQ,CAAa,EAChC,CAACE,QAAQ,IACN3vB,6BAACqwB,sBAAW;IAACpwB,SAAS,EAAC;KAClBujB,SAAS,IACNxjB,6BAAC2f,iBAAM;IAAC/e,KAAK,EAAC,SAAS;IAACiB,OAAO,EAAE2hB;KAC5BqB,WAAW,IAAIxE,CAAC,CAAC,SAAS,CAAC,CAEnC,EACDrgB,6BAAC2f,iBAAM;IAAC9d,OAAO,EAAEmuB;KACZN,UAAU,IAAIrP,CAAC,CAAC,QAAQ,CAAC,CACrB,CAEhB,CACG;AAEhB,CAAC;AAED,oBAAeiQ,gBAAU,CAACd,WAAW,CAAC;;;AClGtC,AAGA,IAAMe,cAAc,GAAG,SAAjBA,cAAcA,CAAAzwB,IAAA;MAChB0wB,YAAY,GAAA1wB,IAAA,CAAZ0wB,YAAY;IACZvP,OAAO,GAAAnhB,IAAA,CAAPmhB,OAAO;IACPwP,UAAU,GAAA3wB,IAAA,CAAV2wB,UAAU;IACVC,YAAY,GAAA5wB,IAAA,CAAZ4wB,YAAY;IACTC,IAAI,GAAAC,6BAAA,CAAA9wB,IAAA,EAAA+wB,SAAA;EAEP,IAAM/K,SAAS,GACX0K,YAAY,KAAK,IAAI,IAAI,OAAOA,YAAY,KAAK,WAAW,GACtDvP,OAAO,CAAC8E,IAAI,CAAC,UAACC,MAAW;IAAA,OAAKA,MAAM,CAAC7sB,KAAK,KAAKq3B,YAAY;IAAC,IAC5D,IAAI,GACJ,IAAI;EACd,OACIxwB,6BAACghB,MAAM;IACHyP,UAAU,EAAEA,UAAU;IACtBxP,OAAO,EAAEA,OAAO;IAChB9nB,KAAK,EAAE2sB,SAAS;IAChBgL,aAAa,EAAEJ,YAAY,GAAG,KAAK,GAAG;KAClCC,IAAI,EACV;AAEV,CAAC;;ACpBD,IAAMI,SAAS,GAAMz2B,QAAQ,eAAY;AAEzC,AAAO,IAAM8S,KAAG,GAAG,SAANA,GAAGA,CAAI7G,MAAe;EAAA,OAAKyE,GAAG,CAACoC,GAAG,CAAC2jB,SAAS,EAAE;IAAE3mB,MAAM,EAAE7D;GAAQ,CAAC;AAAA;AAE9E,AAAO,IAAM2b,SAAO,GAAG,SAAVA,OAAOA,CAAInU,EAAU;EAAA,OAAK/C,GAAG,CAACoC,GAAG,CAAI2jB,SAAS,SAAIhjB,EAAI,CAAC;AAAA;AAEpE,AAAO,IAAM7C,QAAM,GAAG,SAATA,MAAMA,CAAI6B,IAAS;EAAA,OAAK/B,GAAG,CAACgC,IAAI,CAAC+jB,SAAS,EAAEhkB,IAAI,CAAC;AAAA;AAE9D,AAAO,IAAMoV,QAAM,GAAG,SAATA,MAAMA,CAAIpV,IAAS;EAAA,OAAK/B,GAAG,CAACoX,GAAG,CAAI2O,SAAS,SAAIhkB,IAAI,CAACgB,EAAE,EAAIhB,IAAI,CAAC;AAAA;AAE7E,AAAO,IAAMe,QAAM,GAAG,SAATA,MAAMA,CAAIC,EAAU;EAAA,OAAK/C,GAAG,UAAO,CAAI+lB,SAAS,SAAIhjB,EAAI,CAAC;AAAA;;ACVtE,IAAMijB,aAAa,GAAG,SAAhBA,aAAaA,CAAIzW,KAAU;EAC7B,IAAA1L,SAAA,GAAkCC,cAAQ,CAAC,EAAE,CAAC;IAAvCmiB,SAAS,GAAApiB,SAAA;IAAEqiB,YAAY,GAAAriB,SAAA;EAE9BiB,eAAS,CAAC;IACNqhB,UAAU,EAAE;GACf,EAAE,EAAE,CAAC;EAEN,IAAMA,UAAU,YAAVA,UAAUA;IAAA;qCACR;QAAA,OAAApsB,OAAA,CAAAC,OAAA,CACkBoI,KAAG,EAAE,EAAAhG,IAAA,WAAjBhC,GAAG;UACT8rB,YAAY,CAAC9rB,GAAG,CAAC2H,IAAI,CAACsW,KAAK,CAAC;;OAC/B,YAAQ5b,GAAG,EAAE;QACV5C,OAAO,CAAC6C,KAAK,CAACD,GAAG,CAACyI,OAAO,CAAC;OAC7B;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EACD,IAAQsP,EAAE,GAAiBwM,KAAK,CAAxBxM,EAAE;IAAE0iB,UAAU,GAAKlW,KAAK,CAApBkW,UAAU;EACtB,IAAMW,QAAQ,GAAGH,SAAS,CAAC7qB,GAAG,CAAC,UAACsE,CAAM;IAClC,OAAO;MACHqD,EAAE,EAAErD,CAAC,CAACqD,EAAE;MACR5U,KAAK,EAAEuR,CAAC,CAACqD,EAAE;MACX7U,KAAK,EAAEwR,CAAC,CAACyU,IAAI,GAAMzU,CAAC,CAACyU,IAAI,SAAIzU,CAAC,CAAC/Q,IAAI,GAAK+Q,CAAC,CAAC/Q;KAC7C;GACJ,CAAC;EAEF,OACIqG,6BAACuwB,cAAc;IACXtP,OAAO,EAAEmQ,QAAQ;IACjBZ,YAAY,EAAEziB;KACVwM,KAAK;IACTkW,UAAU,EAAEA;KACd;AAEV,CAAC;;AC1BD,IAAMltB,QAAM,GAAGC,UAAU,CAAC;EACtB7J,IAAI,EAAE6J,UAAU,EAAE,CAAC5B,QAAQ,CAAC,kBAAkB,CAAC;EAC/CyvB,WAAW,EAAE7tB,UAAU;CAC1B,CAAC;AAEF,IAAM8tB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAI/W,KAAU,EAAE8B,GAAQ;EAC1C,IACIqH,MAAM,GAUNnJ,KAAK,CAVLmJ,MAAM;IACNmB,WAAW,GASXtK,KAAK,CATLsK,WAAW;IACXrB,SAAS,GAQTjJ,KAAK,CARLiJ,SAAS;IACT+N,WAAW,GAOXhX,KAAK,CAPLgX,WAAW;IACXzM,SAAQ,GAMRvK,KAAK,CANLuK,QAAQ;IACRmG,MAAM,GAKN1Q,KAAK,CALL0Q,MAAM;IACNC,SAAS,GAIT3Q,KAAK,CAJL2Q,SAAS;IACTC,aAAa,GAGb5Q,KAAK,CAHL4Q,aAAa;IACbyE,cAAc,GAEdrV,KAAK,CAFLqV,cAAc;IACda,UAAU,GACVlW,KAAK,CADLkW,UAAU;EAEd,IAAAtQ,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EAET,OACIrgB,6BAAC+G,aAAM;IACHC,aAAa,EAAEuqB,WAAW;IAC1BrgB,kBAAkB;IAClBjK,gBAAgB,EAAE1D,QAAM;IACxB2D,QAAQ,EAAE,SAAVA,QAAQA,CAAGC,MAAM,EAAEqqB,OAAO;MACtBhO,SAAS,CAACrc,MAAM,CAAC;MACjBqqB,OAAO,CAACC,SAAS,EAAE;;KAGtB,UAAA9pB,WAAW;IACR,IACIR,MAAM,GAONQ,WAAW,CAPXR,MAAM;MACNY,OAAO,GAMPJ,WAAW,CANXI,OAAO;MACPC,MAAM,GAKNL,WAAW,CALXK,MAAM;MACNJ,YAAY,GAIZD,WAAW,CAJXC,YAAY;MACZC,UAAU,GAGVF,WAAW,CAHXE,UAAU;MACVC,YAAY,GAEZH,WAAW,CAFXG,YAAY;MACZ2pB,SAAS,GACT9pB,WAAW,CADX8pB,SAAS;IAGb,OACIzxB,6BAACwvB,aAAW;MACR9L,MAAM,EAAEA,MAAM;MACdmB,WAAW,EAAEA,WAAW;MACxBrB,SAAS,EAAE1b,YAAY;MACvBuU,GAAG,EAAEA,GAAG;MACRyI,QAAQ,EAAE,SAAVA,QAAQA;QACJA,SAAQ,EAAE;QACV2M,SAAS,EAAE;OACd;MACDxG,MAAM,EAAEA,MAAM;MACdC,SAAS,EAAEA,SAAS;MACpB0E,cAAc,EAAEA;OAEhB5vB,6BAACoJ,cAAG,QACApJ,6BAACqJ,cAAG;MAACE,EAAE,EAAE,EAAE;MAAEtJ,SAAS,EAAC;OACnBD,6BAACimB,eAAa;MAAClmB,IAAI,EAAEsgB,CAAC,CAAC,MAAM;MAAK,EAClCrgB,6BAACyB,gBAAK;MACF9H,IAAI,EAAC,MAAM;MACX6H,WAAW,EAAE6e,CAAC,CAAC,MAAM,CAAC;MACtBlnB,KAAK,EAAEgO,MAAM,CAACxN,IAAI;MAClB4H,QAAQ,EAAE,SAAVA,QAAQA,CAAE9C,CAAC;QACPmJ,YAAY,CAACnJ,CAAC,CAAC;QACf0sB,aAAa,EAAE;OAClB;MACDxiB,MAAM,EAAEd,UAAU,CAAC,MAAM;MAC3B,EACDE,OAAO,CAACpO,IAAI,IAAIqO,MAAM,CAACrO,IAAI,IACxBqG,6BAACH,YAAY;MACTE,IAAI,EAAEiI,MAAM,CAACrO;MAEpB,CACC,EACNqG,6BAACqJ,cAAG;MAACE,EAAE,EAAE,EAAE;MAAEtJ,SAAS,EAAC;OACnBD,6BAACkmB,gBAAK,QAAE7F,CAAC,CAAC,aAAa,CAAC,CAAS,EACjCrgB,6BAACyB,gBAAK;MACFC,IAAI,EAAC,UAAU;MACfgwB,IAAI,EAAE,CAAC;MACP/3B,IAAI,EAAC,aAAa;MAClB6H,WAAW,EAAE6e,CAAC,CAAC,aAAa,CAAC;MAC7BlnB,KAAK,EAAEgO,MAAM,CAACkqB,WAAW;MACzB9vB,QAAQ,EAAE,SAAVA,QAAQA,CAAE9C,CAAC;QACPmJ,YAAY,CAACnJ,CAAC,CAAC;QACf0sB,aAAa,EAAE;OAClB;MACDxiB,MAAM,EAAEd,UAAU,CAAC,aAAa;MAClC,CACA,EACN7H,6BAACqJ,cAAG;MAACE,EAAE,EAAE,EAAE;MAAEtJ,SAAS,EAAC;OACnBD,6BAACkmB,gBAAK,QAAE7F,CAAC,CAAC,iBAAiB,CAAC,CAAS,EACrCrgB,6BAACgxB,aAAa;MACVP,UAAU,EAAEA,UAAU;MACtBlvB,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;QACbkJ,WAAW,CAACM,aAAa,CACrB,eAAe,EACfxJ,CAAC,CAACtF,KAAK,CACV;QACDgyB,aAAa,EAAE;OAClB;MACDpd,EAAE,EAAE5G,MAAM,CAACwqB;MACb,CACA,CACJ,CACI;GAErB,CACI;AAEjB,CAAC;AAED,yBAAerB,gBAAU,CAACgB,gBAAgB,CAAC;;ACvHpC,IAAMJ,YAAY,GAAGhvB,oBAAY,CAAM,qBAAqB,CAAC;;ACOpE,IAAMkM,OAAK,GAAG,YAAY;AAC1B,IAAMwjB,YAAY,GAAG,SAAfA,YAAYA;EACd,IAAMX,SAAS,GAAGhd,sBAAW,CAAC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAAC2d,MAAM,CAACZ,SAAS;IAAC;EACrE,IAAMjO,UAAU,GAAG/O,sBAAW,CAAC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAAC2d,MAAM,CAAC7O,UAAU;IAAC;EACvE,IAAA7C,eAAA,GAAYC,2BAAc,EAAE;IAArBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACR,IAAA8C,WAAA,GAAmCZ,UAAU,EAAE;IAAvC9B,OAAO,GAAA0C,WAAA,CAAP1C,OAAO;IAAEgC,aAAa,GAAAU,WAAA,CAAbV,aAAa;EAE9B,IAAMne,QAAQ,GAAGC,sBAAW,EAAE;EAE9B,IAAM6e,OAAO,GAAGxe,iBAAW;IAAA;;QAcvBN,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAb3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA+N,KAAA,GAAAC,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkBoI,KAAG,CAACqT,OAAO,CAAC,EAAArZ,IAAA,WAAxBhC,GAAG;UACT,IAAAsQ,SAAA,GAA8BtQ,GAAG,CAAC2H,IAAI;YAA9BsW,KAAK,GAAA3N,SAAA,CAAL2N,KAAK;YAAEL,UAAU,GAAAtN,SAAA,CAAVsN,UAAU;UACzB1e,QAAQ,CAAC4sB,YAAY,CAAC;YAAED,SAAS,EAAE5N,KAAK;YAAEL,UAAU,EAAVA;WAAY,CAAC,CAAC;;OAC3D,YAAQvb,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA,CAAAiJ,MAAA,IAAAA,MAAA,CAAAL,KAAA;KAEJ,QAAAvR,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,CAAC6F,QAAQ,EAAEmc,OAAO,CAAC,CAAC;EAEvB,IAAM8C,UAAU,GAAG3e,iBAAW,CAC1B,UAACmJ,EAAU;IACPzJ,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE1B,IAAI;MACAqC,QAAQ,CACJnC,QAAQ,CAAC;QACLob,MAAM,EAAE,IAAI;QACZ7b,IAAI,EAAE,SAAS;QACfwO,OAAO,EAAEmQ,CAAC,CAAC,kCAAkC,CAAC;QAC9CmD,SAAS;UAAA;4CACD;cAAA,OAAAze,OAAA,CAAAC,OAAA,CACM8I,QAAM,CAACC,EAAE,CAAC,EAAA3G,IAAA;gBAChB9C,QAAQ,CACJhC,QAAQ,CAAC;kBACLZ,IAAI,EAAE,SAAS;kBACfwO,OAAO,EAAEmQ,CAAC,CAAC,2BAA2B;iBACzC,CAAC,CACL;gBACDoC,aAAa,CAAC;kBAAElpB,WAAW,EAAE;iBAAG,CAAC;;aACpC,YAAQmO,KAAK,EAAE;cAAA,IAAAoqB,eAAA,EAAAC,oBAAA;cACZztB,QAAQ,CACJhC,QAAQ,CAAC;gBACLZ,IAAI,EAAE,QAAQ;gBACdwO,OAAO,EACH,EAAA4hB,eAAA,GAAApqB,KAAK,CAACyE,QAAQ,cAAA2lB,eAAA,wBAAAC,oBAAA,GAAdD,eAAA,CAAgB/kB,IAAI,cAAAglB,oBAAA,uBAApBA,oBAAA,CAAsBjwB,KAAK,KAC3B4F,KAAK,CAACwI,OAAO,IACb;eACP,CAAC,CACL;aACJ;YAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAuL,MAAA,IAAAA,MAAA,CAAAnJ,IAAA,GAAAmJ,MAAA,CAAAnJ,IAAA;WACJ,QAAA3I,CAAA;YAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;OACJ,CAAC,CACL;KACJ,CAAC,OAAOgJ,GAAG,EAAE;MAAA,IAAAmJ,cAAA,EAAAC,mBAAA;MACVvM,QAAQ,CACJhC,QAAQ,CAAC;QACLZ,IAAI,EAAE,QAAQ;QACdwO,OAAO,EACH,EAAAU,cAAA,GAAAnJ,GAAG,CAAC0E,QAAQ,cAAAyE,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7D,IAAI,cAAA8D,mBAAA,uBAAlBA,mBAAA,CAAoB/O,KAAK,KACzB2F,GAAG,CAACyI,OAAO,IACX;OACP,CAAC,CACL;;IAGL5L,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;GAC9B,EACD,CAACwe,OAAO,CAAC,CACZ;EAED3Q,eAAS,CAAC;IACN9R,QAAQ,CAAC8D,KAAK,GAAGsM,OAAK;GACzB,EAAE,EAAE,CAAC;EAEN0B,eAAS,CAAC;IACNsT,OAAO,EAAE;GACZ,EAAE,CAAC3C,OAAO,CAAC,CAAC;EAEb,OAAO;IACHwQ,SAAS,EAATA,SAAS;IACTjO,UAAU,EAAVA,UAAU;IACVvC,OAAO,EAAPA,OAAO;IACPgC,aAAa,EAAbA,aAAa;IACbW,OAAO,EAAPA,OAAO;IACPG,UAAU,EAAVA;GACH;AACL,CAAC;;AC1FD,IAAMuC,WAAS,GAAgB;EAC3BnsB,IAAI,EAAE,EAAE;EACR03B,WAAW,EAAE,EAAE;EACflS,IAAI,EAAE,EAAE;EACRwS,aAAa,EAAE;CAClB;AAED,IAAMK,cAAc,GAAG,SAAjBA,cAAcA;EAChB,IAAM1tB,QAAQ,GAAGC,sBAAW,EAAE;EAE9B,IAAAsK,SAAA,GAAoBC,cAAQ,CAAC,CAAC,CAAC;IAAxBf,EAAE,GAAAc,SAAA;IAAEojB,KAAK,GAAApjB,SAAA;EAChB,IAAAK,UAAA,GAAsCJ,cAAQ,CAAcgX,WAAS,CAAC;IAA/DyL,WAAW,GAAAriB,UAAA;IAAEgjB,cAAc,GAAAhjB,UAAA;EAClC,IAAAG,UAAA,GAA4BP,cAAQ,CAAU,KAAK,CAAC;IAA7Cmc,MAAM,GAAA5b,UAAA;IAAE6b,SAAS,GAAA7b,UAAA;EACxB,IAAM8b,aAAa,YAAbA,aAAaA;IAAA;MACfpgB,YAAY,CAACiB,OAAO,CAACxR,MAAM,CAACC,QAAQ,CAACC,IAAI,EAAE,MAAM,CAAC;MAClDwwB,SAAS,CAAC,IAAI,CAAC;MAAA,OAAAnmB,OAAA,CAAAC,OAAA;KAClB,QAAAvG,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EACD,IAAMmxB,cAAc,YAAdA,cAAcA;IAAA;MAChB,CAAC,CAAC7kB,YAAY,CAACD,OAAO,CAACtQ,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAC,IACxCqQ,YAAY,CAAC2B,UAAU,CAAClS,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAC;MACjDwwB,SAAS,CAAC,KAAK,CAAC;MAAA,OAAAnmB,OAAA,CAAAC,OAAA;KACnB,QAAAvG,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EACDqR,eAAS,CAAC;IACN,CAAC,CAAC/B,EAAE,GAAGqV,OAAO,EAAE,GAAG8O,cAAc,CAACpM,WAAS,CAAC;GAC/C,EAAE,CAAC/X,EAAE,CAAC,CAAC;EAER,IAAMtL,KAAK,GAAG,SAARA,KAAKA;IACPwvB,KAAK,CAAC,CAAC,CAAC;IACRC,cAAc,CAACpM,WAAS,CAAC;GAC5B;EAEDhW,eAAS,CAAC;IACN8f,cAAc,EAAE;GACnB,EAAE,EAAE,CAAC;EAEN,IAAMxM,OAAO,GAAGxe,iBAAW;IAAA;;QAavBN,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAZ3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA+N,KAAA,GAAAC,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkBkd,SAAO,CAACnU,EAAE,CAAC,EAAA3G,IAAA,WAAvBhC,GAAG;UACT8sB,cAAc,CAAC9sB,GAAG,CAAC2H,IAAI,CAAC;;OAC3B,YAAQtF,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA,CAAAiJ,MAAA,IAAAA,MAAA,CAAAL,KAAA;KAEJ,QAAAvR,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,CAACsP,EAAE,CAAC,CAAC;EAER,IAAMke,WAAW,GAAGrnB,iBAAW,WACpBuC,MAAW,EAAE6iB,EAAO;IAAA;;QAyBvB1lB,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAxB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAsO,MAAA,GAAAN,MAAA,aACtB;QACA,IAAM4R,IAAI,GAAG,CAAC,CAAC9T,EAAE,GAAGoU,QAAM,GAAGjX,QAAM;QAAA,OAAAnG,OAAA,CAAAC,OAAA,CAC7B6c,IAAI,CAAC1a,MAAM,CAAC,EAAAC,IAAA;UAElB9C,QAAQ,CACJhC,QAAQ,CAAC;YACLZ,IAAI,EAAE,SAAS;YACfwO,OAAO,GACH,CAAC,CAACnC,EAAE,GAAG,QAAQ,GAAG,QACtB;WACH,CAAC,CACL;UAEDic,EAAE,IAAIA,EAAE,EAAE;UACV,CAAC,CAACjc,EAAE,IAAIkkB,KAAK,CAAC,CAAC,CAAC;;OACnB,YAAQxqB,GAAG,EAAE;QAAA,IAAAmJ,cAAA,EAAAC,mBAAA;QACVvM,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAU,cAAA,GAAAnJ,GAAG,CAAC0E,QAAQ,cAAAyE,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7D,IAAI,cAAA8D,mBAAA,uBAAlBA,mBAAA,CAAoB/O,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAuL,MAAA,IAAAA,MAAA,CAAAnJ,IAAA,GAAAmJ,MAAA,CAAAnJ,IAAA,CAAAqJ,MAAA,IAAAA,MAAA,CAAAF,MAAA;KAEJ,QAAA9R,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KACD,CAACsP,EAAE,EAAEwjB,WAAW,CAAC,CACpB;EAED,OAAO;IACHxjB,EAAE,EAAFA,EAAE;IACFkkB,KAAK,EAALA,KAAK;IACLV,WAAW,EAAXA,WAAW;IACXtF,WAAW,EAAXA,WAAW;IACXnG,SAAS,EAATA,WAAS;IACTrjB,KAAK,EAALA,KAAK;IACLwoB,MAAM,EAANA,MAAM;IACNC,SAAS,EAATA,SAAS;IACTC,aAAa,EAAbA,aAAa;IACbyE,cAAc,EAAdA;GACH;AACL,CAAC;;AC3FD,IAAMuC,SAAS,GAAO,SAAhBA,SAASA;EACX,IAAMC,KAAK,GAAG9V,YAAM,CAAM,IAAI,CAAC;EAC/B,IAAA6D,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACT,IAAAgS,aAAA,GAOIT,YAAY,EAAE;IANdX,SAAS,GAAAoB,aAAA,CAATpB,SAAS;IACTjO,UAAU,GAAAqP,aAAA,CAAVrP,UAAU;IACVvC,OAAO,GAAA4R,aAAA,CAAP5R,OAAO;IACPgC,aAAa,GAAA4P,aAAA,CAAb5P,aAAa;IACbW,OAAO,GAAAiP,aAAA,CAAPjP,OAAO;IACPG,UAAU,GAAA8O,aAAA,CAAV9O,UAAU;EAGd,IAAA+O,eAAA,GAUIN,cAAc,EAAE;IAThBjkB,EAAE,GAAAukB,eAAA,CAAFvkB,EAAE;IACFkkB,KAAK,GAAAK,eAAA,CAALL,KAAK;IACLV,WAAW,GAAAe,eAAA,CAAXf,WAAW;IACXtF,WAAW,GAAAqG,eAAA,CAAXrG,WAAW;IACXxpB,KAAK,GAAA6vB,eAAA,CAAL7vB,KAAK;IACLwoB,MAAM,GAAAqH,eAAA,CAANrH,MAAM;IACNC,SAAS,GAAAoH,eAAA,CAATpH,SAAS;IACTC,aAAa,GAAAmH,eAAA,CAAbnH,aAAa;IACbyE,cAAc,GAAA0C,eAAA,CAAd1C,cAAc;EAGlB,IAAM2C,SAAS,GAAG,SAAZA,SAASA,CAAIC,OAAgB;IAC/B,CAAC,CAACA,OAAO,GAAGP,KAAK,CAACO,OAAO,CAAC,GAAGP,KAAK,CAAC,CAAC,CAAC;IACrCG,KAAK,IAAIA,KAAK,CAACzV,OAAO,IAAIyV,KAAK,CAACzV,OAAO,CAAC1N,MAAM,EAAE;GACnD;EAED,IAAMuU,SAAS,GAAG,SAAZA,SAASA,CAAIrc,MAAW;IAC1B8kB,WAAW,CAAC9kB,MAAM,EAAE;MAChBirB,KAAK,IAAIA,KAAK,CAACzV,OAAO,IAAIyV,KAAK,CAACzV,OAAO,CAAC1N,MAAM,EAAE;MAChDmU,OAAO,EAAE;KACZ,CAAC;IACFwM,cAAc,EAAE;GACnB;EAED,IAAM/L,QAAQ,GAAG,SAAXA,QAAQA,CAAI9V,EAAU;IACxBwV,UAAU,CAACxV,EAAE,CAAC;GACjB;EAED,IAAM+W,QAAQ,GAAG,SAAXA,QAAQA;IAAA,OAASriB,KAAK,EAAE;;EAE9B,OACIzC;IAAKC,SAAS,EAAC;KACXD,6BAACsxB,kBAAgB;IACbjV,GAAG,EAAE+V,KAAK;IACV1O,MAAM,EAAE,CAAC,CAAC3V,EAAE,GAAGsS,CAAC,CAAC,YAAY,CAAC,GAAGA,CAAC,CAAC,cAAc,CAAC;IAClDwE,WAAW,EAAE,CAAC,CAAC9W,EAAE,GAAGsS,CAAC,CAAC,QAAQ,CAAC,GAAGA,CAAC,CAAC,QAAQ,CAAC;IAC7CyE,QAAQ,EAAEA,QAAQ;IAClBtB,SAAS,EAAEA,SAAS;IACpB+N,WAAW,EAAEA,WAAW;IACxBtG,MAAM,EAAEA,MAAM;IACdC,SAAS,EAAEA,SAAS;IACpBC,aAAa,EAAEA,aAAa;IAC5ByE,cAAc,EAAEA,cAAc;IAC9Ba,UAAU,EAAE1iB;IACd,EACF/N,6BAAComB,UAAU;IAACC,IAAI,EAAE4E;IAAU,EAC5BjrB,6BAACoJ,cAAG;IAACnJ,SAAS,EAAC;KACXD,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ,6BAAC0f,SAAS;IACN3f,IAAI,EAAEsgB,CAAC,CAAC,cAAc,CAAC;IACvBxe,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQ0wB,SAAS,EAAE;;IAC5B,CACA,EACNvyB,6BAACqJ,cAAG;IACAE,EAAE,EAAE,CAAC;IACLtJ,SAAS,EAAC;KAETogB,CAAC,CAAC,iBAAiB,CAAC,QAAI2C,UAAU,CACjC,CACJ,EACNhjB,6BAACoJ,cAAG;IAACnJ,SAAS,EAAC;KACXD,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACJ0nB,SAAS,IAAIA,SAAS,CAACnY,MAAM,GAAG,CAAC,GAC9B9Y,6BAAC8jB,gBAAK;IAACC,QAAQ;IAACC,KAAK;IAACC,OAAO;IAACC,UAAU;IAACna,IAAI,EAAC;KAC1C/J,4CACIA,yCACIA;IAAIC,SAAS,EAAC;KAAaogB,CAAC,CAAC,MAAM,CAAC,CAAM,EAC1CrgB;IAAIC,SAAS,EAAC;KAAaogB,CAAC,CAAC,aAAa,CAAC,CAAM,EACjDrgB;IAAIC,SAAS,EAAC;KAAeogB,CAAC,CAAC,QAAQ,CAAC,CAAM,CAC7C,CACD,EACRrgB,4CACKixB,SAAS,CAAC7qB,GAAG,CAAC,UAAC+d,MAAW;IAAA,OACvBnkB;MAAIuK,GAAG,EAAE4Z,MAAM,CAACpW;OACZ/N;MAAIC,SAAS,EAAC;OACVD,6BAAC+f,cAAc;MACX7mB,KAAK,EAAEirB,MAAM,CAACxqB,IAAI;MAClBkI,OAAO,EAAE,SAATA,OAAOA;QAAA,OACH0wB,SAAS,CAACpO,MAAM,CAACpW,EAAE,CAAC;;MAE1B,EACD,CAAC,CAACoW,MAAM,CAAChF,IAAI,IACVnf;MAAGC,SAAS,EAAC;OACTD,wCAAImkB,MAAM,CAAChF,IAAI,CAAK,CAE3B,CACA,EACLnf;MAAIC,SAAS,EAAC;OACTkkB,MAAM,CAACkN,WAAW,CAClB,EACLrxB;MAAIC,SAAS,EAAC;OACVD,6BAAC6f,gBAAgB;MACbhe,OAAO,EAAE,SAATA,OAAOA;QAAA,OACHgiB,QAAQ,CAACM,MAAM,CAACpW,EAAE,CAAC;;MAEzB,CACD,CACJ;GACR,CAAC,CACE,CACJ,GAER/N,6BAACggB,cAAc;IAAC9mB,KAAK,EAAEmnB,CAAC,CAAC,OAAO;IACnC,CACC,EACNrgB,6BAACqJ,cAAG;IAACE,EAAE,EAAE,CAAC;IAAEtJ,SAAS,EAAC;KAClBD,6BAACwgB,gBAAgB;IACbG,gBAAgB,EAAEqC,UAAU;IAC5BvC,OAAO,EAAEA,OAAO;IAChBG,cAAc,EAAE,SAAhBA,cAAcA,CAAGpnB,QAAgB;MAAA,OAC7BipB,aAAa,CAAC;QAAEjpB,QAAQ,EAARA;OAAU,CAAC;;IAE/BknB,UAAU,EAAE,SAAZA,UAAUA,CAAGnnB,WAAmB;MAAA,OAC5BkpB,aAAa,CAAC;QAAElpB,WAAW,EAAXA;OAAa,CAAC;;IAEpC,CACA,CACJ,CACJ;AAEd,CAAC;;IClJYk5B,WAAW,GAAGvwB,oBAAY,CAAM,mBAAmB,CAAC;AAEjE,IAAawwB,cAAc,GAAGxwB,oBAAY,CAAM,sBAAsB,CAAC;;ACEvE,IAAM0K,UAAQ,GAAMtS,QAAQ,cAAW;AACvC,AACA,IAAMq4B,eAAe,GAAMr4B,QAAQ,gCAA6B;AAChE,IAAMqS,aAAW,GAAMrS,QAAQ,iBAAc;AAC7C,IAAMs4B,YAAY,GAAMt4B,QAAQ,cAAW;AAC3C,IAAMu4B,mBAAmB,GAAMv4B,QAAQ,wBAAqB;AAC5D,IAAMw4B,uBAAuB,GAAMx4B,QAAQ,4BAAyB;AAEpE,AAGO,IAAMy4B,aAAa,GAAG,SAAhBA,aAAaA,CAAIxsB,MAAkB;EAAA,OAC5CyE,GAAG,CAACoC,GAAG,MAAI0lB,uBAAuB,EAAI;IAAE1oB,MAAM,EAAE7D;GAAQ,CAAC;AAAA;AAE7D,AAAO,IAAMysB,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIzsB,MAAuB;EAAA,OACvDyE,GAAG,CAACoC,GAAG,CAAI0lB,uBAAuB,eAAY;IAAE1oB,MAAM,EAAE7D;GAAQ,CAAC;AAAA;AAErE,AAAO,IAAM0sB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAI1sB,MAAuB;EAAA,OACpDyE,GAAG,CAACoC,GAAG,CAAIwlB,YAAY,uBAAoB;IAAExoB,MAAM,EAAE7D;GAAQ,CAAC;AAAA;AAElE,AAAO,IAAM2sB,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAI3sB,MAAkB;EAAA,OAClDyE,GAAG,CAACoC,GAAG,CAAIwlB,YAAY,kBAAe;IAAExoB,MAAM,EAAE7D;GAAQ,CAAC;AAAA;AAE7D,AAAO,IAAM2b,SAAO,GAAG,SAAVA,OAAOA,CAAInU,EAAU;EAAA,OAAK/C,GAAG,CAACoC,GAAG,CAAIR,UAAQ,qBAAgBmB,EAAI,CAAC;AAAA;AAE/E,AAAO,IAAM7C,QAAM,GAAG,SAATA,MAAMA,CAAI6B,IAAS;EAAA,OAAK/B,GAAG,CAACgC,IAAI,MAAIJ,UAAQ,EAAIG,IAAI,CAAC;AAAA;AAElE,AAAO,IAAMoV,QAAM,GAAG,SAATA,MAAMA,CAAIpV,IAAS;EAAA,OAAK/B,GAAG,CAACoX,GAAG,CAAIxV,UAAQ,SAAIG,IAAI,CAACgB,EAAE,EAAIhB,IAAI,CAAC;AAAA;AAE5E,AAAO,IAAMomB,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,GAAa;EAAA,OAAKpoB,GAAG,CAACoX,GAAG,CAAIxV,UAAQ,yBAAsBwmB,GAAG,CAAC;AAAA;AAE/F,AAAO,IAAMtlB,QAAM,GAAG,SAATA,MAAMA,CAAIC,EAAU;EAAA,OAAK/C,GAAG,UAAO,CAAI4nB,YAAY,0BAAqB7kB,EAAI,CAAC;AAAA;AAE1F,AAGO,IAAMslB,cAAc,GAAG,SAAjBA,cAAcA,CAAI5L,QAAa;EAAA,OACxCzc,GAAG,CAACgC,IAAI,CAAC2lB,eAAe,EAAElL,QAAQ,CAAC;AAAA;AAEvC,AAAO,IAAM6L,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIvmB,IAAS;EAAA,OAC1C/B,GAAG,CAACgC,IAAI,CAAIL,aAAW,4BAAyBI,IAAI,CAAC;AAAA;AAEzD,AAAO,IAAMwmB,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIxlB,EAAU;EAAA,OAAK/C,GAAG,CAACgC,IAAI,CAAI4lB,YAAY,qBAAgB7kB,EAAI,CAAC;AAAA;AAE9F,AAAO,IAAMylB,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIjtB,MAAwB;EAAA,OAAKyE,GAAG,CAACoC,GAAG,MAAIylB,mBAAmB,EAAI;IAC7FzoB,MAAM,EAAE7D;GACX,CAAC;AAAA;AAEF,AAAO,IAAMktB,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAIC,SAAiB;EAAA,OAAK1oB,GAAG,CAACoC,GAAG,CAAIylB,mBAAmB,SAAIa,SAAW,CAAC;AAAA;AAEhH,AAAO,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA;EAAA,OAAS3oB,GAAG,CAACoX,GAAG,CAAIwQ,YAAY,sBAAmB,CAAC;AAAA;AAEnF,AAAO,IAAMgB,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAI7mB,IAAsB;EAAA,OAAK/B,GAAG,CAACgC,IAAI,CAAIL,aAAW,gCAA6BI,IAAI,CAAC;AAAA;AAC1H,AAAO,IAAM8mB,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIttB,MAAqB;EAAA,OAAKyE,GAAG,CAACoC,GAAG,CAAIwlB,YAAY,sBAAmB;IACpGxoB,MAAM,EAAE7D;GACX,CAAC;AAAA;AAEF,AAAO,IAAMutB,aAAa,GAAG,SAAhBA,aAAaA;EAAA,OACtB9oB,GAAG,CAACoC,GAAG,CAAI9S,QAAQ,mBAAgB,CAAC;AAAA;AAExC,AAAO,IAAMy5B,aAAa,GAAG,SAAhBA,aAAaA;EAAA,OACtB/oB,GAAG,CAACoC,GAAG,CAAI9S,QAAQ,mBAAgB,CAAC;AAAA;AAExC,AAAO,IAAM05B,oBAAoB,GAAG,SAAvBA,oBAAoBA;EAAA,OAC7BhpB,GAAG,CAACoC,GAAG,CAAI9S,QAAQ,0BAAuB,CAAC;AAAA;AAE/C,AAAO,IAAM25B,WAAW,GAAG,SAAdA,WAAWA,CAAIxT,OAAY;EAAA,OACpCzV,GAAG,CAACoC,GAAG,CAAIR,UAAQ,mBAAgB;IAC/BxC,MAAM,EAAEqW;GACX,CAAC;AAAA;AAEN,AAAO,IAAMyT,iBAAiB,GAC1B,SADSA,iBAAiBA,CACzBnnB,IAAyB;EAAA,OAAK/B,GAAG,CAACgC,IAAI,CAAIJ,UAAQ,sBAAmBG,IAAI,CAAC;AAAA;AAE/E,AAAO,IAAMonB,eAAe,GAAG,SAAlBA,eAAeA,CAAI5mB,MAAc;EAAA,OAC1CvC,GAAG,CAACoC,GAAG,CAAI9S,QAAQ,kCAA6BiT,MAAQ,CAAC;AAAA;AAE7D,AAAO,IAAM6mB,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAI7mB,MAAc,EAAE8mB,KAAa;EAAA,OAC3DrpB,GAAG,CAACgC,IAAI,CAAI4lB,YAAY,gCAA6B;IAAE0B,aAAa,EAAE/mB,MAAM;IAAEgnB,UAAU,EAAEF;GAAO,CAAC;AAAA;AAEtG,AAAO,IAAMG,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAIpqB,MAAW;EAAA,OACnDY,GAAG,CAACoX,GAAG,CAAIxV,UAAQ,6BAA0BxC,MAAM,CAAC;AAAA;AACxD,AAAO,IAAMqqB,8BAA8B,GAAG,SAAjCA,8BAA8BA,CAAIrqB,MAAW;EAAA,OACtDY,GAAG,CAACoX,GAAG,CAAIxV,UAAQ,+BAA4BxC,MAAM,CAAC;AAAA;AAC1D,AAAO,IAAMsqB,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAItqB,MAAW;EAAA,OACjDY,GAAG,CAACoX,GAAG,CAAIxV,UAAQ,yBAAsBxC,MAAM,CAAC;AAAA;AACpD,AAAO,IAAMuqB,gCAAgC,GAAG,SAAnCA,gCAAgCA,CAAIvqB,MAAW;EAAA,OACxDY,GAAG,CAACoX,GAAG,CAAIxV,UAAQ,iCAA8BxC,MAAM,CAAC;AAAA;AAE5D,AAAO,IAAMwqB,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAI7mB,EAAU,EAAEwmB,UAAkB;EAAA,OAChEvpB,GAAG,CAACoX,GAAG,CAAIxV,UAAQ,2BAAsBmB,EAAE,EAAI;IAACwmB,UAAU,EAAVA;GAAW,CAAC;AAAA;AAEhE,AAAO,IAAMM,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAItuB,MAAkB;EAAA,OACjDyE,GAAG,CAACoC,GAAG,CAAI0lB,uBAAuB,kBAAe;IAAE1oB,MAAM,EAAE7D;GAAQ,CAAC;AAAA;AAExE,AAAO,IAAMuuB,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAI/nB,IAAS;EAAA,OAC3C/B,GAAG,CAACgC,IAAI,CAAIL,aAAW,4BAAyBI,IAAI,CAAC;AAAA;AAEzD,AAAO,IAAMgoB,eAAe,GAAG,SAAlBA,eAAeA,CAAIhoB,IAAS;EAAA,OAAK/B,GAAG,CAACgC,IAAI,CAAI4lB,YAAY,yBAAsB7lB,IAAI,CAAC;AAAA;;ACqFjG,IAAYioB,SAcX;AAdD,WAAYA,SAAS;EACjBA,qCAAE;EACFA,yCAAI;EACJA,2CAAK;EACLA,uCAAG;EACHA,yCAAI;EACJA,6CAAM;EACNA,mDAAS;EACTA,qDAAU;EACVA,2CAAK;EACLA,+CAAO;EACPA,oDAAS;EACTA,oDAAS;EACTA,kEAAgB;AACpB,CAAC,EAdWA,SAAS,KAATA,SAAS;AAgBrB,AAAA,IAAYC,QAYX;AAZD,WAAYA,QAAQ;EAChBA,mCAAE;EACFA,uCAAI;EACJA,yCAAK;EACLA,uCAAI;EACJA,mDAAU;EACVA,2CAAM;EACNA,yCAAK;EACLA,6CAAO;EACPA,iDAAS;EACTA,iDAAS;EACTA,gEAAgB;AACpB,CAAC,EAZWA,QAAQ,KAARA,QAAQ;AAcpB,AAAA,IAAYC,WAKX;AALD,WAAYA,WAAW;EACnBA,mDAAO;EACPA,uDAAS;EACTA,uDAAS;EACTA,qEAAgB;AACpB,CAAC,EALWA,WAAW,KAAXA,WAAW;;;AC3NvB,AAGO,IAAMC,UAAU,IAAAC,WAAA,OAAAA,WAAA,CAClBJ,SAAS,CAACK,EAAE,IAAG,WAAW,EAAAD,WAAA,CAC1BJ,SAAS,CAACM,IAAI,IAAG,aAAa,EAAAF,WAAA,CAC9BJ,SAAS,CAACO,KAAK,IAAG,cAAc,EAAAH,WAAA,CAChCJ,SAAS,CAACQ,GAAG,IAAG,YAAY,EAAAJ,WAAA,CAC5BJ,SAAS,CAACS,IAAI,IAAG,aAAa,EAAAL,WAAA,CAC9BJ,SAAS,CAACU,MAAM,IAAG,eAAe,EAAAN,WAAA,CAClCJ,SAAS,CAACW,SAAS,IAAG,kBAAkB,EAAAP,WAAA,CACxCJ,SAAS,CAACY,UAAU,IAAG,eAAe,EAAAR,WAAA,CACtCJ,SAAS,CAACa,KAAK,IAAG,cAAc,EAAAT,WAAA,CAChCJ,SAAS,CAACc,OAAO,IAAG,gBAAgB,EAAAV,WAAA,CACpCJ,SAAS,CAACe,SAAS,IAAG,kBAAkB,EAAAX,WAAA,CACxCJ,SAAS,CAACgB,SAAS,IAAG,kBAAkB,EAAAZ,WAAA,CACxCJ,SAAS,CAACiB,gBAAgB,IAAG,kBAAkB,EAAAb,WAAA,CACnD;AAED,AAAO,IAAMc,WAAW,GAAiB,CACrC;EACIv8B,IAAI,EAAE,MAAM;EACZw8B,QAAQ,EAAE,IAAI;EACd18B,MAAM,EAAEu7B,SAAS,CAACM,IAAI;EACtBc,QAAQ,EAAEnB,QAAQ,CAACK,IAAI;EACvBr1B,SAAS,EAAE,WAAW;EACtBo2B,SAAS,EAAE,SAAXA,SAASA,CAAG5Y,IAAY;IAAA,OAAM;MAC1BvkB,KAAK,EAAEukB,IAAI,IAAI,OAAO;MACtBtkB,KAAK,EAAEskB;KACV;;CACJ,EACD;EACI9jB,IAAI,EAAE,OAAO;EACbw8B,QAAQ,EAAE,IAAI;EACd18B,MAAM,EAAEu7B,SAAS,CAACO,KAAK;EACvBa,QAAQ,EAAEnB,QAAQ,CAACM,KAAK;EACxBt1B,SAAS,EAAE,WAAW;EACtBo2B,SAAS,EAAE,SAAXA,SAASA,CAAG5Y,IAAY;IAAA,OAAM;MAC1BvkB,KAAK,EAAEukB,IAAI,IAAI,OAAO;MACtBtkB,KAAK,EAAEskB;KACV;;CACJ,EACD;EACI9jB,IAAI,EAAE,KAAK;EACXw8B,QAAQ,EAAE,IAAI;EACd18B,MAAM,EAAEu7B,SAAS,CAACQ,GAAG;EACrBv1B,SAAS,EAAE;CACd,EACD;EACItG,IAAI,EAAE,MAAM;EACZw8B,QAAQ,EAAE,IAAI;EACd18B,MAAM,EAAEu7B,SAAS,CAACS,IAAI;EACtBW,QAAQ,EAAEnB,QAAQ,CAACQ,IAAI;EACvBx1B,SAAS,EAAE,WAAW;EACtBo2B,SAAS,EAAE,SAAXA,SAASA,CAAG5Y,IAAY;IAAA,IAAA6Y,aAAA;IAAA,OAAM;MAC1Bp9B,KAAK,EAAE,CAAC,CAACukB,IAAI,GAAGA,IAAI,aAAJA,IAAI,wBAAA6Y,aAAA,GAAJ7Y,IAAI,CAAEzc,OAAO,cAAAs1B,aAAA,uBAAbA,aAAA,CAAAC,IAAA,CAAA9Y,IAAI,EAAY,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,OAAO;MAC/EtkB,KAAK,EAAEskB;KACV;;CACJ,EACD;EACI9jB,IAAI,EAAE,eAAe;EACrBw8B,QAAQ,EAAE,IAAI;EACd18B,MAAM,EAAEu7B,SAAS,CAACU,MAAM;EACxBU,QAAQ,EAAEnB,QAAQ,CAACS,MAAM;EACzBz1B,SAAS,EAAE,WAAW;EACtBghB,OAAO,EAAE,CACL;IACI/nB,KAAK,EAAE,QAAQ;IACfC,KAAK,EAAE;GACV,EACD;IACID,KAAK,EAAE,UAAU;IACjBC,KAAK,EAAE;GACV;CAER,EACD;EACIQ,IAAI,EAAE,cAAc;EACpBw8B,QAAQ,EAAE,IAAI;EACd18B,MAAM,EAAEu7B,SAAS,CAACW,SAAS;EAC3B11B,SAAS,EAAE;CACd,EACD;EACItG,IAAI,EAAE,+CAA+C;EACrDw8B,QAAQ,EAAE,IAAI;EACd18B,MAAM,EAAEu7B,SAAS,CAACY,UAAU;EAC5BQ,QAAQ,EAAEnB,QAAQ,CAACW,UAAU;EAC7B31B,SAAS,EAAE,WAAW;EACtBo2B,SAAS,EAAE,SAAXA,SAASA,CAAG5Y,IAAY;IAAA,OAAM;MAC1BvkB,KAAK,EAAEukB,IAAI,IAAI,OAAO;MACtBtkB,KAAK,EAAEskB;KACV;;CACJ,EACD;EACI9jB,IAAI,EAAE,aAAa;EACnBw8B,QAAQ,EAAE,IAAI;EACdl2B,SAAS,EAAE;CACd,EACD;EACItG,IAAI,EAAE,QAAQ;EACdw8B,QAAQ,EAAE,IAAI;EACdl2B,SAAS,EAAE;CACd,CACJ;AAED,AAAO,IAAM7G,mBAAiB,GAAG;EAC7BF,KAAK,EAAE,IAAI;EACXC,KAAK,EAAE;CACV;AAED,AAAO,IAAME,gBAAc,GAAe;EACtCC,YAAY,EAAE,EAAE;EAChBC,WAAW,EAAE,CAAC;EACdC,QAAQ,EAAEJ,mBAAiB,CAACD;CAC/B;AAED,AAAO,IAAMq9B,sBAAsB,GAAkB;EACjDl9B,YAAY,EAAE,EAAE;EAChBC,WAAW,EAAE,CAAC;EACdC,QAAQ,EAAEJ,mBAAiB,CAACD;CAC/B;AAED,AAAO,IAAMs9B,sBAAsB,GAAe;EAC9Cl9B,WAAW,EAAE,CAAC;EACdC,QAAQ,EAAE;CACb;AAED,AAAO,IAAMk9B,UAAU,GAAG,8BAA8B;AAExD,AAAO,IAAMC,gBAAgB,GAAiB;EAC1CC,WAAW,EAAE,EAAE;EACfC,UAAU,EAAE,EAAE;EACdC,kBAAkB,EAAE,EAAE;EACtBC,OAAO,EAAE,EAAE;EACXC,cAAc,EAAE,EAAE;EAClBC,qBAAqB,EAAE;CAC1B;AAED,AAAO,IAAMC,aAAa,GAAG;EACzBC,SAAS,EAAE,CAAC;EACZppB,EAAE,EAAE,EAAE;EACNtK,KAAK,EAAE,EAAE;EACTjG,QAAQ,EAAE,EAAE;EACZ+2B,UAAU,EAAE,EAAE;EACd6C,WAAW,EAAE,EAAE;EACfC,QAAQ,EAAE,IAAI;EACdC,WAAW,EAAE,EAAE;EACflhB,oBAAoB,EAAE,EAAE;EACxBmhB,KAAK,EAAE,EAAE;EACTC,aAAa,EAAE,EAAE;EACjBR,cAAc,EAAE,EAAE;EAClBS,eAAe,EAAE,EAAE;EACnBZ,UAAU,EAAE,EAAE;EACda,oBAAoB,EAAE,EAAE;EACxBT,qBAAqB,EAAE,EAAE;EACzBU,sBAAsB,EAAE,EAAE;EAC1BC,QAAQ,EAAE;CACb;AAED,AAAO,IAAMC,aAAa,IACtB;EAAE3+B,KAAK,EAAE,GAAG;EAAEC,KAAK,EAAE;CAAK,EAC1B;EAAED,KAAK,EAAE,GAAG;EAAEC,KAAK,EAAE;CAAK,EAC1B;EAAED,KAAK,EAAE,GAAG;EAAEC,KAAK,EAAE;CAAK,EAC1B;EAAED,KAAK,EAAE,GAAG;EAAEC,KAAK,EAAE;CAAK,EAC1B;EAAED,KAAK,EAAE,GAAG;EAAEC,KAAK,EAAE;CAAK,EAC1B;EAAED,KAAK,EAAE,GAAG;EAAEC,KAAK,EAAE;CAAK,EAC1B;EAAED,KAAK,EAAE,GAAG;EAAEC,KAAK,EAAE;CAAK,EAC1B;EAAED,KAAK,EAAE,GAAG;EAAEC,KAAK,EAAE;CAAK,EAC1B;EAAED,KAAK,EAAE,GAAG;EAAEC,KAAK,EAAE;CAAK,EAC1B;EAAED,KAAK,EAAE,GAAG;EAAEC,KAAK,EAAE;CAAK,EAC1B;EAAED,KAAK,EAAE,GAAG;EAAEC,KAAK,EAAE;CAAK,EAC1B;EAAED,KAAK,EAAE,IAAI;EAAEC,KAAK,EAAE;CAAM,EAC5B;EAAED,KAAK,EAAE,IAAI;EAAEC,KAAK,EAAE;CAAM,EAC5B;EAAED,KAAK,EAAE,IAAI;EAAEC,KAAK,EAAE;CAAM,EAAAssB,MAAA,CACxBlnB,gBAAgB,GAAG,CAAC;EAAErF,KAAK,EAAE,OAAO;EAAEC,KAAK,EAAE;CAAS,CAAC,GAAG,EAAE,GAChE;EAAED,KAAK,EAAE,IAAI;EAAEC,KAAK,EAAE;CAAM,EAC/B;AACD,AAAO,IAAM2+B,KAAK,IACd,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EAAArS,MAAA,CACAlnB,gBAAgB,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GACrC,IAAI,EACP;AAED,AAAO,IAAMw5B,YAAY,IACrB;EACI7+B,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE;CACV,EACD;EACID,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE;CACV,EACD;EACID,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE;CACV,EACD;EACID,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE;CACV,EACD;EACID,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE;CACV,EACD;EACID,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE;CACV,EACD;EACID,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE;CACV,EACD;EACID,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE;CACV,EACD;EACID,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE;CACV,EACD;EACID,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE;CACV,EACD;EACID,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE;CACV,EACD;EACID,KAAK,EAAE,IAAI;EACXC,KAAK,EAAE;CACV,EACD;EACID,KAAK,EAAE,IAAI;EACXC,KAAK,EAAE;CACV,EACD;EACID,KAAK,EAAE,IAAI;EACXC,KAAK,EAAE;CACV,EAAAssB,MAAA,CACGlnB,gBAAgB,GAAG,CAAC;EAAErF,KAAK,EAAE,OAAO;EAAEC,KAAK,EAAE;CAAS,CAAC,GAAG,EAAE,GAChE;EACID,KAAK,EAAE,IAAI;EACXC,KAAK,EAAE;CACV,EACJ;AAED,AAAO,IAAM6+B,mBAAmB,GAAG;EAC/BC,qBAAqB,EAAE,EAAE;EACzBC,sBAAsB,EAAE,EAAE;EAC1BC,oBAAoB,EAAE,EAAE;EACxBC,uBAAuB,EAAE,EAAE;EAC3BC,yBAAyB,EAAE,EAAE;EAC7BC,yBAAyB,EAAE,EAAE;EAC7BC,2BAA2B,EAAE,EAAE;EAC/BC,8BAA8B,EAAE;CACnC;AAED,AAAO,IAAMC,iBAAiB,GAAgB;EAC1C1qB,EAAE,EAAE,EAAE;EACNpH,SAAS,EAAE,EAAE;EACbC,QAAQ,EAAE,EAAE;EACZnD,KAAK,EAAE,EAAE;EACTjG,QAAQ,EAAE,EAAE;EACZ8O,KAAK,EAAE;CACV;;AClRD,IAAMiW,YAAU,GAAG,SAAbA,UAAUA;EACZ,IAAA1T,SAAA,GAA8BC,cAAQ,CAAazV,gBAAc,CAAC;IAA3DonB,OAAO,GAAA5R,SAAA;IAAE2T,UAAU,GAAA3T,SAAA;EAC1B,IAAM4T,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,cAAmB;IACtC,IAAMC,UAAU,GAAAnS,QAAA,KACTiQ,OAAO,EACPiC,cAAc,CACpB;IACD,IAAI,CAAC,CAACC,UAAU,CAACrpB,YAAY,IAAI,CAAC,CAACopB,cAAc,CAACppB,YAAY,IAAIopB,cAAc,CAACppB,YAAY,IAAImnB,OAAO,CAACnnB,YAAY,EAAE;MACnHqpB,UAAU,CAACppB,WAAW,GAAG,CAAC;;IAG9BipB,UAAU,CAACG,UAAU,CAAC;GACzB;EAED,OAAO;IAAElC,OAAO,EAAPA,OAAO;IAAE+B,UAAU,EAAVA,UAAU;IAAEC,aAAa,EAAbA;GAAe;AACjD,CAAC;;ACND,IAAM7V,UAAQ,GAAG,aAAa;AAC9B,IAAM8rB,eAAe,GAAG,oBAAoB;AAC5C,IAAMtqB,OAAK,GAAG,WAAW;AACzB,IAAMqF,kBAAgB,GAAG,OAAO;AAChC,IAAMC,kBAAgB,GAAG,OAAO;AAChC,IAAMC,gBAAc,GAAG,aAAa;AACpC,IAAMC,iBAAe,GAAG,SAAS;AACjC,IAAMC,mBAAiB,GAAG,gBAAgB;AAC1C,IAAMC,sBAAoB,GAAG,eAAe;AAE5C,IAAM6kB,WAAW,GAAG,SAAdA,WAAWA;EACb,IAAMhqB,QAAQ,GAAGC,0BAAW,EAAE;EAC9B,IAAMN,KAAK,GAAG,IAAIC,eAAe,CAAC9T,QAAQ,CAACgU,MAAM,CAAC;EAClD,IAAMmqB,SAAS,GAAGtqB,KAAK,CAAClB,GAAG,CAAC,OAAO,CAAC;EACpC,IAAMyrB,QAAQ,GAAG5kB,sBAAW,CAAC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAAC4kB,KAAK,CAACD,QAAQ;IAAC;EAClE,IAAM7V,UAAU,GAAG/O,sBAAW,CAAC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAAC4kB,KAAK,CAAC9V,UAAU;IAAC;EACtE,IAAAG,WAAA,GAAmCZ,YAAU,EAAE;IAAvC9B,OAAO,GAAA0C,WAAA,CAAP1C,OAAO;IAAEgC,aAAa,GAAAU,WAAA,CAAbV,aAAa;EAC9B,IAAMjlB,QAAQ,GAAG,CAAC,CAACo7B,SAAS,GAAGA,SAAS,GAAG,EAAE;EAC7C,IAAA/pB,SAAA,GAA8BC,cAAQ,CAAW,EAAE,CAAC;IAA7CiqB,OAAO,GAAAlqB,SAAA;IAAEmqB,UAAU,GAAAnqB,SAAA;EAE1B,IAAM+G,UAAU,GAAGpb,MAAM,CAACC,QAAQ,CAACob,IAAI,CAAClb,QAAQ,CAAC,WAAW,CAAC;EAC7D,IAAM2J,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAA4b,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EAET,IAAM4Y,YAAY,GAAG,SAAfA,YAAYA,CAAI1rB,MAAc;IAChC,IAAM2rB,SAAS,GAAGH,OAAO,CAAChT,IAAI,CAAC,UAAAoT,CAAC;MAAA,OAAIA,CAAC,IAAI5rB,MAAM;MAAC;IAChD,CAAC2rB,SAAS,GAAGF,UAAU,CAACD,OAAO,CAACtT,MAAM,CAAC,CAAClY,MAAM,CAAC,CAAC,CAAC,GAAGyrB,UAAU,CAACD,OAAO,CAACxyB,MAAM,CAAC,UAAA4yB,CAAC;MAAA,OAAIA,CAAC,IAAI5rB,MAAM;MAAC,CAAC;GACnG;EAED,IAAM6rB,eAAe,GAAGx0B,iBAAW;IAAA;;QAsB3BN,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MApB3B,IAAG82B,OAAO,CAACjgB,MAAM,IAAI,CAAC,EAAE;QACpBkgB,UAAU,CAAC,EAAE,CAAC;QACd,OAAAj0B,OAAA,CAAAC,OAAA;;MAEJ,IAAIyb,OAAO,CAAC2V,QAAQ,KAAKiD,SAAS,IAAI5Y,OAAO,CAAC6Y,eAAe,KAAKD,SAAS,IAAI5Y,OAAO,CAAC6Y,eAAe,CAACxgB,MAAM,KAAK,CAAC,EAAE;QACjHxU,QAAQ,CAACmuB,WAAW,CAAC;UAAEoG,QAAQ,EAAE,EAAE;UAAE7V,UAAU,EAAE;SAAG,CAAC,CAAC;QACtD,OAAAje,OAAA,CAAAC,OAAA;;MAEJV,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA+N,KAAA,GAAAC,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkB6vB,kBAAkB,CAACpU,OAAO,CAAC,EAAArZ,IAAA,WAAvChC,GAAG;UACT4zB,UAAU,CAAC5zB,GAAG,CAAC2H,IAAI,IAAI,EAAE,CAAC;;OAC7B,YAAQtF,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA,CAAAiJ,MAAA,IAAAA,MAAA,CAAAL,KAAA;KAEJ,QAAAvR,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KACD,CAAC6F,QAAQ,EAAEmc,OAAO,EAAEsY,OAAO,CAAC,CAC/B;EAED,IAAM3V,OAAO,GAAGxe,iBAAW;IAAA;;QAsBnBN,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MApB3B,IAAIwe,OAAO,CAAC2V,QAAQ,KAAKiD,SAAS,IAAI5Y,OAAO,CAAC6Y,eAAe,KAAKD,SAAS,IAAI5Y,OAAO,CAAC6Y,eAAe,CAACxgB,MAAM,KAAK,CAAC,EAAE;QACjHxU,QAAQ,CAACmuB,WAAW,CAAC;UAAEoG,QAAQ,EAAE,EAAE;UAAE7V,UAAU,EAAE;SAAG,CAAC,CAAC;QACtD,OAAAje,OAAA,CAAAC,OAAA;;MAEJV,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAsO,MAAA,GAAAN,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkB+tB,aAAa,CAACtS,OAAO,CAAC,EAAArZ,IAAA,WAAlChC,GAAG;UACT,IAAAsQ,SAAA,GAA8BtQ,GAAG,CAAC2H,IAAI;YAA9BsW,KAAK,GAAA3N,SAAA,CAAL2N,KAAK;YAAEL,UAAU,GAAAtN,SAAA,CAAVsN,UAAU;UACzB,SAAAgK,SAAA,GAAAC,+BAAA,CAAmB5J,KAAK,GAAA6J,KAAA,IAAAA,KAAA,GAAAF,SAAA,IAAAG,IAAA,GAAE;YAAA,IAAf1P,IAAI,GAAAyP,KAAA,CAAA/zB,KAAA;YACXskB,IAAI,CAACnR,KAAK,GAAGmR,IAAI,CAACnR,KAAK,CAAClG,GAAG,CAAC,UAAC+yB,CAAS;cAAA,OAAKA,CAAC,IAAIx8B,KAAK,CAACI,UAAU,GAAGo8B,CAAC,GAAG,YAAY;cAAC;;UAExF70B,QAAQ,CAACmuB,WAAW,CAAC;YAAEoG,QAAQ,EAAExV,KAAK;YAAEL,UAAU,EAAVA;WAAY,CAAC,CAAC;;OACzD,YAAQvb,GAAG,EAAE;QAAA,IAAAmJ,cAAA,EAAAC,mBAAA;QACVvM,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAU,cAAA,GAAAnJ,GAAG,CAAC0E,QAAQ,cAAAyE,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7D,IAAI,cAAA8D,mBAAA,uBAAlBA,mBAAA,CAAoB/O,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAuL,MAAA,IAAAA,MAAA,CAAAnJ,IAAA,GAAAmJ,MAAA,CAAAnJ,IAAA,CAAAqJ,MAAA,IAAAA,MAAA,CAAAF,MAAA;KAEJ,QAAA9R,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KACD,CAAC6F,QAAQ,EAAEmc,OAAO,CAAC,CACtB;EAED,IAAM8Y,qBAAqB,YAArBA,qBAAqBA;IAAA;;QA4BvBj1B,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MA3B3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA0O,MAAA,GAAAV,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkB2uB,kBAAkB,EAAE,EAAAvsB,IAAA,WAAhChC,GAAG;UAAA,IACLA,GAAG,CAAC2H,IAAI;YACRzI,QAAQ,CACJhC,QAAQ,CAAC;cACLZ,IAAI,EAAE,SAAS;cACfwO,OAAO,EAAK9K,GAAG,CAAC2H,IAAI,cAAQ3H,GAAG,CAAC2H,IAAI,GAAG,CAAC,GAAG,QAAQ,GAAG,MAAM;aAC/D,CAAC,CACL;YACDqW,OAAO,EAAE;;YAET9e,QAAQ,CACJhC,QAAQ,CAAC;cACLZ,IAAI,EAAE,SAAS;cACfwO,OAAO;aACV,CAAC,CACL;;;OAER,YAAQzI,GAAG,EAAE;QAAA,IAAAmP,cAAA,EAAAC,mBAAA;QACVvS,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAA0G,cAAA,GAAAnP,GAAG,CAAC0E,QAAQ,cAAAyK,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7J,IAAI,cAAA8J,mBAAA,uBAAlBA,mBAAA,CAAoB/U,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAA2L,MAAA,IAAAA,MAAA,CAAAvJ,IAAA,GAAAuJ,MAAA,CAAAvJ,IAAA,CAAA0J,MAAA,IAAAA,MAAA,CAAAH,MAAA;KAEJ,QAAAlS,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAM+6B,cAAc,GAAG,SAAjBA,cAAcA,CAAIrV,MAAW;IAC/B,IAAI,CAACA,MAAM,EAAE,OAAO,EAAE;IACtB,IAAMsV,MAAM,GAAG,EAAE;IACjB,IAAQ/F,SAAS,GAAiBvP,MAAM,CAAhCuP,SAAS;MAAEgG,UAAU,GAAKvV,MAAM,CAArBuV,UAAU;IAC7B,CAAC,CAAChG,SAAS,IAAI,CAAC,CAACgG,UAAU,IAAID,MAAM,CAAC9L,IAAI,CAAC+F,SAAS,CAAC;IAErD,IAAIgG,UAAU,EAAE;MACZ,IAAQ7zB,SAAS,GAAoC6zB,UAAU,CAAvD7zB,SAAS;QAAE8zB,UAAU,GAAwBD,UAAU,CAA5CC,UAAU;QAAE/zB,UAAU,GAAY8zB,UAAU,CAAhC9zB,UAAU;QAAEnC,KAAK,GAAKi2B,UAAU,CAApBj2B,KAAK;MAChD,IAAMm2B,KAAK,GAAG,EAAE;MAChB,CAAC,CAACh0B,UAAU,IAAIg0B,KAAK,CAACjM,IAAI,CAAC/nB,UAAU,CAAC;MACtC,CAAC,CAAC+zB,UAAU,IAAIC,KAAK,CAACjM,IAAI,CAACgM,UAAU,CAAC;MACtC,CAAC,CAAC9zB,SAAS,IAAI+zB,KAAK,CAACjM,IAAI,CAAC9nB,SAAS,CAAC;MACpC4zB,MAAM,CAAC9L,IAAI,CAACiM,KAAK,CAAChvB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;MAClC6uB,MAAM,CAAC9L,IAAI,CAAClqB,KAAK,IAAI,EAAE,CAAC;;IAG5B,OAAOg2B,MAAM,CAAC7uB,IAAI,CAAC,KAAK,CAAC;GAC5B;EAEDkF,eAAS,CAAC;IACN9R,QAAQ,CAAC8D,KAAK,GAAGsM,OAAK;GACzB,EAAE,EAAE,CAAC;EAEN0B,eAAS,CAAC;IACN2S,aAAa,CAAAjS,QAAA,KACNiQ,OAAO;MACVnnB,YAAY,EAAEkE;MACjB,CAAC;GACL,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEdsS,eAAS,CAAC;IACNsT,OAAO,EAAE;GACZ,EAAE,CAACxJ,IAAI,CAACC,SAAS,CAAC4G,OAAO,CAAC,CAAC,CAAC;EAE7B,IAAM8C,UAAU,GAAG3e,iBAAW,CAC1B,UAACmJ,EAAU;IACPzJ,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE1B,IAAI;MACAqC,QAAQ,CACJnC,QAAQ,CAAC;QACLob,MAAM,EAAE,IAAI;QACZ7b,IAAI,EAAE,SAAS;QACfwO,OAAO,EAAEmQ,CAAC,CAAC,iCAAiC,CAAC;QAC7CmD,SAAS;UAAA;mCACC1V,QAAM,CAACC,EAAE,CAAC,EAAA3G,IAAA;cAChB9C,QAAQ,CACJhC,QAAQ,CAAC;gBACLZ,IAAI,EAAE,SAAS;gBACfwO,OAAO,EAAE;eACZ,CAAC,CACL;cACD,IAAIuQ,OAAO,CAAClnB,WAAW,KAAK,CAAC,EAAEkpB,aAAa,CAAC;gBAAElpB,WAAW,EAAE;eAAG,CAAC,CAAA,KAC3D6pB,OAAO,EAAE;;WACjB,QAAA3kB,CAAA;YAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;OACJ,CAAC,CACL;KACJ,CAAC,OAAOgJ,GAAG,EAAE;MAAA,IAAAsP,cAAA,EAAAC,mBAAA;MACV1S,QAAQ,CACJhC,QAAQ,CAAC;QACLZ,IAAI,EAAE,QAAQ;QACdwO,OAAO,EAAE,EAAA6G,cAAA,GAAAtP,GAAG,CAAC0E,QAAQ,cAAA4K,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAchK,IAAI,cAAAiK,mBAAA,uBAAlBA,mBAAA,CAAoBlV,KAAK,KAAI2F,GAAG,CAACyI;OAC7C,CAAC,CACL;;IAGL5L,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;GAC9B,EACD,CAAC2X,IAAI,CAACC,SAAS,CAAC4G,OAAO,CAAC,CAAC,CAC5B;EAED,IAAMoZ,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIz0B,GAAQ;IAC/B,IAAM6D,oBAAoB,GAAG4B,cAAc,CAACC,OAAO,CAAC9R,uBAAuB,CAAC;IAC5E,IAAAmd,UAAA,GAQI/Q,GAAG,CAAC2H,IAAI;MAPRlB,KAAK,GAAAsK,UAAA,CAALtK,KAAK;MACLkC,EAAE,GAAAoI,UAAA,CAAFpI,EAAE;MACFpH,SAAS,GAAAwP,UAAA,CAATxP,SAAS;MACTC,QAAQ,GAAAuP,UAAA,CAARvP,QAAQ;MACR0F,KAAK,GAAA6J,UAAA,CAAL7J,KAAK;MACL7I,KAAK,GAAA0S,UAAA,CAAL1S,KAAK;MACL2S,oBAAoB,GAAAD,UAAA,CAApBC,oBAAoB;IAExB,IAAG,CAACnN,oBAAoB,EAAE;MACtB8B,YAAY,CAACiB,OAAO,CAACjT,YAAY,EAAE8S,KAAK,CAAC;KAC5C,MAAM;MACHhB,cAAc,CAACmB,OAAO,CAACjT,YAAY,EAAE8S,KAAK,CAAC;;IAE/C,IAAIS,KAAK,CAAC3R,QAAQ,CAAC,OAAO,CAAC,EAAE;MACzBoQ,YAAY,CAACiB,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;;IAE1CjB,YAAY,CAAC2B,UAAU,CAACtP,sBAAsB,CAAC;IAC/CkH,QAAQ,CACJlC,OAAO,CAAC;MACJ2L,EAAE,EAAFA,EAAE;MACFpH,SAAS,EAATA,SAAS;MACTC,QAAQ,EAARA,QAAQ;MACR0F,KAAK,EAALA,KAAK;MACL7I,KAAK,EAALA,KAAK;MACL2S,oBAAoB,EAApBA;KACH,CAAC,CACL;IACD,IAAIR,UAAU,EAAE;MACZjH,QAAQ,CAACkF,mBAAiB,CAAC;KAC9B,MAAM,IAAIvH,KAAK,CAAC3R,QAAQ,CAAC,OAAO,CAAC,EAAE;MAChCgU,QAAQ,CAACgF,gBAAc,CAAC;KAC3B,MAAM,IAAIrH,KAAK,CAAC3R,QAAQ,CAAC,SAAS,CAAC,IAAI2R,KAAK,CAAC3R,QAAQ,CAAC,WAAW,CAAC,EAAE;MACjEgU,QAAQ,CAAC8E,kBAAgB,CAAC;KAC7B,MAAM,IAAInH,KAAK,CAAC3R,QAAQ,CAAC,SAAS,CAAC,EAAE;MAClCgU,QAAQ,CAAC+E,kBAAgB,CAAC;KAC7B,MAAM,IAAIpH,KAAK,CAAC3R,QAAQ,CAAC,QAAQ,CAAC,EAAE;MACjCgU,QAAQ,CAACiF,iBAAe,CAAC;KAC5B,MAAM,IAAItH,KAAK,CAAC3R,QAAQ,CAAC,YAAY,CAAC,EAAE;MACrCgU,QAAQ,CAACmF,sBAAoB,CAAC;KACjC,MAAM,IAAIxH,KAAK,CAAC3R,QAAQ,CAAC,WAAW,CAAC,IAAI2R,KAAK,CAAC3R,QAAQ,CAAC,kBAAkB,CAAC,EAAE;MAC1EgU,QAAQ,CAAC8E,kBAAgB,CAAC;;GAEjC;EACD,IAAMqmB,UAAU,GAAGl1B,iBAAW,WACnBmJ,EAAU;IAAA;sCACT;QAAA,OAAAhJ,OAAA,CAAAC,OAAA,CACkBuuB,iBAAiB,CAACxlB,EAAE,CAAC,EAAA3G,IAAA,WAAjChC,GAAG;UACT,IAAM2H,IAAI,GAAG3H,GAAG,CAAC2H,IAAI;UACrBzI,QAAQ,CACJnC,QAAQ,CAAC;YACLob,MAAM,EAAE,IAAI;YACZ7b,IAAI,EAAE,SAAS;YACfwO,OAAO,EAAEmQ,CAAC,CAAC,sCAAsC,CAAC;YAClDmD,SAAS;cAAA;;kBAkBLlf,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;gBAjB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAAA,IAAAqV,MAAA,GAAArH,MAAA,aACtB;kBACA,IAAM8pB,GAAG,GAAG;oBACRt2B,KAAK,EAAEsJ,IAAI,CAACtJ,KAAK;oBACjBC,QAAQ,EAAE,SAAS;oBACnB2B,WAAW,EAAE0H,IAAI,CAAClB,KAAK;oBACvBtE,SAAS,EAAEvF,SAAS,CAACg4B;mBACxB;kBAAA,OAAAj1B,OAAA,CAAAC,OAAA,CACiBiI,KAAK,CAAC8sB,GAAG,CAAC,EAAA3yB,IAAA,WAAtBhC,GAAG;oBACT2F,YAAY,CAACkvB,KAAK,EAAE;oBACpBJ,iBAAiB,CAACz0B,GAAG,CAAC;;iBACzB,YAAQqC,GAAG,EAAE;kBAAA,IAAAiQ,cAAA,EAAAC,mBAAA;kBACVrV,QAAQ,CAAC;oBACLZ,IAAI,EAAE,QAAQ;oBACdwO,OAAO,EAAE,EAAAwH,cAAA,GAAAjQ,GAAG,CAAC0E,QAAQ,cAAAuL,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc3K,IAAI,cAAA4K,mBAAA,uBAAlBA,mBAAA,CAAoB7V,KAAK,KAAI2F,GAAG,CAACyI;mBAC7C,CAAC;iBACL;gBAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAsS,MAAA,IAAAA,MAAA,CAAAlQ,IAAA,GAAAkQ,MAAA,CAAAlQ,IAAA,CAAAiQ,MAAA,IAAAA,MAAA,CAAAC,MAAA;eAEJ,QAAA7Y,CAAA;gBAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;WACJ,CAAC,CACL;;OACJ,YAAQgJ,GAAG,EAAE;QAAA,IAAAyQ,cAAA,EAAAC,mBAAA;QACV7T,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAgI,cAAA,GAAAzQ,GAAG,CAAC0E,QAAQ,cAAA+L,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAcnL,IAAI,cAAAoL,mBAAA,uBAAlBA,mBAAA,CAAoBrW,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAiS,MAAA,IAAAA,MAAA,CAAA7P,IAAA,GAAA6P,MAAA,CAAA7P,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KACD,CAACgiB,OAAO,CAAC,CACZ;EAED,IAAMyZ,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAInsB,EAAW;IACnC,IAAMlT,GAAG,GAAG,CAAC,CAACkT,EAAE,GAAMnB,UAAQ,SAAImB,EAAE,GAAK2qB,eAAe;IACxD/pB,QAAQ,CAAC9T,GAAG,CAAC;GAChB;EACD,OAAO;IACHg+B,QAAQ,EAARA,QAAQ;IACR7V,UAAU,EAAVA,UAAU;IACVvC,OAAO,EAAPA,OAAO;IACPmY,SAAS,EAATA,SAAS;IACTp7B,QAAQ,EAARA,QAAQ;IACR4lB,OAAO,EAAPA,OAAO;IACPG,UAAU,EAAVA,UAAU;IACVd,aAAa,EAAbA,aAAa;IACbyX,kBAAkB,EAAlBA,kBAAkB;IAClBJ,UAAU,EAAVA,UAAU;IACVP,qBAAqB,EAArBA,qBAAqB;IACrBC,cAAc,EAAdA,cAAc;IACdT,OAAO,EAAPA,OAAO;IACPK,eAAe,EAAfA,eAAe;IACfH,YAAY,EAAZA;GACH;AACL,CAAC;;ACpSD,IAAMkB,SAAS,GAAG,SAAZA,SAASA,CAAAr6B,IAAA;MACXgmB,SAAS,GAAAhmB,IAAA,CAATgmB,SAAS;IACTsU,QAAQ,GAAAt6B,IAAA,CAARs6B,QAAQ;IAAAC,gBAAA,GAAAv6B,IAAA,CACR0B,WAAW;IAAXA,WAAW,GAAA64B,gBAAA,cAAG,0BAA0B,GAAAA,gBAAA;IAAApa,cAAA,GAAAngB,IAAA,CACxCG,SAAS;IAATA,SAAS,GAAAggB,cAAA,cAAG,EAAE,GAAAA,cAAA;IAAAC,UAAA,GAAApgB,IAAA,CACdH,KAAK;IAALA,KAAK,GAAAugB,UAAA,cAAG,EAAE,GAAAA,UAAA;EAEV,IAAArR,SAAA,GAAwCC,cAAQ,CAACgX,SAAS,CAAC;IAApDxsB,YAAY,GAAAuV,SAAA;IAAEyrB,eAAe,GAAAzrB,SAAA;EACpCiB,eAAS,CAAC;IACNwqB,eAAe,CAACxU,SAAS,CAAC;GAC7B,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf,IAAMpE,OAAO,GAAG9c,iBAAW,CACvB,UAACnG,CAAM;IACHA,CAAC,CAAC8L,GAAG,KAAK,OAAO,IAAI6vB,QAAQ,CAAC9gC,YAAY,CAAC;GAC9C,EACD,CAACA,YAAY,EAAE8gC,QAAQ,CAAC,CAC3B;EAED,OACIp6B,6BAACyB,gBAAK;IACFD,WAAW,EAAEA,WAAW;IACxBrI,KAAK,EAAEG,YAAY;IACnBiI,QAAQ,EAAE,SAAVA,QAAQA,CAAE9C,CAAC;MAAA,OAAI67B,eAAe,CAAC77B,CAAC,CAACmK,MAAM,CAACzP,KAAK,CAAC;;IAC9CuoB,OAAO,EAAEA,OAAO;IAChBzhB,SAAS,EAAEA,SAAS;IACpBN,KAAK,EAAEA;IACT;AAEV,CAAC;AAED,kBAAe2f,UAAI,CAAQ6a,SAAS,CAAC;;ACnCrC,IAAMI,gBAAgB,GAAkB;EACpCp6B,MAAM,EAAE;CACX;AAED,IAAMq6B,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAA16B,IAAA;MACpBC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJ+lB,SAAS,GAAAhmB,IAAA,CAATgmB,SAAS;IACTjkB,OAAO,GAAA/B,IAAA,CAAP+B,OAAO;IACPu4B,QAAQ,GAAAt6B,IAAA,CAARs6B,QAAQ;IAAAC,gBAAA,GAAAv6B,IAAA,CACR0B,WAAW;IAAXA,WAAW,GAAA64B,gBAAA,cAAG,0BAA0B,GAAAA,gBAAA;EAExC,OACIr6B;IAAKC,SAAS,EAAC;KACXD,0CACIA,6BAAC0f,SAAS;IAAC3f,IAAI,EAAEA,IAAI;IAAE8B,OAAO,EAAEA;IAAW,CACzC,EACN7B;IAAKC,SAAS,EAAC;KACXD,6BAACm6B,WAAS;IACNrU,SAAS,EAAEA,SAAS;IACpBsU,QAAQ,EAAEA,QAAQ;IAClB54B,WAAW,EAAEA,WAAW;IACxB7B,KAAK,EAAE46B;IACT,CACA,CACJ;AAEd,CAAC;;ACpCD,sBAAe,UAACE,IAAY,EAAEC,MAAe;EACzC,IAAID,IAAI,KAAKrgC,cAAc,EAAE,OAAO,EAAE;EACtC,IAAI;IACA,IAAMugC,IAAI,GAAGC,gBAAQ,CAACH,IAAI,CAAC;IAC3B,OAAOnW,cAAM,CAACqW,IAAI,EAAED,MAAM,IAAI,YAAY,CAAC;GAC9C,CAAC,OAAAG,OAAA,EAAM;IACJ,OAAO,EAAE;;AAEjB,CAAC;;ACPD,IAAMtb,iBAAe,GAAkB;EACnCC,UAAU,EAAE;CACf;AAED,IAAMC,aAAW,GAAkB;EAC/Btf,MAAM,EAAE;CACX;AAQD,IAAM26B,cAAc,GAAc,SAA5BA,cAAcA,CAAAh7B,IAAA;MAChBC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJ8B,OAAO,GAAA/B,IAAA,CAAP+B,OAAO;IAAAoe,cAAA,GAAAngB,IAAA,CACPG,SAAS;IAATA,SAAS,GAAAggB,cAAA,cAAG,EAAE,GAAAA,cAAA;EAEd,OACIjgB,6BAAC2f,iBAAM;IACH9d,OAAO,EAAEA,OAAO;IAChBjB,KAAK,EAAC,SAAS;IACfjB,KAAK,EAAE8f,aAAW;IAClBxf,SAAS,iCAA+BA;KAExCD,6BAAC+6B,YAAS,OAAG,EACb/6B;IAAMC,SAAS,EAAC,MAAM;IAACN,KAAK,EAAE4f;KACzBxf,IAAI,CACF,CACF;AAEjB,CAAC;;AClCD,IAAMi7B,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,UAAe,EAAEC,cAA2B;EACjEprB,eAAS,CAAC;IACN,SAASqrB,kBAAkBA,CAACC,KAAU;MAClC,IACIH,UAAU,CAACte,OAAO,IAClB,CAACse,UAAU,CAACte,OAAO,CAAC0e,QAAQ,CAACD,KAAK,CAACxyB,MAAM,CAAC,EAC5C;QACEsyB,cAAc,aAAdA,cAAc,uBAAdA,cAAc,EAAI;;;IAG1Bl9B,QAAQ,CAAC4uB,gBAAgB,CAAC,WAAW,EAAEuO,kBAAkB,CAAC;IAC1D,OAAO;MACHn9B,QAAQ,CAACs9B,mBAAmB,CAAC,WAAW,EAAEH,kBAAkB,CAAC;KAChE;GACJ,EAAE,CAACF,UAAU,CAACte,OAAO,CAAC,CAAC;AAC5B,CAAC;;ACMD,IAAM4e,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIhhB,KAAY;EAClC,IACIgD,MAAM,GAcNhD,KAAK,CAdLgD,MAAM;IACN9jB,MAAM,GAaN8gB,KAAK,CAbL9gB,MAAM;IACNgnB,OAAO,GAYPlG,KAAK,CAZLkG,OAAO;IACPqY,KAAK,GAWLve,KAAK,CAXLue,KAAK;IACL1C,QAAQ,GAUR7b,KAAK,CAVL6b,QAAQ;IACRoF,cAAc,GASdjhB,KAAK,CATLihB,cAAc;IACdC,eAAe,GAQflhB,KAAK,CARLkhB,eAAe;IACfC,SAAS,GAOTnhB,KAAK,CAPLmhB,SAAS;IACTC,iBAAiB,GAMjBphB,KAAK,CANLohB,iBAAiB;IACjBC,eAAe,GAKfrhB,KAAK,CALLqhB,eAAe;IACfxB,QAAQ,GAIR7f,KAAK,CAJL6f,QAAQ;IACRyB,OAAO,GAGPthB,KAAK,CAHLshB,OAAO;IACPC,eAAe,GAEfvhB,KAAK,CAFLuhB,eAAe;IACfzF,SAAS,GACT9b,KAAK,CADL8b,SAAS;EAGb,IAAAxnB,SAAA,GAAgCC,cAAQ,EAAS;IAA1CitB,QAAQ,GAAAltB,SAAA;IAAEmtB,WAAW,GAAAntB,SAAA;EAC5B,IAAAK,UAAA,GAA8CJ,cAAQ,CAAiB,EAAE,CAAC;IAAnEmtB,eAAe,GAAA/sB,UAAA;IAAEgtB,kBAAkB,GAAAhtB,UAAA;EAC1C,IAAMmN,GAAG,GAAGC,YAAM,CAAiB,IAAI,CAAC;EACxC,IAAM6f,QAAQ,GAAG7f,YAAM,CAAM,IAAI,CAAC;EAElC0e,eAAe,CAAC3e,GAAG,EAAEwf,OAAO,CAAC;EAE7B,IAAA1b,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EAET,IAAM+b,YAAY,GAAGx3B,iBAAW,CAC5B;;IACI,IAAI,CAAC2Y,MAAM,EAAE;IACb,IAAMjkB,YAAY,IAAA+iC,eAAA,GAAGX,SAAS,aAATA,SAAS,wBAAAY,gBAAA,GAATZ,SAAS,CAAEp1B,IAAI,cAAAg2B,gBAAA,uBAAfA,gBAAA,CAAA/F,IAAA,CAAAmF,UAAmB,YAAAW,eAAA,GAAI,EAAE;IAC9CjG,QAAQ,IAAIiD,SAAS,IAAI,CAACmC,cAAc,KAAIpB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAG9gC,YAAY,EAAE88B,QAAQ,CAAC;IAC9EA,QAAQ,IAAIiD,SAAS,IAAI,CAAC,CAACmC,cAAc,IAAIU,kBAAkB,CAACV,cAAc,CAACj1B,MAAM,CAAC,UAAAmE,CAAC;MAAA,OAAIA,CAAC,CAACxR,KAAK,CAAC6H,WAAW,EAAE,CAACpG,QAAQ,CAACrB,YAAY,CAACyH,WAAW,EAAE,CAAC;MAAC,CAAC;GAC1J,EACD,CAACq1B,QAAQ,EAAEsF,SAAS,EAAE9hB,IAAI,CAACC,SAAS,CAAC2hB,cAAc,CAAC,EAAEje,MAAM,CAAC,CAChE;EAED,IAAMgf,cAAc,GAAG,SAAjBA,cAAcA;IAChB,IAAI,CAAC,CAACJ,QAAQ,CAACxf,OAAO,EAAE6f,YAAY,CAACL,QAAQ,CAACxf,OAAO,CAAC;IACtDwf,QAAQ,CAACxf,OAAO,GAAG8f,UAAU,CAACL,YAAY,EAAE,GAAG,CAAC;GACnD;EAED,IAAMM,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIj+B,CAAsC;IACjE,IAAMtF,KAAK,GAAGsF,CAAC,CAACmK,MAAM,CAACzP,KAAK;IAC5BwiC,iBAAiB,CAACxiC,KAAK,CAAC;GAC3B;EAED,IAAMwjC,iBAAiB,GAAG/3B,iBAAW,CAAC;IAClCg3B,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAGG,QAAQ,EAAE3F,QAAQ,CAAC;IACrCyF,OAAO,aAAPA,OAAO,uBAAPA,OAAO,EAAI;GACd,EAAE,CAACjiB,IAAI,CAACC,SAAS,CAACkiB,QAAQ,CAAC,CAAC,CAAC;EAE9B,IAAMa,oBAAoB,GAAGh4B,iBAAW,CAAC,UAACnG,CAAO;;IAC7C,IAAMtF,KAAK,IAAA0jC,eAAA,GAAGp+B,CAAC,CAACmK,MAAM,CAACzP,KAAK,YAAA0jC,eAAA,GAAI,EAAE;IAClC,IAAIC,UAAU,GAAGf,QAAQ,WAARA,QAAQ,GAAI,EAAE;IAC/B,IAAIvf,KAAK,GAAGsgB,UAAU,CAACC,OAAO,CAAC5jC,KAAK,CAAC;IAErC,IAAIqjB,KAAK,GAAG,CAAC,CAAC,EAAE;MACZsgB,UAAU,CAACE,MAAM,CAACxgB,KAAK,EAAE,CAAC,CAAC;KAC9B,MAAM;MACHsgB,UAAU,MAAArX,MAAA,CAAOqX,UAAU,GAAE3jC,KAAK,EAAC;;IAEvC6iC,WAAW,CAACc,UAAU,IAAIzD,SAAS,GAAGyD,UAAU,MAAArX,MAAA,CAAOqX,UAAU,CAAC,CAAC;GACtE,EAAE,CAACljB,IAAI,CAACC,SAAS,CAACkiB,QAAQ,CAAC,CAAC,CAAC;EAE9B,IAAMkB,uBAAuB,GAAGr4B,iBAAW,CAAC,UAACnG,CAAO;IAChD,IAAMtF,KAAK,GAAGsF,CAAC,CAACmK,MAAM,CAACI,OAAO;IAC9B,IAAI,CAAC7P,KAAK,EAAE6iC,WAAW,CAAC,EAAE,CAAC,CAAA,KACtBA,WAAW,CAAC3C,SAAS,CAAC;GAC9B,EAAE,EAAE,CAAC;EAEN,IAAM6D,cAAc,GAAGt4B,iBAAW,CAAC;IAC/Bk3B,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAAtrB,QAAA,KACRiQ,OAAO;MACVhnB,MAAM,EAAEA,MAAM;MACd0jC,YAAY,EAAE;MACjB,CAAC;IACFtB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,EAAI;GACd,EAAE,CAACjiB,IAAI,CAACC,SAAS,CAAC4G,OAAO,CAAC,EAAE2V,QAAQ,CAAC,CAAC;EAEvC,IAAMgH,aAAa,GAAGx4B,iBAAW,CAAC;IAC9Bk3B,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAAtrB,QAAA,KACRiQ,OAAO;MACVhnB,MAAM,EAAEA,MAAM;MACd0jC,YAAY,EAAE;MACjB,CAAC;IACFtB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,EAAI;GACd,EAAE,CAACjiB,IAAI,CAACC,SAAS,CAAC4G,OAAO,CAAC,EAAE2V,QAAQ,CAAC,CAAC;EAEvC,IAAMnV,OAAO,GAAGoc,aAAO,CAAC;IACpB,IAAI,CAAChH,SAAS,EAAE,OAAO,EAAE;IACzB,OAAOyC,KAAK,CAAC1yB,GAAG,CAAC,UAAAsE,CAAC;MAAA,OAAI2rB,SAAS,CAAC3rB,CAAC,EAAE2V,CAAC,CAAC;MAAC;GACzC,EAAE,CAACzG,IAAI,CAACC,SAAS,CAACif,KAAK,CAAC,EAAElf,IAAI,CAACC,SAAS,CAACwc,SAAS,CAAC,CAAC,CAAC;EAEtD,IAAMiH,WAAW,GAAG,CAAA7c,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE0c,YAAY,KAAI,KAAK,IAAI1c,OAAO,CAAChnB,MAAM,KAAKA,MAAM;EAC/E,IAAM0jC,YAAY,GAAG,CAAC,EAAC1c,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAE0c,YAAY,KAAI1c,OAAO,CAAChnB,MAAM,KAAKA,MAAM;EAEzEqW,eAAS,CAAC;IACN,IAAI,CAAA2Q,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE2V,QAAQ,MAAKA,QAAQ,EAAE4F,WAAW,CAAC3C,SAAS,CAAC,CAAA,KACrD2C,WAAW,CAACP,eAAe,CAAC;GACpC,EAAE,CAAC7hB,IAAI,CAACC,SAAS,CAAC4hB,eAAe,CAAC,EAAEhb,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE2V,QAAQ,CAAC,CAAC;EAExDtmB,eAAS,CAAC;IACNosB,kBAAkB,CAACV,cAAc,IAAI,EAAE,CAAC;GAC3C,EAAE,CAAC5hB,IAAI,CAACC,SAAS,CAAC2hB,cAAc,CAAC,CAAC,CAAC;EAEpC1rB,eAAS,CAAC;IACNysB,cAAc,EAAE;GACnB,EAAE,CAACb,SAAS,EAAEne,MAAM,CAAC,CAAC;EAEvB,OAAO;IACHlB,GAAG,EAAHA,GAAG;IACH4E,OAAO,EAAPA,OAAO;IACPkb,QAAQ,EAARA,QAAQ;IACRJ,QAAQ,EAARA,QAAQ;IACRuB,WAAW,EAAXA,WAAW;IACXH,YAAY,EAAZA,YAAY;IACZlB,eAAe,EAAfA,eAAe;IACfP,SAAS,EAATA,SAAS;IACTU,YAAY,EAAZA,YAAY;IACZO,iBAAiB,EAAjBA,iBAAiB;IACjBC,oBAAoB,EAApBA,oBAAoB;IACpBK,uBAAuB,EAAvBA,uBAAuB;IACvBC,cAAc,EAAdA,cAAc;IACdE,aAAa,EAAbA,aAAa;IACbV,qBAAqB,EAArBA;GACH;AACL,CAAC;;ACjHD,IAAMa,aAAa,GAAc,SAA3BA,aAAaA,CAAchjB,KAAK;EAClC,IACIihB,cAAc,GAGdjhB,KAAK,CAHLihB,cAAc;IACdK,OAAO,GAEPthB,KAAK,CAFLshB,OAAO;IACPxF,SAAS,GACT9b,KAAK,CADL8b,SAAS;EAGb,IAAAmH,iBAAA,GAeIjC,gBAAgB,CAAChhB,KAAK,CAAC;IAdvB8B,GAAG,GAAAmhB,iBAAA,CAAHnhB,GAAG;IACH8f,QAAQ,GAAAqB,iBAAA,CAARrB,QAAQ;IACRlb,OAAO,GAAAuc,iBAAA,CAAPvc,OAAO;IACP8a,QAAQ,GAAAyB,iBAAA,CAARzB,QAAQ;IACRuB,WAAW,GAAAE,iBAAA,CAAXF,WAAW;IACXH,YAAY,GAAAK,iBAAA,CAAZL,YAAY;IACZlB,eAAe,GAAAuB,iBAAA,CAAfvB,eAAe;IACfP,SAAS,GAAA8B,iBAAA,CAAT9B,SAAS;IACTgB,qBAAqB,GAAAc,iBAAA,CAArBd,qBAAqB;IACrBC,iBAAiB,GAAAa,iBAAA,CAAjBb,iBAAiB;IACjBC,oBAAoB,GAAAY,iBAAA,CAApBZ,oBAAoB;IACpBK,uBAAuB,GAAAO,iBAAA,CAAvBP,uBAAuB;IACvBC,cAAc,GAAAM,iBAAA,CAAdN,cAAc;IACdE,aAAa,GAAAI,iBAAA,CAAbJ,aAAa;EAGjB,OACIp9B,6BAACy9B,kBAAO,oBAAKljB,KAAK;IAAEmjB,SAAS;MACzB19B,6BAAC29B,sBAAW;IAAC19B,SAAS;KAClBD;IAAKqc,GAAG,EAAEA,GAAG;IAAEpc,SAAS,EAAEmI,MAAM,CAAC,SAAS;KACtCpI;IACIC,SAAS,0BAAwBmI,MAAM,CAAC,eAAe;KAEvDpI,6BAACkmB,gBAAK;IAACjmB,SAAS,EAAC;YAA+B,EAChDD;IACIC,SAAS,YAAUmI,MAAM,CAAC,qBAAqB,CAAC,UAC5Ck1B,WAAW,IACXl1B,MAAM,CAAC,6BAA6B,CACxC,CAAE;IACFvG,OAAO,EAAEu7B;KAETp9B,6BAAC49B,yBAAsB;IAAC39B,SAAS,EAAC;IAAS,cAEzC,EACND;IACIC,SAAS,iBACLmI,MAAM,CAAC,qBAAqB,CAChC,UACI+0B,YAAY,IACZ/0B,MAAM,CAAC,6BAA6B,CACxC,CAAE;IACFvG,OAAO,EAAEq7B;KAETl9B,6BAAC69B,0BAAuB;IAAC59B,SAAS,EAAC;IAAS,eAE1C,CACJ,EAEL,CAAC,OAAOo2B,SAAS,IAAI,WAAW,IAAI,CAAC,CAACmF,cAAc,KACjDx7B,6BAACA,cAAK,CAAC8G,QAAQ,QACX9G;IAAKC,SAAS,EAAC;IAAsD,EACrED;IAAKC,SAAS,EAAC;KACXD,6BAACkmB,gBAAK;IAACjmB,SAAS,EAAC;cAET,EACRD;IAAKC,SAAS,8BAA4BmI,MAAM,CAAC,iBAAiB;KAC9DpI,6BAAC89B,eAAY;IACT79B,SAAS,yBAAuBmI,MAAM,CAAC,uBAAuB;IAChE,EACFpI,6BAACyB,gBAAK;IACF4a,GAAG,EAAE8f,QAAQ;IACbl8B,SAAS,EAAEmI,MAAM,CAAC,wBAAwB,CAAC;IAC3CjP,KAAK,EAAEuiC,SAAS;IAChBn6B,QAAQ,EAAEm7B;IACZ,CACA,EACN18B;IACIC,SAAS,8BAA4BmI,MAAM,CAAC,kBAAkB;KAE9DpI,6BAAC0I,oBAAS;IACNzI,SAAS,EAAC,2BAA2B;IACrC89B,KAAK;KAEL/9B,6BAACyB,gBAAK;IACFC,IAAI,EAAC,UAAU;IACfH,QAAQ,EAAE07B,uBAAuB;IACjCj0B,OAAO,EAAE+yB,QAAQ,IAAI1C;IACvB,EAAC,GAAG,EACNr5B,6BAACkmB,gBAAK;IAAC6X,KAAK;oBAAqB,CACzB,EACX,CAAC,CAAC1H,SAAS,IACR,CAACmF,cAAc,IACfva,OAAO,CAAC7a,GAAG,CAAC,UAACsE,CAAe;IAAA,OACxB1K,6BAAC0I,oBAAS;MACN6B,GAAG,EAAEG,CAAC,CAACvR,KAAK;MACZ8G,SAAS,EAAC,2BAA2B;MACrC89B,KAAK;OAEL/9B,6BAACyB,gBAAK;MACFC,IAAI,EAAC,UAAU;MACfvI,KAAK,EAAEuR,CAAC,CAACvR,KAAK;MACdoI,QAAQ,EAAEq7B,oBAAoB;MAC9B5zB,OAAO,EAAE,CAAA+yB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEphC,QAAQ,CAAC+P,CAAC,CAACvR,KAAK,CAAC,KAAI4iC,QAAQ,IAAI1C;MACtD,EAAC,GAAG,EACNr5B,6BAACkmB,gBAAK;MAAC6X,KAAK;OAAErzB,CAAC,CAACxR,KAAK,CAAS,CACtB;GACf,CAAC,EACL,CAAC,CAACsiC,cAAc,IACbS,eAAe,CAAC71B,GAAG,CAAC,UAACsE,CAAe;IAAA,OAChC1K,6BAAC0I,oBAAS;MACN6B,GAAG,EAAEG,CAAC,CAACvR,KAAK;MACZ8G,SAAS,EAAC,2BAA2B;MACrC89B,KAAK;OAEL/9B,6BAACyB,gBAAK;MACFC,IAAI,EAAC,UAAU;MACfvI,KAAK,EAAEuR,CAAC,CAACvR,KAAK;MACdoI,QAAQ,EAAEq7B,oBAAoB;MAC9B5zB,OAAO,EAAE,CAAA+yB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEphC,QAAQ,CAAC+P,CAAC,CAACvR,KAAK,CAAC,KAAI4iC,QAAQ,IAAI1C;MACtD,EAAC,GAAG,EACNr5B,6BAACkmB,gBAAK;MAAC6X,KAAK;OAAErzB,CAAC,CAACxR,KAAK,CAAS,CACtB;GACf,CAAC,CACJ,CACJ,EACN8G;IAAKC,SAAS,EAAC;KACXD,6BAAC2f,iBAAM;IACH/e,KAAK,EAAC,SAAS;IACfX,SAAS,EAAC,MAAM;IAChB8J,IAAI,EAAC,IAAI;IACTlI,OAAO,EAAE86B;oBAGJ,EACT38B,6BAAC2f,iBAAM;IACH/e,KAAK,EAAC,WAAW;IACjBmJ,IAAI,EAAC,IAAI;IACTlI,OAAO,EAAEg6B;cAGJ,CACP,CAEb,CACC,CACI,CACR;AAElB,CAAC;;AC5JD,IAAMmC,UAAU,GAAc,SAAxBA,UAAUA,CAAAl+B,IAAA;;MACZiN,IAAI,GAAAjN,IAAA,CAAJiN,IAAI;IACJkxB,SAAS,GAAAn+B,IAAA,CAATm+B,SAAS;IACTxd,OAAO,GAAA3gB,IAAA,CAAP2gB,OAAO;IACPnnB,YAAY,GAAAwG,IAAA,CAAZxG,YAAY;IACZw/B,KAAK,GAAAh5B,IAAA,CAALg5B,KAAK;IACL2C,eAAe,GAAA37B,IAAA,CAAf27B,eAAe;IACfG,eAAe,GAAA97B,IAAA,CAAf87B,eAAe;IACfxB,QAAQ,GAAAt6B,IAAA,CAARs6B,QAAQ;IACR0B,eAAe,GAAAh8B,IAAA,CAAfg8B,eAAe;IACfoC,YAAY,GAAAp+B,IAAA,CAAZo+B,YAAY;IACZrC,OAAO,GAAA/7B,IAAA,CAAP+7B,OAAO;IACP1F,QAAQ,GAAAr2B,IAAA,CAARq2B,QAAQ;IAAAgI,aAAA,GAAAr+B,IAAA,CACRu3B,QAAQ;IAARA,QAAQ,GAAA8G,aAAA,cAAG,KAAK,GAAAA,aAAA;EAEhB,IAAAhe,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACT,IAAAxR,SAAA,GAAkCC,cAAQ,CAAS,EAAE,CAAC;IAA/C4sB,SAAS,GAAA7sB,SAAA;IAAEuvB,YAAY,GAAAvvB,SAAA;EAC9B,IAAMd,EAAE,GAAGsvB,aAAO,CACd;IAAA,OAAOtwB,IAAI,CAACtT,MAAM,IAAI4/B,SAAS,GAAGlE,UAAU,CAACpoB,IAAI,CAACtT,MAAM,CAAC,GAAG,EAAE;GAAC,EAC/D,CAACsT,IAAI,CAACtT,MAAM,CAAC,CAChB;EACD,IAAM8jB,MAAM,GAAG8f,aAAO,CAAC;IAAA,OAAMY,SAAS,KAAKlwB,EAAE;KAAE,CAACA,EAAE,EAAEkwB,SAAS,CAAC,CAAC;EAC/D,IAAMI,gBAAgB,GAAG,SAAnBA,gBAAgBA;IAClBH,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGnwB,EAAE,EAAEhB,IAAI,CAACqpB,QAAQ,EAAEsF,SAAS,EAAE3uB,IAAI,CAACtT,MAAM,CAAC;GAC5D;EAED,IAAMijC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIvjC,KAAa;IACxCilC,YAAY,CAACjlC,KAAK,CAAC;GACtB;EAED,OACI6G;IAAIC,SAAS,EAAE8M,IAAI,CAAC9M;KACf,CAAC,CAAC8N,EAAE,IAAIhB,IAAI,CAACtT,MAAM,KAAK4/B,SAAS,GAC9Br5B;IAAKC,SAAS,qBAAkB,CAACk2B,QAAQ,GAAG,yBAAyB,GAAG,wBAAwB,6BAAuB/tB,MAAM,CAAC,mBAAmB;KAC5IiY,CAAC,CAACtT,IAAI,CAACpT,IAAI,CAAC,EACbqG;IACIC,SAAS,EAAC,UAAU;IACpB8N,EAAE,EAAEA,EAAE;IACNlM,OAAO,EAAEw8B,gBAAgB;IACzB1+B,KAAK,EAAE;MACH2+B,MAAM,EAAE;;KAIRvxB,IAAI,CAACtT,MAAM,KAAK4/B,SAAS,IAAItsB,IAAI,CAACtT,MAAM,MAAKgnB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEhnB,MAAM,KAE5DuG,2CAEQygB,OAAO,CAAC0c,YAAY,GAEhBn9B,6BAAC69B,0BAAuB,OAAG,GAE3B79B,6BAAC49B,yBAAsB,OAAG,CAE/B,EAIP,CAAC,EAACnd,OAAO,aAAPA,OAAO,gBAAA8d,qBAAA,GAAP9d,OAAO,CAAE6Y,eAAe,cAAAiF,qBAAA,eAAxBA,qBAAA,CAA0BzlB,MAAM,KAAI/L,IAAI,CAACqpB,QAAQ,MAAK3V,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE2V,QAAQ,IAErEp2B,6BAACw+B,aAAQ;IAAC59B,KAAK,EAAEy2B,QAAQ,GAAG,SAAS,GAAG;IAAa,GAErDr3B,6BAACy+B,cAAW;IAAC79B,KAAK,EAAEy2B,QAAQ,GAAG,SAAS,GAAG;IAAa,CAE9D,EACNr3B,6BAACu9B,aAAa;IACVmB,SAAS,EAAC,YAAY;IACtB91B,MAAM,EAAEmF,EAAE;IACV+qB,KAAK,EAAEA,KAAK;IACZvb,MAAM,EAAEA,MAAM;IACdkD,OAAO,EAAEA,OAAO;IAChBhnB,MAAM,EAAEsT,IAAI,CAACtT,MAAM;IACnBiiC,SAAS,EAAEA,SAAS;IACpBtF,QAAQ,EAAErpB,IAAI,CAACqpB,QAAQ;IACvB98B,YAAY,EAAEA,YAAY;IAC1BkiC,cAAc,EAAEzuB,IAAI,CAACkU,OAAO;IAC5Bwa,eAAe,EAAEA,eAAe;IAChCI,OAAO,EAAEA,OAAO;IAChBzB,QAAQ,EAAEA,QAAQ;IAClB/D,SAAS,EAAEtpB,IAAI,CAACspB,SAAS;IACzByF,eAAe,EAAEA,eAAe;IAChCF,eAAe,EAAEA,eAAe;IAChCD,iBAAiB,EAAEe;IACrB,CACA,GAENrc,CAAC,CAACtT,IAAI,CAACpT,IAAI,CACd,CACA;AAEb,CAAC;;ACnGD,IAAMglC,cAAc,GAAG,SAAjBA,cAAcA,CAAIpkB,KAAY;EAChC,IACIkG,OAAO,GAOPlG,KAAK,CAPLkG,OAAO;IACPqb,eAAe,GAMfvhB,KAAK,CANLuhB,eAAe;IACf8C,eAAe,GAKfrkB,KAAK,CALLqkB,eAAe;IACfC,cAAc,GAIdtkB,KAAK,CAJLskB,cAAc;IACdC,gBAAgB,GAGhBvkB,KAAK,CAHLukB,gBAAgB;IAChBC,gBAAgB,GAEhBxkB,KAAK,CAFLwkB,gBAAgB;IAChBC,uBAAuB,GACvBzkB,KAAK,CADLykB,uBAAuB;EAE3B,IAAAnwB,SAAA,GAAkCC,cAAQ,EAAU;IAA7CmvB,SAAS,GAAApvB,SAAA;IAAEowB,YAAY,GAAApwB,SAAA;EAC9B,IAAAK,UAAA,GAA0BJ,cAAQ,CAAW,EAAE,CAAC;IAAzCgqB,KAAK,GAAA5pB,UAAA;IAAEgwB,QAAQ,GAAAhwB,UAAA;EACtB,IAAAG,UAAA,GAA4CP,cAAQ,CAAA0B,QAAA,KAC7CimB,sBAAsB;MACzB0G,YAAY,EAAE1c,OAAO,CAAC0c,YAAY;MAClC7jC,YAAY,EAAEmnB,OAAO,CAACnnB;MACzB,CAAC;IAJK6lC,cAAc,GAAA9vB,UAAA;IAAE+vB,iBAAiB,GAAA/vB,UAAA;EAKxC,IAAM/K,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAM6F,MAAM,GAAGoE,0BAAW,EAAE;EAE5B,IAAM4U,OAAO,GAAGxe,iBAAW,WAChBy6B,SAAmB;IAAA;qCAClB;QAAA,OAAAt6B,OAAA,CAAAC,OAAA,CACa45B,eAAe,GAAuE3L,gBAAgB,CAACkM,cAAc,CAAC,GAA9FnM,mBAAmB,CAAAxiB,QAAA,KAAM2uB,cAAc;UAAEE,SAAS,EAATA;UAAW,CAAC,EAAAj4B,IAAA,WAApFhC,GAAG;UAAA,IAAAsQ,SAAA;UACT,IAAM2N,KAAK,GAAa,EAAA3N,SAAA,GAAAtQ,GAAG,CAAC2H,IAAI,cAAA2I,SAAA,uBAARA,SAAA,CAAU2N,KAAK,KAAI,EAAE;UAC7C6b,QAAQ,CAAC7b,KAAK,CAAC;;OAClB,YAAQ5b,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KACD,CAACmb,IAAI,CAACC,SAAS,CAACslB,cAAc,CAAC,EAAEP,eAAe,CAAC,CACpD;EACD,IAAMU,gBAAgB,GAAG16B,iBAAW,CAAC,UAACmJ,EAAU,EAAEqoB,QAAmB,EAAEmJ,cAAuB,EAAE9lC,MAAkB;IAC9GwlC,YAAY,CAAClxB,EAAE,CAAC;IAChBqxB,iBAAiB,CAAA5uB,QAAA,KACV2uB,cAAc;MACjB/I,QAAQ,EAARA,QAAQ;MACRmJ,cAAc,EAAdA,cAAc;MACdpC,YAAY,EAAE1c,OAAO,CAAChnB,MAAM,KAAKA,MAAM,GAAGgnB,OAAO,CAAC0c,YAAY,GAAG9D,SAAS;MAC1E//B,YAAY,EAAEmnB,OAAO,CAACnnB;MACzB,CAAC;GACL,EAAE,CAACsgB,IAAI,CAACC,SAAS,CAACslB,cAAc,CAAC,EAAE1e,OAAO,CAAC0c,YAAY,EAAE1c,OAAO,CAACnnB,YAAY,CAAC,CAAC;EAEhF,IAAMkmC,iBAAiB,GAAG,SAApBA,iBAAiBA;IACnBP,YAAY,CAAC,EAAE,CAAC;GACnB;EAED,IAAM7C,YAAY,GAAGx3B,iBAAW,CAAC,UAAC6J,MAAc,EAAE2nB,QAAmB;IACjEgJ,iBAAiB,CAAA5uB,QAAA,KACV2uB,cAAc;MACjB/I,QAAQ,EAARA,QAAQ;MACRmJ,cAAc,EAAE9wB;MACnB,CAAC;GACL,EAAE,CAACmL,IAAI,CAACC,SAAS,CAACslB,cAAc,CAAC,CAAC,CAAC;EAEpC,IAAMM,mBAAmB,GAAG76B,iBAAW,CAAC,UAACzL,KAAgB,EAAEi9B,QAAmB;IAC1E,IAAI,CAAC,CAACA,QAAQ,EAAE;MAAA,IAAAsJ,SAAA;MACZ5D,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAAtrB,QAAA,KACRiQ,OAAO,GAAAif,SAAA,OAAAA,SAAA,CACTzK,QAAQ,CAACmB,QAAQ,CAAC,IAAGj9B,KAAK,EAAAumC,SAAA,EAC9B,CAAC;;GAET,EAAE,CAAC9lB,IAAI,CAACC,SAAS,CAAC4G,OAAO,CAAC,CAAC,CAAC;EAE7B3Q,eAAS,CAAC;;IACN,IAAI,CAAC1F,MAAM,CAACoU,QAAQ,CAAC7jB,QAAQ,CAAC,sBAAsB,CAAC,EAAE;IAEvD,IAAMglC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,GAAa;MAAA,OACrCA,GAAG,CAACC,IAAI,CAAC,UAACxQ,CAAC,EAAEyQ,CAAC;QAAA,OAAKzQ,CAAC,CAAC0Q,aAAa,CAACD,CAAC,CAAC;QAAC;;IAC1C,IAAMxmC,YAAY,GAAG,EAAA0mC,qBAAA,GAAAb,cAAc,CAACI,cAAc,cAAAS,qBAAA,uBAA7BA,qBAAA,CAA+Bj/B,WAAW,EAAE,KAAI,EAAE;IAEvE,IAAIo+B,cAAc,CAAC/I,QAAQ,KAAKnB,QAAQ,CAACY,KAAK,EAAE;MAC5CqJ,QAAQ,CAACpH,KAAK,CAAC;KAClB,MAAM;MACH,IAAI7W,OAAO,GAAa,EAAE;MAE1B,QAAQke,cAAc,CAAC/I,QAAQ;QAC3B,KAAKnB,QAAQ,CAACK,IAAI;UACdlS,OAAO,CAAC,IAAI,CAAC;UACb;QACJ,KAAK6R,QAAQ,CAACa,OAAO;UACjB7U,OAAO,GAAG,CAAA4d,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEz4B,GAAG,CAAC,UAAA3H,CAAC;YAAA,OAAIA,CAAC,CAACvF,KAAK;YAAC,CAACqN,MAAM,CAACxL,OAAO,CAAC,KAAI,EAAE;UACjE;QACJ,KAAKk6B,QAAQ,CAACc,SAAS;UACnB9U,OAAO,GAAG,CAAA6d,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAE14B,GAAG,CAAC,UAAA3H,CAAC;YAAA,OAAIA,CAAC,CAACvF,KAAK;YAAC,CAACqN,MAAM,CAACxL,OAAO,CAAC,KAAI,EAAE;UACnE;QACJ,KAAKk6B,QAAQ,CAACe,SAAS;UACnB/U,OAAO,GAAG,CAAA8d,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAE34B,GAAG,CAAC,UAAA3H,CAAC;YAAA,OAAIA,CAAC,CAACvF,KAAK;YAAC,CAACqN,MAAM,CAACxL,OAAO,CAAC,KAAI,EAAE;UACnE;QACJ,KAAKk6B,QAAQ,CAACgB,gBAAgB;UAC1BhV,OAAO,GAAG,CAAA+d,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,CAAE54B,GAAG,CAAC,UAAA3H,CAAC;YAAA,OAAIA,CAAC,CAACvF,KAAK;YAAC,CAACqN,MAAM,CAACxL,OAAO,CAAC,KAAI,EAAE;UAC1E;;MAGR,IAAMklC,aAAa,GAAGz1B,KAAK,CAAC01B,IAAI,CAAC,IAAIC,GAAG,CAAClf,OAAO,CAAC,CAAC;MAElD,IAAMmf,QAAQ,GAAG9mC,YAAY,GACvB2mC,aAAa,CAAC15B,MAAM,CAAC,UAAA85B,GAAG;QAAA,OACtBA,GAAG,CAACt/B,WAAW,EAAE,CAACpG,QAAQ,CAACrB,YAAY,CAAC;QAC3C,GACC2mC,aAAa;MAEnB,IAAMK,MAAM,GAAGX,kBAAkB,CAACS,QAAQ,CAAC;MAC3ClB,QAAQ,CAACoB,MAAM,CAAC;;GAEvB,EAAE,CACC1mB,IAAI,CAACC,SAAS,CAACslB,cAAc,CAAC,EAC9BN,cAAc,EACdC,gBAAgB,EAChBC,gBAAgB,EAChBC,uBAAuB,EACvB50B,MAAM,CAACoU,QAAQ,CAClB,CAAC;EAGF1O,eAAS,CAAC;IACN,IAAMywB,aAAa,GAAGn2B,MAAM,CAACoU,QAAQ,CAAC7jB,QAAQ,CAAC,sBAAsB,CAAC,IAClEwkC,cAAc,CAAC/I,QAAQ,KAAKiD,SAAS;IAEzC,IAAI,CAACkH,aAAa,IAAIpB,cAAc,CAAC/I,QAAQ,KAAKiD,SAAS,EAAE;MACzDjW,OAAO,EAAE;;GAEhB,EAAE,CACCxJ,IAAI,CAACC,SAAS,CAACslB,cAAc,CAAC,EAC9B/0B,MAAM,CAACoU,QAAQ,CAClB,CAAC;EAEF,OAAO;IACH2gB,cAAc,EAAdA,cAAc;IACdlB,SAAS,EAATA,SAAS;IACTnF,KAAK,EAALA,KAAK;IACLwG,gBAAgB,EAAhBA,gBAAgB;IAChBE,iBAAiB,EAAjBA,iBAAiB;IACjBpD,YAAY,EAAZA,YAAY;IACZqD,mBAAmB,EAAnBA;GACH;AACL,CAAC;;AC9ID,IAAMe,WAAW,GAAc,SAAzBA,WAAWA,CAAA1gC,IAAA;MACbuL,OAAO,GAAAvL,IAAA,CAAPuL,OAAO;IACPoV,OAAO,GAAA3gB,IAAA,CAAP2gB,OAAO;IACPqb,eAAe,GAAAh8B,IAAA,CAAfg8B,eAAe;IACf8C,eAAe,GAAA9+B,IAAA,CAAf8+B,eAAe;IAAA6B,mBAAA,GAAA3gC,IAAA,CACf++B,cAAc;IAAdA,cAAc,GAAA4B,mBAAA,cAAG,EAAE,GAAAA,mBAAA;IAAAC,qBAAA,GAAA5gC,IAAA,CACnBg/B,gBAAgB;IAAhBA,gBAAgB,GAAA4B,qBAAA,cAAG,EAAE,GAAAA,qBAAA;IAAAC,qBAAA,GAAA7gC,IAAA,CACrBi/B,gBAAgB;IAAhBA,gBAAgB,GAAA4B,qBAAA,cAAG,EAAE,GAAAA,qBAAA;IAAAC,qBAAA,GAAA9gC,IAAA,CACrBk/B,uBAAuB;IAAvBA,uBAAuB,GAAA4B,qBAAA,cAAG,EAAE,GAAAA,qBAAA;EAE5B,IAAAC,eAAA,GAOIlC,cAAc,CAAC;MACfle,OAAO,EAAPA,OAAO;MACPqb,eAAe,EAAfA,eAAe;MACf8C,eAAe,EAAfA,eAAe;MACfC,cAAc,EAAdA,cAAc;MACdC,gBAAgB,EAAhBA,gBAAgB;MAChBC,gBAAgB,EAAhBA,gBAAgB;MAChBC,uBAAuB,EAAvBA;KACH,CAAC;IAdEf,SAAS,GAAA4C,eAAA,CAAT5C,SAAS;IACTnF,KAAK,GAAA+H,eAAA,CAAL/H,KAAK;IACLwG,gBAAgB,GAAAuB,eAAA,CAAhBvB,gBAAgB;IAChBE,iBAAiB,GAAAqB,eAAA,CAAjBrB,iBAAiB;IACjBpD,YAAY,GAAAyE,eAAA,CAAZzE,YAAY;IACZqD,mBAAmB,GAAAoB,eAAA,CAAnBpB,mBAAmB;EAWvB,IAAMqB,UAAU,GAAGz2B,MAAM,CAAC02B,OAAO,CAACtgB,OAAO,CAAC,CACrCla,MAAM,CAAC,UAAAkjB,KAAA;IAAA,IAAKtwB,KAAK,GAAAswB,KAAA;IAAA,OACdtwB,KAAK,KAAK,EAAE,IACZ,EAAEqR,KAAK,CAACC,OAAO,CAACtR,KAAK,CAAC,IAAIA,KAAK,CAAC2f,MAAM,KAAK,CAAC,CAAC,IAC7C3f,KAAK,KAAK,IAAI,IACdA,KAAK,KAAKkgC,SAAS;IACtB,CACAjzB,GAAG,CAAC,UAAAujB,KAAA;IAAA,IAAEpf,GAAG,GAAAof,KAAA;IAAA,OAAMpf,GAAG;IAAC;EAGxB,IAAMy2B,OAAO,GAAG32B,MAAM,CAAC02B,OAAO,CAAC9L,QAAQ,CAAC,CACnC1uB,MAAM,CAAC,UAAAujB,KAAA;IAAA,IAAEmX,CAAC,GAAAnX,KAAA;IAAK,OAAMoX,KAAK,CAACC,MAAM,CAACF,CAAC,CAAC,CAAC;IAAuB;EAEjE,IAAMG,qBAAqB,GAAGN,UAAU,CACnC16B,GAAG,CAAC,UAAAmE,GAAG;IAAA,OAAIy2B,OAAO,CAACjb,IAAI,CAAC,UAAAuE,KAAA;MAAA,IAAE2W,CAAC,GAAA3W,KAAA;MAAA,OAAM2W,CAAC,KAAK12B,GAAG;MAAC;IAAC,CAC5ChE,MAAM,CAAC,UAACga,IAAI;IAAA,OAA+B,CAAC,CAACA,IAAI;IAAC;EAEvD,OACIvgB,yCACKqL,OAAO,CAACjF,GAAG,CAAC,UAAAsd,MAAM;;IACf,OAAO,CAACA,MAAM,CAAC2d,WAAW,GACtBrhC,6BAACg+B,UAAU;MACPlF,KAAK,EAAEA,KAAK;MACZ/rB,IAAI,EAAE2W,MAAM;MACZnZ,GAAG,EAAEmZ,MAAM,CAAC/pB,IAAI;MAChBw8B,QAAQ,EAAEzS,MAAM,CAACyS,QAAQ;MACzB1V,OAAO,EAAEA,OAAO;MAChBwd,SAAS,EAAEA,SAAS;MACpBxC,eAAe,EAAEhb,OAAO,CAAC6Y,eAAe;MACxCc,QAAQ,EAAEgC,YAAY;MACtBP,OAAO,EAAE2D,iBAAiB;MAC1BtB,YAAY,EAAEoB,gBAAgB;MAC9BxD,eAAe,EAAEA,eAAe;MAChCF,eAAe,EAAE6D,mBAAmB;MACpCpI,QAAQ,EACJ,OAAO3T,MAAM,CAAC0S,QAAQ,KAAK,QAAQ,IAAIgL,qBAAqB,CAAC5iC,IAAI,CAAC,UAAA8iC,KAAA;QAAA,IAAKnoC,KAAK,GAAAmoC,KAAA;QAAA,OAAMnoC,KAAK,KAAKuqB,MAAM,CAAC0S,QAAQ;;MAEjH,GAEFp2B;MAAIuK,GAAG,EAAEmZ,MAAM,CAAC/pB,IAAI;MAAEsG,SAAS,gCAA8ByjB,MAAM,CAACzjB;OAChED;MACI0B,IAAI,EAAC,UAAU;MACfH,QAAQ,EAAE,SAAVA,QAAQA;QAAA,IAAAggC,mBAAA;QAAA,QAAAA,mBAAA,GAAQ7d,MAAM,CAAC2d,WAAW,cAAAE,mBAAA,uBAAlBA,mBAAA,CAAAhL,IAAA,CAAA7S,OAAsB;;MACtC1a,OAAO,GAAAw4B,kBAAA,GAAE9d,MAAM,CAAC+d,UAAU,YAAAD,kBAAA,GAAI;MAChC,CAET;GACJ,CAAC,CACD;AAEb,CAAC;;ACrFD,IAAME,iBAAiB,GAAG,SAApBA,iBAAiBA;EACnB,IAAMp9B,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAMkE,UAAU,GAAGwL,sBAAW,CAAC,UAACC,KAAU;IAAA,IAAAytB,aAAA,EAAAC,kBAAA;IAAA,OAAK1tB,KAAK,aAALA,KAAK,wBAAAytB,aAAA,GAALztB,KAAK,CAAEC,MAAM,cAAAwtB,aAAA,wBAAAC,kBAAA,GAAbD,aAAA,CAAelkB,IAAI,cAAAmkB,kBAAA,uBAAnBA,kBAAA,CAAqBn5B,UAAU;IAAC,IAAI,EAAE;EAErF,IAAMo5B,WAAW,YAAXA,WAAWA,CAAUphB,OAAmB;IAAA;;QAkB1Cnc,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAjB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA+N,KAAA,GAAAC,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkBkuB,mBAAmB,CAACzS,OAAO,CAAC,EAAArZ,IAAA,WAAxChC,GAAG;UACT,IAAM2H,IAAI,GAAW3H,GAAG,CAAC2H,IAAI;UAC7B,IAAM+0B,UAAU,GAAGC,qBAAqB,CAACh1B,IAAI,CAAC;UAC9C,IAAMi1B,IAAI,GAAGhkC,QAAQ,CAACisB,aAAa,CAAC,GAAG,CAAC;UACxC+X,IAAI,CAACtnC,IAAI,GAAGonC,UAAU;UACtBE,IAAI,CAACC,QAAQ,GAAMx5B,UAAU,sBAAmB;UAChDu5B,IAAI,CAACzX,KAAK,EAAE;;OACf,YAAQ9iB,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA,CAAAiJ,MAAA,IAAAA,MAAA,CAAAL,KAAA;KAEJ,QAAAvR,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMsjC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIh1B,IAAY;IACvC,IAAI1B,OAAO,GAAG,uQAAuQ;IACrR,IAAMmQ,OAAO,GAAGzO,IAAI,CAAC3G,GAAG,CAAC,UAACqX,IAAU;;MAChC,IAAMykB,GAAG,GAAGzkB,IAAI,CAAC6Z,WAAW,KAAKl9B,cAAc,GAAG+nC,iCAAyB,CACvE,IAAIj2B,IAAI,EAAE,EACV0uB,gBAAQ,CAACnd,IAAI,CAAC6Z,WAAW,CAAC,CACzB,GAAG,EAAE;MACV,OAAU8K,UAAU,CAAC3kB,IAAI,CAAC9W,SAAS,CAAC,SAAIy7B,UAAU,CAAC3kB,IAAI,CAAC7W,QAAQ,CAAC,SAAIw7B,UAAU,CAAC3kB,IAAI,CAACha,KAAK,CAAC,SAAI2+B,UAAU,CAAC3kB,IAAI,CAAC2Z,WAAW,CAAC,SAAI8K,GAAG,SAAIE,UAAU,CAAC3kB,IAAI,CAAC4W,KAAK,CAAC,SAAI+N,UAAU,CAAC3kB,IAAI,CAACnR,KAAK,CAAC1B,IAAI,CAAC,IAAI,CAAC,CAAC5J,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC,UAAIyc,IAAI,CAAC4Z,QAAQ,GAAG,QAAQ,GAAG,UAAU,UAAIgL,cAAc,CAAC5kB,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE6kB,UAAU,EAAE,kBAAkB,CAAC,SAAIF,UAAU,CAAC3kB,IAAI,CAACiW,SAAS,CAAC,SAAI0O,UAAU,EAAAG,gBAAA,GAAC9kB,IAAI,CAACic,UAAU,cAAA6I,gBAAA,uBAAfA,gBAAA,CAAiBn2B,MAAM,CAAC,SAAIg2B,UAAU,EAAAI,iBAAA,GAAC/kB,IAAI,CAACic,UAAU,cAAA8I,iBAAA,uBAAfA,iBAAA,CAAiB58B,UAAU,CAAC,SAAIw8B,UAAU,EAAAK,iBAAA,GAAChlB,IAAI,CAACic,UAAU,cAAA+I,iBAAA,uBAAfA,iBAAA,CAAiB9I,UAAU,CAAC,SAAIyI,UAAU,EAAAM,iBAAA,GAACjlB,IAAI,CAACic,UAAU,cAAAgJ,iBAAA,uBAAfA,iBAAA,CAAiB78B,SAAS,CAAC,SAAIu8B,UAAU,EAAAO,iBAAA,GAACllB,IAAI,CAACic,UAAU,cAAAiJ,iBAAA,uBAAfA,iBAAA,CAAiBl/B,KAAK,CAAC,SAAI2+B,UAAU,EAAAQ,iBAAA,GAACnlB,IAAI,CAACic,UAAU,cAAAkJ,iBAAA,uBAAfA,iBAAA,CAAiBC,IAAI,CAAC,SAAIT,UAAU,EAAAU,iBAAA,GAACrlB,IAAI,CAACic,UAAU,cAAAoJ,iBAAA,uBAAfA,iBAAA,CAAiBC,MAAM,CAAC,SAAIX,UAAU,CAAC3kB,IAAI,CAACma,QAAQ,CAAC,SAAIwK,UAAU,CAAC3kB,IAAI,CAACulB,UAAU,CAAC,SAAIZ,UAAU,CAAC3kB,IAAI,CAACoZ,UAAU,CAAC,SAAIuL,UAAU,CAAC3kB,IAAI,CAACwlB,eAAe,CAAC,SAAIb,UAAU,CAAC3kB,IAAI,CAACylB,WAAW,CAAC;KACzyB,CAAC,CAACt4B,IAAI,CAAC,IAAI,CAAC;IACb,YAAU8rB,UAAU,GAAGrrB,OAAO,GAAGV,kBAAkB,CAAC6Q,OAAO,CAAC;GAC/D;EAED,IAAM4mB,UAAU,GAAG,SAAbA,UAAUA,CAAIjpC,KAAa;IAC7B,IAAG,CAACA,KAAK,EAAE,OAAO,EAAE;IACpB,cAAWA,KAAK,CAAC6H,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAACmiC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC;GAC9D;EAED,OAAO;IACHtB,WAAW,EAAXA;GACH;AACL,CAAC;;ACnDD,IAAMuB,YAAY,GAAM9oC,QAAQ,uBAAoB;AACpD,IAAM+oC,gBAAgB,GAAM/oC,QAAQ,iBAAc;AAElD,AAEO,IAAMgpC,SAAS,GAAG,SAAZA,SAASA,CAAI7b,QAAkB,EAAE8b,SAAiB;EAAA,OAC7D/3B,SAAS,CAACwB,IAAI,CAAIo2B,YAAY,SAAIG,SAAS,EAAI9b,QAAQ,CAAC;AAAA;AAE1D,AAGO,IAAM+b,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAI/b,QAAkB;EAAA,OAAKjc,SAAS,CAACwB,IAAI,CAAIo2B,YAAY,6BAA0B3b,QAAQ,CAAC;AAAA;AAEjI,AAAO,IAAMgc,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAI3rB,SAAiB,EAAE2P,QAAkB;EAAA,OAC1Ejc,SAAS,CAACwB,IAAI,CAAIq2B,gBAAgB,uCAAkCvrB,SAAS,EAAI2P,QAAQ,CAAC;AAAA;AAE5F,AAAO,IAAMic,cAAc,GAAG,SAAjBA,cAAcA,CAAIjc,QAAkB;EAAA,OAC/Cjc,SAAS,CAACwB,IAAI,CAAIq2B,gBAAgB,mBAAgB5b,QAAQ,CAAC;AAAA;AAE7D,AAAO,IAAMkc,wBAAwB,GAAG,SAA3BA,wBAAwBA;EAAA,OAAS34B,GAAG,CAACoC,GAAG,CAAIi2B,gBAAgB,iCAA8B,CAAC;AAAA;AACxG,AAAO,IAAMO,cAAc,GAAG,SAAjBA,cAAcA,CAAInc,QAAkB,EAAE/lB,IAAmB;EAAA,OACpEsJ,GAAG,CAACgC,IAAI,CAAIq2B,gBAAgB,uCAAkC3hC,IAAI,EAAI+lB,QAAQ,CAAC;AAAA;;ACZjF,IAAKoc,OAQJ;AARD,WAAKA,OAAO;EACRA,gCAAqB;EACrBA,gCAAqB;EACrBA,4BAAiB;EACjBA,sCAA2B;EAC3BA,8CAAmC;EACnCA,4BAAiB;EACjBA,8BAAmB;AACvB,CAAC,EARIA,OAAO,KAAPA,OAAO;AAeZ,IAAM91B,EAAE,GAAG,WAAW;AACtB,IAAM+1B,gBAAgB,GAAG;EACrBC,WAAW,EAAE,EAAE;EACfC,YAAY,EAAE,EAAE;EAChBC,UAAU,EAAE,EAAE;EACd7Z,IAAI,EAAE;CACT;AACD,IAAM8Z,YAAY,GAAG,SAAfA,YAAYA;EACd,IAAM5/B,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAM4/B,SAAS,GAAGlwB,sBAAW,CAAC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACC,MAAM,CAACgwB,SAAS;IAAC;EACrE,IAAAt1B,SAAA,GAAwBC,cAAQ,CAAiB,IAAI,CAAC;IAA/CpN,IAAI,GAAAmN,SAAA;IAAEu1B,OAAO,GAAAv1B,SAAA;EACpB,IAAAK,UAAA,GAAgCJ,cAAQ,EAAO;IAAxCu1B,QAAQ,GAAAn1B,UAAA;IAAEo1B,WAAW,GAAAp1B,UAAA;EAC5B,IAAAG,UAAA,GAAoCP,cAAQ,CAAM,EAAE,CAAC;IAA9Cy1B,UAAU,GAAAl1B,UAAA;IAAEm1B,aAAa,GAAAn1B,UAAA;EAChC,IAAAG,UAAA,GAAwDV,cAAQ,CAC5Dg1B,gBAAgB,CACnB;IAFMW,oBAAoB,GAAAj1B,UAAA;IAAEk1B,uBAAuB,GAAAl1B,UAAA;EAGpD,IAAAG,UAAA,GAA8Cb,cAAQ,EAAO;IAAtD61B,eAAe,GAAAh1B,UAAA;IAAEi1B,kBAAkB,GAAAj1B,UAAA;EAC1C,IAAMtR,UAAU,GAAG7D,MAAM,CAACC,QAAQ,CAACO,QAAQ;EAC3C,IAAM6pC,gBAAgB,GAClBxmC,UAAU,CAAC1D,QAAQ,CAAC,KAAK,CAAC,IAAI0D,UAAU,CAAC1D,QAAQ,CAAC,OAAO,CAAC;EAC9D,IAAAma,UAAA,GAA4ChG,cAAQ,CAAS,CAAC,CAAC;IAAxDg2B,cAAc,GAAAhwB,UAAA;IAAEiwB,iBAAiB,GAAAjwB,UAAA;EACxC,IAAAE,UAAA,GAAgClG,cAAQ,CAAS,EAAE,CAAC;IAA7CsE,QAAQ,GAAA4B,UAAA;IAAEgwB,WAAW,GAAAhwB,UAAA;EAE5B,IAAMiwB,oBAAoB,YAApBA,oBAAoBA;IAAA;;QAwBtB3gC,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAvB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA+N,KAAA,GAAAC,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkB2+B,wBAAwB,EAAE,EAAAv8B,IAAA,WAAtChC,GAAG;UACT,IAAI2H,IAAI,GAAG,IAAIm4B,IAAI,CAAC,CAAC9/B,GAAG,CAAC2H,IAAI,CAACyO,OAAO,CAAC,EAAE;YAAE9Z,IAAI,EAAE;WAAY,CAAC;UAC7D,IAAMyjC,OAAO,GAAG3qC,MAAM,CAAC4qC,GAAG,CAACC,eAAe,CAACt4B,IAAI,CAAC;UAChD,IAAIsiB,CAAC,GAAGrxB,QAAQ,CAACisB,aAAa,CAAC,GAAG,CAAC;UACnCoF,CAAC,CAAC30B,IAAI,GAAGyqC,OAAO;UAChB9V,CAAC,CAACnF,YAAY,CAAC,UAAU,EAAE9kB,GAAG,CAAC2H,IAAI,CAACu4B,QAAQ,CAAC;UAC7CjW,CAAC,CAAC9E,KAAK,EAAE;UACTjmB,QAAQ,CACJhC,QAAQ,CAAC;YACLZ,IAAI,EAAE,SAAS;YACfwO,OAAO,EAAE;WACZ,CAAC,CACL;;OACJ,YAAQzI,GAAG,EAAE;QACVnD,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAEzI,GAAG,CAACyI;SAChB,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA,CAAAiJ,MAAA,IAAAA,MAAA,CAAAL,KAAA;KAEJ,QAAAvR,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAM8mC,MAAM,GAAG3gC,iBAAW,WACfwlB,IAAS;IAAA;;;QAmFZ9lB,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAM2rB,OAAO,GAAQ5vB,QAAQ,CAAC0uB,cAAc,CAAC3e,EAAE,CAAC;QAChD,IAAM8S,KAAK,GAAQ7iB,QAAQ,CAAC0uB,cAAc,CAAC,gBAAgB,CAAC;QAC5D,IAAM8Y,WAAW,GAAQxnC,QAAQ,CAAC0uB,cAAc,CAC5C,wBAAwB,CAC3B;QACDkB,OAAO,KAAKA,OAAO,CAACz0B,KAAK,GAAG,EAAE,CAAC;QAC/B0nB,KAAK,KAAKA,KAAK,CAAC1nB,KAAK,GAAG,EAAE,CAAC;QAC3BqsC,WAAW,KAAKA,WAAW,CAACrsC,KAAK,GAAG,EAAE,CAAC;;MAAA,IAAAssC,KAAA;MA1FvC,IAAI,CAAC/jC,IAAI,IAAI,CAAC0oB,IAAI,EAAE,OAAArlB,OAAA,CAAAC,OAAA;MACpBV,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAqV,MAAA,GAAArH,MAAA,aAEtB;QAAA,SAAAgH,OAAAyuB,OAAA;UAAA,IAAAD,KAAA,SAAAC,OAAA;UAgEAphC,QAAQ,CACJhC,QAAQ,CAAC;YACLZ,IAAI,EAAE,SAAS;YACfwO,OAAO,EAAE;WACZ,CAAC,CACL;;QApED,IAAMuX,QAAQ,GAAG,IAAI2B,QAAQ,EAAE;QAC/B3B,QAAQ,CAAC4B,MAAM,CAAC,MAAM,EAAEe,IAAI,EAAEA,IAAI,CAACzwB,IAAI,CAAC;QAAA,IAAAmX,MAAA;UAAA,IAEpCpP,IAAI,IAAImiC,OAAO,CAAC8B,OAAO;YAAA,OAAA5gC,OAAA,CAAAC,OAAA,CACGolB,IAAI,CAACrqB,IAAI,EAAE,EAAAqH,IAAA,WAA/Bw+B,WAAW;cAEjB,IAAIC,QAAQ,GAAGD,WAAW,CAACt/B,IAAI,EAAE;cACjC,IAAMorB,IAAI,GAAGmU,QAAQ,CAChBjrC,KAAK,CAAC,IAAI,CAAC,CACXwL,GAAG,CAAC,UAAC0/B,GAAQ;gBAAA,OAAKA,GAAG,CAACx/B,IAAI,EAAE;gBAAC;cAClC,IAAMy/B,WAAW,GAAGrU,IAAI,CAACsU,SAAS,CAAC,UAACF,GAAQ;gBAAA,OACxCA,GAAG,CAAClrC,KAAK,CAAC,GAAG,CAAC,CAACD,QAAQ,CAAC,WAAW,CAAC;gBACvC;cAED,IAAIorC,WAAW,KAAK,CAAC,EAAE;gBACnB,MAAM,IAAInzB,KAAK,CAAC,kCAAkC,CAAC;;cAGvDizB,QAAQ,GAAGnU,IAAI,CAACvY,KAAK,CAAC4sB,WAAW,CAAC,CAACn7B,IAAI,CAAC,IAAI,CAAC;cAE7C,IAAMq7B,UAAU,GAAGC,IAAI,CAACC,KAAK,CAACN,QAAQ,EAAE;gBACpCniB,MAAM,EAAE,IAAI;gBACZ0iB,cAAc,EAAE;eACnB,CAAC;cACF,IAAM1iB,MAAM,GAAGuiB,UAAU,CAACI,IAAI,CAACC,MAAM;cACrC,IAAMC,QAAQ,GAAGN,UAAU,CAACl5B,IAAI;cAEhC,IAAI,CAAC2W,MAAM,EAAE;gBACT,MAAM,IAAI9Q,KAAK,CAAC,0CAA0C,CAAC;;cAG/D,IAAM4zB,SAAS,GAAG,EAAE;cACpB,IAAMC,MAAM,GAAU,EAAE;cACxB,KAAK,IAAI/7B,EAAC,GAAG,CAAC,EAAEA,EAAC,GAAG67B,QAAQ,CAACztB,MAAM,EAAEpO,EAAC,IAAI87B,SAAS,EAAE;gBACjD,IAAME,SAAS,GAAGH,QAAQ,CAACptB,KAAK,CAACzO,EAAC,EAAEA,EAAC,GAAG87B,SAAS,CAAC;gBAClD,IAAMG,QAAQ,GAAGT,IAAI,CAACU,OAAO,CAAC;kBAC1BN,MAAM,EAAE5iB,MAAM;kBACd3W,IAAI,EAAE25B;iBACT,CAAC;gBACFD,MAAM,CAAC9Y,IAAI,CAACgZ,QAAQ,CAAC;;cACxB,IAAAp2B,MAAA,GAAAs2B,MAAA,CAEmBJ,MAAM,YAAjB/7B,CAAC,EAA8B;gBACpC,IAAM4e,IAAI,GAAG,IAAI4b,IAAI,CAAC,CAACuB,MAAM,CAAC/7B,CAAC,CAAC,CAAC,EAAE;kBAAEhJ,IAAI,EAAE;iBAAY,CAAC;gBACxD,IAAM+lB,QAAQ,GAAG,IAAI2B,QAAQ,EAAE;gBAC/B3B,QAAQ,CAAC4B,MAAM,CACX,MAAM,EACNC,IAAI,sBACa5e,CAAC,GAAG,CAAC,UAAM,CAC/B;gBAAA,OAAA3F,OAAA,CAAAC,OAAA,CAEK0+B,cAAc,CAACjc,QAAQ,CAAC,EAAArgB,IAAA;eACjC;cAAA,IAAAmJ,MAAA,IAAAA,MAAA,CAAAnJ,IAAA,SAAAmJ,MAAA,CAAAnJ,IAAA;;;YAAA,IAAAuJ,MAAA;cAAA,IAEGk0B,gBAAgB;gBAAA,IAAAp0B,MAAA;kBAAA,IACZ/O,IAAI,IAAImiC,OAAO,CAACiD,eAAe;oBAAA,OAAA/hC,OAAA,CAAAC,OAAA,CACzBw+B,wBAAwB,CAAC/b,QAAQ,CAAC,EAAArgB,IAAA;;;gBAAA,IAAAqJ,MAAA,IAAAA,MAAA,CAAArJ,IAAA,SAAAqJ,MAAA,CAAArJ,IAAA;;gBAAA,OAAArC,OAAA,CAAAC,OAAA,CAGtCs+B,SAAS,CAAC7b,QAAQ,EAAE/lB,IAAI,CAACgV,QAAQ,EAAE,CAAC,EAAAtP,IAAA;;;YAAA,IAAAuJ,MAAA,IAAAA,MAAA,CAAAvJ,IAAA,SAAAuJ,MAAA,CAAAvJ,IAAA;;;QAAA,OAAA0J,MAAA,IAAAA,MAAA,CAAA1J,IAAA,GAAA0J,MAAA,CAAA1J,IAAA,CAAA6P,MAAA,IAAAA,MAAA,CAAAnG,MAAA;OAUrD,YAAQrJ,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAsS,MAAA,IAAAA,MAAA,CAAAlQ,IAAA,GAAAkQ,MAAA,CAAAlQ,IAAA,CAAAiQ,MAAA,IAAAA,MAAA,CAAAC,MAAA;KAWJ,QAAA7Y,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KACD,CAACiD,IAAI,CAAC,CACT;EAED,IAAMqlC,iBAAiB,YAAjBA,iBAAiBA,CAAU3c,IAAS;IAAA;;QAgCtC9lB,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAM4e,KAAK,GAAQ7iB,QAAQ,CAAC0uB,cAAc,CAAC,iBAAiB,CAAC;QAC7D7L,KAAK,KAAKA,KAAK,CAAC1nB,KAAK,GAAG,EAAE,CAAC;;MAjC3B,IAAI,CAAC2rC,cAAc,EAAE;QACjBxgC,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE;SACZ,CAAC,CACL;QACD,OAAAnL,OAAA,CAAAC,OAAA;;MAEJ,IAAI,CAACtD,IAAI,IAAI,CAAC0oB,IAAI,EAAE,OAAArlB,OAAA,CAAAC,OAAA;MACpBV,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAwV,MAAA,GAAAxH,MAAA,aAEtB;QACA,IAAMwX,QAAQ,GAAG,IAAI2B,QAAQ,EAAE;QAC/B3B,QAAQ,CAAC4B,MAAM,CAAC,MAAM,EAAEe,IAAI,EAAEA,IAAI,CAACzwB,IAAI,CAAC;QAAA,OAAAoL,OAAA,CAAAC,OAAA,CAClCy+B,sBAAsB,CAACqB,cAAc,EAAErd,QAAQ,CAAC,EAAArgB,IAAA;UACtD9C,QAAQ,CACJhC,QAAQ,CAAC;YACLZ,IAAI,EAAE,SAAS;YACfwO,OAAO,EAAE;WACZ,CAAC,CACL;;OACJ,YAAQzI,GAAG,EAAE;QAAA,IAAAmJ,cAAA,EAAAC,mBAAA;QACVvM,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAU,cAAA,GAAAnJ,GAAG,CAAC0E,QAAQ,cAAAyE,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7D,IAAI,cAAA8D,mBAAA,uBAAlBA,mBAAA,CAAoB/O,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAyS,MAAA,IAAAA,MAAA,CAAArQ,IAAA,GAAAqQ,MAAA,CAAArQ,IAAA,CAAAoQ,MAAA,IAAAA,MAAA,CAAAC,MAAA;KAKJ,QAAAhZ,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAM+kB,SAAS,YAATA,SAASA,CAAUrc,MAAW;IAAA;;QA2BhC7C,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAM4e,KAAK,GAAQ7iB,QAAQ,CAAC0uB,cAAc,CAAC3e,EAAE,CAAC;QAC9C8S,KAAK,KAAKA,KAAK,CAAC1nB,KAAK,GAAG,EAAE,CAAC;;MA5B3B,IAAI,CAACkrC,QAAQ,IAAI,CAACA,QAAQ,EAAE,OAAAt/B,OAAA,CAAAC,OAAA;MAC5BV,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAsV,OAAA,GAAAtH,MAAA,aACtB;QACA,IAAMwX,QAAQ,GAAG,IAAI2B,QAAQ,EAAE;QAC/B3B,QAAQ,CAAC4B,MAAM,CAAC,MAAM,EAAEgb,QAAQ,EAAEA,QAAQ,CAAC1qC,IAAI,CAAC;QAChD8tB,QAAQ,CAAC4B,MAAM,CAAC,aAAa,EAAEliB,MAAM,CAAC48B,WAAW,CAAC;QAClDtc,QAAQ,CAAC4B,MAAM,CAAC,cAAc,EAAEliB,MAAM,CAAC68B,YAAY,CAAC;QACpD78B,MAAM,CAAC88B,UAAU,CAACx4B,OAAO,CAAC,UAAC8U,IAAS;UAChCkH,QAAQ,CAAC4B,MAAM,CAAC,YAAY,EAAE9I,IAAI,CAAC;SACtC,CAAC;QAAA,OAAAxb,OAAA,CAAAC,OAAA,CACIw+B,wBAAwB,CAAC/b,QAAQ,CAAC,EAAArgB,IAAA;UACxC9C,QAAQ,CACJhC,QAAQ,CAAC;YACLZ,IAAI,EAAE,SAAS;YACfwO,OAAO,EAAE;WACZ,CAAC,CACL;UACDw0B,uBAAuB,CAACZ,gBAAgB,CAAC;;OAC5C,YAAQr8B,GAAG,EAAE;QAAA,IAAAmP,cAAA,EAAAC,mBAAA;QACVvS,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAA0G,cAAA,GAAAnP,GAAG,CAAC0E,QAAQ,cAAAyK,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7J,IAAI,cAAA8J,mBAAA,uBAAlBA,mBAAA,CAAoB/U,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAuS,OAAA,IAAAA,OAAA,CAAAnQ,IAAA,GAAAmQ,OAAA,CAAAnQ,IAAA,CAAAgQ,OAAA,IAAAA,OAAA,CAAAG,OAAA;KAIJ,QAAA9Y,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EACD,IAAMuoC,eAAe,GAAG,SAAlBA,eAAeA,CAAIjQ,OAAe;IACpCgO,iBAAiB,CAAChO,OAAO,CAAC59B,KAAK,CAAC;GACnC;EAED,IAAM8tC,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAI5C,QAAa;IAC3CO,kBAAkB,CAACP,QAAQ,CAAC;IAC5BW,WAAW,CAAC,CAAAX,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE1qC,IAAI,KAAI,EAAE,CAAC;GACpC;EACD,IAAMutC,mBAAmB,GAAG,SAAtBA,mBAAmBA;IACrB,IAAI,CAACvC,eAAe,EAAE;MAClBrgC,QAAQ,CACJhC,QAAQ,CAAC;QACLZ,IAAI,EAAE,QAAQ;QACdwO,OAAO,EAAE;OACZ,CAAC,CACL;MACD;;IAEJ62B,iBAAiB,CAACpC,eAAe,CAAC;GACrC;EAED,IAAMwC,eAAe,GAAG,SAAlBA,eAAeA;IACjB7iC,QAAQ,CACJnC,QAAQ,CAAC;MACLob,MAAM,EAAE,IAAI;MACZ7b,IAAI,EAAE,SAAS;MACfwO,OAAO,EAAE,gCAAgC;MACzCsT,SAAS,EAAE,SAAXA,SAASA;QACL0jB,mBAAmB,EAAE;;KAE5B,CAAC,CACL;GACJ;EACD,OAAO;IACH/C,SAAS,EAATA,SAAS;IACTp2B,EAAE,EAAFA,EAAE;IACFq2B,OAAO,EAAPA,OAAO;IACPmB,MAAM,EAANA,MAAM;IACNd,oBAAoB,EAApBA,oBAAoB;IACpBC,uBAAuB,EAAvBA,uBAAuB;IACvBlhB,SAAS,EAATA,SAAS;IACTqgB,OAAO,EAAPA,OAAO;IACPQ,QAAQ,EAARA,QAAQ;IACRC,WAAW,EAAXA,WAAW;IACXE,aAAa,EAAbA,aAAa;IACbD,UAAU,EAAVA,UAAU;IACVM,gBAAgB,EAAhBA,gBAAgB;IAChBmC,eAAe,EAAfA,eAAe;IACfD,iBAAiB,EAAjBA,iBAAiB;IACjBE,wBAAwB,EAAxBA,wBAAwB;IACxBC,mBAAmB,EAAnBA,mBAAmB;IACnBpC,cAAc,EAAdA,cAAc;IACd1xB,QAAQ,EAARA,QAAQ;IACR+zB,eAAe,EAAfA,eAAe;IACflC,oBAAoB,EAApBA;GACH;AACL,CAAC;;ACrSD,IAAMmC,aAAa,GAAG,SAAhBA,aAAaA;EACf,IAAM9iC,QAAQ,GAAGC,sBAAW,EAAE;EAE9B,IAAM8iC,kBAAkB,YAAlBA,kBAAkBA,CAAUt6B,IAAS;IAAA;;QAkBvCzI,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAjB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA+N,KAAA,GAAAC,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACM8vB,qBAAqB,CAAC/nB,IAAI,CAAC,EAAA3F,IAAA;UACjC9C,QAAQ,CACJhC,QAAQ,CAAC;YACLZ,IAAI,EAAE,SAAS;YACfwO,OAAO,EAAE;WACZ,CAAC,CACL;;OACJ,YAAQzI,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA,CAAAiJ,MAAA,IAAAA,MAAA,CAAAL,KAAA;KAEJ,QAAAvR,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAM6oC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIC,WAAgB;IAC1CF,kBAAkB,CAAC;MAAEtO,OAAO,KAAAtT,MAAA,CAAM8hB,WAAW;KAAG,CAAC;GACpD;EAED,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIj6B,MAAc;IACxC85B,kBAAkB,CAAC;MAAEtO,OAAO,EAAE,CAACxrB,MAAM;KAAG,CAAC;GAC5C;EAED,OAAO;IACH+5B,oBAAoB,EAApBA,oBAAoB;IACpBE,oBAAoB,EAApBA;GACH;AACL,CAAC;;ACnBD,IAAMjoB,iBAAe,GAAkB;EACnCC,UAAU,EAAE;CACf;AAED,IAAMC,aAAW,GAAkB;EAC/Btf,MAAM,EAAE;CACX;AAED,IAAMujB,QAAM,GAAG,MAAM;AACrB,IAAM+jB,QAAQ,GAAG,SAAXA,QAAQA;EACV,IAAAC,YAAA,GAeI/O,WAAW,EAAE;IAdbC,SAAS,GAAA8O,YAAA,CAAT9O,SAAS;IACTC,QAAQ,GAAA6O,YAAA,CAAR7O,QAAQ;IACR7V,UAAU,GAAA0kB,YAAA,CAAV1kB,UAAU;IACVvC,OAAO,GAAAinB,YAAA,CAAPjnB,OAAO;IACPjjB,QAAQ,GAAAkqC,YAAA,CAARlqC,QAAQ;IACR+lB,UAAU,GAAAmkB,YAAA,CAAVnkB,UAAU;IACVd,aAAa,GAAAilB,YAAA,CAAbjlB,aAAa;IACbyX,kBAAkB,GAAAwN,YAAA,CAAlBxN,kBAAkB;IAClBJ,UAAU,GAAA4N,YAAA,CAAV5N,UAAU;IACVP,qBAAqB,GAAAmO,YAAA,CAArBnO,qBAAqB;IACrBC,cAAc,GAAAkO,YAAA,CAAdlO,cAAc;IACdP,YAAY,GAAAyO,YAAA,CAAZzO,YAAY;IACZF,OAAO,GAAA2O,YAAA,CAAP3O,OAAO;IACPK,eAAe,GAAAsO,YAAA,CAAftO,eAAe;EAGnB,IAAAuO,cAAA,GAAiCP,aAAa,EAAE;IAAxCE,oBAAoB,GAAAK,cAAA,CAApBL,oBAAoB;EAE5B,IAAAM,aAAA,GAAmB1D,YAAY,EAAE;IAAzBqB,MAAM,GAAAqC,aAAA,CAANrC,MAAM;EAEd,IAAAsC,kBAAA,GAEInG,iBAAiB,EAAE;IADnBG,WAAW,GAAAgG,kBAAA,CAAXhG,WAAW;EAGf,IAAA1hB,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EAET,IAAMynB,iBAAiB,GAAG,SAApBA,iBAAiBA;IAAA,OAASjG,WAAW,CAACphB,OAAO,CAAC;;EACpD,IAAMsnB,aAAa,GAAiB,CAChC;IACIpuC,IAAI,EAAE,EAAE;IACRw8B,QAAQ,EAAE,IAAI;IACdkL,WAAW,EAAE,SAAbA,WAAWA;MAAUjI,eAAe,EAAE;KAAE;IACxCqI,UAAU,EAAE1I,OAAO,CAACjgB,MAAM,IAAIkK,UAAU,IAAIA,UAAU,IAAI;GAC/C,CAClB,CAACyC,MAAM,CAACyQ,WAAW,CAAC;EAErB,OACIl2B;IAAKC,SAAS,+BAA4BnC,WAAW,IAAI,GAAG,GAAGsK,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;KAChFpI;IAAIC,SAAS,EAAC;KAAaogB,CAAC,MAAIqD,QAAQ,CAAC,CAAM,EAE/C1jB,6BAACoJ,cAAG;IAACnJ,SAAS,EAAC;KACXD,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ,6BAACw6B,kBAAkB;IACfz6B,IAAI,EAAEsgB,CAAC,CAAC,aAAa,CAAC;IACtBxe,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQq4B,kBAAkB,EAAE;;IACnCpU,SAAS,EAAE,CAAC,CAAC8S,SAAS,GAAGA,SAAS,GAAG,EAAE;IACvCwB,QAAQ,EAAE,SAAVA,QAAQA,CAAG9gC,YAAkB;MAAA,OACzBmpB,aAAa,CAAC;QACVnpB,YAAY,EAAEA;OACjB,CAAC;;IAENkI,WAAW,EAAE6e,CAAC,CAAC,uCAAuC;IACxD,CACA,EACNrgB,6BAACqJ,cAAG;IACAE,EAAE,EAAE,CAAC;IACLtJ,SAAS,EAAC;KAETogB,CAAC,CAAC,gBAAgB,CAAC,SAAK2C,UAAU,CACjC,EACNhjB,6BAACqJ,cAAG;IAACE,EAAE,EAAE,EAAE;IAAEtJ,SAAS,EAAC;KACnBD;IACIC,SAAS,2DAA2D;IACpEN,KAAK,EAAE8f,aAAW;IAClB5d,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQylC,oBAAoB,CAACvO,OAAO,CAAC;;KAE5C/4B;IAAGC,SAAS,EAAKmI,MAAM,CAAC,gBAAgB,CAAC,UAAO;IAAEzI,KAAK,EAAE4f;KACpDc,CAAC,CAAC,sBAAsB,CAAC,CAC1B,CACC,EACTrgB,6BAACyB,gBAAK;IACFsM,EAAE,EAAC,aAAa;IAChB9N,SAAS,EAAC,QAAQ;IAClByB,IAAI,EAAC,MAAM;IACXH,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;MAAA,OAAK8mC,MAAM,CAAC9mC,CAAC,CAACmK,MAAM,CAACyhB,KAAK,CAAC,CAAC,CAAC,CAAC;;IAC/C2d,MAAM,EAAC;IACT,EACFhoC,6BAAC86B,cAAc;IAAC/6B,IAAI,EAAEsgB,CAAC,oBAAoB,CAAC;IAAExe,OAAO,EAAE03B;IAAyB,EAChFv5B;IACIC,SAAS,+DAA+D;IACxEN,KAAK,EAAE8f,aAAW;IAClB5d,OAAO,EAAEimC;KAET9nC;IAAKC,SAAS,OAAKmI,MAAM,CAAC,aAAa;KACnCpI;IAAKwI,GAAG,EAAC,wBAAwB;IAACiT,GAAG,EAAC;IAAK,CACzC,EACNzb;IAAGC,SAAS,EAAKmI,MAAM,CAAC,gBAAgB,CAAC,UAAO;IAAEzI,KAAK,EAAE4f;KACpDc,CAAC,CAAC,eAAe,CAAC,CACnB,CACC,CACP,CACJ,EACNrgB,6BAACoJ,cAAG;IAACnJ,SAAS,EAAC;KACXD,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ;IAAKL,KAAK,EAAE;MAAEsoC,QAAQ,EAAE;;KACpBjoC,6BAAC8jB,gBAAK;IAACC,QAAQ;IAACC,KAAK;IAACC,OAAO;IAACla,IAAI,EAAC;KAC/B/J,4CACIA,6BAACwgC,WAAW;IACRn1B,OAAO,EAAE08B,aAAa;IACtBtnB,OAAO,EAAEA,OAAO;IAChBjjB,QAAQ,EAAEA,QAAQ;IAClBs+B,eAAe,EAAErZ;IACnB,CACE,EACRziB,4CACK64B,QAAQ,IAAIA,QAAQ,CAAC/f,MAAM,GAAG,CAAC,IAAI+f,QAAQ,CAACzyB,GAAG,CAAC,UAAC+d,MAAW;IAAA,IAAA+jB,iBAAA;IAAA,OACzDloC;MAAIuK,GAAG,EAAE4Z,MAAM,CAACpW;OACZ/N;MAAIC,SAAS,EAAC;OACVD;MACI0B,IAAI,EAAC,UAAU;MACfH,QAAQ,EAAE,SAAVA,QAAQA;QAAA,OAAQ03B,YAAY,CAAC9U,MAAM,CAACpW,EAAE,CAAC;;MACvC/E,OAAO,GAAAk/B,iBAAA,GAAEnP,OAAO,CAACp+B,QAAQ,CAACwpB,MAAM,CAACpW,EAAE,CAAC,YAAAm6B,iBAAA,GAAI;MAC1C,CACD,EACLloC;MAAIC,SAAS,EAAC;OACVD,6BAAC+f,cAAc;MACX7mB,KAAK,OAAKirB,MAAM,CAAC3mB,QAAU;MAC3BqE,OAAO,EAAE,SAATA,OAAOA;QAAA,OACHq4B,kBAAkB,CACd/V,MAAM,CAACpW,EAAE,CACZ;;MAEP,CACD,EACL/N;MAAIC,SAAS,EAAC;OACTkkB,MAAM,CAAC1gB,KAAK,CACZ,EACLzD;MAAIC,SAAS,EAAC;OACTkkB,MAAM,CAACmT,WAAW,KAAKl9B,cAAc,IAAI+nC,yBAAyB,CAC/D,IAAIj2B,IAAI,EAAE,EACV,IAAIA,IAAI,CAACiY,MAAM,CAACmT,WAAW,CAAC,CAC/B,CACA,EACLt3B;MAAIC,SAAS,EAAC;OACT,CAAC,CAACkkB,MAAM,CAAC7X,KAAK,IACX6X,MAAM,CAAC7X,KAAK,CAAClG,GAAG,CAAC,UAACy8B,IAAY;MAAA,OAAKA,IAAI,KAAK,kBAAkB,GAAG,gBAAgB,GAAGA,IAAI;MAAC,CAACj4B,IAAI,CAAC,IAAI,CAAC,CACvG,EACL5K;MAAIC,SAAS,EAAC;OACTkkB,MAAM,CAACkT,QAAQ,GACVhX,CAAC,CAAC,QAAQ,CAAC,GACXA,CAAC,CAAC,UAAU,CAAC,CAClB,EACLrgB;MAAIC,SAAS,EAAC;OAENoiC,cAAc,CAACle,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEme,UAAU,EAAE,kBAAkB,CAAC,CAEzD,EACLtiC,yCACKw5B,cAAc,CAACrV,MAAM,CAAC,CACtB,EACLnkB;MAAIC,SAAS,EAAC;OACVD,6BAACmoC,aAAU;MACPxoC,KAAK,EAAE;QAAEC,QAAQ,EAAE,MAAM;QAAEwoC,MAAM,EAAE,QAAQ;QAAE9J,MAAM,EAAE;OAAW;MAChEz8B,OAAO,EAAE,SAATA,OAAOA;QAAA,OACHi4B,UAAU,CAAC3V,MAAM,CAACpW,EAAE,CAAC;;MAE3B,CACD,EACL/N;MAAIC,SAAS,EAAC,cAAc;MAACN,KAAK,EAAE;QAAEglB,OAAO,EAAE;;OAC3C3kB,6BAAC6f,gBAAgB;MACbhe,OAAO,EAAE,SAATA,OAAOA;QAAA,OACH0hB,UAAU,CAACY,MAAM,CAACpW,EAAE,CAAC;;MAE3B,CACD,CACJ;GACR,CAAC,EAEE,CAAC,CAAC8qB,QAAQ,IAAI,CAACA,QAAQ,CAAC/f,MAAM,KAC9B9Y,yCACIA;IAAIqoC,OAAO,EAAE,EAAE;IAAEpoC,SAAS,EAAC;KACvBD,6BAACggB,cAAc;IAAC/f,SAAS,EAAC,MAAM;IAAC/G,KAAK,EAAEmnB,CAAC,CAAC,MAAM;IAAK,CACpD,CACJ,CAEL,CACJ,CACN,CACJ,EACNrgB,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ,6BAACwgB,gBAAgB;IACbC,OAAO,EAAEA,OAAO;IAChBE,gBAAgB,EAAEqC,UAAU;IAC5BpC,cAAc,EAAE,SAAhBA,cAAcA,CAAGpnB,QAAgB;MAAA,OAC7BipB,aAAa,CAAC;QAAEjpB,QAAQ,EAARA;OAAU,CAAC;;IAE/BknB,UAAU,EAAE,SAAZA,UAAUA,CAAGnnB,WAAmB;MAAA,OAC5BkpB,aAAa,CAAC;QAAElpB,WAAW,EAAXA;OAAa,CAAC;;IAEpC,CACA,CACJ,CACJ;AAEd,CAAC;;ACnND,IAAM+uC,UAAU,GAAG,SAAbA,UAAUA,CAAI/tB,KAAU;EAC1B,IAAA4F,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACT,IAAM1R,QAAQ,GAAGC,0BAAW,EAAE;EAC9B,IAAMnU,QAAQ,GAAG+T,0BAAW,EAAE;EAC9B,IAAM+5B,QAAQ,GAAGt0B,sBAAW,CAAC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACC,MAAM,CAACo0B,QAAQ;IAAC;EACnE,IAAQ/pB,QAAQ,GAAK/jB,QAAQ,CAArB+jB,QAAQ;EAChB,IAAQgqB,IAAI,GAAYjuB,KAAK,CAArBiuB,IAAI;IAAE1mC,KAAK,GAAKyY,KAAK,CAAfzY,KAAK;EACnB,IAAMmN,MAAM,GAAG,SAATA,MAAMA,CAAIkQ,IAAS;IACrBxQ,QAAQ,CAACwQ,IAAI,CAAC;GACjB;EAEDrP,eAAS,CAAC;IACN7Q,IAAI,CAACwpC,cAAc,CAACF,QAAQ,CAAC;GAChC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,IAAMG,aAAa,GAAG,SAAhBA,aAAaA;IACf,IAAMC,SAAS,GAAGH,IAAI,CAACpiC,GAAG,CAAC,UAACia,CAAM;MAAA,OAAKA,CAAC,CAAClB,IAAI;MAAC,CAAC4d,OAAO,CAACve,QAAQ,CAAC;IAChE,IAAImqB,SAAS,KAAK,CAAC,CAAC,EAAE;MAClB,OAAO3oC,6BAACoe,QAAQ,OAAG;;IAEvB,OACIpe,6BAACoJ,cAAG,QACApJ,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,yCAAKqgB,CAAC,CAACve,KAAK,CAAC,CAAM,CACjB,EACN9B,6BAACqJ,cAAG;MAACu/B,EAAE,EAAE;OACL5oC,6BAACie,cAAG;MAACuqB,IAAI;OACJA,IAAI,CAACpiC,GAAG,CAAC,UAACsE,CAAM;MAAA,OACb1K,6BAACke,kBAAO;QAAC3T,GAAG,EAAEG,CAAC,CAACyU;SACZnf,6BAACme,kBAAO;QACJle,SAAS,GACLyK,CAAC,CAACyU,IAAI,KAAKX,QAAQ,GAAG,QAAQ,GAAG,EACrC,qBAAiB;QACjB3c,OAAO,EAAE,SAATA,OAAOA;UACHoN,MAAM,CAACvE,CAAC,CAACyU,IAAI,CAAC;;SAGjBkB,CAAC,CAAC3V,CAAC,CAAC5I,KAAK,CAAC,CACL,CACJ;KACb,CAAC,CACA,EACN9B,6BAAC6oC,qBAAU;MACPF,SAAS,EAAEnqB,QAAQ;MACnBve,SAAS,EAAC;OAETuoC,IAAI,CAACpiC,GAAG,CAAC,UAACsE,CAAM;MAAA,OACb1K,6BAAC8oC,kBAAO;QAACv+B,GAAG,EAAEG,CAAC,CAACyU,IAAI;QAAE4pB,KAAK,EAAEr+B,CAAC,CAACyU;SAC3Bnf,6BAACkf,oBAAK;QACFC,IAAI,EAAEzU,CAAC,CAACyU,IAAI;QACZC,OAAO,EAAEpf,6BAAC0K,CAAC,CAAC2U,SAAS;QACvB,CACI;KACb,CAAC,CACO,CACX,CACJ;GAEb;EACD,OAAOrf;IAAKC,SAAS,EAAC;KAAmByoC,aAAa,EAAE,CAAO;AACnE,CAAC;;;AC5ED,AAGA,IAAMM,eAAe,GAAG,SAAlBA,eAAeA,CAAAlpC,IAAA;MACjBmhB,OAAO,GAAAnhB,IAAA,CAAPmhB,OAAO;IACPwP,UAAU,GAAA3wB,IAAA,CAAV2wB,UAAU;IACVC,YAAY,GAAA5wB,IAAA,CAAZ4wB,YAAY;IACZuY,AACGtY,IAAI,GAAAC,6BAAA,CAAA9wB,IAAA,EAAA+wB,WAAA;EAEP,IAAAhiB,SAAA,GAAwCC,cAAQ,EAAU;IAAnDo6B,YAAY,GAAAr6B,SAAA;IAAEs6B,eAAe,GAAAt6B,SAAA;EAwBpC,IAAMu6B,WAAW,GAAG,SAAdA,WAAWA;IACbD,eAAe,CAAC9P,SAAS,CAAC;GAC7B;EAED,OACIr5B;IAAKC,SAAS,EAAC;KACXD;IAAKC,SAAS,EAAC;KACXD,6BAACqpC,eAAe;IACZ5Y,UAAU,EAAEA,UAAU;IACtBxP,OAAO,EAAEA,OAAO;IAChB6P,aAAa,EAAEJ,YAAY,GAAG,KAAK,GAAG,MAAM;IAE5C4Y,OAAO,EAAEF;KACLzY,IAAI,EACV,CACA,EAEF,CAAC,CAACuY,YAAY,IAEdlpC;IAAGC,SAAS,EAAC;KAAyBipC,YAAY,CAAK,CAEzD;AAEd,CAAC;;ACjDD,IAAMK,oBAAoB,GAAG,SAAvBA,oBAAoBA;EACtB,IAAMjlC,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAAsK,SAAA,GAAgCC,cAAQ,CAAkB,EAAE,CAAC;IAAtD+pB,QAAQ,GAAAhqB,SAAA;IAAE4jB,WAAW,GAAA5jB,SAAA;EAC5B,IAAAK,UAAA,GAA8BJ,cAAQ,CAAgB0nB,sBAAsB,CAAC;IAAtE/V,OAAO,GAAAvR,UAAA;IAAEsT,UAAU,GAAAtT,UAAA;EAC1B,IAAAG,UAAA,GAAkCP,cAAQ,CAAS,CAAC,CAAC;IAA9C06B,SAAS,GAAAn6B,UAAA;IAAEo6B,YAAY,GAAAp6B,UAAA;EAC9B,IAAAG,UAAA,GAAoCV,cAAQ,CAAU,KAAK,CAAC;IAArD2yB,UAAU,GAAAjyB,UAAA;IAAEk6B,aAAa,GAAAl6B,UAAA;EAChC,IAAAG,UAAA,GAA8Bb,cAAQ,CAAM,EAAE,CAAC;IAAxC66B,OAAO,GAAAh6B,UAAA;IAAEi6B,UAAU,GAAAj6B,UAAA;EAC1B,IAAAmF,UAAA,GAAwChG,cAAQ,CAAkB,EAAE,CAAC;IAA9D+6B,YAAY,GAAA/0B,UAAA;IAAEg1B,eAAe,GAAAh1B,UAAA;EACpC,IAAAE,UAAA,GAAwClG,cAAQ,CAAgBooB,aAAa,CAAC;IAAvE6S,YAAY,GAAA/0B,UAAA;IAAEg1B,eAAe,GAAAh1B,UAAA;EACpC,IAAMxX,QAAQ,GAAG,EAAE;EAEnB,IAAMilB,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,cAAmB;IACtC,IAAMC,UAAU,GAAAnS,QAAA,KACTiQ,OAAO,EACPiC,cAAc,CACpB;IACD,IACI,CAAC,CAACC,UAAU,CAACrpB,YAAY,IACzB,CAAC,CAACopB,cAAc,CAACppB,YAAY,IAC7BopB,cAAc,CAACppB,YAAY,IAAImnB,OAAO,CAACnnB,YAAY,EACrD;MACEqpB,UAAU,CAACppB,WAAW,GAAG,CAAC;;IAG9BipB,UAAU,CAACG,UAAU,CAAC;GACzB;EAED,IAAMsnB,sBAAsB,GAAG5M,aAAO,CAAC;IAClC,IAAM6M,WAAW,GAAGrR,QAAQ,CAC5BtyB,MAAM,CAAC,UAAA4yB,CAAC;MAAA,OAAIwQ,OAAO,CAAChvC,QAAQ,CAACw+B,CAAC,CAACprB,EAAE,CAAC;MAAC,CACnCo8B,OAAO,CAAC,UAAAC,OAAO;MAAA,OAAIA,OAAO,CAACxS,QAAQ;MAAC;IAErC,IAAMyS,iBAAiB,GAAG,IAAIC,GAAG,EAAqB;IAEtDJ,WAAW,CAACz+B,OAAO,CAAC,UAAAsrB,OAAO;MACvB,IAAI,CAACsT,iBAAiB,CAACE,GAAG,CAACxT,OAAO,CAACyT,aAAa,CAAC,EAAE;QAC/CH,iBAAiB,CAAC5zB,GAAG,CAACsgB,OAAO,CAACyT,aAAa,EAAEzT,OAAO,CAAC;;KAE5D,CAAC;IAEF,OAAOvsB,KAAK,CAAC01B,IAAI,CAACmK,iBAAiB,CAACljC,MAAM,EAAE,CAAC,CAACf,GAAG,CAAC,UAAA2wB,OAAO;MAAA,OAAK;QAC1D59B,KAAK,EAAE49B,OAAO,CAACyT,aAAa;QAC5BtxC,KAAK,EAAE69B,OAAO,CAAC0T;OAClB;KAAC,CAAC;GACN,EAAE,CAACZ,YAAY,EAAEF,OAAO,CAAC,CAAC;EAE3B,IAAMe,wBAAwB,GAAGrN,aAAO,CAAC;IACpC,IAAMsN,aAAa,GAAG9R,QAAQ,CAC9BtyB,MAAM,CAAC,UAAA4yB,CAAC;MAAA,OAAIwQ,OAAO,CAAChvC,QAAQ,CAACw+B,CAAC,CAACprB,EAAE,CAAC;MAAC,CACnCo8B,OAAO,CAAC,UAAAC,OAAO;MAAA,OAAIA,OAAO,CAACvT,UAAU;MAAC;IAEvC,IAAMwT,iBAAiB,GAAG,IAAIC,GAAG,EAAsB;IAEvDK,aAAa,CAACl/B,OAAO,CAAC,UAAAm/B,SAAS;MAC3B,IAAI,CAACP,iBAAiB,CAACE,GAAG,CAACK,SAAS,CAACC,eAAe,CAAC,EAAE;QACnDR,iBAAiB,CAAC5zB,GAAG,CAACm0B,SAAS,CAACC,eAAe,EAAED,SAAS,CAAC;;KAElE,CAAC;IAEF,OAAOpgC,KAAK,CAAC01B,IAAI,CAACmK,iBAAiB,CAACljC,MAAM,EAAE,CAAC,CAACf,GAAG,CAAC,UAAAwkC,SAAS;MAAA,OAAK;QAC5DzxC,KAAK,EAAEyxC,SAAS,CAACC,eAAe;QAChC3xC,KAAK,EAAE0xC,SAAS,CAACE;OACpB;KAAC,CAAC;GACN,EAAE,CAACjB,YAAY,EAAEF,OAAO,CAAC,CAAC;EAE3B,IAAMoB,wBAAwB,GAAG1N,aAAO,CAAC;IACrC,IAAM2F,UAAU,GAAGnK,QAAQ,CACtBtyB,MAAM,CAAC,UAAA4yB,CAAC;MAAA,OAAIwQ,OAAO,CAAChvC,QAAQ,CAACw+B,CAAC,CAACprB,EAAE,CAAC,IAAIorB,CAAC,CAAC1B,eAAe;MAAC,CACxDrxB,GAAG,CAAC,UAAAgkC,OAAO;MAAA,OAAK;QACbjxC,KAAK,EAAEixC,OAAO,CAAC3S,eAAe;QAC9Bv+B,KAAK,EAAEkxC,OAAO,CAACpT;OAClB;KAAC,CAAC;IACP,IAAMgU,SAAS,GAAG,IAAIV,GAAG,EAA4C;IAErEtH,UAAU,CAACv3B,OAAO,CAAC,UAAAw/B,SAAS;MACxB,IAAI,CAACD,SAAS,CAACT,GAAG,CAACU,SAAS,CAAC9xC,KAAK,CAAC,EAAE;QACjC6xC,SAAS,CAACv0B,GAAG,CAACw0B,SAAS,CAAC9xC,KAAK,EAAE8xC,SAAS,CAAC;;KAEhD,CAAC;IAEF,OAAOzgC,KAAK,CAAC01B,IAAI,CAAC8K,SAAS,CAAC7jC,MAAM,EAAE,CAAC;GACxC,EAAE,CAAC0xB,QAAQ,EAAE8Q,OAAO,CAAC,CAAC;EAEvB,IAAMuB,+BAA+B,GAAG7N,aAAO,CAAC;IAC5C,IAAM8N,iBAAiB,GAAGtS,QAAQ,CAC7BtyB,MAAM,CAAC,UAAA4yB,CAAC;MAAA,OAAIwQ,OAAO,CAAChvC,QAAQ,CAACw+B,CAAC,CAACprB,EAAE,CAAC,IAAIorB,CAAC,CAACxB,sBAAsB;MAAC,CAC/DvxB,GAAG,CAAC,UAAAgkC,OAAO;MAAA,OAAK;QACbjxC,KAAK,EAAEixC,OAAO,CAACzS,sBAAsB;QACrCz+B,KAAK,EAAEkxC,OAAO,CAACnT;OAClB;KAAC,CAAC;IACP,IAAM+T,SAAS,GAAG,IAAIV,GAAG,EAA4C;IAErEa,iBAAiB,CAAC1/B,OAAO,CAAC,UAAA2/B,gBAAgB;MACtC,IAAI,CAACJ,SAAS,CAACT,GAAG,CAACa,gBAAgB,CAACjyC,KAAK,CAAC,EAAE;QACxC6xC,SAAS,CAACv0B,GAAG,CAAC20B,gBAAgB,CAACjyC,KAAK,EAAEiyC,gBAAgB,CAAC;;KAE9D,CAAC;IAEF,OAAO5gC,KAAK,CAAC01B,IAAI,CAAC8K,SAAS,CAAC7jC,MAAM,EAAE,CAAC;GACxC,EAAE,CAAC0xB,QAAQ,EAAE8Q,OAAO,CAAC,CAAC;EAEvB,IAAM0B,UAAU,GAAGzmC,iBAAW,CAAC,UAACnL,MAAiB;IAC7C,IAAIA,MAAM,KAAKgnB,OAAO,CAAChnB,MAAM,EAAE;MAC3BgpB,aAAa,CAAC;QACVhpB,MAAM,EAANA,MAAM;QACN6xC,OAAO,EAAE,KAAK;QACd/xC,WAAW,EAAE;OAChB,CAAC;KACL,MAAM;MACHkpB,aAAa,CAAC;QACVhpB,MAAM,EAANA,MAAM;QACN6xC,OAAO,EAAE7qB,OAAO,CAAC6qB,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK;QACpD/xC,WAAW,EAAE;OAChB,CAAC;;GAET,EAAE,CAACqgB,IAAI,CAACC,SAAS,CAAC4G,OAAO,CAAC,CAAC,CAAC;EAE7B,IAAM8qB,eAAe,YAAfA,eAAeA;IAAA;;QA6BjBjnC,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MA5B3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA+N,KAAA,GAAAC,MAAA,aACtB;QACA,IAAMu7B,QAAQ,GAAGnhC,MAAM,CAAC02B,OAAO,CAACtgB,OAAO,CAAC,CACnCla,MAAM,CAAC,UAAAzG,IAAA;UAAA,IAAEmB,CAAC,GAAAnB,IAAA;YAAE3G,KAAK,GAAA2G,IAAA;UAAA,OAAM3G,KAAK,KAAKkgC,SAAS;UAAC,CAC3CoS,MAAM,CAAC,UAACC,GAAG,EAAAjiB,KAAA;cAAGlf,GAAG,GAAAkf,KAAA;YAAEtwB,KAAK,GAAAswB,KAAA;UACrBiiB,GAAG,CAACnhC,GAAG,CAAC,GAAGpR,KAAkB;UAC7B,OAAOuyC,GAAG;SACb,EAAE,EAA+B,CAAC;QAGvC,IAAMC,SAAS,GAA8B,EAAE;QAE/C,KAAK,IAAMphC,GAAG,IAAIihC,QAAQ,EAAE;UACxB,IAAMI,MAAM,GAAGrhC,GAAG,CAACshC,MAAM,CAAC,CAAC,CAAC,CAAC9qC,WAAW,EAAE,GAAGwJ,GAAG,CAAC4O,KAAK,CAAC,CAAC,CAAC;UACzDwyB,SAAS,CAACC,MAAM,CAAC,GAAGJ,QAAQ,CAACjhC,GAAG,CAAC;;QACpC,OAAAxF,OAAA,CAAAC,OAAA,CAEiB6uB,mBAAmB,CAAC8X,SAAS,CAAC,EAAAvkC,IAAA,WAA1ChC,GAAG;UAAA,IAAAsQ,SAAA,EAAAS,UAAA;UACTsc,WAAW,CAACrtB,GAAG,aAAHA,GAAG,wBAAAsQ,SAAA,GAAHtQ,GAAG,CAAE2H,IAAI,cAAA2I,SAAA,uBAATA,SAAA,CAAW2N,KAAK,CAAC;UAC7BomB,YAAY,CAACrkC,GAAG,aAAHA,GAAG,wBAAA+Q,UAAA,GAAH/Q,GAAG,CAAE2H,IAAI,cAAAoJ,UAAA,uBAATA,UAAA,CAAW6M,UAAU,CAAC;;OACtC,YAAQvb,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA,CAAAiJ,MAAA,IAAAA,MAAA,CAAAL,KAAA;KAEJ,QAAAvR,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMqtC,eAAe,GAAG,SAAlBA,eAAeA;IACjBpC,aAAa,CAAC,CAACjI,UAAU,CAAC;IAC1BmI,UAAU,CAAC/Q,QAAQ,CAACzyB,GAAG,CAAC,UAACsE,CAAgB;MAAA,OAAKA,CAAC,CAACqD,EAAE;MAAC,CAAC;IACpD+7B,eAAe,CAACjR,QAAQ,CAAC;IACzB,IAAI4I,UAAU,EAAE;MACZmI,UAAU,CAAC,EAAE,CAAC;MACdE,eAAe,CAAC,EAAE,CAAC;;GAE1B;EAED,IAAMiC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIttC,CAAsC;IAC5D,IAAAutC,SAAA,GAAwBvtC,CAAC,CAACmK,MAAM;MAAxBmF,EAAE,GAAAi+B,SAAA,CAAFj+B,EAAE;MAAE/E,OAAO,GAAAgjC,SAAA,CAAPhjC,OAAO;IAEnB,IAAIA,OAAO,EAAE;MACT4gC,UAAU,CAAC,UAACqC,IAAS;QAAA,UAAAxmB,MAAA,CAASwmB,IAAI,GAAEl+B,EAAE;OAAC,CAAC;MACxC,IAAMm+B,QAAQ,GAAGrT,QAAQ,CAAC9S,IAAI,CAAC,UAAAoT,CAAC;QAAA,OAAIA,CAAC,CAACprB,EAAE,KAAKA,EAAE;QAAC;MAChD,IAAIm+B,QAAQ,EAAEpC,eAAe,CAAC,UAAAmC,IAAI;QAAA,UAAAxmB,MAAA,CAAQwmB,IAAI,GAAEC,QAAQ;OAAC,CAAC;KAC7D,MAAM;MACHtC,UAAU,CAAC,UAACqC,IAAS;QAAA,OAAKA,IAAI,CAAC1lC,MAAM,CAAC,UAACga,IAAS;UAAA,OAAKA,IAAI,KAAKxS,EAAE;UAAC;QAAC;MAClE+7B,eAAe,CAAC,UAAAmC,IAAI;QAAA,OAAIA,IAAI,CAAC1lC,MAAM,CAAC,UAAAga,IAAI;UAAA,OAAIA,IAAI,CAACxS,EAAE,KAAKA,EAAE;UAAC;QAAC;;GAEnE;EAED,IAAMo+B,mBAAmB,GAAGvnC,iBAAW,CAAC;IACpC,IAAI6b,OAAO,CAAClnB,WAAW,IAAI,CAAC,EAAEgyC,eAAe,EAAE,CAAA,KAC1C9oB,aAAa,CAAC;MAAElpB,WAAW,EAAE;KAAG,CAAC;IACtCqwC,UAAU,CAAC,EAAE,CAAC;IACdE,eAAe,CAAC,EAAE,CAAC;IACnBJ,aAAa,CAAC,KAAK,CAAC;GACvB,EAAE,CAAC9vB,IAAI,CAACC,SAAS,CAAC4G,OAAO,CAAC,CAAC,CAAC;EAE7B3Q,eAAS,CAAC;IACNy7B,eAAe,EAAE;GACpB,EAAE,CAAC3xB,IAAI,CAACC,SAAS,CAAC4G,OAAO,CAAC,CAAC,CAAC;EAE7B3Q,eAAS,CAAC;IACN9R,QAAQ,CAAC8D,KAAK,GAAG,uBAAuB;GAC3C,EAAE,EAAE,CAAC;EAENgO,eAAS,CAAC;IACN2S,aAAa,CAAAjS,QAAA,KACNiQ,OAAO;MACVnnB,YAAY,EAAEkE;MACjB,CAAC;GACL,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,OAAO;IACH6tC,UAAU,EAAVA,UAAU;IACVc,mBAAmB,EAAnBA,mBAAmB;IACnB3C,SAAS,EAATA,SAAS;IACT3Q,QAAQ,EAARA,QAAQ;IACRpY,OAAO,EAAPA,OAAO;IACPgC,aAAa,EAAbA,aAAa;IACbqpB,eAAe,EAAfA,eAAe;IACfC,gBAAgB,EAAhBA,gBAAgB;IAChBtK,UAAU,EAAVA,UAAU;IACVkI,OAAO,EAAPA,OAAO;IACPnsC,QAAQ,EAARA,QAAQ;IACRusC,YAAY,EAAZA,YAAY;IAAEC,eAAe,EAAfA,eAAe;IAC7BH,YAAY,EAAZA,YAAY;IACZ0B,eAAe,EAAfA,eAAe;IACftB,sBAAsB,EAAtBA,sBAAsB;IACtBS,wBAAwB,EAAxBA,wBAAwB;IACxBK,wBAAwB,EAAxBA,wBAAwB;IACxBG,+BAA+B,EAA/BA;GACH;AACL,CAAC;;ACvND,IAAMkB,gBAAgB,GAAG,SAAnBA,gBAAgBA;EAClB,IAAM9nC,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAAsK,SAAA,GAAgDC,cAAQ,CAAkB,EAAE,CAAC;IAAtEiwB,gBAAgB,GAAAlwB,SAAA;IAAEw9B,mBAAmB,GAAAx9B,SAAA;EAC5C,IAAAK,UAAA,GAAoDJ,cAAQ,EAAU;IAA/Dw9B,kBAAkB,GAAAp9B,UAAA;IAAEq9B,qBAAqB,GAAAr9B,UAAA;EAEhD,IAAMs9B,iBAAiB,YAAjBA,iBAAiBA;IAAA;qCACf;QAAA,OAAAznC,OAAA,CAAAC,OAAA,CACkB8uB,aAAa,EAAE,EAAA1sB,IAAA,WAA3BhC,GAAG;UAAA,IAAAqnC,mBAAA,EAAAC,eAAA;UACTtnC,GAAG,CAAC2H,IAAI,CAACsW,KAAK,IAAIgpB,mBAAmB,CAAC,EAAAI,mBAAA,IAAAC,eAAA,GAAAtnC,GAAG,CAAC2H,IAAI,CAACsW,KAAK,EAACjd,GAAG,cAAAqmC,mBAAA,uBAAlBA,mBAAA,CAAAlW,IAAA,CAAAmW,eAAA,EAAqB,UAACvoB,MAAiB;YAAA,OAAM;cAC/EjrB,KAAK,EAAEirB,MAAM,CAAC1gB,KAAK;cACnBtK,KAAK,EAAEgrB,MAAM,CAACpW;aACjB;WAAC,CAAC,KAAI,EAAE,CAAC;;OACb,YAAQtG,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMkuC,qBAAqB,GAAG/nC,iBAAW,CAAC,UAACgoC,WAAmB,EAAEtY,aAAqB;;IACjF,IAAIuY,iBAAiB,GAAG9N,gBAAgB,CAAChZ,IAAI,CAAC,UAAC1F,CAAW;MAAA,OAAKA,CAAC,CAAClnB,KAAK,KAAKyzC,WAAW;MAAC;IACvFL,qBAAqB,CAAA/7B,QAAA,KACd87B,kBAAkB,GAAA5M,SAAA,OAAAA,SAAA,CACpBpL,aAAa,IAAGuY,iBAAiB,EAAAnN,SAAA,EACrC,CAAC;GACL,EAAE,CAAC9lB,IAAI,CAACC,SAAS,CAACyyB,kBAAkB,CAAC,EAAE1yB,IAAI,CAACC,SAAS,CAACklB,gBAAgB,CAAC,CAAC,CAAC;EAE1E,IAAM+N,2BAA2B,GAAGloC,iBAAW,CAAC,UAACmoC,YAAsB,EAAEzY,aAAqB,EAAE0Y,QAAkB;IAC9GX,mBAAmB,IAAA5mB,MAAA,CACZsZ,gBAAgB,GACnBgO,YAAY,EACf,CAAC;IACF,IAAG,CAAC,CAACC,QAAQ,EAAE;MAAA,IAAAC,SAAA;MACXV,qBAAqB,CAAA/7B,QAAA,KACd87B,kBAAkB,GAAAW,SAAA,OAAAA,SAAA,CACpB3Y,aAAa,IAAGyY,YAAY,EAAAE,SAAA,EAChC,CAAC;;GAET,EAAE,CAACrzB,IAAI,CAACC,SAAS,CAACklB,gBAAgB,CAAC,EAAEnlB,IAAI,CAACC,SAAS,CAACyyB,kBAAkB,CAAC,CAAC,CAAC;EAE1Ex8B,eAAS,CAAC;IACN08B,iBAAiB,EAAE;GACtB,EAAE,EAAE,CAAC;EAEN,OAAO;IACHF,kBAAkB,EAAlBA,kBAAkB;IAClBvN,gBAAgB,EAAhBA,gBAAgB;IAChB4N,qBAAqB,EAArBA,qBAAqB;IACrBG,2BAA2B,EAA3BA,2BAA2B;IAC3BP,qBAAqB,EAArBA;GACH;AACL,CAAC;;ACtDD,IAAMW,gBAAgB,GAAG,SAAnBA,gBAAgBA;EAClB,IAAM5oC,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAAsK,SAAA,GAAgDC,cAAQ,CAAkB,EAAE,CAAC;IAAtEgwB,gBAAgB,GAAAjwB,SAAA;IAAEs+B,mBAAmB,GAAAt+B,SAAA;EAC5C,IAAAK,UAAA,GAAoDJ,cAAQ,EAAU;IAA/Ds+B,kBAAkB,GAAAl+B,UAAA;IAAEm+B,qBAAqB,GAAAn+B,UAAA;EAEhD,IAAMo+B,iBAAiB,YAAjBA,iBAAiBA;IAAA;qCACf;QAAA,OAAAvoC,OAAA,CAAAC,OAAA,CACkB+uB,aAAa,EAAE,EAAA3sB,IAAA,WAA3BhC,GAAG;UAAA,IAAAqnC,mBAAA,EAAAC,eAAA;UACTtnC,GAAG,CAAC2H,IAAI,CAACsW,KAAK,IAAI8pB,mBAAmB,CAAC,EAAAV,mBAAA,IAAAC,eAAA,GAAAtnC,GAAG,CAAC2H,IAAI,CAACsW,KAAK,EAACjd,GAAG,cAAAqmC,mBAAA,uBAAlBA,mBAAA,CAAAlW,IAAA,CAAAmW,eAAA,EAAqB,UAACvoB,MAAiB;YAAA,OAAM;cAC/EjrB,KAAK,EAAEirB,MAAM,CAAC1gB,KAAK;cACnBtK,KAAK,EAAEgrB,MAAM,CAACpW;aACjB;WAAC,CAAC,KAAI,EAAE,CAAC;;OACb,YAAQtG,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAM8uC,qBAAqB,GAAG3oC,iBAAW,CAAC,UAACgyB,WAAmB,EAAEtC,aAAqB;;IACjF,IAAIkZ,iBAAiB,GAAG1O,gBAAgB,CAAC/Y,IAAI,CAAC,UAAC1F,CAAW;MAAA,OAAKA,CAAC,CAAClnB,KAAK,KAAKy9B,WAAW;MAAC;IACvFyW,qBAAqB,CAAA78B,QAAA,KACd48B,kBAAkB,GAAA1N,SAAA,OAAAA,SAAA,CACpBpL,aAAa,IAAGkZ,iBAAiB,EAAA9N,SAAA,EACrC,CAAC;GACL,EAAE,CAAC9lB,IAAI,CAACC,SAAS,CAACuzB,kBAAkB,CAAC,EAAExzB,IAAI,CAACC,SAAS,CAACilB,gBAAgB,CAAC,CAAC,CAAC;EAE1E,IAAM2O,2BAA2B,GAAG7oC,iBAAW,CAAC,UAAC8oC,YAAsB,EAAEpZ,aAAqB,EAAE0Y,QAAkB;IAC9GG,mBAAmB,IAAA1nB,MAAA,CACZqZ,gBAAgB,GACnB4O,YAAY,EACf,CAAC;IACF,IAAG,CAAC,CAACV,QAAQ,EAAE;MAAA,IAAAC,SAAA;MACXI,qBAAqB,CAAA78B,QAAA,KACd48B,kBAAkB,GAAAH,SAAA,OAAAA,SAAA,CACpB3Y,aAAa,IAAGoZ,YAAY,EAAAT,SAAA,EAChC,CAAC;;GAET,EAAE,CAACrzB,IAAI,CAACC,SAAS,CAACilB,gBAAgB,CAAC,EAAEllB,IAAI,CAACC,SAAS,CAACuzB,kBAAkB,CAAC,CAAC,CAAC;EAE1Et9B,eAAS,CAAC;IACNw9B,iBAAiB,EAAE;GACtB,EAAE,EAAE,CAAC;EAEN,OAAO;IACHF,kBAAkB,EAAlBA,kBAAkB;IAClBtO,gBAAgB,EAAhBA,gBAAgB;IAChByO,qBAAqB,EAArBA,qBAAqB;IACrBE,2BAA2B,EAA3BA,2BAA2B;IAC3BJ,qBAAqB,EAArBA;GACH;AACL,CAAC;;ACtDD,IAAMM,uBAAuB,GAAG,SAA1BA,uBAAuBA;EACzB,IAAMrpC,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAAsK,SAAA,GAA8DC,cAAQ,CAAkB,EAAE,CAAC;IAApFkwB,uBAAuB,GAAAnwB,SAAA;IAAE++B,0BAA0B,GAAA/+B,SAAA;EAC1D,IAAAK,UAAA,GAAkEJ,cAAQ,EAAU;IAA7E++B,yBAAyB,GAAA3+B,UAAA;IAAE4+B,4BAA4B,GAAA5+B,UAAA;EAE9D,IAAM6+B,wBAAwB,YAAxBA,wBAAwBA;IAAA;qCACtB;QAAA,OAAAhpC,OAAA,CAAAC,OAAA,CACkBgvB,oBAAoB,EAAE,EAAA5sB,IAAA,WAAlChC,GAAG;UAAA,IAAAqnC,mBAAA,EAAAC,eAAA;UACTtnC,GAAG,CAAC2H,IAAI,CAACsW,KAAK,IAAIuqB,0BAA0B,CAAC,EAAAnB,mBAAA,IAAAC,eAAA,GAAAtnC,GAAG,CAAC2H,IAAI,CAACsW,KAAK,EAACjd,GAAG,cAAAqmC,mBAAA,uBAAlBA,mBAAA,CAAAlW,IAAA,CAAAmW,eAAA,EAAqB,UAACvoB,MAAwB;YAAA,OAAM;cAC7FjrB,KAAK,EAAEirB,MAAM,CAAC1gB,KAAK;cACnBtK,KAAK,EAAEgrB,MAAM,CAACpW,EAAE;cAChBA,EAAE,EAAEoW,MAAM,CAAC2S;aACd;WAAC,CAAC,KAAI,EAAE,CAAC;;OACb,YAAQrvB,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMuvC,4BAA4B,GAAGppC,iBAAW,CAAC,UAACkyB,kBAA0B,EAAExC,aAAqB;;IAC/F,IAAI2Z,wBAAwB,GAAGjP,uBAAuB,CAACjZ,IAAI,CAAC,UAAC1F,CAAW;MAAA,OAAKA,CAAC,CAAClnB,KAAK,KAAK29B,kBAAkB;MAAC;IAC5GgX,4BAA4B,CAAAt9B,QAAA,KACrBq9B,yBAAyB,GAAAnO,SAAA,OAAAA,SAAA,CAC3BpL,aAAa,IAAG2Z,wBAAwB,EAAAvO,SAAA,EAC5C,CAAC;GACL,EAAE,CAAC9lB,IAAI,CAACC,SAAS,CAACg0B,yBAAyB,CAAC,EAAEj0B,IAAI,CAACC,SAAS,CAACmlB,uBAAuB,CAAC,CAAC,CAAC;EAExF,IAAMkP,kCAAkC,GAAGtpC,iBAAW,CAAC,UAACupC,mBAA6B,EAAE7Z,aAAqB,EAAE0Y,QAAkB;IAC5HY,0BAA0B,IAAAnoB,MAAA,CACnBuZ,uBAAuB,GAC1BmP,mBAAmB,EACtB,CAAC;IACF,IAAI,CAAC,CAACnB,QAAQ,EAAE;MAAA,IAAAC,SAAA;MACZa,4BAA4B,CAAAt9B,QAAA,KACrBq9B,yBAAyB,GAAAZ,SAAA,OAAAA,SAAA,CAC3B3Y,aAAa,IAAG6Z,mBAAmB,EAAAlB,SAAA,EACvC,CAAC;;GAET,EAAE,CAACrzB,IAAI,CAACC,SAAS,CAACmlB,uBAAuB,CAAC,EAAEplB,IAAI,CAACC,SAAS,CAACg0B,yBAAyB,CAAC,CAAC,CAAC;EAExF/9B,eAAS,CAAC;IACNi+B,wBAAwB,EAAE;GAC7B,EAAE,EAAE,CAAC;EAEN,OAAO;IACHF,yBAAyB,EAAzBA,yBAAyB;IACzB7O,uBAAuB,EAAvBA,uBAAuB;IACvBgP,4BAA4B,EAA5BA,4BAA4B;IAC5BE,kCAAkC,EAAlCA,kCAAkC;IAClCJ,4BAA4B,EAA5BA;GACH;AACL,CAAC;;ACvDD,IAAMM,cAAc,GAAG,SAAjBA,cAAcA;EAChB,IAAM9pC,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAAsK,SAAA,GAA4CC,cAAQ,CAAkB,EAAE,CAAC;IAAlE+vB,cAAc,GAAAhwB,SAAA;IAAEw/B,iBAAiB,GAAAx/B,SAAA;EACxC,IAAAK,UAAA,GAAgDJ,cAAQ,EAAU;IAA3Dw/B,gBAAgB,GAAAp/B,UAAA;IAAEq/B,mBAAmB,GAAAr/B,UAAA;EAE5C,IAAMs/B,eAAe,YAAfA,eAAeA;IAAA;qCACb;QAAA,OAAAzpC,OAAA,CAAAC,OAAA,CACkBivB,WAAW,CAAC;UAC1Bx6B,MAAM,EAAE;SACX,CAAC,EAAA2N,IAAA,WAFIhC,GAAG;UAAA,IAAAqpC,aAAA,EAAA/4B,SAAA;UAGTtQ,GAAG,CAAC2H,IAAI,IAAIshC,iBAAiB,CAAC,EAAAI,aAAA,IAAA/4B,SAAA,GAAAtQ,GAAG,CAAC2H,IAAI,EAAC3G,GAAG,cAAAqoC,aAAA,uBAAZA,aAAA,CAAAlY,IAAA,CAAA7gB,SAAA,EAAe,UAACyO,MAAe;YAAA,OAAM;cAC/DjrB,KAAK,EAAEirB,MAAM,CAAC1gB,KAAK;cACnBtK,KAAK,EAAEgrB,MAAM,CAACpW;aACjB;WAAC,CAAC,KAAI,EAAE,CAAC;;OACb,YAAQtG,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMiwC,mBAAmB,GAAG9pC,iBAAW,CAAC,UAAC+pC,UAAyB,EAAEra,aAAqB;;IACrF,IAAIsa,eAAe,GAAG/P,cAAc,CAACt4B,MAAM,CAAC,UAAC8Z,CAAW;MAAA,OAAKsuB,UAAU,CAACh0C,QAAQ,CAAC0lB,CAAC,CAAClnB,KAAK,CAAC;MAAC;IAC1Fo1C,mBAAmB,CAAA/9B,QAAA,KACZ89B,gBAAgB,GAAA5O,SAAA,OAAAA,SAAA,CAClBpL,aAAa,IAAGsa,eAAe,EAAAlP,SAAA,EACnC,CAAC;GACL,EAAE,CAAC9lB,IAAI,CAACC,SAAS,CAACy0B,gBAAgB,CAAC,EAAE10B,IAAI,CAACC,SAAS,CAACglB,cAAc,CAAC,CAAC,CAAC;EAEtE,IAAMgQ,yBAAyB,GAAGjqC,iBAAW,CAAC,UAACkqC,UAAoB,EAAExa,aAAqB,EAAEya,eAAyB;IACjHV,iBAAiB,IAAA5oB,MAAA,CACVoZ,cAAc,GACjBiQ,UAAU,EACb,CAAC;IACF,IAAI,CAAC,CAACC,eAAe,EAAE;MAAA,IAAA9B,SAAA;MACnBsB,mBAAmB,CAAA/9B,QAAA,KACZ89B,gBAAgB,GAAArB,SAAA,OAAAA,SAAA,CAClB3Y,aAAa,IAAGwa,UAAU,EAAA7B,SAAA,EAC9B,CAAC;;GAET,EAAE,CAACrzB,IAAI,CAACC,SAAS,CAACglB,cAAc,CAAC,EAAEjlB,IAAI,CAACC,SAAS,CAACy0B,gBAAgB,CAAC,CAAC,CAAC;EAEtEx+B,eAAS,CAAC;IACN0+B,eAAe,EAAE;GACpB,EAAE,EAAE,CAAC;EAEN,OAAO;IACHF,gBAAgB,EAAhBA,gBAAgB;IAChBzP,cAAc,EAAdA,cAAc;IACd6P,mBAAmB,EAAnBA,mBAAmB;IACnBG,yBAAyB,EAAzBA,yBAAyB;IACzBN,mBAAmB,EAAnBA;GACH;AACL,CAAC;;ACzDM,IAAMS,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,QAAyB,EAAEvtC,IAAiB;EACzE,IAAM+3B,MAAM,GAAgB,EAAE;EAE9B,IAAI/3B,IAAI,KAAKwzB,WAAW,CAACY,OAAO,EAAE;IAE9B,SAAA9I,SAAA,GAAAC,+BAAA,CAAsBgiB,QAAQ,GAAA/hB,KAAA,IAAAA,KAAA,GAAAF,SAAA,IAAAG,IAAA,GAAE;MAAA,IAArBid,OAAO,GAAAld,KAAA,CAAA/zB,KAAA;MACd,SAAAo0B,UAAA,GAAAN,+BAAA,CAAsBmd,OAAO,CAACxS,QAAQ,IAAI,EAAE,GAAApK,MAAA,IAAAA,MAAA,GAAAD,UAAA,IAAAJ,IAAA,GAAE;QAAA,IAAnC4J,OAAO,GAAAvJ,MAAA,CAAAr0B,KAAA;QACdsgC,MAAM,CAAC9L,IAAI,CAAC;UACRz0B,KAAK,EAAE69B,OAAO,CAAC0T,gBAAgB;UAC/BtxC,KAAK,EAAE49B,OAAO,CAACyT,aAAa;UAC5B7wC,IAAI,EAAEo9B,OAAO,CAACmY;SACjB,CAAC;;;GAGb,MAAM,IAAIxtC,IAAI,KAAKwzB,WAAW,CAACa,SAAS,EAAE;IAEvC,SAAA1I,UAAA,GAAAJ,+BAAA,CAAsBgiB,QAAQ,GAAA3hB,MAAA,IAAAA,MAAA,GAAAD,UAAA,IAAAF,IAAA,GAAE;MAAA,IAArBid,QAAO,GAAA9c,MAAA,CAAAn0B,KAAA;MACd,IAAIixC,QAAO,CAACpT,cAAc,IAAIoT,QAAO,CAAC3S,eAAe,EAAE;QACnDgC,MAAM,CAAC9L,IAAI,CAAC;UACRz0B,KAAK,EAAEkxC,QAAO,CAACpT,cAAc;UAC7B79B,KAAK,EAAEixC,QAAO,CAAC3S,eAAe;UAC9B99B,IAAI,EAAEywC,QAAO,CAAC5S,aAAa,IAAI;SAClC,CAAC;;;GAGb,MAAM,IAAI91B,IAAI,KAAKwzB,WAAW,CAACc,SAAS,EAAE;IAEvC,SAAAnI,UAAA,GAAAZ,+BAAA,CAAsBgiB,QAAQ,GAAAvhB,MAAA,IAAAA,MAAA,GAAAG,UAAA,IAAAV,IAAA,GAAE;MAAA,IAArBid,SAAO,GAAA1c,MAAA,CAAAv0B,KAAA;MACd,SAAAg1B,UAAA,GAAAlB,+BAAA,CAAwBmd,SAAO,CAACvT,UAAU,IAAI,EAAE,GAAAzI,MAAA,IAAAA,MAAA,GAAAD,UAAA,IAAAhB,IAAA,GAAE;QAAA,IAAvCyd,SAAS,GAAAxc,MAAA,CAAAj1B,KAAA;QAChBsgC,MAAM,CAAC9L,IAAI,CAAC;UACRz0B,KAAK,EAAE0xC,SAAS,CAACE,cAAc;UAC/B3xC,KAAK,EAAEyxC,SAAS,CAACC,eAAe;UAChClxC,IAAI,EAAEixC,SAAS,CAACuE;SACnB,CAAC;;;;EAMd,IAAMnE,SAAS,GAAG,IAAIV,GAAG,EAAqB;EAC9C,SAAA8E,EAAA,MAAA1J,OAAA,GAAmBjM,MAAM,EAAA2V,EAAA,GAAA1J,OAAA,CAAA5sB,MAAA,EAAAs2B,EAAA,IAAE;IAAtB,IAAM7uB,IAAI,GAAAmlB,OAAA,CAAA0J,EAAA;IACX,IAAI,CAACpE,SAAS,CAACT,GAAG,CAAChqB,IAAI,CAACpnB,KAAK,CAAC,EAAE;MAC5B6xC,SAAS,CAACv0B,GAAG,CAAC8J,IAAI,CAACpnB,KAAK,EAAEonB,IAAI,CAAC;;;EAKvC,OAAO/V,KAAK,CAAC01B,IAAI,CAAC8K,SAAS,CAAC7jC,MAAM,EAAE,CAAC,CAAC04B,IAAI,CAAC,UAACxQ,CAAC,EAAEyQ,CAAC;IAAA,OAC5CzQ,CAAC,CAACn2B,KAAK,CAAC6mC,aAAa,CAACD,CAAC,CAAC5mC,KAAK,CAAC;IACjC;AACL,CAAC;;ACjDD,IAAMm2C,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAClBC,eAAqB,EACrBC,iBAAuC,EACvCC,iBAAuC,EACvCC,wBAA8C,EAC9CC,QAAmB,EACnB3F,YAA4B,EAC5BwB,eAAqB,EACrB1B,YAA8B;EAE9B,IAAMvlC,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAAsK,SAAA,GAA0CC,cAAQ,CAAU,KAAK,CAAC;IAA3D6gC,aAAa,GAAA9gC,SAAA;IAAE+gC,gBAAgB,GAAA/gC,SAAA;EACtC,IAAAK,UAAA,GAA8CJ,cAAQ,CAAe6nB,gBAAgB,CAAC;IAA/EkZ,eAAe,GAAA3gC,UAAA;IAAE4gC,kBAAkB,GAAA5gC,UAAA;EAC1C,IAAAG,UAAA,GAAkDP,cAAQ,CAAU,KAAK,CAAC;IAAnEihC,iBAAiB,GAAA1gC,UAAA;IAAE2gC,oBAAoB,GAAA3gC,UAAA;EAC9C,IAAAG,UAAA,GAA8CV,cAAQ,CAAU,KAAK,CAAC;IAA/DmhC,eAAe,GAAAzgC,UAAA;IAAE0gC,kBAAkB,GAAA1gC,UAAA;EAC1C,IAAAG,UAAA,GAAkCb,cAAQ,CAAcomB,WAAW,CAACY,OAAO,CAAC;IAArEqa,SAAS,GAAAxgC,UAAA;IAAEygC,YAAY,GAAAzgC,UAAA;EAC9B,IAAAmF,UAAA,GAA0ChG,cAAQ,CAAQ,EAAE,CAAC;IAAtDuhC,aAAa,GAAAv7B,UAAA;IAAEw7B,gBAAgB,GAAAx7B,UAAA;EACtC,IAAAE,UAAA,GAAkDlG,cAAQ,CAAQ,EAAE,CAAC;IAA9DyhC,iBAAiB,GAAAv7B,UAAA;IAAEw7B,oBAAoB,GAAAx7B,UAAA;EAC9C,IAAAG,UAAA,GAAkDrG,cAAQ,CAAQ,EAAE,CAAC;IAA9D2hC,iBAAiB,GAAAt7B,UAAA;IAAEu7B,oBAAoB,GAAAv7B,UAAA;EAC9C,IAAAw7B,UAAA,GAAkC7hC,cAAQ,CAAM;MAC5C4U,MAAM,EAAE,EAAE;MACVktB,WAAW,EAAE,EAAE;MACfC,iBAAiB,EAAE,EAAE;MACrBC,WAAW,EAAE,EAAE;MACfC,iBAAiB,EAAE;KACtB,CAAC;IANKC,SAAS,GAAAL,UAAA;IAAEM,YAAY,GAAAN,UAAA;EAO9B,IAAAO,UAAA,GAAsDpiC,cAAQ,CAAS,EAAE,CAAC;IAAnEqiC,mBAAmB,GAAAD,UAAA;IAAEE,sBAAsB,GAAAF,UAAA;EAClD,IAAAG,UAAA,GAAwEviC,cAAQ,CAAS,EAAE,CAAC;IAArFwiC,4BAA4B,GAAAD,UAAA;IAAEE,+BAA+B,GAAAF,UAAA;EACpE,IAAAG,WAAA,GAA8C1iC,cAAQ,CAAU,KAAK,CAAC;IAA/D2iC,eAAe,GAAAD,WAAA;IAAEE,kBAAkB,GAAAF,WAAA;EAC1C,IAAAG,WAAA,GAAsC7iC,cAAQ,CAAS,CAAC,CAAC;IAAlD8iC,WAAW,GAAAD,WAAA;IAAEE,cAAc,GAAAF,WAAA;EAClC,IAAAG,WAAA,GAAwDhjC,cAAQ,CAAW,EAAE,CAAC;IAAvEijC,oBAAoB,GAAAD,WAAA;IAAEE,uBAAuB,GAAAF,WAAA;EACpD,IAAAG,WAAA,GAAsDnjC,cAAQ,CAAS,EAAE,CAAC;IAAnEojC,mBAAmB,GAAAD,WAAA;IAAEE,sBAAsB,GAAAF,WAAA;EAClD,IAAAG,WAAA,GAAoEtjC,cAAQ,CAAU,KAAK,CAAC;IAArFujC,0BAA0B,GAAAD,WAAA;IAAEE,6BAA6B,GAAAF,WAAA;EAChE,IAAAG,WAAA,GAAsDzjC,cAAQ,CAAU,KAAK,CAAC;IAAvE0jC,mBAAmB,GAAAD,WAAA;IAAEE,sBAAsB,GAAAF,WAAA;EAClD,IAAAG,WAAA,GAAgD5jC,cAAQ,CAAmBkpB,mBAAmB,CAAC;IAAxF2a,gBAAgB,GAAAD,WAAA;IAAEE,mBAAmB,GAAAF,WAAA;EAE5C,IAAMG,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAInwB,cAAmB;IAChDkwB,mBAAmB,CAAApiC,QAAA,KACZmiC,gBAAgB,EAChBjwB,cAAc,CACpB,CAAC;GACL;EAED,IAAMowB,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAIvL,WAAsB;IACnD,IAAIA,WAAW,IAAIA,WAAW,CAACzuB,MAAM,KAAK,CAAC,EAAE;MACzCxU,QAAQ,CACJhC,QAAQ,CAAC;QACLZ,IAAI,EAAE,QAAQ;QACdwO,OAAO,EAAE;OACZ,CAAC,CACL;MACD;;IAEJuiC,sBAAsB,CAAC,CAACD,mBAAmB,CAAC;IAC5C1C,kBAAkB,CAAAt/B,QAAA,KAAMmmB,gBAAgB,CAAE,CAAC;IAC3Cic,mBAAmB,CAAApiC,QAAA,KAAMwnB,mBAAmB,CAAE,CAAC;GAClD;EAED,IAAM+a,8BAA8B,GAAG,SAAjCA,8BAA8BA;IAChCT,6BAA6B,CAAC,CAACD,0BAA0B,CAAC;IAC1DF,sBAAsB,CAAC,EAAE,CAAC;GAC7B;EAED,IAAMa,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIzlC,MAAc;IACzCwkC,oBAAoB,CAACp3C,QAAQ,CAAC4S,MAAM,CAAC,GAC/BykC,uBAAuB,CAACD,oBAAoB,CAACxrC,MAAM,CAAC,UAAAwH,EAAE;MAAA,OAAIA,EAAE,KAAKR,MAAM;MAAC,CAAC,GACzEykC,uBAAuB,IAAAvsB,MAAA,CAAKssB,oBAAoB,GAAExkC,MAAM,EAAC,CAAC;GACnE;EAED,IAAM0lC,cAAc,GAAG,SAAjBA,cAAcA,CAAIz2B,KAAa;IACjCq1B,cAAc,CAAC,UAAA5F,IAAI;MAAA,OAAKA,IAAI,KAAKzvB,KAAK,GAAG,CAAC,CAAC,GAAGA,KAAK;KAAC,CAAC;GACxD;EAED,IAAM02B,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAI3L,WAAsB;IAC7C,IAAIA,WAAW,IAAIA,WAAW,CAACzuB,MAAM,KAAK,CAAC,EAAE;MACzCxU,QAAQ,CACJhC,QAAQ,CAAC;QACLZ,IAAI,EAAE,QAAQ;QACdwO,OAAO,EAAE;OACZ,CAAC,CACL;MACD;;IAEJ0/B,gBAAgB,CAAC,CAACD,aAAa,CAAC;IAChCG,kBAAkB,CAAAt/B,QAAA,KAAMmmB,gBAAgB,CAAE,CAAC;GAC9C;EAED,IAAMwc,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAIC,QAAyB,EAAEhhB,KAAkB,EAAEnR,OAAc;IAC1F,IAAImyB,QAAQ,IAAIA,QAAQ,CAACt6B,MAAM,KAAK,CAAC,EAAE;MACnCxU,QAAQ,CACJhC,QAAQ,CAAC;QACLZ,IAAI,EAAE,QAAQ;QACdwO,OAAO,EAAE;OACZ,CAAC,CACL;MACD;;IAEJwgC,oBAAoB,CAAC0C,QAAQ,CAAC;IAC9B5C,oBAAoB,CAACxB,gBAAgB,CAACoE,QAAQ,EAAEhhB,KAAK,CAAC,CAAC;IACvDge,YAAY,CAAChe,KAAK,CAAC;IACnB,QAAQA,KAAK;MACT,KAAK8C,WAAW,CAACY,OAAO;QACpBmb,YAAY,CAAC;UACTvtB,MAAM,EAAE,gBAAgB;UACxBktB,WAAW,EAAE,sBAAsB;UACnCC,iBAAiB,EAAE,gBAAgB;UACnCC,WAAW,EAAE,uBAAuB;UACpCC,iBAAiB,EAAE;SACtB,CAAC;QACF;MACJ,KAAK7b,WAAW,CAACa,SAAS;QACtBkb,YAAY,CAAC;UACTvtB,MAAM,EAAE,kBAAkB;UAC1BktB,WAAW,EAAE,wBAAwB;UACrCC,iBAAiB,EAAE,EAAE;UACrBC,WAAW,EAAE,EAAE;UACfC,iBAAiB,EAAE;SACtB,CAAC;QACF;MACJ,KAAK7b,WAAW,CAACc,SAAS;QACtBib,YAAY,CAAC;UACTvtB,MAAM,EAAE,kBAAkB;UAC1BktB,WAAW,EAAE,wBAAwB;UACrCC,iBAAiB,EAAE,kBAAkB;UACrCC,WAAW,EAAE,yBAAyB;UACtCC,iBAAiB,EAAE;SACtB,CAAC;QACF;MACJ,KAAK7b,WAAW,CAACe,gBAAgB;QAC7Bgb,YAAY,CAAC;UACTvtB,MAAM,EAAE,wBAAwB;UAChCktB,WAAW,EAAE,wBAAwB;UACrCC,iBAAiB,EAAE,EAAE;UACrBC,WAAW,EAAE,EAAE;UACfC,iBAAiB,EAAE;SACtB,CAAC;QACF;;IAIRb,kBAAkB,CAAC,CAACD,eAAe,CAAC;IACpCK,gBAAgB,CAACrvB,OAAO,CAAC;GAC5B;EAED,IAAMoyB,kBAAkB,GAAG,SAArBA,kBAAkBA;IACpB/C,gBAAgB,CAAC,EAAE,CAAC;IACpBJ,kBAAkB,CAAC,KAAK,CAAC;IACzBwB,kBAAkB,CAAC,KAAK,CAAC;IACzBtB,YAAY,CAAClb,WAAW,CAACY,OAAO,CAAC;IACjC0a,oBAAoB,CAAC,EAAE,CAAC;IACxBY,sBAAsB,CAAC,EAAE,CAAC;IAC1BG,+BAA+B,CAAC,EAAE,CAAC;IACnCN,YAAY,CAAC;MACTvtB,MAAM,EAAE,EAAE;MACVktB,WAAW,EAAE,EAAE;MACfC,iBAAiB,EAAE,EAAE;MACrBC,WAAW,EAAE,EAAE;MACfC,iBAAiB,EAAE;KACtB,CAAC;IACFiB,uBAAuB,CAAC,EAAE,CAAC;GAC9B;EAED,IAAMnW,OAAO,GAAG,SAAVA,OAAOA;IACT6V,kBAAkB,CAAC,KAAK,CAAC;IACzBG,cAAc,CAAC,CAAC,CAAC;IACjBG,uBAAuB,CAAC,EAAE,CAAC;GAC9B;EAED,IAAMsB,iBAAiB,YAAjBA,iBAAiBA,CAAU1b,QAAe,EAAEl2B,IAAiB;IAAA;MAC/D4C,QAAQ,CACJnC,QAAQ,CAAC;QACLob,MAAM,EAAE,IAAI;QACZ7b,IAAI,EAAE,SAAS;QACfwO,OAAO,8BAA2BxO,IAAI,KAAKwzB,WAAW,CAACY,OAAO,GAAG,SAAS,GAAGp0B,IAAI,KAAKwzB,WAAW,CAACa,SAAS,GAAG,WAAW,GAAGr0B,IAAI,KAAKwzB,WAAW,CAACe,gBAAgB,GAAG,iBAAiB,GAAG,WAAW,cAAQ2B,QAAQ,CAAC9e,MAAM,iBAAc;QACxO0K,SAAS;UAAA;;cA8BLlf,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;YA7B3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;YAAA,IAAAgV,MAAA,GAAAhH,MAAA,aACtB;cAAA,SAAAa,OAAAyiC,qBAAA;gBAAA,SAAA5iC,OAAA6iC,qBAAA;kBAAA,SAAA/iC,OACMrL,GAAG;oBAAA,IAAAmL,MAAA;sBAAA,IAOLnL,GAAG,IAAIA,GAAG,aAAHA,GAAG,eAAHA,GAAG,CAAE2H,IAAI;wBAChBsmC,kBAAkB,EAAE;wBACpB3D,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,EAAI;wBAAA,OAAA3qC,OAAA,CAAAC,OAAA,CACNumC,eAAe,EAAE,EAAAnkC,IAAA;0BACvB9C,QAAQ,CACJhC,QAAQ,CAAC;4BACLZ,IAAI,EAAE,SAAS;4BACfwO,OAAO,eAAYxO,IAAI,KAAKwzB,WAAW,CAACY,OAAO,GAAG,SAAS,GAAGp0B,IAAI,KAAKwzB,WAAW,CAACa,SAAS,GAAG,WAAW,GAAGr0B,IAAI,KAAKwzB,WAAW,CAACe,gBAAgB,GAAG,iBAAiB,GAAG,WAAW;2BACvL,CAAC,CACL;;;;oBAAA,IAAA1lB,MAAA,IAAAA,MAAA,CAAAnJ,IAAA,SAAAmJ,MAAA,CAAAnJ,IAAA;;kBAAA,OAAA4I,KAAA,IAAAK,MAAA,GAAAI,MAAA,CAAAT,KAAA,GAAAwjC,qBAAA,GAAAnjC,MAAA,GAAAmjC,qBAAA,GAZK9xC,IAAI,KAAKwzB,WAAW,CAACc,SAAS,GACpBvB,8BAA8B,CAACmD,QAAQ,CAAC,GACxCjD,gCAAgC,CAACiD,QAAQ,CAAC,IAAA7yB,OAAA,CAAAC,OAAA,CAAAgL,KAAA,GAAAwjC,qBAAA,GAAAnjC,MAAA,GAAAmjC,qBAAA,GAFpD9xC,IAAI,KAAKwzB,WAAW,CAACc,SAAS,GACpBvB,8BAA8B,CAACmD,QAAQ,CAAC,GACxCjD,gCAAgC,CAACiD,QAAQ,CAAC,EAAAxwB,IAAA,CAAAqJ,MAAA;;gBAAA,IAAAJ,MAAA,GAAAL,KAAA,IAJxDtO,IAAI,KAAKwzB,WAAW,CAACa,SAAS;gBAAA,OAAA/lB,KAAA,KAAAK,MAAA,GAAAM,MAAA,CAAAX,KAAA,GAAAujC,qBAAA,GAAAljC,MAAA,GACpBqkB,yBAAyB,CAACkD,QAAQ,CAAC,QAAA7yB,OAAA,CAAAC,OAAA,CAAAgL,KAAA,GAAAujC,qBAAA,GAAAljC,MAAA,GAAnCqkB,yBAAyB,CAACkD,QAAQ,CAAC,MAAAxwB,IAAA,CAAAuJ,MAAA;;cAAA,IAAAX,KAAA,GAHvCtO,IAAI,KAAKwzB,WAAW,CAACY,OAAO;cAAA,OAAA9lB,KAAA,GAAAjL,OAAA,CAAAC,OAAA,CAC5BwvB,2BAA2B,CAACoD,QAAQ,CAAC,EAAAxwB,IAAA,CAAA0J,MAAA,IAAAA,MAAA;aAiBpD,YAAQrJ,GAAG,EAAE;cAAA,IAAA0I,aAAA,EAAAC,kBAAA;cACV9L,QAAQ,CACJhC,QAAQ,CAAC;gBACLZ,IAAI,EAAE,QAAQ;gBACdwO,OAAO,EACH,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;eACxC,CAAC,CACL;aACJ;YAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAiS,MAAA,IAAAA,MAAA,CAAA7P,IAAA,GAAA6P,MAAA,CAAA7P,IAAA,CAAAkQ,MAAA,IAAAA,MAAA,CAAAL,MAAA;WAEJ,QAAAxY,CAAA;YAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;OACJ,CAAC,CACL;MAAA,OAAAsG,OAAA,CAAAC,OAAA;KACJ,QAAAvG,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMg1C,kBAAkB,GAAG,SAArBA,kBAAkBA;IACpB,IAAIC,gBAAgB,GAAU,EAAE;IAChC,QAAQvD,SAAS;MACb,KAAKjb,WAAW,CAACY,OAAO;QACpB4d,gBAAgB,GAAGjD,iBAAiB,CAC/BlqC,MAAM,CAAC,UAAA6jC,OAAO;UACX,IAAMuE,UAAU,GAAGvE,OAAO,CAACxS,QAAQ,CAACxxB,GAAG,CAAC,UAACia,CAAM;YAAA,OAAKA,CAAC,CAACmqB,aAAa;YAAC;UACpE,OAAOmE,UAAU,CAACh0C,QAAQ,CAAC22C,4BAA4B,CAAC,IAAI,CAAC3C,UAAU,CAACh0C,QAAQ,CAACw2C,mBAAmB,CAAC;SACxG,CAAC,CACD/qC,GAAG,CAAC,UAAC3H,CAAM;UAAA,OAAM;YACd04B,SAAS,EAAE14B,CAAC,CAAC04B,SAAS;YACtBJ,OAAO,EAAEua,4BAA4B;YACrCqC,aAAa,EAAExC;WAClB;SAAC,CAAC;QACP;MACJ,KAAKjc,WAAW,CAACc,SAAS;QACtB0d,gBAAgB,GAAGjD,iBAAiB,CAC/BlqC,MAAM,CAAC,UAAA6jC,OAAO;UACX,IAAMwJ,YAAY,GAAGxJ,OAAO,CAACvT,UAAU,CAACzwB,GAAG,CAAC,UAACia,CAAM;YAAA,OAAKA,CAAC,CAACwqB,eAAe;YAAC;UAC1E,OAAO+I,YAAY,CAACj5C,QAAQ,CAAC22C,4BAA4B,CAAC,IAAI,CAACsC,YAAY,CAACj5C,QAAQ,CAACw2C,mBAAmB,CAAC;SAC5G,CAAC,CACD/qC,GAAG,CAAC,UAAC3H,CAAM;UAAA,OAAM;YACd04B,SAAS,EAAE14B,CAAC,CAAC04B,SAAS;YACtByT,SAAS,EAAE0G,4BAA4B;YACvCuC,eAAe,EAAE1C;WACpB;SAAC,CAAC;QACP;MACJ,KAAKjc,WAAW,CAACa,SAAS;QACtB2d,gBAAgB,GAAGjD,iBAAiB,CAC/BlqC,MAAM,CAAC,UAAC9H,CAAC;UAAA,IAAAq1C,WAAA;UAAA,OAAK,CAAAr1C,CAAC,aAADA,CAAC,uBAADA,CAAC,CAAEg5B,eAAe,KAAI,CAAAh5B,CAAC,aAADA,CAAC,wBAAAq1C,WAAA,GAADr1C,CAAC,CAAEm5B,QAAQ,cAAAkc,WAAA,uBAAXA,WAAA,CAAah7B,MAAM,IAAG,CAAC;UAAC,CAC5D1S,GAAG,CAAC,UAAAgkC,OAAO;UAAA,OAAK;YACbjT,SAAS,EAAEiT,OAAO,CAACjT,SAAS;YAC5BM,eAAe,EAAE0Z;WACpB;SAAC,CAAC;QACP;MAEJ,KAAKjc,WAAW,CAACe,gBAAgB;QAC7Byd,gBAAgB,GAAGjD,iBAAiB,CAC/BlqC,MAAM,CAAC,UAAC9H,CAAC;UAAA,IAAAs1C,YAAA;UAAA,OAAK,CAAAt1C,CAAC,aAADA,CAAC,uBAADA,CAAC,CAAEk5B,sBAAsB,KAAI,CAAAl5B,CAAC,aAADA,CAAC,wBAAAs1C,YAAA,GAADt1C,CAAC,CAAEm5B,QAAQ,cAAAmc,YAAA,uBAAXA,YAAA,CAAaj7B,MAAM,IAAG,CAAC;UAAC,CACnE1S,GAAG,CAAC,UAAAgkC,OAAO;UAAA,OAAK;YACbjT,SAAS,EAAEiT,OAAO,CAACjT,SAAS;YAC5BL,kBAAkB,EAAEqa;WACvB;SAAC,CAAC;QACP;;IAMR,IAAIuC,gBAAgB,CAAC56B,MAAM,KAAK,CAAC,EAAE;MAC/BxU,QAAQ,CACJhC,QAAQ,CAAC;QACLZ,IAAI,EAAE,QAAQ;QACdwO,OAAO,EAAE;OACZ,CAAC,CACL;MACD;;IAGJojC,iBAAiB,CAACI,gBAAgB,IAAI,EAAE,EAAEvD,SAAS,CAAC;GACvD;EAED,IAAM6D,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAIzM,WAAsB;IACrD,IAAIA,WAAW,IAAIA,WAAW,CAACzuB,MAAM,KAAK,CAAC,EAAE;MACzCxU,QAAQ,CACJhC,QAAQ,CAAC;QACLZ,IAAI,EAAE,QAAQ;QACdwO,OAAO,EAAE;OACZ,CAAC,CACL;MACD;;IAEJ8/B,oBAAoB,CAAC,CAACD,iBAAiB,CAAC;GAC3C;EAED,IAAMkE,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIt6C,IAAY,EAAER,KAAU;IACnD,QAAQQ,IAAI;MACR,KAAK,WAAW;QACZm2C,kBAAkB,CAAAt/B,QAAA,KACXq/B,eAAe;UAClBjZ,WAAW,EAAEz9B,KAAK,CAACA,KAAK;UACxB69B,cAAc,EAAE79B,KAAK,CAACD;UACzB,CAAC;QACF;MACJ,KAAK,WAAW;QACZ42C,kBAAkB,CAAAt/B,QAAA,KACXq/B,eAAe;UAClB/Y,kBAAkB,EAAE39B,KAAK,CAACA,KAAK;UAC/B89B,qBAAqB,EAAE99B,KAAK,CAACD;UAChC,CAAC;QACF;MACJ,KAAK,OAAO;QACR42C,kBAAkB,CAAAt/B,QAAA,KACXq/B,eAAe;UAClBtb,UAAU,EAAEp7B,KAAK,CAACA;UACrB,CAAC;QACF;;GAMX;EAED,IAAM+6C,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAI/6C,KAAY;IACzC22C,kBAAkB,CAAAt/B,QAAA,KACXq/B,eAAe;MAClB9Y,OAAO,EAAE59B;MACZ,CAAC;GACL;EAED,IAAMg7C,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAIh7C,KAAY;IAC3C22C,kBAAkB,CAAAt/B,QAAA,KACXq/B,eAAe;MAClBhZ,UAAU,EAAE19B;MACf,CAAC;GACL;EAED,IAAMi7C,cAAc,YAAdA,cAAcA,CAAUtb,KAAyB;IAAA;;QAoBnDx0B,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAnB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAoV,MAAA,GAAApH,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACMkvB,iBAAiB,CAAC4E,KAAK,CAAC,EAAA1xB,IAAA;UAC9B9C,QAAQ,CACJhC,QAAQ,CAAC;YACLZ,IAAI,EAAE,SAAS;YACfwO,OAAO,EAAE;WACZ,CAAC,CACL;UACDw/B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,EAAI;UACZ2D,kBAAkB,EAAE;;OACvB,YAAQ5rC,GAAG,EAAE;QAAA,IAAAmJ,cAAA,EAAAC,mBAAA;QACVvM,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAU,cAAA,GAAAnJ,GAAG,CAAC0E,QAAQ,cAAAyE,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7D,IAAI,cAAA8D,mBAAA,uBAAlBA,mBAAA,CAAoB/O,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAqS,MAAA,IAAAA,MAAA,CAAAjQ,IAAA,GAAAiQ,MAAA,CAAAjQ,IAAA,CAAAqQ,MAAA,IAAAA,MAAA,CAAAJ,MAAA;KAEJ,QAAA5Y,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAM41C,wBAAwB,GAAGzvC,iBAAW,CAAC,UAAC2iC,WAAqB;IAC/D,IAAIA,WAAW,CAACzuB,MAAM,KAAK,CAAC,EAAE;MAC1BxU,QAAQ,CACJhC,QAAQ,CAAC;QACLZ,IAAI,EAAE,QAAQ;QACdwO,OAAO,EAAE;OACZ,CAAC,CACL;MACD;;IAEJ,IAAMokC,gBAAgB,GAAG/M,WAAW,CAAC/oC,IAAI,CAAC,UAACkM,CAAS;MAChD,IAAMqsB,OAAO,GAAGuY,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAG5kC,CAAC,CAAC;MACpC,IAAMugC,SAAS,GAAGsE,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAG7kC,CAAC,CAAC;MACxC,IAAMkgC,SAAS,GAAG4E,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAG9kC,CAAC,CAAC;MACxC,IAAM0gC,gBAAgB,GAAGqE,wBAAwB,aAAxBA,wBAAwB,uBAAxBA,wBAAwB,CAAG/kC,CAAC,CAAC;MAEtD,OAAQ,CAACqsB,OAAO,IAAI,CAACkU,SAAS,IAAI,CAACL,SAAS,IAAI,CAACQ,gBAAgB;KACpE,CAAC;IACF,IAAIkJ,gBAAgB,EAAE;MAClBhwC,QAAQ,CACJhC,QAAQ,CAAC;QACLZ,IAAI,EAAE,QAAQ;QACdwO,OAAO,EAAE;OACZ,CAAC,CACL;MACD;;IAGJ,IAAM4oB,KAAK,GAAGyO,WAAW,CAACnhC,GAAG,CAAC,UAACsE,CAAS;MACpC,IAAMqsB,OAAO,GAAGuY,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAG5kC,CAAC,CAAC;MACpC,IAAMugC,SAAS,GAAGsE,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAG7kC,CAAC,CAAC;MACxC,IAAMkgC,SAAS,GAAG4E,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAG9kC,CAAC,CAAC;MACxC,IAAM0gC,gBAAgB,GAAGqE,wBAAwB,aAAxBA,wBAAwB,uBAAxBA,wBAAwB,CAAG/kC,CAAC,CAAC;MAEtD,IAAMvR,KAAK,GAAqB;QAC5B4U,EAAE,EAAErD;OACP;MACD,IAAI,CAAC,CAACqsB,OAAO,EAAE;QACX59B,KAAK,CAACo7C,iBAAiB,GAAG,CAAC,CAACxd,OAAO,GAAGA,OAAO,CAAC3wB,GAAG,CAAC,UAACsE,CAAM;UAAA,OAAKA,CAAC,CAACvR,KAAK;UAAC,GAAGkgC,SAAS;QAClFlgC,KAAK,CAACsxC,gBAAgB,GAAG,CAAC,CAAC1T,OAAO,GAAGA,OAAO,CAAC3wB,GAAG,CAAC,UAACsE,CAAM;UAAA,OAAKA,CAAC,CAACxR,KAAK;UAAC,GAAGmgC,SAAS;;MAGrF,IAAI,CAAC,CAAC4R,SAAS,EAAE;QACb9xC,KAAK,CAACs+B,eAAe,GAAG,CAAC,EAACwT,SAAS,aAATA,SAAS,eAATA,SAAS,CAAE9xC,KAAK,KAAI,QAAO8xC,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE9xC,KAAK,MAAK,QAAQ,GAAG8xC,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE9xC,KAAK,GAAGkgC,SAAS;QACjHlgC,KAAK,CAAC69B,cAAc,GAAG,CAAC,EAACiU,SAAS,aAATA,SAAS,eAATA,SAAS,CAAE9xC,KAAK,KAAI,QAAO8xC,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE9xC,KAAK,MAAK,QAAQ,GAAG8xC,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE/xC,KAAK,GAAGmgC,SAAS;;MAGpH,IAAI,CAAC,CAACuR,SAAS,EAAE;QACbzxC,KAAK,CAACq7C,gBAAgB,GAAG,CAAC,CAAC5J,SAAS,GAAGA,SAAS,CAACxkC,GAAG,CAAC,UAACsE,CAAM;UAAA,OAAKA,CAAC,CAACvR,KAAK;UAAC,GAAGkgC,SAAS;QACrFlgC,KAAK,CAACs7C,eAAe,GAAG,CAAC,CAAC7J,SAAS,GAAGA,SAAS,CAACxkC,GAAG,CAAC,UAACsE,CAAM;UAAA,OAAKA,CAAC,CAACxR,KAAK;UAAC,GAAGmgC,SAAS;;MAGxF,IAAI,CAAC,CAAC+R,gBAAgB,EAAE;QACpBjyC,KAAK,CAACw+B,sBAAsB,GAAG,CAAC,EAACyT,gBAAgB,aAAhBA,gBAAgB,eAAhBA,gBAAgB,CAAEjyC,KAAK,KAAI,QAAOiyC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEjyC,KAAK,MAAK,QAAQ,GAAGiyC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEjyC,KAAK,GAAGkgC,SAAS;QAC7IlgC,KAAK,CAAC89B,qBAAqB,GAAG,CAAC,EAACmU,gBAAgB,aAAhBA,gBAAgB,eAAhBA,gBAAgB,CAAEjyC,KAAK,KAAI,QAAOiyC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEjyC,KAAK,MAAK,QAAQ,GAAGiyC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAElyC,KAAK,GAAGmgC,SAAS;;MAGhJ,OAAOlgC,KAAK;KACf,CAAC;IAEFi7C,cAAc,IAAA3uB,MAAA,CAAKqT,KAAK,CAAC,CAAC;GAC7B,EAAE,CAAClf,IAAI,CAACC,SAAS,CAACy1B,eAAe,CAAC,EAAE11B,IAAI,CAACC,SAAS,CAAC01B,iBAAiB,CAAC,EAAE31B,IAAI,CAACC,SAAS,CAAC21B,iBAAiB,CAAC,EAAE51B,IAAI,CAACC,SAAS,CAAC41B,wBAAwB,CAAC,CAAC,CAAC;EAErJ,IAAMiF,yBAAyB,GAAG9vC,iBAAW,CAAC,UAACmJ,EAAU;IACrD,IAAMgpB,OAAO,GAAGuY,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAGvhC,EAAE,CAAC;IACrC,IAAMk9B,SAAS,GAAGsE,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAGxhC,EAAE,CAAC;IACzC,IAAM68B,SAAS,GAAG4E,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAGzhC,EAAE,CAAC;IACzC,IAAMq9B,gBAAgB,GAAGqE,wBAAwB,aAAxBA,wBAAwB,uBAAxBA,wBAAwB,CAAG1hC,EAAE,CAAC;IACvD,IAAI,CAACgpB,OAAO,IAAI,CAACkU,SAAS,IAAI,CAACL,SAAS,IAAI,CAACQ,gBAAgB,EAAE;MAC3D9mC,QAAQ,CACJhC,QAAQ,CAAC;QACLZ,IAAI,EAAE,QAAQ;QACdwO,OAAO,EAAE;OACZ,CAAC,CACL;MACD;;IAGJ,IAAMykC,cAAc,GAAqB;MACrC5mC,EAAE,EAAFA;KACH;IAED,IAAI,CAAC,CAACgpB,OAAO,EAAE;MACX4d,cAAc,CAACJ,iBAAiB,GAAG,CAAC,CAACxd,OAAO,GAAGA,OAAO,CAAC3wB,GAAG,CAAC,UAACsE,CAAM;QAAA,OAAKA,CAAC,CAACvR,KAAK;QAAC,GAAGkgC,SAAS;MAC3Fsb,cAAc,CAAClK,gBAAgB,GAAG,CAAC,CAAC1T,OAAO,GAAGA,OAAO,CAAC3wB,GAAG,CAAC,UAACsE,CAAM;QAAA,OAAKA,CAAC,CAACxR,KAAK;QAAC,GAAGmgC,SAAS;;IAG9F,IAAI,CAAC,CAAC4R,SAAS,EAAE;MACb0J,cAAc,CAACld,eAAe,GAAG,CAAC,EAACwT,SAAS,aAATA,SAAS,eAATA,SAAS,CAAE9xC,KAAK,KAAI,QAAO8xC,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE9xC,KAAK,MAAK,QAAQ,GAAG8xC,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE9xC,KAAK,GAAGkgC,SAAS;MAC1Hsb,cAAc,CAAC3d,cAAc,GAAG,CAAC,EAACiU,SAAS,aAATA,SAAS,eAATA,SAAS,CAAE9xC,KAAK,KAAI,QAAO8xC,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE9xC,KAAK,MAAK,QAAQ,GAAG8xC,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE/xC,KAAK,GAAGmgC,SAAS;;IAG7H,IAAI,CAAC,CAACuR,SAAS,EAAE;MACb+J,cAAc,CAACH,gBAAgB,GAAG,CAAC,CAAC5J,SAAS,GAAGA,SAAS,CAACxkC,GAAG,CAAC,UAACsE,CAAM;QAAA,OAAKA,CAAC,CAACvR,KAAK;QAAC,GAAGkgC,SAAS;MAC9Fsb,cAAc,CAACF,eAAe,GAAG,CAAC,CAAC7J,SAAS,GAAGA,SAAS,CAACxkC,GAAG,CAAC,UAACsE,CAAM;QAAA,OAAKA,CAAC,CAACxR,KAAK;QAAC,GAAGmgC,SAAS;;IAGjG,IAAI,CAAC,CAAC+R,gBAAgB,EAAE;MACpBuJ,cAAc,CAAChd,sBAAsB,GAAG,CAAC,EAACyT,gBAAgB,aAAhBA,gBAAgB,eAAhBA,gBAAgB,CAAEjyC,KAAK,KAAI,QAAOiyC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEjyC,KAAK,MAAK,QAAQ,GAAGiyC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEjyC,KAAK,GAAGkgC,SAAS;MACtJsb,cAAc,CAAC1d,qBAAqB,GAAG,CAAC,EAACmU,gBAAgB,aAAhBA,gBAAgB,eAAhBA,gBAAgB,CAAEjyC,KAAK,KAAI,QAAOiyC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEjyC,KAAK,MAAK,QAAQ,GAAGiyC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAElyC,KAAK,GAAGmgC,SAAS;;IAGzJ+a,cAAc,CAAC,CAACO,cAAc,CAAC,CAAC;GACnC,EAAE,CAAC/6B,IAAI,CAACC,SAAS,CAACy1B,eAAe,CAAC,EAAE11B,IAAI,CAACC,SAAS,CAAC01B,iBAAiB,CAAC,EAAE31B,IAAI,CAACC,SAAS,CAAC21B,iBAAiB,CAAC,EAAE51B,IAAI,CAACC,SAAS,CAAC41B,wBAAwB,CAAC,CAAC,CAAC;EAErJ,IAAMmF,uBAAuB,YAAvBA,uBAAuBA,CAAUrN,WAAqB;IAAA;;;QA+HxDjjC,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MA9H3B,IAAIslC,WAAW,CAACzuB,MAAM,KAAK,CAAC,EAAE;QAC1BxU,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE;SACZ,CAAC,CACL;QACD,OAAAnL,OAAA,CAAAC,OAAA;;MAEJ,IAAI6qC,eAAe,CAAC9Y,OAAO,CAACje,MAAM,KAAK,CAAC,IAAI+2B,eAAe,CAAChZ,UAAU,CAAC/d,MAAM,KAAK,CAAC,IAAI,CAAC+2B,eAAe,CAACjZ,WAAW,IAAI,CAACiZ,eAAe,CAAC/Y,kBAAkB,EAAE;QACxJxyB,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE;SACZ,CAAC,CACL;QACD,OAAAnL,OAAA,CAAAC,OAAA;;MAGJ,IAAM6vC,oBAAoB,IAAAC,qBAAA,GACrBjL,YAAY,aAAZA,YAAY,wBAAAkL,oBAAA,GAAZlL,YAAY,CACPtjC,MAAM,CAAC,UAAAkX,IAAI;QAAA,OAAI8pB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE5sC,QAAQ,CAAC8iB,IAAI,CAAC1P,EAAE,CAAC;QAAC,cAAAgnC,oBAAA,uBADnDA,oBAAA,CAEKC,KAAK,CAAC,UAAAC,CAAC;QAAA,OAAIzqC,KAAK,CAACC,OAAO,CAACwqC,CAAC,CAACrd,QAAQ,CAAC,IAAIqd,CAAC,CAACrd,QAAQ,CAAC9e,MAAM,GAAG,CAAC;QAAC,YAAAg8B,qBAAA,GAC/D,KAAK;MAEd,IAAGjF,eAAe,CAAC9Y,OAAO,CAACje,MAAM,KAAK,CAAC,IAAI,CAAC+7B,oBAAoB,EAAE;QAC9DvwC,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE;SACZ,CAAC,CACL;QACD,OAAAnL,OAAA,CAAAC,OAAA;;MAGJV,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAyW,OAAA,GAAAzI,MAAA,aACtB;QAAA,SAAA4I;UAAA,SAAAT;YAAA,SAAAJ;cAAA,SAAAd;gBAyEA5S,QAAQ,CACJhC,QAAQ,CAAC;kBACLZ,IAAI,EAAE,SAAS;kBACfwO,OAAO,EAAE;iBACZ,CAAC,CACL;gBACDw/B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,EAAI;gBACZ2D,kBAAkB,EAAE;gBACpBH,iBAAiB,EAAE;;cArBnB,IAAMgC,2BAA2B,GAAGrL,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEtjC,MAAM,CAAC,UAACkX,IAAS;gBAAA,OAAK,CAACA,IAAI,CAACka,sBAAsB;gBAAC;cAAA,IAAAvgB,OAAA;gBAAA,IACjG89B,2BAA2B,IAAI,CAAAA,2BAA2B,aAA3BA,2BAA2B,uBAA3BA,2BAA2B,CAAEp8B,MAAM,IAAG,CAAC,IAAI+2B,eAAe,CAAC/Y,kBAAkB;kBAC5G,IAAMgC,KAAK,GAAGoc,2BAA2B,CAAC9uC,GAAG,CAAC,UAACsE,CAAgB;oBAC3D,IAAMvR,KAAK,GAAqB;sBAC5B4U,EAAE,EAAErD,CAAC,CAACqD,EAAE;sBACR4pB,sBAAsB,EAAEkY,eAAe,CAAC/Y,kBAAkB;sBAC1DG,qBAAqB,EAAE4Y,eAAe,CAAC5Y;qBAC1C;oBAED,OAAO99B,KAAK;mBACf,CAAC;kBAAA,OAAA4L,OAAA,CAAAC,OAAA,CACIkvB,iBAAiB,CAAC4E,KAAK,CAACvyB,MAAM,CAAC,UAAC0uC,CAAC;oBAAA,OAA4BA,CAAC,KAAK5b,SAAS;oBAAC,CAAC,EAAAjyB,IAAA;;;cAAA,OAAAgQ,OAAA,IAAAA,OAAA,CAAAhQ,IAAA,GAAAgQ,OAAA,CAAAhQ,IAAA,CAAA8P,OAAA,IAAAA,OAAA,CAAAE,OAAA;;YAxBxF,IAAM+9B,oBAAoB,GAAGtL,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEtjC,MAAM,CAAC,UAACkX,IAAS;cAAA,OAAK,CAACA,IAAI,CAACga,eAAe;cAAC;YAAA,IAAA7f,OAAA;cAAA,IACnFu9B,oBAAoB,IAAI,CAAAA,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEr8B,MAAM,IAAG,CAAC,IAAI+2B,eAAe,CAACjZ,WAAW;gBACvF,IAAMkC,KAAK,GAAGqc,oBAAoB,CAAC/uC,GAAG,CAAC,UAACsE,CAAgB;kBACpD,IAAMvR,KAAK,GAAqB;oBAC5B4U,EAAE,EAAErD,CAAC,CAACqD,EAAE;oBACR0pB,eAAe,EAAEoY,eAAe,CAACjZ,WAAW;oBAC5CI,cAAc,EAAE6Y,eAAe,CAAC7Y;mBACnC;kBAED,OAAO79B,KAAK;iBACf,CAAC;gBAAA,OAAA4L,OAAA,CAAAC,OAAA,CACIkvB,iBAAiB,CAAC4E,KAAK,CAACvyB,MAAM,CAAC,UAAC0uC,CAAC;kBAAA,OAA4BA,CAAC,KAAK5b,SAAS;kBAAC,CAAC,EAAAjyB,IAAA;;;YAAA,OAAAwQ,OAAA,IAAAA,OAAA,CAAAxQ,IAAA,GAAAwQ,OAAA,CAAAxQ,IAAA,CAAA4Q,OAAA,IAAAA,OAAA,CAAAJ,OAAA;;UAAA,IAAAG,OAAA;YAAA,IAlCpF83B,eAAe,CAAChZ,UAAU,CAAC/d,MAAM,GAAG,CAAC,IAAI+wB,YAAY,IAAIA,YAAY,CAAC/wB,MAAM,GAAG,CAAC;cAChF,IAAMggB,KAAK,GAAG+Q,YAAY,CACrBtjC,MAAM,CAAC,UAAAkX,IAAI;gBAAA,OAAI8pB,WAAW,CAAC5sC,QAAQ,CAAC8iB,IAAI,CAAC1P,EAAE,CAAC;gBAAC,CAC7C3H,GAAG,CAAC,UAAAqX,IAAI;;gBACL,IAAM23B,oBAAoB,GAAG,EAAAC,gBAAA,GAAA53B,IAAI,CAACoZ,UAAU,cAAAwe,gBAAA,uBAAfA,gBAAA,CAAiBjvC,GAAG,CAAC,UAAAia,CAAC;kBAAA,OAAIA,CAAC,CAACwqB,eAAe;kBAAC,KAAI,EAAE;gBAE/E,IAAMyK,iBAAiB,GAAGzF,eAAe,CAAChZ,UAAU,CAACtwB,MAAM,CACvD,UAAA8Z,CAAC;kBAAA,OAAI,CAAC+0B,oBAAoB,CAACz6C,QAAQ,CAAC0lB,CAAC,CAACtS,EAAE,CAAC;kBAC5C;gBAED,OAAO;kBACHA,EAAE,EAAE0P,IAAI,CAAC1P,EAAE;kBACXymC,gBAAgB,EAAEc,iBAAiB,CAAClvC,GAAG,CAAC,UAAAia,CAAC;oBAAA,OAAIA,CAAC,CAACtS,EAAE;oBAAC;kBAClD0mC,eAAe,EAAEa,iBAAiB,CAAClvC,GAAG,CAAC,UAAAia,CAAC;oBAAA,OAAIA,CAAC,CAAC5c,KAAK;;iBACtD;eACJ,CAAC,CACD8C,MAAM,CAAC,UAAA0uC,CAAC;gBAAA,OAAIA,CAAC,CAACT,gBAAgB,CAAC17B,MAAM,GAAG,CAAC,IAAIm8B,CAAC,CAACR,eAAe,CAAC37B,MAAM,GAAG,CAAC;gBAAC;cAAA,IAAAvB,OAAA;gBAAA,IAE3EuhB,KAAK,CAAChgB,MAAM,GAAG,CAAC;kBAAA,OAAA/T,OAAA,CAAAC,OAAA,CACVkvB,iBAAiB,CAAC4E,KAAK,CAAC,EAAA1xB,IAAA;;;cAAA,IAAAmQ,OAAA,IAAAA,OAAA,CAAAnQ,IAAA,SAAAmQ,OAAA,CAAAnQ,IAAA;;;UAAA,OAAA2Q,OAAA,IAAAA,OAAA,CAAA3Q,IAAA,GAAA2Q,OAAA,CAAA3Q,IAAA,CAAAgR,OAAA,IAAAA,OAAA,CAAAL,OAAA;;QAAA,IAAAQ,OAAA;UAAA,IA1ClCs3B,eAAe,CAAC9Y,OAAO,CAACje,MAAM,GAAG,CAAC,IAAI+wB,YAAY,IAAIA,YAAY,CAAC/wB,MAAM,GAAG,CAAC;YAC7E,IAAMggB,KAAK,GAAG+Q,YAAY,CACrBtjC,MAAM,CAAC,UAAAkX,IAAI;cAAA,OAAI8pB,WAAW,CAAC5sC,QAAQ,CAAC8iB,IAAI,CAAC1P,EAAE,CAAC;cAAC,CAC7C3H,GAAG,CAAC,UAAAqX,IAAI;;cACL,IAAM83B,kBAAkB,GAAG,EAAAC,cAAA,GAAA/3B,IAAI,CAACma,QAAQ,cAAA4d,cAAA,uBAAbA,cAAA,CAAepvC,GAAG,CAAC,UAAAia,CAAC;gBAAA,OAAIA,CAAC,CAACmqB,aAAa;gBAAC,KAAI,EAAE;cAEzE,IAAM8K,iBAAiB,GAAGzF,eAAe,CAAC9Y,OAAO,CAACxwB,MAAM,CACpD,UAAA8Z,CAAC;gBAAA,OAAI,CAACk1B,kBAAkB,CAAC56C,QAAQ,CAAC0lB,CAAC,CAACtS,EAAE,CAAC;gBAC1C;cAED,OAAO;gBACHA,EAAE,EAAE0P,IAAI,CAAC1P,EAAE;gBACXwmC,iBAAiB,EAAEe,iBAAiB,CAAClvC,GAAG,CAAC,UAAAia,CAAC;kBAAA,OAAIA,CAAC,CAACtS,EAAE;kBAAC;gBACnD08B,gBAAgB,EAAE6K,iBAAiB,CAAClvC,GAAG,CAAC,UAAAia,CAAC;kBAAA,OAAIA,CAAC,CAAC5c,KAAK;;eACvD;aACJ,CAAC,CACD8C,MAAM,CAAC,UAAA0uC,CAAC;cAAA,OAAIA,CAAC,CAACV,iBAAiB,CAACz7B,MAAM,GAAG,CAAC,IAAIm8B,CAAC,CAACxK,gBAAgB,CAAC3xB,MAAM,GAAG,CAAC;cAAC;YAAA,IAAAtB,MAAA;cAAA,IAE7EshB,KAAK,CAAChgB,MAAM,GAAG,CAAC;gBAAA,OAAA/T,OAAA,CAAAC,OAAA,CACVkvB,iBAAiB,CAAC4E,KAAK,CAAC,EAAA1xB,IAAA;;;YAAA,IAAAoQ,MAAA,IAAAA,MAAA,CAAApQ,IAAA,SAAAoQ,MAAA,CAAApQ,IAAA;;;QAAA,OAAAmR,OAAA,IAAAA,OAAA,CAAAnR,IAAA,GAAAmR,OAAA,CAAAnR,IAAA,CAAAyR,OAAA,IAAAA,OAAA,CAAAN,OAAA;OA8DzC,YAAQ9Q,GAAG,EAAE;QAAA,IAAAmP,cAAA,EAAAC,mBAAA;QACVvS,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAA0G,cAAA,GAAAnP,GAAG,CAAC0E,QAAQ,cAAAyK,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7J,IAAI,cAAA8J,mBAAA,uBAAlBA,mBAAA,CAAoB/U,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAA0T,OAAA,IAAAA,OAAA,CAAAtR,IAAA,GAAAsR,OAAA,CAAAtR,IAAA,CAAAquC,OAAA,IAAAA,OAAA,CAAA/8B,OAAA;KAGJ,QAAAja,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMi3C,2BAA2B,YAA3BA,2BAA2BA,CAAUlL,aAAsB;IAAA;;QAqC7D4J,cAAc,CAAC,CAACj7C,KAAK,CAAC,CAAC;;MApCvB,IAAI02C,eAAe,CAAC9Y,OAAO,CAACje,MAAM,KAAK,CAAC,EAAE;QACtCxU,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE;SACZ,CAAC,CACL;QACD,OAAAnL,OAAA,CAAAC,OAAA;;MAGJ,IAAG+sC,oBAAoB,CAACj5B,MAAM,GAAG,CAAC,IAAI,CAAC0xB,aAAa,EAAE;QAClD8H,6BAA6B,CAAC,IAAI,CAAC;QACnC,OAAAvtC,OAAA,CAAAC,OAAA;;MAGJ,IAAM7L,KAAK,GAAqB;QAC5B4U,EAAE,EAAE,CAAAg8B,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEh8B,EAAE,KAAI,EAAE;QAC1BwmC,iBAAiB,EAAE1E,eAAe,CAAC9Y,OAAO,CACrCxwB,MAAM,CAAC,UAAC9H,CAAM;UAAA,IAAAk3C,qBAAA;UAAA,OAAK,EAAC5L,YAAY,aAAZA,YAAY,gBAAA4L,qBAAA,GAAZ5L,YAAY,CAAEnS,QAAQ,cAAA+d,qBAAA,eAAtBA,qBAAA,CAAwBn3C,IAAI,CAAC,UAACu4B,OAAY;YAAA,OAAKA,OAAO,CAACyT,aAAa,KAAK/rC,CAAC,CAACsP,EAAE;YAAC;UAAC,CACnG3H,GAAG,CAAC,UAAC3H,CAAM;UAAA,OAAKA,CAAC,CAACsP,EAAE;UAAC,IAAI,EAAE;QAChC08B,gBAAgB,EAAEoF,eAAe,CAAC9Y,OAAO,CACpCxwB,MAAM,CAAC,UAAC9H,CAAM;UAAA,IAAAm3C,sBAAA;UAAA,OAAK,EAAC7L,YAAY,aAAZA,YAAY,gBAAA6L,sBAAA,GAAZ7L,YAAY,CAAEnS,QAAQ,cAAAge,sBAAA,eAAtBA,sBAAA,CAAwBp3C,IAAI,CAAC,UAACu4B,OAAY;YAAA,OAAKA,OAAO,CAACyT,aAAa,KAAK/rC,CAAC,CAACsP,EAAE;YAAC;UAAC,CACnG3H,GAAG,CAAC,UAAC3H,CAAM;UAAA,OAAKA,CAAC,CAACgF,KAAK;UAAC,IAAI,EAAE;QACnCg0B,eAAe,EAAE,CAAC,EAACoY,eAAe,aAAfA,eAAe,eAAfA,eAAe,CAAEjZ,WAAW,IAAGiZ,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEjZ,WAAW,GAAGyC,SAAS;QAC1FrC,cAAc,EAAE,CAAC,EAAC6Y,eAAe,aAAfA,eAAe,eAAfA,eAAe,CAAE7Y,cAAc,IAAG6Y,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAE7Y,cAAc,GAAGqC,SAAS;QAC/Fmb,gBAAgB,EAAE3E,eAAe,CAAChZ,UAAU,CAACzwB,GAAG,CAAC,UAAAia,CAAC;UAAA,OAAIA,CAAC,CAACtS,EAAE;UAAC,IAAI,EAAE;QACjE0mC,eAAe,EAAE5E,eAAe,CAAChZ,UAAU,CAACzwB,GAAG,CAAC,UAAAia,CAAC;UAAA,OAAIA,CAAC,CAAC5c,KAAK;UAAC,IAAI,EAAE;QACnEk0B,sBAAsB,EAAE,CAAC,EAACkY,eAAe,aAAfA,eAAe,eAAfA,eAAe,CAAE/Y,kBAAkB,IAAG+Y,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAE/Y,kBAAkB,GAAGuC,SAAS;QAC/GpC,qBAAqB,EAAE,CAAC,EAAC4Y,eAAe,aAAfA,eAAe,eAAfA,eAAe,CAAE5Y,qBAAqB,IAAG4Y,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAE5Y,qBAAqB,GAAGoC,SAAS;QACpH0Y,oBAAoB,EAAEA,oBAAoB;QAC1CG,mBAAmB,EAAE1H,aAAa,IAAI;OACzC;MAAA,IAAAqL,OAAA;QAAA,IAEGhG,eAAe,aAAfA,eAAe,eAAfA,eAAe,CAAEtb,UAAU,IAAIsb,eAAe,CAACtb,UAAU,MAAKwV,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAExV,UAAU;UAAA,OAAAxvB,OAAA,CAAAC,OAAA,CAChFovB,iBAAiB,CAAC,CAAA2V,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEh8B,EAAE,KAAI,EAAE,EAAE8hC,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEtb,UAAU,CAAC,EAAAntB,IAAA;;;MAAA,OAAArC,OAAA,CAAAC,OAAA,CAAA6wC,OAAA,IAAAA,OAAA,CAAAzuC,IAAA,GAAAyuC,OAAA,CAAAzuC,IAAA,CAAA0uC,OAAA,IAAAA,OAAA,CAAAD,OAAA;KAGnF,QAAAp3C,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMs3C,sBAAsB,YAAtBA,sBAAsBA,CAAUC,cAAwB,EAAEtG,QAAoB;IAAA;;QAqBhFM,oBAAoB,CAAC,CAACD,iBAAiB,CAAC;QACxCzrC,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MArB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAg0C,OAAA,GAAAhmC,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkBmuB,eAAe,CAAC6iB,cAAc,CAAC,EAAA5uC,IAAA,WAA3ChC,GAAG;UAAA,IACLA,GAAG,CAACgH,MAAM,IAAI,GAAG;YACjB9H,QAAQ,CACJhC,QAAQ,CAAC;cACLZ,IAAI,EAAE,SAAS;cACfwO,OAAO,gBAAc8lC,cAAc,CAACl9B,MAAM;aAC7C,CAAC,CACL;YACD42B,QAAQ,EAAE;;;OAEjB,YAAQhoC,KAAK,EAAE;QAAA,IAAAoqB,eAAA,EAAAC,oBAAA;QACZztB,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAA4hB,eAAA,GAAApqB,KAAK,CAACyE,QAAQ,cAAA2lB,eAAA,wBAAAC,oBAAA,GAAdD,eAAA,CAAgB/kB,IAAI,cAAAglB,oBAAA,uBAApBA,oBAAA,CAAsBjwB,KAAK,KAAI4F,KAAK,CAACwI;SACjD,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAixC,OAAA,IAAAA,OAAA,CAAA7uC,IAAA,GAAA6uC,OAAA,CAAA7uC,IAAA,CAAA8uC,OAAA,IAAAA,OAAA,CAAAD,OAAA;KAGJ,QAAAx3C,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAM03C,qBAAqB,GAAGvxC,iBAAW,WAAOwxC,cAAwB;IAAA;;QAsDpEtD,uBAAuB,EAAE;QACzBxuC,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAtD3B,IAAG0wC,gBAAgB,CAAC1a,qBAAqB,CAACnf,MAAM,IAAI,CAAC65B,gBAAgB,CAACta,yBAAyB,EAAE;QAC7F/zB,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE;SACZ,CAAC,CACL;QACD,OAAAnL,OAAA,CAAAC,OAAA;;MAGJ,IAAG2tC,gBAAgB,CAACxa,oBAAoB,CAACrf,MAAM,IAAI,CAAC65B,gBAAgB,CAACva,uBAAuB,EAAE;QAC1F9zB,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE;SACZ,CAAC,CACL;QACD,OAAAnL,OAAA,CAAAC,OAAA;;MAGJ,IAAG2tC,gBAAgB,CAACza,sBAAsB,CAACpf,MAAM,IAAI,CAAC65B,gBAAgB,CAACra,yBAAyB,EAAE;QAC9Fh0B,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE;SACZ,CAAC,CACL;QACD,OAAAnL,OAAA,CAAAC,OAAA;;MAGJ,IAAG2tC,gBAAgB,CAACpa,2BAA2B,CAACzf,MAAM,IAAI,CAAC65B,gBAAgB,CAACna,8BAA8B,EAAE;QACxGl0B,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE;SACZ,CAAC,CACL;QACD,OAAAnL,OAAA,CAAAC,OAAA;;MAGJV,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAo0C,OAAA,GAAApmC,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACM+vB,eAAe,CAAAvkB,QAAA,KAAKmiC,gBAAgB;UAAEyD,cAAc,EAAEA,cAAc,IAAI;UAAG,CAAC,EAAAhvC,IAAA;UAClFsoC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,EAAI;UAAA,OAAA3qC,OAAA,CAAAC,OAAA,CACNumC,eAAe,EAAE,EAAAnkC,IAAA;;OAC1B,YAAQM,KAAK,EAAE;QAAA,IAAA4uC,gBAAA,EAAAC,qBAAA;QACZjyC,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAomC,gBAAA,GAAA5uC,KAAK,CAACyE,QAAQ,cAAAmqC,gBAAA,wBAAAC,qBAAA,GAAdD,gBAAA,CAAgBvpC,IAAI,cAAAwpC,qBAAA,uBAApBA,qBAAA,CAAsBz0C,KAAK,KAAI4F,KAAK,CAACwI;SACjD,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAqxC,OAAA,IAAAA,OAAA,CAAAjvC,IAAA,GAAAivC,OAAA,CAAAjvC,IAAA,CAAAovC,OAAA,IAAAA,OAAA,CAAAH,OAAA;KAGJ,QAAA53C,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,CAACk0C,gBAAgB,CAAC,CAAC;EAEtB7iC,eAAS,CAAC;IACN,IAAIi6B,YAAY,aAAZA,YAAY,eAAZA,YAAY,CAAEh8B,EAAE,EAAE;MAAA,IAAA0oC,sBAAA,EAAAC,qBAAA;MAClB5G,kBAAkB,CAAC;QACf/Y,OAAO,EAAEgT,YAAY,aAAZA,YAAY,wBAAA0M,sBAAA,GAAZ1M,YAAY,CAAEnS,QAAQ,cAAA6e,sBAAA,uBAAtBA,sBAAA,CAAwBrwC,GAAG,CAAC,UAAA3H,CAAC;UAAA,OAAK;YACvCsP,EAAE,EAAEtP,CAAC,CAAC+rC,aAAa;YACnB/mC,KAAK,EAAEhF,CAAC,CAACgsC;WACZ;SAAC,CAAC;QACH7T,WAAW,EAAEmT,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEtS,eAAe;QAC1CT,cAAc,EAAE+S,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAE/S,cAAc;QAC5CH,UAAU,EAAEkT,YAAY,aAAZA,YAAY,wBAAA2M,qBAAA,GAAZ3M,YAAY,CAAElT,UAAU,cAAA6f,qBAAA,uBAAxBA,qBAAA,CAA0BtwC,GAAG,CAAC,UAAA3H,CAAC;UAAA,OAAK;YAC5CsP,EAAE,EAAEtP,CAAC,CAACosC,eAAe;YACrBpnC,KAAK,EAAEhF,CAAC,CAACqsC;WACZ;SAAC,CAAC;QACH7T,qBAAqB,EAAE8S,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAE9S,qBAAqB;QAC1DH,kBAAkB,EAAEiT,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEpS,sBAAsB;QACxDpD,UAAU,EAAEwV,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAExV;OAC7B,CAAC;;IAGN,OAAO;MACHub,kBAAkB,CAACnZ,gBAAgB,CAAC;KACvC;GACJ,EAAE,CAACoT,YAAY,CAAC,CAAC;EAGlB,OAAO;IACH2K,yBAAyB,EAAzBA,yBAAyB;IACzBL,wBAAwB,EAAxBA,wBAAwB;IACxB1E,aAAa,EAAbA,aAAa;IACbuD,iBAAiB,EAAjBA,iBAAiB;IACjBe,qBAAqB,EAArBA,qBAAqB;IACrBpE,eAAe,EAAfA,eAAe;IACf+E,uBAAuB,EAAvBA,uBAAuB;IACvBZ,yBAAyB,EAAzBA,yBAAyB;IACzBjE,iBAAiB,EAAjBA,iBAAiB;IACjBgG,sBAAsB,EAAtBA,sBAAsB;IACtB7B,uBAAuB,EAAvBA,uBAAuB;IACvBwB,2BAA2B,EAA3BA,2BAA2B;IAC3BvC,uBAAuB,EAAvBA,uBAAuB;IACvBlD,eAAe,EAAfA,eAAe;IACfI,aAAa,EAAbA,aAAa;IACbF,SAAS,EAATA,SAAS;IACTa,SAAS,EAATA,SAAS;IACTT,iBAAiB,EAAjBA,iBAAiB;IACjB8C,kBAAkB,EAAlBA,kBAAkB;IAClBI,kBAAkB,EAAlBA,kBAAkB;IAClBrC,sBAAsB,EAAtBA,sBAAsB;IACtBG,+BAA+B,EAA/BA,+BAA+B;IAC/BD,4BAA4B,EAA5BA,4BAA4B;IAC5BG,eAAe,EAAfA,eAAe;IAAEC,kBAAkB,EAAlBA,kBAAkB;IACnCuB,cAAc,EAAdA,cAAc;IAAErB,WAAW,EAAXA,WAAW;IAC3BuC,yBAAyB,EAAzBA,yBAAyB;IACzBtY,OAAO,EAAPA,OAAO;IACPkW,oBAAoB,EAApBA,oBAAoB;IACpBiB,qBAAqB,EAArBA,qBAAqB;IACrBX,0BAA0B,EAA1BA,0BAA0B;IAC1BU,8BAA8B,EAA9BA,8BAA8B;IAC9Bb,mBAAmB,EAAnBA,mBAAmB;IACnBC,sBAAsB,EAAtBA,sBAAsB;IACtBW,uBAAuB,EAAvBA,uBAAuB;IACvBN,mBAAmB,EAAnBA,mBAAmB;IACnBK,uBAAuB,EAAvBA,uBAAuB;IACvBF,gBAAgB,EAAhBA,gBAAgB;IAChBwD,qBAAqB,EAArBA;GACH;AACL,CAAC;;ACxwBD,IAAMQ,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIp8B,KAAU;EAClC,IACIy2B,SAAS,GAUTz2B,KAAK,CAVLy2B,SAAS;IACTzzB,MAAM,GASNhD,KAAK,CATLgD,MAAM;IACNqa,QAAQ,GAQRrd,KAAK,CARLqd,QAAQ;IACR3W,OAAO,GAOP1G,KAAK,CAPL0G,OAAO;IACP4a,OAAO,GAMPthB,KAAK,CANLshB,OAAO;IACP+a,MAAM,GAKNr8B,KAAK,CALLq8B,MAAM;IACNzG,SAAS,GAIT51B,KAAK,CAJL41B,SAAS;IACTiB,sBAAsB,GAGtB72B,KAAK,CAHL62B,sBAAsB;IACtBG,+BAA+B,GAE/Bh3B,KAAK,CAFLg3B,+BAA+B;IAC/BD,4BAA4B,GAC5B/2B,KAAK,CADL+2B,4BAA4B;EAEhC,IAAAnxB,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EAET,OACIrgB,6BAACkwB,gBAAK;IACF2mB,QAAQ;IACRt5B,MAAM,EAAEA,MAAM;IACdtO,MAAM,EAAE4sB;KAER77B,6BAACmwB,sBAAW;IAAClwB,SAAS,EAAEmI,MAAM,CAAC,2BAA2B;KACrDiY,CAAC,CAAC2wB,SAAS,CAACttB,MAAM,CAAC,CACV,EACd1jB,6BAACowB,oBAAS,QACL+f,SAAS,KAAKjb,WAAW,CAACa,SAAS,IAAIoa,SAAS,KAAKjb,WAAW,CAACe,gBAAgB,IAC9Ej2B,6BAAC8G,cAAQ,QACL9G,0CAAMqgB,CAAC,CAAC2wB,SAAS,CAACJ,WAAW,CAAC,CAAO,EACrC5wC;IAAIL,KAAK,EAAE;MAAEm3C,SAAS,EAAE,GAAG;MAAE7O,QAAQ,EAAE;;KAClCrQ,QAAQ,CAACxxB,GAAG,CAAC,UAAC3H,CAAM;IAAA,OACjBuB;MAAIuK,GAAG,EAAE9L,CAAC,CAACvF;OAAQuF,CAAC,CAAC9E,IAAI,OAAG8E,CAAC,CAACvF,KAAK,CAAM;GAC5C,CAAC,CACD,CAEZ,EAEG,CAACi3C,SAAS,KAAKjb,WAAW,CAACY,OAAO,IAAIqa,SAAS,KAAKjb,WAAW,CAACc,SAAS,KACrEh2B,6BAAC8G,cAAQ,QACL9G,0CAAMqgB,CAAC,CAAC2wB,SAAS,CAACH,iBAAiB,CAAC,CAAO,EAC3C7wC,6BAACuwB,cAAc;IACXtP,OAAO,EAAE2W,QAAQ;IACjBz+B,KAAK,EAAEy+B,QAAQ,CAACrxB,MAAM,CAAC,UAAC9H,CAAM;MAAA,OAAKA,CAAC,CAACtF,KAAK,KAAKm4C,4BAA4B;MAAC;IAC5E9vC,WAAW,EAAE6e,CAAC,CAAC2wB,SAAS,CAACH,iBAAiB,CAAC;IAC3C5wC,SAAS,wBAAsBmI,MAAM,CAAC,4BAA4B,CAAG;IACrE7G,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;MACb8yC,+BAA+B,CAAC9yC,CAAC,CAACtF,KAAK,CAAC;KAC3C;IACD49C,WAAW,EAAE,IAAI;IACjBp3C,KAAK,EAAE;MAAEq3C,QAAQ,EAAE;;IACrB,CAET,EAELh3C,0CAAMqgB,CAAC,CAAC2wB,SAAS,CAACF,WAAW,CAAC,CAAO,EACrC9wC,6BAACgpC,eAAe;IACZ/nB,OAAO,EAAEA,OAAO;IAChB1f,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;MACb,IAAI0xC,SAAS,KAAKjb,WAAW,CAACe,gBAAgB,EAAE;QAC5Cmb,sBAAsB,CAAC3yC,CAAC,CAACtF,KAAK,CAAC;OAClC,MAAM;QACHi4C,sBAAsB,CAAC3yC,CAAC,CAACsP,EAAE,CAAC;;KAEnC;IACDvM,WAAW,EAAE6e,CAAC,CAAC2wB,SAAS,CAACD,iBAAiB,CAAC;IAC3C9wC,SAAS,EAAC;IACZ,CACM,EACZD,6BAACqwB,sBAAW;IAACpwB,SAAS,EAAC;KACnBD,6BAAC2f,iBAAM;IAAC9d,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQg6B,OAAO,CAAC,KAAK,CAAC;;KAAGxb,CAAC,CAAC,QAAQ,CAAC,CAAU,EAC7DrgB,6BAAC2f,iBAAM;IAAC/e,KAAK,EAAC,SAAS;IAACiB,OAAO,EAAE,SAATA,OAAOA;MAC3B+0C,MAAM,EAAE;;KACRv2B,CAAC,CAAC,MAAM,CAAC,CAAU,CACb,CACV;AAEhB,CAAC;AAED,2BAAeiQ,gBAAU,CAACqmB,kBAAkB,CAAC;;AC1D7C,IAAMM,kBAAkB,GAAe,SAAjCA,kBAAkBA,CAAAn3C,IAAA;MACpB2xC,eAAe,GAAA3xC,IAAA,CAAf2xC,eAAe;IAAE5V,OAAO,GAAA/7B,IAAA,CAAP+7B,OAAO;IACxBkO,YAAY,GAAAjqC,IAAA,CAAZiqC,YAAY;IACZ8F,eAAe,GAAA/vC,IAAA,CAAf+vC,eAAe;IACfhR,cAAc,GAAA/+B,IAAA,CAAd++B,cAAc;IACdqV,uBAAuB,GAAAp0C,IAAA,CAAvBo0C,uBAAuB;IACvBC,yBAAyB,GAAAr0C,IAAA,CAAzBq0C,yBAAyB;IACzBrV,gBAAgB,GAAAh/B,IAAA,CAAhBg/B,gBAAgB;IAChBC,gBAAgB,GAAAj/B,IAAA,CAAhBi/B,gBAAgB;IAChBC,uBAAuB,GAAAl/B,IAAA,CAAvBk/B,uBAAuB;IACvBiV,qBAAqB,GAAAn0C,IAAA,CAArBm0C,qBAAqB;IACrByB,2BAA2B,GAAA51C,IAAA,CAA3B41C,2BAA2B;IAC3BzC,cAAc,GAAAnzC,IAAA,CAAdmzC,cAAc;IACdrB,WAAW,GAAA9xC,IAAA,CAAX8xC,WAAW;EAEX,IAAAzxB,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACT,IAAM62B,YAAY,GAAG,CACjB,CAAAnN,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEnS,QAAQ,KAAI,EAAE,EAC5B,CAAAmS,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAElT,UAAU,KAAI,EAAE,CACjC;EAED,OACI72B,6BAACkwB,gBAAK;IACF2mB,QAAQ;IACRt5B,MAAM,EAAEk0B,eAAe;IACvBxiC,MAAM,EAAE,SAARA,MAAMA;MAAA,OAAQ4sB,OAAO,EAAE;;KAEvB77B,6BAACmwB,sBAAW;IAAClwB,SAAS,EAAEmI,MAAM,CAAC,2BAA2B;KACtDpI,6DAAqB+pC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEvsC,QAAQ,CAAO,EAClDwC,oDAAY+pC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAExV,UAAU,CAAO,CACjC,EACdv0B,6BAACowB,oBAAS,QACL8mB,YAAY,CAAC9wC,GAAG,CAAC,UAACw5B,GAAU,EAAEpjB,KAAa;IAAA,OACxCxc;MAAKuK,GAAG,EAAEiS;OACNxc;MACI0B,IAAI,EAAC,QAAQ;MACbzB,SAAS,WAASmI,MAAM,CAAC,cAAc,CAAC,UAAIwpC,WAAW,KAAKp1B,KAAK,GAAG,WAAW,GAAG,EAAE,CAAE;MACtF3a,OAAO,EAAE,SAATA,OAAOA;QAAA,OAAQoxC,cAAc,CAACz2B,KAAK,CAAC;;OAEnC6D,CAAC,CAAC7D,KAAK,KAAK,CAAC,GAAG,sBAAsB,GAAG,wBAAwB,CAAC,aAC9DojB,GAAG,CAAC9mB,MAAM,aACf9Y;MAAGC,SAAS,oBAAiB2xC,WAAW,KAAKp1B,KAAK,GAAG,IAAI,GAAG,MAAM;MAAM,CACnE,EACTxc,6BAAC+d,mBAAQ;MAACR,MAAM,EAAEq0B,WAAW,KAAKp1B;OAC9Bxc,6BAACm3C,eAAI,QACDn3C,6BAACo3C,mBAAQ,QACJxX,GAAG,CAAC9mB,MAAM,GAAG,CAAC,GACT8mB,GAAG,CAACx5B,GAAG,CAAC,UAACma,IAAS;MAAA,OAChB/D,KAAK,KAAK,CAAC,GAEHxc;QAAIuK,GAAG,EAAEgW,IAAI,CAACkqB;SAAmBlqB,IAAI,CAAC2uB,eAAe,SAAK3uB,IAAI,CAACkqB,gBAAgB,CAAM,GAGrFzqC;QAAIuK,GAAG,EAAEgW,IAAI,CAACsqB;SAAkBtqB,IAAI,CAAC4uB,aAAa,SAAK5uB,IAAI,CAACuqB,cAAc,CAC7E;KAAC,CAAC,GACT9qC,0CAAMqgB,CAAC,CAAC,SAAS,CAAC,CAAO,CAExB,CACR,CACA,CACT;GACT,CAAC,EAEFrgB,0CAAMqgB,CAAC,CAAC,eAAe,CAAC,CAAO,EAC/BrgB,6BAACuwB,cAAc;IACX8mB,OAAO;IACPl+C,KAAK,EAAE02C,eAAe,CAAC9Y,OAAO,CACzBxwB,MAAM,CAAC,UAAC9H,CAAM;MAAA,IAAAk3C,qBAAA;MAAA,OAAK,GAAAA,qBAAA,GAAC5L,YAAY,CAACnS,QAAQ,cAAA+d,qBAAA,eAArBA,qBAAA,CAAuBn3C,IAAI,CAAC,UAACu4B,OAAY;QAAA,OAAKA,OAAO,CAACyT,aAAa,KAAK/rC,CAAC,CAACsP,EAAE;QAAC;MAAC,CAClG3H,GAAG,CAAC,UAAC3H,CAAM;MAAA,OAAM;QAAEvF,KAAK,EAAEuF,CAAC,CAACgF,KAAK;QAAEtK,KAAK,EAAEsF,CAAC,CAACsP;OAAI;KAAC,CAAC;IAEvDkT,OAAO,EAAE4d,cAAc,CAACt4B,MAAM,CAAC,UAAC9H,CAAM;MAAA,IAAAm3C,sBAAA;MAAA,OAAK,GAAAA,sBAAA,GAAC7L,YAAY,CAACnS,QAAQ,cAAAge,sBAAA,eAArBA,sBAAA,CAAuBp3C,IAAI,CAAC,UAACu4B,OAAY;QAAA,OAAKA,OAAO,CAACyT,aAAa,KAAK/rC,CAAC,CAACtF,KAAK;QAAC;MAAC;IAC7HqI,WAAW,EAAE6e,CAAC,CAAC,gBAAgB,CAAC;IAChCpgB,SAAS,wBAAsBmI,MAAM,CAAC,4BAA4B,CAAG;IACrE7G,QAAQ,EAAE,SAAVA,QAAQA,CAAGpI,KAAY;MACnB,IAAM4T,IAAI,GAAG5T,KAAK,CAACiN,GAAG,CAAC,UAAC3H,CAAM;QAAA,OAAM;UAChCsP,EAAE,EAAEtP,CAAC,CAACtF,KAAK;UACXsK,KAAK,EAAEhF,CAAC,CAACvF;SACZ;OAAC,CAAC;MACHg7C,uBAAuB,CAACnnC,IAAI,CAAC;KAChC;IACDgqC,WAAW,EAAE,IAAI;IACjBp3C,KAAK,EAAE;MAAEq3C,QAAQ,EAAE;;IACrB,EAEFh3C,0CAAMqgB,CAAC,CAAC,iBAAiB,CAAC,CAAO,EACjCrgB,6BAACgpC,eAAe;IACZ7vC,KAAK,EAAE2lC,gBAAgB,CAAC/Y,IAAI,CAAC,UAAAoT,CAAC;MAAA,OAAIA,CAAC,CAAChgC,KAAK,IAAI02C,eAAe,CAACjZ,WAAW,IAAIuC,CAAC,CAACjgC,KAAK,IAAI22C,eAAe,CAAC7Y,cAAc;MAAC,IAAI,IAAI;IAC9H/V,OAAO,EAAE6d,gBAAgB;IACzBv9B,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAW;MAClBw1C,qBAAqB,CAAC,WAAW,EAAEx1C,CAAC,CAAC;KACxC;IACD+C,WAAW,EAAE6e,CAAC,CAAC,kBAAkB,CAAC;IAClCpgB,SAAS,EAAC;IACZ,EACFD,0CAAMqgB,CAAC,CAAC,iBAAiB,CAAC,CAAO,EACjCrgB,6BAACuwB,cAAc;IACX8mB,OAAO;IACPl+C,KAAK,EAAE02C,eAAe,CAAChZ,UAAU,CAC5BtwB,MAAM,CAAC,UAAC9H,CAAM;MAAA,IAAAi4C,qBAAA;MAAA,OAAK,GAAAA,qBAAA,GAAC3M,YAAY,CAAClT,UAAU,cAAA6f,qBAAA,eAAvBA,qBAAA,CAAyBl4C,IAAI,CAAC,UAACosC,SAAc;QAAA,OAAKA,SAAS,CAACC,eAAe,KAAKpsC,CAAC,CAACsP,EAAE;QAAC;MAAC,CAC1G3H,GAAG,CAAC,UAAC3H,CAAM;MAAA,OAAM;QAAEvF,KAAK,EAAEuF,CAAC,CAACgF,KAAK;QAAEtK,KAAK,EAAEsF,CAAC,CAACsP;OAAI;KAAC,CAAC;IAEvDkT,OAAO,EAAE8d,gBAAgB,CAACx4B,MAAM,CAAC,UAAC9H,CAAM;MAAA,IAAA64C,sBAAA;MAAA,OAAK,GAAAA,sBAAA,GAACvN,YAAY,CAAClT,UAAU,cAAAygB,sBAAA,eAAvBA,sBAAA,CAAyB94C,IAAI,CAAC,UAACosC,SAAc;QAAA,OAAKA,SAAS,CAACC,eAAe,KAAKpsC,CAAC,CAACtF,KAAK;QAAC;MAAC;IACvIqI,WAAW,EAAE6e,CAAC,CAAC,kBAAkB,CAAC;IAClCpgB,SAAS,wBAAsBmI,MAAM,CAAC,4BAA4B,CAAG;IACrE7G,QAAQ,EAAE,SAAVA,QAAQA,CAAGpI,KAAY;MACnB,IAAM4T,IAAI,GAAG5T,KAAK,CAACiN,GAAG,CAAC,UAAC3H,CAAM;QAAA,OAAM;UAChCsP,EAAE,EAAEtP,CAAC,CAACtF,KAAK;UACXsK,KAAK,EAAEhF,CAAC,CAACvF;SACZ;OAAC,CAAC;MACHi7C,yBAAyB,CAACpnC,IAAI,CAAC;KAClC;IACDgqC,WAAW,EAAE,IAAI;IACjBp3C,KAAK,EAAE;MAAEq3C,QAAQ,EAAE;;IACrB,EACFh3C,0CAAMqgB,CAAC,CAAC,uBAAuB,CAAC,CAAO,EACvCrgB,6BAACgpC,eAAe;IACZ7vC,KAAK,EAAE6lC,uBAAuB,CAACjZ,IAAI,CAAC,UAAAoT,CAAC;MAAA,OAAIA,CAAC,CAAChgC,KAAK,IAAI02C,eAAe,CAAC/Y,kBAAkB,IAAIqC,CAAC,CAACjgC,KAAK,IAAI22C,eAAe,CAAC5Y,qBAAqB;MAAC,IAAI,IAAI;IACnJhW,OAAO,EAAE+d,uBAAuB;IAChCz9B,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAW;MAClBw1C,qBAAqB,CAAC,WAAW,EAAEx1C,CAAC,CAAC;KACxC;IACD+C,WAAW,EAAE6e,CAAC,CAAC,wBAAwB,CAAC;IACxCpgB,SAAS,EAAC;IACZ,EACFD,0CAAMqgB,CAAC,CAAC,OAAO,CAAC,CAAO,EACvBrgB,6BAACghB,MAAM;IACH7nB,KAAK,EAAE0+B,aAAa,CAAC9R,IAAI,CAAC,UAAAtnB,CAAC;MAAA,OAAIA,CAAC,CAACtF,KAAK,KAAK02C,eAAe,CAACtb,UAAU;MAAC;IACtEtT,OAAO,EAAE4W,aAAa;IACtBr2B,WAAW,EAAE6e,CAAC,CAAC,cAAc,CAAC;IAC9BpgB,SAAS,EAAC,kBAAkB;IAC5BsB,QAAQ,EAAE,SAAVA,QAAQA,CAAGpI,KAAU;MACjB86C,qBAAqB,CAAC,OAAO,EAAE96C,KAAK,CAAC;KACxC;IACDiP,MAAM,EAAE;MACJmvC,SAAS,EAAE,SAAXA,SAASA,CAAGC,QAAQ;QAAA,OAAAhnC,QAAA,KAAWgnC,QAAQ;UAAER,QAAQ,EAAE;;;;IAEzD,CACM,EACZh3C,6BAACqwB,sBAAW;IAACpwB,SAAS,EAAC;KACnBD,6BAAC2f,iBAAM;IAAC9d,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQg6B,OAAO,EAAE;;KAAGxb,CAAC,CAAC,QAAQ,CAAC,CAAU,EACxDrgB,6BAAC2f,iBAAM;IAAC/e,KAAK,EAAC,SAAS;IAACiB,OAAO,EAAE,SAATA,OAAOA;MAC3B6zC,2BAA2B,EAAE;;KAC7Br1B,CAAC,CAAC,MAAM,CAAC,CAAU,CACb,CACV;AAEhB,CAAC;;AC7JD,IAAMo3B,sBAAsB,GAAe,SAArCA,sBAAsBA,CAAA33C,IAAA;MACxBqK,IAAI,GAAArK,IAAA,CAAJqK,IAAI;IACJ0xB,OAAO,GAAA/7B,IAAA,CAAP+7B,OAAO;IACPjE,QAAQ,GAAA93B,IAAA,CAAR83B,QAAQ;IACRpU,SAAS,GAAA1jB,IAAA,CAAT0jB,SAAS;IACT0uB,mBAAmB,GAAApyC,IAAA,CAAnBoyC,mBAAmB;IACnBC,sBAAsB,GAAAryC,IAAA,CAAtBqyC,sBAAsB;EAEtB,IAAAhyB,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EAET,OACIrgB,6BAACkwB,gBAAK;IAAC2mB,QAAQ;IAACt5B,MAAM,EAAEpT,IAAI;IAAE8E,MAAM,EAAE,SAARA,MAAMA;MAAA,OAAQ4sB,OAAO,EAAE;;KACjD77B,6BAACmwB,sBAAW;IAAClwB,SAAS,EAAEmI,MAAM,CAAC,2BAA2B;KACtDpI,uEAAqC,CAC3B,EACdA,6BAACowB,oBAAS;IAACnwB,SAAS,EAAC;KACjBD;IAAKC,SAAS,EAAEmI,MAAM,CAAC,sBAAsB;KACxCwvB,QAAQ,CAACxxB,GAAG,CAAC,UAAA+yB,CAAC;IAAA,OACXn5B;MACI6B,OAAO,EAAE,SAATA,OAAOA;QAAA,OAAQswC,sBAAsB,CAAChZ,CAAC,CAACqR,aAAa,CAAC;;MACtDvqC,SAAS,EAAKmI,MAAM,CAAC,0BAA0B,CAAC,UAC5C+wB,CAAC,CAACqR,aAAa,IAAI0H,mBAAmB,GAChC9pC,MAAM,CAAC,cAAc,CAAC,GACtB,EACV;OAEC+wB,CAAC,CAAC+V,eAAe,CAClB;GACP,CAAC,CACA,CACE,EACZlvC,6BAACqwB,sBAAW;IAACpwB,SAAS,EAAC;KACnBD,6BAAC2f,iBAAM;IAAC9d,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQg6B,OAAO,EAAE;;KAAGxb,CAAC,CAAC,QAAQ,CAAC,CAAU,EACxDrgB,6BAAC2f,iBAAM;IACH/N,QAAQ,EAAE,CAACsgC,mBAAmB;IAC9BtxC,KAAK,EAAC,SAAS;IACfiB,OAAO;MAAA;+BACG2hB,SAAS,CAAC0uB,mBAAmB,CAAC,EAAA9qC,IAAA;UACpCy0B,OAAO,EAAE;;OACZ,QAAAp9B,CAAA;QAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;KAEA4hB,CAAC,CAAC,MAAM,CAAC,CACL,CACC,CACV;AAEhB,CAAC;;ACvDD,IAAMq3B,aAAa,GAAG,SAAhBA,aAAaA,CAAA53C,IAAA;MACf83B,QAAQ,GAAA93B,IAAA,CAAR83B,QAAQ;IACR+f,mBAAmB,GAAA73C,IAAA,CAAnB63C,mBAAmB;IACnBhF,gBAAgB,GAAA7yC,IAAA,CAAhB6yC,gBAAgB;EAEhB,IAAAxyB,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACT,OACIrgB,0CACIA,oEAAiC,EACjCA,6BAACuwB,cAAc;IACX8mB,OAAO;IACPl+C,KAAK,EACDy+B,QAAQ,CAACrxB,MAAM,CAAC,UAAA8Z,CAAC;MAAA,OACbsyB,gBAAgB,CAACxa,oBAAoB,CAACx9B,QAAQ,CAAC0lB,CAAC,CAAClnB,KAAK,CAAC;MAC1D,IAAI,EAAE;IAEX8nB,OAAO,EACH2W,QAAQ,CAACrxB,MAAM,CACX,UAAA4yB,CAAC;MAAA,OACG,CAACwZ,gBAAgB,CAACxa,oBAAoB,CAACx9B,QAAQ,CAC3Cw+B,CAAC,CAAChgC,KAAK,CACV,IACDggC,CAAC,CAAChgC,KAAK,KAAKw5C,gBAAgB,CAACva,uBAAuB;MAC3D,IAAI,EAAE;IAEX52B,WAAW,EAAE6e,CAAC,CAAC,gBAAgB,CAAC;IAChCpgB,SAAS,wBAAsBmI,MAAM,CAAC,4BAA4B,CAAG;IACrE7G,QAAQ,EAAE,SAAVA,QAAQA,CAAGpI,KAAe;MACtBw+C,mBAAmB,CAAC;QAChBxf,oBAAoB,EAAEh/B,KAAK,CAACiN,GAAG,CAAC,UAAAwxC,CAAC;UAAA,OAAIA,CAAC,CAACz+C,KAAK;;OAC/C,CAAC;KACL;IACD49C,WAAW,EAAE;IACf,EAEF/2C;IAAIC,SAAS,EAAC;8CAAkD,EAChED,6BAACuwB,cAAc;IACXp3B,KAAK,EACDy+B,QAAQ,CAAC7R,IAAI,CACT,UAAA1F,CAAC;MAAA,OAAIsyB,gBAAgB,CAACva,uBAAuB,IAAI/X,CAAC,CAAClnB,KAAK;MAC3D,IAAI,IAAI;IAEb8nB,OAAO,EACH2W,QAAQ,CAACrxB,MAAM,CACX,UAAA4yB,CAAC;MAAA,OACG,CAACwZ,gBAAgB,CAACxa,oBAAoB,CAACx9B,QAAQ,CAC3Cw+B,CAAC,CAAChgC,KAAK,CACV,IACDggC,CAAC,CAAChgC,KAAK,KAAKw5C,gBAAgB,CAACva,uBAAuB;MAC3D,IAAI,EAAE;IAEX52B,WAAW,EAAE6e,CAAC,CAAC,gBAAgB,CAAC;IAChCpgB,SAAS,wBAAsBmI,MAAM,CAAC,4BAA4B,CAAG;IACrE7G,QAAQ,EAAE,SAAVA,QAAQA,CAAGpI,KAAa;MACtB0L,OAAO,CAACC,GAAG,CAAC,OAAO,EAAE3L,KAAK,CAAC;MACzBw+C,mBAAmB,CAAC;QAChBvf,uBAAuB,EAAEj/B,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEA;OACnC,CAAC;KACL;IACD49C,WAAW,EAAE;IACf,CACA;AAEd,CAAC;;AC/DD,IAAMc,eAAe,GAAG,SAAlBA,eAAeA,CAAA/3C,IAAA;MACjB+2B,UAAU,GAAA/2B,IAAA,CAAV+2B,UAAU;IACV8gB,mBAAmB,GAAA73C,IAAA,CAAnB63C,mBAAmB;IACnBhF,gBAAgB,GAAA7yC,IAAA,CAAhB6yC,gBAAgB;EAElB,IAAAxyB,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACP,OACIrgB,0CACIA,sEAAmC,EACnCA,6BAACuwB,cAAc;IACX8mB,OAAO;IACPl+C,KAAK,EACD09B,UAAU,CAACtwB,MAAM,CAAC,UAAA8Z,CAAC;MAAA,OACfsyB,gBAAgB,CAACza,sBAAsB,CAACv9B,QAAQ,CAAC0lB,CAAC,CAAClnB,KAAK,CAAC;MAC5D,IAAI,EAAE;IAEX8nB,OAAO,EACH4V,UAAU,CAACtwB,MAAM,CACb,UAAA4yB,CAAC;MAAA,OACG,CAACwZ,gBAAgB,CAACza,sBAAsB,CAACv9B,QAAQ,CAC7Cw+B,CAAC,CAAChgC,KAAK,CACV,IACDggC,CAAC,CAAChgC,KAAK,KAAKw5C,gBAAgB,CAACra,yBAAyB;MAC7D,IAAI,EAAE;IAEX92B,WAAW,EAAE6e,CAAC,CAAC,kBAAkB,CAAC;IAClCpgB,SAAS,wBAAsBmI,MAAM,CAAC,4BAA4B,CAAG;IACrE7G,QAAQ,EAAE,SAAVA,QAAQA,CAAGpI,KAAe;MACtBw+C,mBAAmB,CAAC;QAChBzf,sBAAsB,EAAE/+B,KAAK,CAACiN,GAAG,CAAC,UAAAwxC,CAAC;UAAA,OAAIA,CAAC,CAACz+C,KAAK;;OACjD,CAAC;KACL;IACD49C,WAAW,EAAE;IACf,EAEF/2C;IAAIC,SAAS,EAAC;gDAAoD,EAClED,6BAACuwB,cAAc;IACXp3B,KAAK,EACD09B,UAAU,CAAC9Q,IAAI,CACX,UAAA1F,CAAC;MAAA,OAAIsyB,gBAAgB,CAACra,yBAAyB,IAAIjY,CAAC,CAAClnB,KAAK;MAC7D,IAAI,IAAI;IAEb8nB,OAAO,EACH4V,UAAU,CAACtwB,MAAM,CACb,UAAA4yB,CAAC;MAAA,OACG,CAACwZ,gBAAgB,CAACza,sBAAsB,CAACv9B,QAAQ,CAC7Cw+B,CAAC,CAAChgC,KAAK,CACV,IACDggC,CAAC,CAAChgC,KAAK,KAAKw5C,gBAAgB,CAACra,yBAAyB;MAC7D,IAAI,EAAE;IAEX92B,WAAW,EAAE6e,CAAC,CAAC,kBAAkB,CAAC;IAClCpgB,SAAS,wBAAsBmI,MAAM,CAAC,8BAA8B,CAAG;IACvE7G,QAAQ,EAAE,SAAVA,QAAQA,CAAGpI,KAAa;MACpBw+C,mBAAmB,CAAC;QAChBrf,yBAAyB,EAAEn/B,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEA;OACrC,CAAC;KACL;IACD49C,WAAW,EAAE;IACf,CACA;AAEd,CAAC;;AC9CD,IAAMe,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAh4C,IAAA;MAAM0oC,IAAI,GAAA1oC,IAAA,CAAJ0oC,IAAI;EAC7B,IAAAroB,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACT,IAAAxR,SAAA,GAAwCC,cAAQ,CAAS,CAAC,CAAC;IAApDipC,YAAY,GAAAlpC,SAAA;IAAEmpC,eAAe,GAAAnpC,SAAA;EAEpC,IAAMI,MAAM,GAAG,SAATA,MAAMA,CAAI1E,GAAW;IACvBytC,eAAe,CAACztC,GAAG,CAAC;GACvB;EAED,IAAMm+B,aAAa,GAAG,SAAhBA,aAAaA;IACf,OACI1oC,6BAACoJ,cAAG,QACApJ,6BAACqJ,cAAG;MAACu/B,EAAE,EAAE;OACL5oC,6BAACie,cAAG;MAACuqB,IAAI;OACJA,IAAI,CAACpiC,GAAG,CAAC,UAAC6xC,GAAS,EAAEz7B,KAAa;MAC/B,IAAM6a,QAAQ,GAAG7a,KAAK,KAAKu7B,YAAY;MACvC,OACI/3C,6BAACke,kBAAO;QAAC3T,GAAG,EAAEiS;SACVxc,6BAACme,kBAAO;QACJle,SAAS,GACLo3B,QAAQ,GAAG,QAAQ,GAAG,EAC1B,qBAAiB;QACjBx1B,OAAO,EAAE,SAATA,OAAOA;UAAA,OAAQoN,MAAM,CAACuN,KAAK,CAAC;;SAE3B6D,CAAC,CAAC43B,GAAG,CAACn2C,KAAK,CAAC,CACP,CACJ;KAEjB,CAAC,CACA,EACN9B,6BAAC6oC,qBAAU;MACPF,SAAS,EAAEoP,YAAY;MACvB93C,SAAS,EAAC;OAETuoC,IAAI,CAACpiC,GAAG,CAAC,UAAC6xC,GAAS,EAAEz7B,KAAa;MAC/B,OACIxc,6BAAC8oC,kBAAO;QAACv+B,GAAG,EAAEiS,KAAK;QAAEusB,KAAK,EAAEvsB;SACvBxc,6BAACi4C,GAAG,CAAC54B,SAAS,OAAG,CACZ;KAEjB,CAAC,CACO,CACX,CACJ;GAEb;EAED,OAAOrf;IAAKC,SAAS,EAAC;KAAmByoC,aAAa,EAAE,CAAO;AACnE,CAAC;;AC/DD,IAAMwP,eAAe,GAAG,SAAlBA,eAAeA,CAAAp4C,IAAA;MACjBkjC,UAAU,GAAAljC,IAAA,CAAVkjC,UAAU;IACV2U,mBAAmB,GAAA73C,IAAA,CAAnB63C,mBAAmB;IACnBhF,gBAAgB,GAAA7yC,IAAA,CAAhB6yC,gBAAgB;EAEhB,IAAAxyB,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACT,OACIrgB,0CACIA,sEAAmC,EACnCA,6BAACuwB,cAAc;IACX8mB,OAAO;IACPl+C,KAAK,EACD6pC,UAAU,CAACz8B,MAAM,CAAC,UAAA8Z,CAAC;MAAA,OACfsyB,gBAAgB,CAAC1a,qBAAqB,CAACt9B,QAAQ,CAAC0lB,CAAC,CAAClnB,KAAK,CAAC;MAC3D,IAAI,EAAE;IAEX8nB,OAAO,EACH+hB,UAAU,CAACz8B,MAAM,CACb,UAAA4yB,CAAC;MAAA,OACG,CAACwZ,gBAAgB,CAAC1a,qBAAqB,CAACt9B,QAAQ,CAC5Cw+B,CAAC,CAAChgC,KAAK,CACV,IACDggC,CAAC,CAAChgC,KAAK,KAAKw5C,gBAAgB,CAACta,yBAAyB;MAC7D,IAAI,EAAE;IAEX72B,WAAW,EAAE6e,CAAC,CAAC,kBAAkB,CAAC;IAClCpgB,SAAS,wBAAsBmI,MAAM,CAAC,4BAA4B,CAAG;IACrE7G,QAAQ,EAAE,SAAVA,QAAQA,CAAGpI,KAAe;MACtBw+C,mBAAmB,CAAC;QAChB1f,qBAAqB,EAAE9+B,KAAK,CAACiN,GAAG,CAAC,UAAAwxC,CAAC;UAAA,OAAIA,CAAC,CAACz+C,KAAK;;OAChD,CAAC;KACL;IACD49C,WAAW,EAAE;IACf,EAEF/2C;IAAIC,SAAS,EAAC;gDAAoD,EAClED,6BAACuwB,cAAc;IACXp3B,KAAK,EACD6pC,UAAU,CAACjd,IAAI,CACX,UAAA1F,CAAC;MAAA,OACGsyB,gBAAgB,CAACta,yBAAyB,IAC1ChY,CAAC,CAAClnB,KAAK;MACd,IAAI,IAAI;IAEb8nB,OAAO,EACH+hB,UAAU,CAACz8B,MAAM,CACb,UAAA4yB,CAAC;MAAA,OACG,CAACwZ,gBAAgB,CAAC1a,qBAAqB,CAACt9B,QAAQ,CAC5Cw+B,CAAC,CAAChgC,KAAK,CACV,IACDggC,CAAC,CAAChgC,KAAK,KACHw5C,gBAAgB,CAACta,yBAAyB;MACrD,IAAI,EAAE;IAEX72B,WAAW,EAAE6e,CAAC,CAAC,kBAAkB,CAAC;IAClCpgB,SAAS,wBAAsBmI,MAAM,CAAC,8BAA8B,CAAG;IACvE7G,QAAQ,EAAE,SAAVA,QAAQA,CAAGpI,KAAa;MACpB0L,OAAO,CAACC,GAAG,CAAC,OAAO,EAAE3L,KAAK,CAAC;MAC3Bw+C,mBAAmB,CAAC;QAChBtf,yBAAyB,EAAEl/B,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEA;OACrC,CAAC;KACL;IACD49C,WAAW,EAAE;IACf,CACA;AAEd,CAAC;;AClED,IAAMoB,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAr4C,IAAA;MACtBqrC,iBAAiB,GAAArrC,IAAA,CAAjBqrC,iBAAiB;IACjBwM,mBAAmB,GAAA73C,IAAA,CAAnB63C,mBAAmB;IACnBhF,gBAAgB,GAAA7yC,IAAA,CAAhB6yC,gBAAgB;EAEhB,IAAAxyB,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACT,OACIrgB,0CACIA,4EAAyC,EACzCA,6BAACuwB,cAAc;IACX8mB,OAAO;IACPl+C,KAAK,EACDgyC,iBAAiB,CAAC5kC,MAAM,CAAC,UAAA8Z,CAAC;MAAA,OACtBsyB,gBAAgB,CAACpa,2BAA2B,CAAC59B,QAAQ,CAAC0lB,CAAC,CAAClnB,KAAK,CAAC;MACjE,IAAI,EAAE;IAEX8nB,OAAO,EACHkqB,iBAAiB,CAAC5kC,MAAM,CACpB,UAAA4yB,CAAC;MAAA,OACG,CAACwZ,gBAAgB,CAACpa,2BAA2B,CAAC59B,QAAQ,CAClDw+B,CAAC,CAAChgC,KAAK,CACV,IACDggC,CAAC,CAAChgC,KAAK,KAAKw5C,gBAAgB,CAACna,8BAA8B;MAClE,IAAI,EAAE;IAEXh3B,WAAW,EAAE6e,CAAC,CAAC,wBAAwB,CAAC;IACxCpgB,SAAS,wBAAsBmI,MAAM,CAAC,4BAA4B,CAAG;IACrE7G,QAAQ,EAAE,SAAVA,QAAQA,CAAGpI,KAAe;MACtBw+C,mBAAmB,CAAC;QAChBpf,2BAA2B,EAAEp/B,KAAK,CAACiN,GAAG,CAAC,UAAAwxC,CAAC;UAAA,OAAIA,CAAC,CAACz+C,KAAK;;OACtD,CAAC;KACL;IACD49C,WAAW,EAAE;IACf,EAEF/2C;IAAIC,SAAS,EAAC;sDAET,EACLD,6BAACuwB,cAAc;IACXp3B,KAAK,EACDgyC,iBAAiB,CAACplB,IAAI,CAClB,UAAA1F,CAAC;MAAA,OACGsyB,gBAAgB,CAACna,8BAA8B,IAC/CnY,CAAC,CAAClnB,KAAK;MACd,IAAI,IAAI;IAEb8nB,OAAO,EACHkqB,iBAAiB,CAAC5kC,MAAM,CACpB,UAAA4yB,CAAC;MAAA,OACG,CAACwZ,gBAAgB,CAACpa,2BAA2B,CAAC59B,QAAQ,CAClDw+B,CAAC,CAAChgC,KAAK,CACV,IACDggC,CAAC,CAAChgC,KAAK,KACHw5C,gBAAgB,CAACna,8BAA8B;MAC1D,IAAI,EAAE;IAEXh3B,WAAW,EAAE6e,CAAC,CAAC,wBAAwB,CAAC;IACxCpgB,SAAS,wBAAsBmI,MAAM,CAAC,4BAA4B,CAAG;IACrE7G,QAAQ,EAAE,SAAVA,QAAQA,CAAGpI,KAAa;MACpBw+C,mBAAmB,CAAC;QAChBnf,8BAA8B,EAAEr/B,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEA;OAC1C,CAAC;KACL;IACD49C,WAAW,EAAE;IACf,CACA;AAEd,CAAC;;AC9DD,IAAMqB,eAAe,GAAG,SAAlBA,eAAeA,CAAAt4C,IAAA;MACjBqK,IAAI,GAAArK,IAAA,CAAJqK,IAAI;IACJ0xB,OAAO,GAAA/7B,IAAA,CAAP+7B,OAAO;IACPjE,QAAQ,GAAA93B,IAAA,CAAR83B,QAAQ;IACR+f,mBAAmB,GAAA73C,IAAA,CAAnB63C,mBAAmB;IACnBhF,gBAAgB,GAAA7yC,IAAA,CAAhB6yC,gBAAgB;IAChB3P,UAAU,GAAAljC,IAAA,CAAVkjC,UAAU;IACVqV,iBAAiB,GAAAv4C,IAAA,CAAjBu4C,iBAAiB;IACjBxhB,UAAU,GAAA/2B,IAAA,CAAV+2B,UAAU;IACVuf,cAAc,GAAAt2C,IAAA,CAAds2C,cAAc;IACdjL,iBAAiB,GAAArrC,IAAA,CAAjBqrC,iBAAiB;EAEjB,IAAAhrB,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EAET,IAAMmoB,IAAI,GAAG,CACT;IACI1mC,KAAK,EAAE,gBAAgB;IACvBud,SAAS,EAAE,SAAXA,SAASA;MAAA,OACLrf,6BAAC03C,aAAa;QACV9f,QAAQ,EAAEA,QAAQ;QAClB+f,mBAAmB,EAAEA,mBAAmB;QACxChF,gBAAgB,EAAEA;QACpB;;GAET,EACD;IACI7wC,KAAK,EAAE,kBAAkB;IACzBud,SAAS,EAAE,SAAXA,SAASA;MAAA,OACLrf,6BAACk4C,eAAe;QACZlV,UAAU,EAAEA,UAAU;QACtB2U,mBAAmB,EAAEA,mBAAmB;QACxChF,gBAAgB,EAAEA;QACpB;;GAET,EACD;IACI7wC,KAAK,EAAE,kBAAkB;IACzBud,SAAS,EAAE,SAAXA,SAASA;MAAA,OACLrf,6BAAC63C,eAAe;QACZhhB,UAAU,EAAEA,UAAU;QACtB8gB,mBAAmB,EAAEA,mBAAmB;QACxChF,gBAAgB,EAAEA;QACpB;;GAET,EACD;IACI7wC,KAAK,EAAE,wBAAwB;IAC/Bud,SAAS,EAAE,SAAXA,SAASA;MAAA,OACLrf,6BAACm4C,oBAAoB;QACjBhN,iBAAiB,EAAEA,iBAAiB;QACpCwM,mBAAmB,EAAEA,mBAAmB;QACxChF,gBAAgB,EAAEA;QACpB;;GAET,CACJ;EACD,OACI3yC,6BAACkwB,gBAAK;IAACnmB,IAAI,EAAC,IAAI;IAAC8sC,QAAQ;IAACt5B,MAAM,EAAEpT,IAAI;IAAE8E,MAAM,EAAE,SAARA,MAAMA;MAAA,OAAQ4sB,OAAO,EAAE;;KAC3D77B,6BAACmwB,sBAAW;IACRlwB,SAAS,EAAKmI,MAAM,CAAC,2BAA2B,CAAC;KAEjDpI,wDAAsB,CACZ,EACdA,6BAACowB,oBAAS;IAACnwB,SAAS,EAAC;KACjBD,6BAAC83C,iBAAiB;IAACtP,IAAI,EAAEA;IAAQ,CACzB,EACZxoC,6BAACqwB,sBAAW;IAACpwB,SAAS,EAAC;KACnBD,6BAAC2f,iBAAM;IAAC9d,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQg6B,OAAO,EAAE;;KAAGxb,CAAC,CAAC,QAAQ,CAAC,CAAU,EACxDrgB,6BAAC2f,iBAAM;IACH/N,QAAQ,EACJ,CAAC+gC,gBAAgB,CAACxa,oBAAoB,CAACrf,MAAM,IAC7C,CAAC65B,gBAAgB,CAAC1a,qBAAqB,IACvC,CAAC0a,gBAAgB,CAACza,sBAAsB,CAACpf,MAAM;IAEnDlY,KAAK,EAAC,SAAS;IACfiB,OAAO;MAAA;+BACGw2C,iBAAiB,CAACjC,cAAc,CAAC,EAAAhvC,IAAA;OAC1C,QAAA3I,CAAA;QAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;cAGI,CACC,CACV;AAEhB,CAAC;;ACtED,IAAM65C,iBAAiB,GAAG,SAApBA,iBAAiBA;;EACnB,IAAAn4B,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EAET,IAAAk4B,eAAA,GAIInK,cAAc,EAAE;IAHhBE,gBAAgB,GAAAiK,eAAA,CAAhBjK,gBAAgB;IAChBzP,cAAc,GAAA0Z,eAAA,CAAd1Z,cAAc;IACd0P,mBAAmB,GAAAgK,eAAA,CAAnBhK,mBAAmB;EAGvB,IAAAiK,iBAAA,GAIItL,gBAAgB,EAAE;IAHlBE,kBAAkB,GAAAoL,iBAAA,CAAlBpL,kBAAkB;IAClBtO,gBAAgB,GAAA0Z,iBAAA,CAAhB1Z,gBAAgB;IAChBuO,qBAAqB,GAAAmL,iBAAA,CAArBnL,qBAAqB;EAGzB,IAAAoL,iBAAA,GAIIrM,gBAAgB,EAAE;IAHlBE,kBAAkB,GAAAmM,iBAAA,CAAlBnM,kBAAkB;IAClBvN,gBAAgB,GAAA0Z,iBAAA,CAAhB1Z,gBAAgB;IAChBwN,qBAAqB,GAAAkM,iBAAA,CAArBlM,qBAAqB;EAGzB,IAAAmM,qBAAA,GAII/K,uBAAuB,EAAE;IAHzBE,yBAAyB,GAAA6K,qBAAA,CAAzB7K,yBAAyB;IACzB7O,uBAAuB,GAAA0Z,qBAAA,CAAvB1Z,uBAAuB;IACvB8O,4BAA4B,GAAA4K,qBAAA,CAA5B5K,4BAA4B;EAGhC,IAAA6K,qBAAA,GAkBIpP,oBAAoB,EAAE;IAjBtBI,OAAO,GAAAgP,qBAAA,CAAPhP,OAAO;IACPlI,UAAU,GAAAkX,qBAAA,CAAVlX,UAAU;IACV5I,QAAQ,GAAA8f,qBAAA,CAAR9f,QAAQ;IACRpY,OAAO,GAAAk4B,qBAAA,CAAPl4B,OAAO;IACP+oB,SAAS,GAAAmP,qBAAA,CAATnP,SAAS;IACTuC,gBAAgB,GAAA4M,qBAAA,CAAhB5M,gBAAgB;IAChBD,eAAe,GAAA6M,qBAAA,CAAf7M,eAAe;IACfrpB,aAAa,GAAAk2B,qBAAA,CAAbl2B,aAAa;IACbjlB,QAAQ,GAAAm7C,qBAAA,CAARn7C,QAAQ;IACR2uC,mBAAmB,GAAAwM,qBAAA,CAAnBxM,mBAAmB;IACnBpC,YAAY,GAAA4O,qBAAA,CAAZ5O,YAAY;IAAEC,eAAe,GAAA2O,qBAAA,CAAf3O,eAAe;IAC7BuB,eAAe,GAAAoN,qBAAA,CAAfpN,eAAe;IACf1B,YAAY,GAAA8O,qBAAA,CAAZ9O,YAAY;IACZI,sBAAsB,GAAA0O,qBAAA,CAAtB1O,sBAAsB;IACtBS,wBAAwB,GAAAiO,qBAAA,CAAxBjO,wBAAwB;IACxBK,wBAAwB,GAAA4N,qBAAA,CAAxB5N,wBAAwB;IACxBG,+BAA+B,GAAAyN,qBAAA,CAA/BzN,+BAA+B;EAGnC,IAAM0N,eAAe,GAAG,SAAlBA,eAAeA;IACjBzM,mBAAmB,EAAE;IACrBoC,mBAAmB,CAAClV,SAAS,CAAC;IAC9BgU,qBAAqB,CAAChU,SAAS,CAAC;IAChCkT,qBAAqB,CAAClT,SAAS,CAAC;IAChCyU,4BAA4B,CAACzU,SAAS,CAAC;GAC1C;EAED,IAAAwf,iBAAA,GAoCIxJ,gBAAgB,CAChBf,gBAAgB,EAChBlB,kBAAkB,EAClBd,kBAAkB,EAClBuB,yBAAyB,EACzB+K,eAAe,EACf7O,YAAY,EACZwB,eAAe,EACf1B,YAAY,CACf;IA5CG8F,aAAa,GAAAkJ,iBAAA,CAAblJ,aAAa;IACbuD,iBAAiB,GAAA2F,iBAAA,CAAjB3F,iBAAiB;IACjBrD,eAAe,GAAAgJ,iBAAA,CAAfhJ,eAAe;IACfoE,qBAAqB,GAAA4E,iBAAA,CAArB5E,qBAAqB;IACrBW,uBAAuB,GAAAiE,iBAAA,CAAvBjE,uBAAuB;IACvBZ,yBAAyB,GAAA6E,iBAAA,CAAzB7E,yBAAyB;IACzBjE,iBAAiB,GAAA8I,iBAAA,CAAjB9I,iBAAiB;IACjBgG,sBAAsB,GAAA8C,iBAAA,CAAtB9C,sBAAsB;IACtB7B,uBAAuB,GAAA2E,iBAAA,CAAvB3E,uBAAuB;IACvBC,yBAAyB,GAAA0E,iBAAA,CAAzB1E,yBAAyB;IACzBuB,2BAA2B,GAAAmD,iBAAA,CAA3BnD,2BAA2B;IAE3BvF,SAAS,GAAA0I,iBAAA,CAAT1I,SAAS;IACTF,eAAe,GAAA4I,iBAAA,CAAf5I,eAAe;IACfI,aAAa,GAAAwI,iBAAA,CAAbxI,aAAa;IACbW,SAAS,GAAA6H,iBAAA,CAAT7H,SAAS;IACTT,iBAAiB,GAAAsI,iBAAA,CAAjBtI,iBAAiB;IACjB8C,kBAAkB,GAAAwF,iBAAA,CAAlBxF,kBAAkB;IAClBI,kBAAkB,GAAAoF,iBAAA,CAAlBpF,kBAAkB;IAClBrC,sBAAsB,GAAAyH,iBAAA,CAAtBzH,sBAAsB;IACtBG,+BAA+B,GAAAsH,iBAAA,CAA/BtH,+BAA+B;IAC/BD,4BAA4B,GAAAuH,iBAAA,CAA5BvH,4BAA4B;IAC5BG,eAAe,GAAAoH,iBAAA,CAAfpH,eAAe;IAAEC,kBAAkB,GAAAmH,iBAAA,CAAlBnH,kBAAkB;IACnCuB,cAAc,GAAA4F,iBAAA,CAAd5F,cAAc;IAAErB,WAAW,GAAAiH,iBAAA,CAAXjH,WAAW;IAAE/V,OAAO,GAAAgd,iBAAA,CAAPhd,OAAO;IACpCkW,oBAAoB,GAAA8G,iBAAA,CAApB9G,oBAAoB;IAEpBM,0BAA0B,GAAAwG,iBAAA,CAA1BxG,0BAA0B;IAC1BU,8BAA8B,GAAA8F,iBAAA,CAA9B9F,8BAA8B;IAC9Bb,mBAAmB,GAAA2G,iBAAA,CAAnB3G,mBAAmB;IACnBC,sBAAsB,GAAA0G,iBAAA,CAAtB1G,sBAAsB;IACtBW,uBAAuB,GAAA+F,iBAAA,CAAvB/F,uBAAuB;IACvBN,mBAAmB,GAAAqG,iBAAA,CAAnBrG,mBAAmB;IACnBK,uBAAuB,GAAAgG,iBAAA,CAAvBhG,uBAAuB;IACvBF,gBAAgB,GAAAkG,iBAAA,CAAhBlG,gBAAgB;IAChBwD,qBAAqB,GAAA0C,iBAAA,CAArB1C,qBAAqB;EAYzB,IAAM2C,oBAAoB,GAAiB,CACvC;IACIn/C,IAAI,EAAE,EAAE;IACRw8B,QAAQ,EAAE,IAAI;IACdkL,WAAW,EAAEyK,eAAe;IAC5BrK,UAAU,EAAEA,UAAU;IACtBxhC,SAAS,iBAAemI,MAAM,CAAC,gBAAgB;GAElD,EACD;IACIzO,IAAI,EAAE,cAAc;IACpBw8B,QAAQ,EAAE,IAAI;IACd18B,MAAM,EAAEu7B,SAAS,CAACM,IAAI;IACtBc,QAAQ,EAAEnB,QAAQ,CAACK,IAAI;IACvBr1B,SAAS,iBAAemI,MAAM,CAAC,aAAa,CAAG;IAC/CiuB,SAAS,EAAE,SAAXA,SAASA,CAAG5Y,IAAY;MACpB,OAAO;QACHvkB,KAAK,EAAEukB,IAAI,IAAI,OAAO;QACtBtkB,KAAK,EAAEskB;OACV;;GAER,EACD;IACI9jB,IAAI,EAAE,OAAO;IACbw8B,QAAQ,EAAE,IAAI;IACd18B,MAAM,EAAEu7B,SAAS,CAACa,KAAK;IACvBO,QAAQ,EAAEnB,QAAQ,CAACY,KAAK;IACxB51B,SAAS,mCAAiCmI,MAAM,CAAC,gBAAgB,CAAG;IACpEiuB,SAAS,EAAE,SAAXA,SAASA,CAAGhC,KAAa;MACrB,OAAO;QACHn7B,KAAK,EAAEm7B,KAAK,IAAI,OAAO;QACvBl7B,KAAK,EAAEk7B;OACV;;GAER,EACD;IACI16B,IAAI,EAAE,gBAAgB;IACtBw8B,QAAQ,EAAE,IAAI;IACdl2B,SAAS,EAAE,6BAA6B;IACxCxG,MAAM,EAAEu7B,SAAS,CAACc,OAAO;IACzBM,QAAQ,EAAEnB,QAAQ,CAACa,OAAO;IAC1BO,SAAS,EAAE,SAAXA,SAASA,CAAG5Y,IAAY;MACpB,OAAO;QACHvkB,KAAK,EAAEukB,IAAI,IAAI,OAAO;QACtBtkB,KAAK,EAAEskB;OACV;;GAER,EACD;IACI9jB,IAAI,EAAE,iBAAiB;IACvBw8B,QAAQ,EAAE,IAAI;IACdl2B,SAAS,EAAE,6BAA6B;IACxCxG,MAAM,EAAEu7B,SAAS,CAACe,SAAS;IAC3BK,QAAQ,EAAEnB,QAAQ,CAACc,SAAS;IAC5BM,SAAS,EAAE,SAAXA,SAASA,CAAG5Y,IAAY;MAAA,OAAM;QAC1BvkB,KAAK,EAAEukB,IAAI,IAAI,OAAO;QACtBtkB,KAAK,EAAEskB;OACV;;GACJ,EACD;IACI9jB,IAAI,EAAE,kBAAkB;IACxBw8B,QAAQ,EAAE,IAAI;IACdl2B,SAAS,EAAE,6BAA6B;IACxCxG,MAAM,EAAEu7B,SAAS,CAACgB,SAAS;IAC3BI,QAAQ,EAAEnB,QAAQ,CAACe,SAAS;IAC5BK,SAAS,EAAE,SAAXA,SAASA,CAAG5Y,IAAY;MAAA,OAAM;QAC1BvkB,KAAK,EAAEukB,IAAI,IAAI,OAAO;QACtBtkB,KAAK,EAAEskB;OACV;;GACJ,EACD;IACI9jB,IAAI,EAAE,uBAAuB;IAC7Bw8B,QAAQ,EAAE,IAAI;IACdl2B,SAAS,EAAE,6BAA6B;IACxCxG,MAAM,EAAEu7B,SAAS,CAACiB,gBAAgB;IAClCG,QAAQ,EAAEnB,QAAQ,CAACgB,gBAAgB;IACnCI,SAAS,EAAE,SAAXA,SAASA,CAAG5Y,IAAY;MAAA,OAAM;QAC1BvkB,KAAK,EAAEukB,IAAI,IAAI,OAAO;QACtBtkB,KAAK,EAAEskB;OACV;;GACJ,CACJ;EAED,IAAA5O,SAAA,GAAsCC,cAAQ,CAAgB,IAAI,CAAC;IAA5DiqC,WAAW,GAAAlqC,SAAA;IAAEmqC,cAAc,GAAAnqC,SAAA;EAElC,IAAMI,MAAM,GAAG,SAATA,MAAMA,CAAIlB,EAAU;IACtBirC,cAAc,CAAC,UAAC/M,IAAI;MAAA,OAAMA,IAAI,KAAKl+B,EAAE,GAAG,IAAI,GAAGA,EAAE;KAAC,CAAC;GACtD;EAED,OACI/N;IAAKC,SAAS,EAAC;KACXD;IAAIC,SAAS,EAAC;KAAaogB,CAAC,CAAC,gBAAgB,CAAC,CAAM,EAEpDrgB,6BAACoJ,cAAG;IAACnJ,SAAS,EAAC;KACXD,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ,6BAACm6B,WAAS;IACNrU,SAAS,EAAE,CAAArF,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEnnB,YAAY,KAAI,EAAE;IACtC8gC,QAAQ,EAAE,SAAVA,QAAQA,CAAG9gC,YAAkB;MAAA,OACzBmpB,aAAa,CAAC;QAAEnpB,YAAY,EAAEA;OAAc,CAAC;;IAEjDkI,WAAW,EAAE6e,CAAC,CAAC,mCAAmC;IACpD,CACA,EACNrgB,6BAACqJ,cAAG;IAACE,EAAE,EAAE,CAAC;IAAEtJ,SAAS,EAAC;KAClBD,6BAACoJ,cAAG;IAACnJ,SAAS,EAAC;KACXD,6BAACqJ,cAAG;IAAC1J,KAAK,EAAE;MAAEgtB,OAAO,EAAE,MAAM;MAAEssB,UAAU,EAAE,QAAQ;MAAEC,QAAQ,EAAE,MAAM;MAAEC,GAAG,EAAE;;KAaxEn5C,6BAAC2f,iBAAM;IAAC9d,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQqxC,iBAAiB,CAACvJ,OAAO,CAAC;;IAAE/oC,KAAK,EAAC;KACpDyf,CAAC,CAAC,aAAa,CAAC,CACZ,EACTrgB,6BAAC2f,iBAAM;IAAC9d,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQixC,uBAAuB,CAACnJ,OAAO,CAAC;;IAAE/oC,KAAK,EAAC;KAC1Dyf,CAAC,CAAC,aAAa,CAAC,CACZ,EACTrgB,6BAAC2f,iBAAM;IAAC9d,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQmyC,yBAAyB,CAACrK,OAAO,CAAC;;IAAE/oC,KAAK,EAAC;KAC5Dyf,CAAC,CAAC,mBAAmB,CAAC,CAClB,CACP,CACJ,CACJ,EACNrgB,6BAACqJ,cAAG;IACAE,EAAE,EAAE,CAAC;IACLtJ,SAAS,EAAC;KAETogB,CAAC,CAAC,gBAAgB,CAAC,QAAImpB,SAAS,CAC/B,CACJ,EACNxpC,6BAACkwB,gBAAK;IAAC2mB,QAAQ;IAACt5B,MAAM,EAAEoyB,aAAa;IAAE1gC,MAAM,EAAE,SAARA,MAAMA;MAAA,OAAQikC,iBAAiB,EAAE;;KACpElzC,6BAACmwB,sBAAW,QAAE9P,CAAC,CAAC,qBAAqB,CAAC,CAAe,EACrDrgB,6BAACowB,oBAAS,QACNpwB,6BAACuwB,cAAc;IACX8mB,OAAO;IACPl+C,KAAK,EAAE02C,eAAe,CAAC9Y,OAAO,CAAC3wB,GAAG,CAAC,UAAC3H,CAAM;MAAA,OAAM;QAAEvF,KAAK,EAAEuF,CAAC,CAACgF,KAAK;QAAEtK,KAAK,EAAEsF,CAAC,CAACsP;OAAI;KAAC,CAAC;IACjFkT,OAAO,EAAE4d,cAAc;IACvBr9B,WAAW,EAAE6e,CAAC,CAAC,gBAAgB,CAAC;IAChCpgB,SAAS,wBAAsBmI,MAAM,CAAC,4BAA4B,CAAG;IACrE7G,QAAQ,EAAE,SAAVA,QAAQA,CAAGpI,KAAY;MACnB,IAAM4T,IAAI,GAAG5T,KAAK,CAACiN,GAAG,CAAC,UAAC3H,CAAM;QAAA,OAAM;UAChCsP,EAAE,EAAEtP,CAAC,CAACtF,KAAK;UACXsK,KAAK,EAAEhF,CAAC,CAACvF;SACZ;OAAC,CAAC;MACHg7C,uBAAuB,CAACnnC,IAAI,CAAC;KAChC;IACDgqC,WAAW,EAAE,IAAI;IACjBp3C,KAAK,EAAE;MAAEq3C,QAAQ,EAAE;;IACrB,EAEFh3C,6BAACgpC,eAAe;IACZ7vC,KAAK,EAAE2lC,gBAAgB,CAAC/Y,IAAI,CAAC,UAAAoT,CAAC;MAAA,OAAIA,CAAC,CAAChgC,KAAK,IAAI02C,eAAe,CAACjZ,WAAW,IAAIuC,CAAC,CAACjgC,KAAK,IAAI22C,eAAe,CAAC7Y,cAAc;MAAC,IAAI,IAAI;IAC9H/V,OAAO,EAAE6d,gBAAgB;IACzBv9B,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAW;MAAA,OAAKw1C,qBAAqB,CAAC,WAAW,EAAEx1C,CAAC,CAAC;;IAChE+C,WAAW,EAAE6e,CAAC,CAAC,kBAAkB,CAAC;IAClCpgB,SAAS,EAAC;IACZ,EACFD,6BAACuwB,cAAc;IACX8mB,OAAO;IACPl+C,KAAK,EAAE02C,eAAe,CAAChZ,UAAU,CAACzwB,GAAG,CAAC,UAAC3H,CAAM;MAAA,OAAM;QAAEvF,KAAK,EAAEuF,CAAC,CAACgF,KAAK;QAAEtK,KAAK,EAAEsF,CAAC,CAACsP;OAAI;KAAC,CAAC;IACpFkT,OAAO,EAAE8d,gBAAgB;IACzBv9B,WAAW,EAAE6e,CAAC,CAAC,kBAAkB,CAAC;IAClCpgB,SAAS,wBAAsBmI,MAAM,CAAC,4BAA4B,CAAG;IACrE7G,QAAQ,EAAE,SAAVA,QAAQA,CAAGpI,KAAY;MACnB,IAAM4T,IAAI,GAAG5T,KAAK,CAACiN,GAAG,CAAC,UAAC3H,CAAM;QAAA,OAAM;UAChCsP,EAAE,EAAEtP,CAAC,CAACtF,KAAK;UACXsK,KAAK,EAAEhF,CAAC,CAACvF;SACZ;OAAC,CAAC;MACHi7C,yBAAyB,CAACpnC,IAAI,CAAC;KAClC;IACDgqC,WAAW,EAAE,IAAI;IACjBp3C,KAAK,EAAE;MAAEq3C,QAAQ,EAAE;;IACrB,EACFh3C,6BAACgpC,eAAe;IACZ7vC,KAAK,EAAE6lC,uBAAuB,CAACjZ,IAAI,CAAC,UAAAoT,CAAC;MAAA,OAAIA,CAAC,CAAChgC,KAAK,IAAI02C,eAAe,CAAC/Y,kBAAkB,IAAIqC,CAAC,CAACjgC,KAAK,IAAI22C,eAAe,CAAC5Y,qBAAqB;MAAC,IAAI,IAAI;IACnJhW,OAAO,EAAE+d,uBAAuB;IAChCz9B,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAW;MAAA,OAAKw1C,qBAAqB,CAAC,WAAW,EAAEx1C,CAAC,CAAC;;IAChE+C,WAAW,EAAE6e,CAAC,CAAC,wBAAwB,CAAC;IACxCpgB,SAAS,EAAC;IACZ,CACM,EACZD,6BAACqwB,sBAAW;IAACpwB,SAAS,EAAC;KACnBD,6BAAC2f,iBAAM;IAAC9d,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQqxC,iBAAiB,EAAE;;KAAG7yB,CAAC,CAAC,QAAQ,CAAC,CAAU,EAClErgB,6BAAC2f,iBAAM;IAAC/e,KAAK,EAAC,SAAS;IAACiB,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQ+yC,uBAAuB,CAACjL,OAAO,CAAC;;KAAGtpB,CAAC,CAAC,QAAQ,CAAC,CAAU,CACrF,CACV,EAERrgB,6BAACkwB,gBAAK;IAAC2mB,QAAQ;IAACt5B,MAAM,EAAEwyB,iBAAiB;IAAE9gC,MAAM,EAAE,SAARA,MAAMA;MAAA,OAAQ+kC,yBAAyB,EAAE;;KAChFh0C,6BAACmwB,sBAAW,QAAE9P,CAAC,CAAC,mBAAmB,CAAC,CAAe,EACnDrgB,6BAACowB,oBAAS;IAACzwB,KAAK,EAAE;MAAEgtB,OAAO,EAAE,MAAM;MAAEwsB,GAAG,EAAE;;KACtCn5C,6BAACo5C,eAAY;IAACx4C,KAAK,EAAC,KAAK;IAACmJ,IAAI,EAAE;IAAM,EACtC/J,6BAACq5C,mBAAQ;IAAC15C,KAAK,EAAE;MAAEC,QAAQ,EAAE,EAAE;MAAEwoC,MAAM,EAAE,CAAC;MAAEzb,OAAO,EAAE,MAAM;MAAEssB,UAAU,EAAE;;KACpE54B,CAAC,CAAC,4CAA4C,EAAE;IAAEi5B,MAAM,EAAE3P,OAAO,CAAC7wB;GAAQ,CAAC,CACrE,CACH,EACZ9Y,6BAACqwB,sBAAW;IAACpwB,SAAS,EAAC;KACnBD,6BAAC2f,iBAAM;IAAC9d,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQmyC,yBAAyB,EAAE;;KAAG3zB,CAAC,CAAC,QAAQ,CAAC,CAAU,EAC1ErgB,6BAAC2f,iBAAM;IAAC/e,KAAK,EAAC,SAAS;IAACiB,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQk0C,sBAAsB,CAACpM,OAAO,EAAEiP,eAAe,CAAC;;KAAGv4B,CAAC,CAAC,SAAS,CAAC,CAAU,CACtG,CACV,EAERrgB,6BAACoJ,cAAG;IAACnJ,SAAS,EAAC;KACXD,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KAELvJ,0CACIA,6BAAC8jB,gBAAK;IAACC,QAAQ;IAACC,KAAK;IAACC,OAAO;IAACla,IAAI,EAAC,IAAI;IAAC9J,SAAS,OAAKmI,MAAM,CAAC,aAAa;KACtEpI,4CACIA,6BAACwgC,WAAW;IACRn1B,OAAO,EAAEytC,oBAAoB;IAC7Br4B,OAAO,EAAEA,OAAO;IAChBjjB,QAAQ,EAAEA,QAAQ;IAClBs+B,eAAe,EAAErZ,aAAa;IAC9Boc,cAAc,EAAEA,cAAc;IAC9BC,gBAAgB,EAAEA,gBAAgB;IAClCC,gBAAgB,EAAEA,gBAAgB;IAClCC,uBAAuB,EAAEA;IAC3B,CACE,EACP,CAAC,CAACnG,QAAQ,IAAIA,QAAQ,CAAC/f,MAAM,GAAG,CAAC,GAC9B9Y,4CACK64B,QAAQ,CAACzyB,GAAG,CAAC,UAACma,IAAmB,EAAE/D,KAAa;IAAA,OAC7Cxc;MAAIuK,GAAG,EAAEgW,IAAI,CAACxS;OACV/N;MAAIC,SAAS,gCAA8BmI,MAAM,CAAC,gBAAgB;OAC9DpI;MACI+N,EAAE,EAAEwS,IAAI,CAACxS,EAAE;MACXrM,IAAI,EAAC,UAAU;MACfH,QAAQ,EAAEwqC,gBAAgB;MAC1B/iC,OAAO,EAAE2gC,OAAO,CAAChvC,QAAQ,CACrB4lB,IAAI,CAACxS,EAAE;MAEb,CACD,EACL/N;MACIC,SAAS,oBAAkBmI,MAAM,CAAC,aAAa,CAAG;MAClD2F,EAAE,oBAAkBwS,IAAI,CAACxS,EAAE,SAAIyO,KAAO;MACtC+8B,YAAY,EAAE,SAAdA,YAAYA;QAAA,OAAQtqC,MAAM,mBAAiBsR,IAAI,CAACxS,EAAE,SAAIyO,KAAO,CAAC;;MAC9Dg9B,YAAY,EAAE,SAAdA,YAAYA;QAAA,OAAQvqC,MAAM,mBAAiBsR,IAAI,CAACxS,EAAE,SAAIyO,KAAO,CAAC;;OAE9Dxc;MACI0B,IAAI,EAAC,QAAQ;MACbzB,SAAS,EAAKmI,MAAM,CAAC,kBAAkB,CAAC,cAAW;MACnDvG,OAAO,EAAE,SAATA,OAAOA;QACHmoC,eAAe,CAACzpB,IAAI,CAAC;QACrBmxB,kBAAkB,CAAC,IAAI,CAAC;;OAG3BnxB,IAAI,CAAC/iB,QAAQ,CACT,EACTwC,6BAACy5C,kBAAO;MACJ/a,SAAS,EAAC,KAAK;MACfnhB,MAAM,EAAEw7B,WAAW,uBAAqBx4B,IAAI,CAACxS,EAAE,SAAIyO,KAAO;MAC1D5T,MAAM,oBAAkB2X,IAAI,CAACxS,EAAE,SAAIyO;OAElC+D,IAAI,CAAC/iB,QAAQ,CACR,CACT,EACLwC;MACIC,SAAS,oBAAkBmI,MAAM,CAAC,aAAa,CAAG;MAClD2F,EAAE,qBAAmBwS,IAAI,CAACxS,EAAE,SAAIyO,KAAO;MACvC+8B,YAAY,EAAE,SAAdA,YAAYA;QAAA,OAAQtqC,MAAM,oBAAkBsR,IAAI,CAACxS,EAAE,SAAIyO,KAAO,CAAC;;MAC/Dg9B,YAAY,EAAE,SAAdA,YAAYA;QAAA,OAAQvqC,MAAM,oBAAkBsR,IAAI,CAACxS,EAAE,SAAIyO,KAAO,CAAC;;OAE/Dxc,wCAAIugB,IAAI,CAACgU,UAAU,CAAK,CACvB,EACLv0B;MACIC,SAAS,oBAAkBmI,MAAM,CAAC,aAAa,CAAG;MAClD2F,EAAE,uBAAqBwS,IAAI,CAACxS,EAAE,SAAIyO,KAAO;MACzC+8B,YAAY,EAAE,SAAdA,YAAYA;QAAA,OAAQtqC,MAAM,sBAAoBsR,IAAI,CAACxS,EAAE,SAAIyO,KAAO,CAAC;;MACjEg9B,YAAY,EAAE,SAAdA,YAAYA;QAAA,OAAQvqC,MAAM,sBAAoBsR,IAAI,CAACxS,EAAE,SAAIyO,KAAO,CAAC;;OAG7D,CAAC,CAAC+D,IAAI,CAACqX,QAAQ,IAAIrX,IAAI,CAACqX,QAAQ,CAAC9e,MAAM,GAAG,CAAC,IAC3C9Y,6BAACA,cAAK,CAAC8G,QAAQ,QAEPyZ,IAAI,CAACqX,QAAQ,CAACxxB,GAAG,CAAC,UAAC+d,MAAiB;MAAA,OAChCnkB;QAAGuK,GAAG,EAAE4Z,MAAM,CAACsmB,gBAAgB;QAAExqC,SAAS,EAAC;SAAQkkB,MAAM,CAAC+qB,eAAe,SAAK/qB,MAAM,CAACsmB,gBAAgB,CAAK;KAC7G,CAAC,CAEO,EAEpB,CAAC,CAAClqB,IAAI,CAACqX,QAAQ,IAAIrX,IAAI,CAACqX,QAAQ,CAAC9e,MAAM,GAAG,CAAC,IAAI9Y,6BAACy5C,kBAAO;MACpD/a,SAAS,EAAC,KAAK;MACfnhB,MAAM,EAAEw7B,WAAW,0BAAwBx4B,IAAI,CAACxS,EAAE,SAAIyO,KAAO;MAC7D5T,MAAM,uBAAqB2X,IAAI,CAACxS,EAAE,SAAIyO;OAGlC+D,IAAI,CAACqX,QAAQ,CAACxxB,GAAG,CAAC,UAAC+d,MAAiB;MAAA,OAChCnkB;QAAGuK,GAAG,EAAE4Z,MAAM,CAACsmB,gBAAgB;QAAExqC,SAAS,EAAC;SAAQkkB,MAAM,CAAC+qB,eAAe,SAAK/qB,MAAM,CAACsmB,gBAAgB,CAAK;KAC7G,CAAC,CAEA,CACT,EACLzqC;MACIC,SAAS,oBAAkBmI,MAAM,CAAC,aAAa,CAAG;MAClD2F,EAAE,yBAAuBwS,IAAI,CAACxS,EAAE,SAAIyO,KAAO;MAC3C+8B,YAAY,EAAE,SAAdA,YAAYA;QAAA,OAAQtqC,MAAM,wBAAsBsR,IAAI,CAACxS,EAAE,SAAIyO,KAAO,CAAC;;MACnEg9B,YAAY,EAAE,SAAdA,YAAYA;QAAA,OAAQvqC,MAAM,wBAAsBsR,IAAI,CAACxS,EAAE,SAAIyO,KAAO,CAAC;;OAG/D,CAAC,CAAC+D,IAAI,CAACyW,cAAc,IACrBh3B;MAAGC,SAAS,EAAC;OAAQsgB,IAAI,CAACiX,aAAa,SAAKjX,IAAI,CAACyW,cAAc,CAAK,EAEvE,CAAC,CAACzW,IAAI,CAACyW,cAAc,IAAIh3B,6BAACy5C,kBAAO;MAC9B/a,SAAS,EAAC,KAAK;MACfnhB,MAAM,EAAEw7B,WAAW,4BAA0Bx4B,IAAI,CAACxS,EAAE,SAAIyO,KAAO;MAC/D5T,MAAM,yBAAuB2X,IAAI,CAACxS,EAAE,SAAIyO;OAEvC+D,IAAI,CAACiX,aAAa,OAAGjX,IAAI,CAACyW,cAAc,CACnC,CACT,EAELh3B;MACIC,SAAS,oBAAkBmI,MAAM,CAAC,aAAa,CAAG;MAClD2F,EAAE,yBAAuBwS,IAAI,CAACxS,EAAE,SAAIyO,KAAO;MAC3C+8B,YAAY,EAAE,SAAdA,YAAYA;QAAA,OAAQtqC,MAAM,wBAAsBsR,IAAI,CAACxS,EAAE,SAAIyO,KAAO,CAAC;;MACnEg9B,YAAY,EAAE,SAAdA,YAAYA;QAAA,OAAQvqC,MAAM,wBAAsBsR,IAAI,CAACxS,EAAE,SAAIyO,KAAO,CAAC;;OAG/D,CAAC,CAAC+D,IAAI,CAACsW,UAAU,IAAItW,IAAI,CAACsW,UAAU,CAAC/d,MAAM,GAAG,CAAC,IAC/C9Y,6BAACA,cAAK,CAAC8G,QAAQ,QAEPyZ,IAAI,CAACsW,UAAU,CAACzwB,GAAG,CAAC,UAAC+d,MAAkB;MAAA,OACnCnkB;QAAGuK,GAAG,EAAE4Z,MAAM,CAAC0mB,eAAe;QAAE5qC,SAAS,EAAC;SAAQkkB,MAAM,CAACgrB,aAAa,SAAKhrB,MAAM,CAAC2mB,cAAc,CAAK;KACxG,CAAC,CAEO,EAEpB,CAAC,CAACvqB,IAAI,CAACsW,UAAU,IAAItW,IAAI,CAACsW,UAAU,CAAC/d,MAAM,GAAG,CAAC,IAAI9Y,6BAACy5C,kBAAO;MACxD/a,SAAS,EAAC,KAAK;MACfnhB,MAAM,EAAEw7B,WAAW,4BAA0Bx4B,IAAI,CAACxS,EAAE,SAAIyO,KAAO;MAC/D5T,MAAM,yBAAuB2X,IAAI,CAACxS,EAAE,SAAIyO;OAGpC+D,IAAI,CAACsW,UAAU,CAACzwB,GAAG,CAAC,UAAC+d,MAAkB;MAAA,OACnCnkB;QAAGuK,GAAG,EAAE4Z,MAAM,CAAC0mB,eAAe;QAAE5qC,SAAS,EAAC;SAAQkkB,MAAM,CAACgrB,aAAa,SAAKhrB,MAAM,CAAC2mB,cAAc,CAAK;KACxG,CAAC,CAEA,CACT,EACL9qC;MACIC,SAAS,oBAAkBmI,MAAM,CAAC,aAAa,CAAG;MAClD2F,EAAE,iCAA+BwS,IAAI,CAACxS,EAAE,SAAIyO,KAAO;MACnD+8B,YAAY,EAAE,SAAdA,YAAYA;QAAA,OAAQtqC,MAAM,gCAA8BsR,IAAI,CAACxS,EAAE,SAAIyO,KAAO,CAAC;;MAC3Eg9B,YAAY,EAAE,SAAdA,YAAYA;QAAA,OAAQvqC,MAAM,gCAA8BsR,IAAI,CAACxS,EAAE,SAAIyO,KAAO,CAAC;;OAE1E,CAAC,CAAC+D,IAAI,CAAC0W,qBAAqB,IAAIj3B;MAAGC,SAAS,EAAC;OAAQsgB,IAAI,CAACmX,oBAAoB,SAAKnX,IAAI,CAAC0W,qBAAqB,CAAK,EAE/G,CAAC,CAAC1W,IAAI,CAAC0W,qBAAqB,IAC5Bj3B,6BAACy5C,kBAAO;MACJ/a,SAAS,EAAC,KAAK;MACfnhB,MAAM,EAAEw7B,WAAW,oCAAkCx4B,IAAI,CAACxS,EAAE,SAAIyO,KAAO;MACvE5T,MAAM,iCAA+B2X,IAAI,CAACxS,EAAE,SAAIyO;OAE/C+D,IAAI,CAACmX,oBAAoB,SAAKnX,IAAI,CAAC0W,qBAAqB,CACnD,CAEb,CACJ;GACR,CAAC,CACE,GACRj3B;IAAKL,KAAK,EAAE;MAAE6kB,KAAK,EAAE,aAAa;MAAEG,OAAO,EAAE;;KAAOtE,CAAC,CAAC,SAAS,CAAC,CACnE,CACG,CACN,CAEJ,EACNrgB,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ,6BAACwgB,gBAAgB;IACbC,OAAO,EAAEA,OAAO;IAChBE,gBAAgB,EAAE6oB,SAAS;IAC3B5oB,cAAc,EAAE,SAAhBA,cAAcA,CAAGpnB,QAAgB;MAAA,OAC7BipB,aAAa,CAAC;QAAEjpB,QAAQ,EAARA;OAAU,CAAC;;IAE/BknB,UAAU,EAAE,SAAZA,UAAUA,CAAGnnB,WAAmB;MAAA,OAC5BkpB,aAAa,CAAC;QAAElpB,WAAW,EAAXA;OAAa,CAAC;;IAEpC,CACA,CACJ,EACNyG,6BAACi3C,kBAAkB;IACfxF,eAAe,EAAEA,eAAe;IAChC5V,OAAO,EAAEA,OAAO;IAChBkO,YAAY,EAAEA,YAAY;IAC1B8F,eAAe,EAAEA,eAAe;IAChChR,cAAc,EAAEA,cAAc;IAC9BqV,uBAAuB,EAAEA,uBAAuB;IAChDC,yBAAyB,EAAEA,yBAAyB;IACpDrV,gBAAgB,EAAEA,gBAAgB;IAClCC,gBAAgB,EAAEA,gBAAgB;IAClCC,uBAAuB,EAAEA,uBAAuB;IAChDiV,qBAAqB,EAAEA,qBAAqB;IAC5CyB,2BAA2B,EAAEA,2BAA2B;IACxDzC,cAAc,EAAEA,cAAc;IAC9BrB,WAAW,EAAEA;IAGf,EACF5xC,6BAAC22C,oBAAkB;IACf3F,SAAS,EAAEA,SAAS;IACpBzzB,MAAM,EAAE0yB,eAAe;IACvBrY,QAAQ,EAAE2Y,iBAAiB;IAC3BtvB,OAAO,EAAEovB,aAAa;IACtBxU,OAAO,EAAEwX,kBAAkB;IAC3BuD,MAAM,EAAEnD,kBAAkB;IAC1BtD,SAAS,EAAEA,SAAS;IACpBiB,sBAAsB,EAAEA,sBAAsB;IAC9CG,+BAA+B,EAAEA,+BAA+B;IAChED,4BAA4B,EAAEA;IAChC,EAEFtxC,6BAACy3C,sBAAsB;IACnBttC,IAAI,EAAEkoC,0BAA0B;IAChCxW,OAAO,EAAEkX,8BAA8B;IACvCnb,QAAQ,EAAE,CAAAmS,YAAY,aAAZA,YAAY,wBAAA4L,qBAAA,GAAZ5L,YAAY,CAAEnS,QAAQ,cAAA+d,qBAAA,uBAAtBA,qBAAA,CAAwBpvC,MAAM,CAAC,UAAA4yB,CAAC;MAAA,OAAI,CAAC4Y,oBAAoB,CAACp3C,QAAQ,CAACw+B,CAAC,CAACqR,aAAa,CAAC;MAAC,KAAI,EAAE;IACpGhnB,SAAS,EAAEkyB,2BAA2B;IACtCxD,mBAAmB,EAAEA,mBAAmB;IACxCC,sBAAsB,EAAEA;IAC1B,EAEFnyC,6BAACo4C,eAAe;IACZjuC,IAAI,EAAEqoC,mBAAmB;IACzB3W,OAAO,EAAEiX,uBAAuB;IAChClb,QAAQ,EAAEqS,sBAAsB;IAChC0N,mBAAmB,EAAE9E,uBAAuB;IAC5CF,gBAAgB,EAAEA,gBAAgB;IAClC9b,UAAU,EAAE6T,wBAAwB;IACpC1H,UAAU,EAAE+H,wBAAwB;IACpCsN,iBAAiB,EAAElC,qBAAqB;IACxCC,cAAc,EAAEzM,OAAO;IACvBwB,iBAAiB,EAAED;IACrB,CACA;AAEd,CAAC;;AChjBD,IAAMwO,mBAAmB,GAAG,SAAtBA,mBAAmBA;EACrB,IAAMp1C,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAAsK,SAAA,GAAsCC,cAAQ,CAC1C2pB,iBAAiB,CACpB;IAFMkhB,WAAW,GAAA9qC,SAAA;IAAE+qC,cAAc,GAAA/qC,SAAA;EAGlC,IAAAK,UAAA,GAAsCJ,cAAQ,CAAC,EAAE,CAAC;IAA3C+qC,WAAW,GAAA3qC,UAAA;IAAE4qC,cAAc,GAAA5qC,UAAA;EAClC,IAAAG,UAAA,GAA8CP,cAAQ,CAAS,EAAE,CAAC;IAA3DirC,eAAe,GAAA1qC,UAAA;IAAE2qC,kBAAkB,GAAA3qC,UAAA;EAE1C,IAAM4qC,aAAa,YAAbA,aAAaA;IAAA;qCACX;QAAA,OAAAl1C,OAAA,CAAAC,OAAA,CACkBiJ,UAAU,EAAE,EAAA7G,IAAA,WAAxBhC,GAAG;UACT00C,cAAc,CAAC10C,GAAG,CAAC2H,IAAI,CAAC;;OAC3B,YAAQtF,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMwiB,OAAO,GAAG44B,WAAW,CAACzzC,GAAG,CAAC,UAAC+d,MAAW;IAAA,OAAM;MAC9CjrB,KAAK,EAAKirB,MAAM,CAACxqB,IAAI,WAAMwqB,MAAM,CAAC1gB,KAAO;MACzCtK,KAAK,EAAEgrB,MAAM,CAACpW;KACjB;GAAC,CAAC;EAEH+B,eAAS,CAAC;;IACN,EAAAoqC,kBAAA,GAAAP,WAAW,CAACrtC,KAAK,cAAA4tC,kBAAA,uBAAjBA,kBAAA,CAAmBv/C,QAAQ,CAAC,SAAS,CAAC,KAAIs/C,aAAa,EAAE;GAC5D,EAAE,CAACN,WAAW,CAAC,CAAC;EAEjB,OAAO;IACHA,WAAW,EAAXA,WAAW;IACXC,cAAc,EAAdA,cAAc;IACdC,WAAW,EAAXA,WAAW;IACX54B,OAAO,EAAPA,OAAO;IACP+4B,kBAAkB,EAAlBA,kBAAkB;IAClBD,eAAe,EAAfA;GACH;AACL,CAAC;;ACrCD,IAAM3rC,OAAK,GAAG,mBAAmB;AACjC,IAAM+rC,kBAAkB,GAAG,SAArBA,kBAAkBA;EAEpB,IAAAC,oBAAA,GAMIV,mBAAmB,EAAE;IALrBC,WAAW,GAAAS,oBAAA,CAAXT,WAAW;IACXC,cAAc,GAAAQ,oBAAA,CAAdR,cAAc;IACd34B,OAAO,GAAAm5B,oBAAA,CAAPn5B,OAAO;IACP84B,eAAe,GAAAK,oBAAA,CAAfL,eAAe;IACfC,kBAAkB,GAAAI,oBAAA,CAAlBJ,kBAAkB;EAEtB,IAAAnrC,SAAA,GAAgCC,cAAQ,CAAgB,EAAE,CAAC;IAApD+pB,QAAQ,GAAAhqB,SAAA;IAAE4jB,WAAW,GAAA5jB,SAAA;EAC5B,IAAAK,UAAA,GAAoCJ,cAAQ,CAAS,CAAC,CAAC;IAAhDkU,UAAU,GAAA9T,UAAA;IAAEmrC,aAAa,GAAAnrC,UAAA;EAChC,IAAAiU,WAAA,GAAmCZ,UAAU,EAAE;IAAvC9B,OAAO,GAAA0C,WAAA,CAAP1C,OAAO;IAAEgC,aAAa,GAAAU,WAAA,CAAbV,aAAa;EAE9B,IAAMne,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAM6tB,KAAK,GAAG9V,YAAM,CAAM,IAAI,CAAC;EAC/B,IAAMiW,SAAS,GAAG,SAAZA,SAASA;IACXH,KAAK,IAAIA,KAAK,CAACzV,OAAO,IAAIyV,KAAK,CAACzV,OAAO,CAAC1N,MAAM,EAAE;GACnD;EACD,IAAMqrC,SAAS,GAAG,SAAZA,SAASA;IACXN,kBAAkB,CAAC,EAAE,CAAC;IACtBJ,cAAc,CAACnhB,iBAAiB,CAAC;GACpC;EAED,IAAMrV,OAAO,GAAGxe,iBAAW;IAAA;;QAevBN,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAd3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA+N,KAAA,GAAAC,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkBoI,GAAG,CAACqT,OAAO,CAAC,EAAArZ,IAAA,WAAxBhC,GAAG;UACT,IAAAsQ,SAAA,GAA8BtQ,GAAG,CAAC2H,IAAI;YAA9BsW,KAAK,GAAA3N,SAAA,CAAL2N,KAAK;YAAEL,UAAU,GAAAtN,SAAA,CAAVsN,UAAU;UACzByP,WAAW,CAACpP,KAAK,CAAC;UAClBg3B,aAAa,CAACr3B,UAAU,CAAC;;OAC5B,YAAQvb,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA,CAAAiJ,MAAA,IAAAA,MAAA,CAAAL,KAAA;KAEJ,QAAAvR,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,CAAC6F,QAAQ,EAAEmc,OAAO,CAAC,CAAC;EAEvB3Q,eAAS,CAAC;IACN9R,QAAQ,CAAC8D,KAAK,GAAGsM,OAAK;GACzB,EAAE,EAAE,CAAC;EAEN0B,eAAS,CAAC;IACNsT,OAAO,EAAE;GACZ,EAAE,CAAC3C,OAAO,CAAC,CAAC;EAEb,IAAM8C,UAAU,GAAG3e,iBAAW,CAC1B,UAACmJ,EAAU;IACPzJ,QAAQ,CACJnC,QAAQ,CAAC;MACLob,MAAM,EAAE,IAAI;MACZ7b,IAAI,EAAE,SAAS;MACfwO,OAAO,EAAE,kCAAkC;MAC3CsT,SAAS;QAAA;;YA2BLlf,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;UA1B3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;UAAA,IAAA0O,MAAA,GAAAV,MAAA,aACtB;YAAA,SAAAQ;cAOAnM,QAAQ,CACJhC,QAAQ,CAAC;gBACLZ,IAAI,EAAE,SAAS;gBACfwO,OAAO,EAAE;eACZ,CAAC,CACL;cACDqiB,SAAS,EAAE;cACX+nB,SAAS,EAAE;cACX73B,aAAa,CAAC;gBAAElpB,WAAW,EAAE;eAAG,CAAC;;YAAA,IAAAgX,MAAA;cAAA,IAd7BopC,WAAW,CAACrtC,KAAK,CAAC3R,QAAQ,CAAC,SAAS,CAAC;gBAAA,OAAAoK,OAAA,CAAAC,OAAA,CAC/B8I,MAAM,CAACC,EAAE,EAAEgsC,eAAe,CAAC,EAAA3yC,IAAA;;gBAAA,OAAArC,OAAA,CAAAC,OAAA,CAE3B8I,MAAM,CAACC,EAAE,CAAC,EAAA3G,IAAA;;;YAAA,OAAAmJ,MAAA,IAAAA,MAAA,CAAAnJ,IAAA,GAAAmJ,MAAA,CAAAnJ,IAAA,CAAAqJ,MAAA,IAAAA,MAAA,CAAAF,MAAA;WAYvB,YAAQ9I,GAAG,EAAE;YAAA,IAAAmJ,cAAA,EAAAC,mBAAA;YACVvM,QAAQ,CACJhC,QAAQ,CAAC;cACLZ,IAAI,EAAE,QAAQ;cACdwO,OAAO,EACH,EAAAU,cAAA,GAAAnJ,GAAG,CAAC0E,QAAQ,cAAAyE,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7D,IAAI,cAAA8D,mBAAA,uBAAlBA,mBAAA,CAAoB/O,KAAK,KAAI2F,GAAG,CAACyI;aACxC,CAAC,CACL;WACJ;UAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAA2L,MAAA,IAAAA,MAAA,CAAAvJ,IAAA,GAAAuJ,MAAA,CAAAvJ,IAAA,CAAA0J,MAAA,IAAAA,MAAA,CAAAH,MAAA;SAEJ,QAAAlS,CAAA;UAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;KACJ,CAAC,CACL;GACJ,EACD,CAACgiB,OAAO,EAAEs5B,eAAe,EAAEJ,WAAW,CAAC,CAC1C;EACD,OAAO;IACH9gB,QAAQ,EAARA,QAAQ;IACR7V,UAAU,EAAVA,UAAU;IACVvC,OAAO,EAAPA,OAAO;IACP2C,OAAO,EAAPA,OAAO;IACPG,UAAU,EAAVA,UAAU;IACVd,aAAa,EAAbA,aAAa;IACb2P,KAAK,EAALA,KAAK;IACLG,SAAS,EAATA,SAAS;IACTonB,WAAW,EAAXA,WAAW;IACXC,cAAc,EAAdA,cAAc;IACd34B,OAAO,EAAPA,OAAO;IACP84B,eAAe,EAAfA,eAAe;IACfC,kBAAkB,EAAlBA,kBAAkB;IAClBM,SAAS,EAATA;GACH;AACL,CAAC;;AC9GD,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIhgC,KAAU,EAAE8B,GAAQ;EAC1C,IACIqH,MAAM,GAONnJ,KAAK,CAPLmJ,MAAM;IACNH,UAAU,GAMVhJ,KAAK,CANLgJ,UAAU;IACV+2B,SAAS,GAKT//B,KAAK,CALL+/B,SAAS;IACTX,WAAW,GAIXp/B,KAAK,CAJLo/B,WAAW;IACX14B,OAAO,GAGP1G,KAAK,CAHL0G,OAAO;IACP84B,eAAe,GAEfx/B,KAAK,CAFLw/B,eAAe;IACfC,kBAAkB,GAClBz/B,KAAK,CADLy/B,kBAAkB;EAEtB,IAAA75B,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EAET,IAAMm6B,OAAO,GAAG,SAAVA,OAAOA;IACT,IAAI3/C,GAAG,GACHL,MAAM,CAACC,QAAQ,CAAC6W,MAAM,GAAG,sBAAsB,GAAGqoC,WAAW,CAAC5rC,EAAE;IACpEvT,MAAM,CAAC2P,IAAI,CAACtP,GAAG,CAAC;GACnB;EAED,OACImF,6BAACwvB,aAAW;IACR9L,MAAM,EAAEA,MAAM;IACdrH,GAAG,EAAEA,GAAG;IACRyI,QAAQ,EAAE,SAAVA,QAAQA;MACJw1B,SAAS,EAAE;;KAGft6C,6BAACoJ,cAAG,QACApJ,6BAACqJ,cAAG;IAACE,EAAE,EAAE,EAAE;IAAEtJ,SAAS,EAAC;KACnBD,wCAAIqgB,CAAC,CAAC,kBAAkB,CAAC,CAAK,EAC9BrgB;IAAKC,SAAS,EAAC;KACXD,6BAAC2f,iBAAM;IACH/e,KAAK,EAAC,SAAS;IACfiB,OAAO,EAAE,SAATA,OAAOA;MACH24C,OAAO,EAAE;;KAGZn6B,CAAC,CAAC,qBAAqB,CAAC,CACpB,CACP,EACNrgB,sDAAkB,EACjB,CAAC,CAAC25C,WAAW,IACV35C,0CACK25C,WAAW,CAACrtC,KAAK,CAAC3R,QAAQ,CAAC,SAAS,CAAC,IAClCqF,0CACIA,6BAACsgB,gBAAK;IAAC1f,KAAK,EAAC;KACRyf,CAAC,CAAC,mBAAmB,CAAC,CACnB,EACRrgB,6BAAC2f,iBAAM;IACH/e,KAAK,EAAC,QAAQ;IACdiB,OAAO,EAAE,SAATA,OAAOA;MAAA,OACH0hB,UAAU,CAACo2B,WAAW,CAAC5rC,EAAE,CAAC;;KAG7BsS,CAAC,CAAC,aAAa,CAAC,CACZ,CAEhB,EACAs5B,WAAW,CAACrtC,KAAK,CAAC3R,QAAQ,CAAC,OAAO,CAAC,IAChCqF,0CACIA,6BAACsgB,gBAAK;IAAC1f,KAAK,EAAC;KACRyf,CAAC,CAAC,mBAAmB,CAAC,CACnB,EACRrgB,6BAAC2f,iBAAM;IACH/e,KAAK,EAAC,QAAQ;IACdiB,OAAO,EAAE,SAATA,OAAOA;MAAA,OACH0hB,UAAU,CAACo2B,WAAW,CAAC5rC,EAAE,CAAC;;KAG7BsS,CAAC,CAAC,aAAa,CAAC,CACZ,CAEhB,EACAs5B,WAAW,CAACrtC,KAAK,CAAC3R,QAAQ,CAAC,SAAS,CAAC,IAClCqF,0CACIA,6BAACsgB,gBAAK;IAAC1f,KAAK,EAAC;KACRyf,CAAC,CAAC,mBAAmB,CAAC,CACnB,EACRrgB,6BAACuwB,cAAc;IACXtP,OAAO,EAAEA,OAAO;IAChBuP,YAAY,EAAEupB,eAAe;IAC7Bv4C,WAAW,EAAC,uBAAuB;IACnCD,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;MAAA,OACbu7C,kBAAkB,CAACv7C,CAAC,CAACtF,KAAK,CAAC;;IAEjC,EACD,CAAC,CAAC4gD,eAAe,IACd/5C;IAAKC,SAAS,EAAE;KACZD,6BAACsgB,gBAAK;IAAC1f,KAAK,EAAC;KACRyf,CAAC,CAAC,mBAAmB,CAAC,CACnB,EACRrgB,6BAAC2f,iBAAM;IACH/e,KAAK,EAAC,QAAQ;IACdiB,OAAO,EAAE,SAATA,OAAOA;MAAA,OACH0hB,UAAU,CAACo2B,WAAW,CAAC5rC,EAAE,CAAC;;KAG7BsS,CAAC,CAAC,aAAa,CAAC,CACZ,CAEhB,CAER,EACA,CAACs5B,WAAW,CAACrtC,KAAK,CAAC3R,QAAQ,CAAC,QAAQ,CAAC,IAAIg/C,WAAW,CAACrtC,KAAK,CAAC3R,QAAQ,CAAC,WAAW,CAAC,IAAIg/C,WAAW,CAACrtC,KAAK,CAAC3R,QAAQ,CAAC,kBAAkB,CAAC,KAC/HqF,0CACIA,6BAACsgB,gBAAK;IAAC1f,KAAK,EAAC;KACRyf,CAAC,CAAC,mBAAmB,CAAC,CACnB,EACRrgB,6BAAC2f,iBAAM;IACH/e,KAAK,EAAC,QAAQ;IACdiB,OAAO,EAAE,SAATA,OAAOA;MAAA,OACH0hB,UAAU,CAACo2B,WAAW,CAAC5rC,EAAE,CAAC;;KAG7BsS,CAAC,CAAC,aAAa,CAAC,CACZ,CAEhB,CAER,CACC,CACJ,CACI;AAEtB,CAAC;AAED,yBAAeiQ,gBAAU,CAACiqB,gBAAgB,CAAC;;ACxH3C,IAAM72B,QAAM,GAAG,cAAc;AAC7B,IAAM+2B,cAAc,GAAG,SAAjBA,cAAcA;EAChB,IAAAC,mBAAA,GAcIP,kBAAkB,EAAE;IAbpBthB,QAAQ,GAAA6hB,mBAAA,CAAR7hB,QAAQ;IACR7V,UAAU,GAAA03B,mBAAA,CAAV13B,UAAU;IACVvC,OAAO,GAAAi6B,mBAAA,CAAPj6B,OAAO;IACPgC,aAAa,GAAAi4B,mBAAA,CAAbj4B,aAAa;IACbc,UAAU,GAAAm3B,mBAAA,CAAVn3B,UAAU;IACVgP,SAAS,GAAAmoB,mBAAA,CAATnoB,SAAS;IACTH,KAAK,GAAAsoB,mBAAA,CAALtoB,KAAK;IACLunB,WAAW,GAAAe,mBAAA,CAAXf,WAAW;IACXC,cAAc,GAAAc,mBAAA,CAAdd,cAAc;IACd34B,OAAO,GAAAy5B,mBAAA,CAAPz5B,OAAO;IACP84B,eAAe,GAAAW,mBAAA,CAAfX,eAAe;IACfC,kBAAkB,GAAAU,mBAAA,CAAlBV,kBAAkB;IAClBM,SAAS,GAAAI,mBAAA,CAATJ,SAAS;EAEb,IAAAn6B,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EAET,IAAMs6B,UAAU,GAAG,SAAbA,UAAUA,CAAIhB,WAAyB;IACzC,CAAC,CAACA,WAAW,IAAIC,cAAc,CAACD,WAAW,CAAC;IAC5CpnB,SAAS,EAAE;GACd;EAED,OACIvyB;IAAKC,SAAS,EAAC;KACXD;IAAIC,SAAS,EAAC;KAAaogB,CAAC,CAACqD,QAAM,CAAC,CAAM,EAE1C1jB,6BAACoJ,cAAG;IAACnJ,SAAS,EAAC;KACXD,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ,6BAACm6B,WAAS;IACNrU,SAAS,EAAErF,OAAO,CAACnnB,YAAY;IAC/B8gC,QAAQ,EAAE,SAAVA,QAAQA,CAAG9gC,YAAkB;MAAA,OACzBmpB,aAAa,CAAC;QAAEnpB,YAAY,EAAZA;OAAc,CAAC;;IAEnCkI,WAAW,EAAE6e,CAAC,CAAC,4CAA4C;IAC7D,CACA,EACNrgB,6BAACqJ,cAAG;IACAE,EAAE,EAAE,CAAC;IACLtJ,SAAS,EAAC;KAETogB,CAAC,CAAC,gBAAgB,CAAC,QAAI2C,UAAU,CAChC,CACJ,EACNhjB,6BAACoJ,cAAG;IAACnJ,SAAS,EAAC;KACXD,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACJsvB,QAAQ,IAAIA,QAAQ,CAAC/f,MAAM,GAAG,CAAC,GAC5B9Y,0CACIA,6BAAC8jB,gBAAK;IAACC,QAAQ;IAACC,KAAK;IAACC,OAAO;IAACC,UAAU;IAACna,IAAI,EAAC;KAC1C/J,4CACIA,yCACIA;IAAIC,SAAS,EAAC;KAAaogB,CAAC,CAAC,MAAM,CAAC,CAAM,EAC1CrgB;IAAIC,SAAS,EAAC;KAAaogB,CAAC,CAAC,OAAO,CAAC,CAAM,EAC3CrgB;IAAIC,SAAS,EAAC;KAAaogB,CAAC,CAAC,MAAM,CAAC,CAAM,CACzC,CACD,EACRrgB,4CACK64B,QAAQ,CAACzyB,GAAG,CAAC,UAAA+d,MAAM;IAAA,OAChBnkB;MAAIuK,GAAG,EAAE4Z,MAAM,CAACpW;OACZ/N;MAAIC,SAAS,EAAC;OACVD,6BAAC+f,cAAc;MACX7mB,KAAK,OAAKirB,MAAM,CAAC3mB,QAAU;MAC3BqE,OAAO,EAAE,SAATA,OAAOA;QAAA,OACH84C,UAAU,CAACx2B,MAAM,CAAC;;MAExB,CACD,EACLnkB;MAAIC,SAAS,EAAC;OACTkkB,MAAM,CAAC1gB,KAAK,CACZ,EACLzD;MAAIC,SAAS,EAAC;OACT,CAAC,CAACkkB,MAAM,CAAC7X,KAAK,IACX6X,MAAM,CAAC7X,KAAK,CAAClG,GAAG,CAAC,UAACy8B,IAAY;MAAA,OAAKA,IAAI,KAAK,kBAAkB,GAAG,gBAAgB,GAAGA,IAAI;MAAC,CAACj4B,IAAI,CAAC,IAAI,CAAC,CACvG,CACJ;GACR,CAAC,CACE,CACJ,CACN,GAEN5K,6BAACggB,cAAc;IAAC9mB,KAAK,EAAEmnB,CAAC,CAAC,MAAM;IAClC,CACC,EACNrgB,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ,6BAACwgB,gBAAgB;IACbC,OAAO,EAAEA,OAAO;IAChBE,gBAAgB,EAAEqC,UAAU;IAC5BpC,cAAc,EAAE,SAAhBA,cAAcA,CAAGpnB,QAAgB;MAAA,OAC7BipB,aAAa,CAAC;QAAEjpB,QAAQ,EAARA;OAAU,CAAC;;IAE/BknB,UAAU,EAAE,SAAZA,UAAUA,CAAGnnB,WAAmB;MAAA,OAC5BkpB,aAAa,CAAC;QAAElpB,WAAW,EAAXA;OAAa,CAAC;;IAEpC,CACA,CACJ,EACNyG,6BAACu6C,kBAAgB;IACbl+B,GAAG,EAAE+V,KAAK;IACV1O,MAAM,EAAEi2B,WAAW,CAACn8C,QAAQ;IAC5BsnB,QAAQ,EAAE,SAAVA,QAAQA,KAAW;IACnB60B,WAAW,EAAEA,WAAW;IACxBp2B,UAAU,EAAEA,UAAU;IACtBtC,OAAO,EAAEA,OAAO;IAChB84B,eAAe,EAAEA,eAAe;IAChCC,kBAAkB,EAAEA,kBAAkB;IACtCM,SAAS,EAAEA;IACb,CACA;AAEd,CAAC;;AC7GD,IAAM36C,OAAK,GAAG;EACVglB,OAAO,EAAE,SAAS;EAClBrkB,YAAY,EAAE,CAAC;EACfD,YAAY,EAAE,KAAK;EACnBO,KAAK,EAAE,MAAM;EACb4e,UAAU,EAAE,GAAG;EACf5f,QAAQ,EAAE,MAAM;EAChBO,MAAM,EAAE,MAAM;EACdy6C,cAAc,EAAE;CACnB;AAED,IAAMC,eAAe,GAAc,SAA7BA,eAAeA,CAAA/6C,IAAA;MACjBg7C,OAAO,GAAAh7C,IAAA,CAAPg7C,OAAO;IACPrqB,UAAU,GAAA3wB,IAAA,CAAV2wB,UAAU;IACV1wB,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJK,eAAe,GAAAN,IAAA,CAAfM,eAAe;IACfyB,QAAO,GAAA/B,IAAA,CAAP+B,OAAO;IACPk5C,iBAAiB,GAAAj7C,IAAA,CAAjBi7C,iBAAiB;EAEjB,OACI/6C,6BAACkmB,gBAAK;IACF40B,OAAO,EAAEA,OAAO;IAChBjY,IAAI,EAAC,QAAQ;IACbmY,QAAQ,EAAE,CAAC;IACX/6C,SAAS,0EACP86C,iBAAiB,GAAG,MAAM,GAAG,EAAE,wBAC/B,CAACtqB,UAAU,GAAG,8BAA8B,GAAG,EAC7C,CAAE;IACN9wB,KAAK,EAAA6Q,QAAA,KACE7Q,OAAK;MACRS,eAAe,EAAfA,eAAe;MACf66C,OAAO,EAAE,CAACxqB,UAAU,GAAG,CAAC,GAAG;MAC9B;IACD5uB,OAAO,EAAE,SAATA,OAAOA,CAAGq5C,EAAO;MAAA,OAAKr5C,QAAO,EAAE;;KAE/B7B,6BAACA,cAAK,CAAC8G,QAAQ,QACX9G;IAAGC,SAAS,EAAC,sBAAsB;mBAAa;IAAS,EACxDF,IAAI,CACQ,CACb;AAEhB,CAAC;;ACnDD,IAAMqjC,cAAY,GAAM9oC,QAAQ,uBAAoB;AACpD,IAAM+oC,kBAAgB,GAAM/oC,QAAQ,iBAAc;AAElD,AAEO,IAAMgpC,WAAS,GAAG,SAAZA,SAASA,CAAI7b,QAAkB,EAAE8b,SAAiB;EAAA,OAC7D/3B,SAAS,CAACwB,IAAI,CAAIo2B,cAAY,SAAIG,SAAS,EAAI9b,QAAQ,CAAC;AAAA;AAE1D,AAGO,IAAM+b,0BAAwB,GAAG,SAA3BA,wBAAwBA,CAAI/b,QAAkB;EAAA,OAAKjc,SAAS,CAACwB,IAAI,CAAIo2B,cAAY,6BAA0B3b,QAAQ,CAAC;AAAA;AAEjI,AAAO,IAAMgc,wBAAsB,GAAG,SAAzBA,sBAAsBA,CAAI3rB,SAAiB,EAAE2P,QAAkB;EAAA,OAC1Ejc,SAAS,CAACwB,IAAI,CAAIq2B,kBAAgB,uCAAkCvrB,SAAS,EAAI2P,QAAQ,CAAC;AAAA;AAE5F,AAGO,IAAM0zB,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIpuC,IAAS;EAAA,OAC5C/B,GAAG,CAACgC,IAAI,CAAIq2B,kBAAgB,4BAAyBt2B,IAAI,CAAC;AAAA;AAE5D,AAAO,IAAM42B,0BAAwB,GAAG,SAA3BA,wBAAwBA;EAAA,OAAS34B,GAAG,CAACoC,GAAG,CAAIi2B,kBAAgB,iCAA8B,CAAC;AAAA;;AChBxG,IAAKQ,SAQJ;AARD,WAAKA,OAAO;EACRA,gCAAqB;EACrBA,gCAAqB;EACrBA,4BAAiB;EACjBA,sCAA2B;EAC3BA,8CAAmC;EACnCA,4BAAiB;EACjBA,8BAAmB;AACvB,CAAC,EARIA,SAAO,KAAPA,SAAO;AAqBZ,IAAMuX,UAAU,GAAsB,CAClC;EACIr7C,IAAI,EAAE,cAAc;EACpBK,eAAe,EAAE,SAAS;EAC1BsB,IAAI,EAAEmiC,SAAO,CAAC8B;CACjB,CACJ;AAED,AAyBA,IAAM7jC,OAAK,GAAG,YAAY;AAE1B,IAAMiM,IAAE,GAAG,WAAW;AACtB,IAAM+1B,kBAAgB,GAAG;EACrBC,WAAW,EAAE,EAAE;EACfC,YAAY,EAAE,EAAE;EAChBC,UAAU,EAAE,EAAE;EACd7Z,IAAI,EAAE;CACT;AACD,IAAMixB,eAAe,GAAG,SAAlBA,eAAeA;EACjB,IAAM/2C,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAM4/B,SAAS,GAAGlwB,sBAAW,CAAC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACC,MAAM,CAACgwB,SAAS;IAAC;EACrE,IAAAt1B,SAAA,GAAwBC,cAAQ,CAAiB,IAAI,CAAC;IAA/CpN,IAAI,GAAAmN,SAAA;IAAEu1B,OAAO,GAAAv1B,SAAA;EACpB,IAAAK,UAAA,GAAgCJ,cAAQ,EAAO;IAAxCu1B,QAAQ,GAAAn1B,UAAA;IAAEo1B,WAAW,GAAAp1B,UAAA;EAC5B,IAAAG,UAAA,GAAoCP,cAAQ,CAAM,EAAE,CAAC;IAA9Cy1B,UAAU,GAAAl1B,UAAA;IAAEm1B,aAAa,GAAAn1B,UAAA;EAChC,IAAAG,UAAA,GAAwDV,cAAQ,CAAMg1B,kBAAgB,CAAC;IAAhFW,oBAAoB,GAAAj1B,UAAA;IAAEk1B,uBAAuB,GAAAl1B,UAAA;EACpD,IAAAG,UAAA,GAA8Cb,cAAQ,EAAO;IAAtD61B,eAAe,GAAAh1B,UAAA;IAAEi1B,kBAAkB,GAAAj1B,UAAA;EAC1C,IAAAmF,UAAA,GAA4ChG,cAAQ,CAAW,EAAE,CAAC;IAA3DwsC,cAAc,GAAAxmC,UAAA;IAAEymC,iBAAiB,GAAAzmC,UAAA;EAExC,IAAM+vB,gBAAgB,GAAG,IAAI;EAC7B,IAAA7vB,UAAA,GAA4ClG,cAAQ,CAAS,CAAC,CAAC;IAAxDg2B,cAAc,GAAA9vB,UAAA;IAAE+vB,iBAAiB,GAAA/vB,UAAA;EACxC,IAAAG,UAAA,GAAgCrG,cAAQ,CAAS,EAAE,CAAC;IAA7CsE,QAAQ,GAAA+B,UAAA;IAAE6vB,WAAW,GAAA7vB,UAAA;EAC5BrF,eAAS,CAAC;IACN9R,QAAQ,CAAC8D,KAAK,GAAGA,OAAK;GACzB,EAAE,EAAE,CAAC;EAEN,IAAM05C,OAAO,GAAG3W,CAAmBuW,UAAU,CAAgB;EAE7D,IAAMnW,oBAAoB,YAApBA,oBAAoBA;IAAA;;QAwBtB3gC,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAvB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA+N,KAAA,GAAAC,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkB2+B,0BAAwB,EAAE,EAAAv8B,IAAA,WAAtChC,GAAG;UACT,IAAI2H,IAAI,GAAG,IAAIm4B,IAAI,CAAC,CAAC9/B,GAAG,CAAC2H,IAAI,CAACyO,OAAO,CAAC,EAAE;YAAE9Z,IAAI,EAAE;WAAY,CAAC;UAC7D,IAAMyjC,OAAO,GAAG3qC,MAAM,CAAC4qC,GAAG,CAACC,eAAe,CAACt4B,IAAI,CAAC;UAChD,IAAIsiB,CAAC,GAAGrxB,QAAQ,CAACisB,aAAa,CAAC,GAAG,CAAC;UACnCoF,CAAC,CAAC30B,IAAI,GAAGyqC,OAAO;UAChB9V,CAAC,CAACnF,YAAY,CAAC,UAAU,EAAE9kB,GAAG,CAAC2H,IAAI,CAACu4B,QAAQ,CAAC;UAC7CjW,CAAC,CAAC9E,KAAK,EAAE;UACTjmB,QAAQ,CACJhC,QAAQ,CAAC;YACLZ,IAAI,EAAE,SAAS;YACfwO,OAAO,EAAE;WACZ,CAAC,CACL;;OACJ,YAAQzI,GAAG,EAAE;QACVnD,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAEzI,GAAG,CAACyI;SAChB,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA,CAAAiJ,MAAA,IAAAA,MAAA,CAAAL,KAAA;KAEJ,QAAAvR,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EA0BD,IAAM8mC,MAAM,GAAG3gC,iBAAW,WACfwlB,IAAS;IAAA;;;QAwFZ9lB,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAM2rB,OAAO,GAAQ5vB,QAAQ,CAAC0uB,cAAc,CAAC3e,IAAE,CAAC;QAChD,IAAM8S,KAAK,GAAQ7iB,QAAQ,CAAC0uB,cAAc,CAAC,gBAAgB,CAAC;QAC5D,IAAM8Y,WAAW,GAAQxnC,QAAQ,CAAC0uB,cAAc,CAAC,wBAAwB,CAAC;QAC1EkB,OAAO,KAAKA,OAAO,CAACz0B,KAAK,GAAG,EAAE,CAAC;QAC/B0nB,KAAK,KAAKA,KAAK,CAAC1nB,KAAK,GAAG,EAAE,CAAC;QAC3BqsC,WAAW,KAAKA,WAAW,CAACrsC,KAAK,GAAG,EAAE,CAAC;;MAAA,IAAAssC,KAAA;MA7FvC,IAAI,CAAC/jC,IAAI,IAAI,CAAC0oB,IAAI,EAAE,OAAArlB,OAAA,CAAAC,OAAA;MACpBV,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAqV,MAAA,GAAArH,MAAA,aAEtB;QACA,IAAMwX,QAAQ,GAAG,IAAI2B,QAAQ,EAAE;QAC/B3B,QAAQ,CAAC4B,MAAM,CAAC,MAAM,EAAEe,IAAI,EAAEA,IAAI,CAACzwB,IAAI,CAAC;QACxC,IAAM8hD,SAAS,GAAG/5C,IAAI,KAAKmiC,SAAO,CAAC8B,OAAO,GAAGvnC,aAAa,CAACs9C,KAAK,GAAGt9C,aAAa,CAAC03B,OAAO;QAAA,OAAA/wB,OAAA,CAAAC,OAAA,CACtE4+B,cAAc,CAACnc,QAAQ,EAAEg0B,SAAS,CAAC,EAAAr0C,IAAA,WAA/ChC,GAAG;UAAA,IAAAu2C,MAAA;UAAA,SAAA1kC,OAAA2kC,QAAA;YAAA,IAAAD,MAAA,SAAAC,QAAA;YAgETt3C,QAAQ,CACJhC,QAAQ,CAAC;cACLZ,IAAI,EAAE,SAAS;cACfwO,OAAO,EAAE;aACZ,CAAC,CACL;;UApED,IAAI9K,GAAG,CAAC2H,IAAI,IAAI3H,GAAG,CAAC2H,IAAI,CAAC+L,MAAM,GAAG,CAAC,EAAE;YACjCyiC,iBAAiB,CAACn2C,GAAG,CAAC2H,IAAI,CAAC;YAC3BzI,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;YAAAwjC,KAAA;YAAA;;UAE9B,IAAA30B,MAAA;YAAA,IACGpP,IAAI,IAAImiC,SAAO,CAAC8B,OAAO;cAAA,OAAA5gC,OAAA,CAAAC,OAAA,CACGolB,IAAI,CAACrqB,IAAI,EAAE,EAAAqH,IAAA,WAA/Bw+B,WAAW;gBACjB,IAAIC,QAAQ,GAAGD,WAAW,CAACt/B,IAAI,EAAE;gBACjC,IAAMorB,IAAI,GAAGmU,QAAQ,CAACjrC,KAAK,CAAC,IAAI,CAAC,CAACwL,GAAG,CAAC,UAAC0/B,GAAQ;kBAAA,OAAKA,GAAG,CAACx/B,IAAI,EAAE;kBAAC;gBAC/D,IAAMy/B,WAAW,GAAGrU,IAAI,CAACsU,SAAS,CAAC,UAACF,GAAQ;kBAAA,OAAKA,GAAG,CAAClrC,KAAK,CAAC,GAAG,CAAC,CAACD,QAAQ,CAAC,YAAY,CAAC;kBAAC;gBACvF,IAAIorC,WAAW,KAAK,CAAC,EAAE;kBACnB,MAAM,IAAInzB,KAAK,CAAC,kCAAkC,CAAC;;gBAGvDizB,QAAQ,GAAGnU,IAAI,CAACvY,KAAK,CAAC4sB,WAAW,CAAC,CAACn7B,IAAI,CAAC,IAAI,CAAC;gBAE7C,IAAMq7B,UAAU,GAAGC,IAAI,CAACC,KAAK,CAACN,QAAQ,EAAE;kBAAEniB,MAAM,EAAE,IAAI;kBAAE0iB,cAAc,EAAE;iBAAM,CAAC;gBAC/E,IAAM1iB,MAAM,GAAGuiB,UAAU,CAACI,IAAI,CAACC,MAAM;gBACrC,IAAMC,QAAQ,GAAGN,UAAU,CAACl5B,IAAI;gBAChC,IAAI,CAAC,CAAC,CAACw5B,QAAQ,CAACztB,MAAM,EAAE;kBACpBxU,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;kBAC3BqC,QAAQ,CACJhC,QAAQ,CAAC;oBACLZ,IAAI,EAAE,QAAQ;oBACdwO,OAAO,EAAE;mBACZ,CAAC,CACL;kBAAAu1B,KAAA;kBAAA;;gBAIL,IAAMe,SAAS,GAAG,EAAE;gBACpB,IAAMC,MAAM,GAAiB,EAAE;gBAC/B,KAAK,IAAI/7B,EAAC,GAAG,CAAC,EAAEA,EAAC,GAAG67B,QAAQ,CAACztB,MAAM,EAAEpO,EAAC,IAAI87B,SAAS,EAAE;kBACjD,IAAME,SAAS,GAAGH,QAAQ,CAACptB,KAAK,CAACzO,EAAC,EAAEA,EAAC,GAAG87B,SAAS,CAAC;kBAClD,IAAMqV,UAAU,GAAenV,SAAS,CAACtgC,GAAG,CAAC,UAAC0/B,GAAQ;oBAAA,OAClDz7B,MAAM,CAAClD,MAAM,CAAC2+B,GAA6B,CAAC,CAAC1/B,GAAG,CAAC,UAAAwxC,CAAC;sBAAA,OAAI,CAACA,CAAC,WAADA,CAAC,GAAI,EAAE,EAAElhC,QAAQ,EAAE,CAACpQ,IAAI,EAAE;sBAAC;oBACrF;kBAED,IAAIod,MAAM,EAAE;oBACRm4B,UAAU,CAACC,OAAO,CAACp4B,MAAM,CAAC;;kBAG9B7e,OAAO,CAACC,GAAG,CAAC;oBAAE+2C,UAAU,EAAVA;mBAAY,CAAC;kBAC3BpV,MAAM,CAAC9Y,IAAI,CAACkuB,UAAU,CAAC;;gBAE1B,IAAAtrC,MAAA,GAAAs2B,MAAA,CAEmBJ,MAAM,YAAjB/7B,CAAC,EAA8B;kBAAA,OAAA3F,OAAA,CAAAC,OAAA,CAC9Bm2C,oBAAoB,CAAC;oBACvB1U,MAAM,EAAEA,MAAM,CAAC/7B,CAAC;mBACnB,CAAC,EAAAtD,IAAA;oBAAA,OAAArC,OAAA,CAAAC,OAAA,CACI,IAAID,OAAO,CAAC,UAAAK,GAAG;sBAAA,OAAIq3B,UAAU,CAACr3B,GAAG,EAAE,GAAG,CAAC;sBAAC,EAAAgC,IAAA;;iBACjD;gBAAA,IAAAmJ,MAAA,IAAAA,MAAA,CAAAnJ,IAAA,SAAAmJ,MAAA,CAAAnJ,IAAA;;;cAAA,IAAAuJ,MAAA;gBAAA,IAEGk0B,gBAAgB;kBAAA,IAAAp0B,MAAA;oBAAA,IACZ/O,IAAI,IAAImiC,SAAO,CAACiD,eAAe;sBAAA,OAAA/hC,OAAA,CAAAC,OAAA,CACzBw+B,0BAAwB,CAAC/b,QAAQ,CAAC,EAAArgB,IAAA;;;kBAAA,IAAAqJ,MAAA,IAAAA,MAAA,CAAArJ,IAAA,SAAAqJ,MAAA,CAAArJ,IAAA;;kBAAA,OAAArC,OAAA,CAAAC,OAAA,CAGtCs+B,WAAS,CAAC7b,QAAQ,EAAE/lB,IAAI,CAACgV,QAAQ,EAAE,CAAC,EAAAtP,IAAA;;;cAAA,IAAAuJ,MAAA,IAAAA,MAAA,CAAAvJ,IAAA,SAAAuJ,MAAA,CAAAvJ,IAAA;;;UAAA,OAAA0J,MAAA,IAAAA,MAAA,CAAA1J,IAAA,GAAA0J,MAAA,CAAA1J,IAAA,CAAA6P,MAAA,IAAAA,MAAA,CAAAnG,MAAA;;OAUrD,YAAQrJ,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACVvL,OAAO,CAAC6C,KAAK,CAAC,iBAAiB,EAAED,GAAG,CAAC;QACrCnD,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAsS,MAAA,IAAAA,MAAA,CAAAlQ,IAAA,GAAAkQ,MAAA,CAAAlQ,IAAA,CAAAiQ,MAAA,IAAAA,MAAA,CAAAC,MAAA;KASJ,QAAA7Y,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KACD,CAACiD,IAAI,CAAC,CACT;EAED,IAAMqlC,iBAAiB,YAAjBA,iBAAiBA,CAAU3c,IAAS;IAAA;;QAgCtC9lB,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAM4e,KAAK,GAAQ7iB,QAAQ,CAAC0uB,cAAc,CAAC,iBAAiB,CAAC;QAC7D7L,KAAK,KAAKA,KAAK,CAAC1nB,KAAK,GAAG,EAAE,CAAC;;MAjC3B,IAAI,CAAC2rC,cAAc,EAAE;QACjBxgC,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE;SACZ,CAAC,CACL;QACD,OAAAnL,OAAA,CAAAC,OAAA;;MAEJ,IAAI,CAACtD,IAAI,IAAI,CAAC0oB,IAAI,EAAE,OAAArlB,OAAA,CAAAC,OAAA;MACpBV,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAwV,MAAA,GAAAxH,MAAA,aAEtB;QACA,IAAMwX,QAAQ,GAAG,IAAI2B,QAAQ,EAAE;QAC/B3B,QAAQ,CAAC4B,MAAM,CAAC,MAAM,EAAEe,IAAI,EAAEA,IAAI,CAACzwB,IAAI,CAAC;QAAA,OAAAoL,OAAA,CAAAC,OAAA,CAClCy+B,wBAAsB,CAACqB,cAAc,EAAErd,QAAQ,CAAC,EAAArgB,IAAA;UACtD9C,QAAQ,CACJhC,QAAQ,CAAC;YACLZ,IAAI,EAAE,SAAS;YACfwO,OAAO,EAAE;WACZ,CAAC,CACL;;OACJ,YAAQzI,GAAG,EAAE;QAAA,IAAAmJ,cAAA,EAAAC,mBAAA;QACVvM,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAU,cAAA,GAAAnJ,GAAG,CAAC0E,QAAQ,cAAAyE,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7D,IAAI,cAAA8D,mBAAA,uBAAlBA,mBAAA,CAAoB/O,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAyS,MAAA,IAAAA,MAAA,CAAArQ,IAAA,GAAAqQ,MAAA,CAAArQ,IAAA,CAAAoQ,MAAA,IAAAA,MAAA,CAAAC,MAAA;KAKJ,QAAAhZ,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAM+kB,SAAS,YAATA,SAASA,CAAUrc,MAAW;IAAA;;QA2BhC7C,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAM4e,KAAK,GAAQ7iB,QAAQ,CAAC0uB,cAAc,CAAC3e,IAAE,CAAC;QAC9C8S,KAAK,KAAKA,KAAK,CAAC1nB,KAAK,GAAG,EAAE,CAAC;;MA5B3B,IAAI,CAACkrC,QAAQ,IAAI,CAACA,QAAQ,EAAE,OAAAt/B,OAAA,CAAAC,OAAA;MAC5BV,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAsV,OAAA,GAAAtH,MAAA,aACtB;QACA,IAAMwX,QAAQ,GAAG,IAAI2B,QAAQ,EAAE;QAC/B3B,QAAQ,CAAC4B,MAAM,CAAC,MAAM,EAAEgb,QAAQ,EAAEA,QAAQ,CAAC1qC,IAAI,CAAC;QAChD8tB,QAAQ,CAAC4B,MAAM,CAAC,aAAa,EAAEliB,MAAM,CAAC48B,WAAW,CAAC;QAClDtc,QAAQ,CAAC4B,MAAM,CAAC,cAAc,EAAEliB,MAAM,CAAC68B,YAAY,CAAC;QACpD78B,MAAM,CAAC88B,UAAU,CAACx4B,OAAO,CAAC,UAAC8U,IAAS;UAChCkH,QAAQ,CAAC4B,MAAM,CAAC,YAAY,EAAE9I,IAAI,CAAC;SACtC,CAAC;QAAA,OAAAxb,OAAA,CAAAC,OAAA,CACIw+B,0BAAwB,CAAC/b,QAAQ,CAAC,EAAArgB,IAAA;UACxC9C,QAAQ,CACJhC,QAAQ,CAAC;YACLZ,IAAI,EAAE,SAAS;YACfwO,OAAO,EAAE;WACZ,CAAC,CACL;UACDw0B,uBAAuB,CAACZ,kBAAgB,CAAC;;OAC5C,YAAQr8B,GAAG,EAAE;QAAA,IAAAmP,cAAA,EAAAC,mBAAA;QACVvS,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAA0G,cAAA,GAAAnP,GAAG,CAAC0E,QAAQ,cAAAyK,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7J,IAAI,cAAA8J,mBAAA,uBAAlBA,mBAAA,CAAoB/U,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAuS,OAAA,IAAAA,OAAA,CAAAnQ,IAAA,GAAAmQ,OAAA,CAAAnQ,IAAA,CAAAgQ,OAAA,IAAAA,OAAA,CAAAG,OAAA;KAIJ,QAAA9Y,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EACD,IAAMuoC,eAAe,GAAG,SAAlBA,eAAeA,CAAIjQ,OAAe;IACpCgO,iBAAiB,CAAChO,OAAO,CAAC59B,KAAK,CAAC;GACnC;EAED,IAAM8tC,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAI5C,QAAa;IAC3CO,kBAAkB,CAACP,QAAQ,CAAC;IAC5BW,WAAW,CAAC,CAAAX,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE1qC,IAAI,KAAI,EAAE,CAAC;GAEpC;EACD,IAAMutC,mBAAmB,GAAG,SAAtBA,mBAAmBA;IACrB,IAAI,CAACvC,eAAe,EAAE;MAClBrgC,QAAQ,CACJhC,QAAQ,CAAC;QACLZ,IAAI,EAAE,QAAQ;QACdwO,OAAO,EAAE;OACZ,CAAC,CACL;MACD;;IAEJ62B,iBAAiB,CAACpC,eAAe,CAAC;GACrC;EAED,IAAMwC,eAAe,GAAG,SAAlBA,eAAeA;IACjB7iC,QAAQ,CACJnC,QAAQ,CAAC;MACLob,MAAM,EAAE,IAAI;MACZ7b,IAAI,EAAE,SAAS;MACfwO,OAAO,EACH,gCAAgC;MACpCsT,SAAS,EAAE,SAAXA,SAASA;QACL0jB,mBAAmB,EAAE;;KAE5B,CAAC,CACL;GACJ;EACD,OAAO;IACH/C,SAAS,EAATA,SAAS;IACTqX,OAAO,EAAPA,OAAO;IACPztC,EAAE,EAAFA,IAAE;IACFq2B,OAAO,EAAPA,OAAO;IACPmB,MAAM,EAANA,MAAM;IACNd,oBAAoB,EAApBA,oBAAoB;IACpBC,uBAAuB,EAAvBA,uBAAuB;IACvBlhB,SAAS,EAATA,SAAS;IACTqgB,OAAO,EAAPA,SAAO;IACPQ,QAAQ,EAARA,QAAQ;IACRC,WAAW,EAAXA,WAAW;IACXE,aAAa,EAAbA,aAAa;IACbD,UAAU,EAAVA,UAAU;IACVM,gBAAgB,EAAhBA,gBAAgB;IAChBmC,eAAe,EAAfA,eAAe;IACfD,iBAAiB,EAAjBA,iBAAiB;IACjBE,wBAAwB,EAAxBA,wBAAwB;IACxBC,mBAAmB,EAAnBA,mBAAmB;IACnBpC,cAAc,EAAdA,cAAc;IACd1xB,QAAQ,EAARA,QAAQ;IACR+zB,eAAe,EAAfA,eAAe;IACflC,oBAAoB,EAApBA,oBAAoB;IACpBqW,cAAc,EAAdA,cAAc;IAAEC,iBAAiB,EAAjBA;GACnB;AACL,CAAC;;;ACjXD,AAYA,IAAMh4C,QAAM,GAAGC,UAAU,CAAC;EACtBugC,WAAW,GAAAgY,WAAA,GAAEv4C,UACF,EAAE,cAAAu4C,WAAA,uBADAA,WAAA,CACEz1C,IAAI,EAAE,CAAC1E,QAAQ,EAAE;EAChCoiC,YAAY,GAAAgY,YAAA,GAAEx4C,UACH,EAAE,cAAAw4C,YAAA,uBADCA,YAAA,CAER11C,IAAI,EAAE,CACP7C,KAAK,CAAC,eAAe,CAAC,CACtB7B,QAAQ,EAAE;EACfqiC,UAAU,EAAEzgC,SACF,EAAE,CACP5B,QAAQ,EAAE,CACV6P,IAAI,CACD,eAAe,EACf,uBAAuB,EACvB;IACI,OACI,CAAC,CAAC,IAAI,CAACC,MAAM,CAACuyB,UAAU,IAAI,CAAC,CAAC,IAAI,CAACvyB,MAAM,CAACuyB,UAAU,CAACnrB,MAAM;GAElE,CACJ;EACLsR,IAAI,GAAA6xB,YAAA,GAAEz4C,UAAU,EAAE,cAAAy4C,YAAA,uBAAZA,YAAA,CAAc31C,IAAI,EAAE,CAAC1E,QAAQ;CACtC,CAAC;AAEF,IAAMs6C,SAAS,GAAO,SAAhBA,SAASA;EACX,IAAAC,gBAAA,GAGId,eAAe,EAAE;IAHb5W,oBAAoB,GAAA0X,gBAAA,CAApB1X,oBAAoB;IAAEjhB,SAAS,GAAA24B,gBAAA,CAAT34B,SAAS;IAAE2gB,SAAS,GAAAgY,gBAAA,CAAThY,SAAS;IAAEC,OAAO,GAAA+X,gBAAA,CAAP/X,OAAO;IAAEr2B,EAAE,GAAAouC,gBAAA,CAAFpuC,EAAE;IAAE81B,OAAO,GAAAsY,gBAAA,CAAPtY,OAAO;IAAEQ,QAAQ,GAAA8X,gBAAA,CAAR9X,QAAQ;IAAEC,WAAW,GAAA6X,gBAAA,CAAX7X,WAAW;IAAEE,aAAa,GAAA2X,gBAAA,CAAb3X,aAAa;IAC1GgX,OAAO,GAAAW,gBAAA,CAAPX,OAAO;IAAEjW,MAAM,GAAA4W,gBAAA,CAAN5W,MAAM;IAAEV,AAAkBI,oBAAoB,GAAAkX,gBAAA,CAApBlX,oBAAoB;IACvDqW,cAAc,GAAAa,gBAAA,CAAdb,cAAc;EAElB,IAAAn7B,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EAET,OACIrgB;IAAKC,SAAS,EAAC;KAEP4kC,CACI7kC,6BAACA,cAAK,CAAC8G,QAAQ,QACX9G,6BAACyB,gBAAK;IACFxB,SAAS,EAAC,QAAQ;IAClByB,IAAI,EAAC,MAAM;IACXqM,EAAE,EAAE,aAAa;IAEjBxM,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;MAAA,OAAK8mC,MAAM,CAAC9mC,CAAC,CAACmK,MAAM,CAACyhB,KAAK,CAAC,CAAC,CAAC,CAAC;;IAC/C2d,MAAM,EAAC;IACT,EACFhoC,6BAACyB,gBAAK;IACFxB,SAAS,EAAC,QAAQ;IAClByB,IAAI,EAAC,MAAM;IACXqM,EAAE,EAAE,wBAAwB;IAE5BxM,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;MAAA,OAAK8mC,MAAM,CAAC9mC,CAAC,CAACmK,MAAM,CAACyhB,KAAK,CAAC,CAAC,CAAC,CAAC;;IAC/C2d,MAAM,EAAC;IACT,EACFhoC;IAAKC,SAAS,EAAC;KACXD,6BAAC+G,aAAM;IACHC,aAAa,EAAEy9B,oBAAoB;IACnCvzB,kBAAkB;IAClBjK,gBAAgB,EAAE1D,QAAM;IACxB2D,QAAQ,EAAE,SAAVA,QAAQA,CAAGC,MAAM,EAAEqqB,OAAO;MACtBhO,SAAS,CAACrc,MAAM,CAAC;MACjBm9B,WAAW,CAAC,EAAE,CAAC;MACfE,aAAa,CAAC,EAAE,CAAC;MACjBhT,OAAO,CAACC,SAAS,EAAE;;KAGtB,UAAA2qB,SAAS;IACN,IAEIr0C,OAAO,GAIPq0C,SAAS,CAJTr0C,OAAO;MACPC,MAAM,GAGNo0C,SAAS,CAHTp0C,MAAM;IAIV,OACIhI,6BAACoJ,cAAG;MAACnJ,SAAS,EAAC;OACXD,6BAACyB,gBAAK;MACFxB,SAAS,EAAC,QAAQ;MAClByB,IAAI,EAAC,MAAM;MACXqM,EAAE,EAAEA,EAAE;MAENxM,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;QACb6lC,WAAW,CAAC7lC,CAAC,CAACmK,MAAM,CAACyhB,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B+xB,SAAS,CAACn0C,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC;QAC3C,IAAM4Y,KAAK,GAAQ7iB,QAAQ,CAAC0uB,cAAc,CAAC3e,EAAE,CAAC;QAC9C8S,KAAK,KAAKA,KAAK,CAAC1nB,KAAK,GAAG,EAAE,CAAC;OAC9B;MACD6uC,MAAM,EAAC;MACT,EACFhoC,6BAACqJ,cAAG;MAACE,EAAE,EAAE,CAAC;MAAEtJ,SAAS,EAAC;OAClBD,6BAACoJ,cAAG;MAACnJ,SAAS,EAAC;OACXD,6BAACqJ,cAAG;MAACE,EAAE,EAAE,EAAE;MAAEtJ,SAAS,EAAC;OACnBD,6BAACimB,eAAa;MAAClmB,IAAI,EAAEsgB,CAAC,CAAC,yBAAyB;MAAK,EACrDrgB,6BAAC66C,eAAe;MACZtwC,GAAG,EAAE,0BAA0B;MAC/BuwC,OAAO,EAAE,wBAAwB;MACjC/6C,IAAI,EAAEsgB,CAAC,CAAC,yBAAyB,CAAC;MAClCoQ,UAAU,EAAE0T,SAAS;MACrB/jC,eAAe,EAAE,SAAS;MAC1ByB,OAAO,EAAE,SAATA,OAAOA;QACHuiC,OAAO,CAACP,OAAO,CAACiD,eAAe,CAAC;;MAEtC,EACD,CAAC,CAACzC,QAAQ,IAAIrkC;MAAGL,KAAK,EAAE;QAAEiB,KAAK,EAAE,SAAS;QAAEy7C,SAAS,EAAE,QAAQ;QAAEC,SAAS,EAAE;;OAAUjY,QAAQ,CAAC1qC,IAAI,CAAK,CACvG,EAEF,CAAC0qC,QAAQ,IACLrkC,6BAACqJ,cAAG;MAACE,EAAE,EAAE,EAAE;MAAEtJ,SAAS,EAAC;OAClB8H,OAAO,CAACqiB,IAAI,IAAIpiB,MAAM,CAACoiB,IAAI,IACxBpqB,6BAACH,YAAY;MACTE,IAAI,EAAEiI,MAAM,CAACoiB;MAEpB,CAER,CAEH,CACJ,EACNpqB,6BAACqJ,cAAG;MAACE,EAAE,EAAE,CAAC;MAAEtJ,SAAS,EAAC;OAClBD,6BAACoJ,cAAG;MAACnJ,SAAS,EAAC;OACXD,6BAACqJ,cAAG;MAACE,EAAE,EAAE,EAAE;MAAEtJ,SAAS,EAAC;OACnBD,6BAAC2f,iBAAM;MACHkjB,IAAI,EAAC,QAAQ;MACbjiC,KAAK,EAAC,SAAS;MACfiB,OAAO,EAAE,SAATA,OAAOA;QAAA,OAAQojC,oBAAoB,EAAE;;OAErCjlC;MAAGC,SAAS,EAAC;OACRogB,CAAC,CAAC,mBAAmB,CAAC,OAAErgB,6BAACu8C,oBAAiB;MAACxyC,IAAI,EAAE,EAAE;MAAE9J,SAAS,EAAC;MAAS,CACzE,CACC,CACP,EACND,6BAACqJ,cAAG;MAACE,EAAE,EAAE,EAAE;MAAEtJ,SAAS,EAAC;OACnBD,6BAACimB,eAAa;MAAClmB,IAAI,EAAEsgB,CAAC,CAAC,cAAc;MAAK,EACzCm7B,OAAO,CAACp1C,GAAG,CAAC,UAACo2C,MAAW;MAAA,OACrBx8C,6BAAC66C,eAAe;QACZtwC,GAAG,EAAEiyC,MAAM,CAACz8C,IAAI;QAChB+6C,OAAO,EAAE,aAAa;QACtB/6C,IAAI,EAAEy8C,MAAM,CAACz8C,IAAI;QACjB0wB,UAAU,EAAE0T,SAAS;QACrB/jC,eAAe,EAAEo8C,MAAM,CAACp8C,eAAe;QACvCyB,OAAO,EAAE,SAATA,OAAOA;UAAA,OAAQuiC,OAAO,CAACoY,MAAM,CAAC96C,IAAI,CAAC;;QACrC;KACL,CAAC,CACA,EACL,CAAA45C,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAExiC,MAAM,IAAG,CAAC,IAAIwiC,cAAc,CAACl1C,GAAG,CAAC,UAACsB,KAAK,EAAE8U,KAAK;MAAA,OAC3Dxc,6BAACH,YAAY;QACT0K,GAAG,EAAEiS,KAAK;QACVzc,IAAI,EAAE2H;QACR;KACL,CAAC,CACA,CACJ,CACJ;GAEb,CACI,CACP,CACO,CAuEpB,CAGH;AAEd,CAAC;;AC3OD,IAAM8gC,IAAI,GAAG,CACT;EACIrpB,IAAI,EAAE,wBAAwB;EAC9Brd,KAAK,EAAE,WAAW;EAClBud,SAAS,EAAEooB;CACd,EACD;EACItoB,IAAI,EAAE,6BAA6B;EACnCrd,KAAK,EAAE,gBAAgB;EACvBud,SAAS,EAAEi5B;CACd,EACD;EACIn5B,IAAI,EAAE,2BAA2B;EACjCrd,KAAK,EAAE,cAAc;EACrBud,SAAS,EAAEo7B;CACd,EACD;EACIt7B,IAAI,EAAE,yBAAyB;EAC/Brd,KAAK,EAAE,YAAY;EACnBud,SAAS,EAAE68B;CACd,CACJ;AAGD,IAAMO,aAAa,GAAG,SAAhBA,aAAaA;EACf,OAAOz8C,6BAACsoC,UAAU;IAACE,IAAI,EAAEA;IAAQ;AACrC,CAAC;;ACXD,IAAMkU,aAAa,GAAG,QAAQ;AAE9B,IAAMC,gBAAgB,GAAc,SAA9BA,gBAAgBA,CAAA78C,IAAA;MAClBsT,QAAQ,GAAAtT,IAAA,CAARsT,QAAQ;IACR4jC,QAAQ,GAAAl3C,IAAA,CAARk3C,QAAQ;IACRF,SAAS,GAAAh3C,IAAA,CAATg3C,SAAS;IACT8F,OAAO,GAAA98C,IAAA,CAAP88C,OAAO;IACPC,SAAS,GAAA/8C,IAAA,CAAT+8C,SAAS;IACTC,QAAQ,GAAAh9C,IAAA,CAARg9C,QAAQ;IACRC,eAAe,GAAAj9C,IAAA,CAAfi9C,eAAe;IACfC,UAAU,GAAAl9C,IAAA,CAAVk9C,UAAU;EAEV,IAAM14C,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAA4b,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACT,IAAAxR,SAAA,GAA8CC,cAAQ,CAAM,EAAE,CAAC;IAAxDmuC,eAAe,GAAApuC,SAAA;IAAEquC,kBAAkB,GAAAruC,SAAA;EAE1C,IAAMsuC,UAAU,GAAG;IACfnG,QAAQ,EAAEA,QAAQ,IAAI,MAAM;IAC5BF,SAAS,EAAEA,SAAS,IAAI;GAC3B;EACD,IAAMsG,QAAQ,GAAGH,eAAe,IAAI9pC,UAAU,CAACC,QAAkB,CAAC;EAElE,IAAMiqC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAI5+C,CAAM;IAC7BA,CAAC,CAAC6+C,cAAc,EAAE;IAElB,IAAIC,MAAM,GAAG,IAAIC,UAAU,EAAE;IAC7B,IAAIC,OAAO,GAAGh/C,CAAC,CAACmK,MAAM,CAACyhB,KAAK,CAAC,CAAC,CAAC;IAE/B,IAAIozB,OAAO,CAAC1zC,IAAI,GAAG2yC,aAAa,EAAE;MAC9Bp4C,QAAQ,CACJhC,QAAQ,CAAC;QACLZ,IAAI,EAAE,QAAQ;QACdwO,OAAO,EAAE;OACZ,CAAC,CACL;MACD;;IAGJqtC,MAAM,CAACG,SAAS,GAAG;MACfd,OAAO,CAACa,OAAO,CAAC;MAChBP,kBAAkB,CAACK,MAAM,CAAC9jB,MAAM,CAAC;KACpC;IAED,IAAIgkB,OAAO,EAAE;MACTF,MAAM,CAACI,aAAa,CAACF,OAAO,CAAC;;IAEjC,CAAC,CAACT,UAAU,IAAIA,UAAU,EAAE;GAC/B;EAED,IAAMY,qBAAqB,GACvBX,eAAe,IAAI7pC,QAAQ,GACvBpT;IAAKL,KAAK,EAAEw9C,UAAU;IAAE30C,GAAG,EAAE40C,QAAQ;IAAE3hC,GAAG,EAAC;IAAU,GACrD,IAAI;EAEZ,OACIzb;IAAKC,SAAS,EAAC;KACXD,6BAACqI,eAAI;IAACpI,SAAS,EAAC;KACZD,6BAACyB,gBAAK;IACFxB,SAAS,EAAC,QAAQ;IAClByB,IAAI,EAAC,MAAM;IACXqM,EAAE,EAAC,YAAY;IACfxM,QAAQ,EAAE87C,iBAAiB;IAC3BrV,MAAM,EAAC;IACT,EACFhoC;IAAKC,SAAS,EAAC;KACXD,6BAACkmB,gBAAK;IACF40B,OAAO,EAAC,YAAY;IACpBjY,IAAI,EAAC,QAAQ;IACbmY,QAAQ,EAAE,CAAC;IACX/6C,SAAS,EAAEmI,MAAM,CAAC,kBAAkB;KAEnC20C,eAAe,IAAI,IAAI,GACpB/8C,6BAAC69C,eAAY,OAAG,GAEhB79C,6BAACA,cAAK,CAAC8G,QAAQ,QACX9G;IACIC,SAAS,EAAC,sBAAsB;mBACpB;IACX,EACJg9C,eAAe,IAAI7pC,QAAQ,GACtB,aAAa,GACbiN,CAAC,CAAC,aAAa,CAAC,CAE7B,CACG,EAEPw8B,SAAS,IAAIe,qBAAqB,IAC/B59C,6BAAC2f,iBAAM;IACH5V,IAAI,EAAC,IAAI;IACTnJ,KAAK,EAAC,QAAQ;IACdX,SAAS,EAAKmI,MAAM,CAAC,sBAAsB,CAAC,2DAAwD;IACpGvG,OAAO,EAAE,SAATA,OAAOA;MACHq7C,kBAAkB,CAAC,IAAI,CAAC;MACxBJ,QAAQ,IAAIA,QAAQ,EAAE;;KAG1B98C,6BAAC8f,aAAU,OAAG,CAErB,CACC,CACH,EACN89B,qBAAqB,CACpB;AAEd,CAAC;;ACjFD,IAAM93B,WAAS,GAAe;EAC1B/X,EAAE,EAAE,EAAE;EACNpH,SAAS,EAAE,EAAE;EACbC,QAAQ,EAAE,EAAE;EACZnD,KAAK,EAAE,EAAE;EACT6zB,WAAW,EAAE,EAAE;EACfhrB,KAAK,EAAE,EAAE;EACT+qB,QAAQ,EAAE,IAAI;EACdjhB,oBAAoB,EAAE,EAAE;EACxBo0B,aAAa,EAAE;CAClB;AAED,IAAMsT,aAAa,GAAG,wBAAwB;AAC9C,IAAM1vC,OAAK,GAAG,aAAa;AAE3B,IAAM2vC,aAAa,GAAG,SAAhBA,aAAaA,CAAIhwC,EAAW;EAC9B,IAAMzJ,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAMoK,QAAQ,GAAGC,0BAAW,EAAE;EAC9B,IAAAC,SAAA,GAAoCC,cAAQ,CAAagX,WAAS,CAAC;IAA5Dk4B,UAAU,GAAAnvC,SAAA;IAAEovC,aAAa,GAAApvC,SAAA;EAChC,IAAAK,UAAA,GAAkCJ,cAAQ,CAAU,KAAK,CAAC;IAAnDovC,SAAS,GAAAhvC,UAAA;IAAEivC,YAAY,GAAAjvC,UAAA;EAC9B,IAAAG,UAAA,GAA4CP,cAAQ,CAAkB,EAAE,CAAC;IAAlE+vB,cAAc,GAAAxvB,UAAA;IAAEg/B,iBAAiB,GAAAh/B,UAAA;EACxC,IAAAG,UAAA,GAAwBV,cAAQ,CAAM,IAAI,CAAC;IAApCsb,IAAI,GAAA5a,UAAA;IAAEotC,OAAO,GAAAptC,UAAA;EACpB,IAAAG,UAAA,GAA4Bb,cAAQ,CAAU,KAAK,CAAC;IAA7Cmc,MAAM,GAAAtb,UAAA;IAAEub,SAAS,GAAAvb,UAAA;EACxB,IAAAmF,UAAA,GAAsChG,cAAQ,CAAoB;MAC9DsvC,kBAAkB,EAAE,KAAK;MACzBC,kBAAkB,EAAE,KAAK;MACzBC,mBAAmB,EAAE,KAAK;MAC1BC,yBAAyB,EAAE,KAAK;MAChCC,gBAAgB,EAAE;KACrB,CAAC;IANKC,WAAW,GAAA3pC,UAAA;IAAE4pC,cAAc,GAAA5pC,UAAA;EAQlC,IAAMqW,aAAa,YAAbA,aAAaA;IAAA;MACfpgB,YAAY,CAACiB,OAAO,CAACxR,MAAM,CAACC,QAAQ,CAACC,IAAI,EAAE,MAAM,CAAC;MAClDwwB,SAAS,CAAC,IAAI,CAAC;MAAA,OAAAnmB,OAAA,CAAAC,OAAA;KAClB,QAAAvG,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EACD,IAAAuW,UAAA,GAAwClG,cAAQ,CAAW,EAAE,CAAC;IAAvD6vC,YAAY,GAAA3pC,UAAA;IAAE4pC,eAAe,GAAA5pC,UAAA;EAEpC,IAAMk+B,iBAAiB,GAAG,SAApBA,iBAAiBA;IACnBiL,YAAY,CAAC,CAACD,SAAS,CAAC;GAC3B;EAEDpuC,eAAS,CAAC;IACN9R,QAAQ,CAAC8D,KAAK,GAAGsM,OAAK;IACtB8c,SAAS,CAAC,KAAK,CAAC;IAChB,IAAI,CAAC,CAACngB,YAAY,CAACD,OAAO,CAACtQ,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAC,EAC5CqQ,YAAY,CAAC2B,UAAU,CAAClS,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAC;GACpD,EAAE,EAAE,CAAC;EACNoV,eAAS,CAAC;IACN,IAAI,CAAC,CAAC/B,EAAE,EAAE;MACN8wC,kBAAkB,EAAE;MACpBz7B,OAAO,EAAE;;IAGb,CAACrV,EAAE,IAAIygC,eAAe,EAAE;GAC3B,EAAE,CAACzgC,EAAE,CAAC,CAAC;EAER,IAAM8wC,kBAAkB,GAAGj6C,iBAAW;IAAA;;QAelCN,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAd3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA+N,KAAA,GAAAC,MAAA,aAEtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkBmvB,eAAe,CAACpmB,EAAY,CAAC,EAAA3G,IAAA,WAAzChC,GAAG;UACTs5C,cAAc,CAACt5C,GAAG,CAAC2H,IAAI,CAAC;;OAC3B,YAAQtF,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA,CAAAiJ,MAAA,IAAAA,MAAA,CAAAL,KAAA;KAGJ,QAAAvR,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,CAACsP,EAAE,CAAC,CAAC;EAER,IAAMqV,OAAO,GAAGxe,iBAAW;IAAA;;QAqBvBN,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MApB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAsO,MAAA,GAAAN,MAAA,aAEtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkBkd,SAAO,CAACnU,EAAY,CAAC,EAAA3G,IAAA,WAAjChC,GAAG;UAAA,IAAA05C,eAAA,EAAAppC,SAAA,EAAAS,UAAA;UACT8nC,aAAa,CAAAztC,QAAA,KACNpL,GAAG,CAAC2H,IAAI;YACXuqB,WAAW,EAAEhT,cAAM,CAAC,IAAIpY,IAAI,CAAC9G,GAAG,CAAC2H,IAAI,CAACuqB,WAAW,CAAC,EAAEr9B,WAAW,CAAC;YAChEqS,KAAK,EAAElH,GAAG,CAAC2H,IAAI,CAACT,KAAK,CAAClG,GAAG,CAAC,UAAC+yB,CAAS;cAAA,OAAKA,CAAC,IAAI,YAAY,GAAGA,CAAC,GAAGx8B,KAAK,CAACI,UAAU;;YACpF,CAAC;UACF6hD,eAAe,EAAAE,eAAA,GAAC15C,GAAG,aAAHA,GAAG,wBAAAsQ,SAAA,GAAHtQ,GAAG,CAAE2H,IAAI,cAAA2I,SAAA,uBAATA,SAAA,CAAWpJ,KAAK,YAAAwyC,eAAA,GAAI,EAAE,CAAC;UACvC9gD,QAAQ,CAAC8D,KAAK,IAAAqU,UAAA,GAAG/Q,GAAG,CAAC2H,IAAI,cAAAoJ,UAAA,uBAARA,UAAA,CAAU3Y,QAAQ;;OACtC,YAAQiK,GAAG,EAAE;QAAA,IAAAmJ,cAAA,EAAAC,mBAAA;QACVvM,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAU,cAAA,GAAAnJ,GAAG,CAAC0E,QAAQ,cAAAyE,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7D,IAAI,cAAA8D,mBAAA,uBAAlBA,mBAAA,CAAoB/O,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAuL,MAAA,IAAAA,MAAA,CAAAnJ,IAAA,GAAAmJ,MAAA,CAAAnJ,IAAA,CAAAqJ,MAAA,IAAAA,MAAA,CAAAF,MAAA;KAGJ,QAAA9R,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,CAACsP,EAAE,CAAC,CAAC;EAER,IAAMygC,eAAe,YAAfA,eAAeA;IAAA;sCACb;QAAA,OAAAzpC,OAAA,CAAAC,OAAA,CACkBivB,WAAW,CAAC;UAC1Bx6B,MAAM,EAAE;SACX,CAAC,EAAA2N,IAAA,WAFIhC,GAAG;UAAA,IAAAqpC,aAAA,EAAAsQ,UAAA;UAGT35C,GAAG,CAAC2H,IAAI,IAAIshC,iBAAiB,CAAC,EAAAI,aAAA,IAAAsQ,UAAA,GAAA35C,GAAG,CAAC2H,IAAI,EAAC3G,GAAG,cAAAqoC,aAAA,uBAAZA,aAAA,CAAAlY,IAAA,CAAAwoB,UAAA,EAAe,UAAC56B,MAAe;YAAA,OAAM;cAC/DjrB,KAAK,EAAEirB,MAAM,CAAC1gB,KAAK;cACnBtK,KAAK,EAAEgrB,MAAM,CAACpW;aACjB;WAAC,CAAC,KAAI,EAAE,CAAC;;OACb,YAAQtG,GAAG,EAAE;QAAA,IAAAmP,cAAA,EAAAC,mBAAA;QACVvS,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAA0G,cAAA,GAAAnP,GAAG,CAAC0E,QAAQ,cAAAyK,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7J,IAAI,cAAA8J,mBAAA,uBAAlBA,mBAAA,CAAoB/U,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAA2L,MAAA,IAAAA,MAAA,CAAAvJ,IAAA,GAAAuJ,MAAA,CAAAvJ,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMutB,UAAU,GAAGpnB,iBAAW,CAAC,UAAC6Y,IAAa;IACzC,CAAC,CAACA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,GAC5B9O,QAAQ,CAACmvC,aAAa,gBAAargC,IAAI,CAAE,CAAC,GAC1C9O,QAAQ,CAACmvC,aAAa,CAAC;GAChC,EAAE,EAAE,CAAC;EAEN,IAAM7xB,WAAW,GAAGrnB,iBAAW,WACpBmI,IAAS;IAAA;;QAiDZzI,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAhD3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAwV,MAAA,GAAAxH,MAAA,aACtB;QAAA,SAAAoH;UAUA,IAAMwK,IAAI,GAAG,CAAC,CAAC9T,EAAE,GAAGoU,QAAM,GAAGjX,QAAM;UACnC,CAAC6C,EAAE,IAAI,OAAOhB,IAAI,CAACgB,EAAE;UAErB,IAAIhB,IAAI,CAACuqB,WAAW,KAAK,EAAE,EAAE;YACzB,OAAOvqB,IAAI,CAACuqB,WAAW;;UAC1B,OAAAvyB,OAAA,CAAAC,OAAA,CAEoB6c,IAAI,CAAC9U,IAAI,CAAC,EAAA3F,IAAA,WAAzBqyB,MAAM;YAAA,SAAAxiB;cAeZ3S,QAAQ,CACJhC,QAAQ,CAAC;gBACLZ,IAAI,EAAE,SAAS;gBACfwO,OAAO,GAAK,CAAC,CAACnC,EAAE,GAAG,QAAQ,GAAG,QAC1B;eACP,CAAC,CACL;;YApBD,IAAI,CAAC,CAAC0rB,MAAM,EAAE;cACVvX,SAAO,CAACuX,MAAM,CAAC1sB,IAAI,CAACgB,EAAE,CAAC,CAAC3G,IAAI,CAAC,UAAA3I,CAAC;gBAC1ButB,UAAU,CAACvtB,CAAC,CAACsO,IAAI,CAACvP,QAAQ,CAAC;eAC9B,CAAC;;YAGN,IAAI,CAACuQ,EAAE,EAAE;cACLtH,KAAK,CAAC,cAAc,GAAGgzB,MAAM,CAAC1sB,IAAI,CAACtJ,KAAK,GAAG,MAAM,WAAQg2B,MAAM,CAAC1sB,IAAI,CAACrJ,QAAQ,QAAI,CAAC;;YACrF,IAAAoN,MAAA;cAAA,IAEG2oB,MAAM,CAAC1sB,IAAI,CAACgB,EAAE;gBAAA,OAAAhJ,OAAA,CAAAC,OAAA,CACR4vB,qBAAqB,CAAC6E,MAAM,CAAC1sB,IAAI,CAACgB,EAAE,EAAEhB,IAAI,CAACwnB,UAAU,CAAC,EAAAntB,IAAA;;;YAAA,OAAA0J,MAAA,IAAAA,MAAA,CAAA1J,IAAA,GAAA0J,MAAA,CAAA1J,IAAA,CAAA6P,MAAA,IAAAA,MAAA,CAAAnG,MAAA;;;QAAA,IAAAwG,MAAA;UAAA,IA5B5D,CAAC,CAAC8S,IAAI;YACN,IAAM3C,QAAQ,GAAG,IAAI2B,QAAQ,EAAE;YAC/B,IAAQzvB,IAAI,GAAKywB,IAAI,CAAbzwB,IAAI;YACZ8tB,QAAQ,CAAC4B,MAAM,CAAC,MAAM,EAAEe,IAAI,EAAEzwB,IAAI,CAAC;YAAA,OAAAoL,OAAA,CAAAC,OAAA,CACjB4iB,mBAAmB,CAACH,QAAQ,CAAC,EAAArgB,IAAA,WAAzChC,GAAG;cAAA,IAAA45C,UAAA;cACT,IAAMl5C,QAAQ,GAAGV,GAAG,aAAHA,GAAG,wBAAA45C,UAAA,GAAH55C,GAAG,CAAE2H,IAAI,cAAAiyC,UAAA,uBAATA,UAAA,CAAWz0C,GAAG;cAC/BwC,IAAI,CAACqJ,oBAAoB,GAAGtQ,QAAQ;;;;QAAA,OAAAwR,MAAA,IAAAA,MAAA,CAAAlQ,IAAA,GAAAkQ,MAAA,CAAAlQ,IAAA,CAAAiQ,MAAA,IAAAA,MAAA,CAAAC,MAAA;OAgC3C,YAAQ7P,GAAG,EAAE;QAAA,IAAAsP,cAAA,EAAAC,mBAAA;QACV1S,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAA6G,cAAA,GAAAtP,GAAG,CAAC0E,QAAQ,cAAA4K,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAchK,IAAI,cAAAiK,mBAAA,uBAAlBA,mBAAA,CAAoBlV,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAyS,MAAA,IAAAA,MAAA,CAAArQ,IAAA,GAAAqQ,MAAA,CAAArQ,IAAA,CAAAoQ,MAAA,IAAAA,MAAA,CAAAC,MAAA;KAEJ,QAAAhZ,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KACD,CAACsP,EAAE,EAAEqc,IAAI,CAAC,CACb;EAED,IAAM60B,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIN,YAAoB;IAC5C,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAChkD,QAAQ,CAACgkD,YAAY,CAAC;GACpE;EAED,IAAMO,qBAAqB,YAArBA,qBAAqBA,CAAUnyC,IAAS;IAAA;;QAkB1CzI,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAjB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAsV,OAAA,GAAAtH,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACMquB,cAAc,CAACtmB,IAAI,CAAC,EAAA3F,IAAA;UAC1B9C,QAAQ,CACJhC,QAAQ,CAAC;YACLZ,IAAI,EAAE,SAAS;YACfwO,OAAO,EAAE;WACZ,CAAC,CACL;;OACJ,YAAQzR,CAAC,EAAE;QAAA,IAAA0gD,WAAA,EAAAC,gBAAA;QACR96C,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAivC,WAAA,GAAA1gD,CAAC,CAAC0N,QAAQ,cAAAgzC,WAAA,wBAAAC,gBAAA,GAAVD,WAAA,CAAYpyC,IAAI,cAAAqyC,gBAAA,uBAAhBA,gBAAA,CAAkBt9C,KAAK,KAAIrD,CAAC,CAACyR;SACzC,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAuS,OAAA,IAAAA,OAAA,CAAAnQ,IAAA,GAAAmQ,OAAA,CAAAnQ,IAAA,CAAAgQ,OAAA,IAAAA,OAAA,CAAAG,OAAA;KAEJ,QAAA9Y,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMsR,qBAAqB,GAAGnL,iBAAW,WAAQmI,IAAS;IAAA;;QAuBtDzI,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAtB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAAiV,OAAA,GAAAjH,MAAA,aAEtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACMsuB,oBAAoB,CAACvmB,IAAI,CAAC,EAAA3F,IAAA;UAChC9C,QAAQ,CACJhC,QAAQ,CAAC;YACLZ,IAAI,EAAE,SAAS;YACfwO,OAAO,EAAE;WACZ,CAAC,CACL;;OACJ,YAAQzI,GAAG,EAAE;QAAA,IAAAiQ,cAAA,EAAAC,mBAAA;QACVrT,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EACH,EAAAwH,cAAA,GAAAjQ,GAAG,CAAC0E,QAAQ,cAAAuL,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc3K,IAAI,cAAA4K,mBAAA,uBAAlBA,mBAAA,CAAoB7V,KAAK,KACzB2F,GAAG,CAACyI,OAAO,IACX;SACP,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAkS,OAAA,IAAAA,OAAA,CAAA9P,IAAA,GAAA8P,OAAA,CAAA9P,IAAA,CAAAwQ,OAAA,IAAAA,OAAA,CAAAV,OAAA;KAGJ,QAAAzY,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,EAAE,CAAC;EAEN,IAAM4gD,mBAAmB,GAAGz6C,iBAAW,WAC5B2I,MAAc;IAAA;;QA0BjBjJ,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAzB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA+V,OAAA,GAAA/H,MAAA,aACtB;QACA,IAAMiV,IAAI,GAAqB;UAC3B3X,MAAM,EAAEA;SACX;QAAA,OAAAxI,OAAA,CAAAC,OAAA,CACiB4uB,qBAAqB,CAAC1O,IAAI,CAAC,EAAA9d,IAAA,WAAvChC,GAAG;UAAA,IACLA,GAAG,CAAC2H,IAAI;YACR,IAAMvP,QAAQ,GAAMwgD,UAAU,CAACr3C,SAAS,SAAIq3C,UAAU,CAACp3C,QAAU;YACjEH,KAAK,kBAAgBjJ,QAAQ,YAAO4H,GAAG,CAAC2H,IAAM,CAAC;YAE/CzI,QAAQ,CACJhC,QAAQ,CAAC;cACLZ,IAAI,EAAE,SAAS;cACfwO,OAAO;aACV,CAAC,CACL;;;OAER,YAAQzI,GAAG,EAAE;QAAA,IAAAyQ,cAAA,EAAAC,mBAAA;QACV7T,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAgI,cAAA,GAAAzQ,GAAG,CAAC0E,QAAQ,cAAA+L,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAcnL,IAAI,cAAAoL,mBAAA,uBAAlBA,mBAAA,CAAoBrW,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgT,OAAA,IAAAA,OAAA,CAAA5Q,IAAA,GAAA4Q,OAAA,CAAA5Q,IAAA,CAAA2Q,OAAA,IAAAA,OAAA,CAAAC,OAAA;KAEJ,QAAAvZ,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KACD,CAACu/C,UAAU,CAAC,CACf;EAED,OAAO;IACHA,UAAU,EAAVA,UAAU;IACVhyB,UAAU,EAAVA,UAAU;IACVC,WAAW,EAAXA,WAAW;IACX7B,IAAI,EAAJA,IAAI;IACJwyB,OAAO,EAAPA,OAAO;IACP3xB,MAAM,EAANA,MAAM;IACNC,SAAS,EAATA,SAAS;IACTC,aAAa,EAAbA,aAAa;IACb+zB,qBAAqB,EAArBA,qBAAqB;IACrBnvC,qBAAqB,EAArBA,qBAAqB;IACrB4uC,YAAY,EAAZA,YAAY;IACZM,kBAAkB,EAAlBA,kBAAkB;IAClBI,mBAAmB,EAAnBA,mBAAmB;IACnBxgB,cAAc,EAAdA,cAAc;IACdqf,SAAS,EAATA,SAAS;IACThL,iBAAiB,EAAjBA,iBAAiB;IACjBuL,WAAW,EAAXA;GACH;AACL,CAAC;;ACnUD,IAAMa,UAAU,GAAG97C,UAAU,CAAC;EAC1BmD,SAAS,EAAEnD,UAAU,EAAE,CAAC5B,QAAQ,CAAC,wBAAwB,CAAC;EAC1DgF,QAAQ,EAAEpD,UAAU,EAAE,CAAC5B,QAAQ,CAAC,uBAAuB,CAAC;EACxD6B,KAAK,EAAED,UAAU,EAAE,CAACC,KAAK,CAAC,kBAAkB,CAAC,CAAC7B,QAAQ,CAAC,mBAAmB,CAAC;EAC3E0K,KAAK,EAAE9I,SAAS,EAAE,CAAC+7C,EAAE,CAAC/7C,UAAU,EAAE,CAAC,CAACg8C,GAAG,CAAC,CAAC,EAAE,kBAAkB;CAChE,CAAC;;ACLF,IAAMC,oBAAoB,GAAGj8C,UAAU,CAAC;EACpCk8C,WAAW,EAAEl8C,UAAU,EAAE,CAAC5B,QAAQ,CAAC,8BAA8B,CAAC;EAClE+9C,WAAW,EAAEn8C,UAAU,EAAE,CAAC5B,QAAQ,CAAC,0BAA0B,CAAC;EAC9Dg+C,oBAAoB,EAAEp8C,UAAU,EAAE,CAAC5B,QAAQ,CAAC,8BAA8B;CAC7E,CAAC;;ACCF,IAAMi+C,aAAa,GAAqB;EACpCtmD,WAAW,EAAE,CAAC;EACdC,QAAQ,EAAE;CACb;AAED,IAAMsmD,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIxzC,KAAe,EAAEnT,KAAc;EAC1D,IAAA0V,SAAA,GAA0BC,cAAQ,CAAW,EAAE,CAAC;IAAzCgqB,KAAK,GAAAjqB,SAAA;IAAEqwB,QAAQ,GAAArwB,SAAA;EACtB,IAAAK,UAAA,GAAgCJ,cAAQ,CAAU,KAAK,CAAC;IAAjDq1B,SAAS,GAAAj1B,UAAA;IAAEjN,UAAU,GAAAiN,UAAA;EAC5B,IAAAG,UAAA,GAA4BP,cAAQ,CAAmB+wC,aAAa,CAAC;IAA9Dt5C,MAAM,GAAA8I,UAAA;IAAE0wC,SAAS,GAAA1wC,UAAA;EACxB,IAAAG,UAAA,GAAwBV,cAAQ,EAAU;IAAnC2O,IAAI,GAAAjO,UAAA;IAAEpN,OAAO,GAAAoN,UAAA;EAEpB,IAAMlL,QAAQ,GAAGC,sBAAW,EAAE;EAE9B,IAAMy7C,cAAc,GAAGp7C,iBAAW;IAAA;;QAY9B3C,UAAU,CAAC,KAAK,CAAC;;MAXjBA,UAAU,CAAC,IAAI,CAAC;MAAA,IAAA+N,KAAA,GAAAC,MAAA,aACZ;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkBwuB,iBAAiB,CAACjtB,MAAM,CAAC,EAAAa,IAAA,WAArChC,GAAG;UAAA,IAAAsQ,SAAA;UACT,IAAMojB,KAAK,GAAiB,EAAApjB,SAAA,GAAAtQ,GAAG,CAAC2H,IAAI,cAAA2I,SAAA,uBAARA,SAAA,CAAU2N,KAAK,KAAI,EAAE;UACjD6b,QAAQ,CAAC+gB,iBAAiB,CAACnnB,KAAK,CAAC,CAAC;;OACrC,cAAa;QACVx0B,QAAQ,CAAChC,QAAQ,CAAC;UACdZ,IAAI,EAAE,OAAO;UACbwO,OAAO,EAAE;SACZ,CAAC,CAAC;OACN;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA,CAAAiJ,MAAA,IAAAA,MAAA,CAAAL,KAAA;KAEJ,QAAAvR,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,CAACmb,IAAI,CAACC,SAAS,CAACtT,MAAM,CAAC,CAAC,CAAC;EAE5B,IAAM25C,kBAAkB,GAAGt7C,iBAAW;IAAA;;QAkBlC3C,UAAU,CAAC,KAAK,CAAC;;MAjBjB,IAAI,CAAC9I,KAAK,EAAE,OAAA4L,OAAA,CAAAC,OAAA;MACZ,IAAM4yC,CAAC,GAAG9e,KAAK,CAAC/S,IAAI,CAAC,UAAArb,CAAC;QAAA,OAAIA,CAAC,CAACvR,KAAK,KAAKA,KAAK;QAAC;MAC5C,IAAIy+C,CAAC,EAAE;QACHx1C,OAAO,CAACw1C,CAAC,CAAC;QACV,OAAA7yC,OAAA,CAAAC,OAAA;;MAEJ/C,UAAU,CAAC,IAAI,CAAC;MAAA,IAAAsO,MAAA,GAAAN,MAAA,aACZ;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkByuB,2BAA2B,CAACt6B,KAAK,CAAC,EAAAiO,IAAA,WAA9ChC,GAAG;UACT,IAAMqY,IAAI,GAAerY,GAAG,CAAC2H,IAAI;UACjC3K,OAAO,CAAC;YACJlJ,KAAK,EAAEsgC,cAAc,CAAC/b,IAAI,CAAC;YAC3BtkB,KAAK,EAAEskB,IAAI,CAACiW;WACf,CAAC;;OACL,YAAQjsB,GAAG,EAAE;QACV5C,OAAO,CAACC,GAAG,CAAC,MAAM,EAAE2C,GAAG,CAAC;OAC3B;MAAA,OAAA1C,OAAA,CAAAC,OAAA,CAAAuL,MAAA,IAAAA,MAAA,CAAAnJ,IAAA,GAAAmJ,MAAA,CAAAnJ,IAAA,CAAAqJ,MAAA,IAAAA,MAAA,CAAAF,MAAA;KAEJ,QAAA9R,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,CAACtF,KAAK,CAAC,CAAC;EAEX,IAAM8mD,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAInnB,KAAmB;IAC1C,OAAOA,KAAK,CAAC1yB,GAAG,CAAC,UAAAsE,CAAC;MAAA,OAAK;QACnBxR,KAAK,EAAEsgC,cAAc,CAAC9uB,CAAC,CAAC;QACxBvR,KAAK,EAAEuR,CAAC,CAACgpB;OACZ;KAAC,CAAC;GACN;EAED,IAAM8F,cAAc,GAAG,SAAjBA,cAAcA,CAAIE,UAAsB;IAC1C,IAAMD,MAAM,GAAG,EAAE;IACjB,IAAQ5zB,SAAS,GAA0C6zB,UAAU,CAA7D7zB,SAAS;MAAE8zB,UAAU,GAA8BD,UAAU,CAAlDC,UAAU;MAAE/zB,UAAU,GAAkB8zB,UAAU,CAAtC9zB,UAAU;MAAEnC,KAAK,GAAWi2B,UAAU,CAA1Bj2B,KAAK;MAAEo/B,IAAI,GAAKnJ,UAAU,CAAnBmJ,IAAI;IACtD,IAAMjJ,KAAK,GAAG,EAAE;IAChB,CAAC,CAAC/zB,SAAS,IAAI+zB,KAAK,CAACjM,IAAI,CAAC9nB,SAAS,CAAC;IACpC,CAAC,CAAC8zB,UAAU,IAAIC,KAAK,CAACjM,IAAI,CAACgM,UAAU,CAAC;IACtC,CAAC,CAAC/zB,UAAU,IAAIg0B,KAAK,CAACjM,IAAI,CAAC/nB,UAAU,CAAC;IACtC,CAAC,CAACg0B,KAAK,CAAC9gB,MAAM,IAAI2gB,MAAM,CAAC9L,IAAI,CAACiM,KAAK,CAAChvB,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC,CAACnH,KAAK,IAAIg2B,MAAM,CAAC9L,IAAI,CAAClqB,KAAK,CAAC;IAC7B,YAAUg2B,MAAM,CAAC7uB,IAAI,CAAC,KAAK,CAAC,IAAGi4B,IAAI,UAAQA,IAAI,SAAM,EAAE;GAC1D;EAED,IAAMsd,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIhnD,KAAa;IACpC4mD,SAAS,CAAC,UAAA7rC,KAAK;MAAA,OAAA1D,QAAA,KAAU0D,KAAK;QAAE5a,YAAY,EAAEH;;KAAQ,CAAC;GAC1D;EAED,IAAMinD,kBAAkB,GAAGx7C,iBAAW,CAAC,UAACy7C,SAA2B;IAC/DN,SAAS,CAAAvvC,QAAA,KACFjK,MAAM,EACN85C,SAAS,CACf,CAAC;GACL,EAAE,CAACzmC,IAAI,CAACC,SAAS,CAACtT,MAAM,CAAC,CAAC,CAAC;EAE5BuJ,eAAS,CAAC;;IACN,CAAC,GAAAwwC,aAAA,GAAC/5C,MAAM,CAAC+F,KAAK,cAAAg0C,aAAA,eAAZA,aAAA,CAAcxnC,MAAM,KAAIknC,cAAc,EAAE;GAC7C,EAAE,CAACpmC,IAAI,CAACC,SAAS,CAACtT,MAAM,CAAC,CAAC,CAAC;EAE5BuJ,eAAS,CAAC;IACNswC,kBAAkB,CAAC;MACf9zC,KAAK,EAALA;KACH,CAAC;GACL,EAAE,CAACsN,IAAI,CAACC,SAAS,CAACvN,KAAK,CAAC,CAAC,CAAC;EAE3BwD,eAAS,CAAC;IACNowC,kBAAkB,EAAE;GACvB,EAAE,CAAC/mD,KAAK,CAAC,CAAC;EAEX,OAAO;IACH2/B,KAAK,EAALA,KAAK;IACLqL,SAAS,EAATA,SAAS;IACT1mB,IAAI,EAAJA,IAAI;IACJ0iC,iBAAiB,EAAjBA;GACH;AACL,CAAC;;AChGD,IAAMI,kBAAkB,GAAe,SAAjCA,kBAAkBA,CAAAzgD,IAAA;MAAkB3G,KAAK,GAAA2G,IAAA,CAAL3G,KAAK;IAAEmT,KAAK,GAAAxM,IAAA,CAALwM,KAAK;IAAE/K,QAAQ,GAAAzB,IAAA,CAARyB,QAAQ;EAC5D,IAAAi/C,qBAAA,GAKIV,qBAAqB,CAACxzC,KAAK,EAAEnT,KAAK,CAAC;IAJnC2/B,KAAK,GAAA0nB,qBAAA,CAAL1nB,KAAK;IACLqL,SAAS,GAAAqc,qBAAA,CAATrc,SAAS;IACT1mB,IAAI,GAAA+iC,qBAAA,CAAJ/iC,IAAI;IACJ0iC,iBAAiB,GAAAK,qBAAA,CAAjBL,iBAAiB;EAGrB,OACIngD,6BAACuwB,cAAc;IACXtP,OAAO,EAAE6X,KAAK;IACd3/B,KAAK,EAAEskB,IAAI;IACXjc,WAAW,EAAC,aAAa;IACzBD,QAAQ,EAAEA,QAAQ;IAClB4iC,SAAS,EAAEA,SAAS;IACpBsc,aAAa,EAAEN;IACjB;AAEV,CAAC;;ACUD,IAAMO,WAAW,GAAG,aAAa;AACjC,IAAMC,gBAAgB,GAAG,WAAW;AACpC,IAAMhuB,iBAAe,GAAG,iBAAiB;AAEzC,IAAMiuB,UAAU,GAAG,SAAbA,UAAUA;EACZ,IAAAhyB,UAAA,GAAeC,wBAAS,EAAkB;IAAlC9gB,EAAE,GAAA6gB,UAAA,CAAF7gB,EAAE;EACV,IAAM0P,IAAI,GAAGxJ,sBAAW,CAAC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACC,MAAM,CAACsJ,IAAI;IAAC;EAC3D,IAAA0C,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACT,IAAAwgC,cAAA,GAkBI9C,aAAa,CAAChwC,EAAE,CAAC;IAjBjBiwC,UAAU,GAAA6C,cAAA,CAAV7C,UAAU;IACVhyB,UAAU,GAAA60B,cAAA,CAAV70B,UAAU;IACVC,WAAW,GAAA40B,cAAA,CAAX50B,WAAW;IACX7B,IAAI,GAAAy2B,cAAA,CAAJz2B,IAAI;IACJwyB,OAAO,GAAAiE,cAAA,CAAPjE,OAAO;IACP3xB,MAAM,GAAA41B,cAAA,CAAN51B,MAAM;IACNC,SAAS,GAAA21B,cAAA,CAAT31B,SAAS;IACTC,aAAa,GAAA01B,cAAA,CAAb11B,aAAa;IACb+zB,qBAAqB,GAAA2B,cAAA,CAArB3B,qBAAqB;IACrBnvC,qBAAqB,GAAA8wC,cAAA,CAArB9wC,qBAAqB;IACrB4uC,YAAY,GAAAkC,cAAA,CAAZlC,YAAY;IACZM,kBAAkB,GAAA4B,cAAA,CAAlB5B,kBAAkB;IAClBI,mBAAmB,GAAAwB,cAAA,CAAnBxB,mBAAmB;IACnBxgB,cAAc,GAAAgiB,cAAA,CAAdhiB,cAAc;IACdqf,SAAS,GAAA2C,cAAA,CAAT3C,SAAS;IACThL,iBAAiB,GAAA2N,cAAA,CAAjB3N,iBAAiB;IACjBuL,WAAW,GAAAoC,cAAA,CAAXpC,WAAW;EAGf,IAAMqC,gBAAgB,GAAG;IACrBpB,WAAW,EAAE,EAAE;IACfC,WAAW,EAAE,EAAE;IACfC,oBAAoB,EAAE;GACzB;EAED,IAAMl8B,MAAM,GAAG,CAAC,CAAC3V,EAAE,GAAGsS,CAAC,MAAIsgC,gBAAkB,CAAC,GAAGtgC,CAAC,MAAIqgC,WAAa,CAAC;EAEpE,IAAM77B,WAAW,GAAG,CAAC,CAAC9W,EAAE,GAAGsS,CAAC,CAAC,QAAQ,CAAC,GAAGA,CAAC,CAAC,QAAQ,CAAC;EACpD,IAAMm6B,OAAO,GAAG,SAAVA,OAAOA;IACT,IAAI3/C,GAAG,GAAGL,MAAM,CAACC,QAAQ,CAAC6W,MAAM,GAAG,sBAAsB,GAAGvD,EAAE;IAC9DvT,MAAM,CAAC2P,IAAI,CAACtP,GAAG,CAAC;GACnB;EAED,IAAMkmD,UAAU,YAAVA,UAAUA,CAAUt9C,KAAa;IAAA;MACnC,IAAIsJ,IAAI,GAAG;QACPtJ,KAAK,EAAEA;OACV;MACDsM,qBAAqB,CAAChD,IAAI,CAAC;MAAA,OAAAhI,OAAA,CAAAC,OAAA;KAC9B,QAAAvG,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMuiD,SAAS,GAAG,SAAZA,SAASA;IACX,IAAI,CAACjzC,EAAE,EAAE;IACT,IAAMjM,KAAK,GAAG,wCAAwC;IACtD,IAAI0kB,OAAO,CAAC1kB,KAAK,CAAC,IAAI,IAAI,EAAE;MACxBu9C,mBAAmB,CAACtxC,EAAE,CAAC;;GAE9B;EAED,OACI/N,6BAAC+G,aAAM;IACHC,aAAa,EAAEg3C,UAAU;IACzB9sC,kBAAkB;IAClBjK,gBAAgB,EAAE1D,UAAM;IACxB2D,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,MAAM;MACZ8kB,WAAW,CAAAzb,QAAA,KACJrJ,MAAM;QACTmF,KAAK,EAAEnF,MAAM,CAACmF,KAAK,CAAClG,GAAG,CAAC,UAAA+yB,CAAC;UAAA,OACrBA,CAAC,IAAIx8B,KAAK,CAACI,UAAU,GAAGo8B,CAAC,GAAG,YAAY;;QAE/C,CAAC;MACFjO,SAAS,CAAC,KAAK,CAAC;MAChB,IAAI,CAAC,CAACngB,YAAY,CAACD,OAAO,CAACtQ,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAC,EAC5CqQ,YAAY,CAAC2B,UAAU,CAAClS,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAC;;KAGpD,UAAA0hD,SAAS;IACN,IACIj1C,MAAM,GAONi1C,SAAS,CAPTj1C,MAAM;MACNY,OAAO,GAMPq0C,SAAS,CANTr0C,OAAO;MACPC,MAAM,GAKNo0C,SAAS,CALTp0C,MAAM;MACNC,aAAa,GAIbm0C,SAAS,CAJTn0C,aAAa;MACbL,YAAY,GAGZw0C,SAAS,CAHTx0C,YAAY;MACZC,UAAU,GAEVu0C,SAAS,CAFTv0C,UAAU;MACVC,YAAY,GACZs0C,SAAS,CADTt0C,YAAY;IAGhB,IAAMm5C,WAAW,GAAGr8C,iBAAW,CAC3B,UAACi+B,IAAY;MACT,IAAI17B,MAAM,CAACmF,KAAK,CAAC3R,QAAQ,CAACkoC,IAAI,CAAC,EAAE;QAC7B56B,aAAa,CACT,OAAO,EACPd,MAAM,CAACmF,KAAK,CAAC/F,MAAM,CAAC,UAAA4yB,CAAC;UAAA,OAAIA,CAAC,KAAK0J,IAAI;UAAC,CACvC;QACD;;MAGJ,IAAI,CAAClmC,KAAK,CAACK,OAAO,EAAEL,KAAK,CAACM,MAAM,CAAC,CAACtC,QAAQ,CAACkoC,IAAI,CAAC,EAAE;QAC9C56B,aAAa,CAAC,OAAO,EAAE,CAAC46B,IAAI,CAAC,CAAC;QAC9B;;MAGJ,IACI17B,MAAM,CAACmF,KAAK,CAAC3R,QAAQ,CAACgC,KAAK,CAACK,OAAO,CAAC,IACpCL,KAAK,CAACK,OAAO,IAAI6lC,IAAI,EACvB;QACE56B,aAAa,CAAC,OAAO,EAAE,CAAC46B,IAAI,CAAC,CAAC;QAC9B;;MAeJ56B,aAAa,CAAC,OAAO,KAAAwd,MAAA,CAAMte,MAAM,CAACmF,KAAK,GAAEu2B,IAAI,EAAC,CAAC;KAClD,EACD,CAAC17B,MAAM,CAACmF,KAAK,CAAC,CACjB;IAED,OACItM;MACIC,SAAS,+CAA4CnC,WAAW,IAAI,GAAG,GAAGsK,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;OAE/FpI,6BAAComB,UAAU;MAACC,IAAI,EAAE4E;MAAU,EAC5BjrB;MAAIC,SAAS,EAAC;OAAQyjB,MAAM,CAAM,EAElC1jB,6BAACoJ,cAAG;MAACnJ,SAAS,EAAC;OACXD,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAACoJ,cAAG,QACApJ,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAAC0I,oBAAS,QACN1I,6BAACimB,eAAa;MACVlmB,IAAI,EAAEsgB,CAAC,CAAC,YAAY,CAAC;MACrBpgB,SAAS,EAAC;MACZ,EACFD,6BAACyB,gBAAK;MACF9H,IAAI,EAAC,WAAW;MAChBR,KAAK,EAAEgO,MAAM,CAACR,SAAS;MACvBpF,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;QACbmJ,YAAY,CAACnJ,CAAC,CAAC;QACf0sB,aAAa,EAAE;OAClB;MACDxiB,MAAM,EAAEd,UAAU,CAAC,SAAS,CAAC;MAC7BrG,WAAW,EAAE6e,CAAC,CAAC,YAAY,CAAC;MAC5BpgB,SAAS,EAAEmI,MAAM,CAAC,YAAY;MAChC,EACDL,OAAO,CAACpB,SAAS,IACdqB,MAAM,CAACrB,SAAS,IACZ3G,6BAACH,YAAY;MACTE,IAAI,EAAEiI,MAAM,CAACrB;MAEpB,CACG,CACV,EACN3G,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAAC0I,oBAAS,QACN1I,6BAACkmB,gBAAK,QAAE7F,CAAC,CAAC,eAAe,CAAC,CAAS,EACnCrgB,0CACIA,6BAACkhD,UAAU;MACP/nD,KAAK,EAAEgO,MAAM,CAACmwB,WAAW;MACzB6pB,WAAW,EAAC,OAAO;MACnBC,aAAa;MACbC,iBAAiB;MACjBC,gBAAgB;MAChBC,YAAY,EAAC,QAAQ;MACrBrV,QAAQ,EACJ/kC,MAAM,CAACmwB,WAAW,GACZkqB,MAAM,CACF,IAAIt1C,IAAI,CACJ/E,MAAM,CAACmwB,WAAW,CACrB,CACJ,GACD,IAAI;MAEd/1B,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;QACb29C,SAAS,CAACn0C,aAAa,CACnB,aAAa,EACbqc,cAAM,CACF7lB,CAAC,EACDxE,WAAW,CACd,CACJ;QACDkxB,aAAa,EAAE;OAClB;MACDs2B,eAAe,EAAEphC,CAAC,CACd,eAAe,CAClB;MACDqhC,WAAW,EACP1hD,6BAACyB,gBAAK;QACFC,IAAI,EAAC,MAAM;QACX/B,KAAK,EAAE;UACH6kB,KAAK,EAAE;SACV;QACDhjB,WAAW,EAAE6e,CAAC,CACV,eAAe;;MAI7B,CACA,CACE,CACV,CACJ,EACNrgB,6BAACoJ,cAAG,QACApJ,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAAC0I,oBAAS,QACN1I,6BAACimB,eAAa;MACVlmB,IAAI,EAAEsgB,CAAC,CAAC,WAAW,CAAC;MACpBpgB,SAAS,EAAC;MACZ,EACFD,6BAACyB,gBAAK;MACF9H,IAAI,EAAC,UAAU;MACfR,KAAK,EAAEgO,MAAM,CAACP,QAAQ;MACtBrF,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;QACbmJ,YAAY,CAACnJ,CAAC,CAAC;QACf0sB,aAAa,EAAE;OAClB;MACDxiB,MAAM,EAAEd,UAAU,CAAC,UAAU,CAAC;MAC9BrG,WAAW,EAAE6e,CAAC,CAAC,WAAW,CAAC;MAC3BpgB,SAAS,EAAEmI,MAAM,CAAC,YAAY;MAChC,EACDL,OAAO,CAACnB,QAAQ,IACboB,MAAM,CAACpB,QAAQ,IACX5G,6BAACH,YAAY;MACTE,IAAI,EAAEiI,MAAM,CAACpB;MAEpB,CACG,CACV,EACN5G,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAAC0I,oBAAS,QACN1I,6BAACimB,eAAa;MAAClmB,IAAI,EAAEsgB,CAAC,CAAC,OAAO;MAAK,EACnCrgB,6BAACoJ,cAAG,QACApJ,6BAACqJ,cAAG;MACAE,EAAE,EAAE,EAAE;MACNtJ,SAAS,EAAC;OAET/D,UAAU,CAACkK,GAAG,CACX,UAACy8B,IAAY;MAAA,OACT7iC;QACIuK,GAAG,EAAEs4B,IAAI;QACT5iC,SAAS,EAAC;SAEVD,6BAACyB,gBAAK;QACFC,IAAI,EAAC,UAAU;QACfqM,EAAE,qBAAmB80B,IAAM;QAC3B3pC,KAAK,EACD2pC,IAAI,KACJ,kBAAkB,GACZ,gBAAgB,QACbA,IAAM;QAEnB75B,OAAO,EAAE7B,MAAM,CAACmF,KAAK,CAAC3R,QAAQ,CAC1BkoC,IAAI,CACP;QACDthC,QAAQ,EAAE,SAAVA,QAAQA;UACJ,IACI,CAAC,CAACwM,EAAE,KACF0wC,WAAW,CAACD,gBAAgB,IAC1B3b,IAAI,KACA,SAAS,IACZ4b,WAAW,CAACL,kBAAkB,IAC3Bvb,IAAI,KACA,WAAY,IACnB4b,WAAW,CAACJ,kBAAkB,IAC3Bxb,IAAI,KACA,WAAY,IACnB4b,WAAW,CAACF,yBAAyB,IAClC1b,IAAI,KACA,kBAAmB,IAC1BA,IAAI,IACD,SAAS,KACR4b,WAAW,CAACL,kBAAkB,IAC3BK,WAAW,CAACJ,kBAAkB,IAC9BI,WAAW,CAACF,yBAAyB,IACrCE,WAAW,CAACD,gBAAgB,CAAE,CAAC,EAC7C;YACE/3C,KAAK,CACD,6CAA6C,CAChD;WACJ,MAAM;YACHw6C,WAAW,CACPpe,IAAI,CACP;YACD1X,aAAa,EAAE;;SAEtB;QACDvZ,QAAQ,EACJ+sC,YAAY,CAAChkD,QAAQ,CACjB,QAAQ,CACX,IACAgkD,YAAY,CAAChkD,QAAQ,CAClB,SAAS,CACZ,IACG,CAAC,CAACoT,EAAG,GACH4wC,YAAY,CACPl5B,MAAM,CACH,CACI,SAAS,EACT,QAAQ,CACX,CACJ,CACA9qB,QAAQ,CACLkoC,IAAI,CACP,IACL8b,YAAY,CAAC3J,KAAK,CACdiK,kBAAkB,CACrB,GACD,CACI,QAAQ,CACX,CAACtkD,QAAQ,CACNkoC,IAAI;QAGpB,CACA;KACT,CACJ,CACC,CACJ,EACL96B,OAAO,CAACuE,KAAK,IAAItE,MAAM,CAACsE,KAAK,IAC1BtM,6BAACH,YAAY;MACTE,IAAI,EACAiI,MAAM,CAACsE;MAGlB,CACO,CACV,CACJ,EACNtM,6BAACoJ,cAAG,QACApJ,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAAC0I,oBAAS,QACN1I,6BAACimB,eAAa;MAAClmB,IAAI,EAAEsgB,CAAC,CAAC,OAAO;MAAK,EACnCrgB,6BAACyB,gBAAK;MACF9H,IAAI,EAAC,OAAO;MACZR,KAAK,EAAEgO,MAAM,CAAC1D,KAAK;MACnBlC,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;QACbmJ,YAAY,CAACnJ,CAAC,CAAC;QACf0sB,aAAa,EAAE;OAClB;MACDxiB,MAAM,EAAEd,UAAU,CAAC,OAAO,CAAC;MAC3BrG,WAAW,EAAE6e,CAAC,CAAC,OAAO;MACxB,EACDtY,OAAO,CAACtE,KAAK,IAAIuE,MAAM,CAACvE,KAAK,IAC1BzD,6BAACH,YAAY;MACTE,IAAI,EAAEiI,MAAM,CAACvE;MAEpB,CACO,CACV,EACNzD,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAAC0I,oBAAS,QACN1I,6BAACimB,eAAa;MAAClmB,IAAI,EAAEsgB,CAAC,CAAC,QAAQ;MAAK,EACpCrgB,6BAACoJ,cAAG,QACApJ,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAACyB,gBAAK;MACFsM,EAAE,wBAAwB;MAC1BrM,IAAI,EAAC,OAAO;MACZ/H,IAAI,EAAC,QAAQ;MACbT,KAAK,EAAEmnB,CAAC,CAAC,QAAQ,CAAC;MAClBrX,OAAO,EACH,CAAC,CAAC7B,MAAM,IACR,CAAC,CAACA,MAAM,CAACkwB,QAAQ;MAErB91B,QAAQ,EAAE,SAAVA,QAAQA;QACJ0G,aAAa,CACT,UAAU,EACV,IAAI,CACP;QACDkjB,aAAa,EAAE;;MAErB,CACA,EACNnrB,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAACyB,gBAAK;MACFsM,EAAE,0BAA0B;MAC5BrM,IAAI,EAAC,OAAO;MACZ/H,IAAI,EAAC,QAAQ;MACbT,KAAK,EAAEmnB,CAAC,CAAC,UAAU,CAAC;MACpBrX,OAAO,EACH,CAAC,CAAC7B,MAAM,IACR,CAACA,MAAM,CAACkwB,QAAQ;MAEpB91B,QAAQ,EAAE,SAAVA,QAAQA;QAAA,OACJ0G,aAAa,CACT,UAAU,EACV,KAAK,CACR;;MAEP,CACA,CACJ,CACE,CACV,CACJ,EACLd,MAAM,CAACmF,KAAK,CAAC3R,QAAQ,CAACgC,KAAK,CAACK,OAAO,CAAC,IACjCgD,6BAACoJ,cAAG,QACApJ,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAAC0I,oBAAS,QACN1I,6BAACkmB,gBAAK,sBAAoB,EAC1BlmB,6BAACuwB,cAAc;MACXtP,OAAO,EAAE8W,YAAY;MACrB5+B,KAAK,EAAE4+B,YAAY,CAAChS,IAAI,CACpB,UAAAoT,CAAC;QAAA,OACGA,CAAC,CAAChgC,KAAK,IACPgO,MAAM,CAACotB,UAAU;QACxB;MACD/yB,WAAW,EAAC,aAAa;MACzBD,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAW;QAClBwJ,aAAa,CACT,YAAY,EACZxJ,CAAC,CAACtF,KAAK,CACV;;MAEP,CACM,CACV,CAEb,EACA,CAAC,CAAC4U,EAAE,IACD/N,6BAACoJ,cAAG,QACApJ,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACJ,CAAC,CAACpC,MAAM,CAACmF,KAAK,CAAC3R,QAAQ,CAAC,OAAO,CAAC,IAC7BwM,MAAM,CAACmF,KAAK,CAACwM,MAAM,GAAG,CAAC,KACvB,CAAC,CAAC3R,MAAM,CAACmF,KAAK,CAACwM,MAAM,IACjB9Y,6BAAC0I,oBAAS,QACN1I,6BAACkmB,gBAAK,0BAEE,EACRlmB,6BAACugD,kBAAkB;MACfj0C,KAAK,EAAEnF,MAAM,CAACmF,KAAK;MACnBnT,KAAK,EACDgO,MAAM,CAACusB,SAAS;MAEpBnyB,QAAQ,EAAE,SAAVA,QAAQA,CACJ9C,CAAM;QAAA,OAENwJ,aAAa,CACT,WAAW,EACXxJ,CAAC,CAACtF,KAAK,CACV;;MAEP,CAET,CACH,EACN6G,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAAC2f,iBAAM;MACH/e,KAAK,EAAC,SAAS;MACfX,SAAS,EAAC,OAAO;MACjB4B,OAAO,EAAE,SAATA,OAAOA;QACHk/C,UAAU,CACN55C,MAAM,CAAC1D,KAAK,IAAI,EAAE,CACrB;;OAGJ4c,CAAC,CAAC,2BAA2B,CAAC,CAC1B,EACTrgB,6BAAC2f,iBAAM;MACH/e,KAAK,EAAC,SAAS;MACfX,SAAS,EAAC,YAAY;MACtB4B,OAAO,EAAE,SAATA,OAAOA;QAAA,OAAQm/C,SAAS,EAAE;;OAEzB3gC,CAAC,CAAC,gBAAgB,CAAC,CACf,EACTrgB,6BAAC2f,iBAAM;MACH/e,KAAK,EAAC,SAAS;MACfX,SAAS,EAAC,YAAY;MACtB4B,OAAO,EAAE,SAATA,OAAOA;QACH24C,OAAO,EAAE;;OAGZn6B,CAAC,CAAC,oBAAoB,CAAC,CACnB,CACP,CAEb,CACC,EACNrgB,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAACoJ,cAAG,QACApJ,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAAC28C,gBAAgB;MACbC,OAAO,EAAEA,OAAO;MAChBxpC,QAAQ,EACJjM,MAAM,CAACiP,oBAAoB;MAE/B4mC,UAAU,EAAE7xB,aAAa;MACzB0xB,SAAS;MACTC,QAAQ,EAAE,SAAVA,QAAQA;QACJF,OAAO,CAAC,IAAI,CAAC;QACb30C,aAAa,CACT,sBAAsB,EACtB,EAAE,CACL;QACDkjB,aAAa,EAAE;;MAErB,EACD,CAACf,IAAI,IACF,CAACjjB,MAAM,CAACiP,oBAAoB,IACxBpW;MACIwI,GAAG,EAAElM,iBAAiB;MACtBqD,KAAK,EAAE;QAAEq3C,QAAQ,EAAE;;MAE1B,CACH,CACJ,CACJ,CACJ,EACLv5B,IAAI,CAAC1P,EAAE,KAAKA,EAAE,GACX/N,0CACIA;MAAIC,SAAS,EAAC;OACTogB,CAAC,MAAIsS,iBAAiB,CAAC,CACvB,EACL3yB,6BAAC+G,aAAM;MACHC,aAAa,EAAE85C,gBAAgB;MAC/B5vC,kBAAkB;MAClBjK,gBAAgB,EAAE06C,oBAAoB;MACtCz6C,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,MAAM;QACZ+3C,qBAAqB,CAAC/3C,MAAM,CAAC;;OAGhC,UAAAi1C,SAAS;MACN,IACIj1C,MAAM,GAKNi1C,SAAS,CALTj1C,MAAM;QACNY,OAAO,GAIPq0C,SAAS,CAJTr0C,OAAO;QACPC,MAAM,GAGNo0C,SAAS,CAHTp0C,MAAM;QACNJ,YAAY,GAEZw0C,SAAS,CAFTx0C,YAAY;QACZE,YAAY,GACZs0C,SAAS,CADTt0C,YAAY;MAEhB,OACI9H,6BAACoJ,cAAG;QAACnJ,SAAS,EAAC;SACXD,6BAACqJ,cAAG;QAACE,EAAE,EAAE;SACLvJ,6BAAC0I,oBAAS,QACN1I,6BAACimB,eAAa;QACVlmB,IAAI,EAAEsgB,CAAC,CACH,kBAAkB,CACrB;QACDpgB,SAAS,EAAC;QACZ,EACFD,6BAACyB,gBAAK;QACF9H,IAAI,EAAC,aAAa;QAClB+H,IAAI,EAAC,UAAU;QACfvI,KAAK,EACDgO,MAAM,CAACu4C,WAAW;QAEtBn+C,QAAQ,EAAE,SAAVA,QAAQA,CACJ9C,CAAM;UAENmJ,YAAY,CAACnJ,CAAC,CAAC;UACf0sB,aAAa,EAAE;SAClB;QACDxiB,MAAM,EAAEd,UAAU,CACd,SAAS,CACZ;QACDrG,WAAW,EAAE6e,CAAC,CACV,kBAAkB,CACrB;QACDpgB,SAAS,EACLmI,MAAM,CACF,YAAY;QAGtB,EACDL,OAAO,CAAC23C,WAAW,IAChB13C,MAAM,CAAC03C,WAAW,IACd1/C,6BAACH,YAAY;QACTE,IAAI,EACAiI,MAAM,CAAC03C;QAGlB,CACG,CACV,EACN1/C,6BAACqJ,cAAG;QAACE,EAAE,EAAE;SACLvJ,6BAAC0I,oBAAS,QACN1I,6BAACimB,eAAa;QACVlmB,IAAI,EAAEsgB,CAAC,CACH,cAAc,CACjB;QACDpgB,SAAS,EAAC;QACZ,EACFD,6BAACyB,gBAAK;QACF9H,IAAI,EAAC,aAAa;QAClB+H,IAAI,EAAC,UAAU;QACfvI,KAAK,EACDgO,MAAM,CAACw4C,WAAW;QAEtBp+C,QAAQ,EAAE,SAAVA,QAAQA,CACJ9C,CAAM;UAENmJ,YAAY,CAACnJ,CAAC,CAAC;UACf0sB,aAAa,EAAE;SAClB;QACDxiB,MAAM,EAAEd,UAAU,CACd,SAAS,CACZ;QACDrG,WAAW,EAAE6e,CAAC,CACV,cAAc,CACjB;QACDpgB,SAAS,EACLmI,MAAM,CACF,YAAY;QAGtB,EACDL,OAAO,CAAC43C,WAAW,IAChB33C,MAAM,CAAC23C,WAAW,IACd3/C,6BAACH,YAAY;QACTE,IAAI,EACAiI,MAAM,CAAC23C;QAGlB,CACG,CACV,EACN3/C,6BAACqJ,cAAG;QAACE,EAAE,EAAE;SACLvJ,6BAAC0I,oBAAS,QACN1I,6BAACimB,eAAa;QACVlmB,IAAI,EAAEsgB,CAAC,CACH,kBAAkB,CACrB;QACDpgB,SAAS,EAAC;QACZ,EACFD,6BAACyB,gBAAK;QACF9H,IAAI,EAAC,sBAAsB;QAC3B+H,IAAI,EAAC,UAAU;QACfvI,KAAK,EACDgO,MAAM,CAACy4C,oBAAoB;QAE/Br+C,QAAQ,EAAE,SAAVA,QAAQA,CACJ9C,CAAM;UAENmJ,YAAY,CAACnJ,CAAC,CAAC;UACf0sB,aAAa,EAAE;SAClB;QACDxiB,MAAM,EAAEd,UAAU,CACd,SAAS,CACZ;QACDrG,WAAW,EAAE6e,CAAC,CACV,kBAAkB,CACrB;QACDpgB,SAAS,EACLmI,MAAM,CACF,YAAY;QAGtB,EACDL,OAAO,CAAC63C,oBAAoB,IACzB53C,MAAM,CAAC43C,oBAAoB,IACvB5/C,6BAACH,YAAY;QACTE,IAAI,EACAiI,MAAM,CAAC43C;QAGlB,CACG,CACV,EACN5/C,6BAACqJ,cAAG;QAACE,EAAE,EAAE;SACLvJ,6BAAC2f,iBAAM;QACH/e,KAAK,EAAC,SAAS;QACfmJ,IAAI,EAAC,IAAI;QACT9J,SAAS,EAAC,qBAAqB;QAC/B4B,OAAO,EAAE,SAATA,OAAOA;UAAA,OACHiG,YAAY,EAAE;;SAGjBuY,CAAC,CAAC,MAAM,CAAC,CACL,CACP,CACJ;KAEb,CACI,CACP,GACN,IAAI,EACRrgB,6BAAC4kB,mBAAmB;MAChBC,WAAW,EAAEA,WAAW;MACxBrB,SAAS,EACLrc,MAAM,CAACmF,KAAK,CAAC3R,QAAQ,CAACgC,KAAK,CAACK,OAAO,CAAC,IAAI,CAAC+Q,EAAE,GACrCmlC,iBAAiB,GACjBprC,YAAY;MAEtBgd,QAAQ,EAAEkH;MACZ,EACFhsB,6BAACkwB,gBAAK;MACF2mB,QAAQ;MACRt5B,MAAM,EAAE2gC,SAAS;MACjBjvC,MAAM,EAAE,SAARA,MAAMA;QAAA,OAAQikC,iBAAiB,EAAE;;OAEjClzC,6BAACmwB,sBAAW,yBAA6B,EACzCnwB,6BAACowB,oBAAS,QACNpwB,6BAACgpC,eAAe;MACZqO,OAAO;MACPl+C,KAAK,EACD0lC,cAAc,CAACt4B,MAAM,CAAC,UAAA4yB,CAAC;QAAA,IAAAyoB,qBAAA;QAAA,QAAAA,qBAAA,GACnBz6C,MAAM,CAACqjC,aAAa,cAAAoX,qBAAA,uBAApBA,qBAAA,CAAsBjnD,QAAQ,CAC1Bw+B,CAAC,CAAChgC,KAAK,CACV;QACJ,IAAI,IAAI;MAEb8nB,OAAO,EAAE4d,cAAc;MACvBt9B,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAkB;QAAA,OACzBwJ,aAAa,CACT,eAAe,EACfxJ,CAAC,CAAC2H,GAAG,CAAC,UAAAsE,CAAC;UAAA,OAAIA,CAAC,CAACvR,KAAK;UAAC,CACtB;;MAELqI,WAAW,EAAE6e,CAAC,CAAC,gBAAgB,CAAC;MAChCpgB,SAAS,EAAC;MACZ,CACM,EACZD,6BAACqwB,sBAAW;MAACpwB,SAAS,EAAC;OACnBD,6BAAC2f,iBAAM;MAAC9d,OAAO,EAAE,SAATA,OAAOA;QAAA,OAAQqxC,iBAAiB,EAAE;;gBAEjC,EACTlzC,6BAAC2f,iBAAM;MACH/N,QAAQ,EAAE,CAACzK,MAAM,CAACqjC,aAAa;MAC/B5pC,KAAK,EAAC,SAAS;MACfiB,OAAO,EAAE,SAATA,OAAOA;QACHiG,YAAY,EAAE;;gBAIb,CACC,CACV,CACN;GAEb,CACI;AAEjB,CAAC;;ACpwBD,IAAM+5C,YAAY,GAAkB;EAChCC,QAAQ,EAAE,OAAO;EACjBC,SAAS,EAAE,OAAO;EAClBxhD,QAAQ,EAAE,OAAO;EACjByhD,GAAG,EAAE,CAAC;EACNC,IAAI,EAAE,CAAC;EACP7gC,MAAM,EAAE,SAAS;EACjBhhB,eAAe,EAAE,oBAAoB;EACrCusB,OAAO,EAAE,MAAM;EACfiuB,cAAc,EAAE,QAAQ;EACxB3B,UAAU,EAAE;CACf;AAED,IAAMiJ,OAAO,GAAO,SAAdA,OAAOA;EACT,IAAM/d,SAAS,GAAGlwB,sBAAW,CAAC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACC,MAAM,CAACgwB,SAAS;IAAC;EACrEp5B,YAAY,CAACiB,OAAO,CAChB,oBAAoB,EACpBC,0BAAgB,CAAC,IAAIC,IAAI,EAAE,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAC7D;EACD,OAAOi4B,SAAS,GACZnkC;IAAKL,KAAK,EAAEkiD;KACR7hD;IAAKC,SAAS,EAAC,+BAA+B;IAAC4iC,IAAI,EAAC;KAChD7iC;IAAMC,SAAS,EAAC;kBAA2B,CACzC,CACJ,GACN,IAAI;AACZ,CAAC;;AC3BD,IAAMkiD,WAAW,GAAO,SAAlBA,WAAWA;EACb,IAAAC,YAAA,GAAqB5zC,0BAAW,EAAE;IAA1BgQ,QAAQ,GAAA4jC,YAAA,CAAR5jC,QAAQ;EAEhB1O,eAAS,CAAC;IACNtV,MAAM,CAAC6nD,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;GACxB,EAAE,CAAC7jC,QAAQ,CAAC,CAAC;EACd,OAAO,IAAI;AACf,CAAC;;ACHD,IAAM8jC,SAAS,GAAG,SAAZA,SAASA,CAAI5gD,IAAa;EAC5B,QAAQA,IAAI;IACR,KAAK,QAAQ;MACT,OAAO;QACHgiB,MAAM,EAAE,OAAO;QACf9iB,KAAK,EAAEhH,MAAM,CAACC;OACjB;IAEL,KAAK,SAAS;MACV,OAAO;QACH6pB,MAAM,EAAE,SAAS;QACjB9iB,KAAK,EAAEhH,MAAM,CAACE;OACjB;IAEL,KAAK,SAAS;MACV,OAAO;QACH4pB,MAAM,EAAE,SAAS;QACjB9iB,KAAK,EAAEhH,MAAM,CAACG;OACjB;IAEL;MACI,OAAO;QACH2pB,MAAM,EAAE,YAAY;QACpB9iB,KAAK,EAAEhH,MAAM,CAACI;OACjB;;AAEb,CAAC;AAED,IAAMuoD,iBAAiB,GAAG,SAApBA,iBAAiBA;EACnB,IAAMj+C,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAM6tB,KAAK,GAAGne,sBAAW,CAAC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACC,MAAM,CAACie,KAAK;IAAC;EAC7D,IAAAjS,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACT,IAAQ9C,MAAM,GAA+B6U,KAAK,CAA1C7U,MAAM;IAAE7b,IAAI,GAAyB0wB,KAAK,CAAlC1wB,IAAI;IAAEwO,OAAO,GAAgBkiB,KAAK,CAA5BliB,OAAO;IAAEsT,SAAS,GAAK4O,KAAK,CAAnB5O,SAAS;EAExC,IAAMvU,MAAM,GAAGrK,iBAAW,CAAC;IACvBN,QAAQ,CAACnC,QAAQ,CAAC;MAAEob,MAAM,EAAE,CAACA,MAAM;MAAE7b,IAAI,EAAJA;KAAM,CAAC,CAAC;GAChD,EAAE,CAAC6b,MAAM,CAAC,CAAC;EAEZ,IAAMilC,WAAW,GAAG;IAAEpiD,eAAe,EAAEkiD,SAAS,CAAC5gD,IAAI,CAAC,CAACd;GAAO;EAE9D,IAAM4lB,OAAO,GAAG,SAAVA,OAAOA;IACThD,SAAS,IAAIA,SAAS,EAAE;IACxBvU,MAAM,EAAE;GACX;EAED,OACIjP,6BAACkwB,gBAAK;IAAC3S,MAAM,EAAEA,MAAM;IAAEtO,MAAM,EAAEA,MAAM;IAAEwzC,IAAI;KACvCziD,6BAACmwB,sBAAW;IAAClhB,MAAM,EAAEA,MAAM;IAAEtP,KAAK,EAAE6iD;KAC/BF,SAAS,CAAC5gD,IAAI,CAAC,CAACgiB,MAAM,CACb,EACd1jB,6BAACowB,oBAAS,QAAElgB,OAAO,CAAa,EAChClQ,6BAACqwB,sBAAW,QACP7M,SAAS,IACNxjB,6BAAC2f,iBAAM;IAAC/e,KAAK,EAAEc,IAAI;IAAEG,OAAO,EAAE2kB;KACzBnG,CAAC,CAAC,SAAS,CAAC,CAEpB,EACDrgB,6BAAC2f,iBAAM;IAAC/e,KAAK,EAAC,WAAW;IAACiB,OAAO,EAAEoN;KAC9BoR,CAAC,CAAC,QAAQ,CAAC,CACP,CACC,CACV;AAEhB,CAAC;;AC/DD,IAAMmiC,WAAW,GAAkB;EAE/BE,aAAa,EAAE;CAClB;AAED,IAAMC,eAAe,GAAkB;EACnC/iD,QAAQ,EAAE,QAAQ;EAClBulB,SAAS,EAAE;CACd;AAED,IAAMy9B,YAAY,GAAc,SAA1BA,YAAYA,CAAA9iD,IAAA;MAAiB4jB,MAAM,GAAA5jB,IAAA,CAAN4jB,MAAM;IAAEm/B,UAAU,GAAA/iD,IAAA,CAAV+iD,UAAU;EACjD,OACI7iD;IAAKL,KAAK,EAAE6iD;KACRxiD,6BAACoJ,cAAG,QACCy5C,UAAU,IACP7iD,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ;IAAMC,SAAS,EAAC,YAAY;IAACN,KAAK,EAAEgjD;KAC/BE,UAAU,CACR,CAEd,EACD7iD,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ;IAAML,KAAK,EAAEgjD;KAAkBj/B,MAAM,CAAQ,CAC3C,CACJ,CACJ;AAEd,CAAC;;AC1BD,IAAMo/B,oBAAoB,GAAG,EAAE;AAC/B,IAAMC,mBAAmB,GAAG,EAAE;AAE9B,IAAMC,uBAAuB,GAAG,SAA1BA,uBAAuBA;EACzB,IAAMr0C,QAAQ,GAAGC,0BAAW,EAAE;EAC9B,IAAAC,SAAA,GAA4BC,cAAQ,CAAC,KAAK,CAAC;IAApCyO,MAAM,GAAA1O,SAAA;IAAE2O,SAAS,GAAA3O,SAAA;EACxB,IAAAK,UAAA,GAA8BJ,cAAQ,CAAC;MACnCm0C,OAAO,EAAE,CAAC;MACVC,UAAU,EAAE;KACf,CAAC;IAHKC,OAAO,GAAAj0C,UAAA;IAAEk0C,UAAU,GAAAl0C,UAAA;EAK1B,IAAMm0C,eAAe,GAAG,SAAlBA,eAAeA;IACjB,IAAI;MAAA,IAAAC,qBAAA,EAAAC,aAAA,EAAAC,sBAAA;MACA,QAAAF,qBAAA,IAAAC,aAAA,GAAOx4C,YAAY,cAAAw4C,aAAA,wBAAAC,sBAAA,GAAZD,aAAA,CAAcz4C,OAAO,cAAA04C,sBAAA,uBAArBA,sBAAA,CAAAjtB,IAAA,CAAAgtB,aAAA,EAAwB,oBAAoB,CAAC,YAAAD,qBAAA,GAAI,IAAI;KAC/D,CAAC,OAAAzoB,OAAA,EAAM;MACJ,OAAO,IAAI;;GAElB;EAED,IAAM4oB,QAAQ,GAAG,SAAXA,QAAQA;IACV14C,YAAY,CAAC2B,UAAU,CAAC3T,YAAY,CAAC;IACrC8R,cAAc,CAAC6B,UAAU,CAAC3T,YAAY,CAAC;IACvCgS,YAAY,CAAC2B,UAAU,CAAC,OAAO,CAAC;IAChC3B,YAAY,CAAC2B,UAAU,CAAC,oBAAoB,CAAC;IAC7C8Q,SAAS,CAAC,KAAK,CAAC;IAChB7O,QAAQ,CAAC,QAAQ,EAAE;MAAE3N,OAAO,EAAE;KAAM,CAAC;GACxC;EAED,IAAM0iD,oBAAoB,GAAG,SAAvBA,oBAAoBA;IACtB,IAAMr+C,WAAW,GAAGyG,cAAc,EAAE;IACpC,IAAI,CAACzG,WAAW,EAAE;IAElB,IAAMs+C,YAAY,GAAGN,eAAe,EAAE;IACtC,IAAI,CAACM,YAAY,EAAE;MAAA,IAAAC,cAAA,EAAAC,qBAAA;MACf,CAAAD,cAAA,GAAA74C,YAAY,cAAA64C,cAAA,wBAAAC,qBAAA,GAAZD,cAAA,CAAc53C,OAAO,cAAA63C,qBAAA,uBAArBA,qBAAA,CAAAttB,IAAA,CAAAqtB,cAAA,EACI,oBAAoB,EACpB,IAAI13C,IAAI,EAAE,CAAC43C,WAAW,EAAE,CAC3B;MACD;;IAGJ,IAAMC,UAAU,GAAG5d,aAAK,CAACwd,YAAY,EAAE,kBAAkB,EAAE,IAAIz3C,IAAI,EAAE,CAAC;IACtE,IAAM83C,WAAW,GAAG,IAAI93C,IAAI,EAAE;IAC9B,IAAM+2C,OAAO,GAAGgB,2BAAmB,CAACD,WAAW,EAAED,UAAU,CAAC;IAE5D,IAAId,OAAO,IAAIF,mBAAmB,EAAE;MAChCU,QAAQ,EAAE;MACV;;IAGJ,IAAMP,UAAU,GAAG7gB,cAAc,CAC7B/d,cAAM,CACF4/B,kBAAU,CAACF,WAAW,EAAEjB,mBAAmB,GAAGE,OAAO,CAAC,EACtD,kBAAkB,CACrB,EACD,OAAO,CACV;IACD,IAAIA,OAAO,IAAIH,oBAAoB,EAAE;MACjCM,UAAU,CAAC;QACPH,OAAO,EAAPA,OAAO;QACPC,UAAU,EAAVA;OACH,CAAC;MACF1lC,SAAS,CAAC,IAAI,CAAC;;GAEtB;EAED1N,eAAS,CAAC;IACN,IAAMq0C,QAAQ,GAAGtnC,WAAW,CAAC;MACzB6mC,oBAAoB,EAAE;KACzB,EAAE,EAAE,GAAG,IAAI,CAAC;IAEb,OAAO;MAAA,OAAM9mC,aAAa,CAACunC,QAAQ,CAAC;;GACvC,EAAE,EAAE,CAAC;EAEN,IAAMr0B,QAAQ,GAAG,SAAXA,QAAQA;IACVtS,SAAS,CAAC,CAACD,MAAM,CAAC;GACrB;EACD,OACIvd,6BAACkwB,gBAAK;IAAC3S,MAAM,EAAEA,MAAM;IAAEtO,MAAM,EAAE6gB,QAAQ;IAAE/lB,IAAI,EAAE;KAC3C/J,6BAACmwB,sBAAW;IAAClhB,MAAM,EAAE6gB;2BAA2C,EAChE9vB,6BAACowB,oBAAS,6DAC6C+yB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEF,OAAO,2EACzBF,mBAAmB,IAAGI,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEF,OAAO,oBAAYE,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAED,UAAU,2BAAuB,CAC9H,EACZljD,6BAACqwB,sBAAW;IAACpwB,SAAS,EAAC;KACnBD,6BAAC2f,iBAAM;IAAC/e,KAAK,EAAC,SAAS;IAACiB,OAAO,EAAEiuB;KAC5B,SAAS,CACL,CACC,CACV;AAEhB,CAAC;;AC7FD,IAAMs0B,cAAc,GAAc,SAA5BA,cAAcA,CAAAtkD,IAAA;MAAiB+B,OAAO,GAAA/B,IAAA,CAAP+B,OAAO;EACxC,OACI7B;IACIC,SAAS,EAAC,mDAAmD;IAC7D6B,KAAK,EAAC,MAAM;IACZD,OAAO,EAAEA;KAET7B,6BAACqkD,YAAS,OAAG,CACX;AAEd,CAAC;;ACbD,IAAMC,YAAY,GAAO,SAAnBA,YAAYA;EACd,IAAMhsC,aAAa,GAAGrE,sBAAW,CAC7B,UAACC,KAAU;IAAA,IAAAytB,aAAA;IAAA,OAAKztB,KAAK,aAALA,KAAK,wBAAAytB,aAAA,GAALztB,KAAK,CAAEC,MAAM,cAAAwtB,aAAA,uBAAbA,aAAA,CAAerpB,aAAa;IAC/C;EACD,IAAMisC,WAAW,GAAG9pD,QAAQ,CAAC+jB,QAAQ,KAAK,QAAQ;EAClD,OACIlG,aAAa,IACTtY;IACIC,SAAS,sBAAmBskD,WAAW,GAAG,sBAAsB,GAAG,EAAE;KAErEvkD,0DAAwB,EAAC,GAAG,EAC5BA;IAAKC,SAAS,EAAC;IAA0B,CAEhD;AAET,CAAC;;ACdD,IAAMukD,UAAU,GAAG;EACfC,iBAAiB,EAAE;CACtB;AAED,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAInqC,KAAU;EACjC,IACIoqC,UAAU,GAMVpqC,KAAK,CANLoqC,UAAU;IACVxrD,KAAK,GAKLohB,KAAK,CALLphB,KAAK;IACLqI,WAAW,GAIX+Y,KAAK,CAJL/Y,WAAW;IACXoG,YAAY,GAGZ2S,KAAK,CAHL3S,YAAY;IACZu4C,iBAAiB,GAEjB5lC,KAAK,CAFL4lC,iBAAiB;IACjByE,aAAa,GACbrqC,KAAK,CADLqqC,aAAa;EAEjB,OACI5kD,6BAAC6kD,eAAS;IACNL,UAAU,EAAEA,UAAU;IACtBhjD,WAAW,EAAEA,WAAW,IAAI,iCAAiC;IAC7Du1C,WAAW;IACXM,OAAO;IACPyN,UAAU,EAAE,KAAK;IACjB3rD,KAAK,EAAEA,KAAK;IACZwrD,UAAU,EAAEA,UAAU;IACtBpjD,QAAQ,EAAEqG,YAAY;IACtB64C,aAAa,EAAEN,iBAAiB;IAChC4E,SAAS,EAAEH;IACb;AAEV,CAAC;;AC3BD,IAAMI,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIzqC,KAAU;EACpC,IAAQxM,EAAE,GAAKwM,KAAK,CAAZxM,EAAE;EAEV,IAAM+X,SAAS,GAAG,CAAC,CAAC/X,EAAE,GAChB7S,sBAAsB,CAAC6qB,IAAI,CAAC,UAAAC,MAAM;IAAA,OAAIA,MAAM,CAAC7sB,KAAK,KAAK4U,EAAE;IAAC,IAAI,IAAI,GAClE,IAAI;EAEV,OACI/N,6BAACghB,MAAM;IAACC,OAAO,EAAE/lB,sBAAsB;IAAE/B,KAAK,EAAE2sB;KAAevL,KAAK,EAAI;AAEhF,CAAC;;ACXD,IAAM0qC,YAAY,GAAM3qD,QAAQ,4BAAyB;AACzD,AAAO,IAAM8S,KAAG,GAAG,SAANA,GAAGA;EAAA,OAASpC,GAAG,CAACoC,GAAG,CAAC63C,YAAY,CAAC;AAAA;;ACA9C,IAAMC,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAI3qC,KAAU;EAC1C,IAAA1L,SAAA,GAAwCC,cAAQ,CAAC,EAAE,CAAC;IAA7Cq2C,YAAY,GAAAt2C,SAAA;IAAEu2C,eAAe,GAAAv2C,SAAA;EAEpCiB,eAAS,CAAC;IACNu1C,aAAa,EAAE;GAClB,EAAE,EAAE,CAAC;EAEN,IAAMA,aAAa,YAAbA,aAAaA;IAAA;qCACX;QAAA,OAAAtgD,OAAA,CAAAC,OAAA,CACkBoI,KAAG,EAAE,EAAAhG,IAAA,WAAjBhC,GAAG;UACTggD,eAAe,CAAChgD,GAAG,CAAC2H,IAAI,CAACsW,KAAK,CAAC;;OAClC,YAAQ5b,GAAG,EAAE;QACV5C,OAAO,CAAC6C,KAAK,CAACD,GAAG,CAAC;OACrB;MAAA,OAAA1C,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EACD,IAAQsP,EAAE,GAAKwM,KAAK,CAAZxM,EAAE;EACV,IAAM8X,WAAW,GAAGs/B,YAAY,CAAC/+C,GAAG,CAAC,UAACsE,CAAM;IACxC,OAAO;MACHqD,EAAE,EAAErD,CAAC,CAACqD,EAAE;MACR5U,KAAK,EAAEuR,CAAC,CAACqD,EAAE;MACX7U,KAAK,EAAEwR,CAAC,CAAC/Q;KACZ;GACJ,CAAC;EAEF,IAAMmsB,SAAS,GAAG,CAAC,CAAC/X,EAAE,GAChB8X,WAAW,CAACE,IAAI,CAAC,UAACC,MAAW;IAAA,OAAKA,MAAM,CAAC7sB,KAAK,KAAK4U,EAAE;IAAC,IAAI,IAAI,GAC9D,IAAI;EAEV,OAAO/N,6BAACghB,MAAM;IAACC,OAAO,EAAE4E,WAAW;IAAE1sB,KAAK,EAAE2sB;KAAevL,KAAK,EAAI;AACxE,CAAC;;AC7BD,IAAM0qC,cAAY,GAAM3qD,QAAQ,0BAAuB;AACvD,AAAO,IAAM8S,KAAG,GAAG,SAANA,GAAGA,CAAIk4C,gBAAyB;EAAA,OAAKt6C,GAAG,CAACoC,GAAG,CAAC63C,cAAY,EAAE;IAAC76C,MAAM,EAAE;MAACk7C,gBAAgB,EAAhBA;;GAAkB,CAAC;AAAA;AACrG,AAAO,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIh/C,MAAe;EAAA,OAAKyE,GAAG,CAACoC,GAAG,CAAC63C,cAAY,EAAE;IAAE76C,MAAM,EAAE7D;GAAQ,CAAC;AAAA;;ACFzF,IAAMi/C,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAIjrC,KAAU;EACxC,IAAA1L,SAAA,GAA2CC,cAAQ,CAAC,EAAE,CAAC;IAAhD22C,eAAe,GAAA52C,SAAA;IAAEu2C,eAAe,GAAAv2C,SAAA;EACvC,IAAQd,EAAE,GAAuBwM,KAAK,CAA9BxM,EAAE;IAAEu3C,gBAAgB,GAAK/qC,KAAK,CAA1B+qC,gBAAgB;EAE5Bx1C,eAAS,CAAC;IACNu1C,aAAa,EAAE;GAClB,EAAE,EAAE,CAAC;EAEN,IAAMA,aAAa,YAAbA,aAAaA;IAAA;qCACX;QAAA,OAAAtgD,OAAA,CAAAC,OAAA,CACkBoI,KAAG,CAACk4C,gBAAgB,CAAC,EAAAl+C,IAAA,WAAjChC,GAAG;UACTggD,eAAe,CAAChgD,GAAG,CAAC2H,IAAI,CAACsW,KAAK,CAAC;;OAClC,YAAQ5b,GAAG,EAAE;QACV5C,OAAO,CAAC6C,KAAK,CAACD,GAAG,CAAC;OACrB;MAAA,OAAA1C,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EACD,IAAMonB,WAAW,GAAG4/B,eAAe,CAACr/C,GAAG,CAAC,UAACsE,CAAM;IAC3C,OAAO;MACHqD,EAAE,EAAErD,CAAC,CAACqD,EAAE;MACR5U,KAAK,EAAEuR,CAAC,CAACqD,EAAE;MACX7U,KAAK,EAAEwR,CAAC,CAAC/Q;KACZ;GACJ,CAAC;EAEF,IAAMmsB,SAAS,GAAG,CAAC,CAAC/X,EAAE,GAChB8X,WAAW,CAACE,IAAI,CAAC,UAACC,MAAW;IAAA,OAAKA,MAAM,CAAC7sB,KAAK,KAAK4U,EAAE;IAAC,IAAI,IAAI,GAC9D,IAAI;EAEV,OAAO/N,6BAACghB,MAAM;IAACC,OAAO,EAAE4E,WAAW;IAAE1sB,KAAK,EAAE2sB;KAAevL,KAAK,EAAI;AACxE,CAAC;;AC1BD,IAAMmrC,mBAAmB,GAAG,SAAtBA,mBAAmBA;EACrB,IAAA72C,SAAA,GAAoCC,cAAQ,CAAmB,EAAE,CAAC;IAA3D62C,UAAU,GAAA92C,SAAA;IAAE+2C,aAAa,GAAA/2C,SAAA;EAChC,IAAMvK,QAAQ,GAAGC,sBAAW,EAAE;EAE9B,IAAM6e,OAAO,GAAGxe,iBAAW;IAAA;;QAcvBN,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAb3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA+N,KAAA,GAAAC,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkBugD,WAAW,CAAA/0C,QAAA,KAAMnX,cAAc;UAAEG,QAAQ,EAAE,CAAC;UAAG,CAAC,EAAA4N,IAAA,WAA5DhC,GAAG;UACT,IAAMygD,mBAAmB,GAAGC,eAAc,CAAC1gD,GAAG,CAAC2H,IAAI,CAACsW,KAAK,CAAC;UAC1DuiC,aAAa,CAACC,mBAAmB,CAAC;;OACrC,YAAQp+C,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA,CAAAiJ,MAAA,IAAAA,MAAA,CAAAL,KAAA;KAEJ,QAAAvR,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,EAAE,CAAC;EAEN,IAAMqnD,eAAc,GAAG,SAAjBA,cAAcA,CAChBH,UAA4B,EAC5Bj0C,MAAuB,EACvB+d,QAA2B;IAE3B,IAAIgK,MAAM,GAAqB,EAAE;IACjC,IAAI,CAAC/nB,MAAM,EAAE;MACT,IAAMq0C,kBAAkB,GAAGJ,UAAU,CAACp/C,MAAM,CACxC,UAACgpB,CAAiB;QAAA,OAAK,CAACA,CAAC,CAAC+1B,gBAAgB;QAC7C;MACDS,kBAAkB,CAACt6C,OAAO,CAAC,UAAC8jB,CAAiB;QACzC,IAAMy2B,kBAAkB,GAAGL,UAAU,CAACp/C,MAAM,CACxC,UAAC0/C,EAAkB;UAAA,IAAAC,oBAAA;UAAA,QAAAA,oBAAA,GAAKD,EAAE,CAACX,gBAAgB,cAAAY,oBAAA,uBAAnBA,oBAAA,CAAqBvrD,QAAQ,CAAC40B,CAAC,CAACxhB,EAAE,CAAC;UAC9D;QACD,IAAMsW,QAAQ,GAAA7T,QAAA,KACP+e,CAAC;UACJr2B,KAAK,EAAEq2B,CAAC,CAAC51B,IAAI;UACbR,KAAK,EAAEo2B,CAAC,CAACxhB,EAAE;UACX0E,KAAK,EAAE,CAAC;UACRge,UAAU,EAAE;UACf;QACDgJ,MAAM,GAAGA,MAAM,CAAChU,MAAM,CAClBqgC,eAAc,CAACH,UAAU,EAAEthC,QAAQ,EAAE2hC,kBAAkB,CAAC,CAC3D;OACJ,CAAC;KACL,MAAM;MACHvsB,MAAM,CAAC9L,IAAI,CAACjc,MAAM,CAAC;MACnB+d,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEhkB,OAAO,CAAC,UAAC8jB,CAAiB;QAChC,IAAMy2B,kBAAkB,GAAGL,UAAU,CAACp/C,MAAM,CACxC,UAAC0/C,EAAkB;UAAA,IAAAE,qBAAA;UAAA,QAAAA,qBAAA,GAAKF,EAAE,CAACX,gBAAgB,cAAAa,qBAAA,uBAAnBA,qBAAA,CAAqBxrD,QAAQ,CAAC40B,CAAC,CAACxhB,EAAE,CAAC;UAC9D;QACD,IAAMsW,QAAQ,GAAA7T,QAAA,KACP+e,CAAC;UACJr2B,KAAK,EAAEq2B,CAAC,CAAC51B,IAAI;UACbR,KAAK,EAAEo2B,CAAC,CAACxhB,EAAE;UACX0E,KAAK,EAAEf,MAAM,CAACe,KAAK,GAAGf,MAAM,CAACe,KAAK,GAAG,CAAC,GAAG,CAAC;UAC1Cge,UAAU,EAAE;UACf;QACDgJ,MAAM,GAAGA,MAAM,CAAChU,MAAM,CAClBqgC,eAAc,CAACH,UAAU,EAAEthC,QAAQ,EAAE2hC,kBAAkB,CAAC,CAC3D;OACJ,CAAC;;IAEN,OAAOvsB,MAAM;GAChB;EAED3pB,eAAS,CAAC;IACNsT,OAAO,EAAE;GACZ,EAAE,EAAE,CAAC;EAEN,OAAO;IACHuiC,UAAU,EAAVA;GACH;AACL,CAAC;;;ACjFD,AAMA,IAAMS,YAAY,GAAwC;EACtDC,OAAO,EAAE,SAATA,OAAOA,CAAGj+C,MAAW;IAAA,OAAAoI,QAAA,KAAWpI,MAAM;MAAEhI,eAAe,EAAE;;GAAU;EACnE4lB,MAAM,EAAE,SAARA,MAAMA,CAAG5d,MAAW,EAAAtI,IAAA;QAAIiN,IAAI,GAAAjN,IAAA,CAAJiN,IAAI;IACxB,OAAAyD,QAAA,KACOpI,MAAM;MACToX,UAAU,EAAE,EAACzS,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAE0F,KAAK,IAAG,MAAM,GAAG,QAAQ;MAC5C6zC,WAAW,EAAK,CAAC,CAAAv5C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE0F,KAAK,KAAI,CAAC,IAAI,CAAC,QAAK;MAC3ChS,YAAY,EAAE,MAAM;MACpB69B,MAAM,EAAEvxB,IAAI,CAAC0jB,UAAU,GAAG,aAAa,GAAG,SAAS;MACnD7vB,KAAK,EAAE,cAAc;MACrB,gBAAgB,EAAE;QACdmuB,aAAa,EAAE;;;;CAI9B;AACD,IAAMw3B,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA98B,KAAA;MAAMtwB,KAAK,GAAAswB,KAAA,CAALtwB,KAAK;IAAKw3B,IAAI,GAAAC,6BAAA,CAAAnH,KAAA,EAAAoH,WAAA;EACtC,IAAA21B,oBAAA,GAAuBd,mBAAmB,EAAE;IAApCC,UAAU,GAAAa,oBAAA,CAAVb,UAAU;EAClB,IAAAxlC,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EAET,IAAM6O,YAAY,GAAG,CAAC,CAAC/1B,KAAK,GACtBwsD,UAAU,CAAC5/B,IAAI,CAAC,UAACC,MAAsB;IAAA,OAAKA,MAAM,CAAC7sB,KAAK,KAAKA,KAAK;IAAC,IACnE,IAAI,GACJ,IAAI;EAEV,OACI6G,6BAACghB,MAAM;IACH7nB,KAAK,EAAE+1B,YAAY;IACnBjO,OAAO,EAAE0kC,UAAU;IACnBv9C,MAAM,EAAEg+C,YAAY;IACpB5kD,WAAW,EAAE6e,CAAC,CAAC,iBAAiB;KAC5BsQ,IAAI,EACV;AAEV,CAAC;;ACnCD,IAAM81B,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIlsC,KAAU;EAClC,IAAQxM,EAAE,GAAKwM,KAAK,CAAZxM,EAAE;EAEV,IAAM+X,SAAS,GAAG,CAAC,CAAC/X,EAAE,GAChB/R,YAAY,CAAC+pB,IAAI,CAAC,UAAAC,MAAM;IAAA,OAAIA,MAAM,CAAC7sB,KAAK,KAAK4U,EAAE;IAAC,IAAI,IAAI,GACxD,IAAI;EAEV,OACI/N,6BAACghB,MAAM;IACHC,OAAO,EAAEjlB,YAAY;IACrB7C,KAAK,EAAE2sB;KACHvL,KAAK;IACTuW,aAAa,EAAC;KAChB;AAEV,CAAC;;ACTD,IAAM41B,YAAY,GAAG,SAAS;AAC9B,IAAMC,cAAc,GAAG,WAAW;AAElC,IAAMC,YAAY,GAAc,SAA1BA,YAAYA,CAAA9mD,IAAA;MACd+mD,QAAQ,GAAA/mD,IAAA,CAAR+mD,QAAQ;IACRC,SAAS,GAAAhnD,IAAA,CAATgnD,SAAS;IACTC,MAAM,GAAAjnD,IAAA,CAANinD,MAAM;IACNC,SAAS,GAAAlnD,IAAA,CAATknD,SAAS;IACTC,UAAU,GAAAnnD,IAAA,CAAVmnD,UAAU;EAEV,OACIjnD;IAAKC,SAAS,EAAC;KACXD,6BAAC2f,iBAAM;IACH5V,IAAI,EAAC,IAAI;IACTnJ,KAAK,EAAEmmD,MAAM,GAAGL,YAAY,GAAGC,cAAc;IAC7C9kD,OAAO,EAAEmlD,SAAS;IAClB/mD,SAAS,EAAC;KAET4mD,QAAQ,CACJ,EACT7mD,6BAAC2f,iBAAM;IACH5V,IAAI,EAAC,IAAI;IACTnJ,KAAK,EAAE,CAACmmD,MAAM,GAAGL,YAAY,GAAGC,cAAc;IAC9C9kD,OAAO,EAAEolD,UAAU;IACnBhnD,SAAS,EAAC;KAET6mD,SAAS,CACL,CACP;AAEd,CAAC;;AC9BD,IAAMI,SAAS,GAAG,SAAZA,SAASA,CAAApnD,IAAA;MAAMqnD,IAAI,GAAArnD,IAAA,CAAJqnD,IAAI;IAAAC,WAAA,GAAAtnD,IAAA,CAAEkoC,MAAM;IAANA,MAAM,GAAAof,WAAA,cAAG,GAAG,GAAAA,WAAA;IAAE1X,QAAQ,GAAA5vC,IAAA,CAAR4vC,QAAQ;EAC7C,IAAM2X,gBAAgB,YAAhBA,gBAAgBA,CAAU5oD,CAAM;IAAA;qCAC9B;QACA,IAAMgpB,QAAQ,GAAG,IAAI2B,QAAQ,EAAE;QAC/B,IAAMgB,IAAI,GAAG3rB,CAAC,CAACmK,MAAM,CAACyhB,KAAK,CAAC,CAAC,CAAC;QAC9B,IAAMjX,QAAQ,GAAGgX,IAAI,CAACzwB,IAAI;QAC1B8tB,QAAQ,CAAC4B,MAAM,CAAC,MAAM,EAAEe,IAAI,EAAEhX,QAAQ,CAAC;QACvCqU,QAAQ,CAAC4B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC;QAAA,OAAAtkB,OAAA,CAAAC,OAAA,CAC1BijB,eAAe,CAACR,QAAQ,CAAC,EAAArgB,IAAA,WAArChC,GAAG;UACT,IAAAsQ,SAAA,GAA4BtQ,GAAG,CAAC2H,IAAI;YAA5BpT,IAAI,GAAA+b,SAAA,CAAJ/b,IAAI;YAAE4Q,GAAG,GAAAmL,SAAA,CAAHnL,GAAG;YAAE7I,IAAI,GAAAgU,SAAA,CAAJhU,IAAI;UACvBguC,QAAQ,CAAC/1C,IAAI,EAAEwZ,UAAU,CAAC5I,GAAG,CAAC,EAAE7I,IAAI,CAAC;;OACxC,YAAQ+F,GAAG,EAAE;QACV5C,OAAO,CAAC6C,KAAK,CAACD,GAAG,CAACyI,OAAO,CAAC;OAC7B;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,OACIuB,6BAAC8G,cAAQ,QACL9G,6BAACyB,gBAAK;IACFxB,SAAS,EAAC,QAAQ;IAClByB,IAAI,EAAC,MAAM;IACXqM,EAAE,EAAC,iBAAiB;IACpBxM,QAAQ,EAAE8lD,gBAAgB;IAC1Brf,MAAM,EAAEA;IACV,EACFhoC,6BAACkmB,gBAAK;IAAC40B,OAAO,EAAC,iBAAiB;IAACjY,IAAI,EAAC;KACjCskB,IAAI,CACD,CACD;AAEnB,CAAC;;ACrCD,IAAMlmC,OAAO,GAAG,CACZ;EAAE9nB,KAAK,EAAE,IAAI;EAAED,KAAK,EAAE;CAAQ,EAC9B;EAAEC,KAAK,EAAE,KAAK;EAAED,KAAK,EAAE;CAAU,CACpC;AAOD,IAAMouD,0BAA0B,GAAc,SAAxCA,0BAA0BA,CAAAxnD,IAAA;MAAiB3G,KAAK,GAAA2G,IAAA,CAAL3G,KAAK;IAAEoI,QAAQ,GAAAzB,IAAA,CAARyB,QAAQ;EAC5D,IAAMgmD,cAAc,GAAG;IACnBrmC,IAAI,EAAE,SAANA,IAAIA,CAAGs2B,QAAa;MAAA,OAAAhnC,QAAA,KAAWgnC,QAAQ;QAAEp2B,MAAM,EAAE;;;GACpD;EACD,OACIphB,6BAACuwB,cAAc;IACXC,YAAY,EAAEr3B,KAAK;IACnB8nB,OAAO,EAAEA,OAAO;IAChB1f,QAAQ,EAAEA,QAAQ;IAClB6G,MAAM,EAAEm/C;IACV;AAEV,CAAC;AAED,mCAAejoC,UAAI,CAACgoC,0BAA0B,CAAC;;ACzB/C,IAAME,gBAAgB,GAAMltD,QAAQ,sBAAmB;AAEvD,AAAO,IAAM8S,KAAG,GAAG,SAANA,GAAGA,CAAI7G,MAAW;EAAA,OAC3ByE,GAAG,CAACoC,GAAG,CAACo6C,gBAAgB,EAAE;IAAEp9C,MAAM,EAAAoG,QAAA,KAAOjK,MAAM;GAAI,CAAC;AAAA;AAExD,AAQO,IAAMkhD,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAI15C,EAAU;EAAA,OAC/C/C,GAAG,CAACoX,GAAG,CAAIolC,gBAAgB,SAAIz5C,EAAI,CAAC;AAAA;AAExC,AAGO,IAAM25C,eAAe,GAAG,SAAlBA,eAAeA;EAAA,OACxB18C,GAAG,CAACoX,GAAG,CAAIolC,gBAAgB,qBAAkB,CAAC;AAAA;;ACrB3C,IAAMG,eAAe,GAAGzlD,oBAAY,CACvC,+BAA+B,CAClC;AAED,AAAO,IAAM0lD,qBAAqB,GAAG1lD,oBAAY,CAC7C,qCAAqC,CACxC;AAED,AAAO,IAAM2lD,wBAAwB,GAAG3lD,oBAAY,CAChD,wCAAwC,CAC3C;;ACED,IAAM4lD,cAAc,GAAG;EACnBvuD,WAAW,EAAE,CAAC;EACdC,QAAQ,EAAE,EAAE;EACZF,YAAY,EAAE,EAAE;EAChByuD,MAAM,EAAE;CACX;AAED,IAAM35C,OAAK,GAAG,mBAAmB;AAEjC,IAAMhS,sBAAoB,GAAG,sBAAsB;AACnD,IAAM4rD,gBAAgB,GAAG,kBAAkB;AAE3C,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA;EACrB,IAAM3jD,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAAqqB,UAAA,GAAkBC,wBAAS,EAAmB;IAAtCviB,KAAK,GAAAsiB,UAAA,CAALtiB,KAAK;EACb,IAAMmR,IAAI,GAAGxJ,sBAAW,CAAC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACC,MAAM,CAACsJ,IAAI;IAAC;EAC3D,IAAMlQ,MAAM,GAAGkQ,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE1P,EAAE;EACvB,IAAMopB,SAAS,GAAG1Z,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE0Z,SAAS;EACjC,IAAM+wB,gBAAgB,GAAGj0C,sBAAW,CAChC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACi0C,YAAY,CAACD,gBAAgB;IACtD;EACD,IAAME,SAAS,GAAGn0C,sBAAW,CAAC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACC,MAAM,CAACsJ,IAAI,CAAC2qC,SAAS;IAAC;EAC1E,IAAMC,aAAa,GAAGp0C,sBAAW,CAC7B,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACC,MAAM,CAACsJ,IAAI,CAAC4qC,aAAa;IAClD;EAED,IAAMrlC,UAAU,GAAG/O,sBAAW,CAC1B,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACi0C,YAAY,CAACnlC,UAAU;IAChD;EACD,IAAMslC,kBAAkB,GAAGr0C,sBAAW,CAClC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACi0C,YAAY,CAACG,kBAAkB;IACxD;EACD,IAAAz5C,SAAA,GAA8BC,cAAQ,CAACg5C,cAAc,CAAC;IAA/CrnC,OAAO,GAAA5R,SAAA;IAAE2T,UAAU,GAAA3T,SAAA;EAC1B,IAAAK,UAAA,GAA0DJ,cAAQ,CAAU,KAAK,CAAC;IAA3Ey5C,qBAAqB,GAAAr5C,UAAA;IAAEs5C,wBAAwB,GAAAt5C,UAAA;EAEtD,IAAMuT,aAAa,GAAG,SAAhBA,aAAaA,CAAIgmC,WAAgB;IAAA,OACnCjmC,UAAU,CAAAhS,QAAA,KACHiQ,OAAO,EACPgoC,WAAW,CACjB,CAAC;;EAEN,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIP,YAAiB;;IACvC,IAAQQ,MAAM,GAAgBR,YAAY,CAAlCQ,MAAM;MAAEC,SAAS,GAAKT,YAAY,CAA1BS,SAAS;IACzB,QAAQD,MAAM;MACV,KAAK,sBAAsB;QACvBnuD,MAAM,CAAC2P,IAAI,+BAA6Bg3B,MAAM,CAACynB,SAAS,CAAG,CAAC;QAC5D;MACJ,KAAK,sBAAsB;QACvBpuD,MAAM,CAAC2P,IAAI,0BAAA0+C,WAAA,GACcjvC,IAAI,CAACusB,KAAK,CAACyiB,SAAS,CAAC,cAAAC,WAAA,uBAArBA,WAAA,CAAwB,CAAC,CAAC,YAAAC,YAAA,GAC3ClvC,IAAI,CAACusB,KAAK,CAACyiB,SAAS,CAAC,cAAAE,YAAA,uBAArBA,YAAA,CAAwB,CAAC,CAC7B,uBAAmB,CACtB;QACD;MACJ,KAAK,kBAAkB;QACnBtuD,MAAM,CAAC2P,IAAI,yBACcy+C,SAAS,aAATA,SAAS,wBAAAG,kBAAA,GAATH,SAAS,CAAE5nD,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,cAAA+nD,kBAAA,wBAAAC,qBAAA,GAAjCD,kBAAA,CAAmCnuD,KAAK,CAAC,GAAG,CAAC,cAAAouD,qBAAA,uBAA7CA,qBAAA,CAAgD,CAAC,CAAC,CAAE,CAC5E;QACD;MACJ,KAAK,4BAA4B;QAC7BxuD,MAAM,CAAC2P,IAAI,0BACey+C,SAAS,aAATA,SAAS,wBAAAK,mBAAA,GAATL,SAAS,CAAE5nD,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,cAAAioD,mBAAA,wBAAAC,qBAAA,GAAjCD,mBAAA,CAAmCruD,KAAK,CAAC,GAAG,CAAC,cAAAsuD,qBAAA,uBAA7CA,qBAAA,CAAgD,CAAC,CAAC,CAAE,CAC7E;QACD;MACJ,KAAK,+BAA+B;QAChC1uD,MAAM,CAAC2P,IAAI,2BAAAg/C,YAAA,GACevvC,IAAI,CAACusB,KAAK,CAACyiB,SAAS,CAAC,cAAAO,YAAA,uBAArBA,YAAA,CAAwB,CAAC,CAAC,eAAW,CAC9D;QACD;MACJ,KAAK,mBAAmB;QACpB3uD,MAAM,CAAC2P,IAAI,wBAAAi/C,YAAA,GACYxvC,IAAI,CAACusB,KAAK,CAACyiB,SAAS,CAAC,cAAAQ,YAAA,uBAArBA,YAAA,CAAwB,CAAC,CAAC,YAAAC,YAAA,GACzCzvC,IAAI,CAACusB,KAAK,CAACyiB,SAAS,CAAC,cAAAS,YAAA,uBAArBA,YAAA,CAAwB,CAAC,CAC7B,CAAE,CACL;QACD;MACJ,KAAK,oBAAoB;QACrB7uD,MAAM,CAAC2P,IAAI,wBAAAm/C,YAAA,GACY1vC,IAAI,CAACusB,KAAK,CAACyiB,SAAS,CAAC,cAAAU,YAAA,uBAArBA,YAAA,CAAwB,CAAC,CAAC,YAAAC,YAAA,GACzC3vC,IAAI,CAACusB,KAAK,CAACyiB,SAAS,CAAC,cAAAW,YAAA,uBAArBA,YAAA,CAAwB,CAAC,CAC7B,CAAE,CACL;QACD;MACJ,KAAK,qBAAqB;QACtB/uD,MAAM,CAAC2P,IAAI,sBACc,CACxB;QACD;MACJ,KAAK,aAAa;QACd3P,MAAM,CAAC2P,IAAI,0BACkB,CAC5B;QACD;MACJ,KAAK,cAAc;QACf3P,MAAM,CAAC2P,IAAI,gBACMyP,IAAI,CAACusB,KAAK,CAACyiB,SAAS,CAAG,CACvC;QACD;MACJ,KAAK,qBAAqB;QACtBpuD,MAAM,CAAC2P,IAAI,6BAA6B,CAAC;QACzC;MACJ,KAAK,gBAAgB;QACjB3P,MAAM,CAAC2P,IAAI,wBAAAq/C,YAAA,GACY5vC,IAAI,CAACusB,KAAK,CAACyiB,SAAS,CAAC,cAAAY,YAAA,uBAArBA,YAAA,CAAwB,CAAC,CAAC,YAAAC,YAAA,GACzC7vC,IAAI,CAACusB,KAAK,CAACyiB,SAAS,CAAC,cAAAa,YAAA,uBAArBA,YAAA,CAAwB,CAAC,CAC7B,CAAE,CACL;MACL,KAAK,kBAAkB;QACnB,CAAC,CAACtyB,SAAS,IAAI38B,MAAM,CAAC2P,IAAI,sBAAAu/C,YAAA,GACL9vC,IAAI,CAACusB,KAAK,CAACyiB,SAAS,CAAC,cAAAc,YAAA,uBAArBA,YAAA,CAAwB,CAAC,CAAC,UAAIvyB,SAAW,CAC7D;QACD;MACJ,KAAK,wBAAwB;QACzB,CAAC38B,MAAM,CAAC2P,IAAI,sBAAAw/C,YAAA,GACS/vC,IAAI,CAACusB,KAAK,CAACyiB,SAAS,CAAC,cAAAe,YAAA,uBAArBA,YAAA,CAAwB,CAAC,CAAC,YAAAC,aAAA,GAAIhwC,IAAI,CAACusB,KAAK,CAACyiB,SAAS,CAAC,cAAAgB,aAAA,uBAArBA,aAAA,CAAwB,CAAC,CAAC,CAAE,CAC9E;QACD;;GAIX;EAED,IAAMxmC,OAAO,GAAGxe,iBAAW;IAAA;;QAqBvBN,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MApB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA+N,KAAA,GAAAC,MAAA,aAEtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkBoI,KAAG,CAAAoD,QAAA,KAAKiQ,OAAO;UAAEnU,KAAK,EAAE,EAACA,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEhG,IAAI,EAAE,IAAGmX,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEnR,KAAK,GAAG,CAACA,KAAK;UAAE,CAAC,EAAAlF,IAAA,WAA5EhC,GAAG;UACT,IAAAsQ,SAAA,GAA8BtQ,GAAG,CAAC2H,IAAI;YAA9BsW,KAAK,GAAA3N,SAAA,CAAL2N,KAAK;YAAEL,UAAU,GAAAtN,SAAA,CAAVsN,UAAU;UACzB1e,QAAQ,CACJqjD,eAAe,CAAC;YACZO,gBAAgB,EAAE7kC,KAAK;YACvBL,UAAU,EAAVA;WACH,CAAC,CACL;;OACJ,YAAQvb,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA,CAAAiJ,MAAA,IAAAA,MAAA,CAAAL,KAAA;KAGJ,QAAAvR,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,CAACgiB,OAAO,CAAC,CAAC;EAEb3Q,eAAS,CAAC;IACN9R,QAAQ,CAAC8D,KAAK,GAAGsM,OAAK;GACzB,EAAE,EAAE,CAAC;EAEN0B,eAAS,CAAC;IACNsT,OAAO,EAAE;IACT,IAAMymC,MAAM,GAAG,IAAIC,MAAM,CAAC1B,SAAS,EAAE;MAAE2B,OAAO,EAAE1B;KAAe,CAAC;IAChE,IAAM2B,OAAO,GAAGH,MAAM,CAACI,SAAS,CAAI7tD,sBAAoB,SAAImR,MAAQ,CAAC;IAErEy8C,OAAO,CAACE,IAAI,CAAClC,gBAAgB,EAAE5kC,OAAO,CAAC;IACvC,OAAO;MAAA,OAAMymC,MAAM,CAACM,WAAW,CAAI/tD,sBAAoB,SAAImR,MAAQ,CAAC;;GACvE,EAAE,CAACkT,OAAO,EAAElT,MAAM,CAAC,CAAC;EAErB,IAAM68C,kBAAkB,GAAGxlD,iBAAW,CAClC,UAACmJ,EAAU,EAAEg6C,MAAe;IACxB,IAAI;MACAzjD,QAAQ,CACJnC,QAAQ,CAAC;QACLob,MAAM,EAAE,IAAI;QACZ7b,IAAI,EAAE,SAAS;QACfwO,OAAO,8CACH63C,MAAM,GAAG,MAAM,GAAG,QACtB,OAAG;QACHvkC,SAAS;UAAA;mCACCikC,wBAAwB,CAAC15C,EAAE,CAAC,EAAA3G,IAAA;cAClCgc,OAAO,EAAE;;WACZ,QAAA3kB,CAAA;YAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;OACJ,CAAC,CACL;KACJ,CAAC,OAAOgJ,GAAG,EAAE;MAAA,IAAAmJ,cAAA,EAAAC,mBAAA;MACVvM,QAAQ,CACJhC,QAAQ,CAAC;QACLZ,IAAI,EAAE,QAAQ;QACdwO,OAAO,EAAE,EAAAU,cAAA,GAAAnJ,GAAG,CAAC0E,QAAQ,cAAAyE,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7D,IAAI,cAAA8D,mBAAA,uBAAlBA,mBAAA,CAAoB/O,KAAK,KAAI2F,GAAG,CAACyI;OAC7C,CAAC,CACL;;GAER,EACD,CAACg4C,gBAAgB,EAAEI,kBAAkB,CAAC,CACzC;EAED,IAAM+B,SAAS,GAAGzlD,iBAAW;IAAA;MACzB,IAAI;QACA,IAAIsjD,gBAAgB,CAACpvC,MAAM,KAAK,CAAC,EAAE,MAAM,IAAIlG,KAAK,CAAC,8BAA8B,CAAC;QAClFtO,QAAQ,CACJnC,QAAQ,CAAC;UACLob,MAAM,EAAE,IAAI;UACZ7b,IAAI,EAAE,SAAS;UACfwO,OAAO,0CAA0C;UACjDsT,SAAS;YAAA;cACLglC,wBAAwB,CAAC,IAAI,CAAC;cAAA,OAAAzjD,OAAA,CAAAC,OAAA,CACxB0iD,eAAe,EAAE,EAAAtgD,IAAA;gBACvBgc,OAAO,EAAE;gBACTolC,wBAAwB,CAAC,KAAK,CAAC;;aAClC,QAAA/pD,CAAA;cAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;SACJ,CAAC,CACL;OACJ,CAAC,OAAOgJ,GAAG,EAAE;QAAA,IAAAmP,cAAA,EAAAC,mBAAA;QACVvS,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAA0G,cAAA,GAAAnP,GAAG,CAAC0E,QAAQ,cAAAyK,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7J,IAAI,cAAA8J,mBAAA,uBAAlBA,mBAAA,CAAoB/U,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;;MACJ,OAAAnL,OAAA,CAAAC,OAAA;KACJ,QAAAvG,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,CAACypD,gBAAgB,CAAC,CAAC;EAEtB,OAAO;IACHA,gBAAgB,EAAhBA,gBAAgB;IAChBllC,UAAU,EAAVA,UAAU;IACVslC,kBAAkB,EAAlBA,kBAAkB;IAClB7nC,OAAO,EAAPA,OAAO;IACPgC,aAAa,EAAbA,aAAa;IACb2nC,kBAAkB,EAAlBA,kBAAkB;IAClB1B,gBAAgB,EAAhBA,gBAAgB;IAChB2B,SAAS,EAATA,SAAS;IACT9B,qBAAqB,EAArBA;GACH;AACL,CAAC;;AC/ND,IAAM7kC,QAAM,GAAG,mBAAmB;AAClC,IAAM4mC,SAAS,GAAG,EAAE;AAEpB,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA;EAClB,IAAAC,oBAAA,GASIvC,mBAAmB,EAAE;IARrBC,gBAAgB,GAAAsC,oBAAA,CAAhBtC,gBAAgB;IAChBllC,UAAU,GAAAwnC,oBAAA,CAAVxnC,UAAU;IACVvC,OAAO,GAAA+pC,oBAAA,CAAP/pC,OAAO;IACPgC,aAAa,GAAA+nC,oBAAA,CAAb/nC,aAAa;IACb2nC,kBAAkB,GAAAI,oBAAA,CAAlBJ,kBAAkB;IAClB1B,gBAAgB,GAAA8B,oBAAA,CAAhB9B,gBAAgB;IAChB2B,SAAS,GAAAG,oBAAA,CAATH,SAAS;IACT9B,qBAAqB,GAAAiC,oBAAA,CAArBjC,qBAAqB;EAEzB,IAAApoC,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EAET,OACIrgB;IAAKC,SAAS,EAAC,iBAAiB;IAACN,KAAK,EAAE;MAAEglB,OAAO,EAAE;;KAC/C3kB;IAAIC,SAAS,EAAC;KAAQyjB,QAAM,CAAM,EAElC1jB,6BAACoJ,cAAG;IAACnJ,SAAS,EAAC;KACXD,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ,6BAACm6B,WAAS;IACNrU,SAAS,EAAErF,OAAO,CAACnnB,YAAY;IAC/B8gC,QAAQ,EAAE,SAAVA,QAAQA,CAAG9gC,YAAkB;MAAA,OACzBmpB,aAAa,CAAC;QACVnpB,YAAY,EAAEA;OACjB,CAAC;;IAENkI,WAAW,EAAC;IACd,CACA,EACNxB,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ,6BAACsnD,4BAA0B;IACvBnuD,KAAK,EAAEsnB,OAAO,CAACsnC,MAAM;IACrBxmD,QAAQ,EAAE,SAAVA,QAAQA,CAAG9C,CAAM;MAAA,OACbgkB,aAAa,CAAC;QAAEslC,MAAM,EAAEtpD,CAAC,CAACtF;OAAO,CAAC;;IAExC,CACA,CACJ,EACN6G,6BAACoJ,cAAG;IAACnJ,SAAS,EAAC;KACXD,6BAACqJ,cAAG;IAACE,EAAE,EAAE,EAAE;IAAEtJ,SAAS,EAAC;KAClBwgB,OAAO,CAACsnC,MAAM,KAAK,KAAK,IACrB/nD;IAAKC,SAAS,EAAC;yBAEXD,6BAACyB,gBAAK;IACFuH,OAAO,EAAEu/C,qBAAqB;IAC9BtoD,SAAS,EAAC,MAAM;IAChByB,IAAI,EAAC,UAAU;IACfqM,EAAE,mBAAmB;IACrBxM,QAAQ,EAAE,SAAVA,QAAQA;MAAA,OAAQ8oD,SAAS,EAAE;;IAC7B,CAET,8BACwBrnC,UAAU,CACjC,CACJ,EACNhjB,6BAACoJ,cAAG;IAACnJ,SAAS,EAAC;KACXD,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACJ2+C,gBAAgB,IAAIA,gBAAgB,CAACpvC,MAAM,GAAG,CAAC,GAC5C9Y,0CACIA,6BAAC8jB,gBAAK;IAACC,QAAQ;IAACC,KAAK;IAACC,OAAO;IAACC,UAAU;IAACna,IAAI,EAAC;KAC1C/J,4CACIA,yCACIA;IAAIC,SAAS,EAAC;YAAqB,EACnCD;IAAIC,SAAS,EAAC;YAAqB,EACnCD;IAAIC,SAAS,EAAC;eAA0B,EACxCD;IAAIC,SAAS,EAAC;cAAyB,CACtC,CACD,EACRD,4CACKkoD,gBAAgB,CAAC9hD,GAAG,CAAC,UAAC+d,MAAW;IAAA,OAC9BnkB;MAAIuK,GAAG,EAAE4Z,MAAM,CAACpW;OACZ/N;MAAIC,SAAS,EAAC;OACTkkB,MAAM,CAACpkB,IAAI,CACX,EACLC;MAAIC,SAAS,EAAC;OACToiC,cAAc,CACXle,MAAM,CAACsW,IAAI,EACX,kBAAkB,CACrB,CACA,EACLz6B;MACIC,SAAS,EAAKmI,MAAM,CAAC,eAAe,CAAC;OAErCpI,6BAACyB,gBAAK;MACFC,IAAI,EAAC,UAAU;MACfqM,EAAE,uBAAqBoW,MAAM,CAACpW,EAAI;MAClC/E,OAAO,EAAEmb,MAAM,CAAC4jC,MAAM;MACtBxmD,QAAQ,EAAE,SAAVA,QAAQA;QAAA,OACJ6oD,kBAAkB,CACdjmC,MAAM,CAACpW,EAAE,EACT,CAACoW,MAAM,CAAC4jC,MAAM,CACjB;;MAEP,CACD,EACL/nD;MAAIC,SAAS,EAAC;OACT,CACG,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,4BAA4B,EAC5B,+BAA+B,EAC/B,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,CAC3B,CAACtF,QAAQ,CAACwpB,MAAM,CAACwkC,MAAM,CAAC,IACjB3oD,6BAACyqD,eAAY;MACTxqD,SAAS,EAAC,gBAAgB;MAC1B8J,IAAI,EAAEugD,SAAS;MACfxoD,KAAK,EAAC,QAAQ;MACdD,OAAO,EAAE,SAATA,OAAOA;QAAA,OACH6mD,gBAAgB,CACZvkC,MAAM,CACT;;MAGZ,CACJ,CACJ;GACR,CAAC,CACE,CACJ,CACN,GAENnkB,6BAACggB,cAAc;IAAC9mB,KAAK,EAAEmnB,CAAC,CAAC,cAAc;IAC1C,CACC,EACNrgB,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ,6BAACwgB,gBAAgB;IACbC,OAAO,EAAEA,OAAO;IAChBE,gBAAgB,EAAEqC,UAAU;IAC5BpC,cAAc,EAAE,SAAhBA,cAAcA,CAAGpnB,QAAgB;MAAA,OAC7BipB,aAAa,CAAC;QAAEjpB,QAAQ,EAARA;OAAU,CAAC;;IAE/BknB,UAAU,EAAE,SAAZA,UAAUA,CAAGnnB,WAAmB;MAAA,OAC5BkpB,aAAa,CAAC;QAAElpB,WAAW,EAAXA;OAAa,CAAC;;IAEpC,CACA,CACJ,CACJ;AAEd,CAAC;;AC/JD,IAAMmxD,WAAW,GAAO,SAAlBA,WAAWA;;EACb,IAAMpmD,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,IAAMkC,KAAK,GAAGwN,sBAAW,CAAC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACC,MAAM,CAAC1N,KAAK;IAAC;EAC7D,IAAM2E,OAAO,GAAGkR,YAAM,CAAM,IAAI,CAAC;EAEjC,IAAMquC,SAAS,GAAG,SAAZA,SAASA;IACXrmD,QAAQ,CAAChC,QAAQ,CAAC;MAAE4N,OAAO,EAAE;KAAI,CAAC,CAAC;IACnC9E,OAAO,IAAIA,OAAO,CAACuR,OAAO,IAAI6f,YAAY,CAACpxB,OAAO,CAACuR,OAAO,CAAC;GAC9D;EAED7M,eAAS,CAAC;;IACN,IAAI,CAAC,GAAA86C,cAAA,GAACnkD,KAAK,CAACyJ,OAAO,cAAA06C,cAAA,eAAbA,cAAA,CAAe9xC,MAAM,GAAE;MACzB1N,OAAO,IAAIA,OAAO,CAACuR,OAAO,IAAI6f,YAAY,CAACpxB,OAAO,CAACuR,OAAO,CAAC;MAC3DvR,OAAO,CAACuR,OAAO,GAAG8f,UAAU,CAAC;QACzBn4B,QAAQ,CAAChC,QAAQ,CAAC;UAAE4N,OAAO,EAAE;SAAI,CAAC,CAAC;OACtC,EAAE,IAAI,CAAC;;GAEf,EAAE,CAACzJ,KAAK,CAAC,CAAC;EAEX,OAAO,EAAAokD,eAAA,GAAApkD,KAAK,CAACyJ,OAAO,cAAA26C,eAAA,uBAAbA,eAAA,CAAe/xC,MAAM,IAAG,CAAC,GAC5B9Y;IACIC,SAAS,iBAAemI,MAAM,CAAC,WAAW,CAAC,SAAIA,MAAM,iBAAe3B,KAAK,CAAC/E,IAAI;KAE9E1B,6BAACsgB,gBAAK;IACF1f,KAAK,EAAE6F,KAAK,CAAC/E,IAAI;IACjB6b,MAAM,EAAE9W,KAAK,CAACyJ,OAAO,CAAC4I,MAAM,GAAG,CAAC;IAChC7J,MAAM,EAAE07C;KAEPlkD,KAAK,CAACyJ,OAAO,CACV,CACN,GACN,IAAI;AACZ,CAAC;;AChCD,IAAM3M,QAAM,GAAGC,UAAU,CAAC;EACtB7J,IAAI,EAAE6J,UAAU,EAAE,CAAC5B,QAAQ,CAAC,kBAAkB;CACjD,CAAC;AAEF,IAAMkpD,WAAW,GAAG,SAAdA,WAAWA,CAAIvwC,KAAU,EAAE8B,GAAQ;EACrC,IAAQ0uC,WAAW,GAAgBxwC,KAAK,CAAhCwwC,WAAW;IAAEvnC,SAAS,GAAKjJ,KAAK,CAAnBiJ,SAAS;EAC9B,IAAMqB,WAAW,GAAGkmC,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAExgD,GAAG,GAAG,QAAQ,GAAG,QAAQ;EAC1D,IAAMmZ,MAAM,GAAGqnC,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAExgD,GAAG,GAAG,QAAQ,GAAG,QAAQ;EACrD,OACIvK,6BAAC+G,aAAM;IACHC,aAAa,EAAE;MAAErN,IAAI,EAAEoxD,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEpxD;KAAM;IAC1CuX,kBAAkB;IAClBjK,gBAAgB,EAAE1D,QAAM;IACxB2D,QAAQ,EAAE,SAAVA,QAAQA,CAAGC,MAAM,EAAEqqB,OAAO;MACtBhO,SAAS,IAAIA,SAAS,CAACrc,MAAM,CAAC;MAC9BqqB,OAAO,CAACC,SAAS,EAAE;;KAGtB,UAAA9pB,WAAW;IACR,IACIR,MAAM,GAMNQ,WAAW,CANXR,MAAM;MACNY,OAAO,GAKPJ,WAAW,CALXI,OAAO;MACPC,MAAM,GAINL,WAAW,CAJXK,MAAM;MACNJ,YAAY,GAGZD,WAAW,CAHXC,YAAY;MACZC,UAAU,GAEVF,WAAW,CAFXE,UAAU;MACVC,YAAY,GACZH,WAAW,CADXG,YAAY;IAEhB,OACI9H,6BAACwvB,aAAW;MACR9L,MAAM,EAAEA,MAAM;MACdmB,WAAW,EAAEA,WAAW;MACxBrB,SAAS,EAAE1b,YAAY;MACvBuU,GAAG,EAAEA;OAELrc,6BAACoJ,cAAG,QACApJ,6BAACqJ,cAAG;MAACE,EAAE,EAAE;OACLvJ,6BAACyB,gBAAK;MACF9H,IAAI,EAAC,MAAM;MACX6H,WAAW,mBACPupD,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAExgD,GAAG,GAAG,MAAM,GAAG,QAChC,WAAO;MACPpR,KAAK,EAAEgO,MAAM,CAACxN,IAAI;MAClB4H,QAAQ,EAAEqG,YAAY;MACtBe,MAAM,EAAEd,UAAU,CAAC,UAAU;MAC/B,EACDE,OAAO,CAACpO,IAAI,IAAIqO,MAAM,CAACrO,IAAI,IACxBqG,6BAACH,YAAY;MACTE,IAAI,EAAEiI,MAAM,CAACrO;MAEpB,CACC,CACJ,CACI;GAErB,CACI;AAEjB,CAAC;AAED,oBAAe22B,gBAAU,CAACw6B,WAAW,CAAC;;ACrCtC,IAAME,QAAQ,GAA0B,SAAlCA,QAAQA,CAAAlrD,IAAA;MACVmrD,SAAS,GAAAnrD,IAAA,CAATmrD,SAAS;IACTC,IAAI,GAAAprD,IAAA,CAAJorD,IAAI;IACJC,SAAS,GAAArrD,IAAA,CAATqrD,SAAS;IACTC,aAAa,GAAAtrD,IAAA,CAAbsrD,aAAa;IACbL,WAAW,GAAAjrD,IAAA,CAAXirD,WAAW;IACXM,gBAAgB,GAAAvrD,IAAA,CAAhBurD,gBAAgB;IAChBC,kBAAkB,GAAAxrD,IAAA,CAAlBwrD,kBAAkB;IAClBC,gBAAgB,GAAAzrD,IAAA,CAAhByrD,gBAAgB;IAChBC,YAAY,GAAA1rD,IAAA,CAAZ0rD,YAAY;IACZC,mBAAmB,GAAA3rD,IAAA,CAAnB2rD,mBAAmB;IACnBC,yBAAyB,GAAA5rD,IAAA,CAAzB4rD,yBAAyB;IACzBC,cAAc,GAAA7rD,IAAA,CAAd6rD,cAAc;EAEd,IAAMv5B,KAAK,GAAG9V,YAAM,CAAM,IAAI,CAAC;EAC/B,IAAMsvC,SAAS,GAAGtvC,YAAM,CAAmB,IAAI,CAAC;EAChD,IAAA6D,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EAET,IAAMkS,SAAS,GAAG,SAAZA,SAASA;IAAA,IAAAs5B,cAAA;IAAA,OAASz5B,KAAK,aAALA,KAAK,wBAAAy5B,cAAA,GAALz5B,KAAK,CAAEzV,OAAO,cAAAkvC,cAAA,uBAAdA,cAAA,CAAgB58C,MAAM,EAAE;;EAEhD,IAAM68C,kBAAkB,GAAG,SAArBA,kBAAkBA;IAAA,OACpB9rD,6BAACoJ,cAAG;MAACnJ,SAAS,EAAC;OACV,CAAC,CAACirD,IAAI,IACHlrD,6BAAC2f,iBAAM;MACH1f,SAAS,EAAC,MAAM;MAChBW,KAAK,EAAC,WAAW;MACjBiB,OAAO,EAAE2pD;OAETxrD,6BAAC+rD,cAAW,OAAG,EACf/rD,6BAACkmB,gBAAK;MAACjmB,SAAS,EAAC;eAA2B,CAEnD,EACA8qD,WAAW,IAAI,CAACA,WAAW,CAACiB,QAAQ,IACjChsD,6BAAC2f,iBAAM;MACH1f,SAAS,EAAC,MAAM;MAChBW,KAAK,EAAC,SAAS;MACfiB,OAAO,EAAE4pD;OAETzrD,6BAACisD,aAAU,OAAG,EACdjsD,6BAACkmB,gBAAK;MAACjmB,SAAS,EAAC;kBAA8B,CAEtD,EACA8qD,WAAW,IAAI,CAACE,SAAS,IACtBjrD,6BAAC2f,iBAAM;MACH1f,SAAS,EAAC,MAAM;MAChBW,KAAK,EAAC,QAAQ;MACdiB,OAAO,EAAE6pD;OAET1rD,6BAACksD,UAAO,OAAG,EACXlsD,6BAACkmB,gBAAK;MAACjmB,SAAS,EAAC;gBAA4B,CAEpD,EACA8qD,WAAW,IAAI,CAACE,SAAS,IAAI,CAACF,WAAW,CAACiB,QAAQ,IAC/ChsD,6BAAC2f,iBAAM;MAAC1f,SAAS,EAAC,MAAM;MAACW,KAAK,EAAC,SAAS;MAACiB,OAAO,EAAE0wB;OAC9CvyB,6BAACmsD,SAAM,OAAG,EACVnsD,6BAACkmB,gBAAK;MAACjmB,SAAS,EAAC;gBAA4B,CAEpD,EACA,CAAC8qD,WAAW,IAAI,CAACE,SAAS,IACvBjrD,6BAAC2f,iBAAM;MAAC1f,SAAS,EAAC,MAAM;MAACW,KAAK,EAAC,SAAS;MAACiB,OAAO,EAAE0wB;OAC9CvyB,6BAACosD,eAAY,OAAG,EAChBpsD,6BAACkmB,gBAAK;MAACjmB,SAAS,EAAC;OAAeogB,CAAC,CAAC,YAAY,CAAC,CAAS,CAE/D,EACA,CAAC0qC,WAAW,IAAI,CAACE,SAAS,IACvBjrD,6BAAC2f,iBAAM;MACH1f,SAAS,EAAC,MAAM;MAChBW,KAAK,EAAC,MAAM;MACZiB,OAAO,EAAE,SAATA,OAAOA;QAAA,IAAAwqD,kBAAA;QAAA,OAAQT,SAAS,aAATA,SAAS,wBAAAS,kBAAA,GAATT,SAAS,CAAEjvC,OAAO,cAAA0vC,kBAAA,uBAAlBA,kBAAA,CAAoB9hC,KAAK,EAAE;;OAE1CvqB,6BAACssD,eAAY,OAAG,EAChBtsD,6BAACkmB,gBAAK;MAACjmB,SAAS,EAAC;OAAeogB,CAAC,CAAC,QAAQ,CAAC,CAAS,CAE3D,EACA8qC,SAAS,IACNnrD,6BAACqJ,cAAG;MAACpJ,SAAS,EAAC;OACVkrD,SAAS,CAEjB,CACC;GACT;EAED,OACInrD,0CACK8rD,kBAAkB,EAAE,EACrB9rD,6BAAC8qD,aAAW;IACRzuC,GAAG,EAAE+V,KAAK;IACV24B,WAAW,EAAEA,WAAW;IACxBvnC,SAAS,YAASrc,MAAW;MAAA;;cACrBA,MAAM,CAACxN,IAAI,IAAI,EAAE;YAAA,IAAAqW,KAAA;cAAA,IACb+6C,WAAW,IAAI,CAACA,WAAW,CAACiB,QAAQ;gBACpCz5B,SAAS,EAAE;gBAAA,OAAAxtB,OAAA,CAAAC,OAAA,CACLumD,gBAAgB,CAACpkD,MAAM,CAACxN,IAAI,CAAC,EAAAyN,IAAA;;gBAEnCmrB,SAAS,EAAE;gBAAA,OAAAxtB,OAAA,CAAAC,OAAA,CACLsmD,kBAAkB,CAACF,aAAa,EAAEjkD,MAAM,CAACxN,IAAI,CAAC,EAAAyN,IAAA;;;YAAA,IAAA4I,KAAA,IAAAA,KAAA,CAAA5I,IAAA,SAAA4I,KAAA,CAAA5I,IAAA;;YAGxDukD,cAAc,CAAC,qBAAqB,CAAC;;;QAAA,OAAA5mD,OAAA,CAAAC,OAAA,CAAAqL,MAAA,IAAAA,MAAA,CAAAjJ,IAAA,GAAAiJ,MAAA,CAAAjJ,IAAA;OAE5C,QAAA3I,CAAA;QAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;IACH,EAEFuB;IACI0B,IAAI,EAAC,MAAM;IACXqM,EAAE,EAAC,mBAAmB;IACtBsO,GAAG,EAAEuvC,SAAS;IACdjsD,KAAK,EAAE;MAAEgtB,OAAO,EAAE;KAAQ;IAC1BprB,QAAQ,YAAS65B,KAAU;MAAA;;QACvB,IAAMhR,IAAI,GAAGgR,KAAK,aAALA,KAAK,wBAAAmxB,aAAA,GAALnxB,KAAK,CAAExyB,MAAM,cAAA2jD,aAAA,uBAAbA,aAAA,CAAeliC,KAAK,CAAC,CAAC,CAAC;QAAA,IAAA9Z,MAAA;UAAA,IAChC6Z,IAAI;YAAA,OAAArlB,OAAA,CAAAC,OAAA,CACEqmD,gBAAgB,CAAC;cAAE9gD,GAAG,EAAE6gD,aAAa;cAAEhhC,IAAI,EAAJA;aAAM,CAAC,EAAAhjB,IAAA;;;QAAA,OAAArC,OAAA,CAAAC,OAAA,CAAAuL,MAAA,IAAAA,MAAA,CAAAnJ,IAAA,GAAAmJ,MAAA,CAAAnJ,IAAA;OAE3D,QAAA3I,CAAA;QAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;IACH,CACA;AAEd,CAAC;AAED,iBAAeuB,cAAK,CAACsf,IAAI,CAAC0rC,QAAQ,CAAC;;;;ACpJnC,IAAMwB,MAAM,GAAG;EACXC,wBAAwB,EAAE,iBAAiB;EAC3CC,yBAAyB,EAAE,kBAAkB;EAC7CC,IAAI,EAAE,uBAAuB;EAC7BC,WAAW,EAAE,wBAAwB;EACrCC,cAAc,EAAE,uBAAuB;EACvCC,UAAU,EAAE,iBAAiB;EAC7BC,WAAW,EAAE,kBAAkB;EAC/BC,WAAW,EAAE,kBAAkB;EAC/BC,WAAW,EAAE,kBAAkB;EAC/BC,YAAY,EAAE,mBAAmB;EACjCC,YAAY,EAAE;CAEjB;;ACND,IAAYC,SAMX;AAND,WAAYA,SAAS;EACjBA,2CAAK;EACLA,2CAAK;EACLA,2CAAK;EACLA,uCAAG;EACHA,6CAAM;AACV,CAAC,EANWA,SAAS,KAATA,SAAS;;ACHrB,IAAMC,QAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;AAC5C,IAAMC,QAAM,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;AAC9B,IAAMC,MAAI,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;AACxD,IAAMC,QAAM,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;AAG7B,AAAO,IAAMC,kBAAkB,GAAiD,SAAnEA,kBAAkBA,CAAkDC,SAAS;EACxF,IAAGA,SAAS,EAAC;IACX,IAAGL,QAAM,CAAC1yD,QAAQ,CAAC+yD,SAAS,CAAC,EAAE,OAAON,SAAS,CAACO,KAAK;IACrD,IAAGL,QAAM,CAAC3yD,QAAQ,CAAC+yD,SAAS,CAAC,EAAE,OAAON,SAAS,CAACQ,KAAK;IACrD,IAAGL,MAAI,CAAC5yD,QAAQ,CAAC+yD,SAAS,CAAC,EAAE,OAAON,SAAS,CAACS,GAAG;IACjD,IAAGL,QAAM,CAAC7yD,QAAQ,CAAC+yD,SAAS,CAAC,EAAE,OAAON,SAAS,CAACU,KAAK;;EAEvD,OAAOV,SAAS,CAACW,MAAM;AACzB,CAAC;AAED,AAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,KAAe;EAC/C,IAAGA,KAAK,CAACjC,QAAQ,EAAE,OAAOQ,MAAM,CAACU,YAAY;EAC7C,IAAMxrD,IAAI,GAAG+rD,kBAAkB,CAACQ,KAAK,CAACP,SAAS,CAAC;EAEhD,IAAGhsD,IAAI,KAAK0rD,SAAS,CAACO,KAAK,EAAC;IAC1B,OAAOnB,MAAM,CAACQ,WAAW;;EAE3B,IAAGtrD,IAAI,KAAK0rD,SAAS,CAACQ,KAAK,EAAC;IAC1B,OAAOpB,MAAM,CAACS,WAAW;;EAE3B,IAAGvrD,IAAI,KAAK0rD,SAAS,CAACU,KAAK,EAAC;IAC1B,OAAOtB,MAAM,CAACO,WAAW;;EAE3B,IAAGrrD,IAAI,KAAK0rD,SAAS,CAACS,GAAG,EAAC;IACxB,OAAOrB,MAAM,CAACM,UAAU;;EAE1B,OAAON,MAAM,CAACW,YAAY;AAC5B,CAAC;;ACzBD,IAAMe,KAAK,GAAuB,SAA5BA,KAAKA,CAAApuD,IAAA;MAAyBmuD,KAAK,GAAAnuD,IAAA,CAALmuD,KAAK;IAAEE,QAAQ,GAAAruD,IAAA,CAARquD,QAAQ;EACjD,IAAMC,SAAS,GAAGJ,iBAAiB,CAACC,KAAK,CAAC;EAC1C,OACIjuD,6BAACm3C,eAAI;IAACl3C,SAAS,GAAKkuD,QAAQ,GAAG/lD,QAAM,CAAC,sBAAsB,CAAC,GAAG,EAAE;KAChEpI,6BAACquD,kBAAO;IACNpuD,SAAS,EAAKmI,QAAM,CAAC,aAAa,CAAC,SAAM;IACzC45C,GAAG;IACHx9B,KAAK,EAAC,KAAK;IACXhc,GAAG,EAAE2I,gBAAgB,CAACi9C,SAAS,CAAC;IAChC3yC,GAAG,EAAEwyC,KAAK,CAACt0D;IACX,EACFqG,6BAACo3C,mBAAQ;IAACn3C,SAAS,EAAC,KAAK;IAACN,KAAK,EAAE;MAACQ,MAAM,EAAE;;KACxCH,6BAACsuD,oBAAS;IAAC7sC,GAAG,EAAC,IAAI;IAACxhB,SAAS,EAAEmI,QAAM,CAAC,aAAa;KAAI6lD,KAAK,CAACt0D,IAAI,CAAa,CACrE,CACN;AAEb,CAAC;AAED,cAAeqG,cAAK,CAACsf,IAAI,CAAC4uC,KAAK,CAAC;;ACEhC,IAAMjtC,SAAO,GAAkB,CAC3B;EAAE9nB,KAAK,EAAEi0D,SAAS,CAACO,KAAK;EAAEz0D,KAAK,EAAE;CAAU,EAC3C;EAAEC,KAAK,EAAEi0D,SAAS,CAACU,KAAK;EAAE50D,KAAK,EAAE;CAAU,EAC3C;EAAEC,KAAK,EAAEi0D,SAAS,CAACS,GAAG;EAAE30D,KAAK,EAAE;CAAQ,EACvC;EAAEC,KAAK,EAAEi0D,SAAS,CAACQ,KAAK;EAAE10D,KAAK,EAAE;CAAU,CAC9C;AAED,IAAMq1D,MAAM,GAAwB,SAA9BA,MAAMA,CAAAzuD,IAAA;MACR2iB,aAAa,GAAA3iB,IAAA,CAAb2iB,aAAa;EAGb,IAAA5T,SAAA,GAAuCC,cAAQ,EAAiB;IAAzD0/C,UAAU,GAAA3/C,SAAA;IAAE4/C,gBAAgB,GAAA5/C,SAAA;EACnC,IAAAsR,eAAA,GAAYC,2BAAc,EAAE;IAArBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EACR,OACIrgB,6BAACoJ,cAAG;IAACnJ,SAAS,OAAKmI,QAAM,CAAC,mBAAmB;KACzCpI,6BAACqJ,cAAG;IAACqlD,EAAE,EAAE;KACL1uD,6BAACm6B,WAAS;IACNrU,SAAS,EAAC,EAAE;IACZsU,QAAQ,EAAE,SAAVA,QAAQA,CAAG9gC,YAAkB;MAAA,OACzBmpB,aAAa,CAAC;QACVnpB,YAAY,EAAEA;OACjB,CAAC;;IAENkI,WAAW,EAAE6e,CAAC,CAAC,uCAAuC;IACxD,CACA,EAENrgB,6BAACqJ,cAAG;IAACqlD,EAAE,EAAE;KACL1uD,6BAACuwB,cAAc;IACXp3B,KAAK,EAAEq1D,UAAU;IACjBnX,OAAO;IACPp2B,OAAO,EAAEA,SAAO,CAAC7a,GAAG,CAAC,UAACC,CAAK;MAAA,OAAAmK,QAAA,KAAQnK,CAAC;QAAEnN,KAAK,EAAEmnB,CAAC,CAACha,CAAC,CAACnN,KAAK;;KAAG,CAAC;IAC1DqI,QAAQ,EAAE,SAAVA,QAAQA,CAAG0f,OAAsB;MAC7BwtC,gBAAgB,CAACxtC,OAAO,CAAC;MACzB,IAAM0tC,KAAK,GAAG1tC,OAAO,CAAC7a,GAAG,CAAC,UAACwoD,EAAe;QAAA,OAAKA,EAAE,CAACz1D,KAAK;QAAC;MACxDspB,aAAa,CAAC;QAAEksC,KAAK,EAALA;OAAO,CAAC;;IAE9B,CACA,CAmDJ;AAEd,CAAC;;ACzHM,IAAME,UAAU,GAAG3sD,oBAAY,CAAM,oBAAoB,CAAC;AACjE,AAAO,IAAM4sD,cAAc,GAAG5sD,oBAAY,CAAM,wBAAwB,CAAC;;ACCzE,IAAM6sD,WAAW,GAAMz0D,QAAQ,cAAW;AAE1C,AAAO,IAAM8S,KAAG,GAAG,SAANA,GAAGA,CAAI7G,MAAkB;EAAA,OAClCyE,GAAG,CAACoC,GAAG,MAAI2hD,WAAW,EAAI;IAAE3kD,MAAM,EAAE7D;GAAQ,CAAC;AAAA;;ACUjD,IAAM6H,OAAK,GAAG,SAAS;AAEvB,IAAMyxC,eAAa,GAAe;EAC9BvmD,YAAY,EAAE;CACjB;AAYD,IAAM01D,cAAc,GAAG,SAAjBA,cAAcA,CAAI/D;MAAAA;IAAAA,YAAqB,KAAK;;EAC9C,IAAMgE,SAAS,GAAGh7C,sBAAW,CAAC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACg7C,OAAO,CAACD,SAAS;IAAC;EACtE,IAAMjsC,UAAU,GAAG/O,sBAAW,CAAC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACg7C,OAAO,CAAClsC,UAAU;IAAC;EACxE,IAAM+nC,WAAW,GAAa92C,sBAAW,CACrC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACg7C,OAAO,CAACnE,WAAW;IAC5C;EACD,IAAMzmD,QAAQ,GAAGC,sBAAW,EAAE;EAE9B,IAAAsK,SAAA,GAA8CC,cAAQ,EAAqB;IAApEqgD,iBAAiB,GAAAtgD,SAAA;IAAEw8C,gBAAgB,GAAAx8C,SAAA;EAC1C,IAAAK,UAAA,GAA8BJ,cAAQ,CAClCzE,MAAM,CAAC2a,MAAM,CAAAxU,QAAA,KACJqvC,eAAa,GAClBoL,SAAS,GAAG;MAAEA,SAAS,EAAE;KAAM,GAAG,EAAE,CACvC,CACJ;IALMxqC,OAAO,GAAAvR,UAAA;IAAEsT,UAAU,GAAAtT,UAAA;EAM1B,IAAAG,UAAA,GAA+BP,cAAQ,CAAa;MAAEkzB,IAAI,EAAE,EAAE;MAAEkpB,IAAI,EAAE;KAAG,CAAC;IAAnEkE,MAAM,GAAA//C,UAAA;IAAEggD,YAAY,GAAAhgD,UAAA;EAE3B,IAAMigD,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIrB,KAAe;IACrC,IAAIA,KAAK,CAACjC,QAAQ,EAAE;MAChBxpC,UAAU,CAAC;QAAE6F,MAAM,EAAE4lC,KAAK,CAAC1jD,GAAG;QAAE0gD,SAAS,EAATA;OAAW,CAAC;MAC5C,IAAIgD,KAAK,CAAC1jD,GAAG,EAAE;QACX8kD,YAAY,CAAC;UACTrtB,IAAI,EAAEisB,KAAK,CAAC1jD,GAAG;UACf2gD,IAAI,EAAEkE,MAAM,CAAClE,IAAI,GAAG;SACvB,CAAC;;;GAGb;EAED,IAAMM,YAAY,GAAG,SAAfA,YAAYA;IACd,IAAQxpB,IAAI,GAAWotB,MAAM,CAArBptB,IAAI;MAAEkpB,IAAI,GAAKkE,MAAM,CAAflE,IAAI;IAClB,IAAI,CAAClpB,IAAI,IAAIA,IAAI,IAAI,EAAE,IAAIkpB,IAAI,GAAG,CAAC,EAAE;IACrC,IAAIqE,IAAI,GAAGvtB,IAAI,CAACpnC,KAAK,CAAC,GAAG,CAAC;IAC1B,IAAI20D,IAAI,CAACA,IAAI,CAACz2C,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;MAC9Bu2C,YAAY,CAAC;QACTrtB,IAAI,EAAKutB,IAAI,CAACvyB,MAAM,CAAC,CAAC,EAAEuyB,IAAI,CAACz2C,MAAM,GAAG,CAAC,CAAC,CAAClO,IAAI,CAAC,GAAG,CAAC,MAAG;QACrDsgD,IAAI,EAAEA,IAAI,GAAG;OAChB,CAAC;KACL,MAAM;MACHqE,IAAI,CAAC/7C,GAAG,EAAE;MACV67C,YAAY,CAAC;QAAErtB,IAAI,EAAKutB,IAAI,CAAC3kD,IAAI,CAAC,GAAG,CAAC,MAAG;QAAEsgD,IAAI,EAAEA,IAAI,GAAG;OAAG,CAAC;;GAEnE;EAED,IAAMsE,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIvB,KAAe;IACtC3pD,QAAQ,CAACwqD,cAAc,CAAC;MAAE/D,WAAW,EAAE1xB;KAAW,CAAC,CAAC;IACpD,IAAI0xB,WAAW,EAAE;MACb,IAAIkD,KAAK,CAAC1jD,GAAG,KAAKwgD,WAAW,CAACxgD,GAAG,EAAE;QAC/BjG,QAAQ,CAACwqD,cAAc,CAAC;UAAE/D,WAAW,EAAE1xB;SAAW,CAAC,CAAC;OACvD,MAAM;QACH/0B,QAAQ,CAACwqD,cAAc,CAAC;UAAE/D,WAAW,EAAEkD;SAAO,CAAC,CAAC;;KAEvD,MAAM;MACH3pD,QAAQ,CAACwqD,cAAc,CAAC;QAAE/D,WAAW,EAAEkD;OAAO,CAAC,CAAC;;GAEvD;EAED,IAAM1C,gBAAgB,YAAhBA,gBAAgBA,CAAU5xD,IAAY;IAAA;;YACpCoxD,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAExgD,GAAG,IAAI5Q,IAAI;UACxB2K,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;UAAA,OAAA8C,OAAA,CAAAC,OAAA,CACpBujB,UAAU,CAACwiC,WAAW,CAACxgD,GAAG,EAAE5Q,IAAI,CAAC,EAAAyN,IAAA;YACvC9C,QAAQ,CAACwqD,cAAc,CAAC;cAAE/D,WAAW,EAAE1xB;aAAW,CAAC,CAAC;YACpD/0B,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC3BmhB,OAAO,EAAE;;;;MAAA,OAAAre,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA;KAEhB,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMgtD,mBAAmB,GAAG,SAAtBA,mBAAmBA;IACrB,IAAIV,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAExgD,GAAG,EAAE;MAClB,IAAM1P,GAAG,GAAGsY,UAAU,CAAC43C,WAAW,CAACxgD,GAAG,CAAC;MACvC/P,MAAM,CAAC2P,IAAI,CAACtP,GAAG,EAAE,QAAQ,CAAC;KAC7B,MAAM;MACHyJ,QAAQ,CACJhC,QAAQ,CAAC;QACLZ,IAAI,EAAE,QAAQ;QACdwO,OAAO,EAAE;OACZ,CAAC,CACL;;GAER;EAED,IAAMy7C,cAAc,GAAG,SAAjBA,cAAcA,CAAIz7C,OAAe;IACnC5N,QAAQ,CAAC;MAAEZ,IAAI,EAAE,QAAQ;MAAEwO,OAAO,EAAPA;KAAS,CAAC;GACxC;EAED,IAAMw7C,yBAAyB,YAAzBA,yBAAyBA;IAAA;MAC3B,IAAIX,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAExgD,GAAG,EAAE;QAClBjG,QAAQ,CACJnC,QAAQ,CAAC;UACLob,MAAM,EAAE,IAAI;UACZ7b,IAAI,EAAE,SAAS;UACfwO,OAAO,mCACH66C,WAAW,CAACiB,QAAQ,GAAG,QAAQ,GAAG,MACtC,CAAE;UACFxoC,SAAS;YAAA;;gBASLlf,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC3BmhB,OAAO,EAAE;;cATT9e,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;cAAA,IAAAoO,MAAA;gBAAA,IACtB06C,WAAW,CAACiB,QAAQ;kBAAA,OAAAjnD,OAAA,CAAAC,OAAA,CACdmjB,YAAY,CAAC4iC,WAAW,CAACxgD,GAAG,IAAI,EAAE,CAAC,EAAAnD,IAAA;oBACzC9C,QAAQ,CAACwqD,cAAc,CAAC;sBAAE/D,WAAW,EAAE1xB;qBAAW,CAAC,CAAC;;;kBAAA,OAAAt0B,OAAA,CAAAC,OAAA,CAE9CkjB,UAAU,CAAC,CAAA6iC,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAExgD,GAAG,KAAI,EAAE,CAAC,EAAAnD,IAAA;oBACxC9C,QAAQ,CAACwqD,cAAc,CAAC;sBAAE/D,WAAW,EAAE1xB;qBAAW,CAAC,CAAC;;;;cAAA,OAAAt0B,OAAA,CAAAC,OAAA,CAAAqL,MAAA,IAAAA,MAAA,CAAAjJ,IAAA,GAAAiJ,MAAA,CAAAjJ,IAAA,CAAAmJ,MAAA,IAAAA,MAAA,CAAAF,MAAA;aAI3D,QAAA5R,CAAA;cAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;SACJ,CAAC,CACL;OACJ,MAAM;QACH6F,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE;SACZ,CAAC,CACL;;MACJ,OAAAnL,OAAA,CAAAC,OAAA;KACJ,QAAAvG,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAM6sD,kBAAkB,YAAlBA,kBAAkBA,CAAUjjC,MAAc,EAAEC,UAAkB;IAAA;;YAC5DA,UAAU;UAAA,OAAAvjB,OAAA,CAAAC,OAAA,CACJojB,YAAY,CAACC,MAAM,EAAEC,UAAU,CAAC,EAAAlhB,IAAA;YACtCgc,OAAO,EAAE;;;;MAAA,OAAAre,OAAA,CAAAC,OAAA,CAAAyL,MAAA,IAAAA,MAAA,CAAArJ,IAAA,GAAAqJ,MAAA,CAAArJ,IAAA;KAEhB,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EAED,IAAMgkB,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,cAA0B;IAAA,OAC7CF,UAAU,CAAAhS,QAAA,KACHiQ,OAAO,EACPiC,cAAc,CACpB,CAAC;;EAEN,IAAMU,OAAO,GAAGxe,iBAAW;IAAA;;QAkBvBN,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;MAjB3BqC,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;MAAA,IAAA0O,MAAA,GAAAV,MAAA,aACtB;QAAA,OAAAlL,OAAA,CAAAC,OAAA,CACkBoI,KAAG,CAACqT,OAAO,CAAC,EAAArZ,IAAA,WAAxBhC,GAAG;UACTd,QAAQ,CACJuqD,UAAU,CAAC;YACPI,SAAS,EAAE7pD,GAAG,CAAC2H,IAAI;YACnBiW,UAAU,EAAE5d,GAAG,CAAC2H,IAAI,CAAC+L,MAAM,IAAI;WAClC,CAAC,CACL;;OACJ,YAAQrR,GAAG,EAAE;QAAA,IAAA0I,aAAA,EAAAC,kBAAA;QACV9L,QAAQ,CACJhC,QAAQ,CAAC;UACLZ,IAAI,EAAE,QAAQ;UACdwO,OAAO,EAAE,EAAAC,aAAA,GAAA1I,GAAG,CAAC0E,QAAQ,cAAAgE,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcpD,IAAI,cAAAqD,kBAAA,uBAAlBA,kBAAA,CAAoBtO,KAAK,KAAI2F,GAAG,CAACyI;SAC7C,CAAC,CACL;OACJ;MAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAA2L,MAAA,IAAAA,MAAA,CAAAvJ,IAAA,GAAAuJ,MAAA,CAAAvJ,IAAA,CAAA0J,MAAA,IAAAA,MAAA,CAAAH,MAAA;KAEJ,QAAAlS,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;KAAE,CAAC6F,QAAQ,EAAEmc,OAAO,CAAC,CAAC;EAEvB3Q,eAAS,CAAC;IACN9R,QAAQ,CAAC8D,KAAK,GAAGsM,OAAK;IACtB9J,QAAQ,CAACwqD,cAAc,CAAC;MAAE/D,WAAW,EAAE1xB;KAAW,CAAC,CAAC;GACvD,EAAE,EAAE,CAAC;EAENvpB,eAAS,CAAC;IACN2S,aAAa,CAAC;MAAE4F,MAAM,EAAE+mC,MAAM,CAACptB;KAAM,CAAC;GACzC,EAAE,CAACotB,MAAM,CAACptB,IAAI,CAAC,CAAC;EAEjBlyB,eAAS,CAAC;IACNsT,OAAO,EAAE;GACZ,EAAE,CAAC3C,OAAO,CAAC,CAAC;EAEb3Q,eAAS,CAAC;QACS2/C,qBAAqB,YAArBA,qBAAqBA;MAAA;;UAsBhCnrD,QAAQ,CAACrC,UAAU,CAAC,KAAK,CAAC,CAAC;;QArB3B,IAAIgpD,SAAS,EAAE,OAAAlmD,OAAA,CAAAC,OAAA;QACfV,QAAQ,CAACrC,UAAU,CAAC,IAAI,CAAC,CAAC;QAAA,IAAAqV,MAAA,GAAArH,MAAA,aACtB;UAAA,IAAAgH,MAAA;YAAA,IACIk4C,iBAAiB;cACjB,IAAQ/kC,IAAI,GAAU+kC,iBAAiB,CAA/B/kC,IAAI;gBAAE7f,GAAG,GAAK4kD,iBAAiB,CAAzB5kD,GAAG;cACjB,IAAQ5Q,IAAI,GAAKywB,IAAI,CAAbzwB,IAAI;cACZ,IAAM+1D,SAAS,GAAGnlD,GAAG;cACrB,IAAMkd,QAAQ,GAAG,IAAI2B,QAAQ,EAAE;cAC/B3B,QAAQ,CAAC4B,MAAM,CAAC,MAAM,EAAEe,IAAI,EAAEzwB,IAAI,CAAC;cACnC8tB,QAAQ,CAAC4B,MAAM,CAAC,WAAW,EAAE,CAAAqmC,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEv2C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAI,EAAE,CAAC;cAAA,OAAApU,OAAA,CAAAC,OAAA,CACrDijB,eAAe,CAACR,QAAQ,CAAC,EAAArgB,IAAA;gBAC/Bgc,OAAO,EAAE;;;;UAAA,IAAAnM,MAAA,IAAAA,MAAA,CAAA7P,IAAA,SAAA6P,MAAA,CAAA7P,IAAA;SAEhB,YAAQK,GAAG,EAAE;UAAA,IAAAmJ,cAAA,EAAAC,mBAAA;UACVvM,QAAQ,CACJhC,QAAQ,CAAC;YACLZ,IAAI,EAAE,QAAQ;YACdwO,OAAO,EAAE,EAAAU,cAAA,GAAAnJ,GAAG,CAAC0E,QAAQ,cAAAyE,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc7D,IAAI,cAAA8D,mBAAA,uBAAlBA,mBAAA,CAAoB/O,KAAK,KAAI2F,GAAG,CAACyI;WAC7C,CAAC,CACL;SACJ;QAAA,OAAAnL,OAAA,CAAAC,OAAA,CAAAsS,MAAA,IAAAA,MAAA,CAAAlQ,IAAA,GAAAkQ,MAAA,CAAAlQ,IAAA,CAAAiQ,MAAA,IAAAA,MAAA,CAAAC,MAAA;OAEJ,QAAA7Y,CAAA;QAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;IAEDgxD,qBAAqB,EAAE;GAC1B,EAAE,CAACN,iBAAiB,CAAC,CAAC;EAEvB,IAAMQ,UAAU,GAAGtyB,aAAO,CAAC;IACvB,IAAI;MAAA,IAAAuyB,YAAA;MACA,IAAMC,QAAQ,IAAAD,YAAA,GAAGR,MAAM,CAACptB,IAAI,cAAA4tB,YAAA,uBAAXA,YAAA,CAAah1D,KAAK,CAAC,GAAG,CAAC;MACxC,OAAOi1D,QAAQ,CAAC7yB,MAAM,CAAC,CAAC,EAAE6yB,QAAQ,CAAC/2C,MAAM,CAAC,CAAClO,IAAI,CAAC,GAAG,CAAC;KACvD,CAAC,OAAOklD,IAAI,EAAE;MACX,OAAO,EAAE;;GAEhB,EAAE,CAACV,MAAM,CAACptB,IAAI,CAAC,CAAC;EAEjB,OAAO;IACHitB,SAAS,EAATA,SAAS;IACTxuC,OAAO,EAAPA,OAAO;IACPuC,UAAU,EAAVA,UAAU;IACV+nC,WAAW,EAAXA,WAAW;IACXqE,MAAM,EAANA,MAAM;IACNO,UAAU,EAAVA,UAAU;IACVvsC,OAAO,EAAPA,OAAO;IACPX,aAAa,EAAbA,aAAa;IACb4oC,gBAAgB,EAAhBA,gBAAgB;IAChBiE,gBAAgB,EAAhBA,gBAAgB;IAChBE,iBAAiB,EAAjBA,iBAAiB;IACjBjE,gBAAgB,EAAhBA,gBAAgB;IAChBE,mBAAmB,EAAnBA,mBAAmB;IACnBC,yBAAyB,EAAzBA,yBAAyB;IACzBJ,kBAAkB,EAAlBA,kBAAkB;IAClBE,YAAY,EAAZA,YAAY;IACZG,cAAc,EAAdA;GACH;AACL,CAAC;;ACjPD,IAAMoE,SAAS,GAAc,SAAvBA,SAASA,CAAAjwD,IAAA;MAAiBK,MAAM,GAAAL,IAAA,CAANK,MAAM;IAAE8qD,SAAS,GAAAnrD,IAAA,CAATmrD,SAAS;EAC7C,IAAA+E,eAAA,GAgBIhB,cAAc,CAAC/D,SAAS,CAAC;IAfzBxqC,OAAO,GAAAuvC,eAAA,CAAPvvC,OAAO;IACPwuC,SAAS,GAAAe,eAAA,CAATf,SAAS;IACTlE,WAAW,GAAAiF,eAAA,CAAXjF,WAAW;IACXqE,MAAM,GAAAY,eAAA,CAANZ,MAAM;IACNO,UAAU,GAAAK,eAAA,CAAVL,UAAU;IACVltC,aAAa,GAAAutC,eAAA,CAAbvtC,aAAa;IACb6sC,gBAAgB,GAAAU,eAAA,CAAhBV,gBAAgB;IAChBE,iBAAiB,GAAAQ,eAAA,CAAjBR,iBAAiB;IACjBnE,gBAAgB,GAAA2E,eAAA,CAAhB3E,gBAAgB;IAChBC,kBAAkB,GAAA0E,eAAA,CAAlB1E,kBAAkB;IAClBC,gBAAgB,GAAAyE,eAAA,CAAhBzE,gBAAgB;IAChBE,mBAAmB,GAAAuE,eAAA,CAAnBvE,mBAAmB;IACnBC,yBAAyB,GAAAsE,eAAA,CAAzBtE,yBAAyB;IACzBF,YAAY,GAAAwE,eAAA,CAAZxE,YAAY;IACZG,cAAc,GAAAqE,eAAA,CAAdrE,cAAc;EAGlB,IAAMsE,UAAU,GAAG,SAAbA,UAAUA;IAAA,OACZhB,SAAS,CAAC7oD,GAAG,CAAC,UAAC6nD,KAAe;MAC1B,IAAME,QAAQ,GAAG,CAAApD,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAExgD,GAAG,MAAK0jD,KAAK,CAAC1jD,GAAG;MAE/C,OACIvK,6BAACqJ,cAAG;QAACpJ,SAAS,EAAC,KAAK;QAACuJ,EAAE,EAAC,MAAM;QAACe,GAAG,EAAE0jD,KAAK,CAAC1jD;SACtCvK;QACIkwD,aAAa,EAAE,SAAfA,aAAaA;UAAA,OAAQZ,gBAAgB,CAACrB,KAAK,CAAC;;QAC5CpsD,OAAO,EAAE,SAATA,OAAOA;UAAA,OAAQ2tD,iBAAiB,CAACvB,KAAK,CAAC;;QACvChuD,SAAS,EAAEmI,QAAM,CAAC,eAAe;SAEjCpI,6BAACkuD,OAAK;QAACD,KAAK,EAAEA,KAAK;QAAEE,QAAQ,EAAEA;QAAY,CACzC,CACJ;KAEb,CAAC;;EAEN,OACInuD,6BAACm3C,eAAI,QACDn3C,6BAACmwD,qBAAU,QACPnwD,6BAACuuD,MAAM;IAAC9rC,aAAa,EAAEA,aAAa;IAAEhC,OAAO,EAAEA;IAAW,EAC1DzgB,6BAACgrD,UAAQ;IACLC,SAAS,EAAEA,SAAS;IACpBC,IAAI,EAAEkE,MAAM,CAAClE,IAAI;IACjBC,SAAS,EAAEwE,UAAU;IACrBvE,aAAa,EAAE3qC,OAAO,CAAC4H,MAAM,IAAI,EAAE;IACnC0iC,WAAW,EAAEA,WAAW;IACxBM,gBAAgB,EAAEA,gBAAgB;IAClCC,kBAAkB,EAAEA,kBAAkB;IACtCC,gBAAgB,EAAEA,gBAAgB;IAClCE,mBAAmB,EAAEA,mBAAmB;IACxCC,yBAAyB,EAAEA,yBAAyB;IACpDF,YAAY,EAAEA,YAAY;IAC1BG,cAAc,EAAEA;IAClB,CACO,EACb3rD,6BAACo3C,mBAAQ;IAACz3C,KAAK,EAAE;MAAEoiD,SAAS,EAAE5hD;;KAC1BH,6BAACoJ,cAAG;IAACnJ,SAAS,EAAC;KAAOgwD,UAAU,EAAE,CAAO,CAClC,CACR;AAEf,CAAC;;AC1DD,IAAMG,WAAW,GAA6B,SAAxCA,WAAWA,CAAAtwD,IAAA;;MAAgCirD,WAAW,GAAAjrD,IAAA,CAAXirD,WAAW;EACxD,IAAI,CAACA,WAAW,IAAIA,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAEiB,QAAQ,EAAE,OAAOhsD,yCAAO;EACzD,IAAM0B,IAAI,GAAG+rD,kBAAkB,CAAC1C,WAAW,CAAC2C,SAAS,CAAC;EACtD,IAAM7yD,GAAG,GAAGsY,UAAU,CAAC43C,WAAW,CAACxgD,GAAG,IAAI,EAAE,CAAC;EAE7C,OACIvK,6BAACm3C,eAAI;IAACl3C,SAAS,EAAC;KACZD,6BAACmwD,qBAAU,QAAE,CAAApF,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEpxD,IAAI,KAAI,YAAY,CAAc,EAC3D+H,IAAI,KAAK0rD,SAAS,CAACO,KAAK,IACrB3tD,6BAACquD,kBAAO;IAACpuD,SAAS,EAAC,KAAK;IAACuI,GAAG,EAAE3N,GAAG;IAAEwjB,OAAO,EAAC;IAC9C,EACA3c,IAAI,KAAK0rD,SAAS,CAACQ,KAAK,IACrB5tD;IAAKC,SAAS,EAAC;KACXD;IACI+N,EAAE,EAAEg9C,WAAW,CAACxgD,GAAG;IACnBia,KAAK,EAAC,MAAM;IACZrkB,MAAM,EAAC,MAAM;IACbkwD,QAAQ;KAERrwD;IAAQwI,GAAG,EAAE3N;IAAO,CAChB,CAEf,EACA6G,IAAI,KAAK0rD,SAAS,CAACU,KAAK,IACrB9tD;IAAKC,SAAS,EAAC;KACXD;IAAOqwD,QAAQ;IAACpwD,SAAS,EAAC;KACtBD;IAAQwI,GAAG,EAAE3N;IAAM,CACf,CAEf,EACDmF,6BAACo3C,mBAAQ,QACLp3C,6BAACsuD,oBAAS;IAAC7sC,GAAG,EAAC;oBAA6B,EAC5CzhB,6BAACq5C,mBAAQ,qDACY0R,WAAW,CAAC2C,SAAS,cAAA4C,qBAAA,uBAArBA,qBAAA,CAAuBnvD,WAAW,EAAE,CAC9C,CACJ,CACR;AAEf,CAAC;AAED,oBAAenB,cAAK,CAACsf,IAAI,CAAC8wC,WAAW,CAAC;;ACjDtC,IAAM1sC,QAAM,GAAG,eAAe;AAK9B,IAAM6sC,WAAW,GAAc,SAAzBA,WAAWA,CAAAzwD,IAAA;MAAiBmrD,SAAS,GAAAnrD,IAAA,CAATmrD,SAAS;EACvC,IAAMF,WAAW,GAAG92C,sBAAW,CAAC,UAACC,KAAU;IAAA,OAAKA,KAAK,CAACg7C,OAAO,CAACnE,WAAW;IAAC;EAC1E,IAAA5qC,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EAET,OACIrgB;IAAKC,SAAS,EAAC;KACV,CAACgrD,SAAS,IAAIjrD;IAAIC,SAAS,EAAC;KAAQogB,CAAC,CAACqD,QAAM,CAAC,CAAM,EACpD1jB,6BAACoJ,cAAG;IAACnJ,SAAS,EAAC;KACXD,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ,6BAAC+vD,SAAS;IAAC5vD,MAAM,EAAC,OAAO;IAAC8qD,SAAS,EAAEA;IAAa,CAChD,EACNjrD,6BAACqJ,cAAG;IAACE,EAAE,EAAE;KACLvJ,6BAACowD,aAAW;IACR7lD,GAAG,EAAEwgD,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAExgD,GAAG;IACrBwgD,WAAW,EAAEA;IACf,CACA,CACJ,CACJ;AAEd,CAAC;;AC7BD,IAAMyF,SAAS,GAAMl2D,QAAQ,uBAAoB;AAEjD,AAAO,IAAM8S,KAAG,GAAG,SAANA,GAAGA;EAAA,OAASpC,GAAG,CAACoC,GAAG,CAACojD,SAAS,CAAC;AAAA;;ACD3C,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIl2C,KAAU;EACrC,IAAA1L,SAAA,GAA8BC,cAAQ,CAAC,EAAE,CAAC;IAAnC4hD,OAAO,GAAA7hD,SAAA;IAAE8hD,UAAU,GAAA9hD,SAAA;EAE1BiB,eAAS,CAAC;IACNsT,OAAO,EAAE;GACZ,EAAE,EAAE,CAAC;EAEN,IAAMA,OAAO,YAAPA,OAAOA;IAAA;qCACL;QAAA,OAAAre,OAAA,CAAAC,OAAA,CACkBoI,KAAG,EAAE,EAAAhG,IAAA,WAAjBhC,GAAG;UACTurD,UAAU,CAACvrD,GAAG,CAAC2H,IAAI,CAACsW,KAAK,CAAC;;OAC7B,YAAQ5b,GAAG,EAAE;QACV5C,OAAO,CAAC6C,KAAK,CAACD,GAAG,CAAC;OACrB;MAAA,OAAA1C,OAAA,CAAAC,OAAA,CAAAgL,KAAA,IAAAA,KAAA,CAAA5I,IAAA,GAAA4I,KAAA,CAAA5I,IAAA;KACJ,QAAA3I,CAAA;MAAA,OAAAsG,OAAA,CAAAE,MAAA,CAAAxG,CAAA;;;EACD,IAAQsP,EAAE,GAAKwM,KAAK,CAAZxM,EAAE;EACV,IAAMkT,OAAO,GAAGyvC,OAAO,CAACtqD,GAAG,CAAC,UAACsE,CAAM;IAC/B,OAAO;MACHqD,EAAE,EAAErD,CAAC,CAACqD,EAAE;MACR5U,KAAK,EAAEuR,CAAC,CAACqD,EAAE;MACX7U,KAAK,EAAEwR,CAAC,CAAC/Q;KACZ;GACJ,CAAC;EAEF,IAAMmsB,SAAS,GAAG,CAAC,CAAC/X,EAAE,GAChBkT,OAAO,CAAC8E,IAAI,CAAC,UAACC,MAAW;IAAA,OAAKA,MAAM,CAAC7sB,KAAK,KAAK4U,EAAE;IAAC,IAAI,IAAI,GAC1D,IAAI;EAEV,OAAO/N,6BAACghB,MAAM;IAACC,OAAO,EAAEA,OAAO;IAAE9nB,KAAK,EAAE2sB;KAAevL,KAAK,EAAI;AACpE,CAAC;;AC/BD,IAAMq2C,UAAU,GAAO,SAAjBA,UAAUA;EACZ,OAAO5wD,iEAA+B;AAC1C,CAAC;;ACJD;AACA,SAAS,sBAAsB,CAAC,IAAI,EAAE;AACtC,EAAE,OAAO,CAAC,sBAAsB,EAAE,IAAI,CAAC,yCAAyC,EAAE,IAAI,CAAC,+EAA+E,CAAC,CAAC;AACxK,CAAC;AACD,AAIA;AACA;AACA,IAAI,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrF,IAAI,WAAW,GAAG;AAClB,EAAE,IAAI,EAAE,CAAC,YAAY,kBAAkB,YAAY,EAAE,CAAC,CAAC;AACvD,EAAE,OAAO,EAAE,CAAC,eAAe,kBAAkB,YAAY,EAAE,CAAC,CAAC;AAC7D,EAAE,oBAAoB,EAAE,MAAM,CAAC,4BAA4B,EAAE,YAAY,EAAE,CAAC,CAAC;AAC7E,CAAC,CAAC;AACF,IAAI,mBAAmB,GAAG,WAAW,CAAC;AACtC;AACA;AACA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;AAC7C,IAAI,OAAO,KAAK,CAAC;AACjB,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;AAChD,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACzC,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;AACrF,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,GAAG,EAAE;AACzB,EAAE,IAAI,GAAG,KAAK,KAAK,CAAC;AACpB,IAAI,OAAO,WAAW,CAAC;AACvB,EAAE,IAAI,GAAG,KAAK,IAAI;AAClB,IAAI,OAAO,MAAM,CAAC;AAClB,EAAE,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC;AAC1B,EAAE,QAAQ,IAAI;AACd,IAAI,KAAK,SAAS,CAAC;AACnB,IAAI,KAAK,QAAQ,CAAC;AAClB,IAAI,KAAK,QAAQ,CAAC;AAClB,IAAI,KAAK,QAAQ,CAAC;AAClB,IAAI,KAAK,UAAU,EAAE;AACrB,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACxB,IAAI,OAAO,OAAO,CAAC;AACnB,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC;AACjB,IAAI,OAAO,MAAM,CAAC;AAClB,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC;AAClB,IAAI,OAAO,OAAO,CAAC;AACnB,EAAE,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AACxC,EAAE,QAAQ,eAAe;AACzB,IAAI,KAAK,QAAQ,CAAC;AAClB,IAAI,KAAK,SAAS,CAAC;AACnB,IAAI,KAAK,SAAS,CAAC;AACnB,IAAI,KAAK,SAAS,CAAC;AACnB,IAAI,KAAK,KAAK,CAAC;AACf,IAAI,KAAK,KAAK;AACd,MAAM,OAAO,eAAe,CAAC;AAC7B,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC3F,CAAC;AACD,SAAS,QAAQ,CAAC,GAAG,EAAE;AACvB,EAAE,OAAO,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;AAC7E,CAAC;AACD,SAAS,OAAO,CAAC,GAAG,EAAE;AACtB,EAAE,OAAO,GAAG,YAAY,KAAK,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,IAAI,OAAO,GAAG,CAAC,WAAW,CAAC,eAAe,KAAK,QAAQ,CAAC;AAC3I,CAAC;AACD,SAAS,MAAM,CAAC,GAAG,EAAE;AACrB,EAAE,IAAI,GAAG,YAAY,IAAI;AACzB,IAAI,OAAO,IAAI,CAAC;AAChB,EAAE,OAAO,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,CAAC;AAC1H,CAAC;AACD,SAAS,MAAM,CAAC,GAAG,EAAE;AACrB,EAAE,IAAI,SAAS,GAAG,OAAO,GAAG,CAAC;AAC7B,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AAC7C,IAAI,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AAChC,GAAG;AACH,EAAE,OAAO,SAAS,CAAC;AACnB,CAAC;AACD,AAgJA;AACA;AACA,SAAS6wD,SAAO,CAAC,OAAO,EAAE;AAC1B,EAAE,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE;AAC7E,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI;AACN,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7B,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,qCAAqC,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE;AACjG,EAAE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5C,EAAE,MAAM,YAAY,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,CAAC,IAAI,GAAG,+CAA+C,GAAG,wCAAwC,CAAC;AACvK,EAAE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,IAAI,OAAO,+HAA+H,CAAC;AAC3I,GAAG;AACH,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;AAClC,IAAI,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,yBAAyB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,+DAA+D,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1K,GAAG;AACH,EAAE,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5H,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAClC,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACnC,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,CAAC,OAAO;AAC3D,IAAI,OAAO;AACX,EAAE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,IAAI,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,2DAA2D,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,mCAAmC,CAAC,CAAC;AACzP,GAAG;AACH,CAAC;AACD,SAAS,kBAAkB,CAAC,QAAQ,EAAE;AACtC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACzC,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAClC,IAAI,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE;AACzC,MAAM,IAAI,EAAE,mBAAmB,CAAC,IAAI;AACpC,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;AAC7C,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,GAAG,sBAAsB,CAAC,EAAE,CAAC,GAAG,CAAC,2BAA2B,EAAE,GAAG,CAAC,4QAA4Q,CAAC,CAAC,CAAC;AAC5Y,KAAK;AACL,IAAI,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,EAAE;AAC/B,MAAM,IAAI,EAAE,mBAAmB,CAAC,oBAAoB,EAAE;AACtD,KAAK,CAAC,KAAK,WAAW,EAAE;AACxB,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,GAAG,sBAAsB,CAAC,EAAE,CAAC,GAAG,CAAC,2BAA2B,EAAE,GAAG,CAAC,0EAA0E,EAAE,mBAAmB,CAAC,IAAI,CAAC,4SAA4S,CAAC,CAAC,CAAC;AACjhB,KAAK;AACL,GAAG,CAAC,CAAC;AACL,CAAC;AACD,SAAS,eAAe,CAAC,QAAQ,EAAE;AACnC,EAAE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5C,EAAE,MAAM,aAAa,GAAG,EAAE,CAAC;AAC3B,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,IAAI,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AAC/C,MAAM,IAAI,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE;AAChD,QAAQA,SAAO,CAAC,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,OAAO;AACP,KAAK;AACL,IAAI,IAAI,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE;AAC7C,MAAM,aAAa,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AACzC,KAAK;AACL,GAAG;AACH,EAAE,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACtD,EAAE,IAAI,kBAAkB,CAAC;AACzB,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AAC7C,IAAI,kBAAkB,GAAG,EAAE,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,mBAAmB,CAAC;AAC1B,EAAE,IAAI;AACN,IAAI,kBAAkB,CAAC,aAAa,CAAC,CAAC;AACtC,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,mBAAmB,GAAG,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,OAAO,SAAS,WAAW,CAAC,KAAK,GAAG,EAAE,EAAE,MAAM,EAAE;AAClD,IAAI,IAAI,mBAAmB,EAAE;AAC7B,MAAM,MAAM,mBAAmB,CAAC;AAChC,KAAK;AACL,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AAC/C,MAAM,MAAM,cAAc,GAAG,qCAAqC,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;AACrH,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQA,SAAO,CAAC,cAAc,CAAC,CAAC;AAChC,OAAO;AACP,KAAK;AACL,IAAI,IAAI,UAAU,GAAG,KAAK,CAAC;AAC3B,IAAI,MAAM,SAAS,GAAG,EAAE,CAAC;AACzB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtD,MAAM,MAAM,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACtC,MAAM,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AACzC,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7C,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AACnE,MAAM,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE;AAClD,QAAQ,MAAM,UAAU,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC;AACjD,QAAQ,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,GAAG,sBAAsB,CAAC,EAAE,CAAC,GAAG,CAAC,mCAAmC,EAAE,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,6BAA6B,EAAE,GAAG,CAAC,8KAA8K,CAAC,CAAC,CAAC;AACjZ,OAAO;AACP,MAAM,SAAS,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC;AACvC,MAAM,UAAU,GAAG,UAAU,IAAI,eAAe,KAAK,mBAAmB,CAAC;AACzE,KAAK;AACL,IAAI,UAAU,GAAG,UAAU,IAAI,gBAAgB,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AACrF,IAAI,OAAO,UAAU,GAAG,SAAS,GAAG,KAAK,CAAC;AAC1C,GAAG,CAAC;AACJ,CAAC;;;ACrUD,AA2BA,IAAMC,YAAY,GAAQ;EACtBC,WAAW,EAAE,YAAY;EACzB5sB,SAAS,EAAE,KAAK;EAChB19B,KAAK,EAAE;IACH/E,IAAI,EAAE,EAAE;IACRwO,OAAO,EAAE;GACZ;EACDkiB,KAAK,EAAE;IACH7U,MAAM,EAAE;GACX;EACDE,IAAI,EAAE,IAAI;EACVuzC,gBAAgB,EAAEpvC,QAAQ,EAAA0hC,qBAAA,GAACv4C,YAAY,CAACD,OAAO,CAAC,kBAAkB,CAAC,YAAAw4C,qBAAA,GAAI,GAAG,CAAC;EAC3E2N,oBAAoB,EAAElmD,YAAY,CAACD,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE;EACxEomD,kBAAkB,EAAEnmD,YAAY,CAACD,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE;EACpEqmD,yBAAyB,EAAE,KAAK;EAChCC,OAAO,EAAE,IAAI;EACbC,eAAe,EAAE,EAAE;EACnBC,WAAW,EAAE,IAAI;EACjBC,cAAc,EAAE,KAAK;EACrBC,eAAe,EAAE,KAAK;EACtBC,sBAAsB,EAAE,KAAK;EAC7Bn5C,aAAa,EAAE,KAAK;EACpBtE,aAAa,EAAE,KAAK;EACpBS,eAAe,EAAE,IAAI;EACrB8zB,QAAQ,EAAE3qC,qBAAqB;EAC/B2O,SAAS,EAAE;IACPC,OAAO,EAAE,EAAE;IACXJ,MAAM,EAAE,EAAE;IACVslD,UAAU,EAAE,EAAE;IACdC,IAAI,EAAE,EAAE;IACRC,IAAI,EAAE,EAAE;IACRC,QAAQ,EAAE,IAAI;IACdC,KAAK,EAAE,IAAI;IACXC,WAAW,EAAE,EAAE;IACfC,cAAc,EAAE,CAAC;IACjBC,SAAS,EAAE,EAAE;IACb72B,KAAK,EAAE,EAAE;IACT9uB,KAAK,EAAE;;CAEd;AAED,IAAM4lD,aAAa,GAAGC,qBAAa,CAACrB,YAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CACFC,OAAO,CAACpwD,UAAU,EAAE,UAACiS,KAAK,EAAEpL,MAAM;IAC/BoL,KAAK,CAACiwB,SAAS,GAAGr7B,MAAM,CAACwpD,OAAO;GACnC,CAAC,CACDD,OAAO,CAAClwD,QAAQ,EAAE,UAAC+R,KAAK,EAAEpL,MAAM;IAC7BoL,KAAK,CAACke,KAAK,GAAGtpB,MAAM,CAACwpD,OAAO;GAC/B,CAAC,CACDD,OAAO,CAACjwD,OAAO,EAAE,UAAC8R,KAAK,EAAEpL,MAAM;IAC5BoL,KAAK,CAACuJ,IAAI,GAAG3U,MAAM,CAACwpD,OAAO;GAC9B,CAAC,CACDD,OAAO,CAAChwD,UAAU,EAAE,UAAC6R,KAAK,EAAEpL,MAAM;IAC/BoL,KAAK,CAAC68C,WAAW,GAAGjoD,MAAM,CAACwpD,OAAO;GACrC,CAAC,CACDD,OAAO,CAAC9vD,gBAAgB,EAAE,UAAC2R,KAAK,EAAEpL,MAAM;IACrCoL,KAAK,CAACF,aAAa,GAAGlL,MAAM,CAACwpD,OAAO;GACvC,CAAC,CACDD,OAAO,CAAC7vD,kBAAkB,EAAE,UAAC0R,KAAK,EAAEpL,MAAM;IACvCoL,KAAK,CAACO,eAAe,GAAG3L,MAAM,CAACwpD,OAAO;GACzC,CAAC,CACDD,OAAO,CAAC/vD,QAAQ,EAAE,UAAC4R,KAAK,EAAEpL,MAAM;IAC7BoL,KAAK,CAACzN,KAAK,GAAGqC,MAAM,CAACwpD,OAAO;GAC/B,CAAC,CACDD,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5BznD,YAAY,CAAC2B,UAAU,CAAC,kBAAkB,CAAC;IAC3C3B,YAAY,CAAC2B,UAAU,CAAC,sBAAsB,CAAC;IAC/C3B,YAAY,CAAC2B,UAAU,CAAC,oBAAoB,CAAC;IAC7C,OAAOokD,YAAY;GACtB,CAAC,CACDuB,OAAO,CAACnvD,mBAAmB,EAAE,UAACgR,KAAK,EAAEpL,MAAM;IACxCoL,KAAK,CAAC88C,gBAAgB,GAAGloD,MAAM,CAACwpD,OAAO;GAC1C,CAAC,CACDD,OAAO,CAAClvD,uBAAuB,EAAE,UAAC+Q,KAAK,EAAEpL,MAAM;IAC5CoL,KAAK,CAAC+8C,oBAAoB,GAAGnoD,MAAM,CAACwpD,OAAO;GAC9C,CAAC,CACDD,OAAO,CAACjvD,qBAAqB,EAAE,UAAC8Q,KAAK,EAAEpL,MAAM;IAC1CoL,KAAK,CAACg9C,kBAAkB,GAAGpoD,MAAM,CAACwpD,OAAO;GAC5C,CAAC,CACDD,OAAO,CAAChvD,4BAA4B,EAAE,UAAC6Q,KAAK,EAAEpL,MAAM;IACjDoL,KAAK,CAACi9C,yBAAyB,GAAGroD,MAAM,CAACwpD,OAAO;GACnD,CAAC,CACDD,OAAO,CAAC3vD,WAAW,EAAE,UAACwR,KAAK,EAAEpL,MAAM;IAChCoL,KAAK,CAACk9C,OAAO,GAAGtoD,MAAM,CAACwpD,OAAO;GACjC,CAAC,CACDD,OAAO,CAACzvD,YAAY,EAAE,UAACsR,KAAK,EAAEpL,MAAM;IACjCoL,KAAK,CAACo9C,WAAW,GAAGxoD,MAAM,CAACwpD,OAAO;GACrC,CAAC,CACDD,OAAO,CAACxvD,eAAe,EAAE,UAACqR,KAAK,EAAEpL,MAAM;IACpCoL,KAAK,CAACq9C,cAAc,GAAGzoD,MAAM,CAACwpD,OAAO;GACxC,CAAC,CACDD,OAAO,CAACvvD,gBAAgB,EAAE,UAACoR,KAAK,EAAEpL,MAAM;IACrCoL,KAAK,CAACs9C,eAAe,GAAG1oD,MAAM,CAACwpD,OAAO;GACzC,CAAC,CACDD,OAAO,CAACrvD,uBAAuB,EAAE,UAACkR,KAAK,EAAEpL,MAAM;IAC5CoL,KAAK,CAACu9C,sBAAsB,GAAG3oD,MAAM,CAACwpD,OAAO;GAChD,CAAC,CACDD,OAAO,CAACpvD,WAAW,EAAE,UAACiR,KAAK,EAAEpL,MAAM;IAChCoL,KAAK,CAACq0B,QAAQ,GAAGz/B,MAAM,CAACwpD,OAAO;GAClC,CAAC,CACDD,OAAO,CAAC1vD,YAAY,EAAE,UAACuR,KAAK,EAAEpL,MAAM;IACjCoL,KAAK,CAACm9C,eAAe,GAAGvoD,MAAM,CAACwpD,OAAO;GACzC,CAAC,CACDD,OAAO,CAACtvD,cAAc,EAAE,UAACmR,KAAK,EAAEpL,MAAM;IACnCoL,KAAK,CAACoE,aAAa,GAAGxP,MAAM,CAACwpD,OAAO;GACvC,CAAC,CACDD,OAAO,CAAC/uD,aAAa,EAAE,UAAC4Q,KAAK,EAAEpL,MAAM;;IAClC,IAAM9C,QAAQ,GAAGxL,MAAM,CAACC,QAAQ,CAACO,QAAQ;IACzC,IAAIy3D,eAAe,GAAG;MAClBjmD,OAAO,GAAAkmD,eAAA,GAAE5pD,MAAM,CAACwpD,OAAO,cAAAI,eAAA,uBAAdA,eAAA,CAAgB/4D,IAAI;MAC7ByS,MAAM,EAAE,CAAAumD,gBAAA,GAAA7pD,MAAM,CAACwpD,OAAO,cAAAK,gBAAA,eAAdA,gBAAA,CAAgBvmD,MAAM,IAAAwmD,gBAAA,GAAG9pD,MAAM,CAACwpD,OAAO,cAAAM,gBAAA,uBAAdA,gBAAA,CAAgBxmD,MAAM,GAAG,EAAE;MAC5DslD,UAAU,EAAE,CAAAmB,gBAAA,GAAA/pD,MAAM,CAACwpD,OAAO,cAAAO,gBAAA,eAAdA,gBAAA,CAAgBnB,UAAU,GAChC5oD,MAAM,CAACwpD,OAAO,CAACZ,UAAU,GACzB,EAAE;MACRC,IAAI,EAAE,CAAAmB,gBAAA,GAAAhqD,MAAM,CAACwpD,OAAO,cAAAQ,gBAAA,eAAdA,gBAAA,CAAgBnB,IAAI,GAAG7oD,MAAM,CAACwpD,OAAO,CAACX,IAAI,GAAG,EAAE;MACrDC,IAAI,EAAE,CAAAmB,gBAAA,GAAAjqD,MAAM,CAACwpD,OAAO,cAAAS,gBAAA,eAAdA,gBAAA,CAAgBnB,IAAI,GAAG9oD,MAAM,CAACwpD,OAAO,CAACV,IAAI,GAAG,EAAE;MACrDC,QAAQ,EAAE,CAAAmB,gBAAA,GAAAlqD,MAAM,CAACwpD,OAAO,cAAAU,gBAAA,eAAdA,gBAAA,CAAgBnB,QAAQ,GAC5B/oD,MAAM,CAACwpD,OAAO,CAACT,QAAQ,GACvB,IAAI;MACVC,KAAK,EACD,SAAAmB,gBAAA,GAAOnqD,MAAM,CAACwpD,OAAO,cAAAW,gBAAA,uBAAdA,gBAAA,CAAgBnB,KAAK,KAAI,SAAS,GACnChpD,MAAM,CAACwpD,OAAO,CAACR,KAAK,GACpB,IAAI;MACdC,WAAW,EAAE,CAAAmB,gBAAA,GAAApqD,MAAM,CAACwpD,OAAO,cAAAY,gBAAA,eAAdA,gBAAA,CAAgBnB,WAAW,GAClCjpD,MAAM,CAACwpD,OAAO,CAACP,WAAW,GAC1B,EAAE;MACRC,cAAc,EAAE,CAAAmB,gBAAA,GAAArqD,MAAM,CAACwpD,OAAO,cAAAa,gBAAA,eAAdA,gBAAA,CAAgBnB,cAAc,GACxClpD,MAAM,CAACwpD,OAAO,CAACN,cAAc,GAC7B,CAAC;MACPC,SAAS,EAAE,CAAAmB,gBAAA,GAAAtqD,MAAM,CAACwpD,OAAO,cAAAc,gBAAA,eAAdA,gBAAA,CAAgBnB,SAAS,GAC9BnpD,MAAM,CAACwpD,OAAO,CAACL,SAAS,GACxB,EAAE;MACR72B,KAAK,EAAEtyB,MAAM,CAACwpD,OAAO,CAACl3B,KAAK;MAC3B3uB,MAAM,EAAE,CAAC,CAACzG,QAAQ,GAAGA,QAAQ,GAAG,EAAE;MAClCsG,KAAK,EAAE,CAAC,GAAA+mD,iBAAA,GAACvqD,MAAM,CAACwpD,OAAO,cAAAe,iBAAA,eAAdA,iBAAA,CAAgB/mD,KAAK,KAAAgnD,iBAAA,GAAGxqD,MAAM,CAACwpD,OAAO,cAAAgB,iBAAA,wBAAAC,qBAAA,GAAdD,iBAAA,CAAgBhnD,KAAK,cAAAinD,qBAAA,uBAArBA,qBAAA,CAAuB78C,QAAQ,EAAE,GAAG,EAAE;MACvEgT,MAAM,EAAE,CAAC,GAAA8pC,iBAAA,GAAC1qD,MAAM,CAACwpD,OAAO,cAAAkB,iBAAA,eAAdA,iBAAA,CAAgB9pC,MAAM,IAC1B5gB,MAAM,CAACwpD,OAAO,CAAC5oC,MAAM,GACrB,EAAE;MACR+pC,KAAK,EAAE,CAAC,GAAAC,iBAAA,GAAC5qD,MAAM,CAACwpD,OAAO,cAAAoB,iBAAA,eAAdA,iBAAA,CAAgBD,KAAK,IACxB3qD,MAAM,CAACwpD,OAAO,CAACmB,KAAK,GACpB;KACT;IACDv/C,KAAK,CAAC3H,SAAS,GAAGkmD,eAAe;GACpC,CAAC;AACV,CAAC,CAAC;;ICzKWkB,YAAY,GAAGzxD,oBAAY,CAAM,sBAAsB,CAAC;;ACGrE,IAAM4uD,cAAY,GAAQ;EACtB8C,SAAS,EAAE,EAAE;EACb5wC,UAAU,EAAE;CACf;AAED,IAAM6wC,YAAY,GAAG1B,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACpDA,OAAO,CACFC,OAAO,CAACsB,YAAY,EAAE,UAACz/C,KAAK,EAAEpL,MAAM;IACjCoL,KAAK,CAAC0/C,SAAS,GAAG9qD,MAAM,CAACwpD,OAAO,CAACsB,SAAS;IAC1C1/C,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICjBWgD,uBAAuB,GAAG5xD,oBAAY,CAC/C,0CAA0C,CAC7C;;ACCD,IAAM4uD,cAAY,GAAQ;EACtBiD,oBAAoB,EAAE,EAAE;EACxB/wC,UAAU,EAAE;CACf;AAED,IAAMgxC,uBAAuB,GAAG7B,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EAC/DA,OAAO,CACFC,OAAO,CAACyB,uBAAuB,EAAE,UAAC5/C,KAAK,EAAEpL,MAAM;IAC5CoL,KAAK,CAAC6/C,oBAAoB,GAAGjrD,MAAM,CAACwpD,OAAO,CAACyB,oBAAoB;IAChE7/C,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ACjBK,IAAMmD,UAAU,GAAG/xD,oBAAY,CAAM,iBAAiB,CAAC;;ACG9D,IAAM4uD,cAAY,GAAQ;EACtBoD,OAAO,EAAE,EAAE;EACXlxC,UAAU,EAAE;CACf;AAED,IAAMkvC,eAAa,GAAGC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CACFC,OAAO,CAAC4B,UAAU,EAAE,UAAC//C,KAAK,EAAEpL,MAAM;IAC/BoL,KAAK,CAACggD,OAAO,GAAGprD,MAAM,CAACwpD,OAAO,CAAC4B,OAAO;IACtChgD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ACdF,IAAMA,cAAY,GAAQ;EACtB7/B,SAAS,EAAE,EAAE;EACbjO,UAAU,EAAE;CACf;AAED,IAAMkvC,eAAa,GAAGC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CACFC,OAAO,CAACnhC,YAAY,EAAE,UAAChd,KAAK,EAAEpL,MAAM;IACjCoL,KAAK,CAAC+c,SAAS,GAAGnoB,MAAM,CAACwpD,OAAO,CAACrhC,SAAS;IAC1C/c,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ACdF,IAAMA,cAAY,GAAQ;EACtBhuC,iBAAiB,EAAE,EAAE;EACrBE,UAAU,EAAE;CACf;AAED,IAAMmxC,oBAAoB,GAAGhC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EAC5DA,OAAO,CACFC,OAAO,CAACvwC,oBAAoB,EAAE,UAAC5N,KAAK,EAAEpL,MAAM;IACzCoL,KAAK,CAAC4O,iBAAiB,GAAGha,MAAM,CAACwpD,OAAO,CAACxvC,iBAAiB;IAC1D5O,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICjBWsD,iBAAiB,GAAGlyD,oBAAY,CACzC,kCAAkC,CACrC;;ACCD,IAAM4uD,cAAY,GAAQ;EACtBuD,cAAc,EAAE,EAAE;EAClBrxC,UAAU,EAAE;CACf;AAED,IAAMsxC,qBAAqB,GAAGnC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EAC7DA,OAAO,CACFC,OAAO,CAAC+B,iBAAiB,EAAE,UAAClgD,KAAK,EAAEpL,MAAM;IACtCoL,KAAK,CAACmgD,cAAc,GAAGvrD,MAAM,CAACwpD,OAAO,CAAC+B,cAAc;IACpDngD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICjBWyD,eAAe,GAAGryD,oBAAY,CACvC,kCAAkC,CACrC;;ACCD,IAAM4uD,cAAY,GAAQ;EACtB0D,YAAY,EAAE,EAAE;EAChBxxC,UAAU,EAAE;CACf;AAED,IAAMyxC,uBAAuB,GAAGtC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EAC/DA,OAAO,CACFC,OAAO,CAACkC,eAAe,EAAE,UAACrgD,KAAK,EAAEpL,MAAM;IACpCoL,KAAK,CAACsgD,YAAY,GAAG1rD,MAAM,CAACwpD,OAAO,CAACkC,YAAY;IAChDtgD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICjBW4D,cAAc,GAAGxyD,oBAAY,CAAM,yBAAyB,CAAC;;ACG1E,IAAM4uD,cAAY,GAAQ;EACtB6D,WAAW,EAAE,EAAE;EACf3xC,UAAU,EAAE;CACf;AAED,IAAMkvC,eAAa,GAAGC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CACFC,OAAO,CAACqC,cAAc,EAAE,UAACxgD,KAAK,EAAEpL,MAAM;IACnCoL,KAAK,CAACygD,WAAW,GAAG7rD,MAAM,CAACwpD,OAAO,CAACqC,WAAW;IAC9CzgD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICjBW8D,8BAA8B,GAAG1yD,oBAAY,CACtD,0DAA0D,CAC7D;;ACCD,IAAM4uD,cAAY,GAAQ;EACtB+D,2BAA2B,EAAE,EAAE;EAC/B7xC,UAAU,EAAE;CACf;AAED,IAAMkvC,eAAa,GAAGC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CACFC,OAAO,CAACuC,8BAA8B,EAAE,UAAC1gD,KAAK,EAAEpL,MAAM;IACnDoL,KAAK,CAAC2gD,2BAA2B,GAC7B/rD,MAAM,CAACwpD,OAAO,CAACuC,2BAA2B;IAC9C3gD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;IClBWgE,eAAe,GAAG5yD,oBAAY,CAAM,8BAA8B,CAAC;;ACGhF,IAAM4uD,cAAY,GAAQ;EACtBiE,YAAY,EAAE,EAAE;EAChB/xC,UAAU,EAAE;CACf;AAED,IAAMgyC,mBAAmB,GAAG7C,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EAC3DA,OAAO,CACFC,OAAO,CAACyC,eAAe,EAAE,UAAC5gD,KAAK,EAAEpL,MAAM;IACpCoL,KAAK,CAAC6gD,YAAY,GAAGjsD,MAAM,CAACwpD,OAAO,CAACyC,YAAY;IAChD7gD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICjBWmE,YAAY,GAAG/yD,oBAAY,CAAM,qBAAqB,CAAC;;ACGpE,IAAM4uD,cAAY,GAAQ;EACtBoE,SAAS,EAAE,EAAE;EACblyC,UAAU,EAAE;CACf;AAED,IAAMkvC,eAAa,GAAGC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CACFC,OAAO,CAAC4C,YAAY,EAAE,UAAC/gD,KAAK,EAAEpL,MAAM;IACjCoL,KAAK,CAACghD,SAAS,GAAGpsD,MAAM,CAACwpD,OAAO,CAAC4C,SAAS;IAC1ChhD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICjBWqE,eAAe,GAAGjzD,oBAAY,CAAM,0BAA0B,CAAC;;ACE5E,IAAM4uD,cAAY,GAAQ;EACtBsE,YAAY,EAAE,EAAE;EAChBpyC,UAAU,EAAE;CACf;AAED,IAAMkvC,eAAa,GAAGC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CAACC,OAAO,CAAC8C,eAAe,EAAE,UAACjhD,KAAK,EAAEpL,MAAM;IAC3CoL,KAAK,CAACkhD,YAAY,GAAGtsD,MAAM,CAACwpD,OAAO,CAAC8C,YAAY;IAChDlhD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC;AACN,CAAC,CAAC;;ICZWqyC,iBAAiB,GAAGnzD,oBAAY,CAAM,8BAA8B,CAAC;;ACGlF,IAAM4uD,cAAY,GAAQ;EACtBwE,cAAc,EAAE,EAAE;EAClBtyC,UAAU,EAAE;CACf;AAED,IAAMkvC,eAAa,GAAGC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CACFC,OAAO,CAACgD,iBAAiB,EAAE,UAACnhD,KAAK,EAAEpL,MAAM;IACtCoL,KAAK,CAACohD,cAAc,GAAGxsD,MAAM,CAACwpD,OAAO,CAACgD,cAAc;IACpDphD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICjBWyE,kBAAkB,GAAGrzD,oBAAY,CAC1C,iCAAiC,CACpC;;ACCD,IAAM4uD,cAAY,GAAQ;EACtB0E,eAAe,EAAE,EAAE;EACnBxyC,UAAU,EAAE;CACf;AAED,IAAMkvC,eAAa,GAAGC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CACFC,OAAO,CAACkD,kBAAkB,EAAE,UAACrhD,KAAK,EAAEpL,MAAM;IACvCoL,KAAK,CAACshD,eAAe,GAAG1sD,MAAM,CAACwpD,OAAO,CAACkD,eAAe;IACtDthD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ACdF,IAAMA,cAAY,GAAQ;EACtBj4B,QAAQ,EAAE,EAAE;EACZ7V,UAAU,EAAE,CAAC;EACbyyC,WAAW,EAAE;CAChB;AAED,IAAMvD,eAAa,GAAGC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CACFC,OAAO,CAAC5/B,WAAW,EAAE,UAACve,KAAK,EAAEpL,MAAM;IAChCoL,KAAK,CAAC2kB,QAAQ,GAAG/vB,MAAM,CAACwpD,OAAO,CAACz5B,QAAQ;IACxC3kB,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC3/B,cAAc,EAAE,UAACxe,KAAK,EAAEpL,MAAM;IACnCoL,KAAK,CAACuhD,WAAW,GAAG3sD,MAAM,CAACwpD,OAAO;GACrC,CAAC,CACDD,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICrBW4E,eAAe,GAAGxzD,oBAAY,CAAM,0BAA0B,CAAC;;ACG5E,IAAM4uD,cAAY,GAAQ;EACtB6E,YAAY,EAAE,EAAE;EAChB3yC,UAAU,EAAE;CACf;AAED,IAAMkvC,eAAa,GAAGC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CACFC,OAAO,CAACqD,eAAe,EAAE,UAACxhD,KAAK,EAAEpL,MAAM;IACpCoL,KAAK,CAACyhD,YAAY,GAAG7sD,MAAM,CAACwpD,OAAO,CAACqD,YAAY;IAChDzhD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICjBW8E,iBAAiB,GAAG1zD,oBAAY,CACzC,+BAA+B,CAClC;;ACAD,IAAM2zD,SAAS,GAAG;EACdC,cAAc,EAAE,EAAE;EAClB9yC,UAAU,EAAE;CACf;AAED,IAAMkvC,eAAa,GAAGC,qBAAa,CAAC0D,SAAS,EAAE,UAAAzD,OAAO;EAClDA,OAAO,CACFC,OAAO,CAACuD,iBAAiB,EAAE,UAAC1hD,KAAK,EAAEpL,MAAM;IACtCoL,KAAK,CAAC4hD,cAAc,GAAGhtD,MAAM,CAACwpD,OAAO,CAACwD,cAAc;IACpD5hD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAOqD,SAAS;GACnB,CAAC;AACV,CAAC,CAAC;;IChBWE,iBAAiB,GAAG7zD,oBAAY,CACzC,mCAAmC,CACtC;;ACCD,IAAM4uD,cAAY,GAAQ;EACtBkF,cAAc,EAAE,EAAE;EAClBhzC,UAAU,EAAE;CACf;AAED,IAAMizC,iBAAiB,GAAG9D,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACzDA,OAAO,CACFC,OAAO,CAAC0D,iBAAiB,EAAE,UAAC7hD,KAAK,EAAEpL,MAAM;IACtCoL,KAAK,CAAC8hD,cAAc,GAAGltD,MAAM,CAACwpD,OAAO,CAAC0D,cAAc;IACpD9hD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICjBWoF,uBAAuB,GAAGh0D,oBAAY,CAC/C,yCAAyC,CAC5C;;ACCD,IAAM4uD,cAAY,GAAQ;EACtBqF,oBAAoB,EAAE,EAAE;EACxBnzC,UAAU,EAAE;CACf;AAED,IAAMizC,mBAAiB,GAAG9D,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACzDA,OAAO,CACFC,OAAO,CAAC6D,uBAAuB,EAAE,UAAChiD,KAAK,EAAEpL,MAAM;IAC5CoL,KAAK,CAACiiD,oBAAoB,GAAGrtD,MAAM,CAACwpD,OAAO,CAAC6D,oBAAoB;IAChEjiD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICjBWsF,qBAAqB,GAAGl0D,oBAAY,CAC7C,0CAA0C,CAC7C;AACD,IAAam0D,iBAAiB,GAAGn0D,oBAAY,CACzC,sCAAsC,CACzC;AACD,AAAO,IAAMo0D,mBAAmB,GAAGp0D,oBAAY,CAC3C,wCAAwC,CAC3C;AACD,IAAaq0D,mBAAmB,GAAGr0D,oBAAY,CAC3C,wCAAwC,CAC3C;AACD,IAAas0D,kBAAkB,GAAGt0D,oBAAY,CAC1C,uCAAuC,CAC1C;AACD,IAAau0D,oBAAoB,GAAGv0D,oBAAY,CAC5C,yCAAyC,CAC5C;;ACPD,IAAM4uD,cAAY,GAAQ;EACtB4F,sBAAsB,EAAE,EAAE;EAC1BC,iBAAiB,EAAE,EAAE;EACrBC,cAAc,EAAE;CACnB;AACD,IAAMC,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAIC,MAAW,EAAEC,MAAW;EACtD,IAAI3jC,GAAG,GAAG,IAAI+M,GAAG,CAAC22B,MAAM,CAAC1wD,GAAG,CAAC,UAAC4wD,CAAM;IAAA,OAAKA,CAAC,CAACjpD,EAAE;IAAC,CAAC;EAC/C,IAAIkpD,SAAS,MAAAxxC,MAAA,CAAOqxC,MAAM,EAAKC,MAAM,CAACxwD,MAAM,CAAC,UAACywD,CAAM;IAAA,OAAK,CAAC5jC,GAAG,CAACmX,GAAG,CAACysB,CAAC,CAACjpD,EAAE,CAAC;IAAC,CAAC;EACzE,OAAOkpD,SAAS;AACpB,CAAC;AACD,IAAMC,uBAAuB,GAAG/E,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EAC/DA,OAAO,CAACC,OAAO,CAAC+D,qBAAqB,EAAE,UAACliD,KAAK,EAAEpL,MAAM;IACjDoL,KAAK,CAACwiD,sBAAsB,GAAG5tD,MAAM,CAACwpD,OAAO;IAC7C,IAAIp+C,KAAK,CAACyiD,iBAAiB,CAAC79C,MAAM,GAAG,CAAC,EAAE;MACpC5E,KAAK,CAACwiD,sBAAsB,GAAGxiD,KAAK,CAACwiD,sBAAsB,CAACnwD,MAAM,CAC9D,UAACga,IAAS;QACN,OAAO,CAACrM,KAAK,CAACyiD,iBAAiB,CAACn4D,IAAI,CAChC,UAAC24D,GAAQ;UAAA,OAAKA,GAAG,CAACppD,EAAE,KAAKwS,IAAI,CAACxS,EAAE;UACnC;OACJ,CACJ;;GAER,CAAC;EACFqkD,OAAO,CAACC,OAAO,CAACgE,iBAAiB,EAAE,UAACniD,KAAK,EAAEpL,MAAM;IAC7C,IAAI0T,KAAK,GAAGtI,KAAK,CAAC0iD,cAAc,CAAC5wB,SAAS,CACtC,UAACzlB,IAAS;MAAA,OAAKA,IAAI,CAACxS,EAAE,KAAKjF,MAAM,CAACwpD,OAAO,CAACvkD,EAAE;MAC/C;IACD,IAAIyO,KAAK,KAAK,CAAC,CAAC,EAAE;MACdtI,KAAK,CAAC0iD,cAAc,CAACjpC,IAAI,CAAC7kB,MAAM,CAACwpD,OAAO,CAAC;KAC5C,MAAM;MACHp+C,KAAK,CAAC0iD,cAAc,CAAC55B,MAAM,CAACxgB,KAAK,EAAE,CAAC,CAAC;;GAE5C,CAAC;EACF41C,OAAO,CAACC,OAAO,CAACiE,mBAAmB,EAAE,UAACpiD,KAAK,EAAEpL,MAAM;IAC/CoL,KAAK,CAAC0iD,cAAc,GAAG9tD,MAAM,CAACwpD,OAAO;GACxC,CAAC;EACFF,OAAO,CAACC,OAAO,CAACkE,mBAAmB,EAAE,UAACriD,KAAK,EAAEpL,MAAM;IAC/C,QAAQA,MAAM,CAACwpD,OAAO;MAClB,KAAK,OAAO;QACRp+C,KAAK,CAACyiD,iBAAiB,GAAGE,wBAAwB,CAC9C3iD,KAAK,CAACyiD,iBAAiB,EACvBziD,KAAK,CAAC0iD,cAAc,CACvB;QACD1iD,KAAK,CAACwiD,sBAAsB,GAAGxiD,KAAK,CAACwiD,sBAAsB,CAACnwD,MAAM,CAC9D,UAACga,IAAS;UACN,OAAO,CAACrM,KAAK,CAACyiD,iBAAiB,CAACn4D,IAAI,CAChC,UAAC24D,GAAQ;YAAA,OAAKA,GAAG,CAACppD,EAAE,KAAKwS,IAAI,CAACxS,EAAE;YACnC;SACJ,CACJ;QACDmG,KAAK,CAAC0iD,cAAc,GAAG,EAAE;QACzB;MACJ,KAAK,WAAW;QACZ1iD,KAAK,CAACyiD,iBAAiB,GAAGE,wBAAwB,CAC9C3iD,KAAK,CAACyiD,iBAAiB,EACvBziD,KAAK,CAACwiD,sBAAsB,CAC/B;QACDxiD,KAAK,CAAC0iD,cAAc,GAAG,EAAE;QACzB1iD,KAAK,CAACwiD,sBAAsB,GAAG,EAAE;QACjC;MACJ,KAAK,MAAM;QACPxiD,KAAK,CAACwiD,sBAAsB,GAAGG,wBAAwB,CACnD3iD,KAAK,CAACwiD,sBAAsB,EAC5BxiD,KAAK,CAAC0iD,cAAc,CACvB;QACD1iD,KAAK,CAACyiD,iBAAiB,GAAGziD,KAAK,CAACyiD,iBAAiB,CAACpwD,MAAM,CACpD,UAACga,IAAS;UACN,OAAO,CAACrM,KAAK,CAAC0iD,cAAc,CAACp4D,IAAI,CAC7B,UAAC24D,GAAQ;YAAA,OAAKA,GAAG,CAACppD,EAAE,KAAKwS,IAAI,CAACxS,EAAE;YACnC;SACJ,CACJ;QACDmG,KAAK,CAAC0iD,cAAc,GAAG,EAAE;QACzB;MACJ,KAAK,UAAU;QACX1iD,KAAK,CAACwiD,sBAAsB,GAAGG,wBAAwB,CACnD3iD,KAAK,CAACwiD,sBAAsB,EAC5BxiD,KAAK,CAACyiD,iBAAiB,CAC1B;QACDziD,KAAK,CAACyiD,iBAAiB,GAAG,EAAE;QAC5BziD,KAAK,CAAC0iD,cAAc,GAAG,EAAE;QACzB;MACJ,KAAK,SAAS;QACV,IAAMQ,SAAS,GAAGljD,KAAK,CAACyiD,iBAAiB,CAAC3wB,SAAS,CAC/C,UAACzlB,IAAS;UAAA,OAAKA,IAAI,CAACxS,EAAE,KAAKmG,KAAK,CAAC0iD,cAAc,CAAC,CAAC,CAAC,CAAC7oD,EAAE;UACxD;QACD,IAAIqpD,SAAS,KAAK,CAAC,CAAC,EAAE;UAClBljD,KAAK,CAACyiD,iBAAiB,CAAC35B,MAAM,CAC1Bo6B,SAAS,GAAG,CAAC,EACb,CAAC,EACDljD,KAAK,CAACyiD,iBAAiB,CAAC35B,MAAM,CAACo6B,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAClD;;QAEL;MACJ,KAAK,WAAW;QACZ,IAAMC,UAAU,GAAGnjD,KAAK,CAACyiD,iBAAiB,CAAC3wB,SAAS,CAChD,UAACzlB,IAAS;UAAA,OAAKA,IAAI,CAACxS,EAAE,KAAKmG,KAAK,CAAC0iD,cAAc,CAAC,CAAC,CAAC,CAAC7oD,EAAE;UACxD;QACD,IAAIspD,UAAU,KAAK,CAAC,CAAC,EAAE;UACnBnjD,KAAK,CAACyiD,iBAAiB,CAAC35B,MAAM,CAC1Bq6B,UAAU,GAAG,CAAC,EACd,CAAC,EACDnjD,KAAK,CAACyiD,iBAAiB,CAAC35B,MAAM,CAACq6B,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACnD;;QAEL;;GAIX,CAAC;EACFjF,OAAO,CAACC,OAAO,CAACmE,kBAAkB,EAAE,UAACtiD,KAAK,EAAEpL,MAAM;IAC9CoL,KAAK,CAACwiD,sBAAsB,GAAG,EAAE;IACjCxiD,KAAK,CAACyiD,iBAAiB,GAAG7tD,MAAM,CAACwpD,OAAO;GAC3C,CAAC;EACFF,OAAO,CAACC,OAAO,CAACoE,oBAAoB,EAAE,UAAAviD,KAAK;IACvCA,KAAK,CAACwiD,sBAAsB,GAAG,EAAE;IACjCxiD,KAAK,CAACyiD,iBAAiB,GAAG,EAAE;GAC/B,CAAC;EACFvE,OAAO,CAACC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IACnC,OAAO1B,cAAY;GACtB,CAAC;AACN,CAAC,CAAC;;AChIF,IAAMA,cAAY,GAAQ;EACtB7tC,gBAAgB,EAAE;CACrB;AAED,IAAM+xC,qBAAmB,GAAG7C,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EAC3DA,OAAO,CACFC,OAAO,CAACtwC,eAAe,EAAE,UAAC7N,KAAK,EAAEpL,MAAM;IACpCoL,KAAK,CAAC+O,gBAAgB,GAAGna,MAAM,CAACwpD,OAAO;GAC1C,CAAC,CACDD,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICfWwG,mBAAmB,GAAGp1D,oBAAY,CAC3C,kCAAkC,CACrC;;ACCD,IAAM4uD,cAAY,GAAQ;EACtByG,gBAAgB,EAAE,EAAE;EACpBv0C,UAAU,EAAE;CACf;AAED,IAAMw0C,mBAAmB,GAAGrF,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EAC3DA,OAAO,CACFC,OAAO,CAACiF,mBAAmB,EAAE,UAACpjD,KAAK,EAAEpL,MAAM;IACxCoL,KAAK,CAACqjD,gBAAgB,GAAGzuD,MAAM,CAACwpD,OAAO,CAACiF,gBAAgB;IACxDrjD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ACVF,IAAMA,cAAY,GAAQ;EACtB5I,gBAAgB,EAAE,EAAE;EACpBllC,UAAU,EAAE,CAAC;EACbslC,kBAAkB,EAAE;CACvB;AAED,IAAM0M,qBAAmB,GAAG7C,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EAC3DA,OAAO,CACFC,OAAO,CAAC1K,eAAe,EAAE,UAACzzC,KAAK,EAAEpL,MAAM;IAClCoL,KAAK,CAACg0C,gBAAgB,GAAGp/C,MAAM,CAACwpD,OAAO,CAACpK,gBAAgB,EACrDh0C,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU,EAC5C9O,KAAK,CAACo0C,kBAAkB,GAAGx/C,MAAM,CAACwpD,OAAO,CAAChK,kBAAmB;GACrE,CAAC,CACD+J,OAAO,CAACzK,qBAAqB,EAAE,UAAC1zC,KAAK,EAAEpL,MAAM;IAC1CoL,KAAK,CAACo0C,kBAAkB,GAAGx/C,MAAM,CAACwpD,OAAO;GAC5C,CAAC,CACDD,OAAO,CAACxK,wBAAwB,EAAE,UAAC3zC,KAAK,EAAEpL,MAAM;IAC7CoL,KAAK,CAACo0C,kBAAkB,IAAIx/C,MAAM,CAACwpD,OAAO;GAC7C,CAAC,CACDD,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;IC7BW2G,YAAY,GAAGv1D,oBAAY,CAAM,4BAA4B,CAAC;;ACG3E,IAAM4uD,cAAY,GAAQ;EACtB4G,aAAa,EAAE,EAAE;EACjB10C,UAAU,EAAE;CACf;AAED,IAAMkvC,eAAa,GAAGC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CACFC,OAAO,CAACoF,YAAY,EAAE,UAACvjD,KAAK,EAAEpL,MAAM;IACjCoL,KAAK,CAACwjD,aAAa,GAAG5uD,MAAM,CAACwpD,OAAO;GACvC,CAAC,CACDD,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;IChBW6G,gBAAgB,GAAGz1D,oBAAY,CACxC,6BAA6B,CAChC;;ACED,IAAM4uD,cAAY,GAAQ;EACtB8G,aAAa,EAAE;CAClB;AAED,IAAMC,gBAAgB,GAAG1F,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACxDA,OAAO,CACFC,OAAO,CAACsF,gBAAgB,EAAE,UAACzjD,KAAK,EAAEpL,MAAM;IACrCoL,KAAK,CAAC0jD,aAAa,GAAG9uD,MAAM,CAACwpD,OAAO;GACvC,CAAC,CACDD,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;IChBWgH,sBAAsB,GAAG51D,oBAAY,CAC9C,yCAAyC,CAC5C;;ACCD,IAAM4uD,cAAY,GAAQ;EACtBiH,mBAAmB,EAAE,EAAE;EACvB/0C,UAAU,EAAE;CACf;AAED,IAAMg1C,sBAAsB,GAAG7F,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EAC9DA,OAAO,CACFC,OAAO,CAACyF,sBAAsB,EAAE,UAAC5jD,KAAK,EAAEpL,MAAM;IAC3CoL,KAAK,CAAC6jD,mBAAmB,GAAGjvD,MAAM,CAACwpD,OAAO,CAACyF,mBAAmB;IAC9D7jD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICjBWmH,kCAAkC,GAAG/1D,oBAAY,CAC1D,sDAAsD,CACzD;;ACCD,IAAM4uD,cAAY,GAAQ;EACtBoH,+BAA+B,EAAE,EAAE;EACnCl1C,UAAU,EAAE;CACf;AAED,IAAMm1C,kCAAkC,GAAGhG,qBAAa,CACpDrB,cAAY,EACZ,UAAAsB,OAAO;EACHA,OAAO,CACFC,OAAO,CAAC4F,kCAAkC,EAAE,UAAC/jD,KAAK,EAAEpL,MAAM;IACvDoL,KAAK,CAACgkD,+BAA+B,GACjCpvD,MAAM,CAACwpD,OAAO,CAAC4F,+BAA+B;IAClDhkD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CACJ;;ICrBYsH,qBAAqB,GAAGl2D,oBAAY,CAAM,uCAAuC,CAAC;;ACE/F,IAAM2zD,WAAS,GAAG;EACdwC,kBAAkB,EAAE,EAAE;EACtBr1C,UAAU,EAAE;CACf;AAED,IAAMs1C,qBAAqB,GAAGnG,qBAAa,CAAC0D,WAAS,EAAE,UAAAzD,OAAO;EAC1DA,OAAO,CACFC,OAAO,CAAC+F,qBAAqB,EAAE,UAAClkD,KAAK,EAAEpL,MAAM;IAC1CoL,KAAK,CAACmkD,kBAAkB,GAAGvvD,MAAM,CAACwpD,OAAO,CAAC+F,kBAAkB;IAC5DnkD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAOqD,WAAS;GACnB,CAAC;AACV,CAAC,CAAC;;IChBW0C,kBAAkB,GAAGr2D,oBAAY,CAAM,iCAAiC,CAAC;;ACGtF,IAAM4uD,cAAY,GAAQ;EACtB0H,eAAe,EAAE,EAAE;EACnBx1C,UAAU,EAAE;CACf;AAED,IAAMkvC,eAAa,GAAGC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CACFC,OAAO,CAACkG,kBAAkB,EAAE,UAACrkD,KAAK,EAAEpL,MAAM;IACvCoL,KAAK,CAACskD,eAAe,GAAG1vD,MAAM,CAACwpD,OAAO,CAACkG,eAAe;IACtDtkD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ACdF,IAAMA,cAAY,GAAQ;EACtB7B,SAAS,EAAE,EAAE;EACbjsC,UAAU,EAAE,CAAC;EACb+nC,WAAW,EAAE1xB;CAChB;AAED,IAAM64B,eAAa,GAAGC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CACFC,OAAO,CAACxD,UAAU,EAAE,UAAC36C,KAAK,EAAEpL,MAAM;IAC/BoL,KAAK,CAAC+6C,SAAS,GAAGnmD,MAAM,CAACwpD,OAAO,CAACrD,SAAS;IAC1C/6C,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAACvD,cAAc,EAAE,UAAC56C,KAAK,EAAEpL,MAAM;IACnCoL,KAAK,CAAC62C,WAAW,GAAGjiD,MAAM,CAACwpD,OAAO,CAACvH,WAAW;GACjD,CAAC,CACDsH,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICpBW2H,MAAM,GAAGv2D,oBAAY,CAAY,kBAAkB,CAAC;AACjE,IAAaw2D,QAAQ,GAAGx2D,oBAAY,CAAS,oBAAoB,CAAC;AAClE,IAAay2D,OAAO,GAAGz2D,oBAAY,CAAY,mBAAmB,CAAC;AACnE,IAAa02D,QAAQ,GAAG12D,oBAAY,CAAC,oBAAoB,CAAC;;;ACN1D,AAIA,IAAM4uD,cAAY,GAAQ;EACtBtoB,IAAI,EAAE,CAAC,CAACz9B,YAAY,CAACD,OAAO,CAAC,OAAO,CAAC,GAC/B8O,IAAI,CAACusB,KAAK,EAAAmd,uBAAA,GAACv4C,YAAY,CAACD,OAAO,CAAC,OAAO,CAAC,YAAAw4C,uBAAA,GAAI,EAAE,CAAC,GAC/C;CACT;AACD,IAAMuV,gBAAgB,GAAG1G,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACxDA,OAAO,CACFC,OAAO,CAACoG,MAAM,EAAE,UAACvkD,KAAK,EAAEpL,MAAM;IAC3B,IAAIoL,KAAK,CAACs0B,IAAI,CAAChqC,IAAI,CAAC,UAACy5C,GAAQ;MAAA,OAAKA,GAAG,CAACp9C,GAAG,KAAKiO,MAAM,CAACwpD,OAAO,CAACz3D,GAAG;MAAC,EAAE;MAC/D,OAAOqZ,KAAK;;IAGhB,OAAA1D,QAAA,KACO0D,KAAK;MACRs0B,IAAI,GAAG1/B,MAAM,CAACwpD,OAAO,EAAA7sC,MAAA,CAAKvR,KAAK,CAACs0B,IAAI;;GAE3C,CAAC,CACD6pB,OAAO,CAACqG,QAAQ,EAAE,UAACxkD,KAAK,EAAEpL,MAAM;IAC7B,IAAI0/B,IAAI,GAAG5uB,IAAI,CAACusB,KAAK,CAACvsB,IAAI,CAACC,SAAS,CAAC3F,KAAK,CAACs0B,IAAI,CAAC,CAAC;IACjD,OAAOA,IAAI,CAAC1/B,MAAM,CAACwpD,OAAO,CAAC;IAC3B9pB,IAAI,GAAGA,IAAI,CAACjiC,MAAM,CAACxL,OAAO,CAAC;IAE3B,OAAAyV,QAAA,KAAY0D,KAAK;MAAEs0B,IAAI,EAAJA;;GACtB,CAAC,CACD6pB,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5BznD,YAAY,CAAC2B,UAAU,CAAC,OAAO,CAAC;IAChC,OAAO;MAAE87B,IAAI,EAAE;KAAI;GACtB,CAAC,CACD6pB,OAAO,CAACsG,OAAO,EAAE,UAACzkD,KAAK,EAAEpL,MAAM;IAC5B,IAAM0/B,IAAI,GAAG5uB,IAAI,CAACusB,KAAK,CAACvsB,IAAI,CAACC,SAAS,CAAC3F,KAAK,CAACs0B,IAAI,CAAC,CAAC;IACnD,IAAMswB,UAAU,GAAGtwB,IAAI,CAACziB,IAAI,CACxB,UAACkyB,GAAQ;MAAA,OAAKnvC,MAAM,CAACwpD,OAAO,CAACp5D,KAAK,KAAK++C,GAAG,CAAC/+C,KAAK;MACnD;IACD4/D,UAAU,CAACj+D,GAAG,GAAGiO,MAAM,CAACwpD,OAAO,CAACz3D,GAAG;IACnC,OAAA2V,QAAA,KACO0D,KAAK;MACRs0B,IAAI,EAAJA;;GAEP,CAAC,CACD6pB,OAAO,CAACuG,QAAQ,EAAE,UAACrG,MAAM,EAAEC,OAAO;IAC/BznD,YAAY,CAAC2B,UAAU,CAAC,OAAO,CAAC;IAChC,OAAO;MAAE87B,IAAI,EAAE;KAAI;GACtB,CAAC;AACV,CAAC,CAAC;;IC7CWuwB,UAAU,GAAG72D,oBAAY,CAAM,0BAA0B,CAAC;AACvE,IAAa82D,UAAU,GAAG92D,oBAAY,CAAM,0BAA0B,CAAC;AACvE,IAAa+2D,cAAc,GAAG/2D,oBAAY,CAAM,8BAA8B,CAAC;AAC/E,IAAag3D,gBAAgB,GAAGh3D,oBAAY,CACxC,gCAAgC,CACnC;AACD,IAAai3D,YAAY,GAAGj3D,oBAAY,CAAM,4BAA4B,CAAC;;ACG3E,IAAM4uD,cAAY,GAAQ;EACtBsI,SAAS,EAAE,CAAC;EACZC,OAAO,EAAE;IACLtrD,EAAE,EAAE,CAAC;IACLopB,SAAS,EAAE,CAAC;IACZrf,SAAS,EAAE,CAAC;IACZoE,QAAQ,EAAE,CAAC;IACXo9C,gBAAgB,EAAE,IAAI;IACtBC,uBAAuB,EAAE,EAAE;IAC3BC,uBAAuB,EAAE,EAAE;IAC3BC,mBAAmB,EAAE;GACxB;EACDC,OAAO,EAAE,EAAE;EACXC,SAAS,EAAE;CACd;AAED,IAAMC,oBAAoB,GAAGzH,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EAC5DA,OAAO,CACFC,OAAO,CAAC6G,gBAAgB,EAAE,UAAC3G,MAAM,EAAEzpD,MAAM;IACtC,OAAOA,MAAM,CAACwpD,OAAO;GACxB,CAAC,CACDD,OAAO,CAAC0G,UAAU,EAAE,UAAC7kD,KAAK,EAAEpL,MAAM;IAC/B,IAAA4pD,eAAA,GAAiC5pD,MAAM,CAACwpD,OAAO;MAAvCuH,cAAc,GAAAnH,eAAA,CAAdmH,cAAc;MAAE95D,IAAI,GAAA2yD,eAAA,CAAJ3yD,IAAI;IAC5B,IAAM+5D,aAAa,GAAG5lD,KAAK,CAACwlD,OAAO,CAAC3zC,IAAI,CACpC,UAAC0T,MAAW;MAAA,OAAKA,MAAM,CAACsgC,eAAe;MAC1C;IACD,IAAI,CAACD,aAAa,EAAE,OAAO5lD,KAAK;IAChC,IAAM8lD,mBAAmB,GAAGpgD,IAAI,CAACusB,KAAK,CAClCvsB,IAAI,CAACC,SAAS,CAACigD,aAAa,CAAC,CAChC;IAED,IAAMG,WAAW,GAAGD,mBAAmB,CAACE,KAAK,CAACn0C,IAAI,CAC9C,UAACo0C,IAAS;MAAA,OAAK,CAAC,CAACA,IAAI,CAACN,cAAc,KAAKA,cAAc;MAC1D;IAED,IAAII,WAAW,EAAE;MACbA,WAAW,CAACl6D,IAAI,GAAGA,IAAI;KAC1B,MAAM;MACHi6D,mBAAmB,CAACE,KAAK,CAACvsC,IAAI,CAAC;QAAEksC,cAAc,EAAdA,cAAc;QAAE95D,IAAI,EAAJA;OAAM,CAAC;;IAG5D,OAAAyQ,QAAA,KACO0D,KAAK;MACRwlD,OAAO,EAAExlD,KAAK,CAACwlD,OAAO,CAACtzD,GAAG,CAAC,UAACqzB,MAAW;QAAA,OACnCA,MAAM,CAACsgC,eAAe,GAAGC,mBAAmB,GAAGvgC,MAAM;;;GAGhE,CAAC,CACD44B,OAAO,CAAC2G,UAAU,EAAE,UAAC9kD,KAAK,EAAEpL,MAAM;IAC/B,IAAMsxD,IAAI,GAAGtxD,MAAM,CAACwpD,OAAO;IAC3B,IAAMwH,aAAa,GAAG5lD,KAAK,CAACwlD,OAAO,CAAC3zC,IAAI,CACpC,UAAC0T,MAAW;MAAA,OAAKA,MAAM,CAACsgC,eAAe;MAC1C;IACD,IAAI,CAACD,aAAa,EAAE,OAAO5lD,KAAK;IAChC,IAAM8lD,mBAAmB,GAAGpgD,IAAI,CAACusB,KAAK,CAClCvsB,IAAI,CAACC,SAAS,CAACigD,aAAa,CAAC,CAChC;IACDE,mBAAmB,CAACI,IAAI,GAAGA,IAAI;IAC/B,OAAA5pD,QAAA,KACO0D,KAAK;MACRwlD,OAAO,EAAExlD,KAAK,CAACwlD,OAAO,CAACtzD,GAAG,CAAC,UAACqzB,MAAW;QAAA,OACnCA,MAAM,CAACsgC,eAAe,GAAGC,mBAAmB,GAAGvgC,MAAM;;;GAGhE,CAAC,CACD44B,OAAO,CAAC4G,cAAc,EAAE,UAAC/kD,KAAK,EAAEpL,MAAM;IACnC,IAAA6pD,gBAAA,GAA8C7pD,MAAM,CAACwpD,OAAO;MAApDvyD,IAAI,GAAA4yD,gBAAA,CAAJ5yD,IAAI;MAAEs6D,UAAU,GAAA1H,gBAAA,CAAV0H,UAAU;MAAEN,eAAe,GAAApH,gBAAA,CAAfoH,eAAe;IACzC,IAAMtgC,MAAM,GAAGvlB,KAAK,CAACwlD,OAAO,CAAC3zC,IAAI,CAC7B,UAAC0T,MAAW;MAAA,OAAKA,MAAM,CAACsgC,eAAe,KAAKA,eAAe;MAC9D;IACD,IAAI,CAACtgC,MAAM,EAAE,OAAOvlB,KAAK;IACzB,IAAMomD,YAAY,GAAG1gD,IAAI,CAACusB,KAAK,CAACvsB,IAAI,CAACC,SAAS,CAAC4f,MAAM,CAAC,CAAC;IACvD,IAAM8gC,eAAe,GAAGD,YAAY,CAACE,iBAAiB,CAACz0C,IAAI,CACvD,UAAC5Z,QAAa;MAAA,OAAKA,QAAQ,CAACkuD,UAAU,KAAKA,UAAU;MACxD;IACD,IAAI,CAACE,eAAe,EAAE;MAClBD,YAAY,CAACE,iBAAiB,CAAC7sC,IAAI,CAAC;QAAE0sC,UAAU,EAAVA,UAAU;QAAEt6D,IAAI,EAAJA;OAAM,CAAC;KAC5D,MAAM;MACHw6D,eAAe,CAACx6D,IAAI,GAAGA,IAAI;;IAG/B,OAAAyQ,QAAA,KACO0D,KAAK;MACRwlD,OAAO,EAAExlD,KAAK,CAACwlD,OAAO,CAACtzD,GAAG,CAAC,UAACqzB,MAAW;QAAA,OACnCA,MAAM,CAACsgC,eAAe,KAAKA,eAAe,GACpCO,YAAY,GACZ7gC,MAAM;;;GAGvB,CAAC,CACD44B,OAAO,CAAC8G,YAAY,EAAE,UAACjlD,KAAK,EAAEpL,MAAM;IACjC,IAAM6wD,SAAS,GAAG7wD,MAAM,CAACwpD,OAAO;IAChC,IAAI,CAACqH,SAAS,EAAE,OAAOzlD,KAAK;IAC5BA,KAAK,CAACylD,SAAS,GAAGA,SAAS;GAC9B,CAAC,CACDtH,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;IC3GW2J,aAAa,GAAGv4D,oBAAY,CAAM,0BAA0B,CAAC;AAC1E,IAAaw4D,wBAAwB,GAAGx4D,oBAAY,CAChD,qCAAqC,CACxC;;ACAD,IAAM4uD,cAAY,GAAQ;EACtB/iD,EAAE,EAAE,CAAC;EACL4sD,SAAS,EAAE,CACP;IACI5sD,EAAE,EAAE,CAAC;IACLhO,IAAI,EAAE,EAAE;IACR2B,IAAI,EAAE,EAAE;IACRk5D,YAAY,EAAE,EAAE;IAChBC,OAAO,EAAE;GACZ,CACJ;EACDC,gBAAgB,EAAE;CACrB;AAED,IAAMC,UAAU,GAAG5I,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EAClDA,OAAO,CACFC,OAAO,CAACoI,aAAa,EAAE,UAAClI,MAAM,EAAEzpD,MAAM;IACnC,OAAOA,MAAM,CAACwpD,OAAO;GACxB,CAAC,CACDD,OAAO,CAACqI,wBAAwB,EAAE,UAACxmD,KAAK,EAAEpL,MAAM;IAC7C,IAAA4pD,eAAA,GAA6B5pD,MAAM,CAACwpD,OAAO;MAAnC+H,UAAU,GAAA3H,eAAA,CAAV2H,UAAU;MAAEt6D,IAAI,GAAA2yD,eAAA,CAAJ3yD,IAAI;IACxB,IAAM+6D,gBAAgB,GAAG5mD,KAAK,CAAC4mD,gBAAgB;IAC/C,IAAI,CAACA,gBAAgB,EAAE,OAAO5mD,KAAK;IACnC,IAAM8mD,sBAAsB,GAAGphD,IAAI,CAACusB,KAAK,CACrCvsB,IAAI,CAACC,SAAS,CAACihD,gBAAgB,CAAC,CACnC;IACD,IAAMP,eAAe,GAAGS,sBAAsB,CAACj1C,IAAI,CAC/C,UAAC5Z,QAAa;MAAA,OAAKA,QAAQ,CAACkuD,UAAU,KAAKA,UAAU;MACxD;IACD,IAAI,CAACE,eAAe,EAAE;MAClBS,sBAAsB,CAACrtC,IAAI,CAAC;QACxB0sC,UAAU,EAAEA,UAAU;QACtBt6D,IAAI,EAAEA;OACT,CAAC;KACL,MAAM;MACHw6D,eAAe,CAACx6D,IAAI,GAAGA,IAAI;;IAG/B,OAAAyQ,QAAA,KACO0D,KAAK;MACR4mD,gBAAgB,EAAEE;;GAEzB,CAAC,CACD3I,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICjDWmK,kBAAkB,GAAG/4D,oBAAY,CAC1C,iCAAiC,CACpC;;ACCD,IAAM4uD,cAAY,GAAQ;EACtBoK,eAAe,EAAE,EAAE;EACnBl4C,UAAU,EAAE;CACf;AAED,IAAMkvC,eAAa,GAAGC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CACFC,OAAO,CAAC4I,kBAAkB,EAAE,UAAC/mD,KAAK,EAAEpL,MAAM;IACvCoL,KAAK,CAACgnD,eAAe,GAAGpyD,MAAM,CAACwpD,OAAO,CAAC4I,eAAe;IACtDhnD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICjBWqK,iBAAiB,GAAGj5D,oBAAY,CACzC,kCAAkC,CACrC;;ACCD,IAAM4uD,cAAY,GAAQ;EACtBsK,kBAAkB,EAAE;CACvB;AAED,IAAMlJ,eAAa,GAAGC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CACFC,OAAO,CAAC8I,iBAAiB,EAAE,UAACjnD,KAAK,EAAEpL,MAAM;IACtCoL,KAAK,CAACknD,kBAAkB,GAAGtyD,MAAM,CAACwpD,OAAO;GAC5C,CAAC,CACDD,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICfWuK,eAAe,GAAGn5D,oBAAY,CAAM,iBAAiB,CAAC;;ACQnE,IAAM4uD,cAAY,GAAQ;EACtBwK,YAAY;CACf;AAED,IAAMC,aAAa,GAAGpJ,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CACFC,OAAO,CAACgJ,eAAe,EAAE,UAACnnD,KAAK,EAAEpL,MAAM;IACpCoL,KAAK,CAAConD,YAAY,GAAGxyD,MAAM,CAACwpD,OAAO,CAACgJ,YAAY;GACnD,CAAC,CACDjJ,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICpBW0K,gBAAgB,GAAGt5D,oBAAY,CAAM,6BAA6B,CAAC;;ACGhF,IAAM4uD,cAAY,GAAQ;EACtB2K,aAAa,EAAE,EAAE;EACjBz4C,UAAU,EAAE;CACf;AAED,IAAMkvC,eAAa,GAAGC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CACFC,OAAO,CAACmJ,gBAAgB,EAAE,UAACtnD,KAAK,EAAEpL,MAAM;IACrCoL,KAAK,CAACunD,aAAa,GAAG3yD,MAAM,CAACwpD,OAAO,CAACmJ,aAAa;IAClDvnD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICjBW4K,qBAAqB,GAAGx5D,oBAAY,CAC7C,uCAAuC,CAC1C;;ACCD,IAAM4uD,cAAY,GAAQ;EACtB6K,kBAAkB,EAAE,EAAE;EACtB34C,UAAU,EAAE;CACf;AAED,IAAMkvC,eAAa,GAAGC,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACrDA,OAAO,CACFC,OAAO,CAACqJ,qBAAqB,EAAE,UAACxnD,KAAK,EAAEpL,MAAM;IAC1CoL,KAAK,CAACynD,kBAAkB,GAAG7yD,MAAM,CAACwpD,OAAO,CAACqJ,kBAAkB;IAC5DznD,KAAK,CAAC8O,UAAU,GAAGla,MAAM,CAACwpD,OAAO,CAACtvC,UAAU;GAC/C,CAAC,CACDqvC,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICjBW8K,6BAA6B,GAAG15D,oBAAY,CACrD,yCAAyC,CAC5C;;ACCD,IAAM4uD,cAAY,GAAQ;EACtB+K,0BAA0B,EAAE;CAC/B;AAED,IAAMC,gBAAgB,GAAG3J,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EACxDA,OAAO,CACFC,OAAO,CAACuJ,6BAA6B,EAAE,UAAC1nD,KAAK,EAAEpL,MAAM;IAClDoL,KAAK,CAAC2nD,0BAA0B,GAAG/yD,MAAM,CAACwpD,OAAO;GACpD,CAAC,CACDD,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ICfWiL,kBAAkB,GAAG75D,oBAAY,CAAM,oBAAoB,CAAC;AACzE,IAAa85D,0BAA0B,GAAG95D,oBAAY,CAAU,4BAA4B,CAAC;;ACC7F,IAAM4uD,cAAY,GAAG;EACjBmL,yBAAyB,EAAE,KAAK;EAChCC,SAAS,EAAE7iC,SAAS;EACpB8iC,YAAY,EAAE;CACjB;AAED,IAAMC,kBAAkB,GAAGjK,qBAAa,CAACrB,cAAY,EAAE,UAAAsB,OAAO;EAC1DA,OAAO,CACFC,OAAO,CAAC0J,kBAAkB,EAAE,UAAC7nD,KAAK,EAAEpL,MAAM;IACvCoL,KAAK,CAACioD,YAAY,GAAGrzD,MAAM,CAACwpD,OAAO;GACtC,CAAC,CACDD,OAAO,CAAC2J,0BAA0B,EAAE,UAAC9nD,KAAK,EAAEpL,MAAM;IAC/CoL,KAAK,CAAC+nD,yBAAyB,GAAGnzD,MAAM,CAACwpD,OAAO;GACnD,CAAC,CACDD,OAAO,CAAC5vD,KAAK,EAAE,UAAC8vD,MAAM,EAAEC,OAAO;IAC5B,OAAO1B,cAAY;GACtB,CAAC;AACV,CAAC,CAAC;;ACuBF,IAAMuL,WAAW,GAAGC,eAAe,CAAC;EAChCnoD,MAAM,EAANA,aAAM;EACNu8C,OAAO,EAAPA,YAAO;EACP6L,iBAAiB,EAAjBA,uBAAiB;EACjBC,IAAI,EAAJA,eAAI;EACJ3qC,MAAM,EAANA,eAAM;EACN9O,aAAa,EAAbA,oBAAa;EACb05C,cAAc,EAAdA,qBAAc;EACdC,gBAAgB,EAAhBA,uBAAgB;EAChBC,QAAQ,EAARA,eAAQ;EACRC,yBAAyB,EAAzBA,eAAyB;EACzBC,YAAY,EAAZA,mBAAY;EACZC,MAAM,EAANA,eAAM;EACNC,QAAQ,EAARA,eAAQ;EACRC,YAAY,EAAZA,eAAY;EACZlkC,KAAK,EAALA,eAAK;EACLmkC,WAAW,EAAXA,iBAAW;EACXC,iBAAiB,EAAjBA,mBAAiB;EACjBC,SAAS,EAATA,eAAS;EACTC,WAAW,EAAXA,eAAW;EACXC,kBAAkB,EAAlBA,uBAAkB;EAClBn6C,YAAY,EAAZA,qBAAY;EACZo6C,YAAY,EAAZA,mBAAY;EACZnV,YAAY,EAAZA,qBAAY;EACZoV,SAAS,EAATA,eAAS;EACTC,WAAW,EAAXA,eAAW;EACXx6B,UAAU,EAAVA,gBAAU;EACVy6B,iBAAiB,EAAjBA,sBAAiB;EACjBC,6BAA6B,EAA7BA,kCAA6B;EAC7BC,eAAe,EAAfA,qBAAe;EACfC,YAAY,EAAZA,eAAY;EACZ1O,OAAO,EAAPA,eAAO;EACPzwC,SAAS,EAATA,gBAAS;EACTo/C,aAAa,EAAbA,oBAAa;EACb9C,UAAU,EAAVA,UAAU;EACV+C,WAAW,EAAXA,eAAW;EACXC,cAAc,EAAdA,eAAc;EACdC,MAAM,EAANA,aAAM;EACNC,UAAU,EAAVA,eAAU;EACVC,eAAe,EAAfA,eAAe;EACfpC,gBAAgB,EAAhBA,gBAAgB;EAChBK,YAAY,EAAZA;CACH,CAAC;;ACjFF,IAAMgC,KAAK,GAAUC,sBAAc,CAAC;EAChCC,OAAO,EAAEhC,WAAW;EACpBiC,UAAU,EAAE,SAAZA,UAAUA,CAAEC,oBAAoB;IAAA,OAC5BA,oBAAoB,CAAC;MAAEC,iBAAiB,EAAE;KAAO,CAAC;;CACzD,CAAC;;ACNF,IAAMC,eAAe,YAAfA,eAAeA;4CACb;IACA,IAAM5yD,KAAK,GAAGC,cAAc,EAAE;IAAA,OACzBD,KAAK,GAAA9G,OAAA,CAAAC,OAAA,CAEgBkI,UAAU,CAACrB,KAAK,CAAC,EAAAzE,IAAA,WAArCs3D,WAAW;MAAA,OACZA,WAAW,CAAC3xD,IAAI,GAEd,IAAI,GAFmB,KAAK;SAHhB,KAAK;GAM3B,cAAa;IACV,OAAO,KAAK;GACf;AACL,CAAC;;ACfD,IAAM4xD,SAAS,GAAG,SAAZA,SAASA,CAAIC,SAAgB,EAAEC,cAAqB;EACtD,IAAI,CAACr0D,KAAK,CAACC,OAAO,CAACm0D,SAAS,CAAC,EAAE;IAC3B,OAAO,KAAK;;EAEhB,IAAIp0D,KAAK,CAACC,OAAO,CAACo0D,cAAc,CAAC,EAAE;IAC/B,IAAMC,UAAU,GAAGF,SAAS,CAACr4D,MAAM,CAAC,UAAAmE,CAAC;MAAA,OAAIm0D,cAAc,CAAClkE,QAAQ,CAAC+P,CAAC,CAAC;MAAC;IACpE,OAAOo0D,UAAU,CAAChmD,MAAM,GAAG,CAAC;;EAEhC,OAAO,IAAI;AACf,CAAC;;ICTYimD,YAAY,GAAG,SAAfA,YAAYA,CAAIC,EAAO;EAChC,IAAMC,IAAI,GAAGD,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAEE,qBAAqB,EAAE;EACxC,OACID,IAAI,CAACjd,GAAG,IAAI,CAAC,IACbid,IAAI,CAAChd,IAAI,IAAI,CAAC,IACdgd,IAAI,CAACx6C,MAAM,KACNjqB,MAAM,CAAC2kE,WAAW,IAAInhE,QAAQ,CAACC,eAAe,CAACmhE,YAAY,CAAC,IACjEH,IAAI,CAACt+D,KAAK,KACLnG,MAAM,CAACuD,UAAU,IAAIC,QAAQ,CAACC,eAAe,CAACC,WAAW,CAAC;AAEvE,CAAC;;ACVD,IAAMmhE,QAAQ,GAAG,SAAXA,QAAQA,CAAI3vB,QAAa,EAAE4vB,IAAY;EACzC,IAAIl0D,OAAO,GAAQ,IAAI;EACvB,OAAO;sCAAIm0D,IAAW,OAAA/0D,KAAA,CAAAg1D,IAAA,GAAAC,IAAA,MAAAA,IAAA,GAAAD,IAAA,EAAAC,IAAA;MAAXF,IAAW,CAAAE,IAAA,IAAAC,SAAA,CAAAD,IAAA;;IAClB,IAAM59C,IAAI,GAAG,SAAPA,IAAIA;MAAA,OAAS6tB,QAAQ,CAAAiwB,KAAA,SAAIJ,IAAI,CAAC;;IACpC/iC,YAAY,CAACpxB,OAAO,CAAC;IACrBA,OAAO,GAAGqxB,UAAU,CAAC5a,IAAI,EAAEy9C,IAAI,CAAC;GACnC;AACL,CAAC;;ACPD,IAAMM,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,UAAkB;EACvC,IAAMC,CAAC,GAAG9hE,QAAQ,CAACisB,aAAa,CAAC,GAAG,CAAC;EACrC61C,CAAC,CAACC,SAAS,GAAGF,UAAU;EACxB,IAAM9/D,IAAI,GAAG+/D,CAAC,CAACE,SAAS;EACxBF,CAAC,CAAChyD,MAAM,EAAE;EACV,OAAO/N,IAAI;AACf,CAAC;;ACND,4BAAe;EAAA,OAAM,CAACkgE,IAAI,CAACC,MAAM,EAAE,GAAG,CAAC,EAAExpD,QAAQ,CAAC,EAAE,CAAC,CAACypD,SAAS,CAAC,CAAC,CAAC;AAAA;;IC8L5DC,eAAe,GAAG7zD,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}