@agentunion/fastaun-browser 0.5.19 → 0.5.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +129 -78
- package/_packed_docs/CHANGELOG.md +129 -78
- package/_packed_docs/INDEX.md +201 -195
- package/_packed_docs/KITE_DOCS_GUIDE.md +93 -90
- package/_packed_docs/agent.md/SCHEMA.md +7 -7
- package/_packed_docs/agent.md//350/277/234/347/250/213agent.md/347/274/223/345/255/230/344/270/216etag/351/200/217/344/274/240/346/226/271/346/241/210.md +11 -11
- package/_packed_docs/protocol/06-/346/234/215/345/212/241/345/215/217/350/256/256.md +1072 -1072
- package/_packed_docs/protocol/10-Group-/345/255/220/345/215/217/350/256/256.md +676 -676
- package/_packed_docs/protocol/11-Storage-/345/255/220/345/215/217/350/256/256.md +8 -12
- package/_packed_docs/protocol/Ownership/345/215/217/350/256/256/345/256/232/344/271/211.md +443 -0
- package/_packed_docs/protocol/Ownership/345/215/217/350/256/256/345/256/232/344/271/2112.0.md +161 -0
- package/_packed_docs/protocol/Ownership/345/215/217/350/256/256/345/256/232/344/271/2112.1.md +658 -0
- package/_packed_docs/protocol/Ownership/345/215/217/350/256/256/345/256/232/344/271/2113.0.md +233 -0
- package/_packed_docs/protocol/agent.md/SCHEMA.md +1 -1
- package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +1 -1
- package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +67 -63
- package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +1 -1
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +35 -8
- package/_packed_docs/sdk/08-/346/234/200/344/275/263/345/256/236/350/267/265.md +3 -3
- package/_packed_docs/sdk/09-group-rpc-manual.md +258 -254
- package/_packed_docs/sdk/09-message-rpc-manual.md +7 -4
- package/_packed_docs/sdk/09-storage-rpc-manual.md +18 -26
- package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +61 -52
- package/_packed_docs/sdk/INDEX.md +92 -80
- package/_packed_docs/sdk/Ownership-SDK/345/256/236/347/216/260/346/214/207/345/215/227.md +169 -0
- package/_packed_docs/sdk/Ownership-SDK/347/274/226/346/216/222/346/214/207/345/215/227.md +349 -0
- package/_packed_docs/sdk/Ownership-SDK/347/274/226/346/216/222/346/214/207/345/215/2272.1.md +922 -0
- package/_packed_docs/sdk/Ownership-SDK/351/233/206/346/210/220/346/214/207/345/215/227.md +270 -0
- package/_packed_docs/sdk/Ownership2.1-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +300 -0
- package/_packed_docs/sdk/Ownership2.1-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +382 -0
- package/_packed_docs/sdk/Ownership2.1-TDD/345/210/206/351/230/266/346/256/265/345/256/236/346/226/275/350/256/241/345/210/222.md +708 -0
- package/_packed_docs/sdk/Ownership2.1/350/257/246/347/273/206/350/256/276/350/256/241.md +476 -0
- package/_packed_docs/sdk/Ownership/347/256/241/347/220/206/344/270/223/351/242/230.md +559 -0
- package/_packed_docs/sdk/ProtectedHeaders/347/224/250/346/263/225/344/270/223/351/242/230.md +299 -0
- package/_packed_docs/sdk//345/207/255/350/257/201/344/270/216/347/273/204/347/273/207/346/234/215/345/212/241SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +173 -0
- package/_packed_docs/sdk//345/207/255/350/257/201/344/270/216/347/273/204/347/273/207/346/234/215/345/212/241SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +211 -0
- package/_packed_docs//350/267/250/350/256/276/345/244/207/345/267/262/350/257/273/346/234/252/350/257/273SDK/345/256/236/347/216/260/347/247/273/346/244/215/346/214/207/345/215/227.md +331 -0
- package/_packed_docs//350/267/250/350/256/276/345/244/207/345/267/262/350/257/273/346/234/252/350/257/273SDK/351/233/206/346/210/220/346/214/207/345/215/227.md +207 -0
- package/_packed_docs//350/267/250/350/256/276/345/244/207/345/267/262/350/257/273/346/234/252/350/257/273/344/273/243/347/240/201/345/256/241/346/237/245/346/212/245/345/221/212.md +252 -0
- package/_packed_docs//350/267/250/350/256/276/345/244/207/345/267/262/350/257/273/346/234/252/350/257/273/345/256/236/346/226/275/350/256/241/345/210/222.md +156 -0
- package/_packed_docs//350/267/250/350/256/276/345/244/207/345/267/262/350/257/273/346/234/252/350/257/273/346/226/271/346/241/210.md +273 -0
- package/_packed_docs//350/267/250/350/256/276/345/244/207/345/267/262/350/257/273/346/234/252/350/257/273/350/257/246/347/273/206/350/256/276/350/256/241.md +211 -0
- package/dist/agent-md-schema.d.ts +15 -4
- package/dist/agent-md-schema.d.ts.map +1 -1
- package/dist/agent-md-schema.js +64 -30
- package/dist/agent-md-schema.js.map +1 -1
- package/dist/agent-md.d.ts +10 -2
- package/dist/agent-md.d.ts.map +1 -1
- package/dist/agent-md.js +278 -121
- package/dist/agent-md.js.map +1 -1
- package/dist/aid-store.d.ts +46 -0
- package/dist/aid-store.d.ts.map +1 -1
- package/dist/aid-store.js +149 -10
- package/dist/aid-store.js.map +1 -1
- package/dist/aid.d.ts +4 -1
- package/dist/aid.d.ts.map +1 -1
- package/dist/aid.js +23 -42
- package/dist/aid.js.map +1 -1
- package/dist/auth.d.ts +1 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +85 -18
- package/dist/auth.js.map +1 -1
- package/dist/bundle.js +1581 -781
- package/dist/cert-utils.d.ts +49 -1
- package/dist/cert-utils.d.ts.map +1 -1
- package/dist/cert-utils.js +102 -56
- package/dist/cert-utils.js.map +1 -1
- package/dist/client/delivery.d.ts +7 -0
- package/dist/client/delivery.d.ts.map +1 -1
- package/dist/client/delivery.js +243 -28
- package/dist/client/delivery.js.map +1 -1
- package/dist/client/rpc-pipeline.d.ts.map +1 -1
- package/dist/client/rpc-pipeline.js +89 -77
- package/dist/client/rpc-pipeline.js.map +1 -1
- package/dist/client/v2-e2ee.d.ts.map +1 -1
- package/dist/client/v2-e2ee.js +99 -80
- package/dist/client/v2-e2ee.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +31 -17
- package/dist/client.js.map +1 -1
- package/dist/crypto.d.ts.map +1 -1
- package/dist/crypto.js +8 -6
- package/dist/crypto.js.map +1 -1
- package/dist/events.d.ts +5 -2
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +33 -14
- package/dist/events.js.map +1 -1
- package/dist/facades.js +5 -5
- package/dist/facades.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/org-protocol.d.ts.map +1 -1
- package/dist/org-protocol.js +72 -12
- package/dist/org-protocol.js.map +1 -1
- package/dist/ownership-v21.d.ts +25 -8
- package/dist/ownership-v21.d.ts.map +1 -1
- package/dist/ownership-v21.js +142 -73
- package/dist/ownership-v21.js.map +1 -1
- package/dist/ownership-workflow.d.ts +6 -1
- package/dist/ownership-workflow.d.ts.map +1 -1
- package/dist/ownership-workflow.js +221 -58
- package/dist/ownership-workflow.js.map +1 -1
- package/dist/tools/cross-sdk-agent.d.ts +2 -1
- package/dist/tools/cross-sdk-agent.d.ts.map +1 -1
- package/dist/tools/cross-sdk-agent.js +91 -8
- package/dist/tools/cross-sdk-agent.js.map +1 -1
- package/dist/transport.d.ts +1 -0
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +2 -0
- package/dist/transport.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/aid-store.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AID } from './aid.js';
|
|
2
2
|
import { CryptoProvider, pemToArrayBuffer, importPrivateKeyEcdsa, importCertPublicKeyEcdsa, ecdsaSignDer, ecdsaVerifyDer, certificateSha256Fingerprint } from './crypto.js';
|
|
3
3
|
import * as codes from './error-codes.js';
|
|
4
|
-
import { certMatchesFingerprint, publicKeyDerB64 } from './cert-utils.js';
|
|
4
|
+
import { certMatchesFingerprint, parseAgentMdTailSignatureForRead, publicKeyDerB64, signDocument, verifyDocument, parseCertMetadata } from './cert-utils.js';
|
|
5
5
|
import { RegisterFlow } from './register-flow.js';
|
|
6
6
|
import { GatewayDiscovery } from './discovery.js';
|
|
7
7
|
import { AUNError, ClientSignatureError, IdentityConflictError, NotFoundError, StateError, ValidationError } from './errors.js';
|
|
@@ -14,6 +14,24 @@ import { AuthFlow } from './auth.js';
|
|
|
14
14
|
import { parseOwnershipRegistrationIntent } from './ownership-workflow.js';
|
|
15
15
|
import { validateAIDFormat } from './validators.js';
|
|
16
16
|
import { validateAgentMdDocument } from './agent-md-schema.js';
|
|
17
|
+
async function readSigningInput(input, inputType = 'text') {
|
|
18
|
+
if (inputType === 'text') {
|
|
19
|
+
if (typeof input === 'string' || input instanceof Uint8Array)
|
|
20
|
+
return input;
|
|
21
|
+
throw new Error('text input requires a string or Uint8Array');
|
|
22
|
+
}
|
|
23
|
+
if (typeof input === 'string' || input instanceof Uint8Array)
|
|
24
|
+
throw new Error('browser file input does not support filesystem paths');
|
|
25
|
+
const file = 'getFile' in input ? await input.getFile() : input;
|
|
26
|
+
if (typeof file.arrayBuffer === 'function')
|
|
27
|
+
return new Uint8Array(await file.arrayBuffer());
|
|
28
|
+
return await new Promise((resolve, reject) => {
|
|
29
|
+
const reader = new FileReader();
|
|
30
|
+
reader.onload = () => resolve(new Uint8Array(reader.result));
|
|
31
|
+
reader.onerror = () => reject(reader.error);
|
|
32
|
+
reader.readAsArrayBuffer(file);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
17
35
|
// ── 证书 DER 解析工具 ────────────────────────────────────────────
|
|
18
36
|
function _derReadLength(data, offset) {
|
|
19
37
|
if (offset >= data.length)
|
|
@@ -335,6 +353,8 @@ export class AIDStore {
|
|
|
335
353
|
const fp = String(certFingerprint ?? '').trim().toLowerCase();
|
|
336
354
|
const cachedCert = await this._keystore.loadCert(target, fp || undefined);
|
|
337
355
|
if (cachedCert) {
|
|
356
|
+
const gatewayUrl = await this._resolveGateway(target);
|
|
357
|
+
await this._verifyDownloadedPeerCertificate(gatewayUrl, target, cachedCert, fp, signedAt);
|
|
338
358
|
return await AID.create({ aid: target, aunPath: this.aunPath, certPem: cachedCert, privateKeyPem: null, certValid: true, privateKeyValid: false });
|
|
339
359
|
}
|
|
340
360
|
if (fp) {
|
|
@@ -365,6 +385,76 @@ export class AIDStore {
|
|
|
365
385
|
if (typeof closeTokens === 'function')
|
|
366
386
|
closeTokens.call(this._tokenStore);
|
|
367
387
|
}
|
|
388
|
+
async sign(aid, input, options = {}) {
|
|
389
|
+
try {
|
|
390
|
+
if (options.inputType !== undefined && !['text', 'file'].includes(options.inputType) || options.format !== undefined && !['raw', 'document'].includes(options.format))
|
|
391
|
+
throw new Error('unsupported signing inputType or format');
|
|
392
|
+
if (options.append && options.format !== 'document')
|
|
393
|
+
throw new Error('append requires document format');
|
|
394
|
+
if (options.inPlace && (options.inputType !== 'file' || options.format !== 'document' || typeof input !== 'object' || !('createWritable' in input) || typeof input.createWritable !== 'function'))
|
|
395
|
+
throw new Error('inPlace document signing requires a writable file handle');
|
|
396
|
+
const loaded = options.identity ? resultOk({ aid: options.identity }) : await this.load(aid);
|
|
397
|
+
if (!loaded.ok)
|
|
398
|
+
return loaded;
|
|
399
|
+
if (loaded.data.aid.aid !== aid || parseCertMetadata(loaded.data.aid.certPem).subject.toLowerCase() !== aid.toLowerCase())
|
|
400
|
+
throw new Error('signing identity does not match AID');
|
|
401
|
+
const raw = await readSigningInput(input, options.inputType);
|
|
402
|
+
if (typeof raw === 'string' && new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(new TextEncoder().encode(raw)) !== raw)
|
|
403
|
+
throw new Error('signing input must be valid UTF-8');
|
|
404
|
+
if (options.format !== 'document')
|
|
405
|
+
return await loaded.data.aid.sign(raw);
|
|
406
|
+
const content = typeof raw === 'string' ? raw : new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(raw);
|
|
407
|
+
const result = await signDocument(loaded.data.aid, content, options);
|
|
408
|
+
if (options.inPlace) {
|
|
409
|
+
const writable = await input.createWritable();
|
|
410
|
+
await writable.write(result.signed);
|
|
411
|
+
await writable.close();
|
|
412
|
+
}
|
|
413
|
+
return resultOk(result);
|
|
414
|
+
}
|
|
415
|
+
catch (exc) {
|
|
416
|
+
return resultErr(codes.SIGNATURE_OPERATION_ERROR, String(exc), exc);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
async verify(aid, input, signatureOrOptions = {}, options = {}) {
|
|
420
|
+
try {
|
|
421
|
+
const opts = typeof signatureOrOptions === 'string' ? options : signatureOrOptions;
|
|
422
|
+
if (opts.inputType !== undefined && !['text', 'file'].includes(opts.inputType) || opts.format !== undefined && !['raw', 'document'].includes(opts.format))
|
|
423
|
+
throw new Error('unsupported verification inputType or format');
|
|
424
|
+
if (opts.identity && (opts.identity.aid !== aid || parseCertMetadata(opts.identity.certPem).subject.toLowerCase() !== aid.toLowerCase()))
|
|
425
|
+
throw new Error('verification identity does not match AID');
|
|
426
|
+
const raw = await readSigningInput(input, opts.inputType);
|
|
427
|
+
if (typeof raw === 'string' && new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(new TextEncoder().encode(raw)) !== raw)
|
|
428
|
+
throw new Error('verification input must be valid UTF-8');
|
|
429
|
+
if (opts.format === 'document') {
|
|
430
|
+
const content = typeof raw === 'string' ? raw : new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(raw);
|
|
431
|
+
const resolver = opts.certificateResolver ?? (async (signer, fingerprint) => {
|
|
432
|
+
if (opts.identity?.aid === signer)
|
|
433
|
+
return opts.identity;
|
|
434
|
+
const resolved = await this.load(signer);
|
|
435
|
+
if (!resolved.ok)
|
|
436
|
+
throw new Error(resolved.error.message);
|
|
437
|
+
return resolved.data.aid;
|
|
438
|
+
});
|
|
439
|
+
return resultOk(await verifyDocument(content, resolver, { expectedAid: aid }));
|
|
440
|
+
}
|
|
441
|
+
if (typeof signatureOrOptions !== 'string')
|
|
442
|
+
throw new Error('raw verification requires a detached signature');
|
|
443
|
+
const supplied = !opts.identity && opts.certificateResolver ? await opts.certificateResolver(aid, '', 0) : undefined;
|
|
444
|
+
if (supplied && typeof supplied !== 'string' && 'aid' in supplied && supplied.aid !== aid)
|
|
445
|
+
throw new Error('verification certificate identity does not match AID');
|
|
446
|
+
const suppliedPem = typeof supplied === 'string' ? supplied : supplied?.certPem;
|
|
447
|
+
const loaded = opts.identity ? resultOk({ aid: opts.identity }) : suppliedPem ? resultOk({ aid: await AID.create({ aid, aunPath: this.aunPath, certPem: suppliedPem, privateKeyPem: null, certValid: true, privateKeyValid: false }) }) : await this.load(aid);
|
|
448
|
+
if (!loaded.ok)
|
|
449
|
+
return loaded;
|
|
450
|
+
if (loaded.data.aid.aid !== aid || parseCertMetadata(loaded.data.aid.certPem).subject.toLowerCase() !== aid.toLowerCase())
|
|
451
|
+
throw new Error('verification identity does not match AID');
|
|
452
|
+
return await loaded.data.aid.verify(raw, signatureOrOptions);
|
|
453
|
+
}
|
|
454
|
+
catch (exc) {
|
|
455
|
+
return resultErr(codes.VERIFICATION_OPERATION_ERROR, String(exc), exc);
|
|
456
|
+
}
|
|
457
|
+
}
|
|
368
458
|
async load(aid) {
|
|
369
459
|
const target = String(aid ?? '').trim();
|
|
370
460
|
const certPem = await this._keystore.loadCert(target);
|
|
@@ -497,8 +587,8 @@ export class AIDStore {
|
|
|
497
587
|
this._registerFlow.validateAidName(target);
|
|
498
588
|
const type = String(options?.type ?? '').trim(), owner = String(options?.owner ?? '').trim().toLowerCase();
|
|
499
589
|
const entity = ['group', 'org'].includes(type);
|
|
500
|
-
if (!type || type === 'human' && owner ||
|
|
501
|
-
throw new ValidationError('register requires type; human forbids owner;
|
|
590
|
+
if (!type || type === 'human' && owner || entity && !owner)
|
|
591
|
+
throw new ValidationError('register requires type; human forbids owner; group/org requires owner');
|
|
502
592
|
if (owner)
|
|
503
593
|
validateAIDFormat(owner, 'owner');
|
|
504
594
|
const previousRaw = await this._tokenStore.getMetadata(target, 'registration_intent');
|
|
@@ -507,7 +597,8 @@ export class AIDStore {
|
|
|
507
597
|
if (previous && (previous.type !== type || previous.owner !== owner || previous.exttype !== exttype))
|
|
508
598
|
throw new StateError('ownership registration intent changed', { stringCode: 'conflict' });
|
|
509
599
|
const intent = previous ?? (entity ? { schema_version: 1, sub_aid: target, type, owner, exttype, protocol: 'entity', pending: false } : { schema_version: 1, sub_aid: target, type, owner, exttype, operation_id: crypto.randomUUID(), pending: Boolean(owner) });
|
|
510
|
-
|
|
600
|
+
if (type !== 'agent' || owner)
|
|
601
|
+
await this._tokenStore.setMetadata(target, 'registration_intent', JSON.stringify(intent));
|
|
511
602
|
const gatewayUrl = await this._resolveGateway(target);
|
|
512
603
|
const result = await this._registerFlow.registerAid(gatewayUrl, target);
|
|
513
604
|
if (result.cert) {
|
|
@@ -569,7 +660,12 @@ export class AIDStore {
|
|
|
569
660
|
let peer;
|
|
570
661
|
let certFromCache = false;
|
|
571
662
|
const cached = await this.load(target);
|
|
572
|
-
|
|
663
|
+
const localIdentity = !cached.ok && cached.error.code === codes.CERT_EXPIRED && !forceRefresh && !skipAgentMd ? await this._expiredIdentityForAgentMdRead(target) : null;
|
|
664
|
+
if (localIdentity) {
|
|
665
|
+
peer = localIdentity;
|
|
666
|
+
certFromCache = true;
|
|
667
|
+
}
|
|
668
|
+
else if (cached.ok && !forceRefresh) {
|
|
573
669
|
peer = cached.data.aid;
|
|
574
670
|
certFromCache = true;
|
|
575
671
|
}
|
|
@@ -589,6 +685,15 @@ export class AIDStore {
|
|
|
589
685
|
const source = { cert_from_cache: certFromCache, agent_md_fetched: false };
|
|
590
686
|
if (skipAgentMd)
|
|
591
687
|
return resultOk({ aid: peer, source });
|
|
688
|
+
if (!forceRefresh && (localIdentity || peer.isPrivateKeyValid() && peer.privateKeyPem)) {
|
|
689
|
+
const record = await this._agentMdManager.loadRecord(target, true);
|
|
690
|
+
const draft = String(record?.local_draft_content ?? '');
|
|
691
|
+
const local = draft || await this._agentMdManager.readContent(target);
|
|
692
|
+
if (local) {
|
|
693
|
+
const etag = await AgentMdManager.contentEtag(local);
|
|
694
|
+
return resultOk({ aid: peer, source, agent_md: { aid: target, content: local, verification: { status: 'unverified' }, signature: { status: 'unverified' }, cert_pem: peer.certPem, etag: draft ? '' : etag, last_modified: String(record?.last_modified ?? ''), status: 0, in_sync: draft ? false : etag === record?.remote_etag, saved_to: null, save_error: null } });
|
|
695
|
+
}
|
|
696
|
+
}
|
|
592
697
|
const agentMd = await this.downloadAgentMd(target, opts?.timeout);
|
|
593
698
|
if (!agentMd.ok)
|
|
594
699
|
return agentMd;
|
|
@@ -599,6 +704,25 @@ export class AIDStore {
|
|
|
599
704
|
return resultErr(codes.NETWORK_ERROR, String(exc), exc);
|
|
600
705
|
}
|
|
601
706
|
}
|
|
707
|
+
async _expiredIdentityForAgentMdRead(target) {
|
|
708
|
+
const record = await this._agentMdManager.loadRecord(target, true);
|
|
709
|
+
if (!String(record?.local_draft_content ?? '') && !await this._agentMdManager.readContent(target))
|
|
710
|
+
return null;
|
|
711
|
+
const certPem = await this._keystore.loadCert(target);
|
|
712
|
+
const keyPair = await this._keystore.loadKeyPair(target);
|
|
713
|
+
if (!certPem || !keyPair?.private_key_pem || parseCertCN(certPem) !== target)
|
|
714
|
+
return null;
|
|
715
|
+
try {
|
|
716
|
+
const privateKey = await importPrivateKeyEcdsa(String(keyPair.private_key_pem));
|
|
717
|
+
const probe = new TextEncoder().encode('aun-aidstore-private-key-self-test');
|
|
718
|
+
if (!await ecdsaVerifyDer(await importCertPublicKeyEcdsa(certPem), await ecdsaSignDer(privateKey, probe), probe))
|
|
719
|
+
return null;
|
|
720
|
+
return await AID.create({ aid: target, aunPath: this.aunPath, certPem, privateKeyPem: null, certValid: false, privateKeyValid: false, deviceId: this.deviceId, slotId: this.slotId, verifySsl: this._verifySsl, aidStore: this });
|
|
721
|
+
}
|
|
722
|
+
catch {
|
|
723
|
+
return null;
|
|
724
|
+
}
|
|
725
|
+
}
|
|
602
726
|
async downloadAgentMd(aid, timeoutMs = 30000) {
|
|
603
727
|
try {
|
|
604
728
|
return resultOk(await this._agentMdManager.download(aid, timeoutMs));
|
|
@@ -623,7 +747,7 @@ export class AIDStore {
|
|
|
623
747
|
if (signedAt === undefined)
|
|
624
748
|
await this._peerAuth.verifyPeerCertificate(gatewayUrl, certPem, aid);
|
|
625
749
|
else
|
|
626
|
-
await this._peerAuth.verifyPeerCertificate(gatewayUrl, certPem, aid, signedAt);
|
|
750
|
+
await this._peerAuth.verifyPeerCertificate(gatewayUrl, certPem, aid, signedAt, false, true);
|
|
627
751
|
}
|
|
628
752
|
async _resolveEntityAgentMdOwner(aid, type) {
|
|
629
753
|
const authority = await this._agentMdManager.readEntityAuthorityFresh(aid);
|
|
@@ -674,10 +798,14 @@ export class AIDStore {
|
|
|
674
798
|
return resultErr(loaded.error.code, loaded.error.message);
|
|
675
799
|
}
|
|
676
800
|
const current = loaded.data.aid;
|
|
677
|
-
const raw = content ?? await this._agentMdManager.readContent(target);
|
|
678
|
-
const
|
|
801
|
+
const raw = content ?? (String((await this._agentMdManager.loadRecord(target, true))?.local_draft_content ?? '') || await this._agentMdManager.readContent(target));
|
|
802
|
+
const tail = parseAgentMdTailSignatureForRead(String(raw ?? ''));
|
|
803
|
+
if (tail.parseError)
|
|
804
|
+
throw new ValidationError(tail.parseError);
|
|
805
|
+
const base = validateAgentMdDocument(tail.payload, { expectedAid: target, validateOwnership: false });
|
|
806
|
+
const entity = ['group', 'org'].includes(String(base.frontmatter.type));
|
|
807
|
+
const parsed = entity ? validateAgentMdDocument(String(raw ?? ''), { expectedAid: target }) : base;
|
|
679
808
|
const meta = parsed.frontmatter;
|
|
680
|
-
const entity = ['group', 'org'].includes(String(meta.type));
|
|
681
809
|
if ((!current.isPrivateKeyValid() || !current.privateKeyPem) && !(entity && parsed.signature)) {
|
|
682
810
|
return resultErr(codes.PRIVATE_KEY_NOT_VALID, `uploadAgentMd requires local AID with a valid private key: ${target}`);
|
|
683
811
|
}
|
|
@@ -707,7 +835,18 @@ export class AIDStore {
|
|
|
707
835
|
accessTokenResolver: async () => this._uploadAgentMdToken(uploader, await this._resolveGateway(uploaderTarget)),
|
|
708
836
|
aidValidator: (value) => this._registerFlow.validateAidName(value),
|
|
709
837
|
});
|
|
710
|
-
|
|
838
|
+
if (entity) {
|
|
839
|
+
let signed = String(raw);
|
|
840
|
+
if (!parsed.signature)
|
|
841
|
+
signed = (await signDocument(current, signed, { signerAid: true })).signed;
|
|
842
|
+
if (options.coSignerAid) {
|
|
843
|
+
if (options.coSignerAid !== meta.owner)
|
|
844
|
+
throw new ValidationError('entity additional signer must be current owner');
|
|
845
|
+
signed = (await signDocument(uploader, signed, { append: true })).signed;
|
|
846
|
+
}
|
|
847
|
+
return resultOk(await manager.uploadAs(target, signed, current));
|
|
848
|
+
}
|
|
849
|
+
return resultOk(await manager.upload(raw));
|
|
711
850
|
}
|
|
712
851
|
catch (exc) {
|
|
713
852
|
return agentMdFailure(exc);
|
package/dist/aid-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aid-store.js","sourceRoot":"","sources":["../src/aid-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,YAAY,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC5K,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAChI,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAe,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAuD,MAAM,eAAe,CAAC;AACzH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AA0C/D,8DAA8D;AAE9D,SAAS,cAAc,CAAC,IAAgB,EAAE,MAAc;IACtD,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACvD,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC;IACjE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,WAAW,CAAC,IAAgB,EAAE,MAAc;IACnD,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,OAAe;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,6FAA6F;QAC7F,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB;QACzD,oBAAoB;QACpB,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC7C,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;QACtC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACxC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,GAAG,GAAG,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QACzC,qBAAqB;QACrB,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAAC,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAAC,GAAG,GAAG,CAAC,CAAC;QAAC,CAAC;QACjG,kBAAkB;QAClB,CAAC;YAAC,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAAC,GAAG,GAAG,CAAC,CAAC;QAAC,CAAC;QAC1E,qBAAqB;QACrB,CAAC;YAAC,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAAC,GAAG,GAAG,CAAC,CAAC;QAAC,CAAC;QAC1E,YAAY;QACZ,CAAC;YAAC,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAAC,GAAG,GAAG,CAAC,CAAC;QAAC,CAAC;QAC1E,8BAA8B;QAC9B,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACnC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEhC,SAAS,SAAS,CAAC,MAAc;YAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;YACxB,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YACtB,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YAClH,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,yBAAyB;gBACzB,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EACpF,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACpG,CAAC;iBAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACxB,mCAAmC;gBACnC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAC7G,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACtG,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACpC,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,cAAc,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;QAC9D,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QAC3C,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,OAAe;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACjC,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;QACtC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACxC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,GAAG,GAAG,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QACzC,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAAC,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAAC,GAAG,GAAG,CAAC,CAAC;QAAC,CAAC;QACjG,CAAC;YAAC,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAAC,GAAG,GAAG,CAAC,CAAC;QAAC,CAAC,CAAC,SAAS;QACpF,CAAC;YAAC,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAAC,GAAG,GAAG,CAAC,CAAC;QAAC,CAAC,CAAC,SAAS;QACpF,kBAAkB;QAClB,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACnC,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;QACjE,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC;QACnC,qCAAqC;QACrC,aAAa;QACb,GAAG,GAAG,SAAS,CAAC;QAChB,cAAc;QACd,CAAC;YAAC,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAAC,GAAG,GAAG,CAAC,CAAC;QAAC,CAAC;QAC1E,6BAA6B;QAC7B,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACnC,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAC7B,MAAM,UAAU,GAAG,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC;QACpE,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC;QACpC,qBAAqB;QACrB,OAAO,GAAG,GAAG,UAAU,EAAE,CAAC;YACxB,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI;gBAAE,MAAM,CAAC,MAAM;YACpC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM;gBAAE,MAAM;YACnB,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;YACxD,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;YACrC,OAAO,IAAI,GAAG,MAAM,EAAE,CAAC;gBACrB,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI;oBAAE,MAAM,CAAC,WAAW;gBAC1C,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,MAAM;oBAAE,MAAM;gBACnB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;gBACzD,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACtC,MAAM;gBACN,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBAAC,IAAI,GAAG,MAAM,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBACpD,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;oBAAC,IAAI,GAAG,MAAM,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAClG,6BAA6B;gBAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;gBAC3G,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;gBACjD,IAAI,IAAI,IAAI,IAAI,GAAG,MAAM,EAAE,CAAC;oBAC1B,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;oBAC7C,IAAI,MAAM,EAAE,CAAC;wBACX,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACpH,CAAC;gBACH,CAAC;gBACD,IAAI,GAAG,MAAM,CAAC;YAChB,CAAC;YACD,GAAG,GAAG,MAAM,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACzD,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB,EAAE,IAAY;IACtD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAClE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,UAAU,CAAC,UAAkB,EAAE,GAAW,EAAE,eAA+B;IAClF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE,aAAa,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACxF,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9D,IAAI,EAAE;QAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACrD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,KAAa,EAAE,OAAoB,EAAE,EAAE,SAAS,GAAG,KAAK;IACtF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IACzE,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;YAAS,CAAC;QACT,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAI,MAAiB;IACvC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AACzC,CAAC;AAED,SAAS,cAAc,CAAI,GAAY;IACrC,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAClG,IAAI,GAAG,YAAY,oBAAoB,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,OAAO,QAAQ;IACV,OAAO,CAAS;IAChB,QAAQ,CAAS;IACjB,MAAM,CAAS;IAEhB,eAAe,CAAS;IACxB,SAAS,CAAyB;IAClC,WAAW,CAAsB;IACjC,aAAa,CAAe;IAC5B,UAAU,CAAmB;IAC7B,OAAO,CAAiB;IACxB,UAAU,CAAgB;IAC1B,UAAU,CAAU;IACpB,aAAa,GAAwB,IAAI,GAAG,EAAE,CAAC;IAC/C,eAAe,CAAiB;IAChC,SAAS,CAAW;IAE5B,YAAY,IAMX;QACC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;QAC7E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,sBAAsB,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,eAAe,IAAI,SAAS,EAAE,CAAC,CAAC;QACnG,IAAI,CAAC,WAAW,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CAAC;YACpC,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,SAAS,EAAE,IAAI,CAAC,UAAU;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,QAAQ,CAAC;YAC5B,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,SAAS,EAAE,IAAI,CAAC,UAAU;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC;YACxC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC;YACpE,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YACzD,mBAAmB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,IAAI,CAAC;YACpF,oBAAoB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,IAAI,IAAI,OAAO,CAAC;YAC/F,oBAAoB,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC;YAC7F,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE;gBACxD,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAC9D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC;gBAC1E,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;gBACrJ,CAAC;gBACD,IAAI,EAAE,EAAE,CAAC;oBACP,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;oBACtG,IAAI,CAAC,QAAQ,CAAC,EAAE;wBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;oBAC9E,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACtC,MAAM,IAAI,CAAC,gCAAgC,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;oBACvF,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC1E,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzI,CAAC;gBACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAC3E,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;gBAC1E,MAAM,IAAI,CAAC,gCAAgC,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC9F,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC/C,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;YACzI,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACH,MAAM,KAAK,GAAI,IAAI,CAAC,SAA+C,CAAC,KAAK,CAAC;QAC1E,IAAI,OAAO,KAAK,KAAK,UAAU;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAI,IAAI,CAAC,WAAiD,CAAC,KAAK,CAAC;QAClF,IAAI,OAAO,WAAW,KAAK,UAAU;YAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAW;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,cAAc,EAAE,kCAAkC,MAAM,EAAE,CAAC,CAAC;QAEjG,SAAS;QACT,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,qCAAqC,MAAM,EAAE,CAAC,CAAC;QACxG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,qCAAqC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/F,CAAC;QAED,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,gCAAgC,CAAC,KAAK,MAAM,4BAA4B,CAAC,OAAO,CAAC,EAAE,CAAC;YACnI,OAAO,SAAS,CAAC,KAAK,CAAC,cAAc,EAAE,4CAA4C,MAAM,EAAE,CAAC,CAAC;QAC/F,CAAC;QAED,mCAAmC;QACnC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,8CAA8C,MAAM,EAAE,CAAC,CAAC;QACnG,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,gCAAgC,MAAM,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,GAAG,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC,KAAK,CAAC,kBAAkB,EAAE,sCAAsC,MAAM,EAAE,CAAC,CAAC;QAC7F,CAAC;QAED,uCAAuC;QACvC,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC,KAAK,CAAC,iBAAiB,EAAE,qCAAqC,MAAM,SAAS,EAAE,EAAE,CAAC,CAAC;QACtG,CAAC;QAED,OAAO;QACP,IAAI,OAAyE,CAAC;QAC9E,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,KAAK,CAAC,uBAAuB,EAAE,oCAAoC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;QACrG,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC;YAC9B,OAAO,QAAQ,CAAC;gBACd,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC;oBACpB,GAAG,EAAE,MAAM;oBACX,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,OAAO;oBACP,aAAa,EAAE,IAAI;oBACnB,SAAS,EAAE,IAAI;oBACf,eAAe,EAAE,KAAK;oBACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,SAAS,EAAE,IAAI,CAAC,UAAU;oBAC1B,UAAU,EAAE,IAAI;oBAChB,KAAK,EAAE,KAAK;oBACZ,QAAQ,EAAE,IAAI;iBACf,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QAED,2CAA2C;QAC3C,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;YAChF,gCAAgC;YAChC,IAAI,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,kBAAkB,KAAK,OAAO,EAAE,CAAC;gBACzE,OAAO,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,wCAAwC,MAAM,EAAE,CAAC,CAAC;YAC7F,CAAC;YACD,iCAAiC;YACjC,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;YAC7E,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACpD,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,mDAAmD,MAAM,EAAE,CAAC,CAAC;YACxG,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,KAAK,CAAC,uBAAuB,EAAE,qCAAqC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;QACtG,CAAC;QAED,OAAO,QAAQ,CAAC;YACd,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC;gBACpB,GAAG,EAAE,MAAM;gBACX,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO;gBACP,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;gBAC9C,SAAS,EAAE,IAAI;gBACf,eAAe,EAAE,IAAI;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,IAAI;aACf,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;YACnD,MAAM,UAAU,GAAc,EAAE,CAAC;YACjC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpC,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC;oBACrD,UAAU,CAAC,IAAI,CAAC;wBACd,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;wBACxB,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe;wBAChD,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY;wBAC1C,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU;qBACvC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,OAAO,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,wBAAwB,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,OAAwB;QAClD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,eAAe,CAAC,kCAAkC,CAAC,CAAC;YAC3E,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3G,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,OAAO,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,eAAe,CAAC,6EAA6E,CAAC,CAAC;YAC3L,IAAI,KAAK;gBAAE,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC7C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;YACtF,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,gCAAgC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5F,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACtD,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC;gBAAE,MAAM,IAAI,UAAU,CAAC,uCAAuC,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;YAChM,MAAM,MAAM,GAAG,QAAQ,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClQ,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1F,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACxE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBACxD,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE;oBACvC,eAAe,EAAE,MAAM,CAAC,eAAe;oBACvC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;oBAC7C,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBACzF,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,gBAAgB,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU;oBAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,mBAAmB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACxM,CAAC;YACD,OAAO,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAa,EAAE,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,UAAU,IAAI,GAAG,CAAC,UAAU;gBAAE,OAAO,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACpG,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;gBACzC,OAAO,SAAS,CAAC,KAAK,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YAC9D,CAAC;YACD,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;gBACnC,OAAO,SAAS,CAAC,KAAK,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,IAAI,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,OAAO,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;YACnG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;gBAAE,OAAO,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;gBAAE,OAAO,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,OAAO,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE,8BAA8B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACzF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,IAAkB;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC;QAC1C,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC;QACxC,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,IAAS,CAAC;YACd,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,MAAM,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC/B,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;gBACvB,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAC3E,IAAI,CAAC,OAAO;oBAAE,OAAO,SAAS,CAAC,KAAK,CAAC,cAAc,EAAE,kCAAkC,MAAM,EAAE,CAAC,CAAC;gBACjG,MAAM,IAAI,CAAC,gCAAgC,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBACzE,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC/C,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBAClD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBAAE,OAAO,QAAyB,CAAC;gBACnD,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;YAC3B,CAAC;YAED,MAAM,MAAM,GAAG,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;YAC3E,IAAI,WAAW;gBAAE,OAAO,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAExD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC,OAAO,CAAC,EAAE;gBAAE,OAAO,OAAwB,CAAC;YACjD,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC/B,OAAO,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAW,EAAE,SAAS,GAAG,KAAK;QAClD,IAAI,CAAC;YACH,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,cAAc,CAAwB,GAAG,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,OAAO,GAAG,CAAC;QACzC,IAAI,CAAC;YACH,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,cAAc,CAAqB,GAAG,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gCAAgC,CAC5C,UAAkB,EAClB,GAAW,EACX,OAAe,EACf,eAAe,GAAG,EAAE,EACpB,QAAiB;QAEjB,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACtE,IAAI,UAAU,IAAI,CAAC,CAAC,MAAM,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,eAAe,CAAC,6CAA6C,GAAG,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS;YAAE,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;;YAC5F,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IACtF,CAAC;IAEO,KAAK,CAAC,0BAA0B,CAAC,GAAW,EAAE,IAAY;QAChE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpE,IAAI,SAAS,CAAC,uBAAuB,KAAK,WAAW,CAAC,eAAe;YAAE,MAAM,IAAI,UAAU,CAAC,sCAAsC,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;QAChK,OAAO,SAAS,CAAC,SAAS,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,GAAW,EAAE,IAAY;QAC/D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,+BAA+B,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC9G,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1I,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,GAAW,EAAE,WAAmB;QACjE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACjH,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1I,CAAC;IAEO,oBAAoB,CAAC,GAAQ;QACnC,OAAO;YACL,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,eAAe,EAAE,GAAG,CAAC,aAAa;YAClC,kBAAkB,EAAE,GAAG,CAAC,SAAS;YACjC,IAAI,EAAE,GAAG,CAAC,OAAO;SAClB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,GAAQ,EAAE,UAAkB;QAC5D,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC;YACxB,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,SAAS,EAAE,IAAI,CAAC,UAAU;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5F,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,GAAW,EACX,OAAuB,EACvB,UAAgC,EAAE;QAElC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YAChC,MAAM,GAAG,GAAG,OAAO,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACtE,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;YACnF,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;YAChC,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9F,OAAO,SAAS,CAAC,KAAK,CAAC,qBAAqB,EAAE,8DAA8D,MAAM,EAAE,CAAC,CAAC;YACxH,CAAC;YACD,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACpH,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YACnD,IAAI,QAAQ,GAAG,OAAO,CAAC;YACvB,IAAI,cAAc,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC1D,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACvD,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;oBACvB,OAAO,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC5E,CAAC;gBACD,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;YACrC,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAC7D,OAAO,SAAS,CAAC,KAAK,CAAC,qBAAqB,EAAE,iEAAiE,cAAc,EAAE,CAAC,CAAC;YACnI,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC;gBACjC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,UAAU,EAAE,IAAI,CAAC,WAAW;gBAC5B,oBAAoB,EAAE,IAAI;gBAC1B,cAAc,EAAE,GAAG,EAAE,CAAC,cAAc;gBACpC,gBAAgB,EAAE,GAAG,EAAE,CAAC,QAAQ;gBAChC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACnH,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,IAAI,IAAI,OAAO,CAAC,CAAC;gBAC/H,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,IAAI,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAC7H,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBACvD,mBAAmB,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;gBAC/G,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC;aACnE,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,cAAc,CAAsB,GAAG,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW;QACxB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;QAC5C,MAAM,eAAe,GAAG,CAAC,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,SAAS,IAAI,eAAe,CAAC;QAChD,MAAM,gBAAgB,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAI,CAAC,eAAe;YAAE,WAAW,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QACrG,IAAI,CAAC,gBAAgB;YAAE,WAAW,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAC3F,IAAI,WAAW;YAAE,WAAW,CAAC,IAAI,CAAC,qCAAqC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9F,MAAM,MAAM,GAAG,eAAe,IAAI,gBAAgB;YAChD,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,gBAAgB;gBAChB,CAAC,CAAC,mBAAmB;gBACrB,CAAC,CAAC,MAAM,CAAC,EAAE;oBACT,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,SAAS,CAAC;QAClB,OAAO,QAAQ,CAAC;YACd,GAAG,EAAE,MAAM;YACX,MAAM;YACN,UAAU;YACV,WAAW,EAAE,UAAU;YACvB,gBAAgB;YAChB,iBAAiB,EAAE,gBAAgB;YACnC,WAAW;YACX,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE;YAC3E,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE;SAChG,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAW;QACzB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACvD,OAAO,SAAS,CAAC,KAAK,CAAC,oBAAoB,EAAE,iCAAiC,MAAM,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC7C,OAAO,SAAS,CAAC,KAAK,CAAC,oBAAoB,EAAE,iCAAiC,MAAM,EAAE,CAAC,CAAC;YAC1F,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACjE,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACvC,OAAO,SAAS,CAAC,KAAK,CAAC,mBAAmB,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,OAAO,IAAI,aAAa,CAAC,CAAC;YACjG,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,EAAE;gBAC9E,GAAG,EAAE,MAAM;gBACX,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;gBAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;gBACjC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS;aACrC,CAAC,CAAC;YACL,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACxE,IAAI,CAAC,OAAO;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC,mBAAmB,EAAE,qCAAqC,CAAC,CAAC;YACjG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,EAAE;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC,mBAAmB,EAAE,mCAAmC,CAAC,CAAC;YACpG,OAAO,QAAQ,CAAC;gBACd,OAAO,EAAE,IAAa;gBACtB,kBAAkB,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY;gBACnD,eAAe,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe;aACpD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,KAAK,CAAC,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW;QACrB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACvD,OAAO,SAAS,CAAC,KAAK,CAAC,oBAAoB,EAAE,iCAAiC,MAAM,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC7C,OAAO,SAAS,CAAC,KAAK,CAAC,oBAAoB,EAAE,iCAAiC,MAAM,EAAE,CAAC,CAAC;YAC1F,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAgB,CAAC;YAC3C,IAAI,UAAU,GAAkB,IAAI,CAAC;YACrC,IAAI,WAAW,GAA0B,IAAI,CAAC;YAC9C,KAAK,MAAM,MAAM,IAAI,MAAM,YAAY,CAAC,uBAAuB,CAAC,MAAM,CAAa,EAAE,CAAC;gBACpF,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAA0D,CAAC;gBACjI,IAAI,SAAS,EAAE,aAAa,KAAK,IAAI,EAAE,CAAC;oBACtC,UAAU,GAAG,MAAM,CAAC;oBACpB,WAAW,GAAG,SAAS,CAAC;oBACxB,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAC9E,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;oBAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACvB,IAAI,eAAe,CAAC,UAAU,CAAC,KAAK,WAAW,CAAC,kBAAkB;2BAC7D,WAAW,CAAC,UAAU,CAAC,KAAK,MAAM;2BAClC,QAAQ,IAAI,GAAG,IAAI,QAAQ,CAAC,SAAS,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;wBACvE,MAAM,YAAY,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;wBAC3D,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE;4BACxC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,CAAC,eAAe;4BACzD,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU;yBAC/F,CAAC,CAAC;wBACH,MAAM,YAAY,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;wBACtD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBAC1C,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;4BAAE,OAAO,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,gCAAgC,CAAC,CAAC;wBAC7G,OAAO,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAa,EAAE,kBAAkB,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;oBACxJ,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC;gBAC1D,UAAU,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBAC3D,MAAM,YAAY,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAClH,CAAC;YACD,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,uCAAuC,CAAC,CAAC;YAC/G,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACjE,MAAM,WAAW,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,kBAAkB,EAAE,CAAC;YACrF,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3D,IAAI,CAAC,UAAU,CAAC,EAAE;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,EAAE;gBACzE,GAAG,EAAE,MAAM;gBACX,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;gBAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;gBACjC,cAAc,EAAE,WAAW,CAAC,kBAAkB;gBAC9C,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS;aACrC,CAAC,CAAC;YACL,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACxE,IAAI,CAAC,OAAO;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,qCAAqC,CAAC,CAAC;YAC1F,MAAM,YAAY,CAAC,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,YAAY,GAAmB;gBACnC,GAAG,EAAE,MAAM;gBACX,eAAe,EAAE,WAAW,CAAC,eAAe;gBAC5C,kBAAkB,EAAE,WAAW,CAAC,kBAAkB;gBAClD,KAAK,EAAE,WAAW,CAAC,KAAK;gBACxB,IAAI,EAAE,OAAO;aACd,CAAC;YACF,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACxD,MAAM,YAAY,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,EAAE;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,gCAAgC,CAAC,CAAC;YAC1F,OAAO,QAAQ,CAAC;gBACd,OAAO,EAAE,IAAa;gBACtB,kBAAkB,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY;gBACnD,eAAe,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe;aACpD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,YAAsE,EACtE,UAAsC,EAAE;QAExC,MAAM,UAAU,GAAG,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACjG,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrG,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,aAAa,IAAI,UAAU,CAAC,eAAe,IAAI,UAAU,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACtJ,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,eAAe,IAAI,UAAU,CAAC,kBAAkB,IAAI,UAAU,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1K,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC;QACrF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAEzJ,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,kBAAkB,EAAE,8CAA8C,CAAC,CAAC;QACxG,IAAI,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,uBAAuB,EAAE,8CAA8C,CAAC,CAAC;QACpH,IAAI,CAAC,uBAAuB;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,iDAAiD,CAAC,CAAC;QAC1H,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,uCAAuC,CAAC,CAAC;QAEhG,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,qCAAqC,MAAM,EAAE,CAAC,CAAC;YAEtG,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,8CAA8C,MAAM,EAAE,CAAC,CAAC;YAChH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,GAAG,GAAG,QAAQ,CAAC,QAAQ;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC,iBAAiB,EAAE,qDAAqD,CAAC,CAAC;YAC9H,IAAI,GAAG,GAAG,QAAQ,CAAC,SAAS;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC,iBAAiB,EAAE,2DAA2D,CAAC,CAAC;YAErI,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;gBAClB,OAAO,SAAS,CAAC,KAAK,CAAC,iBAAiB,EAAE,kEAAkE,MAAM,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACzI,CAAC;YACD,IAAI,OAAO,KAAK,uBAAuB,EAAE,CAAC;gBACxC,OAAO,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,8DAA8D,CAAC,CAAC;YAC3G,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,aAAa,CAAC,CAAC;gBAC9D,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC;gBAC9E,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAClD,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAC;gBACvD,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBACpD,IAAI,CAAC,EAAE,EAAE,CAAC;oBACR,OAAO,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,mDAAmD,MAAM,EAAE,CAAC,CAAC;gBACxG,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,SAAS,CAAC,KAAK,CAAC,uBAAuB,EAAE,qCAAqC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;YACtG,CAAC;YAED,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE;gBACxC,GAAG,EAAE,MAAM;gBACX,eAAe,EAAE,aAAa;gBAC9B,kBAAkB,EAAE,uBAAuB;gBAC3C,KAAK;gBACL,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACpF,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;gBAClB,OAAO,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,wBAAwB,CACtB,YAAsE,EACtE,UAAsC,EAAE;QAExC,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,UAAkB,EAAE,MAAW;QAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,EAAE;YAC9E,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,IAAI,EAAE,MAAM,CAAC,OAAO;YACpB,YAAY,EAAE,WAAW;SAC1B,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,eAAe,CAAC,wCAAwC,CAAC,CAAC;QACpF,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,eAAe,CAAC,mCAAmC,CAAC,CAAC;QAC3E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC1C,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,GAAW;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,eAAe,CAAC,oDAAoD,CAAC,CAAC;QAC7F,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACpD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAChD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG;YACjB,WAAW,MAAM,GAAG,IAAI,0BAA0B;YAClD,mBAAmB,YAAY,GAAG,IAAI,0BAA0B;SACjE,CAAC;QACF,IAAI,SAAS,GAAY,IAAI,CAAC;QAC9B,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACvD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;gBACjD,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBAClD,OAAO,UAAU,CAAC;YACpB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS,GAAG,GAAG,CAAC;YAClB,CAAC;QACH,CAAC;QACD,MAAM,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9E,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,GAAW;QAC7C,MAAM,WAAW,GAAI,IAAI,CAAC,SAAwF,CAAC,WAAW,CAAC;QAC/H,IAAI,OAAO,WAAW,KAAK,UAAU;YAAE,OAAO,EAAE,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5F,IAAI,CAAC,GAAG;gBAAE,OAAO,EAAE,CAAC;YACpB,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC/B,IAAI,OAAO,MAAM,KAAK,QAAQ;wBAAE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;gBACvD,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,GAAG,CAAC;gBACb,CAAC;YACH,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,GAAW,EAAE,UAAkB;QAC9D,MAAM,WAAW,GAAI,IAAI,CAAC,SAAqG,CAAC,WAAW,CAAC;QAC5I,IAAI,OAAO,WAAW,KAAK,UAAU,IAAI,CAAC,UAAU;YAAE,OAAO;QAC7D,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC;gBAAE,OAAO;YAClD,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;QACzE,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,GAAW;QAC5C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAChD,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;YACtB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"aid-store.js","sourceRoot":"","sources":["../src/aid-store.ts"],"names":[],"mappings":"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"}
|
package/dist/aid.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type DocumentCertificateResolver, type DocumentSignature } from './cert-utils.js';
|
|
1
2
|
import { type Result } from './result.js';
|
|
2
3
|
export interface VerifyResult {
|
|
3
4
|
status: 'verified' | 'invalid' | 'unsigned';
|
|
@@ -7,6 +8,8 @@ export interface VerifyResult {
|
|
|
7
8
|
public_key_fingerprint?: string;
|
|
8
9
|
timestamp?: number;
|
|
9
10
|
reason?: string;
|
|
11
|
+
valid?: boolean;
|
|
12
|
+
signatures?: DocumentSignature[];
|
|
10
13
|
}
|
|
11
14
|
export interface VerifyContext {
|
|
12
15
|
expectedAid?: string;
|
|
@@ -71,6 +74,6 @@ export declare class AID {
|
|
|
71
74
|
verifyWithContext(payload: Uint8Array | string, signature: string, context: VerifyContext): Promise<Result<{
|
|
72
75
|
valid: boolean;
|
|
73
76
|
}>>;
|
|
74
|
-
verifyAgentMd(content: string): Promise<Result<VerifyResult>>;
|
|
77
|
+
verifyAgentMd(content: string, certificateResolver?: DocumentCertificateResolver): Promise<Result<VerifyResult>>;
|
|
75
78
|
}
|
|
76
79
|
//# sourceMappingURL=aid.d.ts.map
|
package/dist/aid.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aid.d.ts","sourceRoot":"","sources":["../src/aid.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aid.d.ts","sourceRoot":"","sources":["../src/aid.ts"],"names":[],"mappings":"AAEA,OAAO,EACyB,KAAK,2BAA2B,EAAE,KAAK,iBAAiB,EASvF,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAuB,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACpB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,qBAAa,GAAG;IACd,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,gBAAgB,CAAM;IAE9B,OAAO;WAqBM,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAMlS,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,WAAW,IAAI,OAAO;IAItB,iBAAiB,IAAI,OAAO;IAItB,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAY1E,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAWrH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAoBjE,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAoC/H,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;CAmBvH"}
|
package/dist/aid.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as codes from './error-codes.js';
|
|
2
|
-
import { parseFileFrontmatter,
|
|
3
|
-
import {
|
|
2
|
+
import { parseFileFrontmatter, validateAgentMdDocumentForRead } from './agent-md-schema.js';
|
|
3
|
+
import { signDocument, verifyDocument, certMatchesFingerprint, certFingerprint, isStrictBase64, parseAgentMdTailSignature, parseCertMetadata, publicKeyDerB64, signBytes, verifySignatureWithCert, } from './cert-utils.js';
|
|
4
4
|
import { resultErr, resultOk } from './result.js';
|
|
5
5
|
export class AID {
|
|
6
6
|
aid;
|
|
@@ -97,19 +97,14 @@ export class AID {
|
|
|
97
97
|
if (payload && !payload.endsWith('\n') && !payload.endsWith('\r')) {
|
|
98
98
|
return resultErr(codes.SIGNATURE_OPERATION_ERROR, 'agent.md payload must end with a newline before signature');
|
|
99
99
|
}
|
|
100
|
-
const signature = await signBytes(this.privateKeyPem, new TextEncoder().encode(payload));
|
|
101
100
|
let frontmatter = {};
|
|
102
101
|
try {
|
|
103
|
-
frontmatter = parseFileFrontmatter(payload);
|
|
102
|
+
frontmatter = parseFileFrontmatter(payload, true, false);
|
|
104
103
|
}
|
|
105
104
|
catch { }
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
let block = buildAgentMdSignatureBlock(this.certFingerprint, Date.now() / 1000, signature, await publicKeyFingerprint(this.certPem));
|
|
110
|
-
if (entity)
|
|
111
|
-
block = block.replace('cert_fingerprint:', `signer_aid: ${this.aid}\ncert_fingerprint:`);
|
|
112
|
-
return resultOk({ signed: payload + block });
|
|
105
|
+
if (['group', 'org'].includes(String(frontmatter.type)) && frontmatter.aid !== this.aid)
|
|
106
|
+
return resultErr(codes.SIGNATURE_OPERATION_ERROR, 'group/org agent.md requires entity primary signer');
|
|
107
|
+
return resultOk(await signDocument(this, payload, { signerAid: ['group', 'org'].includes(String(frontmatter.type)) }));
|
|
113
108
|
}
|
|
114
109
|
catch (exc) {
|
|
115
110
|
return resultErr(codes.SIGNATURE_OPERATION_ERROR, String(exc), exc);
|
|
@@ -154,44 +149,30 @@ export class AID {
|
|
|
154
149
|
return resultErr(codes.VERIFICATION_OPERATION_ERROR, String(exc), exc);
|
|
155
150
|
}
|
|
156
151
|
}
|
|
157
|
-
async verifyAgentMd(content) {
|
|
152
|
+
async verifyAgentMd(content, certificateResolver) {
|
|
158
153
|
try {
|
|
159
154
|
const rawContent = String(content ?? '');
|
|
160
155
|
let parsed;
|
|
161
156
|
try {
|
|
162
|
-
parsed =
|
|
163
|
-
const signer = ['group', 'org'].includes(String(parsed.frontmatter.type)) ? parsed.signature?.signer_aid ?? parsed.frontmatter.aid : parsed.frontmatter.aid;
|
|
164
|
-
if (String(signer).toLowerCase() !== this.aid.toLowerCase())
|
|
165
|
-
throw new Error('agent.md signer does not match certificate identity');
|
|
157
|
+
parsed = validateAgentMdDocumentForRead(rawContent, { validateOwnership: false }, this.aid);
|
|
166
158
|
}
|
|
167
159
|
catch (exc) {
|
|
168
|
-
|
|
169
|
-
return resultOk({ status: 'invalid', payload, aid: this.aid, reason: exc instanceof Error ? exc.message : String(exc) });
|
|
160
|
+
return resultOk({ status: 'invalid', payload: parseAgentMdTailSignature(rawContent).payload, aid: this.aid, reason: exc instanceof Error ? exc.message : String(exc) });
|
|
170
161
|
}
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
return resultOk({ status: 'invalid', payload, aid: this.aid, reason: 'certificate fingerprint mismatch' });
|
|
186
|
-
}
|
|
187
|
-
const publicKeyFp = String(fields.public_key_fingerprint ?? '').trim();
|
|
188
|
-
if (publicKeyFp && !(await publicKeyMatchesFingerprint(this.certPem, publicKeyFp))) {
|
|
189
|
-
return resultOk({ status: 'invalid', payload, aid: this.aid, reason: 'public key fingerprint mismatch' });
|
|
190
|
-
}
|
|
191
|
-
const valid = await verifySignatureWithCert(this.certPem, fields.signature, new TextEncoder().encode(payload));
|
|
192
|
-
return resultOk(valid
|
|
193
|
-
? { status: 'verified', payload, aid: entity ? String(parsed.frontmatter.aid) : this.aid, cert_fingerprint: fields.cert_fingerprint, public_key_fingerprint: publicKeyFp, timestamp: Number(fields.timestamp) }
|
|
194
|
-
: { status: 'invalid', payload, aid: this.aid, cert_fingerprint: fields.cert_fingerprint, timestamp: Number(fields.timestamp), reason: 'signature verification failed' });
|
|
162
|
+
const resolver = async (signer, fingerprint, timestamp) => {
|
|
163
|
+
if (signer.toLowerCase() === this.aid.toLowerCase() && (await certMatchesFingerprint(this.certPem, fingerprint) || !certificateResolver))
|
|
164
|
+
return this.certPem;
|
|
165
|
+
if (certificateResolver)
|
|
166
|
+
return await certificateResolver(signer, fingerprint, timestamp);
|
|
167
|
+
const store = this._aidStore;
|
|
168
|
+
const resolved = await store?.resolve?.(signer, { skipAgentMd: true });
|
|
169
|
+
if (!resolved?.ok)
|
|
170
|
+
throw new Error('additional signing certificate is unavailable');
|
|
171
|
+
return resolved.data.aid;
|
|
172
|
+
};
|
|
173
|
+
const verified = await verifyDocument(rawContent, resolver, { expectedAid: this.aid, reading: !['group', 'org'].includes(String(parsed.frontmatter.type)) || parsed.frontmatter.type === 'group' && !Object.hasOwn(parsed.frontmatter, 'entity_cert_fingerprint') && parsed.signatures.length === 1 });
|
|
174
|
+
const fields = parsed.signature;
|
|
175
|
+
return resultOk({ ...verified, aid: this.aid, cert_fingerprint: fields?.cert_fingerprint, public_key_fingerprint: fields?.public_key_fingerprint, timestamp: fields ? Number(fields.timestamp) : undefined });
|
|
195
176
|
}
|
|
196
177
|
catch (exc) {
|
|
197
178
|
return resultErr(codes.VERIFICATION_OPERATION_ERROR, String(exc), exc);
|