@centrifuge/sdk 0.55.2 → 1.0.1

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 (183) hide show
  1. package/README.md +2 -2
  2. package/dist/Centrifuge.d.ts +6910 -22
  3. package/dist/Centrifuge.d.ts.map +1 -1
  4. package/dist/Centrifuge.js +139 -160
  5. package/dist/Centrifuge.js.map +1 -1
  6. package/dist/Centrifuge.test.js +24 -26
  7. package/dist/Centrifuge.test.js.map +1 -1
  8. package/dist/abi/Accounting.abi.d.ts +1 -1
  9. package/dist/abi/Accounting.abi.d.ts.map +1 -1
  10. package/dist/abi/Accounting.abi.js +23 -24
  11. package/dist/abi/Accounting.abi.js.map +1 -1
  12. package/dist/abi/AsyncRequestManager.abi.d.ts +1 -1
  13. package/dist/abi/AsyncRequestManager.abi.js +18 -18
  14. package/dist/abi/AsyncRequestManager.abi.js.map +1 -1
  15. package/dist/abi/AsyncVault.abi.d.ts +1 -1
  16. package/dist/abi/AsyncVault.abi.d.ts.map +1 -1
  17. package/dist/abi/AsyncVault.abi.js +1 -2
  18. package/dist/abi/AsyncVault.abi.js.map +1 -1
  19. package/dist/abi/BalanceSheet.abi.d.ts +1 -1
  20. package/dist/abi/BalanceSheet.abi.d.ts.map +1 -1
  21. package/dist/abi/BalanceSheet.abi.js +21 -20
  22. package/dist/abi/BalanceSheet.abi.js.map +1 -1
  23. package/dist/abi/BatchRequestManager.abi.d.ts +3 -0
  24. package/dist/abi/BatchRequestManager.abi.d.ts.map +1 -0
  25. package/dist/abi/BatchRequestManager.abi.js +74 -0
  26. package/dist/abi/BatchRequestManager.abi.js.map +1 -0
  27. package/dist/abi/GasService.abi.d.ts +1 -1
  28. package/dist/abi/GasService.abi.d.ts.map +1 -1
  29. package/dist/abi/GasService.abi.js +10 -6
  30. package/dist/abi/GasService.abi.js.map +1 -1
  31. package/dist/abi/Gateway.abi.d.ts +1 -1
  32. package/dist/abi/Gateway.abi.d.ts.map +1 -1
  33. package/dist/abi/Gateway.abi.js +33 -27
  34. package/dist/abi/Gateway.abi.js.map +1 -1
  35. package/dist/abi/Holdings.abi.d.ts +1 -1
  36. package/dist/abi/Holdings.abi.d.ts.map +1 -1
  37. package/dist/abi/Holdings.abi.js +10 -5
  38. package/dist/abi/Holdings.abi.js.map +1 -1
  39. package/dist/abi/Hub.abi.d.ts +1 -1
  40. package/dist/abi/Hub.abi.d.ts.map +1 -1
  41. package/dist/abi/Hub.abi.js +40 -38
  42. package/dist/abi/Hub.abi.js.map +1 -1
  43. package/dist/abi/HubRegistry.abi.d.ts +1 -1
  44. package/dist/abi/HubRegistry.abi.d.ts.map +1 -1
  45. package/dist/abi/HubRegistry.abi.js +22 -19
  46. package/dist/abi/HubRegistry.abi.js.map +1 -1
  47. package/dist/abi/MerkleProofManager.abi.d.ts.map +1 -1
  48. package/dist/abi/MerkleProofManager.abi.js +2 -4
  49. package/dist/abi/MerkleProofManager.abi.js.map +1 -1
  50. package/dist/abi/MessageDispatcher.abi.d.ts.map +1 -1
  51. package/dist/abi/MessageDispatcher.abi.js +44 -38
  52. package/dist/abi/MessageDispatcher.abi.js.map +1 -1
  53. package/dist/abi/MultiAdapter.abi.d.ts +1 -1
  54. package/dist/abi/MultiAdapter.abi.d.ts.map +1 -1
  55. package/dist/abi/MultiAdapter.abi.js +14 -28
  56. package/dist/abi/MultiAdapter.abi.js.map +1 -1
  57. package/dist/abi/NAVManager.abi.d.ts +3 -0
  58. package/dist/abi/NAVManager.abi.d.ts.map +1 -0
  59. package/dist/abi/NAVManager.abi.js +41 -0
  60. package/dist/abi/NAVManager.abi.js.map +1 -0
  61. package/dist/abi/OnOffRampManager.abi.d.ts +1 -1
  62. package/dist/abi/OnOffRampManager.abi.d.ts.map +1 -1
  63. package/dist/abi/OnOffRampManager.abi.js +18 -20
  64. package/dist/abi/OnOffRampManager.abi.js.map +1 -1
  65. package/dist/abi/PoolEscrow.abi.d.ts +1 -1
  66. package/dist/abi/PoolEscrow.abi.d.ts.map +1 -1
  67. package/dist/abi/PoolEscrow.abi.js +1 -2
  68. package/dist/abi/PoolEscrow.abi.js.map +1 -1
  69. package/dist/abi/QueueManager.abi.d.ts +3 -0
  70. package/dist/abi/QueueManager.abi.d.ts.map +1 -0
  71. package/dist/abi/QueueManager.abi.js +21 -0
  72. package/dist/abi/QueueManager.abi.js.map +1 -0
  73. package/dist/abi/ShareClassManager.abi.d.ts +1 -1
  74. package/dist/abi/ShareClassManager.abi.d.ts.map +1 -1
  75. package/dist/abi/ShareClassManager.abi.js +11 -62
  76. package/dist/abi/ShareClassManager.abi.js.map +1 -1
  77. package/dist/abi/Spoke.abi.d.ts +1 -1
  78. package/dist/abi/Spoke.abi.d.ts.map +1 -1
  79. package/dist/abi/Spoke.abi.js +25 -21
  80. package/dist/abi/Spoke.abi.js.map +1 -1
  81. package/dist/abi/SyncManager.abi.d.ts +3 -0
  82. package/dist/abi/SyncManager.abi.d.ts.map +1 -0
  83. package/dist/abi/{SyncRequestManager.abi.js → SyncManager.abi.js} +10 -26
  84. package/dist/abi/SyncManager.abi.js.map +1 -0
  85. package/dist/abi/Valuation.abi.d.ts +1 -1
  86. package/dist/abi/Valuation.abi.d.ts.map +1 -1
  87. package/dist/abi/Valuation.abi.js +4 -1
  88. package/dist/abi/Valuation.abi.js.map +1 -1
  89. package/dist/abi/VaultRegistry.abi.d.ts +3 -0
  90. package/dist/abi/VaultRegistry.abi.d.ts.map +1 -0
  91. package/dist/abi/VaultRegistry.abi.js +35 -0
  92. package/dist/abi/VaultRegistry.abi.js.map +1 -0
  93. package/dist/abi/VaultRouter.abi.d.ts +1 -1
  94. package/dist/abi/VaultRouter.abi.d.ts.map +1 -1
  95. package/dist/abi/VaultRouter.abi.js +3 -0
  96. package/dist/abi/VaultRouter.abi.js.map +1 -1
  97. package/dist/abi/index.d.ts +1805 -1802
  98. package/dist/abi/index.d.ts.map +1 -1
  99. package/dist/abi/index.js +9 -5
  100. package/dist/abi/index.js.map +1 -1
  101. package/dist/entities/BalanceSheet.d.ts +8 -8
  102. package/dist/entities/BalanceSheet.d.ts.map +1 -1
  103. package/dist/entities/BalanceSheet.js +23 -21
  104. package/dist/entities/BalanceSheet.js.map +1 -1
  105. package/dist/entities/BalanceSheet.test.js +9 -4
  106. package/dist/entities/BalanceSheet.test.js.map +1 -1
  107. package/dist/entities/Investor.d.ts +11 -9
  108. package/dist/entities/Investor.d.ts.map +1 -1
  109. package/dist/entities/Investor.js +28 -35
  110. package/dist/entities/Investor.js.map +1 -1
  111. package/dist/entities/Investor.test.js +1 -1
  112. package/dist/entities/Investor.test.js.map +1 -1
  113. package/dist/entities/MerkleProofManager.d.ts +1 -2
  114. package/dist/entities/MerkleProofManager.d.ts.map +1 -1
  115. package/dist/entities/MerkleProofManager.js +24 -25
  116. package/dist/entities/MerkleProofManager.js.map +1 -1
  117. package/dist/entities/MerkleProofManager.test.js +10 -10
  118. package/dist/entities/MerkleProofManager.test.js.map +1 -1
  119. package/dist/entities/OnOffRampManager.d.ts.map +1 -1
  120. package/dist/entities/OnOffRampManager.js +35 -39
  121. package/dist/entities/OnOffRampManager.js.map +1 -1
  122. package/dist/entities/OnOffRampManager.test.js +14 -10
  123. package/dist/entities/OnOffRampManager.test.js.map +1 -1
  124. package/dist/entities/Pool.d.ts +33 -11
  125. package/dist/entities/Pool.d.ts.map +1 -1
  126. package/dist/entities/Pool.js +132 -65
  127. package/dist/entities/Pool.js.map +1 -1
  128. package/dist/entities/Pool.test.js +35 -12
  129. package/dist/entities/Pool.test.js.map +1 -1
  130. package/dist/entities/PoolNetwork.d.ts +26 -5
  131. package/dist/entities/PoolNetwork.d.ts.map +1 -1
  132. package/dist/entities/PoolNetwork.js +154 -115
  133. package/dist/entities/PoolNetwork.js.map +1 -1
  134. package/dist/entities/PoolNetwork.test.js +40 -34
  135. package/dist/entities/PoolNetwork.test.js.map +1 -1
  136. package/dist/entities/Reports/PoolSharePricesReport.d.ts.map +1 -1
  137. package/dist/entities/Reports/PoolSharePricesReport.js +3 -2
  138. package/dist/entities/Reports/PoolSharePricesReport.js.map +1 -1
  139. package/dist/entities/Reports/PoolSharePricesReport.test.js +1 -1
  140. package/dist/entities/Reports/PoolSharePricesReport.test.js.map +1 -1
  141. package/dist/entities/ShareClass.d.ts +59 -49
  142. package/dist/entities/ShareClass.d.ts.map +1 -1
  143. package/dist/entities/ShareClass.js +384 -304
  144. package/dist/entities/ShareClass.js.map +1 -1
  145. package/dist/entities/ShareClass.test.js +36 -32
  146. package/dist/entities/ShareClass.test.js.map +1 -1
  147. package/dist/entities/Vault.d.ts +1 -1
  148. package/dist/entities/Vault.d.ts.map +1 -1
  149. package/dist/entities/Vault.js +68 -55
  150. package/dist/entities/Vault.js.map +1 -1
  151. package/dist/entities/Vault.test.js +10 -10
  152. package/dist/entities/Vault.test.js.map +1 -1
  153. package/dist/tests/mocks/mockPoolMetadata.js +2 -2
  154. package/dist/tests/mocks/mockPoolMetadata.js.map +1 -1
  155. package/dist/types/index.d.ts +17 -2
  156. package/dist/types/index.d.ts.map +1 -1
  157. package/dist/types/transaction.d.ts +24 -32
  158. package/dist/types/transaction.d.ts.map +1 -1
  159. package/dist/types/transaction.js +26 -32
  160. package/dist/types/transaction.js.map +1 -1
  161. package/dist/utils/index.d.ts +7 -0
  162. package/dist/utils/index.d.ts.map +1 -1
  163. package/dist/utils/index.js +16 -0
  164. package/dist/utils/index.js.map +1 -1
  165. package/dist/utils/permit.d.ts +1 -1
  166. package/dist/utils/permit.d.ts.map +1 -1
  167. package/dist/utils/permit.js +11 -7
  168. package/dist/utils/permit.js.map +1 -1
  169. package/dist/utils/rx.d.ts +2 -1
  170. package/dist/utils/rx.d.ts.map +1 -1
  171. package/dist/utils/rx.js +2 -2
  172. package/dist/utils/rx.js.map +1 -1
  173. package/dist/utils/transaction.d.ts +2 -1
  174. package/dist/utils/transaction.d.ts.map +1 -1
  175. package/dist/utils/transaction.js +4 -3
  176. package/dist/utils/transaction.js.map +1 -1
  177. package/dist/utils/types.d.ts +10 -5
  178. package/dist/utils/types.d.ts.map +1 -1
  179. package/dist/utils/types.js.map +1 -1
  180. package/package.json +1 -1
  181. package/dist/abi/SyncRequestManager.abi.d.ts +0 -3
  182. package/dist/abi/SyncRequestManager.abi.d.ts.map +0 -1
  183. package/dist/abi/SyncRequestManager.abi.js.map +0 -1
