arc-1 0.9.18 → 0.9.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -26
- package/dist/adt/config.d.ts +1 -1
- package/dist/adt/config.d.ts.map +1 -1
- package/dist/adt/http.d.ts +1 -1
- package/dist/adt/http.d.ts.map +1 -1
- package/dist/adt/http.js.map +1 -1
- package/dist/authz/policy.d.ts +6 -0
- package/dist/authz/policy.d.ts.map +1 -1
- package/dist/authz/policy.js +20 -0
- package/dist/authz/policy.js.map +1 -1
- package/dist/cli.js +21 -3
- package/dist/cli.js.map +1 -1
- package/dist/handlers/dispatch.d.ts +3 -0
- package/dist/handlers/dispatch.d.ts.map +1 -1
- package/dist/handlers/dispatch.js +71 -53
- package/dist/handlers/dispatch.js.map +1 -1
- package/dist/handlers/schemas.d.ts +4 -4
- package/dist/plugins/manifest-interpreter.d.ts +25 -0
- package/dist/plugins/manifest-interpreter.d.ts.map +1 -0
- package/dist/plugins/manifest-interpreter.js +124 -0
- package/dist/plugins/manifest-interpreter.js.map +1 -0
- package/dist/public/define-tool.d.ts +9 -0
- package/dist/public/define-tool.d.ts.map +1 -0
- package/dist/public/define-tool.js +25 -0
- package/dist/public/define-tool.js.map +1 -0
- package/dist/public/index.d.ts +9 -0
- package/dist/public/index.d.ts.map +1 -0
- package/dist/public/index.js +10 -0
- package/dist/public/index.js.map +1 -0
- package/dist/public/testing.d.ts +26 -0
- package/dist/public/testing.d.ts.map +1 -0
- package/dist/public/testing.js +39 -0
- package/dist/public/testing.js.map +1 -0
- package/dist/public/types.d.ts +87 -0
- package/dist/public/types.d.ts.map +1 -0
- package/dist/public/types.js +4 -0
- package/dist/public/types.js.map +1 -0
- package/dist/registry/tool-registry.d.ts +74 -0
- package/dist/registry/tool-registry.d.ts.map +1 -0
- package/dist/registry/tool-registry.js +59 -0
- package/dist/registry/tool-registry.js.map +1 -0
- package/dist/server/app-url.d.ts +31 -0
- package/dist/server/app-url.d.ts.map +1 -0
- package/dist/server/app-url.js +50 -0
- package/dist/server/app-url.js.map +1 -0
- package/dist/server/audit.d.ts +4 -0
- package/dist/server/audit.d.ts.map +1 -1
- package/dist/server/audit.js.map +1 -1
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +19 -0
- package/dist/server/config.js.map +1 -1
- package/dist/server/http.d.ts +15 -46
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +105 -375
- package/dist/server/http.js.map +1 -1
- package/dist/server/logger.d.ts +22 -0
- package/dist/server/logger.d.ts.map +1 -1
- package/dist/server/logger.js +22 -0
- package/dist/server/logger.js.map +1 -1
- package/dist/server/plugin-loader.d.ts +19 -0
- package/dist/server/plugin-loader.d.ts.map +1 -0
- package/dist/server/plugin-loader.js +162 -0
- package/dist/server/plugin-loader.js.map +1 -0
- package/dist/server/safe-http-client.d.ts +38 -0
- package/dist/server/safe-http-client.d.ts.map +1 -0
- package/dist/server/safe-http-client.js +129 -0
- package/dist/server/safe-http-client.js.map +1 -0
- package/dist/server/server.d.ts +2 -2
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +36 -7
- package/dist/server/server.js.map +1 -1
- package/dist/server/types.d.ts +8 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +2 -0
- package/dist/server/types.js.map +1 -1
- package/package.json +24 -8
- package/dist/adt/btp.d.ts +0 -140
- package/dist/adt/btp.d.ts.map +0 -1
- package/dist/adt/btp.js +0 -427
- package/dist/adt/btp.js.map +0 -1
- package/dist/server/oauth-state.d.ts +0 -92
- package/dist/server/oauth-state.d.ts.map +0 -1
- package/dist/server/oauth-state.js +0 -163
- package/dist/server/oauth-state.js.map +0 -1
- package/dist/server/stateless-client-store.d.ts +0 -173
- package/dist/server/stateless-client-store.d.ts.map +0 -1
- package/dist/server/stateless-client-store.js +0 -503
- package/dist/server/stateless-client-store.js.map +0 -1
- package/dist/server/xsuaa.d.ts +0 -188
- package/dist/server/xsuaa.d.ts.map +0 -1
- package/dist/server/xsuaa.js +0 -464
- package/dist/server/xsuaa.js.map +0 -1
|
@@ -19,6 +19,7 @@ import { AdtApiError, AdtNetworkError, AdtSafetyError, classifySapDomainError }
|
|
|
19
19
|
* getActionPolicy, hasRequiredScope). This module routes through them.
|
|
20
20
|
*/
|
|
21
21
|
import { getActionPolicy, hasRequiredScope as hasScopeHelper } from '../authz/policy.js';
|
|
22
|
+
import { ToolRegistry } from '../registry/tool-registry.js';
|
|
22
23
|
import { sanitizeArgs } from '../server/audit.js';
|
|
23
24
|
import { generateRequestId, requestContext } from '../server/context.js';
|
|
24
25
|
import { logger } from '../server/logger.js';
|
|
@@ -373,6 +374,44 @@ function classifyError(err) {
|
|
|
373
374
|
return err.constructor.name;
|
|
374
375
|
return 'Unknown';
|
|
375
376
|
}
|
|
377
|
+
// ─── Tool registry (FEAT-61) ─────────────────────────────────────────
|
|
378
|
+
// The 12 built-ins register through the same ToolRegistry that plugin (Custom_*) tools use. Each
|
|
379
|
+
// built-in `invoke` is a thin adapter over its existing handler — the shared pipeline (rate-limit,
|
|
380
|
+
// scope, deny, Zod, audit) stays in handleToolCall; the registry only owns the inner dispatch that
|
|
381
|
+
// used to be a `switch`. See docs/research/extension-framework-spec.md §4.
|
|
382
|
+
let _toolRegistry;
|
|
383
|
+
/** The process-wide tool registry, lazily seeded with the built-ins. Exported for tests. */
|
|
384
|
+
export function getToolRegistry() {
|
|
385
|
+
if (_toolRegistry)
|
|
386
|
+
return _toolRegistry;
|
|
387
|
+
const r = new ToolRegistry();
|
|
388
|
+
const reg = (name, invoke) => {
|
|
389
|
+
const policy = getActionPolicy(name);
|
|
390
|
+
if (!policy)
|
|
391
|
+
throw new Error(`Built-in tool '${name}' has no ACTION_POLICY entry`);
|
|
392
|
+
r.register({ name, source: 'builtin', policy, invoke });
|
|
393
|
+
};
|
|
394
|
+
reg('SAPRead', (ctx) => handleSAPRead(ctx.client, ctx.args, ctx.cache, ctx.cacheSecurity));
|
|
395
|
+
reg('SAPSearch', (ctx) => handleSAPSearch(ctx.client, ctx.args));
|
|
396
|
+
reg('SAPQuery', (ctx) => handleSAPQuery(ctx.client, ctx.args));
|
|
397
|
+
reg('SAPWrite', (ctx) => handleSAPWrite(ctx.client, ctx.args, ctx.config, ctx.cache, ctx.cacheSecurity));
|
|
398
|
+
reg('SAPActivate', (ctx) => handleSAPActivate(ctx.client, ctx.args, ctx.cache, ctx.cacheSecurity));
|
|
399
|
+
reg('SAPNavigate', (ctx) => handleSAPNavigate(ctx.client, ctx.args));
|
|
400
|
+
reg('SAPLint', (ctx) => handleSAPLint(ctx.client, ctx.args, ctx.config));
|
|
401
|
+
reg('SAPDiagnose', (ctx) => handleSAPDiagnose(ctx.client, ctx.args));
|
|
402
|
+
reg('SAPTransport', (ctx) => handleSAPTransport(ctx.client, ctx.args));
|
|
403
|
+
reg('SAPGit', (ctx) => handleSAPGit(ctx.client, ctx.args, ctx.authInfo));
|
|
404
|
+
reg('SAPContext', (ctx) => handleSAPContext(ctx.client, ctx.args, ctx.cache, ctx.cacheSecurity));
|
|
405
|
+
reg('SAPManage', (ctx) => handleSAPManage(ctx.client, ctx.config, ctx.args, ctx.cache, ctx.isPerUserClient));
|
|
406
|
+
reg('SAP', async (ctx) => {
|
|
407
|
+
const expanded = expandHyperfocusedArgs(ctx.args);
|
|
408
|
+
if ('error' in expanded)
|
|
409
|
+
return errorResult(expanded.error);
|
|
410
|
+
return handleToolCall(ctx.client, ctx.config, expanded.toolName, expanded.expandedArgs, ctx.authInfo, ctx.server, ctx.cache, ctx.isPerUserClient);
|
|
411
|
+
});
|
|
412
|
+
_toolRegistry = r;
|
|
413
|
+
return r;
|
|
414
|
+
}
|
|
376
415
|
/**
|
|
377
416
|
* Handle an MCP tool call.
|
|
378
417
|
*
|
|
@@ -387,6 +426,8 @@ export async function handleToolCall(client, config, toolName, args, authInfo, _
|
|
|
387
426
|
// Build user context for audit logging
|
|
388
427
|
const user = authInfo?.extra?.userName;
|
|
389
428
|
const clientId = authInfo?.clientId;
|
|
429
|
+
// For plugin (Custom_*) tools, tag every audit event with the contributing plugin (spec §9).
|
|
430
|
+
const pluginName = getToolRegistry().get(toolName)?.pluginName;
|
|
390
431
|
// Emit tool_call_start audit event
|
|
391
432
|
logger.emitAudit({
|
|
392
433
|
timestamp: new Date().toISOString(),
|
|
@@ -396,6 +437,7 @@ export async function handleToolCall(client, config, toolName, args, authInfo, _
|
|
|
396
437
|
user,
|
|
397
438
|
clientId,
|
|
398
439
|
tool: toolName,
|
|
440
|
+
pluginName,
|
|
399
441
|
args: sanitizeArgs(args),
|
|
400
442
|
});
|
|
401
443
|
// ─── Layer 2: per-user MCP tool-call rate limit ─────────────────────
|
|
@@ -471,7 +513,9 @@ export async function handleToolCall(client, config, toolName, args, authInfo, _
|
|
|
471
513
|
actionOrType = `tadir_lookup_${src}`;
|
|
472
514
|
}
|
|
473
515
|
}
|
|
474
|
-
|
|
516
|
+
// Built-in policy from ACTION_POLICY; plugin (Custom_*) policy from the registry (FEAT-61).
|
|
517
|
+
// Kept here (not inside getActionPolicy) so validate-action-policy.ts stays built-ins-only.
|
|
518
|
+
const policy = getActionPolicy(toolName, actionOrType) ?? getToolRegistry().get(toolName)?.policy;
|
|
475
519
|
if (authInfo && policy) {
|
|
476
520
|
if (!hasRequiredScope(authInfo, policy.scope)) {
|
|
477
521
|
logger.emitAudit({
|
|
@@ -534,59 +578,31 @@ export async function handleToolCall(client, config, toolName, args, authInfo, _
|
|
|
534
578
|
// Run within request context so HTTP-level logs get the requestId
|
|
535
579
|
return requestContext.run({ requestId: reqId, user, tool: toolName }, async () => {
|
|
536
580
|
try {
|
|
537
|
-
let result;
|
|
538
581
|
const cacheSecurity = buildCacheSecurityContext(authInfo, isPerUserClient);
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
break;
|
|
564
|
-
case 'SAPTransport':
|
|
565
|
-
result = await handleSAPTransport(client, args);
|
|
566
|
-
break;
|
|
567
|
-
case 'SAPGit':
|
|
568
|
-
result = await handleSAPGit(client, args, authInfo);
|
|
569
|
-
break;
|
|
570
|
-
case 'SAPContext':
|
|
571
|
-
result = await handleSAPContext(client, args, cachingLayer, cacheSecurity);
|
|
572
|
-
break;
|
|
573
|
-
case 'SAPManage':
|
|
574
|
-
result = await handleSAPManage(client, config, args, cachingLayer, isPerUserClient);
|
|
575
|
-
break;
|
|
576
|
-
case 'SAP': {
|
|
577
|
-
// Hyperfocused mode: route to the appropriate handler
|
|
578
|
-
const expanded = expandHyperfocusedArgs(args);
|
|
579
|
-
if ('error' in expanded) {
|
|
580
|
-
result = errorResult(expanded.error);
|
|
581
|
-
break;
|
|
582
|
-
}
|
|
583
|
-
// Delegate to the real handler (recursive call, but with the mapped tool name)
|
|
584
|
-
// The concrete tool/action policy is enforced by the recursive call.
|
|
585
|
-
result = await handleToolCall(client, config, expanded.toolName, expanded.expandedArgs, authInfo, _server, cachingLayer, isPerUserClient);
|
|
586
|
-
break;
|
|
587
|
-
}
|
|
588
|
-
default:
|
|
589
|
-
result = errorResult(`Unknown tool: ${toolName}`);
|
|
582
|
+
// FEAT-61: inner dispatch is owned by the ToolRegistry (built-ins + plugin Custom_* tools).
|
|
583
|
+
// The shared pipeline above (rate-limit, scope, deny, Zod, audit) is unchanged; the registry
|
|
584
|
+
// only replaces the former `switch (toolName)`. See extension-framework-spec.md §4.
|
|
585
|
+
const entry = getToolRegistry().get(toolName);
|
|
586
|
+
let result;
|
|
587
|
+
// Plugin (Custom_*) tools are out of scope for hyperfocused mode (spec §1): hidden from
|
|
588
|
+
// tools/list AND not directly invocable, so a client that knows a Custom_ name can't reach a
|
|
589
|
+
// plugin tool here either. Built-ins (incl. the `SAP` wrapper) dispatch normally.
|
|
590
|
+
if (!entry || (config.toolMode === 'hyperfocused' && entry.source === 'plugin')) {
|
|
591
|
+
result = errorResult(`Unknown tool: ${toolName}`);
|
|
592
|
+
}
|
|
593
|
+
else {
|
|
594
|
+
const dispatchCtx = {
|
|
595
|
+
client,
|
|
596
|
+
config,
|
|
597
|
+
args,
|
|
598
|
+
cache: cachingLayer,
|
|
599
|
+
authInfo,
|
|
600
|
+
isPerUserClient,
|
|
601
|
+
cacheSecurity,
|
|
602
|
+
server: _server,
|
|
603
|
+
requestId: reqId,
|
|
604
|
+
};
|
|
605
|
+
result = await entry.invoke(dispatchCtx);
|
|
590
606
|
}
|
|
591
607
|
const durationMs = Date.now() - start;
|
|
592
608
|
const fullText = result.content.map((c) => c.text).join('');
|
|
@@ -600,6 +616,7 @@ export async function handleToolCall(client, config, toolName, args, authInfo, _
|
|
|
600
616
|
user,
|
|
601
617
|
clientId,
|
|
602
618
|
tool: toolName,
|
|
619
|
+
pluginName,
|
|
603
620
|
durationMs,
|
|
604
621
|
status: result.isError ? 'error' : 'success',
|
|
605
622
|
errorMessage: result.isError ? result.content[0]?.text : undefined,
|
|
@@ -620,6 +637,7 @@ export async function handleToolCall(client, config, toolName, args, authInfo, _
|
|
|
620
637
|
user,
|
|
621
638
|
clientId,
|
|
622
639
|
tool: toolName,
|
|
640
|
+
pluginName,
|
|
623
641
|
durationMs,
|
|
624
642
|
status: 'error',
|
|
625
643
|
errorClass: classifyError(err),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/handlers/dispatch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/handlers/dispatch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AACxG;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,eAAe,EAAE,gBAAgB,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzF,OAAO,EAAgD,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC1G,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAuB,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAmB,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAA2B,MAAM,CAAC,WAAW,CACnE;IACE,SAAS;IACT,WAAW;IACX,UAAU;IACV,QAAQ;IACR,aAAa;IACb,YAAY;IACZ,SAAS;IACT,aAAa;IACb,UAAU;IACV,aAAa;IACb,WAAW;IACX,cAAc;CACf,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,MAAM,CAAC,CAAC,CACvD,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAkB,EAAE,aAAqB;IACxE,OAAO,cAAc,CACnB,QAAQ,CAAC,MAAM,EACf,aAAmF,CACpF,CAAC;AACJ,CAAC;AAED,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE/G,SAAS,0BAA0B,CAAC,GAAgB,EAAE,IAAY,EAAE,IAA6B;IAC/F,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACvD,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IAEtG,2EAA2E;IAC3E,kFAAkF;IAClF,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,YAAY,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACxF,MAAM,qBAAqB,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACpH,MAAM,kBAAkB,GAAG,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC/D,MAAM,qBAAqB,GAAG,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;IAC7E,IAAI,CAAC,qBAAqB,IAAI,CAAC,kBAAkB,IAAI,CAAC,qBAAqB;QAAE,OAAO,SAAS,CAAC;IAE9F,OAAO,CACL,+EAA+E;QAC/E,kHAAkH;QAClH,6GAA6G,CAC9G,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,SAAS,iBAAiB,CACxB,GAAY,EACZ,OAAe,EACf,IAAY,EACZ,IAA6B,EAC7B,MAAoB;IAEpB,MAAM,IAAI,GAAG,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACrE,4EAA4E;IAC5E,+EAA+E;IAC/E,IAAI,GAAG,YAAY,WAAW,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACjF,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,SAAS,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAC5B,GAAY,EACZ,OAAe,EACf,IAAY,EACZ,IAA6B,EAC7B,MAAoB;IAEpB,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;QAC/B,+EAA+E;QAC/E,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACzE,iFAAiF;QACjF,sFAAsF;QACtF,sFAAsF;QACtF,MAAM,WAAW,GAAG,cAAc,EAAE,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC;QACtE,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEvG,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,eAAe,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,sBAAsB,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7G,OAAO,GAAG,QAAQ,aAAa,cAAc,CAAC,IAAI,GAAG,eAAe,EAAE,CAAC;QACzE,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,eAAe,GAAG,4BAA4B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjE,IAAI,eAAe,EAAE,CAAC;gBACpB,OAAO,GAAG,QAAQ,aAAa,eAAe,EAAE,CAAC;YACnD,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACrC,OAAO,GAAG,QAAQ,qBAAqB,IAAI,WAAW,IAAI,8CAA8C,IAAI,yDAAyD,CAAC;QACxK,CAAC;QACD,IAAI,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBAC7C,OAAO,CACL,GAAG,QAAQ,MAAM;oBACjB,qEAAqE;oBACrE,sEAAsE;oBACtE,kEAAkE,CACnE,CAAC;YACJ,CAAC;YACD,OAAO,GAAG,QAAQ,6JAA6J,CAAC;QAClL,CAAC;QACD,oCAAoC;QACpC,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,GAAG,QAAQ,aAAa,aAAa,EAAE,CAAC;QACjD,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,gBAAgB,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YACjF,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;YAC7D,IAAI,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,OAAO,CACL,GAAG,QAAQ,yEAAyE;oBACpF,iDAAiD;oBACjD,2DAA2D,CAC5D,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,aAAa,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YAC9E,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;YAC7D,IAAI,iCAAiC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrD,OAAO,CACL,GAAG,QAAQ,uFAAuF;oBAClG,2GAA2G;oBAC3G,gFAAgF,CACjF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnE,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,GAAG,QAAQ,aAAa,gBAAgB,EAAE,CAAC;QACpD,CAAC;QACD,MAAM,uBAAuB,GAAG,0BAA0B,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5E,IAAI,uBAAuB,EAAE,CAAC;YAC5B,OAAO,GAAG,QAAQ,aAAa,uBAAuB,EAAE,CAAC;QAC3D,CAAC;QACD,6EAA6E;QAC7E,0GAA0G;QAC1G,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACvD,MAAM,YAAY,GAChB,MAAM,KAAK,EAAE;YACb,MAAM,KAAK,QAAQ;YACnB,MAAM,KAAK,QAAQ;YACnB,MAAM,KAAK,cAAc;YACzB,MAAM,KAAK,aAAa,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC,IAAI,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;YAC5G,OAAO,CACL,GAAG,QAAQ,0GAA0G;gBACrH,wGAAwG,CACzG,CAAC;QACJ,CAAC;QACD,sCAAsC;QACtC,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;YACtB,gGAAgG;YAChG,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAC1E,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,yBAAyB;gBAC/E,OAAO,GAAG,QAAQ,0FAA0F,OAAO,mIAAmI,CAAC;YACzP,CAAC;YACD,OAAO,GAAG,QAAQ,2CAA2C,GAAG,CAAC,UAAU,yMAAyM,CAAC;QACvR,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACzE,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;YACvD,OAAO,CACL,GAAG,OAAO,qFAAqF;gBAC/F,uFAAuF;gBACvF,gDAAgD,CACjD,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC7E,OAAO,CACL,GAAG,OAAO,0EAA0E;gBACpF,yEAAyE,CAC1E,CAAC;QACJ,CAAC;QACD,OAAO,CACL,GAAG,OAAO,2FAA2F;YACrG,6CAA6C,CAC9C,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,4BAA4B,CAAC,IAAY,EAAE,IAA6B;IAC/E,IAAI,IAAI,KAAK,aAAa;QAAE,OAAO,SAAS,CAAC;IAE7C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAEtD,IAAI,MAAM,KAAK,OAAO,IAAI,EAAE,EAAE,CAAC;QAC7B,OAAO,YAAY,EAAE,4HAA4H,CAAC;IACpJ,CAAC;IAED,IAAI,MAAM,KAAK,QAAQ,IAAI,EAAE,EAAE,CAAC;QAC9B,OAAO,aAAa,EAAE,yGAAyG,CAAC;IAClI,CAAC;IAED,IAAI,MAAM,KAAK,gBAAgB,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;QACrD,OAAO,sIAAsI,CAAC;IAChJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB,EAAE,IAA6B,EAAE,QAAgB;IAChG,MAAM,MAAM,GAAG,GAAG,CAAC;IACnB,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAE7G,IAAI,QAAQ,KAAK,aAAa;QAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,MAAM,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5D,MAAM,eAAe,GACnB,MAAM,KAAK,gBAAgB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAE5G,IAAI,CAAC,YAAY,IAAI,CAAC,eAAe;QAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEjE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAA4B,CAAC;QAChE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,QAAQ,GACZ,OAAO,CAAC,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAE,OAAO,CAAC,QAAoC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChH,MAAM,OAAO,GAAG;gBACd,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;gBAC9C,QAAQ,EAAE,MAAM,CAAC,WAAW,CAC1B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ;wBAAE,OAAO,CAAC,GAAG,EAAE,YAAY,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC;oBAC/E,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBAC5B,CAAC,CAAC,CACH;gBACD,aAAa,EACX,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,aAAa,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,SAAS;aAC5G,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,eAAe,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACpF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAqC,CAAC;YACjE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG;gBACd,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,UAAU,EAAE,YAAY,KAAK,SAAS;gBACtC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAChF,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,kGAAkG;AAClG,SAAS,oBAAoB,CAAC,GAAgB,EAAE,OAAe;IAC7D,IAAI,CAAC,GAAG,CAAC,YAAY;QAAE,OAAO,OAAO,CAAC;IAEtC,MAAM,aAAa,GAAG,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE9D,MAAM,KAAK,GAAa,CAAC,OAAO,CAAC,CAAC;IAElC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,yBAAyB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,eAAe,GAAG,WAAW,CAAC,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC5E,IAAI,eAAe,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5B,6EAA6E;QAC7E,4EAA4E;QAC5E,mCAAmC;IACrC,CAAC;SAAM,CAAC;QACN,6EAA6E;QAC7E,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;iBAClC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qCAAqC;iBACjD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;iBAC5B,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,IAAI,OAAO;gBAAE,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,uHAAuH;AACvH,SAAS,gBAAgB,CAAC,GAAgB;IACxC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACpD,gFAAgF;IAChF,4FAA4F;IAC5F,uDAAuD;IACvD,MAAM,QAAQ,GAAG,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACvF,MAAM,QAAQ,GAAG,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC;IAEvC,iDAAiD;IACjD,IACE,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACtC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC3B,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACrC,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAClG,CAAC;QACD,OAAO,qPAAqP,CAAC;IAC/P,CAAC;IAED,wCAAwC;IACxC,IACE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QACzB,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC7B,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EACjH,CAAC;QACD,OAAO,iMAAiM,CAAC;IAC3M,CAAC;IAED,qCAAqC;IACrC,IACE,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACpC,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC3B,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC9B,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAClH,CAAC;QACD,OAAO,qMAAqM,CAAC;IAC/M,CAAC;IAED,yCAAyC;IACzC,IACE,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC/B,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAClH,CAAC;QACD,OAAO,4IAA4I,CAAC;IACtJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mCAAmC,CAAC,MAAc;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACzE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,8BAA8B,CAAC,GAAgB,EAAE,IAA6B;IACrF,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1D,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IAEtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACpF,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACpD,MAAM,oBAAoB,GACxB,KAAK,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QAC5D,KAAK,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QAC3D,IAAI,CAAC,QAAQ,CAAC,6CAA6C,CAAC,CAAC;IAC/D,IAAI,CAAC,oBAAoB;QAAE,OAAO,SAAS,CAAC;IAE5C,MAAM,qBAAqB,GAAG,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpH,IAAI,CAAC,qBAAqB;QAAE,OAAO,SAAS,CAAC;IAE7C,MAAM,YAAY,GAAG,mCAAmC,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,eAAe,YAAY,GAAG,CAAC,CAAC,CAAC,oCAAoC,CAAC;IAEtG,OAAO,CACL,+DAA+D;QAC/D,+DAA+D,IAAI,IAAI,QAAQ,IAAI;QACnF,iGAAiG;QACjG,oIAAoI,CACrI,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,GAAY;IACjC,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1F,OAAO,cAAc,CAAC,CAAC,CAAC,eAAe,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;IACnF,CAAC;IACD,IAAI,GAAG,YAAY,eAAe;QAAE,OAAO,iBAAiB,CAAC;IAC7D,IAAI,GAAG,YAAY,cAAc;QAAE,OAAO,gBAAgB,CAAC;IAC3D,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;IACtD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,wEAAwE;AACxE,iGAAiG;AACjG,mGAAmG;AACnG,mGAAmG;AACnG,2EAA2E;AAC3E,IAAI,aAAuC,CAAC;AAE5C,4FAA4F;AAC5F,MAAM,UAAU,eAAe;IAC7B,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IACxC,MAAM,CAAC,GAAG,IAAI,YAAY,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,MAA+B,EAAQ,EAAE;QAClE,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,8BAA8B,CAAC,CAAC;QACnF,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC;IACF,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAC3F,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IACzG,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IACnG,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,GAAG,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzE,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IACjG,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;IAC7G,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,OAAO,IAAI,QAAQ;YAAE,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5D,OAAO,cAAc,CACnB,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,MAAM,EACV,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,YAAY,EACrB,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,eAAe,CACpB,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,aAAa,GAAG,CAAC,CAAC;IAClB,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAiB,EACjB,MAAoB,EACpB,QAAgB,EAChB,IAA6B,EAC7B,QAAmB,EACnB,OAAgB,EAChB,YAA2B,EAC3B,eAAyB,EACzB,cAA+B;IAE/B,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzB,uCAAuC;IACvC,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,EAAE,QAA8B,CAAC;IAC7D,MAAM,QAAQ,GAAG,QAAQ,EAAE,QAAQ,CAAC;IACpC,6FAA6F;IAC7F,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;IAE/D,mCAAmC;IACnC,MAAM,CAAC,SAAS,CAAC;QACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,KAAK;QAChB,IAAI;QACJ,QAAQ;QACR,IAAI,EAAE,QAAQ;QACd,UAAU;QACV,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;KACzB,CAAC,CAAC;IAEH,uEAAuE;IACvE,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,sEAAsE;IACtE,gFAAgF;IAChF,kDAAkD;IAClD,IAAI,cAAc,IAAI,QAAQ,EAAE,CAAC;QAC/B,yEAAyE;QACzE,0EAA0E;QAC1E,oEAAoE;QACpE,MAAM,OAAO,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;YAC3D,MAAM,CAAC,SAAS,CAAC;gBACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,kBAAkB;gBACzB,SAAS,EAAE,KAAK;gBAChB,QAAQ;gBACR,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,cAAc,EAAE,QAAQ,CAAC,cAAc;gBACvC,YAAY,EAAE,QAAQ,CAAC,YAAY;aACpC,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,cAAc;4BACrB,UAAU;4BACV,OAAO,EAAE,wBAAwB,QAAQ,CAAC,cAAc,+BAA+B,UAAU,WAAW;yBAC7G,CAAC;qBACH;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;IAED,yFAAyF;IACzF,6FAA6F;IAC7F,+FAA+F;IAC/F,yFAAyF;IACzF,0FAA0F;IAC1F,iDAAiD;IACjD,EAAE;IACF,oFAAoF;IACpF,0FAA0F;IAC1F,wFAAwF;IACxF,4FAA4F;IAC5F,2FAA2F;IAC3F,uFAAuF;IACvF,wEAAwE;IACxE,4FAA4F;IAC5F,0FAA0F;IAC1F,oFAAoF;IACpF,6FAA6F;IAC7F,4EAA4E;IAC5E,gGAAgG;IAChG,MAAM,cAAc,GAAG,8BAA8B,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC;IACzF,IAAI,YAAY,GACd,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC5G,IACE,QAAQ,KAAK,WAAW;QACxB,OAAO,cAAc,CAAC,UAAU,KAAK,QAAQ;QAC7C,cAAc,CAAC,UAAU,KAAK,cAAc;QAC5C,OAAO,cAAc,CAAC,MAAM,KAAK,QAAQ,EACzC,CAAC;QACD,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAChD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACnC,YAAY,GAAG,gBAAgB,GAAG,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IACD,4FAA4F;IAC5F,4FAA4F;IAC5F,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,eAAe,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElG,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,SAAS,CAAC;gBACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,mBAAmB;gBAC1B,SAAS,EAAE,KAAK;gBAChB,IAAI;gBACJ,QAAQ;gBACR,IAAI,EAAE,QAAQ;gBACd,aAAa,EAAE,MAAM,CAAC,KAAK;gBAC3B,eAAe,EAAE,QAAQ,CAAC,MAAM;aACjC,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,YAAY;gBAC9B,CAAC,CAAC,GAAG,QAAQ,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,YAAY,IAAI;gBAChF,CAAC,CAAC,QAAQ,CAAC;YACb,OAAO,WAAW,CAChB,wBAAwB,MAAM,CAAC,KAAK,kBAAkB,WAAW,mBAAmB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAClH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4FAA4F;IAC5F,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IACrE,IAAI,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;QACrE,MAAM,CAAC,SAAS,CAAC;YACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,gBAAgB;YACvB,SAAS,EAAE,KAAK;YAChB,IAAI;YACJ,QAAQ;YACR,SAAS,EAAE,GAAG,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YACjE,MAAM,EAAE,mCAAmC;SAC5C,CAAC,CAAC;QACH,OAAO,WAAW,CAChB,WAAW,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,kDAAkD,CAC/G,CAAC;IACJ,CAAC;IAED,2EAA2E;IAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC;IAC1C,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAI,MAAM,EAAE,CAAC;QACX,0EAA0E;QAC1E,4EAA4E;QAC5E,0BAA0B;QAC1B,IAAI,GAAG,cAAc,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC/D,MAAM,CAAC,SAAS,CAAC;gBACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,gBAAgB;gBACvB,SAAS,EAAE,KAAK;gBAChB,IAAI;gBACJ,QAAQ;gBACR,SAAS,EAAE,QAAQ;gBACnB,MAAM,EAAE,yBAAyB;aAClC,CAAC,CAAC;YACH,OAAO,WAAW,CAAC,eAAe,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,GAAG,MAAM,CAAC,IAA+B,CAAC;IAChD,CAAC;IAED,kEAAkE;IAClE,OAAO,cAAc,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,IAAI,EAAE;QAC/E,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,yBAAyB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YAE3E,4FAA4F;YAC5F,6FAA6F;YAC7F,oFAAoF;YACpF,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,MAAkB,CAAC;YACvB,wFAAwF;YACxF,6FAA6F;YAC7F,kFAAkF;YAClF,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,cAAc,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAChF,MAAM,GAAG,WAAW,CAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,GAAwB;oBACvC,MAAM;oBACN,MAAM;oBACN,IAAI;oBACJ,KAAK,EAAE,YAAY;oBACnB,QAAQ;oBACR,eAAe;oBACf,aAAa;oBACb,MAAM,EAAE,OAAO;oBACf,SAAS,EAAE,KAAK;iBACjB,CAAC;gBACF,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC3C,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5D,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;YACnC,MAAM,aAAa,GAAG,uBAAuB,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAExE,MAAM,CAAC,SAAS,CAAC;gBACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;gBACxC,KAAK,EAAE,eAAe;gBACtB,SAAS,EAAE,KAAK;gBAChB,IAAI;gBACJ,QAAQ;gBACR,IAAI,EAAE,QAAQ;gBACd,UAAU;gBACV,UAAU;gBACV,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gBAC5C,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS;gBAClE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;gBACtD,UAAU;gBACV,aAAa;aACd,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YAEtC,MAAM,CAAC,SAAS,CAAC;gBACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,eAAe;gBACtB,SAAS,EAAE,KAAK;gBAChB,IAAI;gBACJ,QAAQ;gBACR,IAAI,EAAE,QAAQ;gBACd,UAAU;gBACV,UAAU;gBACV,MAAM,EAAE,OAAO;gBACf,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC;gBAC9B,YAAY,EAAE,OAAO;aACtB,CAAC,CAAC;YAEH,OAAO,WAAW,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,wEAAwE;AAExE,4DAA4D;AAE5D;;;;;sBAKsB"}
|
|
@@ -301,8 +301,8 @@ export declare const SAPWriteSchema: z.ZodObject<{
|
|
|
301
301
|
V4: "V4";
|
|
302
302
|
}>>;
|
|
303
303
|
category: z.ZodOptional<z.ZodEnum<{
|
|
304
|
-
0: "0";
|
|
305
304
|
1: "1";
|
|
305
|
+
0: "0";
|
|
306
306
|
}>>;
|
|
307
307
|
version: z.ZodOptional<z.ZodString>;
|
|
308
308
|
lintBeforeWrite: z.ZodOptional<z.ZodPreprocess<z.ZodBoolean>>;
|
|
@@ -404,8 +404,8 @@ export declare const SAPWriteSchema: z.ZodObject<{
|
|
|
404
404
|
V4: "V4";
|
|
405
405
|
}>>;
|
|
406
406
|
category: z.ZodOptional<z.ZodEnum<{
|
|
407
|
-
0: "0";
|
|
408
407
|
1: "1";
|
|
408
|
+
0: "0";
|
|
409
409
|
}>>;
|
|
410
410
|
version: z.ZodOptional<z.ZodString>;
|
|
411
411
|
parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
@@ -521,8 +521,8 @@ export declare const SAPWriteSchemaBtp: z.ZodObject<{
|
|
|
521
521
|
V4: "V4";
|
|
522
522
|
}>>;
|
|
523
523
|
category: z.ZodOptional<z.ZodEnum<{
|
|
524
|
-
0: "0";
|
|
525
524
|
1: "1";
|
|
525
|
+
0: "0";
|
|
526
526
|
}>>;
|
|
527
527
|
version: z.ZodOptional<z.ZodString>;
|
|
528
528
|
lintBeforeWrite: z.ZodOptional<z.ZodPreprocess<z.ZodBoolean>>;
|
|
@@ -620,8 +620,8 @@ export declare const SAPWriteSchemaBtp: z.ZodObject<{
|
|
|
620
620
|
V4: "V4";
|
|
621
621
|
}>>;
|
|
622
622
|
category: z.ZodOptional<z.ZodEnum<{
|
|
623
|
-
0: "0";
|
|
624
623
|
1: "1";
|
|
624
|
+
0: "0";
|
|
625
625
|
}>>;
|
|
626
626
|
version: z.ZodOptional<z.ZodString>;
|
|
627
627
|
parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { OperationTypeCode } from '../adt/safety.js';
|
|
2
|
+
import type { Scope } from '../authz/policy.js';
|
|
3
|
+
import type { ToolRegistry } from '../registry/tool-registry.js';
|
|
4
|
+
export interface ManifestTool {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
scope: Scope;
|
|
8
|
+
opType?: OperationTypeCode;
|
|
9
|
+
inputSchema: Record<string, unknown>;
|
|
10
|
+
request: {
|
|
11
|
+
method: 'GET';
|
|
12
|
+
path: string;
|
|
13
|
+
pathParams?: Record<string, string>;
|
|
14
|
+
query?: Record<string, string>;
|
|
15
|
+
accept?: string;
|
|
16
|
+
};
|
|
17
|
+
response?: {
|
|
18
|
+
maxBytes?: number;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/** Validate a manifest's shape + security invariants. Throws on any violation (fail-fast). */
|
|
22
|
+
export declare function validateManifest(obj: unknown): ManifestTool;
|
|
23
|
+
/** Build + register a registry entry from a manifest object. */
|
|
24
|
+
export declare function registerManifestTool(registry: ToolRegistry, pluginName: string, manifestObj: unknown): void;
|
|
25
|
+
//# sourceMappingURL=manifest-interpreter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-interpreter.d.ts","sourceRoot":"","sources":["../../src/plugins/manifest-interpreter.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAsC,YAAY,EAAc,MAAM,8BAA8B,CAAC;AAKjH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,EAAE;QACP,MAAM,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClC;AA8CD,8FAA8F;AAC9F,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAwB3D;AAED,gEAAgE;AAChE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,IAAI,CA8C3G"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
// Manifest interpreter — the declarative (JSON, no JavaScript) plugin tier. FEAT-61 PR4.
|
|
2
|
+
//
|
|
3
|
+
// A *.tool.json manifest declares a read-only tool whose handler is a single, fixed HTTP GET
|
|
4
|
+
// against the already-authenticated client (no host — paths only). The interpreter renders the
|
|
5
|
+
// request from validated args and runs it through the SAME gated SafeHttpClient as code plugins.
|
|
6
|
+
// v1 scope: GET only; POST/body + response extraction are a fast-follow.
|
|
7
|
+
// Security per docs/research/extension-framework-spec.md §8.1.
|
|
8
|
+
import { Ajv2020 } from 'ajv/dist/2020.js';
|
|
9
|
+
import { createSafeHttpClient } from '../server/safe-http-client.js';
|
|
10
|
+
const SCOPES = new Set(['read', 'write', 'data', 'sql', 'transports', 'git', 'admin']);
|
|
11
|
+
/** Resolve a `$.field` reference against the validated args (top-level fields only in v1). */
|
|
12
|
+
function resolveRef(ref, args) {
|
|
13
|
+
const m = /^\$\.([A-Za-z_]\w*)$/.exec(ref);
|
|
14
|
+
if (!m)
|
|
15
|
+
throw new Error(`manifest: unsupported reference '${ref}' (use "$.field")`);
|
|
16
|
+
return args[m[1]];
|
|
17
|
+
}
|
|
18
|
+
/** Validate + percent-encode a single path segment value (anti-traversal). */
|
|
19
|
+
function safeSegment(value, key) {
|
|
20
|
+
if (typeof value !== 'string' || value.length === 0) {
|
|
21
|
+
throw new Error(`manifest: path param '${key}' must be a non-empty string`);
|
|
22
|
+
}
|
|
23
|
+
// Reject traversal, control chars, and scheme/host smuggling. `/` IS allowed (SAP namespaced
|
|
24
|
+
// names) but is percent-encoded below, so it can't introduce extra path segments.
|
|
25
|
+
if (value.includes('..') || [...value].some((c) => c.charCodeAt(0) < 0x20) || value.includes('://')) {
|
|
26
|
+
throw new Error(`manifest: path param '${key}' contains a forbidden sequence`);
|
|
27
|
+
}
|
|
28
|
+
return encodeURIComponent(value);
|
|
29
|
+
}
|
|
30
|
+
function renderPath(template, pathParams, args) {
|
|
31
|
+
return template.replace(/\{([A-Za-z_]\w*)\}/g, (_full, key) => {
|
|
32
|
+
const ref = pathParams?.[key];
|
|
33
|
+
if (!ref)
|
|
34
|
+
throw new Error(`manifest: path placeholder '{${key}}' has no pathParams mapping`);
|
|
35
|
+
return safeSegment(resolveRef(ref, args), key);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
function renderQuery(query, args) {
|
|
39
|
+
if (!query)
|
|
40
|
+
return '';
|
|
41
|
+
const usp = new URLSearchParams();
|
|
42
|
+
for (const [k, ref] of Object.entries(query)) {
|
|
43
|
+
const v = resolveRef(ref, args);
|
|
44
|
+
if (v === undefined || v === null || v === '')
|
|
45
|
+
continue; // omit-if-absent
|
|
46
|
+
usp.set(k, String(v));
|
|
47
|
+
}
|
|
48
|
+
const s = usp.toString();
|
|
49
|
+
return s ? `?${s}` : '';
|
|
50
|
+
}
|
|
51
|
+
/** Validate a manifest's shape + security invariants. Throws on any violation (fail-fast). */
|
|
52
|
+
export function validateManifest(obj) {
|
|
53
|
+
const m = obj;
|
|
54
|
+
if (!m || typeof m.name !== 'string' || !m.name.startsWith('Custom_')) {
|
|
55
|
+
throw new Error(`manifest: 'name' must be a string starting with 'Custom_' (got '${m?.name}')`);
|
|
56
|
+
}
|
|
57
|
+
if (!m.description || typeof m.description !== 'string') {
|
|
58
|
+
throw new Error(`manifest '${m.name}': 'description' is required`);
|
|
59
|
+
}
|
|
60
|
+
if (!m.scope || !SCOPES.has(m.scope)) {
|
|
61
|
+
throw new Error(`manifest '${m.name}': 'scope' must be one of ${[...SCOPES].join('/')}`);
|
|
62
|
+
}
|
|
63
|
+
if (!m.inputSchema || typeof m.inputSchema !== 'object') {
|
|
64
|
+
throw new Error(`manifest '${m.name}': 'inputSchema' (JSON Schema) is required`);
|
|
65
|
+
}
|
|
66
|
+
if (m.inputSchema.additionalProperties !== false) {
|
|
67
|
+
throw new Error(`manifest '${m.name}': inputSchema must set "additionalProperties": false`);
|
|
68
|
+
}
|
|
69
|
+
if (m.request?.method !== 'GET') {
|
|
70
|
+
throw new Error(`manifest '${m.name}': only request.method "GET" is supported in v1`);
|
|
71
|
+
}
|
|
72
|
+
if (typeof m.request.path !== 'string' || !m.request.path.startsWith('/') || m.request.path.includes('://')) {
|
|
73
|
+
throw new Error(`manifest '${m.name}': request.path must be an absolute SAP path with no host`);
|
|
74
|
+
}
|
|
75
|
+
return m;
|
|
76
|
+
}
|
|
77
|
+
/** Build + register a registry entry from a manifest object. */
|
|
78
|
+
export function registerManifestTool(registry, pluginName, manifestObj) {
|
|
79
|
+
const m = validateManifest(manifestObj);
|
|
80
|
+
const ajv = new Ajv2020({ strict: false, allErrors: true });
|
|
81
|
+
const validate = ajv.compile(m.inputSchema);
|
|
82
|
+
const opType = m.opType ?? 'R'; // GET → Read
|
|
83
|
+
const entry = {
|
|
84
|
+
name: m.name,
|
|
85
|
+
source: 'plugin',
|
|
86
|
+
pluginName,
|
|
87
|
+
policy: { scope: m.scope, opType },
|
|
88
|
+
listing: { description: m.description, inputSchema: m.inputSchema },
|
|
89
|
+
invoke: async (ctx) => {
|
|
90
|
+
const args = ctx.args;
|
|
91
|
+
if (!validate(args)) {
|
|
92
|
+
return {
|
|
93
|
+
content: [{ type: 'text', text: `Invalid arguments for ${m.name}: ${ajv.errorsText(validate.errors)}` }],
|
|
94
|
+
isError: true,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
let path;
|
|
98
|
+
try {
|
|
99
|
+
// Anti-traversal / ref-resolution failures surface as an isError result (parity with the
|
|
100
|
+
// ajv branch above), not a thrown exception out of invoke.
|
|
101
|
+
path = renderPath(m.request.path, m.request.pathParams, args) + renderQuery(m.request.query, args);
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
return {
|
|
105
|
+
content: [
|
|
106
|
+
{
|
|
107
|
+
type: 'text',
|
|
108
|
+
text: `Invalid arguments for ${m.name}: ${err instanceof Error ? err.message : String(err)}`,
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
isError: true,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
const http = createSafeHttpClient(ctx.client.http, ctx.client.safety, m.name);
|
|
115
|
+
const headers = m.request.accept ? { Accept: m.request.accept } : undefined;
|
|
116
|
+
const res = await http.get(path, headers);
|
|
117
|
+
const max = m.response?.maxBytes ?? 100_000;
|
|
118
|
+
const body = res.body.length > max ? `${res.body.slice(0, max)}\n…[truncated ${res.body.length - max} bytes]` : res.body;
|
|
119
|
+
return { content: [{ type: 'text', text: body }] };
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
registry.register(entry);
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=manifest-interpreter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-interpreter.js","sourceRoot":"","sources":["../../src/plugins/manifest-interpreter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PluginToolDefinition } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Identity helper for authoring a plugin tool — returns the definition unchanged but validates
|
|
4
|
+
* its shape eagerly (at module load) so authors get a clear error instead of a late runtime
|
|
5
|
+
* failure or a silently-dropped tool. The registry enforces the same invariants at registration;
|
|
6
|
+
* this is the friendly first line of defence.
|
|
7
|
+
*/
|
|
8
|
+
export declare function defineTool(def: PluginToolDefinition): PluginToolDefinition;
|
|
9
|
+
//# sourceMappingURL=define-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-tool.d.ts","sourceRoot":"","sources":["../../src/public/define-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,oBAAoB,GAAG,oBAAoB,CAiB1E"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity helper for authoring a plugin tool — returns the definition unchanged but validates
|
|
3
|
+
* its shape eagerly (at module load) so authors get a clear error instead of a late runtime
|
|
4
|
+
* failure or a silently-dropped tool. The registry enforces the same invariants at registration;
|
|
5
|
+
* this is the friendly first line of defence.
|
|
6
|
+
*/
|
|
7
|
+
export function defineTool(def) {
|
|
8
|
+
if (!def || typeof def.name !== 'string' || !def.name.startsWith('Custom_')) {
|
|
9
|
+
throw new Error(`defineTool: tool name must start with 'Custom_' (got '${def?.name}')`);
|
|
10
|
+
}
|
|
11
|
+
if (!def.description) {
|
|
12
|
+
throw new Error(`defineTool: '${def.name}' needs a description`);
|
|
13
|
+
}
|
|
14
|
+
if (!def.schema) {
|
|
15
|
+
throw new Error(`defineTool: '${def.name}' needs a Zod 'schema'`);
|
|
16
|
+
}
|
|
17
|
+
if (!def.policy?.scope || !def.policy.opType) {
|
|
18
|
+
throw new Error(`defineTool: '${def.name}' needs policy.scope + policy.opType`);
|
|
19
|
+
}
|
|
20
|
+
if (typeof def.handler !== 'function') {
|
|
21
|
+
throw new Error(`defineTool: '${def.name}' needs a 'handler' function`);
|
|
22
|
+
}
|
|
23
|
+
return def;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=define-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-tool.js","sourceRoot":"","sources":["../../src/public/define-tool.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,GAAyB;IAClD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,yDAAyD,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,IAAI,uBAAuB,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,IAAI,wBAAwB,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,IAAI,sCAAsC,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,IAAI,8BAA8B,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { AdtApiError, AdtNetworkError, AdtSafetyError } from '../adt/errors.js';
|
|
2
|
+
export type { AdtResponse } from '../adt/http.js';
|
|
3
|
+
export { OperationType, type OperationTypeCode } from '../adt/safety.js';
|
|
4
|
+
export type { Scope } from '../authz/policy.js';
|
|
5
|
+
export type { ToolResult } from '../registry/tool-registry.js';
|
|
6
|
+
export type { SafeHttpClient } from '../server/safe-http-client.js';
|
|
7
|
+
export { defineTool } from './define-tool.js';
|
|
8
|
+
export type { ElicitOutcome, Plugin, PluginLogger, PluginToolDefinition, ReadOnlyAdtClient, ToolContext, } from './types.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/public/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACzE,YAAY,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,YAAY,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EACV,aAAa,EACb,MAAM,EACN,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,GACZ,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// `arc-1/public` — the @experimental extension API surface.
|
|
2
|
+
//
|
|
3
|
+
// Stability: this API may break in ANY release. A plugin declares `apiVersion` (a single integer
|
|
4
|
+
// fuse); the loader rejects a mismatch. No semver guarantee until the feature graduates.
|
|
5
|
+
// See docs/research/extension-framework-spec.md §2.
|
|
6
|
+
export { AdtApiError, AdtNetworkError, AdtSafetyError } from '../adt/errors.js';
|
|
7
|
+
// Re-exported building blocks (stable shapes plugins reference):
|
|
8
|
+
export { OperationType } from '../adt/safety.js';
|
|
9
|
+
export { defineTool } from './define-tool.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/public/index.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,EAAE;AACF,iGAAiG;AACjG,yFAAyF;AACzF,oDAAoD;AAEpD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGhF,iEAAiE;AACjE,OAAO,EAAE,aAAa,EAA0B,MAAM,kBAAkB,CAAC;AAIzE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ToolContext } from './types.js';
|
|
2
|
+
export interface MockHttpCall {
|
|
3
|
+
method: 'GET' | 'HEAD';
|
|
4
|
+
path: string;
|
|
5
|
+
}
|
|
6
|
+
export interface MockToolContext extends ToolContext {
|
|
7
|
+
/** Every `ctx.http` call the handler made, in order. */
|
|
8
|
+
httpCalls: MockHttpCall[];
|
|
9
|
+
/** Every class name passed to `ctx.run.classRun`, in order. */
|
|
10
|
+
classRunCalls: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface MockToolContextOptions {
|
|
13
|
+
/** Body returned by every `ctx.http` call (unless overridden per-path by `responses`). */
|
|
14
|
+
responseBody?: string;
|
|
15
|
+
/** Per-path response bodies; falls back to `responseBody` then ''. */
|
|
16
|
+
responses?: Record<string, string>;
|
|
17
|
+
/** Scopes on `ctx.authInfo` (default `['read']`). */
|
|
18
|
+
scopes?: string[];
|
|
19
|
+
requestId?: string;
|
|
20
|
+
/** Partial `ctx.client` for handlers that call high-level read methods. */
|
|
21
|
+
client?: Partial<ToolContext['client']>;
|
|
22
|
+
/** Console output returned by `ctx.run.classRun` (default ''). The mock never gates. */
|
|
23
|
+
classRunOutput?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function createMockToolContext(options?: MockToolContextOptions): MockToolContext;
|
|
26
|
+
//# sourceMappingURL=testing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/public/testing.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,wDAAwD;IACxD,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,+DAA+D;IAC/D,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxC,wFAAwF;IACxF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,sBAA2B,GAAG,eAAe,CAmC3F"}
|