@rudderjs/telescope 0.0.1 → 0.0.2

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 (150) hide show
  1. package/README.md +101 -27
  2. package/dist/api/routes.d.ts +10 -6
  3. package/dist/api/routes.d.ts.map +1 -1
  4. package/dist/api/routes.js +42 -54
  5. package/dist/api/routes.js.map +1 -1
  6. package/dist/batch-context.d.ts +19 -0
  7. package/dist/batch-context.d.ts.map +1 -0
  8. package/dist/batch-context.js +24 -0
  9. package/dist/batch-context.js.map +1 -0
  10. package/dist/collectors/ai.d.ts +13 -0
  11. package/dist/collectors/ai.d.ts.map +1 -0
  12. package/dist/collectors/ai.js +61 -0
  13. package/dist/collectors/ai.js.map +1 -0
  14. package/dist/collectors/broadcast.d.ts +10 -0
  15. package/dist/collectors/broadcast.d.ts.map +1 -0
  16. package/dist/collectors/broadcast.js +46 -0
  17. package/dist/collectors/broadcast.js.map +1 -0
  18. package/dist/collectors/cache.d.ts.map +1 -1
  19. package/dist/collectors/cache.js +5 -4
  20. package/dist/collectors/cache.js.map +1 -1
  21. package/dist/collectors/command.d.ts +21 -0
  22. package/dist/collectors/command.d.ts.map +1 -0
  23. package/dist/collectors/command.js +55 -0
  24. package/dist/collectors/command.js.map +1 -0
  25. package/dist/collectors/dump.d.ts +17 -0
  26. package/dist/collectors/dump.d.ts.map +1 -0
  27. package/dist/collectors/dump.js +37 -0
  28. package/dist/collectors/dump.js.map +1 -0
  29. package/dist/collectors/event.d.ts.map +1 -1
  30. package/dist/collectors/event.js +2 -1
  31. package/dist/collectors/event.js.map +1 -1
  32. package/dist/collectors/exception.d.ts +1 -0
  33. package/dist/collectors/exception.d.ts.map +1 -1
  34. package/dist/collectors/exception.js +23 -4
  35. package/dist/collectors/exception.js.map +1 -1
  36. package/dist/collectors/gate.d.ts +18 -0
  37. package/dist/collectors/gate.d.ts.map +1 -0
  38. package/dist/collectors/gate.js +49 -0
  39. package/dist/collectors/gate.js.map +1 -0
  40. package/dist/collectors/http.d.ts +21 -0
  41. package/dist/collectors/http.d.ts.map +1 -0
  42. package/dist/collectors/http.js +64 -0
  43. package/dist/collectors/http.js.map +1 -0
  44. package/dist/collectors/job.d.ts.map +1 -1
  45. package/dist/collectors/job.js +3 -2
  46. package/dist/collectors/job.js.map +1 -1
  47. package/dist/collectors/live.d.ts +13 -0
  48. package/dist/collectors/live.d.ts.map +1 -0
  49. package/dist/collectors/live.js +60 -0
  50. package/dist/collectors/live.js.map +1 -0
  51. package/dist/collectors/log.d.ts.map +1 -1
  52. package/dist/collectors/log.js +2 -1
  53. package/dist/collectors/log.js.map +1 -1
  54. package/dist/collectors/mail.d.ts.map +1 -1
  55. package/dist/collectors/mail.js +2 -1
  56. package/dist/collectors/mail.js.map +1 -1
  57. package/dist/collectors/mcp.d.ts +14 -0
  58. package/dist/collectors/mcp.d.ts.map +1 -0
  59. package/dist/collectors/mcp.js +49 -0
  60. package/dist/collectors/mcp.js.map +1 -0
  61. package/dist/collectors/model.d.ts +6 -0
  62. package/dist/collectors/model.d.ts.map +1 -1
  63. package/dist/collectors/model.js +44 -1
  64. package/dist/collectors/model.js.map +1 -1
  65. package/dist/collectors/notification.d.ts.map +1 -1
  66. package/dist/collectors/notification.js +2 -1
  67. package/dist/collectors/notification.js.map +1 -1
  68. package/dist/collectors/query.d.ts.map +1 -1
  69. package/dist/collectors/query.js +5 -3
  70. package/dist/collectors/query.js.map +1 -1
  71. package/dist/collectors/request.d.ts +2 -1
  72. package/dist/collectors/request.d.ts.map +1 -1
  73. package/dist/collectors/request.js +78 -4
  74. package/dist/collectors/request.js.map +1 -1
  75. package/dist/index.d.ts +17 -2
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +152 -95
  78. package/dist/index.js.map +1 -1
  79. package/dist/redact.d.ts +25 -0
  80. package/dist/redact.d.ts.map +1 -0
  81. package/dist/redact.js +55 -0
  82. package/dist/redact.js.map +1 -0
  83. package/dist/routes.d.ts +22 -0
  84. package/dist/routes.d.ts.map +1 -0
  85. package/dist/routes.js +105 -0
  86. package/dist/routes.js.map +1 -0
  87. package/dist/storage.d.ts.map +1 -1
  88. package/dist/storage.js +13 -0
  89. package/dist/storage.js.map +1 -1
  90. package/dist/types.d.ts +32 -1
  91. package/dist/types.d.ts.map +1 -1
  92. package/dist/types.js +13 -0
  93. package/dist/types.js.map +1 -1
  94. package/dist/views/vanilla/Dashboard.d.ts +10 -0
  95. package/dist/views/vanilla/Dashboard.d.ts.map +1 -0
  96. package/dist/views/vanilla/Dashboard.js +48 -0
  97. package/dist/views/vanilla/Dashboard.js.map +1 -0
  98. package/dist/views/vanilla/EntryList.d.ts +29 -0
  99. package/dist/views/vanilla/EntryList.d.ts.map +1 -0
  100. package/dist/views/vanilla/EntryList.js +172 -0
  101. package/dist/views/vanilla/EntryList.js.map +1 -0
  102. package/dist/views/vanilla/Layout.d.ts +25 -0
  103. package/dist/views/vanilla/Layout.d.ts.map +1 -0
  104. package/dist/views/vanilla/Layout.js +225 -0
  105. package/dist/views/vanilla/Layout.js.map +1 -0
  106. package/dist/views/vanilla/_html.d.ts +27 -0
  107. package/dist/views/vanilla/_html.d.ts.map +1 -0
  108. package/dist/views/vanilla/_html.js +55 -0
  109. package/dist/views/vanilla/_html.js.map +1 -0
  110. package/dist/views/vanilla/columns.d.ts +20 -0
  111. package/dist/views/vanilla/columns.d.ts.map +1 -0
  112. package/dist/views/vanilla/columns.js +181 -0
  113. package/dist/views/vanilla/columns.js.map +1 -0
  114. package/dist/views/vanilla/details/Batch.d.ts +14 -0
  115. package/dist/views/vanilla/details/Batch.d.ts.map +1 -0
  116. package/dist/views/vanilla/details/Batch.js +120 -0
  117. package/dist/views/vanilla/details/Batch.js.map +1 -0
  118. package/dist/views/vanilla/details/Layout.d.ts +21 -0
  119. package/dist/views/vanilla/details/Layout.d.ts.map +1 -0
  120. package/dist/views/vanilla/details/Layout.js +163 -0
  121. package/dist/views/vanilla/details/Layout.js.map +1 -0
  122. package/dist/views/vanilla/details/NotFound.d.ts +8 -0
  123. package/dist/views/vanilla/details/NotFound.d.ts.map +1 -0
  124. package/dist/views/vanilla/details/NotFound.js +20 -0
  125. package/dist/views/vanilla/details/NotFound.js.map +1 -0
  126. package/dist/views/vanilla/details/index.d.ts +5 -0
  127. package/dist/views/vanilla/details/index.d.ts.map +1 -0
  128. package/dist/views/vanilla/details/index.js +5 -0
  129. package/dist/views/vanilla/details/index.js.map +1 -0
  130. package/dist/views/vanilla/details/sections.d.ts +46 -0
  131. package/dist/views/vanilla/details/sections.d.ts.map +1 -0
  132. package/dist/views/vanilla/details/sections.js +145 -0
  133. package/dist/views/vanilla/details/sections.js.map +1 -0
  134. package/dist/views/vanilla/details/views.d.ts +15 -0
  135. package/dist/views/vanilla/details/views.d.ts.map +1 -0
  136. package/dist/views/vanilla/details/views.js +534 -0
  137. package/dist/views/vanilla/details/views.js.map +1 -0
  138. package/dist/views/vanilla/index.d.ts +5 -0
  139. package/dist/views/vanilla/index.d.ts.map +1 -0
  140. package/dist/views/vanilla/index.js +5 -0
  141. package/dist/views/vanilla/index.js.map +1 -0
  142. package/package.json +53 -13
  143. package/dist/ui/layout.d.ts +0 -11
  144. package/dist/ui/layout.d.ts.map +0 -1
  145. package/dist/ui/layout.js +0 -69
  146. package/dist/ui/layout.js.map +0 -1
  147. package/dist/ui/pages.d.ts +0 -21
  148. package/dist/ui/pages.d.ts.map +0 -1
  149. package/dist/ui/pages.js +0 -225
  150. package/dist/ui/pages.js.map +0 -1
