@samanhappy/mcphub 0.10.6 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.fr.md +36 -152
  2. package/README.md +34 -255
  3. package/README.zh.md +33 -212
  4. package/dist/config/DaoConfigService.js +3 -3
  5. package/dist/config/DaoConfigService.js.map +1 -1
  6. package/dist/controllers/authController.js +2 -2
  7. package/dist/controllers/authController.js.map +1 -1
  8. package/dist/controllers/groupController.js +24 -24
  9. package/dist/controllers/groupController.js.map +1 -1
  10. package/dist/controllers/openApiController.js +1 -1
  11. package/dist/controllers/openApiController.js.map +1 -1
  12. package/dist/controllers/serverController.js +95 -61
  13. package/dist/controllers/serverController.js.map +1 -1
  14. package/dist/controllers/userController.js +22 -21
  15. package/dist/controllers/userController.js.map +1 -1
  16. package/dist/dao/DaoFactory.js +19 -0
  17. package/dist/dao/DaoFactory.js.map +1 -1
  18. package/dist/dao/DatabaseDaoFactory.js +68 -0
  19. package/dist/dao/DatabaseDaoFactory.js.map +1 -0
  20. package/dist/dao/GroupDaoDbImpl.js +131 -0
  21. package/dist/dao/GroupDaoDbImpl.js.map +1 -0
  22. package/dist/dao/ServerDaoDbImpl.js +109 -0
  23. package/dist/dao/ServerDaoDbImpl.js.map +1 -0
  24. package/dist/dao/SystemConfigDaoDbImpl.js +56 -0
  25. package/dist/dao/SystemConfigDaoDbImpl.js.map +1 -0
  26. package/dist/dao/UserConfigDaoDbImpl.js +61 -0
  27. package/dist/dao/UserConfigDaoDbImpl.js.map +1 -0
  28. package/dist/dao/UserDaoDbImpl.js +90 -0
  29. package/dist/dao/UserDaoDbImpl.js.map +1 -0
  30. package/dist/dao/index.js +7 -0
  31. package/dist/dao/index.js.map +1 -1
  32. package/dist/db/entities/Group.js +49 -0
  33. package/dist/db/entities/Group.js.map +1 -0
  34. package/dist/db/entities/Server.js +93 -0
  35. package/dist/db/entities/Server.js.map +1 -0
  36. package/dist/db/entities/SystemConfig.js +66 -0
  37. package/dist/db/entities/SystemConfig.js.map +1 -0
  38. package/dist/db/entities/User.js +45 -0
  39. package/dist/db/entities/User.js.map +1 -0
  40. package/dist/db/entities/UserConfig.js +45 -0
  41. package/dist/db/entities/UserConfig.js.map +1 -0
  42. package/dist/db/entities/index.js +7 -2
  43. package/dist/db/entities/index.js.map +1 -1
  44. package/dist/db/repositories/GroupRepository.js +81 -0
  45. package/dist/db/repositories/GroupRepository.js.map +1 -0
  46. package/dist/db/repositories/ServerRepository.js +80 -0
  47. package/dist/db/repositories/ServerRepository.js.map +1 -0
  48. package/dist/db/repositories/SystemConfigRepository.js +64 -0
  49. package/dist/db/repositories/SystemConfigRepository.js.map +1 -0
  50. package/dist/db/repositories/UserConfigRepository.js +69 -0
  51. package/dist/db/repositories/UserConfigRepository.js.map +1 -0
  52. package/dist/db/repositories/UserRepository.js +68 -0
  53. package/dist/db/repositories/UserRepository.js.map +1 -0
  54. package/dist/db/repositories/index.js +6 -1
  55. package/dist/db/repositories/index.js.map +1 -1
  56. package/dist/index.js +12 -0
  57. package/dist/index.js.map +1 -1
  58. package/dist/middlewares/auth.js +1 -1
  59. package/dist/middlewares/auth.js.map +1 -1
  60. package/dist/middlewares/userContext.js +1 -1
  61. package/dist/middlewares/userContext.js.map +1 -1
  62. package/dist/models/User.js +29 -48
  63. package/dist/models/User.js.map +1 -1
  64. package/dist/routes/index.js +2 -1
  65. package/dist/routes/index.js.map +1 -1
  66. package/dist/scripts/migrate-to-database.js +5 -0
  67. package/dist/scripts/migrate-to-database.js.map +1 -0
  68. package/dist/server.js +2 -2
  69. package/dist/server.js.map +1 -1
  70. package/dist/services/groupService.js +87 -113
  71. package/dist/services/groupService.js.map +1 -1
  72. package/dist/services/keepAliveService.js +58 -0
  73. package/dist/services/keepAliveService.js.map +1 -0
  74. package/dist/services/mcpOAuthProvider.js +22 -28
  75. package/dist/services/mcpOAuthProvider.js.map +1 -1
  76. package/dist/services/mcpService.js +73 -92
  77. package/dist/services/mcpService.js.map +1 -1
  78. package/dist/services/oauthServerService.js +18 -12
  79. package/dist/services/oauthServerService.js.map +1 -1
  80. package/dist/services/oauthService.js +11 -10
  81. package/dist/services/oauthService.js.map +1 -1
  82. package/dist/services/oauthSettingsStore.js +17 -12
  83. package/dist/services/oauthSettingsStore.js.map +1 -1
  84. package/dist/services/openApiGeneratorService.js +6 -7
  85. package/dist/services/openApiGeneratorService.js.map +1 -1
  86. package/dist/services/sseService.js +20 -62
  87. package/dist/services/sseService.js.map +1 -1
  88. package/dist/services/userService.js +38 -45
  89. package/dist/services/userService.js.map +1 -1
  90. package/dist/utils/migration.js +184 -0
  91. package/dist/utils/migration.js.map +1 -0
  92. package/dist/utils/oauthBearer.js +3 -3
  93. package/dist/utils/oauthBearer.js.map +1 -1
  94. package/frontend/dist/assets/index-Dno2pywv.js +251 -0
  95. package/frontend/dist/assets/index-Dno2pywv.js.map +1 -0
  96. package/frontend/dist/index.html +1 -1
  97. package/mcp_settings.json +23 -1
  98. package/package.json +1 -1
  99. package/frontend/dist/assets/index-DDht0WYq.js +0 -251
  100. package/frontend/dist/assets/index-DDht0WYq.js.map +0 -1
@@ -5,7 +5,7 @@ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
5
5
  import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
6
6
  import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
7
7
  import { StreamableHTTPClientTransport, } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
8
- import { loadSettings, expandEnvVars, replaceEnvVars, getNameSeparator } from '../config/index.js';
8
+ import { expandEnvVars, replaceEnvVars, getNameSeparator } from '../config/index.js';
9
9
  import config from '../config/index.js';
10
10
  import { getGroup } from './sseService.js';
11
11
  import { getServersInGroup, getServerConfigInGroup } from './groupService.js';
@@ -13,37 +13,11 @@ import { saveToolsAsVectorEmbeddings, searchToolsByVector } from './vectorSearch
13
13
  import { OpenAPIClient } from '../clients/openapi.js';
14
14
  import { RequestContextService } from './requestContextService.js';
15
15
  import { getDataService } from './services.js';
16
- import { getServerDao } from '../dao/index.js';
16
+ import { getServerDao, getSystemConfigDao } from '../dao/index.js';
17
17
  import { initializeAllOAuthClients } from './oauthService.js';
18
18
  import { createOAuthProvider } from './mcpOAuthProvider.js';
19
19
  const servers = {};