@@ -1,9 +1,9 @@
1
1
  import { combineLatest, defer, EMPTY, firstValueFrom, map, of, switchMap } from 'rxjs';
2
- import { encodeFunctionData, encodePacked, getContract, maxUint128 } from 'viem';
2
+ import { encodeFunctionData, getContract, maxUint128 } from 'viem';
3
3
  import { ABI } from '../abi/index.js';
4
4
  import { NULL_ADDRESS } from '../constants.js';
5
5
  import { MessageType, VaultUpdateKind } from '../types/transaction.js';
6
- import { addressToBytes32 } from '../utils/index.js';
6
+ import { addressToBytes32, encode } from '../utils/index.js';
7
7
  import { repeatOnEvents } from '../utils/rx.js';
8
8
  import { doTransaction, wrapTransaction } from '../utils/transaction.js';
9
9
  import { BalanceSheet } from './BalanceSheet.js';
@@ -11,17 +11,22 @@ import { Entity } from './Entity.js';
11
11
  import { MerkleProofManager } from './MerkleProofManager.js';
12
12
  import { OnOffRampManager } from './OnOffRampManager.js';
13
13
  import { ShareClass } from './ShareClass.js';
14
+ export var VaultManagerTrustedCall;
15
+ (function (VaultManagerTrustedCall) {
16
+ VaultManagerTrustedCall[VaultManagerTrustedCall["Valuation"] = 0] = "Valuation";
17
+ VaultManagerTrustedCall[VaultManagerTrustedCall["MaxReserve"] = 1] = "MaxReserve";
18
+ })(VaultManagerTrustedCall || (VaultManagerTrustedCall = {}));
14
19
  /**
15
20
  * Query and interact with a pool on a specific network.
16
21
  */
