@inspectr/mcplab 1.8.0 → 1.10.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 (77) hide show
  1. package/dist/app/assets/index-DBtCqMnx.js +249 -0
  2. package/dist/app/assets/index-DodUXbIC.css +1 -0
  3. package/dist/app/icons/claude-color.svg +1 -0
  4. package/dist/app/icons/openai.svg +1 -0
  5. package/dist/app/index.html +2 -2
  6. package/dist/app-server/app-context.d.ts +23 -9
  7. package/dist/app-server/app-context.d.ts.map +1 -1
  8. package/dist/app-server/assistant-common.d.ts +3 -1
  9. package/dist/app-server/assistant-common.d.ts.map +1 -1
  10. package/dist/app-server/assistant-common.js +4 -2
  11. package/dist/app-server/assistant-common.js.map +1 -1
  12. package/dist/app-server/assistant-events.d.ts +35 -0
  13. package/dist/app-server/assistant-events.d.ts.map +1 -0
  14. package/dist/app-server/assistant-events.js +42 -0
  15. package/dist/app-server/assistant-events.js.map +1 -0
  16. package/dist/app-server/config-store.d.ts +2 -0
  17. package/dist/app-server/config-store.d.ts.map +1 -1
  18. package/dist/app-server/config-store.js +10 -5
  19. package/dist/app-server/config-store.js.map +1 -1
  20. package/dist/app-server/oauth-debugger-domain.d.ts +202 -181
  21. package/dist/app-server/oauth-debugger-domain.d.ts.map +1 -1
  22. package/dist/app-server/oauth-debugger-domain.js +8 -2
  23. package/dist/app-server/oauth-debugger-domain.js.map +1 -1
  24. package/dist/app-server/oauth-runtime-routes.d.ts +12 -12
  25. package/dist/app-server/oauth-runtime-routes.d.ts.map +1 -1
  26. package/dist/app-server/oauth-runtime-routes.js.map +1 -1
  27. package/dist/app-server/oauth-session-manager.d.ts +46 -40
  28. package/dist/app-server/oauth-session-manager.d.ts.map +1 -1
  29. package/dist/app-server/oauth-session-manager.js.map +1 -1
  30. package/dist/app-server/result-assistant-domain.d.ts +9 -3
  31. package/dist/app-server/result-assistant-domain.d.ts.map +1 -1
  32. package/dist/app-server/result-assistant-domain.js +41 -46
  33. package/dist/app-server/result-assistant-domain.js.map +1 -1
  34. package/dist/app-server/result-assistant-tools.d.ts +11 -0
  35. package/dist/app-server/result-assistant-tools.d.ts.map +1 -0
  36. package/dist/app-server/result-assistant-tools.js +27 -0
  37. package/dist/app-server/result-assistant-tools.js.map +1 -0
  38. package/dist/app-server/result-assistant.d.ts +4 -0
  39. package/dist/app-server/result-assistant.d.ts.map +1 -1
  40. package/dist/app-server/result-assistant.js +90 -30
  41. package/dist/app-server/result-assistant.js.map +1 -1
  42. package/dist/app-server/router.d.ts.map +1 -1
  43. package/dist/app-server/router.js +31 -5
  44. package/dist/app-server/router.js.map +1 -1
  45. package/dist/app-server/runs-routes.d.ts +1 -1
  46. package/dist/app-server/runs-routes.d.ts.map +1 -1
  47. package/dist/app-server/runs-routes.js +2 -83
  48. package/dist/app-server/runs-routes.js.map +1 -1
  49. package/dist/app-server/scenario-assistant-domain.d.ts +156 -130
  50. package/dist/app-server/scenario-assistant-domain.d.ts.map +1 -1
  51. package/dist/app-server/scenario-assistant-domain.js +5 -3
  52. package/dist/app-server/scenario-assistant-domain.js.map +1 -1
  53. package/dist/app-server/scenario-assistant.d.ts +26 -10
  54. package/dist/app-server/scenario-assistant.d.ts.map +1 -1
  55. package/dist/app-server/scenario-assistant.js +137 -5
  56. package/dist/app-server/scenario-assistant.js.map +1 -1
  57. package/dist/app-server/tool-analysis-domain.d.ts +178 -163
  58. package/dist/app-server/tool-analysis-domain.d.ts.map +1 -1
  59. package/dist/app-server/tool-analysis-domain.js +7 -0
  60. package/dist/app-server/tool-analysis-domain.js.map +1 -1
  61. package/dist/app-server/tool-analysis.d.ts +19 -10
  62. package/dist/app-server/tool-analysis.d.ts.map +1 -1
  63. package/dist/app-server/tool-analysis.js.map +1 -1
  64. package/dist/app-server/types.d.ts +7 -0
  65. package/dist/app-server/types.d.ts.map +1 -1
  66. package/dist/cli.js +186 -103
  67. package/dist/cli.js.map +1 -1
  68. package/dist/eval-config-files.d.ts +13 -0
  69. package/dist/eval-config-files.d.ts.map +1 -0
  70. package/dist/eval-config-files.js +89 -0
  71. package/dist/eval-config-files.js.map +1 -0
  72. package/dist/run-interactive.d.ts.map +1 -1
  73. package/dist/run-interactive.js +14 -10
  74. package/dist/run-interactive.js.map +1 -1
  75. package/package.json +4 -4
  76. package/dist/app/assets/index-DHs9MRuO.css +0 -1
  77. package/dist/app/assets/index-UuO3yMWK.js +0 -253
