@antseed/cli 0.1.22 → 0.1.23

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.
@@ -1 +1 @@
1
- {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAcxC,OAAO,EAA+B,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACnG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAQ3D,wBAAgB,mCAAmC,CAAC,OAAO,EAAE;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC,GAAG,qBAAqB,CAkBxB;AAED,wBAAgB,oCAAoC,CAAC,WAAW,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxG;AAED,wBAAgB,0BAA0B,CACxC,wBAAwB,EAAE,MAAM,EAAE,GAAG,SAAS,EAC9C,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,EAAE,CAoBV;AA0DD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoN7D"}
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAexC,OAAO,EAA+B,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACnG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAQ3D,wBAAgB,mCAAmC,CAAC,OAAO,EAAE;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC,GAAG,qBAAqB,CAkBxB;AAED,wBAAgB,oCAAoC,CAAC,WAAW,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxG;AAED,wBAAgB,0BAA0B,CACxC,wBAAwB,EAAE,MAAM,EAAE,GAAG,SAAS,EAC9C,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,EAAE,CAoBV;AAmFD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6N7D"}
@@ -3,6 +3,7 @@ import ora from 'ora';
3
3
  import { readFile } from 'node:fs/promises';
4
4
  import { join } from 'node:path';
5
5
  import { homedir } from 'node:os';
6
+ import { createConnection } from 'node:net';
6
7
  import { getGlobalOptions } from './types.js';
7
8
  import { loadConfig } from '../../config/loader.js';
8
9
  import { AntseedNode, BaseEscrowClient, loadOrCreateIdentity, identityToEvmAddress, getInstance } from '@antseed/node';
@@ -115,6 +116,28 @@ async function getLocalSeederInfo() {
115
116
  }
116
117
  return null;
117
118
  }
119
+ function isAddrInUseError(error) {
120
+ if (!(error instanceof Error)) {
121
+ return false;
122
+ }
123
+ return error.message.includes('EADDRINUSE');
124
+ }
125
+ async function isPortReachable(port, timeoutMs = 700) {
126
+ return await new Promise((resolve) => {
127
+ const socket = createConnection({ host: '127.0.0.1', port: Math.floor(port) });
128
+ let settled = false;
129
+ const finish = (reachable) => {
130
+ if (settled)
131
+ return;
132
+ settled = true;
133
+ socket.destroy();
134
+ resolve(reachable);
135
+ };
136
+ socket.once('connect', () => finish(true));
137
+ socket.once('error', () => finish(false));
138
+ socket.setTimeout(timeoutMs, () => finish(false));
139
+ });
140
+ }
118
141
  export function registerConnectCommand(program) {
119
142
  program
120
143
  .command('connect')
@@ -272,14 +295,22 @@ export function registerConnectCommand(program) {
272
295
  node,
273
296
  pinnedPeerId,
274
297
  });
298
+ let ownsProxyListener = false;
275
299
  try {
276
300
  await proxy.start();
301
+ ownsProxyListener = true;
277
302
  proxySpinner.succeed(chalk.green(`Proxy listening on http://localhost:${proxyPort}`));
278
303
  }
279
304
  catch (err) {
280
- proxySpinner.fail(chalk.red(`Failed to start proxy: ${err.message}`));
281
- await node.stop();
282
- process.exit(1);
305
+ if (isAddrInUseError(err) && await isPortReachable(proxyPort)) {
306
+ proxySpinner.succeed(chalk.yellow(`Proxy port ${proxyPort} already in use; reusing existing local proxy.`));
307
+ console.log(chalk.yellow('Proxy request logs will be emitted by the process that already owns this port.'));
308
+ }
309
+ else {
310
+ proxySpinner.fail(chalk.red(`Failed to start proxy: ${err.message}`));
311
+ await node.stop();
312
+ process.exit(1);
313
+ }
283
314
  }
284
315
  const proxyUrl = `http://localhost:${proxyPort}`;
285
316
  console.log('');
