@contextvm/sdk 0.11.12 → 0.11.14
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/esm/gateway/index.d.ts +9 -0
- package/dist/esm/gateway/index.d.ts.map +1 -1
- package/dist/esm/gateway/index.js +41 -1
- package/dist/esm/gateway/index.js.map +1 -1
- package/dist/esm/transport/nostr-client/relay-resolution.d.ts.map +1 -1
- package/dist/esm/transport/nostr-client/relay-resolution.js +9 -19
- package/dist/esm/transport/nostr-client/relay-resolution.js.map +1 -1
- package/package.json +1 -1
|
@@ -19,6 +19,14 @@ export interface NostrMCPGatewayOptions {
|
|
|
19
19
|
createMcpClientTransport?: (ctx: {
|
|
20
20
|
clientPubkey: ClientPubkey;
|
|
21
21
|
}) => Transport | Promise<Transport>;
|
|
22
|
+
/**
|
|
23
|
+
* Optional dedicated MCP transport for announcement introspection in per-client mode.
|
|
24
|
+
* When `createMcpClientTransport` is used (e.g., for HTTP targets), the gateway drops
|
|
25
|
+
* transport-internal announcement messages because they lack a client pubkey context.
|
|
26
|
+
* Providing an `announcementMcpTransport` allows the gateway to forward those
|
|
27
|
+
* messages to this dedicated transport instead, enabling public server announcements.
|
|
28
|
+
*/
|
|
29
|
+
announcementMcpTransport?: Transport;
|
|
22
30
|
/** Maximum number of per-client MCP transports to keep in memory. @default 1000 */
|
|
23
31
|
maxClientTransports?: number;
|
|
24
32
|
}
|
|
@@ -32,6 +40,7 @@ export declare class NostrMCPGateway {
|
|
|
32
40
|
private readonly mcpClientTransport;
|
|
33
41
|
private readonly nostrServerTransport;
|
|
34
42
|
private readonly createMcpClientTransport;
|
|
43
|
+
private readonly announcementMcpTransport;
|
|
35
44
|
private readonly clientTransports;
|
|
36
45
|
private readonly clientTransportPromises;
|
|
37
46
|
private readonly handleNostrErrorBound;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gateway/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAEL,2BAA2B,EAC5B,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gateway/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAEL,2BAA2B,EAC5B,MAAM,wCAAwC,CAAC;AAOhD,KAAK,YAAY,GAAG,MAAM,CAAC;AAoB3B;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,yDAAyD;IACzD,qBAAqB,EAAE,2BAA2B,CAAC;IAEnD;;;OAGG;IACH,wBAAwB,CAAC,EAAE,CAAC,GAAG,EAAE;QAC/B,YAAY,EAAE,YAAY,CAAC;KAC5B,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAErC;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,SAAS,CAAC;IAErC,mFAAmF;IACnF,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAC5D,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAE3B;IACd,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAwB;IACjE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IACnE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAE1B;IACd,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAyB;IAC/D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAa;IACnD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAyB;IAChE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAa;IACpD,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;gBACS,OAAO,EAAE,sBAAsB;IA0C3C;;OAEG;IACH,OAAO,CAAC,kBAAkB;YAuFZ,0BAA0B;IAsDxC;;;OAGG;YACW,oBAAoB;YA6BpB,yBAAyB;IA8BvC;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BnC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2ClC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;OAGG;IACI,QAAQ,IAAI,OAAO;CAG3B"}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import { isInitializeRequest, } from '@modelcontextprotocol/sdk/types.js';
|
|
2
2
|
import { NostrServerTransport, } from '../transport/nostr-server-transport.js';
|
|
3
|
+
import { NOTIFICATIONS_INITIALIZED_METHOD } from '../core/index.js';
|
|
3
4
|
import { createLogger } from '../core/utils/logger.js';
|
|
4
5
|
import { LruCache } from '../core/utils/lru-cache.js';
|
|
5
6
|
const logger = createLogger('gateway');
|
|
7
|
+
/**
|
|
8
|
+
* Determines whether a JSON-RPC message is part of the internal announcement
|
|
9
|
+
* flow. These messages must be forwarded to a dedicated announcement transport
|
|
10
|
+
* when operating in per-client mode.
|
|
11
|
+
*/
|
|
12
|
+
function isAnnouncementMessage(message) {
|
|
13
|
+
return (('id' in message && message.id === 'announcement') ||
|
|
14
|
+
('method' in message &&
|
|
15
|
+
message.method ===
|
|
16
|
+
NOTIFICATIONS_INITIALIZED_METHOD));
|
|
17
|
+
}
|
|
6
18
|
/**
|
|
7
19
|
* The main gateway class that orchestrates communication between Nostr clients
|
|
8
20
|
* and a local MCP server. Acts as a bridge, receiving MCP requests via Nostr
|
|
@@ -18,6 +30,7 @@ export class NostrMCPGateway {
|
|
|
18
30
|
this.isRunning = false;
|
|
19
31
|
this.mcpClientTransport = options.mcpClientTransport;
|
|
20
32
|
this.createMcpClientTransport = options.createMcpClientTransport;
|
|
33
|
+
this.announcementMcpTransport = options.announcementMcpTransport;
|
|
21
34
|
if (!this.mcpClientTransport && !this.createMcpClientTransport) {
|
|
22
35
|
throw new Error('NostrMCPGateway requires either mcpClientTransport (single-client mode) or createMcpClientTransport (per-client mode)');
|
|
23
36
|
}
|
|
@@ -52,7 +65,15 @@ export class NostrMCPGateway {
|
|
|
52
65
|
this.nostrServerTransport.onmessage = (message) => {
|
|
53
66
|
if (this.createMcpClientTransport) {
|
|
54
67
|
// In per-client mode, we only forward messages that have pubkey context.
|
|
55
|
-
// Internal transport messages (e.g., announcement traffic) should not be
|
|
68
|
+
// Internal transport messages (e.g., announcement traffic) should not be
|
|
69
|
+
// sent to a per-client MCP server. However, if a dedicated announcement
|
|
70
|
+
// transport is provided, forward announcement messages there.
|
|
71
|
+
if (this.announcementMcpTransport && isAnnouncementMessage(message)) {
|
|
72
|
+
logger.debug('Forwarding announcement message to dedicated transport:', message);
|
|
73
|
+
this.announcementMcpTransport
|
|
74
|
+
.send(message)
|
|
75
|
+
.catch(this.handleServerErrorBound);
|
|
76
|
+
}
|
|
56
77
|
return;
|
|
57
78
|
}
|
|
58
79
|
if (!this.mcpClientTransport) {
|
|
@@ -92,6 +113,19 @@ export class NostrMCPGateway {
|
|
|
92
113
|
this.mcpClientTransport.onerror = this.handleServerErrorBound;
|
|
93
114
|
this.mcpClientTransport.onclose = this.handleServerCloseBound;
|
|
94
115
|
}
|
|
116
|
+
// Forward announcement transport responses back to the Nostr transport.
|
|
117
|
+
if (this.announcementMcpTransport) {
|
|
118
|
+
this.announcementMcpTransport.onmessage = (message) => {
|
|
119
|
+
logger.debug('Received message from MCP server (announcement):', {
|
|
120
|
+
message,
|
|
121
|
+
});
|
|
122
|
+
this.nostrServerTransport
|
|
123
|
+
.send(message)
|
|
124
|
+
.catch(this.handleNostrErrorBound);
|
|
125
|
+
};
|
|
126
|
+
this.announcementMcpTransport.onerror = this.handleServerErrorBound;
|
|
127
|
+
this.announcementMcpTransport.onclose = this.handleServerCloseBound;
|
|
128
|
+
}
|
|
95
129
|
}
|
|
96
130
|
async getOrCreateClientTransport(clientPubkey) {
|
|
97
131
|
var _a, _b, _c;
|
|
@@ -199,6 +233,9 @@ export class NostrMCPGateway {
|
|
|
199
233
|
}
|
|
200
234
|
try {
|
|
201
235
|
// Start both transports
|
|
236
|
+
if (this.announcementMcpTransport) {
|
|
237
|
+
await this.announcementMcpTransport.start();
|
|
238
|
+
}
|
|
202
239
|
if (!this.createMcpClientTransport) {
|
|
203
240
|
if (!this.mcpClientTransport) {
|
|
204
241
|
throw new Error('mcpClientTransport is required when not using per-client mode');
|
|
@@ -241,6 +278,9 @@ export class NostrMCPGateway {
|
|
|
241
278
|
}
|
|
242
279
|
await this.mcpClientTransport.close();
|
|
243
280
|
}
|
|
281
|
+
if (this.announcementMcpTransport) {
|
|
282
|
+
await this.announcementMcpTransport.close();
|
|
283
|
+
}
|
|
244
284
|
this.isRunning = false;
|
|
245
285
|
logger.info('NostrMCPGateway stopped successfully');
|
|
246
286
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/gateway/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAEpB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,oBAAoB,GAErB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/gateway/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-resolution.d.ts","sourceRoot":"","sources":["../../../../src/transport/nostr-client/relay-resolution.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAQzD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,4BAA4B,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"relay-resolution.d.ts","sourceRoot":"","sources":["../../../../src/transport/nostr-client/relay-resolution.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAQzD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,4BAA4B,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CA8Df"}
|
|
@@ -28,30 +28,20 @@ export async function resolveOperationalRelays(config, deps) {
|
|
|
28
28
|
const discoveryPromise = fetchServerRelayList({
|
|
29
29
|
serverPubkey: config.serverPubkey,
|
|
30
30
|
relayUrls: [...config.discoveryRelayUrls],
|
|
31
|
-
})
|
|
31
|
+
})
|
|
32
|
+
.then((relayListEntries) => selectOperationalRelayUrls(relayListEntries))
|
|
33
|
+
.catch(() => []);
|
|
34
|
+
// Start fallback probing in parallel so it is ready if discovery returns empty.
|
|
32
35
|
const fallbackConnectionPromise = connectFallbackOperationalRelays(config.fallbackOperationalRelayUrls);
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
fallbackConnectionPromise,
|
|
36
|
-
]);
|
|
37
|
-
if (firstConnectedRelayUrls.length > 0) {
|
|
38
|
-
deps.logger.info('Resolved operational relays', {
|
|
39
|
-
relayCount: firstConnectedRelayUrls.length,
|
|
40
|
-
});
|
|
41
|
-
deps.setRelayHandler(firstConnectedRelayUrls);
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
const [discoveryRelayUrls, fallbackRelayUrls] = await Promise.all([
|
|
45
|
-
discoveryPromise,
|
|
46
|
-
fallbackConnectionPromise,
|
|
47
|
-
]);
|
|
48
|
-
if (discoveryRelayUrls.length > 0) {
|
|
36
|
+
const discoveredRelayUrls = await discoveryPromise;
|
|
37
|
+
if (discoveredRelayUrls.length > 0) {
|
|
49
38
|
deps.logger.info('Resolved operational relays from server relay list', {
|
|
50
|
-
relayCount:
|
|
39
|
+
relayCount: discoveredRelayUrls.length,
|
|
51
40
|
});
|
|
52
|
-
deps.setRelayHandler(
|
|
41
|
+
deps.setRelayHandler(discoveredRelayUrls);
|
|
53
42
|
return;
|
|
54
43
|
}
|
|
44
|
+
const fallbackRelayUrls = await fallbackConnectionPromise;
|
|
55
45
|
if (fallbackRelayUrls.length > 0) {
|
|
56
46
|
deps.logger.info('Using configured fallback operational relays', {
|
|
57
47
|
relayCount: fallbackRelayUrls.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-resolution.js","sourceRoot":"","sources":["../../../../src/transport/nostr-client/relay-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AAqBrC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAA6B,EAC7B,IAAyB;IAEzB,IAAI,MAAM,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE;YACzD,UAAU,EAAE,MAAM,CAAC,eAAe,CAAC,MAAM;SAC1C,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,IAAI,MAAM,CAAC,4BAA4B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE;gBAC/D,UAAU,EAAE,MAAM,CAAC,4BAA4B,CAAC,MAAM;aACvD,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;QAC5C,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,kBAAkB,CAAC;KAC1C,CAAC,
|
|
1
|
+
{"version":3,"file":"relay-resolution.js","sourceRoot":"","sources":["../../../../src/transport/nostr-client/relay-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AAqBrC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAA6B,EAC7B,IAAyB;IAEzB,IAAI,MAAM,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE;YACzD,UAAU,EAAE,MAAM,CAAC,eAAe,CAAC,MAAM;SAC1C,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,IAAI,MAAM,CAAC,4BAA4B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE;gBAC/D,UAAU,EAAE,MAAM,CAAC,4BAA4B,CAAC,MAAM;aACvD,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;QAC5C,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,kBAAkB,CAAC;KAC1C,CAAC;SACC,IAAI,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;SACxE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAEnB,gFAAgF;IAChF,MAAM,yBAAyB,GAAG,gCAAgC,CAChE,MAAM,CAAC,4BAA4B,CACpC,CAAC;IAEF,MAAM,mBAAmB,GAAG,MAAM,gBAAgB,CAAC;IAEnD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,EAAE;YACrE,UAAU,EAAE,mBAAmB,CAAC,MAAM;SACvC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,yBAAyB,CAAC;IAE1D,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE;YAC/D,UAAU,EAAE,iBAAiB,CAAC,MAAM;SACrC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,oFAAoF,EACpF;QACE,UAAU,EAAE,MAAM,CAAC,kBAAkB,CAAC,MAAM;KAC7C,CACF,CAAC;IACF,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,gCAAgC,CAC7C,4BAA+C;IAE/C,IAAI,4BAA4B,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,CAAC,GAAG,4BAA4B,CAAC,CAAC,CAAC;IAE7E,IAAI,CAAC;QACH,MAAM,WAAW,CACf,SAAS,CAAC,OAAO,EAAE,EACnB,kBAAkB,EAClB,8CAA8C,CAC/C,CAAC;QACF,OAAO,CAAC,GAAG,4BAA4B,CAAC,CAAC;IAC3C,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;AACH,CAAC"}
|