@1inch/solidity-utils 6.5.0 → 6.7.0

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.
@@ -4,7 +4,7 @@ pragma solidity ^0.8.0;
4
4
 
5
5
  /**
6
6
  * @title AddressArray
7
- * @notice Implements a dynamic array of addresses using a mapping for storage efficiency, with the array length stored at index 0.
7
+ * @notice Implements a storage-efficient dynamic array of addresses, with the length encoded in the first storage slot.
8
8
  * @dev This library provides basic functionalities such as push, pop, set, and retrieval of addresses in a storage-efficient manner.
9
9
  */
10
10
  library AddressArray {
@@ -30,7 +30,7 @@ library AddressArray {
30
30
  uint256 internal constant _LENGTH_OFFSET = 160;
31
31
 
32
32
  /**
33
- * @dev Struct containing the raw mapping used to store the addresses and the array length.
33
+ * @dev Internal address array where the first element encodes both the length and the first address value.
34
34
  */
35
35
  struct Data {
36
36
  uint256[1 << 32] _raw;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @category Docgen
3
3
  * @notice A helper method to get the path to the templates folder.
4
- * @returns The the path to templates folder.
4
+ * @returns The path to templates folder.
5
5
  */
6
6
  export declare function oneInchTemplates(): string;
@@ -6,7 +6,7 @@ const path_1 = tslib_1.__importDefault(require("path"));
6
6
  /**
7
7
  * @category Docgen
8
8
  * @notice A helper method to get the path to the templates folder.
9
- * @returns The the path to templates folder.
9
+ * @returns The path to templates folder.
10
10
  */
11
11
  function oneInchTemplates() {
12
12
  return path_1.default.normalize(path_1.default.join(__dirname, '../../docgen/templates'));
@@ -1,15 +1,23 @@
1
+ import dotenv from 'dotenv';
1
2
  import { ChainConfig } from '@nomicfoundation/hardhat-verify/src/types';
2
3
  import { HardhatNetworkAccountsUserConfig, Network, NetworksUserConfig } from 'hardhat/types';
4
+ /**
5
+ * @category Hardhat-Setup
6
+ * Loads environment variables into process.env using the dotenv package.
7
+ * By default, loads variables from a `.env` file in the project root.
8
+ * You can provide custom options (e.g. a different path or encoding) via the `options` parameter.
9
+ * @param options Optional configuration object for dotenv (e.g. `{ path: '.env.local' }`).
10
+ * @see https://github.com/motdotla/dotenv#config
11
+ */
12
+ export declare function loadEnv(options?: dotenv.DotenvConfigOptions): void;
3
13
  /**
4
14
  * @category Hardhat-Setup
5
15
  * Configuration type for managing Etherscan integration in Hardhat setups.
6
- * @param apiKey Dictionary of API keys for accessing Etherscan, indexed by network name.
16
+ * @param apiKey The API key for accessing the Etherscan API v2 (used for all networks).
7
17
  * @param customChains Array of custom blockchain network configurations.
8
18
  */
9
19
  export type Etherscan = {
10
- apiKey: {
11
- [key: string]: string;
12
- };
20
+ apiKey: string;
13
21
  customChains: ChainConfig[];
14
22
  };
15
23
  /**
@@ -43,7 +51,7 @@ export declare function resetHardhatNetworkFork(network: Network, networkName: s
43
51
  export declare class Networks {
44
52
  networks: NetworksUserConfig;
45
53
  etherscan: Etherscan;
46
- constructor(useHardhat?: boolean, forkingNetworkName?: string, saveHardhatDeployments?: boolean, forkingAccounts?: HardhatNetworkAccountsUserConfig);
54
+ constructor(useHardhat?: boolean, forkingNetworkName?: string, saveHardhatDeployments?: boolean, forkingAccounts?: HardhatNetworkAccountsUserConfig, autoLoadEnv?: boolean);
47
55
  register(name: string, chainId: number, rpc?: string, privateKey?: string, etherscanNetworkName?: string, etherscanKey?: string, hardfork?: string, l1Network?: string): void;
48
56
  registerCustom(name: string, chainId: number, url?: string, privateKey?: string, etherscanKey?: string, apiURL?: string, browserURL?: string, hardfork?: string): void;
49
57
  registerAll(): {
@@ -1,11 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Networks = void 0;
4
+ exports.loadEnv = loadEnv;
4
5
  exports.getNetwork = getNetwork;
5
6
  exports.parseRpcEnv = parseRpcEnv;
6
7
  exports.resetHardhatNetworkFork = resetHardhatNetworkFork;
7
8
  const tslib_1 = require("tslib");
8
9
  const dotenv_1 = tslib_1.__importDefault(require("dotenv"));
10
+ /**
11
+ * @category Hardhat-Setup
12
+ * Loads environment variables into process.env using the dotenv package.
13
+ * By default, loads variables from a `.env` file in the project root.
14
+ * You can provide custom options (e.g. a different path or encoding) via the `options` parameter.
15
+ * @param options Optional configuration object for dotenv (e.g. `{ path: '.env.local' }`).
16
+ * @see https://github.com/motdotla/dotenv#config
17
+ */
18
+ function loadEnv(options) {
19
+ dotenv_1.default.config(options);
20
+ }
9
21
  /**
10
22
  * @category Hardhat-Setup
11
23
  * A helper method to get the network name from the command line arguments.
@@ -60,10 +72,12 @@ async function resetHardhatNetworkFork(network, networkName) {
60
72
  * See the [README](https://github.com/1inch/solidity-utils/tree/master/hardhat-setup/README.md) for usage.
61
73
  */
62
74
  class Networks {
63
- constructor(useHardhat = true, forkingNetworkName, saveHardhatDeployments = false, forkingAccounts) {
75
+ constructor(useHardhat = true, forkingNetworkName, saveHardhatDeployments = false, forkingAccounts, autoLoadEnv = true) {
64
76
  this.networks = {};
65
- this.etherscan = { apiKey: {}, customChains: [] };
66
- dotenv_1.default.config();
77
+ this.etherscan = { apiKey: '', customChains: [] };
78
+ if (autoLoadEnv) {
79
+ loadEnv();
80
+ }
67
81
  if (useHardhat || forkingNetworkName) {
68
82
  this.networks.hardhat = {
69
83
  chainId: Number(process.env.FORK_CHAIN_ID) || 31337,
@@ -76,7 +90,12 @@ class Networks {
76
90
  }
77
91
  }
78
92
  if (forkingNetworkName) {
79
- const { url, authKeyHttpHeader } = parseRpcEnv(process.env[`${forkingNetworkName.toUpperCase()}_RPC_URL`] || '');
93
+ const forkRpcKey = `${forkingNetworkName.toUpperCase()}_RPC_URL`;
94
+ const forkRpcEnv = process.env[forkRpcKey];
95
+ if (!forkRpcEnv) {
96
+ throw new Error(`Missing required environment variable '${forkRpcKey}'. Did you forget to call loadEnv() or set autoLoadEnv to true?`);
97
+ }
98
+ const { url, authKeyHttpHeader } = parseRpcEnv(forkRpcEnv || '');
80
99
  this.networks.hardhat.forking = {
81
100
  url,
82
101
  httpHeaders: authKeyHttpHeader ? { 'auth-key': authKeyHttpHeader } : undefined,
@@ -94,7 +113,9 @@ class Networks {
94
113
  hardfork,
95
114
  ...(l1Network && { ethNetwork: l1Network, zksync: true }),
96
115
  };
97
- this.etherscan.apiKey[etherscanNetworkName] = etherscanKey;
116
+ if (etherscanKey) {
117
+ this.etherscan.apiKey = etherscanKey;
118
+ }
98
119
  console.log(`Network '${name}' registered`);
99
120
  }
100
121
  else {
@@ -109,24 +130,22 @@ class Networks {
109
130
  }
110
131
  registerAll() {
111
132
  const privateKey = process.env.PRIVATE_KEY;
133
+ const etherscanApiKey = process.env.ETHERSCAN_API_KEY;
112
134
  /* eslint-disable max-len */
113
- this.register('mainnet', 1, process.env.MAINNET_RPC_URL, process.env.MAINNET_PRIVATE_KEY || privateKey, 'mainnet', process.env.MAINNET_ETHERSCAN_KEY);
114
- this.register('bsc', 56, process.env.BSC_RPC_URL, process.env.BSC_PRIVATE_KEY || privateKey, 'bsc', process.env.BSC_ETHERSCAN_KEY);
115
- this.register('sepolia', 11155111, process.env.SEPOLIA_RPC_URL, process.env.SEPOLIA_PRIVATE_KEY || privateKey, 'sepolia', process.env.SEPOLIA_ETHERSCAN_KEY);
116
- this.register('optimistic', 10, process.env.OPTIMISTIC_RPC_URL, process.env.OPTIMISTIC_PRIVATE_KEY || privateKey, 'optimisticEthereum', process.env.OPTIMISTIC_ETHERSCAN_KEY);
117
- this.register('matic', 137, process.env.MATIC_RPC_URL, process.env.MATIC_PRIVATE_KEY || privateKey, 'polygon', process.env.MATIC_ETHERSCAN_KEY);
118
- this.register('arbitrum', 42161, process.env.ARBITRUM_RPC_URL, process.env.ARBITRUM_PRIVATE_KEY || privateKey, 'arbitrumOne', process.env.ARBITRUM_ETHERSCAN_KEY);
119
- this.register('xdai', 100, process.env.XDAI_RPC_URL, process.env.XDAI_PRIVATE_KEY || privateKey, 'xdai', process.env.XDAI_ETHERSCAN_KEY);
120
- this.register('avax', 43114, process.env.AVAX_RPC_URL, process.env.AVAX_PRIVATE_KEY || privateKey, 'avalanche', process.env.AVAX_ETHERSCAN_KEY, 'paris');
121
- this.register('fantom', 250, process.env.FANTOM_RPC_URL, process.env.FANTOM_PRIVATE_KEY || privateKey, 'opera', process.env.FANTOM_ETHERSCAN_KEY, 'paris');
122
- this.register('aurora', 1313161554, process.env.AURORA_RPC_URL, process.env.AURORA_PRIVATE_KEY || privateKey, 'aurora', process.env.AURORA_ETHERSCAN_KEY);
123
- this.register('base', 8453, process.env.BASE_RPC_URL, process.env.BASE_PRIVATE_KEY || privateKey, 'base', process.env.BASE_ETHERSCAN_KEY);
124
- this.registerCustom('klaytn', 8217, process.env.KLAYTN_RPC_URL, process.env.KLAYTN_PRIVATE_KEY || privateKey, process.env.KLAYTN_ETHERSCAN_KEY, 'https://scope.klaytn.com/', 'https://scope.klaytn.com/');
125
- this.registerCustom('linea', 59144, process.env.LINEA_RPC_URL, process.env.LINEA_PRIVATE_KEY || privateKey, process.env.LINEA_ETHERSCAN_KEY, 'https://api.lineascan.build/api', 'https://lineascan.build/', 'london');
126
- this.registerCustom('sonic', 146, process.env.SONIC_RPC_URL, process.env.SONIC_PRIVATE_KEY || privateKey, process.env.SONIC_ETHERSCAN_KEY, 'https://api.sonicscan.org/api', 'https://sonicscan.org/', 'shanghai');
127
- this.registerCustom('unichain', 130, process.env.UNICHAIN_RPC_URL, process.env.UNICHAIN_PRIVATE_KEY || privateKey, process.env.UNICHAIN_ETHERSCAN_KEY, 'https://api.uniscan.xyz/api', 'https://uniscan.xyz/', 'shanghai');
128
- this.register('zksync', 324, process.env.ZKSYNC_RPC_URL, process.env.ZKSYNC_PRIVATE_KEY || privateKey, 'zksyncmainnet', process.env.ZKSYNC_ETHERSCAN_KEY, 'paris', 'mainnet');
129
- this.register('zksyncTest', 300, process.env.ZKSYNC_TEST_RPC_URL, process.env.ZKSYNC_TEST_PRIVATE_KEY || privateKey, 'zksyncsepolia', process.env.ZKSYNC_TEST_ETHERSCAN_KEY, 'paris', 'sepolia');
135
+ this.register('mainnet', 1, process.env.MAINNET_RPC_URL, process.env.MAINNET_PRIVATE_KEY || privateKey, 'mainnet', etherscanApiKey);
136
+ this.register('bsc', 56, process.env.BSC_RPC_URL, process.env.BSC_PRIVATE_KEY || privateKey, 'bsc', etherscanApiKey);
137
+ this.register('sepolia', 11155111, process.env.SEPOLIA_RPC_URL, process.env.SEPOLIA_PRIVATE_KEY || privateKey, 'sepolia', etherscanApiKey);
138
+ this.register('optimistic', 10, process.env.OPTIMISTIC_RPC_URL, process.env.OPTIMISTIC_PRIVATE_KEY || privateKey, 'optimisticEthereum', etherscanApiKey);
139
+ this.register('matic', 137, process.env.MATIC_RPC_URL, process.env.MATIC_PRIVATE_KEY || privateKey, 'polygon', etherscanApiKey);
140
+ this.register('arbitrum', 42161, process.env.ARBITRUM_RPC_URL, process.env.ARBITRUM_PRIVATE_KEY || privateKey, 'arbitrumOne', etherscanApiKey);
141
+ this.register('xdai', 100, process.env.XDAI_RPC_URL, process.env.XDAI_PRIVATE_KEY || privateKey, 'xdai', etherscanApiKey);
142
+ this.register('avax', 43114, process.env.AVAX_RPC_URL, process.env.AVAX_PRIVATE_KEY || privateKey, 'avalanche', etherscanApiKey, 'paris');
143
+ this.register('base', 8453, process.env.BASE_RPC_URL, process.env.BASE_PRIVATE_KEY || privateKey, 'base', etherscanApiKey);
144
+ this.registerCustom('linea', 59144, process.env.LINEA_RPC_URL, process.env.LINEA_PRIVATE_KEY || privateKey, etherscanApiKey, 'https://api.lineascan.build/api', 'https://lineascan.build/', 'london');
145
+ this.registerCustom('sonic', 146, process.env.SONIC_RPC_URL, process.env.SONIC_PRIVATE_KEY || privateKey, etherscanApiKey, 'https://api.sonicscan.org/api', 'https://sonicscan.org/', 'shanghai');
146
+ this.registerCustom('unichain', 130, process.env.UNICHAIN_RPC_URL, process.env.UNICHAIN_PRIVATE_KEY || privateKey, etherscanApiKey, 'https://api.uniscan.xyz/api', 'https://uniscan.xyz/', 'shanghai');
147
+ this.register('zksync', 324, process.env.ZKSYNC_RPC_URL, process.env.ZKSYNC_PRIVATE_KEY || privateKey, 'zksyncmainnet', etherscanApiKey, 'paris', 'mainnet');
148
+ this.register('zksyncTest', 300, process.env.ZKSYNC_TEST_RPC_URL, process.env.ZKSYNC_TEST_PRIVATE_KEY || privateKey, 'zksyncsepolia', etherscanApiKey, 'paris', 'sepolia');
130
149
  // For 'zksyncFork' network you should use zksync fork node: https://github.com/matter-labs/era-test-node
131
150
  this.register('zksyncFork', 260, process.env.ZKSYNC_FORK_RPC_URL, process.env.ZKSYNC_FORK_PRIVATE_KEY || privateKey, 'zksyncfork', 'none', 'paris', process.env.ZKSYNC_LOCAL_ETH_NETWORK || 'mainnet');
132
151
  this.register('zksyncLocal', 270, process.env.ZKSYNC_LOCAL_RPC_URL, process.env.ZKSYNC_PRIVATE_KEY || privateKey, 'zksynclocal', 'none', 'paris', process.env.ZKSYNC_LOCAL_ETH_NETWORK);
@@ -1 +1 @@
1
- {"version":3,"file":"networks.js","sourceRoot":"","sources":["../../hardhat-setup/networks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"networks.js","sourceRoot":"","sources":["../../hardhat-setup/networks.ts"],"names":[],"mappings":"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"}
@@ -189,3 +189,17 @@ export declare function countInstructions(provider: JsonRpcProvider | {
189
189
  * @return The price of the specified native token in USD, scaled by 1e18 to preserve precision.
190
190
  */
191
191
  export declare function getEthPrice(nativeTokenSymbol?: string): Promise<bigint>;
192
+ /**
193
+ * @category utils
194
+ * Sets custom bytecode for local test accounts and returns them as signers.
195
+ * This helper is intended for test environments (e.g., Hardhat) where deploying or modifying contract code
196
+ * at known addresses is required. It allows setting the same or different bytecode for multiple accounts.
197
+ *
198
+ * Primarily useful for ensuring accounts start with empty code. For example, with the introduction of EIP-7702
199
+ * on some networks, default accounts (like the first few returned by `ethers.getSigners()`) may already have
200
+ * forwarding contracts deployed to them, which can break assumptions in tests.
201
+ *
202
+ * @param code A single bytecode (applied to all accounts) or an array of bytecodes (one per account). Defaults to '0x'.
203
+ * @return A list of signers (accounts) with the specified code applied.
204
+ */
205
+ export declare function getAccountsWithCode(code?: BytesLike | Array<BytesLike | undefined>): Promise<SignerWithAddress[]>;
package/dist/src/utils.js CHANGED
@@ -11,11 +11,13 @@ exports.fixSignature = fixSignature;
11
11
  exports.signMessage = signMessage;
12
12
  exports.countInstructions = countInstructions;
13
13
  exports.getEthPrice = getEthPrice;
14
+ exports.getAccountsWithCode = getAccountsWithCode;
14
15
  const tslib_1 = require("tslib");
15
16
  require("@nomicfoundation/hardhat-ethers"); // required to populate the HardhatRuntimeEnvironment with ethers
16
17
  const hardhat_1 = tslib_1.__importStar(require("hardhat"));
17
18
  const hardhat_network_helpers_1 = require("@nomicfoundation/hardhat-network-helpers");
18
19
  const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
20
+ const ethers_1 = require("ethers");
19
21
  const prelude_1 = require("./prelude");
20
22
  /**
21
23
  * @category utils
@@ -268,4 +270,30 @@ async function getEthPrice(nativeTokenSymbol = 'ETH') {
268
270
  }
269
271
  return amount;
270
272
  }
273
+ /**
274
+ * @category utils
275
+ * Sets custom bytecode for local test accounts and returns them as signers.
276
+ * This helper is intended for test environments (e.g., Hardhat) where deploying or modifying contract code
277
+ * at known addresses is required. It allows setting the same or different bytecode for multiple accounts.
278
+ *
279
+ * Primarily useful for ensuring accounts start with empty code. For example, with the introduction of EIP-7702
280
+ * on some networks, default accounts (like the first few returned by `ethers.getSigners()`) may already have
281
+ * forwarding contracts deployed to them, which can break assumptions in tests.
282
+ *
283
+ * @param code A single bytecode (applied to all accounts) or an array of bytecodes (one per account). Defaults to '0x'.
284
+ * @return A list of signers (accounts) with the specified code applied.
285
+ */
286
+ async function getAccountsWithCode(code = '0x') {
287
+ const accounts = await hardhat_1.ethers.getSigners();
288
+ for (let i = 0; i < accounts.length; i++) {
289
+ const newAccountCode = (0, ethers_1.isBytesLike)(code)
290
+ ? code
291
+ : (code[i] ? code[i] : '0x');
292
+ await hardhat_1.default.network.provider.request({
293
+ method: 'hardhat_setCode',
294
+ params: [accounts[i].address, newAccountCode],
295
+ });
296
+ }
297
+ return accounts;
298
+ }
271
299
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;AAqEA,oDAgDC;AAcD,0EAmDC;AAgBD,8EA2CC;AAOD,wCAIC;AASD,wCAKC;AAYD,gEAKC;AAmCD,0DAmBC;AAQD,oCAUC;AASD,kCAKC;AAUD,8CAaC;AAYD,kCAcC;AAeD,kDAYC;;AA7bD,2CAAyC,CAAE,iEAAiE;AAC5G,2DAAsC;AACtC,sFAAgE;AAEhE,oEAA+B;AAC/B,mCAAoM;AAGpM,uCAAsC;AAiDtC;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,oBAAoB,CAAC,OAA8B;IACrE,iCAAiC;IACjC,MAAM,EACF,YAAY,EACZ,eAAe,GAAG,EAAE,EACpB,WAAW,EACX,QAAQ,EACR,cAAc,GAAG,YAAY,EAC7B,UAAU,GAAG,KAAK,EAClB,qBAAqB,GAAG,IAAI,EAC5B,QAAQ,EACR,oBAAoB,EACpB,YAAY,EACZ,GAAG,GAAG,IAAI,EACV,iBAAiB,GAAG,mBAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAC9E,GAAG,OAAO,CAAC;IAEZ;;;;;OAKG;IACH,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;IAE/B,MAAM,aAAa,GAAkB;QACjC,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,YAAY;QACtB,qBAAqB;QACrB,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE;QAC9B,oBAAoB,EAAE,oBAAoB,EAAE,QAAQ,EAAE;QACtD,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE;QACtC,GAAG;QACH,iBAAiB;KACpB,CAAC;IACF,kHAAkH;IAClH,MAAM,YAAY,GAAiB,MAAM,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAE/E,IAAI,CAAC,CAAC,UAAU,IAAI,mBAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,iBAAG,CAAC,GAAG,CAAC,eAAe,EAAE;YAC3B,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,oBAAoB,EAAE,eAAe;SACxC,CAAC,CAAC;IACP,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,MAAM,gBAAM,CAAC,aAAa,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,+BAA+B,CACjD,OAAyC;IAEzC,iCAAiC;IACjC,MAAM,EACF,eAAe,EACf,IAAI,EACJ,YAAY,EACZ,eAAe,GAAG,EAAE,EACpB,WAAW,EACX,QAAQ,GAAG,CAAC,MAAM,gBAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EACzC,cAAc,GAAG,YAAY,EAC7B,UAAU,GAAG,KAAK,EAClB,qBAAqB,GAAG,IAAI,EAC5B,QAAQ,EACR,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,GAAG,mBAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAC9E,GAAG,OAAO,CAAC;IAEZ,MAAM,kBAAkB,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACrE,IAAI,qBAAqB,IAAI,kBAAkB,IAAI,IAAI;QACnD,CAAC,MAAM,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,KAAK,kBAAkB,CAAC,gBAAgB,EACxG,CAAC;QACC,OAAO,CAAC,GAAG,CAAC,YAAY,YAAY,2BAA2B,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7F,OAAO,MAAM,gBAAM,CAAC,aAAa,CAAC,YAAY,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,gBAAM,CAAC,aAAa,CAAC,kBAAkB,EAAE,eAAe,CAAgC,CAAC;IAChH,MAAM,cAAc,GAAG,MAAM,gBAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,CAAC,MAAM,cAAc,CAAC,oBAAoB,CACzD,GAAG,eAAe,CACrB,CAAC,CAAC,IAAI,CAAC;IAER,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,YAAY,EAAE,CAAC,CAAC;IACxH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAuB,CAAC;IAExE,MAAM,qBAAqB,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,iBAAiB,qBAAqB,EAAE,CAAC,CAAC;IAErE,OAAO,MAAM,iCAAiC,CAC1C,QAAQ,CAAC,QAA2B,EACpC,WAAW,EACX,YAAY,EACZ,cAAc,EACd,eAAe,EACf,IAAI,EACJ,eAAe,EACf,OAAO,CAAC,IAAI,EACZ,UAAU,CACb,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;;GAaG;AACI,KAAK,UAAU,iCAAiC,CACnD,QAAiD,EACjD,WAAiC,EACjC,YAAoB,EACpB,cAAsB,EACtB,eAAsB,EAAE,yDAAyD;AACjF,IAAY,EACZ,eAAuB,EACvB,YAAoB,EACpB,aAAsB,KAAK;IAE3B,MAAM,QAAQ,GAAG,MAAM,gBAAM,CAAC,aAAa,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;IACjF,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAChD,8DAA8D;IAC9D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,qBAAqB,CAAC,YAAY,CAAyB,CAAC;IAC3F,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QAClB,4EAA4E;QAC5E,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;QAClE,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,KAAK,CAAC;QACrE,CAAC,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACtG,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACrE,MAAM,sBAAsB,GAAG,EAAgB,CAAC;IAChD,sBAAsB,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC1C,sBAAsB,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IACtD,sBAAsB,CAAC,OAAO,GAAG,OAAkB,CAAC;IACpD,sBAAsB,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9C,sBAAsB,CAAC,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC;IAClD,sBAAsB,CAAC,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC;IAC5D,sBAAsB,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;IAC5E,MAAM,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC;IAE/D,IAAI,CAAC,CAAC,UAAU,IAAI,mBAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,iBAAG,CAAC,GAAG,CAAC,eAAe,EAAE;YAC3B,OAAO,EAAE,QAAQ;YACjB,oBAAoB,EAAE,eAAe;SACxC,CAAC,CAAC;IACP,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,MAAM,gBAAM,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAC9D,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,cAAc,CAAC,OAAwB;IACzD,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC;IAClD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3D,MAAM,8BAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,aAAkC,EAAE;IACnF,MAAM,eAAe,GAAG,MAAM,gBAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC;IAC7D,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAC;IACnC,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;;;;;;;GAQG;AACH,8DAA8D;AACvD,KAAK,UAAU,0BAA0B,CAAC,GAAU,EAAE,QAAmB,EAAE,aAAkC,EAAE,EAAE,MAAe;IACnI,MAAM,eAAe,GAAG,MAAM,gBAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC;IAC7D,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAC;IACnC,OAAO,QAAQ,CAAC;AACpB,CAAC;AAwBD;;;;;;;;;;GAUG;AACI,KAAK,UAAU,uBAAuB,CACzC,QAAgF,EAChF,KAAqG,EACrG,MAAc,EACd,SAA+F,EAC/F,GAAG,IAAO;IAEV,MAAM,YAAY,GAAG,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;IACnF,MAAM,KAAK,GAAG,YAAY,KAAK,mBAAS,CAAC,YAAY,IAAI,YAAY,KAAK,mBAAS,CAAC,WAAW,CAAC;IAChG,MAAM,UAAU,GAAG,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE3G,MAAM,UAAU,GAAW,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAA+B,CAAC;IAC/G,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,SAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,KAAK;QAC1E,CAAC,CAAC,SAAU,CAAC,OAAO,GAAG,SAAU,CAAC,QAAQ;QAC1C,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,WAAW,GAAW,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;IACrD,OAAO,CAAC,WAAW,GAAG,UAAU,GAAG,MAAM,EAAE,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,SAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAC/F,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,SAAiB;IAC1C,2EAA2E;IAC3E,2CAA2C;IAC3C,uFAAuF;IACvF,IAAI,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACT,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5B,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,WAAW,CAC7B,MAAsF,EACtF,aAAkC,IAAI;IAEtC,OAAO,YAAY,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,iBAAiB;AACnC,8DAA8D;AAC9D,QAAyF,EACzF,MAAc,EACd,YAAsB;IAEtB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAElC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,WAAW,CAAC,oBAA4B,KAAK;IAM/D,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,sCAAsC,iBAAiB,WAAW,CAAC,CAAC;IACjG,IAAI,MAAM,GAAW,EAAE,CAAC;IACxB,IAAI,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAuB,CAAA,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAChG,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,mBAAmB,CAAC,OAA6C,IAAI;IACvF,MAAM,QAAQ,GAAG,MAAM,gBAAM,CAAC,UAAU,EAAE,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,cAAc,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC;YACpC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,iBAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC/B,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC;SAChD,CAAC,CAAC;IACP,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC"}
@@ -14,7 +14,7 @@ export declare class AddressArray__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): AddressArray__factory;
17
- static readonly bytecode = "0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220ac40e8ed11ad952f383ac1aa1791ad65cc386cdbf08aadb5466ed1687991bf1664736f6c63430008190033";
17
+ static readonly bytecode = "0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220fb58d0e926d7111a603a7e6302eafaa7d6170cae8f7217d5c67b6fb3fd8d5d1c64736f6c63430008190033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [];
20
20
  readonly name: "IndexOutOfBounds";
@@ -22,7 +22,7 @@ const _abi = [
22
22
  type: "error",
23
23
  },
24
24
  ];
25
- const _bytecode = "0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220ac40e8ed11ad952f383ac1aa1791ad65cc386cdbf08aadb5466ed1687991bf1664736f6c63430008190033";
25
+ const _bytecode = "0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220fb58d0e926d7111a603a7e6302eafaa7d6170cae8f7217d5c67b6fb3fd8d5d1c64736f6c63430008190033";
26
26
  const isSuperArgs = (xs) => xs.length > 1;
27
27
  class AddressArray__factory extends ethers_1.ContractFactory {
28
28
  constructor(...args) {
@@ -14,7 +14,7 @@ export declare class AddressArrayMock__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): AddressArrayMock__factory;
17
- static readonly bytecode = "0x608080604052346015576107ae908161001a8239f35b5f80fdfe6080604081815260049182361015610015575f80fd5b5f3560e01c908162f6b2b2146106a95781631f7b6d3214610669575080632f30c6f6146105a55780636d4ce63c146104f357806389b09de714610426578063a4ece52c14610368578063ae35ad7314610181578063e0886f901461011b5763ec2fd5a114610081575f80fd5b346101175760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117578135916401000000008310156100f0575073ffffffffffffffffffffffffffffffffffffffff6100e1602093610739565b92905490519260031b1c168152f35b90517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b5f80fd5b50346101175760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117578135918263ffffffff5f5460a01c1611156100f0575073ffffffffffffffffffffffffffffffffffffffff6100e1602093610739565b5034610117576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101175767ffffffffffffffff83358181116101175736602382011215610117578085013582811161033c576005918160051b918651947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f850116860190868210908211176103105787528452848401602481938301019136831161011757602401905b8282106102e4575050505f549063ffffffff8260a01c169173ffffffffffffffffffffffffffffffffffffffff97855184116102be575082610299575b8651878152806102958888610288848d01826106f0565b91848303908501526106f0565b0390f35b8716905260019160015b82811015610271578054881681831b860187015283016102a3565b7ff9a99b25000000000000000000000000000000000000000000000000000000005f525ffd5b813573ffffffffffffffffffffffffffffffffffffffff81168103610117578152908601908601610234565b6041897f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b6041867f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b8234610117575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117575f549063ffffffff8260a01c1690815f1461040057506001146103da577fffffffffffffffffffffffff0000000000000000000000000000000000000000015f55005b507f80000000000000000000000000000000000000000000000000000000000000005f55005b7f06a2af9e000000000000000000000000000000000000000000000000000000005f525ffd5b5090346101175760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117573573ffffffffffffffffffffffffffffffffffffffff811681036101175760016020925f5463ffffffff8160a01c1693845f146104d457740100000000000000000000000000000000000000007f800000000000000000000000000000000000000000000000000000000000000092015f551783555b5191018152f35b74010000000000000000000000000000000000000000175f55506104cd565b5034610117575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117575f549063ffffffff8260a01c169073ffffffffffffffffffffffffffffffffffffffff918151926001946005918360010160051b8601855283808752610578575b845160208082528190610295908201896106f0565b8060209216602087015260015b8481106105925750610563565b8054821681851b88018401528701610585565b5034610117577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117578035906024359073ffffffffffffffffffffffffffffffffffffffff8083168303610117575f549163ffffffff8360a01c168510156106435750831561063b5750507f8000000000000000000000000000000000000000000000000000000000000000179055005b811618175f55005b7f4e23d035000000000000000000000000000000000000000000000000000000005f525ffd5b34610117575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101175760209063ffffffff5f5460a01c168152f35b34610117575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101175773ffffffffffffffffffffffffffffffffffffffff5f55005b9081518082526020808093019301915f5b82811061070f575050505090565b835173ffffffffffffffffffffffffffffffffffffffff1685529381019392810192600101610701565b64010000000081101561074b57905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220212156597dc7fa00c7df16366f697ca556290781b20ec037c41698fefc0374de64736f6c63430008190033";
17
+ static readonly bytecode = "0x608080604052346015576107ae908161001a8239f35b5f80fdfe6080604081815260049182361015610015575f80fd5b5f3560e01c908162f6b2b2146106a95781631f7b6d3214610669575080632f30c6f6146105a55780636d4ce63c146104f357806389b09de714610426578063a4ece52c14610368578063ae35ad7314610181578063e0886f901461011b5763ec2fd5a114610081575f80fd5b346101175760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117578135916401000000008310156100f0575073ffffffffffffffffffffffffffffffffffffffff6100e1602093610739565b92905490519260031b1c168152f35b90517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b5f80fd5b50346101175760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117578135918263ffffffff5f5460a01c1611156100f0575073ffffffffffffffffffffffffffffffffffffffff6100e1602093610739565b5034610117576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101175767ffffffffffffffff83358181116101175736602382011215610117578085013582811161033c576005918160051b918651947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f850116860190868210908211176103105787528452848401602481938301019136831161011757602401905b8282106102e4575050505f549063ffffffff8260a01c169173ffffffffffffffffffffffffffffffffffffffff97855184116102be575082610299575b8651878152806102958888610288848d01826106f0565b91848303908501526106f0565b0390f35b8716905260019160015b82811015610271578054881681831b860187015283016102a3565b7ff9a99b25000000000000000000000000000000000000000000000000000000005f525ffd5b813573ffffffffffffffffffffffffffffffffffffffff81168103610117578152908601908601610234565b6041897f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b6041867f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b8234610117575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117575f549063ffffffff8260a01c1690815f1461040057506001146103da577fffffffffffffffffffffffff0000000000000000000000000000000000000000015f55005b507f80000000000000000000000000000000000000000000000000000000000000005f55005b7f06a2af9e000000000000000000000000000000000000000000000000000000005f525ffd5b5090346101175760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117573573ffffffffffffffffffffffffffffffffffffffff811681036101175760016020925f5463ffffffff8160a01c1693845f146104d457740100000000000000000000000000000000000000007f800000000000000000000000000000000000000000000000000000000000000092015f551783555b5191018152f35b74010000000000000000000000000000000000000000175f55506104cd565b5034610117575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117575f549063ffffffff8260a01c169073ffffffffffffffffffffffffffffffffffffffff918151926001946005918360010160051b8601855283808752610578575b845160208082528190610295908201896106f0565b8060209216602087015260015b8481106105925750610563565b8054821681851b88018401528701610585565b5034610117577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117578035906024359073ffffffffffffffffffffffffffffffffffffffff8083168303610117575f549163ffffffff8360a01c168510156106435750831561063b5750507f8000000000000000000000000000000000000000000000000000000000000000179055005b811618175f55005b7f4e23d035000000000000000000000000000000000000000000000000000000005f525ffd5b34610117575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101175760209063ffffffff5f5460a01c168152f35b34610117575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101175773ffffffffffffffffffffffffffffffffffffffff5f55005b9081518082526020808093019301915f5b82811061070f575050505090565b835173ffffffffffffffffffffffffffffffffffffffff1685529381019392810192600101610701565b64010000000081101561074b57905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea264697066735822122089b502c0b22294b72035cc1fb7de8e0acc528b7331f767eff67d2fc3917b6a5764736f6c63430008190033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [];
20
20
  readonly name: "IndexOutOfBounds";
@@ -156,7 +156,7 @@ const _abi = [
156
156
  type: "function",
157
157
  },
158
158
  ];
159
- const _bytecode = "0x608080604052346015576107ae908161001a8239f35b5f80fdfe6080604081815260049182361015610015575f80fd5b5f3560e01c908162f6b2b2146106a95781631f7b6d3214610669575080632f30c6f6146105a55780636d4ce63c146104f357806389b09de714610426578063a4ece52c14610368578063ae35ad7314610181578063e0886f901461011b5763ec2fd5a114610081575f80fd5b346101175760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117578135916401000000008310156100f0575073ffffffffffffffffffffffffffffffffffffffff6100e1602093610739565b92905490519260031b1c168152f35b90517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b5f80fd5b50346101175760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117578135918263ffffffff5f5460a01c1611156100f0575073ffffffffffffffffffffffffffffffffffffffff6100e1602093610739565b5034610117576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101175767ffffffffffffffff83358181116101175736602382011215610117578085013582811161033c576005918160051b918651947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f850116860190868210908211176103105787528452848401602481938301019136831161011757602401905b8282106102e4575050505f549063ffffffff8260a01c169173ffffffffffffffffffffffffffffffffffffffff97855184116102be575082610299575b8651878152806102958888610288848d01826106f0565b91848303908501526106f0565b0390f35b8716905260019160015b82811015610271578054881681831b860187015283016102a3565b7ff9a99b25000000000000000000000000000000000000000000000000000000005f525ffd5b813573ffffffffffffffffffffffffffffffffffffffff81168103610117578152908601908601610234565b6041897f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b6041867f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b8234610117575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117575f549063ffffffff8260a01c1690815f1461040057506001146103da577fffffffffffffffffffffffff0000000000000000000000000000000000000000015f55005b507f80000000000000000000000000000000000000000000000000000000000000005f55005b7f06a2af9e000000000000000000000000000000000000000000000000000000005f525ffd5b5090346101175760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117573573ffffffffffffffffffffffffffffffffffffffff811681036101175760016020925f5463ffffffff8160a01c1693845f146104d457740100000000000000000000000000000000000000007f800000000000000000000000000000000000000000000000000000000000000092015f551783555b5191018152f35b74010000000000000000000000000000000000000000175f55506104cd565b5034610117575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117575f549063ffffffff8260a01c169073ffffffffffffffffffffffffffffffffffffffff918151926001946005918360010160051b8601855283808752610578575b845160208082528190610295908201896106f0565b8060209216602087015260015b8481106105925750610563565b8054821681851b88018401528701610585565b5034610117577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117578035906024359073ffffffffffffffffffffffffffffffffffffffff8083168303610117575f549163ffffffff8360a01c168510156106435750831561063b5750507f8000000000000000000000000000000000000000000000000000000000000000179055005b811618175f55005b7f4e23d035000000000000000000000000000000000000000000000000000000005f525ffd5b34610117575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101175760209063ffffffff5f5460a01c168152f35b34610117575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101175773ffffffffffffffffffffffffffffffffffffffff5f55005b9081518082526020808093019301915f5b82811061070f575050505090565b835173ffffffffffffffffffffffffffffffffffffffff1685529381019392810192600101610701565b64010000000081101561074b57905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220212156597dc7fa00c7df16366f697ca556290781b20ec037c41698fefc0374de64736f6c63430008190033";
159
+ const _bytecode = "0x608080604052346015576107ae908161001a8239f35b5f80fdfe6080604081815260049182361015610015575f80fd5b5f3560e01c908162f6b2b2146106a95781631f7b6d3214610669575080632f30c6f6146105a55780636d4ce63c146104f357806389b09de714610426578063a4ece52c14610368578063ae35ad7314610181578063e0886f901461011b5763ec2fd5a114610081575f80fd5b346101175760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117578135916401000000008310156100f0575073ffffffffffffffffffffffffffffffffffffffff6100e1602093610739565b92905490519260031b1c168152f35b90517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b5f80fd5b50346101175760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117578135918263ffffffff5f5460a01c1611156100f0575073ffffffffffffffffffffffffffffffffffffffff6100e1602093610739565b5034610117576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101175767ffffffffffffffff83358181116101175736602382011215610117578085013582811161033c576005918160051b918651947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f850116860190868210908211176103105787528452848401602481938301019136831161011757602401905b8282106102e4575050505f549063ffffffff8260a01c169173ffffffffffffffffffffffffffffffffffffffff97855184116102be575082610299575b8651878152806102958888610288848d01826106f0565b91848303908501526106f0565b0390f35b8716905260019160015b82811015610271578054881681831b860187015283016102a3565b7ff9a99b25000000000000000000000000000000000000000000000000000000005f525ffd5b813573ffffffffffffffffffffffffffffffffffffffff81168103610117578152908601908601610234565b6041897f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b6041867f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b8234610117575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117575f549063ffffffff8260a01c1690815f1461040057506001146103da577fffffffffffffffffffffffff0000000000000000000000000000000000000000015f55005b507f80000000000000000000000000000000000000000000000000000000000000005f55005b7f06a2af9e000000000000000000000000000000000000000000000000000000005f525ffd5b5090346101175760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117573573ffffffffffffffffffffffffffffffffffffffff811681036101175760016020925f5463ffffffff8160a01c1693845f146104d457740100000000000000000000000000000000000000007f800000000000000000000000000000000000000000000000000000000000000092015f551783555b5191018152f35b74010000000000000000000000000000000000000000175f55506104cd565b5034610117575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117575f549063ffffffff8260a01c169073ffffffffffffffffffffffffffffffffffffffff918151926001946005918360010160051b8601855283808752610578575b845160208082528190610295908201896106f0565b8060209216602087015260015b8481106105925750610563565b8054821681851b88018401528701610585565b5034610117577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610117578035906024359073ffffffffffffffffffffffffffffffffffffffff8083168303610117575f549163ffffffff8360a01c168510156106435750831561063b5750507f8000000000000000000000000000000000000000000000000000000000000000179055005b811618175f55005b7f4e23d035000000000000000000000000000000000000000000000000000000005f525ffd5b34610117575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101175760209063ffffffff5f5460a01c168152f35b34610117575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101175773ffffffffffffffffffffffffffffffffffffffff5f55005b9081518082526020808093019301915f5b82811061070f575050505090565b835173ffffffffffffffffffffffffffffffffffffffff1685529381019392810192600101610701565b64010000000081101561074b57905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea264697066735822122089b502c0b22294b72035cc1fb7de8e0acc528b7331f767eff67d2fc3917b6a5764736f6c63430008190033";
160
160
  const isSuperArgs = (xs) => xs.length > 1;
161
161
  class AddressArrayMock__factory extends ethers_1.ContractFactory {
162
162
  constructor(...args) {
@@ -14,7 +14,7 @@ export declare class AddressSetMock__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): AddressSetMock__factory;
17
- static readonly bytecode = "0x60808060405234601557610a18908161001a8239f35b5f80fdfe60406080815260049081361015610014575f80fd5b5f3560e01c8062f6b2b21461052c5780630a3b0a4f146104e95780630a7231ba146103065780631f7b6d32146102c257806329092d0e146102765780635dbe47e8146101d05780636d4ce63c1461017e578063e0886f90146101185763ec2fd5a11461007e575f80fd5b346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114578135916401000000008310156100ed575073ffffffffffffffffffffffffffffffffffffffff6100de6020936109a3565b92905490519260031b1c168152f35b90517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b5f80fd5b50346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114578135918263ffffffff5f5460a01c1611156100ed575073ffffffffffffffffffffffffffffffffffffffff6100de6020936109a3565b5034610114575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114576101cc906101b961092c565b905191829160208352602083019061064b565b0390f35b50346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101145760209061023661020e610628565b73ffffffffffffffffffffffffffffffffffffffff165f5264010000000060205260405f2090565b5490811515918261024b575b50519015158152f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1415915083610242565b50346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114576020906102b96102b4610628565b61077a565b90519015158152f35b5034610114575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101145760209063ffffffff5f5460a01c169051908152f35b5034610114576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101145767ffffffffffffffff8335818111610114573660238201121561011457808501358281116104bd576005918160051b918651947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f850116860190868210908211176104915787528452848401602481938301019136831161011457602401905b828210610465575050505f549063ffffffff8260a01c169173ffffffffffffffffffffffffffffffffffffffff978551841161043f57508261041a575b8651878152806101cc888861040d848d018261064b565b918483039085015261064b565b8716905260019160015b828110156103f6578054881681831b86018701528301610424565b7ff9a99b25000000000000000000000000000000000000000000000000000000005f525ffd5b813573ffffffffffffffffffffffffffffffffffffffff811681036101145781529086019086016103b9565b6041897f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b6041867f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b50346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114576020906102b9610527610628565b610694565b8234610114575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101145761056361092c565b8051908161056d57005b73ffffffffffffffffffffffffffffffffffffffff92835f555f5b83811061059157005b82518110156105fc57807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105f587602060019560051b880101511673ffffffffffffffffffffffffffffffffffffffff165f5264010000000060205260405f2090565b5501610588565b6032827f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011457565b9081518082526020808093019301915f5b82811061066a575050505090565b835173ffffffffffffffffffffffffffffffffffffffff168552938101939281019260010161065c565b73ffffffffffffffffffffffffffffffffffffffff81165f5264010000000060205260405f20908154801515908161074f575b50610749576001905f5463ffffffff8160a01c1691825f1461072a57740100000000000000000000000000000000000000007f800000000000000000000000000000000000000000000000000000000000000092015f551781555b019055600190565b74010000000000000000000000000000000000000000175f5550610722565b50505f90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff915014155f6106c7565b73ffffffffffffffffffffffffffffffffffffffff809116805f52640100000000908160205260405f20928354937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80915584158015610923575b61091a575f549063ffffffff90818360a01c1680815f146108f25785916001146108c55790827fffffffffffffffffffffffff00000000000000000000000000000000000000009201541693015f555b83831694850361083c575b50505050505050600190565b8601925f54918260a01c1684101561089d5783156108915750507f80000000000000000000000000000000000000000000000000000000000000001790555b5f5260205260405f20555f808080808080610830565b811618175f555061087b565b7f4e23d035000000000000000000000000000000000000000000000000000000005f5260045ffd5b50909216917f80000000000000000000000000000000000000000000000000000000000000005f55610825565b7f06a2af9e000000000000000000000000000000000000000000000000000000005f5260045ffd5b50505050505f90565b508085146107d5565b5f549063ffffffff8260a01c169173ffffffffffffffffffffffffffffffffffffffff92604051936001926005918360010160051b870160405283808852610976575b5050505050565b8060209216602088015260015b848110610990575061096f565b8054821681851b89018401528501610983565b6401000000008110156109b557905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea26469706673582212209fde84901b39d63e7454a730ffca1a3a9ba0f4e8bd1c3d86cb3a8c362766defc64736f6c63430008190033";
17
+ static readonly bytecode = "0x60808060405234601557610a18908161001a8239f35b5f80fdfe60406080815260049081361015610014575f80fd5b5f3560e01c8062f6b2b21461052c5780630a3b0a4f146104e95780630a7231ba146103065780631f7b6d32146102c257806329092d0e146102765780635dbe47e8146101d05780636d4ce63c1461017e578063e0886f90146101185763ec2fd5a11461007e575f80fd5b346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114578135916401000000008310156100ed575073ffffffffffffffffffffffffffffffffffffffff6100de6020936109a3565b92905490519260031b1c168152f35b90517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b5f80fd5b50346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114578135918263ffffffff5f5460a01c1611156100ed575073ffffffffffffffffffffffffffffffffffffffff6100de6020936109a3565b5034610114575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114576101cc906101b961092c565b905191829160208352602083019061064b565b0390f35b50346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101145760209061023661020e610628565b73ffffffffffffffffffffffffffffffffffffffff165f5264010000000060205260405f2090565b5490811515918261024b575b50519015158152f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1415915083610242565b50346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114576020906102b96102b4610628565b61077a565b90519015158152f35b5034610114575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101145760209063ffffffff5f5460a01c169051908152f35b5034610114576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101145767ffffffffffffffff8335818111610114573660238201121561011457808501358281116104bd576005918160051b918651947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f850116860190868210908211176104915787528452848401602481938301019136831161011457602401905b828210610465575050505f549063ffffffff8260a01c169173ffffffffffffffffffffffffffffffffffffffff978551841161043f57508261041a575b8651878152806101cc888861040d848d018261064b565b918483039085015261064b565b8716905260019160015b828110156103f6578054881681831b86018701528301610424565b7ff9a99b25000000000000000000000000000000000000000000000000000000005f525ffd5b813573ffffffffffffffffffffffffffffffffffffffff811681036101145781529086019086016103b9565b6041897f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b6041867f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b50346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114576020906102b9610527610628565b610694565b8234610114575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101145761056361092c565b8051908161056d57005b73ffffffffffffffffffffffffffffffffffffffff92835f555f5b83811061059157005b82518110156105fc57807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105f587602060019560051b880101511673ffffffffffffffffffffffffffffffffffffffff165f5264010000000060205260405f2090565b5501610588565b6032827f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011457565b9081518082526020808093019301915f5b82811061066a575050505090565b835173ffffffffffffffffffffffffffffffffffffffff168552938101939281019260010161065c565b73ffffffffffffffffffffffffffffffffffffffff81165f5264010000000060205260405f20908154801515908161074f575b50610749576001905f5463ffffffff8160a01c1691825f1461072a57740100000000000000000000000000000000000000007f800000000000000000000000000000000000000000000000000000000000000092015f551781555b019055600190565b74010000000000000000000000000000000000000000175f5550610722565b50505f90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff915014155f6106c7565b73ffffffffffffffffffffffffffffffffffffffff809116805f52640100000000908160205260405f20928354937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80915584158015610923575b61091a575f549063ffffffff90818360a01c1680815f146108f25785916001146108c55790827fffffffffffffffffffffffff00000000000000000000000000000000000000009201541693015f555b83831694850361083c575b50505050505050600190565b8601925f54918260a01c1684101561089d5783156108915750507f80000000000000000000000000000000000000000000000000000000000000001790555b5f5260205260405f20555f808080808080610830565b811618175f555061087b565b7f4e23d035000000000000000000000000000000000000000000000000000000005f5260045ffd5b50909216917f80000000000000000000000000000000000000000000000000000000000000005f55610825565b7f06a2af9e000000000000000000000000000000000000000000000000000000005f5260045ffd5b50505050505f90565b508085146107d5565b5f549063ffffffff8260a01c169173ffffffffffffffffffffffffffffffffffffffff92604051936001926005918360010160051b870160405283808852610976575b5050505050565b8060209216602088015260015b848110610990575061096f565b8054821681851b89018401528501610983565b6401000000008110156109b557905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea264697066735822122010cb0c09daaa5602085a5c3fe59f3a65ea683247886b65e090722d211951786164736f6c63430008190033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [];
20
20
  readonly name: "IndexOutOfBounds";
@@ -164,7 +164,7 @@ const _abi = [
164
164
  type: "function",
165
165
  },
166
166
  ];
167
- const _bytecode = "0x60808060405234601557610a18908161001a8239f35b5f80fdfe60406080815260049081361015610014575f80fd5b5f3560e01c8062f6b2b21461052c5780630a3b0a4f146104e95780630a7231ba146103065780631f7b6d32146102c257806329092d0e146102765780635dbe47e8146101d05780636d4ce63c1461017e578063e0886f90146101185763ec2fd5a11461007e575f80fd5b346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114578135916401000000008310156100ed575073ffffffffffffffffffffffffffffffffffffffff6100de6020936109a3565b92905490519260031b1c168152f35b90517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b5f80fd5b50346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114578135918263ffffffff5f5460a01c1611156100ed575073ffffffffffffffffffffffffffffffffffffffff6100de6020936109a3565b5034610114575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114576101cc906101b961092c565b905191829160208352602083019061064b565b0390f35b50346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101145760209061023661020e610628565b73ffffffffffffffffffffffffffffffffffffffff165f5264010000000060205260405f2090565b5490811515918261024b575b50519015158152f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1415915083610242565b50346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114576020906102b96102b4610628565b61077a565b90519015158152f35b5034610114575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101145760209063ffffffff5f5460a01c169051908152f35b5034610114576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101145767ffffffffffffffff8335818111610114573660238201121561011457808501358281116104bd576005918160051b918651947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f850116860190868210908211176104915787528452848401602481938301019136831161011457602401905b828210610465575050505f549063ffffffff8260a01c169173ffffffffffffffffffffffffffffffffffffffff978551841161043f57508261041a575b8651878152806101cc888861040d848d018261064b565b918483039085015261064b565b8716905260019160015b828110156103f6578054881681831b86018701528301610424565b7ff9a99b25000000000000000000000000000000000000000000000000000000005f525ffd5b813573ffffffffffffffffffffffffffffffffffffffff811681036101145781529086019086016103b9565b6041897f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b6041867f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b50346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114576020906102b9610527610628565b610694565b8234610114575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101145761056361092c565b8051908161056d57005b73ffffffffffffffffffffffffffffffffffffffff92835f555f5b83811061059157005b82518110156105fc57807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105f587602060019560051b880101511673ffffffffffffffffffffffffffffffffffffffff165f5264010000000060205260405f2090565b5501610588565b6032827f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011457565b9081518082526020808093019301915f5b82811061066a575050505090565b835173ffffffffffffffffffffffffffffffffffffffff168552938101939281019260010161065c565b73ffffffffffffffffffffffffffffffffffffffff81165f5264010000000060205260405f20908154801515908161074f575b50610749576001905f5463ffffffff8160a01c1691825f1461072a57740100000000000000000000000000000000000000007f800000000000000000000000000000000000000000000000000000000000000092015f551781555b019055600190565b74010000000000000000000000000000000000000000175f5550610722565b50505f90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff915014155f6106c7565b73ffffffffffffffffffffffffffffffffffffffff809116805f52640100000000908160205260405f20928354937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80915584158015610923575b61091a575f549063ffffffff90818360a01c1680815f146108f25785916001146108c55790827fffffffffffffffffffffffff00000000000000000000000000000000000000009201541693015f555b83831694850361083c575b50505050505050600190565b8601925f54918260a01c1684101561089d5783156108915750507f80000000000000000000000000000000000000000000000000000000000000001790555b5f5260205260405f20555f808080808080610830565b811618175f555061087b565b7f4e23d035000000000000000000000000000000000000000000000000000000005f5260045ffd5b50909216917f80000000000000000000000000000000000000000000000000000000000000005f55610825565b7f06a2af9e000000000000000000000000000000000000000000000000000000005f5260045ffd5b50505050505f90565b508085146107d5565b5f549063ffffffff8260a01c169173ffffffffffffffffffffffffffffffffffffffff92604051936001926005918360010160051b870160405283808852610976575b5050505050565b8060209216602088015260015b848110610990575061096f565b8054821681851b89018401528501610983565b6401000000008110156109b557905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea26469706673582212209fde84901b39d63e7454a730ffca1a3a9ba0f4e8bd1c3d86cb3a8c362766defc64736f6c63430008190033";
167
+ const _bytecode = "0x60808060405234601557610a18908161001a8239f35b5f80fdfe60406080815260049081361015610014575f80fd5b5f3560e01c8062f6b2b21461052c5780630a3b0a4f146104e95780630a7231ba146103065780631f7b6d32146102c257806329092d0e146102765780635dbe47e8146101d05780636d4ce63c1461017e578063e0886f90146101185763ec2fd5a11461007e575f80fd5b346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114578135916401000000008310156100ed575073ffffffffffffffffffffffffffffffffffffffff6100de6020936109a3565b92905490519260031b1c168152f35b90517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b5f80fd5b50346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114578135918263ffffffff5f5460a01c1611156100ed575073ffffffffffffffffffffffffffffffffffffffff6100de6020936109a3565b5034610114575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114576101cc906101b961092c565b905191829160208352602083019061064b565b0390f35b50346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101145760209061023661020e610628565b73ffffffffffffffffffffffffffffffffffffffff165f5264010000000060205260405f2090565b5490811515918261024b575b50519015158152f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1415915083610242565b50346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114576020906102b96102b4610628565b61077a565b90519015158152f35b5034610114575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101145760209063ffffffff5f5460a01c169051908152f35b5034610114576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101145767ffffffffffffffff8335818111610114573660238201121561011457808501358281116104bd576005918160051b918651947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f850116860190868210908211176104915787528452848401602481938301019136831161011457602401905b828210610465575050505f549063ffffffff8260a01c169173ffffffffffffffffffffffffffffffffffffffff978551841161043f57508261041a575b8651878152806101cc888861040d848d018261064b565b918483039085015261064b565b8716905260019160015b828110156103f6578054881681831b86018701528301610424565b7ff9a99b25000000000000000000000000000000000000000000000000000000005f525ffd5b813573ffffffffffffffffffffffffffffffffffffffff811681036101145781529086019086016103b9565b6041897f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b6041867f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b50346101145760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610114576020906102b9610527610628565b610694565b8234610114575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101145761056361092c565b8051908161056d57005b73ffffffffffffffffffffffffffffffffffffffff92835f555f5b83811061059157005b82518110156105fc57807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105f587602060019560051b880101511673ffffffffffffffffffffffffffffffffffffffff165f5264010000000060205260405f2090565b5501610588565b6032827f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011457565b9081518082526020808093019301915f5b82811061066a575050505090565b835173ffffffffffffffffffffffffffffffffffffffff168552938101939281019260010161065c565b73ffffffffffffffffffffffffffffffffffffffff81165f5264010000000060205260405f20908154801515908161074f575b50610749576001905f5463ffffffff8160a01c1691825f1461072a57740100000000000000000000000000000000000000007f800000000000000000000000000000000000000000000000000000000000000092015f551781555b019055600190565b74010000000000000000000000000000000000000000175f5550610722565b50505f90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff915014155f6106c7565b73ffffffffffffffffffffffffffffffffffffffff809116805f52640100000000908160205260405f20928354937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80915584158015610923575b61091a575f549063ffffffff90818360a01c1680815f146108f25785916001146108c55790827fffffffffffffffffffffffff00000000000000000000000000000000000000009201541693015f555b83831694850361083c575b50505050505050600190565b8601925f54918260a01c1684101561089d5783156108915750507f80000000000000000000000000000000000000000000000000000000000000001790555b5f5260205260405f20555f808080808080610830565b811618175f555061087b565b7f4e23d035000000000000000000000000000000000000000000000000000000005f5260045ffd5b50909216917f80000000000000000000000000000000000000000000000000000000000000005f55610825565b7f06a2af9e000000000000000000000000000000000000000000000000000000005f5260045ffd5b50505050505f90565b508085146107d5565b5f549063ffffffff8260a01c169173ffffffffffffffffffffffffffffffffffffffff92604051936001926005918360010160051b870160405283808852610976575b5050505050565b8060209216602088015260015b848110610990575061096f565b8054821681851b89018401528501610983565b6401000000008110156109b557905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea264697066735822122010cb0c09daaa5602085a5c3fe59f3a65ea683247886b65e090722d211951786164736f6c63430008190033";
168
168
  const isSuperArgs = (xs) => xs.length > 1;
169
169
  class AddressSetMock__factory extends ethers_1.ContractFactory {
170
170
  constructor(...args) {
@@ -14,7 +14,7 @@ export declare class TokenWithBySig__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): TokenWithBySig__factory;
17
- static readonly bytecode = "0x61016060408181523461042457612a50803803809161001e8286610428565b84398201916060818403126104245780516001600160401b039290838111610424578461004c91840161044b565b9160209081810151858111610424578661006791830161044b565b95838201518681116104245761007d920161044b565b9083518581116103475760038054906001928383811c9316801561041a575b8584101461040657601f928381116103c3575b508085848211600114610366575f9161035b575b505f1982841b1c191690841b1781555b885191888311610347576004998a548581811c9116801561033d575b8782101461032a578281116102e7575b5085918411600114610285579383949184925f9561027a575b50501b925f19911b1c19161786555b33156102645760058054336001600160a01b0319821681179092556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3610178846104a0565b9261012093845261018883610628565b94610140958652828151910120928360e05282815191012096610100978089524660a0528251938401947f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f86528385015260608401524660808401523060a084015260a0835260c08301968388109088111761025157508590525190206080523060c0526122eb93846107658539608051846121c3015260a0518461228f015260c05184612194015260e051846122120152518361223801525182610867015251816108910152f35b604190634e487b7160e01b5f525260245ffd5b8251631e4fbdf760e01b81525f81880152602490fd5b015193505f80610118565b9190601f198416928b5f5284875f20945f5b89898383106102d057505050106102b7575b50505050811b018655610127565b01519060f8845f19921b161c191690555f8080806102a9565b868601518955909701969485019488935001610297565b8b5f52865f208380870160051c820192898810610321575b0160051c019086905b8281106103165750506100ff565b5f8155018690610308565b925081926102ff565b60228c634e487b7160e01b5f525260245ffd5b90607f16906100ef565b634e487b7160e01b5f52604160045260245ffd5b90508801515f6100c3565b859250601f19821690845f52875f20915f5b898d8383106103ae575050508311610397575b5050811b0181556100d3565b8a01515f1983861b60f8161c191690555f8061038b565b84015185558996909401939283019201610378565b825f52855f208480840160051c8201928885106103fd575b0160051c019085905b8281106103f25750506100af565b5f81550185906103e4565b925081926103db565b634e487b7160e01b5f52602260045260245ffd5b92607f169261009c565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761034757604052565b81601f82011215610424578051906001600160401b038211610347576040519261047f601f8401601f191660200185610428565b8284526020838301011161042457815f9260208093018386015e8301015290565b8051602090818110156105165750601f8251116104d857808251920151908083106104ca57501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b03821161034757600654926001938481811c9116801561061e575b8382101461040657601f81116105ea575b5081601f841160011461058657509282939183925f9461057b575b50501b915f199060031b1c19161760065560ff90565b015192505f80610565565b919083601f19811660065f52845f20945f905b888383106105d057505050106105b8575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f80806105aa565b858701518855909601959485019487935090810190610599565b60065f5284601f845f20920160051c820191601f860160051c015b82811061061357505061054a565b5f8155018590610605565b90607f1690610539565b8051602090818110156106525750601f8251116104d857808251920151908083106104ca57501790565b906001600160401b03821161034757600754926001938481811c9116801561075a575b8382101461040657601f8111610726575b5081601f84116001146106c257509282939183925f946106b7575b50501b915f199060031b1c19161760075560ff90565b015192505f806106a1565b919083601f19811660075f52845f20945f905b8883831061070c57505050106106f4575b505050811b0160075560ff90565b01515f1960f88460031b161c191690555f80806106e6565b8587015188559096019594850194879350908101906106d5565b60075f5284601f845f20920160051c820191601f860160051c015b82811061074f575050610686565b5f8155018590610741565b90607f169061067556fe608060409080825260049081361015610016575f80fd5b5f3560e01c90816306fdde03146114b75750806308b8ae3e14611439578063095ea7b3146113295780630acebbb3146112b757806318160ddd1461127b57806323b872dd146110ca5780632ca6f77114610e065780632dffc93814610dae578063313ce56714610d755780633408e47014610d3d57806334dd202614610ca25780633cc67ac714610c28578063404f551d14610b7c57806340c10f1914610aa057806370a0823114610a3f578063715018a6146109a357806384b0196e146108335780638c3adb0a146107b85780638d7e4ea0146107545780638da5cb5b1461070257806395d89b41146105df5780639dc29fac14610498578063a9059cbb14610443578063dd62ed3e146103ce578063e032e04f14610368578063eb24bae41461022f5763f2fde38b14610149575f80fd5b3461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610180611605565b90610189611df1565b73ffffffffffffffffffffffffffffffffffffffff8092169283156101fc575050600554827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f60249251917f1e4fbdf7000000000000000000000000000000000000000000000000000000008352820152fd5b5f80fd5b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610262611605565b9160243567ffffffffffffffff60443581811161022b57610286903690860161164b565b919060643591821161022b576102b5926102a66102af933690890161164b565b505036916117df565b30611daa565b926102be611e57565b9473ffffffffffffffffffffffffffffffffffffffff809116913083036103415750948260809261033d976103157f91d424c26d66241302801829dc5d75ac3b3036414855f2088205e8f2705c051b963386611901565b865193168352336020840152858301526060820152a1519182916020835260208301906115c2565b0390f35b84517fa0f3feea000000000000000000000000000000000000000000000000000000008152fd5b823461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff6103b8611605565b165f526401000000088252805f20549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090610408611605565b610410611628565b9073ffffffffffffffffffffffffffffffffffffffff8091165f5260018452825f2091165f528252805f20549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090610491610480611605565b6024359061048c611e57565b611901565b5160018152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576104d0611605565b90602435926104dd611df1565b73ffffffffffffffffffffffffffffffffffffffff83169283156105b057835f525f602052825f205491858310610551575f857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020898881898688528785520381872055816002540360025551908152a3005b6105ac868486519485947fe450d38c000000000000000000000000000000000000000000000000000000008652850160409194939273ffffffffffffffffffffffffffffffffffffffff606083019616825260208201520152565b0390fd5b505f60249251917f96c6fd1e000000000000000000000000000000000000000000000000000000008352820152fd5b503461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57815191825f835461061e81611679565b90818452602095600191876001821691825f146106bd575050600114610661575b50505061033d9291610652910385611713565b519282849384528301906115c2565b5f90815286935091907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8284106106a5575050508201018161065261033d61063f565b8054848a01860152889550879490930192810161068c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168782015293151560051b86019093019350849250610652915061033d905061063f565b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff600554169051908152f35b50903461022b577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9160208336011261022b5780359267ffffffffffffffff841161022b578290843603011261022b576020926107b1910161184f565b9051908152f35b503461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57359063ffffffff821680920361022b5761082f9073ffffffffffffffffffffffffffffffffffffffff610819611e57565b165f526401000000086020525f20918254611815565b9055005b503461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5761088b7f0000000000000000000000000000000000000000000000000000000000000000611f8b565b916108b57f00000000000000000000000000000000000000000000000000000000000000006120c0565b815191602091602084019484861067ffffffffffffffff871117610977575061092c826020928761091f99989795525f855281519889987f0f000000000000000000000000000000000000000000000000000000000000008a5260e0868b015260e08a01906115c2565b91888303908901526115c2565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b82811061096057505050500390f35b835185528695509381019392810192600101610951565b6041907f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576109d9611df1565b5f73ffffffffffffffffffffffffffffffffffffffff6005547fffffffffffffffffffffffff00000000000000000000000000000000000000008116600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b823461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff610a8f611605565b165f525f8252805f20549051908152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610ad8611605565b9073ffffffffffffffffffffffffffffffffffffffff60243592610afa611df1565b16928315610b4e57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92610b355f95600254611815565b60025585855284835280852082815401905551908152a3005b5f60249251917fec442f05000000000000000000000000000000000000000000000000000000008352820152fd5b503461022b57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57357fffffffff00000000000000000000000000000000000000000000000000000000811680910361022b576024359163ffffffff831680930361022b5761082f9173ffffffffffffffffffffffffffffffffffffffff610c09611e57565b165f52640100000009602052815f20905f526020525f20918254611815565b503461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760ff600191359273ffffffffffffffffffffffffffffffffffffffff610c7c611e57565b165f5264010000000a602052805f208460081c5f526020525f2092161b81541790555f80f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610cd9611605565b906024357fffffffff00000000000000000000000000000000000000000000000000000000811680910361022b5773ffffffffffffffffffffffffffffffffffffffff602093165f526401000000098352815f20905f528252805f20549051908152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209051468152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576020905160128152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090517f9ed1889e2180e1ec4f2d7816d43eb41f27d0bbbce4557680ecf32626c070c8648152f35b50907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9060608236011261022b57610e3c611605565b9160243567ffffffffffffffff80821161022b578382870193833603011261022b5760443590811161022b57610e75903690870161164b565b9083359264ffffffffff8460d01c1642116110a257610e92611e57565b69ffffffffffffffffffff808660801c16908115928315611096575b5050501561106e576024610ecf910193610ec88587611754565b9189611a6b565b156110465790610ee891610ee28561184f565b87611c21565b1561101e576102af610f54610f5b92600894855463ffffffff98898260a01c1691825f14610ffe57740100000000000000000000000000000000000000000188557f80000000000000000000000000000000000000000000000000000000000000001790870155611754565b36916117df565b928154908160a01c16805f14610fd75761033d9550600114610fae577fffffffffffffffffffffffff00000000000000000000000000000000000000000190555b519182916020835260208301906115c2565b507f80000000000000000000000000000000000000000000000000000000000000009055610f9c565b857f06a2af9e000000000000000000000000000000000000000000000000000000005f525ffd5b507401000000000000000000000000000000000000000017875550611754565b8483517f356a4418000000000000000000000000000000000000000000000000000000008152fd5b8685517fd9c6386f000000000000000000000000000000000000000000000000000000008152fd5b8786517f3b06dcfb000000000000000000000000000000000000000000000000000000008152fd5b161490505f8080610eae565b8786517f559895a3000000000000000000000000000000000000000000000000000000008152fd5b503461022b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611102611605565b61110a611628565b9060443592611117611e57565b9073ffffffffffffffffffffffffffffffffffffffff9081841690815f526001602052875f2092841692835f52602052875f2054937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8503611182575b6020896104918a8a8a611901565b87851061121f575081156111f05782156111c157505f908152600160209081528782209282529182528681209286900390925583916104919080611174565b6024905f8951917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b6024905f8951917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b906105ac88868b519485947ffb8f41b2000000000000000000000000000000000000000000000000000000008652850160409194939273ffffffffffffffffffffffffffffffffffffffff606083019616825260208201520152565b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576020906002549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff611306611605565b165f5264010000000a8252805f2060243560081c5f528252805f20549051908152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611361611605565b6024359073ffffffffffffffffffffffffffffffffffffffff80611383611e57565b1691821561140a57169182156113db5760208095507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f5260018252855f20855f52825280865f20558551908152a35160018152f35b6024855f8651917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b6024865f8751917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090611473611605565b9073ffffffffffffffffffffffffffffffffffffffff60243592165f5264010000000a8352805f208260081c5f528352600160ff825f2054925193161b1615158152f35b833461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760035490825f6114f584611679565b808352602094600190866001821691825f14611582575050600114611527575b505061033d9291610652910385611713565b9085925060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f925b82841061156a5750505082010181610652611515565b8054848a018601528895508794909301928101611554565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168682015292151560051b850190920192508391506106529050611515565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b9181601f8401121561022b5782359167ffffffffffffffff831161022b576020838186019501011161022b57565b90600182811c921680156116c0575b602083101461169357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611688565b6040810190811067ffffffffffffffff8211176116e657604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176116e657604052565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561022b570180359067ffffffffffffffff821161022b5760200191813603831361022b57565b67ffffffffffffffff81116116e657601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926117eb826117a5565b916117f96040519384611713565b82948184528183011161022b578281602093845f960137010152565b9190820180921161182257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b61185f610f546020830183611754565b60208151910120906040519160208301917f9ed1889e2180e1ec4f2d7816d43eb41f27d0bbbce4557680ecf32626c070c8648352356040840152606083015260608252608082019180831067ffffffffffffffff8411176116e6576042926040525190206118cb61217d565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9173ffffffffffffffffffffffffffffffffffffffff808416928315611a0e57169283156119de57825f525f60205260405f2054908282106119865750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f5260405f20818154019055604051908152a3565b6040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff919091166004820152602481019190915260448101829052606490fd5b60246040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152fd5b60246040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118225760010190565b90928360fe1c9360028511611bf7576003851015611bca576fffffffffffffffffffffffffffffffff81169480611ad95750505073ffffffffffffffffffffffffffffffffffffffff9150165f5264010000000860205260405f2090815491611ad383611a3e565b90551490565b919291600103611b6d575073ffffffffffffffffffffffffffffffffffffffff165f5264010000000960205260405f2091357fffffffff000000000000000000000000000000000000000000000000000000009181838093169160048110611b57575b50509050165f5260205260405f2090815491611ad383611a3e565b8391925060040360031b1b161681905f80611b3c565b9350905073ffffffffffffffffffffffffffffffffffffffff9150165f5264010000000a60205260405f206effffffffffffffffffffffffffffff8260081c165f5260205260405f2090600160ff835492161b8117809255141590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60046040517f5f640821000000000000000000000000000000000000000000000000000000008152fd5b90919273ffffffffffffffffffffffffffffffffffffffff91828116928315611da057604093848414918215611d95575b82611cc8575b5050611cbe57602092825f9384978351937f1626ba7e0000000000000000000000000000000000000000000000000000000098898652600486015260248501528160448501526064840137606401915afa611cb1575090565b5f51143d60201416919050565b5050505050600190565b9091505f85518580604114611d7d57604014611d3857505f805b611cf1575b5016145f80611c58565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a160608201511015611ce75760209150608081895f935282805260015afa505f515f611ce7565b807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208b01358060ff1c601b01602084015260208c8b850137166060820152611ce2565b50868901355f1a602082015280878a81830137611ce2565b604185149250611c52565b5050505050505f90565b5f80611de693602081519101845af43d15611de9573d91611dca836117a5565b92611dd86040519485611713565b83523d5f602085013e611eeb565b90565b606091611eeb565b73ffffffffffffffffffffffffffffffffffffffff806005541681611e14611e57565b1603611e1d5750565b602490611e28611e57565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815291166004820152fd5b63ffffffff60085460a01c168015611ee6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818111611822576401000000001115611ebc576007015473ffffffffffffffffffffffffffffffffffffffff1690565b60046040517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b503390565b90611f2a5750805115611f0057805190602001fd5b60046040517fd6bda275000000000000000000000000000000000000000000000000000000008152fd5b81511580611f82575b611f3b575090565b60249073ffffffffffffffffffffffffffffffffffffffff604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b15611f33565b60ff8114611fe15760ff811690601f8211611fb75760405191611fad836116ca565b8252602082015290565b60046040517fb3512b0c000000000000000000000000000000000000000000000000000000008152fd5b50604051600654815f611ff383611679565b8083529260209060019081811690811561207d575060011461201e575b5050611de692500382611713565b91509260065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f935f925b8284106120655750611de69450505081016020015f80612010565b8554878501830152948501948694509281019261204a565b905060209350611de69592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f80612010565b60ff81146120e25760ff811690601f8211611fb75760405191611fad836116ca565b50604051600754815f6120f483611679565b8083529260209060019081811690811561207d575060011461211e575050611de692500382611713565b91509260075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688935f925b8284106121655750611de69450505081016020015f80612010565b8554878501830152948501948694509281019261214a565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630148061228c575b156121e5577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176116e65760405251902090565b507f000000000000000000000000000000000000000000000000000000000000000046146121bc56fea26469706673582212205e0757e32d98777bf626b9dd953aad6fb949bd2c5da67cd563c978cbaa3b4d1d64736f6c63430008190033";
17
+ static readonly bytecode = "0x61016060408181523461042457612a50803803809161001e8286610428565b84398201916060818403126104245780516001600160401b039290838111610424578461004c91840161044b565b9160209081810151858111610424578661006791830161044b565b95838201518681116104245761007d920161044b565b9083518581116103475760038054906001928383811c9316801561041a575b8584101461040657601f928381116103c3575b508085848211600114610366575f9161035b575b505f1982841b1c191690841b1781555b885191888311610347576004998a548581811c9116801561033d575b8782101461032a578281116102e7575b5085918411600114610285579383949184925f9561027a575b50501b925f19911b1c19161786555b33156102645760058054336001600160a01b0319821681179092556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3610178846104a0565b9261012093845261018883610628565b94610140958652828151910120928360e05282815191012096610100978089524660a0528251938401947f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f86528385015260608401524660808401523060a084015260a0835260c08301968388109088111761025157508590525190206080523060c0526122eb93846107658539608051846121c3015260a0518461228f015260c05184612194015260e051846122120152518361223801525182610867015251816108910152f35b604190634e487b7160e01b5f525260245ffd5b8251631e4fbdf760e01b81525f81880152602490fd5b015193505f80610118565b9190601f198416928b5f5284875f20945f5b89898383106102d057505050106102b7575b50505050811b018655610127565b01519060f8845f19921b161c191690555f8080806102a9565b868601518955909701969485019488935001610297565b8b5f52865f208380870160051c820192898810610321575b0160051c019086905b8281106103165750506100ff565b5f8155018690610308565b925081926102ff565b60228c634e487b7160e01b5f525260245ffd5b90607f16906100ef565b634e487b7160e01b5f52604160045260245ffd5b90508801515f6100c3565b859250601f19821690845f52875f20915f5b898d8383106103ae575050508311610397575b5050811b0181556100d3565b8a01515f1983861b60f8161c191690555f8061038b565b84015185558996909401939283019201610378565b825f52855f208480840160051c8201928885106103fd575b0160051c019085905b8281106103f25750506100af565b5f81550185906103e4565b925081926103db565b634e487b7160e01b5f52602260045260245ffd5b92607f169261009c565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761034757604052565b81601f82011215610424578051906001600160401b038211610347576040519261047f601f8401601f191660200185610428565b8284526020838301011161042457815f9260208093018386015e8301015290565b8051602090818110156105165750601f8251116104d857808251920151908083106104ca57501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b03821161034757600654926001938481811c9116801561061e575b8382101461040657601f81116105ea575b5081601f841160011461058657509282939183925f9461057b575b50501b915f199060031b1c19161760065560ff90565b015192505f80610565565b919083601f19811660065f52845f20945f905b888383106105d057505050106105b8575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f80806105aa565b858701518855909601959485019487935090810190610599565b60065f5284601f845f20920160051c820191601f860160051c015b82811061061357505061054a565b5f8155018590610605565b90607f1690610539565b8051602090818110156106525750601f8251116104d857808251920151908083106104ca57501790565b906001600160401b03821161034757600754926001938481811c9116801561075a575b8382101461040657601f8111610726575b5081601f84116001146106c257509282939183925f946106b7575b50501b915f199060031b1c19161760075560ff90565b015192505f806106a1565b919083601f19811660075f52845f20945f905b8883831061070c57505050106106f4575b505050811b0160075560ff90565b01515f1960f88460031b161c191690555f80806106e6565b8587015188559096019594850194879350908101906106d5565b60075f5284601f845f20920160051c820191601f860160051c015b82811061074f575050610686565b5f8155018590610741565b90607f169061067556fe608060409080825260049081361015610016575f80fd5b5f3560e01c90816306fdde03146114b75750806308b8ae3e14611439578063095ea7b3146113295780630acebbb3146112b757806318160ddd1461127b57806323b872dd146110ca5780632ca6f77114610e065780632dffc93814610dae578063313ce56714610d755780633408e47014610d3d57806334dd202614610ca25780633cc67ac714610c28578063404f551d14610b7c57806340c10f1914610aa057806370a0823114610a3f578063715018a6146109a357806384b0196e146108335780638c3adb0a146107b85780638d7e4ea0146107545780638da5cb5b1461070257806395d89b41146105df5780639dc29fac14610498578063a9059cbb14610443578063dd62ed3e146103ce578063e032e04f14610368578063eb24bae41461022f5763f2fde38b14610149575f80fd5b3461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610180611605565b90610189611df1565b73ffffffffffffffffffffffffffffffffffffffff8092169283156101fc575050600554827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f60249251917f1e4fbdf7000000000000000000000000000000000000000000000000000000008352820152fd5b5f80fd5b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610262611605565b9160243567ffffffffffffffff60443581811161022b57610286903690860161164b565b919060643591821161022b576102b5926102a66102af933690890161164b565b505036916117df565b30611daa565b926102be611e57565b9473ffffffffffffffffffffffffffffffffffffffff809116913083036103415750948260809261033d976103157f91d424c26d66241302801829dc5d75ac3b3036414855f2088205e8f2705c051b963386611901565b865193168352336020840152858301526060820152a1519182916020835260208301906115c2565b0390f35b84517fa0f3feea000000000000000000000000000000000000000000000000000000008152fd5b823461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff6103b8611605565b165f526401000000088252805f20549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090610408611605565b610410611628565b9073ffffffffffffffffffffffffffffffffffffffff8091165f5260018452825f2091165f528252805f20549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090610491610480611605565b6024359061048c611e57565b611901565b5160018152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576104d0611605565b90602435926104dd611df1565b73ffffffffffffffffffffffffffffffffffffffff83169283156105b057835f525f602052825f205491858310610551575f857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020898881898688528785520381872055816002540360025551908152a3005b6105ac868486519485947fe450d38c000000000000000000000000000000000000000000000000000000008652850160409194939273ffffffffffffffffffffffffffffffffffffffff606083019616825260208201520152565b0390fd5b505f60249251917f96c6fd1e000000000000000000000000000000000000000000000000000000008352820152fd5b503461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57815191825f835461061e81611679565b90818452602095600191876001821691825f146106bd575050600114610661575b50505061033d9291610652910385611713565b519282849384528301906115c2565b5f90815286935091907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8284106106a5575050508201018161065261033d61063f565b8054848a01860152889550879490930192810161068c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168782015293151560051b86019093019350849250610652915061033d905061063f565b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff600554169051908152f35b50903461022b577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9160208336011261022b5780359267ffffffffffffffff841161022b578290843603011261022b576020926107b1910161184f565b9051908152f35b503461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57359063ffffffff821680920361022b5761082f9073ffffffffffffffffffffffffffffffffffffffff610819611e57565b165f526401000000086020525f20918254611815565b9055005b503461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5761088b7f0000000000000000000000000000000000000000000000000000000000000000611f8b565b916108b57f00000000000000000000000000000000000000000000000000000000000000006120c0565b815191602091602084019484861067ffffffffffffffff871117610977575061092c826020928761091f99989795525f855281519889987f0f000000000000000000000000000000000000000000000000000000000000008a5260e0868b015260e08a01906115c2565b91888303908901526115c2565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b82811061096057505050500390f35b835185528695509381019392810192600101610951565b6041907f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576109d9611df1565b5f73ffffffffffffffffffffffffffffffffffffffff6005547fffffffffffffffffffffffff00000000000000000000000000000000000000008116600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b823461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff610a8f611605565b165f525f8252805f20549051908152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610ad8611605565b9073ffffffffffffffffffffffffffffffffffffffff60243592610afa611df1565b16928315610b4e57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92610b355f95600254611815565b60025585855284835280852082815401905551908152a3005b5f60249251917fec442f05000000000000000000000000000000000000000000000000000000008352820152fd5b503461022b57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57357fffffffff00000000000000000000000000000000000000000000000000000000811680910361022b576024359163ffffffff831680930361022b5761082f9173ffffffffffffffffffffffffffffffffffffffff610c09611e57565b165f52640100000009602052815f20905f526020525f20918254611815565b503461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760ff600191359273ffffffffffffffffffffffffffffffffffffffff610c7c611e57565b165f5264010000000a602052805f208460081c5f526020525f2092161b81541790555f80f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610cd9611605565b906024357fffffffff00000000000000000000000000000000000000000000000000000000811680910361022b5773ffffffffffffffffffffffffffffffffffffffff602093165f526401000000098352815f20905f528252805f20549051908152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209051468152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576020905160128152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090517f9ed1889e2180e1ec4f2d7816d43eb41f27d0bbbce4557680ecf32626c070c8648152f35b50907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9060608236011261022b57610e3c611605565b9160243567ffffffffffffffff80821161022b578382870193833603011261022b5760443590811161022b57610e75903690870161164b565b9083359264ffffffffff8460d01c1642116110a257610e92611e57565b69ffffffffffffffffffff808660801c16908115928315611096575b5050501561106e576024610ecf910193610ec88587611754565b9189611a6b565b156110465790610ee891610ee28561184f565b87611c21565b1561101e576102af610f54610f5b92600894855463ffffffff98898260a01c1691825f14610ffe57740100000000000000000000000000000000000000000188557f80000000000000000000000000000000000000000000000000000000000000001790870155611754565b36916117df565b928154908160a01c16805f14610fd75761033d9550600114610fae577fffffffffffffffffffffffff00000000000000000000000000000000000000000190555b519182916020835260208301906115c2565b507f80000000000000000000000000000000000000000000000000000000000000009055610f9c565b857f06a2af9e000000000000000000000000000000000000000000000000000000005f525ffd5b507401000000000000000000000000000000000000000017875550611754565b8483517f356a4418000000000000000000000000000000000000000000000000000000008152fd5b8685517fd9c6386f000000000000000000000000000000000000000000000000000000008152fd5b8786517f3b06dcfb000000000000000000000000000000000000000000000000000000008152fd5b161490505f8080610eae565b8786517f559895a3000000000000000000000000000000000000000000000000000000008152fd5b503461022b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611102611605565b61110a611628565b9060443592611117611e57565b9073ffffffffffffffffffffffffffffffffffffffff9081841690815f526001602052875f2092841692835f52602052875f2054937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8503611182575b6020896104918a8a8a611901565b87851061121f575081156111f05782156111c157505f908152600160209081528782209282529182528681209286900390925583916104919080611174565b6024905f8951917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b6024905f8951917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b906105ac88868b519485947ffb8f41b2000000000000000000000000000000000000000000000000000000008652850160409194939273ffffffffffffffffffffffffffffffffffffffff606083019616825260208201520152565b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576020906002549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff611306611605565b165f5264010000000a8252805f2060243560081c5f528252805f20549051908152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611361611605565b6024359073ffffffffffffffffffffffffffffffffffffffff80611383611e57565b1691821561140a57169182156113db5760208095507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f5260018252855f20855f52825280865f20558551908152a35160018152f35b6024855f8651917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b6024865f8751917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090611473611605565b9073ffffffffffffffffffffffffffffffffffffffff60243592165f5264010000000a8352805f208260081c5f528352600160ff825f2054925193161b1615158152f35b833461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760035490825f6114f584611679565b808352602094600190866001821691825f14611582575050600114611527575b505061033d9291610652910385611713565b9085925060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f925b82841061156a5750505082010181610652611515565b8054848a018601528895508794909301928101611554565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168682015292151560051b850190920192508391506106529050611515565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b9181601f8401121561022b5782359167ffffffffffffffff831161022b576020838186019501011161022b57565b90600182811c921680156116c0575b602083101461169357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611688565b6040810190811067ffffffffffffffff8211176116e657604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176116e657604052565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561022b570180359067ffffffffffffffff821161022b5760200191813603831361022b57565b67ffffffffffffffff81116116e657601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926117eb826117a5565b916117f96040519384611713565b82948184528183011161022b578281602093845f960137010152565b9190820180921161182257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b61185f610f546020830183611754565b60208151910120906040519160208301917f9ed1889e2180e1ec4f2d7816d43eb41f27d0bbbce4557680ecf32626c070c8648352356040840152606083015260608252608082019180831067ffffffffffffffff8411176116e6576042926040525190206118cb61217d565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9173ffffffffffffffffffffffffffffffffffffffff808416928315611a0e57169283156119de57825f525f60205260405f2054908282106119865750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f5260405f20818154019055604051908152a3565b6040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff919091166004820152602481019190915260448101829052606490fd5b60246040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152fd5b60246040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118225760010190565b90928360fe1c9360028511611bf7576003851015611bca576fffffffffffffffffffffffffffffffff81169480611ad95750505073ffffffffffffffffffffffffffffffffffffffff9150165f5264010000000860205260405f2090815491611ad383611a3e565b90551490565b919291600103611b6d575073ffffffffffffffffffffffffffffffffffffffff165f5264010000000960205260405f2091357fffffffff000000000000000000000000000000000000000000000000000000009181838093169160048110611b57575b50509050165f5260205260405f2090815491611ad383611a3e565b8391925060040360031b1b161681905f80611b3c565b9350905073ffffffffffffffffffffffffffffffffffffffff9150165f5264010000000a60205260405f206effffffffffffffffffffffffffffff8260081c165f5260205260405f2090600160ff835492161b8117809255141590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60046040517f5f640821000000000000000000000000000000000000000000000000000000008152fd5b90919273ffffffffffffffffffffffffffffffffffffffff91828116928315611da057604093848414918215611d95575b82611cc8575b5050611cbe57602092825f9384978351937f1626ba7e0000000000000000000000000000000000000000000000000000000098898652600486015260248501528160448501526064840137606401915afa611cb1575090565b5f51143d60201416919050565b5050505050600190565b9091505f85518580604114611d7d57604014611d3857505f805b611cf1575b5016145f80611c58565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a160608201511015611ce75760209150608081895f935282805260015afa505f515f611ce7565b807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208b01358060ff1c601b01602084015260208c8b850137166060820152611ce2565b50868901355f1a602082015280878a81830137611ce2565b604185149250611c52565b5050505050505f90565b5f80611de693602081519101845af43d15611de9573d91611dca836117a5565b92611dd86040519485611713565b83523d5f602085013e611eeb565b90565b606091611eeb565b73ffffffffffffffffffffffffffffffffffffffff806005541681611e14611e57565b1603611e1d5750565b602490611e28611e57565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815291166004820152fd5b63ffffffff60085460a01c168015611ee6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818111611822576401000000001115611ebc576007015473ffffffffffffffffffffffffffffffffffffffff1690565b60046040517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b503390565b90611f2a5750805115611f0057805190602001fd5b60046040517fd6bda275000000000000000000000000000000000000000000000000000000008152fd5b81511580611f82575b611f3b575090565b60249073ffffffffffffffffffffffffffffffffffffffff604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b15611f33565b60ff8114611fe15760ff811690601f8211611fb75760405191611fad836116ca565b8252602082015290565b60046040517fb3512b0c000000000000000000000000000000000000000000000000000000008152fd5b50604051600654815f611ff383611679565b8083529260209060019081811690811561207d575060011461201e575b5050611de692500382611713565b91509260065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f935f925b8284106120655750611de69450505081016020015f80612010565b8554878501830152948501948694509281019261204a565b905060209350611de69592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f80612010565b60ff81146120e25760ff811690601f8211611fb75760405191611fad836116ca565b50604051600754815f6120f483611679565b8083529260209060019081811690811561207d575060011461211e575050611de692500382611713565b91509260075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688935f925b8284106121655750611de69450505081016020015f80612010565b8554878501830152948501948694509281019261214a565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630148061228c575b156121e5577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176116e65760405251902090565b507f000000000000000000000000000000000000000000000000000000000000000046146121bc56fea2646970667358221220a30e8de38a667241fcb06e9fe17a338cc76e17fdce73eae91807f9d63615896e64736f6c63430008190033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [{
20
20
  readonly internalType: "string";
@@ -860,7 +860,7 @@ const _abi = [
860
860
  type: "function",
861
861
  },
862
862
  ];
863
- const _bytecode = "0x61016060408181523461042457612a50803803809161001e8286610428565b84398201916060818403126104245780516001600160401b039290838111610424578461004c91840161044b565b9160209081810151858111610424578661006791830161044b565b95838201518681116104245761007d920161044b565b9083518581116103475760038054906001928383811c9316801561041a575b8584101461040657601f928381116103c3575b508085848211600114610366575f9161035b575b505f1982841b1c191690841b1781555b885191888311610347576004998a548581811c9116801561033d575b8782101461032a578281116102e7575b5085918411600114610285579383949184925f9561027a575b50501b925f19911b1c19161786555b33156102645760058054336001600160a01b0319821681179092556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3610178846104a0565b9261012093845261018883610628565b94610140958652828151910120928360e05282815191012096610100978089524660a0528251938401947f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f86528385015260608401524660808401523060a084015260a0835260c08301968388109088111761025157508590525190206080523060c0526122eb93846107658539608051846121c3015260a0518461228f015260c05184612194015260e051846122120152518361223801525182610867015251816108910152f35b604190634e487b7160e01b5f525260245ffd5b8251631e4fbdf760e01b81525f81880152602490fd5b015193505f80610118565b9190601f198416928b5f5284875f20945f5b89898383106102d057505050106102b7575b50505050811b018655610127565b01519060f8845f19921b161c191690555f8080806102a9565b868601518955909701969485019488935001610297565b8b5f52865f208380870160051c820192898810610321575b0160051c019086905b8281106103165750506100ff565b5f8155018690610308565b925081926102ff565b60228c634e487b7160e01b5f525260245ffd5b90607f16906100ef565b634e487b7160e01b5f52604160045260245ffd5b90508801515f6100c3565b859250601f19821690845f52875f20915f5b898d8383106103ae575050508311610397575b5050811b0181556100d3565b8a01515f1983861b60f8161c191690555f8061038b565b84015185558996909401939283019201610378565b825f52855f208480840160051c8201928885106103fd575b0160051c019085905b8281106103f25750506100af565b5f81550185906103e4565b925081926103db565b634e487b7160e01b5f52602260045260245ffd5b92607f169261009c565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761034757604052565b81601f82011215610424578051906001600160401b038211610347576040519261047f601f8401601f191660200185610428565b8284526020838301011161042457815f9260208093018386015e8301015290565b8051602090818110156105165750601f8251116104d857808251920151908083106104ca57501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b03821161034757600654926001938481811c9116801561061e575b8382101461040657601f81116105ea575b5081601f841160011461058657509282939183925f9461057b575b50501b915f199060031b1c19161760065560ff90565b015192505f80610565565b919083601f19811660065f52845f20945f905b888383106105d057505050106105b8575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f80806105aa565b858701518855909601959485019487935090810190610599565b60065f5284601f845f20920160051c820191601f860160051c015b82811061061357505061054a565b5f8155018590610605565b90607f1690610539565b8051602090818110156106525750601f8251116104d857808251920151908083106104ca57501790565b906001600160401b03821161034757600754926001938481811c9116801561075a575b8382101461040657601f8111610726575b5081601f84116001146106c257509282939183925f946106b7575b50501b915f199060031b1c19161760075560ff90565b015192505f806106a1565b919083601f19811660075f52845f20945f905b8883831061070c57505050106106f4575b505050811b0160075560ff90565b01515f1960f88460031b161c191690555f80806106e6565b8587015188559096019594850194879350908101906106d5565b60075f5284601f845f20920160051c820191601f860160051c015b82811061074f575050610686565b5f8155018590610741565b90607f169061067556fe608060409080825260049081361015610016575f80fd5b5f3560e01c90816306fdde03146114b75750806308b8ae3e14611439578063095ea7b3146113295780630acebbb3146112b757806318160ddd1461127b57806323b872dd146110ca5780632ca6f77114610e065780632dffc93814610dae578063313ce56714610d755780633408e47014610d3d57806334dd202614610ca25780633cc67ac714610c28578063404f551d14610b7c57806340c10f1914610aa057806370a0823114610a3f578063715018a6146109a357806384b0196e146108335780638c3adb0a146107b85780638d7e4ea0146107545780638da5cb5b1461070257806395d89b41146105df5780639dc29fac14610498578063a9059cbb14610443578063dd62ed3e146103ce578063e032e04f14610368578063eb24bae41461022f5763f2fde38b14610149575f80fd5b3461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610180611605565b90610189611df1565b73ffffffffffffffffffffffffffffffffffffffff8092169283156101fc575050600554827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f60249251917f1e4fbdf7000000000000000000000000000000000000000000000000000000008352820152fd5b5f80fd5b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610262611605565b9160243567ffffffffffffffff60443581811161022b57610286903690860161164b565b919060643591821161022b576102b5926102a66102af933690890161164b565b505036916117df565b30611daa565b926102be611e57565b9473ffffffffffffffffffffffffffffffffffffffff809116913083036103415750948260809261033d976103157f91d424c26d66241302801829dc5d75ac3b3036414855f2088205e8f2705c051b963386611901565b865193168352336020840152858301526060820152a1519182916020835260208301906115c2565b0390f35b84517fa0f3feea000000000000000000000000000000000000000000000000000000008152fd5b823461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff6103b8611605565b165f526401000000088252805f20549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090610408611605565b610410611628565b9073ffffffffffffffffffffffffffffffffffffffff8091165f5260018452825f2091165f528252805f20549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090610491610480611605565b6024359061048c611e57565b611901565b5160018152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576104d0611605565b90602435926104dd611df1565b73ffffffffffffffffffffffffffffffffffffffff83169283156105b057835f525f602052825f205491858310610551575f857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020898881898688528785520381872055816002540360025551908152a3005b6105ac868486519485947fe450d38c000000000000000000000000000000000000000000000000000000008652850160409194939273ffffffffffffffffffffffffffffffffffffffff606083019616825260208201520152565b0390fd5b505f60249251917f96c6fd1e000000000000000000000000000000000000000000000000000000008352820152fd5b503461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57815191825f835461061e81611679565b90818452602095600191876001821691825f146106bd575050600114610661575b50505061033d9291610652910385611713565b519282849384528301906115c2565b5f90815286935091907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8284106106a5575050508201018161065261033d61063f565b8054848a01860152889550879490930192810161068c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168782015293151560051b86019093019350849250610652915061033d905061063f565b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff600554169051908152f35b50903461022b577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9160208336011261022b5780359267ffffffffffffffff841161022b578290843603011261022b576020926107b1910161184f565b9051908152f35b503461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57359063ffffffff821680920361022b5761082f9073ffffffffffffffffffffffffffffffffffffffff610819611e57565b165f526401000000086020525f20918254611815565b9055005b503461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5761088b7f0000000000000000000000000000000000000000000000000000000000000000611f8b565b916108b57f00000000000000000000000000000000000000000000000000000000000000006120c0565b815191602091602084019484861067ffffffffffffffff871117610977575061092c826020928761091f99989795525f855281519889987f0f000000000000000000000000000000000000000000000000000000000000008a5260e0868b015260e08a01906115c2565b91888303908901526115c2565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b82811061096057505050500390f35b835185528695509381019392810192600101610951565b6041907f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576109d9611df1565b5f73ffffffffffffffffffffffffffffffffffffffff6005547fffffffffffffffffffffffff00000000000000000000000000000000000000008116600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b823461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff610a8f611605565b165f525f8252805f20549051908152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610ad8611605565b9073ffffffffffffffffffffffffffffffffffffffff60243592610afa611df1565b16928315610b4e57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92610b355f95600254611815565b60025585855284835280852082815401905551908152a3005b5f60249251917fec442f05000000000000000000000000000000000000000000000000000000008352820152fd5b503461022b57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57357fffffffff00000000000000000000000000000000000000000000000000000000811680910361022b576024359163ffffffff831680930361022b5761082f9173ffffffffffffffffffffffffffffffffffffffff610c09611e57565b165f52640100000009602052815f20905f526020525f20918254611815565b503461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760ff600191359273ffffffffffffffffffffffffffffffffffffffff610c7c611e57565b165f5264010000000a602052805f208460081c5f526020525f2092161b81541790555f80f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610cd9611605565b906024357fffffffff00000000000000000000000000000000000000000000000000000000811680910361022b5773ffffffffffffffffffffffffffffffffffffffff602093165f526401000000098352815f20905f528252805f20549051908152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209051468152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576020905160128152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090517f9ed1889e2180e1ec4f2d7816d43eb41f27d0bbbce4557680ecf32626c070c8648152f35b50907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9060608236011261022b57610e3c611605565b9160243567ffffffffffffffff80821161022b578382870193833603011261022b5760443590811161022b57610e75903690870161164b565b9083359264ffffffffff8460d01c1642116110a257610e92611e57565b69ffffffffffffffffffff808660801c16908115928315611096575b5050501561106e576024610ecf910193610ec88587611754565b9189611a6b565b156110465790610ee891610ee28561184f565b87611c21565b1561101e576102af610f54610f5b92600894855463ffffffff98898260a01c1691825f14610ffe57740100000000000000000000000000000000000000000188557f80000000000000000000000000000000000000000000000000000000000000001790870155611754565b36916117df565b928154908160a01c16805f14610fd75761033d9550600114610fae577fffffffffffffffffffffffff00000000000000000000000000000000000000000190555b519182916020835260208301906115c2565b507f80000000000000000000000000000000000000000000000000000000000000009055610f9c565b857f06a2af9e000000000000000000000000000000000000000000000000000000005f525ffd5b507401000000000000000000000000000000000000000017875550611754565b8483517f356a4418000000000000000000000000000000000000000000000000000000008152fd5b8685517fd9c6386f000000000000000000000000000000000000000000000000000000008152fd5b8786517f3b06dcfb000000000000000000000000000000000000000000000000000000008152fd5b161490505f8080610eae565b8786517f559895a3000000000000000000000000000000000000000000000000000000008152fd5b503461022b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611102611605565b61110a611628565b9060443592611117611e57565b9073ffffffffffffffffffffffffffffffffffffffff9081841690815f526001602052875f2092841692835f52602052875f2054937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8503611182575b6020896104918a8a8a611901565b87851061121f575081156111f05782156111c157505f908152600160209081528782209282529182528681209286900390925583916104919080611174565b6024905f8951917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b6024905f8951917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b906105ac88868b519485947ffb8f41b2000000000000000000000000000000000000000000000000000000008652850160409194939273ffffffffffffffffffffffffffffffffffffffff606083019616825260208201520152565b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576020906002549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff611306611605565b165f5264010000000a8252805f2060243560081c5f528252805f20549051908152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611361611605565b6024359073ffffffffffffffffffffffffffffffffffffffff80611383611e57565b1691821561140a57169182156113db5760208095507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f5260018252855f20855f52825280865f20558551908152a35160018152f35b6024855f8651917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b6024865f8751917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090611473611605565b9073ffffffffffffffffffffffffffffffffffffffff60243592165f5264010000000a8352805f208260081c5f528352600160ff825f2054925193161b1615158152f35b833461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760035490825f6114f584611679565b808352602094600190866001821691825f14611582575050600114611527575b505061033d9291610652910385611713565b9085925060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f925b82841061156a5750505082010181610652611515565b8054848a018601528895508794909301928101611554565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168682015292151560051b850190920192508391506106529050611515565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b9181601f8401121561022b5782359167ffffffffffffffff831161022b576020838186019501011161022b57565b90600182811c921680156116c0575b602083101461169357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611688565b6040810190811067ffffffffffffffff8211176116e657604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176116e657604052565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561022b570180359067ffffffffffffffff821161022b5760200191813603831361022b57565b67ffffffffffffffff81116116e657601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926117eb826117a5565b916117f96040519384611713565b82948184528183011161022b578281602093845f960137010152565b9190820180921161182257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b61185f610f546020830183611754565b60208151910120906040519160208301917f9ed1889e2180e1ec4f2d7816d43eb41f27d0bbbce4557680ecf32626c070c8648352356040840152606083015260608252608082019180831067ffffffffffffffff8411176116e6576042926040525190206118cb61217d565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9173ffffffffffffffffffffffffffffffffffffffff808416928315611a0e57169283156119de57825f525f60205260405f2054908282106119865750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f5260405f20818154019055604051908152a3565b6040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff919091166004820152602481019190915260448101829052606490fd5b60246040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152fd5b60246040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118225760010190565b90928360fe1c9360028511611bf7576003851015611bca576fffffffffffffffffffffffffffffffff81169480611ad95750505073ffffffffffffffffffffffffffffffffffffffff9150165f5264010000000860205260405f2090815491611ad383611a3e565b90551490565b919291600103611b6d575073ffffffffffffffffffffffffffffffffffffffff165f5264010000000960205260405f2091357fffffffff000000000000000000000000000000000000000000000000000000009181838093169160048110611b57575b50509050165f5260205260405f2090815491611ad383611a3e565b8391925060040360031b1b161681905f80611b3c565b9350905073ffffffffffffffffffffffffffffffffffffffff9150165f5264010000000a60205260405f206effffffffffffffffffffffffffffff8260081c165f5260205260405f2090600160ff835492161b8117809255141590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60046040517f5f640821000000000000000000000000000000000000000000000000000000008152fd5b90919273ffffffffffffffffffffffffffffffffffffffff91828116928315611da057604093848414918215611d95575b82611cc8575b5050611cbe57602092825f9384978351937f1626ba7e0000000000000000000000000000000000000000000000000000000098898652600486015260248501528160448501526064840137606401915afa611cb1575090565b5f51143d60201416919050565b5050505050600190565b9091505f85518580604114611d7d57604014611d3857505f805b611cf1575b5016145f80611c58565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a160608201511015611ce75760209150608081895f935282805260015afa505f515f611ce7565b807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208b01358060ff1c601b01602084015260208c8b850137166060820152611ce2565b50868901355f1a602082015280878a81830137611ce2565b604185149250611c52565b5050505050505f90565b5f80611de693602081519101845af43d15611de9573d91611dca836117a5565b92611dd86040519485611713565b83523d5f602085013e611eeb565b90565b606091611eeb565b73ffffffffffffffffffffffffffffffffffffffff806005541681611e14611e57565b1603611e1d5750565b602490611e28611e57565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815291166004820152fd5b63ffffffff60085460a01c168015611ee6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818111611822576401000000001115611ebc576007015473ffffffffffffffffffffffffffffffffffffffff1690565b60046040517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b503390565b90611f2a5750805115611f0057805190602001fd5b60046040517fd6bda275000000000000000000000000000000000000000000000000000000008152fd5b81511580611f82575b611f3b575090565b60249073ffffffffffffffffffffffffffffffffffffffff604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b15611f33565b60ff8114611fe15760ff811690601f8211611fb75760405191611fad836116ca565b8252602082015290565b60046040517fb3512b0c000000000000000000000000000000000000000000000000000000008152fd5b50604051600654815f611ff383611679565b8083529260209060019081811690811561207d575060011461201e575b5050611de692500382611713565b91509260065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f935f925b8284106120655750611de69450505081016020015f80612010565b8554878501830152948501948694509281019261204a565b905060209350611de69592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f80612010565b60ff81146120e25760ff811690601f8211611fb75760405191611fad836116ca565b50604051600754815f6120f483611679565b8083529260209060019081811690811561207d575060011461211e575050611de692500382611713565b91509260075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688935f925b8284106121655750611de69450505081016020015f80612010565b8554878501830152948501948694509281019261214a565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630148061228c575b156121e5577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176116e65760405251902090565b507f000000000000000000000000000000000000000000000000000000000000000046146121bc56fea26469706673582212205e0757e32d98777bf626b9dd953aad6fb949bd2c5da67cd563c978cbaa3b4d1d64736f6c63430008190033";
863
+ const _bytecode = "0x61016060408181523461042457612a50803803809161001e8286610428565b84398201916060818403126104245780516001600160401b039290838111610424578461004c91840161044b565b9160209081810151858111610424578661006791830161044b565b95838201518681116104245761007d920161044b565b9083518581116103475760038054906001928383811c9316801561041a575b8584101461040657601f928381116103c3575b508085848211600114610366575f9161035b575b505f1982841b1c191690841b1781555b885191888311610347576004998a548581811c9116801561033d575b8782101461032a578281116102e7575b5085918411600114610285579383949184925f9561027a575b50501b925f19911b1c19161786555b33156102645760058054336001600160a01b0319821681179092556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3610178846104a0565b9261012093845261018883610628565b94610140958652828151910120928360e05282815191012096610100978089524660a0528251938401947f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f86528385015260608401524660808401523060a084015260a0835260c08301968388109088111761025157508590525190206080523060c0526122eb93846107658539608051846121c3015260a0518461228f015260c05184612194015260e051846122120152518361223801525182610867015251816108910152f35b604190634e487b7160e01b5f525260245ffd5b8251631e4fbdf760e01b81525f81880152602490fd5b015193505f80610118565b9190601f198416928b5f5284875f20945f5b89898383106102d057505050106102b7575b50505050811b018655610127565b01519060f8845f19921b161c191690555f8080806102a9565b868601518955909701969485019488935001610297565b8b5f52865f208380870160051c820192898810610321575b0160051c019086905b8281106103165750506100ff565b5f8155018690610308565b925081926102ff565b60228c634e487b7160e01b5f525260245ffd5b90607f16906100ef565b634e487b7160e01b5f52604160045260245ffd5b90508801515f6100c3565b859250601f19821690845f52875f20915f5b898d8383106103ae575050508311610397575b5050811b0181556100d3565b8a01515f1983861b60f8161c191690555f8061038b565b84015185558996909401939283019201610378565b825f52855f208480840160051c8201928885106103fd575b0160051c019085905b8281106103f25750506100af565b5f81550185906103e4565b925081926103db565b634e487b7160e01b5f52602260045260245ffd5b92607f169261009c565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761034757604052565b81601f82011215610424578051906001600160401b038211610347576040519261047f601f8401601f191660200185610428565b8284526020838301011161042457815f9260208093018386015e8301015290565b8051602090818110156105165750601f8251116104d857808251920151908083106104ca57501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b03821161034757600654926001938481811c9116801561061e575b8382101461040657601f81116105ea575b5081601f841160011461058657509282939183925f9461057b575b50501b915f199060031b1c19161760065560ff90565b015192505f80610565565b919083601f19811660065f52845f20945f905b888383106105d057505050106105b8575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f80806105aa565b858701518855909601959485019487935090810190610599565b60065f5284601f845f20920160051c820191601f860160051c015b82811061061357505061054a565b5f8155018590610605565b90607f1690610539565b8051602090818110156106525750601f8251116104d857808251920151908083106104ca57501790565b906001600160401b03821161034757600754926001938481811c9116801561075a575b8382101461040657601f8111610726575b5081601f84116001146106c257509282939183925f946106b7575b50501b915f199060031b1c19161760075560ff90565b015192505f806106a1565b919083601f19811660075f52845f20945f905b8883831061070c57505050106106f4575b505050811b0160075560ff90565b01515f1960f88460031b161c191690555f80806106e6565b8587015188559096019594850194879350908101906106d5565b60075f5284601f845f20920160051c820191601f860160051c015b82811061074f575050610686565b5f8155018590610741565b90607f169061067556fe608060409080825260049081361015610016575f80fd5b5f3560e01c90816306fdde03146114b75750806308b8ae3e14611439578063095ea7b3146113295780630acebbb3146112b757806318160ddd1461127b57806323b872dd146110ca5780632ca6f77114610e065780632dffc93814610dae578063313ce56714610d755780633408e47014610d3d57806334dd202614610ca25780633cc67ac714610c28578063404f551d14610b7c57806340c10f1914610aa057806370a0823114610a3f578063715018a6146109a357806384b0196e146108335780638c3adb0a146107b85780638d7e4ea0146107545780638da5cb5b1461070257806395d89b41146105df5780639dc29fac14610498578063a9059cbb14610443578063dd62ed3e146103ce578063e032e04f14610368578063eb24bae41461022f5763f2fde38b14610149575f80fd5b3461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610180611605565b90610189611df1565b73ffffffffffffffffffffffffffffffffffffffff8092169283156101fc575050600554827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f60249251917f1e4fbdf7000000000000000000000000000000000000000000000000000000008352820152fd5b5f80fd5b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610262611605565b9160243567ffffffffffffffff60443581811161022b57610286903690860161164b565b919060643591821161022b576102b5926102a66102af933690890161164b565b505036916117df565b30611daa565b926102be611e57565b9473ffffffffffffffffffffffffffffffffffffffff809116913083036103415750948260809261033d976103157f91d424c26d66241302801829dc5d75ac3b3036414855f2088205e8f2705c051b963386611901565b865193168352336020840152858301526060820152a1519182916020835260208301906115c2565b0390f35b84517fa0f3feea000000000000000000000000000000000000000000000000000000008152fd5b823461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff6103b8611605565b165f526401000000088252805f20549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090610408611605565b610410611628565b9073ffffffffffffffffffffffffffffffffffffffff8091165f5260018452825f2091165f528252805f20549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090610491610480611605565b6024359061048c611e57565b611901565b5160018152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576104d0611605565b90602435926104dd611df1565b73ffffffffffffffffffffffffffffffffffffffff83169283156105b057835f525f602052825f205491858310610551575f857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020898881898688528785520381872055816002540360025551908152a3005b6105ac868486519485947fe450d38c000000000000000000000000000000000000000000000000000000008652850160409194939273ffffffffffffffffffffffffffffffffffffffff606083019616825260208201520152565b0390fd5b505f60249251917f96c6fd1e000000000000000000000000000000000000000000000000000000008352820152fd5b503461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57815191825f835461061e81611679565b90818452602095600191876001821691825f146106bd575050600114610661575b50505061033d9291610652910385611713565b519282849384528301906115c2565b5f90815286935091907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8284106106a5575050508201018161065261033d61063f565b8054848a01860152889550879490930192810161068c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168782015293151560051b86019093019350849250610652915061033d905061063f565b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff600554169051908152f35b50903461022b577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9160208336011261022b5780359267ffffffffffffffff841161022b578290843603011261022b576020926107b1910161184f565b9051908152f35b503461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57359063ffffffff821680920361022b5761082f9073ffffffffffffffffffffffffffffffffffffffff610819611e57565b165f526401000000086020525f20918254611815565b9055005b503461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5761088b7f0000000000000000000000000000000000000000000000000000000000000000611f8b565b916108b57f00000000000000000000000000000000000000000000000000000000000000006120c0565b815191602091602084019484861067ffffffffffffffff871117610977575061092c826020928761091f99989795525f855281519889987f0f000000000000000000000000000000000000000000000000000000000000008a5260e0868b015260e08a01906115c2565b91888303908901526115c2565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b82811061096057505050500390f35b835185528695509381019392810192600101610951565b6041907f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576109d9611df1565b5f73ffffffffffffffffffffffffffffffffffffffff6005547fffffffffffffffffffffffff00000000000000000000000000000000000000008116600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b823461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff610a8f611605565b165f525f8252805f20549051908152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610ad8611605565b9073ffffffffffffffffffffffffffffffffffffffff60243592610afa611df1565b16928315610b4e57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92610b355f95600254611815565b60025585855284835280852082815401905551908152a3005b5f60249251917fec442f05000000000000000000000000000000000000000000000000000000008352820152fd5b503461022b57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57357fffffffff00000000000000000000000000000000000000000000000000000000811680910361022b576024359163ffffffff831680930361022b5761082f9173ffffffffffffffffffffffffffffffffffffffff610c09611e57565b165f52640100000009602052815f20905f526020525f20918254611815565b503461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760ff600191359273ffffffffffffffffffffffffffffffffffffffff610c7c611e57565b165f5264010000000a602052805f208460081c5f526020525f2092161b81541790555f80f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610cd9611605565b906024357fffffffff00000000000000000000000000000000000000000000000000000000811680910361022b5773ffffffffffffffffffffffffffffffffffffffff602093165f526401000000098352815f20905f528252805f20549051908152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209051468152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576020905160128152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090517f9ed1889e2180e1ec4f2d7816d43eb41f27d0bbbce4557680ecf32626c070c8648152f35b50907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9060608236011261022b57610e3c611605565b9160243567ffffffffffffffff80821161022b578382870193833603011261022b5760443590811161022b57610e75903690870161164b565b9083359264ffffffffff8460d01c1642116110a257610e92611e57565b69ffffffffffffffffffff808660801c16908115928315611096575b5050501561106e576024610ecf910193610ec88587611754565b9189611a6b565b156110465790610ee891610ee28561184f565b87611c21565b1561101e576102af610f54610f5b92600894855463ffffffff98898260a01c1691825f14610ffe57740100000000000000000000000000000000000000000188557f80000000000000000000000000000000000000000000000000000000000000001790870155611754565b36916117df565b928154908160a01c16805f14610fd75761033d9550600114610fae577fffffffffffffffffffffffff00000000000000000000000000000000000000000190555b519182916020835260208301906115c2565b507f80000000000000000000000000000000000000000000000000000000000000009055610f9c565b857f06a2af9e000000000000000000000000000000000000000000000000000000005f525ffd5b507401000000000000000000000000000000000000000017875550611754565b8483517f356a4418000000000000000000000000000000000000000000000000000000008152fd5b8685517fd9c6386f000000000000000000000000000000000000000000000000000000008152fd5b8786517f3b06dcfb000000000000000000000000000000000000000000000000000000008152fd5b161490505f8080610eae565b8786517f559895a3000000000000000000000000000000000000000000000000000000008152fd5b503461022b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611102611605565b61110a611628565b9060443592611117611e57565b9073ffffffffffffffffffffffffffffffffffffffff9081841690815f526001602052875f2092841692835f52602052875f2054937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8503611182575b6020896104918a8a8a611901565b87851061121f575081156111f05782156111c157505f908152600160209081528782209282529182528681209286900390925583916104919080611174565b6024905f8951917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b6024905f8951917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b906105ac88868b519485947ffb8f41b2000000000000000000000000000000000000000000000000000000008652850160409194939273ffffffffffffffffffffffffffffffffffffffff606083019616825260208201520152565b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576020906002549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff611306611605565b165f5264010000000a8252805f2060243560081c5f528252805f20549051908152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611361611605565b6024359073ffffffffffffffffffffffffffffffffffffffff80611383611e57565b1691821561140a57169182156113db5760208095507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f5260018252855f20855f52825280865f20558551908152a35160018152f35b6024855f8651917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b6024865f8751917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090611473611605565b9073ffffffffffffffffffffffffffffffffffffffff60243592165f5264010000000a8352805f208260081c5f528352600160ff825f2054925193161b1615158152f35b833461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760035490825f6114f584611679565b808352602094600190866001821691825f14611582575050600114611527575b505061033d9291610652910385611713565b9085925060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f925b82841061156a5750505082010181610652611515565b8054848a018601528895508794909301928101611554565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168682015292151560051b850190920192508391506106529050611515565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b9181601f8401121561022b5782359167ffffffffffffffff831161022b576020838186019501011161022b57565b90600182811c921680156116c0575b602083101461169357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611688565b6040810190811067ffffffffffffffff8211176116e657604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176116e657604052565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561022b570180359067ffffffffffffffff821161022b5760200191813603831361022b57565b67ffffffffffffffff81116116e657601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926117eb826117a5565b916117f96040519384611713565b82948184528183011161022b578281602093845f960137010152565b9190820180921161182257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b61185f610f546020830183611754565b60208151910120906040519160208301917f9ed1889e2180e1ec4f2d7816d43eb41f27d0bbbce4557680ecf32626c070c8648352356040840152606083015260608252608082019180831067ffffffffffffffff8411176116e6576042926040525190206118cb61217d565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9173ffffffffffffffffffffffffffffffffffffffff808416928315611a0e57169283156119de57825f525f60205260405f2054908282106119865750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f5260405f20818154019055604051908152a3565b6040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff919091166004820152602481019190915260448101829052606490fd5b60246040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152fd5b60246040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118225760010190565b90928360fe1c9360028511611bf7576003851015611bca576fffffffffffffffffffffffffffffffff81169480611ad95750505073ffffffffffffffffffffffffffffffffffffffff9150165f5264010000000860205260405f2090815491611ad383611a3e565b90551490565b919291600103611b6d575073ffffffffffffffffffffffffffffffffffffffff165f5264010000000960205260405f2091357fffffffff000000000000000000000000000000000000000000000000000000009181838093169160048110611b57575b50509050165f5260205260405f2090815491611ad383611a3e565b8391925060040360031b1b161681905f80611b3c565b9350905073ffffffffffffffffffffffffffffffffffffffff9150165f5264010000000a60205260405f206effffffffffffffffffffffffffffff8260081c165f5260205260405f2090600160ff835492161b8117809255141590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60046040517f5f640821000000000000000000000000000000000000000000000000000000008152fd5b90919273ffffffffffffffffffffffffffffffffffffffff91828116928315611da057604093848414918215611d95575b82611cc8575b5050611cbe57602092825f9384978351937f1626ba7e0000000000000000000000000000000000000000000000000000000098898652600486015260248501528160448501526064840137606401915afa611cb1575090565b5f51143d60201416919050565b5050505050600190565b9091505f85518580604114611d7d57604014611d3857505f805b611cf1575b5016145f80611c58565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a160608201511015611ce75760209150608081895f935282805260015afa505f515f611ce7565b807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208b01358060ff1c601b01602084015260208c8b850137166060820152611ce2565b50868901355f1a602082015280878a81830137611ce2565b604185149250611c52565b5050505050505f90565b5f80611de693602081519101845af43d15611de9573d91611dca836117a5565b92611dd86040519485611713565b83523d5f602085013e611eeb565b90565b606091611eeb565b73ffffffffffffffffffffffffffffffffffffffff806005541681611e14611e57565b1603611e1d5750565b602490611e28611e57565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815291166004820152fd5b63ffffffff60085460a01c168015611ee6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818111611822576401000000001115611ebc576007015473ffffffffffffffffffffffffffffffffffffffff1690565b60046040517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b503390565b90611f2a5750805115611f0057805190602001fd5b60046040517fd6bda275000000000000000000000000000000000000000000000000000000008152fd5b81511580611f82575b611f3b575090565b60249073ffffffffffffffffffffffffffffffffffffffff604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b15611f33565b60ff8114611fe15760ff811690601f8211611fb75760405191611fad836116ca565b8252602082015290565b60046040517fb3512b0c000000000000000000000000000000000000000000000000000000008152fd5b50604051600654815f611ff383611679565b8083529260209060019081811690811561207d575060011461201e575b5050611de692500382611713565b91509260065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f935f925b8284106120655750611de69450505081016020015f80612010565b8554878501830152948501948694509281019261204a565b905060209350611de69592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f80612010565b60ff81146120e25760ff811690601f8211611fb75760405191611fad836116ca565b50604051600754815f6120f483611679565b8083529260209060019081811690811561207d575060011461211e575050611de692500382611713565b91509260075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688935f925b8284106121655750611de69450505081016020015f80612010565b8554878501830152948501948694509281019261214a565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630148061228c575b156121e5577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176116e65760405251902090565b507f000000000000000000000000000000000000000000000000000000000000000046146121bc56fea2646970667358221220a30e8de38a667241fcb06e9fe17a338cc76e17fdce73eae91807f9d63615896e64736f6c63430008190033";
864
864
  const isSuperArgs = (xs) => xs.length > 1;
865
865
  class TokenWithBySig__factory extends ethers_1.ContractFactory {
866
866
  constructor(...args) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1inch/solidity-utils",
3
- "version": "6.5.0",
3
+ "version": "6.7.0",
4
4
  "main": "dist/src/index.js",
5
5
  "types": "dist/src/index.d.ts",
6
6
  "exports": {
@@ -107,5 +107,8 @@
107
107
  "output": "CHANGELOG.md",
108
108
  "template": "./changelog/changelog-template.hbs",
109
109
  "commitLimit": 0
110
+ },
111
+ "resolutions": {
112
+ "elliptic": "^6.5.7"
110
113
  }
111
114
  }