@fluxmail/provider-outlook 0.6.0 → 0.7.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.
- package/dist/outlookProvider.d.ts +2 -2
- package/dist/outlookProvider.d.ts.map +1 -1
- package/dist/outlookProvider.js +135 -34
- package/dist/outlookProvider.js.map +1 -1
- package/dist/query.d.ts +1 -1
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +20 -18
- package/dist/query.js.map +1 -1
- package/package.json +2 -2
|
@@ -9,12 +9,12 @@ export interface OutlookProviderOptions {
|
|
|
9
9
|
}
|
|
10
10
|
export declare const OUTLOOK_CAPABILITIES: Capabilities;
|
|
11
11
|
export declare class OutlookProvider implements EmailProvider {
|
|
12
|
-
readonly capabilities: Capabilities;
|
|
13
12
|
private readonly accountId;
|
|
14
13
|
private readonly tokenProvider;
|
|
15
14
|
private readonly fetchImpl;
|
|
16
15
|
private folderCache;
|
|
17
16
|
constructor(options: OutlookProviderOptions);
|
|
17
|
+
get capabilities(): Capabilities;
|
|
18
18
|
private url;
|
|
19
19
|
private request;
|
|
20
20
|
testConnection(): Promise<void>;
|
|
@@ -24,7 +24,7 @@ export declare class OutlookProvider implements EmailProvider {
|
|
|
24
24
|
listLabels(): Promise<Label[]>;
|
|
25
25
|
private resolveCategoryNames;
|
|
26
26
|
private resolveFolder;
|
|
27
|
-
listMessages(
|
|
27
|
+
listMessages(input: EmailQuery, page?: PageOpts): Promise<Page<Message>>;
|
|
28
28
|
private rawMessage;
|
|
29
29
|
getMessage(id: string, options?: GetMessageOpts): Promise<Message>;
|
|
30
30
|
getThread(threadId: string): Promise<Thread>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outlookProvider.d.ts","sourceRoot":"","sources":["../src/outlookProvider.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"outlookProvider.d.ts","sourceRoot":"","sources":["../src/outlookProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,MAAM,EAEX,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,MAAM,EACZ,MAAM,gBAAgB,CAAC;AAgDxB,MAAM,WAAW,4BAA4B;IAC3C,cAAc,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,4BAA4B,CAAC;IAC5C,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,eAAO,MAAM,oBAAoB,EAAE,YAkBlC,CAAC;AAmJF,qBAAa,eAAgB,YAAW,aAAa;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;IAC7D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,WAAW,CAA8D;gBAErE,OAAO,EAAE,sBAAsB;IAM3C,IAAI,YAAY,IAAI,YAAY,CAmB/B;IAED,OAAO,CAAC,GAAG;YASG,OAAO;IAmDf,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;YAIvB,UAAU;YAWV,cAAc;IA4EtB,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIhC,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAyBtB,oBAAoB;YAkBpB,aAAa;IAWrB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,GAAE,QAAa,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAuGpE,UAAU;IAQlB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IActE,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAclD,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,iBAAiB;YAQX,aAAa;YA8Cb,kBAAkB;IAmB1B,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BhD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO3C,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBjE,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3C,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAsB1D,IAAI;YAaJ,0BAA0B;IAelC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmF1D,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAkBtD"}
|
package/dist/outlookProvider.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EmailError, replySubject, } from '@fluxmail/core';
|
|
1
|
+
import { EmailError, normalizeEmailQuery, replySubject, } from '@fluxmail/core';
|
|
2
2
|
import { GraphHttpError, isRetryableGraphError, toEmailError } from './errors.js';
|
|
3
3
|
import { parseGraphAttachment, parseGraphMessage, toGraphRecipients } from './parse.js';
|
|
4
4
|
import { toGraphQuery } from './query.js';
|
|
@@ -44,6 +44,19 @@ export const OUTLOOK_CAPABILITIES = {
|
|
|
44
44
|
labels: true,
|
|
45
45
|
serverThreads: true,
|
|
46
46
|
serverSearch: 'rich',
|
|
47
|
+
search: {
|
|
48
|
+
filters: ['folder', 'text', 'from', 'to', 'subject', 'read', 'starred', 'hasAttachment', 'after', 'before'],
|
|
49
|
+
folderRoles: {
|
|
50
|
+
inbox: 'available',
|
|
51
|
+
sent: 'available',
|
|
52
|
+
drafts: 'available',
|
|
53
|
+
archive: 'unknown',
|
|
54
|
+
spam: 'available',
|
|
55
|
+
trash: 'available',
|
|
56
|
+
all: 'available',
|
|
57
|
+
},
|
|
58
|
+
nativeQuery: { syntax: 'outlook-kql', availability: 'available' },
|
|
59
|
+
},
|
|
47
60
|
snippets: true,
|
|
48
61
|
};
|
|
49
62
|
function sleep(ms) {
|
|
@@ -62,8 +75,12 @@ function bodyFor(draft) {
|
|
|
62
75
|
return { contentType: 'HTML', content: draft.body.html };
|
|
63
76
|
return { contentType: 'Text', content: draft.body.text ?? '' };
|
|
64
77
|
}
|
|
65
|
-
function encodePageToken(url, localFilter) {
|
|
66
|
-
const payload = {
|
|
78
|
+
function encodePageToken(url, localFilter, offset = 0) {
|
|
79
|
+
const payload = {
|
|
80
|
+
url,
|
|
81
|
+
...(localFilter ? { localFilter } : {}),
|
|
82
|
+
...(offset ? { offset } : {}),
|
|
83
|
+
};
|
|
67
84
|
return Buffer.from(JSON.stringify(payload)).toString('base64url');
|
|
68
85
|
}
|
|
69
86
|
function decodePageToken(token) {
|
|
@@ -84,19 +101,27 @@ function decodePageToken(token) {
|
|
|
84
101
|
const url = new URL(payload.url);
|
|
85
102
|
if (url.origin !== 'https://graph.microsoft.com' || !url.pathname.startsWith('/v1.0/'))
|
|
86
103
|
throw new Error();
|
|
104
|
+
const offset = payload.offset;
|
|
105
|
+
if (offset !== undefined && (!Number.isInteger(offset) || offset < 0))
|
|
106
|
+
throw new Error();
|
|
87
107
|
let localFilter;
|
|
88
108
|
if (payload.localFilter !== undefined) {
|
|
89
109
|
if (!payload.localFilter || typeof payload.localFilter !== 'object' || Array.isArray(payload.localFilter)) {
|
|
90
110
|
throw new Error();
|
|
91
111
|
}
|
|
92
112
|
const entries = Object.entries(payload.localFilter);
|
|
93
|
-
const booleanKeys = new Set(['
|
|
94
|
-
|
|
113
|
+
const booleanKeys = new Set(['read', 'starred', 'hasAttachment', 'allMailScope']);
|
|
114
|
+
const dateKeys = new Set(['after', 'before']);
|
|
115
|
+
if (entries.some(([key, value]) => (!booleanKeys.has(key) || typeof value !== 'boolean') && (!dateKeys.has(key) || typeof value !== 'string'))) {
|
|
95
116
|
throw new Error();
|
|
96
117
|
}
|
|
97
118
|
localFilter = payload.localFilter;
|
|
98
119
|
}
|
|
99
|
-
return {
|
|
120
|
+
return {
|
|
121
|
+
url: payload.url,
|
|
122
|
+
...(localFilter ? { localFilter } : {}),
|
|
123
|
+
...(typeof offset === 'number' && offset > 0 ? { offset } : {}),
|
|
124
|
+
};
|
|
100
125
|
}
|
|
101
126
|
catch {
|
|
102
127
|
throw new EmailError('invalid_request', 'Invalid Microsoft Graph page token');
|
|
@@ -104,9 +129,11 @@ function decodePageToken(token) {
|
|
|
104
129
|
}
|
|
105
130
|
function localMessageFilter(query, allMailScope = false) {
|
|
106
131
|
const filter = {
|
|
107
|
-
...(query.
|
|
108
|
-
...(query.
|
|
109
|
-
...(query.hasAttachment ? { hasAttachment:
|
|
132
|
+
...(query.read !== undefined ? { read: query.read } : {}),
|
|
133
|
+
...(query.starred !== undefined ? { starred: query.starred } : {}),
|
|
134
|
+
...(query.hasAttachment !== undefined ? { hasAttachment: query.hasAttachment } : {}),
|
|
135
|
+
...(query.after ? { after: query.after } : {}),
|
|
136
|
+
...(query.before ? { before: query.before } : {}),
|
|
110
137
|
...(allMailScope ? { allMailScope: true } : {}),
|
|
111
138
|
};
|
|
112
139
|
return Object.keys(filter).length ? filter : undefined;
|
|
@@ -114,11 +141,14 @@ function localMessageFilter(query, allMailScope = false) {
|
|
|
114
141
|
function matchesLocalMessageFilter(message, filter, allMailExcludedFolderIds) {
|
|
115
142
|
if (!filter)
|
|
116
143
|
return true;
|
|
117
|
-
if (filter.
|
|
144
|
+
if (filter.read !== undefined && message.isRead !== filter.read)
|
|
118
145
|
return false;
|
|
119
|
-
if (filter.
|
|
146
|
+
if (filter.starred !== undefined && (message.flag?.flagStatus === 'flagged') !== filter.starred)
|
|
120
147
|
return false;
|
|
121
|
-
|
|
148
|
+
const receivedAt = message.receivedDateTime ?? message.sentDateTime ?? message.createdDateTime;
|
|
149
|
+
if (filter.after && (!receivedAt || receivedAt < `${filter.after}T00:00:00.000Z`))
|
|
150
|
+
return false;
|
|
151
|
+
if (filter.before && (!receivedAt || receivedAt >= `${filter.before}T00:00:00.000Z`))
|
|
122
152
|
return false;
|
|
123
153
|
if (filter.allMailScope && message.parentFolderId && allMailExcludedFolderIds.has(message.parentFolderId))
|
|
124
154
|
return false;
|
|
@@ -138,7 +168,6 @@ function graphAttachment(input) {
|
|
|
138
168
|
};
|
|
139
169
|
}
|
|
140
170
|
export class OutlookProvider {
|
|
141
|
-
capabilities = OUTLOOK_CAPABILITIES;
|
|
142
171
|
accountId;
|
|
143
172
|
tokenProvider;
|
|
144
173
|
fetchImpl;
|
|
@@ -148,6 +177,26 @@ export class OutlookProvider {
|
|
|
148
177
|
this.tokenProvider = options.tokenProvider;
|
|
149
178
|
this.fetchImpl = options.fetch ?? globalThis.fetch;
|
|
150
179
|
}
|
|
180
|
+
get capabilities() {
|
|
181
|
+
const snapshot = this.folderCache?.snapshot;
|
|
182
|
+
return {
|
|
183
|
+
...OUTLOOK_CAPABILITIES,
|
|
184
|
+
search: {
|
|
185
|
+
...OUTLOOK_CAPABILITIES.search,
|
|
186
|
+
folderRoles: snapshot
|
|
187
|
+
? {
|
|
188
|
+
inbox: snapshot.byRole.has('inbox') ? 'available' : 'unavailable',
|
|
189
|
+
sent: snapshot.byRole.has('sent') ? 'available' : 'unavailable',
|
|
190
|
+
drafts: snapshot.byRole.has('drafts') ? 'available' : 'unavailable',
|
|
191
|
+
archive: snapshot.byRole.has('archive') ? 'available' : 'unavailable',
|
|
192
|
+
spam: snapshot.byRole.has('spam') ? 'available' : 'unavailable',
|
|
193
|
+
trash: snapshot.byRole.has('trash') ? 'available' : 'unavailable',
|
|
194
|
+
all: 'available',
|
|
195
|
+
}
|
|
196
|
+
: OUTLOOK_CAPABILITIES.search.folderRoles,
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
}
|
|
151
200
|
url(pathOrUrl) {
|
|
152
201
|
if (!/^https?:/i.test(pathOrUrl))
|
|
153
202
|
return `${GRAPH_ROOT}${pathOrUrl.startsWith('/') ? '' : '/'}${pathOrUrl}`;
|
|
@@ -155,7 +204,7 @@ export class OutlookProvider {
|
|
|
155
204
|
if (url.origin !== 'https://graph.microsoft.com' || !url.pathname.startsWith('/v1.0/')) {
|
|
156
205
|
throw new EmailError('invalid_request', 'Microsoft Graph returned an invalid continuation URL');
|
|
157
206
|
}
|
|
158
|
-
return
|
|
207
|
+
return pathOrUrl;
|
|
159
208
|
}
|
|
160
209
|
async request(pathOrUrl, init = {}, options = {}) {
|
|
161
210
|
const url = this.url(pathOrUrl);
|
|
@@ -334,11 +383,18 @@ export class OutlookProvider {
|
|
|
334
383
|
throw new EmailError('not_found', `No Outlook folder named "${value}"`);
|
|
335
384
|
return match;
|
|
336
385
|
}
|
|
337
|
-
async listMessages(
|
|
386
|
+
async listMessages(input, page = {}) {
|
|
387
|
+
const normalized = normalizeEmailQuery(input);
|
|
388
|
+
if (!normalized.success) {
|
|
389
|
+
throw new EmailError('invalid_request', normalized.diagnostics.map((item) => item.message).join(' '), {
|
|
390
|
+
diagnostics: normalized.diagnostics,
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
const query = normalized.query;
|
|
338
394
|
const resolvedFolder = query.folder ? await this.resolveFolder(query.folder) : undefined;
|
|
339
395
|
const starredFolder = resolvedFolder?.role === 'starred';
|
|
340
396
|
const folder = resolvedFolder?.role === 'all' || starredFolder ? undefined : resolvedFolder;
|
|
341
|
-
const normalizedQuery = { ...query, ...(starredFolder ? {
|
|
397
|
+
const normalizedQuery = { ...query, ...(starredFolder ? { starred: true } : {}), folder: undefined };
|
|
342
398
|
const graphQuery = toGraphQuery(normalizedQuery);
|
|
343
399
|
const folders = await this.folderSnapshot();
|
|
344
400
|
const allMailScope = !folder;
|
|
@@ -346,10 +402,12 @@ export class OutlookProvider {
|
|
|
346
402
|
const allMailFilter = excludedRootFolderIds.map((id) => `parentFolderId ne '${escapeOData(id)}'`).join(' and ');
|
|
347
403
|
let requestUrl;
|
|
348
404
|
let localFilter;
|
|
405
|
+
let candidateOffset = 0;
|
|
349
406
|
if (page.pageToken) {
|
|
350
407
|
const decoded = decodePageToken(page.pageToken);
|
|
351
408
|
requestUrl = decoded.url;
|
|
352
409
|
localFilter = decoded.localFilter;
|
|
410
|
+
candidateOffset = decoded.offset ?? 0;
|
|
353
411
|
}
|
|
354
412
|
else {
|
|
355
413
|
const base = folder ? `/me/mailFolders/${encodeURIComponent(folder.id)}/messages` : '/me/messages';
|
|
@@ -359,32 +417,75 @@ export class OutlookProvider {
|
|
|
359
417
|
});
|
|
360
418
|
if (graphQuery.search)
|
|
361
419
|
params.set('$search', graphQuery.search);
|
|
362
|
-
if (graphQuery.search) {
|
|
363
|
-
localFilter = localMessageFilter(normalizedQuery, allMailScope);
|
|
364
|
-
}
|
|
365
|
-
else {
|
|
420
|
+
if (!graphQuery.search) {
|
|
366
421
|
const filter = [graphQuery.filter, allMailFilter].filter(Boolean).join(' and ');
|
|
367
422
|
if (filter)
|
|
368
423
|
params.set('$filter', filter);
|
|
369
|
-
if (allMailScope)
|
|
370
|
-
localFilter = { allMailScope: true };
|
|
371
424
|
}
|
|
425
|
+
localFilter = localMessageFilter(normalizedQuery, allMailScope);
|
|
372
426
|
requestUrl = `${base}?${params}`;
|
|
373
427
|
}
|
|
374
|
-
const
|
|
375
|
-
const items =
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
428
|
+
const pageSize = Math.min(Math.max(page.pageSize ?? DEFAULT_PAGE_SIZE, 1), MAX_PAGE_SIZE);
|
|
429
|
+
const items = [];
|
|
430
|
+
let inspectedCandidates = 0;
|
|
431
|
+
let nextPageToken;
|
|
432
|
+
do {
|
|
433
|
+
const response = await this.request(requestUrl);
|
|
434
|
+
const candidates = response.value ?? [];
|
|
435
|
+
if (candidateOffset > candidates.length) {
|
|
436
|
+
throw new EmailError('invalid_request', 'Invalid Microsoft Graph page token');
|
|
437
|
+
}
|
|
438
|
+
let processedCandidates = 0;
|
|
439
|
+
for (const raw of candidates.slice(candidateOffset)) {
|
|
440
|
+
if (inspectedCandidates >= 1_000)
|
|
441
|
+
break;
|
|
442
|
+
inspectedCandidates += 1;
|
|
443
|
+
processedCandidates += 1;
|
|
444
|
+
if (!matchesLocalMessageFilter(raw, localFilter, folders.allMailExcludedFolderIds))
|
|
445
|
+
continue;
|
|
446
|
+
if (localFilter?.hasAttachment !== undefined) {
|
|
447
|
+
if (!raw.id)
|
|
448
|
+
continue;
|
|
449
|
+
const attachments = await this.collection(`/me/messages/${encodeURIComponent(raw.id)}/attachments?$select=${ATTACHMENT_METADATA_SELECT}`);
|
|
450
|
+
const hasAttachment = attachments.some((attachment) => attachment.isInline !== true);
|
|
451
|
+
if (hasAttachment !== localFilter.hasAttachment)
|
|
452
|
+
continue;
|
|
453
|
+
}
|
|
454
|
+
items.push(parseGraphMessage(raw, {
|
|
455
|
+
accountId: this.accountId,
|
|
456
|
+
...(raw.parentFolderId && folders.byId.get(raw.parentFolderId)
|
|
457
|
+
? { folder: folders.byId.get(raw.parentFolderId) }
|
|
458
|
+
: {}),
|
|
459
|
+
}));
|
|
460
|
+
if (items.length === pageSize)
|
|
461
|
+
break;
|
|
462
|
+
}
|
|
463
|
+
const next = response['@odata.nextLink'];
|
|
464
|
+
const consumedOffset = candidateOffset + processedCandidates;
|
|
465
|
+
if (items.length === pageSize || inspectedCandidates >= 1_000) {
|
|
466
|
+
nextPageToken =
|
|
467
|
+
consumedOffset < candidates.length
|
|
468
|
+
? encodePageToken(this.url(requestUrl), localFilter, consumedOffset)
|
|
469
|
+
: next
|
|
470
|
+
? encodePageToken(next, localFilter)
|
|
471
|
+
: undefined;
|
|
472
|
+
break;
|
|
473
|
+
}
|
|
474
|
+
if (!next)
|
|
475
|
+
break;
|
|
476
|
+
requestUrl = next;
|
|
477
|
+
candidateOffset = 0;
|
|
478
|
+
} while (inspectedCandidates < 1_000);
|
|
479
|
+
const providerLimited = Boolean(graphQuery.search) && items.length < pageSize && inspectedCandidates >= 1_000 && !nextPageToken;
|
|
383
480
|
return {
|
|
384
481
|
items,
|
|
385
|
-
...(
|
|
386
|
-
|
|
387
|
-
|
|
482
|
+
...(nextPageToken ? { nextPageToken } : {}),
|
|
483
|
+
...(localFilter ? { inspectedCandidates } : {}),
|
|
484
|
+
...(items.length < pageSize && inspectedCandidates >= 1_000 && nextPageToken
|
|
485
|
+
? { incomplete: true, incompleteReason: 'scan_limit' }
|
|
486
|
+
: providerLimited
|
|
487
|
+
? { incomplete: true, incompleteReason: 'provider_limit' }
|
|
488
|
+
: {}),
|
|
388
489
|
};
|
|
389
490
|
}
|
|
390
491
|
async rawMessage(id, includeHeaders = false) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outlookProvider.js","sourceRoot":"","sources":["../src/outlookProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"outlookProvider.js","sourceRoot":"","sources":["../src/outlookProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,YAAY,GAkBb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,MAAM,UAAU,GAAG,kCAAkC,CAAC;AACtD,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,sBAAsB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/C,MAAM,kBAAkB,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC;AAE3C,MAAM,mBAAmB,GAAG;IAC1B,IAAI;IACJ,gBAAgB;IAChB,gBAAgB;IAChB,MAAM;IACN,cAAc;IACd,cAAc;IACd,eAAe;IACf,SAAS;IACT,SAAS;IACT,kBAAkB;IAClB,cAAc;IACd,iBAAiB;IACjB,aAAa;IACb,QAAQ;IACR,SAAS;IACT,MAAM;IACN,gBAAgB;IAChB,YAAY;CACb,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,mBAAmB,GAAG,GAAG,mBAAmB,OAAO,CAAC;AAC1D,MAAM,iBAAiB,GAAG,6CAA6C,CAAC;AACxE,MAAM,0BAA0B,GAAG,mCAAmC,CAAC;AAEvE,MAAM,kBAAkB,GAA0D;IAChF,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;IAC7C,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;IACrD,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChD,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE;IAC5D,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;IACrD,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;CACpD,CAAC;AAYF,MAAM,CAAC,MAAM,oBAAoB,GAAiB;IAChD,MAAM,EAAE,IAAI;IACZ,aAAa,EAAE,IAAI;IACnB,YAAY,EAAE,MAAM;IACpB,MAAM,EAAE;QACN,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC;QAC3G,WAAW,EAAE;YACX,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,WAAW;SACjB;QACD,WAAW,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE;KAClE;IACD,QAAQ,EAAE,IAAI;CACf,CAAC;AA+BF,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB,EAAE,QAA4B;IAC3E,IAAI,QAAQ,KAAK,SAAS,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;QACnD,MAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE,gDAAgD,EAAE;YACxF,SAAS;YACT,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,KAAiB;IAChC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,WAAgC,EAAE,MAAM,GAAG,CAAC;IAChF,MAAM,OAAO,GAAqB;QAChC,GAAG;QACH,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9B,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;YAC/D,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAQ,MAA4B,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnG,MAAM,IAAI,KAAK,EAAE,CAAC;QACpB,CAAC;QACD,MAAM,OAAO,GAAG,MAAkE,CAAC;QACnF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,GAAG,CAAC,MAAM,KAAK,6BAA6B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,EAAE,CAAC;QAC1G,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAK,MAAiB,GAAG,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,EAAE,CAAC;QACrG,IAAI,WAA2C,CAAC;QAChD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC1G,MAAM,IAAI,KAAK,EAAE,CAAC;YACpB,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC;YAClF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC9C,IACE,OAAO,CAAC,IAAI,CACV,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACf,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAC7G,EACD,CAAC;gBACD,MAAM,IAAI,KAAK,EAAE,CAAC;YACpB,CAAC;YACD,WAAW,GAAG,OAAO,CAAC,WAAiC,CAAC;QAC1D,CAAC;QACD,OAAO;YACL,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE,oCAAoC,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAiB,EAAE,YAAY,GAAG,KAAK;IACjE,MAAM,MAAM,GAAuB;QACjC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AAED,SAAS,yBAAyB,CAChC,OAAqB,EACrB,MAAsC,EACtC,wBAA6C;IAE7C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9E,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,KAAK,SAAS,CAAC,KAAK,MAAM,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC9G,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,eAAe,CAAC;IAC/F,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,UAAU,IAAI,UAAU,GAAG,GAAG,MAAM,CAAC,KAAK,gBAAgB,CAAC;QAAE,OAAO,KAAK,CAAC;IAChG,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,UAAU,IAAI,UAAU,IAAI,GAAG,MAAM,CAAC,MAAM,gBAAgB,CAAC;QAAE,OAAO,KAAK,CAAC;IACnG,IAAI,MAAM,CAAC,YAAY,IAAI,OAAO,CAAC,cAAc,IAAI,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;QACvG,OAAO,KAAK,CAAC;IACf,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,eAAe,CAAC,KAAsB;IAC7C,OAAO;QACL,aAAa,EAAE,iCAAiC;QAChD,IAAI,EAAE,KAAK,CAAC,QAAQ;QACpB,WAAW,EAAE,KAAK,CAAC,QAAQ;QAC3B,YAAY,EAAE,KAAK,CAAC,OAAO;QAC3B,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,QAAQ,EAAE,KAAK,CAAC,WAAW,KAAK,QAAQ;KACzC,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,eAAe;IACT,SAAS,CAAS;IAClB,aAAa,CAA+B;IAC5C,SAAS,CAA0B;IAC5C,WAAW,CAA8D;IAEjF,YAAY,OAA+B;QACzC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IACrD,CAAC;IAED,IAAI,YAAY;QACd,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;QAC5C,OAAO;YACL,GAAG,oBAAoB;YACvB,MAAM,EAAE;gBACN,GAAG,oBAAoB,CAAC,MAAM;gBAC9B,WAAW,EAAE,QAAQ;oBACnB,CAAC,CAAC;wBACE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa;wBACjE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa;wBAC/D,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa;wBACnE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa;wBACrE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa;wBAC/D,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa;wBACjE,GAAG,EAAE,WAAW;qBACjB;oBACH,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,WAAW;aAC5C;SACF,CAAC;IACJ,CAAC;IAEO,GAAG,CAAC,SAAiB;QAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,EAAE,CAAC;QAC5G,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,GAAG,CAAC,MAAM,KAAK,6BAA6B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvF,MAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE,sDAAsD,CAAC,CAAC;QAClG,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,OAAO,CAAW,SAAiB,EAAE,OAAoB,EAAE,EAAE,UAA0B,EAAE;QACrG,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,SAAkB,CAAC;QACvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;gBAC9C,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;oBAClC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAClG,CAAC;gBACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;gBAC7G,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;gBACjE,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBAChB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;wBAAE,OAAO,SAAc,CAAC;oBAC9E,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAM,CAAC;gBACpD,CAAC;gBACD,IAAI,OAAO,GAAoD,EAAE,CAAC;gBAClE,IAAI,CAAC;oBACH,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmB,CAAC;gBACtD,CAAC;gBAAC,MAAM,CAAC;oBACP,iEAAiE;gBACnE,CAAC;gBACD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACvD,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtF,MAAM,KAAK,GAAG,IAAI,cAAc,CAC9B,QAAQ,CAAC,MAAM,EACf,OAAO,CAAC,KAAK,EAAE,IAAI,EACnB,OAAO,CAAC,KAAK,EAAE,OAAO,IAAI,QAAQ,CAAC,UAAU,IAAI,gCAAgC,EACjF,YAAY,CACb,CAAC;gBACF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;oBAC7C,YAAY,GAAG,IAAI,CAAC;oBACpB,SAAS,GAAG,KAAK,CAAC;oBAClB,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,GAAG,KAAK,CAAC;gBAClB,MAAM,SAAS,GACb,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,IAAK,KAAwB,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;gBACvG,IAAI,CAAC,SAAS,IAAI,OAAO,KAAK,WAAW;oBAAE,MAAM;gBACjD,MAAM,YAAY,GAAI,KAAwB,CAAC,YAAY,CAAC;gBAC5D,MAAM,KAAK,CAAC,YAAY,IAAI,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QACD,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,UAAU,CAAI,SAAiB;QAC3C,MAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,IAAI,IAAI,GAAuB,SAAS,CAAC;QACzC,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,GAAuB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YAClC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,YAAY,GAAG,KAAK;QAC/C,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,mBAAmB,EAAE,CAAC;YACvG,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;QACnC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC/C,MAAM,OAAO,CAAC,GAAG,CACf,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACrC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAc,mBAAmB,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC;gBACtF,IAAI,GAAG,CAAC,EAAE;oBAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;oBAAE,MAAM,KAAK,CAAC;YAC5G,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,aAAa,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrE,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAC1C,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CACxE,CAAC;QACF,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACvE,MAAM,UAAU,GAAoD,EAAE,CAAC;QACvE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,EAChB,IAAY,EACZ,UAAkB,EAClB,aAAa,GAAG,IAAI,EACpB,WAAW,GAAG,KAAK,EACnB,qBAAqB,GAAG,KAAK,EACd,EAAE;YACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAc,IAAI,CAAC,CAAC;YAC1D,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAE,SAAS;gBACjE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACpB,MAAM,eAAe,GAAG,aAAa,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACvD,MAAM,eAAe,GAAG,WAAW,IAAI,GAAG,CAAC,EAAE,KAAK,aAAa,CAAC;gBAChE,MAAM,uBAAuB,GAAG,qBAAqB,IAAI,GAAG,CAAC,EAAE,KAAK,aAAa,IAAI,GAAG,CAAC,EAAE,KAAK,YAAY,CAAC;gBAC7G,IAAI,eAAe;oBAAE,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC1D,IAAI,eAAe;oBAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChD,IAAI,uBAAuB;oBAAE,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClE,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,eAAe,IAAI,uBAAuB,CAAC,EAAE,CAAC;oBACvG,MAAM,SAAS,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;oBAC5E,MAAM,IAAI,CACR,mBAAmB,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,kDAAkD,EAC/F,SAAS,EACT,eAAe,EACf,eAAe,EACf,uBAAuB,CACxB,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,MAAM,IAAI,CAAC,oDAAoD,EAAE,EAAE,CAAC,CAAC;QAErE,MAAM,OAAO,GAAa,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YACjE,EAAE,EAAE,GAAG,CAAC,EAAG;YACX,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,WAAY;YACxE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,OAAO,GAAG,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzF,CAAC,CAAC,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAChH,MAAM,QAAQ,GAAmB;YAC/B,OAAO;YACP,IAAI,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;YAC3D,MAAM,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAChG,cAAc;YACd,4BAA4B;YAC5B,wBAAwB;SACzB,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC;QACvD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,UAA2B,CAAC;QAChC,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAgB,uCAAuC,CAAC,CAAC;QAC7F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACtE,MAAM,IAAI,UAAU,CAClB,mBAAmB,EACnB,wGAAwG,CACzG,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QACD,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;gBAAE,OAAO,EAAE,CAAC;YACrD,OAAO;gBACL;oBACE,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,IAAI,EAAE,QAAQ,CAAC,WAAW;oBAC1B,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjE;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,MAAgB;QACjD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACxC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAC9B,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,CACrF,CAAC;YACF,OAAO,CAAC,QAAQ,EAAE,IAAI,IAAI,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;gBAAE,OAAO,KAAK,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,KAAa;QACvC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,IAAI,CAAC;QAC1F,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,IAAK,UAAyB,CAAC,CAAC;QAC7E,MAAM,KAAK,GACT,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,CAAC;QAChH,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,UAAU,CAAC,WAAW,EAAE,4BAA4B,KAAK,GAAG,CAAC,CAAC;QACpF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAiB,EAAE,OAAiB,EAAE;QACvD,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACpG,WAAW,EAAE,UAAU,CAAC,WAAW;aACpC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAC/B,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzF,MAAM,aAAa,GAAG,cAAc,EAAE,IAAI,KAAK,SAAS,CAAC;QACzD,MAAM,MAAM,GAAG,cAAc,EAAE,IAAI,KAAK,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC;QAC5F,MAAM,eAAe,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QACrG,MAAM,UAAU,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC;QAC7B,MAAM,qBAAqB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,MAAM,aAAa,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,sBAAsB,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChH,IAAI,UAAkB,CAAC;QACvB,IAAI,WAA2C,CAAC;QAChD,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChD,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;YACzB,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YAClC,eAAe,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,mBAAmB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC;YACnG,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;gBACjC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,iBAAiB,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;gBACtF,OAAO,EAAE,mBAAmB;aAC7B,CAAC,CAAC;YACH,IAAI,UAAU,CAAC,MAAM;gBAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChF,IAAI,MAAM;oBAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC5C,CAAC;YACD,WAAW,GAAG,kBAAkB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;YAChE,UAAU,GAAG,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;QACnC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,iBAAiB,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QAC1F,MAAM,KAAK,GAAc,EAAE,CAAC;QAC5B,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAC5B,IAAI,aAAiC,CAAC;QACtC,GAAG,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAgC,UAAU,CAAC,CAAC;YAC/E,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;YACxC,IAAI,eAAe,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;gBACxC,MAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE,oCAAoC,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,mBAAmB,GAAG,CAAC,CAAC;YAC5B,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;gBACpD,IAAI,mBAAmB,IAAI,KAAK;oBAAE,MAAM;gBACxC,mBAAmB,IAAI,CAAC,CAAC;gBACzB,mBAAmB,IAAI,CAAC,CAAC;gBACzB,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,wBAAwB,CAAC;oBAAE,SAAS;gBAC7F,IAAI,WAAW,EAAE,aAAa,KAAK,SAAS,EAAE,CAAC;oBAC7C,IAAI,CAAC,GAAG,CAAC,EAAE;wBAAE,SAAS;oBACtB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CACvC,gBAAgB,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,wBAAwB,0BAA0B,EAAE,CAC/F,CAAC;oBACF,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;oBACrF,IAAI,aAAa,KAAK,WAAW,CAAC,aAAa;wBAAE,SAAS;gBAC5D,CAAC;gBACD,KAAK,CAAC,IAAI,CACR,iBAAiB,CAAC,GAAG,EAAE;oBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,GAAG,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC;wBAC5D,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;wBAClD,CAAC,CAAC,EAAE,CAAC;iBACR,CAAC,CACH,CAAC;gBACF,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ;oBAAE,MAAM;YACvC,CAAC;YACD,MAAM,IAAI,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YACzC,MAAM,cAAc,GAAG,eAAe,GAAG,mBAAmB,CAAC;YAC7D,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,mBAAmB,IAAI,KAAK,EAAE,CAAC;gBAC9D,aAAa;oBACX,cAAc,GAAG,UAAU,CAAC,MAAM;wBAChC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC;wBACpE,CAAC,CAAC,IAAI;4BACJ,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC;4BACpC,CAAC,CAAC,SAAS,CAAC;gBAClB,MAAM;YACR,CAAC;YACD,IAAI,CAAC,IAAI;gBAAE,MAAM;YACjB,UAAU,GAAG,IAAI,CAAC;YAClB,eAAe,GAAG,CAAC,CAAC;QACtB,CAAC,QAAQ,mBAAmB,GAAG,KAAK,EAAE;QAEtC,MAAM,eAAe,GACnB,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ,IAAI,mBAAmB,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC;QAC1G,OAAO;YACL,KAAK;YACL,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,IAAI,mBAAmB,IAAI,KAAK,IAAI,aAAa;gBAC1E,CAAC,CAAC,EAAE,UAAU,EAAE,IAAa,EAAE,gBAAgB,EAAE,YAAqB,EAAE;gBACxE,CAAC,CAAC,eAAe;oBACf,CAAC,CAAC,EAAE,UAAU,EAAE,IAAa,EAAE,gBAAgB,EAAE,gBAAyB,EAAE;oBAC5E,CAAC,CAAC,EAAE,CAAC;SACV,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,EAAU,EAAE,cAAc,GAAG,KAAK;QACzD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,OAAO,EAAE,GAAG,mBAAmB,GAAG,cAAc,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE;YACnF,OAAO,EAAE,uBAAuB,iBAAiB,GAAG;SACrD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,kBAAkB,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU,EAAE,UAA0B,EAAE;QACvD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5C,OAAO,iBAAiB,CAAC,GAAG,EAAE;YAC5B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC;gBAC5D,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;gBAClD,CAAC,CAAC,EAAE,CAAC;YACP,WAAW,EAAE,IAAI;YACjB,kBAAkB,EAAE,IAAI;YACxB,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,OAAO,EAAE,sBAAsB,WAAW,CAAC,QAAQ,CAAC,GAAG;YACvD,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAe,gBAAgB,MAAM,EAAE,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,UAAU,CAAC,MAAM;YAAE,MAAM,IAAI,UAAU,CAAC,WAAW,EAAE,8BAA8B,QAAQ,GAAG,CAAC,CAAC;QACrG,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAChF,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC;IACzE,CAAC;IAEO,YAAY,CAAC,KAAiB,EAAE,UAAmB;QACzD,OAAO;YACL,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC;YACpB,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9F,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9F,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClG,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,KAAsB;QAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrD,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;YAC1G,MAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE,eAAe,KAAK,CAAC,QAAQ,uBAAuB,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,KAAsB;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,OAAO,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;YAC5C,MAAM,IAAI,CAAC,OAAO,CAChB,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,cAAc,EAC3D,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAChE,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAChC,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,kCAAkC,EAC/E;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,cAAc,EAAE;oBACd,cAAc,EAAE,MAAM;oBACtB,IAAI,EAAE,KAAK,CAAC,QAAQ;oBACpB,IAAI,EAAE,OAAO,CAAC,MAAM;oBACpB,WAAW,EAAE,KAAK,CAAC,QAAQ;oBAC3B,QAAQ,EAAE,KAAK,CAAC,WAAW,KAAK,QAAQ;oBACxC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3D;aACF,CAAC;SACH,EACD,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,SAAS;YACpB,MAAM,IAAI,UAAU,CAAC,sBAAsB,EAAE,mDAAmD,CAAC,CAAC;QACpG,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,kBAAkB,EAAE,CAAC;YACxE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE;gBACvD,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,gBAAgB,EAAE,MAAM,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;oBACzC,eAAe,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE;oBAC1D,cAAc,EAAE,0BAA0B;iBAC3C;gBACD,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;aACvC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,UAAU,CAAC,sBAAsB,EAAE,6CAA6C,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAChH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,SAAiB,EAAE,cAAiC,EAAE;QACrF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CACnC,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,yBAAyB,CACvE,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CACf,OAAO;aACJ,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;aACrC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAClB,IAAI,CAAC,OAAO,CACV,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,gBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAG,CAAC,EAAE,EACjG;YACE,MAAM,EAAE,QAAQ;SACjB,CACF,CACF,CACJ,CAAC;QACF,KAAK,MAAM,UAAU,IAAI,WAAW;YAAE,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAiB;QACjC,IAAI,OAAqB,CAAC;QAC1B,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC3B,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAC1B,gBAAgB,kBAAkB,CAAC,KAAK,CAAC,gBAAgB,CAAC,cAAc,EACxE,EAAE,MAAM,EAAE,MAAM,EAAE,EAClB,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,EAAE;gBACb,MAAM,IAAI,UAAU,CAAC,sBAAsB,EAAE,sDAAsD,CAAC,CAAC;YACvG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE;gBACnE,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aACtD,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAC1B,cAAc,EACd,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,EACxE,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,IAAI,UAAU,CAAC,sBAAsB,EAAE,gDAAgD,CAAC,CAAC;QAChH,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,WAAW,IAAI,EAAE;YAAE,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QACnG,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;YAAE,MAAM,IAAI,UAAU,CAAC,WAAW,EAAE,WAAW,OAAO,0BAA0B,CAAC,CAAC;QAC1G,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,KAAiB;QAClD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAClE,IAAI,QAAQ,CAAC,QAAQ,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC/C,MAAM,IAAI,UAAU,CAAC,wBAAwB,EAAE,+DAA+D,CAAC,CAAC;YAClH,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChC,WAAW,GAAG,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACzE,CAAC;QACH,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAAE;YAChE,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SAC3D,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,IAAI,CAAC,OAAO,CAChB,gBAAgB,kBAAkB,CAAC,OAAO,CAAC,kBAAkB,EAC7D,EAAE,MAAM,EAAE,MAAM,EAAE,EAClB,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAuC;QAChD,IACE,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC;YACrB,CAAC,KAAK,CAAC,gBAAgB;YACvB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM;YACjB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM;YACjB,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAClB,CAAC;YACD,MAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE,0CAA0C,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACtG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;YAChE,MAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE,0CAA0C,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAChB,gBAAgB,kBAAkB,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,OAAO,EACpE,EAAE,MAAM,EAAE,MAAM,EAAE,EAClB,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC;QACF,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;IACpD,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,GAAa,EAAE,aAAqB;QACrD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,OAAO,CAChB,gBAAgB,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAC7C;gBACE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;aACxC,EACD,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,0BAA0B,CAAC,GAAa;QACpD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAChC,gBAAgB,kBAAkB,CAAC,EAAE,CAAC,IAAI,IAAI,eAAe,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAC/F,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,IAAI,UAAU,CAAC,sBAAsB,EAAE,0DAA0D,EAAE,GAAG,CAAC,CAAC;YAChH,CAAC;YACD,IAAI,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBACvD,MAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE,2DAA2D,CAAC,CAAC;YACvG,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAa,EAAE,MAAoB;QAC9C,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,WAAW,IAAI,MAAM,IAAI,cAAc,IAAI,MAAM,CAAC,EAAE,CAAC;YACtF,MAAM,MAAM,GAAG,WAAW,IAAI,MAAM,CAAC;YACrC,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YAChF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAC5D,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAAE,OAAO;YAC7B,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC7E,MAAM,OAAO,CAAC,GAAG,CACf,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;gBACnB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAChC,gBAAgB,kBAAkB,CAAC,EAAE,CAAC,IAAI,IAAI,eAAe,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,CAC3F,CAAC;gBACF,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;gBACzC,MAAM,UAAU,GAAG,MAAM;oBACvB,CAAC,CAAC;wBACE,GAAG,OAAO;wBACV,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;qBACnG;oBACH,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBACxE,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;oBACtG,OAAO;gBACT,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE;oBAC3D,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC;iBACrC,CAAC,CAAC;YACL,CAAC,CAAC,CACH,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,UAAU,CAAC,WAAW,EAAE,4CAA4C,CAAC,CAAC;YAC9F,MAAM,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC9D,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACzD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,eAAe,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACpF,IACE,CAAC,MAAM;gBACP,MAAM,CAAC,IAAI,KAAK,KAAK;gBACrB,MAAM,CAAC,IAAI,KAAK,SAAS;gBACzB,MAAM,CAAC,IAAI,KAAK,SAAS;gBACzB,MAAM,CAAC,IAAI,KAAK,OAAO;gBACvB,eAAe,EACf,CAAC;gBACD,MAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE,4BAA4B,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;YACtF,CAAC;YACD,MAAM,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,MAAM,IAAI,CAAC,OAAO,CAChB,gBAAgB,kBAAkB,CAAC,EAAE,CAAC,kBAAkB,EACxD;oBACE,MAAM,EAAE,MAAM;iBACf,EACD,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC;YACJ,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,KAA8B,CAAC;QACnC,IAAI,MAAM,KAAK,UAAU;YAAE,KAAK,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;aAC/C,IAAI,MAAM,KAAK,YAAY;YAAE,KAAK,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;aACvD,IAAI,MAAM,KAAK,MAAM;YAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC;aACnE,IAAI,MAAM,KAAK,QAAQ;YAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;;YACxE,MAAM,IAAI,UAAU,CAAC,wBAAwB,EAAE,8CAA8C,CAAC,CAAC;QACpG,MAAM,OAAO,CAAC,GAAG,CACf,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACb,IAAI,CAAC,OAAO,CAAC,gBAAgB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE;YACrD,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC5B,CAAC,CACH,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,SAAiB,EACjB,YAAoB,EACpB,UAA6B,EAAE;QAE/B,MAAM,IAAI,GAAG,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7G,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,YAAY,0BAA0B,EAAE,CACxF,CAAC;QACF,MAAM,IAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,UAAU,CAAC,WAAW,EAAE,cAAc,YAAY,yBAAyB,SAAS,EAAE,CAAC,CAAC;QAC7G,oBAAoB,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,iCAAiC,EAAE,CAAC;YAC7F,MAAM,IAAI,UAAU,CAAC,wBAAwB,EAAE,iDAAiD,CAAC,CAAC;QACpG,CAAC;QACD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAkB,IAAI,CAAC,CAAC;QACzG,IAAI,UAAU,CAAC,YAAY,IAAI,IAAI;YACjC,MAAM,IAAI,UAAU,CAAC,sBAAsB,EAAE,6CAA6C,CAAC,CAAC;QAC9F,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC/D,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF"}
|
package/dist/query.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type EmailQuery } from '@fluxmail/core';
|
|
2
2
|
/** Translate Fluxmail's structured query into Graph KQL and OData filters. */
|
|
3
|
-
export declare function toGraphQuery(
|
|
3
|
+
export declare function toGraphQuery(input: EmailQuery): {
|
|
4
4
|
search?: string;
|
|
5
5
|
filter?: string;
|
|
6
6
|
};
|
package/dist/query.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAoBlF,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAsBpF"}
|
package/dist/query.js
CHANGED
|
@@ -1,26 +1,27 @@
|
|
|
1
|
-
import { EmailError } from '@fluxmail/core';
|
|
1
|
+
import { EmailError, normalizeEmailQuery } from '@fluxmail/core';
|
|
2
2
|
function quoteKqlClause(value) {
|
|
3
3
|
return `"${value.replaceAll('\\', '\\\\').replaceAll('"', '\\"')}"`;
|
|
4
4
|
}
|
|
5
5
|
function quoteKqlValue(value) {
|
|
6
6
|
return `"${value.replaceAll('"', '""')}"`;
|
|
7
7
|
}
|
|
8
|
-
function
|
|
9
|
-
const
|
|
10
|
-
if (
|
|
11
|
-
throw new EmailError('invalid_request',
|
|
12
|
-
|
|
8
|
+
function requireNormalized(query) {
|
|
9
|
+
const normalized = normalizeEmailQuery(query);
|
|
10
|
+
if (!normalized.success) {
|
|
11
|
+
throw new EmailError('invalid_request', normalized.diagnostics.map((item) => item.message).join(' '), {
|
|
12
|
+
diagnostics: normalized.diagnostics,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return normalized.query;
|
|
13
16
|
}
|
|
14
17
|
/** Translate Fluxmail's structured query into Graph KQL and OData filters. */
|
|
15
|
-
export function toGraphQuery(
|
|
16
|
-
|
|
17
|
-
throw new EmailError('invalid_request', 'rawProviderQuery cannot be combined with text');
|
|
18
|
-
}
|
|
18
|
+
export function toGraphQuery(input) {
|
|
19
|
+
const q = requireNormalized(input);
|
|
19
20
|
const kql = [];
|
|
20
21
|
if (q.rawProviderQuery)
|
|
21
22
|
kql.push(q.rawProviderQuery);
|
|
22
23
|
else if (q.text)
|
|
23
|
-
kql.push(q.text);
|
|
24
|
+
kql.push(...q.text.split(' ').map(quoteKqlValue));
|
|
24
25
|
if (q.from)
|
|
25
26
|
kql.push(`from:${quoteKqlValue(q.from)}`);
|
|
26
27
|
if (q.to)
|
|
@@ -28,15 +29,16 @@ export function toGraphQuery(q) {
|
|
|
28
29
|
if (q.subject)
|
|
29
30
|
kql.push(`subject:${quoteKqlValue(q.subject)}`);
|
|
30
31
|
if (q.after)
|
|
31
|
-
kql.push(`received>=${
|
|
32
|
+
kql.push(`received>=${q.after}`);
|
|
32
33
|
if (q.before)
|
|
33
|
-
kql.push(`received<${
|
|
34
|
+
kql.push(`received<${q.before}`);
|
|
34
35
|
const filter = [];
|
|
35
|
-
if (q.
|
|
36
|
-
filter.push(
|
|
37
|
-
if (q.
|
|
38
|
-
filter.push("flag/flagStatus eq 'flagged'");
|
|
39
|
-
|
|
36
|
+
if (q.read !== undefined)
|
|
37
|
+
filter.push(`isRead eq ${q.read}`);
|
|
38
|
+
if (q.starred !== undefined) {
|
|
39
|
+
filter.push(q.starred ? "flag/flagStatus eq 'flagged'" : "flag/flagStatus ne 'flagged'");
|
|
40
|
+
}
|
|
41
|
+
if (q.hasAttachment === true)
|
|
40
42
|
filter.push('hasAttachments eq true');
|
|
41
43
|
return {
|
|
42
44
|
...(kql.length ? { search: quoteKqlClause(kql.join(' AND ')) } : {}),
|
package/dist/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluxmail/provider-outlook",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Microsoft Graph adapter for the Fluxmail unified email API",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"repository": {
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"access": "public"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@fluxmail/core": "0.
|
|
28
|
+
"@fluxmail/core": "0.7.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/node": "^22.15.0"
|