@deepnoodle/mobius 0.0.12 → 0.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -8
- package/dist/api/index.d.ts +9 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/schema.d.ts +441 -43
- package/dist/api/schema.d.ts.map +1 -1
- package/dist/client.d.ts +18 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +37 -1
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/worker.d.ts +63 -15
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +202 -32
- package/dist/worker.js.map +1 -1
- package/package.json +1 -1
package/dist/worker.js
CHANGED
|
@@ -1,5 +1,74 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
-
import {
|
|
2
|
+
import { hostname as systemHostname } from "node:os";
|
|
3
|
+
import { AuthRevokedError, LeaseLostError, PayloadTooLargeError, RateLimitedError, WorkerInstanceConflictError, } from "./client.js";
|
|
4
|
+
const CLOUD_RUN_METADATA_TIMEOUT_MS = 1000;
|
|
5
|
+
/**
|
|
6
|
+
* Resolve a stable per-process `worker_instance_id` from the runtime
|
|
7
|
+
* environment. Order: explicit → Cloud Run K_REVISION + metadata →
|
|
8
|
+
* HOSTNAME env → FLY_MACHINE_ID → RAILWAY_REPLICA_ID →
|
|
9
|
+
* RENDER_INSTANCE_ID → system hostname (`os.hostname()`, for laptops
|
|
10
|
+
* and bare metal) → generated UUID. The returned source is
|
|
11
|
+
* informational only — workers log it once at startup so operators
|
|
12
|
+
* can confirm the right platform was picked up.
|
|
13
|
+
*/
|
|
14
|
+
export async function resolveInstanceID(explicit) {
|
|
15
|
+
if (explicit) {
|
|
16
|
+
const trimmed = explicit.trim();
|
|
17
|
+
if (trimmed)
|
|
18
|
+
return { id: trimmed, source: "configured" };
|
|
19
|
+
}
|
|
20
|
+
const cloudRun = await cloudRunInstanceID();
|
|
21
|
+
if (cloudRun)
|
|
22
|
+
return { id: cloudRun, source: "cloud_run_revision_instance" };
|
|
23
|
+
const hostname = (process.env.HOSTNAME ?? "").trim();
|
|
24
|
+
if (hostname)
|
|
25
|
+
return { id: hostname, source: "hostname" };
|
|
26
|
+
const fly = (process.env.FLY_MACHINE_ID ?? "").trim();
|
|
27
|
+
if (fly)
|
|
28
|
+
return { id: fly, source: "fly_machine_id" };
|
|
29
|
+
const railway = (process.env.RAILWAY_REPLICA_ID ?? "").trim();
|
|
30
|
+
if (railway)
|
|
31
|
+
return { id: railway, source: "railway_replica_id" };
|
|
32
|
+
const render = (process.env.RENDER_INSTANCE_ID ?? "").trim();
|
|
33
|
+
if (render)
|
|
34
|
+
return { id: render, source: "render_instance_id" };
|
|
35
|
+
try {
|
|
36
|
+
const host = systemHostname().trim();
|
|
37
|
+
if (host)
|
|
38
|
+
return { id: host, source: "system_hostname" };
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// fall through to UUID
|
|
42
|
+
}
|
|
43
|
+
return { id: randomUUID(), source: "generated_uuid" };
|
|
44
|
+
}
|
|
45
|
+
async function cloudRunInstanceID() {
|
|
46
|
+
// Returns null on any metadata-server failure rather than the bare
|
|
47
|
+
// revision — every replica sharing the same revision string would
|
|
48
|
+
// otherwise collapse onto one row and trip the conflict detector.
|
|
49
|
+
// The next strategy (HOSTNAME, which Cloud Run sets per-instance)
|
|
50
|
+
// takes over.
|
|
51
|
+
const revision = (process.env.K_REVISION ?? "").trim();
|
|
52
|
+
if (!revision)
|
|
53
|
+
return null;
|
|
54
|
+
try {
|
|
55
|
+
const ctrl = new AbortController();
|
|
56
|
+
const timer = setTimeout(() => ctrl.abort(), CLOUD_RUN_METADATA_TIMEOUT_MS);
|
|
57
|
+
try {
|
|
58
|
+
const resp = await fetch("http://metadata.google.internal/computeMetadata/v1/instance/id", { headers: { "Metadata-Flavor": "Google" }, signal: ctrl.signal });
|
|
59
|
+
if (!resp.ok)
|
|
60
|
+
return null;
|
|
61
|
+
const id = (await resp.text()).trim();
|
|
62
|
+
return id ? `${revision}-${id}` : null;
|
|
63
|
+
}
|
|
64
|
+
finally {
|
|
65
|
+
clearTimeout(timer);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
3
72
|
const silentLogger = {
|
|
4
73
|
info: () => { },
|
|
5
74
|
warn: () => { },
|
|
@@ -14,14 +83,22 @@ const defaultLogger = {
|
|
|
14
83
|
* Worker claims jobs from Mobius and dispatches each to the corresponding
|
|
15
84
|
* registered action function. A *job* is a single action invocation on
|
|
16
85
|
* behalf of a workflow run; the backend owns the workflow engine.
|
|
86
|
+
*
|
|
87
|
+
* With `concurrency > 1` the worker holds up to N jobs in flight
|
|
88
|
+
* simultaneously, all reporting the same `worker_instance_id` and
|
|
89
|
+
* session token; the admin UI shows one row with a saturation bar
|
|
90
|
+
* rather than N independent rows.
|
|
17
91
|
*/
|
|
18
92
|
export class Worker {
|
|
19
93
|
constructor(client, config, actions) {
|
|
20
94
|
this.client = client;
|
|
95
|
+
this.instanceIDResolved = false;
|
|
21
96
|
this.abortController = new AbortController();
|
|
22
97
|
this.authRevoked = false;
|
|
98
|
+
const logger = config.logger === null ? silentLogger : (config.logger ?? defaultLogger);
|
|
23
99
|
this.config = {
|
|
24
|
-
|
|
100
|
+
workerInstanceId: config.workerInstanceId ?? "",
|
|
101
|
+
concurrency: config.concurrency && config.concurrency > 0 ? config.concurrency : 1,
|
|
25
102
|
name: config.name ?? "",
|
|
26
103
|
version: config.version ?? "",
|
|
27
104
|
queues: config.queues ?? [],
|
|
@@ -31,9 +108,9 @@ export class Worker {
|
|
|
31
108
|
eventQueueSize: config.eventQueueSize ?? 256,
|
|
32
109
|
eventBatchSize: config.eventBatchSize ?? 20,
|
|
33
110
|
};
|
|
34
|
-
this.logger =
|
|
35
|
-
config.logger === null ? silentLogger : (config.logger ?? defaultLogger);
|
|
111
|
+
this.logger = logger;
|
|
36
112
|
this.actions = actions ?? new Map();
|
|
113
|
+
this.sessionToken = randomUUID();
|
|
37
114
|
}
|
|
38
115
|
/** Register an action function under the given name. */
|
|
39
116
|
register(name, fn) {
|
|
@@ -42,21 +119,58 @@ export class Worker {
|
|
|
42
119
|
}
|
|
43
120
|
/**
|
|
44
121
|
* Start the claim loop. Returns a promise that resolves when the worker is
|
|
45
|
-
* stopped via {@link stop} or the given signal is aborted.
|
|
122
|
+
* stopped via {@link stop} or the given signal is aborted. Throws
|
|
123
|
+
* {@link AuthRevokedError} when the credential is revoked mid-flight
|
|
124
|
+
* and {@link WorkerInstanceConflictError} when another live process
|
|
125
|
+
* has already registered this worker_instance_id.
|
|
126
|
+
*
|
|
127
|
+
* Cancellation has two distinct shapes:
|
|
128
|
+
*
|
|
129
|
+
* - {@link stop} aborts the claim loop only — in-flight jobs continue
|
|
130
|
+
* to run to natural completion and the returned promise resolves
|
|
131
|
+
* once they all settle. This is graceful drain.
|
|
132
|
+
* - The caller's `signal`, when aborted, propagates into both the
|
|
133
|
+
* claim loop and every running action. This is the emergency-stop
|
|
134
|
+
* path (e.g. SIGTERM with a hard deadline).
|
|
46
135
|
*/
|
|
47
136
|
async run(signal) {
|
|
48
137
|
this.abortController = new AbortController();
|
|
49
|
-
|
|
50
|
-
|
|
138
|
+
// The claim loop watches both signals so stop() and the caller's
|
|
139
|
+
// emergency abort both halt new claims; executeJob only watches the
|
|
140
|
+
// caller's signal so stop() doesn't kill jobs that have already
|
|
141
|
+
// been claimed.
|
|
142
|
+
const callerSignal = signal;
|
|
143
|
+
const combined = callerSignal
|
|
144
|
+
? anySignal(callerSignal, this.abortController.signal)
|
|
51
145
|
: this.abortController.signal;
|
|
52
|
-
this.
|
|
146
|
+
if (!this.instanceIDResolved) {
|
|
147
|
+
const { id, source } = await resolveInstanceID(this.config.workerInstanceId || undefined);
|
|
148
|
+
this.config.workerInstanceId = id;
|
|
149
|
+
this.instanceIDResolved = true;
|
|
150
|
+
this.logger.info(`[mobius] worker instance id ${id} (source: ${source})`);
|
|
151
|
+
}
|
|
152
|
+
this.logger.info(`[mobius] worker ${this.config.workerInstanceId} started (concurrency=${this.config.concurrency})`);
|
|
153
|
+
const inflight = new Set();
|
|
53
154
|
while (!combined.aborted) {
|
|
54
155
|
if (this.authRevoked)
|
|
55
156
|
break;
|
|
157
|
+
while (inflight.size >= this.config.concurrency && !combined.aborted) {
|
|
158
|
+
const aborted = abortAsPromise(combined);
|
|
159
|
+
try {
|
|
160
|
+
await Promise.race([...inflight, aborted.promise]);
|
|
161
|
+
}
|
|
162
|
+
finally {
|
|
163
|
+
aborted.cancel();
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
if (combined.aborted)
|
|
167
|
+
break;
|
|
56
168
|
let job;
|
|
57
169
|
try {
|
|
58
170
|
const claimReq = {
|
|
59
|
-
|
|
171
|
+
worker_instance_id: this.config.workerInstanceId,
|
|
172
|
+
worker_session_token: this.sessionToken,
|
|
173
|
+
concurrency_limit: this.config.concurrency,
|
|
60
174
|
wait_seconds: this.config.pollWaitSeconds,
|
|
61
175
|
};
|
|
62
176
|
if (this.config.name)
|
|
@@ -76,6 +190,10 @@ export class Worker {
|
|
|
76
190
|
this.logger.error("[mobius] claim rejected: credential revoked");
|
|
77
191
|
throw err;
|
|
78
192
|
}
|
|
193
|
+
if (err instanceof WorkerInstanceConflictError) {
|
|
194
|
+
this.logger.error(`[mobius] claim rejected: worker_instance_id ${this.config.workerInstanceId} is already in use by another live process`);
|
|
195
|
+
throw err;
|
|
196
|
+
}
|
|
79
197
|
this.logger.error("[mobius] claim error:", err);
|
|
80
198
|
await sleep(2000, combined);
|
|
81
199
|
continue;
|
|
@@ -84,9 +202,13 @@ export class Worker {
|
|
|
84
202
|
await sleep(0, combined);
|
|
85
203
|
continue;
|
|
86
204
|
}
|
|
87
|
-
|
|
205
|
+
const task = this.executeJob(job, callerSignal).finally(() => {
|
|
206
|
+
inflight.delete(task);
|
|
207
|
+
});
|
|
208
|
+
inflight.add(task);
|
|
88
209
|
}
|
|
89
|
-
|
|
210
|
+
await Promise.allSettled(inflight);
|
|
211
|
+
this.logger.info(`[mobius] worker ${this.config.workerInstanceId} stopped`);
|
|
90
212
|
if (this.authRevoked) {
|
|
91
213
|
throw new AuthRevokedError();
|
|
92
214
|
}
|
|
@@ -98,21 +220,25 @@ export class Worker {
|
|
|
98
220
|
// ---------------------------------------------------------------------------
|
|
99
221
|
async executeJob(job, signal) {
|
|
100
222
|
const jobId = job.job_id;
|
|
101
|
-
const
|
|
223
|
+
const workerInstanceId = this.config.workerInstanceId;
|
|
224
|
+
const sessionToken = this.sessionToken;
|
|
102
225
|
const attempt = job.attempt;
|
|
103
226
|
this.logger.info(`[mobius] job ${jobId} claimed (workflow=${job.workflow_name}, step=${job.step_name}, action=${job.action}, attempt=${attempt})`);
|
|
104
227
|
const fn = this.actions.get(job.action);
|
|
105
228
|
if (!fn) {
|
|
106
229
|
const msg = `action ${JSON.stringify(job.action)} not registered on this worker`;
|
|
107
230
|
this.logger.error(`[mobius] ${msg}`);
|
|
108
|
-
await this.failJob(jobId,
|
|
231
|
+
await this.failJob(jobId, workerInstanceId, sessionToken, attempt, "ActionNotRegistered", msg);
|
|
109
232
|
return;
|
|
110
233
|
}
|
|
111
234
|
const actionController = new AbortController();
|
|
112
235
|
const onAbort = () => actionController.abort();
|
|
113
|
-
signal
|
|
236
|
+
// Only the caller's signal (passed to run()) propagates into actions.
|
|
237
|
+
// stop() does not flow through here — that's how graceful drain works.
|
|
238
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
114
239
|
const eventer = new JobEventer(this.client, job, {
|
|
115
|
-
|
|
240
|
+
workerInstanceId,
|
|
241
|
+
sessionToken,
|
|
116
242
|
queueSize: this.config.eventQueueSize,
|
|
117
243
|
batchSize: this.config.eventBatchSize,
|
|
118
244
|
logger: this.logger,
|
|
@@ -122,7 +248,7 @@ export class Worker {
|
|
|
122
248
|
jobId,
|
|
123
249
|
runId: job.run_id,
|
|
124
250
|
projectId: this.client.project,
|
|
125
|
-
|
|
251
|
+
workerInstanceId,
|
|
126
252
|
attempt,
|
|
127
253
|
queue: job.queue,
|
|
128
254
|
workflowName: job.workflow_name,
|
|
@@ -135,7 +261,8 @@ export class Worker {
|
|
|
135
261
|
const heartbeatTimer = setInterval(async () => {
|
|
136
262
|
try {
|
|
137
263
|
const hb = await this.client.heartbeatJob(jobId, {
|
|
138
|
-
|
|
264
|
+
worker_instance_id: workerInstanceId,
|
|
265
|
+
worker_session_token: sessionToken,
|
|
139
266
|
attempt,
|
|
140
267
|
});
|
|
141
268
|
if (hb.directives.should_cancel) {
|
|
@@ -162,13 +289,14 @@ export class Worker {
|
|
|
162
289
|
try {
|
|
163
290
|
const result = await fn(job.parameters, actionController.signal, actionContext);
|
|
164
291
|
clearInterval(heartbeatTimer);
|
|
165
|
-
signal
|
|
292
|
+
signal?.removeEventListener("abort", onAbort);
|
|
166
293
|
eventer.stop();
|
|
167
294
|
await eventerPromise;
|
|
168
295
|
if (hbLost)
|
|
169
296
|
return;
|
|
170
297
|
const completeReq = {
|
|
171
|
-
|
|
298
|
+
worker_instance_id: workerInstanceId,
|
|
299
|
+
worker_session_token: sessionToken,
|
|
172
300
|
attempt,
|
|
173
301
|
status: "completed",
|
|
174
302
|
};
|
|
@@ -180,7 +308,7 @@ export class Worker {
|
|
|
180
308
|
}
|
|
181
309
|
catch (err) {
|
|
182
310
|
clearInterval(heartbeatTimer);
|
|
183
|
-
signal
|
|
311
|
+
signal?.removeEventListener("abort", onAbort);
|
|
184
312
|
eventer.stop();
|
|
185
313
|
await eventerPromise;
|
|
186
314
|
if (err instanceof AuthRevokedError) {
|
|
@@ -194,7 +322,7 @@ export class Worker {
|
|
|
194
322
|
}
|
|
195
323
|
this.logger.error(`[mobius] job ${jobId} failed:`, err);
|
|
196
324
|
const errType = actionController.signal.aborted ? "Timeout" : "Error";
|
|
197
|
-
await this.failJob(jobId,
|
|
325
|
+
await this.failJob(jobId, workerInstanceId, sessionToken, attempt, errType, String(err));
|
|
198
326
|
}
|
|
199
327
|
}
|
|
200
328
|
heartbeatInterval(job) {
|
|
@@ -205,10 +333,11 @@ export class Worker {
|
|
|
205
333
|
}
|
|
206
334
|
return 10000;
|
|
207
335
|
}
|
|
208
|
-
async failJob(jobId,
|
|
336
|
+
async failJob(jobId, workerInstanceId, sessionToken, attempt, errorType, msg) {
|
|
209
337
|
try {
|
|
210
338
|
await this.client.completeJob(jobId, {
|
|
211
|
-
|
|
339
|
+
worker_instance_id: workerInstanceId,
|
|
340
|
+
worker_session_token: sessionToken,
|
|
212
341
|
attempt,
|
|
213
342
|
status: "failed",
|
|
214
343
|
error_type: errorType,
|
|
@@ -221,17 +350,24 @@ export class Worker {
|
|
|
221
350
|
}
|
|
222
351
|
}
|
|
223
352
|
/**
|
|
224
|
-
*
|
|
353
|
+
* Runs multiple worker instances in one process. Most callers do not
|
|
354
|
+
* need a pool — to run several jobs from one process, set
|
|
355
|
+
* {@link WorkerConfig.concurrency} on a single {@link Worker} and the
|
|
356
|
+
* admin UI will show one row with a saturation bar. Reach for a pool
|
|
357
|
+
* only when each child should surface as its own row on the workers
|
|
358
|
+
* page (independent draining, in-flight isolation).
|
|
225
359
|
*/
|
|
226
360
|
export class WorkerPool {
|
|
227
361
|
constructor(client, config) {
|
|
228
362
|
this.client = client;
|
|
229
363
|
this.actions = new Map();
|
|
230
364
|
this.abortController = new AbortController();
|
|
365
|
+
const prefix = config.workerInstanceIdPrefix && config.workerInstanceIdPrefix !== ""
|
|
366
|
+
? config.workerInstanceIdPrefix
|
|
367
|
+
: `worker-${randomUUID()}`;
|
|
231
368
|
this.config = {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
: `worker-${randomUUID()}`,
|
|
369
|
+
workerInstanceIdPrefix: prefix,
|
|
370
|
+
concurrency: config.concurrency && config.concurrency > 0 ? config.concurrency : 1,
|
|
235
371
|
name: config.name ?? "",
|
|
236
372
|
version: config.version ?? "",
|
|
237
373
|
queues: config.queues ?? [],
|
|
@@ -262,7 +398,8 @@ export class WorkerPool {
|
|
|
262
398
|
let firstError;
|
|
263
399
|
const workers = Array.from({ length: this.config.count }, (_, i) => {
|
|
264
400
|
return new Worker(this.client, {
|
|
265
|
-
|
|
401
|
+
workerInstanceId: `${this.config.workerInstanceIdPrefix}-${i + 1}`,
|
|
402
|
+
concurrency: this.config.concurrency,
|
|
266
403
|
name: this.config.name,
|
|
267
404
|
version: this.config.version,
|
|
268
405
|
queues: this.config.queues,
|
|
@@ -301,14 +438,46 @@ export class WorkerPool {
|
|
|
301
438
|
this.abortController.abort();
|
|
302
439
|
}
|
|
303
440
|
}
|
|
441
|
+
// sleep resolves after ms or when the signal aborts, whichever comes
|
|
442
|
+
// first. Detaches the abort listener on the natural-resolution path
|
|
443
|
+
// so it doesn't accumulate on a long-lived signal across thousands of
|
|
444
|
+
// poll cycles.
|
|
304
445
|
function sleep(ms, signal) {
|
|
446
|
+
// AbortSignal does not retroactively dispatch abort to listeners
|
|
447
|
+
// added after the signal already fired, so an already-aborted signal
|
|
448
|
+
// would otherwise wait the full ms before resolving.
|
|
449
|
+
if (signal.aborted)
|
|
450
|
+
return Promise.resolve();
|
|
305
451
|
return new Promise((resolve) => {
|
|
306
|
-
const
|
|
307
|
-
signal.addEventListener("abort", () => {
|
|
452
|
+
const onAbort = () => {
|
|
308
453
|
clearTimeout(t);
|
|
309
454
|
resolve();
|
|
310
|
-
}
|
|
455
|
+
};
|
|
456
|
+
const t = setTimeout(() => {
|
|
457
|
+
signal.removeEventListener("abort", onAbort);
|
|
458
|
+
resolve();
|
|
459
|
+
}, ms);
|
|
460
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
// abortAsPromise returns a promise that resolves when the signal
|
|
464
|
+
// aborts, plus a cancel function the caller invokes when the promise
|
|
465
|
+
// is no longer needed (e.g. when something else won a Promise.race).
|
|
466
|
+
// Without the cancel handle, every Promise.race in the concurrency
|
|
467
|
+
// loop would leak a listener on the long-lived worker signal.
|
|
468
|
+
function abortAsPromise(signal) {
|
|
469
|
+
if (signal.aborted)
|
|
470
|
+
return { promise: Promise.resolve(), cancel: () => { } };
|
|
471
|
+
let resolveFn;
|
|
472
|
+
const promise = new Promise((resolve) => {
|
|
473
|
+
resolveFn = resolve;
|
|
311
474
|
});
|
|
475
|
+
const onAbort = () => resolveFn();
|
|
476
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
477
|
+
return {
|
|
478
|
+
promise,
|
|
479
|
+
cancel: () => signal.removeEventListener("abort", onAbort),
|
|
480
|
+
};
|
|
312
481
|
}
|
|
313
482
|
function anySignal(...signals) {
|
|
314
483
|
const controller = new AbortController();
|
|
@@ -358,7 +527,8 @@ class JobEventer {
|
|
|
358
527
|
}
|
|
359
528
|
try {
|
|
360
529
|
await this.client.emitJobEvents(this.job.job_id, {
|
|
361
|
-
|
|
530
|
+
worker_instance_id: this.options.workerInstanceId,
|
|
531
|
+
worker_session_token: this.options.sessionToken,
|
|
362
532
|
attempt: this.job.attempt,
|
|
363
533
|
events: batch,
|
|
364
534
|
});
|
package/dist/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMzC,OAAO,EACL,gBAAgB,EAEhB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,GAEjB,MAAM,aAAa,CAAC;AAarB,MAAM,YAAY,GAAW;IAC3B,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;CAChB,CAAC;AAEF,MAAM,aAAa,GAAW;IAC5B,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACvC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACxC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;CAC3C,CAAC;AAsEF;;;;GAIG;AACH,MAAM,OAAO,MAAM;IAWjB,YACmB,MAAc,EAC/B,MAAoB,EACpB,OAA+B;QAFd,WAAM,GAAN,MAAM,CAAQ;QAJzB,oBAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QACxC,gBAAW,GAAG,KAAK,CAAC;QAO1B,IAAI,CAAC,MAAM,GAAG;YACZ,QAAQ,EACN,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE;YAC5E,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;YAC7B,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,EAAE;YAC7C,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,GAAG;YAC5C,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE;SAC5C,CAAC;QACF,IAAI,CAAC,MAAM;YACT,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC;QAC3E,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,GAAG,EAAoB,CAAC;IACxD,CAAC;IAED,wDAAwD;IACxD,QAAQ,CAAC,IAAY,EAAE,EAAY;QACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG,CAAC,MAAoB;QAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM;YACrB,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QAEhC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,MAAM,CAAC,QAAQ,UAAU,CAAC,CAAC;QAEpE,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,WAAW;gBAAE,MAAM;YAE5B,IAAI,GAAoB,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAoB;oBAChC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;oBAC/B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;iBAC1C,CAAC;gBACF,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI;oBAAE,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC9D,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;oBAAE,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBACvE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;oBAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACxE,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;oBAChC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBACzC,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACvD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,QAAQ,CAAC,OAAO;oBAAE,MAAM;gBAC5B,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;oBACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;oBACjE,MAAM,GAAG,CAAC;gBACZ,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;gBAChD,MAAM,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC5B,SAAS;YACX,CAAC;YAED,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChB,MAAM,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACzB,SAAS;YACX,CAAC;YAED,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,MAAM,CAAC,QAAQ,UAAU,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,gBAAgB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,IAAI;QACF,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED,8EAA8E;IAEtE,KAAK,CAAC,UAAU,CACtB,GAAa,EACb,MAAmB;QAEnB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,gBAAgB,KAAK,sBAAsB,GAAG,CAAC,aAAa,UAAU,GAAG,CAAC,SAAS,YAAY,GAAG,CAAC,MAAM,aAAa,OAAO,GAAG,CACjI,CAAC;QAEF,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,gCAAgC,CAAC;YACjF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;YACrC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,EAAE,GAAG,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC/C,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;YAC/C,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;YACrC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACrC,MAAM,aAAa,GAAkB;YACnC,KAAK;YACL,KAAK,EAAE,GAAG,CAAC,MAAM;YACjB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC9B,QAAQ;YACR,OAAO;YACP,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,YAAY,EAAE,GAAG,CAAC,aAAa;YAC/B,QAAQ,EAAE,GAAG,CAAC,SAAS;YACvB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;SAC1D,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YAC5C,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE;oBAC/C,SAAS,EAAE,QAAQ;oBACnB,OAAO;iBACR,CAAC,CAAC;gBACH,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;oBAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,KAAK,6BAA6B,CAAC,CAAC;oBACrE,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBAC3B,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;oBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,gBAAgB,KAAK,yCAAyC,CAC/D,CAAC;oBACF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBAC3B,CAAC;qBAAM,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;oBACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,gBAAgB,KAAK,+BAA+B,CACrD,CAAC;oBACF,MAAM,GAAG,IAAI,CAAC;oBACd,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,KAAK,oBAAoB,EAAE,GAAG,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;QACH,CAAC,EAAE,QAAQ,CAAC,CAAC;QAEb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,CACrB,GAAG,CAAC,UAAU,EACd,gBAAgB,CAAC,MAAM,EACvB,aAAa,CACd,CAAC;YACF,aAAa,CAAC,cAAc,CAAC,CAAC;YAC9B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,cAAc,CAAC;YACrB,IAAI,MAAM;gBAAE,OAAO;YACnB,MAAM,WAAW,GAAuB;gBACtC,SAAS,EAAE,QAAQ;gBACnB,OAAO;gBACP,MAAM,EAAE,WAAW;aACpB,CAAC;YACF,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CACnE,QAAQ,CACT,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,KAAK,YAAY,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,aAAa,CAAC,cAAc,CAAC,CAAC;YAC9B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,cAAc,CAAC;YACrB,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,gBAAgB,KAAK,wDAAwD,CAC9E,CAAC;gBACF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,OAAO;YACT,CAAC;YACD,IAAI,GAAG,YAAY,cAAc,IAAI,MAAM,EAAE,CAAC;gBAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,KAAK,gCAAgC,CAAC,CAAC;gBACxE,OAAO;YACT,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,KAAK,UAAU,EAAE,GAAG,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;YACtE,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,GAAa;QACrC,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,IAAI;YACzC,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;QACzC,IAAI,GAAG,CAAC,0BAA0B,IAAI,IAAI,EAAE,CAAC;YAC3C,OAAO,GAAG,CAAC,0BAA0B,GAAG,IAAI,CAAC;QAC/C,CAAC;QACD,OAAO,KAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,KAAa,EACb,QAAgB,EAChB,OAAe,EACf,SAAiB,EACjB,GAAW;QAEX,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE;gBACnC,SAAS,EAAE,QAAQ;gBACnB,OAAO;gBACP,MAAM,EAAE,QAAQ;gBAChB,UAAU,EAAE,SAAS;gBACrB,aAAa,EAAE,GAAG;aACnB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6CAA6C,KAAK,GAAG,EACrD,GAAG,CACJ,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAYD;;GAEG;AACH,MAAM,OAAO,UAAU;IAWrB,YACmB,MAAc,EAC/B,MAAwB;QADP,WAAM,GAAN,MAAM,CAAQ;QAJhB,YAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC/C,oBAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAM9C,IAAI,CAAC,MAAM,GAAG;YACZ,cAAc,EACZ,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,KAAK,EAAE;gBACnD,CAAC,CAAC,MAAM,CAAC,cAAc;gBACvB,CAAC,CAAC,UAAU,UAAU,EAAE,EAAE;YAC9B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1D,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,EAAE;YAC7C,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,GAAG;YAC5C,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE;SAC5C,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,QAAQ,CAAC,IAAY,EAAE,EAAY;QACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG,CAAC,MAAoB;QAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM;YACrB,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QAEhC,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,UAAmB,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACjE,OAAO,IAAI,MAAM,CACf,IAAI,CAAC,MAAM,EACX;gBACE,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,GAAG,CAAC,EAAE;gBAClD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACtB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;gBAC1B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;gBAC5C,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB;gBACpD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;gBAC1B,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;gBAC1C,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;aAC3C,EACD,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,UAAU,CACtB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC3B,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;oBACpC,WAAW,GAAG,IAAI,CAAC;oBACnB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC/B,CAAC;qBAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBAC7B,UAAU,KAAV,UAAU,GAAK,GAAG,EAAC;oBACnB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QAEF,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAI,gBAAgB,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,UAAU,CAAC;QACnB,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,IAAI;QACF,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;CACF;AAED,SAAS,KAAK,CAAC,EAAU,EAAE,MAAmB;IAC5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,gBAAgB,CACrB,OAAO,EACP,GAAG,EAAE;YACH,YAAY,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,GAAG,OAAsB;IAC1C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACd,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM;QACR,CAAC;QACD,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU;IAKd,YACmB,MAAc,EACd,GAAa,EACb,OAKhB;QAPgB,WAAM,GAAN,MAAM,CAAQ;QACd,QAAG,GAAH,GAAG,CAAU;QACb,YAAO,GAAP,OAAO,CAKvB;QAZc,UAAK,GAAoB,EAAE,CAAC;QACrC,WAAM,GAAG,KAAK,CAAC;QACf,SAAI,GAAwB,IAAI,CAAC;IAWtC,CAAC;IAEJ,IAAI,CAAC,IAAY,EAAE,OAAgC;QACjD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACjC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CACtB,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;IAChB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,GAAG;QACP,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBAClC,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE;wBACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;wBACjB,OAAO,EAAE,CAAC;oBACZ,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;oBAC/C,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;oBAChC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;oBACzB,MAAM,EAAE,KAAK;iBACd,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;oBAClC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CACtB,gBAAgB,IAAI,CAAC,GAAG,CAAC,MAAM,uCAAuC,CACvE,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,IAAI,GAAG,YAAY,oBAAoB,EAAE,CAAC;oBACxC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CACtB,gBAAgB,IAAI,CAAC,GAAG,CAAC,MAAM,kCAAkC,CAClE,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;oBACpC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CACtB,gBAAgB,IAAI,CAAC,GAAG,CAAC,MAAM,6BAA6B,CAC7D,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CACvB,gBAAgB,IAAI,CAAC,GAAG,CAAC,MAAM,6BAA6B,EAC5D,GAAG,CACJ,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
|