@oneuptime/common 7.0.3718 → 7.0.3815

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 (240) hide show
  1. package/Models/DatabaseModels/Alert.ts +3 -2
  2. package/Models/DatabaseModels/Incident.ts +3 -2
  3. package/Models/DatabaseModels/Index.ts +3 -0
  4. package/Models/DatabaseModels/ProjectUser.ts +335 -0
  5. package/Models/DatabaseModels/ScheduledMaintenance.ts +3 -2
  6. package/Server/API/SlackAPI.ts +127 -91
  7. package/Server/Infrastructure/Postgres/SchemaMigrations/1740597525803-MigrationName.ts +17 -0
  8. package/Server/Infrastructure/Postgres/SchemaMigrations/1740598793630-MigrationName.ts +17 -0
  9. package/Server/Infrastructure/Postgres/SchemaMigrations/1741031019972-MigrationName.ts +17 -0
  10. package/Server/Infrastructure/Postgres/SchemaMigrations/1741209339971-MigrationName.ts +101 -0
  11. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
  12. package/Server/Middleware/SlackAuthorization.ts +11 -2
  13. package/Server/Services/AccessTokenService.ts +21 -0
  14. package/Server/Services/AlertFeedService.ts +100 -2
  15. package/Server/Services/AlertInternalNoteService.ts +51 -10
  16. package/Server/Services/AlertOwnerTeamService.ts +52 -4
  17. package/Server/Services/AlertOwnerUserService.ts +54 -4
  18. package/Server/Services/AlertService.ts +295 -54
  19. package/Server/Services/AlertStateService.ts +24 -0
  20. package/Server/Services/AlertStateTimelineService.ts +38 -20
  21. package/Server/Services/IncidentFeedService.ts +101 -2
  22. package/Server/Services/IncidentInternalNoteService.ts +47 -4
  23. package/Server/Services/IncidentOwnerTeamService.ts +57 -4
  24. package/Server/Services/IncidentOwnerUserService.ts +59 -15
  25. package/Server/Services/IncidentPublicNoteService.ts +47 -7
  26. package/Server/Services/IncidentService.ts +279 -193
  27. package/Server/Services/IncidentStateService.ts +25 -0
  28. package/Server/Services/IncidentStateTimelineService.ts +38 -19
  29. package/Server/Services/MonitorStatusTimelineService.ts +7 -17
  30. package/Server/Services/OnCallDutyPolicyEscalationRuleService.ts +2 -0
  31. package/Server/Services/OnCallDutyPolicyExecutionLogService.ts +74 -7
  32. package/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.ts +63 -4
  33. package/Server/Services/OnCallDutyPolicyService.ts +13 -0
  34. package/Server/Services/ProjectUserService.ts +130 -0
  35. package/Server/Services/ScheduledMaintenanceFeedService.ts +105 -2
  36. package/Server/Services/ScheduledMaintenanceInternalNoteService.ts +61 -15
  37. package/Server/Services/ScheduledMaintenanceOwnerTeamService.ts +59 -18
  38. package/Server/Services/ScheduledMaintenanceOwnerUserService.ts +62 -30
  39. package/Server/Services/ScheduledMaintenancePublicNoteService.ts +59 -15
  40. package/Server/Services/ScheduledMaintenanceService.ts +390 -21
  41. package/Server/Services/ScheduledMaintenanceStateService.ts +122 -34
  42. package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +34 -2
  43. package/Server/Services/StatusPageSubscriberService.ts +3 -0
  44. package/Server/Services/TeamMemberService.ts +20 -0
  45. package/Server/Services/UserNotificationRuleService.ts +74 -0
  46. package/Server/Services/UserOnCallLogService.ts +1 -1
  47. package/Server/Services/UserService.ts +35 -0
  48. package/Server/Services/WorkspaceNotificationRuleService.ts +520 -149
  49. package/Server/Services/WorkspaceUserAuthTokenService.ts +23 -0
  50. package/Server/Utils/Express.ts +1 -1
  51. package/Server/Utils/StartServer.ts +6 -1
  52. package/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.ts +38 -0
  53. package/Server/Utils/Workspace/MicrosoftTeams/Messages/Alert.ts +116 -0
  54. package/Server/Utils/Workspace/MicrosoftTeams/Messages/Incident.ts +116 -0
  55. package/Server/Utils/Workspace/MicrosoftTeams/Messages/ScheduledMaintenance.ts +108 -0
  56. package/Server/Utils/Workspace/Slack/Actions/ActionTypes.ts +38 -0
  57. package/Server/Utils/Workspace/Slack/Actions/Alert.ts +697 -0
  58. package/Server/Utils/Workspace/Slack/Actions/Auth.ts +273 -0
  59. package/Server/Utils/Workspace/Slack/Actions/Incident.ts +1123 -0
  60. package/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.ts +956 -0
  61. package/Server/Utils/Workspace/Slack/Messages/Alert.ts +116 -0
  62. package/Server/Utils/Workspace/Slack/Messages/Incident.ts +116 -0
  63. package/Server/Utils/Workspace/Slack/Messages/ScheduledMaintenance.ts +108 -0
  64. package/Server/Utils/Workspace/Slack/Slack.ts +601 -18
  65. package/Server/Utils/Workspace/Slack/app-manifest.json +19 -11
  66. package/Server/Utils/Workspace/Workspace.ts +194 -1
  67. package/Server/Utils/Workspace/WorkspaceBase.ts +159 -19
  68. package/Server/Utils/Workspace/WorkspaceMessages/Alert.ts +69 -0
  69. package/Server/Utils/Workspace/WorkspaceMessages/Incident.ts +68 -0
  70. package/Server/Utils/Workspace/WorkspaceMessages/ScheduledMaintenance.ts +73 -0
  71. package/Types/Date.ts +5 -0
  72. package/Types/Icon/IconProp.ts +1 -0
  73. package/Types/Workspace/NotificationRules/NotificationRuleCondition.ts +2 -1
  74. package/Types/Workspace/NotificationRules/NotificationRuleUtil.ts +251 -121
  75. package/Types/Workspace/NotificationRules/NotificationRuleWorkspaceChannel.ts +6 -0
  76. package/Types/Workspace/WorkspaceMessagePayload.ts +80 -2
  77. package/UI/Components/ComingSoon/ComingSoon.tsx +13 -3
  78. package/UI/Components/Forms/Fields/FormField.tsx +2 -2
  79. package/UI/Components/Icon/Icon.tsx +39 -2
  80. package/UI/Components/ModelTable/BaseModelTable.tsx +16 -0
  81. package/UI/Components/Radio/Radio.tsx +11 -2
  82. package/UI/Components/Table/TableCard.tsx +2 -2
  83. package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
  84. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  85. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  86. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  87. package/build/dist/Models/DatabaseModels/ProjectUser.js +340 -0
  88. package/build/dist/Models/DatabaseModels/ProjectUser.js.map +1 -0
  89. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
  90. package/build/dist/Server/API/SlackAPI.js +93 -79
  91. package/build/dist/Server/API/SlackAPI.js.map +1 -1
  92. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1740597525803-MigrationName.js +12 -0
  93. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1740597525803-MigrationName.js.map +1 -0
  94. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1740598793630-MigrationName.js +12 -0
  95. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1740598793630-MigrationName.js.map +1 -0
  96. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1741031019972-MigrationName.js +12 -0
  97. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1741031019972-MigrationName.js.map +1 -0
  98. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1741209339971-MigrationName.js +42 -0
  99. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1741209339971-MigrationName.js.map +1 -0
  100. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
  101. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  102. package/build/dist/Server/Middleware/SlackAuthorization.js +8 -2
  103. package/build/dist/Server/Middleware/SlackAuthorization.js.map +1 -1
  104. package/build/dist/Server/Services/AccessTokenService.js +11 -0
  105. package/build/dist/Server/Services/AccessTokenService.js.map +1 -1
  106. package/build/dist/Server/Services/AlertFeedService.js +62 -2
  107. package/build/dist/Server/Services/AlertFeedService.js.map +1 -1
  108. package/build/dist/Server/Services/AlertInternalNoteService.js +41 -10
  109. package/build/dist/Server/Services/AlertInternalNoteService.js.map +1 -1
  110. package/build/dist/Server/Services/AlertOwnerTeamService.js +42 -4
  111. package/build/dist/Server/Services/AlertOwnerTeamService.js.map +1 -1
  112. package/build/dist/Server/Services/AlertOwnerUserService.js +43 -5
  113. package/build/dist/Server/Services/AlertOwnerUserService.js.map +1 -1
  114. package/build/dist/Server/Services/AlertService.js +233 -51
  115. package/build/dist/Server/Services/AlertService.js.map +1 -1
  116. package/build/dist/Server/Services/AlertStateService.js +13 -0
  117. package/build/dist/Server/Services/AlertStateService.js.map +1 -1
  118. package/build/dist/Server/Services/AlertStateTimelineService.js +32 -18
  119. package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
  120. package/build/dist/Server/Services/IncidentFeedService.js +62 -2
  121. package/build/dist/Server/Services/IncidentFeedService.js.map +1 -1
  122. package/build/dist/Server/Services/IncidentInternalNoteService.js +35 -4
  123. package/build/dist/Server/Services/IncidentInternalNoteService.js.map +1 -1
  124. package/build/dist/Server/Services/IncidentOwnerTeamService.js +42 -4
  125. package/build/dist/Server/Services/IncidentOwnerTeamService.js.map +1 -1
  126. package/build/dist/Server/Services/IncidentOwnerUserService.js +43 -15
  127. package/build/dist/Server/Services/IncidentOwnerUserService.js.map +1 -1
  128. package/build/dist/Server/Services/IncidentPublicNoteService.js +36 -7
  129. package/build/dist/Server/Services/IncidentPublicNoteService.js.map +1 -1
  130. package/build/dist/Server/Services/IncidentService.js +221 -170
  131. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  132. package/build/dist/Server/Services/IncidentStateService.js +14 -0
  133. package/build/dist/Server/Services/IncidentStateService.js.map +1 -1
  134. package/build/dist/Server/Services/IncidentStateTimelineService.js +31 -17
  135. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  136. package/build/dist/Server/Services/MonitorStatusTimelineService.js +5 -15
  137. package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
  138. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js +1 -0
  139. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js.map +1 -1
  140. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js +62 -7
  141. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js.map +1 -1
  142. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js +51 -5
  143. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js.map +1 -1
  144. package/build/dist/Server/Services/OnCallDutyPolicyService.js +6 -0
  145. package/build/dist/Server/Services/OnCallDutyPolicyService.js.map +1 -1
  146. package/build/dist/Server/Services/ProjectUserService.js +106 -0
  147. package/build/dist/Server/Services/ProjectUserService.js.map +1 -0
  148. package/build/dist/Server/Services/ScheduledMaintenanceFeedService.js +62 -2
  149. package/build/dist/Server/Services/ScheduledMaintenanceFeedService.js.map +1 -1
  150. package/build/dist/Server/Services/ScheduledMaintenanceInternalNoteService.js +38 -8
  151. package/build/dist/Server/Services/ScheduledMaintenanceInternalNoteService.js.map +1 -1
  152. package/build/dist/Server/Services/ScheduledMaintenanceOwnerTeamService.js +28 -4
  153. package/build/dist/Server/Services/ScheduledMaintenanceOwnerTeamService.js.map +1 -1
  154. package/build/dist/Server/Services/ScheduledMaintenanceOwnerUserService.js +30 -16
  155. package/build/dist/Server/Services/ScheduledMaintenanceOwnerUserService.js.map +1 -1
  156. package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js +38 -9
  157. package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js.map +1 -1
  158. package/build/dist/Server/Services/ScheduledMaintenanceService.js +279 -14
  159. package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
  160. package/build/dist/Server/Services/ScheduledMaintenanceStateService.js +52 -4
  161. package/build/dist/Server/Services/ScheduledMaintenanceStateService.js.map +1 -1
  162. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +29 -2
  163. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
  164. package/build/dist/Server/Services/StatusPageSubscriberService.js +3 -0
  165. package/build/dist/Server/Services/StatusPageSubscriberService.js.map +1 -1
  166. package/build/dist/Server/Services/TeamMemberService.js +17 -0
  167. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  168. package/build/dist/Server/Services/UserNotificationRuleService.js +52 -0
  169. package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
  170. package/build/dist/Server/Services/UserOnCallLogService.js +1 -1
  171. package/build/dist/Server/Services/UserOnCallLogService.js.map +1 -1
  172. package/build/dist/Server/Services/UserService.js +23 -0
  173. package/build/dist/Server/Services/UserService.js.map +1 -1
  174. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +316 -84
  175. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
  176. package/build/dist/Server/Services/WorkspaceUserAuthTokenService.js +18 -0
  177. package/build/dist/Server/Services/WorkspaceUserAuthTokenService.js.map +1 -1
  178. package/build/dist/Server/Utils/StartServer.js +4 -0
  179. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  180. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.js +37 -0
  181. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.js.map +1 -0
  182. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Messages/Alert.js +82 -0
  183. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Messages/Alert.js.map +1 -0
  184. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Messages/Incident.js +82 -0
  185. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Messages/Incident.js.map +1 -0
  186. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Messages/ScheduledMaintenance.js +74 -0
  187. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Messages/ScheduledMaintenance.js.map +1 -0
  188. package/build/dist/Server/Utils/Workspace/Slack/Actions/ActionTypes.js +37 -0
  189. package/build/dist/Server/Utils/Workspace/Slack/Actions/ActionTypes.js.map +1 -0
  190. package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js +425 -0
  191. package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js.map +1 -0
  192. package/build/dist/Server/Utils/Workspace/Slack/Actions/Auth.js +169 -0
  193. package/build/dist/Server/Utils/Workspace/Slack/Actions/Auth.js.map +1 -0
  194. package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js +730 -0
  195. package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js.map +1 -0
  196. package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js +599 -0
  197. package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js.map +1 -0
  198. package/build/dist/Server/Utils/Workspace/Slack/Messages/Alert.js +82 -0
  199. package/build/dist/Server/Utils/Workspace/Slack/Messages/Alert.js.map +1 -0
  200. package/build/dist/Server/Utils/Workspace/Slack/Messages/Incident.js +82 -0
  201. package/build/dist/Server/Utils/Workspace/Slack/Messages/Incident.js.map +1 -0
  202. package/build/dist/Server/Utils/Workspace/Slack/Messages/ScheduledMaintenance.js +74 -0
  203. package/build/dist/Server/Utils/Workspace/Slack/Messages/ScheduledMaintenance.js.map +1 -0
  204. package/build/dist/Server/Utils/Workspace/Slack/Slack.js +431 -14
  205. package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
  206. package/build/dist/Server/Utils/Workspace/Slack/app-manifest.json +19 -11
  207. package/build/dist/Server/Utils/Workspace/Workspace.js +126 -0
  208. package/build/dist/Server/Utils/Workspace/Workspace.js.map +1 -1
  209. package/build/dist/Server/Utils/Workspace/WorkspaceBase.js +77 -11
  210. package/build/dist/Server/Utils/Workspace/WorkspaceBase.js.map +1 -1
  211. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/Alert.js +48 -0
  212. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/Alert.js.map +1 -0
  213. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/Incident.js +47 -0
  214. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/Incident.js.map +1 -0
  215. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/ScheduledMaintenance.js +47 -0
  216. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/ScheduledMaintenance.js.map +1 -0
  217. package/build/dist/Types/Date.js +4 -0
  218. package/build/dist/Types/Date.js.map +1 -1
  219. package/build/dist/Types/Icon/IconProp.js +1 -0
  220. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  221. package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js +2 -1
  222. package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js.map +1 -1
  223. package/build/dist/Types/Workspace/NotificationRules/NotificationRuleUtil.js +214 -120
  224. package/build/dist/Types/Workspace/NotificationRules/NotificationRuleUtil.js.map +1 -1
  225. package/build/dist/Types/Workspace/NotificationRules/NotificationRuleWorkspaceChannel.js +2 -0
  226. package/build/dist/Types/Workspace/NotificationRules/NotificationRuleWorkspaceChannel.js.map +1 -0
  227. package/build/dist/UI/Components/ComingSoon/ComingSoon.js +3 -2
  228. package/build/dist/UI/Components/ComingSoon/ComingSoon.js.map +1 -1
  229. package/build/dist/UI/Components/Forms/Fields/FormField.js +2 -2
  230. package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
  231. package/build/dist/UI/Components/Icon/Icon.js +19 -2
  232. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  233. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +11 -0
  234. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  235. package/build/dist/UI/Components/Radio/Radio.js +5 -2
  236. package/build/dist/UI/Components/Radio/Radio.js.map +1 -1
  237. package/build/dist/UI/Components/Table/TableCard.js +2 -2
  238. package/build/dist/UI/Components/Table/TableCard.js.map +1 -1
  239. package/package.json +3 -2
  240. package/Server/Utils/Workspace/Slack/app-manifest.example.json +0 -198
