@guyghost/swarm-dao-core 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/config.d.ts.map +1 -1
  2. package/dist/config.js +63 -11
  3. package/dist/config.js.map +1 -1
  4. package/dist/control/gates.d.ts.map +1 -1
  5. package/dist/control/gates.js +42 -2
  6. package/dist/control/gates.js.map +1 -1
  7. package/dist/delivery/artefacts.d.ts.map +1 -1
  8. package/dist/delivery/artefacts.js +4 -3
  9. package/dist/delivery/artefacts.js.map +1 -1
  10. package/dist/delivery/dependencies.d.ts +20 -0
  11. package/dist/delivery/dependencies.d.ts.map +1 -0
  12. package/dist/delivery/dependencies.js +55 -0
  13. package/dist/delivery/dependencies.js.map +1 -0
  14. package/dist/delivery/index.d.ts +1 -0
  15. package/dist/delivery/index.d.ts.map +1 -1
  16. package/dist/delivery/index.js +1 -0
  17. package/dist/delivery/index.js.map +1 -1
  18. package/dist/governance/voting.d.ts.map +1 -1
  19. package/dist/governance/voting.js +13 -4
  20. package/dist/governance/voting.js.map +1 -1
  21. package/dist/integrations/github.d.ts.map +1 -1
  22. package/dist/integrations/github.js +59 -39
  23. package/dist/integrations/github.js.map +1 -1
  24. package/dist/integrations/http.d.ts +18 -0
  25. package/dist/integrations/http.d.ts.map +1 -0
  26. package/dist/integrations/http.js +52 -0
  27. package/dist/integrations/http.js.map +1 -0
  28. package/dist/persistence.d.ts +12 -2
  29. package/dist/persistence.d.ts.map +1 -1
  30. package/dist/persistence.js +218 -67
  31. package/dist/persistence.js.map +1 -1
  32. package/dist/types/index.d.ts +3 -1
  33. package/dist/types/index.d.ts.map +1 -1
  34. package/dist/types/index.js.map +1 -1
  35. package/dist/utils/host.d.ts +1 -1
  36. package/dist/utils/host.d.ts.map +1 -1
  37. package/dist/utils/host.js +74 -5
  38. package/dist/utils/host.js.map +1 -1
  39. package/package.json +1 -1
@@ -10,6 +10,55 @@ const STATE_FILE = "state.json";
10
10
  const PROPOSALS_DIR = "proposals";
11
11
  const DECISIONS_DIR = "decisions";
12
12
  const CONFIG_FILE = "config.json";
13
+ function isRecord(value) {
14
+ return typeof value === "object" && value !== null && !Array.isArray(value);
15
+ }
16
+ function isPositiveInteger(value) {
17
+ return typeof value === "number" && Number.isInteger(value) && value > 0;
18
+ }
19
+ function getErrorMessage(error) {
20
+ return error instanceof Error ? error.message : String(error);
21
+ }
22
+ function hasErrorCode(error, code) {
23
+ return (typeof error === "object" &&
24
+ error !== null &&
25
+ "code" in error &&
26
+ typeof error.code === "string" &&
27
+ error.code === code);
28
+ }
29
+ function parseJsonText(text, context) {
30
+ try {
31
+ return JSON.parse(text);
32
+ }
33
+ catch (error) {
34
+ throw new Error(`Invalid JSON in ${context}: ${getErrorMessage(error)}`);
35
+ }
36
+ }
37
+ function formatJson(value) {
38
+ return `${JSON.stringify(value, null, 2)}\n`;
39
+ }
40
+ async function readJsonFile(filePath) {
41
+ const raw = await fs.readFile(filePath, "utf-8");
42
+ return parseJsonText(raw, filePath);
43
+ }
44
+ async function writeJsonFile(filePath, value) {
45
+ await fs.writeFile(filePath, formatJson(value), "utf-8");
46
+ }
47
+ function normalizeStorageSettings(value, daoRoot) {
48
+ const settings = isRecord(value) ? value : {};
49
+ const mode = settings.mode;
50
+ const githubSyncEnabled = settings.githubSyncEnabled;
51
+ const githubRepo = settings.githubRepo;
52
+ const next = {
53
+ mode: mode === "local" || mode === "github" || mode === "hybrid" ? mode : "local",
54
+ githubSyncEnabled: typeof githubSyncEnabled === "boolean" ? githubSyncEnabled : false,
55
+ daoRoot: typeof settings.daoRoot === "string" ? settings.daoRoot : daoRoot,
56
+ };
57
+ if (typeof githubRepo === "string") {
58
+ next.githubRepo = githubRepo;
59
+ }
60
+ return next;
61
+ }
13
62
  // ── Paths ────────────────────────────────────────────────────
