@tickernelz/wardmote-db 2026.1111.0 → 2026.1112.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/backup-lib.d.ts +35 -0
- package/dist/backup-lib.d.ts.map +1 -1
- package/dist/backup-lib.js +264 -32
- package/dist/backup-lib.js.map +1 -1
- package/dist/backup-lib.test.js +197 -1
- package/dist/backup-lib.test.js.map +1 -1
- package/dist/backup.js +6 -1
- package/dist/backup.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/migrations/0372_wardmote_tool_provider_types.sql +23 -0
- package/dist/migrations/meta/_journal.json +7 -0
- package/dist/schema/tool_access.d.ts +2 -2
- package/dist/schema/web_push_subscriptions.d.ts +2 -2
- package/dist/wardmote-tool-provider-types-migration.test.d.ts +2 -0
- package/dist/wardmote-tool-provider-types-migration.test.d.ts.map +1 -0
- package/dist/wardmote-tool-provider-types-migration.test.js +92 -0
- package/dist/wardmote-tool-provider-types-migration.test.js.map +1 -0
- package/package.json +2 -2
package/dist/backup-lib.d.ts
CHANGED
|
@@ -2,6 +2,18 @@ export type BackupRetentionPolicy = {
|
|
|
2
2
|
dailyDays: number;
|
|
3
3
|
weeklyWeeks: number;
|
|
4
4
|
monthlyMonths: number;
|
|
5
|
+
/** Keep only this many newest verified backups; null or absent keeps the daily/weekly/monthly tiers. */
|
|
6
|
+
maxFiles?: number | null;
|
|
7
|
+
};
|
|
8
|
+
export type BackupDiskSpace = {
|
|
9
|
+
freeBytes: number;
|
|
10
|
+
totalBytes: number;
|
|
11
|
+
};
|
|
12
|
+
export type BackupSpaceGuard = {
|
|
13
|
+
reservePercent: number;
|
|
14
|
+
reserveBytes: number;
|
|
15
|
+
headroomFactor?: number;
|
|
16
|
+
statfs?: (dir: string) => BackupDiskSpace;
|
|
5
17
|
};
|
|
6
18
|
export type RunDatabaseBackupOptions = {
|
|
7
19
|
connectionString: string;
|
|
@@ -20,11 +32,19 @@ export type RunDatabaseBackupOptions = {
|
|
|
20
32
|
backupEngine?: "auto" | "pg_dump" | "javascript";
|
|
21
33
|
/** Optional durability gate. A rejected archive must not prune history. */
|
|
22
34
|
verifyBeforePrune?: (backupFile: string) => Promise<void>;
|
|
35
|
+
/** Writes under `<backupDir>/pinned`, outside rotation, for release and rollback dumps. */
|
|
36
|
+
pinned?: boolean;
|
|
37
|
+
/** Deletes pinned backups older than this many days during rotated runs; null or 0 keeps them. */
|
|
38
|
+
pinnedMaxAgeDays?: number | null;
|
|
39
|
+
/** Skips the backup instead of filling the volume when free space is short. */
|
|
40
|
+
spaceGuard?: BackupSpaceGuard | null;
|
|
23
41
|
};
|
|
24
42
|
export type RunDatabaseBackupResult = {
|
|
25
43
|
backupFile: string;
|
|
26
44
|
sizeBytes: number;
|
|
27
45
|
prunedCount: number;
|
|
46
|
+
/** Rotated backups that could not be read; kept, not counted toward maxFiles. */
|
|
47
|
+
unreadableBackups?: string[];
|
|
28
48
|
};
|
|
29
49
|
export type RunDatabaseRestoreOptions = {
|
|
30
50
|
connectionString: string;
|
|
@@ -32,6 +52,21 @@ export type RunDatabaseRestoreOptions = {
|
|
|
32
52
|
connectTimeoutSeconds?: number;
|
|
33
53
|
};
|
|
34
54
|
export declare const DATABASE_BACKUP_FILENAME_PREFIX = "wardmote";
|
|
55
|
+
export declare const PINNED_BACKUP_DIRNAME = "pinned";
|
|
56
|
+
export declare const DATABASE_BACKUP_SKIPPED_MARKER = "backup-skipped.json";
|
|
57
|
+
export declare class DatabaseBackupSkippedError extends Error {
|
|
58
|
+
readonly backupDir: string;
|
|
59
|
+
readonly freeBytes: number;
|
|
60
|
+
readonly requiredBytes: number;
|
|
61
|
+
readonly code = "database_backup_skipped_low_disk";
|
|
62
|
+
constructor(backupDir: string, freeBytes: number, requiredBytes: number);
|
|
63
|
+
}
|
|
64
|
+
export declare function readBackupDiskSpace(dir: string): BackupDiskSpace;
|
|
65
|
+
export declare function pinnedBackupDir(backupDir: string): string;
|
|
66
|
+
/** Decompresses a gzip backup end to end; rejects empty, truncated or corrupt archives. */
|
|
67
|
+
export declare function verifyGzipBackup(file: string): Promise<void>;
|
|
68
|
+
/** Deletes partial backups left by a killed backup process; returns the number removed. */
|
|
69
|
+
export declare function removeAbandonedPartialBackups(backupDir: string, nowMs?: number): number;
|
|
35
70
|
/** Renames backups written under the retired filename prefix so retention keeps pruning them; idempotent. */
|
|
36
71
|
export declare function adoptRetiredBackupFilenames(backupDir: string): number;
|
|
37
72
|
export declare function createBufferedTextFileWriter(filePath: string, maxBufferedBytes?: number): {
|
package/dist/backup-lib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup-lib.d.ts","sourceRoot":"","sources":["../src/backup-lib.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"backup-lib.d.ts","sourceRoot":"","sources":["../src/backup-lib.ts"],"names":[],"mappings":"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"}
|
package/dist/backup-lib.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { createReadStream, createWriteStream, existsSync, mkdirSync, readdirSync, renameSync, statSync, unlinkSync } from "node:fs";
|
|
2
|
-
import { basename, resolve } from "node:path";
|
|
1
|
+
import { createReadStream, createWriteStream, existsSync, mkdirSync, readdirSync, renameSync, rmSync, statfsSync, statSync, unlinkSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { basename, join, resolve } from "node:path";
|
|
3
3
|
import { createInterface } from "node:readline";
|
|
4
4
|
import { spawn } from "node:child_process";
|
|
5
5
|
import { open as openFile } from "node:fs/promises";
|
|
6
|
+
import { Writable } from "node:stream";
|
|
6
7
|
import { pipeline } from "node:stream/promises";
|
|
7
8
|
import { createGunzip, createGzip } from "node:zlib";
|
|
8
9
|
import postgres from "postgres";
|
|
@@ -48,10 +49,208 @@ function monthlyRetentionCutoff(nowMs, monthlyMonths) {
|
|
|
48
49
|
return Date.UTC(now.getUTCFullYear(), now.getUTCMonth() - months, 1);
|
|
49
50
|
}
|
|
50
51
|
export const DATABASE_BACKUP_FILENAME_PREFIX = "wardmote";
|
|
52
|
+
export const PINNED_BACKUP_DIRNAME = "pinned";
|
|
53
|
+
export const DATABASE_BACKUP_SKIPPED_MARKER = "backup-skipped.json";
|
|
54
|
+
const DEFAULT_BACKUP_HEADROOM_FACTOR = 1.5;
|
|
55
|
+
const DAY_MS = 24 * 60 * 60 * 1000;
|
|
56
|
+
export class DatabaseBackupSkippedError extends Error {
|
|
57
|
+
backupDir;
|
|
58
|
+
freeBytes;
|
|
59
|
+
requiredBytes;
|
|
60
|
+
code = "database_backup_skipped_low_disk";
|
|
61
|
+
constructor(backupDir, freeBytes, requiredBytes) {
|
|
62
|
+
super(`Database backup skipped: ${formatBackupSize(freeBytes)} free on the backup volume, ${formatBackupSize(requiredBytes)} required (last backup x${DEFAULT_BACKUP_HEADROOM_FACTOR} plus reserve).`);
|
|
63
|
+
this.backupDir = backupDir;
|
|
64
|
+
this.freeBytes = freeBytes;
|
|
65
|
+
this.requiredBytes = requiredBytes;
|
|
66
|
+
this.name = "DatabaseBackupSkippedError";
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export function readBackupDiskSpace(dir) {
|
|
70
|
+
const stats = statfsSync(dir);
|
|
71
|
+
return { freeBytes: stats.bavail * stats.bsize, totalBytes: stats.blocks * stats.bsize };
|
|
72
|
+
}
|
|
73
|
+
export function pinnedBackupDir(backupDir) {
|
|
74
|
+
return join(backupDir, PINNED_BACKUP_DIRNAME);
|
|
75
|
+
}
|
|
76
|
+
const verifiedBackups = new Map();
|
|
77
|
+
function backupIdentity(file) {
|
|
78
|
+
const stats = statSync(file);
|
|
79
|
+
return `${stats.size}:${stats.mtimeMs}`;
|
|
80
|
+
}
|
|
81
|
+
/** Decompresses a gzip backup end to end; rejects empty, truncated or corrupt archives. */
|
|
82
|
+
export async function verifyGzipBackup(file) {
|
|
83
|
+
if (statSync(file).size === 0)
|
|
84
|
+
throw new Error(`Backup ${basename(file)} is empty`);
|
|
85
|
+
await pipeline(createReadStream(file, { highWaterMark: 1024 * 1024 }), createGunzip({ chunkSize: 1024 * 1024 }), new Writable({ write(_chunk, _encoding, callback) { callback(); } }));
|
|
86
|
+
}
|
|
87
|
+
function isArchiveCorruption(error) {
|
|
88
|
+
const code = error?.code;
|
|
89
|
+
return typeof code === "string" && code.startsWith("Z_");
|
|
90
|
+
}
|
|
91
|
+
async function checkBackup(file) {
|
|
92
|
+
const stats = statSync(file, { throwIfNoEntry: false });
|
|
93
|
+
if (!stats || stats.size === 0)
|
|
94
|
+
return "invalid";
|
|
95
|
+
if (!file.endsWith(".gz"))
|
|
96
|
+
return "valid";
|
|
97
|
+
if (verifiedBackups.get(file) === `${stats.size}:${stats.mtimeMs}`)
|
|
98
|
+
return "valid";
|
|
99
|
+
try {
|
|
100
|
+
await verifyGzipBackup(file);
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
return isArchiveCorruption(error) ? "invalid" : "unreadable";
|
|
104
|
+
}
|
|
105
|
+
verifiedBackups.set(file, backupIdentity(file));
|
|
106
|
+
return "valid";
|
|
107
|
+
}
|
|
108
|
+
function listRotationBackups(backupDir, filenamePrefix) {
|
|
109
|
+
if (!existsSync(backupDir))
|
|
110
|
+
return [];
|
|
111
|
+
const entries = [];
|
|
112
|
+
for (const name of readdirSync(backupDir)) {
|
|
113
|
+
if (!name.startsWith(`${filenamePrefix}-`) || !isBackupFilename(name))
|
|
114
|
+
continue;
|
|
115
|
+
const fullPath = resolve(backupDir, name);
|
|
116
|
+
const stats = statSync(fullPath, { throwIfNoEntry: false });
|
|
117
|
+
if (!stats?.isFile())
|
|
118
|
+
continue;
|
|
119
|
+
entries.push({ fullPath, sizeBytes: stats.size, mtimeMs: stats.mtimeMs });
|
|
120
|
+
}
|
|
121
|
+
return entries.sort((a, b) => b.mtimeMs - a.mtimeMs);
|
|
122
|
+
}
|
|
123
|
+
function removeBackupFile(file) {
|
|
124
|
+
rmSync(file, { force: true });
|
|
125
|
+
verifiedBackups.delete(file);
|
|
126
|
+
}
|
|
127
|
+
async function pruneToMaxFiles(backupDir, filenamePrefix, maxFiles, newestFile) {
|
|
128
|
+
let kept = 1;
|
|
129
|
+
let removed = 0;
|
|
130
|
+
const unreadable = [];
|
|
131
|
+
for (const entry of listRotationBackups(backupDir, filenamePrefix)) {
|
|
132
|
+
if (entry.fullPath === newestFile)
|
|
133
|
+
continue;
|
|
134
|
+
const check = await checkBackup(entry.fullPath);
|
|
135
|
+
if (check === "unreadable") {
|
|
136
|
+
unreadable.push(entry.fullPath);
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if (kept < maxFiles && check === "valid") {
|
|
140
|
+
kept += 1;
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
removeBackupFile(entry.fullPath);
|
|
144
|
+
removed += 1;
|
|
145
|
+
}
|
|
146
|
+
return { removed, unreadable };
|
|
147
|
+
}
|
|
148
|
+
function prunePinnedBackups(backupDir, maxAgeDays, nowMs = Date.now()) {
|
|
149
|
+
if (!maxAgeDays || maxAgeDays <= 0)
|
|
150
|
+
return 0;
|
|
151
|
+
const dir = pinnedBackupDir(backupDir);
|
|
152
|
+
if (!existsSync(dir))
|
|
153
|
+
return 0;
|
|
154
|
+
let removed = 0;
|
|
155
|
+
for (const name of readdirSync(dir)) {
|
|
156
|
+
if (!isBackupFilename(name))
|
|
157
|
+
continue;
|
|
158
|
+
const fullPath = resolve(dir, name);
|
|
159
|
+
const stats = statSync(fullPath, { throwIfNoEntry: false });
|
|
160
|
+
if (!stats?.isFile() || nowMs - stats.mtimeMs < maxAgeDays * DAY_MS)
|
|
161
|
+
continue;
|
|
162
|
+
removeBackupFile(fullPath);
|
|
163
|
+
removed += 1;
|
|
164
|
+
}
|
|
165
|
+
return removed;
|
|
166
|
+
}
|
|
167
|
+
function backupReserveBytes(guard, totalBytes) {
|
|
168
|
+
return Math.max(guard.reserveBytes, Math.ceil((totalBytes * guard.reservePercent) / 100));
|
|
169
|
+
}
|
|
170
|
+
/** Frees room for one more backup by dropping the oldest rotated files, never the newest valid one; otherwise records a skip and throws. */
|
|
171
|
+
async function ensureBackupSpace(input) {
|
|
172
|
+
const { guard } = input;
|
|
173
|
+
const statfs = guard.statfs ?? readBackupDiskSpace;
|
|
174
|
+
const existing = listRotationBackups(input.backupDir, input.filenamePrefix);
|
|
175
|
+
const lastSize = existing.find((entry) => entry.sizeBytes > 0)?.sizeBytes ?? 0;
|
|
176
|
+
const space = statfs(input.targetDir);
|
|
177
|
+
const requiredBytes = Math.ceil(lastSize * (guard.headroomFactor ?? DEFAULT_BACKUP_HEADROOM_FACTOR)) +
|
|
178
|
+
backupReserveBytes(guard, space.totalBytes);
|
|
179
|
+
if (space.freeBytes >= requiredBytes)
|
|
180
|
+
return 0;
|
|
181
|
+
if (input.rotate) {
|
|
182
|
+
const invalid = [];
|
|
183
|
+
const valid = [];
|
|
184
|
+
for (const entry of existing) {
|
|
185
|
+
const check = await checkBackup(entry.fullPath);
|
|
186
|
+
if (check === "valid")
|
|
187
|
+
valid.push(entry);
|
|
188
|
+
else if (check === "invalid")
|
|
189
|
+
invalid.push(entry);
|
|
190
|
+
}
|
|
191
|
+
const chosen = [];
|
|
192
|
+
let reclaimed = 0;
|
|
193
|
+
for (const entry of [...invalid, ...valid.slice(1).reverse()]) {
|
|
194
|
+
if (space.freeBytes + reclaimed >= requiredBytes)
|
|
195
|
+
break;
|
|
196
|
+
chosen.push(entry);
|
|
197
|
+
reclaimed += entry.sizeBytes;
|
|
198
|
+
}
|
|
199
|
+
if (space.freeBytes + reclaimed >= requiredBytes) {
|
|
200
|
+
for (const entry of chosen)
|
|
201
|
+
removeBackupFile(entry.fullPath);
|
|
202
|
+
return chosen.length;
|
|
203
|
+
}
|
|
204
|
+
writeFileSync(join(input.backupDir, DATABASE_BACKUP_SKIPPED_MARKER), JSON.stringify({
|
|
205
|
+
skippedAt: new Date().toISOString(),
|
|
206
|
+
freeBytes: space.freeBytes,
|
|
207
|
+
requiredBytes,
|
|
208
|
+
totalBytes: space.totalBytes,
|
|
209
|
+
}));
|
|
210
|
+
}
|
|
211
|
+
throw new DatabaseBackupSkippedError(input.backupDir, space.freeBytes, requiredBytes);
|
|
212
|
+
}
|
|
51
213
|
const RETIRED_BACKUP_FILENAME_PREFIX = "paperclip";
|
|
52
214
|
function isBackupFilename(name) {
|
|
53
215
|
return name.endsWith(".sql") || name.endsWith(".sql.gz");
|
|
54
216
|
}
|
|
217
|
+
const PARTIAL_BACKUP_PATTERN = /\.(\d+)\.partial$/;
|
|
218
|
+
const ABANDONED_PARTIAL_BACKUP_AGE_MS = 24 * 60 * 60 * 1000;
|
|
219
|
+
const activePartialBackupFiles = new Set();
|
|
220
|
+
function partialBackupPath(finalPath) {
|
|
221
|
+
return `${finalPath}.${process.pid}.partial`;
|
|
222
|
+
}
|
|
223
|
+
function isProcessAlive(pid) {
|
|
224
|
+
try {
|
|
225
|
+
process.kill(pid, 0);
|
|
226
|
+
return true;
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
return error.code === "EPERM";
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/** Deletes partial backups left by a killed backup process; returns the number removed. */
|
|
233
|
+
export function removeAbandonedPartialBackups(backupDir, nowMs = Date.now()) {
|
|
234
|
+
if (!existsSync(backupDir))
|
|
235
|
+
return 0;
|
|
236
|
+
let removed = 0;
|
|
237
|
+
for (const name of readdirSync(backupDir)) {
|
|
238
|
+
const match = PARTIAL_BACKUP_PATTERN.exec(name);
|
|
239
|
+
if (!match || !isBackupFilename(name.slice(0, match.index)))
|
|
240
|
+
continue;
|
|
241
|
+
const fullPath = resolve(backupDir, name);
|
|
242
|
+
const pid = Number(match[1]);
|
|
243
|
+
const ownerGone = pid === process.pid ? !activePartialBackupFiles.has(fullPath) : !isProcessAlive(pid);
|
|
244
|
+
if (!ownerGone) {
|
|
245
|
+
const mtimeMs = statSync(fullPath, { throwIfNoEntry: false })?.mtimeMs;
|
|
246
|
+
if (mtimeMs === undefined || nowMs - mtimeMs < ABANDONED_PARTIAL_BACKUP_AGE_MS)
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
rmSync(fullPath, { force: true });
|
|
250
|
+
removed += 1;
|
|
251
|
+
}
|
|
252
|
+
return removed;
|
|
253
|
+
}
|
|
55
254
|
/** Renames backups written under the retired filename prefix so retention keeps pruning them; idempotent. */
|
|
56
255
|
export function adoptRetiredBackupFilenames(backupDir) {
|
|
57
256
|
if (!existsSync(backupDir))
|
|
@@ -456,15 +655,57 @@ export async function runDatabaseBackup(opts) {
|
|
|
456
655
|
sqlClosed = true;
|
|
457
656
|
await sql.end();
|
|
458
657
|
};
|
|
459
|
-
|
|
658
|
+
const targetDir = opts.pinned ? pinnedBackupDir(opts.backupDir) : opts.backupDir;
|
|
659
|
+
mkdirSync(targetDir, { recursive: true });
|
|
460
660
|
if (filenamePrefix === DATABASE_BACKUP_FILENAME_PREFIX)
|
|
461
661
|
adoptRetiredBackupFilenames(opts.backupDir);
|
|
462
662
|
// Initial and final sleep checks can run within the same second. A failed
|
|
463
663
|
// second checkpoint must never overwrite the first verified recovery point.
|
|
464
664
|
const checkpointSuffix = opts.verifyBeforePrune ? `-${randomUUID()}` : "";
|
|
465
|
-
|
|
466
|
-
|
|
665
|
+
removeAbandonedPartialBackups(targetDir);
|
|
666
|
+
let freedForSpace = 0;
|
|
667
|
+
if (opts.spaceGuard) {
|
|
668
|
+
try {
|
|
669
|
+
freedForSpace = await ensureBackupSpace({
|
|
670
|
+
backupDir: opts.backupDir,
|
|
671
|
+
targetDir,
|
|
672
|
+
filenamePrefix,
|
|
673
|
+
guard: opts.spaceGuard,
|
|
674
|
+
rotate: !opts.pinned,
|
|
675
|
+
});
|
|
676
|
+
}
|
|
677
|
+
catch (error) {
|
|
678
|
+
await closeSql();
|
|
679
|
+
throw error;
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
const finalSqlFile = resolve(targetDir, `${filenamePrefix}-${timestamp()}${checkpointSuffix}.sql`);
|
|
683
|
+
const backupFile = `${finalSqlFile}.gz`;
|
|
684
|
+
const sqlFile = partialBackupPath(finalSqlFile);
|
|
685
|
+
const partialBackupFile = partialBackupPath(backupFile);
|
|
686
|
+
activePartialBackupFiles.add(sqlFile);
|
|
687
|
+
activePartialBackupFiles.add(partialBackupFile);
|
|
467
688
|
const writer = createBufferedTextFileWriter(sqlFile);
|
|
689
|
+
const finalizeBackup = async () => {
|
|
690
|
+
await verifyGzipBackup(partialBackupFile);
|
|
691
|
+
renameSync(partialBackupFile, backupFile);
|
|
692
|
+
verifiedBackups.set(backupFile, backupIdentity(backupFile));
|
|
693
|
+
const sizeBytes = statSync(backupFile).size;
|
|
694
|
+
await opts.verifyBeforePrune?.(backupFile);
|
|
695
|
+
if (opts.pinned)
|
|
696
|
+
return { backupFile, sizeBytes, prunedCount: freedForSpace };
|
|
697
|
+
const rotated = retention.maxFiles && retention.maxFiles > 0
|
|
698
|
+
? await pruneToMaxFiles(opts.backupDir, filenamePrefix, retention.maxFiles, backupFile)
|
|
699
|
+
: { removed: pruneOldBackups(opts.backupDir, retention, filenamePrefix), unreadable: [] };
|
|
700
|
+
const prunedCount = freedForSpace + rotated.removed + prunePinnedBackups(opts.backupDir, opts.pinnedMaxAgeDays);
|
|
701
|
+
rmSync(join(opts.backupDir, DATABASE_BACKUP_SKIPPED_MARKER), { force: true });
|
|
702
|
+
return {
|
|
703
|
+
backupFile,
|
|
704
|
+
sizeBytes,
|
|
705
|
+
prunedCount,
|
|
706
|
+
...(rotated.unreadable.length > 0 ? { unreadableBackups: rotated.unreadable } : {}),
|
|
707
|
+
};
|
|
708
|
+
};
|
|
468
709
|
try {
|
|
469
710
|
if (backupEngine === "pg_dump" || (backupEngine === "auto" && canUsePgDump)) {
|
|
470
711
|
await sql `SELECT 1`;
|
|
@@ -473,15 +714,15 @@ export async function runDatabaseBackup(opts) {
|
|
|
473
714
|
await closeSql();
|
|
474
715
|
await runPgDumpBackup({
|
|
475
716
|
connectionString: opts.connectionString,
|
|
476
|
-
backupFile,
|
|
717
|
+
backupFile: partialBackupFile,
|
|
477
718
|
connectTimeout,
|
|
478
719
|
});
|
|
479
720
|
dumped = true;
|
|
480
721
|
}
|
|
481
722
|
catch (error) {
|
|
482
|
-
if (existsSync(
|
|
723
|
+
if (existsSync(partialBackupFile)) {
|
|
483
724
|
try {
|
|
484
|
-
unlinkSync(
|
|
725
|
+
unlinkSync(partialBackupFile);
|
|
485
726
|
}
|
|
486
727
|
catch { /* ignore */ }
|
|
487
728
|
}
|
|
@@ -497,10 +738,7 @@ export async function runDatabaseBackup(opts) {
|
|
|
497
738
|
// pg_dump succeeds, archive verification or persistence failures
|
|
498
739
|
// must retain their original error and must not reuse a closed writer.
|
|
499
740
|
await writer.abort();
|
|
500
|
-
|
|
501
|
-
await opts.verifyBeforePrune?.(backupFile);
|
|
502
|
-
const prunedCount = pruneOldBackups(opts.backupDir, retention, filenamePrefix);
|
|
503
|
-
return { backupFile, sizeBytes, prunedCount };
|
|
741
|
+
return await finalizeBackup();
|
|
504
742
|
}
|
|
505
743
|
}
|
|
506
744
|
await sql `SELECT 1`;
|
|
@@ -907,35 +1145,26 @@ export async function runDatabaseBackup(opts) {
|
|
|
907
1145
|
await writer.close();
|
|
908
1146
|
// Compress the SQL file with gzip
|
|
909
1147
|
const sqlReadStream = createReadStream(sqlFile);
|
|
910
|
-
const gzWriteStream = createWriteStream(
|
|
1148
|
+
const gzWriteStream = createWriteStream(partialBackupFile);
|
|
911
1149
|
await pipeline(sqlReadStream, createGzip(), gzWriteStream);
|
|
912
1150
|
unlinkSync(sqlFile);
|
|
913
|
-
|
|
914
|
-
await opts.verifyBeforePrune?.(backupFile);
|
|
915
|
-
const prunedCount = pruneOldBackups(opts.backupDir, retention, filenamePrefix);
|
|
916
|
-
return {
|
|
917
|
-
backupFile,
|
|
918
|
-
sizeBytes,
|
|
919
|
-
prunedCount,
|
|
920
|
-
};
|
|
1151
|
+
return await finalizeBackup();
|
|
921
1152
|
}
|
|
922
1153
|
catch (error) {
|
|
923
1154
|
await writer.abort();
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
if (existsSync(sqlFile)) {
|
|
931
|
-
try {
|
|
932
|
-
unlinkSync(sqlFile);
|
|
1155
|
+
for (const file of [backupFile, partialBackupFile, sqlFile]) {
|
|
1156
|
+
if (existsSync(file)) {
|
|
1157
|
+
try {
|
|
1158
|
+
unlinkSync(file);
|
|
1159
|
+
}
|
|
1160
|
+
catch { /* ignore */ }
|
|
933
1161
|
}
|
|
934
|
-
catch { /* ignore */ }
|
|
935
1162
|
}
|
|
936
1163
|
throw error;
|
|
937
1164
|
}
|
|
938
1165
|
finally {
|
|
1166
|
+
activePartialBackupFiles.delete(sqlFile);
|
|
1167
|
+
activePartialBackupFiles.delete(partialBackupFile);
|
|
939
1168
|
await closeSql();
|
|
940
1169
|
}
|
|
941
1170
|
}
|
|
@@ -976,6 +1205,9 @@ export async function runDatabaseRestore(opts) {
|
|
|
976
1205
|
export function formatDatabaseBackupResult(result) {
|
|
977
1206
|
const size = formatBackupSize(result.sizeBytes);
|
|
978
1207
|
const pruned = result.prunedCount > 0 ? `; pruned ${result.prunedCount} old backup(s)` : "";
|
|
979
|
-
|
|
1208
|
+
const unreadable = result.unreadableBackups?.length
|
|
1209
|
+
? `; kept ${result.unreadableBackups.length} unreadable backup(s)`
|
|
1210
|
+
: "";
|
|
1211
|
+
return `${result.backupFile} (${size}${pruned}${unreadable})`;
|
|
980
1212
|
}
|
|
981
1213
|
//# sourceMappingURL=backup-lib.js.map
|
package/dist/backup-lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup-lib.js","sourceRoot":"","sources":["../src/backup-lib.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backup-lib.js","sourceRoot":"","sources":["../src/backup-lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACvK,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAsFzC,MAAM,iCAAiC,GAAG,IAAI,GAAG,IAAI,CAAC;AACtD,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,CAAC;AAC1C,MAAM,8BAA8B,GAAG,EAAE,GAAG,IAAI,CAAC;AAEjD,MAAM,oBAAoB,GAAG,wEAAwE,CAAC;AAEtG,SAAS,2BAA2B,CAAC,KAAc;IACjD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YAClD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;YAC7C,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,MAAM,OAAO,GAAG,SAAS,IAAI,MAAM,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAChG,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,SAAS,CAAC,IAAI,GAAS,IAAI,IAAI,EAAE;IACxC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;AAC5J,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,IAAU;IAC5B,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACnF,OAAO,GAAG,CAAC,CAAC,cAAc,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,SAAS,QAAQ,CAAC,IAAU;IAC1B,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACvF,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa,EAAE,aAAqB;IAClE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAG,UAAU,CAAC;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAC9C,MAAM,CAAC,MAAM,8BAA8B,GAAG,qBAAqB,CAAC;AACpE,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAC3C,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnC,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAIxC,SAAS;IACT,SAAS;IACT,aAAa;IALf,IAAI,GAAG,kCAAkC,CAAC;IAEnD,YACW,SAAiB,EACjB,SAAiB,EACjB,aAAqB;QAE9B,KAAK,CACH,4BAA4B,gBAAgB,CAAC,SAAS,CAAC,+BAA+B,gBAAgB,CAAC,aAAa,CAAC,2BAA2B,8BAA8B,iBAAiB,CAChM,CAAC;yBANO,SAAS;yBACT,SAAS;6BACT,aAAa;QAKtB,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,OAAO,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;AAElD,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AAC1C,CAAC;AAED,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY;IACjD,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpF,MAAM,QAAQ,CACZ,gBAAgB,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,EACtD,YAAY,CAAC,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,EACxC,IAAI,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACrE,CAAC;AACJ,CAAC;AAID,SAAS,mBAAmB,CAAC,KAAc;IACzC,MAAM,IAAI,GAAI,KAAsC,EAAE,IAAI,CAAC;IAC3D,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAY;IACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAC1C,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE;QAAE,OAAO,OAAO,CAAC;IACnF,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;IAC/D,CAAC;IACD,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,OAAO,OAAO,CAAC;AACjB,CAAC;AAID,SAAS,mBAAmB,CAAC,SAAiB,EAAE,cAAsB;IACpE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,SAAS;QAChF,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;YAAE,SAAS;QAC/B,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9B,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,SAAiB,EAAE,cAAsB,EAAE,QAAgB,EAAE,UAAkB;IAC5G,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,CAAC;QACnE,IAAI,KAAK,CAAC,QAAQ,KAAK,UAAU;YAAE,SAAS;QAC5C,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QACD,IAAI,IAAI,GAAG,QAAQ,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,CAAC;YACV,SAAS;QACX,CAAC;QACD,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,CAAC;IACf,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB,EAAE,UAAqC,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;IACtG,IAAI,CAAC,UAAU,IAAI,UAAU,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,SAAS;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,UAAU,GAAG,MAAM;YAAE,SAAS;QAC9E,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAuB,EAAE,UAAkB;IACrE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,4IAA4I;AAC5I,KAAK,UAAU,iBAAiB,CAAC,KAMhC;IACC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACxB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,mBAAmB,CAAC;IACnD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,SAAS,IAAI,CAAC,CAAC;IAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,aAAa,GACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,8BAA8B,CAAC,CAAC;QAC9E,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,KAAK,CAAC,SAAS,IAAI,aAAa;QAAE,OAAO,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,OAAO,GAAqB,EAAE,CAAC;QACrC,MAAM,KAAK,GAAqB,EAAE,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,KAAK,KAAK,OAAO;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACpC,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,MAAM,GAAqB,EAAE,CAAC;QACpC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC9D,IAAI,KAAK,CAAC,SAAS,GAAG,SAAS,IAAI,aAAa;gBAAE,MAAM;YACxD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC;QAC/B,CAAC;QACD,IAAI,KAAK,CAAC,SAAS,GAAG,SAAS,IAAI,aAAa,EAAE,CAAC;YACjD,KAAK,MAAM,KAAK,IAAI,MAAM;gBAAE,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QACD,aAAa,CACX,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,8BAA8B,CAAC,EACrD,IAAI,CAAC,SAAS,CAAC;YACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,aAAa;YACb,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC,CACH,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,0BAA0B,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AACxF,CAAC;AACD,MAAM,8BAA8B,GAAG,WAAW,CAAC;AAEnD,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AACnD,MAAM,+BAA+B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5D,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAU,CAAC;AAEnD,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,OAAO,GAAG,SAAS,IAAI,OAAO,CAAC,GAAG,UAAU,CAAC;AAC/C,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAQ,KAA+B,CAAC,IAAI,KAAK,OAAO,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,6BAA6B,CAAC,SAAiB,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;IACjF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,CAAC,CAAC;IACrC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAAE,SAAS;QACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAG,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACvG,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC;YACvE,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,GAAG,OAAO,GAAG,+BAA+B;gBAAE,SAAS;QAC3F,CAAC;QACD,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,2BAA2B,CAAC,SAAiB;IAC3D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,CAAC,CAAC;IACrC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,8BAA8B,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,SAAS;QAChG,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,+BAA+B,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1H,IAAI,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QAC/B,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,SAAiB,EAAE,SAAgC,EAAE,cAAsB;IAClG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,CAAC,CAAC;IAErC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACjF,MAAM,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACxF,MAAM,aAAa,GAAG,sBAAsB,CAAC,GAAG,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IAG3E,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,CAAC;YAAE,SAAS;QACrD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,SAAS;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,gFAAgF;IAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,gDAAgD;QAChD,IAAI,KAAK,CAAC,OAAO,IAAI,WAAW;YAAE,SAAS;QAE3C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE7B,8CAA8C;QAC9C,IAAI,KAAK,CAAC,OAAO,IAAI,YAAY,EAAE,CAAC;YAClC,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YACD,SAAS;QACX,CAAC;QAED,gDAAgD;QAChD,IAAI,KAAK,CAAC,OAAO,IAAI,aAAa,EAAE,CAAC;YACnC,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YACD,SAAS;QACX,CAAC;QAED,sCAAsC;QACtC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAChC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC;AACzB,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB;IACzC,IAAI,SAAS,GAAG,IAAI;QAAE,OAAO,GAAG,SAAS,GAAG,CAAC;IAC7C,IAAI,SAAS,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACxE,OAAO,GAAG,CAAC,SAAS,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACtD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC/C,IAAI,GAAG,GAAG,aAAa,CAAC;IACxB,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,GAAG,GAAG,cAAc,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;IAChE,CAAC;IACD,OAAO,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,qBAAqB,CAAC,MAA4B;IACzD,OAAO,IAAI,GAAG,CACZ,CAAC,MAAM,IAAI,EAAE,CAAC;SACX,GAAG,CAAC,sBAAsB,CAAC;SAC3B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CACvC,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,yBAAyB,CAAC,MAA4C;IAC7E,MAAM,GAAG,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,GAAG,CAAC;IACxB,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1D,MAAM,eAAe,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC3C,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,OAAO;aACJ,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;aAC9B,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CACzC,CAAC;QACF,IAAI,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAkB,EAAE,UAAkB;IAChE,OAAO,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;AACzE,CAAC;AAED,SAAS,QAAQ,CAAC,UAAkB,EAAE,SAAiB;IACrD,OAAO,GAAG,UAAU,IAAI,SAAS,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,wBAAwB,CAAC,UAAkB;IAClD,sFAAsF;IACtF,OAAO,GAAG,UAAU;UACZ,UAAU,gCAAgC,CAAC;AACrD,CAAC;AAED,SAAS,mBAAmB,CAAC,IAA8B;IACzD,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAc;IAChD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACzD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,0BAA0B,CAAC,KAAK,CAAC,CAAC;IACnE,MAAM,GAAG,GAAG,KAAK,YAAY,IAAI;QAC/B,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE;QACrB,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACvB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;IACpE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAgB;IAClD,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAChE,CAAC;AAED,SAAS,cAAc,CACrB,QAAiB,EACjB,UAA8B,EAC9B,gBAA6B,EAC7B,QAAiB;IAEjB,MAAM,GAAG,GAAG,UAAU,IAAI,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7E,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACrD,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChD,OAAO,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5D,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,GAAG,YAAY,IAAI;QAAE,OAAO,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACpE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,gBAAgB,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC;IACjF,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,OAAO,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB,EAAE,KAAsB;IACpE,MAAM,IAAI,GAAG,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAClF,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,uBAAuB;QAAE,OAAO,IAAI,CAAC;IAC5E,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvF,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,KAA+B,EAAE,KAAa;IAC5E,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QACjC,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAyD,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3G,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,eAAe,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtG,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,0BAA0B,MAAM,CAAC,IAAI,IAAI,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5H,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAI9B;IACC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS,CAAC;IACjE,MAAM,KAAK,GAAG,KAAK,CACjB,SAAS,EACT;QACE,YAAY,IAAI,CAAC,gBAAgB,EAAE;QACnC,gBAAgB;QAChB,SAAS;QACT,aAAa;QACb,YAAY;QACZ,iBAAiB;KAClB,EACD;QACE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;QACjC,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;SAC/C;KACF,CACF,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxE,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC;KACnC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAA+B,EAAE,cAAsB;IACpF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAC;IACzD,MAAM,KAAK,GAAG,KAAK,CACjB,OAAO,EACP;QACE,YAAY,IAAI,CAAC,gBAAgB,EAAE;QACnC,uBAAuB;QACvB,SAAS;QACT,aAAa;KACd,EACD;QACE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;QACjC,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,iBAAiB,EAAE,MAAM,CAAC,cAAc,CAAC;SAC1C;KACF,CACF,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC3C,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QACxD,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEtC,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;QAC5B,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;KACjC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,UAAkB;IACvD,MAAM,GAAG,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3E,IAAI,IAAI,GAAG,EAAE,CAAC;IAEd,IAAI,CAAC;QACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBAAE,OAAO,IAAI,CAAC;YACrD,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,8BAA8B;gBAAE,OAAO,KAAK,CAAC;QACtF,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAC7C,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,GAAG,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,qBAAqB,CAAC,UAAkB;IACtD,MAAM,GAAG,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3E,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,eAAe,CAAC;QAC7B,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAC;IACH,IAAI,cAAc,GAAa,EAAE,CAAC;IAElC,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,cAAc,GAAG,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAChC,IAAI,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBAClC,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;gBACnC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,MAAM,SAAS,CAAC;gBAClB,CAAC;gBACD,SAAS;YACX,CAAC;YACD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,iBAAiB,GAAG,cAAc,EAAE,CAAC;QAC3C,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,iBAAiB,CAAC;QAC1B,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,GAAG,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,QAAgB,EAAE,gBAAgB,GAAG,iCAAiC;IACjH,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACjE,IAAI,aAAa,GAAa,EAAE,CAAC;IACjC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAErC,MAAM,UAAU,GAAG,KAAK,EAAE,KAAsB,EAAiB,EAAE;QACjE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;QAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACvC,MAAM,YAAY,GAAG,aAAa,CAAC;QACnC,aAAa,GAAG,EAAE,CAAC;QACnB,aAAa,GAAG,CAAC,CAAC;QAClB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QACxD,UAAU,GAAG,KAAK,CAAC;QACnB,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,CAAC,IAAY;YACf,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;YACrE,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,aAAa,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACrD,IAAI,aAAa,IAAI,cAAc,EAAE,CAAC;gBACpC,kBAAkB,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QACD,KAAK,CAAC,KAAK;YACT,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,EAAE,CAAC,CAAC;YAClE,CAAC;YACD,kBAAkB,EAAE,CAAC;YACrB,MAAM,YAAY,CAAC;QACrB,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,KAAsB;YACnC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;YACrE,CAAC;YACD,kBAAkB,EAAE,CAAC;YACrB,UAAU,GAAG,KAAK,CAAC;YACnB,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1D,MAAM,YAAY,CAAC;QACrB,CAAC;QACD,KAAK,CAAC,KAAK;YACT,IAAI,MAAM;gBAAE,OAAO;YACnB,MAAM,GAAG,IAAI,CAAC;YACd,kBAAkB,EAAE,CAAC;YACrB,MAAM,YAAY,CAAC;YACnB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC/B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;QACD,KAAK,CAAC,KAAK;YACT,IAAI,MAAM;gBAAE,OAAO;YACnB,MAAM,GAAG,IAAI,CAAC;YACd,aAAa,GAAG,EAAE,CAAC;YACnB,aAAa,GAAG,CAAC,CAAC;YAClB,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACnC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC/D,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACvB,CAAC;gBAAC,MAAM,CAAC;oBACP,6EAA6E;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAA8B;IACpE,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,+BAA+B,CAAC;IAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC;IACjD,IAAI,qBAAqB,GAAG,YAAY,CAAC;IACzC,MAAM,YAAY,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACrE,MAAM,uBAAuB,GAAG,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/E,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC,CAAC;IACvF,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,IAAI,SAAS;YAAE,OAAO;QACtB,SAAS,GAAG,IAAI,CAAC;QACjB,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IACjF,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,IAAI,cAAc,KAAK,+BAA+B;QAAE,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpG,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,6BAA6B,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,aAAa,GAAG,MAAM,iBAAiB,CAAC;gBACtC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS;gBACT,cAAc;gBACd,KAAK,EAAE,IAAI,CAAC,UAAU;gBACtB,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM;aACrB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,EAAE,CAAC;YACjB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,cAAc,IAAI,SAAS,EAAE,GAAG,gBAAgB,MAAM,CAAC,CAAC;IACnG,MAAM,UAAU,GAAG,GAAG,YAAY,KAAK,CAAC;IACxC,MAAM,OAAO,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACxD,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,wBAAwB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,KAAK,IAAsC,EAAE;QAClE,MAAM,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QAC1C,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;QAC1C,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;QAC5C,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;QAC9E,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,GAAG,CAAC;YAC1D,CAAC,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC;YACvF,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QAC5F,MAAM,WAAW,GAAG,aAAa,GAAG,OAAO,CAAC,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,8BAA8B,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9E,OAAO;YACL,UAAU;YACV,SAAS;YACT,WAAW;YACX,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpF,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,YAAY,KAAK,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC;YAC5E,MAAM,GAAG,CAAA,UAAU,CAAC;YACpB,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,QAAQ,EAAE,CAAC;gBACjB,MAAM,eAAe,CAAC;oBACpB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;oBACvC,UAAU,EAAE,iBAAiB;oBAC7B,cAAc;iBACf,CAAC,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBAClC,IAAI,CAAC;wBAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC/D,CAAC;gBACD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC/B,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,qBAAqB,GAAG,YAAY,CAAC;gBACrC,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC,CAAC;gBACnF,SAAS,GAAG,KAAK,CAAC;YACpB,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,kEAAkE;gBAClE,iEAAiE;gBACjE,uEAAuE;gBACvE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,MAAM,cAAc,EAAE,CAAC;YAChC,CAAC;QACH,CAAC;QAED,MAAM,GAAG,CAAA,UAAU,CAAC;QAEpB,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,EAAE;YAC1C,IAAI,CAAC,SAAS,CAAC,CAAC;YAChB,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF,MAAM,qBAAqB,GAAG,GAAG,EAAE;YACjC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC7B,CAAC,CAAC;QAEF,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxB,aAAa,CAAC,+CAA+C,CAAC,CAAC;QAC/D,aAAa,CAAC,0CAA0C,CAAC,CAAC;QAC1D,aAAa,CAAC,0CAA0C,CAAC,CAAC;QAC1D,IAAI,CAAC,EAAE,CAAC,CAAC;QAET,MAAM,SAAS,GAAG,MAAM,GAAG,CAAmB;;;;cAIpC,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;;KAE7D,CAAC;QACF,MAAM,MAAM,GAAG,SAAS,CAAC;QACzB,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QACjH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAE9E,gBAAgB;QAChB,MAAM,KAAK,GAAG,MAAM,GAAG,CAA8D;;;;;cAK3E,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;;;KAG1D,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAE1D,MAAM,YAAY,GAAG,MAAM,GAAG,CAAsB;;;;;;;;;;;;;;;;;;;;;cAqB1C,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,CAAC;;KAElE,CAAC;QACF,MAAM,iBAAiB,GAAG,MAAM,GAAG,CAAsB;;;;;;;;;;;;;;;;cAgB/C,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;;KAE1D,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,iBAAiB,CAAC,CAAC,MAAM,CAC9D,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,IAAI,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAC7G,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,eAAe,CAAC,CAAC;QACjD,KAAK,MAAM,GAAG,IAAI,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC;QAClF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,YAAY,CAAC,CAAC;YACnB,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;gBACtC,aAAa,CAAC,+BAA+B,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC/E,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5E,aAAa,CAAC,eAAe,kBAAkB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,MAAM,IAAI,CAAC,CAAC;QACpG,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAE/B,MAAM,UAAU,GAAG,MAAM,GAAG,CAAuB;;;;;;;;KAQlD,CAAC;QACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,CAAC;YACtB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,aAAa,CACX,kCAAkC,eAAe,CAAC,SAAS,CAAC,cAAc,CAAC,gBAAgB,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CACrI,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,CAAC;YACrB,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC5D,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;gBACzF,aAAa,CAAC,2BAA2B,qBAAqB,WAAW,CAAC,CAAC;gBAC3E,aAAa,CACX,mBAAmB,qBAAqB,OAAO,GAAG,CAAC,SAAS,iBAAiB,GAAG,CAAC,SAAS,aAAa,GAAG,CAAC,aAAa,aAAa,GAAG,CAAC,aAAa,eAAe,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,GAAG,CAC9O,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC;QAED,4CAA4C;QAC5C,KAAK,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,MAAM,EAAE,CAAC;YAChD,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACtE,MAAM,OAAO,GAAG,MAAM,GAAG,CAYrB;;;;+BAIqB,WAAW,qBAAqB,SAAS;;OAEjE,CAAC;YAEF,IAAI,CAAC,aAAa,WAAW,IAAI,SAAS,EAAE,CAAC,CAAC;YAC9C,aAAa,CAAC,wBAAwB,kBAAkB,WAAW,CAAC,CAAC;YAErE,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,IAAI,OAAe,CAAC;gBACpB,IAAI,GAAG,CAAC,SAAS,KAAK,cAAc,EAAE,CAAC;oBACrC,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC7D,CAAC;qBAAM,IAAI,GAAG,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;oBACrC,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACnD,OAAO,GAAG,GAAG,CAAC,UAAU,KAAK,YAAY;wBACvC,CAAC,CAAC,GAAG,WAAW,IAAI;wBACpB,CAAC,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC;gBAC7D,CAAC;qBAAM,IAAI,GAAG,CAAC,SAAS,KAAK,mBAAmB,EAAE,CAAC;oBACjD,OAAO,GAAG,GAAG,CAAC,wBAAwB;wBACpC,CAAC,CAAC,WAAW,GAAG,CAAC,wBAAwB,GAAG;wBAC5C,CAAC,CAAC,SAAS,CAAC;gBAChB,CAAC;qBAAM,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC;oBACxE,OAAO;wBACL,GAAG,CAAC,aAAa,IAAI,IAAI;4BACvB,CAAC,CAAC,WAAW,GAAG,CAAC,iBAAiB,KAAK,GAAG,CAAC,aAAa,GAAG;4BAC3D,CAAC,CAAC,WAAW,GAAG,CAAC,iBAAiB,GAAG,CAAC;gBAC5C,CAAC;qBAAM,CAAC;oBACN,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC;gBAC1B,CAAC;gBAED,IAAI,GAAG,GAAG,MAAM,GAAG,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;gBAC9C,IAAI,GAAG,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;oBAC9B,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,KAAK,WAAW;2BACrF,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC;oBAC5E,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,mBAAmB;wBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,WAAW,IAAI,SAAS,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;oBAC3I,GAAG,IAAI,cAAc,GAAG,CAAC,mBAAmB,+BAA+B,kBAAkB,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,aAAa,CAAC,eAAe,QAAQ,CAAC,WAAW,iBAAiB,QAAQ,CAAC,SAAS,aAAa,QAAQ,CAAC,aAAa,aAAa,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC;gBAC3V,CAAC;qBAAM,IAAI,GAAG,CAAC,cAAc,IAAI,IAAI;oBAAE,GAAG,IAAI,YAAY,GAAG,CAAC,cAAc,EAAE,CAAC;gBAC/E,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI;oBAAE,GAAG,IAAI,WAAW,CAAC;gBACjD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;YAED,cAAc;YACd,MAAM,EAAE,GAAG,MAAM,GAAG,CAAuD;;;;;;;4BAOrD,WAAW,oBAAoB,SAAS;;OAE7D,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5D,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,eAAe,kBAAkB,IAAI,GAAG,CAAC,CAAC;YAC5E,CAAC;YAED,IAAI,CAAC,gBAAgB,kBAAkB,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,CAAC;YACX,qBAAqB,EAAE,CAAC;YACxB,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC;QAED,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1G,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC9B,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;gBACjC,aAAa,CACX,kBAAkB,kBAAkB,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,aAAa,CAAC,aAAa,kBAAkB,CAAC,GAAG,CAAC,YAAY,IAAI,QAAQ,EAAE,GAAG,CAAC,WAAY,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,YAAa,CAAC,GAAG,CACrM,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC;QAED,yEAAyE;QACzE,MAAM,oBAAoB,GAAG,MAAM,GAAG,CAKlC;;;;;;;;;;cAUM,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;;;KAG1D,CAAC;QACF,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAE7H,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC9B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5D,aAAa,CAAC,eAAe,kBAAkB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,eAAe,aAAa,IAAI,IAAI,CAAC,CAAC;YACzI,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC;QAED,4EAA4E;QAC5E,4EAA4E;QAC5E,oBAAoB;QACpB,MAAM,cAAc,GAAG,MAAM,GAAG,CAU5B;;;;;;;;;;;;;;;;;;;;cAoBM,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;;;KAG7D,CAAC;QACF,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAC/B,CAAC,EAAE,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;eACtE,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CACzE,CAAC;QAEF,yEAAyE;QACzE,uEAAuE;QACvE,0DAA0D;QAC1D,MAAM,QAAQ,GAAG,MAAM,GAAG,CAA0B;;;;cAI1C,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;;;;;;;;;;KAU1D,CAAC;QACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACpC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBAChD,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC;QAED,+CAA+C;QAC/C,MAAM,UAAU,GAAG,MAAM,GAAG,CAAgE;;;cAGlF,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;;;;;;;KAO3D,CAAC;QACF,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAEnH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,CAAC;YACnB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,aAAa,CAAC,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACxB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClE,MAAM,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClE,aAAa,CACX,eAAe,kBAAkB,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC,eAAe,kBAAkB,OAAO,gBAAgB,kBAAkB,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,OAAO,eAAe,EAAE,CAAC,WAAW,cAAc,EAAE,CAAC,WAAW,GAAG,CACjR,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC;QAED,2BAA2B;QAC3B,KAAK,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,MAAM,EAAE,CAAC;YAChD,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACzD,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACtE,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,WAAW,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC;YAC1H,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,MAAM,CAAkB,kCAAkC,kBAAkB,EAAE,CAAC,CAAC;YACxG,IAAI,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;gBAAE,SAAS;YAElF,iCAAiC;YACjC,MAAM,IAAI,GAAG,MAAM,GAAG,CAA8C;;;+BAG3C,WAAW,qBAAqB,SAAS;;OAEjE,CAAC;YACF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAElE,IAAI,CAAC,gBAAgB,WAAW,IAAI,SAAS,KAAK,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YAEvE,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;YAC3F,IAAI,qBAAqB,KAAK,YAAY,IAAI,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC1E,IAAI,CAAC,QAAQ,kBAAkB,KAAK,QAAQ,eAAe,CAAC,CAAC;gBAC7D,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC5B,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC,CAAC;gBAC7F,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,MAAM,OAAO;yBAC7B,MAAM,CAAC,QAAQ,kBAAkB,KAAK,QAAQ,aAAa,CAAC;yBAC5D,QAAQ,EAAE,CAAC;oBACd,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;wBACrC,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACrF,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;gBACtB,CAAC;gBACD,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC/B,qBAAqB,EAAE,CAAC;gBACxB,IAAI,CAAC,EAAE,CAAC,CAAC;gBACT,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,GAAG;iBAClB,MAAM,CAAC,iBAAiB,kBAAkB,EAAE,CAAC;iBAC7C,MAAM,EAAE;iBACR,MAAM,CAAC,uBAAuB,CAA+B,CAAC;YACjE,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBACnC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CACzC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAC7F,CAAC;oBACF,aAAa,CAAC,eAAe,kBAAkB,KAAK,QAAQ,IAAI,gBAAgB,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,YAAY,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvJ,CAAC;gBACD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,GAAG,CAIzB;;;;;;;;;cASM,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;;KAE1D,CAAC;QACF,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC7C,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CACrE,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,CAAC;YACpB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,aAAa,CAAC,GAAG,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC;QAED,kBAAkB;QAClB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC3B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC5B,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;gBACzF,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAC1B,2CAA2C,qBAAqB,EAAE,CACnE,CAAC;gBACF,MAAM,iBAAiB,GACrB,GAAG,CAAC,WAAW,KAAK,IAAI;uBACnB,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC/C,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACjC,aAAa,CAAC,kBAAkB,qBAAqB,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;gBAClJ,CAAC;YACH,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC;QAED,aAAa,CAAC,SAAS,CAAC,CAAC;QACzB,IAAI,CAAC,EAAE,CAAC,CAAC;QAET,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QAErB,kCAAkC;QAClC,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,aAAa,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QAC3D,MAAM,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,EAAE,aAAa,CAAC,CAAC;QAC3D,UAAU,CAAC,OAAO,CAAC,CAAC;QACpB,OAAO,MAAM,cAAc,EAAE,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,CAAC;YAC5D,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC;oBAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,wBAAwB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACnD,MAAM,QAAQ,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAA+B;IACtE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAAC,CAAC;IAChF,IAAI,gBAAgB,GAAY,IAAI,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,eAAe,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAgB,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,qBAAqB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,2BAA2B,CAAC,KAAK,CAAC,EAAE,CAClG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC,CAAC;IAEzF,IAAI,CAAC;QACH,MAAM,GAAG,CAAA,UAAU,CAAC;QACpB,IAAI,KAAK,EAAE,MAAM,SAAS,IAAI,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACrE,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QACxC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,gBAAgB,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAQ,KAAiC,CAAC,KAAK,KAAK,QAAQ;YAClI,CAAC,CAAC,MAAM,CAAE,KAAiC,CAAC,KAAK,CAAC;iBAC/C,KAAK,CAAC,OAAO,CAAC;iBACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;iBAC1B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,WAAW,GAAG,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,2BAA2B,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACtH,MAAM,IAAI,KAAK,CACb,qBAAqB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,2BAA2B,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,EAAE,CAClL,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAA+B;IACxE,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,WAAW,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,EAAE,MAAM;QACjD,CAAC,CAAC,UAAU,MAAM,CAAC,iBAAiB,CAAC,MAAM,uBAAuB;QAClE,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,GAAG,MAAM,CAAC,UAAU,KAAK,IAAI,GAAG,MAAM,GAAG,UAAU,GAAG,CAAC;AAChE,CAAC"}
|
package/dist/backup-lib.test.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
1
2
|
import fs from "node:fs";
|
|
2
3
|
import os from "node:os";
|
|
3
4
|
import path from "node:path";
|
|
4
5
|
import { gunzipSync, gzipSync } from "node:zlib";
|
|
5
6
|
import { afterEach, describe, expect, it } from "vitest";
|
|
6
7
|
import postgres from "postgres";
|
|
7
|
-
import { adoptRetiredBackupFilenames, createBufferedTextFileWriter, runDatabaseBackup, runDatabaseRestore } from "./backup-lib.js";
|
|
8
|
+
import { adoptRetiredBackupFilenames, createBufferedTextFileWriter, DATABASE_BACKUP_SKIPPED_MARKER, DatabaseBackupSkippedError, removeAbandonedPartialBackups, runDatabaseBackup, runDatabaseRestore, } from "./backup-lib.js";
|
|
8
9
|
import { ensurePostgresDatabase } from "./client.js";
|
|
9
10
|
import { EMBEDDED_POSTGRES_TEST_TIMEOUT_MS, getEmbeddedPostgresTestSupport, startEmbeddedPostgresTestDatabase, } from "./test-embedded-postgres.js";
|
|
10
11
|
const cleanups = [];
|
|
@@ -73,7 +74,94 @@ describe("adoptRetiredBackupFilenames", () => {
|
|
|
73
74
|
expect(adoptRetiredBackupFilenames(dir)).toBe(0);
|
|
74
75
|
});
|
|
75
76
|
});
|
|
77
|
+
describe("removeAbandonedPartialBackups", () => {
|
|
78
|
+
it("removes partials of dead or stale owners and keeps live ones and unrelated files", () => {
|
|
79
|
+
const dir = createTempDir("wardmote-backup-partial-");
|
|
80
|
+
const deadPid = 999_999_999;
|
|
81
|
+
const write = (name, mtime) => {
|
|
82
|
+
fs.writeFileSync(path.join(dir, name), "x");
|
|
83
|
+
if (mtime)
|
|
84
|
+
fs.utimesSync(path.join(dir, name), mtime, mtime);
|
|
85
|
+
};
|
|
86
|
+
write(`wardmote-20261112-040545.sql.gz.${deadPid}.partial`);
|
|
87
|
+
write(`wardmote-20261112-040545.sql.${deadPid}.partial`);
|
|
88
|
+
write(`wardmote-20261112-050000.sql.${process.pid}.partial`);
|
|
89
|
+
write(`wardmote-20261112-060000.sql.gz.${process.ppid}.partial`);
|
|
90
|
+
write(`wardmote-20261110-060000.sql.gz.${process.ppid}.partial`, new Date(Date.now() - 2 * 24 * 60 * 60 * 1000));
|
|
91
|
+
write(`notes.${deadPid}.partial`);
|
|
92
|
+
write("wardmote-20261112-070000.sql.gz");
|
|
93
|
+
expect(removeAbandonedPartialBackups(dir)).toBe(4);
|
|
94
|
+
expect(fs.readdirSync(dir).sort()).toEqual([
|
|
95
|
+
`notes.${deadPid}.partial`,
|
|
96
|
+
`wardmote-20261112-060000.sql.gz.${process.ppid}.partial`,
|
|
97
|
+
"wardmote-20261112-070000.sql.gz",
|
|
98
|
+
]);
|
|
99
|
+
});
|
|
100
|
+
});
|
|
76
101
|
describeEmbeddedPostgres("runDatabaseBackup", () => {
|
|
102
|
+
it("leaves no final backup when the backup process is killed mid-dump, and the next run cleans its partials", async () => {
|
|
103
|
+
const connectionString = await createTempDatabase();
|
|
104
|
+
const backupDir = createTempDir("wardmote-backup-killed-");
|
|
105
|
+
const fixtureDir = createTempDir("wardmote-backup-killed-fixture-");
|
|
106
|
+
const marker = path.join(fixtureDir, "dumping");
|
|
107
|
+
const slowPgDump = path.join(fixtureDir, "pg-dump-slow");
|
|
108
|
+
fs.writeFileSync(slowPgDump, `#!/bin/sh\nhead -c 4000000 /dev/urandom | base64\ntouch '${marker}'\nexec sleep 60\n`, { mode: 0o700 });
|
|
109
|
+
const script = path.join(fixtureDir, "backup.mts");
|
|
110
|
+
fs.writeFileSync(script, [
|
|
111
|
+
`import { runDatabaseBackup } from ${JSON.stringify(path.join(import.meta.dirname, "backup-lib.ts"))};`,
|
|
112
|
+
`await runDatabaseBackup({ connectionString: process.env.BACKUP_TEST_URL!, backupDir: ${JSON.stringify(backupDir)}, backupEngine: "pg_dump", retention: { dailyDays: 7, weeklyWeeks: 4, monthlyMonths: 1 } });`,
|
|
113
|
+
].join("\n"));
|
|
114
|
+
const child = spawn(process.execPath, ["--import", "tsx", script], {
|
|
115
|
+
cwd: path.dirname(import.meta.dirname),
|
|
116
|
+
detached: true,
|
|
117
|
+
stdio: ["ignore", "ignore", "pipe"],
|
|
118
|
+
env: { ...process.env, BACKUP_TEST_URL: connectionString, WARDMOTE_PG_DUMP_PATH: slowPgDump },
|
|
119
|
+
});
|
|
120
|
+
let stderr = "";
|
|
121
|
+
child.stderr.on("data", (chunk) => { stderr += chunk.toString(); });
|
|
122
|
+
const exited = new Promise((resolveExit) => child.once("exit", (_code, signal) => resolveExit(signal)));
|
|
123
|
+
cleanups.push(() => {
|
|
124
|
+
try {
|
|
125
|
+
process.kill(-child.pid, "SIGKILL");
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
if (error.code !== "ESRCH")
|
|
129
|
+
throw error;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
const archiveBytes = () => fs.readdirSync(backupDir)
|
|
133
|
+
.filter((name) => name.includes(".sql.gz"))
|
|
134
|
+
.reduce((sum, name) => sum + fs.statSync(path.join(backupDir, name)).size, 0);
|
|
135
|
+
const deadline = Date.now() + 60_000;
|
|
136
|
+
while (!(fs.existsSync(marker) && archiveBytes() > 0)) {
|
|
137
|
+
if (Date.now() > deadline)
|
|
138
|
+
throw new Error(`backup never started writing: [${fs.readdirSync(backupDir).join(", ")}] ${stderr}`);
|
|
139
|
+
await new Promise((tick) => setTimeout(tick, 50));
|
|
140
|
+
}
|
|
141
|
+
process.kill(-child.pid, "SIGKILL");
|
|
142
|
+
expect(await exited).toBe("SIGKILL");
|
|
143
|
+
const left = fs.readdirSync(backupDir);
|
|
144
|
+
expect(left.filter((name) => name.endsWith(".sql") || name.endsWith(".sql.gz"))).toEqual([]);
|
|
145
|
+
expect(left.some((name) => name.endsWith(`.${child.pid}.partial`))).toBe(true);
|
|
146
|
+
const quickPgDump = path.join(fixtureDir, "pg-dump-quick");
|
|
147
|
+
fs.writeFileSync(quickPgDump, "#!/bin/sh\nprintf 'SELECT 1;\\n'\n", { mode: 0o700 });
|
|
148
|
+
const previous = process.env.WARDMOTE_PG_DUMP_PATH;
|
|
149
|
+
process.env.WARDMOTE_PG_DUMP_PATH = quickPgDump;
|
|
150
|
+
try {
|
|
151
|
+
const result = await runDatabaseBackup({
|
|
152
|
+
connectionString, backupDir, backupEngine: "pg_dump",
|
|
153
|
+
retention: { dailyDays: 7, weeklyWeeks: 4, monthlyMonths: 1 },
|
|
154
|
+
});
|
|
155
|
+
expect(fs.readdirSync(backupDir)).toEqual([path.basename(result.backupFile)]);
|
|
156
|
+
expect(gunzipSync(fs.readFileSync(result.backupFile)).toString()).toBe("SELECT 1;\n");
|
|
157
|
+
}
|
|
158
|
+
finally {
|
|
159
|
+
if (previous === undefined)
|
|
160
|
+
delete process.env.WARDMOTE_PG_DUMP_PATH;
|
|
161
|
+
else
|
|
162
|
+
process.env.WARDMOTE_PG_DUMP_PATH = previous;
|
|
163
|
+
}
|
|
164
|
+
}, EMBEDDED_POSTGRES_TEST_TIMEOUT_MS);
|
|
77
165
|
it("preserves a post-pg_dump verification error without falling back or pruning", async () => {
|
|
78
166
|
const connectionString = await createTempDatabase();
|
|
79
167
|
const backupDir = createTempDir("checkpoint-pg-dump-");
|
|
@@ -576,4 +664,112 @@ describeEmbeddedPostgres("runDatabaseBackup", () => {
|
|
|
576
664
|
}
|
|
577
665
|
}, 20_000);
|
|
578
666
|
});
|
|
667
|
+
describeEmbeddedPostgres("runDatabaseBackup rotation and disk guard", () => {
|
|
668
|
+
const retention = { dailyDays: 7, weeklyWeeks: 4, monthlyMonths: 1, maxFiles: 2 };
|
|
669
|
+
async function withFixturePgDump(backupDir, run) {
|
|
670
|
+
const executable = path.join(path.dirname(backupDir), `pg-dump-fixture-${path.basename(backupDir)}`);
|
|
671
|
+
fs.writeFileSync(executable, "#!/bin/sh\nprintf 'SELECT 1;\\n'\n", { mode: 0o700 });
|
|
672
|
+
cleanups.push(() => fs.rmSync(executable, { force: true }));
|
|
673
|
+
const previous = process.env.WARDMOTE_PG_DUMP_PATH;
|
|
674
|
+
process.env.WARDMOTE_PG_DUMP_PATH = executable;
|
|
675
|
+
try {
|
|
676
|
+
return await run();
|
|
677
|
+
}
|
|
678
|
+
finally {
|
|
679
|
+
if (previous === undefined)
|
|
680
|
+
delete process.env.WARDMOTE_PG_DUMP_PATH;
|
|
681
|
+
else
|
|
682
|
+
process.env.WARDMOTE_PG_DUMP_PATH = previous;
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
function seed(backupDir, name, bytes, hoursAgo) {
|
|
686
|
+
const file = path.join(backupDir, name);
|
|
687
|
+
fs.writeFileSync(file, bytes);
|
|
688
|
+
const at = new Date(Date.now() - hoursAgo * 3_600_000);
|
|
689
|
+
fs.utimesSync(file, at, at);
|
|
690
|
+
return file;
|
|
691
|
+
}
|
|
692
|
+
function rotated(backupDir) {
|
|
693
|
+
return fs.readdirSync(backupDir).filter((name) => name.endsWith(".sql.gz")).sort();
|
|
694
|
+
}
|
|
695
|
+
const waitNextSecond = () => new Promise((resolveWait) => setTimeout(resolveWait, 1_100));
|
|
696
|
+
it("keeps exactly maxFiles valid backups and drops corrupt and empty ones", async () => {
|
|
697
|
+
const connectionString = await createTempDatabase();
|
|
698
|
+
const backupDir = createTempDir("rotation-max-files-");
|
|
699
|
+
seed(backupDir, "wardmote-20260101-030000.sql.gz", gzipSync("SELECT 'truncated';").subarray(0, 12), 1);
|
|
700
|
+
seed(backupDir, "wardmote-20260101-020000.sql.gz", Buffer.alloc(0), 2);
|
|
701
|
+
seed(backupDir, "wardmote-20260101-010000.sql.gz", gzipSync("SELECT 'last valid';"), 3);
|
|
702
|
+
seed(backupDir, "wardmote-20260101-000000.sql.gz", gzipSync("SELECT 'oldest';"), 4);
|
|
703
|
+
const result = await withFixturePgDump(backupDir, () => runDatabaseBackup({ connectionString, backupDir, retention }));
|
|
704
|
+
expect(rotated(backupDir)).toEqual(["wardmote-20260101-010000.sql.gz", path.basename(result.backupFile)].sort());
|
|
705
|
+
expect(result.prunedCount).toBe(3);
|
|
706
|
+
expect(gunzipSync(fs.readFileSync(result.backupFile)).toString()).toBe("SELECT 1;\n");
|
|
707
|
+
}, EMBEDDED_POSTGRES_TEST_TIMEOUT_MS);
|
|
708
|
+
it("keeps a backup it cannot read instead of treating it as corrupt", async () => {
|
|
709
|
+
if (process.getuid?.() === 0)
|
|
710
|
+
return;
|
|
711
|
+
const connectionString = await createTempDatabase();
|
|
712
|
+
const backupDir = createTempDir("rotation-unreadable-");
|
|
713
|
+
const unreadable = seed(backupDir, "wardmote-20260101-020000.sql.gz", gzipSync("SELECT 'unreadable';"), 1);
|
|
714
|
+
fs.chmodSync(unreadable, 0o000);
|
|
715
|
+
cleanups.push(() => fs.chmodSync(unreadable, 0o600));
|
|
716
|
+
seed(backupDir, "wardmote-20260101-010000.sql.gz", gzipSync("SELECT 'valid';"), 2);
|
|
717
|
+
seed(backupDir, "wardmote-20260101-000000.sql.gz", gzipSync("SELECT 'oldest';"), 3);
|
|
718
|
+
const result = await withFixturePgDump(backupDir, () => runDatabaseBackup({ connectionString, backupDir, retention }));
|
|
719
|
+
expect(rotated(backupDir)).toEqual(["wardmote-20260101-010000.sql.gz", "wardmote-20260101-020000.sql.gz", path.basename(result.backupFile)].sort());
|
|
720
|
+
expect(result.unreadableBackups).toEqual([unreadable]);
|
|
721
|
+
}, EMBEDDED_POSTGRES_TEST_TIMEOUT_MS);
|
|
722
|
+
it("skips the backup and keeps the last valid backup when space is short", async () => {
|
|
723
|
+
const connectionString = await createTempDatabase();
|
|
724
|
+
const backupDir = createTempDir("rotation-low-disk-");
|
|
725
|
+
const last = seed(backupDir, "wardmote-20260101-000000.sql.gz", gzipSync("SELECT 'last';"), 1);
|
|
726
|
+
const lastBytes = fs.readFileSync(last);
|
|
727
|
+
const attempt = withFixturePgDump(backupDir, () => runDatabaseBackup({
|
|
728
|
+
connectionString,
|
|
729
|
+
backupDir,
|
|
730
|
+
retention,
|
|
731
|
+
spaceGuard: { reservePercent: 5, reserveBytes: 0, statfs: () => ({ freeBytes: 1_000, totalBytes: 100_000 }) },
|
|
732
|
+
}));
|
|
733
|
+
await expect(attempt).rejects.toBeInstanceOf(DatabaseBackupSkippedError);
|
|
734
|
+
expect(rotated(backupDir)).toEqual(["wardmote-20260101-000000.sql.gz"]);
|
|
735
|
+
expect(fs.readFileSync(last)).toEqual(lastBytes);
|
|
736
|
+
expect(fs.readdirSync(backupDir).some((name) => name.endsWith(".partial"))).toBe(false);
|
|
737
|
+
const marker = JSON.parse(fs.readFileSync(path.join(backupDir, DATABASE_BACKUP_SKIPPED_MARKER), "utf8"));
|
|
738
|
+
expect(marker).toMatchObject({ freeBytes: 1_000, requiredBytes: 5_000 + Math.ceil(lastBytes.length * 1.5) });
|
|
739
|
+
}, EMBEDDED_POSTGRES_TEST_TIMEOUT_MS);
|
|
740
|
+
it("frees the oldest backup only when that makes room, then clears the skip marker", async () => {
|
|
741
|
+
const connectionString = await createTempDatabase();
|
|
742
|
+
const backupDir = createTempDir("rotation-make-room-");
|
|
743
|
+
const oldest = seed(backupDir, "wardmote-20260101-000000.sql.gz", gzipSync("x".repeat(4_000)), 2);
|
|
744
|
+
seed(backupDir, "wardmote-20260101-010000.sql.gz", gzipSync("SELECT 'newest';"), 1);
|
|
745
|
+
fs.writeFileSync(path.join(backupDir, DATABASE_BACKUP_SKIPPED_MARKER), "{}");
|
|
746
|
+
const newestSize = fs.statSync(path.join(backupDir, "wardmote-20260101-010000.sql.gz")).size;
|
|
747
|
+
const freeBytes = Math.ceil(newestSize * 1.5) - fs.statSync(oldest).size;
|
|
748
|
+
const result = await withFixturePgDump(backupDir, () => runDatabaseBackup({
|
|
749
|
+
connectionString,
|
|
750
|
+
backupDir,
|
|
751
|
+
retention,
|
|
752
|
+
spaceGuard: { reservePercent: 0, reserveBytes: 0, statfs: () => ({ freeBytes, totalBytes: 10_000_000 }) },
|
|
753
|
+
}));
|
|
754
|
+
expect(rotated(backupDir)).toEqual(["wardmote-20260101-010000.sql.gz", path.basename(result.backupFile)].sort());
|
|
755
|
+
expect(fs.existsSync(path.join(backupDir, DATABASE_BACKUP_SKIPPED_MARKER))).toBe(false);
|
|
756
|
+
}, EMBEDDED_POSTGRES_TEST_TIMEOUT_MS);
|
|
757
|
+
it("keeps pinned backups outside rotation and expires them only by age", async () => {
|
|
758
|
+
const connectionString = await createTempDatabase();
|
|
759
|
+
const backupDir = createTempDir("rotation-pinned-");
|
|
760
|
+
const pinnedDir = path.join(backupDir, "pinned");
|
|
761
|
+
fs.mkdirSync(pinnedDir);
|
|
762
|
+
const expired = seed(pinnedDir, "wardmote-20250101-000000.sql.gz", gzipSync("SELECT 'expired';"), 24 * 40);
|
|
763
|
+
const pinned = await withFixturePgDump(backupDir, () => runDatabaseBackup({ connectionString, backupDir, retention, pinned: true }));
|
|
764
|
+
expect(path.dirname(pinned.backupFile)).toBe(pinnedDir);
|
|
765
|
+
expect(fs.existsSync(expired)).toBe(true);
|
|
766
|
+
for (let index = 0; index < 3; index += 1) {
|
|
767
|
+
await waitNextSecond();
|
|
768
|
+
await withFixturePgDump(backupDir, () => runDatabaseBackup({ connectionString, backupDir, retention, pinnedMaxAgeDays: 30 }));
|
|
769
|
+
}
|
|
770
|
+
expect(rotated(backupDir)).toHaveLength(2);
|
|
771
|
+
expect(fs.existsSync(pinned.backupFile)).toBe(true);
|
|
772
|
+
expect(fs.existsSync(expired)).toBe(false);
|
|
773
|
+
}, EMBEDDED_POSTGRES_TEST_TIMEOUT_MS);
|
|
774
|
+
});
|
|
579
775
|
//# sourceMappingURL=backup-lib.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup-lib.test.js","sourceRoot":"","sources":["../src/backup-lib.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backup-lib.test.js","sourceRoot":"","sources":["../src/backup-lib.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,0BAA0B,EAC1B,6BAA6B,EAC7B,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,iCAAiC,EACjC,8BAA8B,EAC9B,iCAAiC,GAClC,MAAM,6BAA6B,CAAC;AAErC,MAAM,QAAQ,GAAsC,EAAE,CAAC;AACvD,MAAM,uBAAuB,GAAG,MAAM,8BAA8B,EAAE,CAAC;AACvE,MAAM,wBAAwB,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AAE9F,SAAS,aAAa,CAAC,MAAc;IACnC,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE;QACjB,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,MAAM,EAAE,GAAG,MAAM,iCAAiC,CAAC,sBAAsB,CAAC,CAAC;IAC3E,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC1B,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,gBAAwB,EAAE,YAAoB;IACjF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC3C,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAAC;IAChC,MAAM,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC5C,SAAS,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IACxC,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,OAAO,EAAE,EAAE,CAAC;IACpB,CAAC;AACH,CAAC,EAAE,MAAM,CAAC,CAAC;AAEX,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,CAAC;IACvC,OAAO,CAAC,IAAI,CACV,yDAAyD,uBAAuB,CAAC,MAAM,IAAI,yBAAyB,EAAE,CACvH,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,OAAO,GAAG,aAAa,CAAC,4BAA4B,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,4BAA4B,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG;YACZ,WAAW;YACX,QAAQ;YACR,EAAE;YACF,8BAA8B;YAC9B,WAAW;SACZ,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QAErB,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,GAAG,GAAG,aAAa,CAAC,wBAAwB,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,wBAAwB,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5E,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,wBAAwB,CAAC,EAAE,OAAO,CAAC,CAAC;QAC9E,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,iCAAiC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3E,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;QAChE,MAAM,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,iCAAiC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/F,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,iCAAiC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/F,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,wBAAwB,EAAE,GAAG,OAAO,WAAW,CAAC,CAAC,CAAC;QACnJ,MAAM,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,EAAE,CAAC,kFAAkF,EAAE,GAAG,EAAE;QAC1F,MAAM,GAAG,GAAG,aAAa,CAAC,0BAA0B,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,WAAW,CAAC;QAC5B,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,KAAY,EAAE,EAAE;YAC3C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YAC5C,IAAI,KAAK;gBAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/D,CAAC,CAAC;QACF,KAAK,CAAC,mCAAmC,OAAO,UAAU,CAAC,CAAC;QAC5D,KAAK,CAAC,gCAAgC,OAAO,UAAU,CAAC,CAAC;QACzD,KAAK,CAAC,gCAAgC,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC;QAC7D,KAAK,CAAC,mCAAmC,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC;QACjE,KAAK,CAAC,mCAAmC,OAAO,CAAC,IAAI,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QACjH,KAAK,CAAC,SAAS,OAAO,UAAU,CAAC,CAAC;QAClC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAEzC,MAAM,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC;YACzC,SAAS,OAAO,UAAU;YAC1B,mCAAmC,OAAO,CAAC,IAAI,UAAU;YACzD,iCAAiC;SAClC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,wBAAwB,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjD,EAAE,CAAC,yGAAyG,EAAE,KAAK,IAAI,EAAE;QACvH,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,aAAa,CAAC,yBAAyB,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,aAAa,CAAC,iCAAiC,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACzD,EAAE,CAAC,aAAa,CACd,UAAU,EACV,4DAA4D,MAAM,oBAAoB,EACtF,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACnD,EAAE,CAAC,aAAa,CACd,MAAM,EACN;YACE,qCAAqC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,GAAG;YACvG,wFAAwF,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,8FAA8F;SAChN,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QACF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE;YACjE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC;YACtC,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;YACnC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,UAAU,EAAE;SAC9F,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,CAAC,MAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,IAAI,OAAO,CAAwB,CAAC,WAAW,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/H,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE;YACjB,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAI,EAAE,SAAS,CAAC,CAAC;YACvC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAK,KAA+B,CAAC,IAAI,KAAK,OAAO;oBAAE,MAAM,KAAK,CAAC;YACrE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;aACjD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aAC1C,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;QACrC,OAAO,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,YAAY,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;YACtD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;YAChI,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAI,EAAE,SAAS,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAErC,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7F,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/E,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAC3D,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,oCAAoC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACrF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,WAAW,CAAC;QAChD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS;gBACpD,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;aAC9D,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9E,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxF,CAAC;gBAAS,CAAC;YACT,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;;gBAChE,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,QAAQ,CAAC;QACpD,CAAC;IACH,CAAC,EAAE,iCAAiC,CAAC,CAAC;IAEtC,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,aAAa,CAAC,qBAAqB,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC3D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,oCAAoC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACpF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACnD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACxC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,UAAU,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC1D,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,iBAAiB,CAAC;gBAC7B,gBAAgB,EAAE,SAAS;gBAC3B,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;gBAC7D,iBAAiB,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE;oBACjC,QAAQ,EAAE,CAAC;oBACX,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC5E,MAAM,OAAO,CAAC;gBAChB,CAAC;aACF,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1B,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACvD,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAClH,CAAC;gBAAS,CAAC;YACT,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;;gBAChE,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,QAAQ,CAAC;QACpD,CAAC;IACH,CAAC,EAAE,iCAAiC,CAAC,CAAC;IAEtC,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;QAClG,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;QAC9E,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,MAAM,CAAC;;;;;;;;OAQtB,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9M,MAAM,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YACtF,MAAM,CAAC,MAAM,SAAS,CAAA,8EAA8E,CAAC;iBAClG,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACjG,MAAM,CAAC,MAAM,SAAS,CAAA,8FAA8F,CAAC;iBAClH,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1C,MAAM,MAAM,CAAC,SAAS,CAAA,0EAA0E,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACnI,CAAC;gBAAS,CAAC;YACT,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC;QACxB,CAAC;IACH,CAAC,EAAE,MAAM,CAAC,CAAC;IAEX,EAAE,CACA,0DAA0D,EAC1D,KAAK,IAAI,EAAE;QACT,MAAM,sBAAsB,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,aAAa,CAAC,gCAAgC,CAAC,CAAC;QAClE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,2CAA2C,CAAC,CAAC;QACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,2CAA2C,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,2CAA2C,CAAC,CAAC;QAEjF,IAAI,CAAC;YACH,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YAC1C,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACxC,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAEpC,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,sBAAsB,CAAC,EAAE,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC7F,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,sBAAsB,CAAC,EAAE,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC5F,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,sBAAsB,CAAC,EAAE,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAE1F,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,gBAAgB,EAAE,sBAAsB;gBACxC,SAAS;gBACT,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;gBAC7D,cAAc,EAAE,gBAAgB;aACjC,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC;QACzB,CAAC;IACH,CAAC,EACD,MAAM,CACP,CAAC;IAEF,EAAE,CACA,mFAAmF,EACnF,KAAK,IAAI,EAAE;QACT,MAAM,sBAAsB,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAC1D,MAAM,uBAAuB,GAAG,MAAM,qBAAqB,CACzD,sBAAsB,EACtB,0BAA0B,CAC3B,CAAC;QACF,MAAM,SAAS,GAAG,aAAa,CAAC,6BAA6B,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,QAAQ,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;QACnF,MAAM,UAAU,GAAG,QAAQ,CAAC,uBAAuB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;QAErF,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,MAAM,CAAC;;SAEtB,CAAC,CAAC;YACH,MAAM,SAAS,CAAC,MAAM,CAAC;;;;;;;;;SAStB,CAAC,CAAC;YACH,MAAM,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;SActB,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC5C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC9D,MAAM,SAAS,CAAA;;;;;;;;;gBAST,OAAO,KAAK,EAAE;gBACd,OAAO;gBACP,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;gBACpC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChD,SAAS;;WAEd,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,gBAAgB,EAAE,sBAAsB;gBACxC,SAAS;gBACT,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;gBAC7D,cAAc,EAAE,gBAAgB;gBAChC,YAAY,EAAE,YAAY;aAC3B,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;YACjE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEpD,MAAM,kBAAkB,CAAC;gBACvB,gBAAgB,EAAE,uBAAuB;gBACzC,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAsB;;;SAG3D,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEnC,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,MAAM,CAKrC;;;;;SAKJ,CAAC,CAAC;YACH,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC9B,GAAG,GAAG;gBACN,QAAQ,EAAE,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ;aACrF,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACX;oBACE,KAAK,EAAE,OAAO;oBACd,OAAO;oBACP,KAAK,EAAE,SAAS;oBAChB,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;iBACnC;gBACD;oBACE,KAAK,EAAE,SAAS;oBAChB,OAAO;oBACP,KAAK,EAAE,MAAM;oBACb,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE;iBACtC;aACF,CAAC,CAAC;YAEH,MAAM,UAAU,CAAC,MAAM,CAAC;;;;SAIvB,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,MAAM,CAAsB;;;;SAIlE,CAAC,CAAC;YACH,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;gBAAS,CAAC;YACT,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC;IACH,CAAC,EACD,MAAM,CACP,CAAC;IAEF,EAAE,CACA,yEAAyE,EACzE,KAAK,IAAI,EAAE;QACT,MAAM,sBAAsB,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAC1D,MAAM,uBAAuB,GAAG,MAAM,qBAAqB,CACzD,sBAAsB,EACtB,uCAAuC,CACxC,CAAC;QACF,MAAM,SAAS,GAAG,aAAa,CAAC,mCAAmC,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,QAAQ,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;QACnF,MAAM,UAAU,GAAG,QAAQ,CAAC,uBAAuB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;QAErF,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,MAAM,CAAC;;;;;;;;;SAStB,CAAC,CAAC;YACH,MAAM,SAAS,CAAC,MAAM,CAAC;;;;;;;SAOtB,CAAC,CAAC;YACH,MAAM,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;SAatB,CAAC,CAAC;YACH,MAAM,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;SAkBtB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,gBAAgB,EAAE,sBAAsB;gBACxC,SAAS;gBACT,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;gBAC7D,cAAc,EAAE,6BAA6B;gBAC7C,YAAY,EAAE,YAAY;gBAC1B,aAAa,EAAE,CAAC,aAAa,CAAC;gBAC9B,cAAc,EAAE;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;iBAC5B;aACF,CAAC,CAAC;YAEH,MAAM,kBAAkB,CAAC;gBACvB,gBAAgB,EAAE,uBAAuB;gBACzC,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,MAAM,CAAqB;;;;SAIjE,CAAC,CAAC;YACH,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC,CAAC,CAAC;YAEzE,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,MAAM,CAA0D;;;;SAInG,CAAC,CAAC;YACH,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YAExF,MAAM,mBAAmB,GAAG,MAAM,UAAU,CAAC,MAAM,CAAsB;;;SAGxE,CAAC,CAAC;YACH,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE9C,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,MAAM,CAAmC;;;SAGjF,CAAC,CAAC;YACH,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAEzD,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,MAAM,CAAmC;;;SAGjF,CAAC,CAAC;YACH,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;YAEpE,MAAM,MAAM,CACV,UAAU,CAAC,MAAM,CAAC;;;WAGjB,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC;IACH,CAAC,EACD,MAAM,CACP,CAAC;IAEF,EAAE,CACA,mFAAmF,EACnF,KAAK,IAAI,EAAE;QACT,MAAM,sBAAsB,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAC1D,MAAM,uBAAuB,GAAG,MAAM,qBAAqB,CACzD,sBAAsB,EACtB,uCAAuC,CACxC,CAAC;QACF,MAAM,SAAS,GAAG,aAAa,CAAC,mCAAmC,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,QAAQ,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;QACnF,MAAM,UAAU,GAAG,QAAQ,CAAC,uBAAuB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;QAErF,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAiCtB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,gBAAgB,EAAE,sBAAsB;gBACxC,SAAS;gBACT,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;gBAC7D,cAAc,EAAE,6BAA6B;gBAC7C,YAAY,EAAE,YAAY;aAC3B,CAAC,CAAC;YAEH,MAAM,kBAAkB,CAAC;gBACvB,gBAAgB,EAAE,uBAAuB;gBACzC,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAK/B;;;;;;SAMJ,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;gBACnB;oBACE,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC;oBACzF,QAAQ,EAAE,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;iBACvD;aACF,CAAC,CAAC;YAEH,MAAM,MAAM,CACV,UAAU,CAAC,MAAM,CAAC;;;;;;;;WAQjB,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC;IACH,CAAC,EACD,MAAM,CACP,CAAC;IAEF,EAAE,CACA,+EAA+E,EAC/E,KAAK,IAAI,EAAE;QACT,MAAM,sBAAsB,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAC1D,MAAM,uBAAuB,GAAG,MAAM,qBAAqB,CACzD,sBAAsB,EACtB,kCAAkC,CACnC,CAAC;QACF,MAAM,SAAS,GAAG,aAAa,CAAC,8BAA8B,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,QAAQ,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;QACnF,MAAM,UAAU,GAAG,QAAQ,CAAC,uBAAuB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;QACrF,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;QAC7D,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,YAAY,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,YAAY,CAAC;QAE9C,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;SAkBtB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,gBAAgB,EAAE,sBAAsB;gBACxC,SAAS;gBACT,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;gBAC7D,cAAc,EAAE,wBAAwB;gBACxC,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC7F,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;YACvF,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,CAAC,YAAY,CAC7E,SAAS,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAC5D,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAEhD,MAAM,kBAAkB,CAAC;gBACvB,gBAAgB,EAAE,uBAAuB;gBACzC,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAAmC;;;;SAItE,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC;gBAAS,CAAC;YACT,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBACrC,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,kBAAkB,CAAC;YACzD,CAAC;YACD,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACnC,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,gBAAgB,CAAC;YACpD,CAAC;YACD,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC;IACH,CAAC,EACD,MAAM,CACP,CAAC;IAEF,EAAE,CACA,+DAA+D,EAC/D,KAAK,IAAI,EAAE;QACT,MAAM,uBAAuB,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAC3D,MAAM,UAAU,GAAG,QAAQ,CAAC,uBAAuB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;QACrF,MAAM,SAAS,GAAG,aAAa,CAAC,8BAA8B,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAEtD,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CACzB,UAAU,EACV;gBACE,6BAA6B;gBAC7B,sCAAsC;gBACtC,EAAE;gBACF,QAAQ;gBACR,wEAAwE;gBACxE,0FAA0F;gBAC1F,wEAAwE;gBACxE,sDAAsD;gBACtD,sBAAsB;gBACtB,wEAAwE;gBACxE,SAAS;gBACT,wEAAwE;aACzE,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,MAAM,CACP,CAAC;YAEF,MAAM,kBAAkB,CAAC;gBACvB,gBAAgB,EAAE,uBAAuB;gBACzC,UAAU;aACX,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAAwB;;;SAG3D,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC;gBAAS,CAAC;YACT,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC;IACH,CAAC,EACD,MAAM,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,wBAAwB,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACzE,MAAM,SAAS,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAW,CAAC;IAE3F,KAAK,UAAU,iBAAiB,CAAI,SAAiB,EAAE,GAAqB;QAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,mBAAmB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACrG,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,oCAAoC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACpF,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,UAAU,CAAC;QAC/C,IAAI,CAAC;YACH,OAAO,MAAM,GAAG,EAAE,CAAC;QACrB,CAAC;gBAAS,CAAC;YACT,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;;gBAChE,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,QAAQ,CAAC;QACpD,CAAC;IACH,CAAC;IAED,SAAS,IAAI,CAAC,SAAiB,EAAE,IAAY,EAAE,KAAa,EAAE,QAAgB;QAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACxC,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC;QACvD,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,OAAO,CAAC,SAAiB;QAChC,OAAO,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrF,CAAC;IAED,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1F,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,aAAa,CAAC,qBAAqB,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,EAAE,iCAAiC,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvG,IAAI,CAAC,SAAS,EAAE,iCAAiC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,SAAS,EAAE,iCAAiC,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,SAAS,EAAE,iCAAiC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;QAEpF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,CACrD,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAEjE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,iCAAiC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjH,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACxF,CAAC,EAAE,iCAAiC,CAAC,CAAC;IAEtC,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC;YAAE,OAAO;QACrC,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,aAAa,CAAC,sBAAsB,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,iCAAiC,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3G,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,EAAE,iCAAiC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,SAAS,EAAE,iCAAiC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;QAEpF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,CACrD,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAEjE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAChC,CAAC,iCAAiC,EAAE,iCAAiC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAChH,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACzD,CAAC,EAAE,iCAAiC,CAAC,CAAC;IAEtC,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,iCAAiC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/F,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAExC,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,CAChD,iBAAiB,CAAC;YAChB,gBAAgB;YAChB,SAAS;YACT,SAAS;YACT,UAAU,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE;SAC9G,CAAC,CAAC,CAAC;QAEN,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;QACzE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,8BAA8B,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACzG,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/G,CAAC,EAAE,iCAAiC,CAAC,CAAC;IAEtC,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,aAAa,CAAC,qBAAqB,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,iCAAiC,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClG,IAAI,CAAC,SAAS,EAAE,iCAAiC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;QACpF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,8BAA8B,CAAC,EAAE,IAAI,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7F,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;QAEzE,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,CACrD,iBAAiB,CAAC;YAChB,gBAAgB;YAChB,SAAS;YACT,SAAS;YACT,UAAU,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,EAAE;SAC1G,CAAC,CAAC,CAAC;QAEN,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,iCAAiC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjH,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,8BAA8B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1F,CAAC,EAAE,iCAAiC,CAAC,CAAC;IAEtC,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACjD,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,iCAAiC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAE3G,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,CACrD,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/E,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,cAAc,EAAE,CAAC;YACvB,MAAM,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,CACtC,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC,EAAE,iCAAiC,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC"}
|
package/dist/backup.js
CHANGED
|
@@ -58,7 +58,12 @@ async function main() {
|
|
|
58
58
|
const result = await runDatabaseBackup({
|
|
59
59
|
connectionString,
|
|
60
60
|
backupDir,
|
|
61
|
-
retention: {
|
|
61
|
+
retention: {
|
|
62
|
+
dailyDays: retentionDays,
|
|
63
|
+
weeklyWeeks: 4,
|
|
64
|
+
monthlyMonths: 1,
|
|
65
|
+
maxFiles: asPositiveInt(config?.database?.backup?.maxFiles) ?? 2,
|
|
66
|
+
},
|
|
62
67
|
});
|
|
63
68
|
console.log(`Backup saved: ${formatDatabaseBackupResult(result)}`);
|
|
64
69
|
}
|
package/dist/backup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../src/backup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,oCAAoC,GACrC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../src/backup.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { createDb, withDedicatedDbConnection, closeRegisteredClients, getPostgresDataDirectory, ensurePostgresDatabase, resetPostgresDatabase, inspectMigrations, applyPendingMigrations, reconcilePendingMigrationHistory, type MigrationState, type MigrationHistoryReconcileResult, migratePostgresIfEmpty, type MigrationBootstrapResult, type Db, } from "./client.js";
|
|
2
2
|
export { getEmbeddedPostgresTestSupport, startEmbeddedPostgresTestDatabase, EMBEDDED_POSTGRES_TEST_TIMEOUT_MS, type EmbeddedPostgresTestDatabase, type EmbeddedPostgresTestSupport, } from "./test-embedded-postgres.js";
|
|
3
|
-
export { runDatabaseBackup, runDatabaseRestore, adoptRetiredBackupFilenames, DATABASE_BACKUP_FILENAME_PREFIX, formatDatabaseBackupResult, type BackupRetentionPolicy, type RunDatabaseBackupOptions, type RunDatabaseBackupResult, type RunDatabaseRestoreOptions, } from "./backup-lib.js";
|
|
3
|
+
export { runDatabaseBackup, runDatabaseRestore, adoptRetiredBackupFilenames, DATABASE_BACKUP_FILENAME_PREFIX, DATABASE_BACKUP_SKIPPED_MARKER, DatabaseBackupSkippedError, PINNED_BACKUP_DIRNAME, pinnedBackupDir, readBackupDiskSpace, verifyGzipBackup, formatDatabaseBackupResult, type BackupDiskSpace, type BackupSpaceGuard, type BackupRetentionPolicy, type RunDatabaseBackupOptions, type RunDatabaseBackupResult, type RunDatabaseRestoreOptions, } from "./backup-lib.js";
|
|
4
4
|
export { EMBEDDED_POSTGRES_USER, EMBEDDED_POSTGRES_PASSWORD, EMBEDDED_POSTGRES_DATABASE, embeddedPostgresUrl, embeddedPostgresAdminUrl, migrateEmbeddedPostgresIdentity, type EmbeddedIdentityMigration, } from "./embedded-identity.js";
|
|
5
5
|
export { createEmbeddedPostgresLogBuffer, formatEmbeddedPostgresError, } from "./embedded-postgres-error.js";
|
|
6
6
|
export { ensureLinuxSharedLibraryAliases, prepareEmbeddedPostgresNativeRuntime, } from "./embedded-postgres-native.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,gCAAgC,EAChC,KAAK,cAAc,EACnB,KAAK,+BAA+B,EACpC,sBAAsB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,EAAE,GACR,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,8BAA8B,EAC9B,iCAAiC,EACjC,iCAAiC,EACjC,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,GACjC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,EAC3B,+BAA+B,EAC/B,0BAA0B,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,GAC/B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,EACxB,+BAA+B,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,GACrC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,oCAAoC,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,gCAAgC,EAChC,KAAK,cAAc,EACnB,KAAK,+BAA+B,EACpC,sBAAsB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,EAAE,GACR,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,8BAA8B,EAC9B,iCAAiC,EACjC,iCAAiC,EACjC,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,GACjC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,EAC3B,+BAA+B,EAC/B,8BAA8B,EAC9B,0BAA0B,EAC1B,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,0BAA0B,EAC1B,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,GAC/B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,EACxB,+BAA+B,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,GACrC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,oCAAoC,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { createDb, withDedicatedDbConnection, closeRegisteredClients, getPostgresDataDirectory, ensurePostgresDatabase, resetPostgresDatabase, inspectMigrations, applyPendingMigrations, reconcilePendingMigrationHistory, migratePostgresIfEmpty, } from "./client.js";
|
|
2
2
|
export { getEmbeddedPostgresTestSupport, startEmbeddedPostgresTestDatabase, EMBEDDED_POSTGRES_TEST_TIMEOUT_MS, } from "./test-embedded-postgres.js";
|
|
3
|
-
export { runDatabaseBackup, runDatabaseRestore, adoptRetiredBackupFilenames, DATABASE_BACKUP_FILENAME_PREFIX, formatDatabaseBackupResult, } from "./backup-lib.js";
|
|
3
|
+
export { runDatabaseBackup, runDatabaseRestore, adoptRetiredBackupFilenames, DATABASE_BACKUP_FILENAME_PREFIX, DATABASE_BACKUP_SKIPPED_MARKER, DatabaseBackupSkippedError, PINNED_BACKUP_DIRNAME, pinnedBackupDir, readBackupDiskSpace, verifyGzipBackup, formatDatabaseBackupResult, } from "./backup-lib.js";
|
|
4
4
|
export { EMBEDDED_POSTGRES_USER, EMBEDDED_POSTGRES_PASSWORD, EMBEDDED_POSTGRES_DATABASE, embeddedPostgresUrl, embeddedPostgresAdminUrl, migrateEmbeddedPostgresIdentity, } from "./embedded-identity.js";
|
|
5
5
|
export { createEmbeddedPostgresLogBuffer, formatEmbeddedPostgresError, } from "./embedded-postgres-error.js";
|
|
6
6
|
export { ensureLinuxSharedLibraryAliases, prepareEmbeddedPostgresNativeRuntime, } from "./embedded-postgres-native.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,gCAAgC,EAGhC,sBAAsB,GAGvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,8BAA8B,EAC9B,iCAAiC,EACjC,iCAAiC,GAGlC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,EAC3B,+BAA+B,EAC/B,0BAA0B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,gCAAgC,EAGhC,sBAAsB,GAGvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,8BAA8B,EAC9B,iCAAiC,EACjC,iCAAiC,GAGlC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,EAC3B,+BAA+B,EAC/B,8BAA8B,EAC9B,0BAA0B,EAC1B,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,0BAA0B,GAO3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,EACxB,+BAA+B,GAEhC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,GACrC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,oCAAoC,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
UPDATE "tool_applications"
|
|
2
|
+
SET "type" = 'wardmote_plugin'
|
|
3
|
+
WHERE "type" = 'paperclip_plugin';--> statement-breakpoint
|
|
4
|
+
UPDATE "tool_applications" a
|
|
5
|
+
SET "application_key" = 'wardmote_plugin:' || substr(a."application_key", 18)
|
|
6
|
+
WHERE a."application_key" LIKE 'paperclip\_plugin:%'
|
|
7
|
+
AND NOT EXISTS (
|
|
8
|
+
SELECT 1 FROM "tool_applications" b
|
|
9
|
+
WHERE b."company_id" = a."company_id"
|
|
10
|
+
AND b."application_key" = 'wardmote_plugin:' || substr(a."application_key", 18)
|
|
11
|
+
);--> statement-breakpoint
|
|
12
|
+
UPDATE "tool_connections"
|
|
13
|
+
SET "config" = jsonb_set("config", '{type}', '"wardmote_plugin"')
|
|
14
|
+
WHERE "config" ->> 'type' = 'paperclip_plugin';--> statement-breakpoint
|
|
15
|
+
UPDATE "tool_connections"
|
|
16
|
+
SET "transport_config" = jsonb_set("transport_config", '{type}', '"wardmote_plugin"')
|
|
17
|
+
WHERE "transport_config" ->> 'type' = 'paperclip_plugin';--> statement-breakpoint
|
|
18
|
+
UPDATE "tool_invocations"
|
|
19
|
+
SET "provider_type" = 'wardmote_' || substr("provider_type", 11)
|
|
20
|
+
WHERE "provider_type" IN ('paperclip_self', 'paperclip_virtual', 'paperclip_plugin', 'paperclip_github_chat', 'paperclip_slack_chat', 'paperclip_speko_voice');--> statement-breakpoint
|
|
21
|
+
UPDATE "tool_invocations"
|
|
22
|
+
SET "application_key" = 'wardmote_plugin:' || substr("application_key", 18)
|
|
23
|
+
WHERE "application_key" LIKE 'paperclip\_plugin:%';
|
|
@@ -2591,6 +2591,13 @@
|
|
|
2591
2591
|
"when": 1794345237710,
|
|
2592
2592
|
"tag": "0371_wardmote_session_config_keys",
|
|
2593
2593
|
"breakpoints": true
|
|
2594
|
+
},
|
|
2595
|
+
{
|
|
2596
|
+
"idx": 372,
|
|
2597
|
+
"version": "7",
|
|
2598
|
+
"when": 1794345297710,
|
|
2599
|
+
"tag": "0372_wardmote_tool_provider_types",
|
|
2600
|
+
"breakpoints": true
|
|
2594
2601
|
}
|
|
2595
2602
|
]
|
|
2596
2603
|
}
|
|
@@ -93,7 +93,7 @@ export declare const toolApplications: import("drizzle-orm/pg-core").PgTableWith
|
|
|
93
93
|
tableName: "tool_applications";
|
|
94
94
|
dataType: "string";
|
|
95
95
|
columnType: "PgText";
|
|
96
|
-
data: "a2a" | "chat" | "mcp_http" | "mcp_stdio" | "
|
|
96
|
+
data: "a2a" | "chat" | "mcp_http" | "mcp_stdio" | "rest_api" | "wardmote_plugin";
|
|
97
97
|
driverParam: string;
|
|
98
98
|
notNull: true;
|
|
99
99
|
hasDefault: false;
|
|
@@ -105,7 +105,7 @@ export declare const toolApplications: import("drizzle-orm/pg-core").PgTableWith
|
|
|
105
105
|
identity: undefined;
|
|
106
106
|
generated: undefined;
|
|
107
107
|
}, {}, {
|
|
108
|
-
$type: "a2a" | "chat" | "mcp_http" | "mcp_stdio" | "
|
|
108
|
+
$type: "a2a" | "chat" | "mcp_http" | "mcp_stdio" | "rest_api" | "wardmote_plugin";
|
|
109
109
|
}>;
|
|
110
110
|
status: import("drizzle-orm/pg-core").PgColumn<{
|
|
111
111
|
name: "status";
|
|
@@ -92,7 +92,7 @@ export declare const webPushSubscriptions: import("drizzle-orm/pg-core").PgTable
|
|
|
92
92
|
tableName: "web_push_subscriptions";
|
|
93
93
|
dataType: "json";
|
|
94
94
|
columnType: "PgJsonb";
|
|
95
|
-
data: ("approval" | "assignment" | "comment" | "join_request" | "question" | "review" | "run_failed")[];
|
|
95
|
+
data: ("approval" | "assignment" | "comment" | "disk_space" | "join_request" | "question" | "review" | "run_failed")[];
|
|
96
96
|
driverParam: unknown;
|
|
97
97
|
notNull: true;
|
|
98
98
|
hasDefault: false;
|
|
@@ -104,7 +104,7 @@ export declare const webPushSubscriptions: import("drizzle-orm/pg-core").PgTable
|
|
|
104
104
|
identity: undefined;
|
|
105
105
|
generated: undefined;
|
|
106
106
|
}, {}, {
|
|
107
|
-
$type: ("approval" | "assignment" | "comment" | "join_request" | "question" | "review" | "run_failed")[];
|
|
107
|
+
$type: ("approval" | "assignment" | "comment" | "disk_space" | "join_request" | "question" | "review" | "run_failed")[];
|
|
108
108
|
}>;
|
|
109
109
|
userAgent: import("drizzle-orm/pg-core").PgColumn<{
|
|
110
110
|
name: "user_agent";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wardmote-tool-provider-types-migration.test.d.ts","sourceRoot":"","sources":["../src/wardmote-tool-provider-types-migration.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
4
|
+
import postgres from "postgres";
|
|
5
|
+
import { applyPendingMigrations } from "./client.js";
|
|
6
|
+
import { EMBEDDED_POSTGRES_TEST_TIMEOUT_MS, getEmbeddedPostgresTestSupport, startEmbeddedPostgresTestDatabase, } from "./test-embedded-postgres.js";
|
|
7
|
+
const MIGRATION_FILE = "0372_wardmote_tool_provider_types.sql";
|
|
8
|
+
const OLD = ["paper", "clip"].join("");
|
|
9
|
+
const cleanups = [];
|
|
10
|
+
const embeddedPostgresSupport = await getEmbeddedPostgresTestSupport();
|
|
11
|
+
const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe : describe.skip;
|
|
12
|
+
async function migrationHash() {
|
|
13
|
+
const content = await fs.promises.readFile(new URL(`./migrations/${MIGRATION_FILE}`, import.meta.url), "utf8");
|
|
14
|
+
return createHash("sha256").update(content).digest("hex");
|
|
15
|
+
}
|
|
16
|
+
describeEmbeddedPostgres("wardmote tool provider type migration", () => {
|
|
17
|
+
afterEach(async () => {
|
|
18
|
+
await Promise.all(cleanups.splice(0).map((cleanup) => cleanup()));
|
|
19
|
+
});
|
|
20
|
+
it("renames stored plugin application types, keys, connection types, and invocation provider types", async () => {
|
|
21
|
+
const database = await startEmbeddedPostgresTestDatabase("wardmote-tool-provider-types-migration-");
|
|
22
|
+
cleanups.push(database.cleanup);
|
|
23
|
+
const sql = postgres(database.connectionString, { max: 1, onnotice: () => { } });
|
|
24
|
+
cleanups.push(async () => sql.end());
|
|
25
|
+
const companyId = randomUUID();
|
|
26
|
+
const pluginApp = randomUUID();
|
|
27
|
+
const restApp = randomUUID();
|
|
28
|
+
const pluginConnection = randomUUID();
|
|
29
|
+
const restConnection = randomUUID();
|
|
30
|
+
const invocations = {
|
|
31
|
+
self: randomUUID(),
|
|
32
|
+
plugin: randomUUID(),
|
|
33
|
+
slack: randomUUID(),
|
|
34
|
+
rest: randomUUID(),
|
|
35
|
+
};
|
|
36
|
+
await sql `INSERT INTO "companies" ("id", "name", "issue_prefix") VALUES (${companyId}, 'Tool Provider Types', ${`T${companyId.replace(/-/g, "").toUpperCase()}`})`;
|
|
37
|
+
await sql `SET session_replication_role = replica`;
|
|
38
|
+
await sql `
|
|
39
|
+
INSERT INTO "tool_applications" ("id", "company_id", "application_key", "name", "type")
|
|
40
|
+
VALUES
|
|
41
|
+
(${pluginApp}, ${companyId}, ${`${OLD}_plugin:wardmote.llm-wiki`}, 'LLM Wiki', ${`${OLD}_plugin`}),
|
|
42
|
+
(${restApp}, ${companyId}, 'rest:github', 'GitHub', 'rest_api')
|
|
43
|
+
`;
|
|
44
|
+
await sql `
|
|
45
|
+
INSERT INTO "tool_connections" ("id", "company_id", "application_id", "name", "uid", "transport", "config", "transport_config")
|
|
46
|
+
VALUES
|
|
47
|
+
(${pluginConnection}, ${companyId}, ${pluginApp}, 'Plugin', ${randomUUID()}, 'local_stdio',
|
|
48
|
+
${sql.json({ pluginKey: "wardmote.llm-wiki", type: `${OLD}_plugin` })},
|
|
49
|
+
${sql.json({ pluginKey: "wardmote.llm-wiki", type: `${OLD}_plugin` })}),
|
|
50
|
+
(${restConnection}, ${companyId}, ${restApp}, 'Rest', ${randomUUID()}, 'rest_api', ${sql.json({ type: "rest_api" })}, ${sql.json({})})
|
|
51
|
+
`;
|
|
52
|
+
await sql `
|
|
53
|
+
INSERT INTO "tool_invocations" ("id", "company_id", "tool_name", "provider_type", "application_key")
|
|
54
|
+
VALUES
|
|
55
|
+
(${invocations.self}, ${companyId}, 'list_my_issues', ${`${OLD}_self`}, NULL),
|
|
56
|
+
(${invocations.plugin}, ${companyId}, 'wiki_search', ${`${OLD}_plugin`}, ${`${OLD}_plugin:wardmote.llm-wiki`}),
|
|
57
|
+
(${invocations.slack}, ${companyId}, 'slack_post', ${`${OLD}_slack_chat`}, NULL),
|
|
58
|
+
(${invocations.rest}, ${companyId}, 'get_repo', 'mcp_http', 'rest:github')
|
|
59
|
+
`;
|
|
60
|
+
await sql `SET session_replication_role = DEFAULT`;
|
|
61
|
+
const hash = await migrationHash();
|
|
62
|
+
await sql `DELETE FROM "drizzle"."__drizzle_migrations" WHERE "hash" = ${hash}`;
|
|
63
|
+
await applyPendingMigrations(database.connectionString);
|
|
64
|
+
const snapshot = async () => ({
|
|
65
|
+
applications: await sql `SELECT "id", "application_key", "type" FROM "tool_applications" WHERE "company_id" = ${companyId} ORDER BY "id"`,
|
|
66
|
+
connections: await sql `SELECT "id", "config", "transport_config" FROM "tool_connections" WHERE "company_id" = ${companyId} ORDER BY "id"`,
|
|
67
|
+
invocations: await sql `SELECT "id", "provider_type", "application_key" FROM "tool_invocations" WHERE "company_id" = ${companyId} ORDER BY "id"`,
|
|
68
|
+
});
|
|
69
|
+
const after = await snapshot();
|
|
70
|
+
const app = new Map(after.applications.map((row) => [row.id, row]));
|
|
71
|
+
expect(app.get(pluginApp)).toMatchObject({ application_key: "wardmote_plugin:wardmote.llm-wiki", type: "wardmote_plugin" });
|
|
72
|
+
expect(app.get(restApp)).toMatchObject({ application_key: "rest:github", type: "rest_api" });
|
|
73
|
+
const connection = new Map(after.connections.map((row) => [row.id, row]));
|
|
74
|
+
expect(connection.get(pluginConnection)).toMatchObject({
|
|
75
|
+
config: { pluginKey: "wardmote.llm-wiki", type: "wardmote_plugin" },
|
|
76
|
+
transport_config: { pluginKey: "wardmote.llm-wiki", type: "wardmote_plugin" },
|
|
77
|
+
});
|
|
78
|
+
expect(connection.get(restConnection)).toMatchObject({ config: { type: "rest_api" }, transport_config: {} });
|
|
79
|
+
const invocation = new Map(after.invocations.map((row) => [row.id, row]));
|
|
80
|
+
expect(invocation.get(invocations.self)).toMatchObject({ provider_type: "wardmote_self", application_key: null });
|
|
81
|
+
expect(invocation.get(invocations.plugin)).toMatchObject({
|
|
82
|
+
provider_type: "wardmote_plugin",
|
|
83
|
+
application_key: "wardmote_plugin:wardmote.llm-wiki",
|
|
84
|
+
});
|
|
85
|
+
expect(invocation.get(invocations.slack)).toMatchObject({ provider_type: "wardmote_slack_chat" });
|
|
86
|
+
expect(invocation.get(invocations.rest)).toMatchObject({ provider_type: "mcp_http", application_key: "rest:github" });
|
|
87
|
+
await sql `DELETE FROM "drizzle"."__drizzle_migrations" WHERE "hash" = ${hash}`;
|
|
88
|
+
await applyPendingMigrations(database.connectionString);
|
|
89
|
+
expect(await snapshot()).toEqual(after);
|
|
90
|
+
}, EMBEDDED_POSTGRES_TEST_TIMEOUT_MS);
|
|
91
|
+
});
|
|
92
|
+
//# sourceMappingURL=wardmote-tool-provider-types-migration.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wardmote-tool-provider-types-migration.test.js","sourceRoot":"","sources":["../src/wardmote-tool-provider-types-migration.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tickernelz/wardmote-db",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.1112.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"homepage": "https://github.com/tickernelz/wardmote",
|
|
6
6
|
"bugs": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"seed": "pnpm --filter @tickernelz/wardmote-server exec tsx scripts/seed.ts"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@tickernelz/wardmote-shared": "2026.
|
|
42
|
+
"@tickernelz/wardmote-shared": "2026.1112.0",
|
|
43
43
|
"drizzle-orm": "^0.45.2",
|
|
44
44
|
"embedded-postgres": "^18.1.0-beta.16",
|
|
45
45
|
"postgres": "^3.4.9"
|