@@ -5,7 +5,86 @@ import logger from "../../Logger";
5
5
  import BadRequestException from "../../../../Types/Exception/BadRequestException";
6
6
  import WorkspaceBase from "../WorkspaceBase";
7
7
  import WorkspaceType from "../../../../Types/Workspace/WorkspaceType";
8
+ import SlackifyMarkdown from "slackify-markdown";
9
+ import OneUptimeDate from "../../../../Types/Date";
8
10
  export default class SlackUtil extends WorkspaceBase {
11
+ static async getUsernameFromUserId(data) {
12
+ var _a, _b, _c;
13
+ logger.debug("Getting username from user ID with data:");
14
+ logger.debug(data);
15
+ const response = await API.post(URL.fromString("https://slack.com/api/users.info"), {
16
+ user: data.userId,
17
+ }, {
18
+ Authorization: `Bearer ${data.authToken}`,
19
+ ["Content-Type"]: "application/x-www-form-urlencoded",
20
+ });
21
+ logger.debug("Response from Slack API for getting user info:");
22
+ logger.debug(response);
23
+ if (response instanceof HTTPErrorResponse) {
24
+ logger.error("Error response from Slack API:");
25
+ logger.error(response);
26
+ throw response;
27
+ }
28
+ // check for ok response
29
+ if (((_a = response.jsonData) === null || _a === void 0 ? void 0 : _a["ok"]) !== true) {
30
+ logger.error("Invalid response from Slack API:");
31
+ logger.error(response.jsonData);
32
+ throw new BadRequestException("Invalid response");
33
+ }
34
+ if (!((_c = (_b = response.jsonData) === null || _b === void 0 ? void 0 : _b["user"]) === null || _c === void 0 ? void 0 : _c["name"])) {
35
+ logger.error("Invalid response from Slack API:");
36
+ logger.error(response.jsonData);
37
+ throw new Error("Invalid response");
38
+ }
39
+ const username = response.jsonData["user"]["name"];
40
+ logger.debug("Username obtained:");
41
+ logger.debug(username);
42
+ return username;
43
+ }
44
+ static async showModalToUser(data) {
45
+ var _a;
46
+ logger.debug("Showing modal to user with data:");
47
+ logger.debug(data);
48
+ const modalJson = this.getModalBlock({
49
+ payloadModalBlock: data.modalBlock,
50
+ });
51
+ logger.debug("Modal JSON generated:");
52
+ logger.debug(JSON.stringify(modalJson, null, 2));
53
+ // use view.open API to show modal
54
+ const result = await API.post(URL.fromString("https://slack.com/api/views.open"), {
55
+ trigger_id: data.triggerId,
56
+ view: modalJson,
57
+ }, {
58
+ Authorization: `Bearer ${data.authToken}`,
59
+ ["Content-Type"]: "application/json",
60
+ });
61
+ if (result instanceof HTTPErrorResponse) {
62
+ logger.error("Error response from Slack API:");
63
+ logger.error(result);
64
+ throw result;
65
+ }
66
+ if (((_a = result.jsonData) === null || _a === void 0 ? void 0 : _a["ok"]) !== true) {
67
+ logger.error("Invalid response from Slack API:");
68
+ logger.error(result.jsonData);
69
+ throw new BadRequestException("Invalid response");
70
+ }
71
+ logger.debug("Modal shown to user successfully.");
72
+ }
73
+ static async sendDirectMessageToUser(data) {
74
+ // Send direct message to user
75
+ const blocks = this.getBlocksFromWorkspaceMessagePayload({
76
+ messageBlocks: data.messageBlocks,
77
+ });
78
+ await this.sendPayloadBlocksToChannel({
79
+ authToken: data.authToken,
80
+ workspaceChannel: {
81
+ id: data.workspaceUserId,
82
+ name: "",
83
+ workspaceType: WorkspaceType.Slack,
84
+ },
85
+ blocks: blocks,
86
+ });
87
+ }
9
88
  static async joinChannel(data) {
10
89
  var _a;
11
90
  logger.debug("Joining channel with data:");
@@ -34,6 +113,16 @@ export default class SlackUtil extends WorkspaceBase {
34
113
  }
35
114
  static async inviteUserToChannelByChannelId(data) {
36
115
  var _a;
116
+ // check if already in channel.
117
+ const isUserInChannel = await this.isUserInChannel({
118
+ authToken: data.authToken,
119
+ channelId: data.channelId,
120
+ userId: data.workspaceUserId,
121
+ });
122
+ if (isUserInChannel) {
123
+ logger.debug("User already in channel.");
124
+ return;
125
+ }
37
126
  logger.debug("Inviting user to channel with data:");
38
127
  logger.debug(data);
39
128
  const response = await API.post(URL.fromString("https://slack.com/api/conversations.invite"), {
@@ -196,6 +285,43 @@ export default class SlackUtil extends WorkspaceBase {
196
285
  logger.debug(channels);
197
286
  return channels;
198
287
  }
288
+ static getDividerBlock() {
289
+ return {
290
+ type: "divider",
291
+ };
292
+ }
293
+ static getValuesFromView(data) {
294
+ var _a, _b;
295
+ logger.debug("Getting values from view with data:");
296
+ logger.debug(JSON.stringify(data, null, 2));
297
+ const slackView = data.view;
298
+ const values = {};
299
+ if (!slackView["state"] || !slackView["state"]["values"]) {
300
+ return {};
301
+ }
302
+ for (const valueId in slackView["state"]["values"]) {
303
+ for (const blockId in slackView["state"]["values"][valueId]) {
304
+ const valueObject = slackView["state"]["values"][valueId];
305
+ const value = valueObject[blockId];
306
+ values[blockId] = value["value"];
307
+ if ((_a = value["selected_option"]) === null || _a === void 0 ? void 0 : _a["value"]) {
308
+ values[blockId] = (_b = value["selected_option"]) === null || _b === void 0 ? void 0 : _b["value"];
309
+ }
310
+ if (Array.isArray(value["selected_options"])) {
311
+ values[blockId] = value["selected_options"].map((option) => {
312
+ return option["value"];
313
+ });
314
+ }
315
+ // if date picker
316
+ if (value["selected_date_time"]) {
317
+ values[blockId] = OneUptimeDate.fromUnixTimestamp(value["selected_date_time"]);
318
+ }
319
+ }
320
+ }
321
+ logger.debug("Values obtained from view:");
322
+ logger.debug(values);
323
+ return values;
324
+ }
199
325
  static async sendMessage(data) {
200
326
  logger.debug("Sending message to Slack with data:");
201
327
  logger.debug(data);
@@ -207,7 +333,7 @@ export default class SlackUtil extends WorkspaceBase {
207
333
  });
208
334
  logger.debug("Existing workspace channels:");
209
335
  logger.debug(existingWorkspaceChannels);
210
- const channelIdsToPostTo = [];
336
+ const workspaceChannelsToPostTo = [];
211
337
  for (let channelName of data.workspaceMessagePayload.channelNames) {
212
338
  if (channelName && channelName.startsWith("#")) {
213
339
  // trim # from channel name
@@ -218,49 +344,67 @@ export default class SlackUtil extends WorkspaceBase {
218
344
  channel = existingWorkspaceChannels[channelName];
219
345
  }
220
346
  if (channel) {
221
- channelIdsToPostTo.push(channel.id);
347
+ workspaceChannelsToPostTo.push(channel);
222
348
  }
223
349
  else {
224
350
  logger.debug(`Channel ${channelName} does not exist.`);
225
351
  }
226
352
  }
353
+ // add channel ids.
354
+ for (const channelId of data.workspaceMessagePayload.channelIds) {
355
+ const channel = {
356
+ id: channelId,
357
+ name: "",
358
+ workspaceType: WorkspaceType.Slack,
359
+ };
360
+ workspaceChannelsToPostTo.push(channel);
361
+ }
227
362
  logger.debug("Channel IDs to post to:");
228
- logger.debug(channelIdsToPostTo);
229
- for (const channelId of channelIdsToPostTo) {
363
+ logger.debug(workspaceChannelsToPostTo);
364
+ const workspaspaceMessageResponse = {
365
+ threads: [],
366
+ workspaceType: WorkspaceType.Slack,
367
+ };
368
+ for (const channel of workspaceChannelsToPostTo) {
230
369
  try {
231
370
  // check if the user is in the channel.
232
371
  const isUserInChannel = await this.isUserInChannel({
233
372
  authToken: data.authToken,
234
- channelId: channelId,
373
+ channelId: channel.id,
235
374
  userId: data.userId,
236
375
  });
237
376
  if (!isUserInChannel) {
238
377
  // add user to the channel
239
378
  await this.joinChannel({
240
379
  authToken: data.authToken,
241
- channelId: channelId,
380
+ channelId: channel.id,
242
381
  });
243
382
  }
244
- await this.sendPayloadBlocksToChannel({
383
+ const thread = await this.sendPayloadBlocksToChannel({
245
384
  authToken: data.authToken,
246
- channelId: channelId,
385
+ workspaceChannel: channel,
247
386
  blocks: blocks,
248
387
  });
249
- logger.debug(`Message sent to channel ID ${channelId} successfully.`);
388
+ workspaspaceMessageResponse.threads.push(thread);
389
+ logger.debug(`Message sent to channel ID ${channel.id} successfully.`);
250
390
  }
251
391
  catch (e) {
252
- logger.error(`Error sending message to channel ID ${channelId}:`);
392
+ logger.error(`Error sending message to channel ID ${channel.id}:`);
253
393
  logger.error(e);
254
394
  }
255
395
  }
396
+ logger.debug("Message sent successfully.");
397
+ logger.debug(workspaspaceMessageResponse);
398
+ return workspaspaceMessageResponse;
256
399
  }
257
400
  static async sendPayloadBlocksToChannel(data) {
258
401
  var _a;
259
402
  logger.debug("Sending payload blocks to channel with data:");
260
403
  logger.debug(JSON.stringify(data, null, 2));
261
404
  const response = await API.post(URL.fromString("https://slack.com/api/chat.postMessage"), {
262
- channel: data.channelId,
405
+ channel: data.workspaceChannel.id,
263
406
  blocks: data.blocks,
407
+ unfurl_links: false,
264
408
  }, {
265
409
  Authorization: `Bearer ${data.authToken}`,
266
410
  ["Content-Type"]: "application/json",
@@ -278,9 +422,31 @@ export default class SlackUtil extends WorkspaceBase {
278
422
  throw new BadRequestException("Invalid response");
279
423
  }
280
424
  logger.debug("Payload blocks sent to channel successfully.");
425
+ return {
426
+ channel: data.workspaceChannel,
427
+ threadId: response.jsonData["ts"],
428
+ };
429
+ }
430
+ static getButtonsBlock(data) {
431
+ logger.debug("Getting buttons block with data:");
432
+ logger.debug(data);
433
+ const buttonsBlock = {
434
+ type: "actions",
435
+ elements: data.payloadButtonsBlock.buttons.map((button) => {
436
+ return this.getButtonBlock({ payloadButtonBlock: button });
437
+ }),
438
+ };
439
+ logger.debug("Buttons block generated:");
440
+ logger.debug(buttonsBlock);
441
+ return buttonsBlock;
281
442
  }
282
443
  static async createChannel(data) {
283
444
  var _a, _b, _c, _d, _e;
445
+ if (data.channelName && data.channelName.startsWith("#")) {
446
+ data.channelName = data.channelName.substring(1);
447
+ }
448
+ // lower case channel name
449
+ data.channelName = data.channelName.toLowerCase();
284
450
  logger.debug("Creating channel with data:");
285
451
  logger.debug(data);
286
452
  const response = await API.post(URL.fromString("https://slack.com/api/conversations.create"), {
@@ -331,6 +497,224 @@ export default class SlackUtil extends WorkspaceBase {
331
497
  logger.debug(headerBlock);
332
498
  return headerBlock;
333
499
  }
500
+ static getCheckboxBlock(data) {
501
+ logger.debug("Getting checkbox block with data:");
502
+ logger.debug(data);
503
+ const checkboxBlock = {
504
+ type: "input",
505
+ element: {
506
+ type: "checkboxes",
507
+ action_id: data.payloadCheckboxBlock.blockId,
508
+ options: [
509
+ {
510
+ text: {
511
+ type: "plain_text",
512
+ text: data.payloadCheckboxBlock.label,
513
+ },
514
+ value: "value",
515
+ },
516
+ ],
517
+ initial_options: data.payloadCheckboxBlock.initialValue
518
+ ? [
519
+ {
520
+ text: {
521
+ type: "plain_text",
522
+ text: data.payloadCheckboxBlock.label,
523
+ },
524
+ value: "value",
525
+ },
526
+ ]
527
+ : undefined,
528
+ },
529
+ label: {
530
+ type: "plain_text",
531
+ text: data.payloadCheckboxBlock.label,
532
+ },
533
+ };
534
+ // if description then add hint.
535
+ if (data.payloadCheckboxBlock.description) {
536
+ checkboxBlock["hint"] = {
537
+ type: "plain_text",
538
+ text: data.payloadCheckboxBlock.description,
539
+ };
540
+ }
541
+ logger.debug("Checkbox block generated:");
542
+ logger.debug(checkboxBlock);
543
+ return checkboxBlock;
544
+ }
545
+ static getDateTimePickerBlock(data) {
546
+ logger.debug("Getting date time picker block with data:");
547
+ logger.debug(data);
548
+ const dateTimePickerBlock = {
549
+ type: "input",
550
+ element: {
551
+ type: "datetimepicker",
552
+ action_id: data.payloadDateTimePickerBlock.blockId,
553
+ initial_date: data.payloadDateTimePickerBlock.initialValue,
554
+ },
555
+ label: {
556
+ type: "plain_text",
557
+ text: data.payloadDateTimePickerBlock.label,
558
+ },
559
+ };
560
+ logger.debug("Date time picker block generated:");
561
+ logger.debug(dateTimePickerBlock);
562
+ return dateTimePickerBlock;
563
+ }
564
+ static getTextAreaBlock(data) {
565
+ logger.debug("Getting text area block with data:");
566
+ logger.debug(data);
567
+ const optional = data.payloadTextAreaBlock.optional || false;
568
+ const textAreaBlock = {
569
+ type: "input",
570
+ optional: optional,
571
+ element: {
572
+ type: "plain_text_input",
573
+ multiline: true,
574
+ action_id: data.payloadTextAreaBlock.blockId,
575
+ placeholder: {
576
+ type: "plain_text",
577
+ text: data.payloadTextAreaBlock.placeholder,
578
+ },
579
+ initial_value: data.payloadTextAreaBlock.initialValue,
580
+ },
581
+ label: {
582
+ type: "plain_text",
583
+ text: data.payloadTextAreaBlock.label,
584
+ },
585
+ };
586
+ // if description then add hint.
587
+ if (data.payloadTextAreaBlock.description) {
588
+ textAreaBlock["hint"] = {
589
+ type: "plain_text",
590
+ text: data.payloadTextAreaBlock.description,
591
+ };
592
+ }
593
+ logger.debug("Text area block generated:");
594
+ logger.debug(textAreaBlock);
595
+ return textAreaBlock;
596
+ }
597
+ static getTextBoxBlock(data) {
598
+ logger.debug("Getting text box block with data:");
599
+ logger.debug(data);
600
+ const optional = data.payloadTextBoxBlock.optional || false;
601
+ const textBoxBlock = {
602
+ type: "input",
603
+ optional: optional,
604
+ element: {
605
+ type: "plain_text_input",
606
+ action_id: data.payloadTextBoxBlock.blockId,
607
+ placeholder: {
608
+ type: "plain_text",
609
+ text: data.payloadTextBoxBlock.placeholder,
610
+ },
611
+ initial_value: data.payloadTextBoxBlock.initialValue,
612
+ },
613
+ label: {
614
+ type: "plain_text",
615
+ text: data.payloadTextBoxBlock.label,
616
+ },
617
+ };
618
+ // if description then add hint.
619
+ if (data.payloadTextBoxBlock.description) {
620
+ textBoxBlock["hint"] = {
621
+ type: "plain_text",
622
+ text: data.payloadTextBoxBlock.description,
623
+ };
624
+ }
625
+ logger.debug("Text box block generated:");
626
+ logger.debug(textBoxBlock);
627
+ return textBoxBlock;
628
+ }
629
+ static getImageBlock(data) {
630
+ logger.debug("Getting image block with data:");
631
+ logger.debug(data);
632
+ const imageBlock = {
633
+ type: "image",
634
+ image_url: data.payloadImageBlock.imageUrl.toString(),
635
+ alt_text: data.payloadImageBlock.altText,
636
+ };
637
+ logger.debug("Image block generated:");
638
+ logger.debug(imageBlock);
639
+ return imageBlock;
640
+ }
641
+ static getDropdownBlock(data) {
642
+ logger.debug("Getting dropdown block with data:");
643
+ logger.debug(data);
644
+ const optional = data.payloadDropdownBlock.optional || false;
645
+ const isMiltiSelect = data.payloadDropdownBlock.multiSelect || false;
646
+ const dropdownBlock = {
647
+ type: "input",
648
+ optional: optional,
649
+ element: {
650
+ type: isMiltiSelect ? "multi_static_select" : "static_select",
651
+ action_id: data.payloadDropdownBlock.blockId,
652
+ placeholder: {
653
+ type: "plain_text",
654
+ text: data.payloadDropdownBlock.placeholder,
655
+ },
656
+ options: data.payloadDropdownBlock.options.map((option) => {
657
+ return {
658
+ text: {
659
+ type: "plain_text",
660
+ text: option.label,
661
+ },
662
+ value: option.value,
663
+ };
664
+ }),
665
+ initial_option: data.payloadDropdownBlock.initialValue
666
+ ? {
667
+ text: {
668
+ type: "plain_text",
669
+ text: data.payloadDropdownBlock.initialValue,
670
+ },
671
+ value: data.payloadDropdownBlock.initialValue,
672
+ }
673
+ : undefined,
674
+ },
675
+ label: {
676
+ type: "plain_text",
677
+ text: data.payloadDropdownBlock.label,
678
+ },
679
+ };
680
+ // if description then add hint.
681
+ if (data.payloadDropdownBlock.description) {
682
+ dropdownBlock["hint"] = {
683
+ type: "plain_text",
684
+ text: data.payloadDropdownBlock.description,
685
+ };
686
+ }
687
+ logger.debug("Dropdown block generated:");
688
+ logger.debug(dropdownBlock);
689
+ return dropdownBlock;
690
+ }
691
+ static getModalBlock(data) {
692
+ logger.debug("Getting modal block with data:");
693
+ logger.debug(data);
694
+ const modalBlock = {
695
+ type: "modal",
696
+ title: {
697
+ type: "plain_text",
698
+ text: data.payloadModalBlock.title,
699
+ },
700
+ callback_id: data.payloadModalBlock.actionId,
701
+ private_metadata: data.payloadModalBlock.actionValue,
702
+ submit: {
703
+ type: "plain_text",
704
+ text: data.payloadModalBlock.submitButtonTitle,
705
+ },
706
+ close: {
707
+ type: "plain_text",
708
+ text: data.payloadModalBlock.cancelButtonTitle,
709
+ },
710
+ blocks: this.getBlocksFromWorkspaceMessagePayload({
711
+ messageBlocks: data.payloadModalBlock.blocks,
712
+ }),
713
+ };
714
+ logger.debug("Modal block generated:");
715
+ logger.debug(modalBlock);
716
+ return modalBlock;
717
+ }
334
718
  static getMarkdownBlock(data) {
335
719
  logger.debug("Getting markdown block with data:");
336
720
  logger.debug(data);
@@ -338,13 +722,42 @@ export default class SlackUtil extends WorkspaceBase {
338
722
  type: "section",
339
723
  text: {
340
724
  type: "mrkdwn",
341
- text: data.payloadMarkdownBlock.text,
725
+ text: data.payloadMarkdownBlock.text
726
+ ? SlackifyMarkdown(data.payloadMarkdownBlock.text)
727
+ : "",
342
728
  },
343
729
  };
344
730
  logger.debug("Markdown block generated:");
345
731
  logger.debug(markdownBlock);
346
732
  return markdownBlock;
347
733
  }
734
+ static async isUserInDirectMessageChannel(data) {
735
+ var _a, _b;
736
+ // check of the user id is in the direct message channel id
737
+ const response = await API.post(URL.fromString("https://slack.com/api/conversations.info"), {
738
+ channel: data.directMessageChannelId,
739
+ }, {
740
+ Authorization: `Bearer ${data.authToken}`,
741
+ ["Content-Type"]: "application/x-www-form-urlencoded",
742
+ });
743
+ if (response instanceof HTTPErrorResponse) {
744
+ logger.error("Error response from Slack API:");
745
+ logger.error(response);
746
+ throw response;
747
+ }
748
+ // check for ok response
749
+ if (((_a = response.jsonData) === null || _a === void 0 ? void 0 : _a["ok"]) !== true) {
750
+ logger.error("Invalid response from Slack API:");
751
+ logger.error(response.jsonData);
752
+ throw new BadRequestException("Invalid response");
753
+ }
754
+ // check if the user is in the channel
755
+ const user = response.jsonData["channel"]["user"];
756
+ if (((_b = user === null || user === void 0 ? void 0 : user["user_id"]) === null || _b === void 0 ? void 0 : _b.toString()) === data.userId.toString()) {
757
+ return true;
758
+ }
759
+ return false;
760
+ }
348
761
  static async isUserInChannel(data) {
349
762
  var _a, _b;
350
763
  const members = [];
@@ -395,9 +808,13 @@ export default class SlackUtil extends WorkspaceBase {
395
808
  text: {
396
809
  type: "plain_text",
397
810
  text: data.payloadButtonBlock.title,
811
+ emoji: true,
398
812
  },
399
- value: data.payloadButtonBlock.title,
400
- action_id: data.payloadButtonBlock.title,
813
+ value: data.payloadButtonBlock.value,
814
+ action_id: data.payloadButtonBlock.actionId,
815
+ url: data.payloadButtonBlock.url
816
+ ? data.payloadButtonBlock.url.toString()
817
+ : undefined,
401
818
  };
402
819
  logger.debug("Button block generated:");
403
820
  logger.debug(buttonBlock);
@@ -1 +1 @@
1
- {"version":3,"file":"Slack.js","sourceRoot":"","sources":["../../../../../../Server/Utils/Workspace/Slack/Slack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Slack.js","sourceRoot":"","sources":["../../../../../../Server/Utils/Workspace/Slack/Slack.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,oCAAoC,CAAC;AAEnE,OAAO,GAAG,MAAM,sBAAsB,CAAC;AAEvC,OAAO,GAAG,MAAM,kBAAkB,CAAC;AAenC,OAAO,MAAM,MAAM,cAAc,CAAC;AAElC,OAAO,mBAAmB,MAAM,iDAAiD,CAAC;AAClF,OAAO,aAIN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,aAAa,MAAM,2CAA2C,CAAC;AACtE,OAAO,gBAAgB,MAAM,mBAAmB,CAAC;AAEjD,OAAO,aAAa,MAAM,wBAAwB,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,aAAa;IAC3C,MAAM,CAAU,KAAK,CAAC,qBAAqB,CAAC,IAGlD;;QACC,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,QAAQ,GACZ,MAAM,GAAG,CAAC,IAAI,CACZ,GAAG,CAAC,UAAU,CAAC,kCAAkC,CAAC,EAClD;YACE,IAAI,EAAE,IAAI,CAAC,MAAM;SAClB,EACD;YACE,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;YACzC,CAAC,cAAc,CAAC,EAAE,mCAAmC;SACtD,CACF,CAAC;QAEJ,MAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAC/D,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEvB,IAAI,QAAQ,YAAY,iBAAiB,EAAE,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACvB,MAAM,QAAQ,CAAC;QACjB,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAA,MAAC,QAAQ,CAAC,QAAuB,0CAAG,IAAI,CAAC,MAAK,IAAI,EAAE,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC;QAED,IACE,CAAC,CAAA,MAAC,MAAC,QAAQ,CAAC,QAAuB,0CAAG,MAAM,CAAgB,0CAAG,MAAM,CAAC,CAAA,EACtE,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,QAAQ,GACX,QAAQ,CAAC,QAAuB,CAAC,MAAM,CACzC,CAAC,MAAM,CAAW,CAAC;QAEpB,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,MAAM,CAAU,KAAK,CAAC,eAAe,CAAC,IAI5C;;QACC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,SAAS,GAAe,IAAI,CAAC,aAAa,CAAC;YAC/C,iBAAiB,EAAE,IAAI,CAAC,UAAU;SACnC,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjD,kCAAkC;QAClC,MAAM,MAAM,GAAiD,MAAM,GAAG,CAAC,IAAI,CACzE,GAAG,CAAC,UAAU,CAAC,kCAAkC,CAAC,EAClD;YACE,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,IAAI,EAAE,SAAS;SAChB,EACD;YACE,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;YACzC,CAAC,cAAc,CAAC,EAAE,kBAAkB;SACrC,CACF,CAAC;QAEF,IAAI,MAAM,YAAY,iBAAiB,EAAE,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACrB,MAAM,MAAM,CAAC;QACf,CAAC;QAED,IAAI,CAAA,MAAC,MAAM,CAAC,QAAuB,0CAAG,IAAI,CAAC,MAAK,IAAI,EAAE,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9B,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACpD,CAAC;IAEM,MAAM,CAAU,KAAK,CAAC,uBAAuB,CAAC,IAIpD;QACC,8BAA8B;QAE9B,MAAM,MAAM,GAAsB,IAAI,CAAC,oCAAoC,CACzE;YACE,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CACF,CAAC;QAEF,MAAM,IAAI,CAAC,0BAA0B,CAAC;YACpC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,gBAAgB,EAAE;gBAChB,EAAE,EAAE,IAAI,CAAC,eAAe;gBACxB,IAAI,EAAE,EAAE;gBACR,aAAa,EAAE,aAAa,CAAC,KAAK;aACnC;YACD,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAU,KAAK,CAAC,WAAW,CAAC,IAGxC;;QACC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,eAAe;QACf,MAAM,QAAQ,GACZ,MAAM,GAAG,CAAC,IAAI,CACZ,GAAG,CAAC,UAAU,CAAC,0CAA0C,CAAC,EAC1D;YACE,OAAO,EAAE,IAAI,CAAC,SAAS;SACxB,EACD;YACE,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;YACzC,CAAC,cAAc,CAAC,EAAE,mCAAmC;SACtD,CACF,CAAC;QAEJ,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC7D,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEvB,IAAI,QAAQ,YAAY,iBAAiB,EAAE,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACvB,MAAM,QAAQ,CAAC;QACjB,CAAC;QAED,IAAI,CAAA,MAAC,QAAQ,CAAC,QAAuB,0CAAG,IAAI,CAAC,MAAK,IAAI,EAAE,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAEM,MAAM,CAAU,KAAK,CAAC,8BAA8B,CAAC,IAI3D;;QACC,+BAA+B;QAC/B,MAAM,eAAe,GAAY,MAAM,IAAI,CAAC,eAAe,CAAC;YAC1D,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,eAAe;SAC7B,CAAC,CAAC;QAEH,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,QAAQ,GACZ,MAAM,GAAG,CAAC,IAAI,CACZ,GAAG,CAAC,UAAU,CAAC,4CAA4C,CAAC,EAC5D;YACE,OAAO,EAAE,IAAI,CAAC,SAAS;YACvB,KAAK,EAAE,IAAI,CAAC,eAAe;SAC5B,EACD;YACE,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;YACzC,CAAC,cAAc,CAAC,EAAE,mCAAmC;SACtD,CACF,CAAC;QAEJ,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEvB,IAAI,QAAQ,YAAY,iBAAiB,EAAE,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACvB,MAAM,QAAQ,CAAC;QACjB,CAAC;QAED,IAAI,CAAA,MAAC,QAAQ,CAAC,QAAuB,0CAAG,IAAI,CAAC,MAAK,IAAI,EAAE,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACxD,CAAC;IAEM,MAAM,CAAU,KAAK,CAAC,gCAAgC,CAAC,IAI7D;QACC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzD,2BAA2B;YAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,SAAS,GAAW,CACxB,MAAM,IAAI,CAAC,kCAAkC,CAAC;YAC5C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CACH,CAAC,EAAE,CAAC;QAEL,OAAO,IAAI,CAAC,8BAA8B,CAAC;YACzC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,SAAS;YACpB,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAU,KAAK,CAAC,4BAA4B,CAAC,IAGzD;QACC,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAClE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,iBAAiB,GAA4B,EAAE,CAAC;QACtD,MAAM,yBAAyB,GAC7B,MAAM,IAAI,CAAC,uBAAuB,CAAC;YACjC,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEL,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAExC,KAAK,IAAI,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1C,2CAA2C;YAC3C,IAAI,WAAW,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC;YAED,IAAI,yBAAyB,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3C,MAAM,CAAC,KAAK,CAAC,WAAW,WAAW,kBAAkB,CAAC,CAAC;gBACvD,iBAAiB,CAAC,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAE,CAAC,CAAC;gBAChE,SAAS;YACX,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,WAAW,WAAW,oCAAoC,CAAC,CAAC;YACzE,MAAM,OAAO,GAAqB,MAAM,IAAI,CAAC,aAAa,CAAC;gBACzD,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW,EAAE,WAAW;aACzB,CAAC,CAAC;YAEH,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,KAAK,CAAC,WAAW,WAAW,wBAAwB,CAAC,CAAC;gBAC7D,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAChC,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAU,KAAK,CAAC,kCAAkC,CAAC,IAG/D;QACC,MAAM,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC1E,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,uBAAuB,CAAC;YACjC,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEL,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAE,CAAC,EAAE,CAAC,CAAC;QAE7C,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAE,CAAC;IACrC,CAAC;IAEM,MAAM,CAAU,KAAK,CAAC,gCAAgC,CAAC,IAG7D;;QACC,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACrE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,QAAQ,GACZ,MAAM,GAAG,CAAC,IAAI,CACZ,GAAG,CAAC,UAAU,CAAC,0CAA0C,CAAC,EAC1D;YACE,OAAO,EAAE,IAAI,CAAC,SAAS;SACxB,EACD;YACE,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;YACzC,CAAC,cAAc,CAAC,EAAE,mCAAmC;SACtD,CACF,CAAC;QAEJ,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAClE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEvB,IAAI,QAAQ,YAAY,iBAAiB,EAAE,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACvB,MAAM,QAAQ,CAAC;QACjB,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAA,MAAC,QAAQ,CAAC,QAAuB,0CAAG,IAAI,CAAC,MAAK,IAAI,EAAE,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC;QAED,IACE,CAAC,CAAA,MAAC,MAAC,QAAQ,CAAC,QAAuB,0CAAG,SAAS,CAAgB,0CAAG,MAAM,CAAC,CAAA,EACzE,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,OAAO,GAAqB;YAChC,IAAI,EAAI,QAAQ,CAAC,QAAuB,CAAC,SAAS,CAAgB,CAChE,MAAM,CACG;YACX,EAAE,EAAE,IAAI,CAAC,SAAS;YAClB,aAAa,EAAE,aAAa,CAAC,KAAK;SACnC,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,MAAM,CAAU,KAAK,CAAC,uBAAuB,CAAC,IAEpD;;QACC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,QAAQ,GACZ,MAAM,GAAG,CAAC,IAAI,CACZ,GAAG,CAAC,UAAU,CAAC,0CAA0C,CAAC,EAC1D,EAAE,EACF;YACE,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;YACzC,CAAC,cAAc,CAAC,EAAE,mCAAmC;SACtD,CACF,CAAC;QAEJ,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAClE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEvB,IAAI,QAAQ,YAAY,iBAAiB,EAAE,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACvB,MAAM,QAAQ,CAAC;QACjB,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAA,MAAC,QAAQ,CAAC,QAAuB,0CAAG,IAAI,CAAC,MAAK,IAAI,EAAE,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,QAAQ,GAAiC,EAAE,CAAC;QAElD,KAAK,MAAM,OAAO,IAAK,QAAQ,CAAC,QAAuB,CACrD,UAAU,CACU,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvC,SAAS;YACX,CAAC;YAED,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG;gBACrC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAW;gBAC3B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAW;gBAC/B,aAAa,EAAE,aAAa,CAAC,KAAK;aACnC,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,MAAM,CAAU,eAAe;QACpC,OAAO;YACL,IAAI,EAAE,SAAS;SAChB,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,IAE/B;;QACC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE5C,MAAM,SAAS,GAAe,IAAI,CAAC,IAAI,CAAC;QACxC,MAAM,MAAM,GACV,EAAE,CAAC;QAEL,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAE,SAAS,CAAC,OAAO,CAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,KAAK,MAAM,OAAO,IAAK,SAAS,CAAC,OAAO,CAAgB,CACtD,QAAQ,CACK,EAAE,CAAC;YAChB,KAAK,MAAM,OAAO,IACf,SAAS,CAAC,OAAO,CAAgB,CAAC,QAAQ,CAC5C,CAAC,OAAO,CAAe,EAAE,CAAC;gBACzB,MAAM,WAAW,GACd,SAAS,CAAC,OAAO,CAAgB,CAAC,QAAQ,CAC5C,CAAC,OAAO,CAAe,CAAC;gBACzB,MAAM,KAAK,GAAe,WAAW,CAAC,OAAO,CAAe,CAAC;gBAC7D,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAoB,CAAC;gBAEpD,IAAI,MAAC,KAAK,CAAC,iBAAiB,CAAgB,0CAAG,OAAO,CAAC,EAAE,CAAC;oBACxD,MAAM,CAAC,OAAO,CAAC,GAAG,MAAC,KAAK,CAAC,iBAAiB,CAAgB,0CACxD,OAAO,CACE,CAAC;gBACd,CAAC;gBAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;oBAC7C,MAAM,CAAC,OAAO,CAAC,GACb,KAAK,CAAC,kBAAkB,CACzB,CAAC,GAAG,CAAC,CAAC,MAAkB,EAAE,EAAE;wBAC3B,OAAO,MAAM,CAAC,OAAO,CAAoB,CAAC;oBAC5C,CAAC,CAAC,CAAC;gBACL,CAAC;gBAED,iBAAiB;gBACjB,IAAI,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;oBAChC,MAAM,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,iBAAiB,CAC/C,KAAK,CAAC,oBAAoB,CAAW,CACtC,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAErB,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,MAAM,CAAU,KAAK,CAAC,WAAW,CAAC,IAIxC;QACC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,MAAM,GAAsB,IAAI,CAAC,oCAAoC,CACzE,IAAI,CAAC,uBAAuB,CAC7B,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACjE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAErB,MAAM,yBAAyB,GAC7B,MAAM,IAAI,CAAC,uBAAuB,CAAC;YACjC,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEL,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAExC,MAAM,yBAAyB,GAA4B,EAAE,CAAC;QAE9D,KAAK,IAAI,WAAW,IAAI,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,CAAC;YAClE,IAAI,WAAW,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,2BAA2B;gBAC3B,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC;YAED,IAAI,OAAO,GAA4B,IAAI,CAAC;YAE5C,IAAI,yBAAyB,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3C,OAAO,GAAG,yBAAyB,CAAC,WAAW,CAAE,CAAC;YACpD,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,WAAW,WAAW,kBAAkB,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,CAAC;YAChE,MAAM,OAAO,GAAqB;gBAChC,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,EAAE;gBACR,aAAa,EAAE,aAAa,CAAC,KAAK;aACnC,CAAC;YAEF,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAExC,MAAM,2BAA2B,GAAiC;YAChE,OAAO,EAAE,EAAE;YACX,aAAa,EAAE,aAAa,CAAC,KAAK;SACnC,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,yBAAyB,EAAE,CAAC;YAChD,IAAI,CAAC;gBACH,uCAAuC;gBACvC,MAAM,eAAe,GAAY,MAAM,IAAI,CAAC,eAAe,CAAC;oBAC1D,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC,CAAC;gBAEH,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,0BAA0B;oBAC1B,MAAM,IAAI,CAAC,WAAW,CAAC;wBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,SAAS,EAAE,OAAO,CAAC,EAAE;qBACtB,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,MAAM,GAAoB,MAAM,IAAI,CAAC,0BAA0B,CAAC;oBACpE,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,gBAAgB,EAAE,OAAO;oBACzB,MAAM,EAAE,MAAM;iBACf,CAAC,CAAC;gBAEH,2BAA2B,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAEjD,MAAM,CAAC,KAAK,CAAC,8BAA8B,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC;YACzE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,KAAK,CAAC,uCAAuC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;gBACnE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAE1C,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAEM,MAAM,CAAU,KAAK,CAAC,0BAA0B,CAAC,IAIvD;;QACC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC7D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE5C,MAAM,QAAQ,GACZ,MAAM,GAAG,CAAC,IAAI,CACZ,GAAG,CAAC,UAAU,CAAC,wCAAwC,CAAC,EACxD;YACE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACjC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,KAAK;SACpB,EACD;YACE,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;YACzC,CAAC,cAAc,CAAC,EAAE,kBAAkB;SACrC,CACF,CAAC;QAEJ,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC7D,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEvB,IAAI,QAAQ,YAAY,iBAAiB,EAAE,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACvB,MAAM,QAAQ,CAAC;QACjB,CAAC;QAED,IAAI,CAAA,MAAC,QAAQ,CAAC,QAAuB,0CAAG,IAAI,CAAC,MAAK,IAAI,EAAE,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAE7D,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,gBAAgB;YAC9B,QAAQ,EAAG,QAAQ,CAAC,QAAuB,CAAC,IAAI,CAAW;SAC5D,CAAC;IACJ,CAAC;IAEM,MAAM,CAAU,eAAe,CAAC,IAEtC;QACC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,YAAY,GAAe;YAC/B,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAC5C,CAAC,MAAqC,EAAE,EAAE;gBACxC,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7D,CAAC,CACF;SACF,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3B,OAAO,YAAY,CAAC;IACtB,CAAC;IAEM,MAAM,CAAU,KAAK,CAAC,aAAa,CAAC,IAG1C;;QACC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAElD,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,QAAQ,GACZ,MAAM,GAAG,CAAC,IAAI,CACZ,GAAG,CAAC,UAAU,CAAC,4CAA4C,CAAC,EAC5D;YACE,IAAI,EAAE,IAAI,CAAC,WAAW;SACvB,EACD;YACE,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;YACzC,CAAC,cAAc,CAAC,EAAE,mCAAmC;SACtD,CACF,CAAC;QAEJ,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC9D,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEvB,IAAI,QAAQ,YAAY,iBAAiB,EAAE,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACvB,MAAM,QAAQ,CAAC;QACjB,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAA,MAAC,QAAQ,CAAC,QAAuB,0CAAG,IAAI,CAAC,MAAK,IAAI,EAAE,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC;QAED,IACE,CAAC,CAAA,MAAC,MAAC,QAAQ,CAAC,QAAuB,0CAAG,SAAS,CAAgB,0CAAG,IAAI,CAAC,CAAA;YACvE,CAAC,CAAA,MAAC,MAAC,QAAQ,CAAC,QAAuB,0CAAG,SAAS,CAAgB,0CAAG,MAAM,CAAC,CAAA,EACzE,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,OAAO,GAAqB;YAChC,EAAE,EAAI,QAAQ,CAAC,QAAuB,CAAC,SAAS,CAAgB,CAC9D,IAAI,CACK;YACX,IAAI,EAAI,QAAQ,CAAC,QAAuB,CAAC,SAAS,CAAgB,CAChE,MAAM,CACG;YACX,aAAa,EAAE,aAAa,CAAC,KAAK;SACnC,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,MAAM,CAAU,cAAc,CAAC,IAErC;QACC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,WAAW,GAAe;YAC9B,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE;gBACJ,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI;aACnC;SACF,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1B,OAAO,WAAW,CAAC;IACrB,CAAC;IAEM,MAAM,CAAU,gBAAgB,CAAC,IAEvC;QACC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,aAAa,GAAe;YAChC,IAAI,EAAE,OAAO;YACb,OAAO,EAAE;gBACP,IAAI,EAAE,YAAY;gBAClB,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO;gBAC5C,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE;4BACJ,IAAI,EAAE,YAAY;4BAClB,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK;yBACtC;wBACD,KAAK,EAAE,OAAO;qBACf;iBACF;gBACD,eAAe,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY;oBACrD,CAAC,CAAC;wBACE;4BACE,IAAI,EAAE;gCACJ,IAAI,EAAE,YAAY;gCAClB,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK;6BACtC;4BACD,KAAK,EAAE,OAAO;yBACf;qBACF;oBACH,CAAC,CAAC,SAAS;aACd;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK;aACtC;SACF,CAAC;QAEF,gCAAgC;QAEhC,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;YAC1C,aAAa,CAAC,MAAM,CAAC,GAAG;gBACtB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,WAAW;aAC5C,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5B,OAAO,aAAa,CAAC;IACvB,CAAC;IAEM,MAAM,CAAU,sBAAsB,CAAC,IAE7C;QACC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,mBAAmB,GAAe;YACtC,IAAI,EAAE,OAAO;YACb,OAAO,EAAE;gBACP,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE,IAAI,CAAC,0BAA0B,CAAC,OAAO;gBAClD,YAAY,EAAE,IAAI,CAAC,0BAA0B,CAAC,YAAY;aAC3D;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,0BAA0B,CAAC,KAAK;aAC5C;SACF,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAClC,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAU,gBAAgB,CAAC,IAEvC;QACC,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,QAAQ,GAAY,IAAI,CAAC,oBAAoB,CAAC,QAAQ,IAAI,KAAK,CAAC;QAEtE,MAAM,aAAa,GAAe;YAChC,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE;gBACP,IAAI,EAAE,kBAAkB;gBACxB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO;gBAC5C,WAAW,EAAE;oBACX,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,WAAW;iBAC5C;gBACD,aAAa,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY;aACtD;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK;aACtC;SACF,CAAC;QAEF,gCAAgC;QAEhC,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;YAC1C,aAAa,CAAC,MAAM,CAAC,GAAG;gBACtB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,WAAW;aAC5C,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5B,OAAO,aAAa,CAAC;IACvB,CAAC;IAEM,MAAM,CAAU,eAAe,CAAC,IAEtC;QACC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,QAAQ,GAAY,IAAI,CAAC,mBAAmB,CAAC,QAAQ,IAAI,KAAK,CAAC;QAErE,MAAM,YAAY,GAAe;YAC/B,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE;gBACP,IAAI,EAAE,kBAAkB;gBACxB,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO;gBAC3C,WAAW,EAAE;oBACX,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,WAAW;iBAC3C;gBACD,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC,YAAY;aACrD;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK;aACrC;SACF,CAAC;QAEF,gCAAgC;QAEhC,IAAI,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;YACzC,YAAY,CAAC,MAAM,CAAC,GAAG;gBACrB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,WAAW;aAC3C,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3B,OAAO,YAAY,CAAC;IACtB,CAAC;IAEM,MAAM,CAAU,aAAa,CAAC,IAEpC;QACC,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,UAAU,GAAe;YAC7B,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACrD,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO;SACzC,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzB,OAAO,UAAU,CAAC;IACpB,CAAC;IAEM,MAAM,CAAU,gBAAgB,CAAC,IAEvC;QACC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,QAAQ,GAAY,IAAI,CAAC,oBAAoB,CAAC,QAAQ,IAAI,KAAK,CAAC;QAEtE,MAAM,aAAa,GACjB,IAAI,CAAC,oBAAoB,CAAC,WAAW,IAAI,KAAK,CAAC;QAEjD,MAAM,aAAa,GAAe;YAChC,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE;gBACP,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,eAAe;gBAC7D,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO;gBAC5C,WAAW,EAAE;oBACX,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,WAAW;iBAC5C;gBACD,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAC5C,CAAC,MAAsB,EAAE,EAAE;oBACzB,OAAO;wBACL,IAAI,EAAE;4BACJ,IAAI,EAAE,YAAY;4BAClB,IAAI,EAAE,MAAM,CAAC,KAAK;yBACnB;wBACD,KAAK,EAAE,MAAM,CAAC,KAAK;qBACpB,CAAC;gBACJ,CAAC,CACF;gBACD,cAAc,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY;oBACpD,CAAC,CAAC;wBACE,IAAI,EAAE;4BACJ,IAAI,EAAE,YAAY;4BAClB,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY;yBAC7C;wBACD,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY;qBAC9C;oBACH,CAAC,CAAC,SAAS;aACd;YAED,KAAK,EAAE;gBACL,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK;aACtC;SACF,CAAC;QAEF,gCAAgC;QAEhC,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;YAC1C,aAAa,CAAC,MAAM,CAAC,GAAG;gBACtB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,WAAW;aAC5C,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5B,OAAO,aAAa,CAAC;IACvB,CAAC;IAEM,MAAM,CAAU,aAAa,CAAC,IAEpC;QACC,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,UAAU,GAAe;YAC7B,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;aACnC;YACD,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ;YAC5C,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,CAAC,WAAW;YACpD,MAAM,EAAE;gBACN,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,iBAAiB;aAC/C;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,iBAAiB;aAC/C;YACD,MAAM,EAAE,IAAI,CAAC,oCAAoC,CAAC;gBAChD,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM;aAC7C,CAAC;SACH,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzB,OAAO,UAAU,CAAC;IACpB,CAAC;IAEM,MAAM,CAAU,gBAAgB,CAAC,IAEvC;QACC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,aAAa,GAAe;YAChC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI;oBAClC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;oBAClD,CAAC,CAAC,EAAE;aACP;SACF,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5B,OAAO,aAAa,CAAC;IACvB,CAAC;IAEM,MAAM,CAAU,KAAK,CAAC,4BAA4B,CAAC,IAIzD;;QACC,2DAA2D;QAC3D,MAAM,QAAQ,GACZ,MAAM,GAAG,CAAC,IAAI,CACZ,GAAG,CAAC,UAAU,CAAC,0CAA0C,CAAC,EAC1D;YACE,OAAO,EAAE,IAAI,CAAC,sBAAsB;SACrC,EACD;YACE,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;YACzC,CAAC,cAAc,CAAC,EAAE,mCAAmC;SACtD,CACF,CAAC;QAEJ,IAAI,QAAQ,YAAY,iBAAiB,EAAE,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACvB,MAAM,QAAQ,CAAC;QACjB,CAAC;QAED,wBAAwB;QAExB,IAAI,CAAA,MAAC,QAAQ,CAAC,QAAuB,0CAAG,IAAI,CAAC,MAAK,IAAI,EAAE,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC;QAED,sCAAsC;QACtC,MAAM,IAAI,GACP,QAAQ,CAAC,QAAuB,CAAC,SAAS,CAC5C,CAAC,MAAM,CAAe,CAAC;QAExB,IAAI,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,SAAS,CAAC,0CAAE,QAAQ,EAAE,MAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC7D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,MAAM,CAAU,KAAK,CAAC,eAAe,CAAC,IAI5C;;QACC,MAAM,OAAO,GAAkB,EAAE,CAAC;QAElC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,IAAI,MAAM,GAAuB,SAAS,CAAC;QAE3C,GAAG,CAAC;YACF,sFAAsF;YAEtF,MAAM,WAAW,GAAe;gBAC9B,OAAO,EAAE,IAAI,CAAC,SAAS;gBACvB,KAAK,EAAE,IAAI;aACZ,CAAC;YAEF,IAAI,MAAM,EAAE,CAAC;gBACX,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;YACjC,CAAC;YAED,MAAM,QAAQ,GACZ,MAAM,GAAG,CAAC,IAAI,CACZ,GAAG,CAAC,UAAU,CAAC,6CAA6C,CAAC,EAC7D,WAAW,EACX;gBACE,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;gBACzC,CAAC,cAAc,CAAC,EAAE,mCAAmC;aACtD,CACF,CAAC;YAEJ,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;YACrE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEvB,IAAI,QAAQ,YAAY,iBAAiB,EAAE,CAAC;gBAC1C,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAC/C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACvB,MAAM,QAAQ,CAAC;YACjB,CAAC;YAED,wBAAwB;YAExB,IAAI,CAAA,MAAC,QAAQ,CAAC,QAAuB,0CAAG,IAAI,CAAC,MAAK,IAAI,EAAE,CAAC;gBACvD,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBACjD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAChC,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;YACpD,CAAC;YAED,sCAAsC;YACtC,MAAM,iBAAiB,GACrB,QAAQ,CAAC,QACV,CAAC,SAAS,CAAkB,CAAC;YAE9B,OAAO,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;YAEnC,MAAM,GAAG,MACN,QAAQ,CAAC,QAAuB,CAAC,mBAAmB,CACtD,0CAAG,aAAa,CAAW,CAAC;QAC/B,CAAC,QAAQ,MAAM,EAAE;QAEjB,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,MAAM,CAAU,cAAc,CAAC,IAErC;QACC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,WAAW,GAAe;YAC9B,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE;gBACJ,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK;gBACnC,KAAK,EAAE,IAAI;aACZ;YACD,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK;YACpC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ;YAC3C,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG;gBAC9B,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE;gBACxC,CAAC,CAAC,SAAS;SACd,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1B,OAAO,WAAW,CAAC;IACrB,CAAC;IAEM,MAAM,CAAU,KAAK,CAAC,sCAAsC,CAAC,IAGnE;QACC,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC3E,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,SAAS,GACb,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACvB,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;qBACrB;iBACF;aACF;SACF,CAAC,CAAC;QAEL,MAAM,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QACzE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}