@@ -0,0 +1,534 @@
1
+ import { html, raw } from '../_html.js';
2
+ import { Card, KeyValueTable, JsonBlock, CodeBlock, Badge, Tabs } from './sections.js';
3
+ const RequestView = (entry) => {
4
+ const c = entry.content;
5
+ const headers = c['headers'];
6
+ const responseHeaders = c['responseHeaders'];
7
+ const body = c['body'];
8
+ const session = c['session'];
9
+ const user = c['user'];
10
+ const controller = c['controller'];
11
+ const middlewareList = c['middleware'];
12
+ const view = c['view'];
13
+ // Status badge with color based on status code
14
+ const status = c['status'];
15
+ const statusBadge = status
16
+ ? raw(`<span class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${statusColor(status)}">${status}</span>`)
17
+ : raw('<span class="text-gray-300 dark:text-gray-600">—</span>');
18
+ // Build the details table — only include fields that have values
19
+ const details = {
20
+ Method: Badge(c['method']),
21
+ Path: raw(`<span class="font-mono text-xs">${escape(c['path'])}</span>`),
22
+ };
23
+ if (controller)
24
+ details['Controller Action'] = controller;
25
+ if (middlewareList && middlewareList.length > 0)
26
+ details['Middleware'] = middlewareList.join(', ');
27
+ Object.assign(details, {
28
+ Status: statusBadge,
29
+ Duration: c['duration'] != null ? `${c['duration']}ms` : '—',
30
+ Hostname: c['hostname'],
31
+ 'IP Address': c['ip'],
32
+ 'User-Agent': c['userAgent'],
33
+ });
34
+ const hasBody = body !== undefined && body !== null && body !== '';
35
+ const hasResHeaders = responseHeaders && Object.keys(responseHeaders).length > 0;
36
+ return html `
37
+ ${Card('Request Details', KeyValueTable(details))}
38
+
39
+ ${user ? Card('Authenticated User', KeyValueTable({
40
+ ID: user['id'],
41
+ Name: user['name'],
42
+ 'Email Address': user['email'],
43
+ })) : ''}
44
+
45
+ ${view ? Card('View', KeyValueTable({
46
+ ID: view.id,
47
+ Props: view.props.length > 0 ? view.props.join(', ') : '(none)',
48
+ })) : ''}
49
+
50
+ ${headers || hasBody || hasResHeaders ? Tabs([
51
+ ...(headers ? [{ label: 'Headers', content: KeyValueTable(headers) }] : []),
52
+ ...(hasBody ? [{ label: 'Body', content: JsonBlock(body) }] : []),
53
+ ...(hasResHeaders ? [{ label: 'Response Headers', content: KeyValueTable(responseHeaders) }] : []),
54
+ ]) : ''}
55
+
56
+ ${session && Object.keys(session).length > 0 ? Card('Session', JsonBlock(session)) : ''}
57
+ `;
58
+ };
59
+ function statusColor(status) {
60
+ if (status >= 500)
61
+ return 'bg-red-100 text-red-700 dark:bg-red-900 dark:text-red-300';
62
+ if (status >= 400)
63
+ return 'bg-amber-100 text-amber-700 dark:bg-amber-900 dark:text-amber-300';
64
+ if (status >= 300)
65
+ return 'bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300';
66
+ if (status >= 200)
67
+ return 'bg-green-100 text-green-700 dark:bg-green-900 dark:text-green-300';
68
+ return 'bg-gray-100 text-gray-600 dark:bg-gray-800 dark:text-gray-400';
69
+ }
70
+ const QueryView = (entry) => {
71
+ const c = entry.content;
72
+ return html `
73
+ ${Card(null, KeyValueTable({
74
+ Duration: c['duration'] != null ? `${c['duration']}ms` : '—',
75
+ Model: c['model'],
76
+ Connection: c['connection'],
77
+ }))}
78
+ ${Card('SQL', CodeBlock(String(c['sql'] ?? ''), { language: 'sql' }))}
79
+ ${c['bindings'] !== undefined ? Card('Bindings', JsonBlock(c['bindings'])) : ''}
80
+ `;
81
+ };
82
+ const ExceptionView = (entry) => {
83
+ const c = entry.content;
84
+ const stack = String(c['stack'] ?? c['trace'] ?? '');
85
+ return html `
86
+ ${Card(null, KeyValueTable({
87
+ Class: raw(`<span class="font-mono text-xs text-red-600 dark:text-red-400">${escape(c['class'] ?? '')}</span>`),
88
+ Message: c['message'],
89
+ File: c['file'],
90
+ Line: c['line'],
91
+ }))}
92
+ ${stack ? Card('Stack Trace', CodeBlock(stack, { maxHeight: '[600px]' })) : ''}
93
+ ${c['context'] !== undefined ? Card('Context', JsonBlock(c['context'])) : ''}
94
+ `;
95
+ };
96
+ const MailView = (entry) => {
97
+ const c = entry.content;
98
+ const htmlBody = c['html'];
99
+ const textBody = c['text'];
100
+ const to = Array.isArray(c['to']) ? c['to'].join(', ') : c['to'];
101
+ return html `
102
+ ${Card(null, KeyValueTable({
103
+ Class: raw(`<span class="font-mono text-xs">${escape(c['class'] ?? '')}</span>`),
104
+ Subject: c['subject'],
105
+ From: c['from'],
106
+ To: to,
107
+ CC: Array.isArray(c['cc']) ? c['cc'].join(', ') : c['cc'],
108
+ BCC: Array.isArray(c['bcc']) ? c['bcc'].join(', ') : c['bcc'],
109
+ }))}
110
+ ${htmlBody ? Card('HTML Preview', html `
111
+ <iframe srcdoc="${String(htmlBody)}" class="w-full h-96 bg-white border border-gray-200 dark:border-gray-700 rounded-lg" sandbox=""></iframe>
112
+ `) : ''}
113
+ ${textBody ? Card('Plain Text', CodeBlock(String(textBody))) : ''}
114
+ `;
115
+ };
116
+ const JobView = (entry) => {
117
+ const c = entry.content;
118
+ return html `
119
+ ${Card(null, KeyValueTable({
120
+ Class: raw(`<span class="font-mono text-xs">${escape(c['class'] ?? '')}</span>`),
121
+ Queue: c['queue'],
122
+ Status: Badge(c['status']),
123
+ Attempts: c['attempts'],
124
+ Duration: c['duration'] != null ? `${c['duration']}ms` : '—',
125
+ }))}
126
+ ${c['payload'] !== undefined ? Card('Payload', JsonBlock(c['payload'])) : ''}
127
+ ${c['exception'] ? Card('Exception', CodeBlock(String(c['exception']))) : ''}
128
+ `;
129
+ };
130
+ const LogView = (entry) => {
131
+ const c = entry.content;
132
+ return html `
133
+ ${Card(null, KeyValueTable({
134
+ Level: Badge(c['level']),
135
+ Channel: c['channel'],
136
+ Message: c['message'],
137
+ }))}
138
+ ${c['context'] !== undefined ? Card('Context', JsonBlock(c['context'])) : ''}
139
+ `;
140
+ };
141
+ const NotificationView = (entry) => {
142
+ const c = entry.content;
143
+ return html `
144
+ ${Card(null, KeyValueTable({
145
+ Class: raw(`<span class="font-mono text-xs">${escape(c['class'] ?? '')}</span>`),
146
+ Channel: c['channel'],
147
+ Notifiable: c['notifiable'],
148
+ }))}
149
+ ${c['data'] !== undefined ? Card('Payload', JsonBlock(c['data'])) : ''}
150
+ `;
151
+ };
152
+ const EventView = (entry) => {
153
+ const c = entry.content;
154
+ return html `
155
+ ${Card(null, KeyValueTable({
156
+ Name: raw(`<span class="font-mono text-xs">${escape(c['name'] ?? '')}</span>`),
157
+ }))}
158
+ ${c['payload'] !== undefined ? Card('Payload', JsonBlock(c['payload'])) : ''}
159
+ ${Array.isArray(c['listeners']) && c['listeners'].length > 0
160
+ ? Card('Listeners', JsonBlock(c['listeners']))
161
+ : ''}
162
+ `;
163
+ };
164
+ const CacheView = (entry) => {
165
+ const c = entry.content;
166
+ return html `
167
+ ${Card(null, KeyValueTable({
168
+ Operation: Badge(c['operation']),
169
+ Key: raw(`<span class="font-mono text-xs">${escape(c['key'] ?? '—')}</span>`),
170
+ Store: c['store'],
171
+ TTL: c['ttl'],
172
+ }))}
173
+ ${c['value'] !== undefined ? Card('Value', JsonBlock(c['value'])) : ''}
174
+ `;
175
+ };
176
+ const ScheduleView = (entry) => {
177
+ const c = entry.content;
178
+ return html `
179
+ ${Card(null, KeyValueTable({
180
+ Description: c['description'],
181
+ Expression: raw(`<span class="font-mono text-xs">${escape(c['expression'] ?? '')}</span>`),
182
+ Status: Badge(c['status']),
183
+ Duration: c['duration'] != null ? `${c['duration']}ms` : '—',
184
+ 'Exit Code': c['exitCode'],
185
+ }))}
186
+ ${c['output'] ? Card('Output', CodeBlock(String(c['output']))) : ''}
187
+ `;
188
+ };
189
+ const ModelView = (entry) => {
190
+ const c = entry.content;
191
+ const before = c['before'];
192
+ const after = c['after'];
193
+ return html `
194
+ ${Card(null, KeyValueTable({
195
+ Model: raw(`<span class="font-mono text-xs">${escape(c['model'] ?? '')}</span>`),
196
+ Action: Badge(c['action']),
197
+ 'Model ID': c['modelId'],
198
+ }))}
199
+ ${before ? Card('Before', JsonBlock(before)) : ''}
200
+ ${after ? Card('After', JsonBlock(after)) : ''}
201
+ ${c['changes'] !== undefined ? Card('Changes', JsonBlock(c['changes'])) : ''}
202
+ `;
203
+ };
204
+ const CommandView = (entry) => {
205
+ const c = entry.content;
206
+ const error = c['error'];
207
+ const exitCode = c['exitCode'] ?? 0;
208
+ return html `
209
+ ${Card(null, KeyValueTable({
210
+ Name: raw(`<span class="font-mono text-xs">${escape(c['name'] ?? '')}</span>`),
211
+ Source: Badge(c['source']),
212
+ Status: Badge(exitCode === 0 ? 'success' : 'failed'),
213
+ 'Exit Code': raw(`<span class="font-mono text-xs">${exitCode}</span>`),
214
+ Duration: c['duration'] != null ? `${c['duration']}ms` : '—',
215
+ }))}
216
+ ${c['args'] && Object.keys(c['args']).length > 0 ? Card('Arguments', JsonBlock(c['args'])) : ''}
217
+ ${c['opts'] && Object.keys(c['opts']).length > 0 ? Card('Options', JsonBlock(c['opts'])) : ''}
218
+ ${error?.message ? Card('Error', html `
219
+ <div class="text-sm text-red-600 dark:text-red-400 mb-2">${error.message}</div>
220
+ ${error.stack ? CodeBlock(error.stack, { maxHeight: '[600px]' }) : ''}
221
+ `) : ''}
222
+ `;
223
+ };
224
+ const HttpView = (entry) => {
225
+ const c = entry.content;
226
+ const reqHeaders = c['reqHeaders'];
227
+ const resHeaders = c['resHeaders'];
228
+ const isFailure = c['kind'] === 'request.failed';
229
+ return html `
230
+ ${Card(null, KeyValueTable({
231
+ Method: Badge(c['method']),
232
+ URL: raw(`<span class="font-mono text-xs break-all">${escape(c['url'] ?? '')}</span>`),
233
+ Status: isFailure ? Badge('FAILED') : Badge(String(c['status'] ?? '')),
234
+ Duration: c['duration'] != null ? `${c['duration']}ms` : '—',
235
+ 'Resp Size': c['resSize'] != null ? `${c['resSize']} bytes` : '—',
236
+ }))}
237
+ ${reqHeaders ? Card('Request Headers', KeyValueTable(reqHeaders)) : ''}
238
+ ${c['reqBody'] !== undefined && c['reqBody'] !== null ? Card('Request Body', JsonBlock(c['reqBody'])) : ''}
239
+ ${resHeaders ? Card('Response Headers', KeyValueTable(resHeaders)) : ''}
240
+ ${c['resBody'] ? Card('Response Body', CodeBlock(String(c['resBody']), { maxHeight: '[400px]' })) : ''}
241
+ ${isFailure && c['error'] ? Card('Error', raw(`<div class="text-sm text-red-600 dark:text-red-400">${escape(c['error'])}</div>`)) : ''}
242
+ `;
243
+ };
244
+ const GateView = (entry) => {
245
+ const c = entry.content;
246
+ return html `
247
+ ${Card(null, KeyValueTable({
248
+ Ability: raw(`<span class="font-mono text-xs">${escape(c['ability'] ?? '')}</span>`),
249
+ Result: Badge(c['allowed'] ? 'Allowed' : 'Denied'),
250
+ 'Resolved Via': Badge(c['resolvedVia']),
251
+ 'User ID': c['userId'] ?? '—',
252
+ Duration: c['duration'] != null ? `${c['duration']}ms` : '—',
253
+ Policy: c['policy'] ?? '—',
254
+ Model: c['model'] ?? '—',
255
+ }))}
256
+ `;
257
+ };
258
+ const DumpView = (entry) => {
259
+ const c = entry.content;
260
+ const args = c['args'];
261
+ return html `
262
+ ${Card(null, KeyValueTable({
263
+ Method: Badge(c['method']),
264
+ Caller: c['caller'] ? raw(`<span class="font-mono text-xs">${escape(c['caller'])}</span>`) : '—',
265
+ 'Arg Count': c['count'],
266
+ }))}
267
+ ${args ? args.map((arg, i) => Card(`Argument ${i + 1}`, JsonBlock(arg))).join('') : ''}
268
+ `;
269
+ };
270
+ const BroadcastView = (entry) => {
271
+ const c = entry.content;
272
+ const kind = String(c['kind'] ?? '');
273
+ // Render kind-specific fields. The shared fields (kind, connectionId)
274
+ // appear in the top KeyValueTable; everything else goes in a JSON dump.
275
+ const baseRows = {
276
+ Kind: Badge(kind),
277
+ 'Connection': c['connectionId'] != null
278
+ ? raw(`<a href="../batches/${escape(c['connectionId'])}" class="font-mono text-xs text-indigo-600 hover:text-indigo-700 dark:text-indigo-400 dark:hover:text-indigo-300">${escape(c['connectionId'].slice(0, 12))}…</a>`)
279
+ : raw('<span class="text-gray-300 dark:text-gray-600">—</span>'),
280
+ };
281
+ switch (kind) {
282
+ case 'connection.opened':
283
+ baseRows['IP'] = c['ip'];
284
+ baseRows['User-Agent'] = c['userAgent'];
285
+ baseRows['URL'] = c['url'];
286
+ break;
287
+ case 'connection.closed':
288
+ baseRows['Reason'] = c['reason'];
289
+ break;
290
+ case 'subscribe':
291
+ baseRows['Channel'] = raw(`<span class="font-mono text-xs">${escape(c['channel'] ?? '')}</span>`);
292
+ baseRows['Channel Type'] = Badge(c['channelType']);
293
+ baseRows['Allowed'] = Badge(c['allowed'] ? 'allowed' : 'denied');
294
+ if (c['authMs'] != null)
295
+ baseRows['Auth Time'] = `${c['authMs']}ms`;
296
+ if (c['reason'])
297
+ baseRows['Reason'] = c['reason'];
298
+ break;
299
+ case 'unsubscribe':
300
+ baseRows['Channel'] = raw(`<span class="font-mono text-xs">${escape(c['channel'] ?? '')}</span>`);
301
+ break;
302
+ case 'broadcast':
303
+ baseRows['Channel'] = raw(`<span class="font-mono text-xs">${escape(c['channel'] ?? '')}</span>`);
304
+ baseRows['Event'] = raw(`<span class="font-mono text-xs">${escape(c['event'] ?? '')}</span>`);
305
+ baseRows['Source'] = Badge(c['source']);
306
+ baseRows['Recipients'] = c['recipientCount'];
307
+ baseRows['Payload Size'] = c['payloadSize'] != null ? `${c['payloadSize']} bytes` : '—';
308
+ if (c['sourceConnectionId'])
309
+ baseRows['From'] = raw(`<span class="font-mono text-xs">${escape(c['sourceConnectionId'])}</span>`);
310
+ break;
311
+ case 'presence.join':
312
+ case 'presence.leave':
313
+ baseRows['Channel'] = raw(`<span class="font-mono text-xs">${escape(c['channel'] ?? '')}</span>`);
314
+ break;
315
+ }
316
+ return html `
317
+ ${Card(null, KeyValueTable(baseRows))}
318
+ ${(kind === 'presence.join' || kind === 'presence.leave') && c['member']
319
+ ? Card('Member', JsonBlock(c['member']))
320
+ : ''}
321
+ `;
322
+ };
323
+ function renderToolCalls(toolCalls) {
324
+ if (toolCalls.length === 0)
325
+ return html ``;
326
+ const items = toolCalls.map((tc) => {
327
+ const t = tc;
328
+ const name = String(t['name'] ?? t['toolName'] ?? '—');
329
+ const duration = t['duration'] != null ? `${t['duration']}ms` : null;
330
+ const approved = t['approved'] === true;
331
+ const needsApproval = t['requiresApproval'] === true;
332
+ const args = t['args'] ?? t['input'] ?? t['arguments'];
333
+ const result = t['result'] ?? t['output'];
334
+ const approvalBadge = needsApproval
335
+ ? raw(`<span class="ml-1 inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-amber-100 text-amber-700 dark:bg-amber-900 dark:text-amber-300">${approved ? 'Approved' : 'Pending'}</span>`)
336
+ : '';
337
+ return html `
338
+ <div class="border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden mb-2">
339
+ <div class="flex items-center gap-2 px-3 py-2 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700">
340
+ ${Badge(name)}
341
+ ${approvalBadge}
342
+ ${duration ? raw(`<span class="text-xs text-gray-400 dark:text-gray-500 ml-auto">${escape(duration)}</span>`) : ''}
343
+ </div>
344
+ ${args !== undefined ? html `
345
+ <details class="group">
346
+ <summary class="px-3 py-1.5 text-xs font-medium text-gray-500 dark:text-gray-400 cursor-pointer select-none hover:bg-gray-50 dark:hover:bg-gray-800">Args</summary>
347
+ <div class="px-3 pb-2">${JsonBlock(args)}</div>
348
+ </details>
349
+ ` : ''}
350
+ ${result !== undefined ? html `
351
+ <details class="group">
352
+ <summary class="px-3 py-1.5 text-xs font-medium text-gray-500 dark:text-gray-400 cursor-pointer select-none hover:bg-gray-50 dark:hover:bg-gray-800">Result</summary>
353
+ <div class="px-3 pb-2">${JsonBlock(result)}</div>
354
+ </details>
355
+ ` : ''}
356
+ </div>
357
+ `;
358
+ }).join('');
359
+ return raw(items);
360
+ }
361
+ function renderSteps(steps) {
362
+ if (steps.length <= 1)
363
+ return html ``;
364
+ const items = steps.map((s, i) => {
365
+ const step = s;
366
+ const usage = step['usage'];
367
+ const tokens = usage ? (usage['totalTokens'] ?? usage['total_tokens']) : undefined;
368
+ const tcCount = Array.isArray(step['toolCalls']) ? step['toolCalls'].length : (step['toolCallCount'] ?? 0);
369
+ const finishReason = step['finishReason'] ?? step['finish_reason'];
370
+ return html `
371
+ <div class="border border-gray-200 dark:border-gray-700 rounded-lg px-3 py-2 mb-2">
372
+ ${Card(null, KeyValueTable({
373
+ Iteration: i + 1,
374
+ Tokens: tokens != null ? String(tokens) : '—',
375
+ 'Tool Calls': String(tcCount),
376
+ 'Finish Reason': finishReason ? Badge(String(finishReason)) : raw('<span class="text-gray-300 dark:text-gray-600">—</span>'),
377
+ }))}
378
+ </div>
379
+ `;
380
+ }).join('');
381
+ return raw(items);
382
+ }
383
+ const AiView = (entry) => {
384
+ const c = entry.content;
385
+ const status = String(c['status'] ?? '');
386
+ const statusBadge = status === 'failed'
387
+ ? raw(`<span class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-red-100 text-red-700 dark:bg-red-900 dark:text-red-300">Failed</span>`)
388
+ : raw(`<span class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-green-100 text-green-700 dark:bg-green-900 dark:text-green-300">Completed</span>`);
389
+ const finishReason = c['finishReason'] ?? c['finish_reason'];
390
+ const streaming = c['streaming'] === true ? 'Yes' : 'No';
391
+ const toolCalls = Array.isArray(c['toolCalls']) ? c['toolCalls'] : [];
392
+ const steps = Array.isArray(c['steps']) ? c['steps'] : [];
393
+ const usage = c['usage'];
394
+ const requestRows = {
395
+ Status: statusBadge,
396
+ Agent: c['agent'] ?? '—',
397
+ Model: c['model'] ? Badge(String(c['model'])) : raw('<span class="text-gray-300 dark:text-gray-600">—</span>'),
398
+ Provider: c['provider'] ?? '—',
399
+ Duration: c['duration'] != null ? `${c['duration']}ms` : '—',
400
+ 'Finish Reason': finishReason ? Badge(String(finishReason)) : raw('<span class="text-gray-300 dark:text-gray-600">—</span>'),
401
+ Steps: steps.length > 0 ? steps.length : (c['stepCount'] ?? '—'),
402
+ 'Tool Calls': toolCalls.length > 0 ? toolCalls.length : (c['toolCallCount'] ?? '—'),
403
+ Streaming: streaming,
404
+ };
405
+ if (c['conversationId']) {
406
+ requestRows['Conversation ID'] = raw(`<span class="font-mono text-xs">${escape(String(c['conversationId']))}</span>`);
407
+ }
408
+ const failoverAttempts = c['failoverAttempts'];
409
+ if (failoverAttempts != null && failoverAttempts > 0) {
410
+ requestRows['Failover Attempts'] = failoverAttempts;
411
+ }
412
+ const inputValue = c['input'];
413
+ const outputValue = c['output'];
414
+ const errorValue = c['error'];
415
+ const inputStr = typeof inputValue === 'string' ? inputValue : JSON.stringify(inputValue, null, 2);
416
+ const outputStr = typeof outputValue === 'string' ? outputValue : JSON.stringify(outputValue, null, 2);
417
+ return html `
418
+ ${Card('AI Request', KeyValueTable(requestRows))}
419
+
420
+ ${usage ? Card('Token Usage', KeyValueTable({
421
+ Prompt: usage['promptTokens'] ?? usage['prompt_tokens'] ?? '—',
422
+ Completion: usage['completionTokens'] ?? usage['completion_tokens'] ?? '—',
423
+ Total: usage['totalTokens'] ?? usage['total_tokens'] ?? '—',
424
+ })) : ''}
425
+
426
+ ${inputValue !== undefined && inputValue !== null
427
+ ? Card('Input', CodeBlock(inputStr, { maxHeight: '[200px]' }))
428
+ : ''}
429
+
430
+ ${outputValue !== undefined && outputValue !== null
431
+ ? Card('Output', CodeBlock(outputStr, { maxHeight: '[400px]' }))
432
+ : ''}
433
+
434
+ ${errorValue
435
+ ? Card('Error', raw(`<pre class="text-sm text-red-600 dark:text-red-400 whitespace-pre-wrap break-words">${escape(typeof errorValue === 'string' ? errorValue : JSON.stringify(errorValue, null, 2))}</pre>`))
436
+ : ''}
437
+
438
+ ${toolCalls.length > 0 ? Card('Tool Calls', renderToolCalls(toolCalls)) : ''}
439
+
440
+ ${steps.length > 1 ? Card('Steps', renderSteps(steps)) : ''}
441
+ `;
442
+ };
443
+ const LiveView = (entry) => {
444
+ const c = entry.content;
445
+ const kind = String(c['kind'] ?? '');
446
+ const baseRows = {
447
+ Kind: Badge(kind),
448
+ Document: c['docName'] != null ? raw(`<span class="font-mono text-xs">${escape(c['docName'])}</span>`) : raw('<span class="text-gray-300 dark:text-gray-600">—</span>'),
449
+ };
450
+ if (c['clientId']) {
451
+ baseRows['Client'] = raw(`<a href="../live/${escape(c['clientId'])}" class="font-mono text-xs text-indigo-600 hover:text-indigo-700 dark:text-indigo-400 dark:hover:text-indigo-300">${escape(c['clientId'].slice(0, 12))}…</a>`);
452
+ }
453
+ switch (kind) {
454
+ case 'doc.opened':
455
+ case 'doc.closed':
456
+ baseRows['Clients'] = c['clientCount'];
457
+ break;
458
+ case 'update.applied':
459
+ baseRows['Bytes'] = `${c['byteSize']} bytes`;
460
+ baseRows['Recipients'] = c['recipientCount'];
461
+ break;
462
+ case 'awareness.changed':
463
+ baseRows['Bytes'] = `${c['byteSize']} bytes`;
464
+ break;
465
+ case 'persistence.load':
466
+ baseRows['Duration'] = `${c['durationMs']}ms`;
467
+ baseRows['Bytes'] = `${c['byteSize']} bytes`;
468
+ break;
469
+ case 'persistence.save':
470
+ baseRows['Bytes'] = `${c['byteSize']} bytes`;
471
+ break;
472
+ case 'sync.error':
473
+ baseRows['Error'] = c['error'];
474
+ break;
475
+ }
476
+ return html `
477
+ ${Card(null, KeyValueTable(baseRows))}
478
+ `;
479
+ };
480
+ const McpView = (entry) => {
481
+ const c = entry.content;
482
+ const kind = String(c['kind'] ?? '');
483
+ const subject = kind.split('.')[0] ?? '';
484
+ const errored = Boolean(c['error']);
485
+ const rows = {
486
+ Server: c['serverName'],
487
+ Type: Badge(subject),
488
+ Name: raw(`<span class="font-mono text-xs">${escape(String(c['name'] ?? ''))}</span>`),
489
+ Duration: c['duration'] != null ? `${Math.round(c['duration'])}ms` : '—',
490
+ Status: errored ? Badge('Failed') : Badge('OK'),
491
+ };
492
+ return html `
493
+ ${Card('MCP Operation', KeyValueTable(rows))}
494
+ ${c['input'] !== undefined && c['input'] !== null
495
+ ? Card('Input', JsonBlock(c['input']))
496
+ : raw('')}
497
+ ${c['output'] !== undefined && c['output'] !== null && !errored
498
+ ? Card('Output', JsonBlock(c['output']))
499
+ : raw('')}
500
+ ${errored ? Card('Error', CodeBlock(String(c['error']))) : raw('')}
501
+ `;
502
+ };
503
+ /** Map of EntryType → detail view function. Used by the dispatcher. */
504
+ export const detailViews = {
505
+ request: RequestView,
506
+ query: QueryView,
507
+ exception: ExceptionView,
508
+ mail: MailView,
509
+ job: JobView,
510
+ log: LogView,
511
+ notification: NotificationView,
512
+ event: EventView,
513
+ cache: CacheView,
514
+ schedule: ScheduleView,
515
+ model: ModelView,
516
+ command: CommandView,
517
+ http: HttpView,
518
+ gate: GateView,
519
+ dump: DumpView,
520
+ broadcast: BroadcastView,
521
+ live: LiveView,
522
+ ai: AiView,
523
+ mcp: McpView,
524
+ };
525
+ /** Internal escape helper — used inside `raw()` blocks for safety. */
526
+ function escape(s) {
527
+ return String(s ?? '')
528
+ .replace(/&/g, '&amp;')
529
+ .replace(/</g, '&lt;')
530
+ .replace(/>/g, '&gt;')
531
+ .replace(/"/g, '&quot;')
532
+ .replace(/'/g, '&#39;');
533
+ }
534
+ //# sourceMappingURL=views.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"views.js","sourceRoot":"","sources":["../../../../src/views/vanilla/details/views.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAmB,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AActF,MAAM,WAAW,GAAW,CAAC,KAAK,EAAE,EAAE;IACpC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAClD,MAAM,OAAO,GAAW,CAAC,CAAC,SAAS,CAA+C,CAAA;IAClF,MAAM,eAAe,GAAG,CAAC,CAAC,iBAAiB,CAAuC,CAAA;IAClF,MAAM,IAAI,GAAc,CAAC,CAAC,MAAM,CAAC,CAAA;IACjC,MAAM,OAAO,GAAW,CAAC,CAAC,SAAS,CAAgD,CAAA;IACnF,MAAM,IAAI,GAAc,CAAC,CAAC,MAAM,CAAmD,CAAA;IACnF,MAAM,UAAU,GAAQ,CAAC,CAAC,YAAY,CAA4B,CAAA;IAClE,MAAM,cAAc,GAAK,CAAC,CAAC,YAAY,CAA+B,CAAA;IACtE,MAAM,IAAI,GAAc,CAAC,CAAC,MAAM,CAA2D,CAAA;IAC3F,+CAA+C;IAC/C,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAuB,CAAA;IAChD,MAAM,WAAW,GAAG,MAAM;QACxB,CAAC,CAAC,GAAG,CAAC,iFAAiF,WAAW,CAAC,MAAM,CAAC,KAAK,MAAM,SAAS,CAAC;QAC/H,CAAC,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAA;IAElE,iEAAiE;IACjE,MAAM,OAAO,GAA4B;QACvC,MAAM,EAAU,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAW,CAAC;QAC5C,IAAI,EAAY,GAAG,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAW,CAAC,SAAS,CAAC;KAC7F,CAAA;IACD,IAAI,UAAU;QAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,UAAU,CAAA;IACzD,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;QACrB,MAAM,EAAU,WAAW;QAC3B,QAAQ,EAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;QAClE,QAAQ,EAAQ,CAAC,CAAC,UAAU,CAAC;QAC7B,YAAY,EAAI,CAAC,CAAC,IAAI,CAAC;QACvB,YAAY,EAAI,CAAC,CAAC,WAAW,CAAC;KAC/B,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAA;IAClE,MAAM,aAAa,GAAG,eAAe,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IAEhF,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;;MAE/C,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC;QAChD,EAAE,EAAe,IAAI,CAAC,IAAI,CAAC;QAC3B,IAAI,EAAa,IAAI,CAAC,MAAM,CAAC;QAC7B,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC;KAC/B,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;;MAEN,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC;QAClC,EAAE,EAAK,IAAI,CAAC,EAAE;QACd,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ;KAChE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;;MAEN,OAAO,IAAI,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3C,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,aAAa,CAAC,eAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACpG,CAAC,CAAC,CAAC,CAAC,EAAE;;MAEL,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;GACxF,CAAA;AACH,CAAC,CAAA;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,2DAA2D,CAAA;IACrF,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,mEAAmE,CAAA;IAC7F,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,+DAA+D,CAAA;IACzF,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,mEAAmE,CAAA;IAC7F,OAAO,+DAA+D,CAAA;AACxE,CAAC;AAED,MAAM,SAAS,GAAW,CAAC,KAAK,EAAE,EAAE;IAClC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAClD,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACzB,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;QAC5D,KAAK,EAAK,CAAC,CAAC,OAAO,CAAC;QACpB,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC;KAC5B,CAAC,CAAC;MACD,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;MACnE,CAAC,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;GAChF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAW,CAAC,KAAK,EAAE,EAAE;IACtC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IACpD,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACzB,KAAK,EAAI,GAAG,CAAC,kEAAkE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAW,IAAI,EAAE,CAAC,SAAS,CAAC;QAC3H,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC;QACrB,IAAI,EAAK,CAAC,CAAC,MAAM,CAAC;QAClB,IAAI,EAAK,CAAC,CAAC,MAAM,CAAC;KACnB,CAAC,CAAC;MACD,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;MAC5E,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;GAC7E,CAAA;AACH,CAAC,CAAA;AAED,MAAM,QAAQ,GAAW,CAAC,KAAK,EAAE,EAAE;IACjC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAClD,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;IAC1B,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;IAC1B,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,IAAI,CAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAE9E,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACzB,KAAK,EAAI,GAAG,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAW,IAAI,EAAE,CAAC,SAAS,CAAC;QAC5F,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC;QACrB,IAAI,EAAK,CAAC,CAAC,MAAM,CAAC;QAClB,EAAE,EAAO,EAAE;QACX,EAAE,EAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,IAAI,CAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5E,GAAG,EAAM,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,KAAK,CAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;KAChF,CAAC,CAAC;MACD,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAA;wBAClB,MAAM,CAAC,QAAQ,CAAC;KACnC,CAAC,CAAC,CAAC,CAAC,EAAE;MACL,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;GAClE,CAAA;AACH,CAAC,CAAA;AAED,MAAM,OAAO,GAAW,CAAC,KAAK,EAAE,EAAE;IAChC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAClD,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACzB,KAAK,EAAK,GAAG,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAW,IAAI,EAAE,CAAC,SAAS,CAAC;QAC7F,KAAK,EAAK,CAAC,CAAC,OAAO,CAAC;QACpB,MAAM,EAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAW,CAAC;QACtC,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC;QACvB,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;KAC7D,CAAC,CAAC;MACD,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;MAC1E,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;GAC7E,CAAA;AACH,CAAC,CAAA;AAED,MAAM,OAAO,GAAW,CAAC,KAAK,EAAE,EAAE;IAChC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAClD,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACzB,KAAK,EAAI,KAAK,CAAC,CAAC,CAAC,OAAO,CAAW,CAAC;QACpC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC;QACrB,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC;KACtB,CAAC,CAAC;MACD,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;GAC7E,CAAA;AACH,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAW,CAAC,KAAK,EAAE,EAAE;IACzC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAClD,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACzB,KAAK,EAAO,GAAG,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAW,IAAI,EAAE,CAAC,SAAS,CAAC;QAC/F,OAAO,EAAK,CAAC,CAAC,SAAS,CAAC;QACxB,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC;KAC5B,CAAC,CAAC;MACD,CAAC,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;GACvE,CAAA;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAW,CAAC,KAAK,EAAE,EAAE;IAClC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAClD,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACzB,IAAI,EAAE,GAAG,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAW,IAAI,EAAE,CAAC,SAAS,CAAC;KACzF,CAAC,CAAC;MACD,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;MAC1E,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAK,CAAC,CAAC,WAAW,CAAe,CAAC,MAAM,GAAG,CAAC;QACzE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,EAAE;GACP,CAAA;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAW,CAAC,KAAK,EAAE,EAAE;IAClC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAClD,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACzB,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAW,CAAC;QAC1C,GAAG,EAAQ,GAAG,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAW,IAAI,GAAG,CAAC,SAAS,CAAC;QAC7F,KAAK,EAAM,CAAC,CAAC,OAAO,CAAC;QACrB,GAAG,EAAQ,CAAC,CAAC,KAAK,CAAC;KACpB,CAAC,CAAC;MACD,CAAC,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;GACvE,CAAA;AACH,CAAC,CAAA;AAED,MAAM,YAAY,GAAW,CAAC,KAAK,EAAE,EAAE;IACrC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAClD,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACzB,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC;QAC7B,UAAU,EAAG,GAAG,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAW,IAAI,EAAE,CAAC,SAAS,CAAC;QACrG,MAAM,EAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAW,CAAC;QACzC,QAAQ,EAAK,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;QAC/D,WAAW,EAAE,CAAC,CAAC,UAAU,CAAC;KAC3B,CAAC,CAAC;MACD,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;GACpE,CAAA;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAW,CAAC,KAAK,EAAE,EAAE;IAClC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAClD,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAwC,CAAA;IACjE,MAAM,KAAK,GAAI,CAAC,CAAC,OAAO,CAAyC,CAAA;IAEjE,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACzB,KAAK,EAAG,GAAG,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAW,IAAI,EAAE,CAAC,SAAS,CAAC;QAC3F,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAW,CAAC;QACpC,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC;KACzB,CAAC,CAAC;MACD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;MAC/C,KAAK,CAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,EAAE;MAC/C,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;GAC7E,CAAA;AACH,CAAC,CAAA;AAED,MAAM,WAAW,GAAW,CAAC,KAAK,EAAE,EAAE;IACpC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAClD,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAqD,CAAA;IAC5E,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAW,IAAI,CAAC,CAAA;IAC7C,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACzB,IAAI,EAAM,GAAG,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAW,IAAI,EAAE,CAAC,SAAS,CAAC;QAC5F,MAAM,EAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAW,CAAC;QACtC,MAAM,EAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QACtD,WAAW,EAAE,GAAG,CAAC,mCAAmC,QAAQ,SAAS,CAAC;QACtE,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;KAC7D,CAAC,CAAC;MACD,CAAC,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;MACvG,CAAC,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;MACrG,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAA;iEACwB,KAAK,CAAC,OAAO;QACtE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;KACtE,CAAC,CAAC,CAAC,CAAC,EAAE;GACR,CAAA;AACH,CAAC,CAAA;AAED,MAAM,QAAQ,GAAW,CAAC,KAAK,EAAE,EAAE;IACjC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAClD,MAAM,UAAU,GAAI,CAAC,CAAC,YAAY,CAAwC,CAAA;IAC1E,MAAM,UAAU,GAAI,CAAC,CAAC,YAAY,CAAwC,CAAA;IAC1E,MAAM,SAAS,GAAK,CAAC,CAAC,MAAM,CAAC,KAAK,gBAAgB,CAAA;IAElD,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACzB,MAAM,EAAS,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAW,CAAC;QAC3C,GAAG,EAAY,GAAG,CAAC,6CAA6C,MAAM,CAAC,CAAC,CAAC,KAAK,CAAW,IAAI,EAAE,CAAC,SAAS,CAAC;QAC1G,MAAM,EAAS,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7E,QAAQ,EAAO,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;QACjE,WAAW,EAAI,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;KACpE,CAAC,CAAC;MACD,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;MACpE,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;MACxG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;MACrE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;MACpG,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,uDAAuD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;GACjJ,CAAA;AACH,CAAC,CAAA;AAED,MAAM,QAAQ,GAAW,CAAC,KAAK,EAAE,EAAE;IACjC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAClD,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACzB,OAAO,EAAO,GAAG,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAW,IAAI,EAAE,CAAC,SAAS,CAAC;QACnG,MAAM,EAAQ,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxD,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,aAAa,CAAW,CAAC;QACjD,SAAS,EAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG;QAChC,QAAQ,EAAM,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;QAChE,MAAM,EAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG;QAChC,KAAK,EAAS,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG;KAChC,CAAC,CAAC;GACJ,CAAA;AACH,CAAC,CAAA;AAED,MAAM,QAAQ,GAAW,CAAC,KAAK,EAAE,EAAE;IACjC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAClD,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAA0B,CAAA;IAC/C,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACzB,MAAM,EAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAW,CAAC;QACtC,MAAM,EAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG;QAC5G,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC;KACxB,CAAC,CAAC;MACD,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;GACvF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAW,CAAC,KAAK,EAAE,EAAE;IACtC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IAEpC,sEAAsE;IACtE,wEAAwE;IACxE,MAAM,QAAQ,GAA4B;QACxC,IAAI,EAAU,KAAK,CAAC,IAAI,CAAC;QACzB,YAAY,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,IAAI;YACrC,CAAC,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,CAAC,CAAC,cAAc,CAAW,CAAC,qHAAqH,MAAM,CAAE,CAAC,CAAC,cAAc,CAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC;YAC/O,CAAC,CAAC,GAAG,CAAC,yDAAyD,CAAC;KACnE,CAAA;IAED,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,mBAAmB;YACtB,QAAQ,CAAC,IAAI,CAAC,GAAW,CAAC,CAAC,IAAI,CAAC,CAAA;YAChC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAA;YACvC,QAAQ,CAAC,KAAK,CAAC,GAAU,CAAC,CAAC,KAAK,CAAC,CAAA;YACjC,MAAK;QACP,KAAK,mBAAmB;YACtB,QAAQ,CAAC,QAAQ,CAAC,GAAO,CAAC,CAAC,QAAQ,CAAC,CAAA;YACpC,MAAK;QACP,KAAK,WAAW;YACd,QAAQ,CAAC,SAAS,CAAC,GAAQ,GAAG,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAW,IAAI,EAAE,CAAC,SAAS,CAAC,CAAA;YAChH,QAAQ,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,aAAa,CAAW,CAAC,CAAA;YAC5D,QAAQ,CAAC,SAAS,CAAC,GAAQ,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;YACrE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI;gBAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAA;YACnE,IAAI,CAAC,CAAC,QAAQ,CAAC;gBAAU,QAAQ,CAAC,QAAQ,CAAC,GAAM,CAAC,CAAC,QAAQ,CAAC,CAAA;YAC5D,MAAK;QACP,KAAK,aAAa;YAChB,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAW,IAAI,EAAE,CAAC,SAAS,CAAC,CAAA;YAC3G,MAAK;QACP,KAAK,WAAW;YACd,QAAQ,CAAC,SAAS,CAAC,GAAU,GAAG,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAW,IAAI,EAAE,CAAC,SAAS,CAAC,CAAA;YAClH,QAAQ,CAAC,OAAO,CAAC,GAAY,GAAG,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAW,IAAI,EAAE,CAAC,SAAS,CAAC,CAAA;YAChH,QAAQ,CAAC,QAAQ,CAAC,GAAW,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAW,CAAC,CAAA;YACzD,QAAQ,CAAC,YAAY,CAAC,GAAO,CAAC,CAAC,gBAAgB,CAAC,CAAA;YAChD,QAAQ,CAAC,cAAc,CAAC,GAAK,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAA;YACzF,IAAI,CAAC,CAAC,oBAAoB,CAAC;gBAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAW,CAAC,SAAS,CAAC,CAAA;YAC1I,MAAK;QACP,KAAK,eAAe,CAAC;QACrB,KAAK,gBAAgB;YACnB,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAW,IAAI,EAAE,CAAC,SAAS,CAAC,CAAA;YAC3G,MAAK;IACT,CAAC;IAED,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;MACnC,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;QACtE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,EAAE;GACP,CAAA;AACH,CAAC,CAAA;AAED,SAAS,eAAe,CAAC,SAAoB;IAC3C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA,EAAE,CAAA;IACzC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACjC,MAAM,CAAC,GAAG,EAA6B,CAAA;QACvC,MAAM,IAAI,GAAQ,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAA;QAC3D,MAAM,QAAQ,GAAI,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;QACrE,MAAM,QAAQ,GAAI,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,CAAA;QACxC,MAAM,aAAa,GAAG,CAAC,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAA;QACpD,MAAM,IAAI,GAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAA;QAC3D,MAAM,MAAM,GAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAA;QAE5C,MAAM,aAAa,GAAG,aAAa;YACjC,CAAC,CAAC,GAAG,CAAC,2JAA2J,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC;YAC5M,CAAC,CAAC,EAAE,CAAA;QAEN,OAAO,IAAI,CAAA;;;YAGH,KAAK,CAAC,IAAI,CAAC;YACX,aAAa;YACb,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,kEAAkE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;;UAElH,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;;;qCAGE,SAAS,CAAC,IAAI,CAAC;;SAE3C,CAAC,CAAC,CAAC,EAAE;UACJ,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;;;qCAGA,SAAS,CAAC,MAAM,CAAC;;SAE7C,CAAC,CAAC,CAAC,EAAE;;KAET,CAAA;IACH,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACX,OAAO,GAAG,CAAC,KAAK,CAAC,CAAA;AACnB,CAAC;AAED,SAAS,WAAW,CAAC,KAAgB;IACnC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA,EAAE,CAAA;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,CAA4B,CAAA;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAwC,CAAA;QAClE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAClF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAA;QAC1G,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,CAAA;QAElE,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;YACzB,SAAS,EAAM,CAAC,GAAG,CAAC;YACpB,MAAM,EAAS,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG;YACpD,YAAY,EAAG,MAAM,CAAC,OAAO,CAAC;YAC9B,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,yDAAyD,CAAC;SAC7H,CAAC,CAAC;;KAEN,CAAA;IACH,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACX,OAAO,GAAG,CAAC,KAAK,CAAC,CAAA;AACnB,CAAC;AAED,MAAM,MAAM,GAAW,CAAC,KAAK,EAAE,EAAE;IAC/B,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAElD,MAAM,MAAM,GAAS,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9C,MAAM,WAAW,GAAI,MAAM,KAAK,QAAQ;QACtC,CAAC,CAAC,GAAG,CAAC,wJAAwJ,CAAC;QAC/J,CAAC,CAAC,GAAG,CAAC,mKAAmK,CAAC,CAAA;IAE5K,MAAM,YAAY,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAA;IAC5D,MAAM,SAAS,GAAM,CAAC,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;IAC3D,MAAM,SAAS,GAAM,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAc,CAAC,CAAC,CAAC,EAAE,CAAA;IACrF,MAAM,KAAK,GAAU,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAc,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7E,MAAM,KAAK,GAAU,CAAC,CAAC,OAAO,CAAwC,CAAA;IAEtE,MAAM,WAAW,GAA4B;QAC3C,MAAM,EAAS,WAAW;QAC1B,KAAK,EAAU,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG;QAChC,KAAK,EAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,yDAAyD,CAAC;QACtH,QAAQ,EAAO,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG;QACnC,QAAQ,EAAO,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;QACjE,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,yDAAyD,CAAC;QAC5H,KAAK,EAAU,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC;QACxE,YAAY,EAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC;QACpF,SAAS,EAAM,SAAS;KACzB,CAAA;IACD,IAAI,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACxB,WAAW,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAC,mCAAmC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACvH,CAAC;IACD,MAAM,gBAAgB,GAAG,CAAC,CAAC,kBAAkB,CAAuB,CAAA;IACpE,IAAI,gBAAgB,IAAI,IAAI,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;QACrD,WAAW,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAAA;IACrD,CAAC;IAED,MAAM,UAAU,GAAI,CAAC,CAAC,OAAO,CAAa,CAAA;IAC1C,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAY,CAAA;IAC1C,MAAM,UAAU,GAAI,CAAC,CAAC,OAAO,CAAa,CAAA;IAE1C,MAAM,QAAQ,GAAI,OAAO,UAAU,KAAM,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAG,IAAI,EAAE,CAAC,CAAC,CAAA;IACtG,MAAM,SAAS,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAEtG,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;;MAE9C,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC;QAC1C,MAAM,EAAM,KAAK,CAAC,cAAc,CAAC,IAAQ,KAAK,CAAC,eAAe,CAAC,IAAQ,GAAG;QAC1E,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,IAAI,GAAG;QAC1E,KAAK,EAAO,KAAK,CAAC,aAAa,CAAC,IAAS,KAAK,CAAC,cAAc,CAAC,IAAS,GAAG;KAC3E,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;;MAEN,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI;QAC/C,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC,EAAE;;MAEJ,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI;QACjD,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAChE,CAAC,CAAC,EAAE;;MAEJ,UAAU;QACV,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,uFAAuF,MAAM,CAAC,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9M,CAAC,CAAC,EAAE;;MAEJ,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;;MAE1E,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;GAC5D,CAAA;AACH,CAAC,CAAA;AAED,MAAM,QAAQ,GAAW,CAAC,KAAK,EAAE,EAAE;IACjC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IAEpC,MAAM,QAAQ,GAA4B;QACxC,IAAI,EAAM,KAAK,CAAC,IAAI,CAAC;QACrB,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,yDAAyD,CAAC;KAClL,CAAA;IACD,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QAClB,QAAQ,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,oBAAoB,MAAM,CAAC,CAAC,CAAC,UAAU,CAAW,CAAC,qHAAqH,MAAM,CAAE,CAAC,CAAC,UAAU,CAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;IACzP,CAAC;IAED,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY;YACf,QAAQ,CAAC,SAAS,CAAC,GAAI,CAAC,CAAC,aAAa,CAAC,CAAA;YACvC,MAAK;QACP,KAAK,gBAAgB;YACnB,QAAQ,CAAC,OAAO,CAAC,GAAW,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAA;YACpD,QAAQ,CAAC,YAAY,CAAC,GAAM,CAAC,CAAC,gBAAgB,CAAC,CAAA;YAC/C,MAAK;QACP,KAAK,mBAAmB;YACtB,QAAQ,CAAC,OAAO,CAAC,GAAW,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAA;YACpD,MAAK;QACP,KAAK,kBAAkB;YACrB,QAAQ,CAAC,UAAU,CAAC,GAAQ,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAA;YAClD,QAAQ,CAAC,OAAO,CAAC,GAAW,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAA;YACpD,MAAK;QACP,KAAK,kBAAkB;YACrB,QAAQ,CAAC,OAAO,CAAC,GAAW,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAA;YACpD,MAAK;QACP,KAAK,YAAY;YACf,QAAQ,CAAC,OAAO,CAAC,GAAW,CAAC,CAAC,OAAO,CAAC,CAAA;YACtC,MAAK;IACT,CAAC;IAED,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;GACtC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,OAAO,GAAW,CAAC,KAAK,EAAE,EAAE;IAChC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAkC,CAAA;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACxC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;IAEnC,MAAM,IAAI,GAA4B;QACpC,MAAM,EAAI,CAAC,CAAC,YAAY,CAAC;QACzB,IAAI,EAAM,KAAK,CAAC,OAAO,CAAC;QACxB,IAAI,EAAM,GAAG,CAAC,mCAAmC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC;QAC1F,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAW,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;QAClF,MAAM,EAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;KAClD,CAAA;IAED,OAAO,IAAI,CAAA;MACP,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;MAC1C,CAAC,CAAC,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI;QAC/C,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;MACT,CAAC,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO;QAC7D,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;MACT,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;GACnE,CAAA;AACH,CAAC,CAAA;AAED,uEAAuE;AACvE,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,OAAO,EAAO,WAAW;IACzB,KAAK,EAAS,SAAS;IACvB,SAAS,EAAK,aAAa;IAC3B,IAAI,EAAU,QAAQ;IACtB,GAAG,EAAW,OAAO;IACrB,GAAG,EAAW,OAAO;IACrB,YAAY,EAAE,gBAAgB;IAC9B,KAAK,EAAS,SAAS;IACvB,KAAK,EAAS,SAAS;IACvB,QAAQ,EAAM,YAAY;IAC1B,KAAK,EAAS,SAAS;IACvB,OAAO,EAAO,WAAW;IACzB,IAAI,EAAU,QAAQ;IACtB,IAAI,EAAU,QAAQ;IACtB,IAAI,EAAU,QAAQ;IACtB,SAAS,EAAK,aAAa;IAC3B,IAAI,EAAU,QAAQ;IACtB,EAAE,EAAY,MAAM;IACpB,GAAG,EAAW,OAAO;CACtB,CAAA;AAED,sEAAsE;AACtE,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;SACnB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AAC3B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { Layout, type LayoutProps, type NavItem } from './Layout.js';
2
+ export { Dashboard, type DashboardProps } from './Dashboard.js';
3
+ export { EntryList, type EntryListProps, type Column } from './EntryList.js';
4
+ export { pages, type PageConfig } from './columns.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/vanilla/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5E,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,5 @@
1
+ export { Layout } from './Layout.js';
2
+ export { Dashboard } from './Dashboard.js';
3
+ export { EntryList } from './EntryList.js';
4
+ export { pages } from './columns.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/views/vanilla/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkC,MAAM,aAAa,CAAA;AACpE,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAoC,MAAM,gBAAgB,CAAA;AAC5E,OAAO,EAAE,KAAK,EAAmB,MAAM,cAAc,CAAA"}