@lidofinance/lsv-cli 1.0.0-alpha.15 → 1.0.0-alpha.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -19
- package/dist/abi/VaultHub.js +1176 -811
- package/dist/abi/VaultHub.js.map +1 -1
- package/dist/contracts/vault-hub.js +1 -1
- package/dist/contracts/vault-hub.js.map +1 -1
- package/dist/programs/hub/config.js +107 -0
- package/dist/programs/hub/config.js.map +1 -0
- package/dist/programs/hub/index.js +4 -0
- package/dist/programs/hub/index.js.map +1 -0
- package/dist/programs/hub/main.js +12 -0
- package/dist/programs/hub/main.js.map +1 -0
- package/dist/programs/hub/read.js +62 -0
- package/dist/programs/hub/read.js.map +1 -0
- package/dist/programs/hub/write.js +109 -0
- package/dist/programs/hub/write.js.map +1 -0
- package/dist/programs/index.js +1 -1
- package/dist/programs/index.js.map +1 -1
- package/dist/programs/pdg/config.js +96 -1
- package/dist/programs/pdg/config.js.map +1 -1
- package/dist/utils/read-programs-by-abi.js +11 -3
- package/dist/utils/read-programs-by-abi.js.map +1 -1
- package/dist/version/index.js +1 -1
- package/package.json +1 -1
- package/dist/programs/vault-hub.js +0 -324
- package/dist/programs/vault-hub.js.map +0 -1
|
@@ -1,324 +0,0 @@
|
|
|
1
|
-
import { program } from '../command/index.js';
|
|
2
|
-
import { getVaultHubContract } from '../contracts/index.js';
|
|
3
|
-
import { getAccount } from '../providers/index.js';
|
|
4
|
-
import { getChain } from '../configs/index.js';
|
|
5
|
-
import { callWriteMethodWithReceipt, callReadMethod } from '../utils/index.js';
|
|
6
|
-
const vaultHub = program.command('hub').description('vault hub contract');
|
|
7
|
-
// Works fine
|
|
8
|
-
vaultHub
|
|
9
|
-
.command('constants')
|
|
10
|
-
.description('get vault hub constants')
|
|
11
|
-
.action(async () => {
|
|
12
|
-
const contract = await getVaultHubContract();
|
|
13
|
-
try {
|
|
14
|
-
const VAULT_MASTER_ROLE = await contract.read.VAULT_MASTER_ROLE();
|
|
15
|
-
const VAULT_REGISTRY_ROLE = await contract.read.VAULT_REGISTRY_ROLE();
|
|
16
|
-
const STETH = await contract.read.STETH();
|
|
17
|
-
const DEFAULT_ADMIN_ROLE = await contract.read.DEFAULT_ADMIN_ROLE();
|
|
18
|
-
const CONTRACT_ADDRESS = contract.address;
|
|
19
|
-
const payload = {
|
|
20
|
-
VAULT_MASTER_ROLE,
|
|
21
|
-
DEFAULT_ADMIN_ROLE,
|
|
22
|
-
VAULT_REGISTRY_ROLE,
|
|
23
|
-
STETH,
|
|
24
|
-
CONTRACT_ADDRESS,
|
|
25
|
-
};
|
|
26
|
-
console.table(Object.entries(payload));
|
|
27
|
-
}
|
|
28
|
-
catch (err) {
|
|
29
|
-
if (err instanceof Error) {
|
|
30
|
-
console.info('Error when getting info:\n', err.message);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
vaultHub
|
|
35
|
-
.command('add-codehash')
|
|
36
|
-
.description('add vault proxy codehash to allowed list')
|
|
37
|
-
.argument('<codehash>', 'codehash vault proxy codehash')
|
|
38
|
-
.action(async (codehash) => {
|
|
39
|
-
const contract = await getVaultHubContract();
|
|
40
|
-
await callWriteMethodWithReceipt(contract, 'addVaultProxyCodehash', [
|
|
41
|
-
codehash,
|
|
42
|
-
]);
|
|
43
|
-
});
|
|
44
|
-
// Works fine
|
|
45
|
-
vaultHub
|
|
46
|
-
.command('v-count')
|
|
47
|
-
.description('get connected vaults number')
|
|
48
|
-
.action(async () => {
|
|
49
|
-
const contract = await getVaultHubContract();
|
|
50
|
-
const vaultsCount = await callReadMethod(contract, 'vaultsCount');
|
|
51
|
-
console.table({
|
|
52
|
-
'Vaults count': Number(vaultsCount),
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
vaultHub
|
|
56
|
-
.command('vi')
|
|
57
|
-
.description('get vault and vault socket by index')
|
|
58
|
-
.argument('<index>', 'index')
|
|
59
|
-
.action(async (index) => {
|
|
60
|
-
const biIndex = BigInt(index);
|
|
61
|
-
const contract = await getVaultHubContract();
|
|
62
|
-
try {
|
|
63
|
-
const vault = await contract.read.vault([biIndex]);
|
|
64
|
-
const vaultSocket = await contract.read.vaultSocket([biIndex]);
|
|
65
|
-
console.table({
|
|
66
|
-
Vault: vault,
|
|
67
|
-
'Vault Socket': vaultSocket,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
catch (err) {
|
|
71
|
-
if (err instanceof Error) {
|
|
72
|
-
console.info('Error when getting vault:\n', err.message);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
// TODO: check when vault will be connected
|
|
77
|
-
vaultHub
|
|
78
|
-
.command('va')
|
|
79
|
-
.description('get vault socket by address')
|
|
80
|
-
.argument('<address>', 'address')
|
|
81
|
-
.action(async (address) => {
|
|
82
|
-
const contract = await getVaultHubContract();
|
|
83
|
-
const vaultSocket = await callReadMethod(contract, 'vaultSocket', [
|
|
84
|
-
address,
|
|
85
|
-
]);
|
|
86
|
-
console.table({ 'Vault Socket': vaultSocket });
|
|
87
|
-
});
|
|
88
|
-
// TODO: replace by voting
|
|
89
|
-
vaultHub
|
|
90
|
-
.command('v-connect')
|
|
91
|
-
.description('connects a vault to the hub (vault master role needed)')
|
|
92
|
-
.argument('<address>', 'vault address')
|
|
93
|
-
.argument('<shareLimit>', 'maximum number of stETH shares that can be minted by the vault')
|
|
94
|
-
.argument('<reserveRatio>', 'minimum Reserve ratio in basis points')
|
|
95
|
-
.argument('<reserveRatioThreshold>', 'reserve ratio that makes possible to force rebalance on the vault (in basis points)')
|
|
96
|
-
.argument('<treasuryFeeBP>', 'treasury fee in basis points')
|
|
97
|
-
.action(async (address, shareLimit, reserveRatio, reserveRatioThreshold, treasuryFeeBP) => {
|
|
98
|
-
const contract = await getVaultHubContract();
|
|
99
|
-
await callWriteMethodWithReceipt(contract, 'connectVault', [
|
|
100
|
-
address,
|
|
101
|
-
shareLimit,
|
|
102
|
-
reserveRatio,
|
|
103
|
-
reserveRatioThreshold,
|
|
104
|
-
treasuryFeeBP,
|
|
105
|
-
]);
|
|
106
|
-
});
|
|
107
|
-
vaultHub
|
|
108
|
-
.command('v-update-share-limit')
|
|
109
|
-
.description('updates share limit for the vault')
|
|
110
|
-
.argument('<address>', 'vault address')
|
|
111
|
-
.argument('<shareLimit>', 'vault address')
|
|
112
|
-
.action(async (address, shareLimit) => {
|
|
113
|
-
try {
|
|
114
|
-
const contract = await getVaultHubContract();
|
|
115
|
-
const tx = await contract.write.updateShareLimit([address, BigInt(shareLimit)], {
|
|
116
|
-
account: getAccount(),
|
|
117
|
-
chain: getChain(),
|
|
118
|
-
});
|
|
119
|
-
console.table({ Transaction: tx });
|
|
120
|
-
}
|
|
121
|
-
catch (err) {
|
|
122
|
-
if (err instanceof Error) {
|
|
123
|
-
program.error(err.message);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
vaultHub
|
|
128
|
-
.command('v-disconnect')
|
|
129
|
-
.description('force disconnects a vault from the hub')
|
|
130
|
-
.argument('<address>', 'vault address')
|
|
131
|
-
.action(async (address) => {
|
|
132
|
-
try {
|
|
133
|
-
const contract = await getVaultHubContract();
|
|
134
|
-
const tx = await contract.write.disconnect([address], {
|
|
135
|
-
account: getAccount(),
|
|
136
|
-
chain: getChain(),
|
|
137
|
-
});
|
|
138
|
-
console.table({ Transaction: tx });
|
|
139
|
-
}
|
|
140
|
-
catch (err) {
|
|
141
|
-
if (err instanceof Error) {
|
|
142
|
-
program.error(err.message);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
});
|
|
146
|
-
vaultHub
|
|
147
|
-
.command('v-owner-disconnect')
|
|
148
|
-
.description("disconnects a vault from the hub, msg.sender should be vault's owner")
|
|
149
|
-
.argument('<address>', 'vault address')
|
|
150
|
-
.action(async (address) => {
|
|
151
|
-
try {
|
|
152
|
-
const contract = await getVaultHubContract();
|
|
153
|
-
const tx = await contract.write.voluntaryDisconnect([address], {
|
|
154
|
-
account: getAccount(),
|
|
155
|
-
chain: getChain(),
|
|
156
|
-
});
|
|
157
|
-
console.table({ Transaction: tx });
|
|
158
|
-
}
|
|
159
|
-
catch (err) {
|
|
160
|
-
if (err instanceof Error) {
|
|
161
|
-
program.error(err.message);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
vaultHub
|
|
166
|
-
.command('v-bbv-mint')
|
|
167
|
-
.description(' mint StETH shares backed by vault external balance to the receiver address')
|
|
168
|
-
.argument('<address>', 'vault address')
|
|
169
|
-
.argument('<recipient>', 'address of the receiver')
|
|
170
|
-
.argument('<amountOfShares>', 'amount of stETH shares to mint')
|
|
171
|
-
.action(async (address, recipient, amountOfShares) => {
|
|
172
|
-
try {
|
|
173
|
-
const contract = await getVaultHubContract();
|
|
174
|
-
const tx = await contract.write.mintSharesBackedByVault([address, recipient, BigInt(amountOfShares)], {
|
|
175
|
-
account: getAccount(),
|
|
176
|
-
chain: getChain(),
|
|
177
|
-
});
|
|
178
|
-
console.table({ Transaction: tx });
|
|
179
|
-
}
|
|
180
|
-
catch (err) {
|
|
181
|
-
if (err instanceof Error) {
|
|
182
|
-
program.error(err.message);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
});
|
|
186
|
-
vaultHub
|
|
187
|
-
.command('v-bbv-burn')
|
|
188
|
-
.description('burn steth shares from the balance of the VaultHub contract')
|
|
189
|
-
.argument('<address>', 'vault address')
|
|
190
|
-
.argument('<amountOfShares>', 'amount of stETH shares to mint')
|
|
191
|
-
.action(async (address, amountOfShares) => {
|
|
192
|
-
try {
|
|
193
|
-
const contract = await getVaultHubContract();
|
|
194
|
-
const tx = await contract.write.burnSharesBackedByVault([address, BigInt(amountOfShares)], {
|
|
195
|
-
account: getAccount(),
|
|
196
|
-
chain: getChain(),
|
|
197
|
-
});
|
|
198
|
-
console.table({ Transaction: tx });
|
|
199
|
-
}
|
|
200
|
-
catch (err) {
|
|
201
|
-
if (err instanceof Error) {
|
|
202
|
-
program.error(err.message);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
});
|
|
206
|
-
vaultHub
|
|
207
|
-
.command('v-bbv-transfer')
|
|
208
|
-
.description('separate burn function for EOA vault owners; requires vaultHub to be approved to transfer stETH')
|
|
209
|
-
.argument('<address>', 'vault address')
|
|
210
|
-
.argument('<amountOfShares>', 'amount of stETH shares to mint')
|
|
211
|
-
.action(async (address, amountOfShares) => {
|
|
212
|
-
try {
|
|
213
|
-
const contract = await getVaultHubContract();
|
|
214
|
-
const tx = await contract.write.transferAndBurnSharesBackedByVault([address, BigInt(amountOfShares)], {
|
|
215
|
-
account: getAccount(),
|
|
216
|
-
chain: getChain(),
|
|
217
|
-
});
|
|
218
|
-
console.table({ Transaction: tx });
|
|
219
|
-
}
|
|
220
|
-
catch (err) {
|
|
221
|
-
if (err instanceof Error) {
|
|
222
|
-
program.error(err.message);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
});
|
|
226
|
-
vaultHub
|
|
227
|
-
.command('v-force-rebalance')
|
|
228
|
-
.description('force rebalance of the vault to have sufficient reserve ratio')
|
|
229
|
-
.argument('<address>', 'vault address')
|
|
230
|
-
.action(async (address) => {
|
|
231
|
-
try {
|
|
232
|
-
const contract = await getVaultHubContract();
|
|
233
|
-
const tx = await contract.write.forceRebalance([address], {
|
|
234
|
-
account: getAccount(),
|
|
235
|
-
chain: getChain(),
|
|
236
|
-
});
|
|
237
|
-
console.table({
|
|
238
|
-
Transaction: tx,
|
|
239
|
-
});
|
|
240
|
-
}
|
|
241
|
-
catch (err) {
|
|
242
|
-
if (err instanceof Error) {
|
|
243
|
-
program.error(err.message);
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
vaultHub
|
|
248
|
-
.command('v-role-admin')
|
|
249
|
-
.description('returns the admin role that controls `role`')
|
|
250
|
-
.argument('<role>', 'role')
|
|
251
|
-
.action(async (role) => {
|
|
252
|
-
try {
|
|
253
|
-
const contract = await getVaultHubContract();
|
|
254
|
-
const roleAdmin = await contract.read.getRoleAdmin([role]);
|
|
255
|
-
console.table({
|
|
256
|
-
'Role admin': roleAdmin,
|
|
257
|
-
});
|
|
258
|
-
}
|
|
259
|
-
catch (err) {
|
|
260
|
-
if (err instanceof Error) {
|
|
261
|
-
program.error(err.message);
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
});
|
|
265
|
-
// Works
|
|
266
|
-
vaultHub
|
|
267
|
-
.command('v-role-member')
|
|
268
|
-
.description('returns one of the accounts that have `role`')
|
|
269
|
-
.argument('<role>', 'role')
|
|
270
|
-
.argument('<index>', 'index')
|
|
271
|
-
.action(async (role, index) => {
|
|
272
|
-
try {
|
|
273
|
-
const contract = await getVaultHubContract();
|
|
274
|
-
const roleMember = await contract.read.getRoleMember([role, index]);
|
|
275
|
-
console.table({
|
|
276
|
-
'Role member': roleMember,
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
catch (err) {
|
|
280
|
-
if (err instanceof Error) {
|
|
281
|
-
program.error(err.message);
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
});
|
|
285
|
-
// Works
|
|
286
|
-
vaultHub
|
|
287
|
-
.command('v-role-member-count')
|
|
288
|
-
.description('returns the number of accounts that have `role`')
|
|
289
|
-
.argument('<role>', 'role')
|
|
290
|
-
.action(async (role) => {
|
|
291
|
-
try {
|
|
292
|
-
const contract = await getVaultHubContract();
|
|
293
|
-
const roleMemberCount = await contract.read.getRoleMemberCount([role]);
|
|
294
|
-
console.table({
|
|
295
|
-
'Role member count': roleMemberCount,
|
|
296
|
-
});
|
|
297
|
-
}
|
|
298
|
-
catch (err) {
|
|
299
|
-
if (err instanceof Error) {
|
|
300
|
-
program.error(err.message);
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
});
|
|
304
|
-
// Works
|
|
305
|
-
vaultHub
|
|
306
|
-
.command('v-role-has')
|
|
307
|
-
.description('returns `true` if `account` has been granted `role`')
|
|
308
|
-
.argument('<role>', 'role')
|
|
309
|
-
.argument('<account>', 'account')
|
|
310
|
-
.action(async (role, account) => {
|
|
311
|
-
try {
|
|
312
|
-
const contract = await getVaultHubContract();
|
|
313
|
-
const roleHas = await contract.read.hasRole([role, account]);
|
|
314
|
-
console.table({
|
|
315
|
-
'Role has': roleHas,
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
catch (err) {
|
|
319
|
-
if (err instanceof Error) {
|
|
320
|
-
program.error(err.message);
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
});
|
|
324
|
-
//# sourceMappingURL=vault-hub.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vault-hub.js","sourceRoot":"","sources":["../../programs/vault-hub.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEnE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;AAE1E,aAAa;AACb,QAAQ;KACL,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,yBAAyB,CAAC;KACtC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAE7C,IAAI,CAAC;QACH,MAAM,iBAAiB,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAClE,MAAM,mBAAmB,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACtE,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1C,MAAM,kBAAkB,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACpE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC;QAE1C,MAAM,OAAO,GAAG;YACd,iBAAiB;YACjB,kBAAkB;YAClB,mBAAmB;YACnB,KAAK;YACL,gBAAgB;SACjB,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,0CAA0C,CAAC;KACvD,QAAQ,CAAC,YAAY,EAAE,+BAA+B,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,QAAiB,EAAE,EAAE;IAClC,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAE7C,MAAM,0BAA0B,CAAC,QAAQ,EAAE,uBAAuB,EAAE;QAClE,QAAQ;KACT,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,aAAa;AACb,QAAQ;KACL,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC7C,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAElE,OAAO,CAAC,KAAK,CAAC;QACZ,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC;KACpC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,IAAI,CAAC;KACb,WAAW,CAAC,qCAAqC,CAAC;KAClD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;KAC5B,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,EAAE;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAE7C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAE/D,OAAO,CAAC,KAAK,CAAC;YACZ,KAAK,EAAE,KAAK;YACZ,cAAc,EAAE,WAAW;SAC5B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,2CAA2C;AAC3C,QAAQ;KACL,OAAO,CAAC,IAAI,CAAC;KACb,WAAW,CAAC,6BAA6B,CAAC;KAC1C,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;KAChC,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,EAAE;IACjC,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC7C,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE;QAChE,OAAO;KACR,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC;AAEL,0BAA0B;AAC1B,QAAQ;KACL,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,wDAAwD,CAAC;KACrE,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;KACtC,QAAQ,CACP,cAAc,EACd,gEAAgE,CACjE;KACA,QAAQ,CAAC,gBAAgB,EAAE,uCAAuC,CAAC;KACnE,QAAQ,CACP,yBAAyB,EACzB,qFAAqF,CACtF;KACA,QAAQ,CAAC,iBAAiB,EAAE,8BAA8B,CAAC;KAC3D,MAAM,CACL,KAAK,EACH,OAAgB,EAChB,UAAkB,EAClB,YAAoB,EACpB,qBAA6B,EAC7B,aAAqB,EACrB,EAAE;IACF,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAE7C,MAAM,0BAA0B,CAAC,QAAQ,EAAE,cAAc,EAAE;QACzD,OAAO;QACP,UAAU;QACV,YAAY;QACZ,qBAAqB;QACrB,aAAa;KACd,CAAC,CAAC;AACL,CAAC,CACF,CAAC;AAEJ,QAAQ;KACL,OAAO,CAAC,sBAAsB,CAAC;KAC/B,WAAW,CAAC,mCAAmC,CAAC;KAChD,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;KACtC,QAAQ,CAAC,cAAc,EAAE,eAAe,CAAC;KACzC,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,UAAkB,EAAE,EAAE;IACrD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC7C,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAC9C,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,EAC7B;YACE,OAAO,EAAE,UAAU,EAAE;YACrB,KAAK,EAAE,QAAQ,EAAE;SAClB,CACF,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,wCAAwC,CAAC;KACrD,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;KACtC,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,EAAE;IACjC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC7C,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE;YACpD,OAAO,EAAE,UAAU,EAAE;YACrB,KAAK,EAAE,QAAQ,EAAE;SAClB,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CACV,sEAAsE,CACvE;KACA,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;KACtC,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,EAAE;IACjC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC7C,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,EAAE;YAC7D,OAAO,EAAE,UAAU,EAAE;YACrB,KAAK,EAAE,QAAQ,EAAE;SAClB,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CACV,6EAA6E,CAC9E;KACA,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;KACtC,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC;KAClD,QAAQ,CAAC,kBAAkB,EAAE,gCAAgC,CAAC;KAC9D,MAAM,CACL,KAAK,EAAE,OAAgB,EAAE,SAAkB,EAAE,cAAsB,EAAE,EAAE;IACrE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC7C,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CACrD,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,EAC5C;YACE,OAAO,EAAE,UAAU,EAAE;YACrB,KAAK,EAAE,QAAQ,EAAE;SAClB,CACF,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC,CACF,CAAC;AAEJ,QAAQ;KACL,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,6DAA6D,CAAC;KAC1E,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;KACtC,QAAQ,CAAC,kBAAkB,EAAE,gCAAgC,CAAC;KAC9D,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,cAAsB,EAAE,EAAE;IACzD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC7C,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CACrD,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,EACjC;YACE,OAAO,EAAE,UAAU,EAAE;YACrB,KAAK,EAAE,QAAQ,EAAE;SAClB,CACF,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CACV,iGAAiG,CAClG;KACA,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;KACtC,QAAQ,CAAC,kBAAkB,EAAE,gCAAgC,CAAC;KAC9D,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,cAAsB,EAAE,EAAE;IACzD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC7C,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,kCAAkC,CAChE,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,EACjC;YACE,OAAO,EAAE,UAAU,EAAE;YACrB,KAAK,EAAE,QAAQ,EAAE;SAClB,CACF,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,+DAA+D,CAAC;KAC5E,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;KACtC,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,EAAE;IACjC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC7C,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE;YACxD,OAAO,EAAE,UAAU,EAAE;YACrB,KAAK,EAAE,QAAQ,EAAE;SAClB,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC;YACZ,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC1B,MAAM,CAAC,KAAK,EAAE,IAAa,EAAE,EAAE;IAC9B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3D,OAAO,CAAC,KAAK,CAAC;YACZ,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ;AACR,QAAQ;KACL,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,8CAA8C,CAAC;KAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;KAC5B,MAAM,CAAC,KAAK,EAAE,IAAa,EAAE,KAAa,EAAE,EAAE;IAC7C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAEpE,OAAO,CAAC,KAAK,CAAC;YACZ,aAAa,EAAE,UAAU;SAC1B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ;AACR,QAAQ;KACL,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CAAC,iDAAiD,CAAC;KAC9D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC1B,MAAM,CAAC,KAAK,EAAE,IAAa,EAAE,EAAE;IAC9B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC7C,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEvE,OAAO,CAAC,KAAK,CAAC;YACZ,mBAAmB,EAAE,eAAe;SACrC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ;AACR,QAAQ;KACL,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,qDAAqD,CAAC;KAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC1B,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;KAChC,MAAM,CAAC,KAAK,EAAE,IAAa,EAAE,OAAgB,EAAE,EAAE;IAChD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAE7D,OAAO,CAAC,KAAK,CAAC;YACZ,UAAU,EAAE,OAAO;SACpB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC"}
|