@agentunion/fastaun 0.5.20 → 0.5.22
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 +104 -0
- package/_packed_docs/CHANGELOG.md +104 -0
- package/_packed_docs/INDEX.md +59 -34
- package/_packed_docs/KITE_DOCS_GUIDE.md +59 -52
- package/_packed_docs/agent.md/working/AID/347/261/273/345/236/213-owner/345/205/263/347/263/273/344/270/216/346/215/242owner/347/274/226/346/216/222/346/226/271/346/241/210.md +530 -0
- package/_packed_docs/agent.md/working/AID/347/261/273/345/236/213-owner/345/205/263/347/263/273/345/256/214/346/225/264/350/256/276/350/256/241/344/270/216/345/256/236/346/226/275/350/256/241/345/210/222.md +685 -0
- package/_packed_docs/agent.md/working/agent.md-schema/344/270/216/347/255/276/345/217/221/351/252/214/347/255/276/346/265/201/347/250/213/346/276/204/346/270/205.md +349 -0
- package/_packed_docs/agent.md/working//346/234/254/345/234/260Docker/346/265/213/350/257/225Bug/346/270/205/345/215/225.md +40 -0
- package/_packed_docs/aun/345/210/206/345/270/203/345/274/217/346/265/213/350/257/225/350/277/220/350/241/214/346/214/207/345/215/227.md +307 -67
- package/_packed_docs/aun/346/265/213/350/257/225/350/277/220/350/241/214/346/214/207/345/215/227.md +41 -15
- package/_packed_docs/protocol/06-/346/234/215/345/212/241/345/215/217/350/256/256.md +1433 -1392
- package/_packed_docs/protocol/08-AUN-E2EE.md +17 -12
- package/_packed_docs/protocol/11-Storage-/345/255/220/345/215/217/350/256/256.md +30 -8
- package/_packed_docs/protocol/Ownership/345/215/217/350/256/256/345/256/232/344/271/211.md +2 -0
- package/_packed_docs/protocol/Ownership/345/215/217/350/256/256/345/256/232/344/271/2112.1.md +33 -22
- package/_packed_docs/sdk/0.5.21-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +368 -0
- package/_packed_docs/sdk/0.5.21-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +350 -0
- package/_packed_docs/sdk/0.5.22-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +212 -0
- package/_packed_docs/sdk/0.5.22-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +199 -0
- package/_packed_docs/sdk/01-/345/277/253/351/200/237/345/274/200/345/247/213.md +1 -1
- package/_packed_docs/sdk/02-WebSocket/345/215/217/350/256/256.md +5 -1
- package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +64 -64
- package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +4 -1
- package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +42 -39
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +163 -14
- package/_packed_docs/sdk/08-/346/234/200/344/275/263/345/256/236/350/267/265.md +48 -47
- package/_packed_docs/sdk/09-group-rpc-manual.md +15 -2
- package/_packed_docs/sdk/09-message-rpc-manual.md +250 -160
- package/_packed_docs/sdk/09-storage-rpc-manual.md +64 -7
- package/_packed_docs/sdk/09-/345/207/255/350/257/201/346/234/215/345/212/241RPC/346/211/213/345/206/214.md +73 -0
- package/_packed_docs/sdk/09-/347/273/204/347/273/207/346/234/215/345/212/241RPC/346/211/213/345/206/214.md +90 -0
- package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +33 -25
- package/_packed_docs/sdk/INDEX.md +67 -33
- package/_packed_docs/sdk/Ownership-SDK/347/274/226/346/216/222/346/214/207/345/215/2272.1.md +74 -57
- 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 +312 -300
- 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 +322 -382
- 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 -708
- package/_packed_docs/sdk/Ownership2.1/350/257/246/347/273/206/350/256/276/350/256/241.md +28 -20
- 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 +190 -97
- 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 +158 -127
- package/dist/agent-md-schema.js +6 -4
- package/dist/agent-md-schema.js.map +1 -1
- package/dist/agent-md.d.ts +22 -2
- package/dist/agent-md.js +92 -68
- package/dist/agent-md.js.map +1 -1
- package/dist/aid-store.d.ts +13 -0
- package/dist/aid-store.js +50 -15
- package/dist/aid-store.js.map +1 -1
- package/dist/auth.d.ts +1 -0
- package/dist/auth.js +22 -2
- package/dist/auth.js.map +1 -1
- package/dist/cert-utils.d.ts +1 -0
- package/dist/cert-utils.js +13 -0
- package/dist/cert-utils.js.map +1 -1
- package/dist/client/delivery.d.ts +87 -1
- package/dist/client/delivery.js +1387 -139
- package/dist/client/delivery.js.map +1 -1
- package/dist/client/group-state.js +3 -0
- package/dist/client/group-state.js.map +1 -1
- package/dist/client/rpc-pipeline.d.ts +4 -1
- package/dist/client/rpc-pipeline.js +149 -37
- package/dist/client/rpc-pipeline.js.map +1 -1
- package/dist/client/v2-e2ee.d.ts +12 -2
- package/dist/client/v2-e2ee.js +831 -304
- package/dist/client/v2-e2ee.js.map +1 -1
- package/dist/client.d.ts +26 -2
- package/dist/client.js +412 -68
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/events.d.ts +18 -1
- package/dist/events.js +148 -9
- package/dist/events.js.map +1 -1
- package/dist/facades.d.ts +43 -1
- package/dist/facades.js +363 -7
- package/dist/facades.js.map +1 -1
- package/dist/group-fs.d.ts +1 -0
- package/dist/group-fs.js +37 -19
- package/dist/group-fs.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/keystore/aid-db.d.ts +6 -1
- package/dist/keystore/aid-db.js +184 -42
- package/dist/keystore/aid-db.js.map +1 -1
- package/dist/keystore/index.d.ts +14 -0
- package/dist/keystore/local-token-store.d.ts +9 -1
- package/dist/keystore/local-token-store.js +79 -14
- package/dist/keystore/local-token-store.js.map +1 -1
- package/dist/org-protocol.d.ts +46 -0
- package/dist/org-protocol.js +802 -12
- package/dist/org-protocol.js.map +1 -1
- package/dist/ownership-v21.d.ts +36 -5
- package/dist/ownership-v21.js +168 -52
- package/dist/ownership-v21.js.map +1 -1
- package/dist/ownership-workflow.d.ts +24 -2
- package/dist/ownership-workflow.js +682 -41
- package/dist/ownership-workflow.js.map +1 -1
- package/dist/secret-store/file-store.js +84 -0
- package/dist/secret-store/file-store.js.map +1 -1
- package/dist/seq-tracker.d.ts +1 -0
- package/dist/seq-tracker.js +2 -2
- package/dist/seq-tracker.js.map +1 -1
- package/dist/storage/lowlevel.d.ts +6 -0
- package/dist/storage/lowlevel.js +24 -7
- package/dist/storage/lowlevel.js.map +1 -1
- package/dist/storage/read-cache.d.ts +70 -0
- package/dist/storage/read-cache.js +625 -0
- package/dist/storage/read-cache.js.map +1 -0
- package/dist/storage/vfs.d.ts +2 -0
- package/dist/storage/vfs.js +50 -15
- package/dist/storage/vfs.js.map +1 -1
- package/dist/tools/cross-sdk-agent.d.ts +86 -3
- package/dist/tools/cross-sdk-agent.js +758 -46
- package/dist/tools/cross-sdk-agent.js.map +1 -1
- package/dist/transport.d.ts +3 -0
- package/dist/transport.js +104 -46
- package/dist/transport.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/v2/e2ee/encrypt-group.js +1 -0
- package/dist/v2/e2ee/encrypt-group.js.map +1 -1
- package/dist/v2/e2ee/encrypt-p2p.js +1 -0
- package/dist/v2/e2ee/encrypt-p2p.js.map +1 -1
- package/dist/v2/e2ee/types.d.ts +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -845,6 +845,9 @@ export class GroupStateCoordinator {
|
|
|
845
845
|
for (const group of groups) {
|
|
846
846
|
if (!isJsonObject(group))
|
|
847
847
|
continue;
|
|
848
|
+
const status = String(group.status ?? '').trim().toLowerCase();
|
|
849
|
+
if (status && status !== 'active')
|
|
850
|
+
continue;
|
|
848
851
|
const groupId = groupIdFromRecord(group);
|
|
849
852
|
const myRole = String(group.role ?? group.my_role ?? '').trim();
|
|
850
853
|
if (!groupId || (myRole !== 'owner' && myRole !== 'admin'))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-state.js","sourceRoot":"","sources":["../../src/client/group-state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"group-state.js","sourceRoot":"","sources":["../../src/client/group-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EACL,YAAY,GAIb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC;IAC1C,cAAc;IACd,kBAAkB;IAClB,YAAY;IACZ,qBAAqB;IACrB,aAAa;IACb,2BAA2B;IAC3B,iCAAiC;IACjC,uBAAuB;IACvB,oBAAoB;IACpB,qBAAqB;CACtB,CAAC,CAAC;AAEH,MAAM,iCAAiC,GAAG,IAAI,GAAG,CAAC;IAChD,cAAc;IACd,uBAAuB;CACxB,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,cAAc;IACd,mBAAmB;IACnB,QAAQ;IACR,eAAe;IACf,kBAAkB;CACnB,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3C,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,eAAe,CAAC,GAAmC;IAC1D,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACrD,IAAI,OAAO,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpF,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACxD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAChE,CAAC;IACD,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;aACpC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;aACjC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,OAAO,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAG,KAAmB;IACpD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CACT,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,EAAE,OAAO,CAAC,EAC3C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,EAC1D,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAC1B,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAG,KAAe;IAC/C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO;QACL,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;QACzB,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;QACzB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,IAAI;KACtB,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,MAOzB;IACC,MAAM,aAAa,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrF,MAAM,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/E,MAAM,YAAY,GAA4B,EAAE,CAAC;IACjD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACpD,YAAY,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9F,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrG,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACtD,SAAS;KACV,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,YAAY,CAAC,GAAY;IAChC,OAAO,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAkD;IAC3E,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,YAAY,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,aAAa,CAAC,GAAY,EAAE,OAAe,EAAE,gBAA0B;IAC9E,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/F,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,OAAO,qBAAqB;IACf,OAAO,CAAgB;IACvB,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,yBAAyB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtD,4BAA4B,GAAG,IAAI,GAAG,EAAU,CAAC;IAElE,YAAY,OAAsB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,IAAY,MAAM;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,MAAiB,EAAE,MAAe;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,SAAS,GAAG,YAAY,CAAC,MAA+C,CAAC,CAAC,CAAC,CAAC,MAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9G,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzG,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,gCAAgC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,wDAAwD,OAAO,QAAQ,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9H,CAAC;QAED,IAAI,iCAAiC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,OAAO,EAAE,4BAA4B,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,8BAA8B,CAAC,IAAgB;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;QACnD,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAErD,KAAK,MAAM,YAAY,IAAI,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/F,MAAM,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAC,SAAS,YAAY,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,gBAAgB,CAAC,EAAE,CAAC;YACnE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,CAAC,OAAO,EAAE,qBAAqB,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAEO,wBAAwB,CAAC,IAAgB,EAAE,OAAe,EAAE,MAAc;QAChF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,MAAM,KAAK,8BAA8B,IAAI,MAAM,KAAK,mBAAmB;YAAE,OAAO;QACxF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;QAC7C,MAAM,kBAAkB,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC;aAC1D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACxD,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,IAAI,MAAM,KAAK,mBAAmB,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;YAC/D,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAChC,OAAO,EACP,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAC/E,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACrD,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,MAAM,KAAK,8BAA8B,IAAI,MAAM,KAAK,eAAe;YAAE,OAAO;QAEpF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK;YAAE,OAAO;QACzF,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO;QACpD,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,kBAAkB;gBAAE,OAAO;QACvF,CAAC;aAAM,IAAI,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,MAAM,GAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,QAAQ;YAAE,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1C,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;gBAChE,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;oBAC3B,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAChC,OAAO,EACP,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAC/E,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,UAAU,CAAC,KAAK,CACrB,2DAA2D,OAAO,QAAQ,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,CAC3G,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAkB;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,CAAC,GAAG,YAAY,CAAC,IAA6C,CAAC,CAAC,CAAC,CAAC,IAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;QAClG,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,OAAO;QACrC,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,wDAAwD,OAAO,QAAQ,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3H,CAAC;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAkB;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,CAAC,GAAG,YAAY,CAAC,IAA6C,CAAC,CAAC,CAAC,CAAC,IAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;QAClG,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,OAAO;QACrC,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,4DAA4D,OAAO,QAAQ,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/H,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAkB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,CAAC,GAAG,YAAY,CAAC,IAA6C,CAAC,CAAC,CAAC,CAAC,IAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;QAClG,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,MAAM,UAAU,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,CAAC;QAC7C,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,YAAY,IAAI,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzF,MAAM,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAC,SAAS,YAAY,EAAE,CAAC,CAAC;YACvE,CAAC;YACD,MAAM,CAAC,0BAA0B,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,OAAe,EAAE,SAAkC;QACnF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,YAAY,CAAC;QACjF,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;QAC9D,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,QAAQ,KAAK,KAAK;YAAE,OAAO;QAC/B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/B,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,yBAAyB,EAAE;YACpD,QAAQ,EAAE,GAAG;YACb,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,qBAAqB,IAAI,EAAE,CAAC;YACtD,cAAc,EAAE,QAAQ,IAAI,IAAI;SACjC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,OAAe,EAAE,SAAkC;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS;YAAE,OAAO;QAC/B,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,YAAY,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE/D,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,eAAe,CAAC;gBAClC,QAAQ,EAAE,GAAG;gBACb,mBAAmB,EAAE,kBAAkB;gBACvC,UAAU,EAAE,eAAe;gBAC3B,aAAa,EAAE,YAAY;aAC5B,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YACvD,MAAM,aAAa,GAAG,sBAAsB,CAC1C,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAC9B,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAClC,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;iBACzC,MAAM,CAAC,aAAa,CAAC;iBACrB,MAAM,CAAC,QAAQ,CAAC;iBAChB,MAAM,CAAC,KAAK,CAAC,CAAC;YAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;YAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;gBAChD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBACtD,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBACjD,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAChG,IAAI,CAAC,EAAE,EAAE,CAAC;oBACR,MAAM,IAAI,SAAS,CAAC,iDAAiD,GAAG,UAAU,QAAQ,EAAE,CAAC,CAAC;gBAChG,CAAC;gBACD,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,mBAAmB,CAAC,CAAC;gBAClD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,uCAAuC,GAAG,OAAO,YAAY,EAAE,CAAC,CAAC;YAC3F,CAAC;YAED,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,SAAS;gBAAE,MAAM,GAAG,CAAC;YACxC,MAAM,IAAI,SAAS,CAAC,2CAA2C,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe,EAAE,WAAmB;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW;YAAE,OAAO;QACjC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;YACnD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;gBACvC,OAAO;YACT,CAAC;YACD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC;YACpC,IAAI,UAAU,KAAK,WAAW;gBAAE,OAAO;YACvC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC1E,IAAI,YAAY,CAAC,SAAkD,CAAC,EAAE,CAAC;oBACrE,MAAM,QAAQ,GAAG,MAAM,CAAE,SAAwB,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;oBACtE,IAAI,QAAQ,GAAG,OAAO,EAAE,CAAC;wBACvB,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;wBAC9C,OAAO;oBACT,CAAC;oBACD,IAAI,QAAQ,GAAG,OAAO,EAAE,CAAC;wBACvB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,2CAA2C,GAAG,cAAc,QAAQ,aAAa,OAAO,EAAE,CAAC,CAAC;oBACrH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;YACD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,uCAAuC,GAAG,gBAAgB,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;YAC3J,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,wBAAwB,EAAE;gBACnD,QAAQ,EAAE,GAAG;gBACb,WAAW,EAAE,UAAU;gBACvB,YAAY,EAAE,WAAW;aAC1B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,qCAAqC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED,uBAAuB,CAAC,OAAe;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC;QAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,GAAG,GAAG,IAAI,GAAG,KAAK;YAAE,OAAO;QAC/B,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,IAAkB;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,IAA6C,CAAC,EAAE,CAAC;YACjE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,wCAAwC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,yBAAyB,CAAC,CAAC;YAC9G,OAAO;QACT,CAAC;QACD,MAAM,CAAC,GAAG,IAAkB,CAAC;QAC7B,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,wCAAwC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,kBAAkB,CAAC,CAAC;YACvG,OAAO;QACT,CAAC;QACD,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,0CAA0C,OAAO,mBAAmB,MAAM,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7H,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,CAAC,CAAC,gBAAgB,CAAC;YAC9B,IAAI,EAAE,IAAI,YAAY,CAAC,EAA2C,CAAC,EAAE,CAAC;gBACpE,IAAI,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxC,OAAO,CAAC,CAAC,gBAAgB,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChE,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;wBACvB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,iEAAiE,OAAO,EAAE,CAAC,CAAC;wBACnG,OAAO;oBACT,CAAC;oBACD,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACpD,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;YAC1C,MAAM,kBAAkB,GAAG,MAAM,CAAC,CAAC,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACtE,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAE9D,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC;YACjD,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5E,IAAI,UAAU,IAAI,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,KAAK,aAAa,EAAE,CAAC;gBACnF,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,wCAAwC,OAAO,aAAa,UAAU,CAAC,aAAa,aAAa,YAAY,EAAE,CAAC,CAAC;gBACxI,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC3F,IAAI,WAAW,IAAI,YAAY,CAAC,WAAoD,CAAC,IAAI,eAAe,IAAI,WAAW,EAAE,CAAC;wBACxH,MAAM,QAAQ,GAAG,WAAyB,CAAC;wBAC3C,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;wBAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;wBAChD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;wBAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;wBAChE,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;wBAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;wBACrD,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;4BAC1B,MAAM,QAAQ,GAAyC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4BACpG,MAAM,OAAO,GAA4B,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4BACpF,MAAM,QAAQ,GAAG,gBAAgB,CAAC;gCAChC,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM;gCAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK;6BACzD,CAAC,CAAC;4BACH,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gCACvB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,iDAAiD,OAAO,OAAO,EAAE,aAAa,KAAK,QAAQ,QAAQ,EAAE,CAAC,CAAC;gCAC9H,OAAO;4BACT,CAAC;wBACH,CAAC;wBACD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC;wBACjD,IAAI,MAAM,EAAE,CAAC;4BACX,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,IAAI,kBAAkB,EAAE,WAAW,IAAI,cAAc,CAAC,CAAC;wBACjI,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,+BAA+B,OAAO,KAAK,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC9F,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAyC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/G,MAAM,MAAM,GAA4B,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzF,MAAM,QAAQ,GAAG,gBAAgB,CAAC;gBAChC,OAAO,EAAE,YAAY,EAAE,QAAQ;gBAC/B,OAAO,EAAE,MAAM,EAAE,aAAa;aAC/B,CAAC,CAAC;YACH,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,uCAAuC,OAAO,OAAO,YAAY,aAAa,SAAS,QAAQ,QAAQ,EAAE,CAAC,CAAC;gBAClI,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC;YACjD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC;YAClH,CAAC;YACD,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,wCAAwC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,YAAY,OAAO,EAAE,CAAC,CAAC;QAC5G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,gDAAgD,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,YAAY,OAAO,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1K,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAe,EAAE,OAAmC;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,OAAO,EAAE,WAAW,EAAE,CAAC;YACzB,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;YACnE,IAAI,CAAC,cAAc;gBAAE,OAAO;QAC9B,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,QAAQ,CAAC;YACf,OAAO;QACT,CAAC;QAED,IAAI,WAAuB,CAAC;QAC5B,IAAI,UAAoC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACjD,WAAW,GAAG,OAAO,CAAC;YACtB,UAAU,GAAG,MAAM,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7C,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,GAAG,CAAC;oBACF,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACzC,MAAM,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBAC1C,CAAC,QAAQ,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACnD,WAAY,EAAE,CAAC;YACjB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,UAAW,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;oBAAS,CAAC;gBACT,IAAI,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;oBACpD,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC5C,CAAC;gBACD,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,IAAI,CAAC;YACH,MAAM,IAAI,CAAC;QACb,CAAC;gBAAS,CAAC;YACT,IAAI,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBACpD,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,aAAa,CAAC,KAAa;QACzB,IAAI,CAAC,GAAG,UAAU,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,OAAe;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YACzF,MAAM,OAAO,GAAG,YAAY,CAAC,WAAoD,CAAC;gBAChF,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAE,WAA0B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,WAA0B,CAAC,OAAO;oBACzF,CAAC,CAAC,KAAK,CAAC,OAAO,CAAE,WAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,WAA0B,CAAC,KAAK;wBACpF,CAAC,CAAC,KAAK,CAAC,OAAO,CAAE,WAA0B,CAAC,cAAc,CAAC,CAAC,CAAC,CAAE,WAA0B,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClH,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YAChC,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;YAC1C,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,IAAI,CAAC,YAAY,CAAC,IAA6C,CAAC;oBAAE,SAAS;gBAC3E,MAAM,GAAG,GAAG,MAAM,CAAE,IAAmB,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1D,MAAM,IAAI,GAAG,MAAM,CAAE,IAAmB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC5D,IAAI,CAAC,GAAG;oBAAE,SAAS;gBACnB,IAAI,QAAQ,IAAK,IAAmB,IAAI,CAAC,OAAO,CAAE,IAAmB,CAAC,MAAM,CAAC;oBAAE,SAAS;gBACxF,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO;oBAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACnE,IAAI,GAAG,KAAK,KAAK;oBAAE,MAAM,GAAG,IAAI,CAAC;YACnC,CAAC;YACD,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,OAAO;gBAAE,OAAO,KAAK,CAAC;YAE3D,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAC5D,QAAQ,EAAE,OAAO;gBACjB,sBAAsB,EAAE,kBAAkB,EAAE;aAC7C,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,aAAsD,CAAC,IAAI,KAAK,CAAC,OAAO,CAAE,aAA4B,CAAC,OAAO,CAAC;gBAC1I,CAAC,CAAG,aAA4B,CAAC,OAAqB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAsB,EAAE,CAAC,YAAY,CAAC,IAA6C,CAAC,CAAC;gBACxJ,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACzC,MAAM,WAAW,GAAG,WAAW,IAAI,GAAG,CAAC;gBACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpD,IAAI,GAAG,IAAI,WAAW,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnD,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,QAAQ,EAAE,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,EAAE;oBAAE,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;YAC/E,CAAC;YACD,MAAM,KAAK,GAAG,GAAG,KAAK,OAAO,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YACtD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAClD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACrB,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,yCAAyC,OAAO,WAAW,MAAM,EAAE,CAAC,CAAC;gBAC7F,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC/E,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,2CAA2C,OAAO,WAAW,MAAM,SAAS,KAAK,aAAa,OAAO,EAAE,CAAC,CAAC;YACjI,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,kEAAkE,OAAO,QAAQ,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnI,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,wBAAwB,CAAC,OAAe,EAAE,SAAqB;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,SAAS,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAChC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9E,IAAI,CAAC,SAAS,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,6CAA6C,OAAO,OAAO,SAAS,EAAE,CAAC,CAAC;YAC/F,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAc,CAAC;YAC3D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,yDAAyD,OAAO,OAAO,SAAS,EAAE,CAAC,CAAC;gBAC3G,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,QAAQ,GAAG,sBAAsB,CACrC,OAAO,EACP,SAAS,EACT,MAAsD,CACvD,CAAC;YACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,gDAAgD,OAAO,OAAO,SAAS,EAAE,CAAC,CAAC;gBAClG,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,sDAAsD,OAAO,OAAO,SAAS,QAAQ,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtI,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAe;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK;gBAAE,OAAO;YAEnB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YAClF,MAAM,OAAO,GAAG,YAAY,CAAC,WAAoD,CAAC;gBAChF,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAE,WAA0B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,WAA0B,CAAC,OAAO,CAAC,CAAC,CAAE,WAA0B,CAAC,KAAK,CAAC;gBAChI,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBAAE,OAAO;YAEpC,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,IAAI,CAAC,YAAY,CAAC,IAA6C,CAAC;oBAAE,SAAS;gBAC3E,MAAM,GAAG,GAAG,MAAM,CAAE,IAAmB,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1D,MAAM,IAAI,GAAG,MAAM,CAAE,IAAmB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC5D,IAAI,CAAC,GAAG;oBAAE,SAAS;gBACnB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO;oBAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9D,IAAI,GAAG,KAAK,KAAK;oBAAE,MAAM,GAAG,IAAI,CAAC;YACnC,CAAC;YACD,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,OAAO;gBAAE,OAAO;YAErD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YACvF,IAAI,YAAY,CAAC,YAAqD,CAAC,EAAE,CAAC;gBACxE,MAAM,eAAe,GAAI,YAA2B,CAAC,QAAQ,CAAC;gBAC9D,IAAI,YAAY,CAAC,eAAwD,CAAC,IAAI,MAAM,CAAE,eAA8B,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC/I,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;oBAClE,IAAI,SAAS;wBAAE,OAAO;oBACtB,MAAM,aAAa,GAAG,MAAM,CAAE,eAA8B,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACxF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACzB,IAAI,aAAa,GAAG,KAAK,EAAE,CAAC;wBAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,KAAK,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;wBAC5D,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,qDAAqD,MAAM,YAAY,OAAO,EAAE,CAAC,CAAC;wBAC1G,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAC5D,QAAQ,EAAE,OAAO;gBACjB,sBAAsB,EAAE,kBAAkB,EAAE;aAC7C,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,YAAY,CAAC,aAAsD,CAAC,IAAI,KAAK,CAAC,OAAO,CAAE,aAA4B,CAAC,OAAO,CAAC;gBAC7I,CAAC,CAAG,aAA4B,CAAC,OAAqB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAsB,EAAE,CAAC,YAAY,CAAC,IAA6C,CAAC,CAAC;gBACxJ,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,eAAe,GAAG,YAAY,CAAC,aAAsD,CAAC,IAAI,KAAK,CAAC,OAAO,CAAE,aAA4B,CAAC,gBAAgB,CAAC;gBAC3J,CAAC,CAAG,aAA4B,CAAC,gBAA8B,CAAC,MAAM,CAAC,CAAC,IAAI,EAAsB,EAAE,CAAC,YAAY,CAAC,IAA6C,CAAC,CAAC;gBACjK,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAC3B,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAC7E,CAAC,CAAC,IAAI,EAAE,CAAC;YAEV,MAAM,kBAAkB,GAAgE,EAAE,CAAC;YAC3F,KAAK,MAAM,GAAG,IAAI,UAAU;gBAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAC3D,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACzC,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAC;oBAC9B,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBAC3B,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;wBACtC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;qBAC/B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,MAAM,YAAY,GAA4B;gBAC5C,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;gBACvF,UAAU,EAAE,SAAS;gBACrB,SAAS,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;gBACzD,gBAAgB,EAAE,IAAI;gBACtB,eAAe,EAAE,IAAI;gBACrB,cAAc,EAAE,eAAe;gBAC/B,aAAa,EAAE,KAAK;aACrB,CAAC;YAEF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,YAAY,CAAC,SAAkD,CAAC;gBAAE,OAAO;YAC9E,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,SAAuB,CAAC;gBAAE,OAAO;YAC7E,MAAM,SAAS,GAAG,MAAM,CAAE,SAAwB,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YAC5E,MAAM,SAAS,GAAG,MAAM,CAAE,SAAwB,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;YACrE,MAAM,QAAQ,GAAG,MAAM,CAAE,SAAwB,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,EAAE,SAAS,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;YAC/E,MAAM,kBAAkB,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YACzD,MAAM,sBAAsB,GAAG,MAAM,CAAC,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9E,IAAI,sBAAsB,KAAK,kBAAkB;gBAAE,OAAO;YAE1D,MAAM,yBAAyB,GAAG,MAAM,CAAE,SAAwB,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;YAC9F,IAAI,yBAAyB,IAAI,yBAAyB,KAAK,kBAAkB,EAAE,CAAC;gBAClF,MAAM,CAAC,0BAA0B,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;gBACnE,OAAO;YACT,CAAC;YAED,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,EAAE,aAAa,IAAI,EAAE,CAAC;YAC9D,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,eAAe,CAAC;wBAClC,QAAQ,EAAE,OAAO;wBACjB,mBAAmB,EAAE,kBAAkB;wBACvC,UAAU,EAAE,SAAS;wBACrB,aAAa,EAAE,SAAS,GAAG,CAAC;qBAC7B,CAAC,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;oBACnD,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC/F,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,sCAAsC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC1F,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;gBAC1D,QAAQ,EAAE,OAAO;gBACjB,aAAa,EAAE,SAAS,GAAG,CAAC;gBAC5B,SAAS,EAAE,QAAQ;gBACnB,UAAU,EAAE,SAAS;gBACrB,eAAe,EAAE,SAAS;gBAC1B,mBAAmB,EAAE,kBAAkB;gBACvC,SAAS;gBACT,MAAM,EAAE,oBAAoB;gBAC5B,oBAAoB,EAAE,EAAE;aACzB,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,YAAY,CAAC,OAAgD,CAAC,CAAC,CAAC,CAAC,MAAM,CAAE,OAAsB,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClJ,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC5F,MAAM,CAAC,0BAA0B,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;gBACrE,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,mDAAmD,OAAO,QAAQ,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,mDAAmD,OAAO,QAAQ,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtH,CAAC;IACH,CAAC;IAED,gCAAgC,CAAC,OAAe,EAAE,QAAoB,EAAE,SAAqB;QAC3F,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,SAAS,CAAC;YAAE,OAAO,KAAK,CAAC;QACrE,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9D,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnE,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7E,IAAI,UAAU,KAAK,SAAS,GAAG,CAAC,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,YAAY,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACvG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,4CAA4C,OAAO,eAAe,SAAS,gBAAgB,UAAU,EAAE,CAAC,CAAC;YAChI,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAc,CAAC;YAC3D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;gBAAE,OAAO,KAAK,CAAC;YACxC,MAAM,QAAQ,GAAG,sBAAsB,CACrC,OAAO,EACP,UAAU,EACV,MAAsD,CACvD,CAAC;YACF,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;gBAC9B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,4CAA4C,OAAO,gBAAgB,UAAU,EAAE,CAAC,CAAC;gBACxG,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,kDAAkD,OAAO,QAAQ,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClH,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,OAAe;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACvF,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAqD,CAAC;eAC/E,YAAY,CAAE,YAA2B,CAAC,QAAiD,CAAC;YAC/F,CAAC,CAAE,YAA2B,CAAC,QAAsB;YACrD,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAE3C,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,YAAY,CAAC,SAAkD,CAAC;YAAE,OAAO,KAAK,CAAC;QACpF,MAAM,SAAS,GAAG,MAAM,CAAE,SAAwB,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,8CAA8C,OAAO,eAAe,SAAS,gBAAgB,UAAU,EAAE,CAAC,CAAC;YACnI,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAuB,CAAC;YAAE,OAAO,KAAK,CAAC;QAErG,MAAM,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5F,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,wCAAwC,OAAO,aAAa,UAAU,EAAE,CAAC,CAAC;QACjG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,2BAA2B;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,YAAY,CAAC,UAAmD,CAAC;gBAC9E,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAE,UAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,UAAyB,CAAC,MAAM,CAAC,CAAC,CAAE,UAAyB,CAAC,KAAK,CAAC;gBAC3H,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,OAAO;YACnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,YAAY,CAAC,KAA8C,CAAC;oBAAE,SAAS;gBAC5E,MAAM,MAAM,GAAG,MAAM,CAAE,KAAoB,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAC/E,IAAI,MAAM,IAAI,MAAM,KAAK,QAAQ;oBAAE,SAAS;gBAC5C,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAmB,CAAC,CAAC;gBACvD,MAAM,MAAM,GAAG,MAAM,CAAE,KAAoB,CAAC,IAAI,IAAK,KAAoB,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChG,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,OAAO,CAAC;oBAAE,SAAS;gBACrE,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;oBAClE,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;oBAC5C,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,qDAAqD,OAAO,QAAQ,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,yDAAyD,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;IAEO,gCAAgC,CAAC,MAAkB,EAAE,MAAiB;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,yBAAyB,KAAK,UAAU;YACtE,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC;YAC1C,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,YAAY,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IACnH,CAAC;IAEO,aAAa,CAAC,GAAW;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,YAAY,GAAG,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,gBAAgB;YAAE,OAAO;QAChG,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,GAAG,IAAI,GAAG;gBAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,gBAAgB;YAAE,OAAO;QACxD,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;QACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1D,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,OAAe,EACf,SAAkC,EAClC,kBAA0B;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC;YACH,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO;YAChD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;gBAAE,OAAO;YAC3C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1E,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC;gBACxD,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACnD,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACrE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAE/B,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACjG,MAAM,QAAQ,GAA4B,EAAE,CAAC;gBAC7C,IAAI,YAAY,CAAC,IAA6C,CAAC,IAAI,KAAK,CAAC,OAAO,CAAE,IAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChH,KAAK,MAAM,CAAC,IAAK,IAAmB,CAAC,QAAqB,EAAE,CAAC;wBAC3D,IAAI,YAAY,CAAC,CAA0C,CAAC,IAAI,OAAQ,CAAgB,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;4BAC1G,QAAQ,CAAE,CAAgB,CAAC,GAAa,CAAC,GAAI,CAAgB,CAAC,KAAK,CAAC;wBACtE,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,GAAG,EAAE,CAAC;YACZ,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3D,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,yBAAyB,EAAE;oBACpD,QAAQ,EAAE,OAAO;oBACjB,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE;oBAC3B,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;IACH,CAAC;CACF"}
|
|
@@ -13,6 +13,8 @@ export declare class RpcPipeline {
|
|
|
13
13
|
private pullDrainedCheckQueued;
|
|
14
14
|
constructor(runtime: ClientRuntime);
|
|
15
15
|
call(method: string, params?: RpcParams): Promise<RpcResult>;
|
|
16
|
+
private _callWithSent;
|
|
17
|
+
private _call;
|
|
16
18
|
preflight(method: string, params?: RpcParams): RpcPreflightResult;
|
|
17
19
|
mergeInstanceProtectedHeaders(method: string, params: RpcParams): void;
|
|
18
20
|
normalizeOutboundMessagePayload(params: RpcParams, method?: string): void;
|
|
@@ -43,7 +45,8 @@ export declare class RpcPipeline {
|
|
|
43
45
|
isPullNamespaceCurrent(namespace: string): boolean;
|
|
44
46
|
invalidatePulls(): Promise<void>;
|
|
45
47
|
private pullInvalidationInProgress;
|
|
46
|
-
|
|
48
|
+
runPullNamespaceSerialized<T>(key: string, operation: () => Promise<T> | T, background?: boolean): Promise<T>;
|
|
49
|
+
runPullSerialized<T>(key: string, operation: () => Promise<T> | T, background?: boolean, namespaceOnly?: boolean): Promise<T>;
|
|
47
50
|
private executePullOperation;
|
|
48
51
|
private throwIfPullInvalidated;
|
|
49
52
|
yieldPullGate(key: string, nextKey?: string, background?: boolean): Promise<void>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as crypto from 'node:crypto';
|
|
2
|
-
import { normalizeSlotId, slotIsolationKey } from '../config.js';
|
|
2
|
+
import { _INTERNAL_MESSAGE_FLOW_LIMITS, normalizeSlotId, slotIsolationKey } from '../config.js';
|
|
3
3
|
import { certTimeError } from '../cert-utils.js';
|
|
4
4
|
import { orgRequestParams, validateOrgRequestJSON } from '../org-protocol.js';
|
|
5
5
|
import { canonicalJson as canonicalClientRequest } from '../v2/crypto/canonical.js';
|
|
@@ -7,6 +7,7 @@ import { ClientSignatureError, ConnectionError, PermissionError, TimeoutError, V
|
|
|
7
7
|
import { ConnectionState, isJsonObject, } from '../types.js';
|
|
8
8
|
import { validateAIDFormat, validateGroupIDFormat } from '../validators.js';
|
|
9
9
|
import { normalizeGroupMentionMode, normalizeGroupSettingsResponse } from './mention-mode.js';
|
|
10
|
+
import { invalidateStorageReadCache, storageReadCache } from '../storage/read-cache.js';
|
|
10
11
|
const INTERNAL_ONLY_METHODS = new Set([
|
|
11
12
|
'auth.login1',
|
|
12
13
|
'auth.aid_login1',
|
|
@@ -115,7 +116,6 @@ function getCertFingerprint(certPem) {
|
|
|
115
116
|
/** 旧式 tryAcquirePullGate 的防并发窗口。 */
|
|
116
117
|
const PULL_GATE_STALE_MS = 35_000;
|
|
117
118
|
const PULL_GATE_OPERATION_TIMEOUT_MS = 35_000;
|
|
118
|
-
const PULL_GATE_MAX_ACTIVE = 4;
|
|
119
119
|
function sameIdentityAdmissionRejection(error, original) {
|
|
120
120
|
const errorCode = Number(error?.code);
|
|
121
121
|
const originalCode = Number(original?.code);
|
|
@@ -167,6 +167,16 @@ export class RpcPipeline {
|
|
|
167
167
|
this.runtime = runtime;
|
|
168
168
|
}
|
|
169
169
|
async call(method, params) {
|
|
170
|
+
if (method.startsWith('storage.') || method.startsWith('group.fs.')) {
|
|
171
|
+
const { noCache, no_cache, ...wireParams } = params ?? {};
|
|
172
|
+
return storageReadCache(this.runtime.client).rpc(method, wireParams, Boolean(noCache ?? no_cache), (requestParams) => this._call(method, requestParams));
|
|
173
|
+
}
|
|
174
|
+
return this._call(method, params);
|
|
175
|
+
}
|
|
176
|
+
async _callWithSent(method, params, onSent) {
|
|
177
|
+
return this._call(method, params, onSent);
|
|
178
|
+
}
|
|
179
|
+
async _call(method, params, onSent) {
|
|
170
180
|
const client = this.runtime.client;
|
|
171
181
|
const generation = client._delivery?.captureInlineAckGeneration?.();
|
|
172
182
|
const tStart = Date.now();
|
|
@@ -194,6 +204,23 @@ export class RpcPipeline {
|
|
|
194
204
|
const deferGroupReadyPostprocess = Boolean(p._defer_group_ready_postprocess);
|
|
195
205
|
delete p._defer_group_ready_postprocess;
|
|
196
206
|
const pullGateKey = this.pullGateKeyForCall(method, p);
|
|
207
|
+
if (client._p2pPeerPullEnabled && method === 'message.peers')
|
|
208
|
+
return await client._delivery.peers(p, rpcBackground);
|
|
209
|
+
if (client._p2pPeerPullEnabled && (method === 'message.pull' || method === 'message.v2.pull')) {
|
|
210
|
+
await client._ensureV2SessionReady('message.pull');
|
|
211
|
+
return await client._delivery.pullPeers(p, rpcBackground);
|
|
212
|
+
}
|
|
213
|
+
if (client._p2pPeerPullEnabled && method === 'message.history') {
|
|
214
|
+
await client._ensureV2SessionReady('message.history');
|
|
215
|
+
const key = this.pullGateKeyForCall(method, p);
|
|
216
|
+
return await this.runPullNamespaceSerialized(key, () => client._v2E2EE.peerHistoryV2(p), rpcBackground);
|
|
217
|
+
}
|
|
218
|
+
if (client._p2pPeerPullEnabled && (method === 'message.ack' || method === 'message.v2.ack')) {
|
|
219
|
+
const sender = String(p.sender_aid ?? '').trim();
|
|
220
|
+
if (!sender)
|
|
221
|
+
throw new ValidationError('peer ACK requires sender_aid');
|
|
222
|
+
return await client._v2E2EE.ackPeerV2(sender, requestedAckSeq || undefined, Array.isArray(p.volatile_cursors) ? p.volatile_cursors : [], Array.isArray(p.volatile_ids) ? p.volatile_ids : []);
|
|
223
|
+
}
|
|
197
224
|
const runWithPullResponseScope = async (operation) => {
|
|
198
225
|
const scope = pullGateNamespace || (pullGateKey ? this.pullScopeKey(pullGateKey) : '');
|
|
199
226
|
const wrapper = client._withPullResponseProcessing;
|
|
@@ -207,9 +234,13 @@ export class RpcPipeline {
|
|
|
207
234
|
lockedParams._pull_gate_namespace = this.pullScopeKey(pullGateKey);
|
|
208
235
|
if (pullBackground)
|
|
209
236
|
lockedParams._rpc_background = true;
|
|
237
|
+
else
|
|
238
|
+
lockedParams._rpc_foreground = true;
|
|
210
239
|
if (skipSendResultEnvelope)
|
|
211
240
|
lockedParams._skip_send_result_envelope = true;
|
|
212
|
-
|
|
241
|
+
const run = ['group.pull', 'group.v2.pull', 'group.history'].includes(method)
|
|
242
|
+
? this.runPullNamespaceSerialized.bind(this) : this.runPullSerialized.bind(this);
|
|
243
|
+
return await run(pullGateKey, async () => this.call(method, lockedParams), pullBackground);
|
|
213
244
|
}
|
|
214
245
|
if (method === 'message.send') {
|
|
215
246
|
const encrypt = p.encrypt ?? true;
|
|
@@ -222,6 +253,7 @@ export class RpcPipeline {
|
|
|
222
253
|
ttl: p.ttl,
|
|
223
254
|
protectedHeaders: client._protectedHeadersFromParams(p),
|
|
224
255
|
context: isJsonObject(p.context) ? p.context : undefined,
|
|
256
|
+
needRender: p.need_render,
|
|
225
257
|
}));
|
|
226
258
|
}
|
|
227
259
|
client._maybeAppendEchoTraceSend(p);
|
|
@@ -236,6 +268,7 @@ export class RpcPipeline {
|
|
|
236
268
|
timestamp: p.timestamp,
|
|
237
269
|
protectedHeaders: client._protectedHeadersFromParams(p),
|
|
238
270
|
context: isJsonObject(p.context) ? p.context : undefined,
|
|
271
|
+
needRender: p.need_render,
|
|
239
272
|
}));
|
|
240
273
|
}
|
|
241
274
|
client._maybeAppendEchoTraceSend(p);
|
|
@@ -298,12 +331,12 @@ export class RpcPipeline {
|
|
|
298
331
|
}
|
|
299
332
|
await client._ensureV2SessionReady('group.pull');
|
|
300
333
|
if (p.window_mode === 'tail') {
|
|
301
|
-
return await runWithPullResponseScope(() => client._v2E2EE.pullGroupV2TailInternal(p));
|
|
334
|
+
return await runWithPullResponseScope(() => client._v2E2EE.pullGroupV2TailInternal(p, false, true));
|
|
302
335
|
}
|
|
303
336
|
const hasExplicitAfterSeq = 'after_seq' in p || 'after_message_seq' in p;
|
|
304
337
|
const cursorParams = this.explicitGroupCursorParams(p);
|
|
305
338
|
const ownsCursor = Object.keys(cursorParams).length === 0 || this.groupCursorTargetsCurrentInstance(cursorParams);
|
|
306
|
-
const pullOpts = { gateLocked: true };
|
|
339
|
+
const pullOpts = { gateLocked: true, background: rpcBackground };
|
|
307
340
|
if (hasExplicitAfterSeq)
|
|
308
341
|
pullOpts.explicitAfterSeq = true;
|
|
309
342
|
if (p.force === true)
|
|
@@ -316,7 +349,7 @@ export class RpcPipeline {
|
|
|
316
349
|
pullOpts.wireGroupId = String(p.group_id).trim();
|
|
317
350
|
if (String(p.group_aid ?? '').trim())
|
|
318
351
|
pullOpts.groupAid = String(p.group_aid).trim();
|
|
319
|
-
const messages = await runWithPullResponseScope(() =>
|
|
352
|
+
const messages = await runWithPullResponseScope(() => client._pullGroupV2(String(p.group_id ?? p.group_aid), Number(p.after_seq ?? p.after_message_seq ?? 0) || 0, Number(p.limit ?? 50) || 50, pullOpts));
|
|
320
353
|
return { messages };
|
|
321
354
|
}
|
|
322
355
|
if (method === 'group.history') {
|
|
@@ -349,16 +382,19 @@ export class RpcPipeline {
|
|
|
349
382
|
client._clientLog.debug(`thought.get transport call start: method=${method}, params=${client._debugJson(client._messageEnvelopeFieldsForDebug(p))}`);
|
|
350
383
|
}
|
|
351
384
|
const invokeTransport = () => {
|
|
352
|
-
const request =
|
|
353
|
-
? (rpcBackground
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
:
|
|
385
|
+
const request = onSent
|
|
386
|
+
? client._transport['_callWithSent'](method, p, onSent, callTimeout, undefined, rpcBackground)
|
|
387
|
+
: callTimeout
|
|
388
|
+
? (rpcBackground
|
|
389
|
+
? client._transport.call(method, p, callTimeout, undefined, true)
|
|
390
|
+
: client._transport.call(method, p, callTimeout))
|
|
391
|
+
: (rpcBackground
|
|
392
|
+
? client._transport.call(method, p, undefined, undefined, true)
|
|
393
|
+
: client._transport.call(method, p));
|
|
359
394
|
return this.bindActivePullCancellation(method, p, request);
|
|
360
395
|
};
|
|
361
396
|
let result = await this.transportCallWithIdentityRecovery(invokeTransport, method, p);
|
|
397
|
+
invalidateStorageReadCache(client, method);
|
|
362
398
|
if (generation === client._delivery?.captureInlineAckGeneration?.()) {
|
|
363
399
|
this.observeBackgroundPullResponse(method, p, result, pullGateNamespace);
|
|
364
400
|
}
|
|
@@ -392,8 +428,11 @@ export class RpcPipeline {
|
|
|
392
428
|
}
|
|
393
429
|
const p = { ...(params ?? {}) };
|
|
394
430
|
this.mergeInstanceProtectedHeaders(method, p);
|
|
395
|
-
const rpcBackground = Boolean(p.
|
|
431
|
+
const rpcBackground = !Boolean(p._rpc_foreground)
|
|
432
|
+
&& (Boolean(p._rpc_background)
|
|
433
|
+
|| (!['message.peers', 'message.pull', 'message.v2.pull', 'group.pull', 'group.v2.pull', 'group.history', 'group.pull_events'].includes(method) && client._backgroundRpcDepth > 0));
|
|
396
434
|
delete p._rpc_background;
|
|
435
|
+
delete p._rpc_foreground;
|
|
397
436
|
if (method === 'message.send' || method === 'group.send') {
|
|
398
437
|
this.normalizeOutboundMessagePayload(p, method);
|
|
399
438
|
const messageId = String(p.message_id ?? '').trim();
|
|
@@ -430,6 +469,9 @@ export class RpcPipeline {
|
|
|
430
469
|
}
|
|
431
470
|
}
|
|
432
471
|
validateOutboundCall(method, params) {
|
|
472
|
+
if ((method === 'message.send' || method === 'group.send') && params.need_render !== undefined && typeof params.need_render !== 'boolean') {
|
|
473
|
+
throw new ValidationError('need_render must be a boolean');
|
|
474
|
+
}
|
|
433
475
|
if (method === 'message.send') {
|
|
434
476
|
this.validateMessageRecipient(params.to);
|
|
435
477
|
// 校验目标 AID 格式(拒绝 __system__ 等非法格式)
|
|
@@ -492,7 +534,7 @@ export class RpcPipeline {
|
|
|
492
534
|
}
|
|
493
535
|
}
|
|
494
536
|
injectMessageCursorContext(method, params) {
|
|
495
|
-
if (!['message.pull', 'message.v2.pull', 'message.ack', 'message.v2.ack'].includes(method)) {
|
|
537
|
+
if (!['message.pull', 'message.v2.pull', 'message.history', 'message.ack', 'message.v2.ack', 'message.peers'].includes(method)) {
|
|
496
538
|
return;
|
|
497
539
|
}
|
|
498
540
|
const client = this.runtime.client;
|
|
@@ -505,6 +547,19 @@ export class RpcPipeline {
|
|
|
505
547
|
}
|
|
506
548
|
params.device_id = client._deviceId;
|
|
507
549
|
params.slot_id = client._slotId;
|
|
550
|
+
if (client._p2pPeerPullEnabled) {
|
|
551
|
+
if (params.cursor_scope !== undefined && params.cursor_scope !== 'peer')
|
|
552
|
+
throw new ValidationError('new SDK requires peer cursor_scope');
|
|
553
|
+
if (params.sender_aid !== undefined)
|
|
554
|
+
validateAIDFormat(params.sender_aid, 'sender_aid');
|
|
555
|
+
params.cursor_scope = 'peer';
|
|
556
|
+
if ((method === 'message.pull' || method === 'message.v2.pull') && params.sender_aid && !('after_volatile_cursor' in params)) {
|
|
557
|
+
const cursor = client._delivery.peerVolatilePullCursor(String(params.sender_aid));
|
|
558
|
+
if (cursor)
|
|
559
|
+
params.after_volatile_cursor = cursor;
|
|
560
|
+
}
|
|
561
|
+
return;
|
|
562
|
+
}
|
|
508
563
|
if ((method === 'message.pull' || method === 'message.v2.pull') && !('after_volatile_cursor' in params)) {
|
|
509
564
|
const cursor = String(client._delivery.volatilePullCursor?.() ?? '').trim();
|
|
510
565
|
if (cursor)
|
|
@@ -610,7 +665,10 @@ export class RpcPipeline {
|
|
|
610
665
|
cursor = `after=${String(params.after_seq ?? 0)}`;
|
|
611
666
|
}
|
|
612
667
|
const limit = mode === 'forward' ? (Number(params.limit ?? 50) || 50) : params.limit;
|
|
613
|
-
|
|
668
|
+
if (client._p2pPeerPullEnabled && !params.sender_aid)
|
|
669
|
+
return '';
|
|
670
|
+
const namespace = client._p2pPeerPullEnabled ? client._delivery.peerNamespace(String(params.sender_aid)) : `p2p:${client._aid}`;
|
|
671
|
+
return `${namespace}|mode=${mode}|cursor=${cursor}|volatile=${String(params.after_volatile_cursor ?? '')}|force=${String(Boolean(params.force))}|limit=${String(limit)}`;
|
|
614
672
|
}
|
|
615
673
|
if (method === 'group.pull' || method === 'group.v2.pull' || method === 'group.history') {
|
|
616
674
|
const groupId = String(params.group_id ?? params.group_aid ?? '').trim();
|
|
@@ -655,14 +713,15 @@ export class RpcPipeline {
|
|
|
655
713
|
void key;
|
|
656
714
|
return 'pull';
|
|
657
715
|
}
|
|
658
|
-
pullGateState(key) {
|
|
659
|
-
const name = this.pullGateName(key);
|
|
716
|
+
pullGateState(key, namespaceOnly = false) {
|
|
717
|
+
const name = namespaceOnly ? 'pull-namespace' : this.pullGateName(key);
|
|
660
718
|
let state = this.pullGateStates.get(name);
|
|
661
719
|
if (!state) {
|
|
662
|
-
state = { activeByNamespace: new Map(), foreground: [], background: [], byKey: new Map(), lifecycle: new Map(), watchdog: null };
|
|
720
|
+
state = { networkLimited: !namespaceOnly, activeByNamespace: new Map(), foreground: [], background: [], backgroundPeerDispatches: 0, byKey: new Map(), lifecycle: new Map(), watchdog: null };
|
|
663
721
|
this.pullGateStates.set(name, state);
|
|
664
722
|
}
|
|
665
|
-
|
|
723
|
+
if (state.networkLimited)
|
|
724
|
+
this.startPullGateWatchdog(state, name);
|
|
666
725
|
return state;
|
|
667
726
|
}
|
|
668
727
|
pullGateOperationTimeoutMs() {
|
|
@@ -740,9 +799,11 @@ export class RpcPipeline {
|
|
|
740
799
|
}
|
|
741
800
|
hasPullActivity(namespace, includePending = true) {
|
|
742
801
|
const ns = String(namespace ?? '').trim();
|
|
743
|
-
if ((!ns.startsWith('p2p:') && !ns.startsWith('group:')) || this.hasInlineRealtimeGuard(ns))
|
|
802
|
+
if ((!ns.startsWith('p2p:') && !ns.startsWith('p2p.peer.v1/') && !ns.startsWith('group:')) || this.hasInlineRealtimeGuard(ns))
|
|
744
803
|
return true;
|
|
745
804
|
const client = this.runtime.client;
|
|
805
|
+
if (client._delivery?.hasPeerPageActivity?.(ns))
|
|
806
|
+
return true;
|
|
746
807
|
if ((client._pullResponseKeys.get(ns) ?? 0) > 0)
|
|
747
808
|
return true;
|
|
748
809
|
if (includePending && Number(client._pendingP2pPullUpper?.get?.(ns) ?? 0) > 0)
|
|
@@ -769,7 +830,7 @@ export class RpcPipeline {
|
|
|
769
830
|
}
|
|
770
831
|
async tryRunInlineRealtime(namespace, seq, operation) {
|
|
771
832
|
const ns = String(namespace ?? '').trim();
|
|
772
|
-
if ((!ns.startsWith('p2p:') && !ns.startsWith('group:'))
|
|
833
|
+
if ((!ns.startsWith('p2p:') && !ns.startsWith('p2p.peer.v1/') && !ns.startsWith('group:'))
|
|
773
834
|
|| !Number.isSafeInteger(seq) || seq <= 0 || typeof operation !== 'function'
|
|
774
835
|
|| this.hasPullActivity(ns)) {
|
|
775
836
|
return { acquired: false };
|
|
@@ -780,12 +841,11 @@ export class RpcPipeline {
|
|
|
780
841
|
}
|
|
781
842
|
finally {
|
|
782
843
|
this.inlineRealtimeScopes.delete(ns);
|
|
783
|
-
const state
|
|
784
|
-
if (state) {
|
|
844
|
+
for (const state of this.pullGateStates.values()) {
|
|
785
845
|
this.drainPullGate(state);
|
|
786
|
-
this.runtime.client._delivery?.onPullGateIdle?.(ns);
|
|
787
846
|
this.armQueuedPullTimers(state);
|
|
788
847
|
}
|
|
848
|
+
this.runtime.client._delivery?.onPullGateIdle?.(ns);
|
|
789
849
|
}
|
|
790
850
|
}
|
|
791
851
|
tryAcquirePullGate(key) {
|
|
@@ -825,8 +885,10 @@ export class RpcPipeline {
|
|
|
825
885
|
const ns = this.pullScopeKey(namespace);
|
|
826
886
|
if (!ns)
|
|
827
887
|
return true;
|
|
828
|
-
|
|
829
|
-
|
|
888
|
+
return [...this.pullGateStates.values()].every((state) => {
|
|
889
|
+
const active = state.activeByNamespace.get(ns);
|
|
890
|
+
return !active || active.namespace !== ns || (!active.timedOut && !active.invalidated);
|
|
891
|
+
});
|
|
830
892
|
}
|
|
831
893
|
invalidatePulls() {
|
|
832
894
|
if (this.pullInvalidationWait)
|
|
@@ -844,6 +906,10 @@ export class RpcPipeline {
|
|
|
844
906
|
jobs.add(job);
|
|
845
907
|
for (const job of jobs) {
|
|
846
908
|
job.invalidated = true;
|
|
909
|
+
if (job.timer) {
|
|
910
|
+
clearTimeout(job.timer);
|
|
911
|
+
job.timer = null;
|
|
912
|
+
}
|
|
847
913
|
if (!job.timedOut)
|
|
848
914
|
job.reject(error);
|
|
849
915
|
job.cancel?.();
|
|
@@ -859,6 +925,7 @@ export class RpcPipeline {
|
|
|
859
925
|
}
|
|
860
926
|
state.foreground = state.foreground.filter((job) => !jobs.has(job));
|
|
861
927
|
state.background = state.background.filter((job) => !jobs.has(job));
|
|
928
|
+
state.backgroundPeerDispatches = 0;
|
|
862
929
|
for (const [key, job] of state.byKey.entries()) {
|
|
863
930
|
if (jobs.has(job) && !job.running)
|
|
864
931
|
state.byKey.delete(key);
|
|
@@ -877,7 +944,10 @@ export class RpcPipeline {
|
|
|
877
944
|
pullInvalidationInProgress() {
|
|
878
945
|
return this.pullInvalidationWait !== null;
|
|
879
946
|
}
|
|
880
|
-
async
|
|
947
|
+
async runPullNamespaceSerialized(key, operation, background = false) {
|
|
948
|
+
return await this.runPullSerialized(key, operation, background, true);
|
|
949
|
+
}
|
|
950
|
+
async runPullSerialized(key, operation, background = false, namespaceOnly = false) {
|
|
881
951
|
if (this.runtime.client._dispatcher?._isApplicationHandler?.()) {
|
|
882
952
|
throw new Error('pull cannot wait inside an application handler');
|
|
883
953
|
}
|
|
@@ -893,7 +963,7 @@ export class RpcPipeline {
|
|
|
893
963
|
throw error;
|
|
894
964
|
}
|
|
895
965
|
}
|
|
896
|
-
const state = this.pullGateState(key);
|
|
966
|
+
const state = this.pullGateState(key, namespaceOnly);
|
|
897
967
|
const namespace = this.pullScopeKey(key);
|
|
898
968
|
const active = [...state.activeByNamespace.values()].find((job) => job.key === key && !job.timedOut && !job.invalidated) ?? null;
|
|
899
969
|
const queuedForeground = state.foreground.find((job) => job.key === key && !job.timedOut && !job.invalidated);
|
|
@@ -937,7 +1007,8 @@ export class RpcPipeline {
|
|
|
937
1007
|
queue.push(job);
|
|
938
1008
|
state.byKey.set(key, job);
|
|
939
1009
|
this.drainPullGate(state);
|
|
940
|
-
|
|
1010
|
+
if (state.networkLimited)
|
|
1011
|
+
this.checkPullGate(state, this.pullGateName(key));
|
|
941
1012
|
return await promise;
|
|
942
1013
|
}
|
|
943
1014
|
async executePullOperation(operation, background) {
|
|
@@ -1000,15 +1071,52 @@ export class RpcPipeline {
|
|
|
1000
1071
|
state.lifecycle.set(ns, lifecycle);
|
|
1001
1072
|
}
|
|
1002
1073
|
drainPullGate(state) {
|
|
1003
|
-
const
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1074
|
+
const peerForward = (job) => job.background && job.namespace.startsWith('p2p.peer.v1/')
|
|
1075
|
+
&& job.key.includes('|mode=forward|') && !job.key.includes('|force=true|');
|
|
1076
|
+
const priority = (job) => peerForward(job)
|
|
1077
|
+
? this.runtime.client._delivery?.peerPullPriority?.(job.namespace) ?? null : null;
|
|
1078
|
+
const runnable = (candidate) => {
|
|
1079
|
+
if (this.hasInlineRealtimeGuard(this.pullScopeKey(candidate.key)) || state.activeByNamespace.has(candidate.namespace))
|
|
1080
|
+
return false;
|
|
1081
|
+
const retryAt = this.runtime.client._delivery?.automaticPullRetryAt?.(candidate.namespace, candidate.operation) ?? 0;
|
|
1082
|
+
if (retryAt > Date.now()) {
|
|
1083
|
+
if (!candidate.timer)
|
|
1084
|
+
candidate.timer = setTimeout(() => {
|
|
1085
|
+
candidate.timer = null;
|
|
1086
|
+
this.drainPullGate(state);
|
|
1087
|
+
}, retryAt - Date.now());
|
|
1088
|
+
return false;
|
|
1089
|
+
}
|
|
1090
|
+
return true;
|
|
1007
1091
|
};
|
|
1008
|
-
|
|
1092
|
+
const takeRunnable = (queue, background = false) => {
|
|
1093
|
+
let index = queue.findIndex(runnable);
|
|
1094
|
+
if (index < 0)
|
|
1095
|
+
return;
|
|
1096
|
+
if (background && peerForward(queue[index])
|
|
1097
|
+
&& (state.backgroundPeerDispatches + 1) % _INTERNAL_MESSAGE_FLOW_LIMITS.pullMaxInflight !== 0) {
|
|
1098
|
+
let best = priority(queue[index]);
|
|
1099
|
+
if (best !== null) {
|
|
1100
|
+
for (let next = index + 1; next < queue.length; next += 1) {
|
|
1101
|
+
const hint = priority(queue[next]);
|
|
1102
|
+
if (hint === null)
|
|
1103
|
+
break;
|
|
1104
|
+
if (runnable(queue[next]) && hint < best) {
|
|
1105
|
+
best = hint;
|
|
1106
|
+
index = next;
|
|
1107
|
+
}
|
|
1108
|
+
}
|
|
1109
|
+
}
|
|
1110
|
+
}
|
|
1111
|
+
const job = queue.splice(index, 1)[0];
|
|
1112
|
+
if (background && peerForward(job))
|
|
1113
|
+
state.backgroundPeerDispatches += 1;
|
|
1114
|
+
return job;
|
|
1115
|
+
};
|
|
1116
|
+
while (state.activeByNamespace.size < _INTERNAL_MESSAGE_FLOW_LIMITS.pullMaxInflight) {
|
|
1009
1117
|
const foregroundJob = takeRunnable(state.foreground);
|
|
1010
1118
|
const foregroundDrained = foregroundJob !== undefined && state.foreground.length === 0;
|
|
1011
|
-
const job = foregroundJob ?? takeRunnable(state.background);
|
|
1119
|
+
const job = foregroundJob ?? takeRunnable(state.background, true);
|
|
1012
1120
|
if (!job)
|
|
1013
1121
|
break;
|
|
1014
1122
|
state.activeByNamespace.set(job.namespace, job);
|
|
@@ -1031,7 +1139,7 @@ export class RpcPipeline {
|
|
|
1031
1139
|
continue;
|
|
1032
1140
|
}
|
|
1033
1141
|
job.running = true;
|
|
1034
|
-
const operationPromise = this.executePullOperation(job.operation, job.background);
|
|
1142
|
+
const operationPromise = this.executePullOperation(job.operation, state.networkLimited && job.background);
|
|
1035
1143
|
let failed = false;
|
|
1036
1144
|
void operationPromise
|
|
1037
1145
|
.then((value) => { if (!job.timedOut && !job.invalidated)
|
|
@@ -1110,6 +1218,10 @@ export class RpcPipeline {
|
|
|
1110
1218
|
const result = await this.transportCallWithIdentityRecovery(invokeTransport, method, payload);
|
|
1111
1219
|
this.throwIfPullInvalidated(this.pullScopeKey(pullGateKey || this.pullGateKeyForCall(method, payload)));
|
|
1112
1220
|
if (generation === client._delivery?.captureInlineAckGeneration?.()) {
|
|
1221
|
+
if (!background && ['group.pull', 'group.v2.pull', 'group.pull_events'].includes(method)) {
|
|
1222
|
+
const ns = this.pullScopeKey(pullGateKey || this.pullGateKeyForCall(method, payload));
|
|
1223
|
+
client._delivery?.observeSuccessfulGroupPull?.(ns);
|
|
1224
|
+
}
|
|
1113
1225
|
this.observeBackgroundPullResponse(method, payload, result, pullGateKey);
|
|
1114
1226
|
}
|
|
1115
1227
|
return result;
|