20
- const serverDao = getServerDao();
21
- // Helper function to set up keep-alive ping for SSE connections
22
- const setupKeepAlive = (serverInfo, serverConfig) => {
23
- // Only set up keep-alive for SSE connections
24
- if (!(serverInfo.transport instanceof SSEClientTransport)) {
25
- return;
26
- }
27
- // Clear any existing interval first
28
- if (serverInfo.keepAliveIntervalId) {
29
- clearInterval(serverInfo.keepAliveIntervalId);
30
- }
31
- // Use configured interval or default to 60 seconds for SSE
32
- const interval = serverConfig.keepAliveInterval || 60000;
33
- serverInfo.keepAliveIntervalId = setInterval(async () => {
34
- try {
35
- if (serverInfo.client && serverInfo.status === 'connected') {
36
- await serverInfo.client.ping();
37
- console.log(`Keep-alive ping successful for server: ${serverInfo.name}`);
38
- }
39
- }
40
- catch (error) {
41
- console.warn(`Keep-alive ping failed for server ${serverInfo.name}:`, error);
42
- // TODO Consider handling reconnection logic here if needed
43
- }
44
- }, interval);
45
- console.log(`Keep-alive ping set up for server ${serverInfo.name} with interval ${interval / 1000} seconds`);
46
- };
20
+ import { setupClientKeepAlive } from './keepAliveService.js';
47
21
  export const initUpstreamServers = async () => {
48
22
  // Initialize OAuth clients for servers with dynamic registration
49
23
  await initializeAllOAuthClients();
@@ -178,19 +152,20 @@ export const createTransportFromConfig = async (name, conf) => {
178
152
  ...replaceEnvVars(conf.env || {}),
179
153
  };
180
154
  env['PATH'] = expandEnvVars(process.env.PATH) || '';
181
- const settings = loadSettings();
155
+ const systemConfigDao = getSystemConfigDao();
156
+ const systemConfig = await systemConfigDao.get();
182
157
  // Add UV_DEFAULT_INDEX and npm_config_registry if needed
183
- if (settings.systemConfig?.install?.pythonIndexUrl &&
158
+ if (systemConfig?.install?.pythonIndexUrl &&
184
159
  (conf.command === 'uvx' || conf.command === 'uv' || conf.command === 'python')) {
185
- env['UV_DEFAULT_INDEX'] = settings.systemConfig.install.pythonIndexUrl;
160
+ env['UV_DEFAULT_INDEX'] = systemConfig.install.pythonIndexUrl;
186
161
  }
187
- if (settings.systemConfig?.install?.npmRegistry &&
162
+ if (systemConfig?.install?.npmRegistry &&
188
163
  (conf.command === 'npm' ||
189
164
  conf.command === 'npx' ||
190
165
  conf.command === 'pnpm' ||
191
166
  conf.command === 'yarn' ||
192
167
  conf.command === 'node')) {
193
- env['npm_config_registry'] = settings.systemConfig.install.npmRegistry;
168
+ env['npm_config_registry'] = systemConfig.install.npmRegistry;
194
169
  }
195
170
  // Expand environment variables in command
196
171
  transport = new StdioClientTransport({
@@ -237,7 +212,7 @@ const callToolWithReconnect = async (serverInfo, toolParams, options, maxRetries
237
212
  }
238
213
  serverInfo.client.close();
239
214
  serverInfo.transport.close();
240
- const server = await serverDao.findById(serverInfo.name);
215
+ const server = await getServerDao().findById(serverInfo.name);
241
216
  if (!server) {
242
217
  throw new Error(`Server configuration not found for: ${serverInfo.name}`);
243
218
  }
@@ -300,7 +275,7 @@ const callToolWithReconnect = async (serverInfo, toolParams, options, maxRetries
300
275
  };
301
276
  // Initialize MCP server clients
302
277
  export const initializeClientsFromSettings = async (isInit, serverName) => {
303
- const allServers = await serverDao.findAll();
278
+ const allServers = await getServerDao().findAll();
304
279
  const existingServerInfos = serverInfos;
305
280
  const nextServerInfos = [];
306
281
  try {
@@ -488,8 +463,8 @@ export const initializeClientsFromSettings = async (isInit, serverName) => {
488
463
  if (!dataError) {
489
464
  serverInfo.status = 'connected';
490
465
  serverInfo.error = null;
491
- // Set up keep-alive ping for SSE connections
492
- setupKeepAlive(serverInfo, expandedConf);
466
+ // Set up keep-alive ping for SSE connections via shared service
467
+ setupClientKeepAlive(serverInfo, expandedConf).catch((e) => console.warn(`Keepalive setup failed for ${name}:`, e));
493
468
  }
494
469
  else {
495
470
  serverInfo.status = 'disconnected';
@@ -534,7 +509,7 @@ export const registerAllTools = async (isInit, serverName) => {
534
509
  };
535
510
  // Get all server information
536
511
  export const getServersInfo = async () => {
537
- const allServers = await serverDao.findAll();
512
+ const allServers = await getServerDao().findAll();
538
513
  const dataService = getDataService();
539
514
  const filterServerInfos = dataService.filterData
540
515
  ? dataService.filterData(serverInfos)
@@ -628,7 +603,7 @@ export const reconnectServer = async (serverName) => {
628
603
  };
629
604
  // Filter tools by server configuration
630
605
  const filterToolsByConfig = async (serverName, tools) => {
631
- const serverConfig = await serverDao.findById(serverName);
606
+ const serverConfig = await getServerDao().findById(serverName);
632
607
  if (!serverConfig || !serverConfig.tools) {
633
608
  // If no tool configuration exists, all tools are enabled by default
634
609
  return tools;
@@ -646,7 +621,7 @@ const getServerByTool = (toolName) => {
646
621
  // Add new server
647
622
  export const addServer = async (name, config) => {
648
623
  const server = { name, ...config };
649
- const result = await serverDao.create(server);
624
+ const result = await getServerDao().create(server);
650
625
  if (result) {
651
626
  return { success: true, message: 'Server added successfully' };
652
627
  }
@@ -656,7 +631,7 @@ export const addServer = async (name, config) => {
656
631
  };
657
632
  // Remove server
658
633
  export const removeServer = async (name) => {
659
- const result = await serverDao.delete(name);
634
+ const result = await getServerDao().delete(name);
660
635
  if (!result) {
661
636
  return { success: false, message: 'Failed to remove server' };
662
637
  }
@@ -666,23 +641,22 @@ export const removeServer = async (name) => {
666
641
  // Add or update server (supports overriding existing servers for DXT)
667
642
  export const addOrUpdateServer = async (name, config, allowOverride = false) => {
668
643
  try {
669
- const exists = await serverDao.exists(name);
644
+ const exists = await getServerDao().exists(name);
670
645
  if (exists && !allowOverride) {
671
646
  return { success: false, message: 'Server name already exists' };
672
647
  }
673
- // If overriding and this is a DXT server (stdio type with file paths),
674
- // we might want to clean up old files in the future
675
- if (exists && config.type === 'stdio') {
676
- // Close existing server connections
648
+ // If overriding an existing server, close connections and clear keep-alive timers
649
+ if (exists) {
650
+ // Close existing server connections (clears keep-alive intervals as well)
677
651
  closeServer(name);
678
652
  // Remove from server infos
679
653
  serverInfos = serverInfos.filter((serverInfo) => serverInfo.name !== name);
680
654
  }
681
655
  if (exists) {
682
- await serverDao.update(name, config);
656
+ await getServerDao().update(name, config);
683
657
  }
684
658
  else {
685
- await serverDao.create({ name, ...config });
659
+ await getServerDao().create({ name, ...config });
686
660
  }
687
661
  const action = exists ? 'updated' : 'added';
688
662
  return { success: true, message: `Server ${action} successfully` };
@@ -711,7 +685,7 @@ function closeServer(name) {
711
685
  // Toggle server enabled status
712
686
  export const toggleServerStatus = async (name, enabled) => {
713
687
  try {
714
- await serverDao.setEnabled(name, enabled);
688
+ await getServerDao().setEnabled(name, enabled);
715
689
  // If disabling, disconnect the server and remove from active servers
716
690
  if (!enabled) {
717
691
  closeServer(name);
@@ -745,7 +719,7 @@ export const handleListToolsRequest = async (_, extra) => {
745
719
  let availableServers = serverInfos.filter((server) => server.status === 'connected' && server.enabled !== false);
746
720
  // If a target group is specified, filter servers to only those in the group
747
721
  if (targetGroup) {
748
- const serversInGroup = getServersInGroup(targetGroup);
722
+ const serversInGroup = await getServersInGroup(targetGroup);
749
723
  if (serversInGroup && serversInGroup.length > 0) {
750
724
  availableServers = availableServers.filter((server) => serversInGroup.includes(server.name));
751
725
  }
@@ -807,26 +781,33 @@ Available servers: ${serversList}`,
807
781
  ],
808
782
  };
809
783
  }
810
- const allServerInfos = getDataService()
811
- .filterData(serverInfos)
812
- .filter((serverInfo) => {
784
+ // Need to filter servers based on group asynchronously
785
+ const filteredServerInfos = [];
786
+ for (const serverInfo of getDataService().filterData(serverInfos)) {
813
787
  if (serverInfo.enabled === false)
814
- return false;
815
- if (!group)
816
- return true;
817
- const serversInGroup = getServersInGroup(group);
818
- if (!serversInGroup || serversInGroup.length === 0)
819
- return serverInfo.name === group;
820
- return serversInGroup.includes(serverInfo.name);
821
- });
788
+ continue;
789
+ if (!group) {
790
+ filteredServerInfos.push(serverInfo);
791
+ continue;
792
+ }
793
+ const serversInGroup = await getServersInGroup(group);
794
+ if (!serversInGroup || serversInGroup.length === 0) {
795
+ if (serverInfo.name === group)
796
+ filteredServerInfos.push(serverInfo);
797
+ continue;
798
+ }
799
+ if (serversInGroup.includes(serverInfo.name)) {
800
+ filteredServerInfos.push(serverInfo);
801
+ }
802
+ }
822
803
  const allTools = [];
823
- for (const serverInfo of allServerInfos) {
804
+ for (const serverInfo of filteredServerInfos) {
824
805
  if (serverInfo.tools && serverInfo.tools.length > 0) {
825
806
  // Filter tools based on server configuration
826
807
  let enabledTools = await filterToolsByConfig(serverInfo.name, serverInfo.tools);
827
808
  // If this is a group request, apply group-level tool filtering
828
809
  if (group) {
829
- const serverConfig = getServerConfigInGroup(group, serverInfo.name);
810
+ const serverConfig = await getServerConfigInGroup(group, serverInfo.name);
830
811
  if (serverConfig && serverConfig.tools !== 'all' && Array.isArray(serverConfig.tools)) {
831
812
  // Filter tools based on group configuration
832
813
  const allowedToolNames = serverConfig.tools.map((toolName) => `${serverInfo.name}${getNameSeparator()}${toolName}`);
@@ -834,7 +815,7 @@ Available servers: ${serversList}`,
834
815
  }
835
816
  }
836
817
  // Apply custom descriptions from server configuration
837
- const serverConfig = await serverDao.findById(serverInfo.name);
818
+ const serverConfig = await getServerDao().findById(serverInfo.name);
838
819
  const toolsWithCustomDescriptions = enabledTools.map((tool) => {
839
820
  const toolConfig = serverConfig?.tools?.[tool.name];
840
821
  return {
@@ -877,10 +858,10 @@ export const handleCallToolRequest = async (request, extra) => {
877
858
  // If group is in format $smart/{group}, filter servers to that group
878
859
  if (group?.startsWith('$smart/')) {
879
860
  const targetGroup = group.substring(7);
880
- const serversInGroup = getServersInGroup(targetGroup);
861
+ const serversInGroup = await getServersInGroup(targetGroup);
881
862
  if (serversInGroup !== undefined && serversInGroup !== null) {
882
863
  servers = serversInGroup;
883
- if (servers.length > 0) {
864
+ if (servers && servers.length > 0) {
884
865
  console.log(`Filtering search to servers in group "${targetGroup}": ${servers.join(', ')}`);
885
866
  }
886
867
  else {
@@ -905,7 +886,7 @@ export const handleCallToolRequest = async (request, extra) => {
905
886
  const enabledTools = await filterToolsByConfig(server.name, [actualTool]);
906
887
  if (enabledTools.length > 0) {
907
888
  // Apply custom description from configuration
908
- const serverConfig = await serverDao.findById(server.name);
889
+ const serverConfig = await getServerDao().findById(server.name);
909
890
  const toolConfig = serverConfig?.tools?.[actualTool.name];
910
891
  // Return the actual tool info from serverInfos with custom description
911
892
  return {
@@ -1180,23 +1161,30 @@ export const handleListPromptsRequest = async (_, extra) => {
1180
1161
  const sessionId = extra.sessionId || '';
1181
1162
  const group = getGroup(sessionId);
1182
1163
  console.log(`Handling ListPromptsRequest for group: ${group}`);
1183
- const allServerInfos = getDataService()
1184
- .filterData(serverInfos)
1185
- .filter((serverInfo) => {
1164
+ // Need to filter servers based on group asynchronously
1165
+ const filteredServerInfos = [];
1166
+ for (const serverInfo of getDataService().filterData(serverInfos)) {
1186
1167
  if (serverInfo.enabled === false)
1187
- return false;
1188
- if (!group)
1189
- return true;
1190
- const serversInGroup = getServersInGroup(group);
1191
- if (!serversInGroup || serversInGroup.length === 0)
1192
- return serverInfo.name === group;
1193
- return serversInGroup.includes(serverInfo.name);
1194
- });
1168
+ continue;
1169
+ if (!group) {
1170
+ filteredServerInfos.push(serverInfo);
1171
+ continue;
1172
+ }
1173
+ const serversInGroup = await getServersInGroup(group);
1174
+ if (!serversInGroup || serversInGroup.length === 0) {
1175
+ if (serverInfo.name === group)
1176
+ filteredServerInfos.push(serverInfo);
1177
+ continue;
1178
+ }
1179
+ if (serversInGroup.includes(serverInfo.name)) {
1180
+ filteredServerInfos.push(serverInfo);
1181
+ }
1182
+ }
1195
1183
  const allPrompts = [];
1196
- for (const serverInfo of allServerInfos) {
1184
+ for (const serverInfo of filteredServerInfos) {
1197
1185
  if (serverInfo.prompts && serverInfo.prompts.length > 0) {
1198
1186
  // Filter prompts based on server configuration
1199
- const serverConfig = await serverDao.findById(serverInfo.name);
1187
+ const serverConfig = await getServerDao().findById(serverInfo.name);
1200
1188
  let enabledPrompts = serverInfo.prompts;
1201
1189
  if (serverConfig && serverConfig.prompts) {
1202
1190
  enabledPrompts = serverInfo.prompts.filter((prompt) => {
@@ -1207,7 +1195,7 @@ export const handleListPromptsRequest = async (_, extra) => {
1207
1195
  }
1208
1196
  // If this is a group request, apply group-level prompt filtering
1209
1197
  if (group) {
1210
- const serverConfigInGroup = getServerConfigInGroup(group, serverInfo.name);
1198
+ const serverConfigInGroup = await getServerConfigInGroup(group, serverInfo.name);
1211
1199
  if (serverConfigInGroup &&
1212
1200
  serverConfigInGroup.tools !== 'all' &&
1213
1201
  Array.isArray(serverConfigInGroup.tools)) {
@@ -1235,16 +1223,9 @@ export const createMcpServer = (name, version, group) => {
1235
1223
  // Determine server name based on routing type
1236
1224
  let serverName = name;
1237
1225
  if (group) {
1238
- // Check if it's a group or a single server
1239
- const serversInGroup = getServersInGroup(group);
1240
- if (!serversInGroup || serversInGroup.length === 0) {
1241
- // Single server routing
1242
- serverName = `${name}_${group}`;
1243
- }
1244
- else {
1245
- // Group routing
1246
- serverName = `${name}_${group}_group`;
1247
- }
1226
+ // For createMcpServer we use sync approach since it's called synchronously
1227
+ // The actual group validation happens at request time
1228
+ serverName = `${name}_${group}_group`;
1248
1229
  }
1249
1230
  // If no group, use default name (global routing)
1250
1231
  const server = new Server({ name: serverName, version }, { capabilities: { tools: {}, prompts: {}, resources: {} } });
@@ -1 +1 @@
1
- {"version":3,"file":"mcpService.js","sourceRoot":"","sources":["../../src/services/mcpService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,GAEvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,6BAA6B,GAE9B,MAAM,oDAAoD,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACnG,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAwB,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,OAAO,GAAoC,EAAE,CAAC;AAEpD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;AAEjC,gEAAgE;AAChE,MAAM,cAAc,GAAG,CAAC,UAAsB,EAAE,YAA0B,EAAQ,EAAE;IAClF,6CAA6C;IAC7C,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,YAAY,kBAAkB,CAAC,EAAE,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,oCAAoC;IACpC,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACnC,aAAa,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAChD,CAAC;IAED,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,YAAY,CAAC,iBAAiB,IAAI,KAAK,CAAC;IAEzD,UAAU,CAAC,mBAAmB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACtD,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC3D,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,0CAA0C,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,qCAAqC,UAAU,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7E,2DAA2D;QAC7D,CAAC;IACH,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEb,OAAO,CAAC,GAAG,CACT,qCAAqC,UAAU,CAAC,IAAI,kBAAkB,QAAQ,GAAG,IAAI,UAAU,CAChG,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,IAAmB,EAAE;IAC3D,iEAAiE;IACjE,MAAM,yBAAyB,EAAE,CAAC;IAElC,2CAA2C;IAC3C,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAkB,EAAE,KAAc,EAAU,EAAE;IACzE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,KAAK,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QACrF,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,4CAA4C,SAAS,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAQ,EAAE;IACzD,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,IAAa,EAAE,EAAE;IACvD,MAAM,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACxC,MAAM;aACH,mBAAmB,EAAE;aACrB,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAChF,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,EAAE;YACT,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,UAAkB,EAAE,QAAgB,EAAE,EAAE;IAC9E,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC/D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,mBAAmB,QAAQ,eAAe,UAAU,EAAE,CAAC,CAAC;QACrE,OAAO;IACT,CAAC;IACD,2CAA2C;IAC3C,2BAA2B,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,0DAA0D;AAC1D,MAAM,gBAAgB,GAAG,CAAC,MAAW,EAAO,EAAE;IAC5C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,aAAa,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IACpC,OAAO,aAAa,CAAC,OAAO,CAAC;IAE7B,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEF,+BAA+B;AAC/B,IAAI,WAAW,GAAiB,EAAE,CAAC;AAEnC,oDAAoD;AACpD,MAAM,CAAC,MAAM,SAAS,GAAG,GAAY,EAAE;IACrC,OAAO,WAAW;SACf,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK,CAAC;SACpD,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,mDAAmD;AACnD,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAS,EAAE;IAC1C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACtB,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC5B,CAAC;YACD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBACzB,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,wBAAwB,UAAU,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IACD,WAAW,GAAG,EAAE,CAAC;IAEjB,gCAAgC;IAChC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACzC,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,oEAAoE;AACpE,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAAE,IAAY,EAAE,IAAkB,EAAgB,EAAE;IAChG,IAAI,SAAS,CAAC;IAEd,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACpC,MAAM,OAAO,GAAyC,EAAE,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,WAAW,GAAG;gBACpB,OAAO;aACR,CAAC;QACJ,CAAC;QAED,qFAAqF;QACrF,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3D,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,SAAS,GAAG,IAAI,6BAA6B,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;SAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACpB,gBAAgB;QAChB,MAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,eAAe,GAAG;gBACxB,OAAO;aACR,CAAC;YACF,OAAO,CAAC,WAAW,GAAG;gBACpB,OAAO;aACR,CAAC;QACJ,CAAC;QAED,qFAAqF;QACrF,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3D,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,SAAS,GAAG,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;SAAM,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACrC,kBAAkB;QAClB,MAAM,GAAG,GAA2B;YAClC,GAAI,OAAO,CAAC,GAA8B;YAC1C,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;SAClC,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAc,CAAC,IAAI,EAAE,CAAC;QAE9D,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;QAChC,yDAAyD;QACzD,IACE,QAAQ,CAAC,YAAY,EAAE,OAAO,EAAE,cAAc;YAC9C,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,EAC9E,CAAC;YACD,GAAG,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC;QACzE,CAAC;QAED,IACE,QAAQ,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW;YAC3C,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK;gBACrB,IAAI,CAAC,OAAO,KAAK,KAAK;gBACtB,IAAI,CAAC,OAAO,KAAK,MAAM;gBACvB,IAAI,CAAC,OAAO,KAAK,MAAM;gBACvB,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,EAC1B,CAAC;YACD,GAAG,CAAC,qBAAqB,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;QACzE,CAAC;QAED,0CAA0C;QAC1C,SAAS,GAAG,IAAI,oBAAoB,CAAC;YACnC,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAa;YAC3C,GAAG,EAAE,GAAG;YACR,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QACH,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACpC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,aAAa,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,oEAAoE;AACpE,MAAM,qBAAqB,GAAG,KAAK,EACjC,UAAsB,EACtB,UAAe,EACf,OAAa,EACb,aAAqB,CAAC,EACR,EAAE;IAChB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,gCAAgC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;YACtF,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,0EAA0E;YAC1E,MAAM,cAAc,GAAG,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,oCAAoC,CAAC,CAAC;YAC1F,+CAA+C;YAC/C,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,YAAY,6BAA6B,CAAC;YACvF,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,YAAY,kBAAkB,CAAC;YACjE,IACE,OAAO,GAAG,UAAU;gBACpB,UAAU,CAAC,SAAS;gBACpB,CAAC,CAAC,gBAAgB,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC,EAC/C,CAAC;gBACD,OAAO,CAAC,IAAI,CACV,GAAG,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,iBAAiB,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,WAAW,UAAU,CAAC,IAAI,sCAAsC,OAAO,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,GAAG,CAC3M,CAAC;gBAEF,IAAI,CAAC;oBACH,4BAA4B;oBAC5B,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;wBACnC,aAAa,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;wBAC9C,UAAU,CAAC,mBAAmB,GAAG,SAAS,CAAC;oBAC7C,CAAC;oBAED,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC1B,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;oBAE7B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBACzD,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,MAAM,IAAI,KAAK,CAAC,uCAAuC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC5E,CAAC;oBAED,2CAA2C;oBAC3C,MAAM,YAAY,GAAG,MAAM,yBAAyB,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAE9E,oBAAoB;oBACpB,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;wBACE,IAAI,EAAE,cAAc,UAAU,CAAC,IAAI,EAAE;wBACrC,OAAO,EAAE,OAAO;qBACjB,EACD;wBACE,YAAY,EAAE;4BACZ,OAAO,EAAE,EAAE;4BACX,SAAS,EAAE,EAAE;4BACb,KAAK,EAAE,EAAE;yBACV;qBACF,CACF,CAAC;oBAEF,+BAA+B;oBAC/B,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;oBAE7D,mDAAmD;oBACnD,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;oBAC3B,UAAU,CAAC,SAAS,GAAG,YAAY,CAAC;oBACpC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC;oBAEhC,uCAAuC;oBACvC,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;wBACnE,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;4BAC5C,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,GAAG,gBAAgB,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;4BAC3D,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;4BACnC,WAAW,EAAE,gBAAgB,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;yBACtD,CAAC,CAAC,CAAC;wBAEJ,6CAA6C;wBAC7C,2BAA2B,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;oBACjE,CAAC;oBAAC,OAAO,cAAc,EAAE,CAAC;wBACxB,OAAO,CAAC,IAAI,CACV,wDAAwD,UAAU,CAAC,IAAI,GAAG,EAC1E,cAAc,CACf,CAAC;wBACF,2EAA2E;oBAC7E,CAAC;oBAED,OAAO,CAAC,GAAG,CAAC,uCAAuC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;oBAEtE,2BAA2B;oBAC3B,SAAS;gBACX,CAAC;gBAAC,OAAO,cAAc,EAAE,CAAC;oBACxB,OAAO,CAAC,KAAK,CAAC,iCAAiC,UAAU,CAAC,IAAI,GAAG,EAAE,cAAc,CAAC,CAAC;oBACnF,UAAU,CAAC,MAAM,GAAG,cAAc,CAAC;oBACnC,UAAU,CAAC,KAAK,GAAG,wBAAwB,cAAc,EAAE,CAAC;oBAE5D,yDAAyD;oBACzD,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;wBAC3B,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,qEAAqE;gBACrE,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,EAChD,MAAe,EACf,UAAmB,EACI,EAAE;IACzB,MAAM,UAAU,GAA2B,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;IACrE,MAAM,mBAAmB,GAAG,WAAW,CAAC;IACxC,MAAM,eAAe,GAAiB,EAAE,CAAC;IAEzC,IAAI,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YAEtB,2DAA2D;YAC3D,MAAM,YAAY,GAAG,cAAc,CAAC,IAAW,CAAyB,CAAC;YAEzE,wBAAwB;YACxB,IAAI,YAAY,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;gBACjD,eAAe,CAAC,IAAI,CAAC;oBACnB,IAAI;oBACJ,KAAK,EAAE,YAAY,CAAC,KAAK;oBACzB,MAAM,EAAE,cAAc;oBACtB,KAAK,EAAE,IAAI;oBACX,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,EAAE;oBACX,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;oBACtB,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,uCAAuC;YACvC,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CACnD,CAAC;YACF,IAAI,cAAc,IAAI,CAAC,CAAC,UAAU,IAAI,UAAU,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC3D,eAAe,CAAC,IAAI,CAAC;oBACnB,GAAG,cAAc;oBACjB,OAAO,EAAE,YAAY,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO;iBAC1E,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,yBAAyB,CAAC,CAAC;gBACtD,SAAS;YACX,CAAC;YAED,IAAI,SAAS,CAAC;YACd,IAAI,aAAa,CAAC;YAClB,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACpC,8BAA8B;gBAC9B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;oBAChE,OAAO,CAAC,IAAI,CACV,4BAA4B,IAAI,gDAAgD,CACjF,CAAC;oBACF,eAAe,CAAC,IAAI,CAAC;wBACnB,IAAI;wBACJ,KAAK,EAAE,YAAY,CAAC,KAAK;wBACzB,MAAM,EAAE,cAAc;wBACtB,KAAK,EAAE,6CAA6C;wBACpD,KAAK,EAAE,EAAE;wBACT,OAAO,EAAE,EAAE;wBACX,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;qBACvB,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,oDAAoD;gBACpD,MAAM,UAAU,GAAe;oBAC7B,IAAI;oBACJ,KAAK,EAAE,YAAY,CAAC,KAAK;oBACzB,MAAM,EAAE,YAAY;oBACpB,KAAK,EAAE,IAAI;oBACX,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,EAAE;oBACX,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;oBACtB,OAAO,EAAE,YAAY,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO;oBACzE,MAAM,EAAE,YAAY,EAAE,qEAAqE;iBAC5F,CAAC;gBACF,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAEjC,IAAI,CAAC;oBACH,iCAAiC;oBACjC,aAAa,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;oBAEhD,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,KAAK,CAAC,CAAC;oBAEvD,+BAA+B;oBAC/B,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;oBAEjC,2CAA2C;oBAC3C,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;oBAC9C,MAAM,QAAQ,GAAW,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBACnD,IAAI,EAAE,GAAG,IAAI,GAAG,gBAAgB,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;wBAChD,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,WAAW,EAAE,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;qBAChD,CAAC,CAAC,CAAC;oBAEJ,oDAAoD;oBACpD,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC;oBAChC,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC;oBAC5B,UAAU,CAAC,aAAa,GAAG,aAAa,CAAC;oBAEzC,OAAO,CAAC,GAAG,CACT,4CAA4C,IAAI,SAAS,QAAQ,CAAC,MAAM,QAAQ,CACjF,CAAC;oBAEF,6CAA6C;oBAC7C,2BAA2B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;oBAC5C,SAAS;gBACX,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,uCAAuC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;oBAErE,0DAA0D;oBAC1D,UAAU,CAAC,MAAM,GAAG,cAAc,CAAC;oBACnC,UAAU,CAAC,KAAK,GAAG,wCAAwC,KAAK,EAAE,CAAC;oBACnE,SAAS;gBACX,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,MAAM,yBAAyB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAClE,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;gBACE,IAAI,EAAE,cAAc,IAAI,EAAE;gBAC1B,OAAO,EAAE,OAAO;aACjB,EACD;gBACE,YAAY,EAAE;oBACZ,OAAO,EAAE,EAAE;oBACX,SAAS,EAAE,EAAE;oBACb,KAAK,EAAE,EAAE;iBACV;aACF,CACF,CAAC;YAEF,MAAM,kBAAkB,GAAG,MAAM;gBAC/B,CAAC,CAAC;oBACE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK;iBAC7C;gBACH,CAAC,CAAC,SAAS,CAAC;YAEd,gEAAgE;YAChE,MAAM,oBAAoB,GAAG,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC;YACxD,MAAM,cAAc,GAAG;gBACrB,OAAO,EAAE,oBAAoB,CAAC,OAAO,IAAI,KAAK;gBAC9C,sBAAsB,EAAE,oBAAoB,CAAC,sBAAsB,IAAI,KAAK;gBAC5E,eAAe,EAAE,oBAAoB,CAAC,eAAe;aACtD,CAAC;YAEF,oDAAoD;YACpD,MAAM,UAAU,GAAe;gBAC7B,IAAI;gBACJ,KAAK,EAAE,YAAY,CAAC,KAAK;gBACzB,MAAM,EAAE,YAAY;gBACpB,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE,EAAE;gBACX,MAAM;gBACN,SAAS;gBACT,OAAO,EAAE,cAAc;gBACvB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;gBACtB,MAAM,EAAE,YAAY,EAAE,qCAAqC;aAC5D,CAAC;YAEF,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,oBAAoB,CAAC;YAC7D,IAAI,WAAW,EAAE,CAAC;gBAChB,UAAU,CAAC,MAAM,GAAG,gBAAgB,CAAC;gBACrC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;gBACxB,UAAU,CAAC,KAAK,GAAG;oBACjB,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;oBAC9C,KAAK,EAAE,WAAW,CAAC,KAAK;oBACxB,YAAY,EAAE,WAAW,CAAC,YAAY;iBACvC,CAAC;YACJ,CAAC;YACD,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEjC,MAAM;iBACH,OAAO,CAAC,SAAS,EAAE,kBAAkB,IAAI,cAAc,CAAC;iBACxD,IAAI,CAAC,GAAG,EAAE;gBACT,OAAO,CAAC,GAAG,CAAC,6CAA6C,IAAI,EAAE,CAAC,CAAC;gBACjE,MAAM,YAAY,GAAmC,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBACpF,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAEpE,IAAI,SAAS,GAAiB,IAAI,CAAC;gBACnC,IAAI,YAAY,EAAE,KAAK,EAAE,CAAC;oBACxB,MAAM;yBACH,SAAS,CAAC,EAAE,EAAE,kBAAkB,IAAI,cAAc,CAAC;yBACnD,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;wBACd,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,KAAK,CAAC,MAAM,sBAAsB,IAAI,EAAE,CAAC,CAAC;wBACnF,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;4BAC5C,IAAI,EAAE,GAAG,IAAI,GAAG,gBAAgB,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;4BAChD,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;4BACnC,WAAW,EAAE,gBAAgB,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;yBACtD,CAAC,CAAC,CAAC;wBACJ,6CAA6C;wBAC7C,2BAA2B,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;oBACtD,CAAC,CAAC;yBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;wBACf,OAAO,CAAC,KAAK,CACX,mCAAmC,IAAI,cAAc,KAAK,gBAAgB,KAAK,CAAC,KAAK,EAAE,CACxF,CAAC;wBACF,SAAS,GAAG,KAAK,CAAC;oBACpB,CAAC,CAAC,CAAC;gBACP,CAAC;gBAED,IAAI,YAAY,EAAE,OAAO,EAAE,CAAC;oBAC1B,MAAM;yBACH,WAAW,CAAC,EAAE,EAAE,kBAAkB,IAAI,cAAc,CAAC;yBACrD,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;wBAChB,OAAO,CAAC,GAAG,CACT,uBAAuB,OAAO,CAAC,OAAO,CAAC,MAAM,wBAAwB,IAAI,EAAE,CAC5E,CAAC;wBACF,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;4BACpD,IAAI,EAAE,GAAG,IAAI,GAAG,gBAAgB,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE;4BAClD,KAAK,EAAE,MAAM,CAAC,KAAK;4BACnB,WAAW,EAAE,MAAM,CAAC,WAAW;4BAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;yBAC5B,CAAC,CAAC,CAAC;oBACN,CAAC,CAAC;yBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;wBACf,OAAO,CAAC,KAAK,CACX,qCAAqC,IAAI,cAAc,KAAK,gBAAgB,KAAK,CAAC,KAAK,EAAE,CAC1F,CAAC;wBACF,SAAS,GAAG,KAAK,CAAC;oBACpB,CAAC,CAAC,CAAC;gBACP,CAAC;gBAED,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC;oBAChC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;oBAExB,6CAA6C;oBAC7C,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,MAAM,GAAG,cAAc,CAAC;oBACnC,UAAU,CAAC,KAAK,GAAG,wBAAwB,SAAS,GAAG,CAAC;gBAC1D,CAAC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACrB,gDAAgD;gBAChD,MAAM,YAAY,GAChB,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,8BAA8B,CAAC;oBACxD,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC;gBAErD,IAAI,YAAY,EAAE,CAAC;oBACjB,wEAAwE;oBACxE,uDAAuD;oBACvD,OAAO,CAAC,GAAG,CACT,2CAA2C,IAAI,6CAA6C,CAC7F,CAAC;oBACF,oCAAoC;oBACpC,IAAI,UAAU,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;wBAC3C,UAAU,CAAC,MAAM,GAAG,gBAAgB,CAAC;oBACvC,CAAC;oBACD,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CACX,uCAAuC,IAAI,cAAc,KAAK,gBAAgB,KAAK,CAAC,KAAK,EAAE,CAC5F,CAAC;oBACF,0BAA0B;oBAC1B,UAAU,CAAC,MAAM,GAAG,cAAc,CAAC;oBACnC,UAAU,CAAC,KAAK,GAAG,sBAAsB,KAAK,CAAC,KAAK,GAAG,CAAC;gBAC1D,CAAC;YACH,CAAC,CAAC,CAAC;YACL,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wFAAwF;QACxF,WAAW,GAAG,mBAAmB,CAAC;QAClC,MAAM,KAAK,CAAC;IACd,CAAC;IAED,WAAW,GAAG,eAAe,CAAC;IAC9B,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,yBAAyB;AACzB,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,MAAe,EAAE,UAAmB,EAAiB,EAAE;IAC5F,MAAM,6BAA6B,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF,6BAA6B;AAC7B,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAAyD,EAAE;IAC5F,MAAM,UAAU,GAA2B,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;IACrE,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,iBAAiB,GAAiB,WAAW,CAAC,UAAU;QAC5D,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC;QACrC,CAAC,CAAC,WAAW,CAAC;IAChB,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CACjC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QAC7D,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAErE,yDAAyD;QACzD,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1C,MAAM,UAAU,GAAG,YAAY,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,OAAO;gBACL,GAAG,IAAI;gBACP,WAAW,EAAE,UAAU,EAAE,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,sCAAsC;gBAChG,OAAO,EAAE,UAAU,EAAE,OAAO,KAAK,KAAK,EAAE,6CAA6C;aACtF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAChD,MAAM,YAAY,GAAG,YAAY,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1D,OAAO;gBACL,GAAG,MAAM;gBACT,WAAW,EAAE,YAAY,EAAE,WAAW,IAAI,MAAM,CAAC,WAAW,EAAE,sCAAsC;gBACpG,OAAO,EAAE,YAAY,EAAE,OAAO,KAAK,KAAK,EAAE,6CAA6C;aACxF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,IAAI;YACJ,MAAM;YACN,KAAK;YACL,KAAK,EAAE,gBAAgB;YACvB,OAAO,EAAE,kBAAkB;YAC3B,UAAU;YACV,OAAO;YACP,KAAK,EAAE,KAAK;gBACV,CAAC,CAAC;oBACE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;oBACxC,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,qDAAqD;iBACtD;gBACH,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC,CACF,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAClB,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,qBAAqB;AACrB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAA0B,EAAE;IACtE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,sCAAsC;AACtC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAA0B,EAAE;IAC7E,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC;AAC7E,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,UAAkB,EAAiB,EAAE;IACzE,OAAO,CAAC,GAAG,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;IAElD,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,mCAAmC;IACnC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,mCAAmC,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,sCAAsC,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACnC,aAAa,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QAC9C,UAAU,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAC7C,CAAC;IAED,0BAA0B;IAC1B,MAAM,6BAA6B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAEvD,OAAO,CAAC,GAAG,CAAC,oCAAoC,UAAU,EAAE,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,uCAAuC;AACvC,MAAM,mBAAmB,GAAG,KAAK,EAAE,UAAkB,EAAE,KAAa,EAAmB,EAAE;IACvF,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QACzC,oEAAoE;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,oDAAoD;QACpD,OAAO,UAAU,EAAE,OAAO,KAAK,KAAK,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,0BAA0B;AAC1B,MAAM,eAAe,GAAG,CAAC,QAAgB,EAA0B,EAAE;IACnE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;AACnG,CAAC,CAAC;AAEF,iBAAiB;AACjB,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,IAAY,EACZ,MAAoB,EAC6B,EAAE;IACnD,MAAM,MAAM,GAAyB,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAC7D,CAAC;AACH,CAAC,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,IAAY,EACqC,EAAE;IACnD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;IAChE,CAAC;IAED,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC3E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;AACnE,CAAC,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,IAAY,EACZ,MAAoB,EACpB,gBAAyB,KAAK,EACmB,EAAE;IACnD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC;QACnE,CAAC;QAED,uEAAuE;QACvE,oDAAoD;QACpD,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACtC,oCAAoC;YACpC,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,2BAA2B;YAC3B,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,MAAM,eAAe,EAAE,CAAC;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;QAC7D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;IACpE,CAAC;AACH,CAAC,CAAC;AAEF,oCAAoC;AACpC,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC9E,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QAC5D,sCAAsC;QACtC,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;YACnC,aAAa,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YAC9C,UAAU,CAAC,mBAAmB,GAAG,SAAS,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,2CAA2C,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1B,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,2CAA2C,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1E,oBAAoB;IACtB,CAAC;AACH,CAAC;AAED,+BAA+B;AAC/B,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,IAAY,EACZ,OAAgB,EACiC,EAAE;IACnD,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1C,qEAAqE;QACrE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,WAAW,CAAC,IAAI,CAAC,CAAC;YAElB,8DAA8D;YAC9D,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAC5D,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,WAAW,CAAC,KAAK,CAAC,GAAG;oBACnB,GAAG,WAAW,CAAC,KAAK,CAAC;oBACrB,MAAM,EAAE,cAAc;oBACtB,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,eAAe,EAAE,CAAC;IAC/F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;QAChE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;IACvE,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,CAAM,EAAE,KAAU,EAAE,EAAE;IACjE,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,wCAAwC,KAAK,EAAE,CAAC,CAAC;IAE7D,4DAA4D;IAC5D,kDAAkD;IAClD,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACvD,oDAAoD;QACpD,MAAM,WAAW,GAAG,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAElF,0EAA0E;QAC1E,IAAI,gBAAgB,GAAG,WAAW,CAAC,MAAM,CACvC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,CACtE,CAAC;QAEF,4EAA4E;QAC5E,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACtD,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACpD,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CACrC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,0DAA0D;QAC1D,MAAM,WAAW,GAAG,gBAAgB;aACjC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,gBAAgB,GAAG,WAAW;YAClC,CAAC,CAAC,mBAAmB,WAAW,SAAS;YACzC,CAAC,CAAC,uBAAuB,CAAC;QAE5B,OAAO;YACL,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,cAAc;oBACpB,WAAW,EAAE,qFAAqF,gBAAgB;;;;;;qBAMvG,WAAW,EAAE;oBACxB,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,6GAA6G;6BAChH;4BACD,KAAK,EAAE;gCACL,IAAI,EAAE,SAAS;gCACf,WAAW,EACT,kIAAkI;gCACpI,OAAO,EAAE,EAAE;6BACZ;yBACF;wBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;qBACpB;iBACF;gBACD;oBACE,IAAI,EAAE,WAAW;oBACjB,WAAW,EACT,yeAAye;oBAC3e,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,QAAQ,EAAE;gCACR,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,kEAAkE;6BAChF;4BACD,SAAS,EAAE;gCACT,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,qGAAqG;6BACxG;yBACF;wBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;qBACvB;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,cAAc,EAAE;SACpC,UAAU,CAAC,WAAW,CAAC;SACvB,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;QACrB,IAAI,UAAU,CAAC,OAAO,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC,IAAI,KAAK,KAAK,CAAC;QACrF,OAAO,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEL,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,KAAK,MAAM,UAAU,IAAI,cAAc,EAAE,CAAC;QACxC,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,6CAA6C;YAC7C,IAAI,YAAY,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YAEhF,+DAA+D;YAC/D,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,YAAY,GAAG,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBACpE,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;oBACtF,4CAA4C;oBAC5C,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAC7C,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,GAAG,gBAAgB,EAAE,GAAG,QAAQ,EAAE,CACnE,CAAC;oBACF,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACrF,CAAC;YACH,CAAC;YAED,sDAAsD;YACtD,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/D,MAAM,2BAA2B,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5D,MAAM,UAAU,GAAG,YAAY,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpD,OAAO;oBACL,GAAG,IAAI;oBACP,WAAW,EAAE,UAAU,EAAE,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,sCAAsC;iBACjG,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,QAAQ;KAChB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,OAAY,EAAE,KAAU,EAAE,EAAE;IACtE,OAAO,CAAC,GAAG,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpF,IAAI,CAAC;QACH,yCAAyC;QACzC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC3C,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;YAE7D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAE3E,8DAA8D;YAC9D,IAAI,YAAY,GAAG,GAAG,CAAC,CAAC,oBAAoB;YAE5C,8EAA8E;YAC9E,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACtD,YAAY,GAAG,GAAG,CAAC;YACrB,CAAC;YAED,6EAA6E;YAC7E,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/E,YAAY,GAAG,GAAG,CAAC;YACrB,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,+BAA+B,YAAY,gBAAgB,KAAK,GAAG,CAAC,CAAC;YAEjF,4CAA4C;YAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;YAClC,IAAI,OAAO,GAAyB,SAAS,CAAC,CAAC,iCAAiC;YAEhF,qEAAqE;YACrE,IAAI,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACvC,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBACtD,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;oBAC5D,OAAO,GAAG,cAAc,CAAC;oBACzB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvB,OAAO,CAAC,GAAG,CAAC,yCAAyC,WAAW,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC9F,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,UAAU,WAAW,iDAAiD,CAAC,CAAC;oBACtF,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YACxF,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAChE,2EAA2E;YAC3E,kCAAkC;YAClC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACjC,iCAAiC;gBACjC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAC7B,CAAC,UAAU,EAAE,EAAE,CACb,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU;oBACrC,UAAU,CAAC,MAAM,KAAK,WAAW;oBACjC,UAAU,CAAC,OAAO,KAAK,KAAK,CAC/B,CAAC;gBACF,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtD,gCAAgC;oBAChC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC9E,IAAI,UAAU,EAAE,CAAC;wBACf,gDAAgD;wBAChD,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;wBAC1E,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC5B,8CAA8C;4BAC9C,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;4BAC3D,MAAM,UAAU,GAAG,YAAY,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;4BAE1D,uEAAuE;4BACvE,OAAO;gCACL,GAAG,UAAU;gCACb,WAAW,EAAE,UAAU,EAAE,WAAW,IAAI,UAAU,CAAC,WAAW;gCAC9D,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,+BAA+B;6BAC/D,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,oEAAoE;gBACpE,OAAO;oBACL,IAAI,EAAE,MAAM,CAAC,QAAQ;oBACrB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;oBACrC,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;oBACvD,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,+BAA+B;iBAC/D,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;YAEF,gCAAgC;YAChC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBAClC,sDAAsD;gBACtD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;oBACnC,IAAI,UAAU,EAAE,CAAC;wBACf,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,UAAU,EAAE,CAAC,IAAY,CAAC,CAAC,CAAC;wBAC3E,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;oBACjC,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAC,CAAC,wBAAwB;YACvC,CAAC,CAAC,CACH,CAAC;YAEF,qCAAqC;YACrC,MAAM,QAAQ,GAAG;gBACf,KAAK;gBACL,QAAQ,EAAE;oBACR,KAAK,EAAE,KAAK;oBACZ,SAAS,EAAE,YAAY;oBACvB,YAAY,EAAE,KAAK,CAAC,MAAM;oBAC1B,SAAS,EACP,KAAK,CAAC,MAAM,GAAG,CAAC;wBACd,CAAC,CAAC,yHAAyH;wBAC3H,CAAC,CAAC,yEAAyE;oBAC/E,SAAS,EACP,KAAK,CAAC,MAAM,GAAG,CAAC;wBACd,CAAC,CAAC,yEAAyE;wBAC3E,CAAC,CAAC,oEAAoE;iBAC3E;aACF,CAAC;YAEF,sDAAsD;YACtD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;qBAC/B;iBACF;aACF,CAAC;QACJ,CAAC;QAED,iCAAiC;QACjC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACxC,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;YAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;YACpE,IAAI,gBAAwC,CAAC;YAC7C,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC1B,gBAAgB,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,2CAA2C;gBAC3C,gBAAgB,GAAG,WAAW,CAAC,IAAI,CACjC,CAAC,UAAU,EAAE,EAAE,CACb,UAAU,CAAC,MAAM,KAAK,WAAW;oBACjC,UAAU,CAAC,OAAO,KAAK,KAAK;oBAC5B,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAC1D,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,yCAAyC,QAAQ,EAAE,CAAC,CAAC;YACvE,CAAC;YAED,yCAAyC;YACzC,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YACjF,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,0BAA0B,gBAAgB,CAAC,IAAI,GAAG,CAAC,CAAC;YACvF,CAAC;YAED,qCAAqC;YACrC,IAAI,gBAAgB,CAAC,aAAa,EAAE,CAAC;gBACnC,8CAA8C;gBAC9C,MAAM,aAAa,GAAG,gBAAgB,CAAC,aAAa,CAAC;gBAErD,oFAAoF;gBACpF,MAAM,SAAS,GACb,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;gBAE3F,OAAO,CAAC,GAAG,CACT,0BAA0B,QAAQ,gBAAgB,gBAAgB,CAAC,IAAI,qBAAqB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CACxH,CAAC;gBAEF,iDAAiD;gBACjD,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC;gBACtD,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;oBAC/C,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;oBACnC,CAAC,CAAC,QAAQ,CAAC;gBAEb,4DAA4D;gBAC5D,IAAI,kBAAsD,CAAC;gBAC3D,IAAI,cAAc,GAAyD,IAAI,CAAC;gBAEhF,+DAA+D;gBAC/D,IAAI,KAAK,EAAE,OAAO,EAAE,CAAC;oBACnB,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACN,sCAAsC;oBACtC,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,WAAW,EAAE,CAAC;oBAClE,cAAc,GAAG,qBAAqB,CAAC,UAAU,EAAE,CAAC;gBACtD,CAAC;gBAED,IAAI,cAAc,IAAI,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;oBAC3E,kBAAkB,GAAG,EAAE,CAAC;oBACxB,KAAK,MAAM,UAAU,IAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;wBAC5E,+EAA+E;wBAC/E,MAAM,WAAW,GACf,cAAc,CAAC,UAAU,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;wBACzE,IAAI,WAAW,EAAE,CAAC;4BAChB,kBAAkB,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;gCACzD,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;gCAChB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;wBAC1B,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;gBAE1F,OAAO,CAAC,GAAG,CAAC,mCAAmC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;yBAC7B;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,mDAAmD;YACnD,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;YACvC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,gCAAgC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3E,CAAC;YAED,oFAAoF;YACpF,MAAM,SAAS,GACb,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;YAE3F,OAAO,CAAC,GAAG,CACT,kBAAkB,QAAQ,gBAAgB,gBAAgB,CAAC,IAAI,qBAAqB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAChH,CAAC;YAEF,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC;YACtD,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtF,MAAM,MAAM,GAAG,MAAM,qBAAqB,CACxC,gBAAgB,EAChB;gBACE,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,SAAS;aACrB,EACD,gBAAgB,CAAC,OAAO,IAAI,EAAE,CAC/B,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjE,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,wBAAwB;QACxB,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,qCAAqC;QACrC,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;YAC7B,8CAA8C;YAC9C,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;YAE/C,iDAAiD;YACjD,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC;YAChD,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC1D,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC9C,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;YAExB,OAAO,CAAC,GAAG,CACT,0BAA0B,aAAa,gBAAgB,UAAU,CAAC,IAAI,qBAAqB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CACtI,CAAC;YAEF,4DAA4D;YAC5D,IAAI,kBAAsD,CAAC;YAC3D,IAAI,cAAc,GAAyD,IAAI,CAAC;YAEhF,+DAA+D;YAC/D,IAAI,KAAK,EAAE,OAAO,EAAE,CAAC;gBACnB,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,sCAAsC;gBACtC,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,WAAW,EAAE,CAAC;gBAClE,cAAc,GAAG,qBAAqB,CAAC,UAAU,EAAE,CAAC;YACtD,CAAC;YAED,IAAI,cAAc,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;gBACrE,kBAAkB,GAAG,EAAE,CAAC;gBACxB,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;oBACtE,+EAA+E;oBAC/E,MAAM,WAAW,GACf,cAAc,CAAC,UAAU,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;oBACzE,IAAI,WAAW,EAAE,CAAC;wBAChB,kBAAkB,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;4BACzD,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;4BAChB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBAC1B,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,CACzC,aAAa,EACb,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAC9B,kBAAkB,CACnB,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,mCAAmC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzE,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;qBAC7B;iBACF;aACF,CAAC;QACJ,CAAC;QAED,qBAAqB;QACrB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,gCAAgC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC;QAChD,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAC1D,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9C,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,qBAAqB,CACxC,UAAU,EACV,OAAO,CAAC,MAAM,EACd,UAAU,CAAC,OAAO,IAAI,EAAE,CACzB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;QAC1D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,UAAU,KAAK,EAAE;iBACxB;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,OAAY,EAAE,KAAU,EAAE,EAAE;IACvE,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QACvD,IAAI,MAA8B,CAAC;QACnC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,2CAA2C;YAC3C,MAAM,GAAG,WAAW,CAAC,IAAI,CACvB,CAAC,UAAU,EAAE,EAAE,CACb,UAAU,CAAC,MAAM,KAAK,WAAW;gBACjC,UAAU,CAAC,OAAO,KAAK,KAAK;gBAC5B,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAC5D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,mDAAmD;QACnD,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC;QAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEvF,MAAM,YAAY,GAAG;YACnB,IAAI,EAAE,eAAe,IAAI,EAAE;YAC3B,SAAS,EAAE,UAAU;SACtB,CAAC;QACF,6BAA6B;QAC7B,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,qBAAqB,eAAe,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;QAC3D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,UAAU,KAAK,EAAE;iBACxB;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,CAAM,EAAE,KAAU,EAAE,EAAE;IACnE,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAC;IAE/D,MAAM,cAAc,GAAG,cAAc,EAAE;SACpC,UAAU,CAAC,WAAW,CAAC;SACvB,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;QACrB,IAAI,UAAU,CAAC,OAAO,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC,IAAI,KAAK,KAAK,CAAC;QACrF,OAAO,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEL,MAAM,UAAU,GAAU,EAAE,CAAC;IAC7B,KAAK,MAAM,UAAU,IAAI,cAAc,EAAE,CAAC;QACxC,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,+CAA+C;YAC/C,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAE/D,IAAI,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC;YACxC,IAAI,YAAY,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBACzC,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAW,EAAE,EAAE;oBACzD,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACzD,sDAAsD;oBACtD,OAAO,YAAY,EAAE,OAAO,KAAK,KAAK,CAAC;gBACzC,CAAC,CAAC,CAAC;YACL,CAAC;YAED,iEAAiE;YACjE,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC3E,IACE,mBAAmB;oBACnB,mBAAmB,CAAC,KAAK,KAAK,KAAK;oBACnC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,EACxC,CAAC;oBACD,yEAAyE;oBACzE,wEAAwE;gBAC1E,CAAC;YACH,CAAC;YAED,sDAAsD;YACtD,MAAM,6BAA6B,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE;gBACvE,MAAM,YAAY,GAAG,YAAY,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC1D,OAAO;oBACL,GAAG,MAAM;oBACT,WAAW,EAAE,YAAY,EAAE,WAAW,IAAI,MAAM,CAAC,WAAW,EAAE,sCAAsC;iBACrG,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,IAAI,CAAC,GAAG,6BAA6B,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,UAAU;KACpB,CAAC;AACJ,CAAC,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,KAAc,EAAU,EAAE;IACvF,8CAA8C;IAC9C,IAAI,UAAU,GAAG,IAAI,CAAC;IAEtB,IAAI,KAAK,EAAE,CAAC;QACV,2CAA2C;QAC3C,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,wBAAwB;YACxB,UAAU,GAAG,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,gBAAgB;YAChB,UAAU,GAAG,GAAG,IAAI,IAAI,KAAK,QAAQ,CAAC;QACxC,CAAC;IACH,CAAC;IACD,iDAAiD;IAEjD,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAC7B,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAC5D,CAAC;IACF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,CAAC;IACzE,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;IACvE,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,CAAC;IACzE,MAAM,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;IAC7E,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
1
+ {"version":3,"file":"mcpService.js","sourceRoot":"","sources":["../../src/services/mcpService.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import OAuth2Server from '@node-oauth/oauth2-server';
2
- import { loadSettings } from '../config/index.js';
2
+ import { getSystemConfigDao } from '../dao/index.js';
3
3
  import { findUserByUsername, verifyPassword } from '../models/User.js';
4
4
  import { findOAuthClientById, saveAuthorizationCode, getAuthorizationCode, revokeAuthorizationCode, saveToken, getToken, revokeToken, } from '../models/OAuth.js';
5
5
  import crypto from 'crypto';
@@ -32,8 +32,9 @@ const oauthModel = {
32
32
  * Save authorization code
33
33
  */
34
34
  saveAuthorizationCode: async (code, client, user) => {
35
- const settings = loadSettings();
36
- const oauthConfig = settings.systemConfig?.oauthServer;
35
+ const systemConfigDao = getSystemConfigDao();
36
+ const systemConfig = await systemConfigDao.get();
37
+ const oauthConfig = systemConfig?.oauthServer;
37
38
  const lifetime = oauthConfig?.authorizationCodeLifetime || 300;
38
39
  const scopeString = Array.isArray(code.scope) ? code.scope.join(' ') : code.scope;
39
40
  const authCode = saveAuthorizationCode({
@@ -100,8 +101,9 @@ const oauthModel = {
100
101
  * Save access token and refresh token
101
102
  */
102
103
  saveToken: async (token, client, user) => {
103
- const settings = loadSettings();
104
- const oauthConfig = settings.systemConfig?.oauthServer;
104
+ const systemConfigDao = getSystemConfigDao();
105
+ const systemConfig = await systemConfigDao.get();
106
+ const oauthConfig = systemConfig?.oauthServer;
105
107
  const accessTokenLifetime = oauthConfig?.accessTokenLifetime || 3600;
106
108
  const refreshTokenLifetime = oauthConfig?.refreshTokenLifetime || 1209600;
107
109
  const scopeString = Array.isArray(token.scope) ? token.scope.join(' ') : token.scope;
@@ -199,15 +201,18 @@ const oauthModel = {
199
201
  return false;
200
202
  }
201
203
  const requestedScopes = Array.isArray(scope) ? scope : scope.split(' ');
202
- const tokenScopes = Array.isArray(token.scope) ? token.scope : token.scope.split(' ');
204
+ const tokenScopes = Array.isArray(token.scope)
205
+ ? token.scope
206
+ : token.scope.split(' ');
203
207
  return requestedScopes.every((s) => tokenScopes.includes(s));
204
208
  },
205
209
  /**
206
210
  * Validate scope
207
211
  */
208
212
  validateScope: async (user, client, scope) => {
209
- const settings = loadSettings();
210
- const oauthConfig = settings.systemConfig?.oauthServer;
213
+ const systemConfigDao = getSystemConfigDao();
214
+ const systemConfig = await systemConfigDao.get();
215
+ const oauthConfig = systemConfig?.oauthServer;
211
216
  const allowedScopes = oauthConfig?.allowedScopes || ['read', 'write'];
212
217
  if (!scope || scope.length === 0) {
213
218
  return allowedScopes;
@@ -221,9 +226,10 @@ let oauth = null;
221
226
  /**
222
227
  * Initialize OAuth server
223
228
  */
224
- export const initOAuthServer = () => {
225
- const settings = loadSettings();
226
- const oauthConfig = settings.systemConfig?.oauthServer;
229
+ export const initOAuthServer = async () => {
230
+ const systemConfigDao = getSystemConfigDao();
231
+ const systemConfig = await systemConfigDao.get();
232
+ const oauthConfig = systemConfig?.oauthServer;
227
233
  const requireState = oauthConfig?.requireState === true;
228
234
  if (!oauthConfig || !oauthConfig.enabled) {
229
235
  console.log('OAuth authorization server is disabled or not configured');
@@ -265,7 +271,7 @@ export const isOAuthServerEnabled = () => {
265
271
  * Authenticate user for OAuth authorization
266
272
  */
267
273
  export const authenticateUser = async (username, password) => {
268
- const user = findUserByUsername(username);
274
+ const user = await findUserByUsername(username);
269
275
  if (!user) {
270
276
  return null;
271
277
  }