14
63
  export function getDaoRoot(cwd) {
15
64
  return path.join(cwd, ".dao");
@@ -26,6 +75,22 @@ export function padId(id) {
26
75
  export function getProposalPath(daoRoot, id) {
27
76
  return path.join(getProposalsDir(daoRoot), `${padId(id)}.json`);
28
77
  }
78
+ function resolveSafeLegacyDirectory(cwd, directory) {
79
+ const trimmed = directory.trim();
80
+ if (!trimmed || trimmed === "." || trimmed === "..")
81
+ return null;
82
+ if (path.isAbsolute(trimmed))
83
+ return null;
84
+ if (trimmed.includes(path.sep) || trimmed.includes("/") || trimmed.includes("\\"))
85
+ return null;
86
+ const resolvedCwd = path.resolve(cwd);
87
+ const candidate = path.resolve(resolvedCwd, trimmed);
88
+ const relative = path.relative(resolvedCwd, candidate);
89
+ if (!relative || relative === ".." || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative)) {
90
+ return null;
91
+ }
92
+ return candidate;
93
+ }
29
94
  // ── Storage Init ─────────────────────────────────────────────
30
95
  export async function initStorage(cwd) {
31
96
  const daoRoot = getDaoRoot(cwd);
@@ -33,8 +98,7 @@ export async function initStorage(cwd) {
33
98
  return daoRoot;
34
99
  }
35
100
  // ── Legacy Migration ─────────────────────────────────────────
36
- export async function migrateFromLegacy(cwd) {
37
- const legacyRoot = path.join(cwd, ".opencode-dao");
101
+ export async function migrateFromLegacy(cwd, legacyDirectories = []) {
38
102
  const newRoot = getDaoRoot(cwd);
39
103
  try {
40
104
  await fs.access(newRoot);
@@ -43,29 +107,37 @@ export async function migrateFromLegacy(cwd) {
43
107
  catch {
44
108
  /* .dao doesn't exist */
45
109
  }
46
- try {
47
- await fs.access(legacyRoot);
110
+ let legacyRoot = null;
111
+ for (const directory of legacyDirectories) {
112
+ const candidate = resolveSafeLegacyDirectory(cwd, directory);
113
+ if (!candidate)
114
+ continue;
115
+ try {
116
+ await fs.access(candidate);
117
+ legacyRoot = candidate;
118
+ break;
119
+ }
120
+ catch {
121
+ /* candidate doesn't exist */
122
+ }
48
123
  }
49
- catch {
124
+ if (!legacyRoot) {
50
125
  return false;
51
126
  }
52
- console.log("🔄 Migrating DAO storage: .opencode-dao → .dao");
127
+ console.log("🔄 Migrating DAO storage: legacy directory → .dao");
53
128
  await fs.mkdir(newRoot, { recursive: true });
54
129
  const entries = await fs.readdir(legacyRoot, { withFileTypes: true });
55
- for (const entry of entries) {
130
+ await Promise.all(entries.map(async (entry) => {
56
131
  const srcPath = path.join(legacyRoot, entry.name);
57
132
  const destPath = path.join(newRoot, entry.name);
58
133
  if (entry.isDirectory()) {
59
134
  await fs.mkdir(destPath, { recursive: true });
60
135
  const subEntries = await fs.readdir(srcPath);
61
- for (const subEntry of subEntries) {
62
- await fs.copyFile(path.join(srcPath, subEntry), path.join(destPath, subEntry));
63
- }
64
- }
65
- else {
66
- await fs.copyFile(srcPath, destPath);
136
+ await Promise.all(subEntries.map((subEntry) => fs.copyFile(path.join(srcPath, subEntry), path.join(destPath, subEntry))));
137
+ return;
67
138
  }
68
- }
139
+ await fs.copyFile(srcPath, destPath);
140
+ }));
69
141
  const oldStatePath = path.join(newRoot, "dao-state.json");
70
142
  const newStatePath = path.join(newRoot, STATE_FILE);
71
143
  try {
@@ -80,19 +152,19 @@ export async function migrateFromLegacy(cwd) {
80
152
  try {
81
153
  const proposalsDir = getProposalsDir(newRoot);
82
154
  const files = await fs.readdir(proposalsDir);
83
- for (const file of files) {
155
+ await Promise.all(files.map(async (file) => {
84
156
  if (!file.endsWith(".json"))
85
- continue;
157
+ return;
86
158
  const match = file.match(/^(\d+)\.json$/) ?? null;
87
159
  if (!match)
88
- continue;
160
+ return;
89
161
  const id = parseInt(match[1] ?? "0", 10);
90
162
  const paddedName = `${padId(id)}.json`;
91
163
  if (file !== paddedName) {
92
164
  await fs.rename(path.join(proposalsDir, file), path.join(proposalsDir, paddedName));
93
165
  console.log(` ✓ Renamed ${file} → ${paddedName}`);
94
166
  }
95
- }
167
+ }));
96
168
  }
97
169
  catch {
98
170
  /* no proposals yet */
@@ -100,10 +172,10 @@ export async function migrateFromLegacy(cwd) {
100
172
  console.log(" ✓ Migration complete");
101
173
  try {
102
174
  await fs.rm(legacyRoot, { recursive: true, force: true });
103
- console.log(" ✓ Removed legacy .opencode-dao/");
175
+ console.log(" ✓ Removed legacy DAO directory");
104
176
  }
105
177
  catch (err) {
106
- console.warn(" ⚠ Could not remove .opencode-dao/:", err);
178
+ console.warn(" ⚠ Could not remove legacy DAO directory:", err);
107
179
  }
108
180
  return true;
109
181
  }
@@ -124,42 +196,72 @@ export function getOrCreateState(cwd) {
124
196
  return state;
125
197
  }
126
198
  // ── Load / Save ──────────────────────────────────────────────
127
- export async function loadState(cwd) {
128
- await migrateFromLegacy(cwd);
199
+ export async function loadState(cwd, options) {
200
+ await migrateFromLegacy(cwd, options?.legacyDirectories ?? []);
129
201
  const daoRoot = await initStorage(cwd);
130
202
  const statePath = path.join(daoRoot, STATE_FILE);
131
203
  let loaded = null;
132
204
  try {
133
- const data = await fs.readFile(statePath, "utf-8");
134
- loaded = JSON.parse(data);
205
+ loaded = await readJsonFile(statePath);
135
206
  }
136
207
  catch {
137
208
  return null;
138
209
  }
139
210
  if (!loaded)
140
211
  return null;
141
- // Ensure arrays exist (guard against corrupted/legacy state.json)
142
- if (!loaded.proposals)
212
+ // Ensure state shape exists (guard against corrupted/legacy state.json)
213
+ if (!Array.isArray(loaded.proposals))
143
214
  loaded.proposals = [];
144
- if (!loaded.agents)
215
+ if (!Array.isArray(loaded.agents))
145
216
  loaded.agents = [];
146
- if (!loaded.auditLog)
217
+ if (!Array.isArray(loaded.auditLog))
147
218
  loaded.auditLog = [];
219
+ if (!isRecord(loaded.controlResults))
220
+ loaded.controlResults = {};
221
+ if (!isRecord(loaded.deliveryPlans))
222
+ loaded.deliveryPlans = {};
223
+ if (!isRecord(loaded.artefacts))
224
+ loaded.artefacts = {};
225
+ if (!isRecord(loaded.outcomes))
226
+ loaded.outcomes = {};
227
+ if (!isRecord(loaded.snapshots))
228
+ loaded.snapshots = {};
229
+ if (!isRecord(loaded.verifications))
230
+ loaded.verifications = {};
231
+ if (!loaded.daoRoot)
232
+ loaded.daoRoot = daoRoot;
233
+ if (!isPositiveInteger(loaded.nextProposalId))
234
+ loaded.nextProposalId = 1;
235
+ if (!isPositiveInteger(loaded.nextAuditId))
236
+ loaded.nextAuditId = 1;
237
+ if (!loaded.config)
238
+ loaded.config = createInitialState(daoRoot).config;
148
239
  // Reconcile with sidecars
149
240
  try {
241
+ const persistedProposals = loaded.proposals.filter((proposal) => isPositiveInteger(proposal?.id));
242
+ loaded.proposals = persistedProposals;
150
243
  const sidecars = await loadProposalsFromDisk(daoRoot);
151
244
  if (sidecars.length) {
152
245
  const byId = new Map();
153
- for (const p of loaded.proposals)
246
+ for (const p of persistedProposals)
154
247
  byId.set(p.id, p);
155
248
  for (const sc of sidecars)
156
249
  byId.set(sc.id, sc);
157
250
  loaded.proposals = Array.from(byId.values()).sort((a, b) => a.id - b.id);
158
251
  }
159
252
  }
160
- catch {
161
- /* ignore */
253
+ catch (error) {
254
+ console.warn(`⚠ Failed to reconcile proposal sidecars: ${getErrorMessage(error)}`);
162
255
  }
256
+ const highestProposalId = loaded.proposals.reduce((max, proposal) => Math.max(max, proposal.id), 0);
257
+ if (loaded.nextProposalId <= highestProposalId)
258
+ loaded.nextProposalId = highestProposalId + 1;
259
+ const highestAuditId = loaded.auditLog.reduce((max, entry) => {
260
+ const id = entry?.id;
261
+ return isPositiveInteger(id) ? Math.max(max, id) : max;
262
+ }, 0);
263
+ if (loaded.nextAuditId <= highestAuditId)
264
+ loaded.nextAuditId = highestAuditId + 1;
163
265
  state = loaded;
164
266
  return state;
165
267
  }
@@ -172,21 +274,20 @@ export async function loadProposalsFromDisk(daoRoot) {
172
274
  catch {
173
275
  return [];
174
276
  }
175
- const out = [];
176
- for (const file of entries) {
177
- if (!file.endsWith(".json"))
178
- continue;
277
+ const proposals = await Promise.all(entries
278
+ .filter((file) => file.endsWith(".json"))
279
+ .map(async (file) => {
280
+ const filePath = path.join(dir, file);
179
281
  try {
180
- const raw = await fs.readFile(path.join(dir, file), "utf-8");
181
- const p = JSON.parse(raw);
182
- if (typeof p?.id === "number")
183
- out.push(p);
282
+ const proposal = await readJsonFile(filePath);
283
+ return isPositiveInteger(proposal?.id) ? proposal : null;
184
284
  }
185
- catch {
186
- /* skip malformed */
285
+ catch (error) {
286
+ console.warn(`⚠ Skipping malformed proposal sidecar ${filePath}: ${getErrorMessage(error)}`);
287
+ return null;
187
288
  }
188
- }
189
- return out;
289
+ }));
290
+ return proposals.filter((proposal) => proposal !== null);
190
291
  }
191
292
  export async function saveProposal(proposalId) {
192
293
  if (!state)
@@ -197,7 +298,7 @@ export async function saveProposal(proposalId) {
197
298
  const dir = getProposalsDir(state.daoRoot);
198
299
  await fs.mkdir(dir, { recursive: true });
199
300
  const filePath = getProposalPath(state.daoRoot, proposalId);
200
- await fs.writeFile(filePath, `${JSON.stringify(proposal, null, 2)}\n`, "utf-8");
301
+ await writeJsonFile(filePath, proposal);
201
302
  return filePath;
202
303
  }
203
304
  export async function saveState() {
@@ -210,33 +311,33 @@ export async function saveState() {
210
311
  const daoRoot = state.daoRoot;
211
312
  const statePath = path.join(daoRoot, STATE_FILE);
212
313
  await fs.mkdir(daoRoot, { recursive: true });
213
- await fs.writeFile(statePath, `${JSON.stringify(state, null, 2)}\n`, "utf-8");
314
+ await writeJsonFile(statePath, state);
214
315
  // Sidecars
215
316
  const dir = getProposalsDir(daoRoot);
216
- try {
217
- await fs.mkdir(dir, { recursive: true });
218
- await Promise.all(state.proposals.map((p) => fs.writeFile(getProposalPath(daoRoot, p.id), `${JSON.stringify(p, null, 2)}\n`, "utf-8").catch(() => { })));
219
- }
220
- catch {
221
- /* ignore */
222
- }
317
+ await fs.mkdir(dir, { recursive: true });
318
+ await Promise.all(state.proposals.map((proposal) => writeJsonFile(getProposalPath(daoRoot, proposal.id), proposal)));
223
319
  await saveDecisions();
224
320
  // Cleanup orphans
225
321
  try {
226
322
  const entries = await fs.readdir(dir);
227
323
  const currentIds = new Set(state.proposals.map((p) => `${padId(p.id)}.json`));
228
324
  const orphans = entries.filter((e) => e.endsWith(".json") && !currentIds.has(e));
229
- for (const orphan of orphans) {
325
+ await Promise.all(orphans.map(async (orphan) => {
326
+ const orphanPath = path.join(dir, orphan);
230
327
  try {
231
- await fs.unlink(path.join(dir, orphan));
328
+ await fs.unlink(orphanPath);
232
329
  }
233
- catch {
234
- /* ignore */
330
+ catch (error) {
331
+ if (hasErrorCode(error, "ENOENT"))
332
+ return;
333
+ console.warn(`⚠ Failed to remove orphan proposal sidecar ${orphanPath}: ${getErrorMessage(error)}`);
235
334
  }
236
- }
335
+ }));
237
336
  }
238
- catch {
239
- /* ENOENT */
337
+ catch (error) {
338
+ if (hasErrorCode(error, "ENOENT"))
339
+ return;
340
+ throw error;
240
341
  }
241
342
  }
242
343
  export async function saveDecisions() {
@@ -256,17 +357,18 @@ export async function saveDecisions() {
256
357
  resolvedAt: p.resolvedAt,
257
358
  }))
258
359
  .sort((a, b) => a.id - b.id);
259
- await fs.writeFile(path.join(decisionsDir, "index.json"), `${JSON.stringify(decisions, null, 2)}\n`, "utf-8");
260
- await Promise.all(decisions.map((d) => fs
261
- .writeFile(path.join(decisionsDir, `${padId(d.id)}.json`), `${JSON.stringify(d, null, 2)}\n`, "utf-8")
262
- .catch(() => { })));
360
+ await writeJsonFile(path.join(decisionsDir, "index.json"), decisions);
361
+ await Promise.all(decisions.map((decision) => writeJsonFile(path.join(decisionsDir, `${padId(decision.id)}.json`), decision)));
263
362
  }
264
363
  // ── Storage Settings ─────────────────────────────────────────
265
364
  export async function getStorageSettings(daoRoot) {
266
365
  const configPath = path.join(daoRoot, CONFIG_FILE);
267
366
  try {
268
- const raw = await fs.readFile(configPath, "utf-8");
269
- return JSON.parse(raw);
367
+ const parsed = await readJsonFile(configPath);
368
+ if (isRecord(parsed) && isRecord(parsed.storageSettings)) {
369
+ return normalizeStorageSettings(parsed.storageSettings, daoRoot);
370
+ }
371
+ return normalizeStorageSettings(parsed, daoRoot);
270
372
  }
271
373
  catch {
272
374
  return { mode: "local", githubSyncEnabled: false, daoRoot };
@@ -274,10 +376,23 @@ export async function getStorageSettings(daoRoot) {
274
376
  }
275
377
  export async function updateStorageSettings(daoRoot, updates) {
276
378
  const current = await getStorageSettings(daoRoot);
277
- const next = { ...current, ...updates };
379
+ const next = normalizeStorageSettings({ ...current, ...updates }, daoRoot);
278
380
  const configPath = path.join(daoRoot, CONFIG_FILE);
279
381
  await fs.mkdir(daoRoot, { recursive: true });
280
- await fs.writeFile(configPath, JSON.stringify(next, null, 2), "utf-8");
382
+ let rootConfig = {};
383
+ try {
384
+ const parsed = await readJsonFile(configPath);
385
+ if (isRecord(parsed)) {
386
+ rootConfig = parsed;
387
+ }
388
+ }
389
+ catch (error) {
390
+ if (!hasErrorCode(error, "ENOENT")) {
391
+ console.warn(`⚠ Ignoring invalid storage config at ${configPath}: ${getErrorMessage(error)}`);
392
+ }
393
+ }
394
+ rootConfig.storageSettings = next;
395
+ await writeJsonFile(configPath, rootConfig);
281
396
  return next;
282
397
  }
283
398
  // ── Agent CRUD ───────────────────────────────────────────────
@@ -320,6 +435,29 @@ export async function createProposal(title, type, description, proposedBy, conte
320
435
  await saveState();
321
436
  return proposal;
322
437
  }
438
+ export async function createProposalsBatch(entries) {
439
+ if (entries.length === 0)
440
+ return [];
441
+ const s = getState();
442
+ const proposals = entries.map((entry) => {
443
+ const proposal = {
444
+ id: s.nextProposalId++,
445
+ title: entry.title,
446
+ type: entry.type,
447
+ description: entry.description,
448
+ context: entry.context,
449
+ proposedBy: entry.proposedBy,
450
+ status: "open",
451
+ votes: [],
452
+ agentOutputs: [],
453
+ createdAt: new Date().toISOString(),
454
+ };
455
+ return proposal;
456
+ });
457
+ s.proposals.push(...proposals);
458
+ await saveState();
459
+ return proposals;
460
+ }
323
461
  export function getProposal(proposalId) {
324
462
  return getState().proposals.find((p) => p.id === proposalId);
325
463
  }
@@ -360,6 +498,19 @@ export async function storeAgentOutput(proposalId, output) {
360
498
  await saveState();
361
499
  return true;
362
500
  }
501
+ export async function storeDeliberationBatch(proposalId, votes, outputs) {
502
+ const s = getState();
503
+ const proposal = s.proposals.find((p) => p.id === proposalId);
504
+ if (!proposal)
505
+ return false;
506
+ for (const vote of votes) {
507
+ proposal.votes.push(vote);
508
+ recordVoteCast(vote.agentId, vote.position, vote.weight);
509
+ }
510
+ proposal.agentOutputs.push(...outputs);
511
+ await saveState();
512
+ return true;
513
+ }
363
514
  export async function storeSynthesis(proposalId, synthesis) {
364
515
  const s = getState();
365
516
  const proposal = s.proposals.find((p) => p.id === proposalId);
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../src/persistence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../src/persistence.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wDAAwD;AACxD,+DAA+D;AAE/D,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAmBpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,IAAI,KAAK,GAAoB,IAAI,CAAC;AAElC,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,MAAM,aAAa,GAAG,WAAW,CAAC;AAClC,MAAM,aAAa,GAAG,WAAW,CAAC;AAClC,MAAM,WAAW,GAAG,aAAa,CAAC;AAElC,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,IAAY;IAChD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ;QACrD,KAA0B,CAAC,IAAI,KAAK,IAAI,CAC1C,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAI,IAAY,EAAE,OAAe;IACrD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,YAAY,CAAI,QAAgB;IAC7C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,OAAO,aAAa,CAAI,GAAG,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,KAAc;IAC3D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc,EAAE,OAAe;IAC/D,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IACrD,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,MAAM,IAAI,GAAoB;QAC5B,IAAI,EAAE,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;QACjF,iBAAiB,EAAE,OAAO,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK;QACrF,OAAO,EAAE,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;KAC3E,CAAC;IACF,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gEAAgE;AAEhE,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,EAAU;IACzD,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,0BAA0B,CAAC,GAAW,EAAE,SAAiB;IAChE,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/F,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACvD,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxG,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,gEAAgE;AAEhE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW;IAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,gEAAgE;AAEhE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAW,EAAE,oBAA8B,EAAE;IACnF,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAEhC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IAED,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,0BAA0B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS;YAAE,SAAS;QACzB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3B,UAAU,GAAG,SAAS,CAAC;YACvB,MAAM;QACR,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;IACH,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IACjE,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,OAAO,CAAC,GAAG,CACf,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CACvG,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9B,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,kBAAkB;IACpB,CAAC;IAED,0CAA0C;IAC1C,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,OAAO;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC;YAClD,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;YACzC,MAAM,UAAU,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;YACvC,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACxB,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;gBACpF,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,MAAM,UAAU,EAAE,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gEAAgE;AAEhE,MAAM,UAAU,QAAQ;IACtB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAyB;IAChD,KAAK,GAAG,QAAQ,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gEAAgE;AAEhE,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,OAA0C;IACrF,MAAM,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAEjD,IAAI,MAAM,GAAoB,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,YAAY,CAAW,SAAS,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,wEAAwE;IACxE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;QAAE,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;IAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QAAE,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;IACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;QAAE,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;IAC1D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC;QAAE,MAAM,CAAC,cAAc,GAAG,EAAE,CAAC;IACjE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC;QAAE,MAAM,CAAC,aAAa,GAAG,EAAE,CAAC;IAC/D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAAE,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;IACvD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;QAAE,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAAE,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;IACvD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC;QAAE,MAAM,CAAC,aAAa,GAAG,EAAE,CAAC;IAC/D,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAC9C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC;QAAE,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC;IACzE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC;QAAE,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;IACnE,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAEvE,0BAA0B;IAC1B,IAAI,CAAC;QACH,MAAM,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAwB,EAAE,CACpF,iBAAiB,CAAE,QAA6B,EAAE,EAAE,CAAC,CACtD,CAAC;QACF,MAAM,CAAC,SAAS,GAAG,kBAAkB,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;YACzC,KAAK,MAAM,CAAC,IAAI,kBAAkB;gBAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACtD,KAAK,MAAM,EAAE,IAAI,QAAQ;gBAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/C,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,4CAA4C,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpG,IAAI,MAAM,CAAC,cAAc,IAAI,iBAAiB;QAAE,MAAM,CAAC,cAAc,GAAG,iBAAiB,GAAG,CAAC,CAAC;IAC9F,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC3D,MAAM,EAAE,GAAI,KAA0B,EAAE,EAAE,CAAC;QAC3C,OAAO,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACzD,CAAC,EAAE,CAAC,CAAC,CAAC;IACN,IAAI,MAAM,CAAC,WAAW,IAAI,cAAc;QAAE,MAAM,CAAC,WAAW,GAAG,cAAc,GAAG,CAAC,CAAC;IAElF,KAAK,GAAG,MAAM,CAAC;IACf,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAe;IACzD,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,OAAO;SACJ,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACxC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAW,QAAQ,CAAC,CAAC;YACxD,OAAO,iBAAiB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,yCAAyC,QAAQ,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7F,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CACL,CAAC;IACF,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAwB,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,UAAkB;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IAClE,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC5D,MAAM,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO;IAC3B,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAEjD,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAEtC,WAAW;IACX,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAErH,MAAM,aAAa,EAAE,CAAC;IAEtB,kBAAkB;IAClB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC;oBAAE,OAAO;gBAC1C,OAAO,CAAC,IAAI,CAAC,8CAA8C,UAAU,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtG,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO;QAC1C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO;IAChD,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC;IACnG,MAAM,SAAS,GAAG,QAAQ;SACvB,GAAG,CACF,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC;QACtB,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,UAAU,EAAE,CAAC,CAAC,UAAU;KACzB,CAAC,CACH;SACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAE/B,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,OAAO,CAAC,GAAG,CACf,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,CAC5G,CAAC;AACJ,CAAC;AAED,gEAAgE;AAEhE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAe;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAU,UAAU,CAAC,CAAC;QACvD,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;YACzD,OAAO,wBAAwB,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC9D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAe,EACf,OAAiC;IAEjC,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,IAAI,UAAU,GAA4B,EAAE,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAU,UAAU,CAAC,CAAC;QACvD,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,UAAU,GAAG,MAAM,CAAC;QACtB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,wCAAwC,UAAU,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;IACD,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC;IAClC,MAAM,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gEAAgE;AAEhE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,KAAe;IAC5C,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,MAAM,SAAS,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAe;IAC/C,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IAC1D,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,SAAS,EAAE,CAAC;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,QAAQ,EAAE,CAAC,MAAM,CAAC;AAC3B,CAAC;AAED,gEAAgE;AAEhE,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAa,EACb,IAAY,EACZ,WAAmB,EACnB,UAAkB,EAClB,OAAgB;IAEhB,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAa;QACzB,EAAE,EAAE,CAAC,CAAC,cAAc,EAAE;QACtB,KAAK;QACL,IAAI,EAAE,IAAwB;QAC9B,WAAW;QACX,OAAO;QACP,UAAU;QACV,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3B,MAAM,SAAS,EAAE,CAAC;IAClB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAME;IAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACtC,MAAM,QAAQ,GAAa;YACzB,EAAE,EAAE,CAAC,CAAC,cAAc,EAAE;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,IAAwB;YACpC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,EAAE;YACT,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IAC/B,MAAM,SAAS,EAAE,CAAC;IAClB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAAkB;IAC5C,OAAO,QAAQ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,QAAQ,EAAE,CAAC,SAAS,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,UAAkB,EAAE,MAAsB;IACnF,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IAC9D,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1E,QAAQ,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACjD,CAAC;IACD,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1B,sBAAsB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,SAAS,EAAE,CAAC;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,UAAkB,EAAE,IAAU;IAC1D,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IAC9D,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,SAAS,EAAE,CAAC;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAkB,EAAE,MAAmB;IAC5E,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IAC9D,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,SAAS,EAAE,CAAC;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAkB,EAClB,KAAa,EACb,OAAsB;IAEtB,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IAC9D,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IACD,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IACvC,MAAM,SAAS,EAAE,CAAC;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAAkB,EAAE,SAAiB;IACxE,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IAC9D,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,MAAM,SAAS,EAAE,CAAC;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,UAAkB,EAAE,KAAiC;IAC7F,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IAC9D,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;IAChC,MAAM,SAAS,EAAE,CAAC;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,UAAkB,EAAE,MAA0B;IACrF,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;IACtC,MAAM,SAAS,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,OAAO,QAAQ,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAkB,EAAE,IAAkB;IAC5E,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IACnC,MAAM,SAAS,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,OAAO,QAAQ,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC;AAED,gEAAgE;AAEhE,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,UAAkB,EAClB,KAA0B,EAC1B,MAAc,EACd,KAAa,EACb,OAAe;IAEf,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QACd,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE;QACnB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,UAAU;QACV,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;KACR,CAAC,CAAC;IACH,MAAM,SAAS,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAAkB;IAC5C,OAAO,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,QAAQ,EAAE,CAAC,QAAQ,CAAC;AAC7B,CAAC;AAED,gEAAgE;AAEhE,MAAM,UAAU,UAAU,CAAC,UAAkB;IAC3C,OAAO,QAAQ,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAAkB;IAClD,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACxC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAAoB;QAC/B,UAAU;QACV,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,CAAC;QACf,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;IACjC,MAAM,SAAS,EAAE,CAAC;IAClB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,UAAkB,EAAE,MAAqC;IACvF,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACzE,OAAO,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7C,MAAM,SAAS,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,UAAkB,EAAE,MAAqC;IACvF,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7C,MAAM,SAAS,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,UAAkB;IACnD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;IAC5B,OAAO,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7C,MAAM,SAAS,EAAE,CAAC;AACpB,CAAC;AAED,gEAAgE;AAEhE,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAAkB,EAAE,QAA2B;IACnF,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;IACnC,MAAM,SAAS,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAAkB;IAC5C,OAAO,QAAQ,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC1C,CAAC;AAED,gEAAgE;AAEhE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAkB,EAAE,YAAmC;IAC7F,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;IAC3C,MAAM,SAAS,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,OAAO,QAAQ,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC;AAED,gEAAgE;AAEhE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAAkB,EAAE,SAAuB;IAC9E,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IACpC,MAAM,SAAS,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,UAAkB;IAC7C,OAAO,QAAQ,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC1C,CAAC"}
@@ -169,6 +169,7 @@ export interface Proposal {
169
169
  amendmentOrigin?: AmendmentOrigin;
170
170
  amendmentState?: AmendmentState;
171
171
  preAmendmentSnapshot?: AmendmentSnapshot;
172
+ dependsOn?: number[];
172
173
  dryRunAt?: string;
173
174
  dryRunCanProceed?: boolean;
174
175
  createdAt: string;
@@ -602,6 +603,7 @@ export interface StorageSettings {
602
603
  mode: "local" | "github" | "hybrid";
603
604
  githubSyncEnabled: boolean;
604
605
  daoRoot: string;
606
+ githubRepo?: string;
605
607
  }
606
608
  /**
607
609
  * Interface that every host adapter must implement.
@@ -609,7 +611,7 @@ export interface StorageSettings {
609
611
  * with the outside world (spawn agents, read files, etc.)
610
612
  */
611
613
  export interface HostAdapter {
612
- /** Unique identifier for this host (e.g. "pi", "opencode") */
614
+ /** Unique identifier for this host */
613
615
  readonly hostId: string;
614
616
  /** Spawn a single agent and return its output */
615
617
  spawnAgent(params: {