@chkit/plugin-backfill 0.1.2-beta.7 → 0.2.0-beta.8
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/async-backfill.d.ts +1 -1
- package/dist/async-backfill.d.ts.map +1 -1
- package/dist/async-backfill.js +6 -5
- package/dist/async-backfill.js.map +1 -1
- package/package.json +3 -3
- package/dist/args.d.ts +0 -111
- package/dist/args.d.ts.map +0 -1
- package/dist/args.js +0 -146
- package/dist/args.js.map +0 -1
- package/dist/chunking/build.d.ts +0 -11
- package/dist/chunking/build.d.ts.map +0 -1
- package/dist/chunking/build.js +0 -51
- package/dist/chunking/build.js.map +0 -1
- package/dist/chunking/introspect.d.ts +0 -40
- package/dist/chunking/introspect.d.ts.map +0 -1
- package/dist/chunking/introspect.js +0 -187
- package/dist/chunking/introspect.js.map +0 -1
- package/dist/chunking/splitter.d.ts +0 -20
- package/dist/chunking/splitter.d.ts.map +0 -1
- package/dist/chunking/splitter.js +0 -76
- package/dist/chunking/splitter.js.map +0 -1
- package/dist/runtime.d.ts +0 -54
- package/dist/runtime.d.ts.map +0 -1
- package/dist/runtime.js +0 -517
- package/dist/runtime.js.map +0 -1
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
const NUMERIC_TYPES = new Set([
|
|
2
|
-
'Int8', 'Int16', 'Int32', 'Int64', 'Int128', 'Int256',
|
|
3
|
-
'UInt8', 'UInt16', 'UInt32', 'UInt64', 'UInt128', 'UInt256',
|
|
4
|
-
'Float32', 'Float64',
|
|
5
|
-
]);
|
|
6
|
-
const DATETIME_TYPES = new Set(['Date', 'Date32', 'DateTime', 'DateTime64']);
|
|
7
|
-
function classifySortKeyType(type) {
|
|
8
|
-
if (NUMERIC_TYPES.has(type))
|
|
9
|
-
return 'numeric';
|
|
10
|
-
if (DATETIME_TYPES.has(type))
|
|
11
|
-
return 'datetime';
|
|
12
|
-
if (type.startsWith('DateTime64('))
|
|
13
|
-
return 'datetime';
|
|
14
|
-
if (type.startsWith("DateTime('"))
|
|
15
|
-
return 'datetime';
|
|
16
|
-
return 'string';
|
|
17
|
-
}
|
|
18
|
-
export async function queryPartitionInfo(input) {
|
|
19
|
-
// Force replica sync on the target table before reading system.parts.
|
|
20
|
-
// select_sequential_consistency is only effective on user tables, not system
|
|
21
|
-
// tables, so this preliminary query ensures the replica has caught up with
|
|
22
|
-
// all pending writes before we inspect part metadata.
|
|
23
|
-
await input.query(`SELECT 1 FROM ${input.database}.${input.table} LIMIT 1 SETTINGS select_sequential_consistency = 1`);
|
|
24
|
-
const rows = await input.query(`SELECT
|
|
25
|
-
partition_id,
|
|
26
|
-
toString(sum(rows)) AS total_rows,
|
|
27
|
-
toString(sum(bytes_on_disk)) AS total_bytes,
|
|
28
|
-
toString(sum(data_uncompressed_bytes)) AS total_uncompressed_bytes,
|
|
29
|
-
toString(min(min_time)) AS min_time,
|
|
30
|
-
toString(max(max_time)) AS max_time
|
|
31
|
-
FROM system.parts
|
|
32
|
-
WHERE database = '${input.database}'
|
|
33
|
-
AND table = '${input.table}'
|
|
34
|
-
AND active = 1
|
|
35
|
-
GROUP BY partition_id
|
|
36
|
-
ORDER BY partition_id
|
|
37
|
-
SETTINGS select_sequential_consistency = 1`);
|
|
38
|
-
const partitions = rows.map((row) => ({
|
|
39
|
-
partitionId: row.partition_id,
|
|
40
|
-
rows: Number(row.total_rows),
|
|
41
|
-
bytesOnDisk: Number(row.total_bytes),
|
|
42
|
-
bytesUncompressed: Number(row.total_uncompressed_bytes ?? row.total_bytes),
|
|
43
|
-
minTime: new Date(row.min_time).toISOString(),
|
|
44
|
-
maxTime: new Date(row.max_time).toISOString(),
|
|
45
|
-
}));
|
|
46
|
-
return partitions.filter((p) => {
|
|
47
|
-
if (input.from && p.maxTime < input.from)
|
|
48
|
-
return false;
|
|
49
|
-
if (input.to && p.minTime >= input.to)
|
|
50
|
-
return false;
|
|
51
|
-
return true;
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
function extractSortKeyColumns(sortingKey) {
|
|
55
|
-
return splitTopLevelCsv(sortingKey)
|
|
56
|
-
.map((part) => part.trim())
|
|
57
|
-
.filter((part) => part.length > 0);
|
|
58
|
-
}
|
|
59
|
-
function splitTopLevelCsv(input) {
|
|
60
|
-
const parts = [];
|
|
61
|
-
let current = '';
|
|
62
|
-
let depth = 0;
|
|
63
|
-
let quote;
|
|
64
|
-
for (let index = 0; index < input.length; index++) {
|
|
65
|
-
const char = input[index];
|
|
66
|
-
if (char === undefined)
|
|
67
|
-
continue;
|
|
68
|
-
if (quote) {
|
|
69
|
-
current += char;
|
|
70
|
-
if (char === quote && input[index - 1] !== '\\') {
|
|
71
|
-
quote = undefined;
|
|
72
|
-
}
|
|
73
|
-
continue;
|
|
74
|
-
}
|
|
75
|
-
if (char === '\'' || char === '"') {
|
|
76
|
-
quote = char;
|
|
77
|
-
current += char;
|
|
78
|
-
continue;
|
|
79
|
-
}
|
|
80
|
-
if (char === '(') {
|
|
81
|
-
depth += 1;
|
|
82
|
-
current += char;
|
|
83
|
-
continue;
|
|
84
|
-
}
|
|
85
|
-
if (char === ')') {
|
|
86
|
-
depth = Math.max(0, depth - 1);
|
|
87
|
-
current += char;
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
if (char === ',' && depth === 0) {
|
|
91
|
-
parts.push(current.trim());
|
|
92
|
-
current = '';
|
|
93
|
-
continue;
|
|
94
|
-
}
|
|
95
|
-
current += char;
|
|
96
|
-
}
|
|
97
|
-
if (current.trim().length > 0) {
|
|
98
|
-
parts.push(current.trim());
|
|
99
|
-
}
|
|
100
|
-
return parts;
|
|
101
|
-
}
|
|
102
|
-
function resolveSortKeyColumn(expression, knownColumns) {
|
|
103
|
-
const trimmed = expression.trim();
|
|
104
|
-
if (knownColumns.has(trimmed)) {
|
|
105
|
-
return trimmed;
|
|
106
|
-
}
|
|
107
|
-
const identifiers = Array.from(trimmed.matchAll(/\b[A-Za-z_][A-Za-z0-9_]*\b/g))
|
|
108
|
-
.map((match) => match[0])
|
|
109
|
-
.filter((identifier) => Boolean(identifier));
|
|
110
|
-
const matches = Array.from(new Set(identifiers.filter((identifier) => knownColumns.has(identifier))));
|
|
111
|
-
if (matches.length === 1) {
|
|
112
|
-
return matches[0];
|
|
113
|
-
}
|
|
114
|
-
return undefined;
|
|
115
|
-
}
|
|
116
|
-
function resolveSortKeyColumnWithoutSchema(expression) {
|
|
117
|
-
const trimmed = expression.trim();
|
|
118
|
-
if (/^[A-Za-z_][A-Za-z0-9_]*$/.test(trimmed)) {
|
|
119
|
-
return trimmed;
|
|
120
|
-
}
|
|
121
|
-
const identifiers = Array.from(trimmed.matchAll(/\b[A-Za-z_][A-Za-z0-9_]*\b/g))
|
|
122
|
-
.map((match) => match[0])
|
|
123
|
-
.filter((identifier) => Boolean(identifier));
|
|
124
|
-
return identifiers.length > 0 ? identifiers[identifiers.length - 1] : undefined;
|
|
125
|
-
}
|
|
126
|
-
export async function querySortKeys(input) {
|
|
127
|
-
const tableRows = await input.query(`SELECT sorting_key FROM system.tables WHERE database = '${input.database}' AND name = '${input.table}'`);
|
|
128
|
-
const sortingKey = tableRows[0]?.sorting_key;
|
|
129
|
-
if (!sortingKey)
|
|
130
|
-
return [];
|
|
131
|
-
const expressions = extractSortKeyColumns(sortingKey);
|
|
132
|
-
if (expressions.length === 0)
|
|
133
|
-
return [];
|
|
134
|
-
const columnRows = await input.query(`SELECT name, type FROM system.columns WHERE database = '${input.database}' AND table = '${input.table}'`);
|
|
135
|
-
const typeByName = new Map(columnRows
|
|
136
|
-
.filter((row) => Boolean(row.name))
|
|
137
|
-
.map((row) => [row.name, row.type]));
|
|
138
|
-
const knownColumns = new Set(typeByName.keys());
|
|
139
|
-
if (knownColumns.size === 0) {
|
|
140
|
-
return expressions.flatMap((expression, index) => {
|
|
141
|
-
const column = resolveSortKeyColumnWithoutSchema(expression);
|
|
142
|
-
const type = columnRows[index]?.type ?? columnRows[0]?.type;
|
|
143
|
-
if (!column || !type)
|
|
144
|
-
return [];
|
|
145
|
-
return [{
|
|
146
|
-
column,
|
|
147
|
-
type,
|
|
148
|
-
category: classifySortKeyType(type),
|
|
149
|
-
}];
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
return expressions.flatMap((expression) => {
|
|
153
|
-
const column = resolveSortKeyColumn(expression, knownColumns);
|
|
154
|
-
if (!column)
|
|
155
|
-
return [];
|
|
156
|
-
const type = typeByName.get(column) ?? 'String';
|
|
157
|
-
return [{
|
|
158
|
-
column,
|
|
159
|
-
type,
|
|
160
|
-
category: classifySortKeyType(type),
|
|
161
|
-
}];
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
export async function querySortKeyInfo(input) {
|
|
165
|
-
return (await querySortKeys(input))[0];
|
|
166
|
-
}
|
|
167
|
-
export async function querySortKeyRanges(input) {
|
|
168
|
-
if (input.partitionIds.length === 0)
|
|
169
|
-
return new Map();
|
|
170
|
-
const inList = input.partitionIds.map((id) => `'${id}'`).join(', ');
|
|
171
|
-
const rows = await input.query(`SELECT _partition_id AS partition_id, toString(min(${input.sortKeyColumn})) AS min_val, toString(max(${input.sortKeyColumn})) AS max_val FROM ${input.database}.${input.table} WHERE _partition_id IN (${inList}) GROUP BY _partition_id SETTINGS select_sequential_consistency = 1`);
|
|
172
|
-
const result = new Map();
|
|
173
|
-
for (const row of rows) {
|
|
174
|
-
result.set(row.partition_id, { min: row.min_val, max: row.max_val });
|
|
175
|
-
}
|
|
176
|
-
return result;
|
|
177
|
-
}
|
|
178
|
-
export async function introspectTable(input) {
|
|
179
|
-
const partitions = await queryPartitionInfo(input);
|
|
180
|
-
const sortKeys = await querySortKeys({
|
|
181
|
-
database: input.database,
|
|
182
|
-
table: input.table,
|
|
183
|
-
query: input.query,
|
|
184
|
-
});
|
|
185
|
-
return { partitions, sortKey: sortKeys[0], sortKeys };
|
|
186
|
-
}
|
|
187
|
-
//# sourceMappingURL=introspect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"introspect.js","sourceRoot":"","sources":["../../src/chunking/introspect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { SortKeyInfo } from './types.js';
|
|
2
|
-
export declare function splitNumericRange(min: number, max: number, count: number): Array<{
|
|
3
|
-
from: string;
|
|
4
|
-
to: string;
|
|
5
|
-
}>;
|
|
6
|
-
export declare function splitDateTimeRange(min: string, max: string, count: number): Array<{
|
|
7
|
-
from: string;
|
|
8
|
-
to: string;
|
|
9
|
-
}>;
|
|
10
|
-
export declare function stringToUint64(s: string): bigint;
|
|
11
|
-
export declare function uint64ToString(n: bigint): string;
|
|
12
|
-
export declare function splitStringRange(min: string, max: string, count: number): Array<{
|
|
13
|
-
from: string;
|
|
14
|
-
to: string;
|
|
15
|
-
}>;
|
|
16
|
-
export declare function splitSortKeyRange(category: SortKeyInfo['category'], min: string, max: string, count: number): Array<{
|
|
17
|
-
from: string;
|
|
18
|
-
to: string;
|
|
19
|
-
}>;
|
|
20
|
-
//# sourceMappingURL=splitter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"splitter.d.ts","sourceRoot":"","sources":["../../src/chunking/splitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAU9G;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAc/G;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAWhD;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAUhD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAc7G;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,EACjC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CASrC"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
export function splitNumericRange(min, max, count) {
|
|
2
|
-
const span = max - min;
|
|
3
|
-
const step = span / count;
|
|
4
|
-
const ranges = [];
|
|
5
|
-
for (let i = 0; i < count; i++) {
|
|
6
|
-
const from = min + i * step;
|
|
7
|
-
const to = i === count - 1 ? max + 1 : min + (i + 1) * step;
|
|
8
|
-
ranges.push({ from: String(from), to: String(to) });
|
|
9
|
-
}
|
|
10
|
-
return ranges;
|
|
11
|
-
}
|
|
12
|
-
export function splitDateTimeRange(min, max, count) {
|
|
13
|
-
const minMs = new Date(min).getTime();
|
|
14
|
-
const maxMs = new Date(max).getTime();
|
|
15
|
-
const span = maxMs - minMs;
|
|
16
|
-
const step = span / count;
|
|
17
|
-
const ranges = [];
|
|
18
|
-
for (let i = 0; i < count; i++) {
|
|
19
|
-
const from = new Date(minMs + i * step).toISOString();
|
|
20
|
-
const to = i === count - 1
|
|
21
|
-
? new Date(maxMs + 1).toISOString()
|
|
22
|
-
: new Date(minMs + (i + 1) * step).toISOString();
|
|
23
|
-
ranges.push({ from, to });
|
|
24
|
-
}
|
|
25
|
-
return ranges;
|
|
26
|
-
}
|
|
27
|
-
export function stringToUint64(s) {
|
|
28
|
-
let result = 0n;
|
|
29
|
-
const bytes = Math.min(s.length, 8);
|
|
30
|
-
for (let i = 0; i < bytes; i++) {
|
|
31
|
-
result = (result << 8n) | BigInt(s.charCodeAt(i));
|
|
32
|
-
}
|
|
33
|
-
// Pad remaining bytes with zeros
|
|
34
|
-
for (let i = bytes; i < 8; i++) {
|
|
35
|
-
result = result << 8n;
|
|
36
|
-
}
|
|
37
|
-
return result;
|
|
38
|
-
}
|
|
39
|
-
export function uint64ToString(n) {
|
|
40
|
-
const chars = [];
|
|
41
|
-
for (let i = 7; i >= 0; i--) {
|
|
42
|
-
const byte = Number((n >> BigInt(i * 8)) & 0xffn);
|
|
43
|
-
chars.push(String.fromCharCode(byte));
|
|
44
|
-
}
|
|
45
|
-
// Trim trailing NUL bytes (padding from stringToUint64 for short strings)
|
|
46
|
-
let end = chars.length;
|
|
47
|
-
while (end > 0 && chars[end - 1] === '\0')
|
|
48
|
-
end--;
|
|
49
|
-
return chars.slice(0, end).join('');
|
|
50
|
-
}
|
|
51
|
-
export function splitStringRange(min, max, count) {
|
|
52
|
-
const minVal = stringToUint64(min);
|
|
53
|
-
const maxVal = stringToUint64(max);
|
|
54
|
-
const span = maxVal - minVal;
|
|
55
|
-
const step = span / BigInt(count);
|
|
56
|
-
const ranges = [];
|
|
57
|
-
for (let i = 0; i < count; i++) {
|
|
58
|
-
const from = uint64ToString(minVal + BigInt(i) * step);
|
|
59
|
-
const to = i === count - 1
|
|
60
|
-
? uint64ToString(maxVal + 1n)
|
|
61
|
-
: uint64ToString(minVal + BigInt(i + 1) * step);
|
|
62
|
-
ranges.push({ from, to });
|
|
63
|
-
}
|
|
64
|
-
return ranges;
|
|
65
|
-
}
|
|
66
|
-
export function splitSortKeyRange(category, min, max, count) {
|
|
67
|
-
switch (category) {
|
|
68
|
-
case 'numeric':
|
|
69
|
-
return splitNumericRange(Number(min), Number(max), count);
|
|
70
|
-
case 'datetime':
|
|
71
|
-
return splitDateTimeRange(min, max, count);
|
|
72
|
-
case 'string':
|
|
73
|
-
return splitStringRange(min, max, count);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=splitter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"splitter.js","sourceRoot":"","sources":["../../src/chunking/splitter.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import type { ResolvedChxConfig } from '@chkit/core';
|
|
2
|
-
import type { BackfillDoctorReport, BackfillExecutionOptions, BackfillPluginCheckResult, BackfillStatusSummary, ExecuteBackfillRunOutput, NormalizedBackfillPluginOptions } from './types.js';
|
|
3
|
-
export declare function evaluateBackfillCheck(input: {
|
|
4
|
-
configPath: string;
|
|
5
|
-
config: Pick<ResolvedChxConfig, 'metaDir'>;
|
|
6
|
-
options: NormalizedBackfillPluginOptions;
|
|
7
|
-
}): Promise<BackfillPluginCheckResult>;
|
|
8
|
-
export declare function executeBackfillRun(input: {
|
|
9
|
-
planId: string;
|
|
10
|
-
configPath: string;
|
|
11
|
-
config: Pick<ResolvedChxConfig, 'metaDir'>;
|
|
12
|
-
options: NormalizedBackfillPluginOptions;
|
|
13
|
-
execution?: BackfillExecutionOptions;
|
|
14
|
-
execute?: (sql: string) => Promise<undefined | {
|
|
15
|
-
rowsWritten?: number;
|
|
16
|
-
}>;
|
|
17
|
-
clickhouse?: {
|
|
18
|
-
url: string;
|
|
19
|
-
database: string;
|
|
20
|
-
};
|
|
21
|
-
}): Promise<ExecuteBackfillRunOutput>;
|
|
22
|
-
export declare function resumeBackfillRun(input: {
|
|
23
|
-
planId: string;
|
|
24
|
-
configPath: string;
|
|
25
|
-
config: Pick<ResolvedChxConfig, 'metaDir'>;
|
|
26
|
-
options: NormalizedBackfillPluginOptions;
|
|
27
|
-
execution?: BackfillExecutionOptions;
|
|
28
|
-
execute?: (sql: string) => Promise<undefined | {
|
|
29
|
-
rowsWritten?: number;
|
|
30
|
-
}>;
|
|
31
|
-
clickhouse?: {
|
|
32
|
-
url: string;
|
|
33
|
-
database: string;
|
|
34
|
-
};
|
|
35
|
-
}): Promise<ExecuteBackfillRunOutput>;
|
|
36
|
-
export declare function getBackfillStatus(input: {
|
|
37
|
-
planId: string;
|
|
38
|
-
configPath: string;
|
|
39
|
-
config: Pick<ResolvedChxConfig, 'metaDir'>;
|
|
40
|
-
options: NormalizedBackfillPluginOptions;
|
|
41
|
-
}): Promise<BackfillStatusSummary>;
|
|
42
|
-
export declare function cancelBackfillRun(input: {
|
|
43
|
-
planId: string;
|
|
44
|
-
configPath: string;
|
|
45
|
-
config: Pick<ResolvedChxConfig, 'metaDir'>;
|
|
46
|
-
options: NormalizedBackfillPluginOptions;
|
|
47
|
-
}): Promise<BackfillStatusSummary>;
|
|
48
|
-
export declare function getBackfillDoctorReport(input: {
|
|
49
|
-
planId: string;
|
|
50
|
-
configPath: string;
|
|
51
|
-
config: Pick<ResolvedChxConfig, 'metaDir'>;
|
|
52
|
-
options: NormalizedBackfillPluginOptions;
|
|
53
|
-
}): Promise<BackfillDoctorReport>;
|
|
54
|
-
//# sourceMappingURL=runtime.d.ts.map
|
package/dist/runtime.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAiBpD,OAAO,KAAK,EACV,oBAAoB,EAEpB,wBAAwB,EACxB,yBAAyB,EAGzB,qBAAqB,EACrB,wBAAwB,EACxB,+BAA+B,EAChC,MAAM,YAAY,CAAA;AAEnB,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IACjD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IAC1C,OAAO,EAAE,+BAA+B,CAAA;CACzC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAgFrC;AA+RD,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IAC1C,OAAO,EAAE,+BAA+B,CAAA;IACxC,SAAS,CAAC,EAAE,wBAAwB,CAAA;IACpC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACxE,UAAU,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAC/C,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAgEpC;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IAC1C,OAAO,EAAE,+BAA+B,CAAA;IACxC,SAAS,CAAC,EAAE,wBAAwB,CAAA;IACpC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACxE,UAAU,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAC/C,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAyDpC;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IAC1C,OAAO,EAAE,+BAA+B,CAAA;CACzC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAgCjC;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IAC1C,OAAO,EAAE,+BAA+B,CAAA;CACzC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA0CjC;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IAC1C,OAAO,EAAE,+BAA+B,CAAA;CACzC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA2ChC"}
|