@cello-protocol/daemon 0.0.209 → 0.0.211

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.
@@ -22,6 +22,7 @@ import { RandomizedPollScheduler } from "../manifest-poll-scheduler.js";
22
22
  // race" from "broken" — connectOrStart relies on exactly that distinction, so the constant is shared
23
23
  // rather than written down twice.
24
24
  import { DaemonAlreadyRunningError, EXIT_ALREADY_RUNNING } from "../singleton-lock.js";
25
+ import { createCollapsingLogger } from "../log-collapse.js";
25
26
  import { extractErrorMessage } from "../error-message.js";
26
27
  const MAX_CONNECTIONS = 16;
27
28
  // DOD-REGISTRY-1: build-time-pinned registry signer pubkey. The daemon polls GET /registry
@@ -31,7 +32,7 @@ const REGISTRY_SIGNER_PUBKEY = "d4f9a531205a3aca23dede0ad5f4fb6cd42260c8bbae5f33
31
32
  const REGISTRY_POLL_MIN_MS = 5 * 60_000; // 5 minutes
32
33
  const REGISTRY_POLL_MAX_MS = 15 * 60_000; // 15 minutes
33
34
  // Composition root: stdout JSON logger
34
- const logger = {
35
+ const stdoutLogger = {
35
36
  debug(event, context) {
36
37
  const line = JSON.stringify({ level: "debug", event, ...context, ts: new Date().toISOString() });
37
38
  process.stdout.write(line + "\n");
@@ -49,6 +50,15 @@ const logger = {
49
50
  process.stdout.write(line + "\n");
50
51
  },
51
52
  };
53
+ /**
54
+ * DOD-M15-LOGBOUND-1: every line the daemon writes goes through the repeat collapser.
55
+ *
56
+ * It is wrapped at the composition root rather than at call sites, because a discipline every
57
+ * call site has to remember is not a property. The measured cost of not having it was 168 MB of
58
+ * one sentence, and eleven hours in which the loop producing it was invisible inside its own
59
+ * output.
60
+ */
61
+ const logger = createCollapsingLogger(stdoutLogger);
52
62
  const celloDir = process.env.CELLO_DIR || join(homedir(), ".cello");
53
63
  const socketPath = join(celloDir, "daemon.sock");
54
64
  const lockFilePath = join(celloDir, "daemon.lock");
@@ -1 +1 @@
1
- {"version":3,"file":"cello-daemon.js","sourceRoot":"","sources":["../../src/bin/cello-daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cello-daemon.js","sourceRoot":"","sources":["../../src/bin/cello-daemon.ts"],"names":[],"mappings":"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"}
@@ -16,8 +16,8 @@
16
16
  * forever, and a daemon that trusted it would never start again).
17
17
  */
18
18
  import { spawn } from "node:child_process";
19
- import { openSync } from "node:fs";
20
19
  import { mkdir, readFile } from "node:fs/promises";
20
+ import { openLogHandle } from "./log-rotate.js";
21
21
  import { join } from "node:path";
22
22
  import { readLock, removeLock } from "./lock-file.js";
23
23
  import { probeSingletonLock, SINGLETON_LOCK_FILENAME, EXIT_ALREADY_RUNNING } from "./singleton-lock.js";
@@ -111,7 +111,13 @@ async function spawnDaemon(celloDir, daemonBin, lockFilePath, logger) {
111
111
  // then hits a broken pipe and, with no stdout 'error' handler, EPIPE-crashes it. The
112
112
  // daemon would "start" and die a second later → ECONNREFUSED on the socket. Writing to
113
113
  // a file also gives operators a durable ~/.cello/daemon.log to debug from.
114
- const out = openSync(logPath, "a");
114
+ //
115
+ // DOD-M15-LOGBOUND-1: and it is rotated HERE, immediately before the handle is taken, because
116
+ // this is the only moment nothing holds it. The daemon writes to the descriptor below, not to
117
+ // the path, so once the child has it a rename moves the name and nothing else. `openLogHandle`
118
+ // keeps the rotate and the open in one call for that reason — splitting them is how the order
119
+ // gets reversed later by someone who cannot see why it mattered.
120
+ const out = openLogHandle(logPath);
115
121
  const child = spawn(process.execPath, [daemonBin], {
116
122
  detached: true,
117
123
  stdio: ["ignore", out, out],
@@ -1 +1 @@
1
- {"version":3,"file":"connect-or-start.js","sourceRoot":"","sources":["../src/connect-or-start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect-or-start.js","sourceRoot":"","sources":["../src/connect-or-start.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import type { Logger } from "./types.js";
2
+ /**
3
+ * DOD-M15-LOGBOUND-1 part A — write a repeating log line ONCE, then count it.
4
+ *
5
+ * The file that produced this order was 180 MB and 469,065 lines. 168 MB of it — 95% — was a
6
+ * single `session.key.announce.failed` line repeated 413,590 times, byte-identical apart from its
7
+ * timestamp, from a retry that never gave up.
8
+ *
9
+ * **The disk was the smaller half.** That loop hid behind its own output for eleven hours. A file
10
+ * that is 95% one sentence is not a diagnostic surface; it is a haystack the daemon builds around
11
+ * its own needle, faster than anyone can read it.
12
+ *
13
+ * **This is the rule `045-REFUSALSTORM` applies to the operator's inbox, one layer down.** Same
14
+ * idea in two places, not two mechanisms.
15
+ *
16
+ * ⚠️ **This makes a storm cheap. It does not make a storm correct.** The loops themselves are
17
+ * fixed by `045-REFUSALSTORM` and `DOD-M15-KEYANNOUNCE-LOOP-1`; this unit must not be cited as
18
+ * covering either.
19
+ *
20
+ * ## The gate is a RATE, not a count — and the first build got this wrong
21
+ *
22
+ * The obvious design suppresses everything after the first occurrence and re-reports at the 10th,
23
+ * 100th, 1,000th. It was built that way, and review found two defects in it that matter more than
24
+ * the bytes it saved:
25
+ *
26
+ * 1. **A bounded retry that failed three times printed one line.** Three is not a power of ten, so
27
+ * attempts two and three were dropped and nothing anywhere ever said they happened. An operator
28
+ * whose standing receiver cannot bind then reads one `session.node.create.failed` followed by
29
+ * `session.standing_receiver.dead`, and cannot tell a retry that ran from a retry that never
30
+ * fired — which is the first thing they would go and check.
31
+ * 2. **A chronic failure went permanently silent.** A run never expired, so something failing once
32
+ * an hour reached its 10th occurrence on day one and was next written on day four. The daemon
33
+ * stopped reporting an ongoing failure precisely because it had been failing for a long time.
34
+ *
35
+ * So nothing is suppressed until a key is genuinely FLOODING: more than {@link STORM_BURST}
36
+ * occurrences inside {@link STORM_WINDOW_MS}. Below that rate every line is written exactly as it
37
+ * was before this unit existed. The measured storm ran at 4–17 lines/second and trips the gate on
38
+ * its 21st line; an ordinary two-to-nine repeat never trips it at all, and neither does a slow
39
+ * chronic failure — which is how both defects above stay fixed rather than traded against each
40
+ * other.
41
+ */
42
+ /** Occurrences of one key inside one window that mean "this is a flood, not a repeat". */
43
+ export declare const STORM_BURST = 20;
44
+ /** The window the burst is measured over. Also the idle period that ENDS a storm. */
45
+ export declare const STORM_WINDOW_MS = 10000;
46
+ /**
47
+ * Bound on the table. Without one, the thing that removes an unbounded log would itself be an
48
+ * unbounded map — the same defect one layer further in.
49
+ *
50
+ * Eviction is least-recently-USED, and that is load-bearing rather than tidy. Plenty of events
51
+ * carry a value unique to the occurrence — a fresh root hash, a content hash, a peer id — so in
52
+ * ordinary operation the table is mostly keys that will never be seen again. Under
53
+ * insertion-order eviction the one key the table exists to hold, the one being hit thousands of
54
+ * times a second, is evicted on the same schedule as keys that are read once; the count resets and
55
+ * the single number that made the storm diagnosable is destroyed. Under LRU a never-repeating key
56
+ * is always the oldest and is always the first to go.
57
+ */
58
+ export declare const LOG_COLLAPSE_MAX_KEYS = 2048;
59
+ /**
60
+ * Wrap a logger so a FLOODING line is written once and then counted.
61
+ *
62
+ * Wrapping the composition root covers every call site at once, which is what makes this a
63
+ * property of the daemon's logging rather than a discipline each call site has to remember.
64
+ */
65
+ export declare function createCollapsingLogger(sink: Logger, now?: () => number): Logger;
66
+ //# sourceMappingURL=log-collapse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-collapse.d.ts","sourceRoot":"","sources":["../src/log-collapse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,0FAA0F;AAC1F,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B,qFAAqF;AACrF,eAAO,MAAM,eAAe,QAAS,CAAC;AAEtC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,OAAO,CAAC;AA0E1C;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,MAAiB,GAAG,MAAM,CAyIzF"}
@@ -0,0 +1,244 @@
1
+ /**
2
+ * DOD-M15-LOGBOUND-1 part A — write a repeating log line ONCE, then count it.
3
+ *
4
+ * The file that produced this order was 180 MB and 469,065 lines. 168 MB of it — 95% — was a
5
+ * single `session.key.announce.failed` line repeated 413,590 times, byte-identical apart from its
6
+ * timestamp, from a retry that never gave up.
7
+ *
8
+ * **The disk was the smaller half.** That loop hid behind its own output for eleven hours. A file
9
+ * that is 95% one sentence is not a diagnostic surface; it is a haystack the daemon builds around
10
+ * its own needle, faster than anyone can read it.
11
+ *
12
+ * **This is the rule `045-REFUSALSTORM` applies to the operator's inbox, one layer down.** Same
13
+ * idea in two places, not two mechanisms.
14
+ *
15
+ * ⚠️ **This makes a storm cheap. It does not make a storm correct.** The loops themselves are
16
+ * fixed by `045-REFUSALSTORM` and `DOD-M15-KEYANNOUNCE-LOOP-1`; this unit must not be cited as
17
+ * covering either.
18
+ *
19
+ * ## The gate is a RATE, not a count — and the first build got this wrong
20
+ *
21
+ * The obvious design suppresses everything after the first occurrence and re-reports at the 10th,
22
+ * 100th, 1,000th. It was built that way, and review found two defects in it that matter more than
23
+ * the bytes it saved:
24
+ *
25
+ * 1. **A bounded retry that failed three times printed one line.** Three is not a power of ten, so
26
+ * attempts two and three were dropped and nothing anywhere ever said they happened. An operator
27
+ * whose standing receiver cannot bind then reads one `session.node.create.failed` followed by
28
+ * `session.standing_receiver.dead`, and cannot tell a retry that ran from a retry that never
29
+ * fired — which is the first thing they would go and check.
30
+ * 2. **A chronic failure went permanently silent.** A run never expired, so something failing once
31
+ * an hour reached its 10th occurrence on day one and was next written on day four. The daemon
32
+ * stopped reporting an ongoing failure precisely because it had been failing for a long time.
33
+ *
34
+ * So nothing is suppressed until a key is genuinely FLOODING: more than {@link STORM_BURST}
35
+ * occurrences inside {@link STORM_WINDOW_MS}. Below that rate every line is written exactly as it
36
+ * was before this unit existed. The measured storm ran at 4–17 lines/second and trips the gate on
37
+ * its 21st line; an ordinary two-to-nine repeat never trips it at all, and neither does a slow
38
+ * chronic failure — which is how both defects above stay fixed rather than traded against each
39
+ * other.
40
+ */
41
+ /** Occurrences of one key inside one window that mean "this is a flood, not a repeat". */
42
+ export const STORM_BURST = 20;
43
+ /** The window the burst is measured over. Also the idle period that ENDS a storm. */
44
+ export const STORM_WINDOW_MS = 10_000;
45
+ /**
46
+ * Bound on the table. Without one, the thing that removes an unbounded log would itself be an
47
+ * unbounded map — the same defect one layer further in.
48
+ *
49
+ * Eviction is least-recently-USED, and that is load-bearing rather than tidy. Plenty of events
50
+ * carry a value unique to the occurrence — a fresh root hash, a content hash, a peer id — so in
51
+ * ordinary operation the table is mostly keys that will never be seen again. Under
52
+ * insertion-order eviction the one key the table exists to hold, the one being hit thousands of
53
+ * times a second, is evicted on the same schedule as keys that are read once; the count resets and
54
+ * the single number that made the storm diagnosable is destroyed. Under LRU a never-repeating key
55
+ * is always the oldest and is always the first to go.
56
+ */
57
+ export const LOG_COLLAPSE_MAX_KEYS = 2048;
58
+ /** Separator for key parts. A control character cannot appear in an event name or a field value. */
59
+ const SEP = String.fromCharCode(31);
60
+ /**
61
+ * The collapse key.
62
+ *
63
+ * ⚠️ **IT MUST NOT BE LOOSER THAN event + session + reason**, and it is exactly that. Keying on the
64
+ * event name alone would merge a hundred sessions failing once each into one line reading "x100" —
65
+ * strictly worse than the noise this removes, because a fan-out is the shape you most need to see
66
+ * and it would be reported as a repeat. The level is in the key too: the same event at `warn` and
67
+ * at `error` is two facts.
68
+ *
69
+ * **And it is deliberately NOT the whole payload**, which is the second thing the first build got
70
+ * wrong. Keying on every field looked tighter and therefore safer, and it is neither:
71
+ *
72
+ * - `session.key.announce.failed` — the very event this unit was written for — carries an `attempt`
73
+ * counter. Every attempt is a different payload, so a full-payload key collapses NOTHING on the
74
+ * one path that produced 168 MB. The historical storm only collapsed because the pre-fix bug
75
+ * pinned `attempt` at 1; the fix that made the retry chain correct is what would have defeated it.
76
+ * - A loop minting a fresh key per iteration also churns the whole table at the rate it runs,
77
+ * evicting every other run in it.
78
+ *
79
+ * The cost of the looser key is paid elsewhere rather than ignored: because suppression is gated on
80
+ * a RATE, a payload field that changes between occurrences is written in full at any ordinary rate,
81
+ * and is only folded once the key is genuinely flooding — at which point a count and a rate are
82
+ * more use than ten thousand individual values. Milestones republish the most recent payload, so
83
+ * the newest values stay on the record.
84
+ *
85
+ * Returns `null` when the key cannot be built from what the call site passed. **Such a line does
86
+ * not collapse at all** — losing the saving is correct where losing the distinction is not.
87
+ */
88
+ function collapseKey(level, event, ctx) {
89
+ const sessionId = ctx["sessionId"];
90
+ const reason = ctx["reason"];
91
+ if (typeof sessionId !== "string" && typeof reason !== "string")
92
+ return null;
93
+ return [level, event, String(sessionId ?? ""), String(reason ?? "")].join(SEP);
94
+ }
95
+ /** First occurrence, then the 10th, 100th, 1,000th — a power of ten. */
96
+ function isMilestone(count) {
97
+ if (count === 1)
98
+ return true;
99
+ let n = count;
100
+ while (n % 10 === 0)
101
+ n /= 10;
102
+ return n === 1;
103
+ }
104
+ /**
105
+ * Wrap a logger so a FLOODING line is written once and then counted.
106
+ *
107
+ * Wrapping the composition root covers every call site at once, which is what makes this a
108
+ * property of the daemon's logging rather than a discipline each call site has to remember.
109
+ */
110
+ export function createCollapsingLogger(sink, now = Date.now) {
111
+ const runs = new Map();
112
+ /**
113
+ * Report a fold that has ended: how many lines it swallowed, and over how long.
114
+ *
115
+ * ⚠️ **THE WINDOW IS MEASURED TO THE LAST OCCURRENCE, NOT TO NOW**, and getting that wrong made
116
+ * this line state the opposite of what happened. A flood of 479 lines over 25 seconds — 19 a
117
+ * second — was reported as `repeatWindowMs: 21623950`, six hours, because the idle gap that
118
+ * proved the flood was over had already been folded into the elapsed time. An operator dividing
119
+ * those two numbers reads 1.3 an hour: a trickle, when it was the storm.
120
+ */
121
+ function closeRun(run) {
122
+ sink[run.level](run.event, {
123
+ ...run.lastCtx,
124
+ repeatedCount: run.suppressedCount,
125
+ repeatWindowMs: Math.max(0, run.lastAtMs - run.suppressStartMs),
126
+ repeatEnded: true,
127
+ });
128
+ run.suppressing = false;
129
+ run.suppressedCount = 0;
130
+ }
131
+ /**
132
+ * One amortised look at the oldest run per line written.
133
+ *
134
+ * Without it a fold that simply STOPS is never reported: the closing line is emitted by the
135
+ * key's own next occurrence, and a storm whose cause is fixed — or whose daemon is shut down —
136
+ * has no next occurrence. The measured 413,590-line storm would have ended on
137
+ * `repeatedCount: 100000`, understating itself fourfold, with nothing saying it had finished.
138
+ */
139
+ function sweepOldest(at, currentKey) {
140
+ const oldest = runs.entries().next();
141
+ if (oldest.done)
142
+ return;
143
+ const [key, run] = oldest.value;
144
+ if (key === currentKey)
145
+ return;
146
+ if (at - run.lastAtMs < STORM_WINDOW_MS)
147
+ return;
148
+ if (run.suppressing)
149
+ closeRun(run);
150
+ runs.delete(key);
151
+ }
152
+ function emit(level, event, ctx) {
153
+ const key = collapseKey(level, event, ctx);
154
+ if (key === null) {
155
+ sink[level](event, ctx);
156
+ return;
157
+ }
158
+ const at = now();
159
+ sweepOldest(at, key);
160
+ const existing = runs.get(key);
161
+ if (existing === undefined) {
162
+ if (runs.size >= LOG_COLLAPSE_MAX_KEYS) {
163
+ const oldest = runs.entries().next();
164
+ if (!oldest.done) {
165
+ // Evicting a run mid-fold would take its total with it and restart the next occurrence
166
+ // from one. Over-reporting is the safe direction; losing the count is not.
167
+ if (oldest.value[1].suppressing)
168
+ closeRun(oldest.value[1]);
169
+ runs.delete(oldest.value[0]);
170
+ }
171
+ }
172
+ runs.set(key, {
173
+ level, event, windowStartMs: at, lastAtMs: at, windowCount: 1,
174
+ suppressing: false, suppressStartMs: 0, suppressedCount: 0, lastCtx: ctx,
175
+ });
176
+ sink[level](event, ctx);
177
+ return;
178
+ }
179
+ // Least-recently-USED: re-inserting moves this key to the young end of the eviction order.
180
+ runs.delete(key);
181
+ runs.set(key, existing);
182
+ /**
183
+ * A gap longer than a window means the flood has stopped — measured from the PREVIOUS
184
+ * occurrence, never from the window's own tally. Reading the tally was the first version of
185
+ * this and it could never end a storm: during one, the count carried over from the last
186
+ * window is high by definition, so the "has it died down" test was never true.
187
+ */
188
+ const idle = at - existing.lastAtMs >= STORM_WINDOW_MS;
189
+ if (idle) {
190
+ if (existing.suppressing)
191
+ closeRun(existing);
192
+ existing.windowStartMs = at;
193
+ existing.windowCount = 0;
194
+ }
195
+ else if (at - existing.windowStartMs >= STORM_WINDOW_MS) {
196
+ /**
197
+ * ⚠️ A FULL WINDOW PASSED WITH TRAFFIC — so re-test the RATE, do not just roll the window.
198
+ * Without this, `suppressing` latches: the only exit is a ten-second silence, so a retry
199
+ * that starts fast and backs off to anything under one line per ten seconds stays folded
200
+ * forever. Measured on the built module: 30 lines in 3 seconds trips the gate, and the next
201
+ * 1,200 occurrences spread over three hours produce three lines. That is the chronic-failure
202
+ * silence this redesign was written to remove, re-entered through a different door.
203
+ */
204
+ if (existing.suppressing && existing.windowCount <= STORM_BURST)
205
+ closeRun(existing);
206
+ existing.windowStartMs = at;
207
+ existing.windowCount = 0;
208
+ }
209
+ existing.lastAtMs = at;
210
+ existing.windowCount += 1;
211
+ if (existing.suppressing) {
212
+ existing.lastCtx = ctx;
213
+ existing.suppressedCount += 1;
214
+ // The 1st suppressed occurrence is not a milestone worth printing — the line that tripped
215
+ // the gate, immediately above it, already said the fold had started.
216
+ if (existing.suppressedCount === 1 || !isMilestone(existing.suppressedCount))
217
+ return;
218
+ sink[level](event, {
219
+ ...ctx,
220
+ repeatedCount: existing.suppressedCount,
221
+ repeatWindowMs: Math.max(0, at - existing.suppressStartMs),
222
+ });
223
+ return;
224
+ }
225
+ if (existing.windowCount > STORM_BURST) {
226
+ // The gate trips. This line is still written in full, and says that the ones behind it
227
+ // will not be — an operator should never have to infer that lines are being dropped.
228
+ existing.suppressing = true;
229
+ existing.suppressStartMs = at;
230
+ existing.suppressedCount = 0;
231
+ existing.lastCtx = ctx;
232
+ sink[level](event, { ...ctx, repeatsCollapsing: true, repeatRatePerWindow: existing.windowCount });
233
+ return;
234
+ }
235
+ sink[level](event, ctx);
236
+ }
237
+ return {
238
+ debug: (event, ctx) => { emit("debug", event, ctx); },
239
+ info: (event, ctx) => { emit("info", event, ctx); },
240
+ warn: (event, ctx) => { emit("warn", event, ctx); },
241
+ error: (event, ctx) => { emit("error", event, ctx); },
242
+ };
243
+ }
244
+ //# sourceMappingURL=log-collapse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-collapse.js","sourceRoot":"","sources":["../src/log-collapse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * DOD-M15-LOGBOUND-1 part B — bound `daemon.log` by rotating it at SPAWN.
3
+ *
4
+ * **The daemon does not own its log file, and that constraint decides the whole design.**
5
+ * `spawnDaemon` does `openSync(logPath, "a")` and hands that descriptor to the child as stdout
6
+ * and stderr. The daemon therefore writes to a file *handle*, not to a path: renaming the file
7
+ * underneath it moves nothing, because the handle follows the inode and the daemon carries on
8
+ * filling the renamed file.
9
+ *
10
+ * So the spawner is the only party that can rotate cleanly, and spawn is the only moment at
11
+ * which nothing holds the handle. That is why this is here and not in the daemon, and it is why
12
+ * {@link openLogHandle} does both steps in one function — the rotate-then-open ORDER is the
13
+ * property, and a property split across two call sites is a property waiting to be reversed.
14
+ *
15
+ * **⚠️ WHAT THIS DOES NOT BOUND, and it is the machines that need it most.** Rotation fires only
16
+ * on the `connectOrStart` path, which is how an operator's CLI starts the daemon. The demo box and
17
+ * the Hermes box start it under systemd, running `dist/bin/cello-daemon.js` directly — that path
18
+ * never reaches here, so **those two long-lived daemons are not bounded by this at all**. They are
19
+ * also the ones that run for weeks without restarting, which is the case
20
+ * `052-LOGCEILING` covers (suggested post-launch, not yet ruled). Stated here rather than left to
21
+ * be discovered, because "rotation shipped" would otherwise read as a bound that those machines have.
22
+ */
23
+ /**
24
+ * Cap for the live file: 64 MB. With one previous generation kept, the ceiling across restarts
25
+ * is 128 MB.
26
+ *
27
+ * A starting point rather than a finding. For scale: the measured file was 180 MB, of which 168 MB
28
+ * was one repeated line that part A of this unit now collapses, and the ordinary remainder grew at
29
+ * roughly 3 MB/day under heavy development.
30
+ */
31
+ export declare const LOG_ROTATE_CAP_BYTES: number;
32
+ /** What a rotation attempt did, so the caller can put it on the record either way. */
33
+ export type RotateOutcome = {
34
+ rotated: true;
35
+ bytes: number;
36
+ rotatedTo: string;
37
+ } | {
38
+ rotated: false;
39
+ reason: "under_cap" | "absent" | "raced" | "failed";
40
+ error?: string;
41
+ };
42
+ /**
43
+ * Rename `logPath` to `logPath.1` if it is over `capBytes`, replacing any older `.1`.
44
+ *
45
+ * **Never throws**, and that is a contract rather than defensiveness: a daemon that refuses to
46
+ * start because it could not tidy its log would be a strictly worse outcome than an oversized log.
47
+ * It reports what happened instead of being silent about it — see {@link openLogHandle}, which is
48
+ * where the reporting lands.
49
+ *
50
+ * **It never truncates.** A truncation of the live file either races the writer or throws away
51
+ * the tail, and the tail is the only part anyone reads.
52
+ */
53
+ export declare function rotateLogIfOversized(logPath: string, capBytes?: number): RotateOutcome;
54
+ /**
55
+ * Rotate if needed, THEN open the log for append and return the descriptor.
56
+ *
57
+ * The ordering is the point. Open first and the rename moves only the name, leaving the daemon
58
+ * writing into the renamed inode — the rotation would appear to work and bound nothing.
59
+ *
60
+ * **The outcome is written as the first line of the fresh file**, because the alternative is a log
61
+ * that starts mid-story. Someone sent a 4 MB `daemon.log` to chase a failure that began before the
62
+ * restart has no way to know that `daemon.log.1` exists unless the file says so. And a rotation
63
+ * that FAILED has to say so loudest of all: it means the bound this unit ships does not exist on
64
+ * this machine, and nothing else would ever mention it.
65
+ */
66
+ export declare function openLogHandle(logPath: string, capBytes?: number): number;
67
+ //# sourceMappingURL=log-rotate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-rotate.d.ts","sourceRoot":"","sources":["../src/log-rotate.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,QAAmB,CAAC;AAerD,sFAAsF;AACtF,MAAM,MAAM,aAAa,GACrB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5F;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAA6B,GAAG,aAAa,CAkC5G;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAA6B,GAAG,MAAM,CAiB9F"}
@@ -0,0 +1,134 @@
1
+ import { openSync, renameSync, statSync, writeSync } from "node:fs";
2
+ import { extractErrorMessage } from "./error-message.js";
3
+ /**
4
+ * DOD-M15-LOGBOUND-1 part B — bound `daemon.log` by rotating it at SPAWN.
5
+ *
6
+ * **The daemon does not own its log file, and that constraint decides the whole design.**
7
+ * `spawnDaemon` does `openSync(logPath, "a")` and hands that descriptor to the child as stdout
8
+ * and stderr. The daemon therefore writes to a file *handle*, not to a path: renaming the file
9
+ * underneath it moves nothing, because the handle follows the inode and the daemon carries on
10
+ * filling the renamed file.
11
+ *
12
+ * So the spawner is the only party that can rotate cleanly, and spawn is the only moment at
13
+ * which nothing holds the handle. That is why this is here and not in the daemon, and it is why
14
+ * {@link openLogHandle} does both steps in one function — the rotate-then-open ORDER is the
15
+ * property, and a property split across two call sites is a property waiting to be reversed.
16
+ *
17
+ * **⚠️ WHAT THIS DOES NOT BOUND, and it is the machines that need it most.** Rotation fires only
18
+ * on the `connectOrStart` path, which is how an operator's CLI starts the daemon. The demo box and
19
+ * the Hermes box start it under systemd, running `dist/bin/cello-daemon.js` directly — that path
20
+ * never reaches here, so **those two long-lived daemons are not bounded by this at all**. They are
21
+ * also the ones that run for weeks without restarting, which is the case
22
+ * `052-LOGCEILING` covers (suggested post-launch, not yet ruled). Stated here rather than left to
23
+ * be discovered, because "rotation shipped" would otherwise read as a bound that those machines have.
24
+ */
25
+ /**
26
+ * Cap for the live file: 64 MB. With one previous generation kept, the ceiling across restarts
27
+ * is 128 MB.
28
+ *
29
+ * A starting point rather than a finding. For scale: the measured file was 180 MB, of which 168 MB
30
+ * was one repeated line that part A of this unit now collapses, and the ordinary remainder grew at
31
+ * roughly 3 MB/day under heavy development.
32
+ */
33
+ export const LOG_ROTATE_CAP_BYTES = 64 * 1024 * 1024;
34
+ /** Name of the single previous generation. There is deliberately no `.2`. */
35
+ function rotatedPathFor(logPath) {
36
+ return `${logPath}.1`;
37
+ }
38
+ function sizeOf(path) {
39
+ try {
40
+ return statSync(path).size;
41
+ }
42
+ catch {
43
+ return null;
44
+ }
45
+ }
46
+ /**
47
+ * Rename `logPath` to `logPath.1` if it is over `capBytes`, replacing any older `.1`.
48
+ *
49
+ * **Never throws**, and that is a contract rather than defensiveness: a daemon that refuses to
50
+ * start because it could not tidy its log would be a strictly worse outcome than an oversized log.
51
+ * It reports what happened instead of being silent about it — see {@link openLogHandle}, which is
52
+ * where the reporting lands.
53
+ *
54
+ * **It never truncates.** A truncation of the live file either races the writer or throws away
55
+ * the tail, and the tail is the only part anyone reads.
56
+ */
57
+ export function rotateLogIfOversized(logPath, capBytes = LOG_ROTATE_CAP_BYTES) {
58
+ const size = sizeOf(logPath);
59
+ if (size === null)
60
+ return { rotated: false, reason: "absent" };
61
+ if (size <= capBytes)
62
+ return { rotated: false, reason: "under_cap" };
63
+ /**
64
+ * ⚠️ RE-STAT IMMEDIATELY BEFORE THE RENAME, because rotation is the one thing on this path that
65
+ * the singleton lock does NOT cover. `connectOrStart` states plainly that two callers can probe
66
+ * the lock as free at the same instant and both spawn. Both then arrive here. The damaging
67
+ * interleaving is: B sees an oversized file, A renames it to `.1` and opens a fresh one, then B
68
+ * renames that fresh near-empty file over `.1` — and 64 MB of retained history is replaced by a
69
+ * few bytes, losing exactly the tail rotation exists to keep. The window is small and the loser
70
+ * exits seconds later, but the cost of losing is the whole point of the feature.
71
+ */
72
+ const stillOversized = sizeOf(logPath);
73
+ if (stillOversized === null || stillOversized <= capBytes)
74
+ return { rotated: false, reason: "raced" };
75
+ /**
76
+ * ⚠️ **THERE IS DELIBERATELY NO "don't let a smaller file replace a larger kept one" GUARD.** It
77
+ * was written, it looked prudent, and it silently turned the cap into a RATCHET: the kept file
78
+ * becomes the effective threshold, so once a 180 MB log has been rotated once, the live file has
79
+ * to exceed 180 MB — then more — before it will ever rotate again. The 128 MB ceiling this unit
80
+ * ships would not have existed on the first machine it ran on. The re-stat above already covers
81
+ * the race that guard was written for: in that interleaving the loser re-stats, finds the fresh
82
+ * near-empty file under the cap, and returns `raced` without renaming anything.
83
+ */
84
+ try {
85
+ renameSync(logPath, rotatedPathFor(logPath));
86
+ return { rotated: true, bytes: stillOversized, rotatedTo: rotatedPathFor(logPath) };
87
+ }
88
+ catch (err) {
89
+ // EACCES / EROFS / EXDEV — a read-only or wrong-owner ~/.cello. None of them is a reason to
90
+ // fail a daemon start, and all of them mean this machine has no bound at all.
91
+ return { rotated: false, reason: "failed", error: extractErrorMessage(err) };
92
+ }
93
+ }
94
+ /**
95
+ * Rotate if needed, THEN open the log for append and return the descriptor.
96
+ *
97
+ * The ordering is the point. Open first and the rename moves only the name, leaving the daemon
98
+ * writing into the renamed inode — the rotation would appear to work and bound nothing.
99
+ *
100
+ * **The outcome is written as the first line of the fresh file**, because the alternative is a log
101
+ * that starts mid-story. Someone sent a 4 MB `daemon.log` to chase a failure that began before the
102
+ * restart has no way to know that `daemon.log.1` exists unless the file says so. And a rotation
103
+ * that FAILED has to say so loudest of all: it means the bound this unit ships does not exist on
104
+ * this machine, and nothing else would ever mention it.
105
+ */
106
+ export function openLogHandle(logPath, capBytes = LOG_ROTATE_CAP_BYTES) {
107
+ const outcome = rotateLogIfOversized(logPath, capBytes);
108
+ const fd = openSync(logPath, "a");
109
+ if (outcome.rotated) {
110
+ writeNotice(fd, {
111
+ level: "info", event: "daemon.log.rotated",
112
+ bytes: outcome.bytes, rotatedTo: outcome.rotatedTo,
113
+ impact: "everything logged before this line is in the file named by rotatedTo",
114
+ });
115
+ }
116
+ else if (outcome.reason === "failed") {
117
+ writeNotice(fd, {
118
+ level: "warn", event: "daemon.log.rotate.failed",
119
+ reason: outcome.reason, error: outcome.error ?? "",
120
+ impact: "daemon.log is over its cap and could not be rotated, so it is unbounded on this machine",
121
+ });
122
+ }
123
+ return fd;
124
+ }
125
+ function writeNotice(fd, fields) {
126
+ try {
127
+ writeSync(fd, JSON.stringify({ ...fields, ts: new Date().toISOString() }) + "\n");
128
+ }
129
+ catch {
130
+ // The notice is the least important thing this function does. Failing to write it must not
131
+ // cost the caller its descriptor.
132
+ }
133
+ }
134
+ //# sourceMappingURL=log-rotate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-rotate.js","sourceRoot":"","sources":["../src/log-rotate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-relay.d.ts","sourceRoot":"","sources":["../src/session-relay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-relay.d.ts","sourceRoot":"","sources":["../src/session-relay.ts"],"names":[],"mappings":"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"}
@@ -1007,8 +1007,30 @@ export class SessionRelay {
1007
1007
  * session depends on, which is what the condition now says.
1008
1008
  */
1009
1009
  const liveSessions = [...this.#ctx.activeNodes.values()].filter((e) => e.agentName === agentName);
1010
- if (liveSessions.length === 0)
1010
+ if (liveSessions.length === 0) {
1011
+ /**
1012
+ * ⚠️ **AN AGENT WITH NO SESSION HAS NOTHING TO RETRY, SO IT MUST NOT LOOK LIKE IT DOES —
1013
+ * `DOD-M15-IDLERETRY-1`, second half.**
1014
+ *
1015
+ * 061 stopped the ladder being OPENED for a session that needs nothing. It did not clear
1016
+ * one that was legitimately opened and is now moot. A ladder exists to get a LIVE session
1017
+ * its circuit back; when that session ends there is nothing left to get, and the entry is
1018
+ * the only thing `getStandingReceiverReachability` consults — so a perfectly idle agent
1019
+ * went on reporting `retrying`, and eventually `unreachable`, until the daemon restarted.
1020
+ *
1021
+ * Observed on the shipped 0.0.217 build: an agent with no live session at all, reading
1022
+ * `retrying`. That can only happen through a stale entry, which is what sent this back for
1023
+ * a second pass.
1024
+ *
1025
+ * Cleared HERE rather than at teardown on purpose: this is the one place that already
1026
+ * knows, every tick, that an agent holds nothing and wants nothing. A teardown hook would
1027
+ * be a second thing to keep in step with session lifecycle, and the whole class of defect
1028
+ * in this file is two things drifting apart.
1029
+ */
1030
+ this.#ctx.srReservationRetry.delete(agentName);
1031
+ this.#ctx.srLastRejectionReason.delete(agentName);
1011
1032
  continue;
1033
+ }
1012
1034
  /**
1013
1035
  * ⚠️ **RE-TAKE THE SESSION'S CIRCUIT — REBUILDING THE RECEIVER NO LONGER DOES IT.**
1014
1036
  *
@@ -1027,6 +1049,43 @@ export class SessionRelay {
1027
1049
  * every 30-second tick would be exactly that churn, wearing a new name — measured here as 52
1028
1050
  * asks where the budget allows 37.
1029
1051
  */
1052
+ /**
1053
+ * ⚠️ **WHAT ACTUALLY NEEDS A CIRCUIT, DECIDED BEFORE THE BUDGET IS TOUCHED —
1054
+ * `DOD-M15-IDLERETRY-1`.**
1055
+ *
1056
+ * `#retryDue` was called FIRST, and it does not merely answer a question: on an agent it has
1057
+ * not seen before it WRITES a retry entry and returns false. So simply having a live session
1058
+ * while holding no circuit was enough to open a retry ladder — and for the INITIATOR of a
1059
+ * call that state is permanent and wrong, because an initiator DIALS OUT and never needs to
1060
+ * be dialable (055-ONDEMAND narrowed the reservation to the party being dialed, deliberately).
1061
+ *
1062
+ * Two things followed, and both were measured live on 2026-09-11 rather than reasoned:
1063
+ * - `cello_status` reported `retrying` for a healthy agent from its first call onward,
1064
+ * cleared only by a daemon restart — the same "a broken agent looks like a fine one"
1065
+ * defect 060-READY had just fixed, in a case it did not cover;
1066
+ * - worse, it is not cosmetic. Held past the retry interval, both agents emitted a real
1067
+ * `session.standing_receiver.reservation.retry` — the daemon asking relays for slots on
1068
+ * behalf of sessions that need none. That is churn against the scarce resource this
1069
+ * whole story exists to conserve.
1070
+ *
1071
+ * So the question "is there anything to re-take?" is answered from the SESSION NODES first.
1072
+ * A session that already holds its circuit, or has no relay endpoint recorded, needs
1073
+ * nothing. If none needs anything, this tick is a no-op and must leave no trace.
1074
+ */
1075
+ const needRetake = liveSessions.filter((entry) => {
1076
+ const ep = this.#ctx.queries.getPersistedRelayEndpoint(agentName, entry.sessionId);
1077
+ if (!ep || ep.relayAddrs.length === 0)
1078
+ return false;
1079
+ /**
1080
+ * ⚠️ `heldRelayIdsOf`, NOT a substring test — the same distinction 056-SLOTDEAD had to
1081
+ * make one layer up. A circuit address that does not NAME its relay cannot be dialled
1082
+ * through, so a session announcing one holds nothing usable and DOES need a re-take.
1083
+ * A substring test counts it as held and leaves that session silently unreachable.
1084
+ */
1085
+ return heldRelayIdsOf(entry.node).length === 0;
1086
+ });
1087
+ if (needRetake.length === 0)
1088
+ continue;
1030
1089
  if (!this.#retryDue(agentName))
1031
1090
  continue;
1032
1091
  /**
@@ -1040,14 +1099,10 @@ export class SessionRelay {
1040
1099
  * also set `relayPeerIds` non-empty, hiding the real loss from every later tick.
1041
1100
  */
1042
1101
  let retook = false;
1043
- for (const entry of liveSessions) {
1102
+ for (const entry of needRetake) {
1044
1103
  const ep = this.#ctx.queries.getPersistedRelayEndpoint(agentName, entry.sessionId);
1045
- if (!ep || ep.relayAddrs.length === 0)
1046
- continue;
1047
1104
  const base = ep.relayAddrs[0];
1048
1105
  const circuitAddr = base.includes(`/p2p/${ep.relayPeerId}`) ? `${base}/p2p-circuit` : `${base}/p2p/${ep.relayPeerId}/p2p-circuit`;
1049
- if (entry.node.listenAddresses().some((a) => a.split("/").includes("p2p-circuit")))
1050
- continue; // still holds one
1051
1106
  if (await this.#ctx.retakeReservationOn(agentName, entry.node, circuitAddr, entry.correlationId))
1052
1107
  retook = true;
1053
1108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-relay.js","sourceRoot":"","sources":["../src/session-relay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAsB,gBAAgB,EAAkB,MAAM,2BAA2B,CAAC;AAEjG,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAIzD,OAAO,EAAE,iBAAiB,EAAqB,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAUpE,OAAO,EAAE,gBAAgB,EAAyB,MAAM,2BAA2B,CAAC;AACpF,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,cAAc,EACd,aAAa,GAId,MAAM,yBAAyB,CAAC;AAyGjC,MAAM,OAAO,YAAY;IACd,IAAI,CAAsB;IAEnC,YAAY,GAAwB;QAClC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IAED,0FAA0F;IAC1F,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IACxB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,4BAA4B,CAChC,SAAiB,EACjB,IAAe,EACf,WAAmB,EACnB,eAAuB,EACvB,aAAqB;QAErB,MAAM,SAAS,GAAG,GAAG,SAAS,KAAK,WAAW,EAAE,CAAC;QACjD,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,GAAG;gBAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9H,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG;gBAAE,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzH;;;;;;eAMG;YACH,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC;YAClF,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,aAAa,CAAC,EAAE;gBACvF,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,SAAS;gBACtD,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS;gBACnD,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS;gBACnD,yFAAyF;gBACzF,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC;aAChE,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ;;;;;;;;mBAQG;gBACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iDAAiD,EAAE;oBACvE,SAAS;oBACT,WAAW;oBACX,aAAa;oBACb,MAAM,EACJ,0FAA0F;wBAC1F,uFAAuF;wBACvF,6CAA6C;iBAChD,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;QACD;;;;;;;;;;WAUG;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACnD;;;;;;;WAOG;QACH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC5C;;;;;eAKG;YACH,IAAI,OAAO;gBAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;;gBACtH,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAChD;;;;;;eAMG;YACH,IAAI,OAAO,EAAE,eAAe,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACxD;;;;;;;mBAOG;gBACH,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,EAAE;YACnE,SAAS;YACT,WAAW;YACX,6FAA6F;YAC7F,oEAAoE;YACpE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE;YAC5B,MAAM;YACN,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChB,aAAa,EAAE,MAAM,CAAC,kBAAkB,EAAE,EAAE,MAAM,IAAI,kBAAkB;gBACxE,eAAe,EAAE,MAAM,CAAC,kBAAkB,EAAE,EAAE,eAAe,IAAI,KAAK;aACvE,CAAC;YACF,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,cAAsB,EAAE,YAAqB;QAC5D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC;IACjF,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,wBAAwB,CACtB,SAAiB,EACjB,SAAiB,EACjB,MAAc,EACd,OAAmB,EACnB,cAAsB,EACtB,eAA8B,EAC9B,aAAsB;QAEtB,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE;YACxG,eAAe,EAAE,aAAa;SAC/B,CAAC,CAAC;IACL,CAAC;IAED;8FAC0F;IAC1F,mBAAmB,CAAC,SAAiB,EAAE,SAAiB,EAAE,GAAsB;QAC9E,OAAO;YACL,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,eAAe,EAAE,GAAG,CAAC,eAAe;YACpC,WAAW,EAAE,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,eAAe,CAAC;YACtH,4FAA4F;YAC5F,wFAAwF;YACxF,oEAAoE;YACpE,SAAS,EAAE,GAAG,CAAC,WAAW,KAAK,oBAAoB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY;YAC/E,SAAS;YACT,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,WAAW,EAAE,GAAG,CAAC,SAAS;YAC1B;;;;;;;eAOG;YACH,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;SACxG,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH;;;;;;;;;;;OAWG;IACH,uBAAuB,CAAC,SAAiB,EAAE,WAAmB;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;IACtG,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,mBAAmB,CACvB,SAAiB,EACjB,IAAe,EACf,SAAiB,EACjB,KAAyB,EACzB,aAAqB;QAErB,IAAI,CAAC;YACH,gFAAgF;YAChF,0EAA0E;YAC1E,iFAAiF;YACjF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAEvH,mFAAmF;YACnF,sFAAsF;YACtF,gFAAgF;YAChF,MAAM,SAAS,GAAG,GAAG,SAAS,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;YACvD,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,+FAA+F;gBAC/F,qFAAqF;gBACrF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC7C,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClF,CAAC;gBACD,+FAA+F;gBAC/F,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;oBACzC,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjF,CAAC;gBACD,MAAM,GAAG,IAAI,gBAAgB,CAAC;oBAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;oBACxB,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,SAAS;oBACtD,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS;oBACnD,yFAAyF;oBACzF,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC;oBAC/D,yFAAyF;oBACzF,4EAA4E;oBAC5E,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC3F,mBAAmB,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;iBAC5H,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/E;;;;;;;;;eASG;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;YACpF,IAAI,KAAK;gBAAE,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC;YACpD,IAAI,KAAK,CAAC,UAAU;gBAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAC3G,MAAM,CAAC,eAAe,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;YAEpN,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;gBAC3B,KAAK,CAAC,mBAAmB,GAAG,KAAK,CAAC,cAAc,CAAC;gBACjD,KAAK,CAAC,cAAc,GAAG,SAAS,CAAC;gBACjC,2FAA2F;gBAC3F,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;gBACtC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBACpC,gFAAgF;gBAChF,uFAAuF;gBACvF,8BAA8B;gBAC9B,wFAAwF;gBACxF,qFAAqF;gBACrF,IAAI,CAAC;oBACH,IAAI,CAAC,GAAG;wBACN,EAAE,OAAO,CAAC,8GAA8G,CAAC;yBACxH,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC1H,CAAC;gBAAC,OAAO,GAAY,EAAE,CAAC;oBACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE;wBAC7D,SAAS;wBACT,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;qBAChC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,0EAA0E;gBAC1E,MAAM,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;gBAC/C,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,EAAE,CAAC;oBAC9E,MAAM,CAAC,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC3C,CAAC;gBACD,OAAO;YACT,CAAC;YAED,gFAAgF;YAChF,iFAAiF;YACjF,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE3B,8FAA8F;YAC9F,2EAA2E;YAC3E,EAAE;YACF,gGAAgG;YAChG,gGAAgG;YAChG,8FAA8F;YAC9F,8FAA8F;YAC9F,gBAAgB;YAChB,KAAK,IAAI,CAAC,oCAAoC,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,KAAK,CAAC;iBAC/G,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mDAAmD,EAAE;oBACzE,SAAS;oBACT,SAAS,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;oBAC5C,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;oBAC/B,MAAM,EAAE,gJAAgJ;oBACxJ,aAAa;iBACd,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBACnD,SAAS;gBACT,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;gBAC/B,aAAa;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,oCAAoC,CACxC,SAAiB,EACjB,IAAe,EACf,KAAyB,EACzB,YAAoB,EACpB,aAAqB,EACrB,KAA0B;QAE1B,8FAA8F;QAC9F,iGAAiG;QACjG,8FAA8F;QAC9F,IAAI,sBAA0C,CAAC;QAC/C,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,UAAU;gBAAE,OAAO,CAAC,iEAAiE;YAChG,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;YACvF,IAAI,CAAC,eAAe;gBAAE,OAAO,CAAC,sDAAsD;YACpF,sBAAsB,GAAG,6BAA6B,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAClF,IAAI,CAAC,sBAAsB,IAAI,sBAAsB,KAAK,KAAK,CAAC,WAAW;gBAAE,OAAO,CAAC,gCAAgC;YACrH,MAAM,SAAS,GAAG,GAAG,SAAS,KAAK,sBAAsB,EAAE,CAAC;YAC5D,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,GAAG;oBAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9H,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG;oBAAE,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzH,kEAAkE;gBAClE,0EAA0E;gBAC1E,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC;gBAClF,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,SAAS,EAAE,sBAAsB,EAAE,CAAC,aAAa,CAAC,EAAE;oBAClG,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,SAAS;oBACtD,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS;oBACnD,yFAAyF;oBACzF,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC;iBAChE,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM;oBAAE,OAAO;gBACpB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC9C,0FAA0F;gBAC1F,yFAAyF;gBACzF,IAAI,KAAK;oBAAE,KAAK,CAAC,oBAAoB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;YAC7F,CAAC;YACD,+FAA+F;YAC/F,2FAA2F;YAC3F,0FAA0F;YAC1F,wFAAwF;YACxF,8FAA8F;YAC9F,gEAAgE;YAChE,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yDAAyD,EAAE;gBAC/E,SAAS;gBACT,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;gBACpC,kBAAkB,EAAE,KAAK,CAAC,WAAW;gBACrC,sBAAsB;gBACtB,MAAM,EAAE,oHAAoH;gBAC5H,aAAa;aACd,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mDAAmD,EAAE;gBACzE,SAAS;gBACT,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;gBACpC,sBAAsB;gBACtB,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;gBAC/B,MAAM,EAAE,gJAAgJ;gBACxJ,aAAa;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,KAAyB;QAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC;QACjC,MAAM,GAAG,GAAG,KAAK,CAAC,cAAc,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,mBAAmB;YAAE,OAAO;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEtE;;;;;;;WAOG;QACH,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,oBAAoB,IAAI,EAAE,EAAE,CAAC;YACxD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACzB,KAAK,CAAC,KAAK,EAAE,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,KAAK,CAAC,oBAAoB,GAAG,SAAS,CAAC;QAEvC,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,yFAAyF;QACzF,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;QAC9B,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE,CAAC;YAC/E,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,KAAK,CAAC,mCAAmC,CACvC,SAAiB,EACjB,SAAiB,EACjB,KAAyB,EACzB,KAAe;QAEf,MAAM,UAAU,GAAG,KAAK,CAAC,eAAe,CAAC;QACzC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,mBAAmB;YAAE,OAAO,CAAC,oDAAoD;QAC3G,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE5E,2FAA2F;QAC3F,+CAA+C;QAC/C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;gBAAE,SAAS;YACpD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACtB,8FAA8F;YAC9F,IAAI,WAAW,KAAK,KAAK,CAAC,WAAW;gBAAE,SAAS;YAEhD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YAC5D,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,GAAG,SAAS,KAAK,WAAW,EAAE,CAAC;gBACjD,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACnD,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,GAAG;wBAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9H,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG;wBAAE,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACzH,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,aAAa,CAAC,EAAE;wBACvF,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,SAAS;wBACtD,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS;wBACnD,yFAAyF;wBACzF,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC;qBAChE,CAAC,CAAC;oBACH,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iDAAiD,EAAE;4BACvE,SAAS;4BACT,WAAW;4BACX,MAAM,EAAE,yLAAyL;4BACjM,aAAa,EAAE,KAAK,CAAC,aAAa;yBACnC,CAAC,CAAC;wBACH,SAAS;oBACX,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;oBAC9C,mFAAmF;oBACnF,wDAAwD;oBACxD,KAAK,CAAC,oBAAoB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;gBAClF,CAAC;gBACD,wFAAwF;gBACxF,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC5I,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBAChF,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE;wBACzD,SAAS;wBACT,WAAW;wBACX,MAAM,EAAE,gFAAgF;wBACxF,aAAa,EAAE,KAAK,CAAC,aAAa;qBACnC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mDAAmD,EAAE;wBACzE,SAAS;wBACT,WAAW;wBACX,MAAM,EAAE,kHAAkH;wBAC1H,aAAa,EAAE,KAAK,CAAC,aAAa;qBACnC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,EAAE;oBACnE,SAAS;oBACT,WAAW;oBACX,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;oBAC/B,MAAM,EAAE,+FAA+F;oBACvG,aAAa,EAAE,KAAK,CAAC,aAAa;iBACnC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH;2GACuG;IACvG,uBAAuB,CAAC,SAAiB,EAAE,SAAiB,EAAE,WAA6B,EAAE,mBAA+B;QAC1H,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,SAAS,KAAK,SAAS,GAAG,CAAC,CAAC;QACxG,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;QAChC,KAAK,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAChD;;;;;;;;;WASG;QACH,WAAW,CAAC,eAAe,CACzB,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAChD,KAAK,CAAC,IAAI,EACV,SAAS,EACT,KAAK,CAAC,eAAe,EACrB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CACnE,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CAAC,SAAiB,EAAE,SAAiB,EAAE,MAAc,EAAE,eAAuB,CAAC;QAChG,KAAK,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,SAAiB,EAAE,MAAc,EAAE,YAAoB;QAChG,IAAI,sBAAsB,GAAG,KAAK,CAAC;QACnC,yEAAyE;QACzE,uEAAuE;QACvE,6EAA6E;QAC7E,+EAA+E;QAC/E,8EAA8E;QAC9E,MAAM,QAAQ,GAAG,MAA8C,CAAC;QAChE,MAAM,MAAM,GAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAA4B,CAAC,MAAM,CAAC,aAAa,CAAC,EAA+B,CAAC;QACpH,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,IAAI,MAAkC,CAAC;gBACvC,IAAI,CAAC;oBACH,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC/B,CAAC;gBAAC,MAAM,CAAC;oBACP,6DAA6D;oBAC7D,MAAM;gBACR,CAAC;gBACD,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;oBAAE,MAAM;gBAErD,IAAI,KAA8B,CAAC;gBACnC,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;wBAC7D,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,KAAe,CAAC;4BACxE,CAAC,CAAE,MAAM,CAAC,KAAiC,CAAC,KAAK,EAAE,CAAC;oBACtD,KAAK,GAAG,MAAM,CAAC,KAAK,CAA4B,CAAC;gBACnD,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBAED,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,qBAAqB,EAAE,CAAC;oBAC5C,gEAAgE;oBAChE,yEAAyE;oBACzE,sEAAsE;oBACtE,0EAA0E;oBAC1E,wEAAwE;oBACxE,MAAM,cAAc,GAAG,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,QAAQ;wBAC5D,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;wBACrB,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,UAAU;4BAC1C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAClD,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;wBAC5D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE;4BAChE,cAAc,EAAE,SAAS;4BACzB,cAAc;4BACd,MAAM,EAAE,8BAA8B;yBACvC,CAAC,CAAC;wBACH,SAAS,CAAC,oDAAoD;oBAChE,CAAC;oBACD,sBAAsB,GAAG,IAAI,CAAC;oBAC9B,uEAAuE;oBACvE,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;oBAC9F,MAAM,CAAC,0DAA0D;gBACnE,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;QAChE,CAAC;QAED,4DAA4D;QAC5D,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,kEAAkE;YAClE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACxE,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACzC,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,0BAA0B,CAAC,SAAiB,EAAE,SAA+D;QAC3G,8FAA8F;QAC9F,6FAA6F;QAC7F,+FAA+F;QAC/F,+FAA+F;QAC/F,8FAA8F;QAC9F,iFAAiF;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClE,MAAM,WAAW,GACf,QAAQ,KAAK,SAAS;YACtB,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;YACpC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5D,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;QACD;;;;;;;;;;;;;WAaG;IACL,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,SAAiB,EAAE,WAAmB;QACvD,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED,wEAAwE;IACxE,mBAAmB,CAAC,SAAiB;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,GAAG,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,OAAO,EAAE,CAAC;YAC/C,IAAI,GAAG,IAAI,SAAS;gBAAE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpE,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,SAAiB,EAAE,WAAmB,EAAE,MAAc;QACrE,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE,CAAC;YAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,mBAAmB,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,EAAE;YACnE,SAAS;YACT,WAAW;YACX,MAAM;YACN,KAAK,EAAE,mBAAmB;YAC1B,MAAM,EAAE,gFAAgF;gBACtF,4FAA4F;gBAC5F,sEAAsE;SACzE,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB,CAAC,SAAiB;QACvC,IAAI,SAA+D,CAAC;QACpE,IAAI,CAAC;YACH,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,sEAAsE;YACtE,wEAAwE;YACxE,uEAAuE;YACvE,4DAA4D;YAC5D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,EAAE;gBAC/E,SAAS;gBACT,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;aAChC,CAAC,CAAC;YACH,SAAS,GAAG,EAAE,CAAC;QACjB,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyD,CAAC;QAChF,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;YAC7F,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAClE,CAAC;QACD;;;;;;;;;;WAUG;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACvF,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACrE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,EAAE;gBAC1E,SAAS;gBACT,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC;gBAC7B,MAAM,EAAE,qFAAqF;oBAC3F,yFAAyF;oBACzF,sFAAsF;oBACtF,2DAA2D;aAC9D,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACtC,CAAC,CAAC,GAAG,IAAI,cAAc;gBACvB,CAAC,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC,WAAW,cAAc,CAAC;YAChD,8EAA8E;YAC9E,8EAA8E;YAC9E,6EAA6E;YAC7E,+EAA+E;YAC/E,6BAA6B;YAC7B,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,EAAE;oBACxE,SAAS;oBACT,WAAW,EAAE,EAAE,CAAC,WAAW;oBAC3B,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,SAAiB;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;eACpD,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,CAAC;QAChG,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,UAAU,KAAK,SAAS;YAAE,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACjD,gEAAgE;YAChE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACnD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACrC,IAAI,KAAK,CAAC,QAAQ,IAAI,0BAA0B,EAAE,CAAC;YACjD,IAAI,KAAK,CAAC,QAAQ,KAAK,0BAA0B,EAAE,CAAC;gBAClD,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,cAAc;gBACnC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACnD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE;oBACtE,SAAS;oBACT,QAAQ,EAAE,0BAA0B;oBACpC,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,0FAA0F;oBAC1F,0FAA0F;oBAC1F,oEAAoE;oBACpE,qDAAqD;oBACrD,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpF;;;;;;;;;;;;;uBAaG;oBACH,aAAa,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;oBAClF,aAAa,EAAE,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,MAAM;oBACnE,MAAM,EAAE,kFAAkF;wBACxF,uFAAuF;wBACvF,uFAAuF;iBAC1F,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;QACpB,4FAA4F;QAC5F,gGAAgG;QAChG,8DAA8D;QAC9D,KAAK,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,EAAE;YACnE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa;SACxE,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,KAAK,CAAC,wBAAwB;QAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QACnC,KAAK,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,SAAS,CAAQ,qBAAqB;YAE3F,uEAAuE;YACvE,EAAE;YACF,8FAA8F;YAC9F,8FAA8F;YAC9F,6FAA6F;YAC7F,4FAA4F;YAC5F,6FAA6F;YAC7F,4FAA4F;YAC5F,4CAA4C;YAC5C,EAAE;YACF,4FAA4F;YAC5F,6FAA6F;YAC7F,4FAA4F;YAC5F,iEAAiE;YACjE,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC;;;;;;;;;;;;mBAYG;gBACH,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;gBAClG,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBACxC;;;;;;;;;;mBAUG;gBACH;;;;;;mBAMG;gBACH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;oBAAE,SAAS;gBACzC;;;;;;;;;mBASG;gBACH,IAAI,MAAM,GAAG,KAAK,CAAC;gBACnB,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;oBACjC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;oBACnF,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;wBAAE,SAAS;oBAChD,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;oBAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC,WAAW,cAAc,CAAC;oBAClI,IAAI,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;wBAAE,SAAS,CAAC,kBAAkB;oBAChH,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC;wBAAE,MAAM,GAAG,IAAI,CAAC;gBAClH,CAAC;gBACD,IAAI,MAAM;oBAAE,SAAS;gBACrB,mFAAmF;gBACnF,0FAA0F;gBAC1F,2FAA2F;gBAC3F,gEAAgE;gBAChE,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC;qBACpC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC;gBAChG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzB;;;;;;;;;;;;uBAYG;oBACH,SAAS;gBACX,CAAC;gBACD,EAAE,CAAC,YAAY,GAAG,OAAO,CAAC;gBAC1B,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE;oBACpE,SAAS;oBACT,YAAY,EAAE,OAAO;oBACrB,gBAAgB,EAAE,OAAO,CAAC,MAAM;iBACjC,CAAC,CAAC;YACL,CAAC;YACD,8FAA8F;YAC9F,SAAS;YACT,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAElD,8DAA8D;YAC9D,EAAE;YACF,6EAA6E;YAC7E,gFAAgF;YAChF,+EAA+E;YAC/E,8EAA8E;YAC9E,gFAAgF;YAChF,8EAA8E;YAC9E,kBAAkB;YAClB,EAAE;YACF,8FAA8F;YAC9F,4FAA4F;YAC5F,wFAAwF;YACxF,0FAA0F;YAC1F,wFAAwF;YACxF,uEAAuE;YACvE,EAAE;YACF,0FAA0F;YAC1F,4FAA4F;YAC5F,0FAA0F;YAC1F,8FAA8F;YAC9F,yBAAyB;YACzB;;;;;;;;;;;eAWG;YACH,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC9F,MAAM,SAAS,GAAG,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5E,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YACrE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YACvE,EAAE,CAAC,YAAY,GAAG,SAAS,CAAC;YAC5B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,2FAA2F;gBAC3F,yFAAyF;gBACzF,mFAAmF;gBACnF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE;oBACpE,SAAS;oBACT,YAAY,EAAE,MAAM;oBACpB,gBAAgB,EAAE,SAAS,CAAC,MAAM;iBACnC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,4FAA4F;gBAC5F,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;oBAAE,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;gBACjE,SAAS;YACX,CAAC;YACD,8FAA8F;YAC9F,0FAA0F;YAC1F,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAC1C,KAAK,MAAM,WAAW,IAAI,IAAI,EAAE,CAAC;gBAC/B,+EAA+E;gBAC/E,wFAAwF;gBACxF,yFAAyF;gBACzF,wFAAwF;gBACxF,2FAA2F;gBAC3F,iBAAiB;gBACjB;;;;;;mBAMG;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,SAAS,KAAK,WAAW,EAAE,CAAC,CAAC;gBAC1E,MAAM,cAAc,GAAG,OAAO,MAAM,EAAE,kBAAkB,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC7G,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;oBAClE,SAAS;oBACT,WAAW;oBACX,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,uBAAuB;oBACzF,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7C,gBAAgB,EAAE,SAAS,CAAC,MAAM;oBAClC;;;;;;;;;uBASG;oBACH,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC;wBAC1B,CAAC,CAAC,yBAAyB,GAAG,SAAS,CAAC,MAAM,GAAG,uCAAuC;8BACpF,wFAAwF;wBAC5F,CAAC,CAAC,qFAAqF;8BACnF,kFAAkF;8BAClF,mFAAmF;8BACnF,oFAAoF;8BACpF,4CAA4C;iBACnD,CAAC,CAAC;YACL,CAAC;YACD;;;;;;eAMG;YACH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;YAC9D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B;;;;;;;;;;;;;;;;mBAgBG;gBACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE;oBACxE,SAAS;oBACT,MAAM,EAAE,iFAAiF;wBACvF,4DAA4D;iBAC/D,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAGD,gFAAgF;IAChF,wBAAwB;QACtB,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,KAAK,IAAI;YAAE,OAAO;QACnD,8FAA8F;QAC9F,uEAAuE;QACvE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC,GAAG,EAAE;YAC/C,IAAI,CAAC;gBACH,KAAK,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACrD,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE,EAAE,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1G,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnC,0DAA0D;QAC1D,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH;;;;;;;OAOG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,WAAmB,EAAE,IAAe,EAAE,aAAqB;QACpG;;;;;;;;;WASG;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE;aACpC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,WAAW,GAAG,CAAC,CAAC;aACzF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAE,CAAC;aACvC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;QACxG,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE;gBACrE,SAAS,EAAE,WAAW,EAAE,aAAa;gBACrC,MAAM,EAAE,gFAAgF;oBACtF,6CAA6C;aAChD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,MAAoC,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE;gBAClF,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,SAAS;gBACtD,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS;gBACnD,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC;aAChE,CAAC,CAAC;YACH,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,MAAM,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE;gBAChE,SAAS,EAAE,WAAW,EAAE,aAAa;gBACrC,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;gBAC/B,MAAM,EAAE,kDAAkD;aAC3D,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,KAAK,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,SAAiB,EACjB,WAAmB,EACnB,IAAe,EACf,aAAqB;IACrB;;;;;;;;;OASG;IACH,wBAAiC;QAEjC,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,EAAE;gBAC1E,SAAS;gBACT,WAAW;gBACX,aAAa;gBACb,MAAM,EAAE,mFAAmF;oBACzF,0FAA0F;oBAC1F,oEAAoE;aACvE,CAAC,CAAC;YACH,OAAO,aAAa,CAAC;QACvB,CAAC;QACD;;;WAGG;QACH,IAAI,MAAoC,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,aAAa,CAAC,EAAE;gBACvF,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,SAAS;gBACtD,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS;gBACnD,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC;aAChE,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;oBAClE,SAAS;oBACT,WAAW;oBACX,aAAa;oBACb,MAAM,EAAE,+EAA+E;wBACrF,qFAAqF;wBACrF,iCAAiC;iBACpC,CAAC,CAAC;gBACH,OAAO,aAAa,CAAC;YACvB,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,wBAAwB;oBAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACzE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE;oBAC9D,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;iBAC9E,CAAC,CAAC;gBACH,OAAO,QAAQ,CAAC;YAClB,CAAC;YAED,yFAAyF;YACzF,8FAA8F;YAC9F,iFAAiF;YACjF,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC5C,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;gBAChH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE;gBAC9D,SAAS;gBACT,WAAW;gBACX,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;gBACxB,MAAM,EAAE,KAAK;gBACb,aAAa,EAAE,OAAO,EAAE,MAAM,IAAI,kBAAkB;gBACpD,eAAe,EAAE,OAAO,EAAE,eAAe,IAAI,IAAI;gBACjD,aAAa;gBACb,MAAM,EAAE,OAAO,EAAE,MAAM;oBACrB,0FAA0F;wBAC1F,sEAAsE;aACzE,CAAC,CAAC;YACH,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe;gBAAE,OAAO,oBAAoB,CAAC;YACrE,IAAI,OAAO,EAAE,eAAe,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACxD,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,CAAC,OAAO;gBAAE,OAAO,aAAa,CAAC,CAAC,2CAA2C;YAC/E,OAAO,2BAA2B,CAAC;QACrC,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE;gBAC9D,SAAS;gBACT,aAAa;gBACb,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;gBAC/B,MAAM,EAAE,6EAA6E;oBACnF,yCAAyC;aAC5C,CAAC,CAAC;YACH,OAAO,aAAa,CAAC;QACvB,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,KAAK,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,4BAA4B,CAChC,SAAiB,EACjB,SAAiB,EACjB,IAAe,EACf,KAA6B,EAC7B,aAAqB,EACrB,EAAwD;QAExD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBACnD,SAAS;gBACT,SAAS;gBACT,MAAM,EAAE,sFAAsF;sBAC1F,0FAA0F;sBAC1F,eAAe;aACpB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,wFAAwF;YACxF,+FAA+F;YAC/F,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;YAE7C,MAAM,SAAS,GAAG,GAAG,SAAS,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;YACpD,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,GAAG;oBAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9H,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG;oBAAE,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzH,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE;oBAC7F,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,SAAS;oBACtD,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS;oBACnD,yFAAyF;oBACzF,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC;iBAChE,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE;wBAC3D,SAAS;wBACT,SAAS;wBACT,MAAM,EAAE,kFAAkF;qBAC3F,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAChD,CAAC;YAED,+FAA+F;YAC/F,+CAA+C;YAC/C,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;YAElM,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;YACpF,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;gBAC3B,KAAK,CAAC,mBAAmB,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3E,KAAK,CAAC,cAAc,GAAG,SAAS,CAAC;YACnC,CAAC;YAED;;;;;;;;;;;;;;;eAeG;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;gBACtD,SAAS;gBACT,SAAS;gBACT,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,MAAM,EAAE,gFAAgF;sBACpF,kDAAkD;aACvD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBACnD,SAAS;gBACT,SAAS;gBACT,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;gBAC/B,MAAM,EAAE,wFAAwF;aACjG,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;0CAEsC;IACtC,sBAAsB,CAAC,SAAiB,EAAE,SAAiB;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,OAAO;YACL,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"session-relay.js","sourceRoot":"","sources":["../src/session-relay.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cello-protocol/daemon",
3
- "version": "0.0.209",
3
+ "version": "0.0.211",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "engines": {
@@ -35,10 +35,10 @@
35
35
  "@signalapp/sqlcipher": "^3.3.5",
36
36
  "cbor-x": "^1.6.0",
37
37
  "it-length-prefixed": "^10.0.1",
38
- "@cello-protocol/crypto": "0.0.85",
39
- "@cello-protocol/protocol-types": "0.0.89",
40
- "@cello-protocol/gateway": "0.0.69",
41
- "@cello-protocol/transport": "0.0.91"
38
+ "@cello-protocol/crypto": "0.0.87",
39
+ "@cello-protocol/protocol-types": "0.0.91",
40
+ "@cello-protocol/gateway": "0.0.71",
41
+ "@cello-protocol/transport": "0.0.93"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@types/node": "^25.6.2",