@pkcprotocol/pkc-js 0.0.124 → 0.0.126

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.
Files changed (170) hide show
  1. package/README.md +54 -54
  2. package/dist/browser/clients/rpc-client/pkc-rpc-client.d.ts +3 -1
  3. package/dist/browser/clients/rpc-client/pkc-rpc-client.js +18 -3
  4. package/dist/browser/clients/rpc-client/pkc-rpc-client.js.map +1 -1
  5. package/dist/browser/clients/rpc-client/rpc-schema-util.d.ts +16 -0
  6. package/dist/browser/clients/rpc-client/rpc-schema-util.js +6 -1
  7. package/dist/browser/clients/rpc-client/rpc-schema-util.js.map +1 -1
  8. package/dist/browser/clients/rpc-client/schema.d.ts +12 -0
  9. package/dist/browser/clients/rpc-client/schema.js +9 -0
  10. package/dist/browser/clients/rpc-client/schema.js.map +1 -1
  11. package/dist/browser/clients/rpc-client/types.d.ts +5 -1
  12. package/dist/browser/community/community-client-manager.js +30 -9
  13. package/dist/browser/community/community-client-manager.js.map +1 -1
  14. package/dist/browser/community/community-wire.d.ts +6 -0
  15. package/dist/browser/community/community-wire.js +22 -1
  16. package/dist/browser/community/community-wire.js.map +1 -1
  17. package/dist/browser/community/remote-community.d.ts +7 -1
  18. package/dist/browser/community/remote-community.js +87 -11
  19. package/dist/browser/community/remote-community.js.map +1 -1
  20. package/dist/browser/community/rpc-remote-community.d.ts +1 -0
  21. package/dist/browser/community/rpc-remote-community.js +41 -6
  22. package/dist/browser/community/rpc-remote-community.js.map +1 -1
  23. package/dist/browser/community/schema.js +7 -1
  24. package/dist/browser/community/schema.js.map +1 -1
  25. package/dist/browser/community-list/community-list.d.ts +143 -0
  26. package/dist/browser/community-list/community-list.js +401 -0
  27. package/dist/browser/community-list/community-list.js.map +1 -0
  28. package/dist/browser/community-list/schema.d.ts +239 -0
  29. package/dist/browser/community-list/schema.js +95 -0
  30. package/dist/browser/community-list/schema.js.map +1 -0
  31. package/dist/browser/community-list/types.d.ts +19 -0
  32. package/dist/browser/community-list/types.js +2 -0
  33. package/dist/browser/community-list/types.js.map +1 -0
  34. package/dist/browser/errors.d.ts +19 -1
  35. package/dist/browser/errors.js +19 -0
  36. package/dist/browser/errors.js.map +1 -1
  37. package/dist/browser/generated-version.d.ts +1 -1
  38. package/dist/browser/generated-version.js +1 -1
  39. package/dist/browser/index.d.ts +2 -0
  40. package/dist/browser/pkc/pkc-client-manager.d.ts +4 -1
  41. package/dist/browser/pkc/pkc-client-manager.js +6 -4
  42. package/dist/browser/pkc/pkc-client-manager.js.map +1 -1
  43. package/dist/browser/pkc/pkc.d.ts +7 -0
  44. package/dist/browser/pkc/pkc.js +93 -0
  45. package/dist/browser/pkc/pkc.js.map +1 -1
  46. package/dist/browser/pkc/tracked-instance-registry-util.d.ts +1 -0
  47. package/dist/browser/pkc/tracked-instance-registry-util.js +34 -2
  48. package/dist/browser/pkc/tracked-instance-registry-util.js.map +1 -1
  49. package/dist/browser/pkc/tracked-instance-registry.d.ts +1 -0
  50. package/dist/browser/pkc/tracked-instance-registry.js +15 -0
  51. package/dist/browser/pkc/tracked-instance-registry.js.map +1 -1
  52. package/dist/browser/pkc-error.d.ts +1 -1
  53. package/dist/browser/publications/comment/comment-client-manager.d.ts +1 -0
  54. package/dist/browser/publications/comment/comment-client-manager.js +24 -4
  55. package/dist/browser/publications/comment/comment-client-manager.js.map +1 -1
  56. package/dist/browser/publications/comment/comment.js +6 -2
  57. package/dist/browser/publications/comment/comment.js.map +1 -1
  58. package/dist/browser/publications/publication-client-manager.d.ts +4 -1
  59. package/dist/browser/publications/publication-client-manager.js +51 -7
  60. package/dist/browser/publications/publication-client-manager.js.map +1 -1
  61. package/dist/browser/publications/publication.js +15 -1
  62. package/dist/browser/publications/publication.js.map +1 -1
  63. package/dist/browser/rpc/src/index.d.ts +3 -1
  64. package/dist/browser/rpc/src/index.js +45 -3
  65. package/dist/browser/rpc/src/index.js.map +1 -1
  66. package/dist/browser/runtime/node/community/local-community/comment-updates.js +2 -1
  67. package/dist/browser/runtime/node/community/local-community/comment-updates.js.map +1 -1
  68. package/dist/browser/schema/schema-util.d.ts +3 -0
  69. package/dist/browser/schema/schema-util.js +10 -0
  70. package/dist/browser/schema/schema-util.js.map +1 -1
  71. package/dist/browser/signer/signatures.d.ts +9 -0
  72. package/dist/browser/signer/signatures.js +30 -1
  73. package/dist/browser/signer/signatures.js.map +1 -1
  74. package/dist/browser/test/test-util.d.ts +1 -0
  75. package/dist/browser/test/test-util.js +6 -2
  76. package/dist/browser/test/test-util.js.map +1 -1
  77. package/dist/browser/util.js +6 -1
  78. package/dist/browser/util.js.map +1 -1
  79. package/dist/bundled/bundle-manifest.json +62 -58
  80. package/dist/bundled/challenges.js +1 -1
  81. package/dist/bundled/chunks/{helia-for-pkc-DfpR6JSl.js → helia-for-pkc-vQZvQcs_.js} +33 -33
  82. package/dist/bundled/chunks/{local-community-Ll4pUOKV.js → local-community-51NzNBUS.js} +32 -32
  83. package/dist/bundled/chunks/{local-community-CQ9M4cEY.js → local-community-dcM1R3k5.js} +1 -1
  84. package/dist/bundled/chunks/{node-BWOsSCO-.js → node-agDtcKUp.js} +487 -120
  85. package/dist/bundled/chunks/{page-sort-scoring-Y3zgv-l4.js → page-sort-scoring-BSBLegpC.js} +1 -1
  86. package/dist/bundled/chunks/{rpc-local-community-D8wgBsuD.js → rpc-local-community-DOcUqswi.js} +2580 -1077
  87. package/dist/bundled/chunks/{util-IESnqTnj.js → util-DNYbha6W.js} +1 -1
  88. package/dist/bundled/chunks/{util-Bd4vp_w6.js → util-PGPkG-gU.js} +2736 -994
  89. package/dist/bundled/chunks/{validate-package-factories-D527vDd_.js → validate-package-factories-2U8SCIxZ.js} +2 -2
  90. package/dist/bundled/index.js +1 -1
  91. package/dist/bundled/page-sorts.js +1 -1
  92. package/dist/bundled/rpc/src/index.js +31 -4
  93. package/dist/node/clients/rpc-client/pkc-rpc-client.d.ts +3 -1
  94. package/dist/node/clients/rpc-client/pkc-rpc-client.js +18 -3
  95. package/dist/node/clients/rpc-client/pkc-rpc-client.js.map +1 -1
  96. package/dist/node/clients/rpc-client/rpc-schema-util.d.ts +16 -0
  97. package/dist/node/clients/rpc-client/rpc-schema-util.js +6 -1
  98. package/dist/node/clients/rpc-client/rpc-schema-util.js.map +1 -1
  99. package/dist/node/clients/rpc-client/schema.d.ts +12 -0
  100. package/dist/node/clients/rpc-client/schema.js +9 -0
  101. package/dist/node/clients/rpc-client/schema.js.map +1 -1
  102. package/dist/node/clients/rpc-client/types.d.ts +5 -1
  103. package/dist/node/community/community-client-manager.js +30 -9
  104. package/dist/node/community/community-client-manager.js.map +1 -1
  105. package/dist/node/community/community-wire.d.ts +6 -0
  106. package/dist/node/community/community-wire.js +22 -1
  107. package/dist/node/community/community-wire.js.map +1 -1
  108. package/dist/node/community/remote-community.d.ts +7 -1
  109. package/dist/node/community/remote-community.js +87 -11
  110. package/dist/node/community/remote-community.js.map +1 -1
  111. package/dist/node/community/rpc-remote-community.d.ts +1 -0
  112. package/dist/node/community/rpc-remote-community.js +41 -6
  113. package/dist/node/community/rpc-remote-community.js.map +1 -1
  114. package/dist/node/community/schema.js +7 -1
  115. package/dist/node/community/schema.js.map +1 -1
  116. package/dist/node/community-list/community-list.d.ts +143 -0
  117. package/dist/node/community-list/community-list.js +401 -0
  118. package/dist/node/community-list/community-list.js.map +1 -0
  119. package/dist/node/community-list/schema.d.ts +239 -0
  120. package/dist/node/community-list/schema.js +95 -0
  121. package/dist/node/community-list/schema.js.map +1 -0
  122. package/dist/node/community-list/types.d.ts +19 -0
  123. package/dist/node/community-list/types.js +2 -0
  124. package/dist/node/community-list/types.js.map +1 -0
  125. package/dist/node/errors.d.ts +19 -1
  126. package/dist/node/errors.js +19 -0
  127. package/dist/node/errors.js.map +1 -1
  128. package/dist/node/generated-version.d.ts +1 -1
  129. package/dist/node/generated-version.js +1 -1
  130. package/dist/node/index.d.ts +2 -0
  131. package/dist/node/pkc/pkc-client-manager.d.ts +4 -1
  132. package/dist/node/pkc/pkc-client-manager.js +6 -4
  133. package/dist/node/pkc/pkc-client-manager.js.map +1 -1
  134. package/dist/node/pkc/pkc.d.ts +7 -0
  135. package/dist/node/pkc/pkc.js +93 -0
  136. package/dist/node/pkc/pkc.js.map +1 -1
  137. package/dist/node/pkc/tracked-instance-registry-util.d.ts +1 -0
  138. package/dist/node/pkc/tracked-instance-registry-util.js +34 -2
  139. package/dist/node/pkc/tracked-instance-registry-util.js.map +1 -1
  140. package/dist/node/pkc/tracked-instance-registry.d.ts +1 -0
  141. package/dist/node/pkc/tracked-instance-registry.js +15 -0
  142. package/dist/node/pkc/tracked-instance-registry.js.map +1 -1
  143. package/dist/node/pkc-error.d.ts +1 -1
  144. package/dist/node/publications/comment/comment-client-manager.d.ts +1 -0
  145. package/dist/node/publications/comment/comment-client-manager.js +24 -4
  146. package/dist/node/publications/comment/comment-client-manager.js.map +1 -1
  147. package/dist/node/publications/comment/comment.js +6 -2
  148. package/dist/node/publications/comment/comment.js.map +1 -1
  149. package/dist/node/publications/publication-client-manager.d.ts +4 -1
  150. package/dist/node/publications/publication-client-manager.js +51 -7
  151. package/dist/node/publications/publication-client-manager.js.map +1 -1
  152. package/dist/node/publications/publication.js +15 -1
  153. package/dist/node/publications/publication.js.map +1 -1
  154. package/dist/node/rpc/src/index.d.ts +3 -1
  155. package/dist/node/rpc/src/index.js +45 -3
  156. package/dist/node/rpc/src/index.js.map +1 -1
  157. package/dist/node/runtime/node/community/local-community/comment-updates.js +2 -1
  158. package/dist/node/runtime/node/community/local-community/comment-updates.js.map +1 -1
  159. package/dist/node/schema/schema-util.d.ts +3 -0
  160. package/dist/node/schema/schema-util.js +10 -0
  161. package/dist/node/schema/schema-util.js.map +1 -1
  162. package/dist/node/signer/signatures.d.ts +9 -0
  163. package/dist/node/signer/signatures.js +30 -1
  164. package/dist/node/signer/signatures.js.map +1 -1
  165. package/dist/node/test/test-util.d.ts +1 -0
  166. package/dist/node/test/test-util.js +6 -2
  167. package/dist/node/test/test-util.js.map +1 -1
  168. package/dist/node/util.js +6 -1
  169. package/dist/node/util.js.map +1 -1
  170. package/package.json +6 -6
@@ -672,6 +672,14 @@ export class CommunityClientsManager extends PKCClientsManager {
672
672
  this._community.emit("update", this._community);
673
673
  }
674
674
  };
675
+ // The answer describes `name`, so it applies only while `name` still identifies this community: the address when
676
+ // that is a domain, otherwise the name the loaded record claims. The record can drop or change the name while
677
+ // the resolve is out, and a name resolved before the first record (_nameToResolveBeforeFirstRecord) is claimed
678
+ // by nothing yet. A dropped name may now point at another community, which is not a key migration of this one.
679
+ const nameStillIdentifiesCommunity = () => {
680
+ const identifyingName = isStringDomain(this._community.address) ? this._community.address : this._community.name;
681
+ return Boolean(identifyingName && areEquivalentCommunityAddresses(identifyingName, name));
682
+ };
675
683
  this._nameResolveInFlight = true;
