hardhat-deploy 0.11.25 → 0.11.27

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 CHANGED
@@ -2,10 +2,10 @@
2
2
 
3
3
  _A [Hardhat](https://hardhat.org) Plugin For Replicable Deployments And Easy Testing_
4
4
 
5
- > **A complete dev template using hardhat-deploy is available here** : https://github.com/wighawag/template-ethereum-contracts
5
+ > **A complete dev template using hardhat-deploy is available here**: https://github.com/wighawag/template-ethereum-contracts
6
6
  > It also contains various branches examplifying the capability of hardhat-deploy. Check it out.
7
7
 
8
- - [What is it for ?](#what-is-it-for-)
8
+ - [What is it for?](#what-is-it-for-)
9
9
  - [hardhat-deploy in a nutshell](#hardhat-deploy-in-a-nutshell)
10
10
  - [Installation](#installation)
11
11
  - [npm install hardhat-deploy](#npm-install-hardhat-deploy)
@@ -60,7 +60,7 @@ _A [Hardhat](https://hardhat.org) Plugin For Replicable Deployments And Easy Tes
60
60
  - [**4. console task**](#4-console-task)
61
61
  - [Deploy Scripts: Tags And Dependencies](#deploy-scripts-tags-and-dependencies)
62
62
 
63
- ## What is it for ?
63
+ ## What is it for?
64
64
 
65
65
  This [hardhat](https://hardhat.org) plugin adds a mechanism to deploy contracts to any network, keeping track of them and replicating the same environment for testing.
66
66
 
@@ -69,8 +69,8 @@ It also adds a mechanism to associate names to addresses, so test and deployment
69
69
  This plugin contains a lot more features too, all geared toward a better developer experience :
70
70
 
71
71
  - chain configuration export
72
- - listing deployed contracts' addresses and their abis (useful for webapps)
73
- - library linking at time of deployment.
72
+ - listing deployed contracts' addresses and their abis (useful for web apps)
73
+ - library linking at the time of deployment.
74
74
  - deterministic deployment across networks.
75
75
  - support for specific deploy script per network (L1 vs L2 for example)
76
76
  - ability to access deployment from "companion" networks
@@ -79,15 +79,15 @@ This plugin contains a lot more features too, all geared toward a better develop
79
79
  - deployments as test fixture using `evm_snapshot` to speed up testing.
80
80
  - ability to create your own test fixture that automatically benefits from `evm_snapshot`'s tests speed-up boost
81
81
  - combined with [hardhat-deploy-ethers](https://github.com/wighawag/hardhat-deploy-ethers) it has the ability to get ethers contract instance by name (like `await ethers.getContract("ContractName")`).
82
- - importing artifact from external sources (like npm packages), including [truffle](https://www.trufflesuite.com/truffle) support.
82
+ - importing artifacts from external sources (like npm packages), including [truffle](https://www.trufflesuite.com/truffle) support.
83
83
  - importing deployments from external sources (like npm packages)
84
84
  - ability to log information in `deploy` mode only (while in test the console remains clean).
85
85
  - contains helpers to read and execute transaction on deployed contract referring to them by name.
86
- - These helpers contains options to auto mine on dev network (to speed up test deployments).
86
+ - These helpers contains options to auto-mine on dev network (to speed up test deployments).
87
87
  - save metadata of deployed contract so they can always be fully verified, via [sourcify](https://sourcify.dev) or [etherscan](https://etherscan.io).
88
88
  - ability to submit contract source to etherscan and sourcify for verification at any time. (Because **hardhat-deploy** will save all the necessary info, it can be executed at any time.)
89
- - support harhdat's fork feature so deployment can be accessed even when run through fork.
90
- - named accounts are automatically impersonnated too, so you can perform tx as if you had their private key.
89
+ - support hardhat's fork feature so deployment can be accessed even when run through fork.
90
+ - named accounts are automatically impersonated too, so you can perform tx as if you had their private key.
91
91
  - proxy deployment with ability to upgrade them transparently, only if code changes.
92
92
  - this include support for [openzeppelin](https://openzeppelin.com) transparent proxies
93
93
  - diamond deployment with facets, allowing you to focus on what the new version will be. It will generate the diamondCut necessary to reach the new state.
@@ -119,13 +119,13 @@ This is optimized, so if multiple tests use the same contract, the deployment wi
119
119
 
120
120
  This is a huge benefit for testing since you are not required to replicate the deployment procedure in your tests. The tag feature (as seen in the script above) and [dependencies](#deploy-scripts-tags-and-dependencies) will also make your life easier when writing complex deployment procedures.
121
121
 
122
- You can even group deploy scripts in different sub folder and ensure they are executed in their logical order.
122
+ You can even group deploy scripts in different sub-folders and ensure they are executed in their logical order.
123
123
 
124
124
  Furthermore hardhat-deploy can also support a multi-chain settings like L1, L2 with multiple deploy folder specific to each network.
125
125
 
126
- **All of this can also be bundled in a npm package so user of hardhat-deploy can reuse your deployment procedure and get started integrating with your project locally.**
126
+ **All of this can also be bundled in a npm package so users of hardhat-deploy can reuse your deployment procedure and get started integrating with your project locally.**
127
127
 
128
- There is a tutorial covering the basics here : https://github.com/wighawag/tutorial-hardhat-deploy
128
+ There is a tutorial covering the basics here: https://github.com/wighawag/tutorial-hardhat-deploy
129
129
 
130
130
  ## Installation
131
131
 
@@ -143,7 +143,7 @@ require('hardhat-deploy');
143
143
 
144
144
  if you use `ethers.js` we recommend you also install `hardhat-deploy-ethers` which add extra features to access deployments as ethers contract.
145
145
 
146
- Since `hardhat-deploy-ethers` is a fork of `@nomiclabs/hardhat-ethers` and that other plugin might have an hardcoded dependency on `@nomiclabs/hardhat-ethers` the best way to install `hardhat-deploy-ethers` and ensure compatibility is the following:
146
+ Since `hardhat-deploy-ethers` is a fork of `@nomiclabs/hardhat-ethers` and that other plugin might have a hardcoded dependency on `@nomiclabs/hardhat-ethers` the best way to install `hardhat-deploy-ethers` and ensure compatibility is the following:
147
147
 
148
148
  ```bash
149
149
  npm install --save-dev @nomiclabs/hardhat-ethers@npm:hardhat-deploy-ethers ethers
@@ -151,7 +151,7 @@ npm install --save-dev @nomiclabs/hardhat-ethers@npm:hardhat-deploy-ethers ethe
151
151
 
152
152
  Which means you then need to do `require("@nomiclabs/hardhat-ethers")` instead of `require("hardhat-deploy-ethers")` in your `hardhat.config.js` file.
153
153
 
154
- More details on `hardhat-deploy-ethers` repo : https://github.com/wighawag/hardhat-deploy-ethers#readme
154
+ More details on `hardhat-deploy-ethers` repo: https://github.com/wighawag/hardhat-deploy-ethers#readme
155
155
 
156
156
  ### TypeScript support
157
157
 
@@ -159,7 +159,7 @@ With hardhat the tsconfig.json is optional.
159
159
 
160
160
  But if you add folders to the `include` field in `tsconfig.json`, you ll also need to include `hardhat.config.ts` like :
161
161
 
162
- `include": ["./hardhat.config.ts", "./scripts", "./deploy", "./test"]`
162
+ `"include": ["./hardhat.config.ts", "./scripts", "./deploy", "./test"]`
163
163
 
164
164
  for deploy script (see below) you can write them this way to benefit from typing :
165
165
 
@@ -173,13 +173,13 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
173
173
  export default func;
174
174
  ```
175
175
 
176
- See a template that uses **hardhat-deploy** here : https://github.com/wighawag/template-ethereum-contracts
176
+ See a template that uses **hardhat-deploy** here: https://github.com/wighawag/template-ethereum-contracts
177
177
 
178
- This repo has also some examples branch that exemplify specific features, like the forking testing here : https://github.com/wighawag/template-ethereum-contracts/tree/examples/fork-test
178
+ This repo has also some examples branch that exemplify specific features, like the forking testing here: https://github.com/wighawag/template-ethereum-contracts/tree/examples/fork-test
179
179
 
180
180
  ### Migrating existing deployment to hardhat-deploy
181
181
 
182
- > Only needed for existing project that already deployed contracts and has the deployment information available **(at minimum, address and abi)**
182
+ > Only needed for an existing project that already deployed contracts and has the deployment information available **(at minimum, address and abi)**
183
183
 
184
184
  You might want to switch your current deployment process to use **hardhat-deploy**. In that case you probably have some deployments saved elsewhere.
185
185
 
@@ -188,7 +188,7 @@ In order to port them to **hardhat-deploy**, you'll need to create one `.json` f
188
188
  The network folder is simply the hardhat network name (as configured in hardhat.config.js) (accessible at runtime via `hre.network.name`).
189
189
  Such folder need to have a file named `.chainId` containing the chainId as decimal.
190
190
 
191
- For example for network named "rinkeby" (for the corresponding network) the file `deployments/rinkeby/.chainId` would be
191
+ For example for a network named "rinkeby" (for the corresponding network) the file `deployments/rinkeby/.chainId` would be
192
192
 
193
193
  ```
194
194
  4
@@ -276,7 +276,7 @@ deployments/
276
276
  The reason why **hardhat-deploy** save chainId in the `.chainId` file is both for
277
277
 
278
278
  - safety: so that if you were to change the network name to point to a different chain, it would not attempt to read the wrong folder and assume that a contract has been deployed while it has not.
279
- - ability to know the chainId without requring to be connected to a node (and so not dependent on hardhat.config.js settings). Useful for `export` task.
279
+ - ability to know the chainId without requiring to be connected to a node (and so not dependent on hardhat.config.js settings). Useful for `export` task.
280
280
 
281
281
  ---
282
282
 
@@ -302,11 +302,11 @@ For further details on how to use it and write deploy script, see [section](#dep
302
302
 
303
303
  #### **Options**
304
304
 
305
- `--export <filepath>`: export one file that contains all contracts (address, abi + extra data) for the network being invoked. The file contains the minimal information so to not bloat your frontend.
305
+ `--export <filepath>`: export one file that contains all contracts (address, abi + extra data) for the network being invoked. The file contains the minimal information so to not bloat your front end.
306
306
 
307
307
  `--export-all <filepath>`: export one file that contains all contracts across all saved deployments, regardless of the network being invoked.
308
308
 
309
- `--tags <tags>`: only excute deploy scripts with the given tags (separated by commas) and their dependencies (see more info [here](#deploy-scripts-tags-and-dependencies) about tags and dependencies)
309
+ `--tags <tags>`: only excutes deploy scripts with the given tags (separated by commas) and their dependencies (see more info [here](#deploy-scripts-tags-and-dependencies) about tags and dependencies)
310
310
 
311
311
  `--gasprice <gasprice>`: specify the gasprice (in wei) to use by default for transactions executed via **hardhat-deploy** helpers in deploy scripts
312
312
 
@@ -316,9 +316,9 @@ For further details on how to use it and write deploy script, see [section](#dep
316
316
 
317
317
  `--reset`: This flag resets the deployments from scratch. Previously deployed contract are not considered and deleted from disk.
318
318
 
319
- `--silent`: This flag remove **hardhat-deploy** log output (see log function and log options for [`hre.deployments`](#the-deployments-field))
319
+ `--silent`: This flag removes **hardhat-deploy** log output (see log function and log options for [`hre.deployments`](#the-deployments-field))
320
320
 
321
- `--watch`: This flag make the task never ending, watching for file changes in the deploy scripts folder and the contract source folder. If any changes happen the contracts are recompiled and the deploy script are re-run. Combined with a proxy deployment ([Proxies](#deploying-and-upgrading-proxies) or [Diamond](#builtin-in-support-for-diamonds-eip2535)) this allow to have HCR (Hot Contract Replacement).
321
+ `--watch`: This flag make the task never-ending, watching for file changes in the deploy scripts folder and the contract source folder. If any changes happen the contracts are recompiled and the deploy script are re-run. Combined with a proxy deployment ([Proxies](#deploying-and-upgrading-proxies) or [Diamond](#builtin-in-support-for-diamonds-eip2535)) this allow to have HCR (Hot Contract Replacement).
322
322
 
323
323
  ---
324
324
 
@@ -332,11 +332,11 @@ It add similar options than the `deploy` task :
332
332
 
333
333
  #### **Options**
334
334
 
335
- `--export <filepath>`: export one file that contains all contracts (address, abi + extra data) for the network being invoked. The file contains the minimal information so to not bloat your frontend. If the extension ends in .ts it will generate a typescript file containing the contracts info.
335
+ `--export <filepath>`: export one file that contains all contracts (address, abi + extra data) for the network being invoked. The file contains the minimal information so to not bloat your front end. If the extension ends in .ts it will generate a typescript file containing the contracts info.
336
336
 
337
337
  `--export-all <filepath>`: export one file that contains all contracts across all saved deployment, regardless of the network being invoked. If the extension ends in .ts it will generate a typescript file containing the contracts info.
338
338
 
339
- `--tags <tags>`: only excute deploy scripts with the given tags (separated by commas) and their dependencies (see more info [here](#deploy-scripts-tags-and-dependencies) about tags and dependencies)
339
+ `--tags <tags>`: only excutes deploy scripts with the given tags (separated by commas) and their dependencies (see more info [here](#deploy-scripts-tags-and-dependencies) about tags and dependencies)
340
340
 
341
341
  `--gasprice <gasprice>`: specify the gasprice to use by default for transactions executed via **hardhat-deploy** helpers in deploy scripts
342
342
 
@@ -348,9 +348,9 @@ It add similar options than the `deploy` task :
348
348
 
349
349
  `--show-accounts`: this flag will output the account private keys
350
350
 
351
- `--silent`: This flag remove **hardhat-deploy** log output (see log function and log options for [`hre.deployments`](#the-deployments-field))
351
+ `--silent`: This flag removes **hardhat-deploy** log output (see log function and log options for [`hre.deployments`](#the-deployments-field))
352
352
 
353
- `--watch`: This flag make the task never ending, watching for file changes in the deploy scripts folder and the contract source folder. If any changes happen the contracts are recompiled and the deploy script are re-run. Combined with a proxy deployment ([Proxies](#deploying-and-upgrading-proxies) or [Diamond](#builtin-in-support-for-diamonds-eip2535)) this allow to have HCR (Hot Contract Replacement).
353
+ `--watch`: This flag makes the task never-ending, watching for file changes in the deploy scripts folder and the contract source folder. If any changes happen the contracts are recompiled and the deploy script are re-run. Combined with a proxy deployment ([Proxies](#deploying-and-upgrading-proxies) or [Diamond](#builtin-in-support-for-diamonds-eip2535)) this allow to have HCR (Hot Contract Replacement).
354
354
 
355
355
  `--no-deploy` that discard all other options to revert to normal `hardhat node` behavior without any deployment being performed.
356
356
 
@@ -362,7 +362,7 @@ It add similar options than the `deploy` task :
362
362
 
363
363
  ---
364
364
 
365
- This plugin adds a flag argument `--deploy-fixture` to the _test_ task which if enabled will run the global deployments fixture before the tests and snapshots it. This will generaly speed up the tests as further test will be able to revert back to the full deployment.
365
+ This plugin adds a flag argument `--deploy-fixture` to the _test_ task which if enabled will run the global deployments fixture before the tests and snapshots it. This will generally speed up the tests as further test will be able to revert back to the full deployment.
366
366
 
367
367
  > :warning: Note though that if your test behave differently whether that option is on or not, this most likely mean that your deploy scripts' tags and dependencies are not configured correctly. This is because the global fixture will ensure all contract are deployed while test will usually (for efficiency) ask for a particular tag.
368
368
 
@@ -468,7 +468,7 @@ One of the following options need to be set for this task to have any effects :
468
468
 
469
469
  #### **Options**
470
470
 
471
- `--export <filepath>`: export one file that contains all contracts (address, abi + extra data) for the network being invoked. The file contains the minimal information so to not bloat your frontend. If the extension ends in .ts it will generate a typescript file containing the contracts info.
471
+ `--export <filepath>`: export one file that contains all contracts (address, abi + extra data) for the network being invoked. The file contains the minimal information so to not bloat your front end. If the extension ends in .ts it will generate a typescript file containing the contracts info.
472
472
 
473
473
  `--export-all <filepath>`: export one file that contains all contracts across all saved deployment, regardless of the network being invoked. If the extension ends in .ts it will generate a typescript file containing the contracts info.
474
474
 
@@ -549,7 +549,7 @@ this tell whether **hardhat-deploy** should save the deployments to disk or not.
549
549
 
550
550
  network can have tags to represent them. The config is an array and at runtime the hre.network.tags is an object whose fields (the tags) are set to true.
551
551
 
552
- This is useful to conidtionaly operate on network based on their use case.
552
+ This is useful to conditionally operate on network based on their use case.
553
553
 
554
554
  Example:
555
555
 
@@ -622,7 +622,7 @@ By using name you can have the same deploy script used in different set of netwo
622
622
 
623
623
  For your test you could have the companion networks pointing to the same hardhat network, for test deployment, you could have rinkeby acting like your l2 while goerli act as your l1.
624
624
 
625
- An example repo that show case a multi-network setup with optimism can be found here : https://github.com/wighawag/template-ethereum-contracts/tree/examples/optimism
625
+ An example repo that show case a multi-network setup with optimism can be found here: https://github.com/wighawag/template-ethereum-contracts/tree/examples/optimism
626
626
 
627
627
  deploy script can then access the network and its deployment as follow :
628
628
 
@@ -754,7 +754,7 @@ The `contracts` field specify an array of object which itself have 2 fields.
754
754
  - `artifacts`: (mandatory) it is a path to an artifact folder. This support both hardhat and truffle artifacts.
755
755
  - `deploy`: (optional) it specifies a path to a folder where reside deploy script. The deploy scripts have only access to the artifact specified in the artifacts field. This allow project to share their deployment procedure. A boon for developer aiming at integrating it as they can get the contracts to be deployed for testing locally.
756
756
 
757
- The `deployments` fields specify an object whose field nasme are the hardhat network and the value is an array of path to look for deployments. It supports both **hardhat-deploy** and truffle formats.
757
+ The `deployments` fields specify an object whose field names are the hardhat network and the value is an array of path to look for deployments. It supports both **hardhat-deploy** and truffle formats.
758
758
 
759
759
  ---
760
760
 
@@ -1144,7 +1144,7 @@ module.exports = async ({getNamedAccounts, deployments, getChainId}) => {
1144
1144
  };
1145
1145
  ```
1146
1146
 
1147
- Note that for the second invokation, this deployment will not be executed from the specified `from: deployer` as otherwise these tx will always fails. It will instead be automatically executed from the proxy's current owner (in that case : `greeterOwner`)
1147
+ Note that for the second invocation, this deployment will not be executed from the specified `from: deployer` as otherwise these tx will always fails. It will instead be automatically executed from the proxy's current owner (in that case : `greeterOwner`)
1148
1148
 
1149
1149
  Now, it is likely you do not want to locally handle the private key / mnemonic of the account that manage the proxy or it could even be that the `greeterOwner` in question is a multi sig. As such that second invocation will throw an error as it cannot find a local signer for it.
1150
1150
 
@@ -1175,7 +1175,7 @@ The full proxy options is as follow:
1175
1175
  ```ts
1176
1176
  type ProxyOptionsBase = {
1177
1177
  owner?: Address; // this set the owner of the proxy. further upgrade will need to be executed from that owner
1178
- upgradeIndex?: number; // allow you to breakdown your upgrades into separate deploy scriot, each with their own index. A deploy call with a specific upgradeIndex will be executed only once, only if the current upgradeIndex is one less.
1178
+ upgradeIndex?: number; // allow you to breakdown your upgrades into separate deploy script, each with their own index. A deploy call with a specific upgradeIndex will be executed only once, only if the current upgradeIndex is one less.
1179
1179
  proxyContract?: // default to "EIP173Proxy". See below for more details
1180
1180
  string | ArtifactData;
1181
1181
  viaAdminContract?: // allow to specify a contract that act as a middle man to perform upgrades. Useful and Recommended for Transparent Proxies
@@ -1218,7 +1218,7 @@ it matches:
1218
1218
  - `EIP173ProxyWithReceive`: Same as above except that the proxy contains a receive hook to accept empty ETH payment.
1219
1219
 
1220
1220
  - `OpenZeppelinTransparentProxy`: Use Openzeppelin Transparent Proxy (copied from openzeppelin repo, see code [here](solc_0.7/openzeppelin/proxy/TransparentUpgradeableProxy.sol))
1221
- When this option is chosen, the `DefaultProxyAdmin` is also used as admin since Transparent Proxy kind of need an intermediarry contract for administration. This can be configured via the `viaAdminContract` option. Note that the DefaultProxyAdmin is slightly different than the one used by openzeppelin as it allow you to set a different owner than msg.sender on first deploy, something openzeppelin version do not allow, see : https://github.com/OpenZeppelin/openzeppelin-contracts/issues/2639
1221
+ When this option is chosen, the `DefaultProxyAdmin` is also used as admin since Transparent Proxy kind of need an intermediary contract for administration. This can be configured via the `viaAdminContract` option. Note that the DefaultProxyAdmin is slightly different than the one used by openzeppelin as it allow you to set a different owner than msg.sender on first deploy, something openzeppelin version do not allow, see : https://github.com/OpenZeppelin/openzeppelin-contracts/issues/2639
1222
1222
 
1223
1223
  - `OptimizedTransparentProxy`: This contract is similar to above, except that it is optimized to not require storage read for the admin on every call.
1224
1224
 
@@ -1 +1 @@
1
- {"version":3,"file":"DeploymentsManager.d.ts","sourceRoot":"","sources":["../../src/DeploymentsManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DeploymentsManager.d.ts","sourceRoot":"","sources":["../../src/DeploymentsManager.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ const fs_extra_1 = __importDefault(require("fs-extra"));
8
8
  const path_1 = __importDefault(require("path"));
9
9
  const bignumber_1 = require("@ethersproject/bignumber");
10
10
  const debug_1 = __importDefault(require("debug"));
11
- const log = (0, debug_1.default)('hardhat:wighawag:hardhat-deploy');
11
+ const log = debug_1.default('hardhat:wighawag:hardhat-deploy');
12
12
  const utils_1 = require("./utils");
13
13
  const helpers_1 = require("./helpers");
14
14
  const globalStore_1 = require("./globalStore");
@@ -78,20 +78,20 @@ class DeploymentsManager {
78
78
  },
79
79
  getArtifact: async (contractName) => {
80
80
  if (this.db.onlyArtifacts) {
81
- const artifactFromFolder = await (0, utils_1.getArtifactFromFolders)(contractName, this.db.onlyArtifacts);
81
+ const artifactFromFolder = await utils_1.getArtifactFromFolders(contractName, this.db.onlyArtifacts);
82
82
  if (!artifactFromFolder) {
83
83
  throw new Error(`cannot find artifact "${contractName}" from folder ${this.db.onlyArtifacts}`);
84
84
  }
85
85
  return artifactFromFolder;
86
86
  }
87
- let artifact = await (0, utils_1.getArtifactFromFolders)(contractName, [
87
+ let artifact = await utils_1.getArtifactFromFolders(contractName, [
88
88
  this.env.config.paths.artifacts,
89
89
  ]);
90
90
  if (artifact) {
91
91
  return artifact;
92
92
  }
93
93
  const importPaths = this.getImportPaths();
94
- artifact = await (0, utils_1.getArtifactFromFolders)(contractName, importPaths);
94
+ artifact = await utils_1.getArtifactFromFolders(contractName, importPaths);
95
95
  if (!artifact) {
96
96
  throw new Error(`cannot find artifact "${contractName}"`);
97
97
  }
@@ -99,20 +99,20 @@ class DeploymentsManager {
99
99
  },
100
100
  getExtendedArtifact: async (contractName) => {
101
101
  if (this.db.onlyArtifacts) {
102
- const artifactFromFolder = await (0, utils_1.getExtendedArtifactFromFolders)(contractName, this.db.onlyArtifacts);
102
+ const artifactFromFolder = await utils_1.getExtendedArtifactFromFolders(contractName, this.db.onlyArtifacts);
103
103
  if (!artifactFromFolder) {
104
104
  throw new Error(`cannot find artifact "${contractName}" from folder ${this.db.onlyArtifacts}`);
105
105
  }
106
106
  return artifactFromFolder;
107
107
  }
108
- let artifact = await (0, utils_1.getExtendedArtifactFromFolders)(contractName, [
108
+ let artifact = await utils_1.getExtendedArtifactFromFolders(contractName, [
109
109
  this.env.config.paths.artifacts,
110
110
  ]);
111
111
  if (artifact) {
112
112
  return artifact;
113
113
  }
114
114
  const importPaths = this.getImportPaths();
115
- artifact = await (0, utils_1.getExtendedArtifactFromFolders)(contractName, importPaths);
115
+ artifact = await utils_1.getExtendedArtifactFromFolders(contractName, importPaths);
116
116
  if (artifact) {
117
117
  return artifact;
118
118
  }
@@ -214,7 +214,7 @@ class DeploymentsManager {
214
214
  }
215
215
  };
216
216
  log('adding helpers');
217
- const helpers = (0, helpers_1.addHelpers)(this, this.partialExtension, this.network, this.partialExtension.getArtifact, async (name, deployment, artifactName) => {
217
+ const helpers = helpers_1.addHelpers(this, this.partialExtension, this.network, this.partialExtension.getArtifact, async (name, deployment, artifactName) => {
218
218
  if (artifactName &&
219
219
  this.db.writeDeploymentsToFiles &&
220
220
  this.network.saveDeployments) {
@@ -401,14 +401,14 @@ class DeploymentsManager {
401
401
  this.db.migrations = migrations;
402
402
  // console.log({ migrations: this.db.migrations });
403
403
  const networkName = this.getDeploymentNetworkName();
404
- (0, utils_1.addDeployments)(this.db, this.deploymentsPath, this.deploymentFolder(), networkName === this.network.name ? chainId : undefined // fork mode, we do not care about chainId ?
404
+ utils_1.addDeployments(this.db, this.deploymentsPath, this.deploymentFolder(), networkName === this.network.name ? chainId : undefined // fork mode, we do not care about chainId ?
405
405
  );
406
406
  const extraDeploymentPaths = this.env.config.external &&
407
407
  this.env.config.external.deployments &&
408
408
  this.env.config.external.deployments[networkName];
409
409
  if (extraDeploymentPaths) {
410
410
  for (const deploymentFolderPath of extraDeploymentPaths) {
411
- (0, utils_1.addDeployments)(this.db, deploymentFolderPath, '', undefined, chainId);
411
+ utils_1.addDeployments(this.db, deploymentFolderPath, '', undefined, chainId);
412
412
  }
413
413
  }
414
414
  this.db.deploymentsLoaded = true;
@@ -416,7 +416,7 @@ class DeploymentsManager {
416
416
  }
417
417
  async deletePreviousDeployments(folderPath) {
418
418
  folderPath = folderPath || this.deploymentFolder();
419
- (0, utils_1.deleteDeployments)(this.deploymentsPath, folderPath);
419
+ utils_1.deleteDeployments(this.deploymentsPath, folderPath);
420
420
  }
421
421
  getSolcInputPath() {
422
422
  return path_1.default.join(this.deploymentsPath, this.deploymentFolder(), 'solcInputs');
@@ -473,7 +473,7 @@ class DeploymentsManager {
473
473
  }
474
474
  }
475
475
  async saveDeployment(name, deployment) {
476
- var _a, _b;
476
+ var _a, _b, _c;
477
477
  if (name.includes('/') || name.includes(':')) {
478
478
  throw new Error(`deployment name must not be a path or Fully Qualified Name - for such purposes consider using the "contract" field of deployment options`);
479
479
  }
@@ -568,11 +568,14 @@ class DeploymentsManager {
568
568
  methodIdentifiers: deployment.methodIdentifiers,
569
569
  gasEstimates: deployment.gasEstimates, // TODO double check : use evm field ?
570
570
  }));
571
+ if ((_c = deployment.factoryDeps) === null || _c === void 0 ? void 0 : _c.length) {
572
+ obj.factoryDeps = deployment.factoryDeps;
573
+ }
571
574
  this.db.deployments[name] = obj;
572
575
  if (obj.address === undefined && obj.transactionHash !== undefined) {
573
576
  let receiptFetched;
574
577
  try {
575
- receiptFetched = await (0, helpers_1.waitForTx)(this.network.provider, obj.transactionHash, true);
578
+ receiptFetched = await helpers_1.waitForTx(this.network.provider, obj.transactionHash, true);
576
579
  // TODO add receipt ?
577
580
  obj.address = receiptFetched.contractAddress;
578
581
  if (!obj.address) {
@@ -694,7 +697,7 @@ class DeploymentsManager {
694
697
  }
695
698
  }
696
699
  }
697
- const deployPaths = (0, utils_1.getDeployPaths)(this.network);
700
+ const deployPaths = utils_1.getDeployPaths(this.network);
698
701
  await this.executeDeployScripts(deployPaths, tags);
699
702
  await this.export(options);
700
703
  return this.db.deployments;
@@ -705,7 +708,7 @@ class DeploymentsManager {
705
708
  // This is currently posing problem for network like optimism which require a different set of artifact and hardhat currently only expose one set at a time
706
709
  let filepaths;
707
710
  try {
708
- filepaths = (0, utils_1.traverseMultipleDirectory)(deployScriptsPaths);
711
+ filepaths = utils_1.traverseMultipleDirectory(deployScriptsPaths);
709
712
  }
710
713
  catch (e) {
711
714
  return;
@@ -899,7 +902,7 @@ class DeploymentsManager {
899
902
  }
900
903
  if (options.exportAll !== undefined) {
901
904
  log('load all deployments for export-all');
902
- const all = (0, utils_1.loadAllDeployments)(this.env, this.deploymentsPath, true, this.env.config.external && this.env.config.external.deployments);
905
+ const all = utils_1.loadAllDeployments(this.env, this.deploymentsPath, true, this.env.config.external && this.env.config.external.deployments);
903
906
  const currentNetworkDeployments = {};
904
907
  const currentDeployments = this.db.deployments;
905
908
  for (const contractName of Object.keys(currentDeployments)) {
@@ -1055,13 +1058,13 @@ class DeploymentsManager {
1055
1058
  this.impersonateUnknownAccounts = false;
1056
1059
  }
1057
1060
  getNetworkName() {
1058
- return (0, utils_1.getNetworkName)(this.network);
1061
+ return utils_1.getNetworkName(this.network);
1059
1062
  }
1060
1063
  getDeploymentNetworkName() {
1061
1064
  if (this.db.runAsNode) {
1062
1065
  return 'localhost';
1063
1066
  }
1064
- return (0, utils_1.getNetworkName)(this.network);
1067
+ return utils_1.getNetworkName(this.network);
1065
1068
  }
1066
1069
  deploymentFolder() {
1067
1070
  return this.getDeploymentNetworkName();
@@ -1087,7 +1090,7 @@ class DeploymentsManager {
1087
1090
  if (!this.db.accountsLoaded) {
1088
1091
  const chainId = await this.getChainId();
1089
1092
  const accounts = await this.network.provider.send('eth_accounts');
1090
- const { namedAccounts, unnamedAccounts, unknownAccounts, addressesToProtocol, } = (0, utils_1.processNamedAccounts)(this.network, this.env.config.namedAccounts, accounts, chainId); // TODO pass in network name
1093
+ const { namedAccounts, unnamedAccounts, unknownAccounts, addressesToProtocol, } = utils_1.processNamedAccounts(this.network, this.env.config.namedAccounts, accounts, chainId); // TODO pass in network name
1091
1094
  await this.impersonateAccounts(unknownAccounts);
1092
1095
  this.db.namedAccounts = namedAccounts;
1093
1096
  this.db.unnamedAccounts = unnamedAccounts;
@@ -1 +1 @@
1
- {"version":3,"file":"DeploymentsManager.js","sourceRoot":"","sources":["../../src/DeploymentsManager.ts"],"names":[],"mappings":";;;;;;AAaA,wDAA0B;AAC1B,gDAAwB;AAExB,wDAAmD;AAEnD,kDAA0B;AAC1B,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,iCAAiC,CAAC,CAAC;AAErD,mCAUiB;AACjB,uCAAgD;AAGhD,+CAAoC;AAEpC,MAAa,kBAAkB;IA0E7B,YAAY,GAA8B,EAAE,OAAgB;QApCrD,wBAAmB,GAAgC,EAAE,CAAC;QAmVrD,oBAAe,GAAG,KAAK,CAAC;QA6hBxB,sBAAiB,GAAyC,EAAE,CAAC;QA30BnE,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAEvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,EAAE,GAAG;YACR,OAAO,EAAE,qBAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1B,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,EAAE;YACjB,eAAe,EAAE,EAAE;YACnB,iBAAiB,EAAE,KAAK;YACxB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,EAAE;YACd,uBAAuB,EAAE,IAAI;YAC7B,cAAc,EAAE,CAAC;YACjB,eAAe,EAAE,CAAC;YAClB,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;YAC5D,mBAAmB,EAAE,EAAE;YACvB,aAAa,EAAE,KAAK;YACpB,QAAQ,EAAE,SAAS;YACnB,SAAS,EAAE,KAAK;SACjB,CAAC;QACF,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;QAEpD,OAAO;QACP,uEAAuE;QAEvE,IAAI,CAAC,gBAAgB,GAAG;YACtB,WAAW,EAAE,KAAK,EAAE,IAAY,EAAmB,EAAE,CACnD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACxB,WAAW,EAAE,KAAK,EAAE,IAAY,EAAE,OAAe,EAAiB,EAAE,CAClE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;YACjC,aAAa,EAAE,KAAK,EAAE,IAAY,EAAiB,EAAE,CACnD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YAC1B,IAAI,EAAE,KAAK,EACT,IAAY,EACZ,UAAgC,EACjB,EAAE;gBACjB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACxC,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,IAAY,EAAiB,EAAE,CAC5C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAC7B,GAAG,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;gBAC1B,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxB,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC7C,IAAI,UAAU,KAAK,SAAS,EAAE;oBAC5B,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;iBACrD;gBACD,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,SAAS,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;gBAChC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxB,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;YACD,yBAAyB,EAAE,KAAK,EAAE,OAAe,EAAE,EAAE;gBACnD,MAAM,WAAW,GAAG,EAAE,CAAC;gBACvB,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE;oBAC3D,IAAI,UAAU,CAAC,OAAO,KAAK,OAAO,EAAE;wBAClC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;qBAC9B;iBACF;gBACD,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,GAAG,EAAE,KAAK,IAAI,EAAE;gBACd,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxB,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,YAAY;YAC1C,CAAC;YACD,WAAW,EAAE,KAAK,EAAE,YAAoB,EAAqB,EAAE;gBAC7D,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;oBACzB,MAAM,kBAAkB,GAAG,MAAM,IAAA,8BAAsB,EACrD,YAAY,EACZ,IAAI,CAAC,EAAE,CAAC,aAAa,CACtB,CAAC;oBACF,IAAI,CAAC,kBAAkB,EAAE;wBACvB,MAAM,IAAI,KAAK,CACb,yBAAyB,YAAY,iBAAiB,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAC9E,CAAC;qBACH;oBACD,OAAO,kBAA8B,CAAC;iBACvC;gBACD,IAAI,QAAQ,GACV,MAAM,IAAA,8BAAsB,EAAC,YAAY,EAAE;oBACzC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;iBAChC,CAAC,CAAC;gBACL,IAAI,QAAQ,EAAE;oBACZ,OAAO,QAAoB,CAAC;iBAC7B;gBACD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC1C,QAAQ,GAAG,MAAM,IAAA,8BAAsB,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;gBAEnE,IAAI,CAAC,QAAQ,EAAE;oBACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,YAAY,GAAG,CAAC,CAAC;iBAC3D;gBACD,OAAO,QAAoB,CAAC;YAC9B,CAAC;YACD,mBAAmB,EAAE,KAAK,EACxB,YAAoB,EACO,EAAE;gBAC7B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;oBACzB,MAAM,kBAAkB,GAAG,MAAM,IAAA,sCAA8B,EAC7D,YAAY,EACZ,IAAI,CAAC,EAAE,CAAC,aAAa,CACtB,CAAC;oBACF,IAAI,CAAC,kBAAkB,EAAE;wBACvB,MAAM,IAAI,KAAK,CACb,yBAAyB,YAAY,iBAAiB,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAC9E,CAAC;qBACH;oBACD,OAAO,kBAAsC,CAAC;iBAC/C;gBACD,IAAI,QAAQ,GACV,MAAM,IAAA,sCAA8B,EAAC,YAAY,EAAE;oBACjD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;iBAChC,CAAC,CAAC;gBACL,IAAI,QAAQ,EAAE;oBACZ,OAAO,QAAQ,CAAC;iBACjB;gBACD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC1C,QAAQ,GAAG,MAAM,IAAA,sCAA8B,EAC7C,YAAY,EACZ,WAAW,CACZ,CAAC;gBACF,IAAI,QAAQ,EAAE;oBACZ,OAAO,QAAQ,CAAC;iBACjB;gBAED,IAAI,CAAC,QAAQ,EAAE;oBACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,YAAY,GAAG,CAAC,CAAC;iBAC3D;gBACD,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,GAAG,EAAE,CACH,IAAwB,EACxB,UAMI;gBACF,WAAW,EAAE,IAAI;gBACjB,uBAAuB,EAAE,KAAK;gBAC9B,yBAAyB,EAAE,KAAK;aACjC,EACD,EAAE;gBACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;oBAC1B,WAAW,EACT,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW;oBAChE,yBAAyB,EACvB,OAAO,CAAC,yBAAyB,KAAK,SAAS;wBAC7C,CAAC,CAAC,KAAK;wBACP,CAAC,CAAC,OAAO,CAAC,yBAAyB;oBACvC,uBAAuB,EACrB,OAAO,CAAC,uBAAuB,KAAK,SAAS;wBAC3C,CAAC,CAAC,KAAK;wBACP,CAAC,CAAC,OAAO,CAAC,uBAAuB;oBACrC,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,GAAG,EAAE,KAAK;oBACV,aAAa,EAAE,KAAK;iBACrB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,KAAK,EACZ,IAAwB,EACxB,OAGC,EACD,EAAE;gBACF,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;gBACrC,OAAO,mBAAI,gBAAgB,EAAE,IAAI,IAAK,OAAO,CAAC,CAAC;gBAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;oBAC5B,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;iBACf;gBACD,MAAM,SAAS,GAAG,UAAU,CAAC;gBAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBAEtD,IAAI,UAAU,GAAG,SAAS,CAAC;gBAC3B,IAAI,IAAI,KAAK,SAAS,EAAE;oBACtB,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACpC;gBAED,IAAI,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;oBACpC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;oBACrD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;oBACvD,IAAI,OAAO,EAAE;wBACX,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;qBAC5B;yBAAM;wBACL,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;qBACzC;iBACF;gBACD,IAAI,aAAa,IAAI,OAAO,CAAC,gBAAgB,EAAE;oBAC7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;oBACzD,IAAI,OAAO,EAAE;wBACX,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;qBAC5B;yBAAM;wBACL,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;qBACxC;iBACF;gBACD,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;oBACzB,WAAW,EAAE,CAAC,OAAO,CAAC,uBAAuB;oBAC7C,uBAAuB,EAAE,KAAK;oBAC9B,yBAAyB,EAAE,KAAK;oBAChC,GAAG,EAAE,KAAK;oBACV,aAAa,EAAE,KAAK;iBACrB,CAAC,CAAC;gBAEH,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBACpC,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;YAC7B,CAAC;YACD,aAAa,EAAE,CAAO,IAAuB,EAAE,EAAE;gBAC/C,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC;gBACpD,OAAO,KAAK,EAAE,OAAW,EAAE,EAAE;oBAC3B,IAAI,EAAE,GAAG,MAAM,CAAC;oBAChB,IAAI,OAAO,KAAK,SAAS,EAAE;wBACzB,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;qBACnC;oBACD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;oBACvC,IAAI,KAAK,EAAE;wBACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;wBACjD,IAAI,OAAO,EAAE;4BACX,OAAO,KAAK,CAAC,IAAI,CAAC;yBACnB;qBACF;oBACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;oBAC3C,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;oBAClC,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC;YACJ,CAAC;YACD,GAAG,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;gBACtB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE;oBACtB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;iBACtB;YACH,CAAC;YACD,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;YAC3C,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE;SACzB,CAAC;QAEtB,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE;YAC5B,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE;gBACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aAC3B;QACH,CAAC,CAAC;QAEF,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtB,MAAM,OAAO,GAAG,IAAA,oBAAU,EACxB,IAAI,EACJ,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,gBAAgB,CAAC,WAAW,EACjC,KAAK,EACH,IAAY,EACZ,UAAgC,EAChC,YAAqB,EACN,EAAE;YACjB,IACE,YAAY;gBACZ,IAAI,CAAC,EAAE,CAAC,uBAAuB;gBAC/B,IAAI,CAAC,OAAO,CAAC,eAAe,EAC5B;gBACA,yCAAyC;gBACzC,MAAM,gBAAgB,GACpB,MAAM,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;gBAChE,UAAU,mCACL,UAAU,GACV,gBAAgB,CACpB,CAAC;aACH;YACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC,EACD,GAAG,EAAE;YACH,OAAO,IAAI,CAAC,EAAE,CAAC,uBAAuB,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;QACzE,CAAC,EACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAC3B,KAAK,IAAI,EAAE;YACT,uBAAuB;YACvB,IAAI,QAA+B,CAAC;YACpC,IAAI,YAAmC,CAAC;YACxC,IAAI,oBAA2C,CAAC;YAChD,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;gBACpB,QAAQ,GAAG,qBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;aAC7C;iBAAM;gBACL,IAAI,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;oBACxB,YAAY,GAAG,qBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;iBACrD;gBACD,IAAI,IAAI,CAAC,EAAE,CAAC,oBAAoB,EAAE;oBAChC,oBAAoB,GAAG,qBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC;iBACrE;aACF;YACD,OAAO,EAAC,QAAQ,EAAE,YAAY,EAAE,oBAAoB,EAAC,CAAC;QACxD,CAAC,EACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,EACzB,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7B,CAAC;IAGM,YAAY;QACjB,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,OAAO;SACR;QACD,wDAAwD;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,IAAI,WAAW,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACrC,MAAM,aAAa,GAAG,mBAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAClD,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;gBAC3C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;gBAC3C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;aAChD;SACF;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAGM,KAAK,CAAC,UAAU;QACrB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI;YACF,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACjE;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACrE,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACjE;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACvD;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,qBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;SAC1D;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,SAAS,CAAC,OAAgB;QAC/B,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,2BAA2B;QACtC,IAAI,UAAU,GAsBV,EAAE,CAAC;QACP,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAC7B,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,gBAAgB,EAAE,EACvB,sBAAsB,CACvB,CAAC;QACF,IAAI;YACF,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;SACpE;QAAC,OAAO,CAAC,EAAE,GAAE;QACd,MAAM,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAC1C,UAAU,EACV,aAAa,EACb,IAAI,CAAC,EAAE,CAAC,QAAQ,CACjB,CAAC;IACJ,CAAC;IAED,6EAA6E;IACtE,KAAK,CAAC,WAAW,CACtB,EAAuB,EACvB,IAAa;IACb,6EAA6E;IAC7E,UAAgB;;QAEhB,IACE,IAAI,CAAC,EAAE,CAAC,uBAAuB;YAC/B,IAAI,CAAC,OAAO,CAAC,eAAe;YAC5B,IAAI,CAAC,EAAE,CAAC,aAAa,EACrB;YACA,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAChC,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,gBAAgB,EAAE,CACxB,CAAC;YACF,8BAA8B;YAC9B,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;YAC1E,kBAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;YACnC,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC;YACrB,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG;gBACpB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,IAAI,EAAE,EAAE,CAAC,IAAI;oBACb,QAAQ,EAAE,MAAA,EAAE,CAAC,QAAQ,0CAAE,QAAQ,EAAE;oBACjC,YAAY,EAAE,MAAA,EAAE,CAAC,YAAY,0CAAE,QAAQ,EAAE;oBACzC,oBAAoB,EAAE,MAAA,EAAE,CAAC,oBAAoB,0CAAE,QAAQ,EAAE;oBACzD,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE;oBAChC,EAAE,EAAE,EAAE,CAAC,EAAE;oBACT,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE;oBAC1B,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,IAAI,EAAE,EAAE,CAAC,IAAI;oBACb,CAAC,EAAE,EAAE,CAAC,CAAC;oBACP,CAAC,EAAE,EAAE,CAAC,CAAC;oBACP,CAAC,EAAE,EAAE,CAAC,CAAC;oBACP,oCAAoC;oBACpC,OAAO,EAAE,EAAE,CAAC,OAAO;iBACpB,CAAC;YACN,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI;gBACzC,CAAC,CAAC,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAC;gBACpC,CAAC,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;YACrB,kBAAE,CAAC,aAAa,CACd,aAAa,EACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,CACxD,CAAC;YACF,gDAAgD;YAChD,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9B,EAAE,CAAC,IAAI,GAAG,KAAK,EAAE,aAAsB,EAAE,EAAE;gBACzC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC1C,yCAAyC;gBACzC,OAAO,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC5C,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;oBACzD,kBAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;iBAC9B;qBAAM;oBACL,kBAAE,CAAC,aAAa,CACd,aAAa,EACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,CACxD,CAAC;iBACH;gBACD,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACvD,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC;SACH;aAAM;YACL,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9B,EAAE,CAAC,IAAI,GAAG,KAAK,EAAE,aAAsB,EAAE,EAAE;gBACzC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC1C,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACvD,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC;SACH;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC3B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,kBAAkB;QAC7B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,8BAA8B;QAG1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,uBAAuB,CAAC;QACvD,OAAO,OAAO,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,OAAO,CAAC,CAAC;IAC3E,CAAC;IAEM,KAAK,CAAC,wCAAwC;QACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACzD,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,4CAA4C,CAAC;IACvE,CAAC;IAEM,KAAK,CAAC,yCAAyC;QACpD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACzD,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,KAAI,4CAA4C,CAAC;IACxE,CAAC;IAEM,KAAK,CAAC,wCAAwC;QACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACzD,OAAO,qBAAS,CAAC,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAEM,KAAK,CAAC,6CAA6C;QACxD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACzD,OAAO,CACL,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ;YACd,kVAAkV,CACnV,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,eAAe,CAC1B,eAAe,GAAG,IAAI;QAEtB,IAAI,OAA2B,CAAC;QAChC,IAAI,eAAe,EAAE;YACnB,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;SACnC;QAED,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI;YACF,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC1B,UAAU,GAAG,IAAI,CAAC,KAAK,CACrB,kBAAE;iBACC,YAAY,CACX,cAAI,CAAC,IAAI,CACP,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,gBAAgB,EAAE,EACvB,kBAAkB,CACnB,CACF;iBACA,QAAQ,EAAE,CACd,CAAC;SACH;QAAC,OAAO,CAAC,EAAE,GAAE;QACd,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,UAAU,CAAC;QAChC,mDAAmD;QAEnD,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEpD,IAAA,sBAAc,EACZ,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,gBAAgB,EAAE,EACvB,WAAW,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,4CAA4C;SACrG,CAAC;QAEF,MAAM,oBAAoB,GACxB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ;YACxB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW;YACpC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,oBAAoB,EAAE;YACxB,KAAK,MAAM,oBAAoB,IAAI,oBAAoB,EAAE;gBACvD,IAAA,sBAAc,EAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;aACvE;SACF;QAED,IAAI,CAAC,EAAE,CAAC,iBAAiB,GAAG,IAAI,CAAC;QACjC,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,yBAAyB,CAAC,UAAmB;QACxD,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACnD,IAAA,yBAAiB,EAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC;IAEM,gBAAgB;QACrB,OAAO,cAAI,CAAC,IAAI,CACd,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,gBAAgB,EAAE,EACvB,YAAY,CACb,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,IAAY;QACrC,MAAM,MAAM,GACV,IAAI,CAAC,EAAE,CAAC,uBAAuB,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;QAElE,IAAI,MAAM,EAAE;YACV,iCAAiC;YACjC,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAChC,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,gBAAgB,EAAE,CACxB,CAAC;YACF,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAEnD,IAAI;gBACF,kBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;aACzB;YAAC,OAAO,CAAC,EAAE,GAAE;SACf;IACH,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,IAAY;QACnC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;SACH;QAED,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAChC,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,gBAAgB,EAAE,CACxB,CAAC;QAEF,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACnD,OAAO,kBAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,OAAe;QACpD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;SACH;QAED,MAAM,MAAM,GACV,IAAI,CAAC,EAAE,CAAC,uBAAuB,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;QAElE,IAAI,MAAM,EAAE;YACV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAChC,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,gBAAgB,EAAE,CACxB,CAAC;YAEF,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YACnD,kBAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;YACnC,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;YAChE,IAAI,CAAC,kBAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;gBACnC,kBAAE,CAAC,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;aAC5C;YACD,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC1C,kBAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC7B,kBAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SACrC;IACH,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACxC,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEjC,MAAM,MAAM,GACV,IAAI,CAAC,EAAE,CAAC,uBAAuB,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;QAElE,IAAI,MAAM,EAAE;YACV,iCAAiC;YACjC,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CACxB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,gBAAgB,EAAE,EACvB,IAAI,GAAG,OAAO,CACf,CAAC;YAEF,IAAI;gBACF,kBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;aACzB;YAAC,OAAO,CAAC,EAAE,GAAE;SACf;IACH,CAAC;IAEM,KAAK,CAAC,cAAc,CACzB,IAAY,EACZ,UAAgC;;QAEhC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC5C,MAAM,IAAI,KAAK,CACb,0IAA0I,CAC3I,CAAC;SACH;QAED,IACE,OAAO,UAAU,CAAC,OAAO,KAAK,SAAS;YACvC,CAAC,CAAA,MAAA,UAAU,CAAC,OAAO,0CAAE,eAAe,CAAA,EACpC;YACA,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;SACH;QACD,IAAI,OAAO,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC3C;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC5C,MAAM,IAAI,KAAK,CACb,0IAA0I,CAC3I,CAAC;SACH;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAExC,MAAM,MAAM,GACV,IAAI,CAAC,EAAE,CAAC,uBAAuB,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;QAElE,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CACxB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,gBAAgB,EAAE,EACvB,IAAI,GAAG,OAAO,CACf,CAAC;QAEF,0BAA0B;QAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,MAAM,aAAa,GAAG,OAAO;YAC3B,CAAC,CAAC;gBACE,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,OAAO,EACL,OAAO,CAAC,OAAO,IAAK,OAAO,CAAC,OAAqB,CAAC,YAAY;oBAC5D,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;oBAC5B,CAAC,CAAC,OAAO,CAAC,OAAO;gBACrB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,iBAAiB,EACf,OAAO,CAAC,iBAAiB;oBACxB,OAAO,CAAC,iBAA+B,CAAC,YAAY;oBACnD,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,EAAE;oBACtC,CAAC,CAAC,OAAO,CAAC,iBAAiB;gBAC/B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,sDAAsD;QACtD,SAAS,SAAS,CAAC,MAAW,EAAE,KAAwB;YACtD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAU,MAAW,EAAE,GAAG;gBAC1D,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjC,OAAO,MAAM,CAAC;YAChB,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,CAAC;QAED,+BAA+B;QAC/B,SAAS,SAAS,CAAC,CAAM;YACvB,IAAI,CAAC,CAAC,YAAY,EAAE;gBAClB,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;aACrB;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACpB,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;aACzB;YACD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;gBACzB,OAAO,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;aAChC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,UAAU,GAAG,MAAA,UAAU,CAAC,IAAI,0CAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QAEnD,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;YAC7C,CAAC,mBAAK,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAC/B,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,aAAa,EAAE;YACjB,cAAc,GAAG,CAAC,aAAa,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;gBACvB,OAAO,aAAa,CAAC,OAAO,CAAC;aAC9B;SACF;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,IAAI,CAAC,SAAS,CAAC;YACb,OAAO,EAAE,UAAU,CAAC,OAAO,KAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,eAAe,CAAA;YAC7D,GAAG,EAAE,UAAU,CAAC,GAAG;YACnB,eAAe,EACb,UAAU,CAAC,eAAe,KAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,eAAe,CAAA;YAC9D,OAAO,EAAE,aAAa;YACtB,IAAI,EAAE,UAAU;YAChB,cAAc;YACd,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;YAC7C,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;YAC/C,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,sCAAsC;SAC9E,CAAC,CACH,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QAChC,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,eAAe,KAAK,SAAS,EAAE;YAClE,IAAI,cAAc,CAAC;YACnB,IAAI;gBACF,cAAc,GAAG,MAAM,IAAA,mBAAS,EAC9B,IAAI,CAAC,OAAO,CAAC,QAAQ,EACrB,GAAG,CAAC,eAAe,EACnB,IAAI,CACL,CAAC;gBACF,qBAAqB;gBACrB,GAAG,CAAC,OAAO,GAAG,cAAc,CAAC,eAAe,CAAC;gBAC7C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;oBAChB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;iBAClD;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjB,IAAI,MAAM,EAAE;oBACV,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;oBACpC,kBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;iBACzB;gBACD,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACjC,OAAO,KAAK,CAAC,CAAC,qBAAqB;aACpC;SACF;QAED,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QAChC,yDAAyD;QACzD,IAAI,MAAM,EAAE;YACV,qDAAqD;YACrD,IAAI;gBACF,kBAAE,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aACpC;YAAC,OAAO,CAAC,EAAE,GAAE;YACd,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAChC,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,gBAAgB,EAAE,CACxB,CAAC;YACF,IAAI;gBACF,kBAAE,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;aAChC;YAAC,OAAO,CAAC,EAAE,GAAE;YACd,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;YAChE,IAAI,CAAC,kBAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;gBACnC,kBAAE,CAAC,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;aAC5C;YAED,kBAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YAE5D,IAAI,UAAU,CAAC,aAAa,IAAI,UAAU,CAAC,SAAS,EAAE;gBACpD,MAAM,oBAAoB,GAAG,cAAI,CAAC,IAAI,CACpC,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,gBAAgB,EAAE,EACvB,YAAY,CACb,CAAC;gBACF,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CACjC,oBAAoB,EACpB,UAAU,CAAC,aAAa,GAAG,OAAO,CACnC,CAAC;gBACF,IAAI,CAAC,kBAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE;oBACrC,IAAI;wBACF,kBAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;qBACpC;oBAAC,OAAO,CAAC,EAAE,GAAE;oBACd,kBAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;iBAC3D;aACF;SACF;QAED,uBAAuB;QAEvB,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,mBAAmB,CACxB,IAAY,EACZ,yBAA6C;QAE7C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,yBAAyB,CAAC;IAC3D,CAAC;IAEM,KAAK,CAAC,SAAS,CACpB,IAAwB,EACxB,UAWI;QACF,GAAG,EAAE,KAAK;QACV,WAAW,EAAE,IAAI;QACjB,yBAAyB,EAAE,KAAK;QAChC,uBAAuB,EAAE,IAAI;QAC7B,aAAa,EAAE,KAAK;KACrB;;QAED,GAAG,CAAC,WAAW,CAAC,CAAC;QACjB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,OAAO,CAAC,yBAAyB,EAAE;YACrC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YACrC,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACvC,KAAK,MAAM,oBAAoB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;gBACtE,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;gBACtE,gBAAgB,CAAC,yBAAyB,EAAE,CAAC;aAC9C;SACF;QAED,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7B,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,qBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC;QAClE,IAAI,CAAC,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAC5C,IAAI,CAAC,EAAE,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;QAC5D,IAAI,OAAO,CAAC,WAAW,EAAE;YACvB,GAAG,CAAC,iBAAiB,CAAC,CAAC;YACvB,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC;SACzB;QACD,IAAI,CAAC,OAAO,CAAC,yBAAyB,IAAI,OAAO,CAAC,aAAa,EAAE;YAC/D,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC,yBAAyB;SACpE;QAED,KAAK,MAAM,oBAAoB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;YACtE,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;YACtE,MAAM,gBAAgB,CAAC,eAAe,EAAE,CAAC;YACzC,gBAAgB,CAAC,EAAE,CAAC,uBAAuB;gBACzC,OAAO,CAAC,uBAAuB,CAAC;YAClC,gBAAgB,CAAC,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;YAC1D,gBAAgB,CAAC,EAAE,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;YAC7C,mDAAmD;YACnD,IAAI,OAAO,CAAC,WAAW,EAAE;gBACvB,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBACvB,gBAAgB,CAAC,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC;gBACrC,gBAAgB,CAAC,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC;aACrC;YACD,IAAI,CAAC,OAAO,CAAC,yBAAyB,IAAI,OAAO,CAAC,aAAa,EAAE;gBAC/D,MAAM,gBAAgB,CAAC,2BAA2B,EAAE,CAAC,CAAC,yBAAyB;aAChF;SACF;QAED,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAClD,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;SACf;QAED,IAAI,MAAA,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,0CAAE,SAAS,EAAE;YACvC,KAAK,MAAM,iBAAiB,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE;gBAClE,IAAI,iBAAiB,CAAC,MAAM,EAAE;oBAC5B,IAAI,CAAC,EAAE,CAAC,aAAa,GAAG,iBAAiB,CAAC,SAAS,CAAC;oBACpD,IAAI;wBACF,MAAM,IAAI,CAAC,oBAAoB,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;qBACnE;4BAAS;wBACR,IAAI,CAAC,EAAE,CAAC,aAAa,GAAG,SAAS,CAAC;qBACnC;iBACF;aACF;SACF;QAED,MAAM,WAAW,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAEnD,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE3B,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAC/B,kBAA4B,EAC5B,IAAe;QAEf,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAAC,uBAAuB,CAAC;QAC3D,sCAAsC;QACtC,2JAA2J;QAE3J,IAAI,SAAS,CAAC;QACd,IAAI;YACF,SAAS,GAAG,IAAA,iCAAyB,EAAC,kBAAkB,CAAC,CAAC;SAC3D;QAAC,OAAO,CAAC,EAAE;YACV,OAAO;SACR;QACD,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;YAClD,IAAI,CAAC,GAAG,CAAC,EAAE;gBACT,OAAO,CAAC,CAAC,CAAC;aACX;YACD,IAAI,CAAC,GAAG,CAAC,EAAE;gBACT,OAAO,CAAC,CAAC;aACV;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAEnC,MAAM,cAAc,GAAyC,EAAE,CAAC;QAChE,MAAM,cAAc,GAA8B,EAAE,CAAC;QACrD,MAAM,eAAe,GAAa,EAAE,CAAC;QACrC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,MAAM,cAAc,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,UAA0B,CAAC;YAC/B,6CAA6C;YAC7C,IAAI;gBACF,OAAO,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,wEAAwE;gBAC9G,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;gBACrC,IAAK,UAAkB,CAAC,OAAO,EAAE;oBAC/B,UAAU,GAAI,UAAkB,CAAC,OAAyB,CAAC;iBAC5D;gBACD,cAAc,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC;aAC7C;YAAC,OAAO,CAAC,EAAE;gBACV,sCAAsC;gBACtC,MAAM,IAAI,KAAK,CACb,gCAAgC;oBAC9B,QAAQ;oBACR,KAAK;oBACL,CAAE,CAAS,CAAC,KAAK,IAAI,CAAC,CAAC,CAC1B,CAAC;aACH;YACD,wDAAwD;YACxD,IAAI,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;YACjC,IAAI,UAAU,KAAK,SAAS,EAAE;gBAC5B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;oBAClC,UAAU,GAAG,CAAC,UAAU,CAAC,CAAC;iBAC3B;gBACD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;oBAC5B,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBACzB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;qBAC/C;oBACD,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBACtC,cAAc,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;oBAC1B,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBAC1B;aACF;YACD,2DAA2D;YAC3D,IAAI,IAAI,KAAK,SAAS,EAAE;gBACtB,IAAI,KAAK,GAAG,KAAK,CAAC;gBAClB,IAAI,UAAU,KAAK,SAAS,EAAE;oBAC5B,KAAK,MAAM,SAAS,IAAI,IAAI,EAAE;wBAC5B,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;4BAC5B,IAAI,GAAG,KAAK,SAAS,EAAE;gCACrB,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gCACrC,KAAK,GAAG,IAAI,CAAC;gCACb,MAAM;6BACP;yBACF;wBACD,IAAI,KAAK,EAAE;4BACT,MAAM;yBACP;qBACF;iBACF;aACF;iBAAM;gBACL,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACtC;SACF;QACD,GAAG,CAAC,eAAe,CAAC,CAAC;QAErB,oCAAoC;QACpC,MAAM,sBAAsB,GAAkC,EAAE,CAAC;QACjE,MAAM,YAAY,GAGb,EAAE,CAAC;QACR,MAAM,oBAAoB,GAGrB,EAAE,CAAC;QACR,SAAS,mBAAmB,CAAC,cAAsB;YACjD,IAAI,sBAAsB,CAAC,cAAc,CAAC,EAAE;gBAC1C,OAAO;aACR;YACD,MAAM,UAAU,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;YAClD,IAAI,UAAU,CAAC,YAAY,EAAE;gBAC3B,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,YAAY,EAAE;oBAChD,MAAM,oBAAoB,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;oBACxD,IAAI,oBAAoB,EAAE;wBACxB,KAAK,MAAM,mBAAmB,IAAI,oBAAoB,EAAE;4BACtD,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;yBAC1C;qBACF;iBACF;aACF;YACD,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,EAAE;gBAC3C,IAAI,UAAU,CAAC,WAAW,EAAE;oBAC1B,oBAAoB,CAAC,IAAI,CAAC;wBACxB,QAAQ,EAAE,cAAc;wBACxB,IAAI,EAAE,UAAU;qBACjB,CAAC,CAAC;iBACJ;qBAAM;oBACL,YAAY,CAAC,IAAI,CAAC;wBAChB,QAAQ,EAAE,cAAc;wBACxB,IAAI,EAAE,UAAU;qBACjB,CAAC,CAAC;iBACJ;gBACD,sBAAsB,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;aAC/C;QACH,CAAC;QACD,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE;YAC5C,mBAAmB,CAAC,cAAc,CAAC,CAAC;SACrC;QACD,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAE9B,IAAI;YACF,KAAK,MAAM,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE;gBACpE,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACtD,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;oBACpE,GAAG,CACD,YAAY,QAAQ,8CAA8C,CACnE,CAAC;oBACF,SAAS;iBACV;gBACD,IAAI,IAAI,GAAG,KAAK,CAAC;gBACjB,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE;oBAC1B,GAAG,CAAC,mBAAmB,YAAY,CAAC,QAAQ,IAAI,CAAC,CAAC;oBAClD,IAAI;wBACF,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBAC/C;oBAAC,OAAO,CAAC,EAAE;wBACV,mCAAmC;wBACnC,MAAM,IAAI,KAAK,CACb,gCAAgC;4BAC9B,YAAY,CAAC,QAAQ;4BACrB,KAAK;4BACL,CAAE,CAAS,CAAC,KAAK,IAAI,CAAC,CAAC,CAC1B,CAAC;qBACH;oBACD,GAAG,CAAC,qBAAqB,YAAY,CAAC,QAAQ,WAAW,CAAC,CAAC;iBAC5D;gBACD,IAAI,CAAC,IAAI,EAAE;oBACT,GAAG,CAAC,cAAc,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC3C,IAAI,MAAM,CAAC;oBACX,IAAI;wBACF,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBAC5C;oBAAC,OAAO,CAAC,EAAE;wBACV,wCAAwC;wBACxC,MAAM,IAAI,KAAK,CACb,mBAAmB;4BACjB,YAAY,CAAC,QAAQ;4BACrB,KAAK;4BACL,CAAE,CAAS,CAAC,KAAK,IAAI,CAAC,CAAC,CAC1B,CAAC;qBACH;oBACD,GAAG,CAAC,aAAa,YAAY,CAAC,QAAQ,WAAW,CAAC,CAAC;oBACnD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE;wBACzC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE;4BACzB,MAAM,IAAI,KAAK,CACb,GAAG,YAAY,CAAC,QAAQ,+HAA+H,CACxJ,CAAC;yBACH;wBACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CACnD,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAClB,CAAC;wBAEF,MAAM,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBAErD,sEAAsE;wBACtE,MAAM,MAAM,GACV,IAAI,CAAC,EAAE,CAAC,uBAAuB,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;wBAClE,IAAI,MAAM,EAAE;4BACV,IAAI;gCACF,kBAAE,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;6BACpC;4BAAC,OAAO,CAAC,EAAE,GAAE;4BACd,IAAI;gCACF,kBAAE,CAAC,SAAS,CACV,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,CACtD,CAAC;6BACH;4BAAC,OAAO,CAAC,EAAE,GAAE;4BACd,kBAAE,CAAC,aAAa,CACd,cAAI,CAAC,IAAI,CACP,IAAI,CAAC,eAAe,EACpB,oBAAoB,EACpB,kBAAkB,CACnB,EACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAC/C,CAAC;yBACH;qBACF;iBACF;aACF;SACF;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,EAAE,CAAC,uBAAuB,GAAG,kBAAkB,CAAC;YACrD,MAAM,CAAC,CAAC;SACT;QACD,IAAI,CAAC,EAAE,CAAC,uBAAuB,GAAG,kBAAkB,CAAC;QACrD,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,OAGnB;QACC,IAAI,OAA2B,CAAC;QAChC,IAAI;YACF,OAAO,GAAG,kBAAE;iBACT,YAAY,CACX,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,UAAU,CAAC,CACrE;iBACA,QAAQ,EAAE;iBACV,IAAI,EAAE,CAAC;SACX;QAAC,OAAO,CAAC,EAAE,GAAE;QACd,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;SACnC;QAED,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE;YACnC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YAC3C,MAAM,GAAG,GAAG,IAAA,0BAAkB,EAC5B,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,eAAe,EACpB,IAAI,EACJ,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CACjE,CAAC;YACF,MAAM,yBAAyB,GAM3B,EAAE,CAAC;YACP,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;YAC/C,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBAC1D,MAAM,UAAU,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBACpD,yBAAyB,CAAC,YAAY,CAAC,GAAG;oBACxC,OAAO,EAAE,UAAU,CAAC,OAAO;oBAC3B,GAAG,EAAE,UAAU,CAAC,GAAG;oBACnB,UAAU,EAAE,UAAU,CAAC,UAAU;iBAClC,CAAC;aACH;YACD,MAAM,cAAc,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACvD,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE;gBAC9B,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;aACnB;iBAAM;gBACL,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;aACtE;YACD,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,cAAc;gBACpB,OAAO;gBACP,SAAS,EAAE,yBAAyB;aACrC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAE3C,GAAG,CAAC,qBAAqB,CAAC,CAAC;SAC5B;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE;YAChC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YACxB,MAAM,yBAAyB,GAM3B,EAAE,CAAC;YACP,IAAI,OAAO,KAAK,SAAS,EAAE;gBACzB,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;gBAC/C,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;oBAC1D,MAAM,UAAU,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;oBACpD,yBAAyB,CAAC,YAAY,CAAC,GAAG;wBACxC,OAAO,EAAE,UAAU,CAAC,OAAO;wBAC3B,GAAG,EAAE,UAAU,CAAC,GAAG;wBACnB,UAAU,EAAE,UAAU,CAAC,UAAU;qBAClC,CAAC;iBACH;aACF;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;aACzC;YACD,MAAM,YAAY,GAAW;gBAC3B,IAAI,EAAE,IAAI,CAAC,wBAAwB,EAAE;gBACrC,OAAO;gBACP,SAAS,EAAE,yBAAyB;aACrC,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACjD,GAAG,CAAC,wBAAwB,CAAC,CAAC;SAC/B;IACH,CAAC;IAEO,aAAa,CAAC,KAAa,EAAE,YAAiB;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,yBAAyB;QAClF,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;YAC5B,IAAI,CAAC,KAAK,EAAE;gBACV,SAAS;aACV;YACD,IAAI,KAAK,KAAK,GAAG,EAAE;gBACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;aAC9B;iBAAM;gBACL,kBAAE,CAAC,aAAa,CAAC,cAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBACzB,kBAAE,CAAC,aAAa,CAAC,KAAK,EAAE,kBAAkB,MAAM,YAAY,CAAC,CAAC;iBAC/D;qBAAM;oBACL,kBAAE,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;iBACjC;aACF;SACF;IACH,CAAC;IAEO,cAAc;QACpB,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE;YAClE,KAAK,MAAM,iBAAiB,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE;gBAClE,WAAW,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;aAClD;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,sBAA+B;QACjD,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,IAAI,CAAC,sBAAsB,EAAE;YACzD,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE;gBACtC,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE;oBAC/B,+BAA+B;oBAC/B,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;iBAC/B;gBACD,IAAI,CAAC,EAAE,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBACjC,6CAA6C;gBAC7C,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE;oBAC7C,uBAAuB,EAAE,IAAI,EAAE,sEAAsE;iBACtG,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE;oBAC/B,+BAA+B;oBAC/B,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;iBAC/B;gBACD,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;aAC9B;SACF;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,IAAU;QAChD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAClD,sBAAsB,EACtB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAClB,CAAC;QACF,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACtE,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG;gBAC1B,KAAK,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,eAAe;gBAChC,QAAQ;gBACR,IAAI;gBACJ,SAAS,EAAE,WAAW,CAAC,IAAI;gBAC3B,WAAW,oBAAM,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;aACtC,CAAC;SACH;QAAC,OAAO,GAAG,EAAE;YACZ,GAAG,CAAC,2BAA2B,CAAC,CAAC;SAClC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,KAK5B;QACC,MAAM,qBAAqB,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1C,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE;YAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;YAC7D,IAAI,aAAa,GAAG,qBAAqB,EAAE;gBACzC,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;aACzC;SACF;QACD,IAAI,OAAO,CAAC;QACZ,IAAI;YACF,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE;gBACvD,KAAK,CAAC,QAAQ;aACf,CAAC,CAAC;SACJ;QAAC,WAAM;YACN,GAAG,CAAC,8BAA8B,CAAC,CAAC;YACpC,OAAO,GAAG,KAAK,CAAC;SACjB;QACD,IAAI,OAAO,EAAE;YACX,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CACrD,oBAAoB,EACpB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CACzB,CAAC;YACF,IAAI,cAAc,EAAE;gBAClB,KAAK,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,oCAAoC;gBAC3G,IAAI,CAAC,EAAE,CAAC,WAAW,qBAAO,KAAK,CAAC,WAAW,CAAC,CAAC;aAC9C;iBAAM;gBACL,4BAA4B;gBAC5B,OAAO,KAAK,CAAC;aACd;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,6BAA6B;QAC3B,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;IAC1C,CAAC;IAEO,cAAc;QACpB,OAAO,IAAA,sBAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAEO,wBAAwB;QAC9B,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE;YACrB,OAAO,WAAW,CAAC;SACpB;QACD,OAAO,IAAA,sBAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAEO,gBAAgB;QACtB,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC;IACzC,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,eAAyB;QACzD,IACE,CAAC,IAAI,CAAC,0BAA0B;YAChC,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAC3C;YACA,OAAO;SACR;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YAChC,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE;gBACrC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;oBACnC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;wBAClC,MAAM,EAAE,4BAA4B;wBACpC,MAAM,EAAE,CAAC,OAAO,CAAC;qBAClB,CAAC,CAAC;iBACJ;gBACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACzC;SACF;IACH,CAAC;IAEM,KAAK,CAAC,aAAa;QAIxB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE;YAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClE,MAAM,EACJ,aAAa,EACb,eAAe,EACf,eAAe,EACf,mBAAmB,GACpB,GAAG,IAAA,4BAAoB,EACtB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAC7B,QAAQ,EACR,OAAO,CACR,CAAC,CAAC,4BAA4B;YAE/B,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;YAEhD,IAAI,CAAC,EAAE,CAAC,aAAa,GAAG,aAAa,CAAC;YACtC,IAAI,CAAC,EAAE,CAAC,eAAe,GAAG,eAAe,CAAC;YAC1C,IAAI,CAAC,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;SAChD;QAED,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa;YACpC,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC,eAAe;SACzC,CAAC;IACJ,CAAC;CACF;AAp+CD,gDAo+CC"}
1
+ {"version":3,"file":"DeploymentsManager.js","sourceRoot":"","sources":["../../src/DeploymentsManager.ts"],"names":[],"mappings":"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"}