@tangle-network/sandbox 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,825 +1 @@
1
- import { a as PartialFailureError, c as ServerError, d as ValidationError, i as NotFoundError, l as StateError, n as CapabilityError, o as QuotaError, r as NetworkError, s as SandboxError, t as AuthError, u as TimeoutError } from "./errors-CljiGR__.js";
2
- import { a as exportTraceBundle, i as buildTraceExportPayload, l as parseSSEStream, n as SandboxSession, o as otelTraceIdForTangleTrace, s as toOtelJson, t as SandboxInstance } from "./sandbox-ksXTNlo-.js";
3
- import { a as SandboxFleetClient, i as SandboxFleet, n as SandboxClient, r as IntegrationsManager, t as IntelligenceClient } from "./client-Uve6A5C6.js";
4
- import { a as CollaborationClient, i as parseCollaborationDocumentId, n as buildCollaborationDocumentId, r as normalizeCollaborationPath, t as CollaborationFileBridge } from "./collaboration-CRyb5e8F.js";
5
- import { t as TangleSandboxClient } from "./tangle-DQ05paN7.js";
6
- //#region src/agent-profile.ts
7
- /**
8
- * Helper for creating typed inline resource refs.
9
- */
10
- function defineInlineResource(name, content) {
11
- return {
12
- kind: "inline",
13
- name,
14
- content
15
- };
16
- }
17
- /**
18
- * Helper for creating typed GitHub-backed resource refs.
19
- */
20
- function defineGitHubResource(path, options = {}) {
21
- return {
22
- kind: "github",
23
- repository: options.repository,
24
- path,
25
- ref: options.ref,
26
- name: options.name
27
- };
28
- }
29
- /**
30
- * Helper for declaring typed profiles in application code.
31
- */
32
- function defineAgentProfile(profile) {
33
- return profile;
34
- }
35
- function mergeStringArrays(base, overlay) {
36
- if (!base && !overlay) return void 0;
37
- return [...base ?? [], ...overlay ?? []];
38
- }
39
- function mergeRecord(base, overlay) {
40
- if (!base && !overlay) return void 0;
41
- return {
42
- ...base ?? {},
43
- ...overlay ?? {}
44
- };
45
- }
46
- /**
47
- * Merge two public AgentProfile values.
48
- *
49
- * Overlay fields win on conflicts. Array-like instruction sets are appended.
50
- */
51
- function mergeAgentProfiles(base, overlay) {
52
- if (!base && !overlay) return void 0;
53
- const mergedPrompt = base?.prompt || overlay?.prompt ? {
54
- ...base?.prompt ?? {},
55
- ...overlay?.prompt ?? {},
56
- instructions: mergeStringArrays(base?.prompt?.instructions, overlay?.prompt?.instructions)
57
- } : void 0;
58
- const mergedResources = base?.resources || overlay?.resources ? {
59
- ...base?.resources ?? {},
60
- ...overlay?.resources ?? {},
61
- files: [...base?.resources?.files ?? [], ...overlay?.resources?.files ?? []],
62
- tools: [...base?.resources?.tools ?? [], ...overlay?.resources?.tools ?? []],
63
- skills: [...base?.resources?.skills ?? [], ...overlay?.resources?.skills ?? []],
64
- agents: [...base?.resources?.agents ?? [], ...overlay?.resources?.agents ?? []],
65
- commands: [...base?.resources?.commands ?? [], ...overlay?.resources?.commands ?? []],
66
- instructions: overlay?.resources?.instructions ?? base?.resources?.instructions
67
- } : void 0;
68
- return {
69
- ...base ?? {},
70
- ...overlay ?? {},
71
- prompt: mergedPrompt,
72
- permissions: mergeRecord(base?.permissions, overlay?.permissions),
73
- tools: mergeRecord(base?.tools, overlay?.tools),
74
- mcp: mergeRecord(base?.mcp, overlay?.mcp),
75
- subagents: mergeRecord(base?.subagents, overlay?.subagents),
76
- resources: mergedResources,
77
- hooks: mergeRecord(base?.hooks, overlay?.hooks),
78
- modes: mergeRecord(base?.modes, overlay?.modes),
79
- metadata: mergeRecord(base?.metadata, overlay?.metadata),
80
- extensions: mergeRecord(base?.extensions, overlay?.extensions)
81
- };
82
- }
83
- //#endregion
84
- //#region src/confidential.ts
85
- function generateAttestationNonce(bytes = 32) {
86
- const buffer = new Uint8Array(bytes);
87
- if (typeof globalThis.crypto !== "undefined" && typeof globalThis.crypto.getRandomValues === "function") globalThis.crypto.getRandomValues(buffer);
88
- else throw new Error("Secure random nonce generation is not available");
89
- return Array.from(buffer).map((byte) => byte.toString(16).padStart(2, "0")).join("");
90
- }
91
- async function createConfidentialSandbox(client, options) {
92
- const attestationNonce = options.attestationNonce === "auto" || options.requireAttestation && !options.attestationNonce && !options.confidential.attestationNonce ? generateAttestationNonce() : options.attestationNonce ?? options.confidential.attestationNonce;
93
- const sandbox = await client.create({
94
- ...options,
95
- confidential: {
96
- ...options.confidential,
97
- ...attestationNonce ? { attestationNonce } : {},
98
- attestationRefresh: options.confidential.attestationRefresh || Boolean(attestationNonce)
99
- }
100
- });
101
- let attestation = attestationFromMetadata(sandbox.metadata);
102
- if (!attestation) try {
103
- attestation = (await sandbox.getTeeAttestation(attestationNonce ? { attestationNonce } : void 0)).attestation;
104
- } catch (error) {
105
- if (options.requireAttestation) throw error;
106
- }
107
- if (options.requireAttestation && !attestation) throw new Error("TEE attestation was required but no evidence was returned");
108
- return {
109
- sandbox,
110
- attestation,
111
- attestationNonce
112
- };
113
- }
114
- function attestationFromMetadata(metadata) {
115
- const raw = metadata?.teeAttestationJson;
116
- if (typeof raw !== "string" || raw.trim() === "") return void 0;
117
- try {
118
- return JSON.parse(raw);
119
- } catch {
120
- return;
121
- }
122
- }
123
- //#endregion
124
- //#region src/attestation-heartbeat.ts
125
- /**
126
- * Periodically requests nonce-bound TEE attestations for a running sandbox.
127
- *
128
- * This proves freshness/liveness of the attested sandbox endpoint. It does not
129
- * by itself sign every computation result; callers that need result binding
130
- * should include a result/session digest in the nonce preimage before asking
131
- * the runtime for a quote.
132
- */
133
- function startTeeAttestationHeartbeat(sandbox, options = {}) {
134
- const intervalMs = options.intervalMs ?? 6e4;
135
- let stopped = false;
136
- let failures = 0;
137
- let sequence = 0;
138
- let latest;
139
- let timer;
140
- let resolveDone;
141
- const done = new Promise((resolve) => {
142
- resolveDone = resolve;
143
- });
144
- const stop = () => {
145
- if (stopped) return;
146
- stopped = true;
147
- if (timer) clearTimeout(timer);
148
- resolveDone?.();
149
- };
150
- const ping = async () => {
151
- if (stopped || options.signal?.aborted) throw new Error("TEE attestation heartbeat is stopped");
152
- const nonce = generateAttestationNonce();
153
- const response = await sandbox.getTeeAttestation({ attestationNonce: nonce });
154
- if (response.attestationNonce && response.attestationNonce !== nonce) throw new Error("TEE attestation response nonce did not match challenge");
155
- const sample = {
156
- sequence: ++sequence,
157
- nonce,
158
- response: {
159
- ...response,
160
- attestationNonce: response.attestationNonce ?? nonce
161
- },
162
- checkedAt: /* @__PURE__ */ new Date()
163
- };
164
- await options.verify?.(sample);
165
- latest = sample;
166
- options.onSuccess?.(sample);
167
- return sample;
168
- };
169
- const schedule = () => {
170
- if (stopped || options.signal?.aborted) {
171
- stop();
172
- return;
173
- }
174
- timer = setTimeout(() => {
175
- loop();
176
- }, intervalMs);
177
- };
178
- const loop = async () => {
179
- try {
180
- await ping();
181
- schedule();
182
- } catch (error) {
183
- failures += 1;
184
- options.onFailure?.(error);
185
- if (options.continueOnFailure) schedule();
186
- else stop();
187
- }
188
- };
189
- options.signal?.addEventListener("abort", stop, { once: true });
190
- if (options.immediate === false) schedule();
191
- else loop();
192
- return {
193
- stop,
194
- ping,
195
- get stopped() {
196
- return stopped;
197
- },
198
- get failures() {
199
- return failures;
200
- },
201
- get latest() {
202
- return latest;
203
- },
204
- done
205
- };
206
- }
207
- //#endregion
208
- //#region src/image.ts
209
- /**
210
- * Represents a built or existing container image.
211
- */
212
- var Image = class Image {
213
- constructor(id, tag, digest, spec) {
214
- this.id = id;
215
- this.tag = tag;
216
- this.digest = digest;
217
- this.spec = spec;
218
- }
219
- /**
220
- * Start building a new image.
221
- *
222
- * @param baseImage Base Docker image (default: "ubuntu:22.04")
223
- * @returns A new ImageBuilder instance
224
- *
225
- * @example
226
- * ```typescript
227
- * const builder = Image.create("python:3.11-slim");
228
- * ```
229
- */
230
- static create(baseImage = "ubuntu:22.04") {
231
- return new ImageBuilder({ baseImage });
232
- }
233
- /**
234
- * Reference an existing image by ID.
235
- *
236
- * @param imageId The image ID
237
- * @returns An Image instance
238
- *
239
- * @example
240
- * ```typescript
241
- * const image = Image.fromId("sha256:abc123...");
242
- * const box = await client.create({ image: image.id });
243
- * ```
244
- */
245
- static fromId(imageId) {
246
- return new Image(imageId, imageId.startsWith("sha256:") ? `tangle-image:${imageId.slice(7, 19)}` : imageId, imageId);
247
- }
248
- /**
249
- * Create an image builder from a Dockerfile.
250
- *
251
- * @param dockerfile Dockerfile path or content
252
- * @param context Build context directory
253
- * @returns A new ImageBuilder instance
254
- *
255
- * @example
256
- * ```typescript
257
- * const builder = Image.fromDockerfile("./Dockerfile", "./");
258
- * ```
259
- */
260
- static fromDockerfile(dockerfile, context) {
261
- return new ImageBuilder({
262
- baseImage: "scratch",
263
- dockerfile,
264
- dockerContext: context || "."
265
- });
266
- }
267
- /**
268
- * Create an Image from a build result.
269
- * @internal
270
- */
271
- static fromBuildResult(result) {
272
- return new Image(result.id, result.tag, result.digest, result.spec);
273
- }
274
- /**
275
- * Convert to JSON.
276
- */
277
- toJSON() {
278
- return {
279
- id: this.id,
280
- tag: this.tag,
281
- digest: this.digest,
282
- spec: this.spec
283
- };
284
- }
285
- };
286
- /**
287
- * Chainable builder for constructing custom container images.
288
- *
289
- * @example
290
- * ```typescript
291
- * const image = await Image.create()
292
- * .python("3.11")
293
- * .addPackages(["torch", "transformers"])
294
- * .addCommands(["apt-get install -y ffmpeg"])
295
- * .withEnv({ HF_HOME: "/models" })
296
- * .withSecrets(["HF_TOKEN"])
297
- * .build({ client });
298
- * ```
299
- */
300
- var ImageBuilder = class {
301
- spec;
302
- clientConfig;
303
- /** @internal */
304
- constructor(initialSpec) {
305
- this.spec = {
306
- baseImage: initialSpec.baseImage || "ubuntu:22.04",
307
- ...initialSpec
308
- };
309
- }
310
- /**
311
- * Configure Python version.
312
- *
313
- * @param version Python version (e.g., "3.11", "3.10")
314
- */
315
- python(version) {
316
- this.spec.pythonVersion = version;
317
- return this;
318
- }
319
- /**
320
- * Add Python packages via pip.
321
- *
322
- * @param packages Package names with optional versions
323
- *
324
- * @example
325
- * ```typescript
326
- * .addPackages(["numpy>=1.21", "pandas", "scikit-learn"])
327
- * ```
328
- */
329
- addPackages(packages) {
330
- this.spec.packages = [...this.spec.packages || [], ...packages];
331
- return this;
332
- }
333
- /**
334
- * Add packages from requirements file.
335
- *
336
- * @param requirementsPath Path to requirements.txt
337
- */
338
- addPackagesFromFile(requirementsPath) {
339
- this.spec.commands = [...this.spec.commands || [], `pip install -r ${requirementsPath}`];
340
- return this;
341
- }
342
- /**
343
- * Add shell commands to run during build.
344
- *
345
- * @param commands Commands to execute
346
- *
347
- * @example
348
- * ```typescript
349
- * .addCommands([
350
- * "apt-get update",
351
- * "apt-get install -y ffmpeg libsm6"
352
- * ])
353
- * ```
354
- */
355
- addCommands(commands) {
356
- this.spec.commands = [...this.spec.commands || [], ...commands];
357
- return this;
358
- }
359
- /**
360
- * Add system packages via apt-get.
361
- *
362
- * @param packages Package names
363
- */
364
- addAptPackages(packages) {
365
- this.spec.aptPackages = [...this.spec.aptPackages || [], ...packages];
366
- return this;
367
- }
368
- /**
369
- * Set environment variables.
370
- *
371
- * @param env Key-value pairs
372
- *
373
- * @example
374
- * ```typescript
375
- * .withEnv({ HF_HOME: "/models", PYTHONUNBUFFERED: "1" })
376
- * ```
377
- */
378
- withEnv(env) {
379
- this.spec.env = {
380
- ...this.spec.env,
381
- ...env
382
- };
383
- return this;
384
- }
385
- /**
386
- * Inject secrets during build.
387
- * Secrets are retrieved from the secret store.
388
- *
389
- * @param secretNames Names of secrets to inject
390
- *
391
- * @example
392
- * ```typescript
393
- * .withSecrets(["HF_TOKEN", "AWS_ACCESS_KEY"])
394
- * ```
395
- */
396
- withSecrets(secretNames) {
397
- this.spec.secrets = [...this.spec.secrets || [], ...secretNames];
398
- return this;
399
- }
400
- /**
401
- * Configure conda environment.
402
- *
403
- * @param packages Conda packages
404
- * @param channels Conda channels (default: ["conda-forge"])
405
- *
406
- * @example
407
- * ```typescript
408
- * .conda(["pytorch", "torchvision"], ["pytorch", "conda-forge"])
409
- * ```
410
- */
411
- conda(packages, channels) {
412
- this.spec.conda = {
413
- packages: [...this.spec.conda?.packages || [], ...packages],
414
- channels: channels || this.spec.conda?.channels || ["conda-forge"]
415
- };
416
- return this;
417
- }
418
- /**
419
- * Set working directory.
420
- *
421
- * @param dir Working directory path
422
- */
423
- workdir(dir) {
424
- this.spec.workdir = dir;
425
- return this;
426
- }
427
- /**
428
- * Set user to run as.
429
- *
430
- * @param user Username or UID
431
- */
432
- user(user) {
433
- this.spec.user = user;
434
- return this;
435
- }
436
- /**
437
- * Add build arguments.
438
- *
439
- * @param args Build arguments
440
- */
441
- buildArgs(args) {
442
- this.spec.buildArgs = {
443
- ...this.spec.buildArgs,
444
- ...args
445
- };
446
- return this;
447
- }
448
- /**
449
- * Add image labels.
450
- *
451
- * @param labels Image labels
452
- */
453
- labels(labels) {
454
- this.spec.labels = {
455
- ...this.spec.labels,
456
- ...labels
457
- };
458
- return this;
459
- }
460
- /**
461
- * Get the image specification without building.
462
- *
463
- * @returns The current ImageSpec
464
- */
465
- toSpec() {
466
- return { ...this.spec };
467
- }
468
- /**
469
- * Compute the content-addressed ID for this spec.
470
- *
471
- * Uses Web Crypto when available (browsers and Node 22+), falling
472
- * back to a lazy `import("node:crypto")` on older server runtimes.
473
- * Works in every JavaScript environment the SDK supports.
474
- *
475
- * @returns SHA-256 hash of the normalized spec as a hex string.
476
- *
477
- * **Breaking change (v0.0.3):** `computeId()` was previously
478
- * synchronous. Callers must now `await` the result. A Node-only sync
479
- * variant was considered and dropped: it would have either required
480
- * Node 22.3+ (breaking Node 18/20 consumers) or re-introduced the
481
- * top-level `node:crypto` import that blanks every browser page
482
- * transitively importing the SDK root. If you genuinely need the
483
- * hash synchronously in a Node-only context, compute it yourself
484
- * from `builder.toSpec()` with `JSON.stringify(spec, Object.keys(spec).sort())`.
485
- */
486
- async computeId() {
487
- const normalized = JSON.stringify(this.spec, Object.keys(this.spec).sort());
488
- const webSubtle = globalThis.crypto?.subtle;
489
- if (webSubtle) {
490
- const digest = await webSubtle.digest("SHA-256", new TextEncoder().encode(normalized));
491
- return Array.from(new Uint8Array(digest)).map((b) => b.toString(16).padStart(2, "0")).join("");
492
- }
493
- const { createHash } = await import("node:crypto");
494
- return createHash("sha256").update(normalized).digest("hex");
495
- }
496
- /**
497
- * Configure client for API access.
498
- * @internal
499
- */
500
- withClient(config) {
501
- this.clientConfig = config;
502
- return this;
503
- }
504
- /**
505
- * Build the image.
506
- *
507
- * @param options Build options including client config
508
- * @returns The built Image instance
509
- *
510
- * @example
511
- * ```typescript
512
- * const image = await Image.create()
513
- * .python("3.11")
514
- * .addPackages(["numpy"])
515
- * .build({
516
- * client: { baseUrl, apiKey },
517
- * onProgress: (e) => console.log(e.message),
518
- * });
519
- *
520
- * const box = await client.create({ image: image.id });
521
- * ```
522
- */
523
- async build(options) {
524
- const client = options?.client || this.clientConfig;
525
- if (!client) throw new Error("Client configuration required. Pass { client: { baseUrl, apiKey } } to build() or use ImageBuilder through the Sandbox client.");
526
- const response = await fetch(`${client.baseUrl}/v1/images`, {
527
- method: "POST",
528
- headers: {
529
- "Content-Type": "application/json",
530
- Authorization: `Bearer ${client.apiKey}`
531
- },
532
- body: JSON.stringify({
533
- spec: this.spec,
534
- options: {
535
- noCache: options?.noCache,
536
- platform: options?.platform,
537
- tag: options?.tag,
538
- stream: !!options?.onProgress
539
- }
540
- })
541
- });
542
- if (!response.ok) {
543
- const error = await response.text();
544
- throw new Error(`Failed to build image: ${error}`);
545
- }
546
- if (options?.onProgress && response.headers.get("content-type")?.includes("text/event-stream")) {
547
- const reader = response.body?.getReader();
548
- if (reader) {
549
- const decoder = new TextDecoder();
550
- let result;
551
- while (true) {
552
- const { done, value } = await reader.read();
553
- if (done) break;
554
- const lines = decoder.decode(value).split("\n").filter((l) => l.startsWith("data: "));
555
- for (const line of lines) try {
556
- const data = JSON.parse(line.slice(6));
557
- if (data.type === "progress") options.onProgress(data.event);
558
- else if (data.type === "complete") result = {
559
- ...data.result,
560
- createdAt: new Date(data.result.createdAt)
561
- };
562
- else if (data.type === "error") throw new Error(data.message);
563
- } catch (e) {
564
- if (e instanceof SyntaxError) continue;
565
- throw e;
566
- }
567
- }
568
- if (!result) throw new Error("Build completed but no result received");
569
- return Image.fromBuildResult(result);
570
- }
571
- }
572
- const data = await response.json();
573
- const result = {
574
- ...data,
575
- createdAt: new Date(data.createdAt)
576
- };
577
- return Image.fromBuildResult(result);
578
- }
579
- /**
580
- * Generate Dockerfile from the current spec.
581
- * Useful for debugging or manual builds.
582
- *
583
- * @returns Dockerfile content
584
- */
585
- generateDockerfile() {
586
- return generateDockerfile(this.spec);
587
- }
588
- };
589
- /**
590
- * Generate a Dockerfile from an ImageSpec.
591
- *
592
- * @param spec The image specification
593
- * @returns Dockerfile content
594
- */
595
- function generateDockerfile(spec) {
596
- const lines = [];
597
- lines.push(`FROM ${spec.baseImage}`);
598
- lines.push("");
599
- if (spec.labels && Object.keys(spec.labels).length > 0) {
600
- for (const [key, value] of Object.entries(spec.labels)) lines.push(`LABEL ${key}="${value}"`);
601
- lines.push("");
602
- }
603
- if (spec.buildArgs && Object.keys(spec.buildArgs).length > 0) {
604
- for (const [key, value] of Object.entries(spec.buildArgs)) lines.push(`ARG ${key}=${value}`);
605
- lines.push("");
606
- }
607
- if (spec.env && Object.keys(spec.env).length > 0) {
608
- for (const [key, value] of Object.entries(spec.env)) lines.push(`ENV ${key}="${value}"`);
609
- lines.push("");
610
- }
611
- if (spec.workdir) {
612
- lines.push(`WORKDIR ${spec.workdir}`);
613
- lines.push("");
614
- }
615
- if (spec.aptPackages && spec.aptPackages.length > 0) {
616
- lines.push("# Install system packages");
617
- lines.push("RUN apt-get update && \\");
618
- lines.push(` apt-get install -y --no-install-recommends ${spec.aptPackages.join(" ")} && \\`);
619
- lines.push(" apt-get clean && rm -rf /var/lib/apt/lists/*");
620
- lines.push("");
621
- }
622
- if (spec.pythonVersion) {
623
- lines.push(`# Install Python ${spec.pythonVersion}`);
624
- if (!(spec.baseImage.includes("python") || spec.baseImage.includes("anaconda") || spec.baseImage.includes("miniconda")) && spec.baseImage.includes("ubuntu")) {
625
- lines.push("RUN apt-get update && \\");
626
- lines.push(" apt-get install -y software-properties-common && \\");
627
- lines.push(" add-apt-repository -y ppa:deadsnakes/ppa && \\");
628
- lines.push(` apt-get install -y python${spec.pythonVersion} python${spec.pythonVersion}-venv python${spec.pythonVersion}-distutils && \\`);
629
- lines.push(" apt-get clean && rm -rf /var/lib/apt/lists/*");
630
- lines.push("");
631
- lines.push(`RUN update-alternatives --install /usr/bin/python python /usr/bin/python${spec.pythonVersion} 1 && \\`);
632
- lines.push(` update-alternatives --install /usr/bin/python3 python3 /usr/bin/python${spec.pythonVersion} 1`);
633
- lines.push("");
634
- lines.push("RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python");
635
- }
636
- lines.push("");
637
- }
638
- if (spec.conda && spec.conda.packages.length > 0) {
639
- lines.push("# Install micromamba and conda packages");
640
- lines.push("RUN curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj bin/micromamba && \\");
641
- lines.push(" mv bin/micromamba /usr/local/bin/ && \\");
642
- lines.push(" micromamba shell init -s bash -p /opt/conda");
643
- lines.push("");
644
- const channelArgs = (spec.conda.channels || ["conda-forge"]).map((c) => `-c ${c}`).join(" ");
645
- lines.push(`RUN micromamba install -y -n base ${channelArgs} ${spec.conda.packages.join(" ")} && \\`);
646
- lines.push(" micromamba clean --all --yes");
647
- lines.push("ENV PATH=\"/opt/conda/bin:$PATH\"");
648
- lines.push("");
649
- }
650
- if (spec.packages && spec.packages.length > 0) {
651
- lines.push("# Install Python packages");
652
- lines.push(`RUN pip install --no-cache-dir ${spec.packages.join(" ")}`);
653
- lines.push("");
654
- }
655
- if (spec.commands && spec.commands.length > 0) {
656
- lines.push("# Custom commands");
657
- for (const cmd of spec.commands) lines.push(`RUN ${cmd}`);
658
- lines.push("");
659
- }
660
- if (spec.user) lines.push(`USER ${spec.user}`);
661
- return lines.join("\n");
662
- }
663
- //#endregion
664
- //#region src/manage-sandboxes.ts
665
- const MANAGE_SANDBOXES_TOOL_NAME = "manageSandboxes";
666
- function createManageSandboxesTool(client, options = {}) {
667
- return {
668
- name: MANAGE_SANDBOXES_TOOL_NAME,
669
- description: "Create, inspect, and manage sandbox fleets for parallel agent workloads.",
670
- parameters: MANAGE_SANDBOXES_PARAMETERS,
671
- async execute(input) {
672
- switch (input.action) {
673
- case "capabilities": return client.fleets.capabilities();
674
- case "create": return client.fleets.create(applyToolPolicy(requireCreateOptions(input), options.policy));
675
- case "createWithCoordinator": return client.fleets.createWithCoordinator(applyToolPolicy(requireCreateWithCoordinatorOptions(input), options.policy));
676
- case "list": return client.fleets.list({ fleetId: requireString(input, "fleetId") });
677
- case "delete": return client.fleets.delete(requireString(input, "fleetId"));
678
- case "attachMachine": return client.fleets.attachMachine(requireString(input, "fleetId"), requireMachine(input));
679
- case "detachMachine": return client.fleets.detachMachine(requireString(input, "fleetId"), requireString(input, "machineId"));
680
- case "manifest": return client.fleets.manifest(requireString(input, "fleetId"));
681
- case "usage": return client.fleets.usage(requireString(input, "fleetId"));
682
- case "trace": return client.fleets.trace(requireString(input, "fleetId"));
683
- case "intelligence": return client.fleets.intelligence(requireString(input, "fleetId"));
684
- case "cost": return client.fleets.cost(requireString(input, "fleetId"));
685
- case "createWorkspaceSnapshot": return client.fleets.createWorkspaceSnapshot(requireString(input, "fleetId"));
686
- case "restoreWorkspaceSnapshot": return client.fleets.restoreWorkspaceSnapshot(requireString(input, "fleetId"), requireString(input, "snapshotId"));
687
- case "reconcileWorkspace": return client.fleets.reconcileWorkspace(requireString(input, "fleetId"));
688
- default: throw new Error(`Unsupported manageSandboxes action: ${String(input.action)}`);
689
- }
690
- }
691
- };
692
- }
693
- function requireString(input, key) {
694
- const value = input[key];
695
- if (typeof value !== "string" || value.length === 0) throw new Error(`manageSandboxes requires ${key}`);
696
- return value;
697
- }
698
- function requireCreateOptions(input) {
699
- const value = input.options;
700
- if (!value || typeof value !== "object") throw new Error("manageSandboxes requires options");
701
- return rejectUserPolicy(value);
702
- }
703
- function requireCreateWithCoordinatorOptions(input) {
704
- const value = input.options;
705
- if (!value || typeof value !== "object") throw new Error("manageSandboxes requires options");
706
- return rejectUserPolicy(value);
707
- }
708
- function rejectUserPolicy(options) {
709
- if ("policy" in options && options.policy !== void 0) throw new Error("manageSandboxes policy must be supplied by the tool host");
710
- return options;
711
- }
712
- function applyToolPolicy(options, policy) {
713
- if (!policy) throw new Error("manageSandboxes create requires a host-owned policy");
714
- return {
715
- ...options,
716
- policy
717
- };
718
- }
719
- function requireMachine(input) {
720
- const value = input.machine;
721
- if (!value || typeof value !== "object") throw new Error("manageSandboxes requires machine");
722
- const machine = value;
723
- requireString(machine, "machineId");
724
- requireString(machine, "sandboxId");
725
- return value;
726
- }
727
- const fleetId = {
728
- type: "string",
729
- pattern: "^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$"
730
- };
731
- const MANAGE_SANDBOXES_PARAMETERS = {
732
- type: "object",
733
- additionalProperties: false,
734
- required: ["action"],
735
- properties: {
736
- action: {
737
- type: "string",
738
- enum: [
739
- "capabilities",
740
- "create",
741
- "createWithCoordinator",
742
- "list",
743
- "delete",
744
- "attachMachine",
745
- "detachMachine",
746
- "manifest",
747
- "usage",
748
- "trace",
749
- "intelligence",
750
- "cost",
751
- "createWorkspaceSnapshot",
752
- "restoreWorkspaceSnapshot",
753
- "reconcileWorkspace"
754
- ]
755
- },
756
- fleetId,
757
- machineId: fleetId,
758
- snapshotId: {
759
- type: "string",
760
- minLength: 1
761
- },
762
- options: { type: "object" },
763
- machine: {
764
- type: "object",
765
- required: ["machineId", "sandboxId"],
766
- additionalProperties: true,
767
- properties: {
768
- machineId: fleetId,
769
- sandboxId: {
770
- type: "string",
771
- minLength: 1,
772
- maxLength: 128
773
- }
774
- }
775
- }
776
- }
777
- };
778
- //#endregion
779
- //#region src/mcp.ts
780
- /**
781
- * MCP (Model Context Protocol) helpers for sandbox capabilities.
782
- *
783
- * The sandbox exposes capabilities (currently `computer_use`, more
784
- * later) as MCP tools over Streamable HTTP. Any MCP-capable client —
785
- * Claude Desktop, Cursor, claude-code, codex, opencode, raw
786
- * `@modelcontextprotocol/sdk` apps — can consume this surface by
787
- * pasting the JSON returned from `Sandbox#getMcpEndpoint()` (or
788
- * `buildSandboxMcpConfig` if you already have the URL + token) into
789
- * the client's MCP config.
790
- *
791
- * Security model:
792
- * - Tokens are capability-scoped JWTs (claim `cap: ["computer_use"]`).
793
- * - Full sandbox runtime tokens are rejected on `/mcp`; only
794
- * capability-scoped tokens work there.
795
- * - A scoped token cannot pivot to admin endpoints (`/exec`, `/files`,
796
- * etc.) — those routes reject scoped tokens.
797
- * - Tokens are short-lived. Rotate via `Sandbox#getMcpEndpoint()`,
798
- * which mints a fresh token each call.
799
- */
800
- /** Default name of the MCP server entry — surfaces in the host UI. */
801
- const SANDBOX_MCP_SERVER_NAME = "tangle-sandbox";
802
- /**
803
- * Build the canonical `mcpServers` config for a sandbox MCP endpoint.
804
- * Pure function — no I/O, no crypto. Use this when you already have a
805
- * `{ url, authToken }` pair from the API and just want the JSON shape
806
- * to paste into a host. Most callers should use
807
- * `Sandbox#getMcpEndpoint()` instead, which fetches a freshly-minted
808
- * token from the API.
809
- */
810
- function buildSandboxMcpConfig(options) {
811
- if (!options.sandboxUrl) throw new Error("buildSandboxMcpConfig: sandboxUrl is required");
812
- if (!options.authToken) throw new Error("buildSandboxMcpConfig: authToken is required");
813
- const serverName = options.serverName ?? "tangle-sandbox";
814
- const baseUrl = options.sandboxUrl.replace(/\/+$/, "");
815
- return {
816
- serverName,
817
- config: { mcpServers: { [serverName]: {
818
- type: "http",
819
- url: `${baseUrl}/mcp`,
820
- headers: { Authorization: `Bearer ${options.authToken}` }
821
- } } }
822
- };
823
- }
824
- //#endregion
825
- export { AuthError, CapabilityError, CollaborationClient, CollaborationFileBridge, Image, ImageBuilder, IntegrationsManager, IntelligenceClient, MANAGE_SANDBOXES_PARAMETERS, MANAGE_SANDBOXES_TOOL_NAME, NetworkError, NotFoundError, PartialFailureError, QuotaError, SANDBOX_MCP_SERVER_NAME, SandboxClient as Sandbox, SandboxClient, SandboxError, SandboxFleet, SandboxFleetClient, SandboxInstance, SandboxSession, ServerError, StateError, TangleSandboxClient, TimeoutError, ValidationError, buildCollaborationDocumentId, buildSandboxMcpConfig, buildTraceExportPayload, createConfidentialSandbox, createManageSandboxesTool, defineAgentProfile, defineGitHubResource, defineInlineResource, exportTraceBundle, generateAttestationNonce, generateDockerfile, mergeAgentProfiles, normalizeCollaborationPath, otelTraceIdForTangleTrace, parseCollaborationDocumentId, parseSSEStream, startTeeAttestationHeartbeat, toOtelJson };
1
+ const a0_0x22bec=a0_0x4887;(function(_0x50c6cc,_0x59e79b){const _0x3a2d13=a0_0x4887,_0x448e18=_0x50c6cc();while(!![]){try{const _0x565269=parseInt(_0x3a2d13(0x22b))/0x1*(parseInt(_0x3a2d13(0x1c8))/0x2)+parseInt(_0x3a2d13(0x184))/0x3+-parseInt(_0x3a2d13(0x21c))/0x4*(-parseInt(_0x3a2d13(0x2f4))/0x5)+parseInt(_0x3a2d13(0x1f2))/0x6+parseInt(_0x3a2d13(0x266))/0x7+-parseInt(_0x3a2d13(0x22e))/0x8+parseInt(_0x3a2d13(0x1cb))/0x9*(-parseInt(_0x3a2d13(0x2d7))/0xa);if(_0x565269===_0x59e79b)break;else _0x448e18['push'](_0x448e18['shift']());}catch(_0x2216a6){_0x448e18['push'](_0x448e18['shift']());}}}(a0_0x1b0b,0x30194));import{a as a0_0x147579,c as a0_0x5b5547,d as a0_0x2e519b,i as a0_0x3ce889,l as a0_0x5402a0,n as a0_0x41e888,o as a0_0x251cc5,r as a0_0x1530f0,s as a0_0x2db502,t as a0_0x110b7c,u as a0_0x39a8a4}from'\x2e\x2f\x65\x72\x72\x6f\x72\x73\x2d\x43\x6c\x6a\x69\x47\x52\x5f\x5f\x2e\x6a\x73';import{a as a0_0x57a69e,i as a0_0x19bfb1,l as a0_0x457e18,n as a0_0x2fa802,o as a0_0x61056a,s as a0_0x2b0c43,t as a0_0x456fbc}from'\x2e\x2f\x73\x61\x6e\x64\x62\x6f\x78\x2d\x44\x54\x75\x70\x32\x6a\x7a\x7a\x2e\x6a\x73';import{a as a0_0x2c6346,i as a0_0x51761c,n as a0_0x3a369e,r as a0_0x47f6c9,t as a0_0x2a1571}from'\x2e\x2f\x63\x6c\x69\x65\x6e\x74\x2d\x43\x79\x67\x6a\x7a\x46\x33\x76\x2e\x6a\x73';import{a as a0_0x3cb324,i as a0_0xe708d2,n as a0_0x172469,r as a0_0x249e95,t as a0_0x2fee60}from'\x2e\x2f\x63\x6f\x6c\x6c\x61\x62\x6f\x72\x61\x74\x69\x6f\x6e\x2d\x43\x52\x79\x62\x35\x65\x38\x46\x2e\x6a\x73';import{t as a0_0x5bbb75}from'\x2e\x2f\x74\x61\x6e\x67\x6c\x65\x2d\x43\x6e\x59\x6e\x54\x52\x69\x36\x2e\x6a\x73';function defineInlineResource(_0x5ec5e3,_0x4dd536){const _0x165494=a0_0x4887;return{'\x6b\x69\x6e\x64':_0x165494(0x254),'\x6e\x61\x6d\x65':_0x5ec5e3,'\x63\x6f\x6e\x74\x65\x6e\x74':_0x4dd536};}function defineGitHubResource(_0x3f2a5c,_0x213212={}){const _0x216359=a0_0x4887;return{'\x6b\x69\x6e\x64':_0x216359(0x2aa),'\x72\x65\x70\x6f\x73\x69\x74\x6f\x72\x79':_0x213212[_0x216359(0x2dd)],'\x70\x61\x74\x68':_0x3f2a5c,'\x72\x65\x66':_0x213212[_0x216359(0x2f2)],'\x6e\x61\x6d\x65':_0x213212[_0x216359(0x19a)]};}function defineAgentProfile(_0x582b57){return _0x582b57;}function mergeStringArrays(_0xb9a842,_0x20f655){if(!_0xb9a842&&!_0x20f655)return void 0x0;return[..._0xb9a842??[],..._0x20f655??[]];}function mergeRecord(_0x21b04d,_0x5eeae9){const _0x393974=a0_0x4887,_0x26ffb1={'\x4d\x4e\x62\x45\x4d':function(_0x406bcf,_0x435018){return _0x406bcf??_0x435018;}};if(!_0x21b04d&&!_0x5eeae9)return void 0x0;return{..._0x21b04d??{},..._0x26ffb1[_0x393974(0x287)](_0x5eeae9,{})};}function mergeAgentProfiles(_0x2145b0,_0x329c94){const _0x5d9dd0=a0_0x4887,_0x5a3a47={'\x76\x74\x51\x4b\x54':function(_0x5b734b,_0x34854a){return _0x5b734b??_0x34854a;},'\x70\x62\x4a\x56\x48':function(_0x10f7ad,_0xac9887,_0x174c78){return _0x10f7ad(_0xac9887,_0x174c78);}};if(!_0x2145b0&&!_0x329c94)return void 0x0;const _0x3df9e5=_0x2145b0?.[_0x5d9dd0(0x1f3)]||_0x329c94?.[_0x5d9dd0(0x1f3)]?{..._0x2145b0?.[_0x5d9dd0(0x1f3)]??{},..._0x329c94?.['\x70\x72\x6f\x6d\x70\x74']??{},'\x69\x6e\x73\x74\x72\x75\x63\x74\x69\x6f\x6e\x73':mergeStringArrays(_0x2145b0?.[_0x5d9dd0(0x1f3)]?.[_0x5d9dd0(0x1f4)],_0x329c94?.['\x70\x72\x6f\x6d\x70\x74']?.['\x69\x6e\x73\x74\x72\x75\x63\x74\x69\x6f\x6e\x73'])}:void 0x0,_0xecfa0a=_0x2145b0?.[_0x5d9dd0(0x22d)]||_0x329c94?.['\x72\x65\x73\x6f\x75\x72\x63\x65\x73']?{..._0x2145b0?.['\x72\x65\x73\x6f\x75\x72\x63\x65\x73']??{},..._0x329c94?.[_0x5d9dd0(0x22d)]??{},'\x66\x69\x6c\x65\x73':[..._0x2145b0?.[_0x5d9dd0(0x22d)]?.[_0x5d9dd0(0x29f)]??[],..._0x329c94?.['\x72\x65\x73\x6f\x75\x72\x63\x65\x73']?.[_0x5d9dd0(0x29f)]??[]],'\x74\x6f\x6f\x6c\x73':[..._0x2145b0?.['\x72\x65\x73\x6f\x75\x72\x63\x65\x73']?.['\x74\x6f\x6f\x6c\x73']??[],..._0x329c94?.[_0x5d9dd0(0x22d)]?.[_0x5d9dd0(0x29c)]??[]],'\x73\x6b\x69\x6c\x6c\x73':[..._0x2145b0?.[_0x5d9dd0(0x22d)]?.[_0x5d9dd0(0x1c9)]??[],..._0x329c94?.[_0x5d9dd0(0x22d)]?.[_0x5d9dd0(0x1c9)]??[]],'\x61\x67\x65\x6e\x74\x73':[..._0x2145b0?.[_0x5d9dd0(0x22d)]?.[_0x5d9dd0(0x2ea)]??[],..._0x329c94?.[_0x5d9dd0(0x22d)]?.[_0x5d9dd0(0x2ea)]??[]],'\x63\x6f\x6d\x6d\x61\x6e\x64\x73':[..._0x2145b0?.[_0x5d9dd0(0x22d)]?.[_0x5d9dd0(0x29a)]??[],..._0x329c94?.[_0x5d9dd0(0x22d)]?.[_0x5d9dd0(0x29a)]??[]],'\x69\x6e\x73\x74\x72\x75\x63\x74\x69\x6f\x6e\x73':_0x329c94?.[_0x5d9dd0(0x22d)]?.[_0x5d9dd0(0x1f4)]??_0x2145b0?.[_0x5d9dd0(0x22d)]?.['\x69\x6e\x73\x74\x72\x75\x63\x74\x69\x6f\x6e\x73']}:void 0x0;return{..._0x2145b0??{},..._0x5a3a47['\x76\x74\x51\x4b\x54'](_0x329c94,{}),'\x70\x72\x6f\x6d\x70\x74':_0x3df9e5,'\x70\x65\x72\x6d\x69\x73\x73\x69\x6f\x6e\x73':mergeRecord(_0x2145b0?.[_0x5d9dd0(0x263)],_0x329c94?.[_0x5d9dd0(0x263)]),'\x74\x6f\x6f\x6c\x73':mergeRecord(_0x2145b0?.[_0x5d9dd0(0x29c)],_0x329c94?.[_0x5d9dd0(0x29c)]),'\x6d\x63\x70':mergeRecord(_0x2145b0?.['\x6d\x63\x70'],_0x329c94?.['\x6d\x63\x70']),'\x73\x75\x62\x61\x67\x65\x6e\x74\x73':mergeRecord(_0x2145b0?.['\x73\x75\x62\x61\x67\x65\x6e\x74\x73'],_0x329c94?.[_0x5d9dd0(0x1b7)]),'\x72\x65\x73\x6f\x75\x72\x63\x65\x73':_0xecfa0a,'\x68\x6f\x6f\x6b\x73':mergeRecord(_0x2145b0?.[_0x5d9dd0(0x27d)],_0x329c94?.['\x68\x6f\x6f\x6b\x73']),'\x6d\x6f\x64\x65\x73':mergeRecord(_0x2145b0?.[_0x5d9dd0(0x2a3)],_0x329c94?.[_0x5d9dd0(0x2a3)]),'\x6d\x65\x74\x61\x64\x61\x74\x61':_0x5a3a47[_0x5d9dd0(0x1f5)](mergeRecord,_0x2145b0?.[_0x5d9dd0(0x198)],_0x329c94?.[_0x5d9dd0(0x198)]),'\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x73':mergeRecord(_0x2145b0?.['\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x73'],_0x329c94?.[_0x5d9dd0(0x291)])};}function generateAttestationNonce(_0x1dd18c=0x20){const _0x3bf4cb=a0_0x4887,_0x3f3044={'\x5a\x7a\x55\x5a\x71':'\x75\x6e\x64\x65\x66\x69\x6e\x65\x64','\x76\x41\x69\x47\x50':'\x53\x65\x63\x75\x72\x65\x20\x72\x61\x6e\x64\x6f\x6d\x20\x6e\x6f\x6e\x63\x65\x20\x67\x65\x6e\x65\x72\x61\x74\x69\x6f\x6e\x20\x69\x73\x20\x6e\x6f\x74\x20\x61\x76\x61\x69\x6c\x61\x62\x6c\x65'},_0x1d1389=new Uint8Array(_0x1dd18c);if(typeof globalThis['\x63\x72\x79\x70\x74\x6f']!==_0x3f3044[_0x3bf4cb(0x243)]&&typeof globalThis['\x63\x72\x79\x70\x74\x6f'][_0x3bf4cb(0x277)]===_0x3bf4cb(0x26f))globalThis[_0x3bf4cb(0x240)][_0x3bf4cb(0x277)](_0x1d1389);else throw new Error(_0x3f3044[_0x3bf4cb(0x201)]);return Array[_0x3bf4cb(0x25f)](_0x1d1389)[_0x3bf4cb(0x1cd)](_0x20d342=>_0x20d342[_0x3bf4cb(0x19f)](0x10)[_0x3bf4cb(0x1f8)](0x2,'\x30'))['\x6a\x6f\x69\x6e']('');}async function createConfidentialSandbox(_0xfdb1f0,_0xd704db){const _0x3fc661=a0_0x4887,_0x5b36b1={'\x53\x62\x55\x63\x5a':function(_0x53cc44,_0x251c90){return _0x53cc44(_0x251c90);}},_0x2b3774=_0xd704db[_0x3fc661(0x1a3)]===_0x3fc661(0x2df)||_0xd704db[_0x3fc661(0x2e6)]&&!_0xd704db[_0x3fc661(0x1a3)]&&!_0xd704db['\x63\x6f\x6e\x66\x69\x64\x65\x6e\x74\x69\x61\x6c'][_0x3fc661(0x1a3)]?generateAttestationNonce():_0xd704db[_0x3fc661(0x1a3)]??_0xd704db['\x63\x6f\x6e\x66\x69\x64\x65\x6e\x74\x69\x61\x6c'][_0x3fc661(0x1a3)],_0x1f145c=await _0xfdb1f0['\x63\x72\x65\x61\x74\x65']({..._0xd704db,'\x63\x6f\x6e\x66\x69\x64\x65\x6e\x74\x69\x61\x6c':{..._0xd704db[_0x3fc661(0x1eb)],..._0x2b3774?{'\x61\x74\x74\x65\x73\x74\x61\x74\x69\x6f\x6e\x4e\x6f\x6e\x63\x65':_0x2b3774}:{},'\x61\x74\x74\x65\x73\x74\x61\x74\x69\x6f\x6e\x52\x65\x66\x72\x65\x73\x68':_0xd704db[_0x3fc661(0x1eb)][_0x3fc661(0x1a2)]||Boolean(_0x2b3774)}});let _0x45a275=_0x5b36b1[_0x3fc661(0x27a)](attestationFromMetadata,_0x1f145c[_0x3fc661(0x198)]);if(!_0x45a275)try{_0x45a275=(await _0x1f145c[_0x3fc661(0x1d1)](_0x2b3774?{'\x61\x74\x74\x65\x73\x74\x61\x74\x69\x6f\x6e\x4e\x6f\x6e\x63\x65':_0x2b3774}:void 0x0))['\x61\x74\x74\x65\x73\x74\x61\x74\x69\x6f\x6e'];}catch(_0x2d47d0){if(_0xd704db[_0x3fc661(0x2e6)])throw _0x2d47d0;}if(_0xd704db[_0x3fc661(0x2e6)]&&!_0x45a275)throw new Error(_0x3fc661(0x1e3));return{'\x73\x61\x6e\x64\x62\x6f\x78':_0x1f145c,'\x61\x74\x74\x65\x73\x74\x61\x74\x69\x6f\x6e':_0x45a275,'\x61\x74\x74\x65\x73\x74\x61\x74\x69\x6f\x6e\x4e\x6f\x6e\x63\x65':_0x2b3774};}function attestationFromMetadata(_0x41abc7){const _0x3cde26=a0_0x4887,_0x22cc9d={'\x63\x69\x65\x42\x6c':function(_0x90c7ee,_0x1719e8){return _0x90c7ee===_0x1719e8;}},_0x11cac6=_0x41abc7?.[_0x3cde26(0x1ac)];if(typeof _0x11cac6!==_0x3cde26(0x18d)||_0x22cc9d[_0x3cde26(0x246)](_0x11cac6[_0x3cde26(0x18a)](),''))return void 0x0;try{return JSON[_0x3cde26(0x1bf)](_0x11cac6);}catch{return;}}function startTeeAttestationHeartbeat(_0x56af32,_0x3272e6={}){const _0x73f7c7=a0_0x4887,_0x86eaf4={'\x6f\x57\x74\x53\x6d':function(_0x1dd8f0,_0x2a2e39){return _0x1dd8f0(_0x2a2e39);},'\x52\x47\x6d\x79\x68':function(_0x60a992){return _0x60a992();},'\x43\x66\x62\x6b\x54':function(_0x2e19fc){return _0x2e19fc();},'\x76\x79\x74\x55\x69':_0x73f7c7(0x17b)},_0x1c3c7e=_0x3272e6[_0x73f7c7(0x217)]??0xea60;let _0x38be02=![],_0x3cf148=0x0,_0x2d1196=0x0,_0xaa0ada,_0x58147e,_0x358f51;const _0xcd31a8=new Promise(_0x581091=>{_0x358f51=_0x581091;}),_0x570735=()=>{const _0x386a98=_0x73f7c7;if(_0x38be02)return;_0x38be02=!![];if(_0x58147e)_0x86eaf4[_0x386a98(0x230)](clearTimeout,_0x58147e);_0x358f51?.();},_0x78112=async()=>{const _0x45cdc9=_0x73f7c7;if(_0x38be02||_0x3272e6[_0x45cdc9(0x2db)]?.[_0x45cdc9(0x24f)])throw new Error('\x54\x45\x45\x20\x61\x74\x74\x65\x73\x74\x61\x74\x69\x6f\x6e\x20\x68\x65\x61\x72\x74\x62\x65\x61\x74\x20\x69\x73\x20\x73\x74\x6f\x70\x70\x65\x64');const _0x4457d1=generateAttestationNonce(),_0x1dbd68=await _0x56af32[_0x45cdc9(0x1d1)]({'\x61\x74\x74\x65\x73\x74\x61\x74\x69\x6f\x6e\x4e\x6f\x6e\x63\x65':_0x4457d1});if(_0x1dbd68['\x61\x74\x74\x65\x73\x74\x61\x74\x69\x6f\x6e\x4e\x6f\x6e\x63\x65']&&_0x1dbd68[_0x45cdc9(0x1a3)]!==_0x4457d1)throw new Error(_0x45cdc9(0x17a));const _0x4fec63={'\x73\x65\x71\x75\x65\x6e\x63\x65':++_0x2d1196,'\x6e\x6f\x6e\x63\x65':_0x4457d1,'\x72\x65\x73\x70\x6f\x6e\x73\x65':{..._0x1dbd68,'\x61\x74\x74\x65\x73\x74\x61\x74\x69\x6f\x6e\x4e\x6f\x6e\x63\x65':_0x1dbd68[_0x45cdc9(0x1a3)]??_0x4457d1},'\x63\x68\x65\x63\x6b\x65\x64\x41\x74':new Date()};return await _0x3272e6['\x76\x65\x72\x69\x66\x79']?.(_0x4fec63),_0xaa0ada=_0x4fec63,_0x3272e6[_0x45cdc9(0x2d1)]?.(_0x4fec63),_0x4fec63;},_0x40ac40=()=>{const _0x4409c4=_0x73f7c7;if(_0x38be02||_0x3272e6['\x73\x69\x67\x6e\x61\x6c']?.[_0x4409c4(0x24f)]){_0x86eaf4[_0x4409c4(0x2ba)](_0x570735);return;}_0x58147e=setTimeout(()=>{_0x5b6d92();},_0x1c3c7e);},_0x5b6d92=async()=>{const _0x363f03=_0x73f7c7;try{await _0x78112(),_0x86eaf4[_0x363f03(0x2ba)](_0x40ac40);}catch(_0x5ccc71){_0x3cf148+=0x1,_0x3272e6[_0x363f03(0x236)]?.(_0x5ccc71);if(_0x3272e6['\x63\x6f\x6e\x74\x69\x6e\x75\x65\x4f\x6e\x46\x61\x69\x6c\x75\x72\x65'])_0x86eaf4[_0x363f03(0x227)](_0x40ac40);else _0x86eaf4[_0x363f03(0x2ba)](_0x570735);}};_0x3272e6[_0x73f7c7(0x2db)]?.[_0x73f7c7(0x23c)](_0x86eaf4[_0x73f7c7(0x2b1)],_0x570735,{'\x6f\x6e\x63\x65':!![]});if(_0x3272e6[_0x73f7c7(0x1df)]===![])_0x40ac40();else _0x5b6d92();return{'\x73\x74\x6f\x70':_0x570735,'\x70\x69\x6e\x67':_0x78112,get '\x73\x74\x6f\x70\x70\x65\x64'(){return _0x38be02;},get '\x66\x61\x69\x6c\x75\x72\x65\x73'(){return _0x3cf148;},get '\x6c\x61\x74\x65\x73\x74'(){return _0xaa0ada;},'\x64\x6f\x6e\x65':_0xcd31a8};}var Image=class Image{constructor(_0x2e30c7,_0xade147,_0x359d3b,_0x9cc906){const _0x5c389b=a0_0x4887;this['\x69\x64']=_0x2e30c7,this[_0x5c389b(0x229)]=_0xade147,this[_0x5c389b(0x2c9)]=_0x359d3b,this[_0x5c389b(0x212)]=_0x9cc906;}static[a0_0x22bec(0x1d4)](_0x2d7034='\x75\x62\x75\x6e\x74\x75\x3a\x32\x32\x2e\x30\x34'){return new ImageBuilder({'\x62\x61\x73\x65\x49\x6d\x61\x67\x65':_0x2d7034});}static[a0_0x22bec(0x207)](_0x412d4c){const _0x4d6be0=a0_0x22bec;return new Image(_0x412d4c,_0x412d4c['\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68'](_0x4d6be0(0x27e))?'\x74\x61\x6e\x67\x6c\x65\x2d\x69\x6d\x61\x67\x65\x3a'+_0x412d4c[_0x4d6be0(0x2c5)](0x7,0x13):_0x412d4c,_0x412d4c);}static[a0_0x22bec(0x182)](_0x5f04d6,_0x46eed2){const _0x57f553=a0_0x22bec,_0x355bfc={'\x77\x48\x49\x79\x4d':_0x57f553(0x2a6),'\x4d\x67\x63\x51\x53':function(_0x5be21b,_0x2636fc){return _0x5be21b||_0x2636fc;}};return new ImageBuilder({'\x62\x61\x73\x65\x49\x6d\x61\x67\x65':_0x355bfc['\x77\x48\x49\x79\x4d'],'\x64\x6f\x63\x6b\x65\x72\x66\x69\x6c\x65':_0x5f04d6,'\x64\x6f\x63\x6b\x65\x72\x43\x6f\x6e\x74\x65\x78\x74':_0x355bfc[_0x57f553(0x256)](_0x46eed2,'\x2e')});}static['\x66\x72\x6f\x6d\x42\x75\x69\x6c\x64\x52\x65\x73\x75\x6c\x74'](_0x2909fa){const _0x3cc96a=a0_0x22bec;return new Image(_0x2909fa['\x69\x64'],_0x2909fa[_0x3cc96a(0x229)],_0x2909fa[_0x3cc96a(0x2c9)],_0x2909fa[_0x3cc96a(0x212)]);}[a0_0x22bec(0x235)](){const _0xd4ac6e=a0_0x22bec;return{'\x69\x64':this['\x69\x64'],'\x74\x61\x67':this[_0xd4ac6e(0x229)],'\x64\x69\x67\x65\x73\x74':this[_0xd4ac6e(0x2c9)],'\x73\x70\x65\x63':this[_0xd4ac6e(0x212)]};}},ImageBuilder=class{[a0_0x22bec(0x212)];['\x63\x6c\x69\x65\x6e\x74\x43\x6f\x6e\x66\x69\x67'];constructor(_0x39e544){const _0x485b94=a0_0x22bec;this[_0x485b94(0x212)]={'\x62\x61\x73\x65\x49\x6d\x61\x67\x65':_0x39e544[_0x485b94(0x185)]||'\x75\x62\x75\x6e\x74\x75\x3a\x32\x32\x2e\x30\x34',..._0x39e544};}[a0_0x22bec(0x285)](_0x29b830){const _0x94926e=a0_0x22bec;return this[_0x94926e(0x212)][_0x94926e(0x218)]=_0x29b830,this;}[a0_0x22bec(0x1f7)](_0x569c4b){const _0x391bba=a0_0x22bec;return this[_0x391bba(0x212)][_0x391bba(0x2af)]=[...this[_0x391bba(0x212)][_0x391bba(0x2af)]||[],..._0x569c4b],this;}[a0_0x22bec(0x225)](_0x4284f3){const _0x118418=a0_0x22bec;return this[_0x118418(0x212)]['\x63\x6f\x6d\x6d\x61\x6e\x64\x73']=[...this[_0x118418(0x212)]['\x63\x6f\x6d\x6d\x61\x6e\x64\x73']||[],_0x118418(0x231)+_0x4284f3],this;}['\x61\x64\x64\x43\x6f\x6d\x6d\x61\x6e\x64\x73'](_0x44d627){const _0x1608bf=a0_0x22bec;return this[_0x1608bf(0x212)]['\x63\x6f\x6d\x6d\x61\x6e\x64\x73']=[...this[_0x1608bf(0x212)][_0x1608bf(0x29a)]||[],..._0x44d627],this;}[a0_0x22bec(0x295)](_0x2bb15a){const _0x464aa6=a0_0x22bec;return this[_0x464aa6(0x212)][_0x464aa6(0x19c)]=[...this[_0x464aa6(0x212)]['\x61\x70\x74\x50\x61\x63\x6b\x61\x67\x65\x73']||[],..._0x2bb15a],this;}[a0_0x22bec(0x2ee)](_0x247322){const _0x299601=a0_0x22bec;return this[_0x299601(0x212)][_0x299601(0x24e)]={...this['\x73\x70\x65\x63'][_0x299601(0x24e)],..._0x247322},this;}['\x77\x69\x74\x68\x53\x65\x63\x72\x65\x74\x73'](_0x3bd6c8){const _0x247b1f=a0_0x22bec;return this[_0x247b1f(0x212)]['\x73\x65\x63\x72\x65\x74\x73']=[...this['\x73\x70\x65\x63']['\x73\x65\x63\x72\x65\x74\x73']||[],..._0x3bd6c8],this;}[a0_0x22bec(0x1ee)](_0xa20816,_0x507bb8){const _0x55f9c2=a0_0x22bec,_0x2ec440={'\x6b\x55\x65\x78\x64':_0x55f9c2(0x283)};return this[_0x55f9c2(0x212)][_0x55f9c2(0x1ee)]={'\x70\x61\x63\x6b\x61\x67\x65\x73':[...this['\x73\x70\x65\x63'][_0x55f9c2(0x1ee)]?.[_0x55f9c2(0x2af)]||[],..._0xa20816],'\x63\x68\x61\x6e\x6e\x65\x6c\x73':_0x507bb8||this[_0x55f9c2(0x212)]['\x63\x6f\x6e\x64\x61']?.[_0x55f9c2(0x260)]||[_0x2ec440['\x6b\x55\x65\x78\x64']]},this;}[a0_0x22bec(0x1b6)](_0x4f16b9){const _0x16a4e0=a0_0x22bec;return this[_0x16a4e0(0x212)][_0x16a4e0(0x1b6)]=_0x4f16b9,this;}[a0_0x22bec(0x1d7)](_0x5df687){const _0x1755ce=a0_0x22bec;return this['\x73\x70\x65\x63'][_0x1755ce(0x1d7)]=_0x5df687,this;}[a0_0x22bec(0x19e)](_0x55a81a){const _0x90daa=a0_0x22bec;return this['\x73\x70\x65\x63'][_0x90daa(0x19e)]={...this['\x73\x70\x65\x63']['\x62\x75\x69\x6c\x64\x41\x72\x67\x73'],..._0x55a81a},this;}[a0_0x22bec(0x188)](_0x3853e0){const _0x31d791=a0_0x22bec;return this[_0x31d791(0x212)]['\x6c\x61\x62\x65\x6c\x73']={...this[_0x31d791(0x212)][_0x31d791(0x188)],..._0x3853e0},this;}[a0_0x22bec(0x215)](){const _0x1b00a5=a0_0x22bec;return{...this[_0x1b00a5(0x212)]};}async['\x63\x6f\x6d\x70\x75\x74\x65\x49\x64'](){const _0x1f4377=a0_0x22bec,_0x45df91={'\x74\x64\x79\x55\x53':_0x1f4377(0x2c4),'\x54\x4f\x6c\x68\x59':'\x68\x65\x78'},_0x49e637=JSON[_0x1f4377(0x1fa)](this[_0x1f4377(0x212)],Object[_0x1f4377(0x1bc)](this[_0x1f4377(0x212)])[_0x1f4377(0x203)]()),_0xc432af=globalThis[_0x1f4377(0x240)]?.[_0x1f4377(0x255)];if(_0xc432af){const _0x534e4b=await _0xc432af[_0x1f4377(0x2c9)](_0x45df91['\x74\x64\x79\x55\x53'],new TextEncoder()[_0x1f4377(0x1a4)](_0x49e637));return Array['\x66\x72\x6f\x6d'](new Uint8Array(_0x534e4b))['\x6d\x61\x70'](_0x5a1829=>_0x5a1829['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x10)[_0x1f4377(0x1f8)](0x2,'\x30'))[_0x1f4377(0x2cc)]('');}const {createHash:_0x36a56a}=await import(_0x1f4377(0x2e2));return _0x36a56a(_0x1f4377(0x2f0))[_0x1f4377(0x20c)](_0x49e637)[_0x1f4377(0x2c9)](_0x45df91[_0x1f4377(0x216)]);}[a0_0x22bec(0x23e)](_0x4128c4){return this['\x63\x6c\x69\x65\x6e\x74\x43\x6f\x6e\x66\x69\x67']=_0x4128c4,this;}async[a0_0x22bec(0x187)](_0x1ea9d9){const _0x502f64=a0_0x22bec,_0x1f2c45={'\x64\x4d\x52\x46\x63':function(_0x4c2722,_0x274804,_0x4d5c51){return _0x4c2722(_0x274804,_0x4d5c51);},'\x4e\x4d\x6f\x4b\x68':_0x502f64(0x22a),'\x78\x6c\x77\x59\x63':_0x502f64(0x1fc),'\x47\x4c\x55\x6b\x51':function(_0x3ff500,_0xcffbf){return _0x3ff500===_0xcffbf;},'\x6f\x62\x56\x67\x6d':function(_0x297d29,_0x56fece){return _0x297d29===_0x56fece;},'\x65\x6a\x55\x43\x4d':_0x502f64(0x205)},_0x175059=_0x1ea9d9?.[_0x502f64(0x1e5)]||this['\x63\x6c\x69\x65\x6e\x74\x43\x6f\x6e\x66\x69\x67'];if(!_0x175059)throw new Error(_0x502f64(0x183));const _0x2acdec=await _0x1f2c45[_0x502f64(0x22c)](fetch,_0x175059[_0x502f64(0x1e8)]+_0x502f64(0x298),{'\x6d\x65\x74\x68\x6f\x64':_0x1f2c45[_0x502f64(0x224)],'\x68\x65\x61\x64\x65\x72\x73':{'\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x54\x79\x70\x65':_0x1f2c45[_0x502f64(0x2cf)],'\x41\x75\x74\x68\x6f\x72\x69\x7a\x61\x74\x69\x6f\x6e':_0x502f64(0x2d8)+_0x175059[_0x502f64(0x2f7)]},'\x62\x6f\x64\x79':JSON[_0x502f64(0x1fa)]({'\x73\x70\x65\x63':this['\x73\x70\x65\x63'],'\x6f\x70\x74\x69\x6f\x6e\x73':{'\x6e\x6f\x43\x61\x63\x68\x65':_0x1ea9d9?.['\x6e\x6f\x43\x61\x63\x68\x65'],'\x70\x6c\x61\x74\x66\x6f\x72\x6d':_0x1ea9d9?.[_0x502f64(0x241)],'\x74\x61\x67':_0x1ea9d9?.[_0x502f64(0x229)],'\x73\x74\x72\x65\x61\x6d':!!_0x1ea9d9?.[_0x502f64(0x25a)]}})});if(!_0x2acdec['\x6f\x6b']){const _0x90a4bb=await _0x2acdec[_0x502f64(0x29b)]();throw new Error('\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x62\x75\x69\x6c\x64\x20\x69\x6d\x61\x67\x65\x3a\x20'+_0x90a4bb);}if(_0x1ea9d9?.[_0x502f64(0x25a)]&&_0x2acdec[_0x502f64(0x2d4)][_0x502f64(0x194)](_0x502f64(0x2eb))?.[_0x502f64(0x2e9)](_0x502f64(0x2b2))){const _0x5180be=_0x2acdec[_0x502f64(0x2e3)]?.[_0x502f64(0x1f9)]();if(_0x5180be){const _0x34c9c0=new TextDecoder();let _0x482e3a;while(!![]){const {done:_0x3ad460,value:_0xf645ad}=await _0x5180be[_0x502f64(0x1ec)]();if(_0x3ad460)break;const _0x2b6e4c=_0x34c9c0[_0x502f64(0x289)](_0xf645ad)['\x73\x70\x6c\x69\x74']('\x0a')[_0x502f64(0x2c8)](_0x3c5104=>_0x3c5104[_0x502f64(0x21a)](_0x502f64(0x1e4)));for(const _0x2795bc of _0x2b6e4c)try{const _0x5c5982=JSON[_0x502f64(0x1bf)](_0x2795bc[_0x502f64(0x2c5)](0x6));if(_0x5c5982[_0x502f64(0x2bb)]===_0x502f64(0x223))_0x1ea9d9[_0x502f64(0x25a)](_0x5c5982[_0x502f64(0x1c3)]);else{if(_0x1f2c45[_0x502f64(0x213)](_0x5c5982['\x74\x79\x70\x65'],'\x63\x6f\x6d\x70\x6c\x65\x74\x65'))_0x482e3a={..._0x5c5982[_0x502f64(0x2f6)],'\x63\x72\x65\x61\x74\x65\x64\x41\x74':new Date(_0x5c5982['\x72\x65\x73\x75\x6c\x74']['\x63\x72\x65\x61\x74\x65\x64\x41\x74'])};else{if(_0x1f2c45[_0x502f64(0x2ad)](_0x5c5982['\x74\x79\x70\x65'],'\x65\x72\x72\x6f\x72'))throw new Error(_0x5c5982['\x6d\x65\x73\x73\x61\x67\x65']);}}}catch(_0x47c62c){if(_0x47c62c instanceof SyntaxError)continue;throw _0x47c62c;}}if(!_0x482e3a)throw new Error(_0x1f2c45[_0x502f64(0x270)]);return Image[_0x502f64(0x2be)](_0x482e3a);}}const _0xbb1329=await _0x2acdec[_0x502f64(0x1ad)](),_0x52d986={..._0xbb1329,'\x63\x72\x65\x61\x74\x65\x64\x41\x74':new Date(_0xbb1329[_0x502f64(0x226)])};return Image['\x66\x72\x6f\x6d\x42\x75\x69\x6c\x64\x52\x65\x73\x75\x6c\x74'](_0x52d986);}[a0_0x22bec(0x24a)](){const _0x5ee2ce=a0_0x22bec,_0x207b21={'\x49\x75\x72\x49\x67':function(_0x1de989,_0x38a413){return _0x1de989(_0x38a413);}};return _0x207b21[_0x5ee2ce(0x250)](generateDockerfile,this[_0x5ee2ce(0x212)]);}};function generateDockerfile(_0x108ca6){const _0x3218e8=a0_0x22bec,_0x3535ac={'\x6b\x6d\x48\x55\x64':function(_0x487b93,_0x24c7ee){return _0x487b93>_0x24c7ee;},'\x64\x48\x45\x4c\x7a':_0x3218e8(0x299),'\x69\x47\x74\x4c\x6e':_0x3218e8(0x285),'\x6d\x6c\x65\x55\x6f':_0x3218e8(0x26d),'\x6d\x67\x41\x78\x48':_0x3218e8(0x1c6),'\x66\x74\x4d\x4d\x43':_0x3218e8(0x179),'\x75\x52\x4f\x4e\x6f':_0x3218e8(0x283),'\x41\x6c\x4e\x6e\x4d':_0x3218e8(0x2b0)},_0x120848=[];_0x120848[_0x3218e8(0x27b)]('\x46\x52\x4f\x4d\x20'+_0x108ca6['\x62\x61\x73\x65\x49\x6d\x61\x67\x65']),_0x120848[_0x3218e8(0x27b)]('');if(_0x108ca6[_0x3218e8(0x188)]&&_0x3535ac[_0x3218e8(0x209)](Object[_0x3218e8(0x1bc)](_0x108ca6['\x6c\x61\x62\x65\x6c\x73'])['\x6c\x65\x6e\x67\x74\x68'],0x0)){for(const [_0x281c24,_0x3235ad]of Object['\x65\x6e\x74\x72\x69\x65\x73'](_0x108ca6[_0x3218e8(0x188)]))_0x120848['\x70\x75\x73\x68'](_0x3218e8(0x1ba)+_0x281c24+'\x3d\x22'+_0x3235ad+'\x22');_0x120848[_0x3218e8(0x27b)]('');}if(_0x108ca6[_0x3218e8(0x19e)]&&Object[_0x3218e8(0x1bc)](_0x108ca6[_0x3218e8(0x19e)])['\x6c\x65\x6e\x67\x74\x68']>0x0){for(const [_0x41e38e,_0x2904fc]of Object[_0x3218e8(0x29e)](_0x108ca6[_0x3218e8(0x19e)]))_0x120848['\x70\x75\x73\x68'](_0x3218e8(0x1db)+_0x41e38e+'\x3d'+_0x2904fc);_0x120848[_0x3218e8(0x27b)]('');}if(_0x108ca6['\x65\x6e\x76']&&Object[_0x3218e8(0x1bc)](_0x108ca6[_0x3218e8(0x24e)])[_0x3218e8(0x20f)]>0x0){for(const [_0xfe1a3c,_0x118304]of Object[_0x3218e8(0x29e)](_0x108ca6[_0x3218e8(0x24e)]))_0x120848[_0x3218e8(0x27b)]('\x45\x4e\x56\x20'+_0xfe1a3c+'\x3d\x22'+_0x118304+'\x22');_0x120848[_0x3218e8(0x27b)]('');}_0x108ca6[_0x3218e8(0x1b6)]&&(_0x120848[_0x3218e8(0x27b)](_0x3218e8(0x273)+_0x108ca6[_0x3218e8(0x1b6)]),_0x120848[_0x3218e8(0x27b)](''));_0x108ca6[_0x3218e8(0x19c)]&&_0x108ca6['\x61\x70\x74\x50\x61\x63\x6b\x61\x67\x65\x73'][_0x3218e8(0x20f)]>0x0&&(_0x120848[_0x3218e8(0x27b)](_0x3218e8(0x2c1)),_0x120848[_0x3218e8(0x27b)]('\x52\x55\x4e\x20\x61\x70\x74\x2d\x67\x65\x74\x20\x75\x70\x64\x61\x74\x65\x20\x26\x26\x20\x5c'),_0x120848[_0x3218e8(0x27b)](_0x3218e8(0x26a)+_0x108ca6[_0x3218e8(0x19c)][_0x3218e8(0x2cc)]('\x20')+_0x3218e8(0x17d)),_0x120848[_0x3218e8(0x27b)](_0x3535ac[_0x3218e8(0x25c)]),_0x120848[_0x3218e8(0x27b)](''));_0x108ca6[_0x3218e8(0x218)]&&(_0x120848[_0x3218e8(0x27b)](_0x3218e8(0x2ec)+_0x108ca6[_0x3218e8(0x218)]),!(_0x108ca6[_0x3218e8(0x185)][_0x3218e8(0x2e9)](_0x3535ac[_0x3218e8(0x2ab)])||_0x108ca6['\x62\x61\x73\x65\x49\x6d\x61\x67\x65']['\x69\x6e\x63\x6c\x75\x64\x65\x73']('\x61\x6e\x61\x63\x6f\x6e\x64\x61')||_0x108ca6[_0x3218e8(0x185)][_0x3218e8(0x2e9)](_0x3218e8(0x1a5)))&&_0x108ca6[_0x3218e8(0x185)][_0x3218e8(0x2e9)](_0x3218e8(0x1d8))&&(_0x120848[_0x3218e8(0x27b)](_0x3218e8(0x23f)),_0x120848[_0x3218e8(0x27b)](_0x3218e8(0x191)),_0x120848[_0x3218e8(0x27b)](_0x3218e8(0x27c)),_0x120848[_0x3218e8(0x27b)](_0x3218e8(0x280)+_0x108ca6[_0x3218e8(0x218)]+_0x3218e8(0x1fe)+_0x108ca6[_0x3218e8(0x218)]+_0x3218e8(0x2a0)+_0x108ca6[_0x3218e8(0x218)]+_0x3218e8(0x221)),_0x120848['\x70\x75\x73\x68'](_0x3218e8(0x299)),_0x120848[_0x3218e8(0x27b)](''),_0x120848[_0x3218e8(0x27b)](_0x3218e8(0x1d5)+_0x108ca6['\x70\x79\x74\x68\x6f\x6e\x56\x65\x72\x73\x69\x6f\x6e']+_0x3218e8(0x2f1)),_0x120848['\x70\x75\x73\x68'](_0x3218e8(0x2a5)+_0x108ca6[_0x3218e8(0x218)]+'\x20\x31'),_0x120848[_0x3218e8(0x27b)](''),_0x120848['\x70\x75\x73\x68']('\x52\x55\x4e\x20\x63\x75\x72\x6c\x20\x2d\x73\x53\x20\x68\x74\x74\x70\x73\x3a\x2f\x2f\x62\x6f\x6f\x74\x73\x74\x72\x61\x70\x2e\x70\x79\x70\x61\x2e\x69\x6f\x2f\x67\x65\x74\x2d\x70\x69\x70\x2e\x70\x79\x20\x7c\x20\x70\x79\x74\x68\x6f\x6e')),_0x120848[_0x3218e8(0x27b)](''));if(_0x108ca6[_0x3218e8(0x1ee)]&&_0x108ca6['\x63\x6f\x6e\x64\x61'][_0x3218e8(0x2af)]['\x6c\x65\x6e\x67\x74\x68']>0x0){_0x120848[_0x3218e8(0x27b)](_0x3535ac[_0x3218e8(0x259)]),_0x120848['\x70\x75\x73\x68'](_0x3218e8(0x1fd)),_0x120848[_0x3218e8(0x27b)](_0x3535ac['\x6d\x67\x41\x78\x48']),_0x120848[_0x3218e8(0x27b)](_0x3535ac[_0x3218e8(0x2bc)]),_0x120848[_0x3218e8(0x27b)]('');const _0x164902=(_0x108ca6[_0x3218e8(0x1ee)][_0x3218e8(0x260)]||[_0x3535ac['\x75\x52\x4f\x4e\x6f']])['\x6d\x61\x70'](_0x1cfb15=>'\x2d\x63\x20'+_0x1cfb15)[_0x3218e8(0x2cc)]('\x20');_0x120848['\x70\x75\x73\x68'](_0x3218e8(0x288)+_0x164902+'\x20'+_0x108ca6[_0x3218e8(0x1ee)][_0x3218e8(0x2af)][_0x3218e8(0x2cc)]('\x20')+_0x3218e8(0x17d)),_0x120848[_0x3218e8(0x27b)](_0x3218e8(0x1b0)),_0x120848['\x70\x75\x73\x68']('\x45\x4e\x56\x20\x50\x41\x54\x48\x3d\x22\x2f\x6f\x70\x74\x2f\x63\x6f\x6e\x64\x61\x2f\x62\x69\x6e\x3a\x24\x50\x41\x54\x48\x22'),_0x120848[_0x3218e8(0x27b)]('');}_0x108ca6['\x70\x61\x63\x6b\x61\x67\x65\x73']&&_0x108ca6[_0x3218e8(0x2af)][_0x3218e8(0x20f)]>0x0&&(_0x120848[_0x3218e8(0x27b)](_0x3535ac[_0x3218e8(0x297)]),_0x120848[_0x3218e8(0x27b)](_0x3218e8(0x2ef)+_0x108ca6['\x70\x61\x63\x6b\x61\x67\x65\x73'][_0x3218e8(0x2cc)]('\x20')),_0x120848['\x70\x75\x73\x68'](''));if(_0x108ca6[_0x3218e8(0x29a)]&&_0x108ca6[_0x3218e8(0x29a)][_0x3218e8(0x20f)]>0x0){_0x120848[_0x3218e8(0x27b)]('\x23\x20\x43\x75\x73\x74\x6f\x6d\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x73');for(const _0x43ea15 of _0x108ca6[_0x3218e8(0x29a)])_0x120848['\x70\x75\x73\x68'](_0x3218e8(0x1a8)+_0x43ea15);_0x120848[_0x3218e8(0x27b)]('');}if(_0x108ca6[_0x3218e8(0x1d7)])_0x120848[_0x3218e8(0x27b)](_0x3218e8(0x1b3)+_0x108ca6[_0x3218e8(0x1d7)]);return _0x120848[_0x3218e8(0x2cc)]('\x0a');}const MANAGE_SANDBOXES_TOOL_NAME=a0_0x22bec(0x2cd);function createManageSandboxesTool(_0xde980a,_0x12fb3d={}){const _0x3a84f1=a0_0x22bec,_0x19f7f5={'\x6e\x4e\x6f\x44\x43':_0x3a84f1(0x1d4),'\x72\x7a\x62\x50\x4c':'\x63\x72\x65\x61\x74\x65\x57\x69\x74\x68\x43\x6f\x6f\x72\x64\x69\x6e\x61\x74\x6f\x72','\x4c\x69\x57\x71\x73':function(_0x17d00e,_0x373dda,_0x4f8a90){return _0x17d00e(_0x373dda,_0x4f8a90);},'\x4d\x70\x54\x54\x70':'\x66\x6c\x65\x65\x74\x49\x64','\x76\x6b\x61\x64\x4f':function(_0x264182,_0x32530d){return _0x264182(_0x32530d);},'\x6e\x42\x7a\x6d\x55':'\x64\x65\x74\x61\x63\x68\x4d\x61\x63\x68\x69\x6e\x65','\x41\x74\x4f\x72\x49':'\x75\x73\x61\x67\x65','\x6a\x59\x77\x71\x6c':_0x3a84f1(0x23a),'\x58\x71\x53\x78\x62':function(_0x4add15,_0x120ae1,_0x275f18){return _0x4add15(_0x120ae1,_0x275f18);},'\x5a\x4b\x42\x64\x76':function(_0xb2c679,_0x86e528,_0x377de3){return _0xb2c679(_0x86e528,_0x377de3);},'\x71\x76\x5a\x70\x48':'\x63\x72\x65\x61\x74\x65\x57\x6f\x72\x6b\x73\x70\x61\x63\x65\x53\x6e\x61\x70\x73\x68\x6f\x74','\x61\x56\x74\x42\x71':_0x3a84f1(0x26e),'\x6c\x68\x53\x50\x49':_0x3a84f1(0x186),'\x43\x66\x74\x6b\x69':function(_0x4dcc36,_0x35e006){return _0x4dcc36(_0x35e006);}};return{'\x6e\x61\x6d\x65':MANAGE_SANDBOXES_TOOL_NAME,'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0x3a84f1(0x24c),'\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73':MANAGE_SANDBOXES_PARAMETERS,async '\x65\x78\x65\x63\x75\x74\x65'(_0x1a3874){const _0x51262c=_0x3a84f1;switch(_0x1a3874[_0x51262c(0x271)]){case'\x63\x61\x70\x61\x62\x69\x6c\x69\x74\x69\x65\x73':return _0xde980a[_0x51262c(0x248)][_0x51262c(0x2b4)]();case _0x19f7f5[_0x51262c(0x28e)]:return _0xde980a[_0x51262c(0x248)]['\x63\x72\x65\x61\x74\x65'](applyToolPolicy(requireCreateOptions(_0x1a3874),_0x12fb3d[_0x51262c(0x244)]));case _0x19f7f5[_0x51262c(0x228)]:return _0xde980a['\x66\x6c\x65\x65\x74\x73'][_0x51262c(0x20a)](applyToolPolicy(requireCreateWithCoordinatorOptions(_0x1a3874),_0x12fb3d['\x70\x6f\x6c\x69\x63\x79']));case _0x51262c(0x28c):return _0xde980a[_0x51262c(0x248)][_0x51262c(0x28c)]({'\x66\x6c\x65\x65\x74\x49\x64':_0x19f7f5[_0x51262c(0x2da)](requireString,_0x1a3874,_0x51262c(0x2e4))});case _0x51262c(0x2d0):return _0xde980a[_0x51262c(0x248)]['\x64\x65\x6c\x65\x74\x65'](requireString(_0x1a3874,_0x19f7f5['\x4d\x70\x54\x54\x70']));case'\x61\x74\x74\x61\x63\x68\x4d\x61\x63\x68\x69\x6e\x65':return _0xde980a[_0x51262c(0x248)][_0x51262c(0x238)](requireString(_0x1a3874,_0x19f7f5[_0x51262c(0x17e)]),_0x19f7f5[_0x51262c(0x190)](requireMachine,_0x1a3874));case _0x19f7f5[_0x51262c(0x1b5)]:return _0xde980a[_0x51262c(0x248)][_0x51262c(0x2c6)](_0x19f7f5['\x4c\x69\x57\x71\x73'](requireString,_0x1a3874,_0x19f7f5[_0x51262c(0x17e)]),_0x19f7f5[_0x51262c(0x2da)](requireString,_0x1a3874,_0x51262c(0x1cc)));case _0x51262c(0x2d9):return _0xde980a['\x66\x6c\x65\x65\x74\x73'][_0x51262c(0x2d9)](requireString(_0x1a3874,_0x19f7f5[_0x51262c(0x17e)]));case _0x19f7f5[_0x51262c(0x1b8)]:return _0xde980a[_0x51262c(0x248)][_0x51262c(0x1f1)](requireString(_0x1a3874,_0x51262c(0x2e4)));case _0x19f7f5[_0x51262c(0x26b)]:return _0xde980a[_0x51262c(0x248)][_0x51262c(0x23a)](_0x19f7f5[_0x51262c(0x1b9)](requireString,_0x1a3874,_0x19f7f5[_0x51262c(0x17e)]));case _0x51262c(0x20d):return _0xde980a['\x66\x6c\x65\x65\x74\x73'][_0x51262c(0x20d)](_0x19f7f5['\x5a\x4b\x42\x64\x76'](requireString,_0x1a3874,_0x51262c(0x2e4)));case _0x51262c(0x268):return _0xde980a[_0x51262c(0x248)][_0x51262c(0x268)](requireString(_0x1a3874,_0x19f7f5['\x4d\x70\x54\x54\x70']));case _0x19f7f5[_0x51262c(0x28b)]:return _0xde980a[_0x51262c(0x248)][_0x51262c(0x2e0)](requireString(_0x1a3874,_0x19f7f5[_0x51262c(0x17e)]));case _0x19f7f5[_0x51262c(0x278)]:return _0xde980a[_0x51262c(0x248)][_0x51262c(0x26e)](requireString(_0x1a3874,_0x51262c(0x2e4)),requireString(_0x1a3874,_0x19f7f5[_0x51262c(0x1d2)]));case _0x51262c(0x276):return _0xde980a[_0x51262c(0x248)][_0x51262c(0x276)](requireString(_0x1a3874,_0x19f7f5[_0x51262c(0x17e)]));default:throw new Error(_0x51262c(0x208)+_0x19f7f5[_0x51262c(0x233)](String,_0x1a3874['\x61\x63\x74\x69\x6f\x6e']));}}};}function requireString(_0x5dbf88,_0x6f8792){const _0x2070dc=a0_0x22bec,_0x5dccb1={'\x44\x44\x4a\x58\x5a':function(_0x3b113b,_0x1bb7a7){return _0x3b113b!==_0x1bb7a7;}},_0x4a7527=_0x5dbf88[_0x6f8792];if(_0x5dccb1['\x44\x44\x4a\x58\x5a'](typeof _0x4a7527,_0x2070dc(0x18d))||_0x4a7527['\x6c\x65\x6e\x67\x74\x68']===0x0)throw new Error('\x6d\x61\x6e\x61\x67\x65\x53\x61\x6e\x64\x62\x6f\x78\x65\x73\x20\x72\x65\x71\x75\x69\x72\x65\x73\x20'+_0x6f8792);return _0x4a7527;}function requireCreateOptions(_0x369c07){const _0x81c023=a0_0x22bec,_0x27a309={'\x78\x64\x45\x75\x68':_0x81c023(0x192)},_0x17cb76=_0x369c07[_0x81c023(0x210)];if(!_0x17cb76||typeof _0x17cb76!==_0x27a309[_0x81c023(0x27f)])throw new Error(_0x81c023(0x19b));return rejectUserPolicy(_0x17cb76);}function a0_0x1b0b(){const _0x565a28=['\x43\x4d\x76\x5a\x44\x67\x39\x59\x7a\x76\x44\x56\x43\x4d\x54\x5a\x43\x67\x66\x4a\x7a\x76\x6e\x55\x79\x78\x62\x5a\x41\x67\x39\x30','\x7a\x4e\x76\x55\x79\x33\x72\x50\x42\x32\x34','\x7a\x77\x50\x76\x71\x30\x30','\x79\x77\x6e\x30\x41\x77\x39\x55','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x65\x6a\x48\x79\x32\x54\x4c\x42\x4d\x71','\x76\x30\x39\x73\x73\x30\x72\x6a\x75\x49\x61','\x79\x78\x62\x50\x78\x32\x54\x4c\x45\x76\x39\x4c\x42\x4e\x79','\x7a\x66\x6e\x72\x44\x68\x69','\x43\x4d\x76\x4a\x42\x32\x35\x4a\x41\x77\x58\x4c\x76\x32\x39\x59\x41\x33\x6e\x57\x79\x77\x6e\x4c','\x7a\x32\x76\x30\x75\x4d\x66\x55\x7a\x67\x39\x54\x76\x4d\x66\x53\x44\x77\x76\x5a','\x79\x76\x7a\x30\x71\x4e\x65','\x43\x68\x6a\x56\x7a\x4d\x4c\x53\x7a\x71','\x75\x32\x6a\x76\x79\x31\x4f','\x43\x68\x76\x5a\x41\x61','\x69\x63\x61\x47\x69\x67\x66\x4b\x7a\x63\x31\x48\x43\x68\x71\x54\x43\x4d\x76\x57\x42\x33\x6e\x50\x44\x67\x39\x59\x45\x73\x61\x54\x45\x73\x62\x57\x43\x67\x65\x36\x7a\x67\x76\x48\x7a\x68\x6e\x55\x79\x77\x54\x4c\x43\x59\x39\x57\x43\x67\x65\x47\x6a\x49\x79\x47\x78\x61','\x41\x67\x39\x56\x41\x33\x6d','\x43\x32\x48\x48\x6d\x4a\x75\x32\x6f\x47','\x45\x67\x72\x66\x44\x77\x47','\x69\x63\x61\x47\x69\x67\x66\x57\x44\x63\x31\x4e\x7a\x78\x71\x47\x41\x77\x35\x5a\x44\x67\x66\x53\x42\x63\x61\x54\x45\x73\x62\x57\x45\x78\x72\x4f\x42\x32\x34','\x43\x32\x6e\x4c\x42\x4d\x66\x59\x41\x77\x38','\x43\x4d\x76\x57\x42\x67\x66\x4a\x7a\x71','\x79\x32\x39\x55\x7a\x67\x65\x54\x7a\x4d\x39\x59\x7a\x32\x75','\x7a\x78\x7a\x48\x42\x66\x39\x54\x79\x78\x72\x59\x41\x78\x47','\x43\x68\x4c\x30\x41\x67\x39\x55','\x42\x77\x6e\x57','\x74\x75\x35\x49\x72\x75\x30','\x75\x4c\x76\x6f\x69\x67\x31\x50\x79\x33\x6a\x56\x42\x77\x66\x54\x79\x4d\x65\x47\x41\x77\x35\x5a\x44\x67\x66\x53\x42\x63\x61\x54\x45\x73\x61\x54\x42\x49\x62\x49\x79\x78\x6e\x4c\x69\x61','\x7a\x67\x76\x4a\x42\x32\x72\x4c','\x44\x68\x6a\x48\x79\x32\x76\x6a\x7a\x61','\x43\x78\x7a\x41\x43\x65\x47','\x42\x67\x4c\x5a\x44\x61','\x73\x77\x35\x32\x79\x77\x58\x50\x7a\x63\x62\x75\x79\x77\x35\x4e\x42\x67\x75\x47\x75\x4d\x39\x31\x44\x67\x76\x59\x69\x68\x6e\x4c\x79\x78\x6a\x4a\x41\x63\x62\x4a\x42\x32\x35\x4d\x41\x77\x43\x47\x43\x4d\x76\x5a\x43\x67\x39\x55\x43\x32\x75','\x42\x4b\x35\x56\x72\x65\x6d','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x65\x6e\x53\x41\x77\x76\x55\x44\x61','\x79\x77\x35\x55\x42\x33\x72\x48\x44\x67\x4c\x56\x42\x4e\x6d','\x7a\x78\x48\x30\x7a\x77\x35\x5a\x41\x77\x39\x55\x43\x57','\x79\x4e\x76\x50\x42\x67\x72\x74\x79\x77\x35\x4b\x79\x4d\x39\x34\x74\x77\x6e\x57\x71\x32\x39\x55\x7a\x4d\x4c\x4e\x6f\x49\x62\x48\x44\x78\x72\x4f\x76\x67\x39\x52\x7a\x77\x34\x47\x41\x78\x6d\x47\x43\x4d\x76\x58\x44\x77\x4c\x59\x7a\x77\x71','\x7a\x67\x4c\x5a\x43\x67\x66\x30\x79\x32\x48\x71\x43\x4d\x39\x54\x43\x68\x71','\x41\x77\x35\x57\x44\x78\x72\x70\x44\x4d\x76\x59\x43\x4d\x4c\x4b\x7a\x78\x6d','\x79\x77\x72\x4b\x71\x78\x62\x30\x75\x67\x66\x4a\x41\x32\x66\x4e\x7a\x78\x6d','\x7a\x67\x76\x4d\x79\x78\x76\x53\x44\x61','\x71\x77\x58\x6f\x42\x4b\x30','\x6c\x33\x79\x58\x6c\x32\x4c\x54\x79\x77\x44\x4c\x43\x57','\x69\x63\x61\x47\x69\x67\x66\x57\x44\x63\x31\x4e\x7a\x78\x71\x47\x79\x32\x58\x4c\x79\x77\x34\x47\x6a\x49\x79\x47\x43\x4d\x30\x47\x6c\x78\x6a\x4d\x69\x63\x39\x32\x79\x78\x69\x56\x42\x67\x4c\x49\x6c\x32\x66\x57\x44\x63\x39\x53\x41\x78\x6e\x30\x43\x59\x38\x51','\x79\x32\x39\x54\x42\x77\x66\x55\x7a\x68\x6d','\x44\x67\x76\x34\x44\x61','\x44\x67\x39\x56\x42\x68\x6d','\x76\x66\x72\x4b\x43\x66\x6d','\x7a\x77\x35\x30\x43\x4d\x4c\x4c\x43\x57','\x7a\x4d\x4c\x53\x7a\x78\x6d','\x6c\x78\x7a\x4c\x42\x4e\x79\x47\x43\x68\x4c\x30\x41\x67\x39\x55','\x41\x78\x6e\x67\x41\x77\x35\x50\x44\x67\x75','\x79\x4d\x66\x5a\x7a\x77\x58\x50\x42\x4d\x75','\x42\x77\x39\x4b\x7a\x78\x6d','\x41\x67\x66\x59\x42\x4d\x76\x5a\x43\x57','\x69\x63\x61\x47\x69\x68\x76\x57\x7a\x67\x66\x30\x7a\x73\x31\x48\x42\x68\x72\x4c\x43\x4d\x35\x48\x44\x67\x4c\x32\x7a\x78\x6d\x47\x6c\x73\x31\x50\x42\x4e\x6e\x30\x79\x77\x58\x53\x69\x63\x39\x31\x43\x33\x69\x56\x79\x4d\x4c\x55\x6c\x33\x62\x35\x44\x67\x48\x56\x42\x4a\x6d\x47\x43\x68\x4c\x30\x41\x67\x39\x55\x6d\x59\x61\x56\x44\x78\x6e\x59\x6c\x32\x6a\x50\x42\x49\x39\x57\x45\x78\x72\x4f\x42\x32\x34','\x43\x32\x6e\x59\x79\x78\x72\x4a\x41\x61','\x43\x32\x76\x5a\x43\x32\x4c\x56\x42\x4b\x4c\x4b\x75\x68\x6a\x4c\x7a\x4d\x4c\x34','\x79\x32\x39\x5a\x44\x66\x76\x5a\x7a\x61','\x79\x32\x39\x4b\x7a\x78\x47','\x7a\x32\x4c\x30\x41\x68\x76\x49','\x41\x75\x44\x30\x74\x67\x34','\x75\x67\x44\x53\x79\x32\x43','\x42\x32\x6a\x77\x7a\x32\x30','\x44\x67\x39\x56\x42\x65\x35\x48\x42\x77\x75','\x43\x67\x66\x4a\x41\x32\x66\x4e\x7a\x78\x6d','\x69\x59\x62\x6a\x42\x4e\x6e\x30\x79\x77\x58\x53\x69\x66\x62\x35\x44\x67\x48\x56\x42\x49\x62\x57\x79\x77\x6e\x52\x79\x77\x44\x4c\x43\x57','\x44\x4e\x4c\x30\x76\x77\x4b','\x44\x67\x76\x34\x44\x63\x39\x4c\x44\x4d\x76\x55\x44\x63\x31\x5a\x44\x68\x6a\x4c\x79\x77\x30','\x42\x4e\x76\x54\x79\x4d\x76\x59','\x79\x32\x66\x57\x79\x77\x6a\x50\x42\x67\x4c\x30\x41\x77\x76\x5a','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x61','\x76\x67\x76\x59\x42\x77\x4c\x55\x79\x77\x57\x47\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x63\x62\x59\x7a\x78\x6e\x31\x42\x68\x71\x47\x42\x32\x6a\x5a\x7a\x78\x6a\x32\x7a\x77\x71','\x43\x32\x76\x48\x43\x4d\x6e\x4f\x75\x68\x6a\x56\x44\x4d\x4c\x4b\x7a\x78\x69','\x42\x77\x66\x4a\x41\x67\x4c\x55\x7a\x71','\x43\x32\x76\x48\x43\x4d\x6e\x4f\x75\x4d\x76\x58\x44\x77\x76\x5a\x44\x68\x6d','\x75\x4b\x44\x54\x45\x77\x47','\x44\x68\x4c\x57\x7a\x71','\x7a\x4e\x72\x6e\x74\x75\x6d','\x75\x32\x66\x55\x7a\x67\x6a\x56\x45\x63\x62\x30\x7a\x78\x6e\x30\x69\x67\x6e\x56\x42\x77\x31\x48\x42\x4d\x71\x47\x43\x67\x66\x5a\x43\x32\x76\x4b','\x7a\x4e\x6a\x56\x42\x75\x6a\x31\x41\x77\x58\x4b\x75\x4d\x76\x5a\x44\x77\x58\x30','\x42\x32\x7a\x4d','\x6c\x33\x6a\x31\x42\x4e\x6d\x56\x41\x77\x31\x57\x42\x33\x6a\x30','\x69\x59\x62\x6a\x42\x4e\x6e\x30\x79\x77\x58\x53\x69\x68\x6e\x35\x43\x33\x72\x4c\x42\x73\x62\x57\x79\x77\x6e\x52\x79\x77\x44\x4c\x43\x57','\x43\x33\x76\x4a\x79\x32\x76\x5a\x43\x57','\x6c\x32\x66\x57\x41\x73\x39\x4c\x44\x4d\x66\x53\x6c\x33\x6e\x31\x41\x78\x72\x4c\x43\x59\x38','\x75\x30\x48\x62\x6c\x74\x69\x31\x6e\x47','\x43\x32\x58\x50\x79\x32\x75','\x7a\x67\x76\x30\x79\x77\x6e\x4f\x74\x77\x66\x4a\x41\x67\x4c\x55\x7a\x71','\x41\x67\x66\x59\x42\x4d\x76\x5a\x43\x30\x4c\x4b','\x7a\x4d\x4c\x53\x44\x67\x76\x59','\x7a\x67\x4c\x4e\x7a\x78\x6e\x30','\x44\x32\x76\x49\x75\x32\x76\x48\x43\x4d\x6e\x4f','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x66\x76\x59\x42\x61','\x41\x4d\x39\x50\x42\x47','\x42\x77\x66\x55\x79\x77\x44\x4c\x75\x32\x66\x55\x7a\x67\x6a\x56\x45\x67\x76\x5a','\x41\x65\x50\x5a\x75\x67\x71','\x45\x67\x58\x33\x77\x77\x6d','\x7a\x67\x76\x53\x7a\x78\x72\x4c','\x42\x32\x35\x74\x44\x77\x6e\x4a\x7a\x78\x6e\x5a','\x79\x4d\x39\x4b\x45\x76\x39\x30\x7a\x77\x31\x57\x42\x67\x66\x30\x7a\x71','\x41\x66\x76\x4f\x71\x32\x65','\x41\x67\x76\x48\x7a\x67\x76\x59\x43\x57','\x79\x32\x76\x53\x42\x61','\x73\x4b\x44\x6d\x45\x68\x6d','\x6e\x74\x65\x31\x6d\x5a\x61\x57\x7a\x4e\x6e\x41\x42\x32\x72\x6f','\x71\x4d\x76\x48\x43\x4d\x76\x59\x69\x61','\x42\x77\x66\x55\x41\x77\x7a\x4c\x43\x33\x71','\x74\x67\x4c\x78\x43\x78\x6d','\x43\x32\x4c\x4e\x42\x4d\x66\x53','\x72\x4d\x66\x50\x42\x67\x76\x4b\x69\x68\x72\x56\x69\x67\x58\x56\x79\x77\x71\x47\x76\x67\x66\x55\x7a\x32\x58\x4c\x69\x66\x6a\x56\x44\x78\x72\x4c\x43\x49\x62\x5a\x7a\x77\x66\x59\x79\x32\x47\x47\x79\x32\x39\x55\x7a\x4d\x4c\x4e\x6f\x49\x61','\x43\x4d\x76\x57\x42\x33\x6e\x50\x44\x67\x39\x59\x45\x71','\x42\x4d\x39\x33','\x79\x78\x76\x30\x42\x57','\x79\x33\x6a\x4c\x79\x78\x72\x4c\x76\x32\x39\x59\x41\x33\x6e\x57\x79\x77\x6e\x4c\x75\x32\x35\x48\x43\x68\x6e\x4f\x42\x33\x71','\x41\x78\x72\x4c\x43\x4d\x66\x30\x41\x77\x39\x55\x43\x57','\x42\x4d\x39\x4b\x7a\x74\x50\x4a\x43\x4e\x4c\x57\x44\x67\x38','\x79\x4d\x39\x4b\x45\x71','\x7a\x4d\x58\x4c\x7a\x78\x72\x6a\x7a\x61','\x69\x67\x7a\x48\x41\x77\x58\x4c\x7a\x63\x61\x4f','\x43\x4d\x76\x58\x44\x77\x4c\x59\x7a\x75\x66\x30\x44\x67\x76\x5a\x44\x67\x66\x30\x41\x77\x39\x55','\x41\x78\x72\x4c\x43\x4d\x66\x30\x41\x77\x39\x55','\x79\x78\x6a\x30\x41\x77\x7a\x48\x79\x33\x72\x5a','\x41\x77\x35\x4a\x42\x68\x76\x4b\x7a\x78\x6d','\x79\x77\x44\x4c\x42\x4e\x72\x5a','\x79\x32\x39\x55\x44\x67\x76\x55\x44\x63\x31\x30\x45\x78\x62\x4c','\x69\x59\x62\x6a\x42\x4e\x6e\x30\x79\x77\x58\x53\x69\x66\x62\x35\x44\x67\x48\x56\x42\x49\x61','\x7a\x68\x76\x59\x79\x78\x72\x50\x42\x32\x35\x6e\x43\x57','\x44\x32\x4c\x30\x41\x65\x76\x55\x44\x47','\x75\x4c\x76\x6f\x69\x68\x62\x50\x43\x63\x62\x50\x42\x4e\x6e\x30\x79\x77\x58\x53\x69\x63\x30\x54\x42\x4d\x38\x54\x79\x32\x66\x4a\x41\x67\x75\x54\x7a\x67\x4c\x59\x69\x61','\x43\x32\x48\x48\x6d\x4a\x75\x32','\x69\x64\x65\x47\x6a\x49\x79\x47\x78\x61','\x43\x4d\x76\x4d','\x43\x78\x72\x52\x73\x75\x69','\x6d\x5a\x71\x32\x6e\x74\x6d\x31\x73\x77\x39\x6c\x45\x78\x62\x4c','\x43\x32\x76\x48\x43\x4d\x6e\x4f\x6c\x4d\x6e\x56\x42\x4d\x7a\x50\x7a\x57','\x43\x4d\x76\x5a\x44\x77\x58\x30','\x79\x78\x62\x50\x73\x32\x76\x35','\x44\x65\x35\x63\x77\x76\x4f','\x7a\x67\x76\x4d\x79\x78\x76\x53\x44\x66\x39\x57\x43\x4d\x39\x32\x41\x77\x72\x4c\x43\x47','\x69\x63\x61\x47\x69\x67\x31\x50\x79\x33\x6a\x56\x42\x77\x66\x54\x79\x4d\x65\x47\x43\x32\x48\x4c\x42\x67\x57\x47\x41\x77\x35\x50\x44\x63\x61\x54\x43\x59\x62\x49\x79\x78\x6e\x4f\x69\x63\x31\x57\x69\x63\x39\x56\x43\x68\x71\x56\x79\x32\x39\x55\x7a\x67\x65','\x76\x65\x76\x66\x69\x67\x66\x30\x44\x67\x76\x5a\x44\x67\x66\x30\x41\x77\x39\x55\x69\x68\x6a\x4c\x43\x33\x62\x56\x42\x4e\x6e\x4c\x69\x67\x35\x56\x42\x4d\x6e\x4c\x69\x67\x72\x50\x7a\x63\x62\x55\x42\x33\x71\x47\x42\x77\x66\x30\x79\x32\x47\x47\x79\x32\x48\x48\x42\x67\x58\x4c\x42\x4d\x44\x4c','\x79\x77\x6a\x56\x43\x4e\x71','\x41\x4c\x6a\x5a\x44\x65\x34','\x69\x63\x79\x4d\x69\x66\x57','\x74\x78\x62\x75\x76\x68\x61','\x79\x32\x39\x55\x79\x33\x76\x59\x43\x4d\x76\x55\x79\x33\x4b','\x72\x4b\x7a\x4c\x77\x78\x61','\x72\x67\x66\x54\x72\x4c\x75','\x7a\x4e\x6a\x56\x42\x75\x72\x56\x79\x32\x54\x4c\x43\x4d\x7a\x50\x42\x67\x75','\x71\x32\x58\x50\x7a\x77\x35\x30\x69\x67\x6e\x56\x42\x4d\x7a\x50\x7a\x33\x76\x59\x79\x78\x72\x50\x42\x32\x34\x47\x43\x4d\x76\x58\x44\x77\x4c\x59\x7a\x77\x71\x55\x69\x66\x62\x48\x43\x33\x6d\x47\x45\x59\x62\x4a\x42\x67\x4c\x4c\x42\x4e\x71\x36\x69\x68\x53\x47\x79\x4d\x66\x5a\x7a\x76\x76\x59\x42\x63\x57\x47\x79\x78\x62\x50\x73\x32\x76\x35\x69\x68\x30\x47\x46\x73\x62\x30\x42\x59\x62\x49\x44\x77\x4c\x53\x7a\x63\x47\x50\x69\x67\x39\x59\x69\x68\x76\x5a\x7a\x73\x62\x6a\x42\x77\x66\x4e\x7a\x75\x6a\x31\x41\x77\x58\x4b\x7a\x78\x69\x47\x44\x67\x48\x59\x42\x33\x76\x4e\x41\x63\x62\x30\x41\x67\x75\x47\x75\x32\x66\x55\x7a\x67\x6a\x56\x45\x63\x62\x4a\x42\x67\x4c\x4c\x42\x4e\x71\x55','\x6d\x74\x65\x57\x6e\x64\x71\x34\x6d\x67\x4c\x68\x76\x77\x39\x62\x77\x71','\x79\x4d\x66\x5a\x7a\x75\x4c\x54\x79\x77\x44\x4c','\x43\x32\x35\x48\x43\x68\x6e\x4f\x42\x33\x72\x6a\x7a\x61','\x79\x4e\x76\x50\x42\x67\x71','\x42\x67\x66\x49\x7a\x77\x58\x5a','\x6c\x32\x31\x4a\x43\x61','\x44\x68\x6a\x50\x42\x71','\x41\x77\x35\x57\x44\x78\x72\x75\x42\x32\x54\x4c\x42\x4e\x6d','\x7a\x4d\x76\x30\x79\x32\x48\x6a\x42\x78\x62\x53','\x43\x33\x72\x59\x41\x77\x35\x4e','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x65\x4c\x4b','\x79\x78\x76\x30\x41\x66\x72\x56\x41\x32\x76\x55','\x44\x4d\x54\x48\x7a\x65\x38','\x69\x63\x61\x47\x69\x67\x66\x57\x44\x63\x31\x4e\x7a\x78\x71\x47\x41\x77\x35\x5a\x44\x67\x66\x53\x42\x63\x61\x54\x45\x73\x62\x5a\x42\x32\x7a\x30\x44\x32\x66\x59\x7a\x73\x31\x57\x43\x4d\x39\x57\x7a\x78\x6a\x30\x41\x77\x76\x5a\x6c\x77\x6e\x56\x42\x77\x31\x56\x42\x49\x61\x4d\x6a\x49\x62\x43','\x42\x32\x6a\x51\x7a\x77\x6e\x30','\x42\x4e\x76\x76\x79\x75\x34','\x7a\x32\x76\x30','\x42\x33\x76\x30\x43\x68\x76\x30\x76\x67\x39\x52\x7a\x77\x35\x5a','\x44\x67\x76\x5a\x44\x61','\x44\x67\x66\x55\x7a\x32\x58\x4c\x6c\x78\x6e\x48\x42\x4d\x72\x49\x42\x33\x47','\x42\x77\x76\x30\x79\x77\x72\x48\x44\x67\x65','\x44\x78\x6a\x53\x78\x32\x6e\x50\x44\x67\x66\x30\x41\x77\x39\x55','\x42\x4d\x66\x54\x7a\x71','\x42\x77\x66\x55\x79\x77\x44\x4c\x75\x32\x66\x55\x7a\x67\x6a\x56\x45\x67\x76\x5a\x69\x68\x6a\x4c\x43\x78\x76\x50\x43\x4d\x76\x5a\x69\x67\x39\x57\x44\x67\x4c\x56\x42\x4e\x6d','\x79\x78\x62\x30\x75\x67\x66\x4a\x41\x32\x66\x4e\x7a\x78\x6d','\x44\x67\x39\x56\x42\x65\x4c\x55\x44\x4d\x39\x4a\x79\x78\x72\x50\x42\x32\x35\x5a','\x79\x4e\x76\x50\x42\x67\x72\x62\x43\x4d\x44\x5a','\x44\x67\x39\x74\x44\x68\x6a\x50\x42\x4d\x43','\x75\x68\x4c\x73\x72\x4d\x75','\x44\x78\x6a\x53','\x79\x78\x72\x30\x7a\x78\x6e\x30\x79\x78\x72\x50\x42\x32\x35\x73\x7a\x77\x7a\x59\x7a\x78\x6e\x4f','\x79\x78\x72\x30\x7a\x78\x6e\x30\x79\x78\x72\x50\x42\x32\x35\x6f\x42\x32\x35\x4a\x7a\x71','\x7a\x77\x35\x4a\x42\x32\x72\x4c','\x42\x77\x4c\x55\x41\x77\x6e\x56\x42\x4d\x72\x48','\x6c\x33\x79\x58\x6c\x33\x6e\x4c\x79\x78\x6a\x4a\x41\x63\x39\x4a\x42\x32\x35\x4d\x41\x77\x43','\x79\x75\x48\x50\x42\x4e\x79','\x75\x4c\x76\x6f\x69\x61','\x79\x32\x4c\x30\x79\x78\x72\x50\x42\x32\x35\x5a','\x43\x32\x76\x5a\x43\x32\x4c\x56\x42\x4b\x4c\x4b','\x42\x77\x66\x34','\x44\x67\x76\x4c\x71\x78\x72\x30\x7a\x78\x6e\x30\x79\x78\x72\x50\x42\x32\x35\x6b\x43\x32\x39\x55','\x41\x4e\x6e\x56\x42\x47','\x43\x32\x76\x48\x43\x4d\x6e\x4f\x75\x67\x66\x59\x79\x77\x31\x5a','\x43\x68\x6a\x56\x7a\x4d\x4c\x53\x7a\x75\x4c\x4b','\x69\x63\x61\x47\x69\x67\x31\x50\x79\x33\x6a\x56\x42\x77\x66\x54\x79\x4d\x65\x47\x79\x32\x58\x4c\x79\x77\x34\x47\x6c\x73\x31\x48\x42\x67\x57\x47\x6c\x73\x31\x35\x7a\x78\x6d','\x7a\x4e\x6a\x56\x42\x75\x76\x55\x44\x68\x6a\x50\x7a\x78\x6d','\x7a\x32\x4c\x30\x71\x4e\x6a\x48\x42\x4d\x6e\x4f','\x76\x76\x6e\x66\x75\x49\x61','\x43\x33\x76\x50\x44\x67\x75','\x42\x4b\x6a\x36\x42\x76\x75','\x44\x32\x39\x59\x41\x32\x72\x50\x43\x47','\x43\x33\x76\x49\x79\x77\x44\x4c\x42\x4e\x72\x5a','\x71\x78\x72\x70\x43\x4b\x4b','\x77\x68\x66\x74\x45\x67\x69','\x74\x65\x66\x63\x72\x75\x57\x47','\x77\x4d\x54\x49\x43\x68\x65','\x41\x32\x76\x35\x43\x57','\x76\x33\x72\x32\x73\x4c\x65','\x43\x32\x6e\x4c\x42\x4d\x66\x59\x41\x77\x39\x5a','\x43\x67\x66\x59\x43\x32\x75','\x44\x66\x76\x63\x76\x4b\x65','\x45\x78\x44\x67\x41\x67\x4f','\x43\x68\x6a\x56\x44\x4d\x4c\x4b\x7a\x78\x6a\x70\x43\x68\x72\x50\x42\x32\x35\x5a','\x7a\x78\x7a\x4c\x42\x4e\x71','\x74\x65\x44\x69\x44\x30\x65','\x79\x32\x39\x55\x7a\x4d\x4c\x4e','\x69\x63\x61\x47\x69\x67\x31\x32\x69\x67\x6a\x50\x42\x49\x39\x54\x41\x77\x6e\x59\x42\x32\x31\x48\x42\x77\x6a\x48\x69\x63\x39\x31\x43\x33\x69\x56\x42\x67\x39\x4a\x79\x77\x57\x56\x79\x4d\x4c\x55\x6c\x59\x61\x4d\x6a\x49\x62\x43','\x7a\x78\x7a\x48\x42\x63\x30','\x6d\x74\x7a\x72\x74\x4c\x44\x4c\x74\x76\x43','\x43\x32\x54\x50\x42\x67\x58\x5a','\x75\x31\x7a\x4e\x76\x4d\x79','\x6d\x74\x71\x30\x43\x68\x76\x6e\x73\x4b\x39\x33','\x42\x77\x66\x4a\x41\x67\x4c\x55\x7a\x75\x4c\x4b','\x42\x77\x66\x57','\x79\x78\x62\x50\x73\x32\x76\x35\x72\x77\x35\x32','\x43\x67\x76\x4a\x44\x4d\x65','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x63\x31\x5a\x7a\x67\x53','\x7a\x32\x76\x30\x76\x67\x76\x4c\x71\x78\x72\x30\x7a\x78\x6e\x30\x79\x78\x72\x50\x42\x32\x34','\x42\x67\x48\x74\x75\x65\x4b','\x73\x66\x6e\x50\x42\x4d\x53','\x79\x33\x6a\x4c\x79\x78\x72\x4c','\x75\x4c\x76\x6f\x69\x68\x76\x57\x7a\x67\x66\x30\x7a\x73\x31\x48\x42\x68\x72\x4c\x43\x4d\x35\x48\x44\x67\x4c\x32\x7a\x78\x6d\x47\x6c\x73\x31\x50\x42\x4e\x6e\x30\x79\x77\x58\x53\x69\x63\x39\x31\x43\x33\x69\x56\x79\x4d\x4c\x55\x6c\x33\x62\x35\x44\x67\x48\x56\x42\x49\x62\x57\x45\x78\x72\x4f\x42\x32\x34\x47\x6c\x33\x76\x5a\x43\x49\x39\x49\x41\x77\x34\x56\x43\x68\x4c\x30\x41\x67\x39\x55','\x79\x77\x58\x53','\x44\x78\x6e\x4c\x43\x47','\x44\x77\x6a\x31\x42\x4e\x72\x31','\x75\x32\x76\x48\x43\x4d\x6e\x4f\x69\x67\x7a\x56\x43\x49\x62\x30\x41\x67\x75\x47\x42\x67\x66\x30\x7a\x78\x6e\x30\x69\x67\x72\x56\x79\x33\x76\x54\x7a\x77\x35\x30\x79\x78\x72\x50\x42\x32\x34\x47\x79\x77\x35\x4b\x69\x67\x66\x55\x43\x33\x44\x4c\x43\x49\x62\x33\x41\x78\x72\x4f\x69\x67\x6e\x50\x44\x67\x66\x30\x41\x77\x39\x55\x43\x59\x34','\x79\x32\x4c\x30\x79\x78\x72\x50\x42\x32\x35\x64\x42\x33\x76\x55\x44\x61','\x71\x76\x6a\x68\x69\x61','\x7a\x77\x35\x32\x76\x4d\x66\x59\x43\x57','\x79\x32\x48\x48\x43\x4b\x6e\x56\x7a\x67\x76\x62\x44\x61','\x41\x33\x62\x31\x79\x33\x71','\x41\x77\x31\x54\x7a\x77\x72\x50\x79\x78\x72\x4c','\x42\x77\x4c\x55','\x76\x75\x7a\x74\x76\x65\x53','\x44\x67\x39\x56\x42\x65\x6e\x48\x42\x67\x58\x5a','\x76\x65\x76\x66\x69\x67\x66\x30\x44\x67\x76\x5a\x44\x67\x66\x30\x41\x77\x39\x55\x69\x68\x44\x48\x43\x59\x62\x59\x7a\x78\x66\x31\x41\x78\x6a\x4c\x7a\x63\x62\x49\x44\x78\x71\x47\x42\x4d\x38\x47\x7a\x78\x7a\x50\x7a\x67\x76\x55\x79\x32\x75\x47\x44\x32\x66\x5a\x69\x68\x6a\x4c\x44\x68\x76\x59\x42\x4d\x76\x4b','\x7a\x67\x66\x30\x79\x74\x4f\x47','\x79\x32\x58\x50\x7a\x77\x35\x30','\x75\x30\x31\x74\x44\x65\x71','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x66\x6a\x4c\x43\x33\x76\x53\x44\x61','\x79\x4d\x66\x5a\x7a\x76\x76\x59\x42\x61','\x42\x65\x50\x59\x7a\x77\x38','\x44\x67\x76\x5a\x44\x65\x6e\x56\x42\x77\x31\x48\x42\x4d\x71','\x79\x32\x39\x55\x7a\x4d\x4c\x4b\x7a\x77\x35\x30\x41\x77\x66\x53','\x43\x4d\x76\x48\x7a\x61','\x44\x67\x39\x6d\x42\x33\x44\x4c\x43\x4b\x6e\x48\x43\x32\x75','\x79\x32\x39\x55\x7a\x67\x65','\x43\x33\x72\x59\x7a\x77\x66\x54\x79\x77\x6a\x53\x7a\x76\x39\x4f\x44\x68\x72\x57\x78\x33\x76\x59\x42\x61','\x43\x32\x76\x48\x43\x4d\x6e\x4f','\x44\x78\x6e\x48\x7a\x32\x75','\x6d\x74\x4b\x35\x6f\x74\x65\x34\x6f\x67\x6a\x52\x71\x31\x50\x77\x45\x47','\x43\x68\x6a\x56\x42\x78\x62\x30','\x41\x77\x35\x5a\x44\x68\x6a\x31\x79\x33\x72\x50\x42\x32\x35\x5a','\x43\x67\x6a\x6b\x76\x4b\x47','\x41\x77\x31\x48\x7a\x32\x75','\x79\x77\x72\x4b\x75\x67\x66\x4a\x41\x32\x66\x4e\x7a\x78\x6d','\x43\x67\x66\x4b\x75\x33\x72\x48\x43\x4e\x71','\x7a\x32\x76\x30\x75\x4d\x76\x48\x7a\x67\x76\x59','\x43\x33\x72\x59\x41\x77\x35\x4e\x41\x77\x7a\x35','\x41\x33\x66\x48\x74\x65\x43','\x79\x78\x62\x57\x42\x67\x4c\x4a\x79\x78\x72\x50\x42\x32\x34\x56\x41\x4e\x6e\x56\x42\x47','\x75\x4c\x76\x6f\x69\x67\x6e\x31\x43\x4d\x57\x47\x6c\x75\x58\x5a\x69\x67\x48\x30\x44\x68\x62\x5a\x6f\x49\x38\x56\x42\x77\x4c\x4a\x43\x4d\x38\x55\x42\x77\x66\x54\x79\x4d\x65\x55\x43\x67\x30\x56\x79\x78\x62\x50\x6c\x32\x31\x50\x79\x33\x6a\x56\x42\x77\x66\x54\x79\x4d\x65\x56\x42\x67\x4c\x55\x44\x78\x47\x54\x6e\x4a\x71\x56\x42\x67\x66\x30\x7a\x78\x6e\x30\x69\x68\x57\x47\x44\x67\x66\x59\x69\x63\x31\x34\x44\x4d\x4f\x47\x79\x4d\x4c\x55\x6c\x32\x31\x50\x79\x33\x6a\x56\x42\x77\x66\x54\x79\x4d\x65\x47\x6a\x49\x79\x47\x78\x61','\x69\x68\x62\x35\x44\x67\x48\x56\x42\x47','\x7a\x78\x48\x4c\x79\x57','\x74\x75\x66\x68\x44\x31\x47','\x44\x4b\x66\x50\x72\x31\x61','\x41\x77\x31\x31\x42\x61','\x43\x32\x39\x59\x44\x61','\x44\x67\x66\x55\x7a\x32\x58\x4c\x6c\x78\x6a\x56\x44\x78\x72\x4c\x43\x49\x31\x49\x7a\x77\x35\x4a\x41\x67\x31\x48\x43\x4d\x53','\x71\x4e\x76\x50\x42\x67\x71\x47\x79\x32\x39\x54\x43\x67\x58\x4c\x44\x67\x76\x4b\x69\x67\x6a\x31\x44\x63\x62\x55\x42\x59\x62\x59\x7a\x78\x6e\x31\x42\x68\x71\x47\x43\x4d\x76\x4a\x7a\x77\x4c\x32\x7a\x77\x71','\x42\x33\x62\x4c\x42\x4e\x6a\x56\x44\x78\x72\x4c\x43\x4c\x39\x4a\x42\x32\x31\x57\x79\x78\x71','\x7a\x4e\x6a\x56\x42\x75\x4c\x4b','\x76\x77\x35\x5a\x44\x78\x62\x57\x42\x33\x6a\x30\x7a\x77\x71\x47\x42\x77\x66\x55\x79\x77\x44\x4c\x75\x32\x66\x55\x7a\x67\x6a\x56\x45\x67\x76\x5a\x69\x67\x66\x4a\x44\x67\x4c\x56\x42\x4a\x4f\x47','\x41\x32\x31\x69\x76\x77\x71','\x79\x33\x6a\x4c\x79\x78\x72\x4c\x76\x32\x4c\x30\x41\x65\x6e\x56\x42\x33\x6a\x4b\x41\x77\x35\x48\x44\x67\x39\x59','\x43\x33\x50\x73\x74\x75\x38','\x44\x78\x62\x4b\x79\x78\x72\x4c','\x41\x77\x35\x30\x7a\x77\x58\x53\x41\x77\x44\x4c\x42\x4d\x6e\x4c','\x42\x77\x66\x55\x79\x77\x44\x4c\x75\x32\x66\x55\x7a\x67\x6a\x56\x45\x67\x76\x5a\x69\x67\x6e\x59\x7a\x77\x66\x30\x7a\x73\x62\x59\x7a\x78\x66\x31\x41\x78\x6a\x4c\x43\x59\x62\x48\x69\x67\x48\x56\x43\x33\x71\x54\x42\x33\x44\x55\x7a\x77\x71\x47\x43\x67\x39\x53\x41\x77\x6e\x35','\x42\x67\x76\x55\x7a\x33\x72\x4f','\x42\x33\x62\x30\x41\x77\x39\x55\x43\x57','\x43\x32\x76\x30','\x43\x33\x62\x4c\x79\x57','\x72\x30\x58\x76\x41\x31\x65','\x78\x63\x71\x4d','\x44\x67\x39\x74\x43\x67\x76\x4a','\x76\x65\x39\x53\x41\x66\x4b','\x41\x77\x35\x30\x7a\x78\x6a\x32\x79\x77\x58\x6e\x43\x57','\x43\x68\x4c\x30\x41\x67\x39\x55\x76\x4d\x76\x59\x43\x32\x4c\x56\x42\x47','\x73\x4c\x76\x63\x7a\x77\x4b','\x43\x33\x72\x48\x43\x4e\x72\x5a\x76\x32\x4c\x30\x41\x61','\x41\x67\x66\x59\x42\x4d\x76\x5a\x43\x31\x39\x4c\x42\x4e\x79','\x6e\x65\x58\x64\x73\x75\x31\x67\x44\x61','\x43\x4d\x76\x5a\x43\x67\x39\x55\x43\x32\x76\x5a','\x76\x30\x7a\x70\x71\x4d\x30','\x7a\x78\x4c\x52\x73\x75\x38','\x70\x68\x6a\x4c\x7a\x67\x66\x4a\x44\x67\x76\x4b\x70\x47','\x6c\x77\x72\x50\x43\x33\x72\x31\x44\x67\x4c\x53\x43\x59\x61\x4d\x6a\x49\x62\x43','\x43\x67\x72\x70\x43\x78\x69','\x43\x68\x6a\x56\x7a\x33\x6a\x4c\x43\x33\x6d','\x74\x4b\x31\x56\x73\x32\x47','\x79\x77\x72\x4b\x75\x67\x66\x4a\x41\x32\x66\x4e\x7a\x78\x6e\x67\x43\x4d\x39\x54\x72\x4d\x4c\x53\x7a\x71','\x79\x33\x6a\x4c\x79\x78\x72\x4c\x7a\x65\x66\x30','\x71\x32\x7a\x49\x41\x31\x71','\x43\x4e\x50\x49\x75\x65\x57','\x44\x67\x66\x4e','\x75\x65\x39\x74\x76\x61','\x6d\x5a\x6d\x30\x6d\x74\x6e\x48\x79\x4e\x4c\x63\x45\x76\x47','\x7a\x65\x31\x73\x72\x4d\x6d','\x43\x4d\x76\x5a\x42\x33\x76\x59\x79\x32\x76\x5a','\x6d\x4a\x65\x57\x6f\x64\x65\x35\x6d\x4e\x66\x65\x77\x77\x35\x55\x43\x61','\x7a\x67\x76\x5a\x44\x68\x6a\x56\x45\x71','\x42\x31\x44\x30\x75\x32\x30','\x43\x67\x4c\x57\x69\x67\x4c\x55\x43\x33\x72\x48\x42\x67\x57\x47\x6c\x78\x69\x47','\x7a\x78\x6a\x59\x42\x33\x69','\x71\x32\x7a\x30\x41\x32\x4b','\x44\x67\x76\x5a\x44\x68\x6e\x71\x79\x78\x6e\x5a\x7a\x77\x71','\x44\x67\x39\x6b\x75\x30\x39\x6f','\x42\x32\x35\x67\x79\x77\x4c\x53\x44\x78\x6a\x4c','\x43\x68\x6a\x56\x44\x4d\x4c\x4b\x7a\x78\x69','\x79\x78\x72\x30\x79\x77\x6e\x4f\x74\x77\x66\x4a\x41\x67\x4c\x55\x7a\x71','\x79\x4d\x76\x55\x79\x32\x48\x54\x79\x78\x6a\x52','\x44\x68\x6a\x48\x79\x32\x75','\x43\x4d\x76\x5a\x43\x67\x39\x55\x43\x32\x75','\x79\x77\x72\x4b\x72\x78\x7a\x4c\x42\x4e\x72\x6d\x41\x78\x6e\x30\x7a\x77\x35\x4c\x43\x47','\x7a\x32\x4c\x30\x75\x4d\x76\x57\x42\x57','\x44\x32\x4c\x30\x41\x65\x6e\x53\x41\x77\x76\x55\x44\x61','\x75\x4c\x76\x6f\x69\x67\x66\x57\x44\x63\x31\x4e\x7a\x78\x71\x47\x44\x78\x62\x4b\x79\x78\x72\x4c\x69\x63\x79\x4d\x69\x66\x57','\x79\x33\x6a\x35\x43\x68\x72\x56','\x43\x67\x58\x48\x44\x67\x7a\x56\x43\x4d\x30','\x41\x68\x72\x30\x43\x61','\x77\x4e\x50\x76\x77\x4e\x65','\x43\x67\x39\x53\x41\x77\x6e\x35','\x41\x78\x6e\x62\x43\x4e\x6a\x48\x45\x71','\x79\x32\x4c\x4c\x71\x4d\x57','\x44\x68\x6a\x48\x42\x4e\x6e\x57\x42\x33\x6a\x30','\x7a\x4d\x58\x4c\x7a\x78\x72\x5a','\x76\x67\x76\x59\x42\x77\x4c\x55\x79\x77\x57\x47\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x63\x62\x59\x7a\x78\x6e\x31\x42\x68\x71\x47\x79\x77\x35\x4b\x69\x68\x6a\x4c\x43\x78\x76\x50\x43\x4d\x76\x4b\x69\x68\x72\x4c\x43\x33\x72\x5a\x69\x68\x62\x48\x43\x33\x6e\x4c\x7a\x63\x34','\x7a\x32\x76\x55\x7a\x78\x6a\x48\x44\x67\x76\x65\x42\x32\x6e\x52\x7a\x78\x6a\x4d\x41\x77\x58\x4c','\x43\x32\x76\x59\x44\x4d\x76\x59\x74\x4d\x66\x54\x7a\x71','\x71\x33\x6a\x4c\x79\x78\x72\x4c\x6c\x63\x62\x50\x42\x4e\x6e\x57\x7a\x77\x6e\x30\x6c\x63\x62\x48\x42\x4d\x71\x47\x42\x77\x66\x55\x79\x77\x44\x4c\x69\x68\x6e\x48\x42\x4d\x72\x49\x42\x33\x47\x47\x7a\x4d\x58\x4c\x7a\x78\x72\x5a\x69\x67\x7a\x56\x43\x49\x62\x57\x79\x78\x6a\x48\x42\x67\x58\x4c\x42\x63\x62\x48\x7a\x32\x76\x55\x44\x63\x62\x33\x42\x33\x6a\x52\x42\x67\x39\x48\x7a\x68\x6d\x55','\x79\x32\x58\x48\x44\x77\x72\x4c\x6c\x77\x6e\x56\x7a\x67\x75','\x7a\x77\x35\x32','\x79\x77\x6a\x56\x43\x4e\x72\x4c\x7a\x61','\x73\x78\x76\x59\x73\x77\x43','\x79\x77\x58\x53\x42\x33\x43','\x43\x68\x7a\x68\x75\x78\x61','\x73\x32\x6e\x5a\x76\x31\x4f','\x41\x77\x35\x53\x41\x77\x35\x4c','\x43\x33\x76\x49\x44\x67\x58\x4c','\x74\x77\x44\x4a\x75\x76\x6d','\x42\x77\x39\x4b\x7a\x77\x57','\x43\x33\x72\x48\x44\x68\x76\x5a','\x42\x77\x58\x4c\x76\x77\x38','\x42\x32\x35\x71\x43\x4d\x39\x4e\x43\x4d\x76\x5a\x43\x57','\x42\x77\x66\x30\x43\x4d\x4c\x34','\x7a\x65\x48\x66\x74\x68\x4f','\x78\x4c\x54\x62\x6c\x76\x50\x48\x6c\x78\x4f\x57\x6c\x74\x4c\x44\x77\x30\x65\x54\x77\x4d\x65\x54\x45\x4a\x61\x54\x6f\x73\x35\x46\x6c\x76\x31\x37\x6d\x63\x57\x32\x6d\x33\x30\x4b','\x42\x77\x66\x55\x79\x77\x44\x4c\x75\x32\x66\x55\x7a\x67\x6a\x56\x45\x67\x76\x5a\x69\x68\x6a\x4c\x43\x78\x76\x50\x43\x4d\x76\x5a\x69\x67\x31\x48\x79\x32\x48\x50\x42\x4d\x75','\x7a\x4e\x6a\x56\x42\x71','\x79\x32\x48\x48\x42\x4d\x35\x4c\x42\x68\x6d','\x43\x31\x76\x62\x45\x67\x69','\x42\x33\x62\x4c\x42\x4d\x6e\x56\x7a\x67\x75','\x43\x67\x76\x59\x42\x77\x4c\x5a\x43\x32\x4c\x56\x42\x4e\x6d','\x43\x33\x72\x4b\x42\x33\x76\x30','\x6b\x74\x4f\x47','\x6d\x74\x43\x59\x6f\x74\x6d\x59\x6f\x75\x4c\x4d\x43\x32\x72\x6f\x73\x71','\x75\x32\x66\x55\x7a\x67\x6a\x56\x45\x63\x62\x30\x7a\x78\x6e\x30\x69\x67\x6e\x56\x42\x77\x31\x48\x42\x4d\x71\x47\x7a\x4d\x66\x50\x42\x67\x76\x4b','\x79\x32\x39\x5a\x44\x61','\x42\x33\x62\x4c\x42\x4e\x6a\x56\x44\x78\x72\x4c\x43\x4a\x50\x33\x7a\x77\x6a\x46\x43\x32\x76\x48\x43\x4d\x6e\x4f','\x69\x63\x61\x47\x69\x67\x66\x57\x44\x63\x31\x4e\x7a\x78\x71\x47\x41\x77\x35\x5a\x44\x67\x66\x53\x42\x63\x61\x54\x45\x73\x61\x54\x6c\x77\x35\x56\x6c\x77\x4c\x55\x43\x33\x72\x48\x42\x67\x57\x54\x43\x4d\x76\x4a\x42\x32\x31\x54\x7a\x77\x35\x4b\x43\x59\x61','\x41\x4c\x4c\x33\x43\x77\x57','\x44\x67\x6e\x53\x42\x33\x76\x4b','\x69\x59\x62\x6a\x42\x4e\x6e\x30\x79\x77\x58\x53\x69\x67\x31\x50\x79\x33\x6a\x56\x42\x77\x66\x54\x79\x4d\x65\x47\x79\x77\x35\x4b\x69\x67\x6e\x56\x42\x4d\x72\x48\x69\x68\x62\x48\x79\x32\x54\x48\x7a\x32\x76\x5a'];a0_0x1b0b=function(){return _0x565a28;};return a0_0x1b0b();}function requireCreateWithCoordinatorOptions(_0x5da5e1){const _0x4f9679=a0_0x22bec,_0x3f4508={'\x68\x65\x69\x77\x6c':function(_0x452176,_0x384366){return _0x452176!==_0x384366;},'\x57\x46\x4f\x42\x6d':_0x4f9679(0x192)},_0x33ba99=_0x5da5e1[_0x4f9679(0x210)];if(!_0x33ba99||_0x3f4508['\x68\x65\x69\x77\x6c'](typeof _0x33ba99,_0x3f4508[_0x4f9679(0x21e)]))throw new Error(_0x4f9679(0x19b));return rejectUserPolicy(_0x33ba99);}function rejectUserPolicy(_0xa7ebf7){const _0x19ce75=a0_0x22bec,_0x1fc428={'\x4a\x55\x42\x65\x69':_0x19ce75(0x244),'\x65\x6d\x6c\x70\x61':function(_0xffdda9,_0x3ecdc9){return _0xffdda9!==_0x3ecdc9;},'\x68\x55\x68\x43\x61':'\x6d\x61\x6e\x61\x67\x65\x53\x61\x6e\x64\x62\x6f\x78\x65\x73\x20\x70\x6f\x6c\x69\x63\x79\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x73\x75\x70\x70\x6c\x69\x65\x64\x20\x62\x79\x20\x74\x68\x65\x20\x74\x6f\x6f\x6c\x20\x68\x6f\x73\x74'};if(_0x1fc428[_0x19ce75(0x219)]in _0xa7ebf7&&_0x1fc428['\x65\x6d\x6c\x70\x61'](_0xa7ebf7[_0x19ce75(0x244)],void 0x0))throw new Error(_0x1fc428[_0x19ce75(0x2d3)]);return _0xa7ebf7;}function applyToolPolicy(_0xd59ac5,_0x10939e){const _0x3a2af8=a0_0x22bec;if(!_0x10939e)throw new Error(_0x3a2af8(0x20e));return{..._0xd59ac5,'\x70\x6f\x6c\x69\x63\x79':_0x10939e};}function requireMachine(_0x2cdbca){const _0x378919=a0_0x22bec,_0x3e4498={'\x4a\x47\x4c\x78\x73':_0x378919(0x25e),'\x57\x74\x76\x4a\x51':function(_0x242dec,_0x588d62,_0x5196fb){return _0x242dec(_0x588d62,_0x5196fb);}},_0x52c3de=_0x2cdbca[_0x378919(0x2b8)];if(!_0x52c3de||typeof _0x52c3de!==_0x378919(0x192))throw new Error(_0x3e4498[_0x378919(0x2d6)]);const _0x551c87=_0x52c3de;return requireString(_0x551c87,'\x6d\x61\x63\x68\x69\x6e\x65\x49\x64'),_0x3e4498[_0x378919(0x1bd)](requireString,_0x551c87,_0x378919(0x18e)),_0x52c3de;}const fleetId={'\x74\x79\x70\x65':'\x73\x74\x72\x69\x6e\x67','\x70\x61\x74\x74\x65\x72\x6e':a0_0x22bec(0x25d)},MANAGE_SANDBOXES_PARAMETERS={'\x74\x79\x70\x65':a0_0x22bec(0x192),'\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73':![],'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x22bec(0x271)],'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x61\x63\x74\x69\x6f\x6e':{'\x74\x79\x70\x65':a0_0x22bec(0x18d),'\x65\x6e\x75\x6d':[a0_0x22bec(0x2b4),a0_0x22bec(0x1d4),'\x63\x72\x65\x61\x74\x65\x57\x69\x74\x68\x43\x6f\x6f\x72\x64\x69\x6e\x61\x74\x6f\x72',a0_0x22bec(0x28c),'\x64\x65\x6c\x65\x74\x65','\x61\x74\x74\x61\x63\x68\x4d\x61\x63\x68\x69\x6e\x65',a0_0x22bec(0x2c6),a0_0x22bec(0x2d9),a0_0x22bec(0x1f1),'\x74\x72\x61\x63\x65',a0_0x22bec(0x20d),'\x63\x6f\x73\x74',a0_0x22bec(0x2e0),a0_0x22bec(0x26e),a0_0x22bec(0x276)]},'\x66\x6c\x65\x65\x74\x49\x64':fleetId,'\x6d\x61\x63\x68\x69\x6e\x65\x49\x64':fleetId,'\x73\x6e\x61\x70\x73\x68\x6f\x74\x49\x64':{'\x74\x79\x70\x65':'\x73\x74\x72\x69\x6e\x67','\x6d\x69\x6e\x4c\x65\x6e\x67\x74\x68':0x1},'\x6f\x70\x74\x69\x6f\x6e\x73':{'\x74\x79\x70\x65':a0_0x22bec(0x192)},'\x6d\x61\x63\x68\x69\x6e\x65':{'\x74\x79\x70\x65':'\x6f\x62\x6a\x65\x63\x74','\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x22bec(0x1cc),'\x73\x61\x6e\x64\x62\x6f\x78\x49\x64'],'\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73':!![],'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x6d\x61\x63\x68\x69\x6e\x65\x49\x64':fleetId,'\x73\x61\x6e\x64\x62\x6f\x78\x49\x64':{'\x74\x79\x70\x65':a0_0x22bec(0x18d),'\x6d\x69\x6e\x4c\x65\x6e\x67\x74\x68':0x1,'\x6d\x61\x78\x4c\x65\x6e\x67\x74\x68':0x80}}}}},SANDBOX_MCP_SERVER_NAME=a0_0x22bec(0x197);function buildSandboxMcpConfig(_0xe9b913){const _0x3c756c=a0_0x22bec,_0x5af0b9={'\x54\x54\x64\x70\x53':_0x3c756c(0x292),'\x6e\x75\x55\x61\x4e':_0x3c756c(0x197)};if(!_0xe9b913['\x73\x61\x6e\x64\x62\x6f\x78\x55\x72\x6c'])throw new Error('\x62\x75\x69\x6c\x64\x53\x61\x6e\x64\x62\x6f\x78\x4d\x63\x70\x43\x6f\x6e\x66\x69\x67\x3a\x20\x73\x61\x6e\x64\x62\x6f\x78\x55\x72\x6c\x20\x69\x73\x20\x72\x65\x71\x75\x69\x72\x65\x64');if(!_0xe9b913[_0x3c756c(0x18f)])throw new Error(_0x5af0b9[_0x3c756c(0x29d)]);const _0x32f1ee=_0xe9b913[_0x3c756c(0x24b)]??_0x5af0b9[_0x3c756c(0x193)],_0x5de7b4=_0xe9b913[_0x3c756c(0x2cb)][_0x3c756c(0x282)](/\/+$/,'');return{'\x73\x65\x72\x76\x65\x72\x4e\x61\x6d\x65':_0x32f1ee,'\x63\x6f\x6e\x66\x69\x67':{'\x6d\x63\x70\x53\x65\x72\x76\x65\x72\x73':{[_0x32f1ee]:{'\x74\x79\x70\x65':_0x3c756c(0x242),'\x75\x72\x6c':_0x5de7b4+_0x3c756c(0x189),'\x68\x65\x61\x64\x65\x72\x73':{'\x41\x75\x74\x68\x6f\x72\x69\x7a\x61\x74\x69\x6f\x6e':_0x3c756c(0x2d8)+_0xe9b913[_0x3c756c(0x18f)]}}}}};}const DEFAULT_ROUTER_URL='\x68\x74\x74\x70\x73\x3a\x2f\x2f\x72\x6f\x75\x74\x65\x72\x2e\x74\x61\x6e\x67\x6c\x65\x2e\x74\x6f\x6f\x6c\x73';async function fetchTangleRouterSearchConfig(_0x19aedf={}){const _0x12d628=a0_0x22bec,_0x11f952={'\x4e\x6e\x48\x76\x65':_0x12d628(0x237)},_0x2340e4=(_0x19aedf['\x72\x6f\x75\x74\x65\x72\x55\x72\x6c']??DEFAULT_ROUTER_URL)['\x72\x65\x70\x6c\x61\x63\x65'](/\/+$/,''),_0x21ea95=new URL(_0x2340e4+_0x12d628(0x1a6));if(_0x19aedf[_0x12d628(0x237)])_0x21ea95[_0x12d628(0x1ae)][_0x12d628(0x211)](_0x11f952['\x4e\x6e\x48\x76\x65'],_0x19aedf[_0x12d628(0x237)]);if(_0x19aedf[_0x12d628(0x1ce)])_0x21ea95[_0x12d628(0x1ae)]['\x73\x65\x74'](_0x12d628(0x274),_0x19aedf[_0x12d628(0x1ce)]);if(_0x19aedf['\x6d\x6f\x64\x65\x6c'])_0x21ea95[_0x12d628(0x1ae)][_0x12d628(0x211)](_0x12d628(0x257),_0x19aedf[_0x12d628(0x257)]);const _0x4394e3=await(_0x19aedf[_0x12d628(0x18c)]??fetch)(_0x21ea95);if(!_0x4394e3['\x6f\x6b'])throw new Error(_0x12d628(0x2dc)+_0x4394e3[_0x12d628(0x258)]);const _0x310c95=await _0x4394e3[_0x12d628(0x1ad)]();if(_0x310c95[_0x12d628(0x192)]!==_0x12d628(0x2f5))throw new Error(_0x12d628(0x28d));return _0x310c95;}function buildTangleRouterSearchProfile(_0x42d7f4,_0x1bab5c={}){const _0x2fea5e=a0_0x22bec,_0x202321={'\x6c\x4a\x72\x65\x6f':'\x74\x61\x6e\x67\x6c\x65\x2d\x72\x6f\x75\x74\x65\x72\x2d\x77\x65\x62\x2d\x73\x65\x61\x72\x63\x68','\x69\x4f\x43\x6c\x62':_0x2fea5e(0x251)};return{'\x6e\x61\x6d\x65':_0x1bab5c[_0x2fea5e(0x19a)]??_0x202321[_0x2fea5e(0x1e9)],'\x6d\x6f\x64\x65\x6c':{'\x64\x65\x66\x61\x75\x6c\x74':_0x1bab5c[_0x2fea5e(0x257)]??_0x42d7f4[_0x2fea5e(0x26c)]['\x73\x61\x6e\x64\x62\x6f\x78\x42\x61\x63\x6b\x65\x6e\x64'][_0x2fea5e(0x257)]['\x6d\x6f\x64\x65\x6c']},'\x70\x65\x72\x6d\x69\x73\x73\x69\x6f\x6e\x73':{'\x6e\x65\x74\x77\x6f\x72\x6b':_0x2fea5e(0x251),'\x6d\x63\x70':_0x202321['\x69\x4f\x43\x6c\x62']},'\x6d\x63\x70':{'\x74\x61\x6e\x67\x6c\x65\x5f\x77\x65\x62\x5f\x73\x65\x61\x72\x63\x68':{'\x74\x72\x61\x6e\x73\x70\x6f\x72\x74':_0x2fea5e(0x242),'\x75\x72\x6c':_0x42d7f4[_0x2fea5e(0x286)][_0x2fea5e(0x1ef)],'\x68\x65\x61\x64\x65\x72\x73':_0x42d7f4[_0x2fea5e(0x286)]['\x68\x65\x61\x64\x65\x72\x73'],'\x65\x6e\x61\x62\x6c\x65\x64':!![]}},'\x6d\x65\x74\x61\x64\x61\x74\x61':{'\x74\x61\x6e\x67\x6c\x65\x52\x6f\x75\x74\x65\x72\x53\x65\x61\x72\x63\x68\x50\x72\x6f\x76\x69\x64\x65\x72':_0x42d7f4[_0x2fea5e(0x2f9)],'\x74\x61\x6e\x67\x6c\x65\x52\x6f\x75\x74\x65\x72\x53\x65\x61\x72\x63\x68\x45\x6e\x64\x70\x6f\x69\x6e\x74':_0x42d7f4['\x65\x6e\x64\x70\x6f\x69\x6e\x74'][_0x2fea5e(0x1a1)]}};}function buildTangleRouterSearchBackend(_0x47dfa6,_0x4195d8={}){const _0x2d2ff3=a0_0x22bec,_0x2391b6=_0x47dfa6[_0x2d2ff3(0x26c)][_0x2d2ff3(0x272)][_0x2d2ff3(0x257)];return{'\x74\x79\x70\x65':_0x4195d8[_0x2d2ff3(0x2bb)]??_0x2d2ff3(0x262),'\x70\x72\x6f\x66\x69\x6c\x65':_0x4195d8[_0x2d2ff3(0x279)]??buildTangleRouterSearchProfile(_0x47dfa6),'\x6d\x6f\x64\x65\x6c':{'\x70\x72\x6f\x76\x69\x64\x65\x72':_0x2391b6[_0x2d2ff3(0x237)],'\x6d\x6f\x64\x65\x6c':_0x2391b6[_0x2d2ff3(0x257)],'\x62\x61\x73\x65\x55\x72\x6c':_0x2391b6[_0x2d2ff3(0x1e8)],..._0x4195d8[_0x2d2ff3(0x2f7)]?{'\x61\x70\x69\x4b\x65\x79':_0x4195d8[_0x2d2ff3(0x2f7)]}:{}}};}function buildTangleRouterEvalMatrixRequest(_0xebf6d9,_0x5e1330={}){const _0x4912e6=a0_0x22bec;return{'\x75\x72\x6c':_0xebf6d9[_0x4912e6(0x284)]['\x75\x72\x6c'],'\x62\x6f\x64\x79':{..._0xebf6d9[_0x4912e6(0x284)][_0x4912e6(0x2d2)],..._0x5e1330}};}function buildTangleRouterResponsesWebSearchRequest(_0x34e9c7,_0x13cb31={}){const _0x5b422d=a0_0x22bec,_0x398881=_0x34e9c7[_0x5b422d(0x206)]?.[_0x5b422d(0x21d)];if(_0x398881)return{'\x75\x72\x6c':_0x398881[_0x5b422d(0x1a1)],'\x62\x6f\x64\x79':{..._0x398881[_0x5b422d(0x2e3)],..._0x13cb31}};const _0x4165e9=_0x34e9c7[_0x5b422d(0x26c)]['\x73\x61\x6e\x64\x62\x6f\x78\x42\x61\x63\x6b\x65\x6e\x64'][_0x5b422d(0x257)];return{'\x75\x72\x6c':_0x4165e9['\x62\x61\x73\x65\x55\x72\x6c']['\x72\x65\x70\x6c\x61\x63\x65'](/\/+$/,'')+'\x2f\x72\x65\x73\x70\x6f\x6e\x73\x65\x73','\x62\x6f\x64\x79':{'\x6d\x6f\x64\x65\x6c':_0x4165e9[_0x5b422d(0x257)],'\x69\x6e\x70\x75\x74':_0x5b422d(0x1d9),'\x74\x6f\x6f\x6c\x73':[{'\x74\x79\x70\x65':_0x5b422d(0x269),'\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73':{'\x70\x72\x6f\x76\x69\x64\x65\x72':_0x34e9c7[_0x5b422d(0x2f9)],'\x6d\x61\x78\x5f\x72\x65\x73\x75\x6c\x74\x73':0x5}}],..._0x13cb31}};}async function runTangleRouterEvalMatrixInSandbox(_0x202635){const _0x3e971f=a0_0x22bec,_0x5a1a5f={'\x6a\x74\x58\x5a\x67':function(_0x9e892a,_0x38ab71,_0x4bd0f2){return _0x9e892a(_0x38ab71,_0x4bd0f2);},'\x70\x76\x47\x51\x70':_0x3e971f(0x1d0),'\x6b\x71\x61\x4c\x47':function(_0x4bf73d,_0x9d0544,_0x30eb7c,_0x562418,_0x4f77e2){return _0x4bf73d(_0x9d0544,_0x30eb7c,_0x562418,_0x4f77e2);},'\x71\x74\x6b\x49\x42':function(_0x835c7b,_0x4de5cd){return _0x835c7b===_0x4de5cd;}},_0xc892a0=_0x202635['\x66\x65\x74\x63\x68\x49\x6d\x70\x6c']??fetch,_0x2f4c82=_0x5a1a5f['\x6a\x74\x58\x5a\x67'](buildTangleRouterEvalMatrixRequest,_0x202635[_0x3e971f(0x1c5)],{'\x74\x72\x61\x6e\x73\x70\x6f\x72\x74':_0x5a1a5f[_0x3e971f(0x252)],..._0x202635[_0x3e971f(0x294)]}),_0xb499e2=await postJson(_0xc892a0,_0x2f4c82['\x75\x72\x6c'],_0x202635['\x61\x70\x69\x4b\x65\x79'],_0x2f4c82['\x62\x6f\x64\x79']),_0x3bc417=_0xb499e2[_0x3e971f(0x25b)],_0x38a225=await runMatrixCases({'\x6d\x61\x74\x72\x69\x78':_0x3bc417,'\x63\x6f\x6e\x66\x69\x67':_0x202635[_0x3e971f(0x1c5)],'\x61\x70\x69\x4b\x65\x79':_0x202635['\x61\x70\x69\x4b\x65\x79'],'\x73\x61\x6e\x64\x62\x6f\x78\x43\x6c\x69\x65\x6e\x74':_0x202635[_0x3e971f(0x28f)],'\x63\x6f\x6e\x63\x75\x72\x72\x65\x6e\x63\x79':_0x202635[_0x3e971f(0x17f)]??0x3,'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64\x50\x72\x65\x66\x69\x78':_0x202635[_0x3e971f(0x2a7)]??'\x65\x76\x61\x6c\x5f'+_0xb499e2[_0x3e971f(0x1b4)]['\x69\x64']}),_0xb56434=await _0x5a1a5f[_0x3e971f(0x1fb)](postJson,_0xc892a0,_0x2f4c82[_0x3e971f(0x1a1)][_0x3e971f(0x282)](/\/api\/eval\/matrix$/,'')+_0x3e971f(0x2c3)+encodeURIComponent(String(_0xb499e2[_0x3e971f(0x1b4)]['\x69\x64']))+_0x3e971f(0x2c0),_0x202635[_0x3e971f(0x2f7)],{'\x62\x61\x73\x65\x6c\x69\x6e\x65':_0x5a1a5f[_0x3e971f(0x2f3)](_0x202635[_0x3e971f(0x2a2)],!![]),'\x63\x61\x73\x65\x73':_0x38a225});return{'\x73\x75\x69\x74\x65':_0xb499e2[_0x3e971f(0x1b4)],'\x6d\x61\x74\x72\x69\x78':_0x3bc417,'\x63\x61\x73\x65\x73':_0x38a225,'\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b':_0xb56434[_0x3e971f(0x239)]??[],'\x69\x6d\x70\x6f\x72\x74\x52\x65\x73\x75\x6c\x74':_0xb56434};}async function runMatrixCases(_0x20a473){const _0x132305=a0_0x22bec,_0x22b7e7=new Map(_0x20a473[_0x132305(0x25b)]['\x61\x67\x65\x6e\x74\x50\x72\x6f\x66\x69\x6c\x65\x73']['\x6d\x61\x70'](_0x30034b=>[_0x30034b['\x69\x64'],_0x30034b])),_0x4c71df=new Map(_0x20a473[_0x132305(0x25b)]['\x68\x61\x72\x6e\x65\x73\x73\x65\x73'][_0x132305(0x1cd)](_0x22a12a=>[_0x22a12a['\x69\x64'],_0x22a12a])),_0x2ff1d1=Math['\x6d\x61\x78'](0x1,Math[_0x132305(0x1e0)](0xa,_0x20a473['\x6d\x61\x74\x72\x69\x78'][_0x132305(0x2e1)]??0x1)),_0x1275ff=[];for(let _0x465e51=0x0;_0x465e51<_0x2ff1d1;_0x465e51++)for(const _0x254471 of _0x20a473[_0x132305(0x25b)][_0x132305(0x1be)])_0x1275ff['\x70\x75\x73\x68'](()=>runOneCase({'\x73\x63\x65\x6e\x61\x72\x69\x6f':_0x254471,'\x69\x74\x65\x72\x61\x74\x69\x6f\x6e':_0x465e51,'\x70\x72\x6f\x66\x69\x6c\x65':_0x254471['\x70\x72\x6f\x66\x69\x6c\x65']?_0x22b7e7[_0x132305(0x194)](_0x254471['\x70\x72\x6f\x66\x69\x6c\x65']):void 0x0,'\x68\x61\x72\x6e\x65\x73\x73':_0x254471[_0x132305(0x2a4)]?_0x4c71df[_0x132305(0x194)](_0x254471['\x68\x61\x72\x6e\x65\x73\x73']):void 0x0,'\x63\x6f\x6e\x66\x69\x67':_0x20a473[_0x132305(0x1c5)],'\x61\x70\x69\x4b\x65\x79':_0x20a473['\x61\x70\x69\x4b\x65\x79'],'\x73\x61\x6e\x64\x62\x6f\x78\x43\x6c\x69\x65\x6e\x74':_0x20a473[_0x132305(0x28f)],'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64\x50\x72\x65\x66\x69\x78':_0x20a473[_0x132305(0x2a7)]}));return parallelLimit(_0x1275ff,_0x20a473['\x63\x6f\x6e\x63\x75\x72\x72\x65\x6e\x63\x79']);}async function runOneCase(_0x50b069){const _0x5d1263=a0_0x22bec,_0x3760de={'\x6a\x52\x73\x74\x4e':function(_0x1b0171,_0x2e4dff,_0x3a1543,_0x5f4ea9,_0x2ea4ed){return _0x1b0171(_0x2e4dff,_0x3a1543,_0x5f4ea9,_0x2ea4ed);},'\x46\x46\x65\x59\x70':function(_0x57268a,_0x24ed1d){return _0x57268a(_0x24ed1d);},'\x53\x56\x67\x56\x66':function(_0x3be691,_0x470e24){return _0x3be691-_0x470e24;}},_0xd52d63=Date[_0x5d1263(0x2de)](),_0x48823e=buildSandboxBackend(_0x50b069),_0xebb5b4=await _0x50b069[_0x5d1263(0x28f)]['\x63\x72\x65\x61\x74\x65']({'\x6e\x61\x6d\x65':_0x5d1263(0x1c7)+safeId(_0x50b069['\x73\x63\x65\x6e\x61\x72\x69\x6f']['\x69\x64'])[_0x5d1263(0x2c5)](0x0,0x28),'\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74':_0x50b069[_0x5d1263(0x2a4)]?.['\x69\x6d\x61\x67\x65'],'\x69\x6d\x61\x67\x65':_0x50b069[_0x5d1263(0x2a4)]?.[_0x5d1263(0x1f6)],'\x62\x61\x63\x6b\x65\x6e\x64':_0x48823e,'\x65\x6e\x76':materializeHarnessEnv(_0x50b069['\x63\x6f\x6e\x66\x69\x67'],_0x50b069[_0x5d1263(0x2a4)]?.[_0x5d1263(0x1dc)],_0x50b069['\x61\x70\x69\x4b\x65\x79']),..._0x50b069['\x68\x61\x72\x6e\x65\x73\x73']?.[_0x5d1263(0x23d)]?{'\x67\x69\x74':{'\x75\x72\x6c':_0x50b069[_0x5d1263(0x2a4)]['\x67\x69\x74\x52\x65\x70\x6f'],'\x72\x65\x66':_0x50b069[_0x5d1263(0x2a4)][_0x5d1263(0x1b2)]}}:{}}),_0x2c7914=safeId(_0x50b069[_0x5d1263(0x2a7)])+'\x5f'+safeId(_0x50b069[_0x5d1263(0x281)]['\x69\x64'])+'\x5f'+_0x50b069['\x69\x74\x65\x72\x61\x74\x69\x6f\x6e'];try{const _0x2f4b4c=await _0xebb5b4[_0x5d1263(0x293)](_0x50b069[_0x5d1263(0x281)][_0x5d1263(0x1f3)],{'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0x2c7914}),_0x20d0dc=await _0xebb5b4['\x73\x65\x73\x73\x69\x6f\x6e'](_0x2f4b4c[_0x5d1263(0x1aa)])['\x72\x65\x73\x75\x6c\x74'](),_0x59ec2a=_0x50b069[_0x5d1263(0x281)][_0x5d1263(0x2b5)]?.[_0x5d1263(0x1ea)]??_0x50b069[_0x5d1263(0x2a4)]?.[_0x5d1263(0x1ea)],_0x2ea765=_0x59ec2a&&_0xebb5b4[_0x5d1263(0x1ff)]?await _0x3760de[_0x5d1263(0x17c)](runTestCommand,_0xebb5b4,_0x2f4b4c[_0x5d1263(0x1aa)],_0x59ec2a,_0x50b069['\x68\x61\x72\x6e\x65\x73\x73']?.['\x74\x69\x6d\x65\x6f\x75\x74']):void 0x0;return _0x3760de[_0x5d1263(0x180)](buildCaseResult,{'\x73\x63\x65\x6e\x61\x72\x69\x6f':_0x50b069['\x73\x63\x65\x6e\x61\x72\x69\x6f'],'\x69\x74\x65\x72\x61\x74\x69\x6f\x6e':_0x50b069[_0x5d1263(0x2e7)],'\x70\x72\x6f\x66\x69\x6c\x65':_0x50b069['\x70\x72\x6f\x66\x69\x6c\x65'],'\x68\x61\x72\x6e\x65\x73\x73':_0x50b069[_0x5d1263(0x2a4)],'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0x2f4b4c[_0x5d1263(0x1aa)],'\x73\x61\x6e\x64\x62\x6f\x78\x49\x64':_0xebb5b4['\x69\x64'],'\x72\x65\x73\x75\x6c\x74':_0x20d0dc,'\x73\x61\x6e\x64\x62\x6f\x78\x52\x65\x73\x75\x6c\x74':_0x2ea765,'\x64\x75\x72\x61\x74\x69\x6f\x6e\x4d\x73':_0x3760de[_0x5d1263(0x1ca)](Date[_0x5d1263(0x2de)](),_0xd52d63),'\x65\x6e\x76':materializeHarnessEnv(_0x50b069['\x63\x6f\x6e\x66\x69\x67'],_0x50b069[_0x5d1263(0x2a4)]?.[_0x5d1263(0x1dc)],_0x50b069[_0x5d1263(0x2f7)])});}finally{await cleanupBox(_0xebb5b4);}}function buildSandboxBackend(_0x45720a){const _0x464626=a0_0x22bec,_0x230baf={'\x65\x79\x6b\x49\x4f':_0x464626(0x251),'\x6b\x70\x75\x63\x74':_0x464626(0x242)},_0x6147a8=_0x45720a[_0x464626(0x1c5)][_0x464626(0x26c)][_0x464626(0x272)][_0x464626(0x257)],_0x4f563a=inferSearchProvider(_0x45720a['\x70\x72\x6f\x66\x69\x6c\x65']),_0x31dbbe={'\x6e\x61\x6d\x65':_0x45720a['\x70\x72\x6f\x66\x69\x6c\x65']?.[_0x464626(0x19a)]??_0x45720a[_0x464626(0x279)]?.['\x69\x64']??_0x464626(0x204),'\x6d\x6f\x64\x65\x6c':{'\x64\x65\x66\x61\x75\x6c\x74':_0x45720a[_0x464626(0x279)]?.[_0x464626(0x257)]??_0x6147a8[_0x464626(0x257)]},'\x70\x65\x72\x6d\x69\x73\x73\x69\x6f\x6e\x73':{'\x6e\x65\x74\x77\x6f\x72\x6b':_0x230baf[_0x464626(0x21f)],'\x6d\x63\x70':_0x464626(0x251)},'\x6d\x63\x70':{'\x74\x61\x6e\x67\x6c\x65\x5f\x77\x65\x62\x5f\x73\x65\x61\x72\x63\x68':{'\x74\x72\x61\x6e\x73\x70\x6f\x72\x74':_0x230baf[_0x464626(0x1de)],'\x75\x72\x6c':_0x45720a[_0x464626(0x1c5)][_0x464626(0x286)][_0x464626(0x1ef)],'\x68\x65\x61\x64\x65\x72\x73':_0x45720a[_0x464626(0x1c5)][_0x464626(0x286)][_0x464626(0x2d4)],'\x65\x6e\x61\x62\x6c\x65\x64':_0x4f563a!==_0x464626(0x2bf)}},'\x6d\x65\x74\x61\x64\x61\x74\x61':{'\x74\x61\x6e\x67\x6c\x65\x52\x6f\x75\x74\x65\x72\x53\x65\x61\x72\x63\x68\x50\x72\x6f\x76\x69\x64\x65\x72':_0x4f563a,'\x74\x61\x6e\x67\x6c\x65\x52\x6f\x75\x74\x65\x72\x53\x65\x61\x72\x63\x68\x45\x6e\x64\x70\x6f\x69\x6e\x74':_0x45720a[_0x464626(0x1c5)]['\x65\x6e\x64\x70\x6f\x69\x6e\x74']['\x75\x72\x6c'],'\x74\x61\x6e\x67\x6c\x65\x52\x6f\x75\x74\x65\x72\x45\x76\x61\x6c\x48\x61\x72\x6e\x65\x73\x73':_0x45720a[_0x464626(0x2a4)]?.['\x69\x64']},'\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x73':{'\x74\x61\x6e\x67\x6c\x65\x52\x6f\x75\x74\x65\x72':{'\x70\x72\x6f\x76\x69\x64\x65\x72\x4f\x70\x74\x69\x6f\x6e\x73':_0x45720a[_0x464626(0x279)]?.[_0x464626(0x1c2)]}}};return{'\x74\x79\x70\x65':backendType(_0x45720a[_0x464626(0x2a4)]?.['\x69\x64']),'\x70\x72\x6f\x66\x69\x6c\x65':_0x31dbbe,'\x6d\x6f\x64\x65\x6c':{'\x70\x72\x6f\x76\x69\x64\x65\x72':_0x6147a8[_0x464626(0x237)],'\x6d\x6f\x64\x65\x6c':_0x45720a[_0x464626(0x279)]?.[_0x464626(0x257)]??_0x6147a8[_0x464626(0x257)],'\x62\x61\x73\x65\x55\x72\x6c':_0x6147a8[_0x464626(0x1e8)],'\x61\x70\x69\x4b\x65\x79':_0x45720a[_0x464626(0x2f7)]}};}function buildCaseResult(_0x3ebd7e){const _0xf0ba1c=a0_0x22bec,_0x2d2a72={'\x50\x67\x6c\x63\x67':'\x53\x61\x6e\x64\x62\x6f\x78\x20\x74\x65\x73\x74\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x20\x66\x61\x69\x6c\x65\x64\x2e','\x46\x6b\x6f\x4c\x4d':_0xf0ba1c(0x2b6),'\x68\x4a\x73\x50\x64':function(_0xe11a02,_0x4c1d76){return _0xe11a02(_0x4c1d76);},'\x48\x53\x69\x6e\x6b':function(_0x3f696f,_0x4eda28){return _0x3f696f(_0x4eda28);},'\x74\x55\x42\x56\x41':function(_0x952144,_0xbcca3){return _0x952144(_0xbcca3);}},_0x3fb569=_0x3ebd7e[_0xf0ba1c(0x2f6)][_0xf0ba1c(0x1f1)],_0x4a38cd=_0x3ebd7e[_0xf0ba1c(0x2f6)][_0xf0ba1c(0x232)]??'\x53\x61\x6e\x64\x62\x6f\x78\x20\x73\x65\x73\x73\x69\x6f\x6e\x20\x66\x61\x69\x6c\x65\x64',_0x107211=_0x3ebd7e[_0xf0ba1c(0x2f6)]['\x73\x75\x63\x63\x65\x73\x73']?void 0x0:_0x4a38cd,_0x2ea8d9=_0x3ebd7e[_0xf0ba1c(0x2f6)][_0xf0ba1c(0x2c2)]&&(_0x3ebd7e[_0xf0ba1c(0x1e7)]?_0x3ebd7e[_0xf0ba1c(0x1e7)][_0xf0ba1c(0x234)]:!![]),_0x2887ee=_0x3ebd7e[_0xf0ba1c(0x281)][_0xf0ba1c(0x239)],_0x359ff3=promptToolCalls(_0x3ebd7e[_0xf0ba1c(0x2f6)]);return{'\x73\x63\x65\x6e\x61\x72\x69\x6f\x49\x64':_0x3ebd7e[_0xf0ba1c(0x281)]['\x69\x64'],'\x70\x72\x6f\x6d\x70\x74':_0x3ebd7e[_0xf0ba1c(0x281)][_0xf0ba1c(0x1f3)],'\x6d\x6f\x64\x65\x6c':_0x3ebd7e[_0xf0ba1c(0x279)]?.[_0xf0ba1c(0x257)]??'\x75\x6e\x6b\x6e\x6f\x77\x6e','\x72\x65\x73\x70\x6f\x6e\x73\x65':_0x3ebd7e[_0xf0ba1c(0x2f6)][_0xf0ba1c(0x23b)]??'','\x74\x69\x6d\x69\x6e\x67':{'\x74\x6f\x74\x61\x6c\x4d\x73':_0x3ebd7e[_0xf0ba1c(0x2ed)]},'\x74\x6f\x6b\x65\x6e\x73':{'\x69\x6e\x70\x75\x74':_0x3fb569?.[_0xf0ba1c(0x18b)]??0x0,'\x6f\x75\x74\x70\x75\x74':_0x3fb569?.[_0xf0ba1c(0x195)]??0x0,'\x63\x61\x63\x68\x65\x64':0x0,'\x72\x65\x61\x73\x6f\x6e\x69\x6e\x67':0x0},'\x63\x6f\x73\x74':promptCost(_0x3ebd7e[_0xf0ba1c(0x2f6)]),'\x6a\x75\x64\x67\x65\x43\x6f\x73\x74':0x0,'\x73\x63\x6f\x72\x65':_0x2ea8d9?0x8:0x1,'\x6a\x75\x64\x67\x65\x52\x65\x61\x73\x6f\x6e\x69\x6e\x67':_0x2ea8d9?_0xf0ba1c(0x249):_0x3ebd7e[_0xf0ba1c(0x1e7)]&&!_0x3ebd7e[_0xf0ba1c(0x1e7)][_0xf0ba1c(0x234)]?_0x2d2a72[_0xf0ba1c(0x2ac)]:_0x4a38cd,'\x70\x61\x73\x73\x65\x64':_0x2ea8d9,'\x74\x6f\x6f\x6c\x43\x61\x6c\x6c\x73':_0x359ff3,'\x61\x73\x73\x65\x72\x74\x69\x6f\x6e\x73':[{'\x63\x68\x65\x63\x6b':_0x2d2a72['\x46\x6b\x6f\x4c\x4d'],'\x70\x61\x73\x73\x65\x64':_0x3ebd7e[_0xf0ba1c(0x2f6)][_0xf0ba1c(0x2c2)]},..._0x3ebd7e[_0xf0ba1c(0x1e7)]?[{'\x63\x68\x65\x63\x6b':_0xf0ba1c(0x2bd),'\x70\x61\x73\x73\x65\x64':_0x3ebd7e['\x73\x61\x6e\x64\x62\x6f\x78\x52\x65\x73\x75\x6c\x74'][_0xf0ba1c(0x234)]}]:[]],'\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b':{'\x70\x72\x6f\x66\x69\x6c\x65\x49\x64':_0x2887ee?.[_0xf0ba1c(0x1af)]??_0x3ebd7e[_0xf0ba1c(0x279)]?.['\x69\x64'],'\x68\x61\x72\x6e\x65\x73\x73\x49\x64':_0x2887ee?.[_0xf0ba1c(0x2c7)]??_0x3ebd7e['\x68\x61\x72\x6e\x65\x73\x73']?.['\x69\x64'],'\x74\x72\x61\x6e\x73\x70\x6f\x72\x74':_0x2887ee?.[_0xf0ba1c(0x247)]??_0x3ebd7e[_0xf0ba1c(0x2a4)]?.[_0xf0ba1c(0x247)]??_0xf0ba1c(0x1d0),'\x73\x65\x61\x72\x63\x68\x50\x72\x6f\x76\x69\x64\x65\x72':_0x2887ee?.[_0xf0ba1c(0x2b7)]??_0x2d2a72[_0xf0ba1c(0x2ce)](inferSearchProvider,_0x3ebd7e['\x70\x72\x6f\x66\x69\x6c\x65']),'\x73\x65\x61\x72\x63\x68\x52\x65\x71\x75\x65\x73\x74\x73':benchmarkSearchRequests(_0x3ebd7e['\x72\x65\x73\x75\x6c\x74'],_0x359ff3),'\x63\x69\x74\x61\x74\x69\x6f\x6e\x43\x6f\x75\x6e\x74':_0x2d2a72[_0xf0ba1c(0x1d3)](benchmarkCitationCount,_0x3ebd7e[_0xf0ba1c(0x2f6)]),'\x61\x72\x74\x69\x66\x61\x63\x74\x73':{..._0x2887ee?.[_0xf0ba1c(0x2e8)]??{},'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0x3ebd7e[_0xf0ba1c(0x1aa)],'\x73\x61\x6e\x64\x62\x6f\x78\x49\x64':_0x3ebd7e[_0xf0ba1c(0x18e)],..._0x2d2a72[_0xf0ba1c(0x1c0)](benchmarkEnvArtifacts,_0x3ebd7e['\x65\x6e\x76']),..._0x3ebd7e[_0xf0ba1c(0x2f6)][_0xf0ba1c(0x28a)]?{'\x74\x72\x61\x63\x65\x49\x64':_0x3ebd7e[_0xf0ba1c(0x2f6)][_0xf0ba1c(0x28a)]}:{}}},'\x69\x74\x65\x72\x61\x74\x69\x6f\x6e':_0x3ebd7e['\x69\x74\x65\x72\x61\x74\x69\x6f\x6e'],'\x65\x72\x72\x6f\x72':_0x3ebd7e[_0xf0ba1c(0x1e7)]&&!_0x3ebd7e[_0xf0ba1c(0x1e7)][_0xf0ba1c(0x234)]?_0xf0ba1c(0x267):_0x107211,'\x73\x61\x6e\x64\x62\x6f\x78\x52\x65\x73\x75\x6c\x74':_0x3ebd7e[_0xf0ba1c(0x1e7)]};}async function runTestCommand(_0x44afbe,_0x4b2ed9,_0x262549,_0x25094f){const _0x57815f=a0_0x22bec,_0x42267b={'\x5a\x6b\x62\x70\x71':function(_0x4dc25b,_0x3f840f){return _0x4dc25b*_0x3f840f;}},_0x333f12=await _0x44afbe['\x65\x78\x65\x63'](_0x262549,{'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0x4b2ed9,'\x74\x69\x6d\x65\x6f\x75\x74\x4d\x73':_0x42267b[_0x57815f(0x1bb)](Math['\x6d\x61\x78'](0x1,_0x25094f??0x78),0x3e8)});return{'\x65\x78\x69\x74\x43\x6f\x64\x65':_0x333f12['\x65\x78\x69\x74\x43\x6f\x64\x65'],'\x73\x74\x64\x6f\x75\x74':_0x333f12[_0x57815f(0x264)][_0x57815f(0x2c5)](0x0,0x7d0),'\x73\x74\x64\x65\x72\x72':_0x333f12['\x73\x74\x64\x65\x72\x72'][_0x57815f(0x2c5)](0x0,0x3e8),'\x74\x65\x73\x74\x73\x50\x61\x73\x73\x65\x64':_0x333f12['\x65\x78\x69\x74\x43\x6f\x64\x65']===0x0};}async function postJson(_0x321f46,_0x3cb28e,_0x51004f,_0x22f78f){const _0x354646=a0_0x22bec,_0x53838c={'\x4b\x63\x73\x57\x5a':function(_0x3d74fb,_0x3c22b2,_0x4032e5){return _0x3d74fb(_0x3c22b2,_0x4032e5);},'\x73\x7a\x52\x4d\x4f':function(_0x3ad93f,_0x914f68){return _0x3ad93f===_0x914f68;}},_0x21be0a=await _0x53838c[_0x354646(0x253)](_0x321f46,_0x3cb28e,{'\x6d\x65\x74\x68\x6f\x64':_0x354646(0x22a),'\x68\x65\x61\x64\x65\x72\x73':{'\x61\x75\x74\x68\x6f\x72\x69\x7a\x61\x74\x69\x6f\x6e':_0x354646(0x2d8)+_0x51004f,'\x63\x6f\x6e\x74\x65\x6e\x74\x2d\x74\x79\x70\x65':_0x354646(0x1fc),'\x61\x63\x63\x65\x70\x74':_0x354646(0x1fc)},'\x62\x6f\x64\x79':JSON['\x73\x74\x72\x69\x6e\x67\x69\x66\x79'](stripUndefined(_0x22f78f))}),_0x3cd078=await _0x21be0a['\x74\x65\x78\x74'](),_0x155c6d=_0x3cd078?JSON[_0x354646(0x1bf)](_0x3cd078):null;if(!_0x21be0a['\x6f\x6b']){const _0x3e62ed=_0x53838c[_0x354646(0x20b)](typeof _0x155c6d?.[_0x354646(0x232)],'\x73\x74\x72\x69\x6e\x67')?_0x155c6d[_0x354646(0x232)]:_0x3cd078[_0x354646(0x2c5)](0x0,0xc8);throw new Error(_0x3cb28e+_0x354646(0x2e5)+_0x21be0a[_0x354646(0x258)]+_0x354646(0x265)+_0x3e62ed);}return _0x155c6d;}async function parallelLimit(_0x5edc5a,_0x379da9){const _0x496c5a=a0_0x22bec,_0x4fbd92={'\x70\x65\x63\x76\x61':function(_0x452196,_0x54c0d9){return _0x452196<_0x54c0d9;}},_0x11a870=[];let _0x2c43c=0x0;const _0x2ed409=Array['\x66\x72\x6f\x6d']({'\x6c\x65\x6e\x67\x74\x68':Math['\x6d\x69\x6e'](Math['\x6d\x61\x78'](0x1,_0x379da9),_0x5edc5a[_0x496c5a(0x20f)])},async()=>{const _0x1cec04=_0x496c5a;while(_0x4fbd92[_0x1cec04(0x1cf)](_0x2c43c,_0x5edc5a['\x6c\x65\x6e\x67\x74\x68'])){const _0x222c50=_0x2c43c++;_0x11a870[_0x222c50]=await _0x5edc5a[_0x222c50]();}});return await Promise[_0x496c5a(0x1d6)](_0x2ed409),_0x11a870;}function materializeHarnessEnv(_0x4da7aa,_0x460231,_0x5ee6d8){const _0x3f7a87=a0_0x22bec,_0x572cbe={'\x79\x77\x46\x68\x6a':function(_0x5b9ed5,_0x3575aa,_0x17f80f,_0x2c86c0){return _0x5b9ed5(_0x3575aa,_0x17f80f,_0x2c86c0);}};return _0x572cbe[_0x3f7a87(0x1c1)](materializeEnv,{..._0x4da7aa[_0x3f7a87(0x21b)]??{},..._0x460231??{}},_0x4da7aa,_0x5ee6d8);}function materializeEnv(_0x38299d,_0x5b6920,_0x5222c2){const _0x3c77a1=a0_0x22bec,_0x2217d6={'\x44\x61\x6d\x46\x55':function(_0x4cc434,_0x2999dd,_0x12aff0,_0xea5648,_0x518d40){return _0x4cc434(_0x2999dd,_0x12aff0,_0xea5648,_0x518d40);}},_0x31a5b6=_0x5b6920['\x74\x63\x6c\x6f\x75\x64'][_0x3c77a1(0x272)]['\x6d\x6f\x64\x65\x6c'][_0x3c77a1(0x1e8)][_0x3c77a1(0x282)](/\/v1\/?$/,''),_0x3326cd=new Map();for(const [_0x5509bb,_0x4f60f9]of Object[_0x3c77a1(0x29e)](_0x38299d))_0x3326cd[_0x3c77a1(0x211)](_0x5509bb,_0x2217d6[_0x3c77a1(0x181)](replaceEnvTokens,_0x4f60f9,_0x5222c2,_0x31a5b6,_0x3326cd));return Object[_0x3c77a1(0x1b1)](_0x3326cd);}function replaceEnvTokens(_0x2c30ed,_0x258a12,_0x4c3782,_0x1bbbf6){const _0x372f5a=a0_0x22bec;let _0x4dc2ab=_0x2c30ed[_0x372f5a(0x282)](/<tangle-api-key>/g,_0x258a12)[_0x372f5a(0x282)](/\$\{TANGLE_API_KEY\}/g,_0x258a12)[_0x372f5a(0x282)](/\$\{TANGLE_ROUTER_URL\}/g,_0x4c3782);for(const [_0x4040f4,_0x2bedab]of _0x1bbbf6)_0x4dc2ab=_0x4dc2ab['\x72\x65\x70\x6c\x61\x63\x65'](new RegExp('\x5c\x24\x5c\x7b'+escapeRegExp(_0x4040f4)+'\x5c\x7d','\x67'),_0x2bedab);return _0x4dc2ab;}function benchmarkEnvArtifacts(_0x4761b2){const _0x35a5e8=a0_0x22bec,_0x377e9f=Object[_0x35a5e8(0x29e)](_0x4761b2)[_0x35a5e8(0x203)](([_0x3243ad],[_0x3ae8ae])=>_0x3243ad['\x6c\x6f\x63\x61\x6c\x65\x43\x6f\x6d\x70\x61\x72\x65'](_0x3ae8ae));return{'\x68\x61\x72\x6e\x65\x73\x73\x45\x6e\x76\x4b\x65\x79\x73':_0x377e9f['\x6d\x61\x70'](([_0x199bf1])=>_0x199bf1)[_0x35a5e8(0x2cc)]('\x2c'),'\x68\x61\x72\x6e\x65\x73\x73\x45\x6e\x76\x48\x61\x73\x68':stableHash(_0x377e9f['\x6d\x61\x70'](([_0xd47a6a,_0x304dfc])=>_0xd47a6a+'\x3d'+redactEnvValue(_0xd47a6a,_0x304dfc))[_0x35a5e8(0x2cc)]('\x0a')),'\x68\x61\x72\x6e\x65\x73\x73\x45\x6e\x76':JSON['\x73\x74\x72\x69\x6e\x67\x69\x66\x79'](Object[_0x35a5e8(0x1b1)](_0x377e9f[_0x35a5e8(0x1cd)](([_0x1903c9,_0x23f84e])=>[_0x1903c9,redactEnvValue(_0x1903c9,_0x23f84e)])))};}function redactEnvValue(_0x4a7feb,_0x25e1c6){const _0x1abd2b=a0_0x22bec;if(/token|secret|key|authorization/i['\x74\x65\x73\x74'](_0x4a7feb))return _0x1abd2b(0x220);if(/^Bearer\s+/i[_0x1abd2b(0x196)](_0x25e1c6))return'\x42\x65\x61\x72\x65\x72\x20\x3c\x72\x65\x64\x61\x63\x74\x65\x64\x3e';return _0x25e1c6[_0x1abd2b(0x20f)]>0x1f4?_0x25e1c6[_0x1abd2b(0x2c5)](0x0,0x1f4)+'\x2e\x2e\x2e':_0x25e1c6;}function a0_0x4887(_0x47aa16,_0x1878b4){_0x47aa16=_0x47aa16-0x179;const _0x1b0bf2=a0_0x1b0b();let _0x4887f8=_0x1b0bf2[_0x47aa16];if(a0_0x4887['\x46\x73\x74\x42\x6d\x79']===undefined){var _0x5d6e2a=function(_0x408899){const _0x1ececb='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';let _0x41839c='',_0x2f6038='';for(let _0x30c4e7=0x0,_0x448a0c,_0x553338,_0x376a27=0x0;_0x553338=_0x408899['\x63\x68\x61\x72\x41\x74'](_0x376a27++);~_0x553338&&(_0x448a0c=_0x30c4e7%0x4?_0x448a0c*0x40+_0x553338:_0x553338,_0x30c4e7++%0x4)?_0x41839c+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0xff&_0x448a0c>>(-0x2*_0x30c4e7&0x6)):0x0){_0x553338=_0x1ececb['\x69\x6e\x64\x65\x78\x4f\x66'](_0x553338);}for(let _0x9754e2=0x0,_0x4a7a99=_0x41839c['\x6c\x65\x6e\x67\x74\x68'];_0x9754e2<_0x4a7a99;_0x9754e2++){_0x2f6038+='\x25'+('\x30\x30'+_0x41839c['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x9754e2)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x10))['\x73\x6c\x69\x63\x65'](-0x2);}return decodeURIComponent(_0x2f6038);};a0_0x4887['\x66\x48\x78\x57\x6e\x45']=_0x5d6e2a,a0_0x4887['\x6e\x52\x4b\x53\x45\x52']={},a0_0x4887['\x46\x73\x74\x42\x6d\x79']=!![];}const _0x25cec5=_0x1b0bf2[0x0],_0x755093=_0x47aa16+_0x25cec5,_0x3e568a=a0_0x4887['\x6e\x52\x4b\x53\x45\x52'][_0x755093];return!_0x3e568a?(_0x4887f8=a0_0x4887['\x66\x48\x78\x57\x6e\x45'](_0x4887f8),a0_0x4887['\x6e\x52\x4b\x53\x45\x52'][_0x755093]=_0x4887f8):_0x4887f8=_0x3e568a,_0x4887f8;}function stableHash(_0x133585){const _0x5bcdbb=a0_0x22bec;let _0x2a04ab=0x811c9dc5;for(let _0x4bfed5=0x0;_0x4bfed5<_0x133585[_0x5bcdbb(0x20f)];_0x4bfed5+=0x1){_0x2a04ab^=_0x133585[_0x5bcdbb(0x1dd)](_0x4bfed5),_0x2a04ab=Math[_0x5bcdbb(0x202)](_0x2a04ab,0x1000193);}return(_0x2a04ab>>>0x0)[_0x5bcdbb(0x19f)](0x10)['\x70\x61\x64\x53\x74\x61\x72\x74'](0x8,'\x30');}function escapeRegExp(_0x167ae1){const _0x4aa861=a0_0x22bec,_0x529ebe={'\x4d\x41\x47\x77\x58':_0x4aa861(0x214)};return _0x167ae1[_0x4aa861(0x282)](/[.*+?^${}()|[\]\\]/g,_0x529ebe[_0x4aa861(0x200)]);}function inferSearchProvider(_0x230c56){const _0x3841df=a0_0x22bec,_0x3e675e={'\x50\x79\x52\x46\x65':function(_0x2f0656,_0x33a545){return _0x2f0656===_0x33a545;},'\x61\x48\x69\x6e\x76':function(_0x462297,_0x3bf253){return _0x462297===_0x3bf253;}},_0x2a0f54=_0x230c56?.[_0x3841df(0x1c2)]?.['\x67\x61\x74\x65\x77\x61\x79']?.[_0x3841df(0x2ca)];if(_0x3e675e[_0x3841df(0x1a0)](_0x2a0f54,![]))return _0x3841df(0x2bf);if(_0x2a0f54&&typeof _0x2a0f54==='\x6f\x62\x6a\x65\x63\x74'&&_0x3e675e[_0x3841df(0x1a7)](typeof _0x2a0f54[_0x3841df(0x237)],_0x3841df(0x18d)))return _0x2a0f54[_0x3841df(0x237)];return _0x3841df(0x296);}function promptCost(_0x2024e5){const _0x13d520=a0_0x22bec,_0x59e7e6={'\x64\x53\x51\x74\x72':function(_0x211e74,_0x227494){return _0x211e74===_0x227494;},'\x73\x55\x41\x78\x62':_0x13d520(0x2b3),'\x55\x46\x53\x54\x4b':function(_0x270a3c,_0xdce67){return _0x270a3c>_0xdce67;}},_0x40ab73=_0x2024e5,_0x1e1c90=_0x59e7e6['\x64\x53\x51\x74\x72'](typeof _0x40ab73[_0x13d520(0x2a8)],_0x59e7e6[_0x13d520(0x261)])?_0x40ab73[_0x13d520(0x2a8)]:_0x40ab73[_0x13d520(0x268)];return _0x59e7e6[_0x13d520(0x275)](typeof _0x1e1c90,_0x13d520(0x2b3))&&Number[_0x13d520(0x2a1)](_0x1e1c90)&&_0x59e7e6[_0x13d520(0x1e1)](_0x1e1c90,0x0)?_0x1e1c90:0x0;}function promptToolCalls(_0x14b3ea){const _0x11b47b=a0_0x22bec,_0x2dee73=_0x14b3ea;if(Array[_0x11b47b(0x245)](_0x2dee73[_0x11b47b(0x1e2)]))return _0x2dee73[_0x11b47b(0x1e2)];if(Array[_0x11b47b(0x245)](_0x2dee73[_0x11b47b(0x19d)]))return _0x2dee73[_0x11b47b(0x19d)];return[];}function benchmarkSearchRequests(_0x7c1d5f,_0x5efa2d){const _0x17b6b8=a0_0x22bec,_0xc7af5c={'\x74\x4e\x42\x59\x5a':_0x17b6b8(0x2b3)},_0x20d91b=_0x7c1d5f,_0x5cfd65=typeof _0x20d91b[_0x17b6b8(0x2b9)]===_0xc7af5c[_0x17b6b8(0x2f8)]?_0x20d91b[_0x17b6b8(0x2b9)]:typeof _0x20d91b[_0x17b6b8(0x198)]?.['\x73\x65\x61\x72\x63\x68\x52\x65\x71\x75\x65\x73\x74\x73']==='\x6e\x75\x6d\x62\x65\x72'?_0x20d91b[_0x17b6b8(0x198)][_0x17b6b8(0x2b9)]:void 0x0;if(_0x5cfd65!==void 0x0)return Math[_0x17b6b8(0x1ab)](0x0,_0x5cfd65);return _0x5efa2d['\x66\x69\x6c\x74\x65\x72'](_0x19c994=>{const _0xba58eb=_0x17b6b8,_0x3a1b67=_0x19c994;return String(_0x3a1b67['\x6e\x61\x6d\x65']??_0x3a1b67[_0xba58eb(0x2ae)]??_0x3a1b67[_0xba58eb(0x2bb)]??'')[_0xba58eb(0x1ed)]()[_0xba58eb(0x2e9)](_0xba58eb(0x1f0));})[_0x17b6b8(0x20f)];}function benchmarkCitationCount(_0x17de60){const _0x4bbedb=a0_0x22bec,_0x2dd3da={'\x4c\x47\x48\x77\x41':function(_0x27a5f7,_0x4afacf){return _0x27a5f7===_0x4afacf;},'\x53\x4d\x53\x74\x44':function(_0x1c791e,_0x58f89b){return _0x1c791e(_0x58f89b);},'\x70\x64\x4f\x71\x72':function(_0x33c4b6,_0x23530a){return _0x33c4b6===_0x23530a;}},_0x7ed0d=_0x17de60;if(typeof _0x7ed0d[_0x4bbedb(0x1da)]===_0x4bbedb(0x2b3))return Math[_0x4bbedb(0x1ab)](0x0,_0x7ed0d['\x63\x69\x74\x61\x74\x69\x6f\x6e\x43\x6f\x75\x6e\x74']);if(_0x2dd3da[_0x4bbedb(0x222)](typeof _0x7ed0d[_0x4bbedb(0x198)]?.[_0x4bbedb(0x1da)],'\x6e\x75\x6d\x62\x65\x72'))return Math[_0x4bbedb(0x1ab)](0x0,_0x7ed0d[_0x4bbedb(0x198)]['\x63\x69\x74\x61\x74\x69\x6f\x6e\x43\x6f\x75\x6e\x74']);if(Array[_0x4bbedb(0x245)](_0x7ed0d[_0x4bbedb(0x1a9)]))return _0x7ed0d[_0x4bbedb(0x1a9)]['\x6c\x65\x6e\x67\x74\x68'];if(Array[_0x4bbedb(0x245)](_0x7ed0d[_0x4bbedb(0x290)]))return _0x7ed0d[_0x4bbedb(0x290)]['\x66\x69\x6c\x74\x65\x72'](_0x2f5f6b=>{const _0x55f15d=_0x4bbedb,_0x3cdf24=_0x2f5f6b;return _0x2dd3da[_0x55f15d(0x1c4)](_0x3cdf24[_0x55f15d(0x2bb)],_0x55f15d(0x199))||_0x2dd3da[_0x55f15d(0x1e6)](Boolean,_0x3cdf24[_0x55f15d(0x199)]);})[_0x4bbedb(0x20f)];return 0x0;}function backendType(_0x12d5c6){const _0x32bd2d=a0_0x22bec,_0x32a3e5={'\x70\x58\x52\x6c\x5a':_0x32bd2d(0x24d),'\x4f\x61\x55\x61\x78':function(_0x4ff6c5,_0x5f08dd){return _0x4ff6c5===_0x5f08dd;},'\x51\x4d\x68\x6a\x54':_0x32bd2d(0x2a9),'\x42\x66\x57\x56\x46':function(_0x1f0a87,_0x1c8f95){return _0x1f0a87===_0x1c8f95;}};if(_0x12d5c6===_0x32a3e5['\x70\x58\x52\x6c\x5a'])return'\x63\x6c\x61\x75\x64\x65\x2d\x63\x6f\x64\x65';if(_0x32a3e5['\x4f\x61\x55\x61\x78'](_0x12d5c6,_0x32bd2d(0x2a9)))return _0x32a3e5['\x51\x4d\x68\x6a\x54'];if(_0x32a3e5['\x42\x66\x57\x56\x46'](_0x12d5c6,_0x32bd2d(0x262)))return _0x32bd2d(0x262);return _0x32bd2d(0x262);}function safeId(_0x4274cf){const _0x142869=a0_0x22bec,_0x1e4920={'\x63\x59\x4a\x66\x47':_0x142869(0x2d5)};return _0x4274cf['\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65']()[_0x142869(0x282)](/[^a-z0-9_-]+/g,'\x5f')[_0x142869(0x282)](/^_+|_+$/g,'')[_0x142869(0x2c5)](0x0,0x78)||_0x1e4920['\x63\x59\x4a\x66\x47'];}async function cleanupBox(_0x3a21b1){const _0x54cf8c=a0_0x22bec;if(_0x3a21b1[_0x54cf8c(0x2d0)])await _0x3a21b1[_0x54cf8c(0x2d0)]();else{if(_0x3a21b1[_0x54cf8c(0x22f)])await _0x3a21b1[_0x54cf8c(0x22f)]();}}function stripUndefined(_0x53f408){const _0x43de5a=a0_0x22bec;if(Array[_0x43de5a(0x245)](_0x53f408))return _0x53f408['\x6d\x61\x70'](stripUndefined);if(!_0x53f408||typeof _0x53f408!==_0x43de5a(0x192))return _0x53f408;return Object[_0x43de5a(0x1b1)](Object[_0x43de5a(0x29e)](_0x53f408)['\x66\x69\x6c\x74\x65\x72'](([,_0x5b6b6b])=>_0x5b6b6b!==void 0x0)[_0x43de5a(0x1cd)](([_0x589a6c,_0x1a2c39])=>[_0x589a6c,stripUndefined(_0x1a2c39)]));}export{a0_0x110b7c as AuthError,a0_0x41e888 as CapabilityError,a0_0x3cb324 as CollaborationClient,a0_0x2fee60 as CollaborationFileBridge,Image,ImageBuilder,a0_0x47f6c9 as IntegrationsManager,a0_0x2a1571 as IntelligenceClient,MANAGE_SANDBOXES_PARAMETERS,MANAGE_SANDBOXES_TOOL_NAME,a0_0x1530f0 as NetworkError,a0_0x3ce889 as NotFoundError,a0_0x147579 as PartialFailureError,a0_0x251cc5 as QuotaError,SANDBOX_MCP_SERVER_NAME,a0_0x3a369e as Sandbox,a0_0x3a369e as SandboxClient,a0_0x2db502 as SandboxError,a0_0x51761c as SandboxFleet,a0_0x2c6346 as SandboxFleetClient,a0_0x456fbc as SandboxInstance,a0_0x2fa802 as SandboxSession,a0_0x5b5547 as ServerError,a0_0x5402a0 as StateError,a0_0x5bbb75 as TangleSandboxClient,a0_0x39a8a4 as TimeoutError,a0_0x2e519b as ValidationError,a0_0x172469 as buildCollaborationDocumentId,buildSandboxMcpConfig,buildTangleRouterEvalMatrixRequest,buildTangleRouterResponsesWebSearchRequest,buildTangleRouterSearchBackend,buildTangleRouterSearchProfile,a0_0x19bfb1 as buildTraceExportPayload,createConfidentialSandbox,createManageSandboxesTool,defineAgentProfile,defineGitHubResource,defineInlineResource,a0_0x57a69e as exportTraceBundle,fetchTangleRouterSearchConfig,generateAttestationNonce,generateDockerfile,mergeAgentProfiles,a0_0x249e95 as normalizeCollaborationPath,a0_0x61056a as otelTraceIdForTangleTrace,a0_0xe708d2 as parseCollaborationDocumentId,a0_0x457e18 as parseSSEStream,runTangleRouterEvalMatrixInSandbox,startTeeAttestationHeartbeat,a0_0x2b0c43 as toOtelJson};