676
684
  this._resolveCommunityNameWithoutUpdatingState({
677
685
  communityName: name,
@@ -680,6 +688,10 @@ export class CommunityClientsManager extends PKCClientsManager {
680
688
  cache: { maxAge: 3600 }
681
689
  })
682
690
  .then((resolved) => {
691
+ if (!nameStillIdentifiesCommunity()) {
692
+ log.trace(`Ignoring the resolve of ${name}: it no longer identifies community ${this._community.address}`);
693
+ return;
694
+ }
683
695
  if (resolved && resolved !== this._community.publicKey) {
684
696
  const nonAnchorHops = this._nonAnchorHopsOfLoadedChain();
685
697
  if (nonAnchorHops?.includes(resolved)) {
@@ -710,7 +722,8 @@ export class CommunityClientsManager extends PKCClientsManager {
710
722
  (e.code === "ERR_DOMAIN_TXT_RECORD_NOT_FOUND" || e.code === "ERR_RESOLVED_TEXT_RECORD_TO_NON_IPNS")) {
711
723
  // The resolvers answered and the answer contradicts the claim: the domain has no
712
724
  // community TXT record, or it has one that is not a key. Definitive. Issue #353.
713
- setNameResolvedAndEmitUpdate(false);
725
+ if (nameStillIdentifiesCommunity())
726
+ setNameResolvedAndEmitUpdate(false);
714
727
  }
715
728
  else if (isAbortError(e)) {
716
729
  // The community's stop signal ended the attempt. That says nothing about the resolvers,
@@ -806,8 +819,11 @@ export class CommunityClientsManager extends PKCClientsManager {
806
819
  // "not yet a boolean": a `false` is provisional and re-earned. Everything that bounds the retry
807
820
  // (the floor, the in-flight guard, the unsupported-TLD skip) lives in the callee, because the
808
821
  // pinned-name branch above calls it with no gate of its own (#353).
809
- if (!isDomain && this._community.name && this._community.publicKey && this._community.nameResolved !== true) {
810
- this._resolveNameInBackground(this._community.name);
822
+ // Before the first record, a name handed in by the loader (see _nameToResolveBeforeFirstRecord) is resolved
823
+ // alongside the fetch instead of after it.
824
+ const nameToVerify = this._community.name ?? (this._community.raw.communityIpfs ? undefined : this._community._nameToResolveBeforeFirstRecord);
825
+ if (!isDomain && nameToVerify && this._community.publicKey && this._community.nameResolved !== true) {
826
+ this._resolveNameInBackground(nameToVerify);
811
827
  }
812
828
  if (!ipnsName)
813
829
  throw Error("Failed to resolve community address to an IPNS name");
@@ -884,6 +900,12 @@ export class CommunityClientsManager extends PKCClientsManager {
884
900
  // Under the name and under the key: a publication created with only the key reads the community's
885
901
  // current name here to re-sign with it (issue #401), so the key's entry must not keep a record from
886
902
  // before the community got its name
903
+ const previousForKey = this._pkc._memCaches.communityForPublishing.get(identityPublicKey, { allowStale: true });
904
+ // A record that dropped or changed the name the key was cached under: the entry under the old name
905
+ // must not answer a publication addressed to it, which has to fetch and be refused instead
906
+ if (previousForKey?.name &&
907
+ (!communityForPublishing.name || !areEquivalentCommunityAddresses(previousForKey.name, communityForPublishing.name)))
908
+ this._pkc._memCaches.communityForPublishing.delete(previousForKey.name);
887
909
  this._pkc._memCaches.communityForPublishing.set(anchorIdentityAddress, communityForPublishing);
888
910
  if (anchorIdentityAddress !== identityPublicKey)
889
911
  this._pkc._memCaches.communityForPublishing.set(identityPublicKey, communityForPublishing);
@@ -1462,12 +1484,11 @@ export class CommunityClientsManager extends PKCClientsManager {
1462
1484
  // terminal (minter) key, and the anchor -> terminal binding is guaranteed by the
1463
1485
  // cryptographically-verified IPNS record chain (see docs/protocol/delegated-ipns.md).
1464
1486
  // Handles: {address: "12D3Koo..."} loads record with name: "plebbit.bso".
1465
- // NOT applied for domain addresses (Scenario C stays rejected — a domain load must match
1466
- // the record's name field, not merely its signature key).
1467
- const instanceAddressIsDomain = isStringDomain(communityInstanceAddress);
1468
- const signatureKeyMatchesTerminal = !instanceAddressIsDomain
1469
- ? this._areEquivalentCommunityAddresses(getPKCAddressFromPublicKeySync(communityJson.signature.publicKey), terminalIpnsName)
1470
- : false;
1487
+ // Also applied to domain addresses: whether the record still claims the name it was loaded
1488
+ // by is checked by each loader against the name IT asked for (findCommunityRecordNameMismatch),
1489
+ // because loaders by name and by key share this updating instance and a record that dropped
1490
+ // or changed its name is valid for a loader by key. This check is only about the key.
1491
+ const signatureKeyMatchesTerminal = this._areEquivalentCommunityAddresses(getPKCAddressFromPublicKeySync(communityJson.signature.publicKey), terminalIpnsName);
1471
1492
  if (!addressMatchesInstance && !addressMatchesPublicKey && !signatureKeyMatchesTerminal) {
1472
1493
  // Did the gateway supply us with a different community's ipns
1473
1494
  const error = new PKCError("ERR_THE_COMMUNITY_IPNS_RECORD_POINTS_TO_DIFFERENT_ADDRESS_THAN_WE_EXPECTED", {
@@ -1 +1 @@
1
- {"version":3,"file":"community-client-manager.js","sourceRoot":"","sources":["../../../src/community/community-client-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,OAAO,CAAC;AAC9C,OAAO,EACH,kBAAkB,EAIrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAKpF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,MAAM,MAAM,cAAc,CAAC;AAElC,OAAO,EACH,+BAA+B,EAC/B,qCAAqC,EACrC,qBAAqB,EACrB,6BAA6B,EAC7B,YAAY,EACZ,UAAU,EACV,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,yBAAyB,EACzB,SAAS,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,wDAAwD,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAClI,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAEH,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC,CAAC,2FAA2F;AACnI,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,OAAO,EAA8B,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAI7G,MAAM,CAAC,MAAM,sCAAsC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;AAEzE,2FAA2F;AAC3F,6FAA6F;AAC7F,iGAAiG;AACjG,yFAAyF;AACzF,oFAAoF;AACpF,2FAA2F;AAC3F,8FAA8F;AAC9F,2FAA2F;AAC3F,4EAA4E;AAC5E,MAAM,gDAAgD,GAAG,MAAM,CAAC;AAEhE,2FAA2F;AAC3F,gGAAgG;AAChG,+FAA+F;AAC/F,4FAA4F;AAC5F,8FAA8F;AAC9F,wFAAwF;AACxF,2CAA2C;AAC3C,MAAM,wBAAwB,GAAG,MAAM,CAAC;AACxC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAEpC,MAAM,OAAO,uBAAwB,SAAQ,iBAAiB;IAoD1D,YAAY,SAAgD;QACxD,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QA3ClB,4CAAuC,GAAG,CAAC,CAAC;QACpD,0BAAqB,GAAoB,SAAS,CAAC;QACnD,6BAAwB,GAAuB,IAAI,UAAU,CAAS,EAAE,CAAC,CAAC,CAAC,yEAAyE;QAEpJ,0FAA0F;QAC1F,sFAAsF;QACtF,oFAAoF;QACpF,4FAA4F;QAC5F,wFAAwF;QACxF,gFAAgF;QACxE,iCAA4B,GAAuB,IAAI,UAAU,CAAS,CAAC,CAAC,CAAC;QAOrF,6FAA6F;QAC7F,4FAA4F;QAC5F,uFAAuF;QACvF,0FAA0F;QAC1F,sFAAsF;QACtF,0FAA0F;QAC1F,sFAAsF;QACtF,qDAAqD;QAC7C,iCAA4B,GAAG,IAAI,GAAG,EAAU,CAAC;QAGjD,4BAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC5C,kCAA6B,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1D,uFAAuF;QACvF,mFAAmF;QACnF,0FAA0F;QAC1F,gFAAgF;QAChF,qFAAqF;QAC7E,mCAA8B,GAAG,KAAK,CAAC;QAC/C,wFAAwF;QACxF,4FAA4F;QAC5F,wFAAwF;QAChF,2CAAsC,GAAG,CAAC,CAAC;QAgnBnD,2GAA2G;QAC3G,wGAAwG;QACxG,yGAAyG;QACzG,oCAAoC;QAC5B,yBAAoB,GAAG,KAAK,CAAC;QA/mBjC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAEkB,mBAAmB;QAClC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc;YAChC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;gBACxD,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC;IAC/H,CAAC;IAEkB,yBAAyB;QACxC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,oBAAoB,GAAG;gBAChC,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB;gBACpC,CAAC,SAAS,CAAC,EAAE,IAAI,yBAAyB,CAAC,SAAS,CAAC;aACxD,CAAC;IACV,CAAC;IAEkB,oBAAoB;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe;YACjC,KAAK,MAAM,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;gBACnE,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG;oBAC3B,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe;oBAC/B,CAAC,iBAAiB,CAAC,EAAE,IAAI,uBAAuB,CAAC,SAAS,CAAC;iBAC9D,CAAC;IACd,CAAC;IAES,kBAAkB;QACxB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;YACtD,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG;gBACzB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;gBAC7B,CAAC,MAAM,CAAC,EAAE,IAAI,0BAA0B,CAAC,SAAS,CAAC;aACtD,CAAC;IACV,CAAC;IAEQ,kBAAkB,CAAC,QAAyC,EAAE,gBAAwB;QAC3F,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACzD,CAAC;IAEQ,wBAAwB,CAAC,QAA4C,EAAE,cAAsB;QAClG,KAAK,CAAC,wBAAwB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;IAED,gGAAgG;IAChG,0FAA0F;IAC1F,wCAAwC,CAAC,QAA4C;QACjF,MAAM,YAAY,GAAG,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAC5D,IAAI,YAAY;YAAE,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IAChF,CAAC;IAEQ,kBAAkB,CAAC,QAA6C,EAAE,OAAe;QACtF,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAEQ,yBAAyB,CAAC,QAA0C,EAAE,iBAAyB;QACpG,KAAK,CAAC,yBAAyB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACjE,CAAC;IAEQ,SAAS,CAAC,CAAW;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAEkB,sCAAsC;QACrD,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEQ,sBAAsB,CAAC,IAAmC;QAC/D,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,uCAAuC,GAAG,CAAC;YAAE,OAAO;QAC7D,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW;YAAE,OAAO;QAC7C,IAAI,CAAC,UAAU,CAAC,4CAA4C,CAAC,gBAAgB,CAAC,CAAC;IACnF,CAAC;IAEQ,8BAA8B,CAAC,IAA2C;QAC/E,KAAK,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC;QAC3C,mGAAmG;QACnG,oGAAoG;QACpG,+FAA+F;QAC/F,+FAA+F;QAC/F,mGAAmG;QACnG,qGAAqG;QACrG,kBAAkB;QAClB,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW;YAAE,OAAO;QAC7C,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC9D,MAAM,IAAI,QAAQ,CAAC,iCAAiC,EAAE;gBAClD,IAAI,EAAE,IAAI,CAAC,OAAO;aACrB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAES,gCAAgC;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;IACnC,CAAC;IAEO,gCAAgC,CAAC,QAAgB,EAAE,QAAgB;QACvE,OAAO,+BAA+B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAEO,4BAA4B,CAAC,aAAgC;QACjE,iFAAiF;QACjF,OAAO,CACH,wBAAwB,CAAC,aAAwC,CAAC;YAClE,8BAA8B,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CACpE,CAAC;IACN,CAAC;IAED,0CAA0C;IAElC,KAAK,CAAC,6BAA6B,CACvC,gBAAwB;QAExB,MAAM,GAAG,GAAG,MAAM,CAAC,2DAA2D,CAAC,CAAC;QAEhF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,CAAC,qBAAsB,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;gBACrD,GAAG,CAAC,KAAK,CAAC,8BAA8B,gBAAgB,YAAY,UAAU,SAAS,CAAC,CAAC;gBACzF,IAAI,CAAC;oBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;oBAEvE,OAAO,CAAC,MAAM,CAAC,CAAC;gBACpB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,MAAM,KAAK,GAAqB,CAAC,CAAC;oBAClC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;wBAAE,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;oBACnE,kBAAkB;oBAClB,KAAK,CAAC,OAAO,GAAG;wBACZ,kBAAkB;wBAClB,GAAG,KAAK,CAAC,OAAO;wBAChB,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;wBAChD,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;qBACvE,CAAC;oBACF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,KAAK,CAAC,EAAE,CAAC;wBACvD,uCAAuC;wBACvC,IAAI,KAAK,YAAY,QAAQ;4BACzB,KAAK,CAAC,OAAO,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;wBACjG,OAAO,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;oBACtC,CAAC;yBAAM,CAAC;wBACJ,sEAAsE;wBACtE,oDAAoD;wBACpD,IAAI,KAAK,YAAY,QAAQ;4BACzB,KAAK,CAAC,OAAO,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;wBAChG,GAAG,CAAC,KAAK,CACL,4BAA4B,IAAI,CAAC,UAAU,CAAC,OAAO,mBAAmB,UAAU,2BAA2B,EAC3G,KAAK,CACR,CAAC;wBAEF,kGAAkG;wBAClG,MAAM,uBAAuB,GACzB,KAAK,YAAY,uCAAuC;4BACxD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,CAC7C,CAAC,YAAY,EAAE,EAAE,CACb,YAAY,YAAY,QAAQ,IAAI,YAAY,CAAC,IAAI,KAAK,oCAAoC,CACrG,CAAC;wBACN,IAAI,uBAAuB,EAAE,CAAC;4BAC1B,GAAG,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,OAAO,wDAAwD,CAAC,CAAC;4BAClG,IAAI,CAAC,UAAU,CAAC,4CAA4C,CAAC,eAAe,CAAC,CAAC;wBAClF,CAAC;6BAAM,CAAC;4BACJ,IAAI,CAAC,UAAU,CAAC,yCAAyC,CAAC;gCACtD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;gCACvC,gBAAgB,EAAE,eAAe;6BACpC,CAAC,CAAC;wBACP,CAAC;wBAED,IAAI,CAAC,qBAAsB,CAAC,KAAK,CAAQ,CAAC,CAAC,CAAC;oBAChD,CAAC;gBACL,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,MAAM,GAAG,GAAG,MAAM,CAAC,gCAAgC,CAAC,CAAC;QAErD,0FAA0F;QAC1F,wFAAwF;QACxF,4FAA4F;QAC5F,wFAAwF;QACxF,+EAA+E;QAC/E,MAAM,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACxD,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;QAErE,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9F,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,yDAAyD;QACxJ,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;QAElC,IAAI,sBAAsB,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,qBAAqB,EAAE,CAAC;YACzF,GAAG,CACC,aAAa,IAAI,CAAC,UAAU,CAAC,OAAO,4DAA4D,qBAAqB,6EAA6E,IAAI,CAAC,UAAU,CAAC,SAAS,4BAA4B,CAC1P,CAAC;YACF,OAAO;QACX,CAAC;QAED,IAAI,mBAAmB,IAAI,SAAS,IAAI,mBAAmB,EAAE,CAAC;YAC1D,OAAO;QACX,CAAC;aAAM,IAAI,mBAAmB,IAAI,eAAe,IAAI,mBAAmB,EAAE,CAAC;YACvE,gFAAgF;YAChF,IAAI,mBAAmB,CAAC,aAAa,YAAY,uCAAuC,EAAE,CAAC;gBACvF,KAAK,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;oBAChH,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,OAAO,YAAY,UAAU,uBAAuB,EAAE,YAAY,CAAC,CAAC;gBAC/G,CAAC;YACL,CAAC;YACD,GAAG,CAAC,KAAK,CACL,aAAa,IAAI,CAAC,UAAU,CAAC,OAAO,yHAAyH,EAC7J,mBAAmB,CAAC,aAAa,CACpC,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,yCAAyC,CAAC;gBACtD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE;gBACnE,gBAAgB,EAAE,QAAQ;aAC7B,CAAC,CAAC;QACP,CAAC;aAAM,IACH,mBAAmB,EAAE,SAAS;YAC9B,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,SAAS,EAC/F,CAAC;YACC,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YACvD,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAC7E,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,mBAAmB,CAAC,GAAG,CAAC;YACpD,mFAAmF;YACnF,yFAAyF;YACzF,sFAAsF;YACtF,eAAe;YACf,IAAI,oBAAoB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,oBAAoB,EAAE,CAAC;gBAC7E,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,SAAS,CAAC;gBACzC,yFAAyF;gBACzF,iCAAiC;gBACjC,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;gBACxC,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;YAC5C,CAAC;YACD,8FAA8F;YAC9F,2FAA2F;YAC3F,+FAA+F;YAC/F,+FAA+F;YAC/F,IACI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBACxC,IAAI,CAAC,UAAU,CAAC,IAAI;gBACpB,IAAI,CAAC,UAAU,CAAC,SAAS;gBACzB,IAAI,CAAC,UAAU,CAAC,YAAY,KAAK,IAAI,EACvC,CAAC;gBACC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;gBACvH,mFAAmF;gBACnF,qFAAqF;gBACrF,oFAAoF;gBACpF,oDAAoD;gBACpD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC3D,CAAC;YACD,GAAG,CACC,kBAAkB,EAClB,IAAI,CAAC,UAAU,CAAC,OAAO,EACvB,iEAAiE,EACjE,IAAI,CAAC,UAAU,CAAC,SAAS,EACzB,QAAQ,EACR,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,SAAU,EACxC,aAAa,CAChB,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,yCAAyC,CAAC;gBACtD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBAClD,gBAAgB,EAAE,WAAW;aAChC,CAAC,CAAC;YACH,IAAI,CAAC,mCAAmC,EAAE,CAAC;QAC/C,CAAC;aAAM,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAC3C,wDAAwD;YACxD,sBAAsB;YACtB,IAAI,CAAC,UAAU,CAAC,4CAA4C,CAAC,eAAe,CAAC,CAAC;QAClF,CAAC;aAAM,IAAI,mBAAmB,EAAE,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,4CAA4C,CAAC,WAAW,CAAC,CAAC;QAC9E,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB;QACnB,MAAM,GAAG,GAAG,MAAM,CAAC,gCAAgC,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC;QAE7C,MAAM,2BAA2B,GAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1H,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1G,uFAAuF;QACvF,mFAAmF;QACnF,uFAAuF;QACvF,wFAAwF;QACxF,qFAAqF;QACrF,oFAAoF;QACpF,2EAA2E;QAC3E,oFAAoF;QACpF,sFAAsF;QACtF,mDAAmD;QACnD,MAAM,qBAAqB,GAAG,iBAAiB,IAAI,QAAQ,IAAI,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;QAEjH,sFAAsF;QACtF,uFAAuF;QACvF,mFAAmF;QACnF,qFAAqF;QACrF,wFAAwF;QACxF,gFAAgF;QAChF,uFAAuF;QACvF,8DAA8D;QAC9D,IAAI,qBAAqB,EAAE,CAAC;YACxB,IAAI,CAAC;gBACD,IAAI,CAAC,6BAA6B,CAAC,qBAAqB,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,GAAG,CAAC,KAAK,CACL,gEAAgE,IAAI,CAAC,UAAU,CAAC,OAAO,0BAA0B,EACjH,CAAC,CACJ,CAAC;YACN,CAAC;YACD,kFAAkF;YAClF,qFAAqF;YACrF,IAAI,CAAC,sCAAsC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7D,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC;YAC7F,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,GAAG,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,UAAU,CAAC,OAAO,uCAAuC,EAAE,CAAC,CAAC,CAAC;YAC/G,CAAC;oBAAS,CAAC;gBACP,+EAA+E;gBAC/E,4EAA4E;gBAC5E,IAAI,qBAAqB,EAAE,CAAC;oBACxB,IAAI,CAAC;wBACD,IAAI,CAAC,6BAA6B,CAAC,qBAAqB,CAAC,CAAC;oBAC9D,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACT,GAAG,CAAC,KAAK,CAAC,iEAAiE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;oBAC7G,CAAC;oBACD,6EAA6E;oBAC7E,yDAAyD;oBACzD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;oBAC5E,MAAM,IAAI,CAAC,sCAAsC,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;gBAC1H,CAAC;qBAAM,CAAC;oBACJ,+EAA+E;oBAC/E,kEAAkE;oBAClE,MAAM,cAAc,GAAG,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBACzF,MAAM,wBAAwB,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBAC1F,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC;QAC5C,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,IAAI,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,CAAC;QAC1C,IAAI,CAAC,iCAAiC,GAAG,SAAS,CAAC;QACnD,IAAI,CAAC,8BAA8B,EAAE,CAAC;IAC1C,CAAC;IAED,wFAAwF;IACxF,yFAAyF;IACzF,oFAAoF;IACpF,2FAA2F;IAC3F,4FAA4F;IAC5F,yFAAyF;IACzF,wFAAwF;IACxF,qFAAqF;IACrF,oFAAoF;IAC5E,qBAAqB;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC,iCAAiC,CAAC;QAC7D,MAAM,MAAM,GACR,OAAO,aAAa,KAAK,QAAQ;YAC7B,CAAC,CAAC,aAAa,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG;YAClD,CAAC,CAAC,wBAAwB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,0FAA0F;IAC1F,sFAAsF;IAC9E,mBAAmB,CAAC,YAAuC;QAC/D,MAAM,WAAW,GAAG,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACxC,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,CAAC;IAED,uFAAuF;IACvF,oFAAoF;IACpF,oFAAoF;IAC5E,yBAAyB,CAAC,GAAyB;QACvD,MAAM,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,uFAAuF;IACvF,sFAAsF;IACtF,0FAA0F;IAC1F,yFAAyF;IACzF,0FAA0F;IAC1F,2FAA2F;IAC3F,uFAAuF;IACvF,qFAAqF;IACrF,qEAAqE;IACrE,wFAAwF;IACxF,uFAAuF;IACvF,0FAA0F;IAC1F,0FAA0F;IAC1F,4FAA4F;IACpF,oBAAoB,CAAC,OAA0B;QACnD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QACnC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,GAAG;gBAAE,OAAO;YACxF,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC;gBAAE,OAAO;YAC1D,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtD,CAAC;;YAAM,OAAO;QACd,IAAI,CAAC,6BAA6B,EAAE,EAAE,CAAC;IAC3C,CAAC;IAED,yFAAyF;IACzF,2FAA2F;IAC3F,sFAAsF;IACtF,yFAAyF;IACzF,2FAA2F;IAC3F,0FAA0F;IAC1F,sFAAsF;IACtF,+DAA+D;IACvD,2BAA2B;QAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,uBAAuB;YAC1C,IAAI,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,GAAG;gBAAE,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9H,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,6BAA6B;YACtD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC;gBAAE,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5G,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,6BAA6B,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3G,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,0FAA0F;IAC1F,wFAAwF;IACxF,2FAA2F;IAC3F,0FAA0F;IAC1F,yFAAyF;IACzF,0FAA0F;IAC1F,0FAA0F;IAC1F,qFAAqF;IAC7E,6BAA6B,CAAC,MAAsB;QACxD,IAAI,CAAC,IAAI,CAAC,oBAAoB;YAAE,IAAI,CAAC,oBAAoB,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC5G,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACjC,MAAM,kBAAkB,GACpB,IAAI,CAAC,UAAU,CAAC,QAAQ;YACxB,IAAI,CAAC,eAAe,EAAE;YACtB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACrF,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM;YACrD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ;YAC1B,CAAC,CAAC,kBAAkB;gBAClB,CAAC,CAAC,CAAC,kBAAkB,CAAC;gBACtB,CAAC,CAAC,EAAE,CAAC;QACX,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACnF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,4BAA4B;YACjD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,+BAA+B,CAAC,kBAAkB,CAAC,WAAW,CAAC;oBAClE,WAAW,EAAE,KAAK;oBAClB,QAAQ,EAAE,IAAI,CAAC,oBAAoB;iBACtC,CAAC,CAAC;gBACH,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC;QACL,KAAK,MAAM,KAAK,IAAI,aAAa;YAC7B,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,+BAA+B,CAAC,kBAAkB,CAAC,SAAS,CAAC;oBAChE,WAAW,EAAE,KAAK;oBAClB,QAAQ,EAAE,IAAI,CAAC,oBAAoB;iBACtC,CAAC,CAAC;gBACH,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjD,CAAC;IACT,CAAC;IAED,2FAA2F;IAC3F,4FAA4F;IAC5F,sEAAsE;IAC9D,sCAAsC;QAC1C,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAAE,OAAO;QACrC,IAAI,CAAC;YACD,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,CAAC,gCAAgC,CAAC,CAAC,KAAK,CAC1C,iEAAiE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAC1F,CAAC,CACJ,CAAC;QACN,CAAC;IACL,CAAC;IAEO,8BAA8B;QAClC,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,oBAAoB;YACpD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,4BAA4B;gBACjD,IAAI,CAAC,kBAAkB,CAAC,+BAA+B,CAAC,kBAAkB,CAAC,WAAW,CAAC;oBACnF,WAAW,EAAE,KAAK;oBAClB,QAAQ,EAAE,IAAI,CAAC,oBAAoB;iBACtC,CAAC,CAAC;QACX,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,CAAC;QAC1C,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,CAAC;QAC3C,IAAI,CAAC,8BAA8B,GAAG,KAAK,CAAC;IAChD,CAAC;IAED,6FAA6F;IAC7F,2FAA2F;IAC3F,6FAA6F;IAC7F,4FAA4F;IAC5F,6FAA6F;IAC7F,oFAAoF;IAC5E,KAAK,CAAC,sCAAsC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAwC;QACrG,IAAI,IAAI,CAAC,2BAA2B,EAAE,EAAE,CAAC;YACrC,iFAAiF;YACjF,0DAA0D;YAC1D,IAAI,CAAC,8BAA8B,GAAG,KAAK,CAAC;YAC5C,OAAO;QACX,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,MAAM,cAAc,GAAG,GAAG,EAAE;YACxB,cAAc,GAAG,IAAI,CAAC;YACtB,IAAI,EAAE,CAAC;QACX,CAAC,CAAC;QACF,IAAI,CAAC,6BAA6B,GAAG,cAAc,CAAC;QACpD,MAAM,OAAO,CAAC;QACd,IAAI,IAAI,CAAC,6BAA6B,KAAK,cAAc;YAAE,IAAI,CAAC,6BAA6B,GAAG,SAAS,CAAC;QAC1G,IAAI,cAAc,EAAE,CAAC;YACjB,iFAAiF;YACjF,iFAAiF;YACjF,0EAA0E;YAC1E,kFAAkF;YAClF,mFAAmF;YACnF,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,CAAC;QAC/C,CAAC;QACD,uFAAuF;QACvF,uFAAuF;QACvF,uFAAuF;QACvF,qFAAqF;QACrF,wFAAwF;QACxF,QAAQ;QACR,IAAI,CAAC,8BAA8B;YAC/B,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,sCAAsC,IAAI,gDAAgD,CAAC;IACxI,CAAC;IAED,+BAA+B;IAEvB,KAAK,CAAC,yCAAyC,CAAC,EACpD,aAAa,EACb,WAAW,EACX,KAAK,EAKR;QACG,IAAI,CAAC,uCAAuC,EAAE,CAAC;QAC/C,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,4BAA4B,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1F,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,uCAAuC,EAAE,CAAC;QACnD,CAAC;IACL,CAAC;IAED,gGAAgG;IAChG,kGAAkG;IAClG,gGAAgG;IAChG,8FAA8F;IAC9F,gGAAgG;IAChG,6FAA6F;IAC7F,+FAA+F;IAC/F,+FAA+F;IAC/F,4DAA4D;IACpD,2BAA2B;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC;QACvD,IAAI,CAAC,YAAY;YAAE,OAAO,SAAS,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAClE,SAAS,CAAC,GAAG,CAAC,8BAA8B,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAChF,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS;YAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;IAC1B,CAAC;IAED,2FAA2F;IAC3F,yFAAyF;IACzF,gDAAgD;IACxC,kBAAkB,CAAC,EAAE,aAAa,EAAE,YAAY,EAAmD;QACvG,MAAM,GAAG,GAAG,MAAM,CAAC,oDAAoD,CAAC,CAAC;QACzE,GAAG,CAAC,4BAA4B,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1G,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,qDAAqD,EAAE;YAC9E,aAAa;YACb,iBAAiB;YACjB,YAAY;SACf,CAAC,CAAC;QAEH,oEAAoE;QACpE,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QACxD,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;QACpC,mFAAmF;QACnF,uFAAuF;QACvF,oFAAoF;QACpF,oFAAoF;QACpF,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,CAAC;QAC3C,IAAI,CAAC,sCAAsC,EAAE,CAAC;QAE9C,yEAAyE;QACzE,kEAAkE;QAClE,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,sDAAsD,CAAC,CAAC;QAC7F,IAAI,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC;QAE7C,gDAAgD;QAChD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAoBO,wBAAwB,CAAC,IAAY;QACzC,MAAM,GAAG,GAAG,MAAM,CAAC,0DAA0D,CAAC,CAAC;QAC/E,qGAAqG;QACrG,uGAAuG;QACvG,kGAAkG;QAClG,yFAAyF;QACzF,EAAE;QACF,oGAAoG;QACpG,mGAAmG;QACnG,2EAA2E;QAC3E,IAAI,IAAI,CAAC,oBAAoB;YAAE,OAAO;QACtC,qGAAqG;QACrG,oGAAoG;QACpG,iGAAiG;QACjG,gGAAgG;QAChG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAAE,OAAO;QACvC,mGAAmG;QACnG,kFAAkF;QAClF,IACI,OAAO,IAAI,CAAC,sBAAsB,KAAK,QAAQ;YAC/C,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,8BAA8B;YAEnF,OAAO;QACX,+EAA+E;QAC/E,IACI,IAAI,CAAC,UAAU,CAAC,YAAY,KAAK,KAAK;YACtC,OAAO,IAAI,CAAC,sBAAsB,KAAK,QAAQ;YAC/C,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,uBAAuB;YAE5E,OAAO;QACX,MAAM,4BAA4B,GAAG,CAAC,eAAwB,EAAE,EAAE;YAC9D,6FAA6F;YAC7F,uEAAuE;YACvE,IAAI,CAAC,sBAAsB,GAAG,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACjF,iFAAiF;YACjF,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;YACxC,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,KAAK,eAAe;gBAAE,OAAO;YAC7D,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,eAAe,CAAC;YAC/C,oEAAoE;YACpE,4EAA4E;YAC5E,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAChD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACpD,CAAC;QACL,CAAC,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,yCAAyC,CAAC;YAC3C,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE;YAClD,oDAAoD;YACpD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SAC1B,CAAC;aACG,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACf,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;gBACrD,MAAM,aAAa,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;gBACzD,IAAI,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACpC,gFAAgF;oBAChF,gFAAgF;oBAChF,+EAA+E;oBAC/E,0EAA0E;oBAC1E,2EAA2E;oBAC3E,mFAAmF;oBACnF,GAAG,CACC,kBAAkB,IAAI,gBAAgB,QAAQ,4EAA4E,IAAI,CAAC,UAAU,CAAC,SAAS,8BAA8B,CACpL,CAAC;oBACF,4BAA4B,CAAC,KAAK,CAAC,CAAC;oBACpC,OAAO;gBACX,CAAC;gBACD,2DAA2D;gBAC3D,wEAAwE;gBACxE,IAAI,CAAC,kBAAkB,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7E,CAAC;iBAAM,IAAI,QAAQ,EAAE,CAAC;gBAClB,4BAA4B,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;YACD,0EAA0E;YAC1E,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACpC,4BAA4B,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;QACL,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,IACI,CAAC,YAAY,QAAQ;gBACrB,CAAC,CAAC,CAAC,IAAI,KAAK,iCAAiC,IAAI,CAAC,CAAC,IAAI,KAAK,sCAAsC,CAAC,EACrG,CAAC;gBACC,iFAAiF;gBACjF,iFAAiF;gBACjF,4BAA4B,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;iBAAM,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzB,wFAAwF;gBACxF,4FAA4F;gBAC5F,sFAAsF;gBACtF,8EAA8E;gBAC9E,OAAO;YACX,CAAC;iBAAM,CAAC;gBACJ,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC5D,0FAA0F;gBAC1F,qFAAqF;gBACrF,yFAAyF;gBACzF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7C,CAAC;QACL,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QACtC,CAAC,CAAC,CAAC;IACX,CAAC;IAED,mCAAmC;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAAE,OAAO;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;QAC3C,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,OAAO,GAA8D,EAAE,CAAC;QAC9E,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACxD,4FAA4F;gBAC5F,6FAA6F;gBAC7F,0FAA0F;gBAC1F,mEAAmE;gBACnE,IAAI,MAAM;oBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;YACtG,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEjC,IAAI,CAAC,8BAA8B,CAAC;YAChC,OAAO;YACP,UAAU,EAAE,GAAG,EAAE;gBACb,6DAA6D;gBAC7D,iGAAiG;gBACjG,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;oBACnE,IAAI,IAAI;wBAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;gBACxE,CAAC;YACL,CAAC;YACD,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE;SACrD,CAAC,CAAC;IACP,CAAC;IAED,qFAAqF;IACrF,yFAAyF;IACzF,yFAAyF;IACzF,uFAAuF;IACvF,uFAAuF;IACvF,oFAAoF;IACpF,wFAAwF;IAChF,eAAe;QACnB,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvD,IACI,IAAI,CAAC,UAAU,CAAC,SAAS;YACzB,CAAC,QAAQ,IAAI,cAAc,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC;YAE5G,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACrC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,gBAAwB;QACrD,OAAO,IAAI,CAAC,2BAA2B,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;YACjE,IAAI,QAAuB,CAAC;YAC5B,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;YAElD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAC9C,IAAI,cAAc,EAAE,CAAC;gBACjB,qGAAqG;gBACrG,mEAAmE;gBACnE,QAAQ,GAAG,cAAc,CAAC;gBAC1B,IAAI,QAAQ;oBAAE,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACJ,4DAA4D;gBAC5D,QAAQ,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC;oBAC/C,aAAa,EAAE,gBAAgB;oBAC/B,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE;oBAClD,uDAAuD;oBACvD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;iBAC1B,CAAC,CAAC;YACP,CAAC;YAED,gGAAgG;YAChG,gGAAgG;YAChG,8FAA8F;YAC9F,oEAAoE;YACpE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;gBAC1G,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACxD,CAAC;YAED,IAAI,CAAC,QAAQ;gBAAE,MAAM,KAAK,CAAC,qDAAqD,CAAC,CAAC;YAElF,6FAA6F;YAC7F,6EAA6E;YAC7E,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACxC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACpC,kFAAkF;gBAClF,6EAA6E;gBAC7E,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtC,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;gBAC1E,IAAI,CAAC,UAAU,CAAC,yBAAyB,GAAG,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;gBACjG,mFAAmF;gBACnF,+EAA+E;gBAC/E,4EAA4E;gBAC5E,IAAI,CAAC,sCAAsC,EAAE,CAAC;YAClD,CAAC;YAED,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS;gBAAE,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAE5F,8EAA8E;YAC9E,4BAA4B;YAE5B,4HAA4H;YAC5H,4EAA4E;YAC5E,IAAI,CAAC,UAAU,CAAC,4CAA4C,CAAC,eAAe,CAAC,CAAC;YAC9E,IAAI,MAAiC,CAAC;YACtC,MAAM,2BAA2B,GAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1H,IAAI,2BAA2B,EAAE,CAAC;gBAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,8BAA8B,EAAE,CAAC;gBAC7D,mCAAmC;gBACnC,IAAI,CAAC;oBACD,MAAM,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAC;gBAClE,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,kBAAkB;oBAClB,CAAC,CAAC,OAAO,GAAG;wBACR,kBAAkB;wBAClB,GAAG,CAAC,CAAC,OAAO;wBACZ,QAAQ;wBACR,gBAAgB;wBAChB,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;wBAChD,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;qBACvE,CAAC;oBACF,MAAM,CAAC,CAAC;gBACZ,CAAC;wBAAS,CAAC;oBACP,IAAI,QAAQ,IAAI,cAAc;wBAAE,IAAI,CAAC,yBAAyB,CAAC,SAAS,EAAE,cAAc,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;;wBACjH,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;gBAChE,CAAC;YACL,CAAC;;gBAAM,MAAM,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC,2EAA2E;YAC7I,oEAAoE;YACpE,oEAAoE;YAEpE,IAAI,MAAM,EAAE,SAAS,EAAE,CAAC;gBACpB,0CAA0C;gBAC1C,gFAAgF;gBAChF,kFAAkF;gBAClF,kFAAkF;gBAClF,mFAAmF;gBACnF,qFAAqF;gBACrF,sFAAsF;gBACtF,0EAA0E;gBAC1E,MAAM,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,IAAI,QAAQ,CAAC;gBACzE,MAAM,qBAAqB,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,iBAAiB,CAAC;gBACzE,MAAM,sBAAsB,GAAG;oBAC3B,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU;oBACvC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW;oBACzC,OAAO,EAAE,qBAAqB;oBAC9B,SAAS,EAAE,iBAAiB;oBAC5B,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI;iBAC9B,CAAC;gBACF,kGAAkG;gBAClG,oGAAoG;gBACpG,oCAAoC;gBACpC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;gBAC/F,IAAI,qBAAqB,KAAK,iBAAiB;oBAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC;YACnG,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,2FAA2F;IAC3F,2FAA2F;IAC3F,2DAA2D;IACnD,gCAAgC,CAAC,cAA8B,EAAE,QAAgB;QACrF,IAAI,CAAC;YACD,OAAO,cAAc,CAAC,+BAA+B,CAAC,wBAAwB,CAAC;gBAC3E,WAAW,EAAE,6BAA6B,CAAC,QAAQ,CAAC;aACvD,CAAC,CAAC;QACP,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,+BAA+B,CAAC,QAAgB;QAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,wDAAwD,CAAC,CAAC;QAC7E,MAAM,cAAc,GAAG,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAC7D,IAAI,QAAQ,IAAI,cAAc,EAAE,CAAC;YAC7B,IAAI,CAAC,yBAAyB,CAAC,eAAe,EAAE,cAAc,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;QAChG,CAAC;;YAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QACpE,mFAAmF;QACnF,uFAAuF;QACvF,mFAAmF;QACnF,iFAAiF;QACjF,mFAAmF;QACnF,wFAAwF;QACxF,sFAAsF;QACtF,mFAAmF;QACnF,oFAAoF;QACpF,sFAAsF;QACtF,qFAAqF;QACrF,uEAAuE;QACvE,MAAM,wBAAwB,GAC1B,IAAI,CAAC,8BAA8B;YACnC,CAAC,CAAC,QAAQ,IAAI,cAAc,IAAI,IAAI,CAAC,gCAAgC,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;QACrG,sFAAsF;QACtF,mFAAmF;QACnF,uFAAuF;QACvF,0DAA0D;QAC1D,IAAI,CAAC,8BAA8B,GAAG,KAAK,CAAC;QAC5C,IAAI,wBAAwB;YAAE,IAAI,CAAC,sCAAsC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvF,MAAM,EAAE,GAAG,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;YACnF,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;YAChD,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE;YAClD,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAC,CAAC;QACH,sFAAsF;QACtF,iFAAiF;QACjF,iFAAiF;QACjF,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACpC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvD,GAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACnG,IAAI,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,KAAK,CACL,yBAAyB,EACzB,QAAQ,EACR,mEAAmE,EACnE,kBAAkB,CACrB,CAAC;YACF,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,QAAQ,IAAI,cAAc;YAAE,IAAI,CAAC,yBAAyB,CAAC,eAAe,EAAE,cAAc,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;;YACvH,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,CAAC,4CAA4C,CAAC,eAAe,CAAC,CAAC;QAE9E,IAAI,sBAAqE,CAAC;QAC1E,IAAI,CAAC;YACD,sBAAsB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE;gBACjE,gBAAgB,EAAE,sCAAsC;gBACxD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;gBAChD,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE;gBAClD,sCAAsC,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;aAC1E,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,kBAAkB;YAClB,CAAC,CAAC,OAAO,GAAG;gBACR,kBAAkB;gBAClB,GAAG,CAAC,CAAC,OAAO;gBACZ,iBAAiB,EAAE,QAAQ;gBAC3B,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;gBAChD,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;gBACpE,YAAY,EAAE,kBAAkB;aACnC,CAAC;YACF,IAAI,CAAC,YAAY,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,yBAAyB;gBAAE,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YACzH,MAAM,CAAC,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACtD,IAAI,CAAC;YACD,MAAM,aAAa,GAAG,wDAAwD,CAC1E,4BAA4B,CAAC,sBAAsB,CAAC,CACvD,CAAC;YAEF,6FAA6F;YAC7F,kEAAkE;YAClE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC;gBAC1D,aAAa,EAAE,aAAa;gBAC5B,QAAQ;gBACR,2BAA2B,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,CACjD,CACI,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE;oBAC1C,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;oBAChD,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE;iBACrD,CAAC,CACL,CAAC,QAAQ;aACjB,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,cAAc,CAAC;YAE1C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC;gBACvD,aAAa,EAAE,aAAa;gBAC5B,iBAAiB,EAAE,cAAc;gBACjC,kBAAkB,EAAE,kBAAkB;aACzC,CAAC,CAAC;YAEH,IAAI,WAAW;gBAAE,MAAM,WAAW,CAAC;YACnC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC;QACjE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,2BAA2B;YAC1B,CAAc,CAAC,OAAO,GAAG;gBACtB,GAAI,CAAc,CAAC,OAAO;gBAC1B,kBAAkB,EAAE,kBAAkB;gBACtC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;gBAChD,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;aACvE,CAAC;YACF,MAAgB,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,2BAA2B,CAAC,QAAgB;QACtD,MAAM,GAAG,GAAG,MAAM,CAAC,6CAA6C,CAAC,CAAC;QAClE,MAAM,gBAAgB,GAAG,CAAC,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAExD,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAE5C,4CAA4C;QAC5C,MAAM,cAAc,GAChB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,IAAI,gBAAgB;YAC3D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YACtC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;QAEtE,iBAAiB;QACjB,wDAAwD;QACxD,MAAM,cAAc,GAA0B,EAAE,CAAC;QAEjD,KAAK,MAAM,UAAU,IAAI,cAAc,EAAE,CAAC;YACtC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YAC9C,MAAM,0CAA0C,GAA4D,KAAK,EAC7G,UAAU,EACZ,EAAE;gBACA,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ;oBAAE,MAAM,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBACxF,mDAAmD;gBACnD,MAAM,8BAA8B,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gBAEjG,IAAI,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,8BAA8B,CAAC;oBACjE,MAAM,IAAI,QAAQ,CAAC,8EAA8E,EAAE;wBAC/F,8BAA8B;wBAC9B,QAAQ;wBACR,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;wBAChD,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;wBACpE,UAAU;wBACV,UAAU;qBACb,CAAC,CAAC;gBAEP,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBAElE,IAAI,aAAgC,CAAC;gBACrC,IAAI,CAAC;oBACD,aAAa,GAAG,wDAAwD,CACpE,4BAA4B,CAAC,UAAU,CAAC,OAAO,CAAC,CACnD,CAAC;gBACN,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACR,CAAc,CAAC,OAAO,GAAG;wBACtB,GAAI,CAAc,CAAC,OAAO;wBAC1B,kBAAkB,EAAE,8BAA8B;wBAClD,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;wBAChD,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;qBACvE,CAAC;oBACF,MAAM,CAAC,CAAC;gBACZ,CAAC;gBACD,sFAAsF;gBACtF,qFAAqF;gBACrF,sFAAsF;gBACtF,gFAAgF;gBAChF,wFAAwF;gBACxF,yFAAyF;gBACzF,oFAAoF;gBACpF,gFAAgF;gBAChF,IAAI,gBAAgB,GAAG,QAAQ,CAAC;gBAChC,IAAI,QAAQ,GAAa,CAAC,QAAQ,CAAC,CAAC;gBACpC,MAAM,sBAAsB,GAAG,8BAA8B,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBACjG,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,sBAAsB,EAAE,QAAQ,CAAC,EAAE,CAAC;oBAC3E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;oBACnG,IAAI,KAAK,CAAC,aAAa,KAAK,8BAA8B;wBACtD,MAAM,IAAI,QAAQ,CAAC,uCAAuC,EAAE;4BACxD,MAAM,EAAE,oFAAoF;4BAC5F,oBAAoB,EAAE,KAAK,CAAC,aAAa;4BACzC,8BAA8B;4BAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;4BACxB,QAAQ;4BACR,UAAU;yBACb,CAAC,CAAC;oBACP,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;oBAC1B,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC7D,oEAAoE;oBACpE,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,sBAAsB,EAAE,gBAAgB,CAAC;wBAChF,MAAM,IAAI,QAAQ,CAAC,uCAAuC,EAAE;4BACxD,MAAM,EAAE,mFAAmF;4BAC3F,sBAAsB;4BACtB,gBAAgB;4BAChB,QAAQ;4BACR,QAAQ;4BACR,UAAU;yBACb,CAAC,CAAC;gBACX,CAAC;gBACD,oFAAoF;gBACpF,qFAAqF;gBACrF,wFAAwF;gBACxF,QAAQ,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC;oBAC9C,aAAa,EAAE,aAAa;oBAC5B,QAAQ;oBACR,2BAA2B,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,CACjD,CAAC,MAAM,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,aAAa,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;iBAC3G,CAAC,CAAC;gBACH,gFAAgF;gBAChF,mEAAmE;gBACnE,gFAAgF;gBAChF,cAAc,CAAC,UAAU,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAE/C,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC;oBAC7D,aAAa,EAAE,aAAa;oBAC5B,iBAAiB,EAAE,QAAQ;oBAC3B,kBAAkB,EAAE,8BAA8B;iBACrD,CAAC,CAAC;gBACH,IAAI,iBAAiB,EAAE,CAAC;oBACpB,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBAClC,IAAI,iBAAiB,CAAC,IAAI,KAAK,oCAAoC,EAAE,CAAC;wBAClE,MAAM,GAAG,GAAG,MAAM,CAAC,4EAA4E,CAAC,CAAC;wBACjG,MAAM,IAAI,GAAG,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;wBACnD,GAAG,CAAC,KAAK,CACL,WAAW,UAAU,qDAAqD;4BACtE,WAAW,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI;4BACnE,wBAAwB,8BAA8B,IAAI;4BAC1D,2BAA2B,IAAI,IAAI;4BACnC,cAAc,aAAa,CAAC,SAAS,IAAI;4BACzC,kBAAkB,UAAU,CAAC,OAAO,EAAE,CAC7C,CAAC;oBACN,CAAC;oBACD,MAAM,iBAAiB,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACJ,cAAc,CAAC,UAAU,CAAC,CAAC,eAAe,GAAG,aAAa,CAAC;oBAC3D,cAAc,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,8BAA8B,CAAC;oBAEhE,8EAA8E;oBAC9E,cAAc,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;oBAE1G,sEAAsE;oBACtE,2DAA2D;oBAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;oBAC7D,IAAI,IAAI;wBAAE,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1D,CAAC;YACL,CAAC,CAAC;YAEF,MAAM,4BAA4B,GAAG,KAAK,EAAE,UAAoB,EAAE,EAAE;gBAChE,4FAA4F;gBAC5F,cAAc,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;gBAErG,MAAM,uBAAuB,GAAG,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;gBAC7E,gFAAgF;gBAChF,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAC3B,OAAO,CAAC,mDAAmD;gBAC/D,CAAC;gBACD,MAAM,+BAA+B,GAAG,GAAG,EAAE;oBACzC,eAAe,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;oBAC/F,OAAO,IAAI,QAAQ,CAAC,8EAA8E,EAAE;wBAChG,uBAAuB;wBACvB,QAAQ;wBACR,UAAU;wBACV,UAAU;qBACb,CAAC,CAAC;gBACP,CAAC,CAAC;gBACF,4EAA4E;gBAC5E,0EAA0E;gBAC1E,MAAM,cAAc,GAAG,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;gBAClE,IAAI,cAAc,IAAI,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,cAAc,CAAC;oBAAE,OAAO,+BAA+B,EAAE,CAAC;gBACtH,IAAI,SAAiB,CAAC;gBACtB,IAAI,CAAC;oBACD,qDAAqD;oBACrD,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC7G,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,oEAAoE;oBACpE,OAAO,CAAC,mDAAmD;gBAC/D,CAAC;gBACD,IAAI,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC1F,4EAA4E;oBAC5E,0EAA0E;oBAC1E,2EAA2E;oBAC3E,IAAI,cAAc;wBAAE,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBAC1E,OAAO,+BAA+B,EAAE,CAAC;gBAC7C,CAAC;YACL,CAAC,CAAC;YAEF,+EAA+E;YAC/E,+EAA+E;YAC/E,mFAAmF;YACnF,+EAA+E;YAC/E,kFAAkF;YAClF,oFAAoF;YACpF,kFAAkF;YAClF,kFAAkF;YAClF,mEAAmE;YACnE,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAS,IAAI,CAAC,4BAA4B,CAAC,CAAC;YACtF,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS;gBAAE,0BAA0B,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC;YAChG,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAE,0BAA0B,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;YAC3H,MAAM,cAAc,GAChB,0BAA0B,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7H,cAAc,CAAC,UAAU,CAAC,GAAG;gBACzB,eAAe;gBACf,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,CACrB,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE;oBAC/B,cAAc,EAAE,MAAM;oBACtB,IAAI,EAAE,QAAQ;oBACd,aAAa,EAAE,WAAW;oBAC1B,2BAA2B,EAAE,0CAA0C;oBACvE,sCAAsC,EAAE,4BAA4B;oBACpE,eAAe;oBACf,gBAAgB,EAAE,sCAAsC;oBACxD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;oBAChD,GAAG;oBACH,cAAc,EAAE,cAAc;iBACjC,CAAC,CACL;gBACD,SAAS,EAAE,UAAU,CACjB,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,6DAA6D,GAAG,SAAS,GAAG,IAAI,CAAC,EAC7G,SAAS,CACZ;aACJ,CAAC;QACN,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACzD,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAEpC,MAAM,OAAO,GAAG,GAAG,EAAE;YACjB,UAAU,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC9C,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,KAAK;oBAAE,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACpH,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,IAAI,UAAU;gBAAE,UAAU,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACzE,CAAC,CAAC;QAEF,IAAI,UAAU,EAAE,CAAC;YACb,yBAAyB,CAAC,UAAU,CAAC,CAAC;YACtC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,oBAAoB,GAAG,GAA8D,EAAE;YACzF,sCAAsC;YACtC,sFAAsF;YACtF,MAAM,MAAM,GAAG,6BAA6B,CAAC;gBACzC,cAAc;gBACd,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC;gBACnE,aAAa,EAAE,cAAc,CAAC,MAAM;gBACpC,gBAAgB,EAAE,QAAQ;aAC7B,CAAC,CAAC;YACH,IAAI,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAC;YAE9B,GAAG,CACC,YAAY,MAAM,CAAC,cAAc,+CAA+C,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,QAAQ,iCAAiC,MAAM,CAAC,SAAS,CAAC,SAAS,YAAY,MAAM,CAAC,gBAAgB,uBAAuB,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,UAAU,CAC1U,CAAC;YACF,8DAA8D;YAC9D,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;QAC5D,CAAC,CAAC;QAEF,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAEpG,uFAAuF;QACvF,sFAAsF;QACtF,qFAAqF;QACrF,oFAAoF;QACpF,6BAA6B;QAC7B,MAAM,4BAA4B,GAAG,GAAG,EAAE;YACtC,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;gBACvD,IAAI,OAAO,YAAY,CAAC,GAAG,KAAK,QAAQ;oBAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBACzE,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAqB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;gBACtH,IAAI,OAAO,aAAa,KAAK,QAAQ;oBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvE,CAAC;YACD,IAAI,CAAC,iCAAiC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnG,CAAC,CAAC;QAEF,IAAI,iBAAgE,CAAC;QACrE,IAAI,CAAC;YACD,iBAAiB,GAAG,MAAM,IAAI,OAAO,CAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAChF,iBAAiB,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,CACxC,cAAc;iBACT,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBAChB,IAAI,OAAO,IAAI,GAAG;oBAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;gBACvE,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;gBACxG,IAAI,iBAAiB,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM;oBAClD,sBAAsB;oBACtB,MAAM,CAAC,gDAAgD,GAAG,QAAQ,CAAC,CAAC;gBAExE,MAAM,eAAe,GAAG,oBAAoB,EAAE,CAAC;gBAC/C,IAAI,eAAe,EAAE,CAAC;oBAClB,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,eAAe,CAAC,CAAC;gBAC7B,CAAC;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,0EAA0E,GAAG,GAAG,CAAC,CAAC,CAChH,CACJ,CAAC;QACN,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,EAAE,CAAC;YACV,yBAAyB,CAAC,UAAU,CAAC,CAAC;YACtC,4BAA4B,EAAE,CAAC;YAC/B,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,KAAM,CAAC,CAAC;YACxF,MAAM,iCAAiC,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;iBAChE,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,KAAM,CAAC;iBACtD,IAAI,CACD,CAAC,GAAG,EAAE,EAAE,CACJ,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,GAAG;gBAC3B,GAAG,CAAC,IAAI,KAAK,8EAA8E,CAClG,CAAC;YACN,gFAAgF;YAChF,wFAAwF;YACxF,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;gBACvD,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,GAAG;oBAAE,SAAS;gBAC1D,MAAM,WAAW,GAAuB,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC;gBACjF,IAAI,WAAW;oBAAE,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5F,CAAC;YACD,IAAI,iCAAiC,EAAE,CAAC;gBACpC,oFAAoF;gBACpF,8EAA8E;gBAC9E,qFAAqF;gBACrF,qFAAqF;gBACrF,mFAAmF;gBACnF,uFAAuF;gBACvF,oFAAoF;gBACpF,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACvE,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CACzD,CAAC,UAAU,EAAE,EAAE,CACX,cAAc,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,GAAG;wBACzD,cAAc,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,IAAI;4BAClC,8EAA8E,CACzF,CAAC;oBACF,IAAI,oBAAoB,EAAE,CAAC;wBACvB,8EAA8E;wBAC9E,+EAA+E;wBAC/E,6EAA6E;wBAC7E,8EAA8E;wBAC9E,6EAA6E;wBAC7E,2EAA2E;wBAC3E,yEAAyE;wBACzE,MAAM,wBAAwB,GAAG,IAAI,eAAe,EAAE,CAAC;wBACvD,MAAM,kBAAkB,GAAG,UAAU,CACjC,GAAG,EAAE,CACD,wBAAwB,CAAC,KAAK,CAC1B,8DAA8D,GAAG,SAAS,GAAG,IAAI,CACpF,EACL,SAAS,CACZ,CAAC;wBACF,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;wBACtF,UAAU,EAAE,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC5E,IAAI,CAAC;4BACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAChD,oBAAoB,EACpB,QAAQ,EACR,wBAAwB,CAAC,MAAM,CAClC,CAAC;4BACF,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS;gCAC9E,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;wBAClD,CAAC;wBAAC,OAAO,cAAc,EAAE,CAAC;4BACtB,GAAG,CAAC,KAAK,CACL,4CAA4C,QAAQ,0DAA0D,EAC9G,cAAc,CACjB,CAAC;wBACN,CAAC;gCAAS,CAAC;4BACP,YAAY,CAAC,kBAAkB,CAAC,CAAC;4BACjC,UAAU,EAAE,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;wBACnE,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,uCAAuC,CAAC;gBAC9D,QAAQ;gBACR,cAAc;gBACd,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO;gBACzC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;gBAChD,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;aACvE,CAAC,CAAC;YACH,OAAO,aAAa,CAAC,KAAK,CAAC;YAC3B,MAAM,aAAa,CAAC;QACxB,CAAC;QAED,4BAA4B,EAAE,CAAC;QAC/B,+DAA+D;QAC/D,iEAAiE;QACjE,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAED,uFAAuF;IACvF,0FAA0F;IAC1F,2FAA2F;IAC3F,uFAAuF;IACvF,0FAA0F;IAC1F,yEAAyE;IACzE,2FAA2F;IAC3F,wFAAwF;IACxF,uCAAuC;IAC/B,KAAK,CAAC,2BAA2B,CACrC,UAAkB,EAClB,cAAsB,EACtB,WAAyB;QAEzB,MAAM,QAAQ,GAAa,CAAC,cAAc,CAAC,CAAC;QAC5C,IAAI,WAAW,GAAG,cAAc,CAAC;QACjC,4FAA4F;QAC5F,4BAA4B;QAC5B,OAAO,IAAI,EAAE,CAAC;YACV,2FAA2F;YAC3F,0FAA0F;YAC1F,0FAA0F;YAC1F,+FAA+F;YAC/F,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACrC,MAAM,OAAO,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;YACrD,MAAM,aAAa,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;YAC5D,MAAM,MAAM,GAAG,MAAM,qCAAqC,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YACpH,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC3B,8EAA8E;gBAC9E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,kBAAkB,CAAC,aAAa;oBACtD,MAAM,IAAI,QAAQ,CAAC,4BAA4B,EAAE;wBAC7C,GAAG,aAAa;wBAChB,QAAQ;wBACR,OAAO,EAAE,kBAAkB,CAAC,aAAa;wBACzC,GAAG,EAAE,SAAS;qBACjB,CAAC,CAAC;gBACP,SAAS;YACb,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,IAAI,aAAqB,CAAC;gBAC1B,IAAI,CAAC;oBACD,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;gBACrE,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,MAAM,IAAI,QAAQ,CAAC,uCAAuC,EAAE;wBACxD,MAAM,EAAE,+CAA+C;wBACvD,GAAG,aAAa;wBAChB,aAAa,EAAE,KAAK;wBACpB,QAAQ;qBACX,CAAC,CAAC;gBACP,CAAC;gBACD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;YACvC,CAAC;YACD,MAAM,IAAI,QAAQ,CAAC,uCAAuC,EAAE;gBACxD,MAAM,EAAE,2DAA2D;gBACnE,GAAG,aAAa;gBAChB,gBAAgB,EAAE,KAAK;gBACvB,QAAQ;aACX,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,iGAAiG;IACjG,8FAA8F;IAC9F,iGAAiG;IACjG,kGAAkG;IAClG,gGAAgG;IAChG,8FAA8F;IAC9F,6FAA6F;IAC7F,EAAE;IACF,kGAAkG;IAClG,8FAA8F;IAC9F,kGAAkG;IAClG,kGAAkG;IAClG,8FAA8F;IAC9F,6DAA6D;IACrD,KAAK,CAAC,2BAA2B,CAAC,EACtC,aAAa,EACb,QAAQ,EACR,2BAA2B,EAQ9B;QACG,MAAM,GAAG,GAAG,MAAM,CAAC,6DAA6D,CAAC,CAAC;QAClF,4FAA4F;QAC5F,6FAA6F;QAC7F,mFAAmF;QACnF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC;QACzC,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;QACtD,IAAI,CAAC,aAAa;YAAE,OAAO,QAAQ,CAAC,CAAC,yBAAyB;QAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,UAAU,CAAC;YAAE,OAAO,QAAQ,CAAC,CAAC,qCAAqC;QAE5H,MAAM,UAAU,GAAG,MAAM,2BAA2B,CAAC,aAAa,CAAC,CAAC;QACpE,MAAM,iBAAiB,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,iBAAiB,EAAE,UAAU,CAAC;YACrE,MAAM,IAAI,QAAQ,CAAC,mDAAmD,EAAE;gBACpE,aAAa;gBACb,uFAAuF;gBACvF,sEAAsE;gBACtE,cAAc,EAAE,UAAU;gBAC1B,iBAAiB;gBACjB,iBAAiB,EAAE,UAAU;gBAC7B,gBAAgB,EAAE,IAAI,CAAC,gCAAgC,EAAE;gBACzD,mBAAmB,EAAE,8BAA8B,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC;aACzF,CAAC,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,mBAAmB,UAAU,YAAY,aAAa,sCAAsC,EAAE,UAAU,CAAC,CAAC;QACpH,OAAO,UAAU,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,2BAA2B,CAAC,EACtC,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAQrB;QACG,MAAM,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzE,MAAM,wBAAwB,GAAG,IAAI,CAAC,gCAAgC,EAAE,CAAC;QACzE,MAAM,aAAa,GAAG,IAAI,CAAC,4BAA4B,CAAC,aAAa,CAAC,CAAC;QACvE,MAAM,sBAAsB,GAAG,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,wBAAwB,CAAC,CAAC;QAC9G,8FAA8F;QAC9F,yFAAyF;QACzF,MAAM,uBAAuB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS;YACrD,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YACjF,CAAC,CAAC,KAAK,CAAC;QACZ,qFAAqF;QACrF,0FAA0F;QAC1F,4FAA4F;QAC5F,iFAAiF;QACjF,sFAAsF;QACtF,0EAA0E;QAC1E,yFAAyF;QACzF,0DAA0D;QAC1D,MAAM,uBAAuB,GAAG,cAAc,CAAC,wBAAwB,CAAC,CAAC;QACzE,MAAM,2BAA2B,GAAG,CAAC,uBAAuB;YACxD,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,8BAA8B,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;YAC5H,CAAC,CAAC,KAAK,CAAC;QACZ,IAAI,CAAC,sBAAsB,IAAI,CAAC,uBAAuB,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACtF,8DAA8D;YAE9D,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,4EAA4E,EAAE;gBACrG,uFAAuF;gBACvF,oFAAoF;gBACpF,0FAA0F;gBAC1F,yFAAyF;gBACzF,yFAAyF;gBACzF,oEAAoE;gBACpE,MAAM,EAAE,uJAAuJ;gBAC/J,mBAAmB,EAAE,aAAa;gBAClC,wBAAwB,EAAE,wBAAwB;gBAClD,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS;gBAC7C,sBAAsB,EAAE,gBAAgB;gBACxC,WAAW,EAAE,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,2BAA2B,EAAE;gBAC7F,gBAAgB,EAAE,cAAc,KAAK,gBAAgB;gBACrD,4BAA4B,EAAE,wBAAwB;gBACtD,QAAQ,EAAE,cAAc;gBACxB,gBAAgB;gBAChB,kBAAkB,EAAE,aAAa;gBACjC,wBAAwB,EAAE,aAAa;gBACvC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;gBAChD,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;gBACpE,kBAAkB;aACrB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,8FAA8F;QAC9F,gGAAgG;QAChG,0EAA0E;QAC1E,MAAM,gBAAgB,GAAG;YACrB,SAAS,EAAE,aAAa;YACxB,iBAAiB;YACjB,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAChD,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;YACtC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE;SACrD,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,oCAAoC,EAAE;gBAC7D,iBAAiB,EAAE,cAAc;gBACjC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;gBAChD,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;gBACpE,gBAAgB;gBAChB,kBAAkB;aACrB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"community-client-manager.js","sourceRoot":"","sources":["../../../src/community/community-client-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,OAAO,CAAC;AAC9C,OAAO,EACH,kBAAkB,EAIrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAKpF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,MAAM,MAAM,cAAc,CAAC;AAElC,OAAO,EACH,+BAA+B,EAC/B,qCAAqC,EACrC,qBAAqB,EACrB,6BAA6B,EAC7B,YAAY,EACZ,UAAU,EACV,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,yBAAyB,EACzB,SAAS,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,wDAAwD,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAClI,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAEH,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC,CAAC,2FAA2F;AACnI,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,OAAO,EAA8B,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAI7G,MAAM,CAAC,MAAM,sCAAsC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;AAEzE,2FAA2F;AAC3F,6FAA6F;AAC7F,iGAAiG;AACjG,yFAAyF;AACzF,oFAAoF;AACpF,2FAA2F;AAC3F,8FAA8F;AAC9F,2FAA2F;AAC3F,4EAA4E;AAC5E,MAAM,gDAAgD,GAAG,MAAM,CAAC;AAEhE,2FAA2F;AAC3F,gGAAgG;AAChG,+FAA+F;AAC/F,4FAA4F;AAC5F,8FAA8F;AAC9F,wFAAwF;AACxF,2CAA2C;AAC3C,MAAM,wBAAwB,GAAG,MAAM,CAAC;AACxC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAEpC,MAAM,OAAO,uBAAwB,SAAQ,iBAAiB;IAoD1D,YAAY,SAAgD;QACxD,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QA3ClB,4CAAuC,GAAG,CAAC,CAAC;QACpD,0BAAqB,GAAoB,SAAS,CAAC;QACnD,6BAAwB,GAAuB,IAAI,UAAU,CAAS,EAAE,CAAC,CAAC,CAAC,yEAAyE;QAEpJ,0FAA0F;QAC1F,sFAAsF;QACtF,oFAAoF;QACpF,4FAA4F;QAC5F,wFAAwF;QACxF,gFAAgF;QACxE,iCAA4B,GAAuB,IAAI,UAAU,CAAS,CAAC,CAAC,CAAC;QAOrF,6FAA6F;QAC7F,4FAA4F;QAC5F,uFAAuF;QACvF,0FAA0F;QAC1F,sFAAsF;QACtF,0FAA0F;QAC1F,sFAAsF;QACtF,qDAAqD;QAC7C,iCAA4B,GAAG,IAAI,GAAG,EAAU,CAAC;QAGjD,4BAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC5C,kCAA6B,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1D,uFAAuF;QACvF,mFAAmF;QACnF,0FAA0F;QAC1F,gFAAgF;QAChF,qFAAqF;QAC7E,mCAA8B,GAAG,KAAK,CAAC;QAC/C,wFAAwF;QACxF,4FAA4F;QAC5F,wFAAwF;QAChF,2CAAsC,GAAG,CAAC,CAAC;QAgnBnD,2GAA2G;QAC3G,wGAAwG;QACxG,yGAAyG;QACzG,oCAAoC;QAC5B,yBAAoB,GAAG,KAAK,CAAC;QA/mBjC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAEkB,mBAAmB;QAClC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc;YAChC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;gBACxD,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC;IAC/H,CAAC;IAEkB,yBAAyB;QACxC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,oBAAoB,GAAG;gBAChC,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB;gBACpC,CAAC,SAAS,CAAC,EAAE,IAAI,yBAAyB,CAAC,SAAS,CAAC;aACxD,CAAC;IACV,CAAC;IAEkB,oBAAoB;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe;YACjC,KAAK,MAAM,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;gBACnE,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG;oBAC3B,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe;oBAC/B,CAAC,iBAAiB,CAAC,EAAE,IAAI,uBAAuB,CAAC,SAAS,CAAC;iBAC9D,CAAC;IACd,CAAC;IAES,kBAAkB;QACxB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;YACtD,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG;gBACzB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;gBAC7B,CAAC,MAAM,CAAC,EAAE,IAAI,0BAA0B,CAAC,SAAS,CAAC;aACtD,CAAC;IACV,CAAC;IAEQ,kBAAkB,CAAC,QAAyC,EAAE,gBAAwB;QAC3F,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACzD,CAAC;IAEQ,wBAAwB,CAAC,QAA4C,EAAE,cAAsB;QAClG,KAAK,CAAC,wBAAwB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;IAED,gGAAgG;IAChG,0FAA0F;IAC1F,wCAAwC,CAAC,QAA4C;QACjF,MAAM,YAAY,GAAG,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAC5D,IAAI,YAAY;YAAE,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IAChF,CAAC;IAEQ,kBAAkB,CAAC,QAA6C,EAAE,OAAe;QACtF,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAEQ,yBAAyB,CAAC,QAA0C,EAAE,iBAAyB;QACpG,KAAK,CAAC,yBAAyB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACjE,CAAC;IAEQ,SAAS,CAAC,CAAW;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAEkB,sCAAsC;QACrD,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEQ,sBAAsB,CAAC,IAAmC;QAC/D,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,uCAAuC,GAAG,CAAC;YAAE,OAAO;QAC7D,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW;YAAE,OAAO;QAC7C,IAAI,CAAC,UAAU,CAAC,4CAA4C,CAAC,gBAAgB,CAAC,CAAC;IACnF,CAAC;IAEQ,8BAA8B,CAAC,IAA2C;QAC/E,KAAK,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC;QAC3C,mGAAmG;QACnG,oGAAoG;QACpG,+FAA+F;QAC/F,+FAA+F;QAC/F,mGAAmG;QACnG,qGAAqG;QACrG,kBAAkB;QAClB,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW;YAAE,OAAO;QAC7C,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC9D,MAAM,IAAI,QAAQ,CAAC,iCAAiC,EAAE;gBAClD,IAAI,EAAE,IAAI,CAAC,OAAO;aACrB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAES,gCAAgC;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;IACnC,CAAC;IAEO,gCAAgC,CAAC,QAAgB,EAAE,QAAgB;QACvE,OAAO,+BAA+B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAEO,4BAA4B,CAAC,aAAgC;QACjE,iFAAiF;QACjF,OAAO,CACH,wBAAwB,CAAC,aAAwC,CAAC;YAClE,8BAA8B,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CACpE,CAAC;IACN,CAAC;IAED,0CAA0C;IAElC,KAAK,CAAC,6BAA6B,CACvC,gBAAwB;QAExB,MAAM,GAAG,GAAG,MAAM,CAAC,2DAA2D,CAAC,CAAC;QAEhF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,CAAC,qBAAsB,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;gBACrD,GAAG,CAAC,KAAK,CAAC,8BAA8B,gBAAgB,YAAY,UAAU,SAAS,CAAC,CAAC;gBACzF,IAAI,CAAC;oBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;oBAEvE,OAAO,CAAC,MAAM,CAAC,CAAC;gBACpB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,MAAM,KAAK,GAAqB,CAAC,CAAC;oBAClC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;wBAAE,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;oBACnE,kBAAkB;oBAClB,KAAK,CAAC,OAAO,GAAG;wBACZ,kBAAkB;wBAClB,GAAG,KAAK,CAAC,OAAO;wBAChB,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;wBAChD,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;qBACvE,CAAC;oBACF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,KAAK,CAAC,EAAE,CAAC;wBACvD,uCAAuC;wBACvC,IAAI,KAAK,YAAY,QAAQ;4BACzB,KAAK,CAAC,OAAO,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;wBACjG,OAAO,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;oBACtC,CAAC;yBAAM,CAAC;wBACJ,sEAAsE;wBACtE,oDAAoD;wBACpD,IAAI,KAAK,YAAY,QAAQ;4BACzB,KAAK,CAAC,OAAO,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;wBAChG,GAAG,CAAC,KAAK,CACL,4BAA4B,IAAI,CAAC,UAAU,CAAC,OAAO,mBAAmB,UAAU,2BAA2B,EAC3G,KAAK,CACR,CAAC;wBAEF,kGAAkG;wBAClG,MAAM,uBAAuB,GACzB,KAAK,YAAY,uCAAuC;4BACxD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,CAC7C,CAAC,YAAY,EAAE,EAAE,CACb,YAAY,YAAY,QAAQ,IAAI,YAAY,CAAC,IAAI,KAAK,oCAAoC,CACrG,CAAC;wBACN,IAAI,uBAAuB,EAAE,CAAC;4BAC1B,GAAG,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,OAAO,wDAAwD,CAAC,CAAC;4BAClG,IAAI,CAAC,UAAU,CAAC,4CAA4C,CAAC,eAAe,CAAC,CAAC;wBAClF,CAAC;6BAAM,CAAC;4BACJ,IAAI,CAAC,UAAU,CAAC,yCAAyC,CAAC;gCACtD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;gCACvC,gBAAgB,EAAE,eAAe;6BACpC,CAAC,CAAC;wBACP,CAAC;wBAED,IAAI,CAAC,qBAAsB,CAAC,KAAK,CAAQ,CAAC,CAAC,CAAC;oBAChD,CAAC;gBACL,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,MAAM,GAAG,GAAG,MAAM,CAAC,gCAAgC,CAAC,CAAC;QAErD,0FAA0F;QAC1F,wFAAwF;QACxF,4FAA4F;QAC5F,wFAAwF;QACxF,+EAA+E;QAC/E,MAAM,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACxD,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;QAErE,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9F,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,yDAAyD;QACxJ,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;QAElC,IAAI,sBAAsB,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,qBAAqB,EAAE,CAAC;YACzF,GAAG,CACC,aAAa,IAAI,CAAC,UAAU,CAAC,OAAO,4DAA4D,qBAAqB,6EAA6E,IAAI,CAAC,UAAU,CAAC,SAAS,4BAA4B,CAC1P,CAAC;YACF,OAAO;QACX,CAAC;QAED,IAAI,mBAAmB,IAAI,SAAS,IAAI,mBAAmB,EAAE,CAAC;YAC1D,OAAO;QACX,CAAC;aAAM,IAAI,mBAAmB,IAAI,eAAe,IAAI,mBAAmB,EAAE,CAAC;YACvE,gFAAgF;YAChF,IAAI,mBAAmB,CAAC,aAAa,YAAY,uCAAuC,EAAE,CAAC;gBACvF,KAAK,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;oBAChH,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,OAAO,YAAY,UAAU,uBAAuB,EAAE,YAAY,CAAC,CAAC;gBAC/G,CAAC;YACL,CAAC;YACD,GAAG,CAAC,KAAK,CACL,aAAa,IAAI,CAAC,UAAU,CAAC,OAAO,yHAAyH,EAC7J,mBAAmB,CAAC,aAAa,CACpC,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,yCAAyC,CAAC;gBACtD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE;gBACnE,gBAAgB,EAAE,QAAQ;aAC7B,CAAC,CAAC;QACP,CAAC;aAAM,IACH,mBAAmB,EAAE,SAAS;YAC9B,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,SAAS,EAC/F,CAAC;YACC,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YACvD,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAC7E,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,mBAAmB,CAAC,GAAG,CAAC;YACpD,mFAAmF;YACnF,yFAAyF;YACzF,sFAAsF;YACtF,eAAe;YACf,IAAI,oBAAoB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,oBAAoB,EAAE,CAAC;gBAC7E,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,SAAS,CAAC;gBACzC,yFAAyF;gBACzF,iCAAiC;gBACjC,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;gBACxC,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;YAC5C,CAAC;YACD,8FAA8F;YAC9F,2FAA2F;YAC3F,+FAA+F;YAC/F,+FAA+F;YAC/F,IACI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBACxC,IAAI,CAAC,UAAU,CAAC,IAAI;gBACpB,IAAI,CAAC,UAAU,CAAC,SAAS;gBACzB,IAAI,CAAC,UAAU,CAAC,YAAY,KAAK,IAAI,EACvC,CAAC;gBACC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;gBACvH,mFAAmF;gBACnF,qFAAqF;gBACrF,oFAAoF;gBACpF,oDAAoD;gBACpD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC3D,CAAC;YACD,GAAG,CACC,kBAAkB,EAClB,IAAI,CAAC,UAAU,CAAC,OAAO,EACvB,iEAAiE,EACjE,IAAI,CAAC,UAAU,CAAC,SAAS,EACzB,QAAQ,EACR,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,SAAU,EACxC,aAAa,CAChB,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,yCAAyC,CAAC;gBACtD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBAClD,gBAAgB,EAAE,WAAW;aAChC,CAAC,CAAC;YACH,IAAI,CAAC,mCAAmC,EAAE,CAAC;QAC/C,CAAC;aAAM,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAC3C,wDAAwD;YACxD,sBAAsB;YACtB,IAAI,CAAC,UAAU,CAAC,4CAA4C,CAAC,eAAe,CAAC,CAAC;QAClF,CAAC;aAAM,IAAI,mBAAmB,EAAE,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,4CAA4C,CAAC,WAAW,CAAC,CAAC;QAC9E,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB;QACnB,MAAM,GAAG,GAAG,MAAM,CAAC,gCAAgC,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC;QAE7C,MAAM,2BAA2B,GAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1H,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1G,uFAAuF;QACvF,mFAAmF;QACnF,uFAAuF;QACvF,wFAAwF;QACxF,qFAAqF;QACrF,oFAAoF;QACpF,2EAA2E;QAC3E,oFAAoF;QACpF,sFAAsF;QACtF,mDAAmD;QACnD,MAAM,qBAAqB,GAAG,iBAAiB,IAAI,QAAQ,IAAI,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;QAEjH,sFAAsF;QACtF,uFAAuF;QACvF,mFAAmF;QACnF,qFAAqF;QACrF,wFAAwF;QACxF,gFAAgF;QAChF,uFAAuF;QACvF,8DAA8D;QAC9D,IAAI,qBAAqB,EAAE,CAAC;YACxB,IAAI,CAAC;gBACD,IAAI,CAAC,6BAA6B,CAAC,qBAAqB,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,GAAG,CAAC,KAAK,CACL,gEAAgE,IAAI,CAAC,UAAU,CAAC,OAAO,0BAA0B,EACjH,CAAC,CACJ,CAAC;YACN,CAAC;YACD,kFAAkF;YAClF,qFAAqF;YACrF,IAAI,CAAC,sCAAsC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7D,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC;YAC7F,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,GAAG,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,UAAU,CAAC,OAAO,uCAAuC,EAAE,CAAC,CAAC,CAAC;YAC/G,CAAC;oBAAS,CAAC;gBACP,+EAA+E;gBAC/E,4EAA4E;gBAC5E,IAAI,qBAAqB,EAAE,CAAC;oBACxB,IAAI,CAAC;wBACD,IAAI,CAAC,6BAA6B,CAAC,qBAAqB,CAAC,CAAC;oBAC9D,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACT,GAAG,CAAC,KAAK,CAAC,iEAAiE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;oBAC7G,CAAC;oBACD,6EAA6E;oBAC7E,yDAAyD;oBACzD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;oBAC5E,MAAM,IAAI,CAAC,sCAAsC,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;gBAC1H,CAAC;qBAAM,CAAC;oBACJ,+EAA+E;oBAC/E,kEAAkE;oBAClE,MAAM,cAAc,GAAG,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBACzF,MAAM,wBAAwB,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBAC1F,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC;QAC5C,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,IAAI,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,CAAC;QAC1C,IAAI,CAAC,iCAAiC,GAAG,SAAS,CAAC;QACnD,IAAI,CAAC,8BAA8B,EAAE,CAAC;IAC1C,CAAC;IAED,wFAAwF;IACxF,yFAAyF;IACzF,oFAAoF;IACpF,2FAA2F;IAC3F,4FAA4F;IAC5F,yFAAyF;IACzF,wFAAwF;IACxF,qFAAqF;IACrF,oFAAoF;IAC5E,qBAAqB;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC,iCAAiC,CAAC;QAC7D,MAAM,MAAM,GACR,OAAO,aAAa,KAAK,QAAQ;YAC7B,CAAC,CAAC,aAAa,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG;YAClD,CAAC,CAAC,wBAAwB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,0FAA0F;IAC1F,sFAAsF;IAC9E,mBAAmB,CAAC,YAAuC;QAC/D,MAAM,WAAW,GAAG,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACxC,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,CAAC;IAED,uFAAuF;IACvF,oFAAoF;IACpF,oFAAoF;IAC5E,yBAAyB,CAAC,GAAyB;QACvD,MAAM,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,uFAAuF;IACvF,sFAAsF;IACtF,0FAA0F;IAC1F,yFAAyF;IACzF,0FAA0F;IAC1F,2FAA2F;IAC3F,uFAAuF;IACvF,qFAAqF;IACrF,qEAAqE;IACrE,wFAAwF;IACxF,uFAAuF;IACvF,0FAA0F;IAC1F,0FAA0F;IAC1F,4FAA4F;IACpF,oBAAoB,CAAC,OAA0B;QACnD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QACnC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,GAAG;gBAAE,OAAO;YACxF,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC;gBAAE,OAAO;YAC1D,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtD,CAAC;;YAAM,OAAO;QACd,IAAI,CAAC,6BAA6B,EAAE,EAAE,CAAC;IAC3C,CAAC;IAED,yFAAyF;IACzF,2FAA2F;IAC3F,sFAAsF;IACtF,yFAAyF;IACzF,2FAA2F;IAC3F,0FAA0F;IAC1F,sFAAsF;IACtF,+DAA+D;IACvD,2BAA2B;QAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,uBAAuB;YAC1C,IAAI,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,GAAG;gBAAE,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9H,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,6BAA6B;YACtD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC;gBAAE,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5G,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,6BAA6B,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3G,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,0FAA0F;IAC1F,wFAAwF;IACxF,2FAA2F;IAC3F,0FAA0F;IAC1F,yFAAyF;IACzF,0FAA0F;IAC1F,0FAA0F;IAC1F,qFAAqF;IAC7E,6BAA6B,CAAC,MAAsB;QACxD,IAAI,CAAC,IAAI,CAAC,oBAAoB;YAAE,IAAI,CAAC,oBAAoB,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC5G,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACjC,MAAM,kBAAkB,GACpB,IAAI,CAAC,UAAU,CAAC,QAAQ;YACxB,IAAI,CAAC,eAAe,EAAE;YACtB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACrF,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM;YACrD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ;YAC1B,CAAC,CAAC,kBAAkB;gBAClB,CAAC,CAAC,CAAC,kBAAkB,CAAC;gBACtB,CAAC,CAAC,EAAE,CAAC;QACX,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACnF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,4BAA4B;YACjD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,+BAA+B,CAAC,kBAAkB,CAAC,WAAW,CAAC;oBAClE,WAAW,EAAE,KAAK;oBAClB,QAAQ,EAAE,IAAI,CAAC,oBAAoB;iBACtC,CAAC,CAAC;gBACH,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC;QACL,KAAK,MAAM,KAAK,IAAI,aAAa;YAC7B,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,+BAA+B,CAAC,kBAAkB,CAAC,SAAS,CAAC;oBAChE,WAAW,EAAE,KAAK;oBAClB,QAAQ,EAAE,IAAI,CAAC,oBAAoB;iBACtC,CAAC,CAAC;gBACH,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjD,CAAC;IACT,CAAC;IAED,2FAA2F;IAC3F,4FAA4F;IAC5F,sEAAsE;IAC9D,sCAAsC;QAC1C,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAAE,OAAO;QACrC,IAAI,CAAC;YACD,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,CAAC,gCAAgC,CAAC,CAAC,KAAK,CAC1C,iEAAiE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAC1F,CAAC,CACJ,CAAC;QACN,CAAC;IACL,CAAC;IAEO,8BAA8B;QAClC,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,oBAAoB;YACpD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,4BAA4B;gBACjD,IAAI,CAAC,kBAAkB,CAAC,+BAA+B,CAAC,kBAAkB,CAAC,WAAW,CAAC;oBACnF,WAAW,EAAE,KAAK;oBAClB,QAAQ,EAAE,IAAI,CAAC,oBAAoB;iBACtC,CAAC,CAAC;QACX,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,CAAC;QAC1C,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,CAAC;QAC3C,IAAI,CAAC,8BAA8B,GAAG,KAAK,CAAC;IAChD,CAAC;IAED,6FAA6F;IAC7F,2FAA2F;IAC3F,6FAA6F;IAC7F,4FAA4F;IAC5F,6FAA6F;IAC7F,oFAAoF;IAC5E,KAAK,CAAC,sCAAsC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAwC;QACrG,IAAI,IAAI,CAAC,2BAA2B,EAAE,EAAE,CAAC;YACrC,iFAAiF;YACjF,0DAA0D;YAC1D,IAAI,CAAC,8BAA8B,GAAG,KAAK,CAAC;YAC5C,OAAO;QACX,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,MAAM,cAAc,GAAG,GAAG,EAAE;YACxB,cAAc,GAAG,IAAI,CAAC;YACtB,IAAI,EAAE,CAAC;QACX,CAAC,CAAC;QACF,IAAI,CAAC,6BAA6B,GAAG,cAAc,CAAC;QACpD,MAAM,OAAO,CAAC;QACd,IAAI,IAAI,CAAC,6BAA6B,KAAK,cAAc;YAAE,IAAI,CAAC,6BAA6B,GAAG,SAAS,CAAC;QAC1G,IAAI,cAAc,EAAE,CAAC;YACjB,iFAAiF;YACjF,iFAAiF;YACjF,0EAA0E;YAC1E,kFAAkF;YAClF,mFAAmF;YACnF,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,CAAC;QAC/C,CAAC;QACD,uFAAuF;QACvF,uFAAuF;QACvF,uFAAuF;QACvF,qFAAqF;QACrF,wFAAwF;QACxF,QAAQ;QACR,IAAI,CAAC,8BAA8B;YAC/B,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,sCAAsC,IAAI,gDAAgD,CAAC;IACxI,CAAC;IAED,+BAA+B;IAEvB,KAAK,CAAC,yCAAyC,CAAC,EACpD,aAAa,EACb,WAAW,EACX,KAAK,EAKR;QACG,IAAI,CAAC,uCAAuC,EAAE,CAAC;QAC/C,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,4BAA4B,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1F,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,uCAAuC,EAAE,CAAC;QACnD,CAAC;IACL,CAAC;IAED,gGAAgG;IAChG,kGAAkG;IAClG,gGAAgG;IAChG,8FAA8F;IAC9F,gGAAgG;IAChG,6FAA6F;IAC7F,+FAA+F;IAC/F,+FAA+F;IAC/F,4DAA4D;IACpD,2BAA2B;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC;QACvD,IAAI,CAAC,YAAY;YAAE,OAAO,SAAS,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAClE,SAAS,CAAC,GAAG,CAAC,8BAA8B,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAChF,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS;YAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;IAC1B,CAAC;IAED,2FAA2F;IAC3F,yFAAyF;IACzF,gDAAgD;IACxC,kBAAkB,CAAC,EAAE,aAAa,EAAE,YAAY,EAAmD;QACvG,MAAM,GAAG,GAAG,MAAM,CAAC,oDAAoD,CAAC,CAAC;QACzE,GAAG,CAAC,4BAA4B,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1G,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,qDAAqD,EAAE;YAC9E,aAAa;YACb,iBAAiB;YACjB,YAAY;SACf,CAAC,CAAC;QAEH,oEAAoE;QACpE,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QACxD,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;QACpC,mFAAmF;QACnF,uFAAuF;QACvF,oFAAoF;QACpF,oFAAoF;QACpF,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,CAAC;QAC3C,IAAI,CAAC,sCAAsC,EAAE,CAAC;QAE9C,yEAAyE;QACzE,kEAAkE;QAClE,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,sDAAsD,CAAC,CAAC;QAC7F,IAAI,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC;QAE7C,gDAAgD;QAChD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAoBO,wBAAwB,CAAC,IAAY;QACzC,MAAM,GAAG,GAAG,MAAM,CAAC,0DAA0D,CAAC,CAAC;QAC/E,qGAAqG;QACrG,uGAAuG;QACvG,kGAAkG;QAClG,yFAAyF;QACzF,EAAE;QACF,oGAAoG;QACpG,mGAAmG;QACnG,2EAA2E;QAC3E,IAAI,IAAI,CAAC,oBAAoB;YAAE,OAAO;QACtC,qGAAqG;QACrG,oGAAoG;QACpG,iGAAiG;QACjG,gGAAgG;QAChG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAAE,OAAO;QACvC,mGAAmG;QACnG,kFAAkF;QAClF,IACI,OAAO,IAAI,CAAC,sBAAsB,KAAK,QAAQ;YAC/C,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,8BAA8B;YAEnF,OAAO;QACX,+EAA+E;QAC/E,IACI,IAAI,CAAC,UAAU,CAAC,YAAY,KAAK,KAAK;YACtC,OAAO,IAAI,CAAC,sBAAsB,KAAK,QAAQ;YAC/C,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,uBAAuB;YAE5E,OAAO;QACX,MAAM,4BAA4B,GAAG,CAAC,eAAwB,EAAE,EAAE;YAC9D,6FAA6F;YAC7F,uEAAuE;YACvE,IAAI,CAAC,sBAAsB,GAAG,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACjF,iFAAiF;YACjF,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;YACxC,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,KAAK,eAAe;gBAAE,OAAO;YAC7D,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,eAAe,CAAC;YAC/C,oEAAoE;YACpE,4EAA4E;YAC5E,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAChD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACpD,CAAC;QACL,CAAC,CAAC;QACF,iHAAiH;QACjH,8GAA8G;QAC9G,+GAA+G;QAC/G,+GAA+G;QAC/G,MAAM,4BAA4B,GAAG,GAAG,EAAE;YACtC,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACjH,OAAO,OAAO,CAAC,eAAe,IAAI,+BAA+B,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9F,CAAC,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,yCAAyC,CAAC;YAC3C,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE;YAClD,oDAAoD;YACpD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SAC1B,CAAC;aACG,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACf,IAAI,CAAC,4BAA4B,EAAE,EAAE,CAAC;gBAClC,GAAG,CAAC,KAAK,CAAC,2BAA2B,IAAI,uCAAuC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3G,OAAO;YACX,CAAC;YACD,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;gBACrD,MAAM,aAAa,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;gBACzD,IAAI,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACpC,gFAAgF;oBAChF,gFAAgF;oBAChF,+EAA+E;oBAC/E,0EAA0E;oBAC1E,2EAA2E;oBAC3E,mFAAmF;oBACnF,GAAG,CACC,kBAAkB,IAAI,gBAAgB,QAAQ,4EAA4E,IAAI,CAAC,UAAU,CAAC,SAAS,8BAA8B,CACpL,CAAC;oBACF,4BAA4B,CAAC,KAAK,CAAC,CAAC;oBACpC,OAAO;gBACX,CAAC;gBACD,2DAA2D;gBAC3D,wEAAwE;gBACxE,IAAI,CAAC,kBAAkB,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7E,CAAC;iBAAM,IAAI,QAAQ,EAAE,CAAC;gBAClB,4BAA4B,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;YACD,0EAA0E;YAC1E,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACpC,4BAA4B,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;QACL,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,IACI,CAAC,YAAY,QAAQ;gBACrB,CAAC,CAAC,CAAC,IAAI,KAAK,iCAAiC,IAAI,CAAC,CAAC,IAAI,KAAK,sCAAsC,CAAC,EACrG,CAAC;gBACC,iFAAiF;gBACjF,iFAAiF;gBACjF,IAAI,4BAA4B,EAAE;oBAAE,4BAA4B,CAAC,KAAK,CAAC,CAAC;YAC5E,CAAC;iBAAM,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzB,wFAAwF;gBACxF,4FAA4F;gBAC5F,sFAAsF;gBACtF,8EAA8E;gBAC9E,OAAO;YACX,CAAC;iBAAM,CAAC;gBACJ,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC5D,0FAA0F;gBAC1F,qFAAqF;gBACrF,yFAAyF;gBACzF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7C,CAAC;QACL,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QACtC,CAAC,CAAC,CAAC;IACX,CAAC;IAED,mCAAmC;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAAE,OAAO;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;QAC3C,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,OAAO,GAA8D,EAAE,CAAC;QAC9E,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACxD,4FAA4F;gBAC5F,6FAA6F;gBAC7F,0FAA0F;gBAC1F,mEAAmE;gBACnE,IAAI,MAAM;oBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;YACtG,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEjC,IAAI,CAAC,8BAA8B,CAAC;YAChC,OAAO;YACP,UAAU,EAAE,GAAG,EAAE;gBACb,6DAA6D;gBAC7D,iGAAiG;gBACjG,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;oBACnE,IAAI,IAAI;wBAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;gBACxE,CAAC;YACL,CAAC;YACD,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE;SACrD,CAAC,CAAC;IACP,CAAC;IAED,qFAAqF;IACrF,yFAAyF;IACzF,yFAAyF;IACzF,uFAAuF;IACvF,uFAAuF;IACvF,oFAAoF;IACpF,wFAAwF;IAChF,eAAe;QACnB,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvD,IACI,IAAI,CAAC,UAAU,CAAC,SAAS;YACzB,CAAC,QAAQ,IAAI,cAAc,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC;YAE5G,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACrC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,gBAAwB;QACrD,OAAO,IAAI,CAAC,2BAA2B,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;YACjE,IAAI,QAAuB,CAAC;YAC5B,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;YAElD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAC9C,IAAI,cAAc,EAAE,CAAC;gBACjB,qGAAqG;gBACrG,mEAAmE;gBACnE,QAAQ,GAAG,cAAc,CAAC;gBAC1B,IAAI,QAAQ;oBAAE,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACJ,4DAA4D;gBAC5D,QAAQ,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC;oBAC/C,aAAa,EAAE,gBAAgB;oBAC/B,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE;oBAClD,uDAAuD;oBACvD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;iBAC1B,CAAC,CAAC;YACP,CAAC;YAED,gGAAgG;YAChG,gGAAgG;YAChG,8FAA8F;YAC9F,oEAAoE;YACpE,4GAA4G;YAC5G,2CAA2C;YAC3C,MAAM,YAAY,GACd,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC;YAC9H,IAAI,CAAC,QAAQ,IAAI,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;gBAClG,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,CAAC,QAAQ;gBAAE,MAAM,KAAK,CAAC,qDAAqD,CAAC,CAAC;YAElF,6FAA6F;YAC7F,6EAA6E;YAC7E,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACxC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACpC,kFAAkF;gBAClF,6EAA6E;gBAC7E,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtC,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;gBAC1E,IAAI,CAAC,UAAU,CAAC,yBAAyB,GAAG,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;gBACjG,mFAAmF;gBACnF,+EAA+E;gBAC/E,4EAA4E;gBAC5E,IAAI,CAAC,sCAAsC,EAAE,CAAC;YAClD,CAAC;YAED,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS;gBAAE,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAE5F,8EAA8E;YAC9E,4BAA4B;YAE5B,4HAA4H;YAC5H,4EAA4E;YAC5E,IAAI,CAAC,UAAU,CAAC,4CAA4C,CAAC,eAAe,CAAC,CAAC;YAC9E,IAAI,MAAiC,CAAC;YACtC,MAAM,2BAA2B,GAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1H,IAAI,2BAA2B,EAAE,CAAC;gBAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,8BAA8B,EAAE,CAAC;gBAC7D,mCAAmC;gBACnC,IAAI,CAAC;oBACD,MAAM,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAC;gBAClE,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,kBAAkB;oBAClB,CAAC,CAAC,OAAO,GAAG;wBACR,kBAAkB;wBAClB,GAAG,CAAC,CAAC,OAAO;wBACZ,QAAQ;wBACR,gBAAgB;wBAChB,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;wBAChD,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;qBACvE,CAAC;oBACF,MAAM,CAAC,CAAC;gBACZ,CAAC;wBAAS,CAAC;oBACP,IAAI,QAAQ,IAAI,cAAc;wBAAE,IAAI,CAAC,yBAAyB,CAAC,SAAS,EAAE,cAAc,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;;wBACjH,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;gBAChE,CAAC;YACL,CAAC;;gBAAM,MAAM,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC,2EAA2E;YAC7I,oEAAoE;YACpE,oEAAoE;YAEpE,IAAI,MAAM,EAAE,SAAS,EAAE,CAAC;gBACpB,0CAA0C;gBAC1C,gFAAgF;gBAChF,kFAAkF;gBAClF,kFAAkF;gBAClF,mFAAmF;gBACnF,qFAAqF;gBACrF,sFAAsF;gBACtF,0EAA0E;gBAC1E,MAAM,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,IAAI,QAAQ,CAAC;gBACzE,MAAM,qBAAqB,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,iBAAiB,CAAC;gBACzE,MAAM,sBAAsB,GAAG;oBAC3B,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU;oBACvC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW;oBACzC,OAAO,EAAE,qBAAqB;oBAC9B,SAAS,EAAE,iBAAiB;oBAC5B,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI;iBAC9B,CAAC;gBACF,kGAAkG;gBAClG,oGAAoG;gBACpG,oCAAoC;gBACpC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChH,mGAAmG;gBACnG,2FAA2F;gBAC3F,IACI,cAAc,EAAE,IAAI;oBACpB,CAAC,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,+BAA+B,CAAC,cAAc,CAAC,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;oBAEpH,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC5E,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;gBAC/F,IAAI,qBAAqB,KAAK,iBAAiB;oBAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC;YACnG,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,2FAA2F;IAC3F,2FAA2F;IAC3F,2DAA2D;IACnD,gCAAgC,CAAC,cAA8B,EAAE,QAAgB;QACrF,IAAI,CAAC;YACD,OAAO,cAAc,CAAC,+BAA+B,CAAC,wBAAwB,CAAC;gBAC3E,WAAW,EAAE,6BAA6B,CAAC,QAAQ,CAAC;aACvD,CAAC,CAAC;QACP,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,+BAA+B,CAAC,QAAgB;QAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,wDAAwD,CAAC,CAAC;QAC7E,MAAM,cAAc,GAAG,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAC7D,IAAI,QAAQ,IAAI,cAAc,EAAE,CAAC;YAC7B,IAAI,CAAC,yBAAyB,CAAC,eAAe,EAAE,cAAc,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;QAChG,CAAC;;YAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QACpE,mFAAmF;QACnF,uFAAuF;QACvF,mFAAmF;QACnF,iFAAiF;QACjF,mFAAmF;QACnF,wFAAwF;QACxF,sFAAsF;QACtF,mFAAmF;QACnF,oFAAoF;QACpF,sFAAsF;QACtF,qFAAqF;QACrF,uEAAuE;QACvE,MAAM,wBAAwB,GAC1B,IAAI,CAAC,8BAA8B;YACnC,CAAC,CAAC,QAAQ,IAAI,cAAc,IAAI,IAAI,CAAC,gCAAgC,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;QACrG,sFAAsF;QACtF,mFAAmF;QACnF,uFAAuF;QACvF,0DAA0D;QAC1D,IAAI,CAAC,8BAA8B,GAAG,KAAK,CAAC;QAC5C,IAAI,wBAAwB;YAAE,IAAI,CAAC,sCAAsC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvF,MAAM,EAAE,GAAG,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;YACnF,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;YAChD,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE;YAClD,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAC,CAAC;QACH,sFAAsF;QACtF,iFAAiF;QACjF,iFAAiF;QACjF,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACpC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvD,GAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACnG,IAAI,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,KAAK,CACL,yBAAyB,EACzB,QAAQ,EACR,mEAAmE,EACnE,kBAAkB,CACrB,CAAC;YACF,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,QAAQ,IAAI,cAAc;YAAE,IAAI,CAAC,yBAAyB,CAAC,eAAe,EAAE,cAAc,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;;YACvH,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,CAAC,4CAA4C,CAAC,eAAe,CAAC,CAAC;QAE9E,IAAI,sBAAqE,CAAC;QAC1E,IAAI,CAAC;YACD,sBAAsB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE;gBACjE,gBAAgB,EAAE,sCAAsC;gBACxD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;gBAChD,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE;gBAClD,sCAAsC,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;aAC1E,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,kBAAkB;YAClB,CAAC,CAAC,OAAO,GAAG;gBACR,kBAAkB;gBAClB,GAAG,CAAC,CAAC,OAAO;gBACZ,iBAAiB,EAAE,QAAQ;gBAC3B,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;gBAChD,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;gBACpE,YAAY,EAAE,kBAAkB;aACnC,CAAC;YACF,IAAI,CAAC,YAAY,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,yBAAyB;gBAAE,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YACzH,MAAM,CAAC,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACtD,IAAI,CAAC;YACD,MAAM,aAAa,GAAG,wDAAwD,CAC1E,4BAA4B,CAAC,sBAAsB,CAAC,CACvD,CAAC;YAEF,6FAA6F;YAC7F,kEAAkE;YAClE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC;gBAC1D,aAAa,EAAE,aAAa;gBAC5B,QAAQ;gBACR,2BAA2B,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,CACjD,CACI,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE;oBAC1C,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;oBAChD,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE;iBACrD,CAAC,CACL,CAAC,QAAQ;aACjB,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,cAAc,CAAC;YAE1C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC;gBACvD,aAAa,EAAE,aAAa;gBAC5B,iBAAiB,EAAE,cAAc;gBACjC,kBAAkB,EAAE,kBAAkB;aACzC,CAAC,CAAC;YAEH,IAAI,WAAW;gBAAE,MAAM,WAAW,CAAC;YACnC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC;QACjE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,2BAA2B;YAC1B,CAAc,CAAC,OAAO,GAAG;gBACtB,GAAI,CAAc,CAAC,OAAO;gBAC1B,kBAAkB,EAAE,kBAAkB;gBACtC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;gBAChD,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;aACvE,CAAC;YACF,MAAgB,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,2BAA2B,CAAC,QAAgB;QACtD,MAAM,GAAG,GAAG,MAAM,CAAC,6CAA6C,CAAC,CAAC;QAClE,MAAM,gBAAgB,GAAG,CAAC,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAExD,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAE5C,4CAA4C;QAC5C,MAAM,cAAc,GAChB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,IAAI,gBAAgB;YAC3D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YACtC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;QAEtE,iBAAiB;QACjB,wDAAwD;QACxD,MAAM,cAAc,GAA0B,EAAE,CAAC;QAEjD,KAAK,MAAM,UAAU,IAAI,cAAc,EAAE,CAAC;YACtC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YAC9C,MAAM,0CAA0C,GAA4D,KAAK,EAC7G,UAAU,EACZ,EAAE;gBACA,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ;oBAAE,MAAM,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBACxF,mDAAmD;gBACnD,MAAM,8BAA8B,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gBAEjG,IAAI,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,8BAA8B,CAAC;oBACjE,MAAM,IAAI,QAAQ,CAAC,8EAA8E,EAAE;wBAC/F,8BAA8B;wBAC9B,QAAQ;wBACR,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;wBAChD,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;wBACpE,UAAU;wBACV,UAAU;qBACb,CAAC,CAAC;gBAEP,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBAElE,IAAI,aAAgC,CAAC;gBACrC,IAAI,CAAC;oBACD,aAAa,GAAG,wDAAwD,CACpE,4BAA4B,CAAC,UAAU,CAAC,OAAO,CAAC,CACnD,CAAC;gBACN,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACR,CAAc,CAAC,OAAO,GAAG;wBACtB,GAAI,CAAc,CAAC,OAAO;wBAC1B,kBAAkB,EAAE,8BAA8B;wBAClD,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;wBAChD,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;qBACvE,CAAC;oBACF,MAAM,CAAC,CAAC;gBACZ,CAAC;gBACD,sFAAsF;gBACtF,qFAAqF;gBACrF,sFAAsF;gBACtF,gFAAgF;gBAChF,wFAAwF;gBACxF,yFAAyF;gBACzF,oFAAoF;gBACpF,gFAAgF;gBAChF,IAAI,gBAAgB,GAAG,QAAQ,CAAC;gBAChC,IAAI,QAAQ,GAAa,CAAC,QAAQ,CAAC,CAAC;gBACpC,MAAM,sBAAsB,GAAG,8BAA8B,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBACjG,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,sBAAsB,EAAE,QAAQ,CAAC,EAAE,CAAC;oBAC3E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;oBACnG,IAAI,KAAK,CAAC,aAAa,KAAK,8BAA8B;wBACtD,MAAM,IAAI,QAAQ,CAAC,uCAAuC,EAAE;4BACxD,MAAM,EAAE,oFAAoF;4BAC5F,oBAAoB,EAAE,KAAK,CAAC,aAAa;4BACzC,8BAA8B;4BAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;4BACxB,QAAQ;4BACR,UAAU;yBACb,CAAC,CAAC;oBACP,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;oBAC1B,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC7D,oEAAoE;oBACpE,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,sBAAsB,EAAE,gBAAgB,CAAC;wBAChF,MAAM,IAAI,QAAQ,CAAC,uCAAuC,EAAE;4BACxD,MAAM,EAAE,mFAAmF;4BAC3F,sBAAsB;4BACtB,gBAAgB;4BAChB,QAAQ;4BACR,QAAQ;4BACR,UAAU;yBACb,CAAC,CAAC;gBACX,CAAC;gBACD,oFAAoF;gBACpF,qFAAqF;gBACrF,wFAAwF;gBACxF,QAAQ,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC;oBAC9C,aAAa,EAAE,aAAa;oBAC5B,QAAQ;oBACR,2BAA2B,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,CACjD,CAAC,MAAM,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,aAAa,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;iBAC3G,CAAC,CAAC;gBACH,gFAAgF;gBAChF,mEAAmE;gBACnE,gFAAgF;gBAChF,cAAc,CAAC,UAAU,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAE/C,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC;oBAC7D,aAAa,EAAE,aAAa;oBAC5B,iBAAiB,EAAE,QAAQ;oBAC3B,kBAAkB,EAAE,8BAA8B;iBACrD,CAAC,CAAC;gBACH,IAAI,iBAAiB,EAAE,CAAC;oBACpB,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBAClC,IAAI,iBAAiB,CAAC,IAAI,KAAK,oCAAoC,EAAE,CAAC;wBAClE,MAAM,GAAG,GAAG,MAAM,CAAC,4EAA4E,CAAC,CAAC;wBACjG,MAAM,IAAI,GAAG,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;wBACnD,GAAG,CAAC,KAAK,CACL,WAAW,UAAU,qDAAqD;4BACtE,WAAW,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI;4BACnE,wBAAwB,8BAA8B,IAAI;4BAC1D,2BAA2B,IAAI,IAAI;4BACnC,cAAc,aAAa,CAAC,SAAS,IAAI;4BACzC,kBAAkB,UAAU,CAAC,OAAO,EAAE,CAC7C,CAAC;oBACN,CAAC;oBACD,MAAM,iBAAiB,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACJ,cAAc,CAAC,UAAU,CAAC,CAAC,eAAe,GAAG,aAAa,CAAC;oBAC3D,cAAc,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,8BAA8B,CAAC;oBAEhE,8EAA8E;oBAC9E,cAAc,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;oBAE1G,sEAAsE;oBACtE,2DAA2D;oBAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;oBAC7D,IAAI,IAAI;wBAAE,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1D,CAAC;YACL,CAAC,CAAC;YAEF,MAAM,4BAA4B,GAAG,KAAK,EAAE,UAAoB,EAAE,EAAE;gBAChE,4FAA4F;gBAC5F,cAAc,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;gBAErG,MAAM,uBAAuB,GAAG,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;gBAC7E,gFAAgF;gBAChF,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAC3B,OAAO,CAAC,mDAAmD;gBAC/D,CAAC;gBACD,MAAM,+BAA+B,GAAG,GAAG,EAAE;oBACzC,eAAe,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;oBAC/F,OAAO,IAAI,QAAQ,CAAC,8EAA8E,EAAE;wBAChG,uBAAuB;wBACvB,QAAQ;wBACR,UAAU;wBACV,UAAU;qBACb,CAAC,CAAC;gBACP,CAAC,CAAC;gBACF,4EAA4E;gBAC5E,0EAA0E;gBAC1E,MAAM,cAAc,GAAG,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;gBAClE,IAAI,cAAc,IAAI,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,cAAc,CAAC;oBAAE,OAAO,+BAA+B,EAAE,CAAC;gBACtH,IAAI,SAAiB,CAAC;gBACtB,IAAI,CAAC;oBACD,qDAAqD;oBACrD,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC7G,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,oEAAoE;oBACpE,OAAO,CAAC,mDAAmD;gBAC/D,CAAC;gBACD,IAAI,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC1F,4EAA4E;oBAC5E,0EAA0E;oBAC1E,2EAA2E;oBAC3E,IAAI,cAAc;wBAAE,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBAC1E,OAAO,+BAA+B,EAAE,CAAC;gBAC7C,CAAC;YACL,CAAC,CAAC;YAEF,+EAA+E;YAC/E,+EAA+E;YAC/E,mFAAmF;YACnF,+EAA+E;YAC/E,kFAAkF;YAClF,oFAAoF;YACpF,kFAAkF;YAClF,kFAAkF;YAClF,mEAAmE;YACnE,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAS,IAAI,CAAC,4BAA4B,CAAC,CAAC;YACtF,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS;gBAAE,0BAA0B,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC;YAChG,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAE,0BAA0B,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;YAC3H,MAAM,cAAc,GAChB,0BAA0B,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7H,cAAc,CAAC,UAAU,CAAC,GAAG;gBACzB,eAAe;gBACf,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,CACrB,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE;oBAC/B,cAAc,EAAE,MAAM;oBACtB,IAAI,EAAE,QAAQ;oBACd,aAAa,EAAE,WAAW;oBAC1B,2BAA2B,EAAE,0CAA0C;oBACvE,sCAAsC,EAAE,4BAA4B;oBACpE,eAAe;oBACf,gBAAgB,EAAE,sCAAsC;oBACxD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;oBAChD,GAAG;oBACH,cAAc,EAAE,cAAc;iBACjC,CAAC,CACL;gBACD,SAAS,EAAE,UAAU,CACjB,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,6DAA6D,GAAG,SAAS,GAAG,IAAI,CAAC,EAC7G,SAAS,CACZ;aACJ,CAAC;QACN,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACzD,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAEpC,MAAM,OAAO,GAAG,GAAG,EAAE;YACjB,UAAU,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC9C,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,KAAK;oBAAE,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACpH,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,IAAI,UAAU;gBAAE,UAAU,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACzE,CAAC,CAAC;QAEF,IAAI,UAAU,EAAE,CAAC;YACb,yBAAyB,CAAC,UAAU,CAAC,CAAC;YACtC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,oBAAoB,GAAG,GAA8D,EAAE;YACzF,sCAAsC;YACtC,sFAAsF;YACtF,MAAM,MAAM,GAAG,6BAA6B,CAAC;gBACzC,cAAc;gBACd,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC;gBACnE,aAAa,EAAE,cAAc,CAAC,MAAM;gBACpC,gBAAgB,EAAE,QAAQ;aAC7B,CAAC,CAAC;YACH,IAAI,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAC;YAE9B,GAAG,CACC,YAAY,MAAM,CAAC,cAAc,+CAA+C,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,QAAQ,iCAAiC,MAAM,CAAC,SAAS,CAAC,SAAS,YAAY,MAAM,CAAC,gBAAgB,uBAAuB,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,UAAU,CAC1U,CAAC;YACF,8DAA8D;YAC9D,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;QAC5D,CAAC,CAAC;QAEF,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAEpG,uFAAuF;QACvF,sFAAsF;QACtF,qFAAqF;QACrF,oFAAoF;QACpF,6BAA6B;QAC7B,MAAM,4BAA4B,GAAG,GAAG,EAAE;YACtC,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;gBACvD,IAAI,OAAO,YAAY,CAAC,GAAG,KAAK,QAAQ;oBAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBACzE,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAqB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;gBACtH,IAAI,OAAO,aAAa,KAAK,QAAQ;oBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvE,CAAC;YACD,IAAI,CAAC,iCAAiC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnG,CAAC,CAAC;QAEF,IAAI,iBAAgE,CAAC;QACrE,IAAI,CAAC;YACD,iBAAiB,GAAG,MAAM,IAAI,OAAO,CAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAChF,iBAAiB,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,CACxC,cAAc;iBACT,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBAChB,IAAI,OAAO,IAAI,GAAG;oBAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;gBACvE,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;gBACxG,IAAI,iBAAiB,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM;oBAClD,sBAAsB;oBACtB,MAAM,CAAC,gDAAgD,GAAG,QAAQ,CAAC,CAAC;gBAExE,MAAM,eAAe,GAAG,oBAAoB,EAAE,CAAC;gBAC/C,IAAI,eAAe,EAAE,CAAC;oBAClB,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,eAAe,CAAC,CAAC;gBAC7B,CAAC;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,0EAA0E,GAAG,GAAG,CAAC,CAAC,CAChH,CACJ,CAAC;QACN,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,EAAE,CAAC;YACV,yBAAyB,CAAC,UAAU,CAAC,CAAC;YACtC,4BAA4B,EAAE,CAAC;YAC/B,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,KAAM,CAAC,CAAC;YACxF,MAAM,iCAAiC,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;iBAChE,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,KAAM,CAAC;iBACtD,IAAI,CACD,CAAC,GAAG,EAAE,EAAE,CACJ,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,GAAG;gBAC3B,GAAG,CAAC,IAAI,KAAK,8EAA8E,CAClG,CAAC;YACN,gFAAgF;YAChF,wFAAwF;YACxF,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;gBACvD,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,GAAG;oBAAE,SAAS;gBAC1D,MAAM,WAAW,GAAuB,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC;gBACjF,IAAI,WAAW;oBAAE,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5F,CAAC;YACD,IAAI,iCAAiC,EAAE,CAAC;gBACpC,oFAAoF;gBACpF,8EAA8E;gBAC9E,qFAAqF;gBACrF,qFAAqF;gBACrF,mFAAmF;gBACnF,uFAAuF;gBACvF,oFAAoF;gBACpF,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACvE,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CACzD,CAAC,UAAU,EAAE,EAAE,CACX,cAAc,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,GAAG;wBACzD,cAAc,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,IAAI;4BAClC,8EAA8E,CACzF,CAAC;oBACF,IAAI,oBAAoB,EAAE,CAAC;wBACvB,8EAA8E;wBAC9E,+EAA+E;wBAC/E,6EAA6E;wBAC7E,8EAA8E;wBAC9E,6EAA6E;wBAC7E,2EAA2E;wBAC3E,yEAAyE;wBACzE,MAAM,wBAAwB,GAAG,IAAI,eAAe,EAAE,CAAC;wBACvD,MAAM,kBAAkB,GAAG,UAAU,CACjC,GAAG,EAAE,CACD,wBAAwB,CAAC,KAAK,CAC1B,8DAA8D,GAAG,SAAS,GAAG,IAAI,CACpF,EACL,SAAS,CACZ,CAAC;wBACF,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;wBACtF,UAAU,EAAE,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC5E,IAAI,CAAC;4BACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAChD,oBAAoB,EACpB,QAAQ,EACR,wBAAwB,CAAC,MAAM,CAClC,CAAC;4BACF,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS;gCAC9E,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;wBAClD,CAAC;wBAAC,OAAO,cAAc,EAAE,CAAC;4BACtB,GAAG,CAAC,KAAK,CACL,4CAA4C,QAAQ,0DAA0D,EAC9G,cAAc,CACjB,CAAC;wBACN,CAAC;gCAAS,CAAC;4BACP,YAAY,CAAC,kBAAkB,CAAC,CAAC;4BACjC,UAAU,EAAE,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;wBACnE,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,uCAAuC,CAAC;gBAC9D,QAAQ;gBACR,cAAc;gBACd,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO;gBACzC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;gBAChD,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;aACvE,CAAC,CAAC;YACH,OAAO,aAAa,CAAC,KAAK,CAAC;YAC3B,MAAM,aAAa,CAAC;QACxB,CAAC;QAED,4BAA4B,EAAE,CAAC;QAC/B,+DAA+D;QAC/D,iEAAiE;QACjE,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAED,uFAAuF;IACvF,0FAA0F;IAC1F,2FAA2F;IAC3F,uFAAuF;IACvF,0FAA0F;IAC1F,yEAAyE;IACzE,2FAA2F;IAC3F,wFAAwF;IACxF,uCAAuC;IAC/B,KAAK,CAAC,2BAA2B,CACrC,UAAkB,EAClB,cAAsB,EACtB,WAAyB;QAEzB,MAAM,QAAQ,GAAa,CAAC,cAAc,CAAC,CAAC;QAC5C,IAAI,WAAW,GAAG,cAAc,CAAC;QACjC,4FAA4F;QAC5F,4BAA4B;QAC5B,OAAO,IAAI,EAAE,CAAC;YACV,2FAA2F;YAC3F,0FAA0F;YAC1F,0FAA0F;YAC1F,+FAA+F;YAC/F,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACrC,MAAM,OAAO,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;YACrD,MAAM,aAAa,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;YAC5D,MAAM,MAAM,GAAG,MAAM,qCAAqC,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YACpH,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC3B,8EAA8E;gBAC9E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,kBAAkB,CAAC,aAAa;oBACtD,MAAM,IAAI,QAAQ,CAAC,4BAA4B,EAAE;wBAC7C,GAAG,aAAa;wBAChB,QAAQ;wBACR,OAAO,EAAE,kBAAkB,CAAC,aAAa;wBACzC,GAAG,EAAE,SAAS;qBACjB,CAAC,CAAC;gBACP,SAAS;YACb,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,IAAI,aAAqB,CAAC;gBAC1B,IAAI,CAAC;oBACD,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;gBACrE,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,MAAM,IAAI,QAAQ,CAAC,uCAAuC,EAAE;wBACxD,MAAM,EAAE,+CAA+C;wBACvD,GAAG,aAAa;wBAChB,aAAa,EAAE,KAAK;wBACpB,QAAQ;qBACX,CAAC,CAAC;gBACP,CAAC;gBACD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;YACvC,CAAC;YACD,MAAM,IAAI,QAAQ,CAAC,uCAAuC,EAAE;gBACxD,MAAM,EAAE,2DAA2D;gBACnE,GAAG,aAAa;gBAChB,gBAAgB,EAAE,KAAK;gBACvB,QAAQ;aACX,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,iGAAiG;IACjG,8FAA8F;IAC9F,iGAAiG;IACjG,kGAAkG;IAClG,gGAAgG;IAChG,8FAA8F;IAC9F,6FAA6F;IAC7F,EAAE;IACF,kGAAkG;IAClG,8FAA8F;IAC9F,kGAAkG;IAClG,kGAAkG;IAClG,8FAA8F;IAC9F,6DAA6D;IACrD,KAAK,CAAC,2BAA2B,CAAC,EACtC,aAAa,EACb,QAAQ,EACR,2BAA2B,EAQ9B;QACG,MAAM,GAAG,GAAG,MAAM,CAAC,6DAA6D,CAAC,CAAC;QAClF,4FAA4F;QAC5F,6FAA6F;QAC7F,mFAAmF;QACnF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC;QACzC,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;QACtD,IAAI,CAAC,aAAa;YAAE,OAAO,QAAQ,CAAC,CAAC,yBAAyB;QAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,UAAU,CAAC;YAAE,OAAO,QAAQ,CAAC,CAAC,qCAAqC;QAE5H,MAAM,UAAU,GAAG,MAAM,2BAA2B,CAAC,aAAa,CAAC,CAAC;QACpE,MAAM,iBAAiB,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,iBAAiB,EAAE,UAAU,CAAC;YACrE,MAAM,IAAI,QAAQ,CAAC,mDAAmD,EAAE;gBACpE,aAAa;gBACb,uFAAuF;gBACvF,sEAAsE;gBACtE,cAAc,EAAE,UAAU;gBAC1B,iBAAiB;gBACjB,iBAAiB,EAAE,UAAU;gBAC7B,gBAAgB,EAAE,IAAI,CAAC,gCAAgC,EAAE;gBACzD,mBAAmB,EAAE,8BAA8B,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC;aACzF,CAAC,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,mBAAmB,UAAU,YAAY,aAAa,sCAAsC,EAAE,UAAU,CAAC,CAAC;QACpH,OAAO,UAAU,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,2BAA2B,CAAC,EACtC,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAQrB;QACG,MAAM,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzE,MAAM,wBAAwB,GAAG,IAAI,CAAC,gCAAgC,EAAE,CAAC;QACzE,MAAM,aAAa,GAAG,IAAI,CAAC,4BAA4B,CAAC,aAAa,CAAC,CAAC;QACvE,MAAM,sBAAsB,GAAG,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,wBAAwB,CAAC,CAAC;QAC9G,8FAA8F;QAC9F,yFAAyF;QACzF,MAAM,uBAAuB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS;YACrD,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YACjF,CAAC,CAAC,KAAK,CAAC;QACZ,qFAAqF;QACrF,0FAA0F;QAC1F,4FAA4F;QAC5F,iFAAiF;QACjF,sFAAsF;QACtF,0EAA0E;QAC1E,2FAA2F;QAC3F,gGAAgG;QAChG,4FAA4F;QAC5F,sFAAsF;QACtF,MAAM,2BAA2B,GAAG,IAAI,CAAC,gCAAgC,CACrE,8BAA8B,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,EACjE,gBAAgB,CACnB,CAAC;QACF,IAAI,CAAC,sBAAsB,IAAI,CAAC,uBAAuB,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACtF,8DAA8D;YAE9D,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,4EAA4E,EAAE;gBACrG,uFAAuF;gBACvF,oFAAoF;gBACpF,0FAA0F;gBAC1F,yFAAyF;gBACzF,yFAAyF;gBACzF,oEAAoE;gBACpE,MAAM,EAAE,uJAAuJ;gBAC/J,mBAAmB,EAAE,aAAa;gBAClC,wBAAwB,EAAE,wBAAwB;gBAClD,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS;gBAC7C,sBAAsB,EAAE,gBAAgB;gBACxC,WAAW,EAAE,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,2BAA2B,EAAE;gBAC7F,gBAAgB,EAAE,cAAc,KAAK,gBAAgB;gBACrD,4BAA4B,EAAE,wBAAwB;gBACtD,QAAQ,EAAE,cAAc;gBACxB,gBAAgB;gBAChB,kBAAkB,EAAE,aAAa;gBACjC,wBAAwB,EAAE,aAAa;gBACvC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;gBAChD,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;gBACpE,kBAAkB;aACrB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,8FAA8F;QAC9F,gGAAgG;QAChG,0EAA0E;QAC1E,MAAM,gBAAgB,GAAG;YACrB,SAAS,EAAE,aAAa;YACxB,iBAAiB;YACjB,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAChD,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;YACtC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE;SACrD,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,oCAAoC,EAAE;gBAC7D,iBAAiB,EAAE,cAAc;gBACjC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;gBAChD,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;gBACpE,gBAAgB;gBAChB,kBAAkB;aACrB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;CACJ"}
@@ -1,4 +1,5 @@
1
1
  import type { CommunityIpfsType } from "./types.js";
2
+ import { PKCError } from "../pkc-error.js";
2
3
  type LooseCommunityIpfs = Partial<CommunityIpfsType> & {
3
4
  address?: string;
4
5
  publicKey?: string;
@@ -8,6 +9,11 @@ type LooseCommunityIpfs = Partial<CommunityIpfsType> & {
8
9
  export declare function omitRuntimeCommunityFields<Community extends LooseCommunityIpfs | undefined>(community: Community): Partial<CommunityIpfsType> & Record<string, unknown>;
9
10
  export declare function cleanWireCommunity(community?: LooseCommunityIpfs): Partial<CommunityIpfsType> | undefined;
10
11
  export declare function getCommunityNameFromWire(community?: LooseCommunityIpfs): string | undefined;
12
+ export declare function findCommunityRecordNameMismatch(opts: {
13
+ requestedName: string | undefined;
14
+ record: CommunityIpfsType;
15
+ communityPublicKey: string | undefined;
16
+ }): PKCError | undefined;
11
17
  export declare function getCommunityDomainFromWire(community?: LooseCommunityIpfs): string | undefined;
12
18
  export declare function buildRuntimeCommunity({ communityRecord, signaturePublicKey }: {
13
19
  communityRecord?: LooseCommunityIpfs;
@@ -1,6 +1,7 @@
1
1
  import { isEmpty, omit } from "remeda";
2
2
  import { getPKCAddressFromPublicKeySync } from "../signer/util.js";
3
- import { isStringDomain } from "../util.js";
3
+ import { areEquivalentCommunityAddresses, isStringDomain } from "../util.js";
4
+ import { PKCError } from "../pkc-error.js";
4
5
  const runtimeOnlyCommunityFields = ["address", "publicKey", "shortAddress", "nameResolved"];
5
6
  export function omitRuntimeCommunityFields(community) {
6
7
  if (!community)
@@ -22,6 +23,26 @@ export function getCommunityNameFromWire(community) {
22
23
  return community.address;
23
24
  return undefined;
24
25
  }
26
+ // A loader that asked for a community by name accepts only records that claim that name. The signature
27
+ // proves which key published a record, not which name the record claims, so a record without the name or
28
+ // with a different one is genuine but not the community the caller asked for: the owner dropped or
29
+ // renamed the name, or the name was re-pointed. Returns the error to emit, or undefined when the record
30
+ // claims the name or nothing was requested by name. Retriable, because a later record can claim the name
31
+ // again. See docs/protocol/names-and-addresses.md.
32
+ export function findCommunityRecordNameMismatch(opts) {
33
+ if (!opts.requestedName)
34
+ return undefined;
35
+ const recordName = getCommunityNameFromWire(opts.record);
36
+ if (recordName && areEquivalentCommunityAddresses(recordName, opts.requestedName))
37
+ return undefined;
38
+ return new PKCError("ERR_COMMUNITY_RECORD_NAME_DOES_NOT_MATCH_REQUESTED_NAME", {
39
+ requestedName: opts.requestedName,
40
+ recordName,
41
+ communityPublicKey: opts.communityPublicKey,
42
+ recordUpdatedAt: opts.record.updatedAt,
43
+ retriableError: true
44
+ });
45
+ }
25
46
  export function getCommunityDomainFromWire(community) {
26
47
  const name = getCommunityNameFromWire(community);
27
48
  return typeof name === "string" && isStringDomain(name) ? name : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"community-wire.js","sourceRoot":"","sources":["../../../src/community/community-wire.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,0BAA0B,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,CAAU,CAAC;AASrG,MAAM,UAAU,0BAA0B,CACtC,SAAoB;IAEpB,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAC1B,OAAO,IAAI,CAAC,SAAS,EAAE,0BAA0B,CAAyD,CAAC;AAC/G,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAA8B;IAC7D,MAAM,aAAa,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAI,OAAO,CAAC,aAAa,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,aAA2C,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,SAA8B;IACnE,MAAM,aAAa,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAI,OAAO,aAAa,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,aAAa,CAAC,IAAI,CAAC;IACtE,6DAA6D;IAC7D,IAAI,OAAO,SAAS,EAAE,OAAO,KAAK,QAAQ,IAAI,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC,OAAO,CAAC;IAC1G,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,SAA8B;IACrE,MAAM,IAAI,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACjD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EAClC,eAAe,EACf,kBAAkB,EAIrB;IACG,MAAM,SAAS,GAAG,8BAA8B,CAAC,kBAAkB,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,wBAAwB,CAAC,eAAe,CAAC,CAAC;IACvD,OAAO;QACH,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAChC,OAAO,EAAE,IAAI,IAAI,SAAS;QAC1B,SAAS;KACZ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"community-wire.js","sourceRoot":"","sources":["../../../src/community/community-wire.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,0BAA0B,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,CAAU,CAAC;AASrG,MAAM,UAAU,0BAA0B,CACtC,SAAoB;IAEpB,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAC1B,OAAO,IAAI,CAAC,SAAS,EAAE,0BAA0B,CAAyD,CAAC;AAC/G,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAA8B;IAC7D,MAAM,aAAa,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAI,OAAO,CAAC,aAAa,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,aAA2C,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,SAA8B;IACnE,MAAM,aAAa,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAI,OAAO,aAAa,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,aAAa,CAAC,IAAI,CAAC;IACtE,6DAA6D;IAC7D,IAAI,OAAO,SAAS,EAAE,OAAO,KAAK,QAAQ,IAAI,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC,OAAO,CAAC;IAC1G,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,uGAAuG;AACvG,yGAAyG;AACzG,mGAAmG;AACnG,wGAAwG;AACxG,yGAAyG;AACzG,mDAAmD;AACnD,MAAM,UAAU,+BAA+B,CAAC,IAI/C;IACG,IAAI,CAAC,IAAI,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,UAAU,GAAG,wBAAwB,CAAC,IAAI,CAAC,MAA4B,CAAC,CAAC;IAC/E,IAAI,UAAU,IAAI,+BAA+B,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC;QAAE,OAAO,SAAS,CAAC;IACpG,OAAO,IAAI,QAAQ,CAAC,yDAAyD,EAAE;QAC3E,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,UAAU;QACV,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;QACtC,cAAc,EAAE,IAAI;KACvB,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,SAA8B;IACrE,MAAM,IAAI,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACjD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EAClC,eAAe,EACf,kBAAkB,EAIrB;IACG,MAAM,SAAS,GAAG,8BAA8B,CAAC,kBAAkB,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,wBAAwB,CAAC,eAAe,CAAC,CAAC;IACvD,OAAO;QACH,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAChC,OAAO,EAAE,IAAI,IAAI,SAAS;QAC1B,SAAS;KACZ,CAAC;AACN,CAAC"}
@@ -66,6 +66,8 @@ export declare class RemoteCommunity extends TypedEmitter<CommunityEvents> imple
66
66
  previousPublicKey: string;
67
67
  newPublicKey: string;
68
68
  };
69
+ protected _lastRefusedRecordUpdatedAt?: number;
70
+ _nameToResolveBeforeFirstRecord?: string;
69
71
  protected _updatingState: CommunityUpdatingState;
70
72
  constructor(pkc: PKC);
71
73
  _createStopAbortController(): AbortController;
@@ -110,11 +112,15 @@ export declare class RemoteCommunity extends TypedEmitter<CommunityEvents> imple
110
112
  protected _setStartedStateNoEmission(newState: CommunityStartedState): void;
111
113
  _setStartedStateWithEmission(newState: CommunityStartedState): void;
112
114
  _isRetriableErrorWhenLoading(err: PKCError | Error): boolean;
115
+ protected _requestedName(): string | undefined;
116
+ protected _findRecordNameMismatch(record: CommunityIpfsType): PKCError | undefined;
117
+ protected _refuseRecordWithMismatchedName(error: PKCError, record: CommunityIpfsType): void;
113
118
  _setCommunityIpfsPropsFromUpdatingCommunitiesIfPossible(): void;
114
119
  protected _adoptMirroredNameResolved(source: {
115
120
  name?: string;
121
+ address?: string;
116
122
  nameResolved?: boolean;
117
- }, nameResolvedBeforeMirror: boolean | undefined): void;
123
+ }, nameResolvedBeforeMirror: boolean | undefined, nameBeforeMirror: string | undefined): void;
118
124
  private _initCommunityInstanceWithListeners;
119
125
  private fetchLatestCommunityOrSubscribeToEvent;
120
126
  private _announcePendingWarmStartKeyMigrationIfAny;
@@ -1,4 +1,4 @@
1
- import { createAbortError, doesDomainAddressHaveCapitalLetter, hideClassPrivateProps, ipnsNameToIpnsOverPubsubTopic, isIpns, isStringDomain, pubsubTopicToDhtKey, shortifyAddress, timestamp } from "../util.js";
1
+ import { areEquivalentCommunityAddresses, createAbortError, doesDomainAddressHaveCapitalLetter, hideClassPrivateProps, ipnsNameToIpnsOverPubsubTopic, isIpns, isStringDomain, pubsubTopicToDhtKey, shortifyAddress, timestamp } from "../util.js";
2
2
  import Logger from "../logger.js";
3
3
  import { TypedEmitter } from "tiny-typed-emitter";
4
4
  import { FailedToFetchCommunityFromGatewaysError, PKCError } from "../pkc-error.js";
@@ -8,7 +8,8 @@ import { parseRawPages } from "../pages/util.js";
8
8
  import { CommunityIpfsSchema } from "./schema.js";
9
9
  import { CommunityClientsManager } from "./community-client-manager.js";
10
10
  import { getPKCAddressFromPublicKeySync } from "../signer/util.js";
11
- import { findUpdatingCommunity, refreshTrackedCommunityAliases, trackUpdatingCommunity, untrackUpdatingCommunity } from "../pkc/tracked-instance-registry-util.js";
11
+ import { findUpdatingCommunity, forgetTrackedUpdatingCommunityName, refreshTrackedCommunityAliases, trackUpdatingCommunity, untrackUpdatingCommunity } from "../pkc/tracked-instance-registry-util.js";
12
+ import { findCommunityRecordNameMismatch, getCommunityNameFromWire } from "./community-wire.js";
12
13
  export class RemoteCommunity extends TypedEmitter {
13
14
  constructor(pkc) {
14
15
  super();
@@ -25,6 +26,15 @@ export class RemoteCommunity extends TypedEmitter {
25
26
  // hideClassPrivateProps() can mark it non-enumerable — without it (target ES2021) the first
26
27
  // assignment would create an enumerable prop that leaks into JSON.stringify(community).
27
28
  this._pendingWarmStartKeyMigration = undefined;
29
+ // updatedAt of the last record this instance refused because it does not claim the name the instance
30
+ // was loaded by. The updating instance it mirrors re-emits "update" for the same record (a nameResolved
31
+ // verdict landing, for example), and the refusal is reported once per record, not once per emit.
32
+ this._lastRefusedRecordUpdatedAt = undefined;
33
+ // A name to resolve in parallel with the first load of an instance loaded by key, before any record says which
34
+ // name the community claims (a comment knows its communityName up front). The instance stays keyed: the hint
35
+ // is not a requested name, so a record that does not claim it is still accepted, and the result is applied only
36
+ // if the loaded record claims the name.
37
+ this._nameToResolveBeforeFirstRecord = undefined;
28
38
  this._pkc = pkc;
29
39
  this._setState("stopped");
30
40
  this._updatingState = "stopped";
@@ -294,7 +304,16 @@ export class RemoteCommunity extends TypedEmitter {
294
304
  !isStringDomain(newProps.address)) {
295
305
  this.publicKey = newProps.address;
296
306
  }
297
- if (typeof newProps.name === "string")
307
+ const nameBeforeProps = this.name;
308
+ if (newProps.signature && !("publicKey" in newProps)) {
309
+ // A published record, not options or a clone of an instance (those carry the runtime
310
+ // publicKey). Once a record has loaded it is the authority for the name, including for its
311
+ // absence: a community that drops or changes its name must stop being shown under the old
312
+ // one. A loader that asked for a name never gets here with a record that does not claim
313
+ // it, see _findRecordNameMismatch.
314
+ this.name = getCommunityNameFromWire(newProps);
315
+ }
316
+ else if (typeof newProps.name === "string")
298
317
  this.name = newProps.name;
299
318
  else if (!this.name &&
300
319
  "address" in newProps &&
@@ -302,6 +321,14 @@ export class RemoteCommunity extends TypedEmitter {
302
321
  isStringDomain(newProps.address)) {
303
322
  this.name = newProps.address;
304
323
  }
324
+ // An alias of the previous name (x.eth for x.bso) still identifies this community, as it does for
325
+ // the loader's mismatch check (findCommunityRecordNameMismatch)
326
+ if (nameBeforeProps !== undefined && (this.name === undefined || !areEquivalentCommunityAddresses(this.name, nameBeforeProps))) {
327
+ // The verdict described the previous name, and the previous name no longer identifies this
328
+ // community, so a new loader asking for it must not be routed to this instance.
329
+ this.nameResolved = undefined;
330
+ forgetTrackedUpdatingCommunityName(this._pkc, this, nameBeforeProps);
331
+ }
305
332
  // Only set address during initial creation (no address yet).
306
333
  // Once set, address is immutable -- record updates must not override it.
307
334
  if (!this.address) {
@@ -524,6 +551,28 @@ export class RemoteCommunity extends TypedEmitter {
524
551
  }
525
552
  return true;
526
553
  }
554
+ // The name this instance was asked to load, which is its address when that is a domain (createCommunity
555
+ // derives the address from the name when one is given). The address is immutable, so this stays the
556
+ // same whatever name later records claim.
557
+ _requestedName() {
558
+ return this.address && isStringDomain(this.address) ? this.address : undefined;
559
+ }
560
+ // Each loader checks records against the name IT asked for, wherever a record is applied to it:
561
+ // loaders of different identities share one updating instance (matched by public key or name), so
562
+ // the shared instance only verifies the signing key, which holds for every loader alike.
563
+ _findRecordNameMismatch(record) {
564
+ return findCommunityRecordNameMismatch({ requestedName: this._requestedName(), record, communityPublicKey: this.publicKey });
565
+ }
566
+ // Refuse a record that does not claim the requested name: keep the last good record and report the
567
+ // refusal once for this record. The loader stays attached, so a later record that claims the name
568
+ // again is accepted.
569
+ _refuseRecordWithMismatchedName(error, record) {
570
+ if (this._lastRefusedRecordUpdatedAt === record.updatedAt)
571
+ return;
572
+ this._lastRefusedRecordUpdatedAt = record.updatedAt;
573
+ Logger("pkc-js:remote-community:_refuseRecordWithMismatchedName")(`Community ${this.address} refused the record with updatedAt ${record.updatedAt}: it claims the name`, error.details.recordName, "instead of", error.details.requestedName);
574
+ this.emit("error", error);
575
+ }
527
576
  _setCommunityIpfsPropsFromUpdatingCommunitiesIfPossible() {
528
577
  const log = Logger("pkc-js:remote-community:_setCommunityIpfsPropsFromUpdatingCommunitiesIfPossible");
529
578
  const updatingCommunity = findUpdatingCommunity(this._pkc, { publicKey: this.publicKey, name: this.name });
@@ -540,13 +589,18 @@ export class RemoteCommunity extends TypedEmitter {
540
589
  log.trace(`New Remote Community instance`, this.address, `skipped warm start from pkc._updatingCommunities[${this.address}]: tracked instance is keyed to`, updatingCommunity.publicKey, `while the caller requested`, this.publicKey, `- deferring key-migration announcement to update()`);
541
590
  return;
542
591
  }
592
+ // A record that does not claim the name this instance asked for is not adopted. The refusal
593
+ // is reported by the attach-time replay in update(), once the caller's listeners exist.
594
+ if (this._findRecordNameMismatch(updatingCommunity.raw.communityIpfs))
595
+ return;
543
596
  const nameResolvedBeforeAdoption = this.nameResolved;
597
+ const nameBeforeAdoption = this.name;
544
598
  this.initCommunityIpfsPropsNoMerge(updatingCommunity.raw.communityIpfs);
545
599
  this.updateCid = updatingCommunity.updateCid;
546
600
  // Same guard as the mirror's update handler: adopt the tracked instance's nameResolved
547
601
  // only when its name describes us (#119). Without this a warm-started instance reports
548
602
  // nameResolved undefined while a cold-started sibling of the same community reports true.
549
- this._adoptMirroredNameResolved(updatingCommunity, nameResolvedBeforeAdoption);
603
+ this._adoptMirroredNameResolved(updatingCommunity, nameResolvedBeforeAdoption, nameBeforeAdoption);
550
604
  log.trace(`New Remote Community instance`, this.address, `will use CommunityIpfs from pkc._updatingCommunities[${this.address}] with updatedAt`, this.updatedAt, "that's", timestamp() - this.updatedAt, "seconds old");
551
605
  this.emit("update", this);
552
606
  }
@@ -554,15 +608,22 @@ export class RemoteCommunity extends TypedEmitter {
554
608
  // nameResolved reflects whether THIS community's own name resolved to its publicKey. When we mirror an
555
609
  // updating instance that we share only by publicKey — e.g. a community loaded by a raw IPNS key sharing a
556
610
  // key with a resolved-domain sibling (migrating.bso), or two different domains that resolve to the same
557
- // key — the sibling's nameResolved does NOT describe us. Adopt it only when the names match; otherwise
558
- // restore the value we had before mirroring, undoing anything deepMergeRuntimeFields copied in. See #119.
559
- _adoptMirroredNameResolved(source, nameResolvedBeforeMirror) {
560
- if (this.name === source.name) {
611
+ // key — the sibling's nameResolved does NOT describe us. Adopt it only when the name it was computed for
612
+ // is ours: a domain-addressed instance classifies its address, which can differ from the name its record
613
+ // claims. Otherwise restore the value we had before mirroring, undoing anything deepMergeRuntimeFields
614
+ // copied in, unless our own name changed with the record, which leaves no verdict for it. See #119.
615
+ // Names are compared as aliases: a loader of x.eth whose record claims x.bso is described by a verdict
616
+ // computed for x.eth.
617
+ _adoptMirroredNameResolved(source, nameResolvedBeforeMirror, nameBeforeMirror) {
618
+ const nameTheSourceClassified = source.address && isStringDomain(source.address) ? source.address : source.name;
619
+ if (this.name && nameTheSourceClassified && areEquivalentCommunityAddresses(this.name, nameTheSourceClassified)) {
561
620
  if (typeof source.nameResolved === "boolean")
562
621
  this.nameResolved = source.nameResolved;
563
622
  }
564
- else
623
+ else if (this.name && nameBeforeMirror && areEquivalentCommunityAddresses(this.name, nameBeforeMirror))
565
624
  this.nameResolved = nameResolvedBeforeMirror;
625
+ else
626
+ this.nameResolved = undefined;
566
627
  }
567
628
  // Deliberately synchronous: the caller checks registry membership immediately before attaching
568
629
  // the listeners this builds, and any await between the check and the attach opens a microtask
@@ -573,7 +634,13 @@ export class RemoteCommunity extends TypedEmitter {
573
634
  return {
574
635
  community: communityInstance,
575
636
  update: () => {
637
+ if (communityInstance.raw.communityIpfs && communityInstance.updateCid) {
638
+ const nameMismatch = this._findRecordNameMismatch(communityInstance.raw.communityIpfs);
639
+ if (nameMismatch)
640
+ return this._refuseRecordWithMismatchedName(nameMismatch, communityInstance.raw.communityIpfs);
641
+ }
576
642
  const nameResolvedBeforeMirror = this.nameResolved;
643
+ const nameBeforeMirror = this.name;
577
644
  if (!communityInstance.raw.communityIpfs || !communityInstance.updateCid) {
578
645
  if (communityInstance.publicKey)
579
646
  this._clearDataForKeyMigration(communityInstance.publicKey);
@@ -582,7 +649,7 @@ export class RemoteCommunity extends TypedEmitter {
582
649
  this.initCommunityIpfsPropsNoMerge(communityInstance.raw.communityIpfs);
583
650
  this.updateCid = communityInstance.updateCid;
584
651
  }
585
- this._adoptMirroredNameResolved(communityInstance, nameResolvedBeforeMirror);
652
+ this._adoptMirroredNameResolved(communityInstance, nameResolvedBeforeMirror, nameBeforeMirror);
586
653
  log(`Remote Community instance`, this.address, `received update event from pkc._updatingCommunities[${this.address}] with updatedAt`, this.updatedAt, "that's", timestamp() - this.updatedAt, "seconds old");
587
654
  this.emit("update", this);
588
655
  },
@@ -617,6 +684,10 @@ export class RemoteCommunity extends TypedEmitter {
617
684
  ? { name: this.address, publicKey: this.publicKey }
618
685
  : { address: this.address };
619
686
  const updatingCommunity = await this._pkc.createCommunity(createOpts);
687
+ if (this._nameToResolveBeforeFirstRecord &&
688
+ updatingCommunity instanceof RemoteCommunity &&
689
+ !updatingCommunity.raw.communityIpfs)
690
+ updatingCommunity._nameToResolveBeforeFirstRecord = this._nameToResolveBeforeFirstRecord;
620
691
  communityInstance = trackUpdatingCommunity(this._pkc, updatingCommunity);
621
692
  log("Creating a new entry for this._pkc._updatingCommunities", this.address);
622
693
  }
@@ -669,8 +740,11 @@ export class RemoteCommunity extends TypedEmitter {
669
740
  if (communityInstance.raw.communityIpfs &&
670
741
  (this.updatedAt ?? 0) < communityInstance.raw.communityIpfs.updatedAt &&
671
742
  this._updatingCommunityInstanceWithListeners) {
743
+ const updatedAtBeforeReplay = this.updatedAt;
672
744
  this._updatingCommunityInstanceWithListeners.update(communityInstance);
673
- return true; // the replay emitted "update"; update() must not emit again for the same record
745
+ // A record refused for its name emits "error" instead and leaves the warm-started record in
746
+ // place, which update() still has to announce
747
+ return this.updatedAt !== updatedAtBeforeReplay; // the replay emitted "update"; update() must not emit again for the same record
674
748
  }
675
749
  return false;
676
750
  }
@@ -757,6 +831,8 @@ export class RemoteCommunity extends TypedEmitter {
757
831
  throw new PKCError("ERR_CALLED_COMMUNITY_STOP_WITHOUT_UPDATE", { address: this.address });
758
832
  const log = Logger("pkc-js:remote-community:stop");
759
833
  this._abortStopOperations(`Aborting community operations for ${this.address} because community.stop() was called`);
834
+ // The next update() is a new run whose listeners have not been told about any refused record
835
+ this._lastRefusedRecordUpdatedAt = undefined;
760
836
  if (this._updatingCommunityInstanceWithListeners)
761
837
  await this._cleanUpUpdatingCommunityInstanceWithListeners();
762
838
  else {