agent-hitch 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/adapters/providers/deepseek.js +3 -1
- package/dist/src/adapters/providers/deepseek.js.map +1 -1
- package/dist/src/adapters/providers/shared.js +3 -2
- package/dist/src/adapters/providers/shared.js.map +1 -1
- package/dist/src/backends/harbor/backend.js +21 -5
- package/dist/src/backends/harbor/backend.js.map +1 -1
- package/dist/src/backends/harbor/verifier-config.js +11 -0
- package/dist/src/backends/harbor/verifier-config.js.map +1 -0
- package/dist/src/cli/arguments.js +14 -0
- package/dist/src/cli/arguments.js.map +1 -1
- package/dist/src/cli/output.js +4 -1
- package/dist/src/cli/output.js.map +1 -1
- package/dist/src/evals/harbor-bridge-error.js +65 -0
- package/dist/src/evals/harbor-bridge-error.js.map +1 -0
- package/dist/src/evals/index.js +2 -2
- package/dist/src/evals/index.js.map +1 -1
- package/dist/src/evals/infrastructure-retry.js +181 -0
- package/dist/src/evals/infrastructure-retry.js.map +1 -0
- package/dist/src/evals/progress.js +3 -0
- package/dist/src/evals/progress.js.map +1 -1
- package/dist/src/evals/request.js +14 -1
- package/dist/src/evals/request.js.map +1 -1
- package/dist/src/evals/rerun-slots.js +103 -0
- package/dist/src/evals/rerun-slots.js.map +1 -0
- package/dist/src/evals/rerun.js +167 -148
- package/dist/src/evals/rerun.js.map +1 -1
- package/dist/src/evals/service.js +196 -84
- package/dist/src/evals/service.js.map +1 -1
- package/dist/src/evals/trial-import.js +52 -36
- package/dist/src/evals/trial-import.js.map +1 -1
- package/dist/src/evals/verifier-diagnostics.js +235 -0
- package/dist/src/evals/verifier-diagnostics.js.map +1 -0
- package/docs/schemas/eval-request.schema.json +2 -0
- package/integrations/harbor/hitch_harbor_agent.py +389 -40
- package/integrations/harbor/hitch_harbor_verifier.py +314 -0
- package/package.json +3 -2
|
@@ -8,7 +8,9 @@ import { ensureControllerRuntime, writeRuntimeReference } from "../controller-ru
|
|
|
8
8
|
import { importEvalTrialRun, importEvalTrialRuns, TrialBundlePendingError, validateEvalTrialReferences } from "./trial-import.js";
|
|
9
9
|
import { EvalEventSink } from "./events.js";
|
|
10
10
|
import { createEvalProgress, mergeEvalProgressTrial, writeEvalProgress } from "./progress.js";
|
|
11
|
+
import { infrastructureFailureTrials, runInfrastructureRetries } from "./infrastructure-retry.js";
|
|
11
12
|
import { newEvalId, resolveLocalDatasetTaskIds, validateEvalId, validateEvalRequest } from "./request.js";
|
|
13
|
+
import { invalidTrialSlots } from "./rerun-slots.js";
|
|
12
14
|
export async function runEval({ evalId = newEvalId(), request, root, env = process.env, harborExecutable, signal, onEvent, trialBundleGraceMs }) {
|
|
13
15
|
if (!root)
|
|
14
16
|
throw invalidInput("a Hitch state root is required for eval");
|
|
@@ -133,7 +135,10 @@ export async function runEval({ evalId = newEvalId(), request, root, env = proce
|
|
|
133
135
|
benchmark_id: normalized.benchmark_id,
|
|
134
136
|
benchmark_revision: normalized.benchmark_revision,
|
|
135
137
|
attempts: normalized.attempts,
|
|
138
|
+
attempt_execution: "harbor-attempt-shards-v1",
|
|
136
139
|
max_concurrent: normalized.max_concurrent,
|
|
140
|
+
infrastructure_retries: normalized.infrastructure_retries,
|
|
141
|
+
infrastructure_retry_backoff_ms: normalized.infrastructure_retry_backoff_ms,
|
|
137
142
|
...(localTaskIds === null ? {} : { tasks: localTaskIds }),
|
|
138
143
|
controller_runtime: {
|
|
139
144
|
runtime_id: controllerRuntime.runtime_id,
|
|
@@ -173,95 +178,190 @@ export async function runEval({ evalId = newEvalId(), request, root, env = proce
|
|
|
173
178
|
...(signal ? { signal } : {}),
|
|
174
179
|
});
|
|
175
180
|
}
|
|
176
|
-
const
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
181
|
+
const backendRuns = [];
|
|
182
|
+
const infrastructureRetryRuns = [];
|
|
183
|
+
for (let logicalAttempt = 1; logicalAttempt <= normalized.attempts; logicalAttempt += 1) {
|
|
184
|
+
if (signal?.aborted)
|
|
185
|
+
break;
|
|
186
|
+
const backendDirectory = normalized.attempts === 1
|
|
187
|
+
? path.join(evalDirectory, "harbor")
|
|
188
|
+
: path.join(evalDirectory, "harbor", attemptDirectoryName(logicalAttempt));
|
|
189
|
+
const harborJobDirectory = path.join(backendDirectory, "job");
|
|
190
|
+
const shardRefs = [];
|
|
191
|
+
const publish = async (ref) => {
|
|
192
|
+
if (ref.attempt !== logicalAttempt) {
|
|
193
|
+
throw new HitchError(`Harbor returned attempt ${ref.attempt}, expected ${logicalAttempt}`, {
|
|
194
|
+
code: "eval_trial_attempt_mismatch",
|
|
195
|
+
exitCode: 12,
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
if (!shardRefs.some((current) => current.trial_id === ref.trial_id))
|
|
199
|
+
shardRefs.push(ref);
|
|
200
|
+
if (progress === null)
|
|
201
|
+
throw new Error("eval progress was not initialized");
|
|
202
|
+
const previousGeneration = progress.generation;
|
|
203
|
+
progress = mergeEvalProgressTrial(progress, ref);
|
|
204
|
+
if (progress.generation === previousGeneration)
|
|
205
|
+
return;
|
|
206
|
+
await validateEvalTrialReferences(root, evalId, [ref], {
|
|
207
|
+
benchmarkId: normalized.benchmark_id,
|
|
208
|
+
benchmarkRevision: normalized.benchmark_revision,
|
|
209
|
+
});
|
|
210
|
+
await writeEvalProgress(evalDirectory, progress);
|
|
211
|
+
sink.emit({
|
|
212
|
+
type: "eval.trial.published",
|
|
213
|
+
trial_id: ref.trial_id,
|
|
214
|
+
task_id: ref.task_id,
|
|
215
|
+
attempt: ref.attempt,
|
|
216
|
+
run_id: ref.run_id,
|
|
217
|
+
observation_status: ref.observation_status,
|
|
218
|
+
settled_trials: progress.trials.length,
|
|
219
|
+
generation: progress.generation,
|
|
220
|
+
});
|
|
221
|
+
};
|
|
222
|
+
const backendRun = await runHarborBackend({
|
|
223
|
+
evalId,
|
|
224
|
+
evalDirectory,
|
|
225
|
+
backendDirectory,
|
|
226
|
+
logicalAttempt,
|
|
227
|
+
request: { ...normalized, attempts: 1 },
|
|
228
|
+
root,
|
|
229
|
+
resolvedRevision,
|
|
230
|
+
runtimeDirectory: controllerRuntime.directory,
|
|
231
|
+
runtimeId: controllerRuntime.runtime_id,
|
|
232
|
+
preparedArtifact,
|
|
233
|
+
...(localTransport ? { localTransport } : {}),
|
|
234
|
+
env,
|
|
235
|
+
...(harborExecutable !== undefined ? { harborExecutable } : {}),
|
|
236
|
+
...(signal ? { signal } : {}),
|
|
237
|
+
...(trialBundleGraceMs === undefined ? {} : { trialBundleGraceMs }),
|
|
238
|
+
emit: (event) => sink.emit(event),
|
|
239
|
+
onTrialSettled: async (trial, context) => {
|
|
240
|
+
try {
|
|
241
|
+
const ref = await importEvalTrialRun({
|
|
242
|
+
root,
|
|
243
|
+
evalId,
|
|
244
|
+
evalDirectory,
|
|
245
|
+
harborJobDirectory,
|
|
246
|
+
expectedAttempt: logicalAttempt,
|
|
247
|
+
request: normalized,
|
|
248
|
+
resolvedRevision,
|
|
211
249
|
benchmarkId: normalized.benchmark_id,
|
|
212
250
|
benchmarkRevision: normalized.benchmark_revision,
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
attempt: ref.attempt,
|
|
220
|
-
run_id: ref.run_id,
|
|
221
|
-
observation_status: ref.observation_status,
|
|
222
|
-
settled_trials: progress.trials.length,
|
|
223
|
-
generation: progress.generation,
|
|
224
|
-
});
|
|
251
|
+
runtimeId: controllerRuntime.runtime_id,
|
|
252
|
+
requireCompleteMarker: true,
|
|
253
|
+
allowMissingBundleDiagnostic: context.bundleWaitExpired,
|
|
254
|
+
}, trial, shardRefs.length, shardRefs);
|
|
255
|
+
await publish(ref);
|
|
256
|
+
return true;
|
|
225
257
|
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
258
|
+
catch (error) {
|
|
259
|
+
if (error instanceof TrialBundlePendingError)
|
|
260
|
+
return false;
|
|
261
|
+
throw error;
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
});
|
|
265
|
+
backendRuns.push({ attempt: logicalAttempt, run: backendRun });
|
|
266
|
+
const terminalRefs = await importEvalTrialRuns({
|
|
267
|
+
root,
|
|
268
|
+
evalId,
|
|
269
|
+
evalDirectory,
|
|
270
|
+
harborJobDirectory,
|
|
271
|
+
expectedAttempt: logicalAttempt,
|
|
272
|
+
request: normalized,
|
|
273
|
+
resolvedRevision,
|
|
274
|
+
benchmarkId: normalized.benchmark_id,
|
|
275
|
+
benchmarkRevision: normalized.benchmark_revision,
|
|
276
|
+
runtimeId: controllerRuntime.runtime_id,
|
|
277
|
+
rawResult: backendRun.rawResult,
|
|
278
|
+
}, shardRefs);
|
|
279
|
+
for (const ref of terminalRefs)
|
|
280
|
+
await publish(ref);
|
|
281
|
+
assertBackendTrialSet(backendRun.rawResult, shardRefs);
|
|
282
|
+
await validateEvalTrialReferences(root, evalId, shardRefs, {
|
|
283
|
+
benchmarkId: normalized.benchmark_id,
|
|
284
|
+
benchmarkRevision: normalized.benchmark_revision,
|
|
285
|
+
});
|
|
286
|
+
if (backendRun.backend.process_exit_code !== 0 || backendRun.rawResult === null)
|
|
287
|
+
break;
|
|
288
|
+
if (localTransport && localSourceBackendFailure(backendRun.rawResult))
|
|
289
|
+
break;
|
|
290
|
+
if (progress === null)
|
|
291
|
+
throw new Error("eval progress was not initialized");
|
|
292
|
+
const retries = await runInfrastructureRetries({
|
|
293
|
+
evalId,
|
|
294
|
+
evalDirectory,
|
|
295
|
+
logicalAttempt,
|
|
296
|
+
initialRefs: shardRefs,
|
|
297
|
+
progress,
|
|
298
|
+
request: normalized,
|
|
299
|
+
root,
|
|
300
|
+
resolvedRevision,
|
|
301
|
+
controllerRuntime,
|
|
302
|
+
preparedArtifact,
|
|
303
|
+
...(localTransport ? { localTransport } : {}),
|
|
304
|
+
env,
|
|
305
|
+
...(harborExecutable !== undefined ? { harborExecutable } : {}),
|
|
306
|
+
...(signal ? { signal } : {}),
|
|
307
|
+
...(trialBundleGraceMs === undefined ? {} : { trialBundleGraceMs }),
|
|
308
|
+
sink,
|
|
309
|
+
...(localTransport ? { stopAfterResult: localSourceBackendFailure } : {}),
|
|
310
|
+
});
|
|
311
|
+
progress = retries.progress;
|
|
312
|
+
infrastructureRetryRuns.push(...retries.runs);
|
|
313
|
+
}
|
|
246
314
|
if (progress === null)
|
|
247
315
|
throw new Error("eval progress was not initialized");
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
const
|
|
257
|
-
|
|
258
|
-
|
|
316
|
+
trialRefs = progress.trials;
|
|
317
|
+
const cancelled = signal?.aborted === true;
|
|
318
|
+
const localSourceFailure = localTransport
|
|
319
|
+
? backendRuns.some(({ run }) => localSourceBackendFailure(run.rawResult))
|
|
320
|
+
|| infrastructureRetryRuns.some(({ run }) => localSourceBackendFailure(run.rawResult))
|
|
321
|
+
: false;
|
|
322
|
+
const backendsSucceeded = backendRuns.length === normalized.attempts
|
|
323
|
+
&& backendRuns.every(({ run }) => run.backend.process_exit_code === 0 && run.rawResult !== null);
|
|
324
|
+
const invalidTrials = localTaskIds === null
|
|
325
|
+
? trialRefs.filter((trial) => trial.observation_status !== "valid").map((trial) => ({ task_id: trial.task_id, attempt: trial.attempt }))
|
|
326
|
+
: invalidTrialSlots(localTaskIds, normalized.attempts, progress);
|
|
327
|
+
const infrastructureFailures = infrastructureFailureTrials(trialRefs);
|
|
328
|
+
const infrastructureFailureSlots = infrastructureFailures.map((trial) => ({ task_id: trial.task_id, attempt: trial.attempt }));
|
|
329
|
+
const verifierRetriesExhausted = normalized.infrastructure_retries > 0 && infrastructureFailures.some((trial) => trial.invalid_reason === "verifier_infrastructure_failure");
|
|
330
|
+
const infrastructureErrorCode = verifierRetriesExhausted || (normalized.infrastructure_retries > 0 && infrastructureRetryRuns.length > 0)
|
|
331
|
+
? "eval_infrastructure_retries_exhausted"
|
|
332
|
+
: "eval_has_infrastructure_failures";
|
|
333
|
+
const succeeded = !cancelled && !localSourceFailure && backendsSucceeded && invalidTrials.length === 0;
|
|
334
|
+
const singleBackend = backendRuns.length === 1 ? backendRuns[0].run : undefined;
|
|
259
335
|
result = {
|
|
260
336
|
schema_version: SCHEMA_VERSION,
|
|
261
337
|
eval_id: evalId,
|
|
262
338
|
status: cancelled ? "cancelled" : succeeded ? "succeeded" : "failed",
|
|
263
339
|
exit_code: cancelled ? 9 : succeeded ? 0 : 13,
|
|
264
|
-
backend:
|
|
340
|
+
...(singleBackend ? { backend: singleBackend.backend, backend_summary: singleBackend.summary } : {}),
|
|
341
|
+
...(normalized.attempts > 1 ? {
|
|
342
|
+
backend_runs: backendRuns.map(({ attempt, run }) => ({
|
|
343
|
+
attempt,
|
|
344
|
+
backend: run.backend,
|
|
345
|
+
backend_summary: run.summary,
|
|
346
|
+
})),
|
|
347
|
+
} : {}),
|
|
348
|
+
infrastructure_retry_policy: {
|
|
349
|
+
max_retries: normalized.infrastructure_retries,
|
|
350
|
+
backoff_ms: normalized.infrastructure_retry_backoff_ms,
|
|
351
|
+
verifier_execution: "same_trial_verifier_only",
|
|
352
|
+
candidate_rerun_on_verifier_failure: false,
|
|
353
|
+
},
|
|
354
|
+
...(infrastructureRetryRuns.length > 0 ? {
|
|
355
|
+
infrastructure_retry_runs: infrastructureRetryRuns.map(({ attempt, retry, tasks, triggers, refs, run }) => ({
|
|
356
|
+
attempt,
|
|
357
|
+
retry,
|
|
358
|
+
tasks,
|
|
359
|
+
trigger_trials: triggers,
|
|
360
|
+
trials: refs,
|
|
361
|
+
backend: run.backend,
|
|
362
|
+
backend_summary: run.summary,
|
|
363
|
+
})),
|
|
364
|
+
} : {}),
|
|
265
365
|
candidate: plan.candidate,
|
|
266
366
|
dataset: normalized.dataset,
|
|
267
367
|
benchmark_id: normalized.benchmark_id,
|
|
@@ -269,19 +369,28 @@ export async function runEval({ evalId = newEvalId(), request, root, env = proce
|
|
|
269
369
|
generation: progress.generation,
|
|
270
370
|
trials: trialRefs,
|
|
271
371
|
summary: summarizeTrialRefs(trialRefs),
|
|
272
|
-
backend_summary: backendRun.summary,
|
|
273
372
|
prepared_artifact: preparedArtifactSummary(preparedArtifact),
|
|
274
373
|
...(localTransport ? { local_source_transport: transportSummary(localTransport) } : {}),
|
|
275
374
|
...(succeeded ? {} : {
|
|
276
375
|
error: {
|
|
277
|
-
code: cancelled
|
|
376
|
+
code: cancelled
|
|
377
|
+
? "cancelled"
|
|
378
|
+
: localSourceFailure
|
|
379
|
+
? "local_source_materialize_failed"
|
|
380
|
+
: !backendsSucceeded
|
|
381
|
+
? "harbor_failed"
|
|
382
|
+
: infrastructureFailures.length > 0
|
|
383
|
+
? infrastructureErrorCode
|
|
384
|
+
: "eval_has_invalid_tasks",
|
|
278
385
|
message: cancelled
|
|
279
386
|
? "eval was cancelled"
|
|
280
387
|
: localSourceFailure
|
|
281
388
|
? "Harbor rejected the transported local Git source before candidate execution"
|
|
282
|
-
:
|
|
283
|
-
? `Harbor
|
|
284
|
-
:
|
|
389
|
+
: !backendsSucceeded
|
|
390
|
+
? `Harbor attempt shards completed ${backendRuns.length}/${normalized.attempts}`
|
|
391
|
+
: infrastructureFailures.length > 0
|
|
392
|
+
? `${infrastructureErrorCode === "eval_infrastructure_retries_exhausted" ? "infrastructure retries exhausted" : "verifier infrastructure failure"}: ${infrastructureFailureSlots.map(trial => `${trial.task_id}#${trial.attempt}`).join(", ")}`
|
|
393
|
+
: `eval has invalid or missing trials: ${invalidTrials.map(trial => `${trial.task_id}#${trial.attempt}`).join(", ")}`,
|
|
285
394
|
},
|
|
286
395
|
}),
|
|
287
396
|
started_at: startedAt.toISOString(),
|
|
@@ -321,6 +430,9 @@ function assertBackendTrialSet(rawResult, refs) {
|
|
|
321
430
|
throw new Error("Harbor terminal trial set does not match published eval progress");
|
|
322
431
|
}
|
|
323
432
|
}
|
|
433
|
+
function attemptDirectoryName(attempt) {
|
|
434
|
+
return `attempt-${String(attempt).padStart(4, "0")}`;
|
|
435
|
+
}
|
|
324
436
|
export function summarizeTrialRefs(trials) {
|
|
325
437
|
const valid = trials.filter((trial) => trial.observation_status === "valid" && typeof trial.reward === "number");
|
|
326
438
|
const rewards = valid.map((trial) => trial.reward);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/evals/service.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAY,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpI,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE3H,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAGhG,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAClI,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAwB1G,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAkB;IAC7J,IAAI,CAAC,IAAI;QAAE,MAAM,YAAY,CAAC,yCAAyC,CAAC,CAAC;IACzE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,IAAI,UAAU,CAAC,2BAA2B,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/D,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAClB,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;IAC5E,IAAI,MAAkB,CAAC;IACvB,IAAI,SAAS,GAAkD,EAAE,CAAC;IAClE,IAAI,QAAQ,GAA0B,IAAI,CAAC;IAC3C,IAAI,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9F,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACzE,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QACrF,IAAI,cAAgD,CAAC;QACrD,IAAI,gBAAgB,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,gBAAgB,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC1F,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC;YAC7C,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ;gBAAE,MAAM,YAAY,CAAC,4DAA4D,CAAC,CAAC;YAC/I,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACxD,MAAM,IAAI,UAAU,CAAC,uDAAuD,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3I,CAAC;YACD,cAAc,GAAG,MAAM,sBAAsB,CAAC;gBAC5C,aAAa;gBACb,gBAAgB;gBAChB,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU;gBAC3C,GAAG;gBACH,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9B,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,4BAA4B;gBAClC,mBAAmB,EAAE,cAAc,CAAC,QAAQ,CAAC,mBAAmB;gBAChE,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,MAAM;gBACtC,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,cAAc;gBACtD,aAAa,EAAE,cAAc,CAAC,QAAQ,CAAC,aAAa;gBACpD,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC;QAC7C,MAAM,sBAAsB,GAAG,cAAc,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,QAAQ;YACtG,CAAC,CAAC;gBACE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU;gBACrC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,MAAM;gBACtC,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,IAAI;gBAClC,kBAAkB,EAAE,cAAc,CAAC,QAAQ,CAAC,mBAAmB;gBAC/D,aAAa,EAAE,cAAc,CAAC,QAAQ,CAAC,cAAc;aACtD;YACH,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,gBAAgB,EAAE;YACtD,IAAI;YACJ,GAAG;YACH,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,kBAAkB,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;YACnE,MAAM,IAAI,UAAU,CAAC,mEAAmE,EAAE;gBACxF,IAAI,EAAE,6BAA6B;gBACnC,QAAQ,EAAE,CAAC;aACZ,CAAC,CAAC;QACL,CAAC;QACD,MAAM,gBAAgB,GAA8B;YAClD,SAAS,EAAE,yBAAyB,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC;YAChE,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;YAC/C,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;YACnD,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,eAAe,EAAE,QAAQ,CAAC,eAAe;YACzC,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,YAAY,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO;YACxD,WAAW,EAAE,QAAQ,CAAC,WAAW;SAClC,CAAC;QACF,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,gCAAgC;YACtC,OAAO,EAAE,QAAQ,CAAC,UAAU;YAC5B,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC,CAAC;QACH,uEAAuE;QACvE,4DAA4D;QAC5D,MAAM,iBAAiB,GAA+B,MAAM,uBAAuB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9F,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QACrF,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,yBAAyB;YAC/B,UAAU,EAAE,iBAAiB,CAAC,UAAU;YACxC,SAAS,EAAE,iBAAiB,CAAC,SAAS;YACtC,SAAS,EAAE,cAAc;SAC1B,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,0BAA0B,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,YAAY,EAAE,MAAM,IAAI,IAAI,CAAC;QAClD,MAAM,aAAa,GAAG,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC;QACxF,IAAI,aAAa,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC;YAAE,MAAM,YAAY,CAAC,oDAAoD,CAAC,CAAC;QAC7I,MAAM,IAAI,GAAG;YACX,cAAc,EAAE,cAAc;YAC9B,OAAO,EAAE,MAAM;YACf,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE;gBACT,EAAE,EAAE,aAAa;gBACjB,qBAAqB,EAAE,UAAU,CAAC,WAAW;gBAC7C,WAAW,EAAE,gBAAgB,CAAC,gBAAgB,CAAC;gBAC/C,UAAU,EAAE,gBAAgB,CAAC,UAAU;gBACvC,iBAAiB,EAAE,gBAAgB,CAAC,QAAQ;gBAC5C,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,IAAI;aAChC;YACD,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;YACjD,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;YACzD,kBAAkB,EAAE;gBAClB,UAAU,EAAE,iBAAiB,CAAC,UAAU;gBACxC,eAAe,EAAE,iBAAiB,CAAC,eAAe;aACnD;YACD,iBAAiB,EAAE,uBAAuB,CAAC,gBAAgB,CAAC;YAC5D,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;QACF,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,EAAE,gBAAgB,CAAC,CAAC;QACrF,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;QACnE,QAAQ,GAAG,kBAAkB,CAAC;YAC5B,MAAM;YACN,WAAW,EAAE,UAAU,CAAC,YAAY;YACpC,iBAAiB,EAAE,UAAU,CAAC,kBAAkB;YAChD,YAAY;YACZ,aAAa;YACb,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;SACnC,CAAC,CAAC;QACH,MAAM,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,gBAAgB,CAAC,UAAU;YACpC,iBAAiB,EAAE,gBAAgB,CAAC,QAAQ;YAC5C,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,aAAa,EAAE,YAAY;YAC3B,cAAc,EAAE,aAAa;SAC9B,CAAC,CAAC;QACH,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,uBAAuB,CAAC,cAAc,EAAE;gBAC5C,QAAQ,EAAE;oBACR,SAAS,EAAE,gBAAgB,CAAC,UAAU;oBACtC,kBAAkB,EAAE,gBAAgB,CAAC,QAAQ;oBAC7C,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,MAAgB;iBACnD;gBACD,GAAG;gBACH,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC;YACxC,MAAM;YACN,aAAa;YACb,OAAO,EAAE,UAAU;YACnB,IAAI;YACJ,gBAAgB;YAChB,gBAAgB,EAAE,iBAAiB,CAAC,SAAS;YAC7C,SAAS,EAAE,iBAAiB,CAAC,UAAU;YACvC,gBAAgB;YAChB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG;YACH,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC;YACnE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACjC,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAoB,EAAE;gBACzD,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC;wBACnC,IAAI;wBACJ,MAAM;wBACN,aAAa;wBACb,OAAO,EAAE,UAAU;wBACnB,gBAAgB;wBAChB,WAAW,EAAE,UAAU,CAAC,YAAY;wBACpC,iBAAiB,EAAE,UAAU,CAAC,kBAAkB;wBAChD,SAAS,EAAE,iBAAiB,CAAC,UAAU;wBACvC,qBAAqB,EAAE,IAAI;wBAC3B,4BAA4B,EAAE,OAAO,CAAC,iBAAiB;qBACxD,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;oBAChE,IAAI,QAAQ,KAAK,IAAI;wBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;oBAC5E,MAAM,kBAAkB,GAAG,QAAQ,CAAC,UAAU,CAAC;oBAC/C,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBACjD,IAAI,QAAQ,CAAC,UAAU,KAAK,kBAAkB,EAAE,CAAC;wBAC/C,MAAM,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE;4BACrD,WAAW,EAAE,UAAU,CAAC,YAAY;4BACpC,iBAAiB,EAAE,UAAU,CAAC,kBAAkB;yBACjD,CAAC,CAAC;wBACH,MAAM,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;wBACjD,IAAI,CAAC,IAAI,CAAC;4BACR,IAAI,EAAE,sBAAsB;4BAC5B,QAAQ,EAAE,GAAG,CAAC,QAAQ;4BACtB,OAAO,EAAE,GAAG,CAAC,OAAO;4BACpB,OAAO,EAAE,GAAG,CAAC,OAAO;4BACpB,MAAM,EAAE,GAAG,CAAC,MAAM;4BAClB,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;4BAC1C,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM;4BACtC,UAAU,EAAE,QAAQ,CAAC,UAAU;yBAChC,CAAC,CAAC;oBACL,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,KAAK,YAAY,uBAAuB;wBAAE,OAAO,KAAK,CAAC;oBAC3D,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QACH,SAAS,GAAG,MAAM,mBAAmB,CAAC;YACpC,IAAI;YACJ,MAAM;YACN,aAAa;YACb,OAAO,EAAE,UAAU;YACnB,gBAAgB;YAChB,WAAW,EAAE,UAAU,CAAC,YAAY;YACpC,iBAAiB,EAAE,UAAU,CAAC,kBAAkB;YAChD,SAAS,EAAE,iBAAiB,CAAC,UAAU;YACvC,SAAS,EAAE,UAAU,CAAC,SAAS;SAChC,EAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;QAC3B,IAAI,QAAQ,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC5E,KAAK,MAAM,GAAG,IAAI,SAAS;YAAE,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC9E,MAAM,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACjD,qBAAqB,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;YACzD,WAAW,EAAE,UAAU,CAAC,YAAY;YACpC,iBAAiB,EAAE,UAAU,CAAC,kBAAkB;SACjD,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,EAAE,OAAO,CAAC;QAClC,MAAM,kBAAkB,GAAG,cAAc,CAAC,CAAC,CAAC,yBAAyB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACpG,MAAM,SAAS,GAAG,CAAC,SAAS,IAAI,CAAC,kBAAkB,IAAI,UAAU,CAAC,OAAO,CAAC,iBAAiB,KAAK,CAAC,IAAI,UAAU,CAAC,SAAS,KAAK,IAAI,CAAC;QACnI,MAAM,GAAG;YACP,cAAc,EAAE,cAAc;YAC9B,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;YACpE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YAC7C,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;YACjD,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC;YACtC,eAAe,EAAE,UAAU,CAAC,OAAO;YACnC,iBAAiB,EAAE,uBAAuB,CAAC,gBAAgB,CAAC;YAC5D,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnB,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,eAAe;oBACxG,OAAO,EAAE,SAAS;wBAChB,CAAC,CAAC,oBAAoB;wBACtB,CAAC,CAAC,kBAAkB;4BAClB,CAAC,CAAC,6EAA6E;4BACjF,CAAC,CAAC,UAAU,CAAC,SAAS,KAAK,IAAI;gCAC7B,CAAC,CAAC,wCAAwC,UAAU,CAAC,OAAO,CAAC,iBAAiB,IAAI,MAAM,GAAG;gCAC3F,CAAC,CAAC,2BAA2B,UAAU,CAAC,OAAO,CAAC,iBAAiB,IAAI,MAAM,EAAE;iBAClF;aACF,CAAC;YACF,UAAU,EAAE,SAAS,CAAC,WAAW,EAAE;YACnC,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,SAAS,GAAG,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC;QAC1C,MAAM,KAAK,GAAG,KAAK,YAAY,UAAU,CAAC;QAC1C,MAAM,GAAG;YACP,cAAc,EAAE,cAAc;YAC9B,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;YAChD,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YAC5D,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB;gBAC3E,OAAO,EAAG,KAAe,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;aACpD;YACD,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;YACjD,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;YACjE,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE,SAAS,CAAC,WAAW,EAAE;YACnC,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAC;IACJ,CAAC;IACD,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;IACvE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/J,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,SAAyC,EAAE,IAA+B;IACvG,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAA0C,CAAC,CAAC,CAAC,EAAE,CAAC;IACnH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;IACrK,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxD,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC1H,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAqD;IACtF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,KAAK,OAAO,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IACjH,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAgB,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM;QAC9B,CAAC,CAAC;YACE,KAAK,EAAE,OAAO,CAAC,MAAM;YACrB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM;YACvE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;YACzB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;SAC1B;QACH,CAAC,CAAC,IAAI,CAAC;IACT,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,MAAM;QACvB,WAAW,EAAE,KAAK,CAAC,MAAM;QACzB,SAAS,EAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;QACvC,cAAc,EAAE,SAAS,EAAE,IAAI,IAAI,IAAI;QACvC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;KAChD,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,SAAyC;IAC1E,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,4EAA4E;IAC5E,6EAA6E;IAC7E,uEAAuE;IACvE,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,gBAAgB,CAAC,SAA+B;IACvD,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IACpC,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;QACjD,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,UAAU,EAAE,QAAQ,CAAC,UAAU;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAmC;IAClE,OAAO;QACL,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;QAC/C,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;QACnD,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;KAClC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/evals/service.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAY,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpI,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE3H,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAGhG,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAClI,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAElG,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAsBrD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAkB;IAC7J,IAAI,CAAC,IAAI;QAAE,MAAM,YAAY,CAAC,yCAAyC,CAAC,CAAC;IACzE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,IAAI,UAAU,CAAC,2BAA2B,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/D,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAClB,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;IAC5E,IAAI,MAAkB,CAAC;IACvB,IAAI,SAAS,GAAkD,EAAE,CAAC;IAClE,IAAI,QAAQ,GAA0B,IAAI,CAAC;IAC3C,IAAI,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9F,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACzE,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QACrF,IAAI,cAAgD,CAAC;QACrD,IAAI,gBAAgB,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,gBAAgB,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC1F,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC;YAC7C,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ;gBAAE,MAAM,YAAY,CAAC,4DAA4D,CAAC,CAAC;YAC/I,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACxD,MAAM,IAAI,UAAU,CAAC,uDAAuD,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3I,CAAC;YACD,cAAc,GAAG,MAAM,sBAAsB,CAAC;gBAC5C,aAAa;gBACb,gBAAgB;gBAChB,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU;gBAC3C,GAAG;gBACH,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9B,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,4BAA4B;gBAClC,mBAAmB,EAAE,cAAc,CAAC,QAAQ,CAAC,mBAAmB;gBAChE,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,MAAM;gBACtC,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,cAAc;gBACtD,aAAa,EAAE,cAAc,CAAC,QAAQ,CAAC,aAAa;gBACpD,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC;QAC7C,MAAM,sBAAsB,GAAG,cAAc,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,QAAQ;YACtG,CAAC,CAAC;gBACE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU;gBACrC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,MAAM;gBACtC,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,IAAI;gBAClC,kBAAkB,EAAE,cAAc,CAAC,QAAQ,CAAC,mBAAmB;gBAC/D,aAAa,EAAE,cAAc,CAAC,QAAQ,CAAC,cAAc;aACtD;YACH,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,gBAAgB,EAAE;YACtD,IAAI;YACJ,GAAG;YACH,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,kBAAkB,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;YACnE,MAAM,IAAI,UAAU,CAAC,mEAAmE,EAAE;gBACxF,IAAI,EAAE,6BAA6B;gBACnC,QAAQ,EAAE,CAAC;aACZ,CAAC,CAAC;QACL,CAAC;QACD,MAAM,gBAAgB,GAA8B;YAClD,SAAS,EAAE,yBAAyB,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC;YAChE,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;YAC/C,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;YACnD,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,eAAe,EAAE,QAAQ,CAAC,eAAe;YACzC,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,YAAY,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO;YACxD,WAAW,EAAE,QAAQ,CAAC,WAAW;SAClC,CAAC;QACF,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,gCAAgC;YACtC,OAAO,EAAE,QAAQ,CAAC,UAAU;YAC5B,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC,CAAC;QACH,uEAAuE;QACvE,4DAA4D;QAC5D,MAAM,iBAAiB,GAA+B,MAAM,uBAAuB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9F,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QACrF,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,yBAAyB;YAC/B,UAAU,EAAE,iBAAiB,CAAC,UAAU;YACxC,SAAS,EAAE,iBAAiB,CAAC,SAAS;YACtC,SAAS,EAAE,cAAc;SAC1B,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,0BAA0B,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,YAAY,EAAE,MAAM,IAAI,IAAI,CAAC;QAClD,MAAM,aAAa,GAAG,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC;QACxF,IAAI,aAAa,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC;YAAE,MAAM,YAAY,CAAC,oDAAoD,CAAC,CAAC;QAC7I,MAAM,IAAI,GAAG;YACX,cAAc,EAAE,cAAc;YAC9B,OAAO,EAAE,MAAM;YACf,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE;gBACT,EAAE,EAAE,aAAa;gBACjB,qBAAqB,EAAE,UAAU,CAAC,WAAW;gBAC7C,WAAW,EAAE,gBAAgB,CAAC,gBAAgB,CAAC;gBAC/C,UAAU,EAAE,gBAAgB,CAAC,UAAU;gBACvC,iBAAiB,EAAE,gBAAgB,CAAC,QAAQ;gBAC5C,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,IAAI;aAChC;YACD,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;YACjD,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,iBAAiB,EAAE,0BAA0B;YAC7C,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;YACzD,+BAA+B,EAAE,UAAU,CAAC,+BAA+B;YAC3E,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;YACzD,kBAAkB,EAAE;gBAClB,UAAU,EAAE,iBAAiB,CAAC,UAAU;gBACxC,eAAe,EAAE,iBAAiB,CAAC,eAAe;aACnD;YACD,iBAAiB,EAAE,uBAAuB,CAAC,gBAAgB,CAAC;YAC5D,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;QACF,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,EAAE,gBAAgB,CAAC,CAAC;QACrF,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;QACnE,QAAQ,GAAG,kBAAkB,CAAC;YAC5B,MAAM;YACN,WAAW,EAAE,UAAU,CAAC,YAAY;YACpC,iBAAiB,EAAE,UAAU,CAAC,kBAAkB;YAChD,YAAY;YACZ,aAAa;YACb,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;SACnC,CAAC,CAAC;QACH,MAAM,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,gBAAgB,CAAC,UAAU;YACpC,iBAAiB,EAAE,gBAAgB,CAAC,QAAQ;YAC5C,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,aAAa,EAAE,YAAY;YAC3B,cAAc,EAAE,aAAa;SAC9B,CAAC,CAAC;QACH,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,uBAAuB,CAAC,cAAc,EAAE;gBAC5C,QAAQ,EAAE;oBACR,SAAS,EAAE,gBAAgB,CAAC,UAAU;oBACtC,kBAAkB,EAAE,gBAAgB,CAAC,QAAQ;oBAC7C,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,MAAgB;iBACnD;gBACD,GAAG;gBACH,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,WAAW,GAAyD,EAAE,CAAC;QAC7E,MAAM,uBAAuB,GAA6B,EAAE,CAAC;QAC7D,KAAK,IAAI,cAAc,GAAG,CAAC,EAAE,cAAc,IAAI,UAAU,CAAC,QAAQ,EAAE,cAAc,IAAI,CAAC,EAAE,CAAC;YACxF,IAAI,MAAM,EAAE,OAAO;gBAAE,MAAM;YAC3B,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,KAAK,CAAC;gBAChD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;gBACpC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC;YAC7E,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;YAC9D,MAAM,SAAS,GAAqB,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,KAAK,EAAE,GAAmB,EAAiB,EAAE;gBAC3D,IAAI,GAAG,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;oBACnC,MAAM,IAAI,UAAU,CAAC,2BAA2B,GAAG,CAAC,OAAO,cAAc,cAAc,EAAE,EAAE;wBACzF,IAAI,EAAE,6BAA6B;wBACnC,QAAQ,EAAE,EAAE;qBACb,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,CAAC;oBAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzF,IAAI,QAAQ,KAAK,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBAC5E,MAAM,kBAAkB,GAAG,QAAQ,CAAC,UAAU,CAAC;gBAC/C,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACjD,IAAI,QAAQ,CAAC,UAAU,KAAK,kBAAkB;oBAAE,OAAO;gBACvD,MAAM,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE;oBACrD,WAAW,EAAE,UAAU,CAAC,YAAY;oBACpC,iBAAiB,EAAE,UAAU,CAAC,kBAAkB;iBACjD,CAAC,CAAC;gBACH,MAAM,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;gBACjD,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,sBAAsB;oBAC5B,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;oBAC1C,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM;oBACtC,UAAU,EAAE,QAAQ,CAAC,UAAU;iBAChC,CAAC,CAAC;YACL,CAAC,CAAC;YACF,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC;gBACxC,MAAM;gBACN,aAAa;gBACb,gBAAgB;gBAChB,cAAc;gBACd,OAAO,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE;gBACvC,IAAI;gBACJ,gBAAgB;gBAChB,gBAAgB,EAAE,iBAAiB,CAAC,SAAS;gBAC7C,SAAS,EAAE,iBAAiB,CAAC,UAAU;gBACvC,gBAAgB;gBAChB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,GAAG;gBACH,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,GAAG,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC;gBACnE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBACjC,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAoB,EAAE;oBACzD,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC;4BACnC,IAAI;4BACJ,MAAM;4BACN,aAAa;4BACb,kBAAkB;4BAClB,eAAe,EAAE,cAAc;4BAC/B,OAAO,EAAE,UAAU;4BACnB,gBAAgB;4BAChB,WAAW,EAAE,UAAU,CAAC,YAAY;4BACpC,iBAAiB,EAAE,UAAU,CAAC,kBAAkB;4BAChD,SAAS,EAAE,iBAAiB,CAAC,UAAU;4BACvC,qBAAqB,EAAE,IAAI;4BAC3B,4BAA4B,EAAE,OAAO,CAAC,iBAAiB;yBACxD,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;wBACvC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;wBACnB,OAAO,IAAI,CAAC;oBACd,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,KAAK,YAAY,uBAAuB;4BAAE,OAAO,KAAK,CAAC;wBAC3D,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;YACH,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;YAC/D,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC;gBAC7C,IAAI;gBACJ,MAAM;gBACN,aAAa;gBACb,kBAAkB;gBAClB,eAAe,EAAE,cAAc;gBAC/B,OAAO,EAAE,UAAU;gBACnB,gBAAgB;gBAChB,WAAW,EAAE,UAAU,CAAC,YAAY;gBACpC,iBAAiB,EAAE,UAAU,CAAC,kBAAkB;gBAChD,SAAS,EAAE,iBAAiB,CAAC,UAAU;gBACvC,SAAS,EAAE,UAAU,CAAC,SAAS;aAChC,EAAE,SAAS,CAAC,CAAC;YACd,KAAK,MAAM,GAAG,IAAI,YAAY;gBAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;YACnD,qBAAqB,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACvD,MAAM,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;gBACzD,WAAW,EAAE,UAAU,CAAC,YAAY;gBACpC,iBAAiB,EAAE,UAAU,CAAC,kBAAkB;aACjD,CAAC,CAAC;YACH,IAAI,UAAU,CAAC,OAAO,CAAC,iBAAiB,KAAK,CAAC,IAAI,UAAU,CAAC,SAAS,KAAK,IAAI;gBAAE,MAAM;YACvF,IAAI,cAAc,IAAI,yBAAyB,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,MAAM;YAC7E,IAAI,QAAQ,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC;gBAC7C,MAAM;gBACN,aAAa;gBACb,cAAc;gBACd,WAAW,EAAE,SAAS;gBACtB,QAAQ;gBACR,OAAO,EAAE,UAAU;gBACnB,IAAI;gBACJ,gBAAgB;gBAChB,iBAAiB;gBACjB,gBAAgB;gBAChB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,GAAG;gBACH,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,GAAG,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC;gBACnE,IAAI;gBACJ,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1E,CAAC,CAAC;YACH,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC5B,uBAAuB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,QAAQ,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC5E,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC5B,MAAM,SAAS,GAAG,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAC3C,MAAM,kBAAkB,GAAG,cAAc;YACvC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;mBACpE,uBAAuB,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACxF,CAAC,CAAC,KAAK,CAAC;QACV,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAM,KAAK,UAAU,CAAC,QAAQ;eAC/D,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,KAAK,CAAC,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;QACnG,MAAM,aAAa,GAAG,YAAY,KAAK,IAAI;YACzC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACxI,CAAC,CAAC,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnE,MAAM,sBAAsB,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;QACtE,MAAM,0BAA0B,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/H,MAAM,wBAAwB,GAAG,UAAU,CAAC,sBAAsB,GAAG,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,KAAK,iCAAiC,CAAC,CAAC;QAC7K,MAAM,uBAAuB,GAAG,wBAAwB,IAAI,CAAC,UAAU,CAAC,sBAAsB,GAAG,CAAC,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,CAAC;YACvI,CAAC,CAAC,uCAAuC;YACzC,CAAC,CAAC,kCAAkC,CAAC;QACvC,MAAM,SAAS,GAAG,CAAC,SAAS,IAAI,CAAC,kBAAkB,IAAI,iBAAiB,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC;QACvG,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QACjF,MAAM,GAAG;YACP,cAAc,EAAE,cAAc;YAC9B,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;YACpE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YAC7C,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpG,GAAG,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5B,YAAY,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;oBACnD,OAAO;oBACP,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,eAAe,EAAE,GAAG,CAAC,OAAO;iBAC7B,CAAC,CAAC;aACJ,CAAC,CAAC,CAAC,EAAE,CAAC;YACP,2BAA2B,EAAE;gBAC3B,WAAW,EAAE,UAAU,CAAC,sBAAsB;gBAC9C,UAAU,EAAE,UAAU,CAAC,+BAA+B;gBACtD,kBAAkB,EAAE,0BAA0B;gBAC9C,mCAAmC,EAAE,KAAK;aAC3C;YACD,GAAG,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,yBAAyB,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC1G,OAAO;oBACP,KAAK;oBACL,KAAK;oBACL,cAAc,EAAE,QAAQ;oBACxB,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,eAAe,EAAE,GAAG,CAAC,OAAO;iBAC7B,CAAC,CAAC;aACJ,CAAC,CAAC,CAAC,EAAE,CAAC;YACP,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;YACjD,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC;YACtC,iBAAiB,EAAE,uBAAuB,CAAC,gBAAgB,CAAC;YAC5D,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnB,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;wBACb,CAAC,CAAC,WAAW;wBACb,CAAC,CAAC,kBAAkB;4BAClB,CAAC,CAAC,iCAAiC;4BACnC,CAAC,CAAC,CAAC,iBAAiB;gCAClB,CAAC,CAAC,eAAe;gCACjB,CAAC,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC;oCACjC,CAAC,CAAC,uBAAuB;oCAC3B,CAAC,CAAC,wBAAwB;oBAChC,OAAO,EAAE,SAAS;wBAChB,CAAC,CAAC,oBAAoB;wBACtB,CAAC,CAAC,kBAAkB;4BAClB,CAAC,CAAC,6EAA6E;4BAC/E,CAAC,CAAC,CAAC,iBAAiB;gCAClB,CAAC,CAAC,mCAAmC,WAAW,CAAC,MAAM,IAAI,UAAU,CAAC,QAAQ,EAAE;gCAChF,CAAC,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC;oCACjC,CAAC,CAAC,GAAG,uBAAuB,KAAK,uCAAuC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,iCAAiC,KAAK,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oCACjP,CAAC,CAAC,uCAAuC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBAC5H;aACF,CAAC;YACF,UAAU,EAAE,SAAS,CAAC,WAAW,EAAE;YACnC,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,SAAS,GAAG,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC;QAC1C,MAAM,KAAK,GAAG,KAAK,YAAY,UAAU,CAAC;QAC1C,MAAM,GAAG;YACP,cAAc,EAAE,cAAc;YAC9B,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;YAChD,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YAC5D,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB;gBAC3E,OAAO,EAAG,KAAe,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;aACpD;YACD,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;YACjD,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;YACjE,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE,SAAS,CAAC,WAAW,EAAE;YACnC,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAC;IACJ,CAAC;IACD,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;IACvE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/J,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,SAAyC,EAAE,IAA+B;IACvG,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAA0C,CAAC,CAAC,CAAC,EAAE,CAAC;IACnH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;IACrK,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxD,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC1H,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe;IAC3C,OAAO,WAAW,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAqD;IACtF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,KAAK,OAAO,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IACjH,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAgB,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM;QAC9B,CAAC,CAAC;YACE,KAAK,EAAE,OAAO,CAAC,MAAM;YACrB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM;YACvE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;YACzB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;SAC1B;QACH,CAAC,CAAC,IAAI,CAAC;IACT,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,MAAM;QACvB,WAAW,EAAE,KAAK,CAAC,MAAM;QACzB,SAAS,EAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;QACvC,cAAc,EAAE,SAAS,EAAE,IAAI,IAAI,IAAI;QACvC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;KAChD,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,SAAyC;IAC1E,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,4EAA4E;IAC5E,6EAA6E;IAC7E,uEAAuE;IACvE,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,gBAAgB,CAAC,SAA+B;IACvD,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IACpC,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;QACjD,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,UAAU,EAAE,QAAQ,CAAC,UAAU;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAmC;IAClE,OAAO;QACL,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;QAC/C,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;QACnD,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;KAClC,CAAC;AACJ,CAAC"}
|
|
@@ -4,6 +4,8 @@ import { atomicWriteJSON, ensureDir, readJSON, statePaths, writePrivateFile } fr
|
|
|
4
4
|
import { validateRunContext } from "../domain/index.js";
|
|
5
5
|
import { newRunId, safeAgentArgsForPersistence } from "../runs/index.js";
|
|
6
6
|
import { benchmarkTaskDigest, benchmarkVerifierIdentity, defaultModelIdentity, loadRunRecord, projectRunRecord, sha256JSON, } from "../runs/index.js";
|
|
7
|
+
import { readHarborBridgeError } from "./harbor-bridge-error.js";
|
|
8
|
+
import { detectVerifierInfrastructureFailure, primaryVerifierReward, verifierObservation, verifierResult, writeVerifierInfrastructureDiagnostic } from "./verifier-diagnostics.js";
|
|
7
9
|
/** Import every Harbor trial into the authoritative runs/ store. */
|
|
8
10
|
export async function importEvalTrialRuns(options, existingRefs = []) {
|
|
9
11
|
const trials = Array.isArray(options.rawResult?.trial_results)
|
|
@@ -24,7 +26,9 @@ export async function importEvalTrialRun(options, trial, index = 0, existingRefs
|
|
|
24
26
|
// canonical task id used by the in-container bridge and exported run.
|
|
25
27
|
const fallbackTaskId = nonEmpty(trial.task_name) || `trial-${index + 1}`;
|
|
26
28
|
const trialId = nonEmpty(trial.trial_name) || `${fallbackTaskId}__${index + 1}`;
|
|
27
|
-
const attempt = trialAttempt(trialId);
|
|
29
|
+
const attempt = options.expectedAttempt ?? trialAttempt(trialId);
|
|
30
|
+
if (!Number.isSafeInteger(attempt) || attempt < 1)
|
|
31
|
+
throw new TypeError("expected eval attempt must be a positive safe integer");
|
|
28
32
|
const trialDirectory = path.join(options.harborJobDirectory ?? path.join(options.evalDirectory, "harbor", "job"), trialId);
|
|
29
33
|
const taskId = await lockedTaskId(trialDirectory) || fallbackTaskId;
|
|
30
34
|
const existing = existingRefs.find((ref) => ref.trial_id === trialId);
|
|
@@ -43,8 +47,8 @@ export async function importEvalTrialRun(options, trial, index = 0, existingRefs
|
|
|
43
47
|
if (options.requireCompleteMarker && !bundle && !options.allowMissingBundleDiagnostic)
|
|
44
48
|
throw new TrialBundlePendingError(trialId);
|
|
45
49
|
const ref = bundle
|
|
46
|
-
? await importRunBundle({ ...options, trial, taskId, trialId, attempt, bundle })
|
|
47
|
-
: await createDiagnosticRun({ ...options, trial, taskId, trialId, attempt });
|
|
50
|
+
? await importRunBundle({ ...options, trial, taskId, trialId, attempt, trialDirectory, bundle })
|
|
51
|
+
: await createDiagnosticRun({ ...options, trial, taskId, trialId, attempt, trialDirectory });
|
|
48
52
|
published = bundle !== null;
|
|
49
53
|
return ref;
|
|
50
54
|
}
|
|
@@ -70,6 +74,7 @@ export async function importEvalTrialRun(options, trial, index = 0, existingRefs
|
|
|
70
74
|
taskId,
|
|
71
75
|
trialId,
|
|
72
76
|
attempt,
|
|
77
|
+
trialDirectory,
|
|
73
78
|
});
|
|
74
79
|
}
|
|
75
80
|
finally {
|
|
@@ -171,8 +176,19 @@ async function importRunBundle(input) {
|
|
|
171
176
|
const verifierRef = verifier ? "verifier/result.json" : undefined;
|
|
172
177
|
if (verifier)
|
|
173
178
|
await atomicWriteJSON(path.join(staging, verifierRef), verifier);
|
|
179
|
+
const verifierInfrastructure = await detectVerifierInfrastructureFailure(input.trialDirectory, primaryVerifierReward(input.trial));
|
|
180
|
+
if (verifierInfrastructure)
|
|
181
|
+
await writeVerifierInfrastructureDiagnostic(staging, verifierInfrastructure);
|
|
182
|
+
await copyVerifierRetryHistory(input.trialDirectory, staging);
|
|
174
183
|
const beforeObservation = await loadRunRecord(staging, { verifyTrajectory: true });
|
|
175
|
-
const observation =
|
|
184
|
+
const observation = verifierObservation({
|
|
185
|
+
trial: input.trial,
|
|
186
|
+
runStatus: beforeObservation.record.status,
|
|
187
|
+
trajectoryStatus: beforeObservation.trajectory_status,
|
|
188
|
+
recordStatus: beforeObservation.record_status,
|
|
189
|
+
verifierRef,
|
|
190
|
+
infrastructure: verifierInfrastructure,
|
|
191
|
+
});
|
|
176
192
|
const manifest = await readJSON(path.join(staging, "manifest.json"));
|
|
177
193
|
const portableManifest = withoutKeys(manifest, [
|
|
178
194
|
"workspace", "source_workspace", "execution_workspace",
|
|
@@ -216,9 +232,23 @@ async function createDiagnosticRun(input) {
|
|
|
216
232
|
const verifierRef = verifier ? "verifier/result.json" : undefined;
|
|
217
233
|
if (verifier)
|
|
218
234
|
await atomicWriteJSON(path.join(runDirectory, verifierRef), verifier);
|
|
219
|
-
const
|
|
220
|
-
|
|
221
|
-
|
|
235
|
+
const verifierInfrastructure = await detectVerifierInfrastructureFailure(input.trialDirectory, primaryVerifierReward(input.trial));
|
|
236
|
+
if (verifierInfrastructure)
|
|
237
|
+
await writeVerifierInfrastructureDiagnostic(runDirectory, verifierInfrastructure);
|
|
238
|
+
await copyVerifierRetryHistory(input.trialDirectory, runDirectory);
|
|
239
|
+
const bridgeError = input.trial.exception_info
|
|
240
|
+
? await readHarborBridgeError(input.trialDirectory)
|
|
241
|
+
: null;
|
|
242
|
+
const bridgeErrorRef = bridgeError ? "diagnostics/harbor-bridge-error.json" : undefined;
|
|
243
|
+
if (bridgeError && bridgeErrorRef) {
|
|
244
|
+
await ensureDir(path.dirname(path.join(runDirectory, bridgeErrorRef)));
|
|
245
|
+
await writePrivateFile(path.join(runDirectory, bridgeErrorRef), bridgeError.raw.endsWith("\n") ? bridgeError.raw : `${bridgeError.raw}\n`);
|
|
246
|
+
}
|
|
247
|
+
const reason = verifierInfrastructure
|
|
248
|
+
? "verifier_infrastructure_failure"
|
|
249
|
+
: input.trial.exception_info
|
|
250
|
+
? "infrastructure_failure"
|
|
251
|
+
: verifier ? "trajectory_missing_or_corrupt" : "verifier_result_missing";
|
|
222
252
|
const observation = {
|
|
223
253
|
status: "invalid",
|
|
224
254
|
invalid_reason: reason,
|
|
@@ -253,13 +283,16 @@ async function createDiagnosticRun(input) {
|
|
|
253
283
|
run_id: runId,
|
|
254
284
|
type: "eval.trial.import_failed",
|
|
255
285
|
reason,
|
|
286
|
+
...(bridgeError ? { bridge_error_code: bridgeError.code } : {}),
|
|
256
287
|
})}\n`);
|
|
257
288
|
await atomicWriteJSON(path.join(runDirectory, "result.json"), {
|
|
258
289
|
schema_version: "1",
|
|
259
290
|
run_id: runId,
|
|
260
291
|
status: "failed",
|
|
261
292
|
exit_code: 12,
|
|
262
|
-
error:
|
|
293
|
+
error: bridgeError
|
|
294
|
+
? { code: bridgeError.code, message: bridgeError.message }
|
|
295
|
+
: { code: reason, message: "Harbor trial completed without an importable Hitch run bundle" },
|
|
263
296
|
completed_at: now,
|
|
264
297
|
});
|
|
265
298
|
await atomicWriteJSON(path.join(runDirectory, "manifest.json"), {
|
|
@@ -290,6 +323,7 @@ async function createDiagnosticRun(input) {
|
|
|
290
323
|
created_at: now,
|
|
291
324
|
completed_at: now,
|
|
292
325
|
sealed: true,
|
|
326
|
+
...(bridgeErrorRef ? { diagnostics: { harbor_bridge_error_ref: bridgeErrorRef } } : {}),
|
|
293
327
|
});
|
|
294
328
|
return evalTrialRef(input, runId, observation);
|
|
295
329
|
}
|
|
@@ -305,34 +339,6 @@ function evalTrialRef(input, runId, observation) {
|
|
|
305
339
|
...(observation.invalid_reason ? { invalid_reason: observation.invalid_reason } : {}),
|
|
306
340
|
};
|
|
307
341
|
}
|
|
308
|
-
function trialObservation(trial, runStatus, trajectoryStatus, recordStatus, verifierRef) {
|
|
309
|
-
if (trial.exception_info)
|
|
310
|
-
return { status: "invalid", invalid_reason: "infrastructure_failure", ...(verifierRef ? { verifier_result_ref: verifierRef } : {}) };
|
|
311
|
-
if (runStatus === "cancelled")
|
|
312
|
-
return { status: "invalid", invalid_reason: "cancelled", ...(verifierRef ? { verifier_result_ref: verifierRef } : {}) };
|
|
313
|
-
if (runStatus !== "succeeded")
|
|
314
|
-
return { status: "invalid", invalid_reason: "infrastructure_failure", ...(verifierRef ? { verifier_result_ref: verifierRef } : {}) };
|
|
315
|
-
if (recordStatus !== "valid")
|
|
316
|
-
return { status: "invalid", invalid_reason: "infrastructure_failure", ...(verifierRef ? { verifier_result_ref: verifierRef } : {}) };
|
|
317
|
-
if (trajectoryStatus !== "valid")
|
|
318
|
-
return { status: "invalid", invalid_reason: "trajectory_missing_or_corrupt", ...(verifierRef ? { verifier_result_ref: verifierRef } : {}) };
|
|
319
|
-
const reward = primaryReward(trial);
|
|
320
|
-
if (reward === undefined || !verifierRef)
|
|
321
|
-
return { status: "invalid", invalid_reason: "verifier_result_missing" };
|
|
322
|
-
return { status: "valid", reward, verifier_result_ref: verifierRef };
|
|
323
|
-
}
|
|
324
|
-
function verifierResult(trial) {
|
|
325
|
-
return trial.verifier_result && typeof trial.verifier_result === "object" && !Array.isArray(trial.verifier_result)
|
|
326
|
-
? trial.verifier_result
|
|
327
|
-
: null;
|
|
328
|
-
}
|
|
329
|
-
function primaryReward(trial) {
|
|
330
|
-
const rewards = (verifierResult(trial)?.rewards || {});
|
|
331
|
-
const preferred = rewards.reward;
|
|
332
|
-
if (typeof preferred === "number" && Number.isFinite(preferred))
|
|
333
|
-
return preferred;
|
|
334
|
-
return Object.values(rewards).find((value) => typeof value === "number" && Number.isFinite(value));
|
|
335
|
-
}
|
|
336
342
|
async function findRunBundle(root, depth = 0, requireCompleteMarker = false) {
|
|
337
343
|
if (depth > 5)
|
|
338
344
|
return null;
|
|
@@ -407,6 +413,16 @@ function withoutKeys(record, keys) {
|
|
|
407
413
|
delete result[key];
|
|
408
414
|
return result;
|
|
409
415
|
}
|
|
416
|
+
async function copyVerifierRetryHistory(trialDirectory, runDirectory) {
|
|
417
|
+
const source = path.join(trialDirectory, "verifier", "infrastructure-retry-history.json");
|
|
418
|
+
const history = await readJSON(source, null).catch(() => null);
|
|
419
|
+
if (history?.schema_version !== "1"
|
|
420
|
+
|| history.code !== "verifier_infrastructure_retry_history"
|
|
421
|
+
|| history.candidate_rerun !== false
|
|
422
|
+
|| !Array.isArray(history.attempts))
|
|
423
|
+
return;
|
|
424
|
+
await atomicWriteJSON(path.join(runDirectory, "verifier", "infrastructure-retry-history.json"), history);
|
|
425
|
+
}
|
|
410
426
|
async function validateJSONLines(file) {
|
|
411
427
|
const content = await readFile(file, "utf8");
|
|
412
428
|
for (const [index, line] of content.split(/\r?\n/).entries()) {
|