agent-comms 6.0.0 → 7.0.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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +4 -2
- package/dist/bridges/user/controller.d.ts +1 -1
- package/dist/bridges/user/controller.d.ts.map +1 -1
- package/dist/bridges/user/controller.js +1 -1
- package/dist/bridges/user/controller.js.map +1 -1
- package/dist/core/bridge-mesh.d.ts +1 -1
- package/dist/core/bridge-mesh.d.ts.map +1 -1
- package/dist/core/bridge-mesh.js +2 -1
- package/dist/core/bridge-mesh.js.map +1 -1
- package/dist/core/gateway-trust.d.ts +5 -5
- package/dist/core/gateway-trust.d.ts.map +1 -1
- package/dist/core/gateway-trust.js +5 -5
- package/dist/core/gateway-trust.js.map +1 -1
- package/dist/core/gossip-directory.d.ts +1 -1
- package/dist/core/gossip-directory.d.ts.map +1 -1
- package/dist/core/gossip-directory.js +4 -2
- package/dist/core/gossip-directory.js.map +1 -1
- package/dist/core/hub-forwarding.d.ts +4 -18
- package/dist/core/hub-forwarding.d.ts.map +1 -1
- package/dist/core/hub-forwarding.js +2 -41
- package/dist/core/hub-forwarding.js.map +1 -1
- package/dist/core/hub-link.d.ts +58 -0
- package/dist/core/hub-link.d.ts.map +1 -0
- package/dist/core/hub-link.js +118 -0
- package/dist/core/hub-link.js.map +1 -0
- package/dist/core/hub-session.d.ts +14 -15
- package/dist/core/hub-session.d.ts.map +1 -1
- package/dist/core/hub-session.js +30 -51
- package/dist/core/hub-session.js.map +1 -1
- package/dist/core/mesh-graph.d.ts +1 -1
- package/dist/core/mesh-graph.js +1 -1
- package/dist/core/mesh-store.d.ts +10 -5
- package/dist/core/mesh-store.d.ts.map +1 -1
- package/dist/core/mesh-store.js +33 -22
- package/dist/core/mesh-store.js.map +1 -1
- package/dist/core/peer-lifecycle.d.ts +2 -5
- package/dist/core/peer-lifecycle.d.ts.map +1 -1
- package/dist/core/peer-lifecycle.js +0 -1
- package/dist/core/peer-lifecycle.js.map +1 -1
- package/dist/core/room-router.d.ts +2 -2
- package/dist/core/room-router.d.ts.map +1 -1
- package/dist/core/room-router.js +2 -32
- package/dist/core/room-router.js.map +1 -1
- package/dist/core/shutdown-signals.d.ts +1 -1
- package/dist/core/shutdown-signals.js +1 -1
- package/dist/core/transport.d.ts +7 -7
- package/dist/core/transport.d.ts.map +1 -1
- package/dist/core/wire-mesh-transport.d.ts +7 -3
- package/dist/core/wire-mesh-transport.d.ts.map +1 -1
- package/dist/core/wire-mesh-transport.js +39 -22
- package/dist/core/wire-mesh-transport.js.map +1 -1
- package/dist/test/bridge-mesh.integration.test.js +15 -1
- package/dist/test/bridge-mesh.integration.test.js.map +1 -1
- package/dist/test/chat-controller-mesh-errors.integration.test.js +7 -1
- package/dist/test/chat-controller-mesh-errors.integration.test.js.map +1 -1
- package/dist/test/coordinator-failover-hub.integration.test.d.ts +5 -0
- package/dist/test/coordinator-failover-hub.integration.test.d.ts.map +1 -0
- package/dist/test/coordinator-failover-hub.integration.test.js +78 -0
- package/dist/test/coordinator-failover-hub.integration.test.js.map +1 -0
- package/dist/test/coordinator-failover.integration.test.js +3 -6
- package/dist/test/coordinator-failover.integration.test.js.map +1 -1
- package/dist/test/coordinator-failover.unit.test.js +0 -7
- package/dist/test/coordinator-failover.unit.test.js.map +1 -1
- package/dist/test/gateway-trust.integration.test.d.ts +1 -1
- package/dist/test/gateway-trust.integration.test.js +26 -2
- package/dist/test/gateway-trust.integration.test.js.map +1 -1
- package/dist/test/gateway-trust.unit.test.js +1 -1
- package/dist/test/hub-exposure.integration.test.d.ts +5 -0
- package/dist/test/hub-exposure.integration.test.d.ts.map +1 -0
- package/dist/test/hub-exposure.integration.test.js +121 -0
- package/dist/test/hub-exposure.integration.test.js.map +1 -0
- package/dist/test/hub-helpers.d.ts +18 -3
- package/dist/test/hub-helpers.d.ts.map +1 -1
- package/dist/test/hub-helpers.js +24 -3
- package/dist/test/hub-helpers.js.map +1 -1
- package/dist/test/hub-link.unit.test.d.ts +2 -0
- package/dist/test/hub-link.unit.test.d.ts.map +1 -0
- package/dist/test/hub-link.unit.test.js +210 -0
- package/dist/test/hub-link.unit.test.js.map +1 -0
- package/dist/test/hub-peer-per-store.integration.test.d.ts +9 -0
- package/dist/test/hub-peer-per-store.integration.test.d.ts.map +1 -0
- package/dist/test/hub-peer-per-store.integration.test.js +211 -0
- package/dist/test/hub-peer-per-store.integration.test.js.map +1 -0
- package/dist/test/hub-room-domain-verb-trust-bypass.integration.test.js +2 -2
- package/dist/test/hub-room-domain-verb-trust-bypass.integration.test.js.map +1 -1
- package/dist/test/hub-session-close.integration.test.js +1 -1
- package/dist/test/hub-session-close.integration.test.js.map +1 -1
- package/dist/test/hub-session-dispatch.unit.test.js +1 -66
- package/dist/test/hub-session-dispatch.unit.test.js.map +1 -1
- package/dist/test/mesh-graph-trace.integration.test.js +2 -2
- package/dist/test/mesh-graph-trace.integration.test.js.map +1 -1
- package/dist/test/mesh-smoke.runner.js +1 -3
- package/dist/test/mesh-smoke.runner.js.map +1 -1
- package/dist/test/mesh-store-orchestration.unit.test.js +11 -41
- package/dist/test/mesh-store-orchestration.unit.test.js.map +1 -1
- package/dist/test/peer-lifecycle.unit.test.js +0 -8
- package/dist/test/peer-lifecycle.unit.test.js.map +1 -1
- package/dist/test/principal-membership-trust.integration.test.js +8 -1
- package/dist/test/principal-membership-trust.integration.test.js.map +1 -1
- package/dist/test/room-join-by-bare-name.integration.test.js +1 -1
- package/dist/test/room-join-by-bare-name.integration.test.js.map +1 -1
- package/dist/test/test-transport.d.ts +1 -1
- package/dist/test/test-transport.d.ts.map +1 -1
- package/dist/test/test-transport.js +1 -1
- package/dist/test/test-transport.js.map +1 -1
- package/dist/test/wire-mesh-transport-hub.integration.test.d.ts +1 -1
- package/dist/test/wire-mesh-transport-hub.integration.test.js +96 -9
- package/dist/test/wire-mesh-transport-hub.integration.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/core/coordinator-gateway.d.ts +0 -25
- package/dist/core/coordinator-gateway.d.ts.map +0 -1
- package/dist/core/coordinator-gateway.js +0 -34
- package/dist/core/coordinator-gateway.js.map +0 -1
- package/dist/test/coordinator-gateway.unit.test.d.ts +0 -2
- package/dist/test/coordinator-gateway.unit.test.d.ts.map +0 -1
- package/dist/test/coordinator-gateway.unit.test.js +0 -88
- package/dist/test/coordinator-gateway.unit.test.js.map +0 -1
- package/dist/test/gateway-forwarding.integration.test.d.ts +0 -9
- package/dist/test/gateway-forwarding.integration.test.d.ts.map +0 -1
- package/dist/test/gateway-forwarding.integration.test.js +0 -226
- package/dist/test/gateway-forwarding.integration.test.js.map +0 -1
- package/dist/test/hub-forwarding.unit.test.d.ts +0 -2
- package/dist/test/hub-forwarding.unit.test.d.ts.map +0 -1
- package/dist/test/hub-forwarding.unit.test.js +0 -102
- package/dist/test/hub-forwarding.unit.test.js.map +0 -1
- package/dist/test/hub-todevice-routing.integration.test.d.ts +0 -7
- package/dist/test/hub-todevice-routing.integration.test.d.ts.map +0 -1
- package/dist/test/hub-todevice-routing.integration.test.js +0 -121
- package/dist/test/hub-todevice-routing.integration.test.js.map +0 -1
package/dist/core/mesh-store.js
CHANGED
|
@@ -16,8 +16,7 @@ import { CommsError } from "./store.js";
|
|
|
16
16
|
import { DiscoveryManager } from "./discovery.js";
|
|
17
17
|
import { MdnsDiscoveryBackend } from "./discovery-mdns.js";
|
|
18
18
|
import { TailscaleDiscoveryBackend } from "./discovery-tailscale.js";
|
|
19
|
-
import { COORDINATOR_HOST
|
|
20
|
-
import { CoordinatorGateway } from "./coordinator-gateway.js";
|
|
19
|
+
import { COORDINATOR_HOST } from "./mesh-store-shared.js";
|
|
21
20
|
import { GatewayTrust } from "./gateway-trust.js";
|
|
22
21
|
import { ConnectionCodeLedger, } from "./connection-code.js";
|
|
23
22
|
import { DeliveryEngine } from "./delivery-engine.js";
|
|
@@ -72,7 +71,7 @@ export class MeshStore {
|
|
|
72
71
|
discovery;
|
|
73
72
|
/** The cross-machine trust boundary (agent-comms#156), constructed once in the constructor below (mirroring discovery above) and shared with WireMeshTransport by every construction site (bridge-mesh.ts, test-transport.ts) that passes it into WireMeshTransport's own constructor, so store.addTrustedGateway() and the transport's own hub-forwarding/hub-session gates read the exact same set. Persists across restarts (agent-comms#186) when a slot is passed to this store's own constructor; stays in-memory only, exactly as before, for every construction site that omits one. Public so those construction sites can reach it; addTrustedGateway/removeTrustedGateway/listTrustedGateways below are the methods CommsTool actually calls through MeshOnlyFeatures. */
|
|
74
73
|
gatewayTrust;
|
|
75
|
-
/** The connection-code generate/redeem pair (agent-comms#188) bootstrapping gatewayTrust above between two devices with no existing mesh connection. Persists across restarts
|
|
74
|
+
/** The connection-code generate/redeem pair (agent-comms#188) bootstrapping gatewayTrust above between two devices with no existing mesh connection. Persists across restarts per slot, from the slot passed to this store's own constructor, whereas gatewayTrust is shared by every slot in the slot's identity directory. generateConnectionCode/redeemConnectionCode below are the methods CommsTool actually calls through MeshOnlyFeatures; redeemConnectionCode is also where a successful redemption's deviceId gets fed into gatewayTrust.add, the actual point of this whole bootstrap. */
|
|
76
75
|
connectionCodes;
|
|
77
76
|
deliveryEngine;
|
|
78
77
|
roomProtocol;
|
|
@@ -82,7 +81,6 @@ export class MeshStore {
|
|
|
82
81
|
connectionApproval;
|
|
83
82
|
capabilityAskAdmission;
|
|
84
83
|
staleAgentChecker;
|
|
85
|
-
coordinatorGateway;
|
|
86
84
|
peerLifecycle;
|
|
87
85
|
/** This store's own current AgentStatus, synchronously -- the value WireMeshTransport's presence re-advertisement timer reads on every tick. undefined before registerAgent has ever run (no self agent record exists yet), in which case there is nothing yet to advertise. */
|
|
88
86
|
get selfStatus() {
|
|
@@ -121,6 +119,19 @@ export class MeshStore {
|
|
|
121
119
|
...this.membership.advertField(),
|
|
122
120
|
};
|
|
123
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Whether this store should hold a hub session right now. It has something to say to another machine only when it has an agent that is not a ghost and its machine trusts at least one remote device or principal. Until then, holding a session would put its device id on a public hub for nobody's benefit, and a ghost agent is by definition not reachable from anywhere. A hidden agent does hold one, and advertises only the device advert every session opens with, which is what lets it be reached by device id.
|
|
124
|
+
*/
|
|
125
|
+
wantsHubSession() {
|
|
126
|
+
const self = this.agents.get(this.peerId);
|
|
127
|
+
return (self !== undefined &&
|
|
128
|
+
self.visibility !== "ghost" &&
|
|
129
|
+
this.gatewayTrust.hasAny());
|
|
130
|
+
}
|
|
131
|
+
/** Has the hub session re-evaluate wantsHubSession now, after a change to the agent or to the trust that it reads. Changes made by another process reach it within the link's poll interval instead. */
|
|
132
|
+
reconsiderHub() {
|
|
133
|
+
this.requireTransport().reconsiderHub?.();
|
|
134
|
+
}
|
|
124
135
|
/** Whether the mesh has a live coordinator connection. */
|
|
125
136
|
get connected() {
|
|
126
137
|
return (this.requireTransport().isCoordinator ||
|
|
@@ -134,7 +145,7 @@ export class MeshStore {
|
|
|
134
145
|
*/
|
|
135
146
|
onError;
|
|
136
147
|
/**
|
|
137
|
-
* Fires whenever this store's own coordinator role changes: true right after becoming coordinator (a fresh bind in init(), or a takeover via PeerLifecycle.handleBecomeCoordinator), false right before shutdown() drops it. There is no live "lost the role to someone else while still running" case today
|
|
148
|
+
* Fires whenever this store's own coordinator role changes: true right after becoming coordinator (a fresh bind in init(), or a takeover via PeerLifecycle.handleBecomeCoordinator), false right before shutdown() drops it. There is no live "lost the role to someone else while still running" case today: the role is only ever given up in shutdown(), so this callback mirrors that lifecycle. Left undefined by default (matching onDelivery/onPatch/onError): a caller that wants to react to owning the coordinator role -- e.g. bridge-mesh.ts starting/stopping the cc-peer front (agent-comms#157), a Node/filesystem-specific capability that has no place in this transport-agnostic core -- sets it, exactly like those three.
|
|
138
149
|
*/
|
|
139
150
|
onCoordinatorRoleChanged;
|
|
140
151
|
/** This process's own currently-running cc-peer package version, when it is actually fronting a cc-peer session or running the one-shot `bridge cc-peer` command (agent-comms#198) -- undefined by default (matching onDelivery/onPatch/onError/onCoordinatorRoleChanged), since every other bridge never loads the cc-peer package at all. Set once, right after construction, by front-runtime.ts/bridges/cc-peer/run.ts (a plain closure over cc-peer's own exported CC_PEER_VERSION constant) -- read by both this store's own WireMeshTransport construction (bridge-mesh.ts, for the gossiped versions advert) and CommsTool (for whoami/update/list_agents' own self-report), so the one field backs both surfaces. */
|
|
@@ -150,7 +161,7 @@ export class MeshStore {
|
|
|
150
161
|
};
|
|
151
162
|
}
|
|
152
163
|
constructor(options) {
|
|
153
|
-
const { coordinatorPort = DEFAULT_COORDINATOR_PORT, hubUrl
|
|
164
|
+
const { coordinatorPort = DEFAULT_COORDINATOR_PORT, hubUrl, roomJoinApprovalTimeoutMs = ROOM_JOIN_APPROVAL_TIMEOUT_MS, slot, } = options ?? {};
|
|
154
165
|
this.peerId = nanoid(PEER_ID_LENGTH);
|
|
155
166
|
this.startedAt = new Date().toISOString();
|
|
156
167
|
this.coordinatorPort = coordinatorPort;
|
|
@@ -249,16 +260,6 @@ export class MeshStore {
|
|
|
249
260
|
notifyRoomsOfStatus: async (agentId, status) => this.deliveryEngine.notifyRoomsOfStatus(agentId, status),
|
|
250
261
|
broadcastPatch: async (patch) => this.deliveryEngine.broadcastPatch(patch),
|
|
251
262
|
});
|
|
252
|
-
this.coordinatorGateway = new CoordinatorGateway({
|
|
253
|
-
hubUrl: this.hubUrl,
|
|
254
|
-
connectHub: async (url) => {
|
|
255
|
-
await this.requireTransport().connectHub?.(url);
|
|
256
|
-
},
|
|
257
|
-
disconnectHub: async () => {
|
|
258
|
-
await this.requireTransport().disconnectHub?.();
|
|
259
|
-
},
|
|
260
|
-
onError: this.reportError,
|
|
261
|
-
});
|
|
262
263
|
this.peerLifecycle = new PeerLifecycle({
|
|
263
264
|
peerInfo: this.peerInfo,
|
|
264
265
|
agents: this.agents,
|
|
@@ -270,7 +271,6 @@ export class MeshStore {
|
|
|
270
271
|
roomProtocol: this.roomProtocol,
|
|
271
272
|
deliveryEngine: this.deliveryEngine,
|
|
272
273
|
staleAgentChecker: this.staleAgentChecker,
|
|
273
|
-
coordinatorGateway: this.coordinatorGateway,
|
|
274
274
|
onCoordinatorRoleChanged: async () => this.onCoordinatorRoleChanged?.(true),
|
|
275
275
|
onError: this.reportError,
|
|
276
276
|
});
|
|
@@ -310,6 +310,9 @@ export class MeshStore {
|
|
|
310
310
|
return;
|
|
311
311
|
this.initialised = true;
|
|
312
312
|
await this.requireTransport().startDataServer();
|
|
313
|
+
if (this.hubUrl !== undefined) {
|
|
314
|
+
this.requireTransport().joinHub?.(this.hubUrl, () => this.wantsHubSession());
|
|
315
|
+
}
|
|
313
316
|
// Register our own peer info
|
|
314
317
|
this.peerInfo.set(this.peerId, {
|
|
315
318
|
id: this.peerId,
|
|
@@ -327,7 +330,7 @@ export class MeshStore {
|
|
|
327
330
|
catch {
|
|
328
331
|
let eaddrinuseMessage;
|
|
329
332
|
try {
|
|
330
|
-
// The same takeover PeerLifecycle runs for a handover or a crash race: bind, adopt the peer list (only this store's own entry exists yet), start stale-agent probing,
|
|
333
|
+
// The same takeover PeerLifecycle runs for a handover or a crash race: bind, adopt the peer list (only this store's own entry exists yet), start stale-agent probing, and start whatever the coordinator role owns.
|
|
331
334
|
await this.peerLifecycle.handleBecomeCoordinator([]);
|
|
332
335
|
connected = true;
|
|
333
336
|
}
|
|
@@ -381,13 +384,17 @@ export class MeshStore {
|
|
|
381
384
|
// CommsStore — Agent registry
|
|
382
385
|
// -----------------------------------------------------------------------
|
|
383
386
|
async registerAgent(opts) {
|
|
384
|
-
|
|
387
|
+
const agent = await this.agentRegistry.registerAgent(opts);
|
|
388
|
+
this.reconsiderHub();
|
|
389
|
+
return agent;
|
|
385
390
|
}
|
|
386
391
|
async getAgent(id) {
|
|
387
392
|
return this.agentRegistry.getAgent(id);
|
|
388
393
|
}
|
|
389
394
|
async updateAgent(id, patch) {
|
|
390
|
-
|
|
395
|
+
const agent = await this.agentRegistry.updateAgent(id, patch);
|
|
396
|
+
this.reconsiderHub();
|
|
397
|
+
return agent;
|
|
391
398
|
}
|
|
392
399
|
async listAgents(requesterId) {
|
|
393
400
|
return this.agentRegistry.listAgents(requesterId);
|
|
@@ -563,14 +570,16 @@ export class MeshStore {
|
|
|
563
570
|
// -----------------------------------------------------------------------
|
|
564
571
|
// Gateway trust (agent-comms#156) -- the cross-machine trust boundary
|
|
565
572
|
// -----------------------------------------------------------------------
|
|
566
|
-
/** Trusts a remote device-id (hex): this store
|
|
573
|
+
/** Trusts a remote device-id (hex): this store will advertise itself on the hub, merge this device's gossiped directory entries, dispatch its relayed requests, and route outbound hub requests to it. The trust is shared by every store on the machine and survives a restart. See GatewayTrust's own class doc for why it is keyed per device-id rather than per remote machine. Trusting a device is itself a route to it appearing, so anything queued for it is retried immediately rather than waiting out the hub's next gossip tick. */
|
|
567
574
|
addTrustedGateway(deviceHex) {
|
|
568
575
|
this.gatewayTrust.add(deviceHex);
|
|
576
|
+
this.reconsiderHub();
|
|
569
577
|
void this.roomProtocol.flushPendingRoomRequests(deviceHex);
|
|
570
578
|
}
|
|
571
579
|
/** Withdraws trust from a remote device-id (hex). A no-op if it was never trusted. */
|
|
572
580
|
removeTrustedGateway(deviceHex) {
|
|
573
581
|
this.gatewayTrust.remove(deviceHex);
|
|
582
|
+
this.reconsiderHub();
|
|
574
583
|
}
|
|
575
584
|
/** Every currently trusted remote device-id (hex). */
|
|
576
585
|
listTrustedGateways() {
|
|
@@ -579,10 +588,12 @@ export class MeshStore {
|
|
|
579
588
|
/** Trusts a remote user-principal device-id (hex, agent-comms#187): a peer presenting a token whose delegation chain roots at this principal is trusted via GatewayTrust.isTrustedFor, without its own bare device-id ever needing individual trust. Entirely independent of the bare-device allowlist addTrustedGateway manages. */
|
|
580
589
|
addTrustedGatewayPrincipal(deviceHex) {
|
|
581
590
|
this.gatewayTrust.addPrincipal(deviceHex);
|
|
591
|
+
this.reconsiderHub();
|
|
582
592
|
}
|
|
583
593
|
/** Withdraws trust from a remote user-principal device-id (hex). A no-op if it was never trusted. */
|
|
584
594
|
removeTrustedGatewayPrincipal(deviceHex) {
|
|
585
595
|
this.gatewayTrust.removePrincipal(deviceHex);
|
|
596
|
+
this.reconsiderHub();
|
|
586
597
|
}
|
|
587
598
|
/** Every currently trusted remote user-principal device-id (hex). */
|
|
588
599
|
listTrustedGatewayPrincipals() {
|
|
@@ -599,6 +610,7 @@ export class MeshStore {
|
|
|
599
610
|
async redeemConnectionCode(candidate, options = {}) {
|
|
600
611
|
const result = await this.connectionCodes.redeem(candidate, options);
|
|
601
612
|
this.gatewayTrust.add(result.deviceId);
|
|
613
|
+
this.reconsiderHub();
|
|
602
614
|
return result;
|
|
603
615
|
}
|
|
604
616
|
// -----------------------------------------------------------------------
|
|
@@ -712,7 +724,6 @@ export class MeshStore {
|
|
|
712
724
|
});
|
|
713
725
|
}
|
|
714
726
|
this.staleAgentChecker.stop();
|
|
715
|
-
await this.coordinatorGateway.onLostCoordinator();
|
|
716
727
|
// Graceful coordinator handover (agent-comms#170) -- a no-op unless this side currently holds the coordinator role, so this runs unconditionally rather than being gated behind an isCoordinator check duplicated here. Must run before the transport shuts down: the handoff message rides the very peer sessions shutdown() is about to close.
|
|
717
728
|
await this.peerLifecycle.sendCoordinatorHandover();
|
|
718
729
|
await this.onCoordinatorRoleChanged?.(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-store.js","sourceRoot":"","sources":["../../src/core/mesh-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,oBAAoB,GAIrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAM7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EACL,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAc5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAuB9D,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,wBAAwB,GAAG,KAAK,CAAC;AACvC,gDAAgD;AAChD,MAAM,cAAc,GAAG,CAAC,CAAC;AAkBzB,MAAM,OAAO,SAAS;IACpB,MAAM,CAAS;IACN,SAAS,CAAS;IAClB,eAAe,CAAS;IAChB,MAAM,CAAS;IAChC,mHAAmH;IAC1G,yBAAyB,CAAS;IAC3C,gQAAgQ;IAC/O,WAAW,GAAG,CAAC,KAAc,EAAQ,EAAE;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC;IAEF,oGAAoG;IAC3F,UAAU,GAAG,IAAI,gBAAgB,CAAC;QACzC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE;QACzC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;QAC5B,OAAO,EAAE,IAAI,CAAC,WAAW;KAC1B,CAAC,CAAC;IAEc,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC1C,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;IAChC,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC5C,GAAG,GAAG,IAAI,GAAG,EAAuB,CAAC;IACrC,cAAc,GAAG,IAAI,GAAG,EAA2B,CAAC;IACpD,aAAa,GAAG,IAAI,GAAG,EAA0B,CAAC;IAClD,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IACvC,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,qBAAqB,GAAoC,EAAE,CAAC;IAC7E,+bAA+b;IAC9a,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;IAErD,SAAS,CAA4B;IACrC,aAAa,CAAgC;IAC7C,UAAU,GAAG,KAAK,CAAC;IACnB,WAAW,GAAG,KAAK,CAAC;IAE5B,SAAS,CAAmB;IAE5B,qvBAAqvB;IAC5uB,YAAY,CAAe;IAEpC,ohBAAohB;IACngB,eAAe,CAAuB;IAEtC,cAAc,CAAiB;IAC/B,YAAY,CAAe;IAC3B,aAAa,CAAgB;IAC7B,aAAa,CAAgB;IAC7B,aAAa,CAAgB;IAC7B,kBAAkB,CAAqB;IACvC,sBAAsB,CAAyB;IAC/C,iBAAiB,CAAoB;IACrC,kBAAkB,CAAqB;IACvC,aAAa,CAAgB;IAE9C,gRAAgR;IAChR,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC9C,CAAC;IAED,6kBAA6kB;IAC7kB,IAAI,WAAW;QACb,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM;gBAAE,SAAS;YACzC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBAAE,SAAS;YAChE,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,IAAI,CAAC,EAAE;gBACb,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gpBAAgpB;IAChpB,IAAI,eAAe;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,KAAK,EAAE,UAAU,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACtD,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;SACjC,CAAC;IACJ,CAAC;IAED,0DAA0D;IAC1D,IAAI,SAAS;QACX,OAAO,CACL,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa;YACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC,wBAAwB,CACjD,CAAC;IACJ,CAAC;IAED,UAAU,CAEI;IAEd,uEAAuE;IACvE,OAAO,CAAgE;IAEvE;;OAEG;IACH,OAAO,CAAuC;IAE9C;;OAEG;IACH,wBAAwB,CACyC;IAEjE,8rBAA8rB;IAC9rB,gBAAgB,CAAyC;IAEzD,6DAA6D;IAC7D,SAAS;QACP,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;YACvC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YACrC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC3C,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;YACjC,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC;SACxD,CAAC;IACJ,CAAC;IAED,YAAY,OAAoC;QAC9C,MAAM,EACJ,eAAe,GAAG,wBAAwB,EAC1C,MAAM,GAAG,eAAe,EACxB,yBAAyB,GAAG,6BAA6B,EACzD,IAAI,GACL,GAAG,OAAO,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;QAC3D,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAEtD,mDAAmD;QACnD,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;QAEhE,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC;YACvC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;YAC5B,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE;YAC7C,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC/C,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU;YACpC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO;YAC9B,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU;YACjC,iNAAiN;YACjN,uBAAuB,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,CACzC,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC;SACrD,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC;YACnC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;YACrD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;YAC5B,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE;YAC7C,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC/C,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,qBAAqB,EAAE,IAAI,CAAC,yBAAyB;YACrD,oIAAoI;YACpI,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAC5C,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;SACzD,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;YACrC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE;YAC7C,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,oHAAoH;YACpH,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CACrC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC;YACjD,aAAa,EAAE,CAAC,YAAY,EAAE,EAAE,CAC9B,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,YAAY,CAAC;YAChD,+KAA+K;YAC/K,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;SAC5D,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;YACrC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;YACrD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;YAC5B,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE;YAC7C,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC/C,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;YAC5B,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC/C,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAAC;YAC/C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;YAC5B,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC/C,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU;YACpC,aAAa,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBAChC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,sBAAsB,GAAG,IAAI,sBAAsB,CAAC;YACvD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;YAC5B,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU;YACpC,aAAa,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBAChC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC;YAC7C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAC7C,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC;YAC1D,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAC9B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC;SAC5C,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAAC;YAC/C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACxB,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;YAClD,CAAC;YACD,aAAa,EAAE,KAAK,IAAI,EAAE;gBACxB,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC;YAClD,CAAC;YACD,OAAO,EAAE,IAAI,CAAC,WAAW;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;YACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;YAC5B,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,iBAAiB;YACrE,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC/C,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;YACjC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,wBAAwB,EAAE,KAAK,IAAI,EAAE,CACnC,IAAI,CAAC,wBAAwB,EAAE,CAAC,IAAI,CAAC;YACvC,OAAO,EAAE,IAAI,CAAC,WAAW;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,+IAA+I;IAC/I,YAAY,CAAC,SAAkC;QAC7C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,uQAAuQ;IAC/P,gBAAgB;QACtB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,iNAAiN;IACjN,WAAW,CAAC,QAA2B;QACrC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,0GAA0G;IAC1G,mBAAmB;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;IACjD,CAAC;IAED,6KAA6K;IACrK,eAAe;QACrB,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,0EAA0E;IAC1E,iBAAiB;IACjB,0EAA0E;IAE1E,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,eAAe,EAAE,CAAC;QAEhD,6BAA6B;QAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE;YAC7B,EAAE,EAAE,IAAI,CAAC,MAAM;YACf,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ;YACtC,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEH,mEAAmE;QACnE,EAAE;QACF,wWAAwW;QACxW,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,oBAAoB,CAChD,gBAAgB,EAChB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CACjC,CAAC;YACF,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,iBAAqC,CAAC;YAC1C,IAAI,CAAC;gBACH,0OAA0O;gBAC1O,MAAM,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;gBACrD,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,MAAM,GAAG,GACP,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAClE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;oBAChC,MAAM,QAAQ,CAAC;gBACjB,CAAC;gBACD,iNAAiN;gBACjN,iBAAiB,GAAG,GAAG,CAAC;YAC1B,CAAC;YAED,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CACnB,IAAI,KAAK,CACP,sDAAsD,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI;oBACpF,QAAQ,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,iKAAiK;oBACrM,yEAAyE;oBACzE,IAAI,iBAAiB,IAAI,gBAAgB,GAAG,CAC/C,CACF,CAAC;gBACF,OAAO;YACT,CAAC;QACH,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,0EAA0E;IAC1E,qDAAqD;IACrD,0EAA0E;IAE1E,gGAAgG;IAChG,IAAI,MAAM;QACR,OAAO,qBAAqB,CAAC;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;IAC5C,CAAC;IAED,0EAA0E;IAC1E,wBAAwB;IACxB,0EAA0E;IAE1E,KAAK,CAAC,YAAY,CAChB,OAAe,EACf,GAAW;QAEX,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,GAAW,EAAE,EAAU;QAC1D,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,0EAA0E;IAC1E,8BAA8B;IAC9B,0EAA0E;IAE1E,KAAK,CAAC,aAAa,CAAC,IAOnB;QACC,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,WAAW,CACf,EAAU,EACV,KAEC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAU;QAC9B,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,0EAA0E;IAC1E,qBAAqB;IACrB,0EAA0E;IAE1E,KAAK,CAAC,UAAU,CACd,IAKE;QAEF,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,WAAmB;QACjC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IAED,4KAA4K;IAC5K,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QACvC,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,ohBAAohB;IACphB,KAAK,CAAC,eAAe,CACnB,WAAmB,EACnB,WAA6B;QAE7B,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACtE,CAAC;IAED,2FAA2F;IAC3F,KAAK,CAAC,cAAc,CAClB,WAAmB,EACnB,KAAsB;QAEtB,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,0OAA0O;IAC1O,kBAAkB;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC;QAC9C,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,omBAAomB;IACpmB,KAAK,CAAC,eAAe,CACnB,QAAgB,EAChB,oBAAoB,GAAG,CAAC;QAExB,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAC5E,CAAC;IAED,gRAAgR;IAChR,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QACxC,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,OAAe;QAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,OAAe;QAC7C,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,MAAc,EACd,QAAgB,EAChB,SAAiB;QAEjB,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,MAAc,EACd,OAAe,EACf,MAAc;QAEd,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,MAAc,EACd,QAAgB,EAChB,QAAgB;QAEhB,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,OAAe;QAC/C,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,0EAA0E;IAC1E,wBAAwB;IACxB,0EAA0E;IAE1E,KAAK,CAAC,eAAe,CACnB,MAAc,EACd,IAAY,EACZ,OAAe,EACf,OAAgC;QAEhC,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,MAAc,EACd,KAAc;QAEd,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,0EAA0E;IAC1E,mBAAmB;IACnB,0EAA0E;IAE1E,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,EAAU,EACV,OAAe,EACf,iBAAqC;QAErC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;IACzE,CAAC;IAED,0EAA0E;IAC1E,wBAAwB;IACxB,0EAA0E;IAE1E,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,KAAoB;QACjD,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,0EAA0E;IAC1E,kDAAkD;IAClD,0EAA0E;IAE1E,gHAAgH;IAChH,cAAc,CAAC,KAAsB;QACnC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,wHAAwH;IACxH,KAAK,CAAC,uBAAuB,CAC3B,QAAgB,EAChB,QAAgB,EAChB,IAAY;QAEZ,OAAO,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,+IAA+I;IAC/I,KAAK,CAAC,mBAAmB;QACvB,OAAO,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,CAAC;IACvD,CAAC;IAED,0EAA0E;IAC1E,kCAAkC;IAClC,0EAA0E;IAE1E,2CAA2C;IAC3C,KAAK,CAAC,gBAAgB,CAAC,YAAoB;QACzC,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAChE,CAAC;IAED,2CAA2C;IAC3C,KAAK,CAAC,gBAAgB,CAAC,YAAoB,EAAE,MAAc;QACzD,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,8DAA8D;IAC9D,sBAAsB;QAOpB,OAAO,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,CAAC;IAC1D,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,IAAY;QAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,0EAA0E;IAC1E,iCAAiC;IACjC,0EAA0E;IAE1E,oGAAoG;IACpG,oBAAoB;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;IAClD,CAAC;IAED,4CAA4C;IAC5C,cAAc,CAAC,QAAgB,EAAE,WAAmB;QAClD,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;IAED,oEAAoE;IACpE,cAAc,CAAC,QAAgB,EAAE,WAAmB,EAAE,MAAe;QACnE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED,0EAA0E;IAC1E,2DAA2D;IAC3D,0EAA0E;IAE1E,mXAAmX;IACnX,0BAA0B,CACxB,OAIE;QAEF,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC;YAClD,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,QAAQ;YACR,KAAK;YACL,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,qGAAqG;IACrG,6BAA6B;QAO3B,OAAO,IAAI,CAAC,sBAAsB,CAAC,6BAA6B,EAAE,CAAC;IACrE,CAAC;IAED,sFAAsF;IACtF,KAAK,CAAC,uBAAuB,CAC3B,SAAiB,EACjB,OAIE;QAEF,MAAM,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CACvD,SAAS,EACT,OAAO,CACR,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,uBAAuB,CAC3B,SAAiB,EACjB,MAAe;QAEf,MAAM,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CACvD,SAAS,EACT,MAAM,CACP,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,kBAAkB;IAClB,0EAA0E;IAE1E,qEAAqE;IACrE,KAAK,CAAC,aAAa,CAAC,KAAqB,EAAE,OAAgB;QACzD,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,6CAA6C;IAC7C,aAAa,CAAC,OAAgB;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,0EAA0E;IAC1E,sEAAsE;IACtE,0EAA0E;IAE1E,2hBAA2hB;IAC3hB,iBAAiB,CAAC,SAAiB;QACjC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjC,KAAK,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED,sFAAsF;IACtF,oBAAoB,CAAC,SAAiB;QACpC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,sDAAsD;IACtD,mBAAmB;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,qUAAqU;IACrU,0BAA0B,CAAC,SAAiB;QAC1C,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,qGAAqG;IACrG,6BAA6B,CAAC,SAAiB;QAC7C,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,qEAAqE;IACrE,4BAA4B;QAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;IAC5C,CAAC;IAED,0EAA0E;IAC1E,6HAA6H;IAC7H,0EAA0E;IAE1E,uOAAuO;IACvO,KAAK,CAAC,sBAAsB,CAC1B,UAAmD,EAAE;QAErD,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,0SAA0S;IAC1S,KAAK,CAAC,oBAAoB,CACxB,SAAmC,EACnC,UAAiD,EAAE;QAEnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0EAA0E;IAC1E,yCAAyC;IACzC,0EAA0E;IAE1E,KAAK,CAAC,WAAW,CACf,IAAY,EACZ,IAAY,EACZ,MAAc;QAEd,SAAS,gBAAgB,CAAC,CAAS;YACjC,OAAO,CACL,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,SAAS,CACzE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,UAAU,CAAC,mBAAmB,MAAM,GAAG,EAAE,gBAAgB,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC7B,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa,EAAE,CAAC;IACjD,CAAC;IAED,mXAAmX;IACnX,SAAS;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC;QACpD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,UAAU,CAClB,kDAAkD,EAClD,eAAe,CAChB,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2GAA2G;IAC3G,KAAK,CAAC,SAAS,CACb,MAAc,EACd,SAAkB;QAElB,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,UAAU,CAClB,kDAAkD,EAClD,eAAe,CAChB,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,oBAAoB;QAClB,MAAM,UAAU,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACvD,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS;YAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0EAA0E;IAC1E,oEAAoE;IACpE,0EAA0E;IAE1E,qOAAqO;IACrO,wBAAwB,CAAC,QAAgB;QACvC,OAAO,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,QAAQ,CAAC;YACjE,EAAE,UAAU,CAAC;IACjB,CAAC;IAED,6PAA6P;IAC7P,oBAAoB,CAAC,QAAgB;QACnC,OAAO,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC9E,CAAC;IAED,+OAA+O;IAC/O,0BAA0B,CAAC,QAAgB;QACzC,OAAO,0BAA0B,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,0EAA0E;IAC1E,kEAAkE;IAClE,0EAA0E;IAE1E,wWAAwW;IACxW,KAAK,CAAC,YAAY,CAChB,QAAgB;QAEhB,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,IAAI,SAAS,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO;gBACL,KAAK,EAAE,2DAA2D;aACnE,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAkB,MAAM,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC/B,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACpD,CAAC;QACD,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO,CAAC;QACzC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,EAAE,KAAK,EAAE,kDAAkD,EAAE,CAAC;QACvE,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IAED,0EAA0E;IAC1E,WAAW;IACX,0EAA0E;IAE1E,KAAK,CAAC,QAAQ;QACZ,kNAAkN;QAClN,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,yLAAyL;QACzL,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/C,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;QAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;YACzB,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;gBACvC,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,IAAI,CAAC,MAAM;aACrB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,CAAC;QAClD,iVAAiV;QACjV,MAAM,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,CAAC;QACnD,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC3C,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"mesh-store.js","sourceRoot":"","sources":["../../src/core/mesh-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,oBAAoB,GAIrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAM7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EACL,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAc5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAuB9D,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,wBAAwB,GAAG,KAAK,CAAC;AACvC,gDAAgD;AAChD,MAAM,cAAc,GAAG,CAAC,CAAC;AAkBzB,MAAM,OAAO,SAAS;IACpB,MAAM,CAAS;IACN,SAAS,CAAS;IAClB,eAAe,CAAS;IAChB,MAAM,CAAqB;IAC5C,mHAAmH;IAC1G,yBAAyB,CAAS;IAC3C,gQAAgQ;IAC/O,WAAW,GAAG,CAAC,KAAc,EAAQ,EAAE;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC;IAEF,oGAAoG;IAC3F,UAAU,GAAG,IAAI,gBAAgB,CAAC;QACzC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE;QACzC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;QAC5B,OAAO,EAAE,IAAI,CAAC,WAAW;KAC1B,CAAC,CAAC;IAEc,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC1C,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;IAChC,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC5C,GAAG,GAAG,IAAI,GAAG,EAAuB,CAAC;IACrC,cAAc,GAAG,IAAI,GAAG,EAA2B,CAAC;IACpD,aAAa,GAAG,IAAI,GAAG,EAA0B,CAAC;IAClD,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IACvC,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,qBAAqB,GAAoC,EAAE,CAAC;IAC7E,+bAA+b;IAC9a,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;IAErD,SAAS,CAA4B;IACrC,aAAa,CAAgC;IAC7C,UAAU,GAAG,KAAK,CAAC;IACnB,WAAW,GAAG,KAAK,CAAC;IAE5B,SAAS,CAAmB;IAE5B,qvBAAqvB;IAC5uB,YAAY,CAAe;IAEpC,qkBAAqkB;IACpjB,eAAe,CAAuB;IAEtC,cAAc,CAAiB;IAC/B,YAAY,CAAe;IAC3B,aAAa,CAAgB;IAC7B,aAAa,CAAgB;IAC7B,aAAa,CAAgB;IAC7B,kBAAkB,CAAqB;IACvC,sBAAsB,CAAyB;IAC/C,iBAAiB,CAAoB;IACrC,aAAa,CAAgB;IAE9C,gRAAgR;IAChR,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC9C,CAAC;IAED,6kBAA6kB;IAC7kB,IAAI,WAAW;QACb,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM;gBAAE,SAAS;YACzC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBAAE,SAAS;YAChE,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,IAAI,CAAC,EAAE;gBACb,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gpBAAgpB;IAChpB,IAAI,eAAe;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,KAAK,EAAE,UAAU,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACtD,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;SACjC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO,CACL,IAAI,KAAK,SAAS;YAClB,IAAI,CAAC,UAAU,KAAK,OAAO;YAC3B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAC3B,CAAC;IACJ,CAAC;IAED,wMAAwM;IAChM,aAAa;QACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC;IAC5C,CAAC;IAED,0DAA0D;IAC1D,IAAI,SAAS;QACX,OAAO,CACL,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa;YACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC,wBAAwB,CACjD,CAAC;IACJ,CAAC;IAED,UAAU,CAEI;IAEd,uEAAuE;IACvE,OAAO,CAAgE;IAEvE;;OAEG;IACH,OAAO,CAAuC;IAE9C;;OAEG;IACH,wBAAwB,CACyC;IAEjE,8rBAA8rB;IAC9rB,gBAAgB,CAAyC;IAEzD,6DAA6D;IAC7D,SAAS;QACP,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;YACvC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YACrC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC3C,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;YACjC,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC;SACxD,CAAC;IACJ,CAAC;IAED,YAAY,OAAoC;QAC9C,MAAM,EACJ,eAAe,GAAG,wBAAwB,EAC1C,MAAM,EACN,yBAAyB,GAAG,6BAA6B,EACzD,IAAI,GACL,GAAG,OAAO,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;QAC3D,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAEtD,mDAAmD;QACnD,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;QAEhE,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC;YACvC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;YAC5B,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE;YAC7C,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC/C,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU;YACpC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO;YAC9B,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU;YACjC,iNAAiN;YACjN,uBAAuB,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,CACzC,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC;SACrD,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC;YACnC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;YACrD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;YAC5B,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE;YAC7C,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC/C,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,qBAAqB,EAAE,IAAI,CAAC,yBAAyB;YACrD,oIAAoI;YACpI,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAC5C,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;SACzD,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;YACrC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE;YAC7C,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,oHAAoH;YACpH,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CACrC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC;YACjD,aAAa,EAAE,CAAC,YAAY,EAAE,EAAE,CAC9B,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,YAAY,CAAC;YAChD,+KAA+K;YAC/K,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;SAC5D,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;YACrC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;YACrD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;YAC5B,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE;YAC7C,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC/C,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;YAC5B,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC/C,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAAC;YAC/C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;YAC5B,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC/C,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU;YACpC,aAAa,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBAChC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,sBAAsB,GAAG,IAAI,sBAAsB,CAAC;YACvD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;YAC5B,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU;YACpC,aAAa,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBAChC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC;YAC7C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAC7C,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC;YAC1D,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAC9B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC;SAC5C,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;YACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;YAC5B,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,iBAAiB;YACrE,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC/C,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;YACjC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,wBAAwB,EAAE,KAAK,IAAI,EAAE,CACnC,IAAI,CAAC,wBAAwB,EAAE,CAAC,IAAI,CAAC;YACvC,OAAO,EAAE,IAAI,CAAC,WAAW;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,+IAA+I;IAC/I,YAAY,CAAC,SAAkC;QAC7C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,uQAAuQ;IAC/P,gBAAgB;QACtB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,iNAAiN;IACjN,WAAW,CAAC,QAA2B;QACrC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,0GAA0G;IAC1G,mBAAmB;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;IACjD,CAAC;IAED,6KAA6K;IACrK,eAAe;QACrB,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,0EAA0E;IAC1E,iBAAiB;IACjB,0EAA0E;IAE1E,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,eAAe,EAAE,CAAC;QAChD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAClD,IAAI,CAAC,eAAe,EAAE,CACvB,CAAC;QACJ,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE;YAC7B,EAAE,EAAE,IAAI,CAAC,MAAM;YACf,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ;YACtC,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEH,mEAAmE;QACnE,EAAE;QACF,wWAAwW;QACxW,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,oBAAoB,CAChD,gBAAgB,EAChB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CACjC,CAAC;YACF,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,iBAAqC,CAAC;YAC1C,IAAI,CAAC;gBACH,oNAAoN;gBACpN,MAAM,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;gBACrD,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,MAAM,GAAG,GACP,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAClE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;oBAChC,MAAM,QAAQ,CAAC;gBACjB,CAAC;gBACD,iNAAiN;gBACjN,iBAAiB,GAAG,GAAG,CAAC;YAC1B,CAAC;YAED,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CACnB,IAAI,KAAK,CACP,sDAAsD,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI;oBACpF,QAAQ,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,iKAAiK;oBACrM,yEAAyE;oBACzE,IAAI,iBAAiB,IAAI,gBAAgB,GAAG,CAC/C,CACF,CAAC;gBACF,OAAO;YACT,CAAC;QACH,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,0EAA0E;IAC1E,qDAAqD;IACrD,0EAA0E;IAE1E,gGAAgG;IAChG,IAAI,MAAM;QACR,OAAO,qBAAqB,CAAC;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;IAC5C,CAAC;IAED,0EAA0E;IAC1E,wBAAwB;IACxB,0EAA0E;IAE1E,KAAK,CAAC,YAAY,CAChB,OAAe,EACf,GAAW;QAEX,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,GAAW,EAAE,EAAU;QAC1D,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,0EAA0E;IAC1E,8BAA8B;IAC9B,0EAA0E;IAE1E,KAAK,CAAC,aAAa,CAAC,IAOnB;QACC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,WAAW,CACf,EAAU,EACV,KAEC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAU;QAC9B,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,0EAA0E;IAC1E,qBAAqB;IACrB,0EAA0E;IAE1E,KAAK,CAAC,UAAU,CACd,IAKE;QAEF,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,WAAmB;QACjC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IAED,4KAA4K;IAC5K,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QACvC,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,ohBAAohB;IACphB,KAAK,CAAC,eAAe,CACnB,WAAmB,EACnB,WAA6B;QAE7B,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACtE,CAAC;IAED,2FAA2F;IAC3F,KAAK,CAAC,cAAc,CAClB,WAAmB,EACnB,KAAsB;QAEtB,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,0OAA0O;IAC1O,kBAAkB;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC;QAC9C,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,omBAAomB;IACpmB,KAAK,CAAC,eAAe,CACnB,QAAgB,EAChB,oBAAoB,GAAG,CAAC;QAExB,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAC5E,CAAC;IAED,gRAAgR;IAChR,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QACxC,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,OAAe;QAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,OAAe;QAC7C,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,MAAc,EACd,QAAgB,EAChB,SAAiB;QAEjB,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,MAAc,EACd,OAAe,EACf,MAAc;QAEd,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,MAAc,EACd,QAAgB,EAChB,QAAgB;QAEhB,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,OAAe;QAC/C,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,0EAA0E;IAC1E,wBAAwB;IACxB,0EAA0E;IAE1E,KAAK,CAAC,eAAe,CACnB,MAAc,EACd,IAAY,EACZ,OAAe,EACf,OAAgC;QAEhC,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,MAAc,EACd,KAAc;QAEd,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,0EAA0E;IAC1E,mBAAmB;IACnB,0EAA0E;IAE1E,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,EAAU,EACV,OAAe,EACf,iBAAqC;QAErC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;IACzE,CAAC;IAED,0EAA0E;IAC1E,wBAAwB;IACxB,0EAA0E;IAE1E,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,KAAoB;QACjD,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,0EAA0E;IAC1E,kDAAkD;IAClD,0EAA0E;IAE1E,gHAAgH;IAChH,cAAc,CAAC,KAAsB;QACnC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,wHAAwH;IACxH,KAAK,CAAC,uBAAuB,CAC3B,QAAgB,EAChB,QAAgB,EAChB,IAAY;QAEZ,OAAO,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,+IAA+I;IAC/I,KAAK,CAAC,mBAAmB;QACvB,OAAO,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,CAAC;IACvD,CAAC;IAED,0EAA0E;IAC1E,kCAAkC;IAClC,0EAA0E;IAE1E,2CAA2C;IAC3C,KAAK,CAAC,gBAAgB,CAAC,YAAoB;QACzC,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAChE,CAAC;IAED,2CAA2C;IAC3C,KAAK,CAAC,gBAAgB,CAAC,YAAoB,EAAE,MAAc;QACzD,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,8DAA8D;IAC9D,sBAAsB;QAOpB,OAAO,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,CAAC;IAC1D,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,IAAY;QAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,0EAA0E;IAC1E,iCAAiC;IACjC,0EAA0E;IAE1E,oGAAoG;IACpG,oBAAoB;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;IAClD,CAAC;IAED,4CAA4C;IAC5C,cAAc,CAAC,QAAgB,EAAE,WAAmB;QAClD,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;IAED,oEAAoE;IACpE,cAAc,CAAC,QAAgB,EAAE,WAAmB,EAAE,MAAe;QACnE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED,0EAA0E;IAC1E,2DAA2D;IAC3D,0EAA0E;IAE1E,mXAAmX;IACnX,0BAA0B,CACxB,OAIE;QAEF,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC;YAClD,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,QAAQ;YACR,KAAK;YACL,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,qGAAqG;IACrG,6BAA6B;QAO3B,OAAO,IAAI,CAAC,sBAAsB,CAAC,6BAA6B,EAAE,CAAC;IACrE,CAAC;IAED,sFAAsF;IACtF,KAAK,CAAC,uBAAuB,CAC3B,SAAiB,EACjB,OAIE;QAEF,MAAM,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CACvD,SAAS,EACT,OAAO,CACR,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,uBAAuB,CAC3B,SAAiB,EACjB,MAAe;QAEf,MAAM,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CACvD,SAAS,EACT,MAAM,CACP,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,kBAAkB;IAClB,0EAA0E;IAE1E,qEAAqE;IACrE,KAAK,CAAC,aAAa,CAAC,KAAqB,EAAE,OAAgB;QACzD,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,6CAA6C;IAC7C,aAAa,CAAC,OAAgB;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,0EAA0E;IAC1E,sEAAsE;IACtE,0EAA0E;IAE1E,ihBAAihB;IACjhB,iBAAiB,CAAC,SAAiB;QACjC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,KAAK,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED,sFAAsF;IACtF,oBAAoB,CAAC,SAAiB;QACpC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,sDAAsD;IACtD,mBAAmB;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,qUAAqU;IACrU,0BAA0B,CAAC,SAAiB;QAC1C,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,qGAAqG;IACrG,6BAA6B,CAAC,SAAiB;QAC7C,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,qEAAqE;IACrE,4BAA4B;QAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;IAC5C,CAAC;IAED,0EAA0E;IAC1E,6HAA6H;IAC7H,0EAA0E;IAE1E,uOAAuO;IACvO,KAAK,CAAC,sBAAsB,CAC1B,UAAmD,EAAE;QAErD,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,0SAA0S;IAC1S,KAAK,CAAC,oBAAoB,CACxB,SAAmC,EACnC,UAAiD,EAAE;QAEnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0EAA0E;IAC1E,yCAAyC;IACzC,0EAA0E;IAE1E,KAAK,CAAC,WAAW,CACf,IAAY,EACZ,IAAY,EACZ,MAAc;QAEd,SAAS,gBAAgB,CAAC,CAAS;YACjC,OAAO,CACL,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,SAAS,CACzE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,UAAU,CAAC,mBAAmB,MAAM,GAAG,EAAE,gBAAgB,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC7B,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa,EAAE,CAAC;IACjD,CAAC;IAED,mXAAmX;IACnX,SAAS;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC;QACpD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,UAAU,CAClB,kDAAkD,EAClD,eAAe,CAChB,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2GAA2G;IAC3G,KAAK,CAAC,SAAS,CACb,MAAc,EACd,SAAkB;QAElB,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,UAAU,CAClB,kDAAkD,EAClD,eAAe,CAChB,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,oBAAoB;QAClB,MAAM,UAAU,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACvD,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS;YAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0EAA0E;IAC1E,oEAAoE;IACpE,0EAA0E;IAE1E,qOAAqO;IACrO,wBAAwB,CAAC,QAAgB;QACvC,OAAO,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,QAAQ,CAAC;YACjE,EAAE,UAAU,CAAC;IACjB,CAAC;IAED,6PAA6P;IAC7P,oBAAoB,CAAC,QAAgB;QACnC,OAAO,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC9E,CAAC;IAED,+OAA+O;IAC/O,0BAA0B,CAAC,QAAgB;QACzC,OAAO,0BAA0B,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,0EAA0E;IAC1E,kEAAkE;IAClE,0EAA0E;IAE1E,wWAAwW;IACxW,KAAK,CAAC,YAAY,CAChB,QAAgB;QAEhB,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,IAAI,SAAS,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO;gBACL,KAAK,EAAE,2DAA2D;aACnE,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAkB,MAAM,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC/B,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACpD,CAAC;QACD,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO,CAAC;QACzC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,EAAE,KAAK,EAAE,kDAAkD,EAAE,CAAC;QACvE,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IAED,0EAA0E;IAC1E,WAAW;IACX,0EAA0E;IAE1E,KAAK,CAAC,QAAQ;QACZ,kNAAkN;QAClN,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,yLAAyL;QACzL,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/C,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;QAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;YACzB,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;gBACvC,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,IAAI,CAAC,MAAM;aACrB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAC9B,iVAAiV;QACjV,MAAM,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,CAAC;QACnD,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC3C,CAAC;CACF"}
|
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
* PeerLifecycle — the TransportEvents callbacks around a peer's own comings and goings on the mesh: peer-list/peer-joined bookkeeping, the coordinator's own new-peer introduction handshake, post-connection state-sync, inbound data-message routing (state_sync/state_update), taking over as coordinator, and peer disconnection. Split out of mesh-store.ts to reduce it under the repo's max-lines cap.
|
|
3
3
|
*/
|
|
4
4
|
import type { MeshMessage, PeerInfo, SerialisedState } from "./wire-protocol.js";
|
|
5
|
-
import type { CoordinatorGateway } from "./coordinator-gateway.js";
|
|
6
5
|
import type { DeliveryEngine } from "./delivery-engine.js";
|
|
7
6
|
import type { RoomProtocol } from "./room-protocol.js";
|
|
8
7
|
import type { StaleAgentChecker } from "./stale-agent-checker.js";
|
|
9
8
|
import type { ConnectionHandle, MeshTransport } from "./transport.js";
|
|
10
9
|
import type { AgentIdentity } from "./types.js";
|
|
11
|
-
/** The state and collaborators PeerLifecycle needs from MeshStore. peerInfo/agents are direct references into MeshStore's own fields; coordinatorPort is a readonly value copied once; serialise is MeshStore's own retained method (constraint: it must stay directly on MeshStore.prototype, so PeerLifecycle calls it through this closure rather than owning it); roomProtocol/deliveryEngine/staleAgentChecker
|
|
10
|
+
/** The state and collaborators PeerLifecycle needs from MeshStore. peerInfo/agents are direct references into MeshStore's own fields; coordinatorPort is a readonly value copied once; serialise is MeshStore's own retained method (constraint: it must stay directly on MeshStore.prototype, so PeerLifecycle calls it through this closure rather than owning it); roomProtocol/deliveryEngine/staleAgentChecker are the already-constructed instances (construction order: ... -\> roomProtocol -\> ... -\> staleAgentChecker -\> peerLifecycle), narrowed to what peer-lifecycle bookkeeping ever needs. */
|
|
12
11
|
export interface PeerLifecycleDeps {
|
|
13
12
|
peerInfo: Map<string, PeerInfo>;
|
|
14
13
|
agents: Map<string, AgentIdentity>;
|
|
@@ -21,9 +20,7 @@ export interface PeerLifecycleDeps {
|
|
|
21
20
|
roomProtocol: Pick<RoomProtocol, "flushPendingRoomRequests">;
|
|
22
21
|
deliveryEngine: Pick<DeliveryEngine, "applyStateSync" | "applyPatch" | "notifyRoomsOfStatus" | "broadcastPatch">;
|
|
23
22
|
staleAgentChecker: Pick<StaleAgentChecker, "start">;
|
|
24
|
-
/**
|
|
25
|
-
coordinatorGateway: Pick<CoordinatorGateway, "onBecameCoordinator">;
|
|
26
|
-
/** Fires alongside coordinatorGateway.onBecameCoordinator, right after this side takes over as coordinator -- MeshStore's own hook for starting a coordinator-only capability that doesn't belong in the transport-agnostic core itself (e.g. the cc-peer front, agent-comms#157). Optional and left unset by most callers, mirroring MeshStore's own onDelivery/onPatch/onError callback fields. */
|
|
23
|
+
/** Fires right after this side takes over as coordinator -- MeshStore's own hook for starting a coordinator-only capability that doesn't belong in the transport-agnostic core itself (e.g. the cc-peer front, agent-comms#157). Optional and left unset by most callers, mirroring MeshStore's own onDelivery/onPatch/onError callback fields. */
|
|
27
24
|
onCoordinatorRoleChanged?: (() => void | Promise<void>) | undefined;
|
|
28
25
|
/** Reports a failed takeover or rejoin. The crash-race path runs detached from any caller that could handle a rejection, so this is the only signal that a coordinator loss was noticed but not recovered from. */
|
|
29
26
|
onError?: ((error: Error) => void) | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-lifecycle.d.ts","sourceRoot":"","sources":["../../src/core/peer-lifecycle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"peer-lifecycle.d.ts","sourceRoot":"","sources":["../../src/core/peer-lifecycle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,ilBAAilB;AACjlB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,iUAAiU;IACjU,oBAAoB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC/C,gBAAgB,EAAE,MAAM,aAAa,CAAC;IACtC,SAAS,EAAE,MAAM,eAAe,CAAC;IACjC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;IAC7D,cAAc,EAAE,IAAI,CAClB,cAAc,EACd,gBAAgB,GAAG,YAAY,GAAG,qBAAqB,GAAG,gBAAgB,CAC3E,CAAC;IACF,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IACpD,mVAAmV;IACnV,wBAAwB,CAAC,EAAE,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IACpE,mNAAmN;IACnN,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAChD;AAaD,qBAAa,aAAa;IAIZ,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,4NAA4N;IAC5N,OAAO,CAAC,yBAAyB,CAAS;gBAEb,IAAI,EAAE,iBAAiB;IAEpD,cAAc,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,IAAI;IAUhD,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI;IAO1C,kBAAkB,CACtB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,GAAG,EAAE,QAAQ,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GAClD,OAAO,CAAC,IAAI,CAAC;IAyBV,mBAAmB,CACvB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,GACxB,OAAO,CAAC,IAAI,CAAC;IAYV,iBAAiB,CACrB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,IAAI,CAAC;IAQV,uBAAuB,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB3E,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAIhE,wUAAwU;IAClU,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxD,yxBAAyxB;YAC3wB,sBAAsB;IA0CpC,+mBAA+mB;YACjmB,yBAAyB;IAuBvC,gdAAgd;YAClc,mBAAmB;IAajC,g7BAAg7B;IAC16B,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;CAuB/C"}
|
|
@@ -90,7 +90,6 @@ export class PeerLifecycle {
|
|
|
90
90
|
void this.deps.requireTransport().connectToPeer(peer, peerId);
|
|
91
91
|
}
|
|
92
92
|
this.deps.staleAgentChecker.start();
|
|
93
|
-
await this.deps.coordinatorGateway.onBecameCoordinator();
|
|
94
93
|
await this.deps.onCoordinatorRoleChanged?.();
|
|
95
94
|
}
|
|
96
95
|
handlePeerDisconnected(handle) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-lifecycle.js","sourceRoot":"","sources":["../../src/core/peer-lifecycle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAMxD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"peer-lifecycle.js","sourceRoot":"","sources":["../../src/core/peer-lifecycle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAMxD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AA6B1D,yKAAyK;AACzK,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,qaAAqa;AACra,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAKtC,MAAM,OAAO,aAAa;IAIK;IAH7B,4NAA4N;IACpN,yBAAyB,GAAG,KAAK,CAAC;IAE1C,YAA6B,IAAuB;QAAvB,SAAI,GAAJ,IAAI,CAAmB;IAAG,CAAC;IAExD,cAAc,CAAC,KAA0B;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACtC,kMAAkM;YAClM,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM;gBAAE,SAAS;YACjC,KAAK,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,IAAwB;QACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM;YAAE,OAAO;QAC/B,KAAK,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,MAAkC,EAClC,GAAmD;QAEnD,MAAM,OAAO,GAAa;YACxB,EAAE,EAAE,GAAG,CAAC,MAAM;YACd,IAAI,EAAE,GAAG,CAAC,QAAQ;YAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE5C,sCAAsC;QACtC,MAAM,QAAQ,GAAgB;YAC5B,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;SACxC,CAAC;QACF,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE1D,0CAA0C;QAC1C,MAAM,MAAM,GAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACrE,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAErD,wCAAwC;QACxC,KAAK,IAAI,CAAC,IAAI;aACX,gBAAgB,EAAE;aAClB,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,MAAkC,EAClC,KAAyB;QAEzB,yDAAyD;QACzD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAoB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrD,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC9C,MAAM,EAAE,YAAY;gBACpB,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,MAAkC,EAClC,GAAgB;QAEhB,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,QAA6B;QACzD,iEAAiE;QACjE,MAAM,IAAI,CAAC,IAAI;aACZ,gBAAgB,EAAE;aAClB,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACrC,gVAAgV;QAChV,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7D,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACtC,KAAK,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACpC,MAAM,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,CAAC;IAC/C,CAAC;IAED,sBAAsB,CAAC,MAAkC;QACvD,KAAK,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,wUAAwU;IACxU,KAAK,CAAC,mBAAmB,CAAC,MAAc;QACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,yxBAAyxB;IACjxB,KAAK,CAAC,sBAAsB,CAClC,iBAAyB;QAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/C,IAAI,SAAS,CAAC,aAAa,IAAI,IAAI,CAAC,yBAAyB;YAAE,OAAO;QACtE,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACvD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,KAAK,iBAAiB,CAC9D,CAAC;YACF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,2BAA2B,EAAE,KAAK,EAAE,EAAE,CAAC;gBACjE,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;oBAC9C,OAAO;gBACT,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;wBACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CACjB,IAAI,KAAK,CACP,oEAAoE,QAAQ,CAAC,KAAK,CAAC,EAAE,CACtF,CACF,CAAC;wBACF,OAAO;oBACT,CAAC;gBACH,CAAC;gBACD,oZAAoZ;gBACpZ,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa;oBAAE,OAAO;gBACvD,IACE,CAAC,MAAM,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,KAAK,mBAAmB;oBAEtE,OAAO;YACX,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CACjB,IAAI,KAAK,CACP,2HAA2H,CAC5H,CACF,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QACzC,CAAC;IACH,CAAC;IAED,+mBAA+mB;IACvmB,KAAK,CAAC,yBAAyB,CACrC,MAAc;QAEd,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,oBAAoB,CAClC,gBAAgB,EAChB,IAAI,CAAC,IAAI,CAAC,eAAe,EACzB,MAAM,EACN,SAAS,CAAC,QAAQ,CACnB,CAAC;YACF,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,mBAAmB,CAAC,KAAK,CAAC;gBAAE,OAAO,mBAAmB,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CACjB,IAAI,KAAK,CACP,iGAAiG,QAAQ,CAAC,KAAK,CAAC,EAAE,CACnH,CACF,CAAC;YACF,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,gdAAgd;IACxc,KAAK,CAAC,mBAAmB,CAAC,MAAc;QAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa;YAAE,OAAO;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO;QAC9D,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACtE,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;YAC5C,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;IACL,CAAC;IAED,g7BAAg7B;IACh7B,KAAK,CAAC,uBAAuB;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,aAAa;YAAE,OAAO;QAErC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAC5D,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAC7B,CAAC;QACF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAExC,iFAAiF;QACjF,cAAc,CAAC,IAAI,CACjB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAC5D,CAAC;QACF,MAAM,CAAC,SAAS,EAAE,GAAG,WAAW,CAAC,GAAG,cAAc,CAAC;QACnD,iKAAiK;QACjK,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO;QAEpC,MAAM,SAAS,CAAC,IAAI,CAClB,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,EACpB,EAAE,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,WAAW,EAAE,CACxD,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -28,8 +28,8 @@ export interface RoomRouter {
|
|
|
28
28
|
handleLocalRequest: (request: IncomingManageRequest, handle: Readonly<ConnectionHandle>, origin?: Readonly<RoomRequestOrigin>) => Promise<void>;
|
|
29
29
|
/** Handles one request that arrived relayed through a hub. Only a room verb is ever dispatched: a legacy FRAME_VERB frame is answered with unsupported_verb and never decoded, so a relayed sender cannot reach the TransportEvents callbacks (mesh-state gossip such as state_sync and state_update) however it is routed here. Separate from handleLocalRequest so that the distinction is structural rather than a check each caller must remember to make first. */
|
|
30
30
|
handleRelayedRequest: (request: IncomingManageRequest, handle: Readonly<ConnectionHandle>, origin?: Readonly<RoomRequestOrigin>) => Promise<void>;
|
|
31
|
-
/** Consumes one session's incomingManageRequests until it ends, dispatching each request via handleLocalRequest. Becomes the single consumer of that iterable from this point on -- the caller must not also iterate the same session's incomingManageRequests itself once this is called.
|
|
32
|
-
drainSession: (session: AcceptedMeshSession, handle: Readonly<ConnectionHandle
|
|
31
|
+
/** Consumes one session's incomingManageRequests until it ends, dispatching each request via handleLocalRequest. Becomes the single consumer of that iterable from this point on -- the caller must not also iterate the same session's incomingManageRequests itself once this is called. */
|
|
32
|
+
drainSession: (session: AcceptedMeshSession, handle: Readonly<ConnectionHandle>) => void;
|
|
33
33
|
}
|
|
34
34
|
export declare function createRoomRouter(options: RoomRouterOptions): RoomRouter;
|
|
35
35
|
//# sourceMappingURL=room-router.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room-router.d.ts","sourceRoot":"","sources":["../../src/core/room-router.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACd,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"room-router.d.ts","sourceRoot":"","sources":["../../src/core/room-router.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACd,MAAM,oCAAoC,CAAC;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGxE,6ZAA6Z;AAC7Z,wBAAgB,cAAc,CAC5B,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAC,GACxC,WAAW,GAAG,SAAS,CAOzB;AAsDD,0iBAA0iB;AAC1iB,MAAM,WAAW,iBAAiB;IAChC,scAAsc;IACtc,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,ovBAAovB;AACpvB,MAAM,MAAM,eAAe,GAAG,CAC5B,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,MAAM,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,KACjC,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAChC,4HAA4H;IAC5H,MAAM,EAAE,eAAe,CAAC;IACxB,qHAAqH;IACrH,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,UAAU;IACzB,0cAA0c;IAC1c,kBAAkB,EAAE,CAClB,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,MAAM,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,KACjC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,wcAAwc;IACxc,oBAAoB,EAAE,CACpB,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,MAAM,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,KACjC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,8RAA8R;IAC9R,YAAY,EAAE,CACZ,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,KAC/B,IAAI,CAAC;CACX;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAyDvE"}
|
package/dist/core/room-router.js
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Deliberately empty of real room-verb handlers in this phase (P3.3): the router itself, and the unsupported_verb fallback, are the whole deliverable here. Each later phase (P3.4 admission, P3.5 fan-out, P3.6 state-sync, P3.7 kick) registers the handlers for the verbs it implements.
|
|
7
7
|
*/
|
|
8
|
-
import { deviceIdFromHex } from "wire-mesh-core/domain/device-id";
|
|
9
8
|
import { isMeshMessage } from "./wire-protocol.js";
|
|
10
9
|
import { FRAME_VERB } from "./wire-mesh-transport.js";
|
|
11
10
|
/** Extracts and validates the carried MeshMessage from an incoming FRAME_VERB command. Returns undefined for anything that isn't a well-formed frame -- an unrecognised or malformed payload is dropped, not thrown. Exported for WireMeshTransport's own quarantine-gate pre-approval check (introduce/connect_request detection), the one place outside this router that still needs to decode a legacy frame directly. */
|
|
@@ -68,35 +67,6 @@ function extractParamsVerb(params) {
|
|
|
68
67
|
return undefined;
|
|
69
68
|
return typeof params.verb === "string" ? params.verb : undefined;
|
|
70
69
|
}
|
|
71
|
-
/** Reads a command's own "on-behalf-of" extension field (open params tail, the same convention room.send's "streaming-behavior" already uses) -- present only when a trusted gateway forwarded this request on behalf of a different device than the one it physically arrived over (agent-comms#184's own hub-session.ts toDevice-forwarding leg, which stamps the hub-relayed request's real fromDevice here before handing it to a local peer's own session). Returns undefined for anything that isn't a well-formed device-id-hex string, so a malformed or absent value silently falls back to the connection's own authenticated identity rather than ever producing a broken handle. */
|
|
72
|
-
function onBehalfOfFromParams(params) {
|
|
73
|
-
if (typeof params !== "object" || params === null)
|
|
74
|
-
return undefined;
|
|
75
|
-
if (!("on-behalf-of" in params))
|
|
76
|
-
return undefined;
|
|
77
|
-
const claimed = params["on-behalf-of"];
|
|
78
|
-
if (typeof claimed !== "string")
|
|
79
|
-
return undefined;
|
|
80
|
-
try {
|
|
81
|
-
deviceIdFromHex(claimed);
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
return undefined;
|
|
85
|
-
}
|
|
86
|
-
return claimed;
|
|
87
|
-
}
|
|
88
|
-
/** Resolves the handle a request is actually dispatched with: the session's own authenticated connection identity, unless allowOnBehalfOf permits substituting a claimed "on-behalf-of" device from the request's own params. allowOnBehalfOf is true only when the session's peer identity matches this side's own recorded coordinator device (wire-mesh-transport.ts's consumeIncoming, keyed on identity rather than on which specific session connectToCoordinator itself dialled, since mesh formation's own reciprocal connectToPeer can reach this side over a second, independently-accepted connection to that identical device) -- the one relationship in this mesh where the far end already holds unconditional trust over this session (the pre-existing ungated introduce/coordinator-handoff path), the same trust boundary that lets it forward a hub-relayed request on to a different local peer at all. Safe for a capability-token-gated verb (room.send, ...) regardless: the token's own bearer is independently verified against the resolved handle, so a forged claim here would simply fail that check rather than succeed under a false identity -- this only changes outcomes for the ungated room.join first round, where the coordinator relationship is the sole trust boundary either way. */
|
|
89
|
-
function resolveHandle(request, handle, allowOnBehalfOf) {
|
|
90
|
-
if (!allowOnBehalfOf)
|
|
91
|
-
return handle;
|
|
92
|
-
const claimed = onBehalfOfFromParams(request.command.params);
|
|
93
|
-
if (claimed === undefined)
|
|
94
|
-
return handle;
|
|
95
|
-
return {
|
|
96
|
-
id: claimed,
|
|
97
|
-
...(handle.policy !== undefined ? { policy: handle.policy } : {}),
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
70
|
export function createRoomRouter(options) {
|
|
101
71
|
/** A room verb is never carried under FRAME_VERB, so a frame reaching here is not a room request whatever its params claim, and is refused like any other unregistered verb. */
|
|
102
72
|
async function dispatchRoomVerb(request, handle, origin) {
|
|
@@ -130,10 +100,10 @@ export function createRoomRouter(options) {
|
|
|
130
100
|
return {
|
|
131
101
|
handleLocalRequest,
|
|
132
102
|
handleRelayedRequest,
|
|
133
|
-
drainSession(session, handle
|
|
103
|
+
drainSession(session, handle) {
|
|
134
104
|
void (async () => {
|
|
135
105
|
for await (const request of session.incomingManageRequests) {
|
|
136
|
-
await handleLocalRequest(request,
|
|
106
|
+
await handleLocalRequest(request, handle);
|
|
137
107
|
}
|
|
138
108
|
})();
|
|
139
109
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room-router.js","sourceRoot":"","sources":["../../src/core/room-router.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"room-router.js","sourceRoot":"","sources":["../../src/core/room-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The termination-signal handling every bridge needs, in one place. A bridge that exits without running MeshStore.shutdown() never hands its coordinator role on, so if it held that role the mesh is left with no coordinator until the surviving peers notice and race for the port -- recoverable, but it loses whatever the coordinator process alone was doing (the stale-agent probe
|
|
2
|
+
* The termination-signal handling every bridge needs, in one place. A bridge that exits without running MeshStore.shutdown() never hands its coordinator role on, so if it held that role the mesh is left with no coordinator until the surviving peers notice and race for the port -- recoverable, but it loses whatever the coordinator process alone was doing (the stale-agent probe and the cc-peer front) for as long as the race takes.
|
|
3
3
|
*
|
|
4
4
|
* Which signals a process should answer is not in question; what differs is what it may do afterwards. A bridge that owns its own process exits. A bridge loaded into someone else's process (a plugin) must not: registering any listener for SIGINT or SIGTERM removes Node's own default terminate behaviour, so a plugin that handled the signal and then did nothing would silently swallow its host's Ctrl-C. Such a bridge re-raises instead, which reaches the host's own handler if it has one and terminates the process as usual if it does not.
|
|
5
5
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The termination-signal handling every bridge needs, in one place. A bridge that exits without running MeshStore.shutdown() never hands its coordinator role on, so if it held that role the mesh is left with no coordinator until the surviving peers notice and race for the port -- recoverable, but it loses whatever the coordinator process alone was doing (the stale-agent probe
|
|
2
|
+
* The termination-signal handling every bridge needs, in one place. A bridge that exits without running MeshStore.shutdown() never hands its coordinator role on, so if it held that role the mesh is left with no coordinator until the surviving peers notice and race for the port -- recoverable, but it loses whatever the coordinator process alone was doing (the stale-agent probe and the cc-peer front) for as long as the race takes.
|
|
3
3
|
*
|
|
4
4
|
* Which signals a process should answer is not in question; what differs is what it may do afterwards. A bridge that owns its own process exits. A bridge loaded into someone else's process (a plugin) must not: registering any listener for SIGINT or SIGTERM removes Node's own default terminate behaviour, so a plugin that handled the signal and then did nothing would silently swallow its host's Ctrl-C. Such a bridge re-raises instead, which reaches the host's own handler if it has one and terminates the process as usual if it does not.
|
|
5
5
|
*/
|
package/dist/core/transport.d.ts
CHANGED
|
@@ -179,23 +179,23 @@ export interface MeshTransport {
|
|
|
179
179
|
advert: Readonly<Record<string, unknown>>;
|
|
180
180
|
}[];
|
|
181
181
|
/**
|
|
182
|
-
*
|
|
182
|
+
* Holds a session of this side's own on the relay hub at the given URL for as long as shouldConnect answers true, redialling with backoff whenever the hub drops it, until shutdown (agent-comms#293: every store is its own hub peer). shouldConnect is re-read periodically and on reconsiderHub, so a store with nothing to say to another machine holds no session and puts nothing on the hub. Returns at once: the dial runs in the background and a failed dial reaches events.onError. Optional: WireMeshTransport is the only implementation that offers it today, matching listKnownDevices' own precedent, so a caller must treat its absence as "this transport has no hub capability," never assume every MeshTransport supports it.
|
|
183
183
|
*/
|
|
184
|
-
|
|
184
|
+
joinHub?: (url: string, shouldConnect: () => boolean) => void;
|
|
185
185
|
/**
|
|
186
|
-
*
|
|
186
|
+
* Makes the hub session re-evaluate shouldConnect now instead of at the next poll. A no-op before joinHub. Same optionality caveat as joinHub.
|
|
187
187
|
*/
|
|
188
|
-
|
|
188
|
+
reconsiderHub?: () => void;
|
|
189
189
|
/**
|
|
190
|
-
* Asks deviceId for its own, currently-running wire-mesh-core version, live, right now rather than whatever it last gossiped (agent-comms#198's own cache-bust query_version action). Optional, same caveat as listKnownDevices/
|
|
190
|
+
* Asks deviceId for its own, currently-running wire-mesh-core version, live, right now rather than whatever it last gossiped (agent-comms#198's own cache-bust query_version action). Optional, same caveat as listKnownDevices/joinHub: WireMeshTransport is the only implementation that offers it today, riding wire-mesh-core's own version.get manage-command (wire-mesh#179).
|
|
191
191
|
*/
|
|
192
192
|
queryVersion?: (deviceId: string) => Promise<ManageOutcome>;
|
|
193
193
|
/**
|
|
194
|
-
* Assembles this side's own best-effort view of the mesh's connection graph (agent-comms#199) out of every device's own self-reported `topology/peers` gossip extension (wire-mesh#180) -- the cheap, possibly-stale counterpart to meshTrace's own live read. Device-ids throughout are hex strings (matching listKnownDevices' own precedent), never raw wire-mesh-core DeviceId bytes. Same optionality caveat as listKnownDevices/
|
|
194
|
+
* Assembles this side's own best-effort view of the mesh's connection graph (agent-comms#199) out of every device's own self-reported `topology/peers` gossip extension (wire-mesh#180) -- the cheap, possibly-stale counterpart to meshTrace's own live read. Device-ids throughout are hex strings (matching listKnownDevices' own precedent), never raw wire-mesh-core DeviceId bytes. Same optionality caveat as listKnownDevices/joinHub.
|
|
195
195
|
*/
|
|
196
196
|
meshGraph?: () => MeshGraph;
|
|
197
197
|
/**
|
|
198
|
-
* Sends the wire-level path.trace manage-command (wire-mesh#181) to a specific device-id, direct or via the hub, and measures the real end-to-end round trip -- the live, cache-bust counterpart to meshGraph's gossiped snapshot. Resolves an error-shaped MeshTraceResult.outcome (never rejects) when targetDeviceHex is unreachable through any known path, mirroring sendRoomRequest's own not_connected convention. Same optionality caveat as listKnownDevices/
|
|
198
|
+
* Sends the wire-level path.trace manage-command (wire-mesh#181) to a specific device-id, direct or via the hub, and measures the real end-to-end round trip -- the live, cache-bust counterpart to meshGraph's gossiped snapshot. Resolves an error-shaped MeshTraceResult.outcome (never rejects) when targetDeviceHex is unreachable through any known path, mirroring sendRoomRequest's own not_connected convention. Same optionality caveat as listKnownDevices/joinHub.
|
|
199
199
|
*/
|
|
200
200
|
meshTrace?: (targetDeviceHex: string, timeoutMs?: number) => Promise<MeshTraceResult>;
|
|
201
201
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/core/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,aAAa,EACb,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAM/E;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;AAE3E,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,0EAA0E;IAC1E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,EAAE,EAAE,MAAM,CAAC;IACX,wEAAwE;IACxE,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAMD,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAE9E;;OAEG;IACH,eAAe,EAAE,CACf,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,KACrB,IAAI,CAAC;IAEV;;OAEG;IACH,kBAAkB,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAEjE;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;OAEG;IACH,cAAc,EAAE,CACd,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,GAAG,EAAE,QAAQ,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,KAChD,IAAI,CAAC;IAEV;;OAEG;IACH,mBAAmB,EAAE,CACnB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,KACC,IAAI,CAAC;IAEV;;OAEG;IACH,UAAU,EAAE,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,KAAK,IAAI,CAAC;IAEjD;;OAEG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAEjD;;OAEG;IACH,mBAAmB,EAAE,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,KAAK,IAAI,CAAC;IAE7D;;OAEG;IACH,oBAAoB,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAEvD;;OAEG;IACH,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/C;;OAEG;IACH,gBAAgB,EAAE,CAChB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,MAAM,EAAE,WAAW,KAChB,IAAI,CAAC;CACX;AAMD,MAAM,WAAW,aAAa;IAC5B,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,qDAAqD;IACrD,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAEhC,oEAAoE;IACpE,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;IAE3C,qUAAqU;IACrU,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/C;;;OAGG;IACH,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;OAEG;IACH,oBAAoB,EAAE,CACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;OAEG;IACH,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE;;OAEG;IACH,aAAa,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9E;;OAEG;IACH,IAAI,EAAE,CACJ,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,OAAO,EAAE,WAAW,KACjB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;OAEG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE;;OAEG;IACH,gBAAgB,EAAE,CAChB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;OAEG;IACH,eAAe,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,sBAAsB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9E;;OAEG;IACH,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD;;OAEG;IACH,mBAAmB,EAAE,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E;;OAEG;IACH,eAAe,EAAE,CACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,EAChC,KAAK,CAAC,EAAE,eAAe,KACpB,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5B;;OAEG;IACH,WAAW,EAAE,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC,MAAM,CAAC,CAAC;IAErB;;OAEG;IACH,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C,iCAAiC;IACjC,aAAa,EAAE,MAAM,YAAY,EAAE,CAAC;IAEpC;;OAEG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B;;OAEG;IACH,KAAK,EAAE,MAAM,IAAI,CAAC;IAElB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,SAAS;QAChC,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KAC3C,EAAE,CAAC;IAEJ;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/core/transport.ts"],"names":[],"mappings":"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"}
|