17
22
  export class PoolNetwork extends Entity {
18
23
  pool;
19
- chainId;
24
+ centrifugeId;
20
25
  /** @internal */
21
- constructor(_root, pool, chainId) {
22
- super(_root, ['poolnetwork', pool.id.toString(), chainId]);
26
+ constructor(_root, pool, centrifugeId) {
27
+ super(_root, ['poolnetwork', pool.id.toString(), centrifugeId]);
23
28
  this.pool = pool;
24
- this.chainId = chainId;
29
+ this.centrifugeId = centrifugeId;
25
30
  }
26
31
  /**
27
32
  * Query the details of the pool on a network.
@@ -59,7 +64,7 @@ export class PoolNetwork extends Entity {
59
64
  * @param scId - The share class ID
60
65
  */
61
66
  shareCurrency(scId) {
62
- return this._query(['shareCurrency', scId.toString()], () => this._share(scId).pipe(switchMap((share) => this._root.currency(share, this.chainId))));
67
+ return this._query(['shareCurrency', scId.toString()], () => this._share(scId).pipe(switchMap((share) => this._root.currency(share, this.centrifugeId))));
63
68
  }
64
69
  /**
65
70
  * Get the deployed Vaults for a given share class. There may exist one Vault for each allowed investment currency.
@@ -68,7 +73,7 @@ export class PoolNetwork extends Entity {
68
73
  * @param includeUnlinked - Whether to include unlinked vaults
69
74
  */
70
75
  vaults(scId, includeUnlinked = false) {
71
- return this._query(['vaults', scId.toString(), includeUnlinked.toString()], () => this._root.pool(this.pool.id).pipe(switchMap((pool) => pool.shareClass(scId)), switchMap((shareClass) => shareClass.vaults(this.chainId, includeUnlinked))));
76
+ return this._query(['vaults', scId.toString(), includeUnlinked.toString()], () => this._root.pool(this.pool.id).pipe(switchMap((pool) => pool.shareClass(scId)), switchMap((shareClass) => shareClass.vaults(this.centrifugeId, includeUnlinked))));
72
77
  }
73
78
  /**
74
79
  * Get a specific Vault for a given share class and investment currency.
@@ -92,8 +97,8 @@ export class PoolNetwork extends Entity {
92
97
  * and doesn't indicate whether any vaults have been deployed.
93
98
  */
94
99
  isActive() {
95
- return this._query(['isActive'], () => this._root._protocolAddresses(this.chainId).pipe(switchMap(({ spoke }) => {
96
- return defer(() => this._root.getClient(this.chainId).readContract({
100
+ return this._query(['isActive'], () => combineLatest([this._root._protocolAddresses(this.centrifugeId), this._root.getClient(this.centrifugeId)]).pipe(switchMap(([{ spoke }, client]) => {
101
+ return defer(() => client.readContract({
97
102
  address: spoke,
98
103
  abi: ABI.Spoke,
99
104
  functionName: 'isPoolActive',
@@ -106,23 +111,23 @@ export class PoolNetwork extends Entity {
106
111
  return event.args.poolId === this.pool.id;
107
112
  });
108
113
  },
109
- }, this.chainId));
114
+ }, this.centrifugeId));
110
115
  })));
111
116
  }
112
117
  merkleProofManager() {
113
- return this._query(['merkleProofManager'], () => this._root.id(this.chainId).pipe(switchMap((centrifugeId) => this._root._queryIndexer(`query ($poolId: BigInt!, $centrifugeId: String!) {
114
- merkleProofManagers(where: {poolId: $poolId, centrifugeId: $centrifugeId}) {
115
- items {
116
- address
117
- }
118
- }
119
- }`, { poolId: this.pool.id.toString(), centrifugeId: centrifugeId.toString() }, (data) => {
118
+ return this._query(['merkleProofManager'], () => this._root._queryIndexer(`query ($poolId: BigInt!, $centrifugeId: String!) {
119
+ merkleProofManagers(where: {poolId: $poolId, centrifugeId: $centrifugeId}) {
120
+ items {
121
+ address
122
+ }
123
+ }
124
+ }`, { poolId: this.pool.id.toString(), centrifugeId: this.centrifugeId.toString() }, (data) => {
120
125
  const manager = data.merkleProofManagers.items[0];
121
126
  if (!manager) {
122
127
  throw new Error('MerkleProofManager not found');
123
128
  }
124
129
  return new MerkleProofManager(this._root, this, manager.address);
125
- }))));
130
+ }));
126
131
  }
127
132
  /**
128
133
  * Deploy a Merkle Proof Manager.
@@ -130,14 +135,14 @@ export class PoolNetwork extends Entity {
130
135
  deployMerkleProofManager() {
131
136
  const self = this;
132
137
  return this._transact(async function* (ctx) {
133
- const { merkleProofManagerFactory } = await self._root._protocolAddresses(self.chainId);
138
+ const { merkleProofManagerFactory } = await self._root._protocolAddresses(self.centrifugeId);
134
139
  yield* doTransaction('AddMerkleProofManager', ctx, () => ctx.walletClient.writeContract({
135
140
  address: merkleProofManagerFactory,
136
141
  abi: ABI.MerkleProofManagerFactory,
137
142
  functionName: 'newManager',
138
143
  args: [self.pool.id.raw],
139
144
  }));
140
- }, self.chainId);
145
+ }, self.centrifugeId);
141
146
  }
142
147
  /**
143
148
  * Get the OnOffRampManager for a given share class.
@@ -146,26 +151,28 @@ export class PoolNetwork extends Entity {
146
151
  */
147
152
  onOfframpManager(scId) {
148
153
  return this._query(null, () => combineLatest([
149
- this._root.id(this.chainId).pipe(switchMap((centrifugeId) => this._root._queryIndexer(`query ($scId: String!, $centrifugeId: String!) {
150
- onOffRampManagers(where: {tokenId: $scId, centrifugeId: $centrifugeId}) {
151
- items {
152
- address
153
- }
154
- }
155
- }`, {
154
+ this._root._queryIndexer(`query ($scId: String!, $centrifugeId: String!) {
155
+ onOffRampManagers(where: {tokenId: $scId, centrifugeId: $centrifugeId}) {
156
+ items {
157
+ address
158
+ }
159
+ }
160
+ }`, {
156
161
  scId: scId.toString(),
157
- centrifugeId: centrifugeId.toString(),
158
- }, (data) => data.onOffRampManagers.items))),
162
+ centrifugeId: this.centrifugeId.toString(),
163
+ }, (data) => data.onOffRampManagers.items),
159
164
  this.pool.balanceSheetManagers(),
160
- ]).pipe(map(([deployedOnOffRampManager, balanceSheetManagers]) => {
161
- const onoffRampManager = deployedOnOffRampManager[0];
162
- if (!onoffRampManager) {
165
+ ]).pipe(map(([deployedOnOffRampManagers, balanceSheetManagers]) => {
166
+ if (!deployedOnOffRampManagers.length) {
163
167
  throw new Error('OnOffRampManager not found');
164
168
  }
165
- const verifiedManager = balanceSheetManagers.find((manager) => manager.address.toLowerCase() === onoffRampManager.address.toLowerCase());
166
- if (!verifiedManager) {
169
+ const bsManagerAddresses = new Set(balanceSheetManagers.map((m) => m.address.toLowerCase()));
170
+ const verifiedManagers = deployedOnOffRampManagers.filter((deployed) => bsManagerAddresses.has(deployed.address.toLowerCase()));
171
+ if (!verifiedManagers.length) {
167
172
  throw new Error('OnOffRampManager not found in balance sheet managers');
168
173
  }
174
+ // Use the last verified manager (most recent deployment)
175
+ const verifiedManager = verifiedManagers[verifiedManagers.length - 1];
169
176
  return new OnOffRampManager(this._root, this, new ShareClass(this._root, this.pool, scId.raw), verifiedManager.address);
170
177
  })));
171
178
  }
@@ -177,16 +184,16 @@ export class PoolNetwork extends Entity {
177
184
  const self = this;
178
185
  return this._transact(() => {
179
186
  return combineLatest([
180
- this._root.id(this.chainId).pipe(switchMap((centrifugeId) => this._root._queryIndexer(`query ($scId: String!, $centrifugeId: String!) {
181
- onOffRampManagers(where: {tokenId: $scId, centrifugeId: $centrifugeId}) {
182
- items {
183
- address
184
- }
185
- }
186
- }`, {
187
+ this._root._queryIndexer(`query ($scId: String!, $centrifugeId: String!) {
188
+ onOffRampManagers(where: {tokenId: $scId, centrifugeId: $centrifugeId}) {
189
+ items {
190
+ address
191
+ }
192
+ }
193
+ }`, {
187
194
  scId: scId.toString(),
188
- centrifugeId: centrifugeId.toString(),
189
- }, (data) => data.onOffRampManagers.items))),
195
+ centrifugeId: this.centrifugeId.toString(),
196
+ }, (data) => data.onOffRampManagers.items),
190
197
  this.pool.balanceSheetManagers(),
191
198
  ]).pipe(switchMap(([deployedOnOffRampManager, balanceSheetManagers]) => {
192
199
  const bsManagers = new Map();
@@ -198,7 +205,7 @@ export class PoolNetwork extends Entity {
198
205
  return bsManagers.has(onOffRampManager.address.toLowerCase()) === false;
199
206
  })
200
207
  .map((onOffRampManager) => ({
201
- chainId: self.chainId,
208
+ centrifugeId: self.centrifugeId,
202
209
  address: onOffRampManager.address,
203
210
  canManage: true,
204
211
  }));
@@ -207,71 +214,134 @@ export class PoolNetwork extends Entity {
207
214
  }
208
215
  return this.pool.updateBalanceSheetManagers(onOffRampManagers);
209
216
  }));
210
- }, this.pool.chainId);
217
+ }, this.centrifugeId);
211
218
  }
212
219
  deployOnOfframpManager(scId) {
213
220
  const self = this;
214
221
  return this._transact(async function* (ctx) {
215
- const { onOfframpManagerFactory } = await self._root._protocolAddresses(self.chainId);
222
+ const { onOfframpManagerFactory } = await self._root._protocolAddresses(self.centrifugeId);
216
223
  yield* doTransaction('DeployOnOfframpManager', ctx, () => ctx.walletClient.writeContract({
217
224
  address: onOfframpManagerFactory,
218
225
  abi: ABI.OnOffRampManagerFactory,
219
226
  functionName: 'newManager',
220
227
  args: [self.pool.id.raw, scId.raw],
221
228
  }));
222
- }, self.chainId);
229
+ }, self.centrifugeId);
230
+ }
231
+ /**
232
+ * Enable share classes on this network.
233
+ * @param shareClasses - An array of share classes to enable
234
+ */
235
+ deployShareClasses(shareClasses) {
236
+ return this.deploy(shareClasses, []);
237
+ }
238
+ /**
239
+ * Deploy vaults for share classes that are already enabled on this network.
240
+ * @param vaults - An array of vaults to deploy
241
+ */
242
+ deployVaults(vaults) {
243
+ return this.deploy([], vaults);
223
244
  }
224
245
  /**
225
246
  * Enable and deploy share classes/vaults.
226
247
  * @param shareClasses - An array of share classes to enable
227
248
  * @param vaults - An array of vaults to deploy
228
249
  */
229
- deploy(shareClasses = [], vaults = []) {
250
+ deploy(shareClasses, vaults) {
230
251
  const self = this;
231
252
  return this._transact(async function* (ctx) {
232
- const [{ hub }, { balanceSheet, syncDepositVaultFactory, asyncVaultFactory, syncManager, asyncRequestManager }, id, details,] = await Promise.all([
233
- self._root._protocolAddresses(self.pool.chainId),
234
- self._root._protocolAddresses(self.chainId),
235
- self._root.id(self.chainId),
253
+ const [{ hub, layerZeroAdapter: localLzAdapter, wormholeAdapter: localWhAdapter }, { spoke, balanceSheet, syncDepositVaultFactory, asyncVaultFactory, syncManager, asyncRequestManager, batchRequestManager, layerZeroAdapter: remoteLzAdapter, wormholeAdapter: remoteWhAdapter, }, details, spokeClient,] = await Promise.all([
254
+ self._root._protocolAddresses(self.pool.centrifugeId),
255
+ self._root._protocolAddresses(self.centrifugeId),
236
256
  self.details(),
257
+ self._root.getClient(self.centrifugeId),
237
258
  ]);
238
259
  const balanceSheetContract = getContract({
239
- client: ctx.publicClient,
260
+ client: spokeClient,
240
261
  address: balanceSheet,
241
262
  abi: ABI.BalanceSheet,
242
263
  });
243
- const [isAsyncManagerSet, isSyncManagerSet] = await Promise.all([
264
+ const [isAsyncManagerSetOnBalanceSheet, isSyncManagerSetOnBalanceSheet, existingRequestManager] = await Promise.all([
244
265
  balanceSheetContract.read.manager([self.pool.id.raw, asyncRequestManager]),
245
266
  balanceSheetContract.read.manager([self.pool.id.raw, syncManager]),
267
+ spokeClient.readContract({
268
+ address: spoke,
269
+ abi: ABI.Spoke,
270
+ functionName: 'requestManager',
271
+ args: [self.pool.id.raw],
272
+ }),
246
273
  ]);
247
274
  const batch = [];
248
275
  const messageTypes = [];
249
276
  // Set vault managers as balance sheet managers if not already set
250
277
  // Always set async manager, as it's used by both async and sync deposit vaults
251
- if (!isAsyncManagerSet) {
278
+ if (!isAsyncManagerSetOnBalanceSheet) {
252
279
  batch.push(encodeFunctionData({
253
280
  abi: ABI.Hub,
254
281
  functionName: 'updateBalanceSheetManager',
255
- args: [id, self.pool.id.raw, addressToBytes32(asyncRequestManager), true],
282
+ args: [
283
+ self.pool.id.raw,
284
+ self.centrifugeId,
285
+ addressToBytes32(asyncRequestManager),
286
+ true,
287
+ ctx.signingAddress,
288
+ ],
256
289
  }));
257
290
  messageTypes.push(MessageType.UpdateBalanceSheetManager);
258
291
  }
259
- if (!isSyncManagerSet && vaults.some((v) => v.kind === 'syncDeposit')) {
292
+ if (!isSyncManagerSetOnBalanceSheet && vaults.some((v) => v.kind === 'syncDeposit')) {
260
293
  batch.push(encodeFunctionData({
261
294
  abi: ABI.Hub,
262
295
  functionName: 'updateBalanceSheetManager',
263
- args: [id, self.pool.id.raw, addressToBytes32(syncManager), true],
296
+ args: [self.pool.id.raw, self.centrifugeId, addressToBytes32(syncManager), true, ctx.signingAddress],
264
297
  }));
265
298
  messageTypes.push(MessageType.UpdateBalanceSheetManager);
266
299
  }
300
+ // notifyPool must come before setRequestManager because setRequestManager sends a message
301
+ // to the Spoke, which calls Spoke.setRequestManager, and that requires isPoolActive == true
267
302
  if (!details.isActive) {
268
303
  batch.push(encodeFunctionData({
269
304
  abi: ABI.Hub,
270
305
  functionName: 'notifyPool',
271
- args: [self.pool.id.raw, id],
306
+ args: [self.pool.id.raw, self.centrifugeId, ctx.signingAddress],
272
307
  }));
273
308
  messageTypes.push(MessageType.NotifyPool);
274
309
  }
310
+ if (details.activeShareClasses.length === 0 &&
311
+ self.pool.centrifugeId !== self.centrifugeId &&
312
+ localLzAdapter &&
313
+ localWhAdapter &&
314
+ remoteLzAdapter &&
315
+ remoteWhAdapter) {
316
+ batch.push(encodeFunctionData({
317
+ abi: ABI.Hub,
318
+ functionName: 'setAdapters',
319
+ args: [
320
+ self.pool.id.raw,
321
+ self.centrifugeId,
322
+ [localLzAdapter, localWhAdapter],
323
+ [remoteLzAdapter, remoteWhAdapter].map(addressToBytes32),
324
+ 2, // threshold
325
+ 2, // recovery index
326
+ ctx.signingAddress,
327
+ ],
328
+ }));
329
+ messageTypes.push(MessageType.SetPoolAdapters);
330
+ }
331
+ if (existingRequestManager === NULL_ADDRESS) {
332
+ batch.push(encodeFunctionData({
333
+ abi: ABI.Hub,
334
+ functionName: 'setRequestManager',
335
+ args: [
336
+ self.pool.id.raw,
337
+ self.centrifugeId,
338
+ batchRequestManager,
339
+ addressToBytes32(asyncRequestManager),
340
+ ctx.signingAddress,
341
+ ],
342
+ }));
343
+ messageTypes.push(MessageType.SetRequestManager);
344
+ }
275
345
  const enabledShareClasses = new Set(details.activeShareClasses.map((sc) => sc.id.raw));
276
346
  for (const sc of shareClasses) {
277
347
  if (details.activeShareClasses.some((activeSc) => activeSc.id.equals(sc.id.raw))) {
@@ -282,23 +352,7 @@ export class PoolNetwork extends Entity {
282
352
  batch.push(encodeFunctionData({
283
353
  abi: ABI.Hub,
284
354
  functionName: 'notifyShareClass',
285
- args: [self.pool.id.raw, sc.id.raw, id, addressToBytes32(sc.hook)],
286
- }));
287
- messageTypes.push(MessageType.NotifyShareClass);
288
- }
289
- const shareClassesNeedingNotification = new Map();
290
- for (const vault of vaults) {
291
- if (!enabledShareClasses.has(vault.shareClassId.raw)) {
292
- const hook = vault.hook ?? NULL_ADDRESS;
293
- shareClassesNeedingNotification.set(vault.shareClassId.raw, hook);
294
- }
295
- }
296
- for (const [shareClassIdRaw, hook] of shareClassesNeedingNotification) {
297
- enabledShareClasses.add(shareClassIdRaw);
298
- batch.push(encodeFunctionData({
299
- abi: ABI.Hub,
300
- functionName: 'notifyShareClass',
301
- args: [self.pool.id.raw, shareClassIdRaw, id, addressToBytes32(hook)],
355
+ args: [self.pool.id.raw, sc.id.raw, self.centrifugeId, addressToBytes32(sc.hook), ctx.signingAddress],
302
356
  }));
303
357
  messageTypes.push(MessageType.NotifyShareClass);
304
358
  }
@@ -306,8 +360,6 @@ export class PoolNetwork extends Entity {
306
360
  if (!enabledShareClasses.has(vault.shareClassId.raw)) {
307
361
  throw new Error(`Share class "${vault.shareClassId.raw}" is not enabled in pool "${self.pool.id.raw}"`);
308
362
  }
309
- const existingShareClass = details.activeShareClasses.find((sc) => sc.id.equals(vault.shareClassId));
310
- const existingVault = existingShareClass?.vaults.find((v) => v.assetId.equals(vault.assetId));
311
363
  const factoryAddress = vault.factory
312
364
  ? vault.factory
313
365
  : vault.kind === 'syncDeposit'
@@ -320,32 +372,18 @@ export class PoolNetwork extends Entity {
320
372
  args: [
321
373
  self.pool.id.raw,
322
374
  vault.shareClassId.raw,
323
- id,
375
+ self.centrifugeId,
324
376
  addressToBytes32(syncManager),
325
- encodePacked(['uint8', 'uint128', 'uint128'], [/* UpdateContractType.SyncDepositMaxReserve */ 2, vault.assetId.raw, maxUint128]),
377
+ encode([VaultManagerTrustedCall.MaxReserve, vault.assetId.raw, maxUint128]),
326
378
  0n,
379
+ ctx.signingAddress,
327
380
  ],
328
381
  }));
329
382
  }
330
- // Only set request manager if vault doesn't already exist
331
- // `setRequestManager` will revert if the share class / asset combination already has a vault
332
- if (!existingVault) {
333
- batch.push(encodeFunctionData({
334
- abi: ABI.Hub,
335
- functionName: 'setRequestManager',
336
- args: [
337
- self.pool.id.raw,
338
- vault.shareClassId.raw,
339
- vault.assetId.raw,
340
- addressToBytes32(asyncRequestManager),
341
- ],
342
- }));
343
- messageTypes.push(MessageType.SetRequestManager);
344
- }
345
383
  batch.push(encodeFunctionData({
346
384
  abi: ABI.Hub,
347
385
  functionName: 'notifyAssetPrice',
348
- args: [self.pool.id.raw, vault.shareClassId.raw, vault.assetId.raw],
386
+ args: [self.pool.id.raw, vault.shareClassId.raw, vault.assetId.raw, ctx.signingAddress],
349
387
  }), encodeFunctionData({
350
388
  abi: ABI.Hub,
351
389
  functionName: 'updateVault',
@@ -356,6 +394,7 @@ export class PoolNetwork extends Entity {
356
394
  addressToBytes32(factoryAddress),
357
395
  VaultUpdateKind.DeployAndLink,
358
396
  0n, // gas limit
397
+ ctx.signingAddress,
359
398
  ],
360
399
  }));
361
400
  messageTypes.push(MessageType.NotifyPricePoolPerAsset, {
@@ -369,9 +408,9 @@ export class PoolNetwork extends Entity {
369
408
  yield* wrapTransaction('Deploy share classes and vaults', ctx, {
370
409
  data: batch,
371
410
  contract: hub,
372
- messages: { [id]: messageTypes },
411
+ messages: { [self.centrifugeId]: messageTypes },
373
412
  });
374
- }, this.pool.chainId);
413
+ }, this.pool.centrifugeId);
375
414
  }
376
415
  /**
377
416
  * Unlink vaults.
@@ -383,9 +422,8 @@ export class PoolNetwork extends Entity {
383
422
  if (vaults.length === 0) {
384
423
  throw new Error('No vaults to unlink');
385
424
  }
386
- const [{ hub }, id, details] = await Promise.all([
387
- self._root._protocolAddresses(self.pool.chainId),
388
- self._root.id(self.chainId),
425
+ const [{ hub }, details] = await Promise.all([
426
+ self._root._protocolAddresses(self.pool.centrifugeId),
389
427
  self.details(),
390
428
  ]);
391
429
  const batch = [];
@@ -409,6 +447,7 @@ export class PoolNetwork extends Entity {
409
447
  addressToBytes32(vault.address),
410
448
  VaultUpdateKind.Unlink,
411
449
  0n, // gas limit
450
+ ctx.signingAddress,
412
451
  ],
413
452
  }));
414
453
  messageTypes.push({ type: MessageType.UpdateVault, subtype: VaultUpdateKind.Unlink });
@@ -416,9 +455,9 @@ export class PoolNetwork extends Entity {
416
455
  yield* wrapTransaction('Unlink vaults', ctx, {
417
456
  data: batch,
418
457
  contract: hub,
419
- messages: { [id]: messageTypes },
458
+ messages: { [self.centrifugeId]: messageTypes },
420
459
  });
421
- }, this.pool.chainId);
460
+ }, this.pool.centrifugeId);
422
461
  }
423
462
  /**
424
463
  * Link vaults that are already deployed but currently unlinked.
@@ -430,9 +469,8 @@ export class PoolNetwork extends Entity {
430
469
  if (vaults.length === 0) {
431
470
  throw new Error('No vaults to link');
432
471
  }
433
- const [{ hub }, id, details] = await Promise.all([
434
- self._root._protocolAddresses(self.pool.chainId),
435
- self._root.id(self.chainId),
472
+ const [{ hub }, details] = await Promise.all([
473
+ self._root._protocolAddresses(self.pool.centrifugeId),
436
474
  self.details(),
437
475
  ]);
438
476
  const shareClassIds = [...new Set(vaults.map((v) => v.shareClassId.raw))];
@@ -461,9 +499,10 @@ export class PoolNetwork extends Entity {
461
499
  self.pool.id.raw,
462
500
  vault.shareClassId.raw,
463
501
  vault.assetId.raw,
464
- addressToBytes32(vault.address),
502
+ addressToBytes32(existingVault.address),
465
503
  VaultUpdateKind.Link,
466
- 0n,
504
+ 0n, // gas limit
505
+ ctx.signingAddress,
467
506
  ],
468
507
  }));
469
508
  messageTypes.push({ type: MessageType.UpdateVault, subtype: VaultUpdateKind.Link });
@@ -471,18 +510,18 @@ export class PoolNetwork extends Entity {
471
510
  yield* wrapTransaction('Link vaults', ctx, {
472
511
  data: batch,
473
512
  contract: hub,
474
- messages: { [id]: messageTypes },
513
+ messages: { [self.centrifugeId]: messageTypes },
475
514
  });
476
- }, this.pool.chainId);
515
+ }, this.pool.centrifugeId);
477
516
  }
478
517
  /**
479
518
  * Get the contract address of the share token.
480
519
  * @internal
481
520
  */
482
521
  _share(scId, throwOnNullAddress = true) {
483
- return this._query(['share', scId.toString(), throwOnNullAddress], () => this._root._protocolAddresses(this.chainId).pipe(switchMap(({ spoke }) => defer(async () => {
522
+ return this._query(['share', scId.toString(), throwOnNullAddress], () => combineLatest([this._root._protocolAddresses(this.centrifugeId), this._root.getClient(this.centrifugeId)]).pipe(switchMap(([{ spoke }, client]) => defer(async () => {
484
523
  try {
485
- const address = await this._root.getClient(this.chainId).readContract({
524
+ const address = await client.readContract({
486
525
  address: spoke,
487
526
  abi: ABI.Spoke,
488
527
  functionName: 'shareToken',
@@ -492,7 +531,7 @@ export class PoolNetwork extends Entity {
492
531
  }
493
532
  catch {
494
533
  if (throwOnNullAddress) {
495
- throw new Error(`Share class ${scId} not found for pool ${this.pool.id} on chain ${this.chainId}`);
534
+ throw new Error(`Share class ${scId} not found for pool ${this.pool.id} on centrifuge network ${this.centrifugeId}`);
496
535
  }
497
536
  return NULL_ADDRESS;
498
537
  }
@@ -502,7 +541,7 @@ export class PoolNetwork extends Entity {
502
541
  filter: (events) => {
503
542
  return events.some((event) => event.args.poolId === this.pool.id.raw && event.args.scId === scId.raw);
504
543
  },
505
- }, this.chainId)))));
544
+ }, this.centrifugeId)))));
506
545
  }
507
546
  /**
508
547
  * Get all Vaults for all share classes in the pool.
@@ -1 +1 @@
1
- {"version":3,"file":"PoolNetwork.js","sourceRoot":"","sources":["../../src/entities/PoolNetwork.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PoolNetwork.js","sourceRoot":"","sources":["../../src/entities/PoolNetwork.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AACtF,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAClE,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,EAAE,WAAW,EAA0B,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,+EAAS,CAAA;IACT,iFAAU,CAAA;AACZ,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC;AAED;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,MAAM;IAI5B;IACA;IAJT,gBAAgB;IAChB,YACE,KAAiB,EACV,IAAU,EACV,YAA0B;QAEjC,KAAK,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC,CAAA;QAHxD,SAAI,GAAJ,IAAI,CAAM;QACV,iBAAY,GAAZ,YAAY,CAAc;IAGnC,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAC9C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAC3B,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YACzB,OAAO,aAAa,CAAC;gBACnB,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,mBAAmB,EAAE;gBAC1B,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;aACvD,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE;gBACrD,OAAO;oBACL,QAAQ;oBACR,kBAAkB,EAAE,YAAY;yBAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC;yBACjD,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;wBACb,OAAO;4BACL,UAAU,EAAE,EAAE;4BACd,EAAE,EAAE,EAAE,CAAC,EAAE;4BACT,UAAU,EAAE,WAAW,CAAC,CAAC,CAAE;4BAC3B,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE;yBAC5C,CAAA;oBACH,CAAC,CAAC;iBACL,CAAA;YACH,CAAC,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CACH,CACF,CAAA;IACH,CAAC;IAED,YAAY,CAAC,IAAkB;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CACzD,EAAE,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CACxF,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,IAAkB;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAC5F,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAkB,EAAE,eAAe,GAAG,KAAK;QAChD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAC/E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAChC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAC1C,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CACjF,CACF,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAkB,EAAE,KAA0B;QAClD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CACpE,aAAa,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACjB,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;SAClG,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;YAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAA;YACnD,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAC9C,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CACH,CACF,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CACpC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAC7G,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YAChC,OAAO,KAAK,CACV,GAAG,EAAE,CACH,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,KAAK;gBACd,GAAG,EAAE,GAAG,CAAC,KAAK;gBACd,YAAY,EAAE,cAAc;gBAC5B,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;aACzB,CAAqB,CACzB,CAAC,IAAI,CACJ,cAAc,CACZ,IAAI,CAAC,KAAK,EACV;gBACE,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;oBACjB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;oBAC3C,CAAC,CAAC,CAAA;gBACJ,CAAC;aACF,EACD,IAAI,CAAC,YAAY,CAClB,CACF,CAAA;QACH,CAAC,CAAC,CACH,CACF,CAAA;IACH,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAC9C,IAAI,CAAC,KAAK,CAAC,aAAa,CACtB;;;;;;UAME,EACF,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,EAC/E,CAAC,IAMA,EAAE,EAAE;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAEjD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;YACjD,CAAC;YAED,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;QAClE,CAAC,CACF,CACF,CAAA;IACH,CAAC;IAED;;OAEG;IACH,wBAAwB;QACtB,MAAM,IAAI,GAAG,IAAI,CAAA;QAEjB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,EAAE,GAAG;YACxC,MAAM,EAAE,yBAAyB,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YAE5F,KAAK,CAAC,CAAC,aAAa,CAAC,uBAAuB,EAAE,GAAG,EAAE,GAAG,EAAE,CACtD,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC;gBAC7B,OAAO,EAAE,yBAAyB;gBAClC,GAAG,EAAE,GAAG,CAAC,yBAAyB;gBAClC,YAAY,EAAE,YAAY;gBAC1B,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;aACzB,CAAC,CACH,CAAA;QACH,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IACvB,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,IAAkB;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAC5B,aAAa,CAAC;YACZ,IAAI,CAAC,KAAK,CAAC,aAAa,CACtB;;;;;;YAME,EACF;gBACE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;gBACrB,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;aAC3C,EACD,CAAC,IAMA,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CACnC;YACD,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;SACjC,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,EAAE,EAAE;YACxD,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;YAC/C,CAAC;YAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;YAC5F,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CACrE,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CACvD,CAAA;YAED,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;YACzE,CAAC;YAED,yDAAyD;YACzD,MAAM,eAAe,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;YAEtE,OAAO,IAAI,gBAAgB,CACzB,IAAI,CAAC,KAAK,EACV,IAAI,EACJ,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAC/C,eAAe,CAAC,OAAO,CACxB,CAAA;QACH,CAAC,CAAC,CACH,CACF,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,iCAAiC,CAAC,IAAkB;QAClD,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;YACzB,OAAO,aAAa,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,aAAa,CACtB;;;;;;YAME,EACF;oBACE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;oBACrB,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;iBAC3C,EACD,CAAC,IAMA,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CACnC;gBACD,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;aACjC,CAAC,CAAC,IAAI,CACL,SAAS,CAAC,CAAC,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,EAAE,EAAE;gBAC7D,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0E,CAAA;gBACpG,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBACvC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAA;gBACxD,CAAC,CAAC,CAAA;gBAEF,MAAM,iBAAiB,GAAG,wBAAwB;qBAC/C,MAAM,CAAC,CAAC,gBAAgB,EAAE,EAAE;oBAC3B,OAAO,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,KAAK,CAAA;gBACzE,CAAC,CAAC;qBACD,GAAG,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;oBAC1B,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,OAAO,EAAE,gBAAgB,CAAC,OAAO;oBACjC,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC,CAAA;gBAEL,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACnC,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,OAAO,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,CAAA;YAChE,CAAC,CAAC,CACH,CAAA;QACH,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IACvB,CAAC;IAED,sBAAsB,CAAC,IAAkB;QACvC,MAAM,IAAI,GAAG,IAAI,CAAA;QAEjB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,EAAE,GAAG;YACxC,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YAE1F,KAAK,CAAC,CAAC,aAAa,CAAC,wBAAwB,EAAE,GAAG,EAAE,GAAG,EAAE,CACvD,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC;gBAC7B,OAAO,EAAE,uBAAuB;gBAChC,GAAG,EAAE,GAAG,CAAC,uBAAuB;gBAChC,YAAY,EAAE,YAAY;gBAC1B,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;aACnC,CAAC,CACH,CAAA;QACH,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IACvB,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,YAAqD;QACtE,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IACtC,CAAC;IAED;;;OAGG;IACH,YAAY,CACV,MAKG;QAEH,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IAChC,CAAC;IAED;;;;OAIG;IACH,MAAM,CACJ,YAAqD,EACrD,MAKG;QAEH,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,EAAE,GAAG;YACxC,MAAM,CACJ,EAAE,GAAG,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,EAC1E,EACE,KAAK,EACL,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAAE,eAAe,EACjC,eAAe,EAAE,eAAe,GACjC,EACD,OAAO,EACP,WAAW,EACZ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;gBACrD,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;gBAChD,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;aACxC,CAAC,CAAA;YACF,MAAM,oBAAoB,GAAG,WAAW,CAAC;gBACvC,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,YAAY;gBACrB,GAAG,EAAE,GAAG,CAAC,YAAY;aACtB,CAAC,CAAA;YACF,MAAM,CAAC,+BAA+B,EAAE,8BAA8B,EAAE,sBAAsB,CAAC,GAC7F,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;gBAC1E,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBAClE,WAAW,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,KAAK;oBACd,GAAG,EAAE,GAAG,CAAC,KAAK;oBACd,YAAY,EAAE,gBAAgB;oBAC9B,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;iBACzB,CAAC;aACH,CAAC,CAAA;YAEJ,MAAM,KAAK,GAAgB,EAAE,CAAA;YAC7B,MAAM,YAAY,GAA6C,EAAE,CAAA;YAEjE,kEAAkE;YAClE,+EAA+E;YAC/E,IAAI,CAAC,+BAA+B,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;oBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,2BAA2B;oBACzC,IAAI,EAAE;wBACJ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;wBAChB,IAAI,CAAC,YAAY;wBACjB,gBAAgB,CAAC,mBAAmB,CAAC;wBACrC,IAAI;wBACJ,GAAG,CAAC,cAAc;qBACnB;iBACF,CAAC,CACH,CAAA;gBACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAA;YAC1D,CAAC;YACD,IAAI,CAAC,8BAA8B,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;gBACpF,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;oBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,2BAA2B;oBACzC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC;iBACrG,CAAC,CACH,CAAA;gBACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAA;YAC1D,CAAC;YAED,0FAA0F;YAC1F,4FAA4F;YAC5F,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;oBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,YAAY;oBAC1B,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,cAAc,CAAC;iBAChE,CAAC,CACH,CAAA;gBACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;YAC3C,CAAC;YACD,IACE,OAAO,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC;gBACvC,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY;gBAC5C,cAAc;gBACd,cAAc;gBACd,eAAe;gBACf,eAAe,EACf,CAAC;gBACD,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;oBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,aAAa;oBAC3B,IAAI,EAAE;wBACJ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;wBAChB,IAAI,CAAC,YAAY;wBACjB,CAAC,cAAc,EAAE,cAAc,CAAC;wBAChC,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC;wBACxD,CAAC,EAAE,YAAY;wBACf,CAAC,EAAE,iBAAiB;wBACpB,GAAG,CAAC,cAAc;qBACnB;iBACF,CAAC,CACH,CAAA;gBACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;YAChD,CAAC;YAED,IAAI,sBAAsB,KAAK,YAAY,EAAE,CAAC;gBAC5C,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;oBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,mBAAmB;oBACjC,IAAI,EAAE;wBACJ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;wBAChB,IAAI,CAAC,YAAY;wBACjB,mBAAmB;wBACnB,gBAAgB,CAAC,mBAAmB,CAAC;wBACrC,GAAG,CAAC,cAAc;qBACnB;iBACF,CAAC,CACH,CAAA;gBACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAA;YAClD,CAAC;YAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;YAEtF,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;gBAC9B,IAAI,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBACjF,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,gCAAgC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;oBAClF,SAAQ;gBACV,CAAC;gBAED,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;gBAClC,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;oBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,kBAAkB;oBAChC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC;iBACtG,CAAC,CACH,CAAA;gBACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;YACjD,CAAC;YAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrD,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,CAAC,YAAY,CAAC,GAAG,6BAA6B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAA;gBACzG,CAAC;gBAED,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO;oBAClC,CAAC,CAAC,KAAK,CAAC,OAAO;oBACf,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa;wBAC5B,CAAC,CAAC,uBAAuB;wBACzB,CAAC,CAAC,iBAAiB,CAAA;gBAEvB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACjC,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;wBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,YAAY,EAAE,gBAAgB;wBAC9B,IAAI,EAAE;4BACJ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;4BAChB,KAAK,CAAC,YAAY,CAAC,GAAG;4BACtB,IAAI,CAAC,YAAY;4BACjB,gBAAgB,CAAC,WAAW,CAAC;4BAC7B,MAAM,CAAC,CAAC,uBAAuB,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;4BAC3E,EAAE;4BACF,GAAG,CAAC,cAAc;yBACnB;qBACF,CAAC,CACH,CAAA;gBACH,CAAC;gBAED,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;oBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,kBAAkB;oBAChC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC;iBACxF,CAAC,EACF,kBAAkB,CAAC;oBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,aAAa;oBAC3B,IAAI,EAAE;wBACJ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;wBAChB,KAAK,CAAC,YAAY,CAAC,GAAG;wBACtB,KAAK,CAAC,OAAO,CAAC,GAAG;wBACjB,gBAAgB,CAAC,cAAc,CAAC;wBAChC,eAAe,CAAC,aAAa;wBAC7B,EAAE,EAAE,YAAY;wBAChB,GAAG,CAAC,cAAc;qBACnB;iBACF,CAAC,CACH,CAAA;gBACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE;oBACrD,IAAI,EAAE,WAAW,CAAC,WAAW;oBAC7B,OAAO,EAAE,eAAe,CAAC,aAAa;iBACvC,CAAC,CAAA;YACJ,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;YACxD,CAAC;YAED,KAAK,CAAC,CAAC,eAAe,CAAC,iCAAiC,EAAE,GAAG,EAAE;gBAC7D,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,GAAG;gBACb,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE;aAChD,CAAC,CAAA;QACJ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC5B,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,MAA8E;QACzF,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,EAAE,GAAG;YACxC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;YACxC,CAAC;YAED,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC3C,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;gBACrD,IAAI,CAAC,OAAO,EAAE;aACf,CAAC,CAAA;YAEF,MAAM,KAAK,GAAgB,EAAE,CAAA;YAC7B,MAAM,YAAY,GAA6B,EAAE,CAAA;YAEjD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAA;gBAE5F,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC,CAAA;gBACtE,CAAC;gBAED,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;gBAE5G,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,CAAC,OAAO,gCAAgC,KAAK,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,CAAA;gBAChH,CAAC;gBAED,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;oBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,aAAa;oBAC3B,IAAI,EAAE;wBACJ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;wBAChB,KAAK,CAAC,YAAY,CAAC,GAAG;wBACtB,KAAK,CAAC,OAAO,CAAC,GAAG;wBACjB,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC;wBAC/B,eAAe,CAAC,MAAM;wBACtB,EAAE,EAAE,YAAY;wBAChB,GAAG,CAAC,cAAc;qBACnB;iBACF,CAAC,CACH,CAAA;gBACD,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC,CAAA;YACvF,CAAC;YAED,KAAK,CAAC,CAAC,eAAe,CAAC,eAAe,EAAE,GAAG,EAAE;gBAC3C,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,GAAG;gBACb,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE;aAChD,CAAC,CAAA;QACJ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC5B,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,MAA8E;QACvF,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,EAAE,GAAG;YACxC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;YACtC,CAAC;YAED,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC3C,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;gBACrD,IAAI,CAAC,OAAO,EAAE;aACf,CAAC,CAAA;YAEF,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACzE,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC1C,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,KAAK,IAAI,CAAC,CAAA;gBAClE,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAA;gBAChE,OAAO,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAC9E,CAAC,CAAC,CACH,CAAA;YACD,MAAM,kBAAkB,GAAG,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAElH,MAAM,KAAK,GAAgB,EAAE,CAAA;YAC7B,MAAM,YAAY,GAA6B,EAAE,CAAA;YAEjD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAA;gBAE5F,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC,CAAA;gBACtE,CAAC;gBAED,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;gBAC/E,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAC/D,CAAA;gBAED,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CACb,uBAAuB,KAAK,CAAC,OAAO,gCAAgC,KAAK,CAAC,YAAY,CAAC,GAAG,wDAAwD,CACnJ,CAAA;gBACH,CAAC;gBAED,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;oBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,aAAa;oBAC3B,IAAI,EAAE;wBACJ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;wBAChB,KAAK,CAAC,YAAY,CAAC,GAAG;wBACtB,KAAK,CAAC,OAAO,CAAC,GAAG;wBACjB,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC;wBACvC,eAAe,CAAC,IAAI;wBACpB,EAAE,EAAE,YAAY;wBAChB,GAAG,CAAC,cAAc;qBACnB;iBACF,CAAC,CACH,CAAA;gBACD,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC,CAAA;YACrF,CAAC;YAED,KAAK,CAAC,CAAC,eAAe,CAAC,aAAa,EAAE,GAAG,EAAE;gBACzC,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,GAAG;gBACb,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE;aAChD,CAAC,CAAA;QACJ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC5B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,IAAkB,EAAE,kBAAkB,GAAG,IAAI;QAClD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,kBAAkB,CAAC,EAAE,GAAG,EAAE,CACtE,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAC7G,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAChC,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;oBACxC,OAAO,EAAE,KAAK;oBACd,GAAG,EAAE,GAAG,CAAC,KAAK;oBACd,YAAY,EAAE,YAAY;oBAC1B,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;iBACnC,CAAC,CAAA;gBACF,OAAO,OAAO,CAAC,WAAW,EAAe,CAAA;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,kBAAkB,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CACb,eAAe,IAAI,uBAAuB,IAAI,CAAC,IAAI,CAAC,EAAE,0BAA0B,IAAI,CAAC,YAAY,EAAE,CACpG,CAAA;gBACH,CAAC;gBACD,OAAO,YAAY,CAAA;YACrB,CAAC;QACH,CAAC,CAAC,CAAC,IAAI,CACL,cAAc,CACZ,IAAI,CAAC,KAAK,EACV;YACE,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,eAAe;YAC1B,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;gBACjB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAA;YACvG,CAAC;SACF,EACD,IAAI,CAAC,YAAY,CAClB,CACF,CACF,CACF,CACF,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAC9C,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAC7B,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;YAEjE,OAAO,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAC/D,GAAG,CAAC,CAAC,mBAAmB,EAAE,EAAE,CAC1B,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAC5F,CACF,CAAA;QACH,CAAC,CAAC,CACH,CACF,CAAA;IACH,CAAC;CACF"}