hardhat-deploy 0.9.2 → 0.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # hardhat-deploy
2
2
 
3
+ ## 0.9.6
4
+
5
+ ### Patch Changes
6
+
7
+ - if deployment's tx is not found, error out to prevent redeployment by mistake
8
+
9
+ ## 0.9.5
10
+
11
+ ### Patch Changes
12
+
13
+ - add etherscan for avalanche
14
+
15
+ ## 0.9.4
16
+
17
+ ### Patch Changes
18
+
19
+ - add arbitrum testnet etherscan + add missing deps
20
+
21
+ ## 0.9.3
22
+
23
+ ### Patch Changes
24
+
25
+ - fix deterministic function for proxies
26
+
3
27
  ## 0.9.2
4
28
 
5
29
  ### Patch Changes
package/README.md CHANGED
@@ -35,6 +35,7 @@ _A [Hardhat](https://hardhat.org) Plugin For Replicable Deployments And Easy Tes
35
35
  - [`deploy`](#deploy)
36
36
  - [`companionNetworks`](#companionnetworks)
37
37
  - [**3. extra hardhat.config paths' options**](#3-extra-hardhatconfig-paths-options)
38
+ - [**4. deterministicDeployment (ability to specify a deployment factory)**](#4-deterministicdeployment-ability-to-specify-a-deployment-factory)
38
39
  - [Importing deployment from other projects (with truffle support)](#importing-deployment-from-other-projects-with-truffle-support)
39
40
  - [Access to Artifacts (non-deployed contract code and abi)](#access-to-artifacts-non-deployed-contract-code-and-abi)
40
41
  - [How to Deploy Contracts](#how-to-deploy-contracts)
@@ -647,7 +648,6 @@ Using the `deterministicDeployment` it is possible to define a different setup f
647
648
 
648
649
  The information can be defined either as an object
649
650
 
650
-
651
651
  ```js
652
652
  {
653
653
  deterministicDeployment: {
@@ -661,18 +661,18 @@ The information can be defined either as an object
661
661
  }
662
662
  ```
663
663
 
664
- or as an function that returns the information for the deterministic deployment
664
+ or as an function that returns the information for the deterministic deployment
665
665
 
666
666
  ```js
667
667
  {
668
- deterministicDeployment: (network: string) => {
669
- return {
670
- factory: "<factory_address>",
671
- deployer: "<deployer_address>",
672
- funding: "<required_funding_in_wei>",
673
- signedTx: "<raw_signed_tx>",
674
- }
675
- }
668
+ deterministicDeployment: (network: string) => {
669
+ return {
670
+ factory: '<factory_address>',
671
+ deployer: '<deployer_address>',
672
+ funding: '<required_funding_in_wei>',
673
+ signedTx: '<raw_signed_tx>',
674
+ };
675
+ };
676
676
  }
677
677
  ```
678
678
 
@@ -841,6 +841,7 @@ export interface DeploymentsExtension {
841
841
  options: Create2DeployOptions
842
842
  ): Promise<{
843
843
  address: Address;
844
+ implementationAddress?: Address;
844
845
  deploy(): Promise<DeployResult>;
845
846
  }>;
846
847
  fetchIfDifferent( // return true if new compiled code is different than deployed contract
@@ -1160,8 +1161,8 @@ it matches:
1160
1161
 
1161
1162
  - `EIP173ProxyWithReceive`: Same as above except that the proxy contains a receive hook to accept empty ETH payment.
1162
1163
 
1163
- - `OpenZeppelinTransparentProxy`: Use Openzeppelin Transparent Proxy (slightly modified as openzeppelin's one hardcode the msg.sender as first owner, see code [here](solc_0.7\openzeppelin\proxy\TransparentUpgradeableProxy.sol))
1164
- 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
1164
+ - `OpenZeppelinTransparentProxy`: Use Openzeppelin Transparent Proxy (copied from openzeppelin repo, see code [here](solc_0.7/openzeppelin/proxy/TransparentUpgradeableProxy.sol))
1165
+ 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
1165
1166
 
1166
1167
  - `OptimizedTransparentProxy`: This contract is similar to above, except that it is optimized to not require storage read for the admin on every call.
1167
1168
 
@@ -1 +1 @@
1
- {"version":3,"file":"etherscan.d.ts","sourceRoot":"","sources":["../../src/etherscan.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,yBAAyB,EAAC,MAAM,eAAe,CAAC;AA6FxD,wBAAsB,aAAa,CACjC,GAAG,EAAE,yBAAyB,EAC9B,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE;IACP,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GACA,OAAO,CAAC,IAAI,CAAC,CAqUf"}
1
+ {"version":3,"file":"etherscan.d.ts","sourceRoot":"","sources":["../../src/etherscan.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,yBAAyB,EAAC,MAAM,eAAe,CAAC;AA6FxD,wBAAsB,aAAa,CACjC,GAAG,EAAE,yBAAyB,EAC9B,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE;IACP,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GACA,OAAO,CAAC,IAAI,CAAC,CA2Uf"}
@@ -149,6 +149,12 @@ async function submitSources(hre, solcInputsPath, config) {
149
149
  case '42161':
150
150
  host = 'https://api.arbiscan.io';
151
151
  break;
152
+ case '421611':
153
+ host = 'https://api-testnet.arbiscan.io';
154
+ break;
155
+ case '43114':
156
+ host = 'https://api.snowtrace.io';
157
+ break;
152
158
  default:
153
159
  return logError(`Network with chainId: ${chainId} not supported`);
154
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"etherscan.js","sourceRoot":"","sources":["../../src/etherscan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"etherscan.js","sourceRoot":"","sources":["../../src/etherscan.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,mBAAmB,EAEpB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAKnD,OAAO,EAGL,oBAAoB,EAKpB,OAAO,EAKP,oBAAoB,EAKrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAelD,OAAO,EAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAClE,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AA2KxD,wBAAgB,UAAU,CACxB,iBAAiB,EAAE,kBAAkB,EACrC,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,EAChD,cAAc,EAAE,CACd,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,oBAAoB,EAChC,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC,IAAI,CAAC,EAClB,cAAc,EAAE,MAAM,OAAO,EAC7B,WAAW,EAAE,CACX,UAAU,EAAE,mBAAmB,EAC/B,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,GAAG,KACP,OAAO,CAAC,mBAAmB,CAAC,EACjC,WAAW,EAAE,MAAM,OAAO,CAAC;IACzB,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,YAAY,EAAE,SAAS,GAAG,SAAS,CAAC;IACpC,oBAAoB,EAAE,SAAS,GAAG,SAAS,CAAC;CAC7C,CAAC,EACF,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAC7B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC3B;IACD,SAAS,EAAE,oBAAoB,CAAC;IAChC,KAAK,EAAE;QACL,2BAA2B,EAAE,CAC3B,UAAU,EAAE;YACV,CAAC,MAAM,EAAE,MAAM,GAAG;gBAChB,IAAI,EAAE,MAAM,CAAC;gBACb,UAAU,CAAC,EAAE,GAAG,CAAC;gBACjB,KAAK,EAAE,MAAM,CAAC;gBACd,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM,CAAC;oBACb,QAAQ,CAAC,EAAE,MAAM,CAAC;oBAClB,YAAY,CAAC,EAAE,MAAM,CAAC;oBACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;oBAC9B,QAAQ,EAAE,MAAM,CAAC;oBACjB,EAAE,EAAE,MAAM,CAAC;oBACX,KAAK,EAAE,MAAM,CAAC;oBACd,KAAK,EAAE,MAAM,CAAC;oBACd,IAAI,EAAE,MAAM,CAAC;oBACb,CAAC,EAAE,MAAM,CAAC;oBACV,CAAC,EAAE,MAAM,CAAC;oBACV,CAAC,EAAE,MAAM,CAAC;oBAEV,OAAO,EAAE,MAAM,CAAC;iBACjB,CAAC;aACH,CAAC;SACH,EACD,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GAAG,SAAS,KAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;KACpB,CAAC;CACH,CAqrEA;AAMD,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,OAAO,CAAC,CAoBlB"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,mBAAmB,EAEpB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAKnD,OAAO,EAGL,oBAAoB,EAKpB,OAAO,EAKP,oBAAoB,EAMrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAelD,OAAO,EAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAClE,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AA2KxD,wBAAgB,UAAU,CACxB,iBAAiB,EAAE,kBAAkB,EACrC,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,EAChD,cAAc,EAAE,CACd,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,oBAAoB,EAChC,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC,IAAI,CAAC,EAClB,cAAc,EAAE,MAAM,OAAO,EAC7B,WAAW,EAAE,CACX,UAAU,EAAE,mBAAmB,EAC/B,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,GAAG,KACP,OAAO,CAAC,mBAAmB,CAAC,EACjC,WAAW,EAAE,MAAM,OAAO,CAAC;IACzB,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,YAAY,EAAE,SAAS,GAAG,SAAS,CAAC;IACpC,oBAAoB,EAAE,SAAS,GAAG,SAAS,CAAC;CAC7C,CAAC,EACF,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAC7B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC3B;IACD,SAAS,EAAE,oBAAoB,CAAC;IAChC,KAAK,EAAE;QACL,2BAA2B,EAAE,CAC3B,UAAU,EAAE;YACV,CAAC,MAAM,EAAE,MAAM,GAAG;gBAChB,IAAI,EAAE,MAAM,CAAC;gBACb,UAAU,CAAC,EAAE,GAAG,CAAC;gBACjB,KAAK,EAAE,MAAM,CAAC;gBACd,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM,CAAC;oBACb,QAAQ,CAAC,EAAE,MAAM,CAAC;oBAClB,YAAY,CAAC,EAAE,MAAM,CAAC;oBACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;oBAC9B,QAAQ,EAAE,MAAM,CAAC;oBACjB,EAAE,EAAE,MAAM,CAAC;oBACX,KAAK,EAAE,MAAM,CAAC;oBACd,KAAK,EAAE,MAAM,CAAC;oBACd,IAAI,EAAE,MAAM,CAAC;oBACb,CAAC,EAAE,MAAM,CAAC;oBACV,CAAC,EAAE,MAAM,CAAC;oBACV,CAAC,EAAE,MAAM,CAAC;oBAEV,OAAO,EAAE,MAAM,CAAC;iBACjB,CAAC;aACH,CAAC;SACH,EACD,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GAAG,SAAS,KAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;KACpB,CAAC;CACH,CA63EA;AAMD,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,OAAO,CAAC,CAoBlB"}
@@ -353,34 +353,89 @@ function addHelpers(deploymentManager, partialExtension, network, getArtifact, s
353
353
  }
354
354
  async function deterministic(name, options) {
355
355
  options = Object.assign({}, options); // ensure no change
356
- // TODO refactor to share that code:
357
- const args = options.args ? [...options.args] : [];
358
356
  await init();
359
- const { ethersSigner, unknown, address: from } = getFrom(options.from);
360
- const artifactInfo = await getArtifactFromOptions(name, options);
361
- const { artifact } = artifactInfo;
362
- const abi = artifact.abi;
363
- const byteCode = linkLibraries(artifact, options.libraries);
364
- const factory = new contracts_1.ContractFactory(abi, byteCode, ethersSigner);
365
- const numArguments = factory.interface.deploy.inputs.length;
366
- if (args.length !== numArguments) {
367
- throw new Error(`expected ${numArguments} constructor arguments, got ${args.length}`);
368
- }
369
- const unsignedTx = factory.getDeployTransaction(...args);
370
- if (unknown) {
371
- throw new errors_1.UnknownSignerError(Object.assign({ from }, JSON.parse(JSON.stringify(unsignedTx))));
372
- }
373
- if (typeof unsignedTx.data !== 'string') {
374
- throw new Error('unsigned tx data as bytes not supported');
375
- }
376
- else {
357
+ const deployFunction = () => deploy(name, Object.assign(Object.assign({}, options), { deterministicDeployment: options.salt || true }));
358
+ if (options.proxy) {
359
+ /* eslint-disable prefer-const */
360
+ let { viaAdminContract, proxyAdminDeployed, proxyAdminName, proxyAdminContract, owner, proxyAdmin, currentProxyAdminOwner, artifact, implementationArgs, implementationName, implementationOptions, proxyName, proxyContract, mergedABI, updateMethod, updateArgs, } = await _getProxyInfo(name, options);
361
+ /* eslint-enable prefer-const */
362
+ const { address: implementationAddress } = await deterministic(implementationName, Object.assign(Object.assign({}, implementationOptions), { salt: options.salt }));
363
+ const implementationContract = new contracts_1.Contract(implementationAddress, artifact.abi);
364
+ let data = '0x';
365
+ if (updateMethod) {
366
+ updateArgs = updateArgs || [];
367
+ if (!implementationContract[updateMethod]) {
368
+ throw new Error(`contract need to implement function ${updateMethod}`);
369
+ }
370
+ const txData = await implementationContract.populateTransaction[updateMethod](...updateArgs);
371
+ data = txData.data || '0x';
372
+ }
373
+ if (viaAdminContract) {
374
+ if (!proxyAdminName) {
375
+ throw new Error(`no proxy admin name even though viaAdminContract is not undefined`);
376
+ }
377
+ if (!proxyAdminDeployed) {
378
+ const { address: proxyAdminAddress } = await deterministic(proxyAdminName, {
379
+ from: options.from,
380
+ autoMine: options.autoMine,
381
+ estimateGasExtra: options.estimateGasExtra,
382
+ estimatedGasLimit: options.estimatedGasLimit,
383
+ gasPrice: options.gasPrice,
384
+ maxFeePerGas: options.maxFeePerGas,
385
+ maxPriorityFeePerGas: options.maxPriorityFeePerGas,
386
+ log: options.log,
387
+ contract: proxyAdminContract,
388
+ salt: options.salt,
389
+ skipIfAlreadyDeployed: true,
390
+ args: [owner],
391
+ waitConfirmations: options.waitConfirmations,
392
+ });
393
+ proxyAdmin = proxyAdminAddress;
394
+ }
395
+ else {
396
+ proxyAdmin = proxyAdminDeployed.address;
397
+ }
398
+ }
399
+ const proxyOptions = Object.assign({}, options); // ensure no change
400
+ delete proxyOptions.proxy;
401
+ delete proxyOptions.libraries;
402
+ proxyOptions.contract = proxyContract;
403
+ proxyOptions.args = [implementationAddress, proxyAdmin, data];
404
+ const { address: proxyAddress } = await deterministic(proxyName, Object.assign(Object.assign({}, proxyOptions), { salt: options.salt }));
377
405
  return {
378
- address: getCreate2Address(await deploymentManager.getDeterministicDeploymentFactoryAddress(), options.salt
379
- ? (0, bytes_1.hexlify)((0, bytes_1.zeroPad)(options.salt, 32))
380
- : '0x0000000000000000000000000000000000000000000000000000000000000000', unsignedTx.data),
381
- deploy: () => deploy(name, Object.assign(Object.assign({}, options), { deterministicDeployment: options.salt || true })),
406
+ address: proxyAddress,
407
+ implementationAddress,
408
+ deploy: deployFunction,
382
409
  };
383
410
  }
411
+ else {
412
+ const args = options.args ? [...options.args] : [];
413
+ const { ethersSigner, unknown, address: from } = getFrom(options.from);
414
+ const artifactInfo = await getArtifactFromOptions(name, options);
415
+ const { artifact } = artifactInfo;
416
+ const abi = artifact.abi;
417
+ const byteCode = linkLibraries(artifact, options.libraries);
418
+ const factory = new contracts_1.ContractFactory(abi, byteCode, ethersSigner);
419
+ const numArguments = factory.interface.deploy.inputs.length;
420
+ if (args.length !== numArguments) {
421
+ throw new Error(`expected ${numArguments} constructor arguments, got ${args.length}`);
422
+ }
423
+ const unsignedTx = factory.getDeployTransaction(...args);
424
+ if (unknown) {
425
+ throw new errors_1.UnknownSignerError(Object.assign({ from }, JSON.parse(JSON.stringify(unsignedTx))));
426
+ }
427
+ if (typeof unsignedTx.data !== 'string') {
428
+ throw new Error('unsigned tx data as bytes not supported');
429
+ }
430
+ else {
431
+ return {
432
+ address: getCreate2Address(await deploymentManager.getDeterministicDeploymentFactoryAddress(), options.salt
433
+ ? (0, bytes_1.hexlify)((0, bytes_1.zeroPad)(options.salt, 32))
434
+ : '0x0000000000000000000000000000000000000000000000000000000000000000', unsignedTx.data),
435
+ deploy: () => deploy(name, Object.assign(Object.assign({}, options), { deterministicDeployment: options.salt || true })),
436
+ };
437
+ }
438
+ }
384
439
  }
385
440
  function getDeployment(name) {
386
441
  return partialExtension.get(name);
@@ -429,11 +484,14 @@ function addHelpers(deploymentManager, partialExtension, network, getArtifact, s
429
484
  return { differences: false, address: undefined }; // TODO check receipt, see below
430
485
  }
431
486
  // TODO transactionReceipt + check for status
487
+ let transactionDetailsAvailable = false;
432
488
  let transaction;
433
489
  if (deployment.receipt) {
490
+ transactionDetailsAvailable = !!deployment.receipt.transactionHash;
434
491
  transaction = await provider.getTransaction(deployment.receipt.transactionHash);
435
492
  }
436
493
  else if (deployment.transactionHash) {
494
+ transactionDetailsAvailable = true;
437
495
  transaction = await provider.getTransaction(deployment.transactionHash);
438
496
  }
439
497
  if (transaction) {
@@ -449,6 +507,15 @@ function addHelpers(deploymentManager, partialExtension, network, getArtifact, s
449
507
  }
450
508
  return { differences: false, address: deployment.address };
451
509
  }
510
+ else {
511
+ if (transactionDetailsAvailable) {
512
+ throw new Error(`cannot get the transaction for ${name}'s previous deployment, please check your node synced status.`);
513
+ }
514
+ else {
515
+ console.error(`no transaction details found for ${name}'s previous deployment, if the deployment is t be discarded, please delete the file`);
516
+ return { differences: false, address: deployment.address };
517
+ }
518
+ }
452
519
  }
453
520
  return { differences: true, address: undefined };
454
521
  }
@@ -528,8 +595,7 @@ function addHelpers(deploymentManager, partialExtension, network, getArtifact, s
528
595
  }
529
596
  }
530
597
  }
531
- // TODO rename
532
- async function _deployViaEIP173Proxy(name, options) {
598
+ async function _getProxyInfo(name, options) {
533
599
  var _a, _b;
534
600
  const oldDeployment = await getDeploymentOrNUll(name);
535
601
  let updateMethod;
@@ -604,10 +670,6 @@ function addHelpers(deploymentManager, partialExtension, network, getArtifact, s
604
670
  else if (typeof options.proxy === 'string') {
605
671
  updateMethod = options.proxy;
606
672
  }
607
- const deployResult = _checkUpgradeIndex(oldDeployment, upgradeIndex);
608
- if (deployResult) {
609
- return deployResult;
610
- }
611
673
  const proxyName = name + '_Proxy';
612
674
  const { address: owner } = getProxyOwner(options);
613
675
  const { address: from } = getFrom(options.from);
@@ -671,9 +733,10 @@ Note that in this case, the contract deployment will not behave the same if depl
671
733
  updateArgs = implementationArgs;
672
734
  }
673
735
  let proxyAdminName;
674
- let proxyAdmin = owner;
736
+ const proxyAdmin = owner;
675
737
  let currentProxyAdminOwner;
676
738
  let proxyAdminDeployed;
739
+ let proxyAdminContract;
677
740
  if (viaAdminContract) {
678
741
  let proxyAdminArtifactNameOrContract;
679
742
  if (typeof viaAdminContract === 'string') {
@@ -687,7 +750,6 @@ Note that in this case, the contract deployment will not behave the same if depl
687
750
  }
688
751
  proxyAdminArtifactNameOrContract = viaAdminContract.artifact;
689
752
  }
690
- let proxyAdminContract;
691
753
  if (typeof proxyAdminArtifactNameOrContract === 'string') {
692
754
  try {
693
755
  proxyAdminContract = await partialExtension.getExtendedArtifact(proxyAdminArtifactNameOrContract);
@@ -705,6 +767,41 @@ Note that in this case, the contract deployment will not behave the same if depl
705
767
  else {
706
768
  proxyAdminContract = proxyAdminArtifactNameOrContract;
707
769
  }
770
+ }
771
+ return {
772
+ proxyName,
773
+ proxyContract,
774
+ mergedABI,
775
+ viaAdminContract,
776
+ proxyAdminDeployed,
777
+ proxyAdminName,
778
+ proxyAdminContract,
779
+ owner,
780
+ proxyAdmin,
781
+ currentProxyAdminOwner,
782
+ artifact,
783
+ implementationArgs,
784
+ implementationName,
785
+ implementationOptions,
786
+ oldDeployment,
787
+ updateMethod,
788
+ updateArgs,
789
+ upgradeIndex,
790
+ };
791
+ }
792
+ // TODO rename
793
+ async function _deployViaEIP173Proxy(name, options) {
794
+ /* eslint-disable prefer-const */
795
+ let { oldDeployment, updateMethod, updateArgs, upgradeIndex, viaAdminContract, proxyAdminDeployed, proxyAdminName, proxyAdminContract, owner, proxyAdmin, currentProxyAdminOwner, artifact, implementationArgs, implementationName, implementationOptions, proxyName, proxyContract, mergedABI, } = await _getProxyInfo(name, options);
796
+ /* eslint-enable prefer-const */
797
+ const deployResult = _checkUpgradeIndex(oldDeployment, upgradeIndex);
798
+ if (deployResult) {
799
+ return deployResult;
800
+ }
801
+ if (viaAdminContract) {
802
+ if (!proxyAdminName) {
803
+ throw new Error(`no proxy admin name even though viaAdminContract is not undefined`);
804
+ }
708
805
  if (!proxyAdminDeployed) {
709
806
  proxyAdminDeployed = await _deployOne(proxyAdminName, {
710
807
  from: options.from,
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":";;;;;;AAEA,wDAIkC;AAClC,oDAAkD;AAClD,wDAIkC;AAClC,wDAAqD;AACrD,wDAAmD;AACnD,kDAA6C;AAC7C,sDAAuE;AACvE,gDAAsD;AACtD,4CAA+D;AAC/D,oCAkBkB;AAElB,qCAA4C;AAC5C,mCAA0C;AAC1C,wDAA0B;AAE1B,6HAAiG;AACjG,+IAAkH;AAClH,2FAAqE;AACrE,6FAAgE;AAChE,mHAAsF;AACtF,qFAA4D;AAC5D,qGAAwE;AACxE,yGAA4E;AAC5E,mGAAsE;AACtE,6FAAgE;AAGhE,wDAAgC;AAChC,8DAGqC;AAErC,IAAI,YAAiB,CAAC,CAAC,YAAY;AAEnC,sBAAW,CAAC,GAAG,GAAG,IAAA,iBAAS,EACzB;IACE,sBAAW,CAAC,GAAG;IACf,8BAAe,CAAC,GAAG;IACnB,gCAAiB,CAAC,GAAG;IACrB,6BAAc,CAAC,GAAG;CACnB,EACD,EAAC,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAC,CAC7C,CAAC;AAEF,KAAK,UAAU,oBAAoB,CAAI,CAAa;IAClD,IAAI,MAAS,CAAC;IACd,IAAI;QACF,MAAM,GAAG,MAAM,CAAC,CAAC;KAClB;IAAC,OAAO,CAAC,EAAE;QACV,IACE,OAAQ,CAAS,CAAC,OAAO,KAAK,QAAQ;YACrC,CAAS,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAClD;YACA,OAAO,CAAC,GAAG,CACT;;;SAGC,CACF,CAAC;YACF,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;YACF,eAAe;YACf,wGAAwG;YACxG,KAAK;YACL,mEAAmE;YACnE,8CAA8C;YAC9C,uBAAuB;YACvB,qBAAqB;YACrB,gFAAgF;YAChF,OAAO;YACP,IAAI;YACJ,+BAA+B;YAC/B,uDAAuD;YACvD,qCAAqC;YACrC,0DAA0D;YAC1D,sBAAsB;YACtB,MAAM;SACP;aAAM;YACL,OAAO,CAAC,KAAK,CAAE,CAAS,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,CAAC;SACT;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,aAAkB;IACrC,kDAAkD;IAClD,IAAI,aAAa,CAAC,SAAS,KAAK,SAAS,EAAE;QACzC,aAAa,CAAC,SAAS,GAAG,CACxB,GAKC,EACD,QAA2C,EAC3C,EAAE;YACF,aAAa;iBACV,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC;iBAC5B,IAAI,CAAC,CAAC,MAAW,EAAE,EAAE,CACpB,QAAQ,CAAC,IAAI,EAAE,EAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAC,CAAC,CAC3D;iBACA,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC;KACH;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,OAAO,CAAC,MAAgB,EAAE,KAAe;IAChD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;QACtB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;YAC3B,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CACrB,QAAgB,EAChB,WAAmB,EACnB,cAAsB;IAEtB,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjD,IAAI,kBAAkB,CAAC;IACvB,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC5D,kBAAkB,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACnE;SAAM;QACL,kBAAkB,GAAG,IAAA,oBAAiB,EAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CACrE,CAAC,EACD,EAAE,CACH,CAAC;KACH;IACD,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,QAAQ,kBAAkB,OAAO,EAAE,GAAG,CAAC,CAAC;IACnE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CACb,eAAe,WAAW,MAAM,kBAAkB,iBAAiB,QAAQ,UAAU,CACtF,CAAC;KACH;IACD,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAgB,EAChB,SAA2C;IAE3C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QAC5C,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QACtC,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;KAC1D;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CACpB,QAOC,EACD,SAA4C;IAE5C,IAAI,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAEjC,IAAI,SAAS,EAAE;QACb,IAAI,QAAQ,CAAC,cAAc,EAAE;YAC3B,6DAA6D;YAC7D,KAAK,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CACrD,QAAQ,CAAC,cAAc,CACxB,EAAE;gBACD,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;oBAC9D,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;oBAChC,IAAI,IAAI,KAAK,SAAS,EAAE;wBACtB,SAAS;qBACV;oBAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;wBAC1B,QAAQ;4BACN,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;gCACvC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gCACd,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;qBACzD;iBACF;aACF;SACF;aAAM;YACL,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;SAClD;KACF;IAED,8EAA8E;IAE9E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAgB,UAAU,CACxB,iBAAqC,EACrC,gBAAkC,EAClC,OAAgB,EAChB,WAAgD,EAChD,cAIkB,EAClB,cAA6B,EAC7B,WAIiC,EACjC,WAIE,EACF,GAA6B,EAC7B,KAA4B;IAiC5B,IAAI,QAAsB,CAAC;IAC3B,MAAM,iBAAiB,GAA8B,EAAE,CAAC;IAExD,KAAK,UAAU,IAAI;QACjB,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,IAAI,wBAAY,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC3D,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBACzD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;oBAC9B,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC;iBACjD;gBAED,KAAK,MAAM,OAAO,IAAI,iBAAiB,CAAC,oBAAoB,EAAE;oBAC5D,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC;iBACjD;aACF;YAAC,OAAO,CAAC,EAAE,GAAE;SACf;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,UAAU,aAAa,CAC1B,oBAA2D;QAE3D,MAAM,aAAa,GAAG,MAAM,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE;YAClC,oBAAoB,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;SACxD;QACD,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE;YACtC,oBAAoB,CAAC,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC;SAChE;QACD,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,EAAE;YAC9C,oBAAoB,CAAC,oBAAoB;gBACvC,aAAa,CAAC,oBAAoB,CAAC;SACtC;IACH,CAAC;IAED,KAAK,UAAU,UAAU,CACvB,IAAY,EACZ,oBAA2D;QAE3D,IACE,oBAAoB,CAAC,KAAK,KAAK,SAAS;YACxC,oBAAoB,CAAC,KAAK,KAAK,QAAQ,EACvC;YACA,oBAAoB,CAAC,KAAK,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAC7D,IAAI,EACJ,oBAAoB,CAAC,KAAK,CAC3B,CAAC;SACH;aAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE;YACtC,oBAAoB,CAAC,KAAK,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAC7D,IAAI,EACJ,QAAQ,CACT,CAAC;SACH;IACH,CAAC;IAED,KAAK,UAAU,gBAAgB,CAC7B,oBAA2D,EAC3D,OAGC,EACD,QAEuB;QAEvB,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB;YACjD,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;YACtD,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB;YAC/C,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;YACrD,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE;YAClC,oBAAoB,CAAC,QAAQ,GAAG,iBAAiB,CAAC;YAClD,oBAAoB,CAAC,QAAQ,GAAG,CAC9B,MAAM,QAAQ,CAAC,oBAAoB,CAAC,CACrC,CAAC,QAAQ,EAAE,CAAC;YACb,IAAI,gBAAgB,EAAE;gBACpB,oBAAoB,CAAC,QAAQ;oBAC3B,oBAAoB,CAAC,QAAQ,GAAG,gBAAgB,CAAC;gBACnD,IAAI,iBAAiB,EAAE;oBACrB,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CACtC,oBAAoB,CAAC,QAAQ,EAC7B,iBAAiB,CAClB,CAAC;iBACH;aACF;SACF;IACH,CAAC;IAED,SAAS,iBAAiB,CACxB,sBAA+B,EAC/B,IAAY,EACZ,QAAgB;QAEhB,OAAO,IAAA,oBAAU,EACf,IAAI;YACF,IAAA,oBAAiB,EACf,CAAC,OAAO,CAAC,EACT;gBACE,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CACjD,CAAC,CACF,GAAG,IAAA,oBAAiB,EAAC,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;aACxD,CACF,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CACf,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,0BAA0B,CAAC,OAMzC;QACC,MAAM,EACJ,OAAO,EAAE,IAAI,EACb,YAAY,EACZ,cAAc,EACd,OAAO,GACR,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,sBAAsB,GAAG,MAAM,iBAAiB,CAAC,wCAAwC,EAAE,CAAC;QAClG,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC5D,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,yCAAyC,EAAE,CAAC;YAE1F,iCAAiC;YACjC,MAAM,SAAS,GAAG;gBAChB,EAAE,EAAE,aAAa;gBACjB,KAAK,EAAE,CAAC,MAAM,iBAAiB,CAAC,wCAAwC,EAAE,CAAC,CAAC,WAAW,EAAE;gBACzF,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;aACnD,CAAC;YACF,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;YAC/B,MAAM,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAElC,IAAI,OAAO,EAAE;gBACX,MAAM,IAAI,2BAAkB,iBAC1B,IAAI,IACD,SAAS,EACZ,CAAC;aACJ;YAED,IAAI,OAAO,CAAC,GAAG,IAAI,cAAc,EAAE;gBACjC,KAAK,CACH,qDAAqD,aAAa,GAAG,CACtE,CAAC;gBACF,IAAI,cAAc,EAAE;oBAClB,KAAK,CAAC,4BAA4B,cAAc,GAAG,CAAC,CAAC;iBACtD;aACF;YAED,IAAI,KAAK,GAAG,MAAM,oBAAoB,CACpC,YAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CACxC,CAAC;YACF,IAAI,OAAO,CAAC,GAAG,IAAI,cAAc,EAAE;gBACjC,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC;aAChC;YACD,KAAK,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YAEnB,IAAI,OAAO,CAAC,GAAG,IAAI,cAAc,EAAE;gBACjC,KAAK,CACH,2CAA2C,sBAAsB,+FAA+F,CACjK,CAAC;gBACF,IAAI,cAAc,EAAE;oBAClB,KAAK,CAAC,4BAA4B,cAAc,GAAG,CAAC,CAAC;iBACtD;aACF;YACD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAC7C,MAAM,iBAAiB,CAAC,6CAA6C,EAAE,CACxE,CAAC;YACF,IAAI,OAAO,CAAC,GAAG,IAAI,cAAc,EAAE;gBACjC,GAAG,CAAC,SAAS,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC;aACnC;YACD,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;SACvB;QACD,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,KAAK,UAAU,sBAAsB,CACnC,IAAY,EACZ,OAAsB;QAKtB,IAAI,QAAkB,CAAC;QACvB,IAAI,YAAgC,CAAC;QACrC,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBACxC,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAChC,QAAQ,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,CAAC;aAC5C;iBAAM;gBACL,QAAQ,GAAG,OAAO,CAAC,QAAoB,CAAC,CAAC,uBAAuB;aACjE;SACF;aAAM;YACL,YAAY,GAAG,IAAI,CAAC;YACpB,QAAQ,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,CAAC;SAC5C;QACD,OAAO,EAAC,QAAQ,EAAE,YAAY,EAAC,CAAC;IAClC,CAAC;IAED,KAAK,UAAU,iBAAiB,CAC9B,IAAY,EACZ,OAAsB;QAEtB,2BAA2B;QAC3B,MAAM,EAAC,QAAQ,EAAE,YAAY,EAAC,GAAG,MAAM,sBAAsB,CAC3D,IAAI,EACJ,OAAO,CACR,CAAC;QACF,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5D,OAAO,EAAC,QAAQ,kCAAM,QAAQ,KAAE,QAAQ,EAAE,QAAQ,GAAC,EAAE,YAAY,EAAC,CAAC;IACrE,CAAC;IAED,KAAK,UAAU,OAAO,CACpB,IAAY,EACZ,OAAsB;QAEtB,MAAM,IAAI,GAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,EAAE,CAAC;QACb,MAAM,EACJ,OAAO,EAAE,IAAI,EACb,YAAY,EACZ,cAAc,EACd,OAAO,GACR,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE1B,MAAM,EAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAC,GAAG,MAAM,iBAAiB,CACtE,IAAI,EACJ,OAAO,CACR,CAAC;QAEF,MAAM,SAAS,GAAqB;YAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;YAClD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,2BAAe,CACjC,cAAc,CAAC,GAAG,EAClB,cAAc,CAAC,QAAQ,EACvB,YAAY,CACb,CAAC;QACF,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE;YAChC,MAAM,IAAI,KAAK,CACb,YAAY,YAAY,+BAA+B,IAAI,CAAC,MAAM,EAAE,CACrE,CAAC;SACH;QACD,MAAM,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC;QAEpE,IAAI,cAAc,CAAC;QACnB,IAAI,OAAO,CAAC,uBAAuB,EAAE;YACnC,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACvC,MAAM,sBAAsB,GAAG,MAAM,0BAA0B,CAC7D,OAAO,CACR,CAAC;gBACF,MAAM,WAAW,GACf,OAAO,OAAO,CAAC,uBAAuB,KAAK,QAAQ;oBACjD,CAAC,CAAC,IAAA,eAAO,EAAC,IAAA,eAAO,EAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;oBACvD,CAAC,CAAC,oEAAoE,CAAC;gBAC3E,cAAc,GAAG,iBAAiB,CAChC,sBAAsB,EACtB,WAAW,EACX,UAAU,CAAC,IAAI,CAChB,CAAC;gBACF,UAAU,CAAC,EAAE,GAAG,sBAAsB,CAAC;gBAEvC,UAAU,CAAC,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC1D;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;aAC5D;SACF;QAED,MAAM,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,EAAE,CAC3D,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,CACvC,CAAC;QACF,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;QAChC,MAAM,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAEnC,IAAI,OAAO,EAAE;YACX,MAAM,IAAI,2BAAkB,iBAC1B,IAAI,IACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EACzC,CAAC;SACJ;QAED,IAAI,OAAO,CAAC,GAAG,IAAI,cAAc,EAAE;YACjC,KAAK,CAAC,cAAc,IAAI,GAAG,CAAC,CAAC;YAC7B,IAAI,cAAc,EAAE;gBAClB,KAAK,CAAC,4BAA4B,cAAc,GAAG,CAAC,CAAC;aACtD;SACF;QACD,IAAI,EAAE,GAAG,MAAM,oBAAoB,CACjC,YAAY,CAAC,eAAe,CAAC,UAAU,CAAC,CACzC,CAAC;QAEF,IAAI,OAAO,CAAC,GAAG,IAAI,cAAc,EAAE;YACjC,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC;SAC/B;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,IAAI;gBACF,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;aACrC;YAAC,OAAO,CAAC,EAAE,GAAE;SACf;QAED,IAAI,aAAa,mCACZ,cAAc,KACjB,eAAe,EAAE,EAAE,CAAC,IAAI,EACxB,IAAI,EACJ,UAAU,EAAE,OAAO,CAAC,UAAU,GAC/B,CAAC;QACF,IAAI,YAAY,IAAI,cAAc,EAAE,EAAE;YACpC,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,CACjE,YAAY,CACb,CAAC;YACF,aAAa,mCACR,gBAAgB,GAChB,aAAa,CACjB,CAAC;SACH;QACD,EAAE,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACzD,MAAM,OAAO,GACX,OAAO,CAAC,uBAAuB,IAAI,cAAc;YAC/C,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;QAC9B,MAAM,UAAU,mCACX,aAAa,KAChB,OAAO;YACP,OAAO,EACP,eAAe,EAAE,OAAO,CAAC,eAAe,EACxC,SAAS,EAAE,OAAO,CAAC,SAAS,GAC7B,CAAC;QACF,MAAM,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,GAAG,IAAI,cAAc,EAAE;YACjC,KAAK,CACH,iBAAiB,UAAU,CAAC,OAAO,SAAS,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,QAAQ,CACrE,CAAC;SACH;QACD,uCACK,UAAU,KACb,OAAO,EACP,aAAa,EAAE,IAAI,IACnB;IACJ,CAAC;IAED,KAAK,UAAU,aAAa,CAC1B,IAAY,EACZ,OAA6B;QAK7B,OAAO,qBAAO,OAAO,CAAC,CAAC,CAAC,mBAAmB;QAC3C,oCAAoC;QACpC,MAAM,IAAI,GAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,EAAE,CAAC;QACb,MAAM,EAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAErE,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,EAAC,QAAQ,EAAC,GAAG,YAAY,CAAC;QAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QACzB,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,2BAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEjE,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE;YAChC,MAAM,IAAI,KAAK,CACb,YAAY,YAAY,+BAA+B,IAAI,CAAC,MAAM,EAAE,CACrE,CAAC;SACH;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,CAAC;QAEzD,IAAI,OAAO,EAAE;YACX,MAAM,IAAI,2BAAkB,iBAC1B,IAAI,IACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EACzC,CAAC;SACJ;QAED,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;SAC5D;aAAM;YACL,OAAO;gBACL,OAAO,EAAE,iBAAiB,CACxB,MAAM,iBAAiB,CAAC,wCAAwC,EAAE,EAClE,OAAO,CAAC,IAAI;oBACV,CAAC,CAAC,IAAA,eAAO,EAAC,IAAA,eAAO,EAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACpC,CAAC,CAAC,oEAAoE,EACxE,UAAU,CAAC,IAAI,CAChB;gBACD,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CAAC,IAAI,kCACN,OAAO,KACV,uBAAuB,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI,IAC7C;aACL,CAAC;SACH;IACH,CAAC;IAED,SAAS,aAAa,CAAC,IAAY;QACjC,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,SAAS,mBAAmB,CAAC,IAAY;QACvC,OAAO,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,UAAU,gBAAgB,CAC7B,IAAY,EACZ,OAAsB;;QAEtB,OAAO,qBAAO,OAAO,CAAC,CAAC,CAAC,mBAAmB;QAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,EAAE,CAAC;QAEb,IAAI,OAAO,CAAC,uBAAuB,EAAE;YACnC,MAAM,EAAC,YAAY,EAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE7C,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACjE,MAAM,EAAC,QAAQ,EAAC,GAAG,YAAY,CAAC;YAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;YACzB,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,IAAI,2BAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;YAEjE,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,YAAY,EAAE;gBACpC,MAAM,IAAI,KAAK,CACb,YAAY,YAAY,+BAA+B,QAAQ,CAAC,MAAM,EAAE,CACzE,CAAC;aACH;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAAC,CAAC;YAC7D,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACvC,MAAM,WAAW,GACf,OAAO,OAAO,CAAC,uBAAuB,KAAK,QAAQ;oBACjD,CAAC,CAAC,IAAA,eAAO,EAAC,IAAA,eAAO,EAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;oBACvD,CAAC,CAAC,oEAAoE,CAAC;gBAC3E,MAAM,sBAAsB,GAAG,MAAM,iBAAiB,CAAC,wCAAwC,EAAE,CAAC;gBAClG,MAAM,cAAc,GAAG,iBAAiB,CACtC,sBAAsB,EACtB,WAAW,EACX,UAAU,CAAC,IAAI,CAChB,CAAC;gBACF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBACpD,IAAI,IAAI,KAAK,IAAI,EAAE;oBACjB,OAAO,EAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAC,CAAC;iBAChD;qBAAM;oBACL,OAAO,EAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAC,CAAC;iBACtD;aACF;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;aAC5D;SACF;QACD,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,UAAU,EAAE;YACd,IAAI,OAAO,CAAC,qBAAqB,EAAE;gBACjC,OAAO,EAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAC,CAAC,CAAC,gCAAgC;aAClF;YACD,6CAA6C;YAC7C,IAAI,WAAW,CAAC;YAChB,IAAI,UAAU,CAAC,OAAO,EAAE;gBACtB,WAAW,GAAG,MAAM,QAAQ,CAAC,cAAc,CACzC,UAAU,CAAC,OAAO,CAAC,eAAe,CACnC,CAAC;aACH;iBAAM,IAAI,UAAU,CAAC,eAAe,EAAE;gBACrC,WAAW,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;aACzE;YAED,IAAI,WAAW,EAAE;gBACf,MAAM,EAAC,YAAY,EAAC,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACnD,MAAM,EAAC,QAAQ,EAAC,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC/D,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;gBACzB,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC5D,MAAM,OAAO,GAAG,IAAI,2BAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;gBACjE,MAAM,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAAC,CAAC;gBACjE,MAAM,OAAO,GAAG,MAAA,cAAc,CAAC,IAAI,0CAAE,QAAQ,EAAE,CAAC;gBAEhD,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE;oBAChC,OAAO,EAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAC,CAAC;iBACzD;gBACD,OAAO,EAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAC,CAAC;aAC1D;SACF;QACD,OAAO,EAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAC,CAAC;IACjD,CAAC;IAED,KAAK,UAAU,UAAU,CACvB,IAAY,EACZ,OAAsB,EACtB,4BAAsC;QAEtC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,mCAAO,OAAO,KAAE,IAAI,EAAE,SAAS,GAAC,CAAC;QAExC,IAAI,MAAoB,CAAC;QACzB,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,WAAW,EAAE;YAC1B,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SACvC;aAAM;YACL,IAAI,4BAA4B,IAAI,OAAO,CAAC,uBAAuB,EAAE;gBACnE,MAAM,IAAI,KAAK,CACb,mDAAmD,UAAU,CAAC,OAAO,EAAE,CACxE,CAAC;aACH;YACD,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,UAAU,EAAE;gBACd,IACE,OAAO,CAAC,uBAAuB;oBAC/B,UAAU,CAAC,OAAO;oBAClB,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,EACrE;oBACA,MAAM,EAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAC,GAC5C,MAAM,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAEzC,kBAAkB;oBAClB,MAAM,aAAa,mCACd,cAAc,KACjB,OAAO,EAAE,UAAU,CAAC,OAAO,EAC3B,UAAU,EAAE,OAAO,CAAC,UAAU,EAC9B,SAAS,EAAE,OAAO,CAAC,SAAS,EAC5B,IAAI,EAAE,SAAS,GAChB,CAAC;oBACF,MAAM,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;oBACxD,MAAM,mCACD,aAAa,KAChB,aAAa,EAAE,KAAK,GACrB,CAAC;iBACH;qBAAM;oBACL,MAAM,GAAG,UAA0B,CAAC;oBACpC,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC;iBAC9B;aACF;iBAAM;gBACL,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;oBACvB,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;iBACH;gBAED,MAAM,EAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAC,GAC5C,MAAM,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAEzC,kBAAkB;gBAClB,MAAM,aAAa,mCACd,cAAc,KACjB,OAAO,EAAE,UAAU,CAAC,OAAO,EAC3B,UAAU,EAAE,OAAO,CAAC,UAAU,EAC9B,SAAS,EAAE,OAAO,CAAC,SAAS,EAC5B,IAAI,EAAE,SAAS,GAChB,CAAC;gBACF,MAAM,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;gBACxD,MAAM,mCACD,aAAa,KAChB,aAAa,EAAE,KAAK,GACrB,CAAC;aACH;YACD,IAAI,OAAO,CAAC,GAAG,EAAE;gBACf,GAAG,CAAC,YAAY,IAAI,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;aAC/C;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,kBAAkB,CACzB,aAAgC,EAChC,YAAqB;QAErB,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;YACvC,OAAO;SACR;QACD,IAAI,YAAY,KAAK,CAAC,EAAE;YACtB,IAAI,aAAa,EAAE;gBACjB,uCAAW,aAAa,KAAE,aAAa,EAAE,KAAK,IAAE;aACjD;SACF;aAAM,IAAI,YAAY,KAAK,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,EAAE;gBAClB,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;aACH;YACD,IAAI,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7D,uCAAW,aAAa,KAAE,aAAa,EAAE,KAAK,IAAE;aACjD;SACF;aAAM;YACL,IAAI,CAAC,aAAa,EAAE;gBAClB,MAAM,IAAI,KAAK,CACb,oBAAoB,YAAY,0CAA0C,CAC3E,CAAC;aACH;YACD,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;gBAC1B,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;aACH;iBAAM,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,YAAY,GAAG,CAAC,EAAE;gBAC1D,uCAAW,aAAa,KAAE,aAAa,EAAE,KAAK,IAAE;aACjD;iBAAM,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,YAAY,GAAG,CAAC,EAAE;gBAC1D,MAAM,IAAI,KAAK,CACb,oBAAoB,YAAY,wDAC9B,YAAY,GAAG,CACjB,EAAE,CACH,CAAC;aACH;SACF;IACH,CAAC;IAED,cAAc;IACd,KAAK,UAAU,qBAAqB,CAClC,IAAY,EACZ,OAAsB;;QAEtB,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,YAAgC,CAAC;QACrC,IAAI,UAA6B,CAAC;QAClC,IAAI,YAAY,CAAC;QACjB,IAAI,aAAa,GAAqB,0BAAW,CAAC;QAClD,IAAI,gBAAgB,GAAG,IAAI,CAAC;QAC5B,IAAI,gBAGS,CAAC;QACd,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE;YACrC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;YAC1C,IAAI,YAAY,IAAI,OAAO,CAAC,KAAK,EAAE;gBACjC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxC,IAAI,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE;oBAC9B,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;iBACH;aACF;iBAAM,IAAI,SAAS,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC9D,IAAI,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;oBACzC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;oBAChD,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACxC,IACE,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO;wBAC/B,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,EACpC;wBACA,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;qBACH;iBACF;qBAAM,IACL,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBAC/D,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO;wBACnC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAClC;oBACA,IAAI,aAAa,EAAE;wBACjB,YAAY,GAAG,MAAA,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,0CAAE,UAAU,CAAC;wBAC3D,UAAU,GAAG,MAAA,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,0CAAE,IAAI,CAAC;qBACpD;yBAAM;wBACL,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;wBACrD,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;qBAC9C;iBACF;aACF;YAED,IAAI,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE;gBAC/B,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,aAAa,KAAK,QAAQ,EAAE;oBACnD,IAAI;wBACF,aAAa,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,CACxD,OAAO,CAAC,KAAK,CAAC,aAAa,CAC5B,CAAC;qBACH;oBAAC,OAAO,CAAC,EAAE,GAAE;oBACd,IAAI,CAAC,aAAa,IAAI,aAAa,KAAK,0BAAW,EAAE;wBACnD,IAAI,OAAO,CAAC,KAAK,CAAC,aAAa,KAAK,wBAAwB,EAAE;4BAC5D,aAAa,GAAG,qCAAsB,CAAC;yBACxC;6BAAM,IAAI,OAAO,CAAC,KAAK,CAAC,aAAa,KAAK,aAAa,EAAE;4BACxD,aAAa,GAAG,0BAAW,CAAC;yBAC7B;6BAAM,IACL,OAAO,CAAC,KAAK,CAAC,aAAa,KAAK,8BAA8B,EAC9D;4BACA,gBAAgB,GAAG,KAAK,CAAC;4BACzB,aAAa,GAAG,0CAA4B,CAAC;4BAC7C,gBAAgB,GAAG,mBAAmB,CAAC;yBACxC;6BAAM,IACL,OAAO,CAAC,KAAK,CAAC,aAAa,KAAK,2BAA2B,EAC3D;4BACA,gBAAgB,GAAG,KAAK,CAAC;4BACzB,aAAa,GAAG,mDAAoC,CAAC;4BACrD,gBAAgB,GAAG,mBAAmB,CAAC;yBACxC;6BAAM;4BACL,MAAM,IAAI,KAAK,CACb,yBAAyB,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,CACvD,CAAC;yBACH;qBACF;iBACF;aACF;YACD,IAAI,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE;gBAClC,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;aACnD;SACF;aAAM,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE;YAC5C,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;SAC9B;QACD,MAAM,YAAY,GAAG,kBAAkB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACrE,IAAI,YAAY,EAAE;YAChB,OAAO,YAAY,CAAC;SACrB;QACD,MAAM,SAAS,GAAG,IAAI,GAAG,QAAQ,CAAC;QAClC,MAAM,EAAC,OAAO,EAAE,KAAK,EAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,EAAC,OAAO,EAAE,IAAI,EAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjE,oCAAoC;QACpC,MAAM,kBAAkB,GAAG,IAAI,GAAG,iBAAiB,CAAC;QACpD,MAAM,qBAAqB,GAAG;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;YAClC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC5C,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;YAClD,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;YACxD,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,IAAI,EAAE,kBAAkB;YACxB,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;YACpD,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;SAC7C,CAAC;QAEF,MAAM,EAAC,QAAQ,EAAC,GAAG,MAAM,sBAAsB,CAC7C,IAAI,EACJ,qBAAqB,CACtB,CAAC;QAEF,MAAM,wBAAwB,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CACrD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAChC,CAAC;QACF,kBAAkB;QAClB,MAAM,SAAS,GAAG,IAAA,iBAAS,EAAC,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC7D,KAAK,EAAE,gBAAgB;YACvB,qBAAqB,EAAE,IAAI,EAAE,kCAAkC;SAChE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QAC3C,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,4BAA4B;QAEtE,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CACnC,CAAC,QAAuC,EAAE,EAAE,CAC1C,QAAQ,CAAC,IAAI,KAAK,aAAa,CAClC,CAAC;QAEF,IACE,CAAC,CAAC,WAAW,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/C,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,CAAC,MAAM,CAAC,EACxE;YACA,MAAM,IAAI,KAAK,CACb;qFAC6E,CAC9E,CAAC;SACH;QAED,IAAI,YAAY,EAAE;YAChB,MAAM,iBAAiB,GAInB,QAAQ,CAAC,GAAG,CAAC,IAAI,CACnB,CAAC,QAAqD,EAAE,EAAE,CACxD,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,CACjE,CAAC;YACF,IAAI,CAAC,iBAAiB,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,uCAAuC,YAAY,EAAE,CAAC,CAAC;aACxE;YAED,IAAI,CAAC,UAAU,EAAE;gBACf,IAAI,kBAAkB,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE;oBACjE,UAAU,GAAG,kBAAkB,CAAC;iBACjC;qBAAM;oBACL,MAAM,IAAI,KAAK,CACb;;;;;;;KAOP,CACM,CAAC;iBACH;aACF;SACF;QAED,sEAAsE;QACtE,IAAI,CAAC,UAAU,EAAE;YACf,UAAU,GAAG,kBAAkB,CAAC;SACjC;QAED,IAAI,cAAkC,CAAC;QACvC,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,sBAA0C,CAAC;QAC/C,IAAI,kBAA0C,CAAC;QAC/C,IAAI,gBAAgB,EAAE;YACpB,IAAI,gCAAmE,CAAC;YACxE,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE;gBACxC,cAAc,GAAG,gBAAgB,CAAC;gBAClC,gCAAgC,GAAG,gBAAgB,CAAC;aACrD;iBAAM;gBACL,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC;gBACvC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAC9B,kBAAkB,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;iBACjE;gBACD,gCAAgC,GAAG,gBAAgB,CAAC,QAAQ,CAAC;aAC9D;YAED,IAAI,kBAAgD,CAAC;YACrD,IAAI,OAAO,gCAAgC,KAAK,QAAQ,EAAE;gBACxD,IAAI;oBACF,kBAAkB,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,CAC7D,gCAAgC,CACjC,CAAC;iBACH;gBAAC,OAAO,CAAC,EAAE,GAAE;gBAEd,IAAI,CAAC,kBAAkB,EAAE;oBACvB,IAAI,gBAAgB,KAAK,mBAAmB,EAAE;wBAC5C,kBAAkB,GAAG,yBAAiB,CAAC;qBACxC;yBAAM;wBACL,MAAM,IAAI,KAAK,CACb,yBAAyB,gCAAgC,EAAE,CAC5D,CAAC;qBACH;iBACF;aACF;iBAAM;gBACL,kBAAkB,GAAG,gCAAgC,CAAC;aACvD;YAED,IAAI,CAAC,kBAAkB,EAAE;gBACvB,kBAAkB,GAAG,MAAM,UAAU,CAAC,cAAc,EAAE;oBACpD,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;oBAC1C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;oBAC5C,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;oBAClD,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,QAAQ,EAAE,kBAAkB;oBAC5B,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;oBACxD,qBAAqB,EAAE,IAAI;oBAC3B,IAAI,EAAE,CAAC,KAAK,CAAC;oBACb,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;iBAC7C,CAAC,CAAC;aACJ;YAED,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC;YACxC,sBAAsB,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAW,CAAC;YAEzE,IAAI,sBAAsB,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,EAAE;gBAChE,MAAM,IAAI,KAAK,CACb,gEAAgE,cAAc,EAAE,CACjF,CAAC;aACH;YACD,IAAI,sBAAsB,KAAK,uBAAW,EAAE;gBAC1C,MAAM,IAAI,KAAK,CACb,oBAAoB,cAAc,2DAA2D,CAC9F,CAAC;aACH;SACF;QAED,MAAM,cAAc,GAAG,MAAM,UAAU,CACrC,kBAAkB,EAClB,qBAAqB,CACtB,CAAC;QAEF,IAAI,CAAC,aAAa,IAAI,cAAc,CAAC,aAAa,EAAE;YAClD,6GAA6G;YAC7G,MAAM,sBAAsB,GAAG,IAAI,oBAAQ,CACzC,cAAc,CAAC,OAAO,EACtB,cAAc,CAAC,GAAG,CACnB,CAAC;YAEF,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,IAAI,YAAY,EAAE;gBAChB,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,EAAE;oBACzC,MAAM,IAAI,KAAK,CACb,uCAAuC,YAAY,EAAE,CACtD,CAAC;iBACH;gBACD,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,mBAAmB,CAC7D,YAAY,CACb,CAAC,GAAG,UAAU,CAAC,CAAC;gBACjB,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;aAC5B;YAED,IAAI,KAAK,GAAG,MAAM,mBAAmB,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,CAAC,KAAK,EAAE;gBACV,MAAM,YAAY,qBAAO,OAAO,CAAC,CAAC,CAAC,mBAAmB;gBACtD,OAAO,YAAY,CAAC,KAAK,CAAC;gBAC1B,OAAO,YAAY,CAAC,SAAS,CAAC;gBAC9B,YAAY,CAAC,QAAQ,GAAG,aAAa,CAAC;gBACtC,YAAY,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;gBAC/D,KAAK,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;gBACxD,kFAAkF;aACnF;iBAAM;gBACL,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,YAAY,CAC9C,KAAK,CAAC,OAAO,EACb,oEAAoE,CACrE,CAAC;gBACF,MAAM,YAAY,GAAG,IAAA,oBAAU,EAAC,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAEjE,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAC7B,CAAC,IAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,sBAAsB,CAC/D,CAAC;gBACF,MAAM,0BAA0B,GAAG,QAAQ;oBACzC,CAAC,CAAC,sBAAsB;oBACxB,CAAC,CAAC,kBAAkB,CAAC;gBAEvB,IAAI,YAAY,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,WAAW,EAAE,EAAE;oBAC3D,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;iBACH;gBACD,IAAI,YAAY,KAAK,uBAAW,EAAE;oBAChC,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;iBACH;gBAED,IAAI,cAAc,EAAE;oBAClB,IAAI,QAAQ,EAAE;wBACZ,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;qBACnE;oBACD,IAAI,CAAC,sBAAsB,EAAE;wBAC3B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;qBAClE;oBAED,IAAI,cAAc,CAAC;oBACnB,IAAI,YAAY,EAAE;wBAChB,cAAc,GAAG,MAAM,OAAO,CAC5B,cAAc,kCACV,OAAO,KAAE,IAAI,EAAE,sBAAsB,KACzC,gBAAgB,EAChB,KAAK,CAAC,OAAO,EACb,cAAc,CAAC,OAAO,EACtB,IAAI,CACL,CAAC;qBACH;yBAAM;wBACL,cAAc,GAAG,MAAM,OAAO,CAC5B,cAAc,kCACV,OAAO,KAAE,IAAI,EAAE,sBAAsB,KACzC,SAAS,EACT,KAAK,CAAC,OAAO,EACb,cAAc,CAAC,OAAO,CACvB,CAAC;qBACH;oBACD,IAAI,CAAC,cAAc,EAAE;wBACnB,MAAM,IAAI,KAAK,CAAC,qBAAqB,0BAA0B,EAAE,CAAC,CAAC;qBACpE;iBACF;qBAAM;oBACL,IAAI,cAAc,CAAC;oBACnB,IACE,0BAA0B,KAAK,kBAAkB;wBACjD,CAAC,YAAY,EACb;wBACA,cAAc,GAAG,MAAM,OAAO,CAC5B,SAAS,kCACL,OAAO,KAAE,IAAI,EAAE,YAAY,KAC/B,WAAW,EACX,cAAc,CAAC,OAAO,CACvB,CAAC;qBACH;yBAAM;wBACL,cAAc,GAAG,MAAM,OAAO,CAC5B,SAAS,kCACL,OAAO,KAAE,IAAI,EAAE,YAAY,KAC/B,0BAA0B,EAC1B,cAAc,CAAC,OAAO,EACtB,IAAI,CACL,CAAC;qBACH;oBAED,IAAI,CAAC,cAAc,EAAE;wBACnB,MAAM,IAAI,KAAK,CAAC,qBAAqB,0BAA0B,EAAE,CAAC,CAAC;qBACpE;iBACF;aACF;YACD,MAAM,iBAAiB,mCAClB,aAAa,KAChB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,UAAU,EAAE,OAAO,CAAC,UAAU,EAC9B,GAAG,EAAE,SAAS,EACd,cAAc,EAAE,cAAc,CAAC,OAAO,EACtC,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,OAAO,EAAE,YAAY;oBACnB,CAAC,CAAC;wBACE,UAAU,EAAE,YAAY;wBACxB,IAAI,EAAE,UAAU;qBACjB;oBACH,CAAC,CAAC,SAAS,GACd,CAAC;YACF,IAAI,aAAa,EAAE;gBACjB,iBAAiB,CAAC,OAAO,GAAG,iBAAiB,CAAC,OAAO;oBACnD,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;aACrB;YACD,MAAM,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YAE9C,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpD,uCACK,UAAU,KACb,aAAa,EAAE,IAAI,IACnB;SACH;aAAM;YACL,IAAI,aAAa,CAAC,cAAc,KAAK,cAAc,CAAC,OAAO,EAAE;gBAC3D,MAAM,iBAAiB,mCAClB,aAAa,KAChB,cAAc,EAAE,cAAc,CAAC,OAAO,EACtC,UAAU,EAAE,OAAO,CAAC,UAAU,EAC9B,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,YAAY;wBACnB,CAAC,CAAC;4BACE,UAAU,EAAE,YAAY;4BACxB,IAAI,EAAE,UAAU;yBACjB;wBACH,CAAC,CAAC,SAAS,GACd,CAAC;gBACF,iBAAiB,CAAC,OAAO,GAAG,iBAAiB,CAAC,OAAO;oBACnD,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;gBACpB,MAAM,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;aAC/C;YAED,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpD,uCACK,UAAU,KACb,aAAa,EAAE,KAAK,IACpB;SACH;IACH,CAAC;IAED,SAAS,aAAa,CAAC,OAAsB;QAC3C,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,8BAA8B;QAC1D,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE;YACrC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC;SAC1C;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED,SAAS,eAAe,CAAC,OAAuB;QAC9C,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,8BAA8B;QAC1D,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC;QACnC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED,SAAS,eAAe,CAAC,IAAa;QAKpC,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,cAAc,EAAE,SAAS;aAC1B,CAAC;SACH;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,SAAS,OAAO,CAAC,IAAY;QAM3B,IAAI,YAAgC,CAAC;QACrC,IAAI,cAAc,GAAuB,SAAS,CAAC;QACnD,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE;YACrB,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;gBACtB,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;aACpB;YACD,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC1C,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;YACtB,YAAY,GAAG,MAAM,CAAC;SACvB;aAAM;YACL,IAAI,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE;gBACzC,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACzC;iBAAM;gBACL,qFAAqF;gBACrF,MAAM,kBAAkB,GACtB,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC5D,IAAI,kBAAkB,EAAE;oBACtB,IAAI,kBAAkB,KAAK,QAAQ,EAAE;wBACnC,IAAI,CAAC,YAAY,EAAE;4BACjB,8DAA8D;4BAC9D,MAAM,oBAAoB,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;4BACxE,YAAY,GAAG,oBAAoB,CAAC,YAAY,CAAC;yBAClD;wBACD,YAAY,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;wBAC1C,cAAc,GAAG,QAAQ,CAAC;qBAC3B;yBAAM,IAAI,kBAAkB,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;wBACtD,YAAY,GAAG,IAAI,eAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;qBACpE;yBAAM,IAAI,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;wBAClD,YAAY,GAAG,IAAI,eAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;qBACpE;iBACF;aACF;SACF;QAED,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACzC;QAED,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,EAAC,CAAC;IAChE,CAAC;IAED,oGAAoG;IACpG,iCAAiC;IACjC,8CAA8C;IAC9C,kEAAkE;IAClE,mBAAmB;IACnB,IAAI;IAEJ,SAAS,WAAW,CAAC,GAAU;QAC7B,OAAO,GAAG;aACP,MAAM,CAAC,CAAC,QAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC;aACvD,GAAG,CAAC,CAAC,QAAa,EAAE,EAAE,CACrB,eAAS,CAAC,UAAU,CAAC,sBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CACtD,CAAC;IACN,CAAC;IAED,KAAK,UAAU,sBAAsB,CACnC,IAAY,EACZ,OAAuB;QAEvB,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,KAA6B,CAAC;QAClC,MAAM,YAAY,GAAG,kBAAkB,CACrC,aAAa,EACb,OAAO,CAAC,YAAY,CACrB,CAAC;QACF,IAAI,YAAY,EAAE;YAChB,OAAO,YAAY,CAAC;SACrB;QAED,IAAI,OAAO,CAAC,iBAAiB,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACvE,mDAAmD;SACpD;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,eAAe,CAAC;QACzC,MAAM,EAAC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAClE,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,aAAa,GAAY,EAAE,CAAC;QAClC,MAAM,SAAS,GAAY,EAAE,CAAC;QAC9B,MAAM,kBAAkB,GAAkC,EAAE,CAAC;QAC7D,KAAK,MAAM,QAAQ,IAAI;YACrB,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,YAAY;SACb,EAAE;YACD,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;SACrC;QACD,IAAI,aAAa,EAAE;YACjB,KAAK,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;YACvC,MAAM,YAAY,GAAG,IAAI,oBAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAEtE,MAAM,aAAa,GAAY,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC;YAC3D,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;gBACxC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAE7B,gHAAgH;gBAChH,IACE,OAAO,CACL;oBACE,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;iBACb,EACD,YAAY,CAAC,iBAAiB,CAC/B,IAAI,QAAQ;oBACb,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,aAAa;oBACnE,OAAO,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC,SAAS;kBAC/E;oBACA,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACjC,YAAY,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;iBACtD;aACF;SACF;QACD,qEAAqE;QAErE,IAAI,eAAe,GAAG,CAAC,aAAa,CAAC;QACrC,IAAI,GAAG,GAAU,sBAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE;YAClC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,kEAAkE;YAC7G,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CACnC,CAAC,QAAuC,EAAE,EAAE,CAC1C,QAAQ,CAAC,IAAI,KAAK,aAAa,CAClC,CAAC;YACF,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChD,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC,+BAA+B;aAC7F;YACD,GAAG,GAAG,IAAA,iBAAS,EAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACnC,KAAK,EAAE,IAAI;gBACX,qBAAqB,EAAE,KAAK;aAC7B,CAAC,CAAC;YACH,iEAAiE;YACjE,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE;gBAC7C,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;gBAClD,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,sEAAsE;gBACtE,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,sDAAsD;gBACtD,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,gCAAgC;aACjC,CAAC,CAAC;YACH,IAAI,cAAc,CAAC,aAAa,EAAE;gBAChC,uEAAuE;gBACvE,MAAM,QAAQ,GAAG;oBACf,YAAY,EAAE,cAAc,CAAC,OAAO;oBACpC,iBAAiB,EAAE,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC;iBACnD,CAAC;gBACF,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7B,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;aAClD;iBAAM;gBACL,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC3C,MAAM,QAAQ,GAAG;oBACf,YAAY,EAAE,OAAO,CAAC,OAAO;oBAC7B,iBAAiB,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC;iBAC5C,CAAC;gBACF,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7B,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;aAClD;SACF;QAED,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,wBAAwB,GAAiC,EAAE,CAAC;QAClE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,iBAAiB,EAAE;gBACjD,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5B,wBAAwB,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC;aAC5D;SACF;QAED,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE;YACpC,MAAM,cAAc,GAAa,EAAE,CAAC;YACpC,MAAM,kBAAkB,GAAa,EAAE,CAAC;YAExC,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,iBAAiB,EAAE;gBACjD,IAAI,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACtC,IACE,wBAAwB,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;wBAC9C,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE;wBACrC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAC7B;wBACA,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBACnC;iBACF;qBAAM;oBACL,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE;wBACjC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBAC/B;iBACF;aACF;YAED,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjC,eAAe,GAAG,IAAI,CAAC;gBACvB,SAAS,CAAC,IAAI,CAAC;oBACb,YAAY,EAAE,QAAQ,CAAC,YAAY;oBACnC,iBAAiB,EAAE,kBAAkB;oBACrC,MAAM,EAAE,sBAAc,CAAC,OAAO;iBAC/B,CAAC,CAAC;aACJ;YAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,eAAe,GAAG,IAAI,CAAC;gBACvB,SAAS,CAAC,IAAI,CAAC;oBACb,YAAY,EAAE,QAAQ,CAAC,YAAY;oBACnC,iBAAiB,EAAE,cAAc;oBACjC,MAAM,EAAE,sBAAc,CAAC,GAAG;iBAC3B,CAAC,CAAC;aACJ;SACF;QAED,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE;YACnC,IAAI,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBACzC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAClC;SACF;QAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,eAAe,GAAG,IAAI,CAAC;YACvB,SAAS,CAAC,OAAO,CAAC;gBAChB,YAAY,EAAE,4CAA4C;gBAC1D,iBAAiB,EAAE,iBAAiB;gBACpC,MAAM,EAAE,sBAAc,CAAC,MAAM;aAC9B,CAAC,CAAC;SACJ;QAED,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,MAAM,eAAe,GAAG,IAAI,oBAAQ,CAClC,4CAA4C,EAC5C,GAAG,CACJ,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,mBAAmB,CACtD,OAAO,CAAC,OAAO,CAAC,UAAU,CAC3B,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;SAC5B;QAED,IAAI,eAAe,EAAE;YACnB,IAAI,CAAC,KAAK,EAAE;gBACV,+CAA+C;gBAC/C,MAAM,eAAe,GAAG,aAAa,CAAC;gBACtC,IAAI,qBAAqB,GAAG,MAAM,mBAAmB,CAAC,eAAe,CAAC,CAAC;gBACvE,qBAAqB,GAAG,MAAM,UAAU,CAAC,eAAe,EAAE;oBACxD,QAAQ,EAAE,0BAAW;oBACrB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,uBAAuB,EAAE,IAAI;oBAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;oBAC1C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;oBAC5C,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;oBAClD,GAAG,EAAE,OAAO,CAAC,GAAG;iBACjB,CAAC,CAAC;gBACH,MAAM,mBAAmB,GAAG,IAAI,oBAAQ,CACtC,qBAAqB,CAAC,OAAO,EAC7B,0BAAW,CAAC,GAAG,EACf,QAAQ,CACT,CAAC;gBACF,2EAA2E;gBAE3E,IAAI,mCAAmC,GAAG,KAAK,CAAC;gBAChD,IAAI,eAAe,GAAuB,SAAS,CAAC;gBACpD,IAAI,IAAI,GACN,oEAAoE,CAAC;gBACvE,IAAI,OAAO,OAAO,CAAC,iBAAiB,KAAK,WAAW,EAAE;oBACpD,IAAI,OAAO,OAAO,CAAC,iBAAiB,KAAK,QAAQ,EAAE;wBACjD,IAAI,OAAO,CAAC,iBAAiB,KAAK,IAAI,EAAE;4BACtC,MAAM,IAAI,KAAK,CACb,yKAAyK,CAC1K,CAAC;yBACH;6BAAM;4BACL,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,KAAK,EAAE,EAAE;gCAC3C,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAC;6BACH;4BACD,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC;4BACjC,eAAe,GAAG,iBAAiB,CACjC,mBAAmB,CAAC,OAAO,EAC3B,IAAA,oBAAiB,EAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EACxD,sBAAW,CAAC,QAAQ;gCAClB,0BAA0B;gCAC1B,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CACvC,CAAC;4BACF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;4BACrD,IAAI,IAAI,KAAK,IAAI,EAAE;gCACjB,mCAAmC,GAAG,IAAI,CAAC;6BAC5C;yBACF;qBACF;yBAAM;wBACL,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;qBACH;iBACF;gBAED,wDAAwD;gBACxD,MAAM,iBAAiB,GAAG;oBACxB;wBACE,kBAAkB;wBAClB,YAAY,EAAE,4CAA4C;wBAC1D,MAAM,EAAE,CAAC;wBACT,iBAAiB,EAAE,CAAC,YAAY,CAAC;qBAClC;oBACD;wBACE,oBAAoB;wBACpB,YAAY,EAAE,4CAA4C;wBAC1D,MAAM,EAAE,CAAC;wBACT,iBAAiB,EAAE;4BACjB,YAAY;4BACZ,YAAY;4BACZ,YAAY;4BACZ,YAAY;4BACZ,YAAY;yBACb;qBACF;oBACD;wBACE,iBAAiB;wBACjB,YAAY,EAAE,4CAA4C;wBAC1D,MAAM,EAAE,CAAC;wBACT,iBAAiB,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;qBAChD;iBACF,CAAC;gBAEF,MAAM,sBAAsB,GAAG;oBAC7B,iBAAiB;oBACjB,EAAC,KAAK,EAAE,qBAAqB,CAAC,OAAO,EAAC;iBACvC,CAAC;gBAEF,IAAI,eAAe,IAAI,mCAAmC,EAAE;oBAC1D,KAAK,mCACA,sBAAW,KACd,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,sBAAsB,GAC7B,CAAC;oBACF,MAAM,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;iBACxC;qBAAM;oBACL,MAAM,aAAa,GAAG,MAAM,OAAO,CACjC,eAAe,EACf,OAAO,EACP,eAAe,EACf,KAAK,EACL,SAAS,EACT,IAAI,EACJ,IAAI,CACL,CAAC;oBAEF,IAAI,CAAC,aAAa,EAAE;wBAClB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;qBAChE;oBAED,MAAM,MAAM,GAAG,EAAE,CAAC;oBAClB,IAAI,aAAa,CAAC,IAAI,EAAE;wBACtB,KAAK,MAAM,CAAC,IAAI,aAAa,CAAC,IAAI,EAAE;4BAClC,IAAI;gCACF,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;6BACxD;4BAAC,OAAO,CAAC,EAAE,GAAE;yBACf;qBACF;oBAED,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CACnC,CAAC;oBACF,IAAI,CAAC,mBAAmB,EAAE;wBACxB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;qBAC/C;oBACD,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;oBACtD,IAAI,OAAO,CAAC,GAAG,IAAI,cAAc,EAAE;wBACjC,GAAG,CACD,uBAAuB,YAAY,qBAAqB,qBAAqB,CAAC,OAAO,SAAS,aAAa,CAAC,eAAe,WAAW,aAAa,CAAC,OAAO,MAAM,CAClK,CAAC;qBACH;oBAED,IAAI,eAAe,IAAI,eAAe,KAAK,YAAY,EAAE;wBACvD,MAAM,IAAI,KAAK,CACb,sBAAsB,YAAY,OAAO,eAAe,EAAE,CAC3D,CAAC;qBACH;oBACD,KAAK,mCACA,sBAAW,KACd,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,aAAa,EACtB,eAAe,EAAE,aAAa,CAAC,eAAe,EAC9C,IAAI,EAAE,sBAAsB,GAC7B,CAAC;oBACF,MAAM,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;iBACxC;gBAED,MAAM,cAAc,CAAC,IAAI,kCACpB,sBAAW,KACd,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,UAAU,EAAE,OAAO,CAAC,UAAU,EAC9B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,SAAS,EACrB,GAAG,EACH,OAAO,EAAE,OAAO,CAAC,OAAO,IACxB,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,aAAa,EAAE;oBAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;iBACvD;gBACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACpD,IAAI,YAAY,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,EAAE;oBACtD,MAAM,IAAI,KAAK,CACb,uDAAuD,CACxD,CAAC;iBACH;gBACD,IAAI,YAAY,KAAK,uBAAW,EAAE;oBAChC,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;iBACH;gBAED,MAAM,cAAc,GAAG,MAAM,OAAO,CAClC,IAAI,kCACA,OAAO,KAAE,IAAI,EAAE,YAAY,KAC/B,YAAY,EACZ,SAAS,EACT,IAAI,KAAK,IAAI;oBACX,CAAC,CAAC,4CAA4C;oBAC9C,CAAC,CAAC,KAAK,CAAC,OAAO,EACjB,IAAI,CACL,CAAC;gBACF,IAAI,CAAC,cAAc,EAAE;oBACnB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;iBACtC;gBACD,MAAM,cAAc,CAAC,IAAI,EAAE;oBACzB,OAAO,EAAE,cAAc;oBACvB,eAAe,EAAE,cAAc,CAAC,eAAe;oBAC/C,OAAO,EAAE,aAAa,CAAC,OAAO;wBAC5B,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC;wBAC7C,CAAC,CAAC,CAAC,aAAa,CAAC;oBACnB,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,GAAG;oBACH,MAAM,EAAE,aAAa;oBACrB,UAAU,EAAE,SAAS;oBACrB,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB,CAAC,CAAC;aACJ;YAED,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpD,uCACK,UAAU,KACb,aAAa,EAAE,IAAI,IACnB;SACH;aAAM;YACL,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEvD,MAAM,iBAAiB,mCAClB,aAAa,KAChB,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,SAAS,EACrB,GAAG,EACH,OAAO,EAAE,OAAO,CAAC,OAAO,GACzB,CAAC;YACF,SAAS;YACT,wDAAwD;YACxD,wDAAwD;YACxD,uBAAuB;YACvB,MAAM,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YAE9C,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpD,uCACK,UAAU,KACb,aAAa,EAAE,KAAK,IACpB;SACH;IACH,CAAC;IAED,KAAK,UAAU,MAAM,CACnB,IAAY,EACZ,OAAsB;QAEtB,OAAO,qBAAO,OAAO,CAAC,CAAC,CAAC,mBAAmB;QAC3C,MAAM,IAAI,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YAClB,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAClC;QACD,OAAO,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,UAAU,OAAO,CACpB,IAAY,EACZ,OAAuB;QAEvB,OAAO,qBAAO,OAAO,CAAC,CAAC,CAAC,mBAAmB;QAC3C,MAAM,IAAI,EAAE,CAAC;QACb,OAAO,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,UAAU,KAAK,CAAC,EAAY;QAC/B,EAAE,qBAAO,EAAE,CAAC,CAAC;QACb,MAAM,IAAI,EAAE,CAAC;QACb,MAAM,EACJ,OAAO,EAAE,IAAI,EACb,YAAY,EACZ,cAAc,EACd,OAAO,GACR,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAErB,MAAM,eAAe,GAAG;YACtB,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,QAAQ,EAAE,EAAE,CAAC,QAAQ;YACrB,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;YAC/D,YAAY,EAAE,EAAE,CAAC,YAAY;gBAC3B,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC;gBACjC,CAAC,CAAC,SAAS;YACb,oBAAoB,EAAE,EAAE,CAAC,oBAAoB;gBAC3C,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC;gBACzC,CAAC,CAAC,SAAS;YACb,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YACtD,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,IAAI,EAAE,EAAE,CAAC,IAAI;SACd,CAAC;QAEF,MAAM,gBAAgB,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,YAAY,EAAE,EAAE,CAC3D,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,CACvC,CAAC;QACF,MAAM,aAAa,CAAC,eAAe,CAAC,CAAC;QACrC,MAAM,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAExC,IAAI,OAAO,EAAE;YACX,MAAM,IAAI,2BAAkB,iBAC1B,IAAI,IACD,eAAe,EAClB,CAAC;SACJ;QAED,IAAI,cAAc,EAAE;YAClB,GAAG,CAAC,2BAA2B,cAAc,EAAE,CAAC,CAAC;SAClD;QACD,IAAI,SAAS,GAAG,MAAM,oBAAoB,CACxC,YAAY,CAAC,eAAe,CAAC,eAAe,CAAC,CAC9C,CAAC;QACF,SAAS,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,EAAE,CAAC,QAAQ,EAAE;YACf,IAAI;gBACF,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;aACrC;YAAC,OAAO,CAAC,EAAE,GAAE;SACf;QACD,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,UAAU,kBAAkB,CAC/B,MAA2C,EAC3C,OAAyB;QAOzB,MAAM,SAAS,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC;QACvE,IAAI;YACF,IAAI,MAAM,YAAY,OAAO,EAAE;gBAC7B,MAAM,MAAM,CAAC;aACd;iBAAM;gBACL,MAAM,MAAM,EAAE,CAAC;aAChB;SACF;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,YAAY,2BAAkB,EAAE;gBACnC,MAAM,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACjD,IAAI,SAAS,EAAE;oBACb,OAAO,CAAC,GAAG,CACT,yFAAyF,CAC1F,CAAC;oBACF,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;oBACvC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;oBAC7C,OAAO,CAAC,GAAG,CACT,yFAAyF,CAC1F,CAAC;oBACF,IAAI,QAAQ,EAAE;wBACZ,OAAO,CAAC,GAAG,CACT;QACN,IAAI;MACN,EAAE,KAAK,QAAQ,CAAC,IAAI,IACV,KAAK;4BACH,CAAC,CAAC,WAAW;gCACX,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;4BACxD,CAAC,CAAC,EACN;UACJ,QAAQ,CAAC,MAAM;;MAEnB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;;aAErB,IAAI;CAChB,CACY,CAAC;qBACH;yBAAM;wBACL,OAAO,CAAC,GAAG,CACT;QACN,IAAI;MACN,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,4CAA4C,GAC5C,KAAK;4BACH,CAAC,CAAC,WAAW;gCACX,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;4BACxD,CAAC,CAAC,EACN;QACN,IAAI;CACX,CACY,CAAC;qBACH;oBACD,OAAO,CAAC,GAAG,CACT,yFAAyF,CAC1F,CAAC;iBACH;gBACD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBACvC,OAAO,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC;iBAChC;gBACD,OAAO,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAC,CAAC;aACnD;iBAAM;gBACL,MAAM,CAAC,CAAC;aACT;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,UAAU,OAAO,CACpB,IAAY,EACZ,OAAkB,EAClB,UAAkB,EAClB,GAAG,IAAW;QAEd,OAAO,qBAAO,OAAO,CAAC,CAAC,CAAC,mBAAmB;QAC3C,MAAM,IAAI,EAAE,CAAC;QACb,MAAM,EACJ,OAAO,EAAE,IAAI,EACb,YAAY,EACZ,cAAc,EACd,OAAO,GACR,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE1B,IAAI,EAAE,CAAC;QACP,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;QAC3B,MAAM,SAAS,GAAG;YAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;YACzE,YAAY,EAAE,OAAO,CAAC,YAAY;gBAChC,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;gBACtC,CAAC,CAAC,SAAS;YACb,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;gBAChD,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;gBAC9C,CAAC,CAAC,SAAS;YACb,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YAChE,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,oBAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;QAC3E,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;YACzC,MAAM,IAAI,KAAK,CACb,oBAAoB,UAAU,8BAA8B,IAAI,GAAG,CACpE,CAAC;SACH;QAED,MAAM,YAAY,GAChB,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QACjE,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE;YAChC,MAAM,IAAI,KAAK,CACb,YAAY,YAAY,0BAA0B,UAAU,UAAU,IAAI,CAAC,MAAM,EAAE,CACpF,CAAC;SACH;QAED,MAAM,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,EAAE;YAC1D,MAAM,sBAAsB,GAAG,IAAI;gBACjC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC7B,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACnB,OAAO,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;QAC/B,MAAM,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAEjE,IAAI,OAAO,EAAE;YACX,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACjE,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,cAAc,CAAC,mBAAmB,CAAC,UAAU,CAAC,CACjE,GAAG,UAAU,CACd,CAAC;YACF,MAAM,IAAI,2BAAkB,CAAC;gBAC3B,IAAI;gBACJ,EAAE,EAAE,UAAU,CAAC,OAAO;gBACtB,IAAI;gBACJ,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ,EAAE;oBACR,IAAI;oBACJ,MAAM,EAAE,UAAU;oBAClB,IAAI;iBACL;aACF,CAAC,CAAC;SACJ;QAED,IAAI,OAAO,CAAC,GAAG,IAAI,cAAc,EAAE;YACjC,KAAK,CAAC,aAAa,IAAI,IAAI,UAAU,EAAE,CAAC,CAAC;YACzC,IAAI,cAAc,EAAE;gBAClB,KAAK,CAAC,4BAA4B,cAAc,GAAG,CAAC,CAAC;aACtD;SACF;QAED,EAAE,GAAG,MAAM,oBAAoB,CAC7B,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CACpD,CAAC;QAEF,EAAE,GAAG,MAAM,WAAW,CAAC,EAAE,CAAC,CAAC;QAE3B,IAAI,OAAO,CAAC,GAAG,IAAI,cAAc,EAAE;YACjC,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC;SAChC;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,IAAI;gBACF,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;aACrC;YAAC,OAAO,CAAC,EAAE,GAAE;SACf;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,OAAO,CAAC,GAAG,IAAI,cAAc,EAAE;YACjC,KAAK,CAAC,oBAAoB,OAAO,CAAC,OAAO,QAAQ,CAAC,CAAC;SACpD;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS;IACT,qDAAqD;IACrD,8BAA8B;IAC9B,kBAAkB;IAClB,uCAAuC;IACvC,QAAQ;IACR,YAAY;IACZ,aAAa;IACb,SAAS;IACT,eAAe;IACf,0BAA0B;IAC1B,IAAI;IAEJ,KAAK,UAAU,IAAI,CACjB,IAAY,EACZ,OAA6B,EAC7B,UAAyB,EACzB,GAAG,IAAe;QAElB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE;gBACrC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;aAC1B;YACD,UAAU,GAAG,OAAO,CAAC;YACrB,OAAO,GAAG,EAAE,CAAC;SACd;QACD,OAAO,qBAAO,OAAO,CAAC,CAAC,CAAC,mBAAmB;QAC3C,MAAM,IAAI,EAAE,CAAC;QACb,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;YAC/B,IAAI,GAAG,EAAE,CAAC;SACX;QACD,IAAI,MAAM,GAA0B,QAAQ,CAAC;QAC7C,MAAM,EAAC,YAAY,EAAC,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,YAAY,EAAE;YAChB,MAAM,GAAG,YAAY,CAAC;SACvB;QACD,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,GAAG,CAAC,CAAC;SAChD;QACD,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;QAC3B,MAAM,SAAS,GAAqB;YAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;YACzE,YAAY,EAAE,OAAO,CAAC,YAAY;gBAChC,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;gBACtC,CAAC,CAAC,SAAS;YACb,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;gBAChD,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;gBAC9C,CAAC,CAAC,SAAS;YACb,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YAChE,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,oBAAQ,CACjC,UAAU,CAAC,OAAO,EAClB,GAAG,EACH,MAAgB,CACjB,CAAC;QACF,oBAAoB;QACpB,0BAA0B;QAC1B,mEAAmE;QACnE,mBAAmB;QACnB,uBAAuB;QACvB,gEAAgE;QAChE,SAAS;QACT,MAAM;QACN,2BAA2B;QAC3B,yCAAyC;QACzC,aAAa;QACb,gCAAgC;QAChC,MAAM;QACN,IAAI;QACJ,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,oBAAoB,UAAU,kBAAkB,IAAI,GAAG,CAAC,CAAC;SAC1E;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,OAAO,MAAM,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC;SACnC;aAAM;YACL,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;SAC1B;IACH,CAAC;IAED,MAAM,SAAS,mCACV,gBAAgB,KACnB,gBAAgB;QAChB,MAAM,EACN,OAAO,EAAE;YACP,MAAM,EAAE,OAAO;SAChB,EACD,kBAAkB;QAClB,OAAO;QACP,KAAK;QACL,IAAI;QACJ,aAAa,GACd,CAAC;IAEF,MAAM,KAAK,GAAG;QACZ,2BAA2B,EAAE,KAAK,EAChC,UAsBC,EACD,aAAqB,EACrB,cAAkC,EAClC,EAAE;;YACF,MAAM,IAAI,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE;gBAC7B,IAAI,EAA2B,CAAC;gBAChC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;gBAClC,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE;oBAClC,IAAI,MAAM,CAAC,KAAK,EAAE;wBAChB,EAAE,GAAG,IAAA,oBAAgB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;qBACrC;yBAAM;wBACL,EAAE,GAAG,IAAA,cAAM,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;qBAC7B;oBACD,sIAAsI;iBACvI;qBAAM;oBACL,OAAO,CAAC,KAAK,CAAC,gCAAgC,MAAM,EAAE,CAAC,CAAC;iBACzD;gBAED,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAC7C,0BAA0B,EAC1B,CAAC,MAAM,CAAC,CACT,CAAC;gBAEF,IAAI,UAAU,GAOE,SAAS,CAAC;gBAC1B,IAAI,YAAY,GAAG,cAAc,CAAC;gBAClC,IAAI,CAAC,YAAY,EAAE;oBACjB,YAAY,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;oBAC/D,IAAI;wBACF,UAAU,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE;4BACzD,CAAC;4BACD,QAAQ;4BACR,CAAC,EAAE,EAAE,EAAE,CAAC;yBACT,CAAC,CAAC;qBACJ;oBAAC,OAAO,CAAC,EAAE,GAAE;iBACf;gBACD,MAAM,WAAW,GAAG,qBAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAEjD,IAAI,UAAU,GAA0B,SAAS,CAAC;gBAClD,IAAI,UAAU,EAAE;oBACd,UAAU,GAAG,qBAAS,CAAC,IAAI,CACzB,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAC9D,CAAC;iBACH;gBAED,MAAM,OAAO,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBACrC,IAAI,CAAC,WAAW,EAAE;oBAChB,IAAI,EAAE,EAAE;wBACN,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;qBACpC;oBACD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,8BAA8B,CAAC,CAAC;iBAClE;qBAAM;oBACL,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;oBACpC,IAAI,EAAE,EAAE;wBACN,OAAO,CAAC,GAAG,CACT,eAAe,MAAM,qDACnB,EAAE,CAAC,QAAQ;4BACT,CAAC,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO;4BAC7C,CAAC,CAAC,EAAE,CAAC,oBAAoB,IAAI,EAAE,CAAC,oBAAoB;gCACpD,CAAC,CAAC,yBAAyB,MAAA,EAAE,CAAC,oBAAoB,0CAAE,QAAQ,EAAE,kBAAkB,MAAA,EAAE,CAAC,YAAY,0CAAE,QAAQ,EAAE,EAAE;gCAC7G,CAAC,CAAC,EACN;qCACuB,WAAW,CAAC,QAAQ,EAAE;gBAC3C,UAAU,CAAC,CAAC,CAAC,kBAAkB,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;eAC5D,CACF,CAAC;qBACH;yBAAM;wBACL,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,mBAAmB,CAAC,CAAC;qBACvD;iBACF;gBAED,IAAI,EAAE,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE;oBACpD,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;iBACjC;qBAAM,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,oBAAoB,CAAC,EAAE;oBAC7D,6BAA6B;oBAC7B,2DAA2D;oBAC3D,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;iBACjC;gBAED,MAAM,MAAM,GAAG,IAAK,kBAAgB,CAAC,MAAM,CAAC;oBAC1C,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,iDAAiD;oBAC1D,OAAO;iBACR,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;gBAClC,IAAI,YAAgC,CAAC;gBACrC,IAAI,MAAM,KAAK,kBAAkB,EAAE;oBACjC,IAAI,MAAM,KAAK,kBAAkB,EAAE;wBACjC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;wBAC1C,YAAY,GAAG,MAAM,CAAC;qBACvB;yBAAM,IAAI,MAAM,KAAK,iBAAiB,EAAE;wBACvC,IAAI,CAAC,EAAE,EAAE;4BACP,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;yBAC/D;wBAED,IAAI,MAAM,CAAC,KAAK,EAAE;4BAChB,MAAM,EAAE,GAAG,MAAM,oBAAoB,CACnC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CACvC,CAAC;4BACF,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC;4BACvB,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE;gCACtB,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;6BAC/D;4BACD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;yBACrD;6BAAM;4BACL,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;4BACnC,MAAM,EAAC,YAAY,EAAE,cAAc,EAAC,GAAG,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;4BAChE,IAAI,CAAC,YAAY,EAAE;gCACjB,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;6BAC7C;4BAED,IAAI,cAAc,EAAE;gCAClB,KAAK,CAAC,4BAA4B,cAAc,GAAG,CAAC,CAAC;6BACtD;4BAED,MAAM,KAAK,GAAG,MAAM,oBAAoB,CACtC,YAAY,CAAC,eAAe,CAAC;gCAC3B,EAAE,EAAE,EAAE,CAAC,EAAE;gCACT,IAAI,EAAE,EAAE,CAAC,IAAI;gCACb,KAAK,EAAE,EAAE,CAAC,KAAK;gCAEf,QAAQ,EAAE,EAAE,CAAC,QAAQ;gCACrB,QAAQ,EAAE,EAAE,CAAC,QAAQ;gCACrB,YAAY,EAAE,EAAE,CAAC,YAAY;gCAC7B,oBAAoB,EAAE,EAAE,CAAC,oBAAoB;gCAE7C,IAAI,EAAE,EAAE,CAAC,IAAI;gCACb,KAAK,EAAE,EAAE,CAAC,KAAK;gCACf,OAAO,EAAE,EAAE,CAAC,OAAO;gCACnB,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI;gCAC5C,UAAU,EAAE,EAAE,CAAC,UAAU;6BAC1B,CAAC,CACH,CAAC;4BACF,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;4BAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;gCACzB,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;gCAC1B,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;oCACxC,kBAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;iCAC9B;qCAAM;oCACL,kBAAE,CAAC,aAAa,CACd,aAAa,EACb,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CACvC,CAAC;iCACH;gCACD,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;gCACzB,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;6BAC/D;yBACF;qBACF;yBAAM,IAAI,MAAM,KAAK,cAAc,EAAE;wBACpC,IAAI,CAAC,EAAE,EAAE;4BACP,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;yBAC/D;wBACD,MAAM,EAAC,YAAY,EAAE,cAAc,EAAC,GAAG,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;wBAChE,IAAI,CAAC,YAAY,EAAE;4BACjB,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;yBAC7C;wBAED,IAAI,cAAc,EAAE;4BAClB,KAAK,CAAC,4BAA4B,cAAc,GAAG,CAAC,CAAC;yBACtD;wBAED,MAAM,aAAa,GAAG,MAAM,WAAW,EAAE,CAAC;wBAC1C,MAAM,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC;wBAChD,MAAM,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAC;wBAChE,IAAI,QAA+B,CAAC;wBACpC,IAAI,CAAC,YAAY,IAAI,CAAC,oBAAoB,EAAE;4BAC1C,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;4BAClC,IAAI,QAAQ,EAAE;gCACZ,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;6BAC9D;yBACF;wBACD,6DAA6D;wBAC7D,mEAAmE;wBACnE,4BAA4B;wBAC5B,IAAI;wBAEJ,MAAM,KAAK,GAAG,MAAM,oBAAoB,CACtC,YAAY,CAAC,eAAe,CAAC;4BAC3B,EAAE,EAAE,EAAE,CAAC,EAAE;4BACT,IAAI,EAAE,EAAE,CAAC,IAAI;4BACb,KAAK,EAAE,EAAE,CAAC,KAAK;4BAEf,QAAQ,EAAE,EAAE,CAAC,QAAQ;4BACrB,QAAQ;4BACR,YAAY;4BACZ,oBAAoB;4BAEpB,IAAI,EAAE,EAAE,CAAC,IAAI;4BACb,KAAK,EAAE,EAAE,CAAC,KAAK;4BACf,OAAO,EAAE,EAAE,CAAC,OAAO;4BACnB,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI;4BAC5C,UAAU,EAAE,EAAE,CAAC,UAAU;yBAC1B,CAAC,CACH,CAAC;wBACF,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;wBAC1B,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;wBAC1B,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;4BACxC,kBAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;yBAC9B;6BAAM;4BACL,kBAAE,CAAC,aAAa,CACd,aAAa,EACb,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CACvC,CAAC;yBACH;wBACD,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;wBACzB,OAAO,CAAC,GAAG,CAAC,yCAAyC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;qBACpE;iBACF;gBAED,IAAI,YAAY,EAAE;oBAChB,MAAM,OAAO,GAAG,MAAM,SAAS,CAC7B,OAAO,CAAC,QAAQ,EAChB,YAAY,EACZ,KAAK,CACN,CAAC;oBACF,IACE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,0CAA0C;wBACtF,OAAO,CAAC,eAAe;wBACvB,MAAM,CAAC,IAAI,EACX;wBACA,MAAM,cAAc,CAAC,MAAM,CAAC,IAAI,kCAC3B,MAAM,CAAC,UAAU,KACpB,OAAO,IACP,CAAC;qBACJ;iBACF;gBAED,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC1B,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;oBACxC,kBAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;iBAC9B;qBAAM;oBACL,kBAAE,CAAC,aAAa,CACd,aAAa,EACb,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CACvC,CAAC;iBACH;aACF;QACH,CAAC;KACF,CAAC;IAEF,oEAAoE;IACnE,SAAiB,CAAC,IAAI,GAAG,CACxB,OAAY,EACZ,IAAY,EACZ,UAAkB,EAClB,GAAG,IAAW,EACA,EAAE;QAChB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAClB,IAAI,UAAU,KAAK,SAAS,EAAE;gBAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;aAC1B;YACD,UAAU,GAAG,IAAI,CAAC;YAClB,IAAI,GAAG,OAAO,CAAC;YACf,OAAO,GAAG,EAAE,CAAC;SACd;QACD,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC;IAED,SAAiB,CAAC,aAAa,GAAG,CACjC,OAAkB,EAClB,IAAY,EACZ,UAAkB,EAClB,GAAG,IAAW,EACW,EAAE;QAC3B,OAAO,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC;IAED,SAAiB,CAAC,iBAAiB,GAAG,CACrC,IAAY,EACZ,OAAsB,EACtB,YAAoB,EACpB,GAAG,IAAW,EACS,EAAE;QACzB,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC;QAChC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACpB,OAAO,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC;IACF,uEAAuE;IAEvE,OAAO,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC;AAC5B,CAAC;AA3uED,gCA2uEC;AAED,SAAS,KAAK,CAAC,QAAgB;IAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC;AAEM,KAAK,UAAU,SAAS,CAC7B,QAA0B,EAC1B,MAAc,EACd,UAAmB;IAEnB,IAAI,OAAO,CAAC;IACZ,iDAAiD;IACjD,OAAO,IAAI,EAAE;QACX,IAAI;YACF,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;SACtE;QAAC,OAAO,CAAC,EAAE,GAAE;QACd,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE;YAClC,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;oBAC5B,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;iBAC1C;qBAAM;oBACL,OAAO,OAAO,CAAC;iBAChB;aACF;iBAAM;gBACL,OAAO,OAAO,CAAC;aAChB;SACF;QACD,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;KAChB;AACH,CAAC;AAxBD,8BAwBC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -164,6 +164,7 @@ export interface DeploymentsExtension {
164
164
  deterministic(// return the determinsitic address as well as a function to deploy the contract, can pass the `salt` field in the option to use different salt
165
165
  name: string, options: Create2DeployOptions): Promise<{
166
166
  address: Address;
167
+ implementationAddress?: Address;
167
168
  deploy(): Promise<DeployResult>;
168
169
  }>;
169
170
  fetchIfDifferent(// return true if new compiled code is different than deployed contract
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,iCAA+B;AAC/B,gCAA8B;AAwR9B,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,iDAAG,CAAA;IACH,yDAAO,CAAA;IACP,uDAAM,CAAA;AACR,CAAC,EAJW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAIzB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,iCAA+B;AAC/B,gCAA8B;AAyR9B,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,iDAAG,CAAA;IACH,yDAAO,CAAA;IACP,uDAAM,CAAA;AACR,CAAC,EAJW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAIzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hardhat-deploy",
3
- "version": "0.9.2",
3
+ "version": "0.9.6",
4
4
  "description": "Hardhat Plugin For Replicable Deployments And Tests",
5
5
  "repository": "github:wighawag/hardhat-deploy",
6
6
  "author": "wighawag",
@@ -67,6 +67,7 @@
67
67
  "@ethersproject/address": "^5.4.0",
68
68
  "@ethersproject/bignumber": "^5.4.1",
69
69
  "@ethersproject/bytes": "^5.4.0",
70
+ "@ethersproject/constants": "^5.4.0",
70
71
  "@ethersproject/contracts": "^5.4.1",
71
72
  "@ethersproject/providers": "^5.4.4",
72
73
  "@ethersproject/solidity": "^5.4.0",
package/src/etherscan.ts CHANGED
@@ -163,6 +163,12 @@ export async function submitSources(
163
163
  case '42161':
164
164
  host = 'https://api.arbiscan.io'
165
165
  break;
166
+ case '421611':
167
+ host = 'https://api-testnet.arbiscan.io'
168
+ break;
169
+ case '43114':
170
+ host = 'https://api.snowtrace.io'
171
+ break;
166
172
  default:
167
173
  return logError(`Network with chainId: ${chainId} not supported`);
168
174
  }
package/src/helpers.ts CHANGED
@@ -35,6 +35,7 @@ import {
35
35
  FacetCutAction,
36
36
  Facet,
37
37
  ArtifactData,
38
+ ABI,
38
39
  } from '../types';
39
40
  import {PartialExtension} from './internal/types';
40
41
  import {UnknownSignerError} from './errors';
@@ -399,15 +400,19 @@ export function addHelpers(
399
400
  hardwareWallet,
400
401
  unknown,
401
402
  } = getFrom(options.from);
402
- const create2DeployerAddress = await deploymentManager.getDeterministicDeploymentFactoryAddress();
403
+ const create2DeployerAddress =
404
+ await deploymentManager.getDeterministicDeploymentFactoryAddress();
403
405
  const code = await provider.getCode(create2DeployerAddress);
404
406
  if (code === '0x') {
405
- const senderAddress = await deploymentManager.getDeterministicDeploymentFactoryDeployer();
407
+ const senderAddress =
408
+ await deploymentManager.getDeterministicDeploymentFactoryDeployer();
406
409
 
407
410
  // TODO: calculate required funds
408
411
  const txRequest = {
409
412
  to: senderAddress,
410
- value: (await deploymentManager.getDeterministicDeploymentFactoryFunding()).toHexString(),
413
+ value: (
414
+ await deploymentManager.getDeterministicDeploymentFactoryFunding()
415
+ ).toHexString(),
411
416
  gasPrice: options.gasPrice,
412
417
  maxFeePerGas: options.maxFeePerGas,
413
418
  maxPriorityFeePerGas: options.maxPriorityFeePerGas,
@@ -637,53 +642,154 @@ export function addHelpers(
637
642
  options: Create2DeployOptions
638
643
  ): Promise<{
639
644
  address: Address;
645
+ implementationAddress?: Address;
640
646
  deploy: () => Promise<DeployResult>;
641
647
  }> {
642
648
  options = {...options}; // ensure no change
643
- // TODO refactor to share that code:
644
- const args: any[] = options.args ? [...options.args] : [];
645
649
  await init();
646
- const {ethersSigner, unknown, address: from} = getFrom(options.from);
647
650
 
648
- const artifactInfo = await getArtifactFromOptions(name, options);
649
- const {artifact} = artifactInfo;
650
- const abi = artifact.abi;
651
- const byteCode = linkLibraries(artifact, options.libraries);
652
- const factory = new ContractFactory(abi, byteCode, ethersSigner);
651
+ const deployFunction = () =>
652
+ deploy(name, {
653
+ ...options,
654
+ deterministicDeployment: options.salt || true,
655
+ });
656
+ if (options.proxy) {
657
+ /* eslint-disable prefer-const */
658
+ let {
659
+ viaAdminContract,
660
+ proxyAdminDeployed,
661
+ proxyAdminName,
662
+ proxyAdminContract,
663
+ owner,
664
+ proxyAdmin,
665
+ currentProxyAdminOwner,
666
+ artifact,
667
+ implementationArgs,
668
+ implementationName,
669
+ implementationOptions,
670
+ proxyName,
671
+ proxyContract,
672
+ mergedABI,
673
+ updateMethod,
674
+ updateArgs,
675
+ } = await _getProxyInfo(name, options);
676
+ /* eslint-enable prefer-const */
677
+
678
+ const {address: implementationAddress} = await deterministic(
679
+ implementationName,
680
+ {...implementationOptions, salt: options.salt}
681
+ );
653
682
 
654
- const numArguments = factory.interface.deploy.inputs.length;
655
- if (args.length !== numArguments) {
656
- throw new Error(
657
- `expected ${numArguments} constructor arguments, got ${args.length}`
683
+ const implementationContract = new Contract(
684
+ implementationAddress,
685
+ artifact.abi
658
686
  );
659
- }
660
687
 
661
- const unsignedTx = factory.getDeployTransaction(...args);
688
+ let data = '0x';
689
+ if (updateMethod) {
690
+ updateArgs = updateArgs || [];
691
+ if (!implementationContract[updateMethod]) {
692
+ throw new Error(
693
+ `contract need to implement function ${updateMethod}`
694
+ );
695
+ }
696
+ const txData = await implementationContract.populateTransaction[
697
+ updateMethod
698
+ ](...updateArgs);
699
+ data = txData.data || '0x';
700
+ }
662
701
 
663
- if (unknown) {
664
- throw new UnknownSignerError({
665
- from,
666
- ...JSON.parse(JSON.stringify(unsignedTx)),
702
+ if (viaAdminContract) {
703
+ if (!proxyAdminName) {
704
+ throw new Error(
705
+ `no proxy admin name even though viaAdminContract is not undefined`
706
+ );
707
+ }
708
+
709
+ if (!proxyAdminDeployed) {
710
+ const {address: proxyAdminAddress} = await deterministic(
711
+ proxyAdminName,
712
+ {
713
+ from: options.from,
714
+ autoMine: options.autoMine,
715
+ estimateGasExtra: options.estimateGasExtra,
716
+ estimatedGasLimit: options.estimatedGasLimit,
717
+ gasPrice: options.gasPrice,
718
+ maxFeePerGas: options.maxFeePerGas,
719
+ maxPriorityFeePerGas: options.maxPriorityFeePerGas,
720
+ log: options.log,
721
+ contract: proxyAdminContract,
722
+ salt: options.salt,
723
+ skipIfAlreadyDeployed: true,
724
+ args: [owner],
725
+ waitConfirmations: options.waitConfirmations,
726
+ }
727
+ );
728
+ proxyAdmin = proxyAdminAddress;
729
+ } else {
730
+ proxyAdmin = proxyAdminDeployed.address;
731
+ }
732
+ }
733
+
734
+ const proxyOptions = {...options}; // ensure no change
735
+ delete proxyOptions.proxy;
736
+ delete proxyOptions.libraries;
737
+ proxyOptions.contract = proxyContract;
738
+ proxyOptions.args = [implementationAddress, proxyAdmin, data];
739
+ const {address: proxyAddress} = await deterministic(proxyName, {
740
+ ...proxyOptions,
741
+ salt: options.salt,
667
742
  });
668
- }
669
743
 
670
- if (typeof unsignedTx.data !== 'string') {
671
- throw new Error('unsigned tx data as bytes not supported');
672
- } else {
673
744
  return {
674
- address: getCreate2Address(
675
- await deploymentManager.getDeterministicDeploymentFactoryAddress(),
676
- options.salt
677
- ? hexlify(zeroPad(options.salt, 32))
678
- : '0x0000000000000000000000000000000000000000000000000000000000000000',
679
- unsignedTx.data
680
- ),
681
- deploy: () =>
682
- deploy(name, {
683
- ...options,
684
- deterministicDeployment: options.salt || true,
685
- }),
745
+ address: proxyAddress,
746
+ implementationAddress,
747
+ deploy: deployFunction,
686
748
  };
749
+ } else {
750
+ const args: any[] = options.args ? [...options.args] : [];
751
+ const {ethersSigner, unknown, address: from} = getFrom(options.from);
752
+
753
+ const artifactInfo = await getArtifactFromOptions(name, options);
754
+ const {artifact} = artifactInfo;
755
+ const abi = artifact.abi;
756
+ const byteCode = linkLibraries(artifact, options.libraries);
757
+ const factory = new ContractFactory(abi, byteCode, ethersSigner);
758
+
759
+ const numArguments = factory.interface.deploy.inputs.length;
760
+ if (args.length !== numArguments) {
761
+ throw new Error(
762
+ `expected ${numArguments} constructor arguments, got ${args.length}`
763
+ );
764
+ }
765
+
766
+ const unsignedTx = factory.getDeployTransaction(...args);
767
+
768
+ if (unknown) {
769
+ throw new UnknownSignerError({
770
+ from,
771
+ ...JSON.parse(JSON.stringify(unsignedTx)),
772
+ });
773
+ }
774
+
775
+ if (typeof unsignedTx.data !== 'string') {
776
+ throw new Error('unsigned tx data as bytes not supported');
777
+ } else {
778
+ return {
779
+ address: getCreate2Address(
780
+ await deploymentManager.getDeterministicDeploymentFactoryAddress(),
781
+ options.salt
782
+ ? hexlify(zeroPad(options.salt, 32))
783
+ : '0x0000000000000000000000000000000000000000000000000000000000000000',
784
+ unsignedTx.data
785
+ ),
786
+ deploy: () =>
787
+ deploy(name, {
788
+ ...options,
789
+ deterministicDeployment: options.salt || true,
790
+ }),
791
+ };
792
+ }
687
793
  }
688
794
  }
689
795
 
@@ -725,7 +831,8 @@ export function addHelpers(
725
831
  typeof options.deterministicDeployment === 'string'
726
832
  ? hexlify(zeroPad(options.deterministicDeployment, 32))
727
833
  : '0x0000000000000000000000000000000000000000000000000000000000000000';
728
- const create2DeployerAddress = await deploymentManager.getDeterministicDeploymentFactoryAddress();
834
+ const create2DeployerAddress =
835
+ await deploymentManager.getDeterministicDeploymentFactoryAddress();
729
836
  const create2Address = getCreate2Address(
730
837
  create2DeployerAddress,
731
838
  create2Salt,
@@ -747,12 +854,15 @@ export function addHelpers(
747
854
  return {differences: false, address: undefined}; // TODO check receipt, see below
748
855
  }
749
856
  // TODO transactionReceipt + check for status
857
+ let transactionDetailsAvailable = false;
750
858
  let transaction;
751
859
  if (deployment.receipt) {
860
+ transactionDetailsAvailable = !!deployment.receipt.transactionHash;
752
861
  transaction = await provider.getTransaction(
753
862
  deployment.receipt.transactionHash
754
863
  );
755
864
  } else if (deployment.transactionHash) {
865
+ transactionDetailsAvailable = true;
756
866
  transaction = await provider.getTransaction(deployment.transactionHash);
757
867
  }
758
868
 
@@ -769,6 +879,17 @@ export function addHelpers(
769
879
  return {differences: true, address: deployment.address};
770
880
  }
771
881
  return {differences: false, address: deployment.address};
882
+ } else {
883
+ if (transactionDetailsAvailable) {
884
+ throw new Error(
885
+ `cannot get the transaction for ${name}'s previous deployment, please check your node synced status.`
886
+ );
887
+ } else {
888
+ console.error(
889
+ `no transaction details found for ${name}'s previous deployment, if the deployment is t be discarded, please delete the file`
890
+ );
891
+ return {differences: false, address: deployment.address};
892
+ }
772
893
  }
773
894
  }
774
895
  return {differences: true, address: undefined};
@@ -893,11 +1014,32 @@ export function addHelpers(
893
1014
  }
894
1015
  }
895
1016
 
896
- // TODO rename
897
- async function _deployViaEIP173Proxy(
1017
+ async function _getProxyInfo(
898
1018
  name: string,
899
1019
  options: DeployOptions
900
- ): Promise<DeployResult> {
1020
+ ): Promise<{
1021
+ viaAdminContract:
1022
+ | string
1023
+ | {name: string; artifact?: string | ArtifactData}
1024
+ | undefined;
1025
+ proxyAdminName: string | undefined;
1026
+ proxyAdminDeployed: Deployment | undefined;
1027
+ proxyAdmin: string;
1028
+ proxyAdminContract: ExtendedArtifact | undefined;
1029
+ owner: string;
1030
+ currentProxyAdminOwner: string | undefined;
1031
+ artifact: ExtendedArtifact;
1032
+ implementationArgs: any[];
1033
+ implementationName: string;
1034
+ implementationOptions: DeployOptions;
1035
+ mergedABI: ABI;
1036
+ proxyName: string;
1037
+ proxyContract: ExtendedArtifact;
1038
+ oldDeployment: Deployment | null;
1039
+ updateMethod: string | undefined;
1040
+ updateArgs: any[];
1041
+ upgradeIndex: number | undefined;
1042
+ }> {
901
1043
  const oldDeployment = await getDeploymentOrNUll(name);
902
1044
  let updateMethod: string | undefined;
903
1045
  let updateArgs: any[] | undefined;
@@ -982,10 +1124,7 @@ export function addHelpers(
982
1124
  } else if (typeof options.proxy === 'string') {
983
1125
  updateMethod = options.proxy;
984
1126
  }
985
- const deployResult = _checkUpgradeIndex(oldDeployment, upgradeIndex);
986
- if (deployResult) {
987
- return deployResult;
988
- }
1127
+
989
1128
  const proxyName = name + '_Proxy';
990
1129
  const {address: owner} = getProxyOwner(options);
991
1130
  const {address: from} = getFrom(options.from);
@@ -1078,9 +1217,10 @@ Note that in this case, the contract deployment will not behave the same if depl
1078
1217
  }
1079
1218
 
1080
1219
  let proxyAdminName: string | undefined;
1081
- let proxyAdmin = owner;
1220
+ const proxyAdmin = owner;
1082
1221
  let currentProxyAdminOwner: string | undefined;
1083
1222
  let proxyAdminDeployed: Deployment | undefined;
1223
+ let proxyAdminContract: ExtendedArtifact | undefined;
1084
1224
  if (viaAdminContract) {
1085
1225
  let proxyAdminArtifactNameOrContract: string | ArtifactData | undefined;
1086
1226
  if (typeof viaAdminContract === 'string') {
@@ -1094,7 +1234,6 @@ Note that in this case, the contract deployment will not behave the same if depl
1094
1234
  proxyAdminArtifactNameOrContract = viaAdminContract.artifact;
1095
1235
  }
1096
1236
 
1097
- let proxyAdminContract: ExtendedArtifact | undefined;
1098
1237
  if (typeof proxyAdminArtifactNameOrContract === 'string') {
1099
1238
  try {
1100
1239
  proxyAdminContract = await partialExtension.getExtendedArtifact(
@@ -1114,7 +1253,69 @@ Note that in this case, the contract deployment will not behave the same if depl
1114
1253
  } else {
1115
1254
  proxyAdminContract = proxyAdminArtifactNameOrContract;
1116
1255
  }
1256
+ }
1257
+
1258
+ return {
1259
+ proxyName,
1260
+ proxyContract,
1261
+ mergedABI,
1262
+ viaAdminContract,
1263
+ proxyAdminDeployed,
1264
+ proxyAdminName,
1265
+ proxyAdminContract,
1266
+ owner,
1267
+ proxyAdmin,
1268
+ currentProxyAdminOwner,
1269
+ artifact,
1270
+ implementationArgs,
1271
+ implementationName,
1272
+ implementationOptions,
1273
+ oldDeployment,
1274
+ updateMethod,
1275
+ updateArgs,
1276
+ upgradeIndex,
1277
+ };
1278
+ }
1279
+
1280
+ // TODO rename
1281
+ async function _deployViaEIP173Proxy(
1282
+ name: string,
1283
+ options: DeployOptions
1284
+ ): Promise<DeployResult> {
1285
+ /* eslint-disable prefer-const */
1286
+ let {
1287
+ oldDeployment,
1288
+ updateMethod,
1289
+ updateArgs,
1290
+ upgradeIndex,
1291
+ viaAdminContract,
1292
+ proxyAdminDeployed,
1293
+ proxyAdminName,
1294
+ proxyAdminContract,
1295
+ owner,
1296
+ proxyAdmin,
1297
+ currentProxyAdminOwner,
1298
+ artifact,
1299
+ implementationArgs,
1300
+ implementationName,
1301
+ implementationOptions,
1302
+ proxyName,
1303
+ proxyContract,
1304
+ mergedABI,
1305
+ } = await _getProxyInfo(name, options);
1306
+ /* eslint-enable prefer-const */
1117
1307
 
1308
+ const deployResult = _checkUpgradeIndex(oldDeployment, upgradeIndex);
1309
+ if (deployResult) {
1310
+ return deployResult;
1311
+ }
1312
+
1313
+ if (viaAdminContract) {
1314
+ if (!proxyAdminName) {
1315
+ throw new Error(
1316
+ `no proxy admin name even though viaAdminContract is not undefined`
1317
+ );
1318
+ }
1118
1319
  if (!proxyAdminDeployed) {
1119
1320
  proxyAdminDeployed = await _deployOne(proxyAdminName, {
1120
1321
  from: options.from,
package/types.ts CHANGED
@@ -165,7 +165,7 @@ export interface TxOptions extends CallOptions {
165
165
  autoMine?: boolean;
166
166
  estimatedGasLimit?: string | number | BigNumber;
167
167
  estimateGasExtra?: string | number | BigNumber;
168
- waitConfirmations?: number
168
+ waitConfirmations?: number;
169
169
  }
170
170
 
171
171
  export interface Execute extends TxOptions {
@@ -203,6 +203,7 @@ export interface DeploymentsExtension {
203
203
  options: Create2DeployOptions
204
204
  ): Promise<{
205
205
  address: Address;
206
+ implementationAddress?: Address;
206
207
  deploy(): Promise<DeployResult>;
207
208
  }>;
208
209
  fetchIfDifferent( // return true if new compiled code is different than deployed contract
@@ -351,8 +352,8 @@ export interface Deployment {
351
352
  }
352
353
 
353
354
  export interface DeterministicDeploymentInfo {
354
- factory: string,
355
- deployer: string,
356
- funding: string,
357
- signedTx: string,
358
- }
355
+ factory: string;
356
+ deployer: string;
357
+ funding: string;
358
+ signedTx: string;
359
+ }