@@ -299,7 +330,9 @@ export function registerConnectCommand(program) {
299
330
  console.log('');
300
331
  setupShutdownHandler(async () => {
301
332
  nodeSpinner.start('Shutting down...');
302
- await proxy.stop();
333
+ if (ownsProxyListener) {
334
+ await proxy.stop();
335
+ }
303
336
  await node.stop();
304
337
  nodeSpinner.succeed('Disconnected. All sessions finalized.');
305
338
  });
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/cli/commands/connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/cli/commands/connect.ts"],"names":[],"mappings":"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"}
@@ -39,16 +39,23 @@ export declare class BuyerProxy {
39
39
  private readonly _pinnedPeerId;
40
40
  private _cachedPeers;
41
41
  private _cacheLastUpdatedAtMs;
42
+ private _peerRefreshPromise;
43
+ private _lastStaleCacheLogAtMs;
42
44
  private _bgRefreshHandle;
45
+ private _lastSuccessfulPeerId;
46
+ private _lastSuccessfulPeerByRouteKey;
43
47
  constructor(config: BuyerProxyConfig);
44
48
  start(): Promise<void>;
45
49
  stop(): Promise<void>;
46
50
  private _startBackgroundRefresh;
47
- private _mergePeers;
48
51
  private _replacePeers;
49
52
  private _evictPeer;
53
+ private _rememberSuccessfulPeer;
54
+ private _forgetSuccessfulPeer;
55
+ private _buildRouteKey;
50
56
  private _readLocalSeederFallback;
51
57
  private _discoverAndCachePeers;
58
+ private _refreshPeersNow;
52
59
  private _getPeers;
53
60
  private _formatPeerSelectionDiagnostics;
54
61
  private _handleRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"buyer-proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/buyer-proxy.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EAMT,MAAM,eAAe,CAAA;AACtB,OAAO,EAGL,KAAK,gBAAgB,EAErB,KAAK,uBAAuB,EAG7B,MAAM,wBAAwB,CAAA;AAE/B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,WAAW,CAAA;IACjB,kGAAkG;IAClG,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,yGAAyG;IACzG,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AA+BD,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,uBAAuB,GAAG,IAAI,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,cAAc,EAAE,QAAQ,EAAE,CAAA;IAC1B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;CACtD,CAAA;AA8FD,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,QAAQ,EAAE,EACjB,eAAe,EAAE,gBAAgB,GAAG,IAAI,EACxC,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAC9B,2BAA2B,CAoB7B;AAwWD;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAQ;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAElD,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,qBAAqB,CAAI;IACjC,OAAO,CAAC,gBAAgB,CAA8C;gBAE1D,MAAM,EAAE,gBAAgB;IAiB9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,UAAU;YASJ,wBAAwB;YAsDxB,sBAAsB;YAiBtB,SAAS;IA2BvB,OAAO,CAAC,+BAA+B;YAuBzB,cAAc;IA4M5B;;;;OAIG;YACW,eAAe;CAuM9B"}
1
+ {"version":3,"file":"buyer-proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/buyer-proxy.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EAMT,MAAM,eAAe,CAAA;AACtB,OAAO,EAGL,KAAK,gBAAgB,EAErB,KAAK,uBAAuB,EAG7B,MAAM,wBAAwB,CAAA;AAE/B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,WAAW,CAAA;IACjB,kGAAkG;IAClG,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,yGAAyG;IACzG,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AA+BD,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,uBAAuB,GAAG,IAAI,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,cAAc,EAAE,QAAQ,EAAE,CAAA;IAC1B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;CACtD,CAAA;AA2KD,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,QAAQ,EAAE,EACjB,eAAe,EAAE,gBAAgB,GAAG,IAAI,EACxC,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAC9B,2BAA2B,CAoB7B;AA0hBD;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAQ;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAElD,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,qBAAqB,CAAI;IACjC,OAAO,CAAC,mBAAmB,CAAmC;IAC9D,OAAO,CAAC,sBAAsB,CAAI;IAClC,OAAO,CAAC,gBAAgB,CAA8C;IACtE,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,6BAA6B,CAA4B;gBAErD,MAAM,EAAE,gBAAgB;IAiB9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,cAAc;YAwBR,wBAAwB;YAsDxB,sBAAsB;YAiBtB,gBAAgB;YAsBhB,SAAS;IA2BvB,OAAO,CAAC,+BAA+B;YAuBzB,cAAc;IA2U5B;;;;OAIG;YACW,eAAe;CAuP9B"}
@@ -10,6 +10,31 @@ function log(...args) {
10
10
  if (DEBUG())
11
11
  console.log('[proxy]', ...args);
12
12
  }
13
+ const CLAUDE_PROVIDER_PREFERENCE = ['claude-oauth', 'anthropic', 'claude-code'];
14
+ function inferPreferredProvidersForRequest(requestProtocol, requestedModel) {
15
+ const model = requestedModel?.trim().toLowerCase() ?? '';
16
+ if (model.length === 0) {
17
+ return [];
18
+ }
19
+ const providers = [];
20
+ const pushProvider = (value) => {
21
+ const provider = value?.trim().toLowerCase();
22
+ if (!provider || provider.length === 0 || providers.includes(provider)) {
23
+ return;
24
+ }
25
+ providers.push(provider);
26
+ };
27
+ const slashIndex = model.indexOf('/');
28
+ if (slashIndex > 0) {
29
+ pushProvider(model.slice(0, slashIndex));
30
+ }
31
+ if (requestProtocol === 'anthropic-messages' || model.startsWith('claude-') || model.includes('claude')) {
32
+ for (const provider of CLAUDE_PROVIDER_PREFERENCE) {
33
+ pushProvider(provider);
34
+ }
35
+ }
36
+ return providers;
37
+ }
13
38
  function getExplicitProviderOverride(request) {
14
39
  const provider = request.headers['x-antseed-provider']?.trim().toLowerCase();
15
40
  return provider && provider.length > 0 ? provider : null;
@@ -21,6 +46,13 @@ function getExplicitPeerIdOverride(request, sessionPinnedPeerId) {
21
46
  return header;
22
47
  return sessionPinnedPeerId?.toLowerCase() ?? null;
23
48
  }
49
+ function getPreferredPeerIdHint(request) {
50
+ const header = request.headers['x-antseed-prefer-peer']?.trim().toLowerCase();
51
+ if (!header || header.length === 0) {
52
+ return null;
53
+ }
54
+ return header;
55
+ }
24
56
  function getPeerProviderProtocols(peer, provider, requestedModel) {
25
57
  const fromMetadata = peer.providerModelApiProtocols?.[provider]?.models;
26
58
  if (fromMetadata) {
@@ -28,14 +60,11 @@ function getPeerProviderProtocols(peer, provider, requestedModel) {
28
60
  log(`Model match: peer ${peer.peerId.slice(0, 8)} provider=${provider} model="${requestedModel}" → [${fromMetadata[requestedModel].join(',')}]`);
29
61
  return Array.from(new Set(fromMetadata[requestedModel]));
30
62
  }
31
- // If the peer advertises specific models and the requested model is not among them, return empty
32
- // so this peer is filtered out in favour of peers that actually serve the model.
33
- if (requestedModel && Object.keys(fromMetadata).length > 0) {
34
- log(`Model filter: peer ${peer.peerId.slice(0, 8)} provider=${provider} model="${requestedModel}" not in [${Object.keys(fromMetadata).join(',')}] → filtered`);
35
- return [];
36
- }
37
63
  const merged = Object.values(fromMetadata).flat();
38
64
  if (merged.length > 0) {
65
+ if (requestedModel) {
66
+ log(`Model hint miss: peer ${peer.peerId.slice(0, 8)} provider=${provider} model="${requestedModel}" not in metadata; falling back to provider protocol set [${Array.from(new Set(merged)).join(',')}]`);
67
+ }
39
68
  return Array.from(new Set(merged));
40
69
  }
41
70
  }
@@ -43,6 +72,24 @@ function getPeerProviderProtocols(peer, provider, requestedModel) {
43
72
  log(`No metadata: peer ${peer.peerId.slice(0, 8)} provider=${provider} → inferred [${inferred.join(',')}]`);
44
73
  return inferred;
45
74
  }
75
+ function isProviderModelExplicitlyUnsupported(peer, provider, requestedModel) {
76
+ if (!requestedModel) {
77
+ return false;
78
+ }
79
+ const modelMatrix = peer.providerModelApiProtocols?.[provider]?.models;
80
+ if (!modelMatrix) {
81
+ return false;
82
+ }
83
+ const advertisedModels = Object.keys(modelMatrix);
84
+ if (advertisedModels.length === 0) {
85
+ return false;
86
+ }
87
+ if (Object.prototype.hasOwnProperty.call(modelMatrix, requestedModel)) {
88
+ return false;
89
+ }
90
+ log(`Model strict-miss: peer ${peer.peerId.slice(0, 8)} provider=${provider} does not advertise model="${requestedModel}"`);
91
+ return true;
92
+ }
46
93
  function resolvePeerRoutePlan(peer, requestProtocol, requestedModel, explicitProvider) {
47
94
  const providers = peer.providers
48
95
  .map((provider) => provider.trim().toLowerCase())
@@ -60,6 +107,9 @@ function resolvePeerRoutePlan(peer, requestProtocol, requestedModel, explicitPro
60
107
  }
61
108
  let transformedFallback = null;
62
109
  for (const provider of candidates) {
110
+ if (!explicitProvider && isProviderModelExplicitlyUnsupported(peer, provider, requestedModel)) {
111
+ continue;
112
+ }
63
113
  const supportedProtocols = getPeerProviderProtocols(peer, provider, requestedModel);
64
114
  const selection = selectTargetProtocolForRequest(requestProtocol, supportedProtocols);
65
115
  if (!selection) {
@@ -245,6 +295,162 @@ function extractRequestedModel(request) {
245
295
  return null;
246
296
  }
247
297
  }
298
+ function decodeJsonBody(body) {
299
+ if (!body || body.length === 0) {
300
+ return null;
301
+ }
302
+ try {
303
+ const parsed = JSON.parse(new TextDecoder().decode(body));
304
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
305
+ return null;
306
+ }
307
+ return parsed;
308
+ }
309
+ catch {
310
+ return null;
311
+ }
312
+ }
313
+ function summarizeMessageShape(messagesRaw) {
314
+ if (!Array.isArray(messagesRaw)) {
315
+ return 'msgShape=none';
316
+ }
317
+ const roleCounts = new Map();
318
+ const contentKindCounts = new Map();
319
+ const blockTypeCounts = new Map();
320
+ let invalidMessages = 0;
321
+ let firstRole = 'none';
322
+ let lastRole = 'none';
323
+ const bump = (map, key) => {
324
+ map.set(key, (map.get(key) ?? 0) + 1);
325
+ };
326
+ for (const entry of messagesRaw) {
327
+ if (!entry || typeof entry !== 'object' || Array.isArray(entry)) {
328
+ invalidMessages += 1;
329
+ continue;
330
+ }
331
+ const message = entry;
332
+ const role = typeof message.role === 'string' && message.role.trim().length > 0
333
+ ? message.role.trim().toLowerCase()
334
+ : 'invalid-role';
335
+ bump(roleCounts, role);
336
+ if (firstRole === 'none') {
337
+ firstRole = role;
338
+ }
339
+ lastRole = role;
340
+ const content = message.content;
341
+ if (typeof content === 'string') {
342
+ bump(contentKindCounts, 'string');
343
+ continue;
344
+ }
345
+ if (Array.isArray(content)) {
346
+ bump(contentKindCounts, 'array');
347
+ for (const block of content) {
348
+ if (!block || typeof block !== 'object' || Array.isArray(block)) {
349
+ bump(blockTypeCounts, 'invalid');
350
+ continue;
351
+ }
352
+ const blockType = typeof block.type === 'string'
353
+ ? String(block.type).trim().toLowerCase()
354
+ : 'missing-type';
355
+ bump(blockTypeCounts, blockType || 'missing-type');
356
+ }
357
+ continue;
358
+ }
359
+ if (content && typeof content === 'object') {
360
+ bump(contentKindCounts, 'object');
361
+ continue;
362
+ }
363
+ bump(contentKindCounts, 'other');
364
+ }
365
+ const joinMap = (map) => ([...map.entries()]
366
+ .sort((left, right) => left[0].localeCompare(right[0]))
367
+ .map(([key, value]) => `${key}:${String(value)}`)
368
+ .join(','));
369
+ const roleSummary = joinMap(roleCounts) || 'none';
370
+ const contentSummary = joinMap(contentKindCounts) || 'none';
371
+ const blockSummary = joinMap(blockTypeCounts) || 'none';
372
+ return [
373
+ `msgShape=roles{${roleSummary}}`,
374
+ `content{${contentSummary}}`,
375
+ `blocks{${blockSummary}}`,
376
+ `firstRole=${firstRole}`,
377
+ `lastRole=${lastRole}`,
378
+ `invalidMsgs=${String(invalidMessages)}`,
379
+ ].join(' ');
380
+ }
381
+ function summarizeRequestShape(request) {
382
+ const contentType = (request.headers['content-type'] ?? request.headers['Content-Type'] ?? '').toLowerCase();
383
+ const accept = (request.headers['accept'] ?? request.headers['Accept'] ?? '').toLowerCase();
384
+ const providerHeader = request.headers['x-antseed-provider'] ?? 'none';
385
+ const preferPeerHeader = request.headers['x-antseed-prefer-peer'] ?? 'none';
386
+ const model = extractRequestedModel(request) ?? 'none';
387
+ const wantsStreaming = requestWantsStreaming(request.headers, request.body);
388
+ const baseParts = [
389
+ `method=${request.method}`,
390
+ `path=${request.path}`,
391
+ `provider=${providerHeader}`,
392
+ `preferPeer=${preferPeerHeader}`,
393
+ `contentType=${contentType || 'none'}`,
394
+ `accept=${accept || 'none'}`,
395
+ `stream=${String(wantsStreaming)}`,
396
+ `model=${model}`,
397
+ `bodyBytes=${String(request.body.length)}`,
398
+ ];
399
+ const jsonBody = decodeJsonBody(request.body);
400
+ if (!jsonBody) {
401
+ return baseParts.join(' ');
402
+ }
403
+ const messagesRaw = jsonBody.messages;
404
+ const toolsRaw = jsonBody.tools;
405
+ const messageCount = Array.isArray(messagesRaw) ? messagesRaw.length : 0;
406
+ const toolCount = Array.isArray(toolsRaw) ? toolsRaw.length : 0;
407
+ const maxTokens = Number(jsonBody.max_tokens ?? jsonBody.maxTokens);
408
+ const keys = Object.keys(jsonBody).sort().join(',');
409
+ baseParts.push(`messages=${String(messageCount)}`);
410
+ baseParts.push(`tools=${String(toolCount)}`);
411
+ if (Number.isFinite(maxTokens) && maxTokens > 0) {
412
+ baseParts.push(`maxTokens=${String(Math.floor(maxTokens))}`);
413
+ }
414
+ if (keys.length > 0) {
415
+ baseParts.push(`keys=[${keys}]`);
416
+ }
417
+ baseParts.push(summarizeMessageShape(messagesRaw));
418
+ return baseParts.join(' ');
419
+ }
420
+ function summarizeErrorResponse(response) {
421
+ const contentType = (response.headers['content-type'] ?? '').toLowerCase();
422
+ if (!response.body || response.body.length === 0) {
423
+ return 'empty response body';
424
+ }
425
+ const raw = new TextDecoder().decode(response.body).trim();
426
+ if (raw.length === 0) {
427
+ return 'empty response body';
428
+ }
429
+ if (contentType.includes('application/json')) {
430
+ try {
431
+ const parsed = JSON.parse(raw);
432
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
433
+ const object = parsed;
434
+ const nestedError = object.error && typeof object.error === 'object' && !Array.isArray(object.error)
435
+ ? object.error
436
+ : null;
437
+ const message = ((typeof nestedError?.message === 'string' && nestedError.message)
438
+ || (typeof object.message === 'string' && object.message)
439
+ || (typeof object.detail === 'string' && object.detail));
440
+ if (message) {
441
+ return `message="${message}"`;
442
+ }
443
+ }
444
+ }
445
+ catch {
446
+ // fall through to raw snippet
447
+ }
448
+ }
449
+ const compact = raw.replace(/\s+/g, ' ');
450
+ const maxChars = 280;
451
+ const snippet = compact.length > maxChars ? `${compact.slice(0, maxChars)}...` : compact;
452
+ return `body="${snippet}"`;
453
+ }
248
454
  function toFiniteNumberOrNull(value) {
249
455
  return typeof value === 'number' && Number.isFinite(value) ? value : null;
250
456
  }
@@ -409,7 +615,11 @@ export class BuyerProxy {
409
615
  _pinnedPeerId;
410
616
  _cachedPeers = [];
411
617
  _cacheLastUpdatedAtMs = 0;
618
+ _peerRefreshPromise = null;
619
+ _lastStaleCacheLogAtMs = 0;
412
620
  _bgRefreshHandle = null;
621
+ _lastSuccessfulPeerId = null;
622
+ _lastSuccessfulPeerByRouteKey = new Map();
413
623
  constructor(config) {
414
624
  this._node = config.node;
415
625
  this._port = config.port;
@@ -447,28 +657,11 @@ export class BuyerProxy {
447
657
  }
448
658
  _startBackgroundRefresh() {
449
659
  this._bgRefreshHandle = setInterval(() => {
450
- this._node.discoverPeers().then((peers) => {
451
- if (peers.length > 0) {
452
- this._mergePeers(peers);
453
- }
454
- }).catch(() => { });
660
+ void this._refreshPeersNow().catch(() => {
661
+ // background refresh failure is non-fatal
662
+ });
455
663
  }, this._bgRefreshIntervalMs);
456
664
  }
457
- _mergePeers(incoming) {
458
- const existing = new Map(this._cachedPeers.map((p) => [p.peerId, p]));
459
- let added = 0;
460
- for (const p of incoming) {
461
- if (!existing.has(p.peerId)) {
462
- existing.set(p.peerId, p);
463
- added++;
464
- }
465
- }
466
- if (added > 0) {
467
- this._cachedPeers = Array.from(existing.values());
468
- this._cacheLastUpdatedAtMs = Date.now();
469
- log(`[background] Merged ${added} new peer(s) into cache (total: ${this._cachedPeers.length})`);
470
- }
471
- }
472
665
  _replacePeers(incoming) {
473
666
  this._cachedPeers = incoming;
474
667
  this._cacheLastUpdatedAtMs = Date.now();
@@ -481,6 +674,43 @@ export class BuyerProxy {
481
674
  log(`Evicted failing peer ${peerId.slice(0, 12)}... from cache (${this._cachedPeers.length} remaining)`);
482
675
  }
483
676
  }
677
+ _rememberSuccessfulPeer(routeKey, peerId) {
678
+ this._lastSuccessfulPeerId = peerId;
679
+ this._lastSuccessfulPeerByRouteKey.set(routeKey, peerId);
680
+ // Keep map bounded to prevent unbounded growth from long-running sessions.
681
+ const MAX_ROUTE_HISTORY = 200;
682
+ if (this._lastSuccessfulPeerByRouteKey.size > MAX_ROUTE_HISTORY) {
683
+ const oldestKey = this._lastSuccessfulPeerByRouteKey.keys().next().value;
684
+ if (typeof oldestKey === 'string') {
685
+ this._lastSuccessfulPeerByRouteKey.delete(oldestKey);
686
+ }
687
+ }
688
+ }
689
+ _forgetSuccessfulPeer(routeKey, peerId) {
690
+ const rememberedForRoute = this._lastSuccessfulPeerByRouteKey.get(routeKey);
691
+ if (rememberedForRoute === peerId) {
692
+ this._lastSuccessfulPeerByRouteKey.delete(routeKey);
693
+ }
694
+ if (this._lastSuccessfulPeerId === peerId) {
695
+ this._lastSuccessfulPeerId = null;
696
+ }
697
+ }
698
+ _buildRouteKey(path, requestProtocol, requestedModel, explicitProvider) {
699
+ const normalizedPath = path.split('?')[0]?.trim().toLowerCase() ?? '/';
700
+ const pathGroup = (normalizedPath.startsWith('/v1/messages')
701
+ ? '/v1/messages'
702
+ : normalizedPath.startsWith('/v1/chat/completions')
703
+ ? '/v1/chat/completions'
704
+ : normalizedPath.startsWith('/v1/models')
705
+ ? '/v1/models'
706
+ : normalizedPath);
707
+ return [
708
+ pathGroup,
709
+ requestProtocol ?? 'unknown-protocol',
710
+ requestedModel ?? 'unknown-model',
711
+ explicitProvider ?? 'auto-provider',
712
+ ].join('|');
713
+ }
484
714
  async _readLocalSeederFallback() {
485
715
  try {
486
716
  const raw = await readFile(DAEMON_STATE_FILE, 'utf-8');
@@ -539,29 +769,46 @@ export class BuyerProxy {
539
769
  }
540
770
  return peers;
541
771
  }
772
+ async _refreshPeersNow() {
773
+ if (this._peerRefreshPromise) {
774
+ return this._peerRefreshPromise;
775
+ }
776
+ const previousCachedPeers = this._cachedPeers;
777
+ this._peerRefreshPromise = (async () => {
778
+ const peers = await this._discoverAndCachePeers();
779
+ if (peers.length === 0 && previousCachedPeers.length > 0) {
780
+ // Preserve stale cache as fallback when discovery transiently fails.
781
+ log('Discovery returned 0 peers; keeping previous cached peers as fallback.');
782
+ this._replacePeers(previousCachedPeers);
783
+ return previousCachedPeers;
784
+ }
785
+ return peers;
786
+ })().finally(() => {
787
+ this._peerRefreshPromise = null;
788
+ });
789
+ return this._peerRefreshPromise;
790
+ }
542
791
  async _getPeers(options) {
543
792
  const forceRefresh = options?.forceRefresh === true;
544
793
  const cacheAgeMs = Date.now() - this._cacheLastUpdatedAtMs;
545
794
  const cacheFresh = this._cacheLastUpdatedAtMs > 0 && cacheAgeMs <= this._peerCacheTtlMs;
546
- const previousCachedPeers = this._cachedPeers;
547
- if (!forceRefresh && this._cachedPeers.length > 0 && cacheFresh) {
548
- return this._cachedPeers;
549
- }
550
- // Cache is empty, stale, or a forced refresh was requested.
551
- if (!forceRefresh && this._cachedPeers.length > 0) {
552
- log(`Peer cache stale (${cacheAgeMs}ms old); refreshing before routing.`);
553
- }
554
- else if (forceRefresh) {
795
+ if (forceRefresh) {
555
796
  log('Forcing peer refresh before routing.');
797
+ return this._refreshPeersNow();
556
798
  }
557
- const peers = await this._discoverAndCachePeers();
558
- if (peers.length === 0 && previousCachedPeers.length > 0) {
559
- // Preserve stale cache as fallback when discovery transiently fails.
560
- log('Discovery returned 0 peers; keeping previous cached peers as fallback.');
561
- this._replacePeers(previousCachedPeers);
562
- return previousCachedPeers;
799
+ if (this._cachedPeers.length > 0) {
800
+ if (cacheFresh) {
801
+ return this._cachedPeers;
802
+ }
803
+ const now = Date.now();
804
+ if (now - this._lastStaleCacheLogAtMs >= 10_000) {
805
+ this._lastStaleCacheLogAtMs = now;
806
+ log(`Peer cache stale (${cacheAgeMs}ms old); routing from cached peers.`);
807
+ }
808
+ return this._cachedPeers;
563
809
  }
564
- return peers;
810
+ // No cached peers yet — block on initial discovery.
811
+ return this._refreshPeersNow();
565
812
  }
566
813
  _formatPeerSelectionDiagnostics(peers) {
567
814
  if (peers.length === 0) {
@@ -611,6 +858,20 @@ export class BuyerProxy {
611
858
  headers,
612
859
  body: new Uint8Array(body),
613
860
  };
861
+ const clientAbortController = new AbortController();
862
+ const onClientAbort = () => {
863
+ if (clientAbortController.signal.aborted) {
864
+ return;
865
+ }
866
+ clientAbortController.abort();
867
+ log(`Client disconnected; aborting upstream request reqId=${serializedReq.requestId.slice(0, 8)}`);
868
+ };
869
+ req.once('aborted', onClientAbort);
870
+ res.once('close', () => {
871
+ if (!res.writableEnded) {
872
+ onClientAbort();
873
+ }
874
+ });
614
875
  // Discover peers
615
876
  const peers = await this._getPeers();
616
877
  if (peers.length === 0) {
@@ -624,6 +885,9 @@ export class BuyerProxy {
624
885
  log(`Routing: protocol=${requestProtocol ?? 'null'} model=${requestedModel ?? 'null'}`);
625
886
  const explicitProvider = getExplicitProviderOverride(serializedReq);
626
887
  const explicitPeerId = getExplicitPeerIdOverride(serializedReq, this._pinnedPeerId);
888
+ const preferredPeerId = getPreferredPeerIdHint(serializedReq);
889
+ log(`Routing hints: provider=${explicitProvider ?? 'auto'} pin-peer=${explicitPeerId ?? 'none'} prefer-peer=${preferredPeerId ?? 'none'}`);
890
+ const routeKey = this._buildRouteKey(serializedReq.path, requestProtocol, requestedModel, explicitProvider);
627
891
  const { candidatePeers, routePlanByPeerId, } = selectCandidatePeersForRouting(peers, requestProtocol, requestedModel, explicitProvider);
628
892
  let routingPeers = candidatePeers;
629
893
  let routingPlans = routePlanByPeerId;
@@ -648,9 +912,10 @@ export class BuyerProxy {
648
912
  }
649
913
  return;
650
914
  }
915
+ log(`Routing candidates: ${routingPeers.length} peer(s)`);
651
916
  // Select peer: explicit pin bypasses the router (and retry)
652
917
  const router = this._node.router;
653
- const RETRYABLE_STATUS_CODES = new Set([400, 404, 408, 429, 500, 502, 503, 504]);
918
+ const RETRYABLE_STATUS_CODES = new Set([408, 429, 500, 502, 503, 504]);
654
919
  if (explicitPeerId) {
655
920
  let pinnedRoutingPeers = routingPeers;
656
921
  let pinnedRoutePlans = routingPlans;
@@ -678,8 +943,9 @@ export class BuyerProxy {
678
943
  return;
679
944
  }
680
945
  log(`Using pinned peer ${selectedPeer.peerId.slice(0, 12)}...`);
681
- const result = await this._dispatchToPeer(res, serializedReq, selectedPeer, pinnedRoutePlans, requestProtocol, requestedModel, explicitProvider, router, RETRYABLE_STATUS_CODES);
946
+ const result = await this._dispatchToPeer(res, serializedReq, selectedPeer, routeKey, pinnedRoutePlans, requestProtocol, requestedModel, explicitProvider, router, RETRYABLE_STATUS_CODES, clientAbortController.signal);
682
947
  if (!result.done) {
948
+ this._forgetSuccessfulPeer(routeKey, selectedPeer.peerId);
683
949
  // Pinned peer returned a retryable error, but we don't retry — send error to client
684
950
  res.writeHead(result.statusCode, result.responseHeaders);
685
951
  res.end(result.responseBody);
@@ -689,16 +955,80 @@ export class BuyerProxy {
689
955
  // Non-pinned: retry with failover on provider errors
690
956
  const MAX_ATTEMPTS = 3;
691
957
  const triedPeerIds = new Set();
958
+ const preferredProviders = explicitProvider
959
+ ? []
960
+ : inferPreferredProvidersForRequest(requestProtocol, requestedModel);
961
+ const hasPreferredProviderCandidate = preferredProviders.length > 0
962
+ && routingPeers.some((peer) => {
963
+ const provider = routingPlans.get(peer.peerId)?.provider?.trim().toLowerCase();
964
+ return Boolean(provider && preferredProviders.includes(provider));
965
+ });
966
+ const restrictFailoverToPreferredProviders = preferredProviders.length > 0 && hasPreferredProviderCandidate;
967
+ if (restrictFailoverToPreferredProviders) {
968
+ log(`Provider-family failover lock active: [${preferredProviders.join(',')}]`);
969
+ }
692
970
  let lastStatusCode = 502;
693
971
  let lastResponseBody = null;
694
972
  let lastResponseHeaders = { 'content-type': 'text/plain' };
695
973
  for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {
696
- const availableCandidates = routingPeers.filter((p) => !triedPeerIds.has(p.peerId));
974
+ const availableCandidates = routingPeers.filter((peer) => {
975
+ if (triedPeerIds.has(peer.peerId)) {
976
+ return false;
977
+ }
978
+ if (!restrictFailoverToPreferredProviders) {
979
+ return true;
980
+ }
981
+ const provider = routingPlans.get(peer.peerId)?.provider?.trim().toLowerCase();
982
+ return Boolean(provider && preferredProviders.includes(provider));
983
+ });
697
984
  if (availableCandidates.length === 0)
698
985
  break;
699
986
  let selectedPeer = null;
700
- // Prefer local peers on first attempt
987
+ // Prefer a recently successful peer for the same request route.
701
988
  if (attempt === 0) {
989
+ const routePreferredPeerId = this._lastSuccessfulPeerByRouteKey.get(routeKey);
990
+ if (routePreferredPeerId) {
991
+ const remembered = availableCandidates.find((peer) => peer.peerId === routePreferredPeerId) ?? null;
992
+ if (remembered) {
993
+ selectedPeer = remembered;
994
+ log(`Reusing last successful route peer ${selectedPeer.peerId.slice(0, 12)}...`);
995
+ }
996
+ }
997
+ }
998
+ // Fallback to the latest globally successful peer.
999
+ if (!selectedPeer && attempt === 0 && this._lastSuccessfulPeerId && !requestedModel) {
1000
+ const remembered = availableCandidates.find((peer) => peer.peerId === this._lastSuccessfulPeerId) ?? null;
1001
+ if (remembered) {
1002
+ selectedPeer = remembered;
1003
+ log(`Reusing last successful peer ${selectedPeer.peerId.slice(0, 12)}...`);
1004
+ }
1005
+ }
1006
+ // Soft peer affinity: try caller-preferred peer first, but allow normal fallback.
1007
+ if (!selectedPeer && attempt === 0 && preferredPeerId) {
1008
+ const preferred = availableCandidates.find((peer) => peer.peerId.toLowerCase() === preferredPeerId) ?? null;
1009
+ if (preferred) {
1010
+ selectedPeer = preferred;
1011
+ log(`Preferring requested peer ${selectedPeer.peerId.slice(0, 12)}...`);
1012
+ }
1013
+ }
1014
+ // Strongly prefer providers that match the requested model family (e.g. claude-* -> claude/anthropic providers).
1015
+ if (!selectedPeer && attempt === 0 && preferredProviders.length > 0) {
1016
+ const providerMatchedPeers = availableCandidates.filter((peer) => {
1017
+ const plannedProvider = routingPlans.get(peer.peerId)?.provider?.trim().toLowerCase();
1018
+ return plannedProvider ? preferredProviders.includes(plannedProvider) : false;
1019
+ });
1020
+ if (providerMatchedPeers.length > 0) {
1021
+ selectedPeer = router
1022
+ ? router.selectPeer(serializedReq, providerMatchedPeers)
1023
+ : providerMatchedPeers[0] ?? null;
1024
+ if (selectedPeer) {
1025
+ const plannedProvider = routingPlans.get(selectedPeer.peerId)?.provider ?? 'unknown';
1026
+ log(`Preferring model-matched provider "${plannedProvider}" for model "${requestedModel ?? 'unknown'}"`);
1027
+ }
1028
+ }
1029
+ }
1030
+ // Prefer local peers on first attempt
1031
+ if (!selectedPeer && attempt === 0) {
702
1032
  const localPeers = availableCandidates.filter((peer) => isLoopbackPeer(peer));
703
1033
  if (localPeers.length > 0) {
704
1034
  selectedPeer = router
@@ -709,6 +1039,26 @@ export class BuyerProxy {
709
1039
  }
710
1040
  }
711
1041
  }
1042
+ // Prefer peers that can serve the request protocol directly without adapter transform.
1043
+ if (!selectedPeer && requestProtocol === 'anthropic-messages') {
1044
+ const shouldPreferDirect = !requestedModel || /claude|anthropic/i.test(requestedModel);
1045
+ if (shouldPreferDirect) {
1046
+ const directPeers = availableCandidates.filter((peer) => {
1047
+ const plan = routingPlans.get(peer.peerId);
1048
+ if (!plan)
1049
+ return false;
1050
+ return !plan.selection || !plan.selection.requiresTransform;
1051
+ });
1052
+ if (directPeers.length > 0) {
1053
+ selectedPeer = router
1054
+ ? router.selectPeer(serializedReq, directPeers)
1055
+ : directPeers[0] ?? null;
1056
+ if (selectedPeer) {
1057
+ log(`Preferring direct protocol peer ${selectedPeer.peerId.slice(0, 12)}...`);
1058
+ }
1059
+ }
1060
+ }
1061
+ }
712
1062
  if (!selectedPeer) {
713
1063
  selectedPeer = router
714
1064
  ? router.selectPeer(serializedReq, availableCandidates)
@@ -717,9 +1067,10 @@ export class BuyerProxy {
717
1067
  if (!selectedPeer)
718
1068
  break;
719
1069
  triedPeerIds.add(selectedPeer.peerId);
720
- const result = await this._dispatchToPeer(res, serializedReq, selectedPeer, routePlanByPeerId, requestProtocol, requestedModel, explicitProvider, router, RETRYABLE_STATUS_CODES);
1070
+ const result = await this._dispatchToPeer(res, serializedReq, selectedPeer, routeKey, routingPlans, requestProtocol, requestedModel, explicitProvider, router, RETRYABLE_STATUS_CODES, clientAbortController.signal);
721
1071
  if (result.done)
722
1072
  return;
1073
+ this._forgetSuccessfulPeer(routeKey, selectedPeer.peerId);
723
1074
  // Request failed with a retryable error — try another peer
724
1075
  lastStatusCode = result.statusCode;
725
1076
  lastResponseBody = result.responseBody;
@@ -748,13 +1099,13 @@ export class BuyerProxy {
748
1099
  * was sent to the client (success or non-retryable error), or retry info if the
749
1100
  * caller should try another peer.
750
1101
  */
751
- async _dispatchToPeer(res, serializedReq, selectedPeer, routePlanByPeerId, requestProtocol, requestedModel, explicitProvider, router, retryableStatusCodes) {
1102
+ async _dispatchToPeer(res, serializedReq, selectedPeer, routeKey, routePlanByPeerId, requestProtocol, requestedModel, explicitProvider, router, retryableStatusCodes, requestSignal) {
752
1103
  const selectedRoutePlan = routePlanByPeerId.get(selectedPeer.peerId)
753
1104
  ?? resolvePeerRoutePlan(selectedPeer, requestProtocol, requestedModel, explicitProvider);
754
1105
  if (!selectedRoutePlan) {
755
1106
  return { done: false, statusCode: 502, responseBody: Buffer.from('No compatible provider route'), responseHeaders: { 'content-type': 'text/plain' }, errorMessage: null };
756
1107
  }
757
- const { 'x-antseed-pin-peer': _pinPeer, ...headersForPeer } = serializedReq.headers;
1108
+ const { 'x-antseed-pin-peer': _pinPeer, 'x-antseed-prefer-peer': _preferPeer, ...headersForPeer } = serializedReq.headers;
758
1109
  let requestForPeer = {
759
1110
  ...serializedReq,
760
1111
  headers: {
@@ -793,6 +1144,7 @@ export class BuyerProxy {
793
1144
  return { done: true };
794
1145
  }
795
1146
  }
1147
+ log(`Outbound request shape: ${summarizeRequestShape(requestForPeer)}`);
796
1148
  log(`Routing to peer ${selectedPeer.peerId.slice(0, 12)}...`);
797
1149
  // Forward through P2P
798
1150
  const wantsStreaming = !forceDisableUpstreamStreaming
@@ -824,9 +1176,12 @@ export class BuyerProxy {
824
1176
  res.write(Buffer.from(chunk.data));
825
1177
  }
826
1178
  },
827
- });
1179
+ }, { signal: requestSignal });
828
1180
  const latencyMs = Date.now() - startTime;
829
1181
  log(`Response: ${response.statusCode} (${latencyMs}ms, ${response.body.length} bytes)`);
1182
+ if (response.statusCode >= 400) {
1183
+ log(`Upstream error detail: ${summarizeErrorResponse(response)}`);
1184
+ }
830
1185
  const telemetry = computeResponseTelemetry(requestForPeer, response.headers, response.body, selectedPeer);
831
1186
  if (router) {
832
1187
  router.onResult(selectedPeer, {
@@ -837,6 +1192,9 @@ export class BuyerProxy {
837
1192
  }
838
1193
  if (streamed) {
839
1194
  // Headers already sent to client, can't retry
1195
+ if (response.statusCode >= 200 && response.statusCode < 400) {
1196
+ this._rememberSuccessfulPeer(routeKey, selectedPeer.peerId);
1197
+ }
840
1198
  if (!res.writableEnded) {
841
1199
  res.end();
842
1200
  }
@@ -847,17 +1205,27 @@ export class BuyerProxy {
847
1205
  if (retryableStatusCodes.has(response.statusCode)) {
848
1206
  return { done: false, statusCode: response.statusCode, responseBody: Buffer.from(response.body), responseHeaders, errorMessage: null };
849
1207
  }
1208
+ if (response.statusCode >= 200 && response.statusCode < 400) {
1209
+ this._rememberSuccessfulPeer(routeKey, selectedPeer.peerId);
1210
+ }
850
1211
  res.writeHead(response.statusCode, responseHeaders);
851
1212
  res.end(Buffer.from(response.body));
852
1213
  return { done: true };
853
1214
  }
854
1215
  else {
855
- let response = await this._node.sendRequest(selectedPeer, requestForPeer);
1216
+ const upstreamResponse = await this._node.sendRequest(selectedPeer, requestForPeer, { signal: requestSignal });
1217
+ if (upstreamResponse.statusCode >= 400) {
1218
+ log(`Upstream raw error detail: ${summarizeErrorResponse(upstreamResponse)}`);
1219
+ }
1220
+ let response = upstreamResponse;
856
1221
  if (adaptResponse) {
857
1222
  response = adaptResponse(response);
858
1223
  }
859
1224
  const latencyMs = Date.now() - startTime;
860
1225
  log(`Response: ${response.statusCode} (${latencyMs}ms, ${response.body.length} bytes)`);
1226
+ if (response.statusCode >= 400) {
1227
+ log(`Upstream error detail: ${summarizeErrorResponse(response)}`);
1228
+ }
861
1229
  const telemetry = computeResponseTelemetry(requestForPeer, response.headers, response.body, selectedPeer);
862
1230
  const responseHeaders = attachAntseedTelemetryHeaders(response.headers, selectedPeer, telemetry, requestForPeer.requestId, latencyMs);
863
1231
  // Report result to router for learning
@@ -872,6 +1240,9 @@ export class BuyerProxy {
872
1240
  if (retryableStatusCodes.has(response.statusCode)) {
873
1241
  return { done: false, statusCode: response.statusCode, responseBody: Buffer.from(response.body), responseHeaders, errorMessage: null };
874
1242
  }
1243
+ if (response.statusCode >= 200 && response.statusCode < 400) {
1244
+ this._rememberSuccessfulPeer(routeKey, selectedPeer.peerId);
1245
+ }
875
1246
  // Forward response headers and body to the HTTP client
876
1247
  res.writeHead(response.statusCode, responseHeaders);
877
1248
  res.end(Buffer.from(response.body));
@@ -881,7 +1252,18 @@ export class BuyerProxy {
881
1252
  catch (err) {
882
1253
  const latencyMs = Date.now() - startTime;
883
1254
  const message = err instanceof Error ? err.message : String(err);
1255
+ const abortedLocally = requestSignal.aborted || /\baborted\b/i.test(message);
884
1256
  log(`Request failed after ${latencyMs}ms: ${message}`);
1257
+ if (abortedLocally) {
1258
+ log(`Request ${requestForPeer.requestId.slice(0, 8)} aborted locally; skipping retry, router penalty, and peer eviction.`);
1259
+ if (res.headersSent) {
1260
+ if (!res.writableEnded) {
1261
+ res.end();
1262
+ }
1263
+ return { done: true };
1264
+ }
1265
+ return { done: true };
1266
+ }
885
1267
  if (router) {
886
1268
  router.onResult(selectedPeer, {
887
1269
  success: false,
@@ -889,8 +1271,18 @@ export class BuyerProxy {
889
1271
  tokens: 0,
890
1272
  });
891
1273
  }
892
- // Evict only the failing peer others remain usable
893
- this._evictPeer(selectedPeer.peerId);
1274
+ // Avoid poisoning routing cache from control-plane model enumeration failures.
1275
+ // Some peers can time out on /v1/models while still serving inference paths.
1276
+ const normalizedPath = requestForPeer.path.toLowerCase();
1277
+ const isControlPlaneModelsRequest = normalizedPath.startsWith('/v1/models');
1278
+ if (isControlPlaneModelsRequest) {
1279
+ log(`Skipping peer eviction for control-plane failure on ${requestForPeer.path}`);
1280
+ }
1281
+ else {
1282
+ // Evict only the failing peer — others remain usable.
1283
+ this._evictPeer(selectedPeer.peerId);
1284
+ }
1285
+ this._forgetSuccessfulPeer(routeKey, selectedPeer.peerId);
894
1286
  if (res.headersSent) {
895
1287
  // Headers already sent (streaming), can't retry
896
1288
  if (!res.writableEnded) {
@@ -1 +1 @@
1
- {"version":3,"file":"buyer-proxy.js","sourceRoot":"","sources":["../../src/proxy/buyer-proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buyer-proxy.js","sourceRoot":"","sources":["../../src/proxy/buyer-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA0D,MAAM,WAAW,CAAA;AAChG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAUjC,OAAO,EACL,6BAA6B,EAC7B,qCAAqC,EAErC,8BAA8B,EAE9B,6CAA6C,EAC7C,6CAA6C,GAC9C,MAAM,wBAAwB,CAAA;AAiB/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAA;AAE1E,MAAM,KAAK,GAAG,GAAG,EAAE,CACjB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;AAEhG,SAAS,GAAG,CAAC,GAAG,IAAe;IAC7B,IAAI,KAAK,EAAE;QAAE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAA;AAC9C,CAAC;AAgCD,MAAM,0BAA0B,GAAG,CAAC,cAAc,EAAE,WAAW,EAAE,aAAa,CAAU,CAAA;AAExF,SAAS,iCAAiC,CACxC,eAAwC,EACxC,cAA6B;IAE7B,MAAM,KAAK,GAAG,cAAc,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAA;IACxD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,MAAM,YAAY,GAAG,CAAC,KAAgC,EAAQ,EAAE;QAC9D,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAC5C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvE,OAAM;QACR,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACrC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,eAAe,KAAK,oBAAoB,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxG,KAAK,MAAM,QAAQ,IAAI,0BAA0B,EAAE,CAAC;YAClD,YAAY,CAAC,QAAQ,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,2BAA2B,CAAC,OAA8B;IACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC5E,OAAO,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;AAC1D,CAAC;AAED,SAAS,yBAAyB,CAChC,OAA8B,EAC9B,mBAAuC;IAEvC,qDAAqD;IACrD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC1E,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAA;IAC9C,OAAO,mBAAmB,EAAE,WAAW,EAAE,IAAI,IAAI,CAAA;AACnD,CAAC;AAED,SAAS,sBAAsB,CAAC,OAA8B;IAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC7E,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,wBAAwB,CAC/B,IAAc,EACd,QAAgB,EAChB,cAA6B;IAE7B,MAAM,YAAY,GAChB,IAGD,CAAC,yBAAyB,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC/C,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,cAAc,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;YAC3D,GAAG,CAAC,qBAAqB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,QAAQ,WAAW,cAAc,QAAQ,YAAY,CAAC,cAAc,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACjJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,cAAc,CAAE,CAAC,CAAC,CAAA;QAC3D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAA;QACjD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,cAAc,EAAE,CAAC;gBACnB,GAAG,CACD,yBAAyB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,QAAQ,WAAW,cAAc,6DAA6D,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CACpM,CAAA;YACH,CAAC;YACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,qCAAqC,CAAC,QAAQ,CAAC,CAAA;IAChE,GAAG,CAAC,qBAAqB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,QAAQ,gBAAgB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3G,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,oCAAoC,CAC3C,IAAc,EACd,QAAgB,EAChB,cAA6B;IAE7B,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,WAAW,GACf,IAGD,CAAC,yBAAyB,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAE/C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACjD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC;QACtE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,GAAG,CACD,2BAA2B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,QAAQ,8BAA8B,cAAc,GAAG,CACvH,CAAA;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAc,EACd,eAAwC,EACxC,cAA6B,EAC7B,gBAA+B;IAE/B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;SAC7B,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAChD,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAE5C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,gBAAgB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEpE,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;QAC9B,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IACxD,CAAC;IAED,IAAI,mBAAmB,GAAiC,IAAI,CAAA;IAC5D,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,gBAAgB,IAAI,oCAAoC,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,EAAE,CAAC;YAC9F,SAAQ;QACV,CAAC;QACD,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAA;QACnF,MAAM,SAAS,GAAG,8BAA8B,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAA;QACrF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;YACjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA;QAChC,CAAC;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,mBAAmB,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,mBAAmB,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,KAAiB,EACjB,eAAwC,EACxC,cAA6B,EAC7B,gBAA+B;IAE/B,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAiC,CAAA;IAClE,IAAI,CAAC,eAAe,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,OAAO;YACL,cAAc,EAAE,KAAK;YACrB,iBAAiB;SAClB,CAAA;IACH,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3C,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAA;QAC1F,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAA;QACvB,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACxC,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,cAAc;QACd,iBAAiB;KAClB,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,CAAA;IACV,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;AAC3B,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAA;IAC5D,CAAC;IAED,MAAM,KAAK,GAAG,KAAgC,CAAA;IAC9C,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACjG,IAAI,KAAK,GAAG,eAAe,CACzB,KAAK,CAAC,WAAW;WACd,KAAK,CAAC,YAAY;WAClB,KAAK,CAAC,YAAY;WAClB,KAAK,CAAC,aAAa;WACnB,KAAK,CAAC,iBAAiB;WACvB,KAAK,CAAC,kBAAkB;WACxB,KAAK,CAAC,2BAA2B;WACjC,KAAK,CAAC,uBAAuB,CACjC,CAAA;IACD,IAAI,MAAM,GAAG,eAAe,CAC1B,KAAK,CAAC,YAAY;WACf,KAAK,CAAC,aAAa;WACnB,KAAK,CAAC,gBAAgB;WACtB,KAAK,CAAC,iBAAiB;WACvB,KAAK,CAAC,kBAAkB;WACxB,KAAK,CAAC,sBAAsB,CAChC,CAAA;IAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,GAAG,KAAK,CAAA;QAChB,CAAC;aAAM,IAAI,MAAM,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;YACvD,MAAM,GAAG,KAAK,GAAG,KAAK,CAAA;QACxB,CAAC;aAAM,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;YACxD,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA;QACxB,CAAC;IACH,CAAC;IAED,OAAO;QACL,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,KAAK,GAAG,MAAM;KAC5B,CAAA;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAkB,EAAE,WAAmB;IACtE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACxE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC1E,OAAO;QACL,WAAW;QACX,YAAY;QACZ,WAAW,EAAE,WAAW,GAAG,YAAY;QACvC,MAAM,EAAE,WAAW;KACpB,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAgB;IACrC,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9B,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,IAAI,WAAW,GAAG,CAAC,CAAA;IAEnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAC3B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,SAAQ;QAE1C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACvC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,QAAQ;YAAE,SAAQ;QAE1D,IAAI,MAA+B,CAAA;QACnC,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAA;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,SAAQ;QACV,CAAC;QAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAClD,IAAI,WAAW,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAChC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;YAC5D,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;YAC/D,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;QAC9D,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAC9B,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAE,OAAmC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACtI,IAAI,YAAY,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACjC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,WAAW,CAAC,CAAA;YAC7D,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,CAAA;YAChE,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,WAAW,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC;IAED,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,WAAW,GAAG,WAAW,GAAG,YAAY,CAAA;IAC1C,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,CAAA;AACnD,CAAC;AAED,SAAS,cAAc,CAAC,IAAgB;IACtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAA4B,CAAA;QACpF,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC7C,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,MAAM,CAAA;QACf,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAC9B,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,gBAAgB,CAAE,OAAmC,CAAC,KAAK,CAAC,CAAA;YAC3E,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO,MAAM,CAAA;YACf,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAC5B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,gBAAgB,CAAE,MAAkC,CAAC,KAAK,CAAC,CAAA;YAC1E,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO,MAAM,CAAA;YACf,CAAC;QACH,CAAC;QAED,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAA;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAA;IAC5D,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAc,EAAE,OAA8B;IACzE,MAAM,QAAQ,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAA;IACrD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACpF,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAA;IACvC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,WAAW,EAAE,CAAA;IAC5B,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,qBAAqB,CAAC,OAA8B;IAC3D,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC5G,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAA4B,CAAA;QAC5F,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;QACrB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAgB;IACtC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAY,CAAA;QACpE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,MAAiC,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,WAAoB;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC5C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAA;IACnD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAA;IACjD,IAAI,eAAe,GAAG,CAAC,CAAA;IACvB,IAAI,SAAS,GAAG,MAAM,CAAA;IACtB,IAAI,QAAQ,GAAG,MAAM,CAAA;IAErB,MAAM,IAAI,GAAG,CAAC,GAAwB,EAAE,GAAW,EAAQ,EAAE;QAC3D,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACvC,CAAC,CAAA;IAED,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,eAAe,IAAI,CAAC,CAAA;YACpB,SAAQ;QACV,CAAC;QAED,MAAM,OAAO,GAAG,KAAgC,CAAA;QAChD,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAC7E,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,CAAC,CAAC,cAAc,CAAA;QAClB,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QACtB,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC;QACD,QAAQ,GAAG,IAAI,CAAA;QAEf,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;YACjC,SAAQ;QACV,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;YAChC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAA;oBAChC,SAAQ;gBACV,CAAC;gBACD,MAAM,SAAS,GAAG,OAAQ,KAAiC,CAAC,IAAI,KAAK,QAAQ;oBAC3E,CAAC,CAAC,MAAM,CAAE,KAAiC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;oBACtE,CAAC,CAAC,cAAc,CAAA;gBAClB,IAAI,CAAC,eAAe,EAAE,SAAS,IAAI,cAAc,CAAC,CAAA;YACpD,CAAC;YACD,SAAQ;QACV,CAAC;QACD,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;YACjC,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,GAAwB,EAAU,EAAE,CAAC,CACpD,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;SACf,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACtD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;SAChD,IAAI,CAAC,GAAG,CAAC,CACb,CAAA;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,MAAM,CAAA;IACjD,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAAA;IAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,MAAM,CAAA;IAEvD,OAAO;QACL,kBAAkB,WAAW,GAAG;QAChC,WAAW,cAAc,GAAG;QAC5B,UAAU,YAAY,GAAG;QACzB,aAAa,SAAS,EAAE;QACxB,YAAY,QAAQ,EAAE;QACtB,eAAe,MAAM,CAAC,eAAe,CAAC,EAAE;KACzC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACb,CAAC;AAED,SAAS,qBAAqB,CAAC,OAA8B;IAC3D,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC5G,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC3F,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,MAAM,CAAA;IACtE,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,MAAM,CAAA;IAC3E,MAAM,KAAK,GAAG,qBAAqB,CAAC,OAAO,CAAC,IAAI,MAAM,CAAA;IACtD,MAAM,cAAc,GAAG,qBAAqB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAE3E,MAAM,SAAS,GAAG;QAChB,UAAU,OAAO,CAAC,MAAM,EAAE;QAC1B,QAAQ,OAAO,CAAC,IAAI,EAAE;QACtB,YAAY,cAAc,EAAE;QAC5B,cAAc,gBAAgB,EAAE;QAChC,eAAe,WAAW,IAAI,MAAM,EAAE;QACtC,UAAU,MAAM,IAAI,MAAM,EAAE;QAC5B,UAAU,MAAM,CAAC,cAAc,CAAC,EAAE;QAClC,SAAS,KAAK,EAAE;QAChB,aAAa,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;KAC3C,CAAA;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAA;IACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAA;IAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACxE,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAA;IACnE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEnD,SAAS,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;IAClD,SAAS,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IAC5C,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAChD,SAAS,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAA;IAC9D,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,SAAS,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,CAAA;IAClC,CAAC;IACD,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAA;IAElD,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgC;IAC9D,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC1E,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,qBAAqB,CAAA;IAC9B,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1D,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,qBAAqB,CAAA;IAC9B,CAAC;IAED,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAA;YACzC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnE,MAAM,MAAM,GAAG,MAAiC,CAAA;gBAChD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;oBAClG,CAAC,CAAE,MAAM,CAAC,KAAiC;oBAC3C,CAAC,CAAC,IAAI,CAAA;gBACR,MAAM,OAAO,GAAG,CACd,CAAC,OAAO,WAAW,EAAE,OAAO,KAAK,QAAQ,IAAI,WAAW,CAAC,OAAO,CAAC;uBAC9D,CAAC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC;uBACtD,CAAC,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,CACxD,CAAA;gBACD,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,YAAY,OAAO,GAAG,CAAA;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,8BAA8B;QAChC,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACxC,MAAM,QAAQ,GAAG,GAAG,CAAA;IACpB,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAA;IACxF,OAAO,SAAS,OAAO,GAAG,CAAA;AAC5B,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;AAC3E,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAA+B,EAC/B,IAAY,EACZ,KAAc;IAEd,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAC1C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,OAA+B,EAAE,YAAsB;IACrF,OAAO,CAAC,mBAAmB,CAAC,GAAG,YAAY,CAAC,MAAM,CAAA;IAClD,IAAI,YAAY,CAAC,aAAa,EAAE,CAAC;QAC/B,OAAO,CAAC,wBAAwB,CAAC,GAAG,YAAY,CAAC,aAAa,CAAA;IAChE,CAAC;IACD,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,0BAA0B,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACxE,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAc,EAAE,QAAgB,EAAE,KAAoB;IAChF,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;IACxD,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACxE,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO;gBACL,kBAAkB,EAAE,oBAAoB,CAAC,YAAY,CAAC,kBAAkB,CAAC;gBACzE,mBAAmB,EAAE,oBAAoB,CAAC,YAAY,CAAC,mBAAmB,CAAC;aAC5E,CAAA;QACH,CAAC;QACD,OAAO;YACL,kBAAkB,EAAE,oBAAoB,CAAC,eAAe,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACrF,mBAAmB,EAAE,oBAAoB,CAAC,eAAe,CAAC,QAAQ,CAAC,mBAAmB,CAAC;SACxF,CAAA;IACH,CAAC;IAED,OAAO;QACL,kBAAkB,EAAE,oBAAoB,CAAC,IAAI,CAAC,yBAAyB,CAAC;QACxE,mBAAmB,EAAE,oBAAoB,CAAC,IAAI,CAAC,0BAA0B,CAAC;KAC3E,CAAA;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,OAA8B,EAC9B,eAAuC,EACvC,YAAwB,EACxB,YAAsB;IAEtB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAC3D,MAAM,KAAK,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAC5C,MAAM,OAAO,GAAG,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IACjE,MAAM,WAAW,GAAG,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAEzE,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC7D,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC;QAC7B,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;IAEhC,IAAI,KAAwB,CAAA;IAC5B,IAAI,aAAa,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;QAClC,KAAK,GAAG;YACN,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,YAAY,EAAE,aAAa,CAAC,YAAY;YACxC,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,MAAM,EAAE,OAAO;SAChB,CAAA;IACH,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;IAC3E,CAAC;IAED,IAAI,gBAAgB,GAAkB,IAAI,CAAA;IAC1C,IACE,OAAO,CAAC,kBAAkB,KAAK,IAAI;QACnC,OAAO,CAAC,mBAAmB,KAAK,IAAI;QACpC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC;QAC3C,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAC5C,CAAC;QACD,gBAAgB;YACd,CAAC,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC,kBAAkB,GAAG,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAA;IACnH,CAAC;IAED,OAAO;QACL,KAAK;QACL,OAAO,EAAE;YACP,QAAQ;YACR,KAAK;YACL,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;SACjD;QACD,gBAAgB;KACjB,CAAA;AACH,CAAC;AAED,SAAS,6BAA6B,CACpC,eAAuC,EACvC,YAAsB,EACtB,SAA4B,EAC5B,SAAiB,EACjB,SAAiB;IAEjB,MAAM,OAAO,GAA2B,EAAE,GAAG,eAAe,EAAE,CAAA;IAC9D,OAAO,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAAA;IAC3C,OAAO,CAAC,sBAAsB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC5E,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;IAC7C,qBAAqB,CAAC,OAAO,EAAE,2BAA2B,EAAE,YAAY,CAAC,eAAe,CAAC,CAAA;IACzF,qBAAqB,CAAC,OAAO,EAAE,4BAA4B,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;IACrF,qBAAqB,CAAC,OAAO,EAAE,6BAA6B,EAAE,YAAY,CAAC,WAAW,CAAC,CAAA;IACvF,qBAAqB,CAAC,OAAO,EAAE,gCAAgC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAA;IAC7F,OAAO,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAA;IAC1D,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC5B,OAAO,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAA;IACtD,CAAC;IACD,qBAAqB,CAAC,OAAO,EAAE,iCAAiC,EAAE,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACvG,qBAAqB,CAAC,OAAO,EAAE,kCAAkC,EAAE,SAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACzG,OAAO,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAA;IAC1D,OAAO,CAAC,wBAAwB,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACvE,OAAO,CAAC,yBAAyB,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACzE,OAAO,CAAC,wBAAwB,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACvE,IAAI,SAAS,CAAC,gBAAgB,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACvF,OAAO,CAAC,8BAA8B,CAAC,GAAG,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACjF,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,6BAA6B,CACpC,eAAuC,EACvC,YAAsB,EACtB,SAAiB;IAEjB,MAAM,OAAO,GAA2B,EAAE,GAAG,eAAe,EAAE,CAAA;IAC9D,OAAO,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAAA;IAC3C,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;IAC7C,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,OAA+B,EAAE,IAAgB;IAC9E,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC3E,IAAI,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC5F,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAA4B,CAAA;QACpF,OAAO,MAAM,CAAC,MAAM,KAAK,IAAI,CAAA;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe;IAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;IAC9B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAEnC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAChC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3D,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACpC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;IAC5C,CAAC;IACD,OAAO,OAAO,CAAC,WAAW,EAAE,CAAA;AAC9B,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,KAAK,CAAA;AACvE,CAAC;AAED,SAAS,cAAc,CAAC,IAAc;IACpC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACxB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACvD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAA;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,UAAU;IACJ,OAAO,CAAQ;IACf,KAAK,CAAa;IAClB,KAAK,CAAQ;IACb,oBAAoB,CAAQ;IAC5B,eAAe,CAAQ;IACvB,aAAa,CAAoB;IAE1C,YAAY,GAAe,EAAE,CAAA;IAC7B,qBAAqB,GAAG,CAAC,CAAA;IACzB,mBAAmB,GAA+B,IAAI,CAAA;IACtD,sBAAsB,GAAG,CAAC,CAAA;IAC1B,gBAAgB,GAA0C,IAAI,CAAA;IAC9D,qBAAqB,GAAkB,IAAI,CAAA;IAC3C,6BAA6B,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEjE,YAAY,MAAwB;QAClC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,2BAA2B,IAAI,CAAC,GAAG,MAAM,CAAA;QAC5E,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,CAAA;QACnE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,CAAA;QACvD,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACvC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC1C,GAAG,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAA;gBAC5B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBACrB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAA;gBACtD,CAAC;gBACD,GAAG,CAAC,GAAG,CAAC,gBAAgB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC7E,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAClC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE;gBAChD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBAC5C,OAAO,EAAE,CAAA;YACX,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,uBAAuB,EAAE,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;QAC9B,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,uBAAuB;QAC7B,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;YACvC,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;gBACtC,0CAA0C;YAC5C,CAAC,CAAC,CAAA;QACJ,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAC/B,CAAC;IAEO,aAAa,CAAC,QAAoB;QACxC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAA;QAC5B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACzC,CAAC;IAEO,UAAU,CAAC,MAAc;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;QACvC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;QACxE,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;YACtC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACvC,GAAG,CAAC,wBAAwB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,IAAI,CAAC,YAAY,CAAC,MAAM,aAAa,CAAC,CAAA;QAC1G,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,QAAgB,EAAE,MAAc;QAC9D,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAA;QACnC,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACxD,2EAA2E;QAC3E,MAAM,iBAAiB,GAAG,GAAG,CAAA;QAC7B,IAAI,IAAI,CAAC,6BAA6B,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC;YAChE,MAAM,SAAS,GAAG,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAA;YACxE,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAClC,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,qBAAqB,CAAC,QAAgB,EAAE,MAAc;QAC5D,MAAM,kBAAkB,GAAG,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC3E,IAAI,kBAAkB,KAAK,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACrD,CAAC;QACD,IAAI,IAAI,CAAC,qBAAqB,KAAK,MAAM,EAAE,CAAC;YAC1C,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAA;QACnC,CAAC;IACH,CAAC;IAEO,cAAc,CACpB,IAAY,EACZ,eAAwC,EACxC,cAA6B,EAC7B,gBAA+B;QAE/B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,GAAG,CAAA;QACtE,MAAM,SAAS,GAAG,CAChB,cAAc,CAAC,UAAU,CAAC,cAAc,CAAC;YACvC,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,sBAAsB,CAAC;gBACjD,CAAC,CAAC,sBAAsB;gBACxB,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC;oBACvC,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,cAAc,CACvB,CAAA;QACD,OAAO;YACL,SAAS;YACT,eAAe,IAAI,kBAAkB;YACrC,cAAc,IAAI,eAAe;YACjC,gBAAgB,IAAI,eAAe;SACpC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACb,CAAC;IAEO,KAAK,CAAC,wBAAwB;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAS5B,CAAA;YAED,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAA;YAC3C,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAA;YAE5F,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;YAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,aAAa,IAAI,CAAC,IAAI,aAAa,GAAG,KAAK;gBAAE,OAAO,IAAI,CAAA;YAE/F,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC9B,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;gBAClC,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,IAAI,CAAA;gBACb,CAAC;YACH,CAAC;YAED,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;gBACxF,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC1B,CAAC,CAAC,EAAE,CAAA;YACN,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAA;YAC1E,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAA;YAC5E,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ;gBAC1F,CAAC,CAAE,MAAM,CAAC,eAA+C;gBACzD,CAAC,CAAC,SAAS,CAAA;YAEb,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;YAE1C,OAAO;gBACL,MAAM,EAAE,MAA4B;gBACpC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;gBACpB,aAAa,EAAE,aAAa,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;gBACvD,SAAS;gBACT,yBAAyB,EAAE,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;gBACrG,0BAA0B,EAAE,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;gBACxG,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChD,CAAA;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAClC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAA;QACzD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;YACjC,GAAG,CAAC,sBAAsB,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,WAAW,CAAC,aAAa,wBAAwB,CAAC,CAAA;YACpH,OAAO,IAAI,CAAC,YAAY,CAAA;QAC1B,CAAC;QAED,GAAG,CAAC,8BAA8B,CAAC,CAAA;QACnC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAA;QAC9C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACzB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC,SAAS,KAAK,CAAC,MAAM,UAAU,CAAC,CAAA;QACtC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,mBAAmB,CAAA;QACjC,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAA;QAC7C,IAAI,CAAC,mBAAmB,GAAG,CAAC,KAAK,IAAI,EAAE;YACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAA;YACjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzD,qEAAqE;gBACrE,GAAG,CAAC,wEAAwE,CAAC,CAAA;gBAC7E,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAA;gBACvC,OAAO,mBAAmB,CAAA;YAC5B,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;QACjC,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,mBAAmB,CAAA;IACjC,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,OAAoC;QAC1D,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,KAAK,IAAI,CAAA;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAA;QAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,GAAG,CAAC,IAAI,UAAU,IAAI,IAAI,CAAC,eAAe,CAAA;QAEvF,IAAI,YAAY,EAAE,CAAC;YACjB,GAAG,CAAC,sCAAsC,CAAC,CAAA;YAC3C,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC,YAAY,CAAA;YAC1B,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACtB,IAAI,GAAG,GAAG,IAAI,CAAC,sBAAsB,IAAI,MAAM,EAAE,CAAC;gBAChD,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAA;gBACjC,GAAG,CAAC,qBAAqB,UAAU,qCAAqC,CAAC,CAAA;YAC3E,CAAC;YACD,OAAO,IAAI,CAAC,YAAY,CAAA;QAC1B,CAAC;QAED,oDAAoD;QACpD,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAA;IAChC,CAAC;IAEO,+BAA+B,CAAC,KAAiB;QACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,sBAAsB,CAAA;QAC/B,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,IAAc,EAAU,EAAE;YAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;iBAC7B,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;iBAClC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;YAChF,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;YACxF,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;YAChG,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;YAC9G,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;YAEjH,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,WAAW,KAAK,QAAQ,GAAG,YAAY,OAAO,OAAO,KAAK,QAAQ,MAAM,EAAE,CAAA;QACzJ,CAAC,CAAA;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;QACrE,OAAO,cAAc,KAAK,CAAC,MAAM,aAAa,OAAO,GAAG,MAAM,EAAE,CAAA;IAClE,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,GAAoB,EAAE,GAAmB;QACpE,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAA;QAClC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAA;QAE3B,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC,CAAA;QAExB,uBAAuB;QACvB,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAA;QAC9B,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAElC,2BAA2B;QAC3B,MAAM,OAAO,GAA2B,EAAE,CAAA;QAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;YACtB,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjC,CAAC;QACH,CAAC;QACD,2DAA2D;QAC3D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;QAEtB,MAAM,aAAa,GAA0B;YAC3C,SAAS,EAAE,UAAU,EAAE;YACvB,MAAM;YACN,IAAI;YACJ,OAAO;YACP,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC;SAC3B,CAAA;QACD,MAAM,qBAAqB,GAAG,IAAI,eAAe,EAAE,CAAA;QACnD,MAAM,aAAa,GAAG,GAAS,EAAE;YAC/B,IAAI,qBAAqB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACzC,OAAM;YACR,CAAC;YACD,qBAAqB,CAAC,KAAK,EAAE,CAAA;YAC7B,GAAG,CAAC,wDAAwD,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;QACpG,CAAC,CAAA;QACD,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAClC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvB,aAAa,EAAE,CAAA;YACjB,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,iBAAiB;QACjB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,sBAAsB,CAAC,CAAA;YAC3B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAA;YACpD,GAAG,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAA;YACpE,OAAM;QACR,CAAC;QAED,MAAM,eAAe,GAAG,6BAA6B,CAAC,aAAa,CAAC,CAAA;QACpE,MAAM,cAAc,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAA;QAC3D,GAAG,CAAC,qBAAqB,eAAe,IAAI,MAAM,UAAU,cAAc,IAAI,MAAM,EAAE,CAAC,CAAA;QACvF,MAAM,gBAAgB,GAAG,2BAA2B,CAAC,aAAa,CAAC,CAAA;QACnE,MAAM,cAAc,GAAG,yBAAyB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QACnF,MAAM,eAAe,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAA;QAC7D,GAAG,CACD,2BAA2B,gBAAgB,IAAI,MAAM,aAAa,cAAc,IAAI,MAAM,gBAAgB,eAAe,IAAI,MAAM,EAAE,CACtI,CAAA;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAA;QAC3G,MAAM,EACJ,cAAc,EACd,iBAAiB,GAClB,GAAG,8BAA8B,CAAC,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAA;QAE5F,IAAI,YAAY,GAAG,cAAc,CAAA;QACjC,IAAI,YAAY,GAAG,iBAAiB,CAAA;QACpC,IAAI,eAAe,GAAG,KAAK,CAAA;QAE3B,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,mGAAmG;YACnG,eAAe,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;YAC9D,MAAM,kBAAkB,GAAG,8BAA8B,CACvD,eAAe,EACf,eAAe,EACf,cAAc,EACd,gBAAgB,CACjB,CAAA;YACD,YAAY,GAAG,kBAAkB,CAAC,cAAc,CAAA;YAChD,YAAY,GAAG,kBAAkB,CAAC,iBAAiB,CAAA;QACrD,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,+BAA+B,CAAC,eAAe,CAAC,CAAA;YACzE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAA;YACpD,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,aAAa,GAAG,eAAe,CAAA;gBACrC,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,gBAAgB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;gBACnF,GAAG,CAAC,GAAG,CAAC,oBAAoB,aAAa,GAAG,aAAa,KAAK,WAAW,EAAE,CAAC,CAAA;YAC9E,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,GAAG,CAAC,gCAAgC,gBAAgB,MAAM,WAAW,EAAE,CAAC,CAAA;YAC9E,CAAC;YACD,OAAM;QACR,CAAC;QAED,GAAG,CAAC,uBAAuB,YAAY,CAAC,MAAM,UAAU,CAAC,CAAA;QAEzD,4DAA4D;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;QAChC,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QAEtE,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,kBAAkB,GAAG,YAAY,CAAA;YACrC,IAAI,gBAAgB,GAAG,YAAY,CAAA;YACnC,IAAI,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,IAAI,IAAI,CAAA;YAEpG,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,GAAG,CAAC,eAAe,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,oDAAoD,CAAC,CAAA;gBACnG,eAAe,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;gBAC9D,MAAM,kBAAkB,GAAG,8BAA8B,CACvD,eAAe,EACf,eAAe,EACf,cAAc,EACd,gBAAgB,CACjB,CAAA;gBACD,kBAAkB,GAAG,kBAAkB,CAAC,cAAc,CAAA;gBACtD,gBAAgB,GAAG,kBAAkB,CAAC,iBAAiB,CAAA;gBACvD,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,IAAI,IAAI,CAAA;YAClG,CAAC;YAED,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,aAAa,CAAA;gBACxG,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,CAAA;gBACnG,MAAM,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC,YAAY,eAAe,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAA;gBAC1F,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,YAAY,gBAAgB,EAAE,CAAC,CAAC,CAAC,eAAe,CAAA;gBACzF,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC,CAAC,YAAY,CAAA;gBAC5E,MAAM,YAAY,GAAG,cAAc;oBACjC,CAAC,CAAC,sDAAsD,aAAa,KAAK,aAAa,KAAK,UAAU,IAAI;oBAC1G,CAAC,CAAC,qCAAqC,CAAA;gBACzC,GAAG,CAAC,eAAe,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,oCAAoC,MAAM,GAAG,CAAC,CAAA;gBAC5F,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAA;gBACpD,GAAG,CAAC,GAAG,CAAC,eAAe,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,0DAA0D,YAAY,EAAE,CAAC,CAAA;gBAC3H,OAAM;YACR,CAAC;YACD,GAAG,CAAC,qBAAqB,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;YAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CACvC,GAAG,EACH,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,MAAM,EACN,sBAAsB,EACtB,qBAAqB,CAAC,MAAM,CAC7B,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;gBACzD,oFAAoF;gBACpF,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;gBACxD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;YAC9B,CAAC;YACD,OAAM;QACR,CAAC;QAED,qDAAqD;QACrD,MAAM,YAAY,GAAG,CAAC,CAAA;QACtB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;QACtC,MAAM,kBAAkB,GAAG,gBAAgB;YACzC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,iCAAiC,CAAC,eAAe,EAAE,cAAc,CAAC,CAAA;QACtE,MAAM,6BAA6B,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC;eAC9D,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;gBAC9E,OAAO,OAAO,CAAC,QAAQ,IAAI,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;YACnE,CAAC,CAAC,CAAA;QACJ,MAAM,oCAAoC,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,6BAA6B,CAAA;QAC3G,IAAI,oCAAoC,EAAE,CAAC;YACzC,GAAG,CAAC,0CAA0C,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAChF,CAAC;QACD,IAAI,cAAc,GAAG,GAAG,CAAA;QACxB,IAAI,gBAAgB,GAAkB,IAAI,CAAA;QAC1C,IAAI,mBAAmB,GAA2B,EAAE,cAAc,EAAE,YAAY,EAAE,CAAA;QAElF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC;YACxD,MAAM,mBAAmB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvD,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClC,OAAO,KAAK,CAAA;gBACd,CAAC;gBACD,IAAI,CAAC,oCAAoC,EAAE,CAAC;oBAC1C,OAAO,IAAI,CAAA;gBACb,CAAC;gBACD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;gBAC9E,OAAO,OAAO,CAAC,QAAQ,IAAI,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;YACnE,CAAC,CAAC,CAAA;YACF,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAK;YAE3C,IAAI,YAAY,GAAoB,IAAI,CAAA;YAExC,gEAAgE;YAChE,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,MAAM,oBAAoB,GAAG,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBAC7E,IAAI,oBAAoB,EAAE,CAAC;oBACzB,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,oBAAoB,CAAC,IAAI,IAAI,CAAA;oBACnG,IAAI,UAAU,EAAE,CAAC;wBACf,YAAY,GAAG,UAAU,CAAA;wBACzB,GAAG,CAAC,sCAAsC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;oBAClF,CAAC;gBACH,CAAC;YACH,CAAC;YAED,mDAAmD;YACnD,IAAI,CAAC,YAAY,IAAI,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpF,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAA;gBACzG,IAAI,UAAU,EAAE,CAAC;oBACf,YAAY,GAAG,UAAU,CAAA;oBACzB,GAAG,CAAC,gCAAgC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;gBAC5E,CAAC;YACH,CAAC;YAED,kFAAkF;YAClF,IAAI,CAAC,YAAY,IAAI,OAAO,KAAK,CAAC,IAAI,eAAe,EAAE,CAAC;gBACtD,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,eAAe,CAAC,IAAI,IAAI,CAAA;gBAC3G,IAAI,SAAS,EAAE,CAAC;oBACd,YAAY,GAAG,SAAS,CAAA;oBACxB,GAAG,CAAC,6BAA6B,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;gBACzE,CAAC;YACH,CAAC;YAED,iHAAiH;YACjH,IAAI,CAAC,YAAY,IAAI,OAAO,KAAK,CAAC,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpE,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC/D,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;oBACrF,OAAO,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;gBAC/E,CAAC,CAAC,CAAA;gBACF,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpC,YAAY,GAAG,MAAM;wBACnB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,oBAAoB,CAAC;wBACxD,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;oBACnC,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,IAAI,SAAS,CAAA;wBACpF,GAAG,CACD,sCAAsC,eAAe,gBAAgB,cAAc,IAAI,SAAS,GAAG,CACpG,CAAA;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,sCAAsC;YACtC,IAAI,CAAC,YAAY,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBACnC,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC7E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,YAAY,GAAG,MAAM;wBACnB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC;wBAC9C,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;oBACzB,IAAI,YAAY,EAAE,CAAC;wBACjB,GAAG,CAAC,yBAAyB,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,YAAY,CAAC,aAAa,IAAI,SAAS,EAAE,CAAC,CAAA;oBAClH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,uFAAuF;YACvF,IAAI,CAAC,YAAY,IAAI,eAAe,KAAK,oBAAoB,EAAE,CAAC;gBAC9D,MAAM,kBAAkB,GAAG,CAAC,cAAc,IAAI,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;gBACtF,IAAI,kBAAkB,EAAE,CAAC;oBACvB,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;wBACtD,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;wBAC1C,IAAI,CAAC,IAAI;4BAAE,OAAO,KAAK,CAAA;wBACvB,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAA;oBAC7D,CAAC,CAAC,CAAA;oBACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC3B,YAAY,GAAG,MAAM;4BACnB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC;4BAC/C,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;wBAC1B,IAAI,YAAY,EAAE,CAAC;4BACjB,GAAG,CAAC,mCAAmC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;wBAC/E,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,YAAY,GAAG,MAAM;oBACnB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,mBAAmB,CAAC;oBACvD,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;YACpC,CAAC;YAED,IAAI,CAAC,YAAY;gBAAE,MAAK;YAExB,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;YAErC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CACvC,GAAG,EACH,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,MAAM,EACN,sBAAsB,EACtB,qBAAqB,CAAC,MAAM,CAC7B,CAAA;YAED,IAAI,MAAM,CAAC,IAAI;gBAAE,OAAM;YAEvB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;YACzD,2DAA2D;YAC3D,cAAc,GAAG,MAAM,CAAC,UAAU,CAAA;YAClC,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAA;YACtC,mBAAmB,GAAG,MAAM,CAAC,eAAe,CAAA;YAE5C,IAAI,OAAO,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC;gBAC/B,GAAG,CAAC,QAAQ,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,MAAM,CAAC,UAAU,yCAAyC,OAAO,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,CAAA;YACvJ,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,gBAAgB,EAAE,CAAC;gBACrB,GAAG,CAAC,OAAO,YAAY,CAAC,IAAI,0CAA0C,cAAc,GAAG,CAAC,CAAA;gBACxF,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAA;gBAClD,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,GAAG,IAAI,CAAC,+BAA+B,CAAC,YAAY,CAAC,CAAA;gBACtE,GAAG,CAAC,gCAAgC,CAAC,CAAA;gBACrC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAA;gBACpD,GAAG,CAAC,GAAG,CAAC,4CAA4C,WAAW,EAAE,CAAC,CAAA;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,eAAe,CAC3B,GAAmB,EACnB,aAAoC,EACpC,YAAsB,EACtB,QAAgB,EAChB,iBAAqD,EACrD,eAAwC,EACxC,cAA6B,EAC7B,gBAA+B,EAC/B,MAAqB,EACrB,oBAAiC,EACjC,aAA0B;QAK1B,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC;eAC/D,oBAAoB,CAAC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAA;QAE1F,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE,eAAe,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAA;QAC3K,CAAC;QAED,MAAM,EACJ,oBAAoB,EAAE,QAAQ,EAC9B,uBAAuB,EAAE,WAAW,EACpC,GAAG,cAAc,EAClB,GAAG,aAAa,CAAC,OAAO,CAAA;QACzB,IAAI,cAAc,GAA0B;YAC1C,GAAG,aAAa;YAChB,OAAO,EAAE;gBACP,GAAG,cAAc;gBACjB,oBAAoB,EAAE,iBAAiB,CAAC,QAAQ;aACjD;SACF,CAAA;QACD,IAAI,aAAa,GAA0E,IAAI,CAAA;QAC/F,IAAI,6BAA6B,GAAG,KAAK,CAAA;QAEzC,IAAI,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,EAAE,CAAC;YACnD,IACE,eAAe,KAAK,oBAAoB;mBACrC,iBAAiB,CAAC,SAAS,CAAC,cAAc,KAAK,yBAAyB,EAC3E,CAAC;gBACD,GAAG,CAAC,yFAAyF,iBAAiB,CAAC,QAAQ,GAAG,CAAC,CAAA;gBAC3H,MAAM,WAAW,GAAG,6CAA6C,CAAC,cAAc,CAAC,CAAA;gBACjF,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAA;oBACpD,GAAG,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAA;oBAC/E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACvB,CAAC;gBACD,cAAc,GAAG;oBACf,GAAG,WAAW,CAAC,OAAO;oBACtB,OAAO,EAAE;wBACP,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO;wBAC9B,oBAAoB,EAAE,iBAAiB,CAAC,QAAQ;qBACjD;iBACF,CAAA;gBACD,aAAa,GAAG,CAAC,QAAgC,EAAE,EAAE,CACnD,6CAA6C,CAAC,QAAQ,EAAE;oBACtD,eAAe,EAAE,WAAW,CAAC,eAAe;oBAC5C,aAAa,EAAE,WAAW,CAAC,cAAc;iBAC1C,CAAC,CAAA;gBACJ,6BAA6B,GAAG,IAAI,CAAA;YACtC,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAA;gBACpD,GAAG,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;gBACnD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;YACvB,CAAC;QACH,CAAC;QAED,GAAG,CAAC,2BAA2B,qBAAqB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;QACvE,GAAG,CAAC,mBAAmB,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;QAE7D,sBAAsB;QACtB,MAAM,cAAc,GAAG,CAAC,6BAA6B;eAChD,qBAAqB,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,CAAA;QACvE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC;YACH,IAAI,cAAc,EAAE,CAAC;gBACnB,IAAI,QAAQ,GAAG,KAAK,CAAA;gBACpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,EAAE,cAAc,EAAE;oBAChF,eAAe,EAAE,CAAC,aAAqC,EAAE,QAAuC,EAAE,EAAE;wBAClG,IAAI,CAAC,QAAQ,CAAC,SAAS;4BAAE,OAAM;wBAC/B,QAAQ,GAAG,IAAI,CAAA;wBACf,MAAM,gBAAgB,GAAG,6BAA6B,CACpD,aAAa,CAAC,OAAO,EACrB,YAAY,EACZ,cAAc,CAAC,SAAS,CACzB,CAAA;wBACD,6DAA6D;wBAC7D;uEAC+C;wBAC/C,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAA;wBACzD,+EAA+E;wBAC/E,+BAA+B;wBAC/B,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAClC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;wBAC5C,CAAC;oBACH,CAAC;oBACD,eAAe,EAAE,CAAC,KAAkC,EAAE,EAAE;wBACtD,IAAI,CAAC,QAAQ;4BAAE,OAAM;wBACrB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC1B,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;wBACpC,CAAC;oBACH,CAAC;iBACF,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;gBAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;gBACxC,GAAG,CAAC,aAAa,QAAQ,CAAC,UAAU,KAAK,SAAS,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,CAAA;gBACvF,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;oBAC/B,GAAG,CAAC,0BAA0B,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;gBACnE,CAAC;gBAED,MAAM,SAAS,GAAG,wBAAwB,CAAC,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;gBACzG,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE;wBAC5B,OAAO,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;wBACvD,SAAS;wBACT,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,WAAW;qBACpC,CAAC,CAAA;gBACJ,CAAC;gBAED,IAAI,QAAQ,EAAE,CAAC;oBACb,8CAA8C;oBAC9C,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,IAAI,QAAQ,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;wBAC5D,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;oBAC7D,CAAC;oBACD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;wBACvB,GAAG,CAAC,GAAG,EAAE,CAAA;oBACX,CAAC;oBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACvB,CAAC;gBAED,6CAA6C;gBAC7C,MAAM,eAAe,GAAG,6BAA6B,CACnD,QAAQ,CAAC,OAAO,EAChB,YAAY,EACZ,SAAS,EACT,cAAc,CAAC,SAAS,EACxB,SAAS,CACV,CAAA;gBACD,IAAI,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAClD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,CAAA;gBACxI,CAAC;gBAED,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,IAAI,QAAQ,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;oBAC5D,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;gBAC7D,CAAC;gBACD,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,CAAA;gBACnD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;gBACnC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;YACvB,CAAC;iBAAM,CAAC;gBACN,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;gBAC9G,IAAI,gBAAgB,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;oBACvC,GAAG,CAAC,8BAA8B,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;gBAC/E,CAAC;gBAED,IAAI,QAAQ,GAAG,gBAAgB,CAAA;gBAC/B,IAAI,aAAa,EAAE,CAAC;oBAClB,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;gBACpC,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;gBAExC,GAAG,CAAC,aAAa,QAAQ,CAAC,UAAU,KAAK,SAAS,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,CAAA;gBACvF,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;oBAC/B,GAAG,CAAC,0BAA0B,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;gBACnE,CAAC;gBAED,MAAM,SAAS,GAAG,wBAAwB,CAAC,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;gBACzG,MAAM,eAAe,GAAG,6BAA6B,CACnD,QAAQ,CAAC,OAAO,EAChB,YAAY,EACZ,SAAS,EACT,cAAc,CAAC,SAAS,EACxB,SAAS,CACV,CAAA;gBAED,uCAAuC;gBACvC,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE;wBAC5B,OAAO,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;wBACvD,SAAS;wBACT,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,WAAW;qBACpC,CAAC,CAAA;gBACJ,CAAC;gBAED,qBAAqB;gBACrB,IAAI,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAClD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,CAAA;gBACxI,CAAC;gBAED,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,IAAI,QAAQ,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;oBAC5D,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;gBAC7D,CAAC;gBACD,uDAAuD;gBACvD,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,CAAA;gBACnD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;gBACnC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;YACvB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;YACxC,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAChE,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC5E,GAAG,CAAC,wBAAwB,SAAS,OAAO,OAAO,EAAE,CAAC,CAAA;YAEtD,IAAI,cAAc,EAAE,CAAC;gBACnB,GAAG,CAAC,WAAW,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,sEAAsE,CAAC,CAAA;gBAC1H,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;oBACpB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;wBACvB,GAAG,CAAC,GAAG,EAAE,CAAA;oBACX,CAAC;oBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACvB,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;YACvB,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE;oBAC5B,OAAO,EAAE,KAAK;oBACd,SAAS;oBACT,MAAM,EAAE,CAAC;iBACV,CAAC,CAAA;YACJ,CAAC;YAED,+EAA+E;YAC/E,6EAA6E;YAC7E,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;YACxD,MAAM,2BAA2B,GAAG,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;YAC3E,IAAI,2BAA2B,EAAE,CAAC;gBAChC,GAAG,CAAC,uDAAuD,cAAc,CAAC,IAAI,EAAE,CAAC,CAAA;YACnF,CAAC;iBAAM,CAAC;gBACN,sDAAsD;gBACtD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;YACtC,CAAC;YACD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;YAEzD,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBACpB,gDAAgD;gBAChD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;oBACvB,GAAG,CAAC,GAAG,EAAE,CAAA;gBACX,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;YACvB,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,uBAAuB,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,CAAA;QAChL,CAAC;IACH,CAAC;CACF"}
@@ -38,4 +38,32 @@ test('selectCandidatePeersForRouting keeps all peers when no protocol or provide
38
38
  assert.deepEqual(result.candidatePeers.map((peer) => peer.peerId), peers.map((peer) => peer.peerId));
39
39
  assert.equal(result.routePlanByPeerId.size, 0);
40
40
  });
41
+ test('selectCandidatePeersForRouting excludes providers that explicitly do not advertise requested model', () => {
42
+ const openAiPeer = makePeer('a', ['openai']);
43
+ openAiPeer.providerModelApiProtocols = {
44
+ openai: {
45
+ models: {
46
+ 'gpt-4o': ['openai-chat-completions'],
47
+ },
48
+ },
49
+ };
50
+ const claudePeer = makePeer('b', ['claude-oauth']);
51
+ claudePeer.providerModelApiProtocols = {
52
+ 'claude-oauth': {
53
+ models: {
54
+ 'claude-opus-4-6': ['anthropic-messages'],
55
+ },
56
+ },
57
+ };
58
+ const result = selectCandidatePeersForRouting([openAiPeer, claudePeer], 'anthropic-messages', 'claude-opus-4-6', null);
59
+ assert.equal(result.candidatePeers.length, 1);
60
+ assert.equal(result.candidatePeers[0]?.peerId, claudePeer.peerId);
61
+ assert.equal(result.routePlanByPeerId.get(claudePeer.peerId)?.provider, 'claude-oauth');
62
+ });
63
+ test('selectCandidatePeersForRouting can still include peers without model protocol metadata', () => {
64
+ const peerWithoutMetadata = makePeer('a', ['openai']);
65
+ const result = selectCandidatePeersForRouting([peerWithoutMetadata], 'openai-chat-completions', 'gpt-4o', null);
66
+ assert.equal(result.candidatePeers.length, 1);
67
+ assert.equal(result.candidatePeers[0]?.peerId, peerWithoutMetadata.peerId);
68
+ });
41
69
  //# sourceMappingURL=buyer-proxy.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buyer-proxy.test.js","sourceRoot":"","sources":["../../src/proxy/buyer-proxy.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAA;AAEjE,SAAS,QAAQ,CAAC,IAAY,EAAE,SAAmB;IACjD,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAChE,OAAO;QACL,MAAM,EAAE,QAA8B;QACtC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;QACpB,SAAS;KACV,CAAA;AACH,CAAC;AAED,IAAI,CAAC,mGAAmG,EAAE,GAAG,EAAE;IAC7G,MAAM,KAAK,GAAG;QACZ,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;QAC5B,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;KAC1B,CAAA;IAED,MAAM,MAAM,GAAG,8BAA8B,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC1E,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAC7C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAChE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAChF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;AAC/E,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,4FAA4F,EAAE,GAAG,EAAE;IACtG,MAAM,KAAK,GAAG;QACZ,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;QAC5B,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;KAC7B,CAAA;IAED,MAAM,MAAM,GAAG,8BAA8B,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC1E,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAC7C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAChD,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,6FAA6F,EAAE,GAAG,EAAE;IACvG,MAAM,KAAK,GAAG;QACZ,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;QAC5B,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;KAC1B,CAAA;IAED,MAAM,MAAM,GAAG,8BAA8B,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACtE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACpG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAChD,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"buyer-proxy.test.js","sourceRoot":"","sources":["../../src/proxy/buyer-proxy.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antseed/cli",
3
- "version": "0.1.22",
3
+ "version": "0.1.23",
4
4
  "description": "Antseed Network CLI and Web Dashboard",
5
5
  "type": "module",
6
6
  "files": [
@@ -19,9 +19,9 @@
19
19
  "dotenv": "^16.6.1",
20
20
  "open": "^11.0.0",
21
21
  "ora": "^9.3.0",
22
- "@antseed/dashboard": "0.1.4",
23
22
  "@antseed/provider-core": "0.2.3",
24
- "@antseed/node": "0.2.4"
23
+ "@antseed/dashboard": "0.1.4",
24
+ "@antseed/node": "0.2.5"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/node": "^20.11.0",