@@ -3,10 +3,93 @@ import { isAbsolute, join } from 'node:path';
3
3
  import { McpClientManager, loadConfig } from '@inspectr/mcplab-core';
4
4
  import { flushDanglingToolCalls } from './assistant-common.js';
5
5
  import { OAuthAuthorizationRequiredError } from './oauth-session-manager.js';
6
+ import { broadcastAssistantSseEvent, createAssistantSseEvent, endAssistantSseClients, serveAssistantSseStream } from './assistant-events.js';
6
7
  export async function handleScenarioAssistantRoutes(params) {
7
8
  const { req, res, pathname, method, settings, assistantSessions, oauthSessionManager, deps } = params;
8
9
  const { parseBody, asJson, cleanupAssistantSessions, touchAssistantSession, assistantSessionView, ensureInsideRoot, readLibraries, pickDefaultAssistantAgentName, resolveAssistantAgentFromConfig, resolveAssistantAgentFromLibraries, preloadAssistantTools, continueAssistantTurn, executeAssistantToolCall, summarizeToolResultForAssistant } = deps;
9
10
  const errorMessage = (error) => (error instanceof Error ? error.message : String(error));
11
+ const publishSessionEvent = (session, type, payload = {}) => {
12
+ broadcastAssistantSseEvent(session, createAssistantSseEvent(type, {
13
+ sessionId: session.id,
14
+ session: assistantSessionView(session),
15
+ ...payload
16
+ }));
17
+ };
18
+ const continueWithAutoApprovedReads = async (session) => {
19
+ publishSessionEvent(session, 'turn_started');
20
+ let output = await continueAssistantTurn(session);
21
+ for (let i = 0; i < 25; i += 1) {
22
+ const pendingCalls = output.response?.pendingToolCalls;
23
+ if (!pendingCalls?.length || output.response?.type !== 'tool_call_request') {
24
+ if (output.response?.type === 'assistant_message') {
25
+ publishSessionEvent(session, 'assistant_message_completed', {
26
+ text: output.response.text,
27
+ suggestions: output.response.suggestions
28
+ });
29
+ }
30
+ else if (output.response?.type === 'tool_call_request' &&
31
+ output.response.pendingToolCalls) {
32
+ publishSessionEvent(session, 'tool_call_requested', {
33
+ pendingToolCalls: output.response.pendingToolCalls,
34
+ pendingToolCallId: output.response.pendingToolCalls[0]?.id
35
+ });
36
+ }
37
+ break;
38
+ }
39
+ publishSessionEvent(session, 'tool_call_requested', {
40
+ pendingToolCalls: pendingCalls,
41
+ pendingToolCallId: pendingCalls[0]?.id
42
+ });
43
+ const allReadOnly = pendingCalls.every((p) => session.tools.find((t) => t.name === p.publicToolName)?.annotations?.readOnlyHint === true);
44
+ if (!allReadOnly)
45
+ break;
46
+ let hadError = false;
47
+ for (const pending of pendingCalls) {
48
+ pending.status = 'approved';
49
+ publishSessionEvent(session, 'tool_call_approved', { pendingToolCallId: pending.id });
50
+ try {
51
+ const toolResult = await executeAssistantToolCall(session, pending);
52
+ pending.resultPreview = summarizeToolResultForAssistant(toolResult);
53
+ session.llmMessages.push({
54
+ role: 'tool',
55
+ content: pending.resultPreview,
56
+ tool_call_id: pending.id,
57
+ name: pending.publicToolName
58
+ });
59
+ publishSessionEvent(session, 'tool_call_resolved', {
60
+ pendingToolCallId: pending.id,
61
+ pendingToolCall: pending
62
+ });
63
+ }
64
+ catch (error) {
65
+ pending.status = 'error';
66
+ pending.error = error instanceof Error ? error.message : String(error);
67
+ session.llmMessages.push({
68
+ role: 'tool',
69
+ content: JSON.stringify({ error: pending.error }),
70
+ tool_call_id: pending.id,
71
+ name: pending.publicToolName
72
+ });
73
+ publishSessionEvent(session, 'session_error', {
74
+ pendingToolCallId: pending.id,
75
+ error: pending.error
76
+ });
77
+ hadError = true;
78
+ }
79
+ }
80
+ touchAssistantSession(session);
81
+ if (hadError)
82
+ break;
83
+ output = await continueAssistantTurn(session);
84
+ }
85
+ if (output.response?.type === 'assistant_message') {
86
+ publishSessionEvent(session, 'assistant_message_completed', {
87
+ text: output.response.text,
88
+ suggestions: output.response.suggestions
89
+ });
90
+ }
91
+ return output;
92
+ };
10
93
  if (pathname === '/api/scenario-assistant/sessions' && method === 'POST') {
11
94
  cleanupAssistantSessions(assistantSessions);
12
95
  const body = (await parseBody(req));
@@ -85,7 +168,9 @@ export async function handleScenarioAssistantRoutes(params) {
85
168
  pendingToolCalls: [],
86
169
  chatMessages: [],
87
170
  llmMessages: [],
88
- warnings
171
+ warnings,
172
+ events: [],
173
+ clients: new Set()
89
174
  };
90
175
  session.chatMessages.push({
91
176
  id: `msg-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
@@ -111,11 +196,30 @@ export async function handleScenarioAssistantRoutes(params) {
111
196
  return true;
112
197
  }
113
198
  }
199
+ for (const warning of warnings) {
200
+ publishSessionEvent(session, 'session_warning', { warning });
201
+ }
114
202
  await preloadAssistantTools(session, serversByName, selectedServerNames, { serverAuthHeaders });
115
203
  assistantSessions.set(session.id, session);
204
+ publishSessionEvent(session, 'session_started');
116
205
  asJson(res, 201, { sessionId: session.id, session: assistantSessionView(session) });
117
206
  return true;
118
207
  }
208
+ if (pathname.startsWith('/api/scenario-assistant/sessions/') &&
209
+ pathname.endsWith('/events') &&
210
+ method === 'GET') {
211
+ cleanupAssistantSessions(assistantSessions);
212
+ const sessionId = pathname
213
+ .replace('/api/scenario-assistant/sessions/', '')
214
+ .replace('/events', '');
215
+ const session = assistantSessions.get(sessionId);
216
+ if (!session) {
217
+ asJson(res, 404, { error: 'Scenario Assistant session not found' });
218
+ return true;
219
+ }
220
+ serveAssistantSseStream(req, res, session);
221
+ return true;
222
+ }
119
223
  if (pathname.startsWith('/api/scenario-assistant/sessions/') && method === 'GET') {
120
224
  cleanupAssistantSessions(assistantSessions);
121
225
  const sessionId = pathname.replace('/api/scenario-assistant/sessions/', '');
@@ -131,6 +235,11 @@ export async function handleScenarioAssistantRoutes(params) {
131
235
  if (pathname.startsWith('/api/scenario-assistant/sessions/') && method === 'DELETE') {
132
236
  cleanupAssistantSessions(assistantSessions);
133
237
  const sessionId = pathname.replace('/api/scenario-assistant/sessions/', '');
238
+ const session = assistantSessions.get(sessionId);
239
+ if (session) {
240
+ publishSessionEvent(session, 'session_finished');
241
+ endAssistantSseClients(session);
242
+ }
134
243
  assistantSessions.delete(sessionId);
135
244
  asJson(res, 200, { ok: true });
136
245
  return true;
@@ -160,7 +269,7 @@ export async function handleScenarioAssistantRoutes(params) {
160
269
  });
161
270
  flushDanglingToolCalls(session.llmMessages);
162
271
  session.llmMessages.push({ role: 'user', content: message });
163
- const output = await continueAssistantTurn(session);
272
+ const output = await continueWithAutoApprovedReads(session);
164
273
  asJson(res, 200, output);
165
274
  return true;
166
275
  }
@@ -203,6 +312,7 @@ export async function handleScenarioAssistantRoutes(params) {
203
312
  pending.arguments = body.argumentsOverride;
204
313
  }
205
314
  pending.status = 'approved';
315
+ publishSessionEvent(session, 'tool_call_approved', { pendingToolCallId: pending.id });
206
316
  try {
207
317
  const toolResult = await executeAssistantToolCall(session, pending);
208
318
  pending.resultPreview = summarizeToolResultForAssistant(toolResult);
@@ -228,9 +338,17 @@ export async function handleScenarioAssistantRoutes(params) {
228
338
  text: `Tool error (${pending.server}::${pending.tool}): ${pending.error}`,
229
339
  createdAt: new Date().toISOString()
230
340
  });
341
+ publishSessionEvent(session, 'session_error', {
342
+ pendingToolCallId: pending.id,
343
+ error: pending.error
344
+ });
231
345
  }
346
+ publishSessionEvent(session, 'tool_call_resolved', {
347
+ pendingToolCallId: pending.id,
348
+ pendingToolCall: pending
349
+ });
232
350
  if (allSiblingsResolved(session, callId)) {
233
- const output = await continueAssistantTurn(session);
351
+ const output = await continueWithAutoApprovedReads(session);
234
352
  asJson(res, 200, output);
235
353
  }
236
354
  else {
@@ -279,8 +397,13 @@ export async function handleScenarioAssistantRoutes(params) {
279
397
  tool_call_id: pending.id,
280
398
  name: pending.publicToolName
281
399
  });
400
+ publishSessionEvent(session, 'tool_call_denied', { pendingToolCallId: pending.id });
401
+ publishSessionEvent(session, 'tool_call_resolved', {
402
+ pendingToolCallId: pending.id,
403
+ pendingToolCall: pending
404
+ });
282
405
  if (allSiblingsResolved(session, callId)) {
283
- const output = await continueAssistantTurn(session);
406
+ const output = await continueWithAutoApprovedReads(session);
284
407
  asJson(res, 200, output);
285
408
  }
286
409
  else {
@@ -313,6 +436,7 @@ export async function handleScenarioAssistantRoutes(params) {
313
436
  }
314
437
  for (const pending of pendingCalls) {
315
438
  pending.status = 'approved';
439
+ publishSessionEvent(session, 'tool_call_approved', { pendingToolCallId: pending.id });
316
440
  try {
317
441
  const toolResult = await executeAssistantToolCall(session, pending);
318
442
  pending.resultPreview = summarizeToolResultForAssistant(toolResult);
@@ -338,9 +462,17 @@ export async function handleScenarioAssistantRoutes(params) {
338
462
  text: `Tool error (${pending.server}::${pending.tool}): ${pending.error}`,
339
463
  createdAt: new Date().toISOString()
340
464
  });
465
+ publishSessionEvent(session, 'session_error', {
466
+ pendingToolCallId: pending.id,
467
+ error: pending.error
468
+ });
341
469
  }
470
+ publishSessionEvent(session, 'tool_call_resolved', {
471
+ pendingToolCallId: pending.id,
472
+ pendingToolCall: pending
473
+ });
342
474
  }
343
- const output = await continueAssistantTurn(session);
475
+ const output = await continueWithAutoApprovedReads(session);
344
476
  asJson(res, 200, output);
345
477
  return true;
346
478
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scenario-assistant.js","sourceRoot":"","sources":["../../src/app-server/scenario-assistant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scenario-assistant.js","sourceRoot":"","sources":["../../src/app-server/scenario-assistant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EACL,gBAAgB,EAChB,UAAU,EAGX,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EACL,+BAA+B,EAEhC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EAExB,MAAM,uBAAuB,CAAC;AAoB/B,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,MASnD;IACC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,IAAI,EAAE,GAC1F,MAAM,CAAC;IACT,MAAM,EACJ,SAAS,EACT,MAAM,EACN,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,6BAA6B,EAC7B,+BAA+B,EAC/B,kCAAkC,EAClC,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,+BAA+B,EAChC,GAAG,IAAI,CAAC;IAET,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAGlG,MAAM,mBAAmB,GAAG,CAC1B,OAAiC,EACjC,IAA2B,EAC3B,UAAmC,EAAE,EACrC,EAAE;QACF,0BAA0B,CACxB,OAAO,EACP,uBAAuB,CAAC,IAAI,EAAE;YAC5B,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC;YACtC,GAAG,OAAO;SACX,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,6BAA6B,GAAG,KAAK,EAAE,OAAiC,EAAE,EAAE;QAChF,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC7C,IAAI,MAAM,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;YACvD,IAAI,CAAC,YAAY,EAAE,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBAC3E,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,KAAK,mBAAmB,EAAE,CAAC;oBAClD,mBAAmB,CAAC,OAAO,EAAE,6BAA6B,EAAE;wBAC1D,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;wBAC1B,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW;qBACzC,CAAC,CAAC;gBACL,CAAC;qBAAM,IACL,MAAM,CAAC,QAAQ,EAAE,IAAI,KAAK,mBAAmB;oBAC7C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAChC,CAAC;oBACD,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,EAAE;wBAClD,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,gBAAgB;wBAClD,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE;qBAC3D,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YACR,CAAC;YACD,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,EAAE;gBAClD,gBAAgB,EAAE,YAAY;gBAC9B,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE;aACvC,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CACpC,CAAC,CAAC,EAAE,EAAE,CACJ,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,YAAY,KAAK,IAAI,CAC7F,CAAC;YACF,IAAI,CAAC,WAAW;gBAAE,MAAM;YACxB,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;gBACnC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;gBAC5B,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,EAAE,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtF,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBACpE,OAAO,CAAC,aAAa,GAAG,+BAA+B,CAAC,UAAU,CAAC,CAAC;oBACpE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;wBACvB,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,OAAO,CAAC,aAAa;wBAC9B,YAAY,EAAE,OAAO,CAAC,EAAE;wBACxB,IAAI,EAAE,OAAO,CAAC,cAAc;qBAC7B,CAAC,CAAC;oBACH,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,EAAE;wBACjD,iBAAiB,EAAE,OAAO,CAAC,EAAE;wBAC7B,eAAe,EAAE,OAAO;qBACzB,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;oBACzB,OAAO,CAAC,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACvE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;wBACvB,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;wBACjD,YAAY,EAAE,OAAO,CAAC,EAAE;wBACxB,IAAI,EAAE,OAAO,CAAC,cAAc;qBAC7B,CAAC,CAAC;oBACH,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE;wBAC5C,iBAAiB,EAAE,OAAO,CAAC,EAAE;wBAC7B,KAAK,EAAE,OAAO,CAAC,KAAK;qBACrB,CAAC,CAAC;oBACH,QAAQ,GAAG,IAAI,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC/B,IAAI,QAAQ;gBAAE,MAAM;YACpB,MAAM,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,KAAK,mBAAmB,EAAE,CAAC;YAClD,mBAAmB,CAAC,OAAO,EAAE,6BAA6B,EAAE;gBAC1D,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;gBAC1B,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW;aACzC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,IAAI,QAAQ,KAAK,kCAAkC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACzE,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC,CAKjC,CAAC;QACF,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,MAAM,2BAA2B,GAAG,MAAM,CAAC,IAAI,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzF,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IACE,CAAC,UAAU;YACX,OAAO,UAAU,KAAK,QAAQ;YAC9B,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC;YAC3B,CAAE,UAAqC,CAAC,QAAQ;YAChD,OAAQ,UAAqC,CAAC,QAAQ,KAAK,QAAQ,EACnE,CAAC;YACD,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC;YAC5D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,UAA4B,CAAC;QAC7C,IAAI,UAA8B,CAAC;QACnC,IAAI,WAAwB,CAAC;QAC7B,IAAI,aAAoC,CAAC;QACzC,IAAI,QAAQ,GAAa,EAAE,CAAC;QAC5B,IAAI,0BAA0B,GAAG,EAAE,CAAC;QACpC,IAAI,aAAa,EAAE,CAAC;YAClB,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC;gBACpC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;gBACpD,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;YAChF,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,qBAAqB,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC/D,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;YAC7E,QAAQ,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;YACxC,0BAA0B,GAAG,6BAA6B,CAAC;gBACzD,SAAS,EAAE,2BAA2B;gBACtC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;aAC9C,CAAC,CAAC;YACH,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBAChC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE;oBACf,KAAK,EAAE,oEAAoE;iBAC5E,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YACD,WAAW,GAAG,+BAA+B,CAAC,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;YACzF,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACvD,0BAA0B,GAAG,6BAA6B,CAAC;gBACzD,SAAS,EAAE,2BAA2B;gBACtC,eAAe,EAAE,QAAQ,CAAC,0BAA0B;gBACpD,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aAC1C,CAAC,CAAC;YACH,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBAChC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE;oBACf,KAAK,EAAE,yEAAyE;iBACjF,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YACD,WAAW,GAAG,kCAAkC,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;YACxF,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC;QACpC,CAAC;QACD,MAAM,OAAO,GAA6B;YACxC,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YACjE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;YACzB,UAAU;YACV,0BAA0B;YAC1B,OAAO;YACP,WAAW;YACX,GAAG,EAAE,IAAI,gBAAgB,EAAE;YAC3B,KAAK,EAAE,EAAE;YACT,aAAa,EAAE,IAAI,GAAG,EAAE;YACxB,gBAAgB,EAAE,EAAE;YACpB,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,EAAE;YACf,QAAQ;YACR,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,IAAI,GAAG,EAAE;SACnB,CAAC;QACF,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;YACxB,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YACjE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,qCAAqC;YAC3C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QACH,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CACpC,IAAI,GAAG,CACL,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;YACzC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC,CAAC,EAAE,CACP,CACF,CAAC;QACF,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CACjD,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,KAAK,0BAA0B,CACrF,CAAC;QACF,IAAI,iBAAqE,CAAC;QAC1E,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,iBAAiB,GAAG,MAAM,mBAAmB,CAAC,wBAAwB,CACpE,gBAAgB,EAChB,GAAG,CAAC,OAAO,CAAC,IAAI,CACjB,CAAC;YACJ,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,IAAI,KAAK,YAAY,+BAA+B,EAAE,CAAC;oBACrD,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBAC/E,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACjD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,qBAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAChG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC3C,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACE,QAAQ,CAAC,UAAU,CAAC,mCAAmC,CAAC;QACxD,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC5B,MAAM,KAAK,KAAK,EAChB,CAAC;QACD,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,QAAQ;aACvB,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC;aAChD,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC1B,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,CAAC,mCAAmC,CAAC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACjF,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,CAAC,mCAAmC,CAAC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACpF,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE,CAAC;YACZ,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YACjD,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACE,QAAQ,CAAC,UAAU,CAAC,mCAAmC,CAAC;QACxD,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC9B,MAAM,KAAK,MAAM,EACjB,CAAC;QACD,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;YACxB,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YACjE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QACH,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC5C,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8DAA8D;IAC9D,MAAM,kBAAkB,GAAG,CAAC,OAAiC,EAAE,MAAc,EAAY,EAAE;QACzF,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,iBAAiB,KAAK,MAAM,CAChF,CAAC;QACF,OAAO,GAAG,EAAE,kBAAkB,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAClG,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,OAAiC,EAAE,MAAc,EAAW,EAAE;QACzF,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE;YAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACnF,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,IACE,QAAQ,CAAC,UAAU,CAAC,mCAAmC,CAAC;QACxD,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;QACjC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC7B,MAAM,KAAK,MAAM,EACjB,CAAC;QACD,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAwB,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QAChG,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,wCAAwC,EAAE,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,wBAAwB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC,CAAoC,CAAC;QACvE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,mBAAmB,CAAC,EAAE,CAAC;YAC1E,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC7C,CAAC;QACD,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;QAC5B,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,EAAE,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACpE,OAAO,CAAC,aAAa,GAAG,+BAA+B,CAAC,UAAU,CAAC,CAAC;YACpE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;gBACvB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,OAAO,CAAC,aAAa;gBAC9B,YAAY,EAAE,OAAO,CAAC,EAAE;gBACxB,IAAI,EAAE,OAAO,CAAC,cAAc;aAC7B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;YACzB,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;gBACvB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;gBACjD,YAAY,EAAE,OAAO,CAAC,EAAE;gBACxB,IAAI,EAAE,OAAO,CAAC,cAAc;aAC7B,CAAC,CAAC;YACH,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;gBACxB,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBACjE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,eAAe,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,KAAK,EAAE;gBACzE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;YACH,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE;gBAC5C,iBAAiB,EAAE,OAAO,CAAC,EAAE;gBAC7B,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC,CAAC;QACL,CAAC;QACD,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,EAAE;YACjD,iBAAiB,EAAE,OAAO,CAAC,EAAE;YAC7B,eAAe,EAAE,OAAO;SACzB,CAAC,CAAC;QACH,IAAI,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC,OAAO,CAAC,CAAC;YAC5D,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE;gBACf,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC;gBACtC,QAAQ,EAAE;oBACR,IAAI,EAAE,oBAAoB;oBAC1B,IAAI,EAAE,sBAAsB,OAAO,CAAC,cAAc,qCAAqC;iBACxF;aACF,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACE,QAAQ,CAAC,UAAU,CAAC,mCAAmC,CAAC;QACxD,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;QACjC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC1B,MAAM,KAAK,MAAM,EACjB,CAAC;QACD,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAwB,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QAChG,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,wCAAwC,EAAE,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,wBAAwB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC1B,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;YACvB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;gBACtB,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,uBAAuB;gBAC/B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC;YACF,YAAY,EAAE,OAAO,CAAC,EAAE;YACxB,IAAI,EAAE,OAAO,CAAC,cAAc;SAC7B,CAAC,CAAC;QACH,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACpF,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,EAAE;YACjD,iBAAiB,EAAE,OAAO,CAAC,EAAE;YAC7B,eAAe,EAAE,OAAO;SACzB,CAAC,CAAC;QACH,IAAI,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC,OAAO,CAAC,CAAC;YAC5D,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE;gBACf,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC;gBACtC,QAAQ,EAAE;oBACR,IAAI,EAAE,oBAAoB;oBAC1B,IAAI,EAAE,oBAAoB,OAAO,CAAC,cAAc,qCAAqC;iBACtF;aACF,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACE,QAAQ,CAAC,UAAU,CAAC,mCAAmC,CAAC;QACxD,QAAQ,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC5C,MAAM,KAAK,MAAM,EACjB,CAAC;QACD,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAClD,CAAC,IAAwB,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CACxD,CAAC;QACF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACnC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;YAC5B,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,EAAE,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YACtF,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACpE,OAAO,CAAC,aAAa,GAAG,+BAA+B,CAAC,UAAU,CAAC,CAAC;gBACpE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;oBACvB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,OAAO,CAAC,aAAa;oBAC9B,YAAY,EAAE,OAAO,CAAC,EAAE;oBACxB,IAAI,EAAE,OAAO,CAAC,cAAc;iBAC7B,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;gBACzB,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;oBACvB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;oBACjD,YAAY,EAAE,OAAO,CAAC,EAAE;oBACxB,IAAI,EAAE,OAAO,CAAC,cAAc;iBAC7B,CAAC,CAAC;gBACH,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;oBACxB,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;oBACjE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,eAAe,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,KAAK,EAAE;oBACzE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC,CAAC;gBACH,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE;oBAC5C,iBAAiB,EAAE,OAAO,CAAC,EAAE;oBAC7B,KAAK,EAAE,OAAO,CAAC,KAAK;iBACrB,CAAC,CAAC;YACL,CAAC;YACD,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,EAAE;gBACjD,iBAAiB,EAAE,OAAO,CAAC,EAAE;gBAC7B,eAAe,EAAE,OAAO;aACzB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}