diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c04b930..e434c32 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,7 @@ jobs: - uses: actions/checkout@v1 - uses: actions/setup-node@v1 with: - node-version: 12 + node-version: 14 - uses: actions/cache@master id: yarn-cache with: @@ -30,7 +30,7 @@ jobs: - uses: actions/checkout@v1 - uses: actions/setup-node@v1 with: - node-version: 12 + node-version: 14 - uses: actions/cache@master id: yarn-cache with: @@ -66,7 +66,7 @@ jobs: - uses: actions/checkout@v1 - uses: actions/setup-node@v1 with: - node-version: 12 + node-version: 14 - uses: actions/cache@master id: yarn-cache with: @@ -76,27 +76,27 @@ jobs: key: ${{ runner.os }}-lerna-${{ hashFiles('**/package.json', '**/yarn.lock') }} - run: yarn test - # coverage: - # name: Coverage - # runs-on: ubuntu-latest - # needs: [install] - # steps: - # - uses: actions/checkout@v1 - # - uses: actions/setup-node@v1 - # with: - # node-version: 12 - # - uses: actions/cache@master - # id: yarn-cache - # with: - # path: | - # node_modules - # */*/node_modules - # key: ${{ runner.os }}-lerna-${{ hashFiles('**/package.json', '**/yarn.lock') }} - # - run: yarn coverage || true - # - name: Coveralls - # uses: coverallsapp/github-action@master - # with: - # github-token: ${{ secrets.GITHUB_TOKEN }} + coverage: + name: Coverage + runs-on: ubuntu-latest + needs: [install] + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: 14 + - uses: actions/cache@master + id: yarn-cache + with: + path: | + node_modules + */*/node_modules + key: ${{ runner.os }}-lerna-${{ hashFiles('**/package.json', '**/yarn.lock') }} + - run: yarn coverage + - uses: actions/upload-artifact@v2 + with: + name: test-coverage + path: coverage build: name: Is latest build commited? @@ -106,7 +106,7 @@ jobs: - uses: actions/checkout@v1 - uses: actions/setup-node@v1 with: - node-version: 12 + node-version: 14 - uses: actions/cache@master id: yarn-cache with: diff --git a/hardhat.config.ts b/hardhat.config.ts index 4ca5c32..40fcdac 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -12,6 +12,7 @@ import '@nomiclabs/hardhat-ethers' import 'hardhat-gas-reporter' import '@nomiclabs/hardhat-etherscan' +import "solidity-coverage" const chainIds = { hardhat: 31337, diff --git a/package.json b/package.json index 78e7c7e..bb853d9 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "adapter:gen": "rimraf src/gen/typechain && typechain --target ethers-v5 --out-dir src/gen/typechain \"./src/artifacts/contracts/**/*[^dbg].json\"", "adapter:build": "rimraf src/gen/adapter && tsc -p ./src/tsconfig.json", "test": "yarn hardhat test", + "coverage": "hardhat coverage", "release": "yarn publish src --access public", "release-list": "cd src && rm -f ./*niftyup-contracts-v*.tgz && yarn pack && tar --list -zf *niftyup-contracts-v*.tgz", "lint:ts": "eslint -c .eslintrc.js './**/*.ts'", @@ -42,6 +43,7 @@ "prettier-plugin-solidity": "^1.0.0-beta.18", "solhint": "^3.3.6", "solhint-plugin-prettier": "^0.0.5", + "solidity-coverage": "^0.7.17", "ts-generator": "^0.1.1", "ts-node": "^10.2.1", "typechain": "^5.1.2", diff --git a/src/artifacts/@0xsequence/erc-1155/contracts/tokens/ERC1155PackedBalance/ERC1155MintBurnPackedBalance.sol/ERC1155MintBurnPackedBalance.json b/src/artifacts/@0xsequence/erc-1155/contracts/tokens/ERC1155PackedBalance/ERC1155MintBurnPackedBalance.sol/ERC1155MintBurnPackedBalance.json index 9db9a49..bf60140 100644 --- a/src/artifacts/@0xsequence/erc-1155/contracts/tokens/ERC1155PackedBalance/ERC1155MintBurnPackedBalance.sol/ERC1155MintBurnPackedBalance.json +++ b/src/artifacts/@0xsequence/erc-1155/contracts/tokens/ERC1155PackedBalance/ERC1155MintBurnPackedBalance.sol/ERC1155MintBurnPackedBalance.json @@ -3,6 +3,17 @@ "contractName": "ERC1155MintBurnPackedBalance", "sourceName": "@0xsequence/erc-1155/contracts/tokens/ERC1155PackedBalance/ERC1155MintBurnPackedBalance.sol", "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_idsBitsSize", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, { "anonymous": false, "inputs": [ @@ -102,6 +113,19 @@ "name": "TransferSingle", "type": "event" }, + { + "inputs": [], + "name": "IDS_BITS_SIZE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -171,7 +195,7 @@ "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { @@ -195,7 +219,7 @@ "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { @@ -326,8 +350,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50611bb8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a25760003560e01c8063a22cb46511610076578063e985e9c51161005b578063e985e9c514610503578063eaec5f811461053e578063f242432a14610561576100a2565b8063a22cb46514610492578063db90e83c146104cd576100a2565b8062fdd58e146100a757806301ffc9a7146100f25780632eb2c2d6146101455780634e1273f41461031b575b600080fd5b6100e0600480360360408110156100bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610639565b60408051918252519081900360200190f35b6101316004803603602081101561010857600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661068e565b604080519115158252519081900360200190f35b610319600480360360a081101561015b57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169181019060608101604082013564010000000081111561019c57600080fd5b8201836020820111156101ae57600080fd5b803590602001918460208302840111640100000000831117156101d057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561022057600080fd5b82018360208201111561023257600080fd5b8035906020019184602083028401116401000000008311171561025457600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156102a457600080fd5b8201836020820111156102b657600080fd5b803590602001918460018302840111640100000000831117156102d857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106f3945050505050565b005b6104426004803603604081101561033157600080fd5b81019060208101813564010000000081111561034c57600080fd5b82018360208201111561035e57600080fd5b8035906020019184602083028401116401000000008311171561038057600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156103d057600080fd5b8201836020820111156103e257600080fd5b8035906020019184602083028401116401000000008311171561040457600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506107fe945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561047e578181015183820152602001610466565b505050509050019250505060405180910390f35b610319600480360360408110156104a857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610a7d565b6104ea600480360360208110156104e357600080fd5b5035610b16565b6040805192835260208301919091528051918290030190f35b6101316004803603604081101561051957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610b23565b6100e06004803603604081101561055457600080fd5b5080359060200135610b5e565b610319600480360360a081101561057757600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a0810160808201356401000000008111156105c457600080fd5b8201836020820111156105d657600080fd5b803590602001918460018302840111640100000000831117156105f857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b71945050505050565b600080600061064784610b16565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506106859082610b5e565b95945050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156106e2575060016106ee565b6106eb82610c75565b90505b919050565b3373ffffffffffffffffffffffffffffffffffffffff8616148061071c575061071c8533610b23565b610771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611a1b603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166107dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001806118e6603d913960400191505060405180910390fd5b6107e985858585610cbf565b6107f7858585855a866110cc565b5050505050565b8151815160609190811461085d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806118ad6039913960400191505060405180910390fd5b60008061087d8560008151811061087057fe5b6020026020010151610b16565b9150915060008060008860008151811061089357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561090757600080fd5b50604051908082528060200260200182016040528015610931578160200160208202803683370190505b50905061093e8385610b5e565b8160008151811061094b57fe5b602090810291909101015260015b86811015610a705761097089828151811061087057fe5b909650945082861415806109d9575089818151811061098b57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106109b857fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610a47576000808b83815181106109ed57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b610a518486610b5e565b828281518110610a5d57fe5b6020908102919091010152600101610959565b5098975050505050505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610b9a5750610b9a8533610b23565b610bef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806119566037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611ad46038913960400191505060405180910390fd5b610c6785858585611343565b6107f7858585855a866113e7565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b815181518114610d1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604281526020018061198d6042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610d565750600081115b15610f2857600080610d6e8560008151811061087057fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091610dc69190849088908590610db757fe5b602002602001015160016115d8565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091610e1c9190859089908590610e0d57fe5b602002602001015160006115d8565b90508360015b86811015610ed657610e3989828151811061087057fe5b9096509450818614610ea85773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b610eb984868a8481518110610db757fe5b9350610ecc83868a8481518110610e0d57fe5b9250600101610e22565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550610fc5565b60005b81811015610fc357828181518110610f3f57fe5b6020026020010151610f6487868481518110610f5757fe5b6020026020010151610639565b1015610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180611a576036913960400191505060405180910390fd5b600101610f2b565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611071578181015183820152602001611059565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156110b0578181015183820152602001611098565b5050505090500194505050505060405180910390a45050505050565b6110eb8573ffffffffffffffffffffffffffffffffffffffff166117eb565b1561133b5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156111a357818101518382015260200161118b565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156111e25781810151838201526020016111ca565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561121e578181015183820152602001611206565b50505050905090810190601f16801561124b5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561127057600080fd5b5087f1158015611284573d6000803e3d6000fd5b50505050506040513d602081101561129b57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014611339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c8152602001806119cf604c913960600191505060405180910390fd5b505b505050505050565b6113508483836001611825565b61135d8383836000611825565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6114068573ffffffffffffffffffffffffffffffffffffffff166117eb565b1561133b5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156114bf5781810151838201526020016114a7565b50505050905090810190601f1680156114ec5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561150f57600080fd5b5087f1158015611523573d6000803e3d6000fd5b50505050506040513d602081101561153a57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014611339576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526047815260200180611a8d6047913960600191505060405180910390fd5b60006020840263ffffffff828460018111156115f057fe5b14156116be5784821b8701925086831015611656576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611b516032913960400191505060405180910390fd5b64010000000087831c82168601106116b9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611b516032913960400191505060405180910390fd5b6117e1565b60018460018111156116cc57fe5b14156117905784821b8703925086831115611732576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806119236033913960400191505060405180910390fd5b84818389901c1610156116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806119236033913960400191505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526045815260200180611b0c6045913960600191505060405180910390fd5b5050949350505050565b6000813f801580159061181e57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b60008061183185610b16565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150611871908286866115d8565b73ffffffffffffffffffffffffffffffffffffffff90961660009081526020818152604080832094835293905291909120949094555050505056fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a264697066735822122044c711c2928d9503ff9b9763bbb11373582d9052081b1db9d1cb24dd0b72474964736f6c63430007040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a25760003560e01c8063a22cb46511610076578063e985e9c51161005b578063e985e9c514610503578063eaec5f811461053e578063f242432a14610561576100a2565b8063a22cb46514610492578063db90e83c146104cd576100a2565b8062fdd58e146100a757806301ffc9a7146100f25780632eb2c2d6146101455780634e1273f41461031b575b600080fd5b6100e0600480360360408110156100bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610639565b60408051918252519081900360200190f35b6101316004803603602081101561010857600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661068e565b604080519115158252519081900360200190f35b610319600480360360a081101561015b57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169181019060608101604082013564010000000081111561019c57600080fd5b8201836020820111156101ae57600080fd5b803590602001918460208302840111640100000000831117156101d057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561022057600080fd5b82018360208201111561023257600080fd5b8035906020019184602083028401116401000000008311171561025457600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156102a457600080fd5b8201836020820111156102b657600080fd5b803590602001918460018302840111640100000000831117156102d857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106f3945050505050565b005b6104426004803603604081101561033157600080fd5b81019060208101813564010000000081111561034c57600080fd5b82018360208201111561035e57600080fd5b8035906020019184602083028401116401000000008311171561038057600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156103d057600080fd5b8201836020820111156103e257600080fd5b8035906020019184602083028401116401000000008311171561040457600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506107fe945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561047e578181015183820152602001610466565b505050509050019250505060405180910390f35b610319600480360360408110156104a857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610a7d565b6104ea600480360360208110156104e357600080fd5b5035610b16565b6040805192835260208301919091528051918290030190f35b6101316004803603604081101561051957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610b23565b6100e06004803603604081101561055457600080fd5b5080359060200135610b5e565b610319600480360360a081101561057757600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a0810160808201356401000000008111156105c457600080fd5b8201836020820111156105d657600080fd5b803590602001918460018302840111640100000000831117156105f857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b71945050505050565b600080600061064784610b16565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506106859082610b5e565b95945050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156106e2575060016106ee565b6106eb82610c75565b90505b919050565b3373ffffffffffffffffffffffffffffffffffffffff8616148061071c575061071c8533610b23565b610771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611a1b603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166107dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001806118e6603d913960400191505060405180910390fd5b6107e985858585610cbf565b6107f7858585855a866110cc565b5050505050565b8151815160609190811461085d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806118ad6039913960400191505060405180910390fd5b60008061087d8560008151811061087057fe5b6020026020010151610b16565b9150915060008060008860008151811061089357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561090757600080fd5b50604051908082528060200260200182016040528015610931578160200160208202803683370190505b50905061093e8385610b5e565b8160008151811061094b57fe5b602090810291909101015260015b86811015610a705761097089828151811061087057fe5b909650945082861415806109d9575089818151811061098b57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106109b857fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610a47576000808b83815181106109ed57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b610a518486610b5e565b828281518110610a5d57fe5b6020908102919091010152600101610959565b5098975050505050505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610b9a5750610b9a8533610b23565b610bef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806119566037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611ad46038913960400191505060405180910390fd5b610c6785858585611343565b6107f7858585855a866113e7565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b815181518114610d1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604281526020018061198d6042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610d565750600081115b15610f2857600080610d6e8560008151811061087057fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091610dc69190849088908590610db757fe5b602002602001015160016115d8565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091610e1c9190859089908590610e0d57fe5b602002602001015160006115d8565b90508360015b86811015610ed657610e3989828151811061087057fe5b9096509450818614610ea85773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b610eb984868a8481518110610db757fe5b9350610ecc83868a8481518110610e0d57fe5b9250600101610e22565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550610fc5565b60005b81811015610fc357828181518110610f3f57fe5b6020026020010151610f6487868481518110610f5757fe5b6020026020010151610639565b1015610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180611a576036913960400191505060405180910390fd5b600101610f2b565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611071578181015183820152602001611059565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156110b0578181015183820152602001611098565b5050505090500194505050505060405180910390a45050505050565b6110eb8573ffffffffffffffffffffffffffffffffffffffff166117eb565b1561133b5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156111a357818101518382015260200161118b565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156111e25781810151838201526020016111ca565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561121e578181015183820152602001611206565b50505050905090810190601f16801561124b5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561127057600080fd5b5087f1158015611284573d6000803e3d6000fd5b50505050506040513d602081101561129b57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014611339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c8152602001806119cf604c913960600191505060405180910390fd5b505b505050505050565b6113508483836001611825565b61135d8383836000611825565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6114068573ffffffffffffffffffffffffffffffffffffffff166117eb565b1561133b5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156114bf5781810151838201526020016114a7565b50505050905090810190601f1680156114ec5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561150f57600080fd5b5087f1158015611523573d6000803e3d6000fd5b50505050506040513d602081101561153a57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014611339576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526047815260200180611a8d6047913960600191505060405180910390fd5b60006020840263ffffffff828460018111156115f057fe5b14156116be5784821b8701925086831015611656576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611b516032913960400191505060405180910390fd5b64010000000087831c82168601106116b9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611b516032913960400191505060405180910390fd5b6117e1565b60018460018111156116cc57fe5b14156117905784821b8703925086831115611732576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806119236033913960400191505060405180910390fd5b84818389901c1610156116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806119236033913960400191505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526045815260200180611b0c6045913960600191505060405180910390fd5b5050949350505050565b6000813f801580159061181e57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b60008061183185610b16565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150611871908286866115d8565b73ffffffffffffffffffffffffffffffffffffffff90961660009081526020818152604080832094835293905291909120949094555050505056fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a264697066735822122044c711c2928d9503ff9b9763bbb11373582d9052081b1db9d1cb24dd0b72474964736f6c63430007040033", + "bytecode": "0x60c060405234801561001057600080fd5b50604051611e00380380611e008339818101604052602081101561003357600080fd5b505180610100811080156100505750806101008161004d57fe5b06155b61008b5760405162461bcd60e51b8152600401808060200182810382526037815260200180611dc96037913960400191505060405180910390fd5b6080819052806101008161009b57fe5b0460a052505060805160a051611cf16100d860003980610b3e5280610b6a525080610b9b5280610bfc52806116b552806117735250611cf16000f3fe608060405234801561001057600080fd5b50600436106100bd5760003560e01c8063db90e83c11610076578063e985e9c51161005b578063e985e9c514610526578063eaec5f8114610561578063f242432a14610584576100bd565b8063db90e83c146104e8578063ddcc74ab1461051e576100bd565b80632eb2c2d6116100a75780632eb2c2d6146101605780634e1273f414610336578063a22cb465146104ad576100bd565b8062fdd58e146100c257806301ffc9a71461010d575b600080fd5b6100fb600480360360408110156100d857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561065c565b60408051918252519081900360200190f35b61014c6004803603602081101561012357600080fd5b50357fffffffff00000000000000000000000000000000000000000000000000000000166106b1565b604080519115158252519081900360200190f35b610334600480360360a081101561017657600080fd5b73ffffffffffffffffffffffffffffffffffffffff82358116926020810135909116918101906060810160408201356401000000008111156101b757600080fd5b8201836020820111156101c957600080fd5b803590602001918460208302840111640100000000831117156101eb57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561023b57600080fd5b82018360208201111561024d57600080fd5b8035906020019184602083028401116401000000008311171561026f57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156102bf57600080fd5b8201836020820111156102d157600080fd5b803590602001918460018302840111640100000000831117156102f357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610716945050505050565b005b61045d6004803603604081101561034c57600080fd5b81019060208101813564010000000081111561036757600080fd5b82018360208201111561037957600080fd5b8035906020019184602083028401116401000000008311171561039b57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156103eb57600080fd5b8201836020820111156103fd57600080fd5b8035906020019184602083028401116401000000008311171561041f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610821945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610499578181015183820152602001610481565b505050509050019250505060405180910390f35b610334600480360360408110156104c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610aa0565b610505600480360360208110156104fe57600080fd5b5035610b39565b6040805192835260208301919091528051918290030190f35b6100fb610b99565b61014c6004803603604081101561053c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610bbd565b6100fb6004803603604081101561057757600080fd5b5080359060200135610bf8565b610334600480360360a081101561059a57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a0810160808201356401000000008111156105e757600080fd5b8201836020820111156105f957600080fd5b8035906020019184600183028401116401000000008311171561061b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c4a945050505050565b600080600061066a84610b39565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506106a89082610bf8565b95945050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000141561070557506001610711565b61070e82610d4e565b90505b919050565b3373ffffffffffffffffffffffffffffffffffffffff8616148061073f575061073f8533610bbd565b610794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611b54603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610800576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180611a1f603d913960400191505060405180910390fd5b61080c85858585610d98565b61081a858585855a866111a5565b5050505050565b81518151606091908114610880576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806119e66039913960400191505060405180910390fd5b6000806108a08560008151811061089357fe5b6020026020010151610b39565b915091506000806000886000815181106108b657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561092a57600080fd5b50604051908082528060200260200182016040528015610954578160200160208202803683370190505b5090506109618385610bf8565b8160008151811061096e57fe5b602090810291909101015260015b86811015610a935761099389828151811061089357fe5b909650945082861415806109fc57508981815181106109ae57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106109db57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610a6a576000808b8381518110610a1057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b610a748486610bf8565b828281518110610a8057fe5b602090810291909101015260010161097c565b5098975050505050505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6000807f00000000000000000000000000000000000000000000000000000000000000008381610b6557fe5b0491507f00000000000000000000000000000000000000000000000000000000000000008381610b9157fe5b069050915091565b7f000000000000000000000000000000000000000000000000000000000000000081565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b60017f000000000000000000000000000000000000000000000000000000000000000090811b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0191029190911c1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610c735750610c738533610bbd565b610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180611a8f6037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611c0d6038913960400191505060405180910390fd5b610d408585858561141c565b61081a858585855a866114c0565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b815181518114610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180611ac66042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610e2f5750600081115b1561100157600080610e478560008151811061089357fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091610e9f9190849088908590610e9057fe5b602002602001015160016116b1565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091610ef59190859089908590610ee657fe5b602002602001015160006116b1565b90508360015b86811015610faf57610f1289828151811061089357fe5b9096509450818614610f815773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b610f9284868a8481518110610e9057fe5b9350610fa583868a8481518110610ee657fe5b9250600101610efb565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a1681528082528381209581529490529220919091555061109e565b60005b8181101561109c5782818151811061101857fe5b602002602001015161103d8786848151811061103057fe5b602002602001015161065c565b1015611094576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180611b906036913960400191505060405180910390fd5b600101611004565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561114a578181015183820152602001611132565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611189578181015183820152602001611171565b5050505090500194505050505060405180910390a45050505050565b6111c48573ffffffffffffffffffffffffffffffffffffffff16611924565b156114145760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561127c578181015183820152602001611264565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156112bb5781810151838201526020016112a3565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156112f75781810151838201526020016112df565b50505050905090810190601f1680156113245780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561134957600080fd5b5087f115801561135d573d6000803e3d6000fd5b50505050506040513d602081101561137457600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014611412576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180611b08604c913960600191505060405180910390fd5b505b505050505050565b611429848383600161195e565b611436838383600061195e565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6114df8573ffffffffffffffffffffffffffffffffffffffff16611924565b156114145760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611598578181015183820152602001611580565b50505050905090810190601f1680156115c55780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b1580156115e857600080fd5b5087f11580156115fc573d6000803e3d6000fd5b50505050506040513d602081101561161357600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014611412576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526047815260200180611bc66047913960600191505060405180910390fd5b60007f0000000000000000000000000000000000000000000000000000000000000000848102906001901b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018284600181111561170b57fe5b14156117f75784821b8701925086831015611771576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611c8a6032913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060020a87831c82168601106117f2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611c8a6032913960400191505060405180910390fd5b61191a565b600184600181111561180557fe5b14156118c95784821b870392508683111561186b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180611a5c6033913960400191505060405180910390fd5b84818389901c1610156117f2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180611a5c6033913960400191505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526045815260200180611c456045913960600191505060405180910390fd5b5050949350505050565b6000813f801580159061195757507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b60008061196a85610b39565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832085845290915290205491935091506119aa908286866116b1565b73ffffffffffffffffffffffffffffffffffffffff90961660009081526020818152604080832094835293905291909120949094555050505056fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a264697066735822122052a0acf7933f808fa4f1baaec1ae006834155b5daeb19f1633134376f3890c6b64736f6c63430007040033455243313135355061636b656442616c616e636523636f6e7374727563746f723a20496e76616c6964204944535f424954535f53495a45", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100bd5760003560e01c8063db90e83c11610076578063e985e9c51161005b578063e985e9c514610526578063eaec5f8114610561578063f242432a14610584576100bd565b8063db90e83c146104e8578063ddcc74ab1461051e576100bd565b80632eb2c2d6116100a75780632eb2c2d6146101605780634e1273f414610336578063a22cb465146104ad576100bd565b8062fdd58e146100c257806301ffc9a71461010d575b600080fd5b6100fb600480360360408110156100d857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561065c565b60408051918252519081900360200190f35b61014c6004803603602081101561012357600080fd5b50357fffffffff00000000000000000000000000000000000000000000000000000000166106b1565b604080519115158252519081900360200190f35b610334600480360360a081101561017657600080fd5b73ffffffffffffffffffffffffffffffffffffffff82358116926020810135909116918101906060810160408201356401000000008111156101b757600080fd5b8201836020820111156101c957600080fd5b803590602001918460208302840111640100000000831117156101eb57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561023b57600080fd5b82018360208201111561024d57600080fd5b8035906020019184602083028401116401000000008311171561026f57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156102bf57600080fd5b8201836020820111156102d157600080fd5b803590602001918460018302840111640100000000831117156102f357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610716945050505050565b005b61045d6004803603604081101561034c57600080fd5b81019060208101813564010000000081111561036757600080fd5b82018360208201111561037957600080fd5b8035906020019184602083028401116401000000008311171561039b57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156103eb57600080fd5b8201836020820111156103fd57600080fd5b8035906020019184602083028401116401000000008311171561041f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610821945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610499578181015183820152602001610481565b505050509050019250505060405180910390f35b610334600480360360408110156104c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610aa0565b610505600480360360208110156104fe57600080fd5b5035610b39565b6040805192835260208301919091528051918290030190f35b6100fb610b99565b61014c6004803603604081101561053c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610bbd565b6100fb6004803603604081101561057757600080fd5b5080359060200135610bf8565b610334600480360360a081101561059a57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a0810160808201356401000000008111156105e757600080fd5b8201836020820111156105f957600080fd5b8035906020019184600183028401116401000000008311171561061b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c4a945050505050565b600080600061066a84610b39565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506106a89082610bf8565b95945050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000141561070557506001610711565b61070e82610d4e565b90505b919050565b3373ffffffffffffffffffffffffffffffffffffffff8616148061073f575061073f8533610bbd565b610794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611b54603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610800576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180611a1f603d913960400191505060405180910390fd5b61080c85858585610d98565b61081a858585855a866111a5565b5050505050565b81518151606091908114610880576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806119e66039913960400191505060405180910390fd5b6000806108a08560008151811061089357fe5b6020026020010151610b39565b915091506000806000886000815181106108b657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561092a57600080fd5b50604051908082528060200260200182016040528015610954578160200160208202803683370190505b5090506109618385610bf8565b8160008151811061096e57fe5b602090810291909101015260015b86811015610a935761099389828151811061089357fe5b909650945082861415806109fc57508981815181106109ae57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106109db57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610a6a576000808b8381518110610a1057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b610a748486610bf8565b828281518110610a8057fe5b602090810291909101015260010161097c565b5098975050505050505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6000807f00000000000000000000000000000000000000000000000000000000000000008381610b6557fe5b0491507f00000000000000000000000000000000000000000000000000000000000000008381610b9157fe5b069050915091565b7f000000000000000000000000000000000000000000000000000000000000000081565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b60017f000000000000000000000000000000000000000000000000000000000000000090811b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0191029190911c1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610c735750610c738533610bbd565b610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180611a8f6037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611c0d6038913960400191505060405180910390fd5b610d408585858561141c565b61081a858585855a866114c0565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b815181518114610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180611ac66042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610e2f5750600081115b1561100157600080610e478560008151811061089357fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091610e9f9190849088908590610e9057fe5b602002602001015160016116b1565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091610ef59190859089908590610ee657fe5b602002602001015160006116b1565b90508360015b86811015610faf57610f1289828151811061089357fe5b9096509450818614610f815773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b610f9284868a8481518110610e9057fe5b9350610fa583868a8481518110610ee657fe5b9250600101610efb565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a1681528082528381209581529490529220919091555061109e565b60005b8181101561109c5782818151811061101857fe5b602002602001015161103d8786848151811061103057fe5b602002602001015161065c565b1015611094576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180611b906036913960400191505060405180910390fd5b600101611004565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561114a578181015183820152602001611132565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611189578181015183820152602001611171565b5050505090500194505050505060405180910390a45050505050565b6111c48573ffffffffffffffffffffffffffffffffffffffff16611924565b156114145760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561127c578181015183820152602001611264565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156112bb5781810151838201526020016112a3565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156112f75781810151838201526020016112df565b50505050905090810190601f1680156113245780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561134957600080fd5b5087f115801561135d573d6000803e3d6000fd5b50505050506040513d602081101561137457600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014611412576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180611b08604c913960600191505060405180910390fd5b505b505050505050565b611429848383600161195e565b611436838383600061195e565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6114df8573ffffffffffffffffffffffffffffffffffffffff16611924565b156114145760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611598578181015183820152602001611580565b50505050905090810190601f1680156115c55780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b1580156115e857600080fd5b5087f11580156115fc573d6000803e3d6000fd5b50505050506040513d602081101561161357600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014611412576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526047815260200180611bc66047913960600191505060405180910390fd5b60007f0000000000000000000000000000000000000000000000000000000000000000848102906001901b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018284600181111561170b57fe5b14156117f75784821b8701925086831015611771576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611c8a6032913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060020a87831c82168601106117f2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611c8a6032913960400191505060405180910390fd5b61191a565b600184600181111561180557fe5b14156118c95784821b870392508683111561186b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180611a5c6033913960400191505060405180910390fd5b84818389901c1610156117f2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180611a5c6033913960400191505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526045815260200180611c456045913960600191505060405180910390fd5b5050949350505050565b6000813f801580159061195757507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b60008061196a85610b39565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832085845290915290205491935091506119aa908286866116b1565b73ffffffffffffffffffffffffffffffffffffffff90961660009081526020818152604080832094835293905291909120949094555050505056fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a264697066735822122052a0acf7933f808fa4f1baaec1ae006834155b5daeb19f1633134376f3890c6b64736f6c63430007040033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/src/artifacts/@0xsequence/erc-1155/contracts/tokens/ERC1155PackedBalance/ERC1155PackedBalance.sol/ERC1155PackedBalance.json b/src/artifacts/@0xsequence/erc-1155/contracts/tokens/ERC1155PackedBalance/ERC1155PackedBalance.sol/ERC1155PackedBalance.json index db9479a..97ba2fc 100644 --- a/src/artifacts/@0xsequence/erc-1155/contracts/tokens/ERC1155PackedBalance/ERC1155PackedBalance.sol/ERC1155PackedBalance.json +++ b/src/artifacts/@0xsequence/erc-1155/contracts/tokens/ERC1155PackedBalance/ERC1155PackedBalance.sol/ERC1155PackedBalance.json @@ -3,6 +3,17 @@ "contractName": "ERC1155PackedBalance", "sourceName": "@0xsequence/erc-1155/contracts/tokens/ERC1155PackedBalance/ERC1155PackedBalance.sol", "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_idsBitsSize", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, { "anonymous": false, "inputs": [ @@ -102,6 +113,19 @@ "name": "TransferSingle", "type": "event" }, + { + "inputs": [], + "name": "IDS_BITS_SIZE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -171,7 +195,7 @@ "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { @@ -195,7 +219,7 @@ "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { @@ -326,8 +350,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50611bb8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a25760003560e01c8063a22cb46511610076578063e985e9c51161005b578063e985e9c514610503578063eaec5f811461053e578063f242432a14610561576100a2565b8063a22cb46514610492578063db90e83c146104cd576100a2565b8062fdd58e146100a757806301ffc9a7146100f25780632eb2c2d6146101455780634e1273f41461031b575b600080fd5b6100e0600480360360408110156100bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610639565b60408051918252519081900360200190f35b6101316004803603602081101561010857600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661068e565b604080519115158252519081900360200190f35b610319600480360360a081101561015b57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169181019060608101604082013564010000000081111561019c57600080fd5b8201836020820111156101ae57600080fd5b803590602001918460208302840111640100000000831117156101d057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561022057600080fd5b82018360208201111561023257600080fd5b8035906020019184602083028401116401000000008311171561025457600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156102a457600080fd5b8201836020820111156102b657600080fd5b803590602001918460018302840111640100000000831117156102d857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106f3945050505050565b005b6104426004803603604081101561033157600080fd5b81019060208101813564010000000081111561034c57600080fd5b82018360208201111561035e57600080fd5b8035906020019184602083028401116401000000008311171561038057600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156103d057600080fd5b8201836020820111156103e257600080fd5b8035906020019184602083028401116401000000008311171561040457600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506107fe945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561047e578181015183820152602001610466565b505050509050019250505060405180910390f35b610319600480360360408110156104a857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610a7d565b6104ea600480360360208110156104e357600080fd5b5035610b16565b6040805192835260208301919091528051918290030190f35b6101316004803603604081101561051957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610b23565b6100e06004803603604081101561055457600080fd5b5080359060200135610b5e565b610319600480360360a081101561057757600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a0810160808201356401000000008111156105c457600080fd5b8201836020820111156105d657600080fd5b803590602001918460018302840111640100000000831117156105f857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b71945050505050565b600080600061064784610b16565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506106859082610b5e565b95945050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156106e2575060016106ee565b6106eb82610c75565b90505b919050565b3373ffffffffffffffffffffffffffffffffffffffff8616148061071c575061071c8533610b23565b610771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611a1b603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166107dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001806118e6603d913960400191505060405180910390fd5b6107e985858585610cbf565b6107f7858585855a866110cc565b5050505050565b8151815160609190811461085d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806118ad6039913960400191505060405180910390fd5b60008061087d8560008151811061087057fe5b6020026020010151610b16565b9150915060008060008860008151811061089357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561090757600080fd5b50604051908082528060200260200182016040528015610931578160200160208202803683370190505b50905061093e8385610b5e565b8160008151811061094b57fe5b602090810291909101015260015b86811015610a705761097089828151811061087057fe5b909650945082861415806109d9575089818151811061098b57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106109b857fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610a47576000808b83815181106109ed57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b610a518486610b5e565b828281518110610a5d57fe5b6020908102919091010152600101610959565b5098975050505050505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610b9a5750610b9a8533610b23565b610bef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806119566037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611ad46038913960400191505060405180910390fd5b610c6785858585611343565b6107f7858585855a866113e7565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b815181518114610d1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604281526020018061198d6042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610d565750600081115b15610f2857600080610d6e8560008151811061087057fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091610dc69190849088908590610db757fe5b602002602001015160016115d8565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091610e1c9190859089908590610e0d57fe5b602002602001015160006115d8565b90508360015b86811015610ed657610e3989828151811061087057fe5b9096509450818614610ea85773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b610eb984868a8481518110610db757fe5b9350610ecc83868a8481518110610e0d57fe5b9250600101610e22565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550610fc5565b60005b81811015610fc357828181518110610f3f57fe5b6020026020010151610f6487868481518110610f5757fe5b6020026020010151610639565b1015610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180611a576036913960400191505060405180910390fd5b600101610f2b565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611071578181015183820152602001611059565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156110b0578181015183820152602001611098565b5050505090500194505050505060405180910390a45050505050565b6110eb8573ffffffffffffffffffffffffffffffffffffffff166117eb565b1561133b5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156111a357818101518382015260200161118b565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156111e25781810151838201526020016111ca565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561121e578181015183820152602001611206565b50505050905090810190601f16801561124b5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561127057600080fd5b5087f1158015611284573d6000803e3d6000fd5b50505050506040513d602081101561129b57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014611339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c8152602001806119cf604c913960600191505060405180910390fd5b505b505050505050565b6113508483836001611825565b61135d8383836000611825565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6114068573ffffffffffffffffffffffffffffffffffffffff166117eb565b1561133b5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156114bf5781810151838201526020016114a7565b50505050905090810190601f1680156114ec5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561150f57600080fd5b5087f1158015611523573d6000803e3d6000fd5b50505050506040513d602081101561153a57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014611339576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526047815260200180611a8d6047913960600191505060405180910390fd5b60006020840263ffffffff828460018111156115f057fe5b14156116be5784821b8701925086831015611656576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611b516032913960400191505060405180910390fd5b64010000000087831c82168601106116b9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611b516032913960400191505060405180910390fd5b6117e1565b60018460018111156116cc57fe5b14156117905784821b8703925086831115611732576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806119236033913960400191505060405180910390fd5b84818389901c1610156116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806119236033913960400191505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526045815260200180611b0c6045913960600191505060405180910390fd5b5050949350505050565b6000813f801580159061181e57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b60008061183185610b16565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150611871908286866115d8565b73ffffffffffffffffffffffffffffffffffffffff90961660009081526020818152604080832094835293905291909120949094555050505056fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a2646970667358221220ba41b0f471d39422702b0821261d339c4b63d934eb00662fec1aca339ce8e66764736f6c63430007040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a25760003560e01c8063a22cb46511610076578063e985e9c51161005b578063e985e9c514610503578063eaec5f811461053e578063f242432a14610561576100a2565b8063a22cb46514610492578063db90e83c146104cd576100a2565b8062fdd58e146100a757806301ffc9a7146100f25780632eb2c2d6146101455780634e1273f41461031b575b600080fd5b6100e0600480360360408110156100bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610639565b60408051918252519081900360200190f35b6101316004803603602081101561010857600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661068e565b604080519115158252519081900360200190f35b610319600480360360a081101561015b57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169181019060608101604082013564010000000081111561019c57600080fd5b8201836020820111156101ae57600080fd5b803590602001918460208302840111640100000000831117156101d057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561022057600080fd5b82018360208201111561023257600080fd5b8035906020019184602083028401116401000000008311171561025457600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156102a457600080fd5b8201836020820111156102b657600080fd5b803590602001918460018302840111640100000000831117156102d857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106f3945050505050565b005b6104426004803603604081101561033157600080fd5b81019060208101813564010000000081111561034c57600080fd5b82018360208201111561035e57600080fd5b8035906020019184602083028401116401000000008311171561038057600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156103d057600080fd5b8201836020820111156103e257600080fd5b8035906020019184602083028401116401000000008311171561040457600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506107fe945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561047e578181015183820152602001610466565b505050509050019250505060405180910390f35b610319600480360360408110156104a857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610a7d565b6104ea600480360360208110156104e357600080fd5b5035610b16565b6040805192835260208301919091528051918290030190f35b6101316004803603604081101561051957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610b23565b6100e06004803603604081101561055457600080fd5b5080359060200135610b5e565b610319600480360360a081101561057757600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a0810160808201356401000000008111156105c457600080fd5b8201836020820111156105d657600080fd5b803590602001918460018302840111640100000000831117156105f857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b71945050505050565b600080600061064784610b16565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506106859082610b5e565b95945050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156106e2575060016106ee565b6106eb82610c75565b90505b919050565b3373ffffffffffffffffffffffffffffffffffffffff8616148061071c575061071c8533610b23565b610771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611a1b603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166107dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001806118e6603d913960400191505060405180910390fd5b6107e985858585610cbf565b6107f7858585855a866110cc565b5050505050565b8151815160609190811461085d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806118ad6039913960400191505060405180910390fd5b60008061087d8560008151811061087057fe5b6020026020010151610b16565b9150915060008060008860008151811061089357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561090757600080fd5b50604051908082528060200260200182016040528015610931578160200160208202803683370190505b50905061093e8385610b5e565b8160008151811061094b57fe5b602090810291909101015260015b86811015610a705761097089828151811061087057fe5b909650945082861415806109d9575089818151811061098b57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106109b857fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610a47576000808b83815181106109ed57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b610a518486610b5e565b828281518110610a5d57fe5b6020908102919091010152600101610959565b5098975050505050505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610b9a5750610b9a8533610b23565b610bef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806119566037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611ad46038913960400191505060405180910390fd5b610c6785858585611343565b6107f7858585855a866113e7565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b815181518114610d1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604281526020018061198d6042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610d565750600081115b15610f2857600080610d6e8560008151811061087057fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091610dc69190849088908590610db757fe5b602002602001015160016115d8565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091610e1c9190859089908590610e0d57fe5b602002602001015160006115d8565b90508360015b86811015610ed657610e3989828151811061087057fe5b9096509450818614610ea85773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b610eb984868a8481518110610db757fe5b9350610ecc83868a8481518110610e0d57fe5b9250600101610e22565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550610fc5565b60005b81811015610fc357828181518110610f3f57fe5b6020026020010151610f6487868481518110610f5757fe5b6020026020010151610639565b1015610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180611a576036913960400191505060405180910390fd5b600101610f2b565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611071578181015183820152602001611059565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156110b0578181015183820152602001611098565b5050505090500194505050505060405180910390a45050505050565b6110eb8573ffffffffffffffffffffffffffffffffffffffff166117eb565b1561133b5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156111a357818101518382015260200161118b565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156111e25781810151838201526020016111ca565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561121e578181015183820152602001611206565b50505050905090810190601f16801561124b5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561127057600080fd5b5087f1158015611284573d6000803e3d6000fd5b50505050506040513d602081101561129b57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014611339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c8152602001806119cf604c913960600191505060405180910390fd5b505b505050505050565b6113508483836001611825565b61135d8383836000611825565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6114068573ffffffffffffffffffffffffffffffffffffffff166117eb565b1561133b5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156114bf5781810151838201526020016114a7565b50505050905090810190601f1680156114ec5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561150f57600080fd5b5087f1158015611523573d6000803e3d6000fd5b50505050506040513d602081101561153a57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014611339576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526047815260200180611a8d6047913960600191505060405180910390fd5b60006020840263ffffffff828460018111156115f057fe5b14156116be5784821b8701925086831015611656576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611b516032913960400191505060405180910390fd5b64010000000087831c82168601106116b9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611b516032913960400191505060405180910390fd5b6117e1565b60018460018111156116cc57fe5b14156117905784821b8703925086831115611732576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806119236033913960400191505060405180910390fd5b84818389901c1610156116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806119236033913960400191505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526045815260200180611b0c6045913960600191505060405180910390fd5b5050949350505050565b6000813f801580159061181e57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b60008061183185610b16565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150611871908286866115d8565b73ffffffffffffffffffffffffffffffffffffffff90961660009081526020818152604080832094835293905291909120949094555050505056fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a2646970667358221220ba41b0f471d39422702b0821261d339c4b63d934eb00662fec1aca339ce8e66764736f6c63430007040033", + "bytecode": "0x60c060405234801561001057600080fd5b50604051611dfe380380611dfe8339818101604052602081101561003357600080fd5b50516101008110801561004f5750806101008161004c57fe5b06155b61008a5760405162461bcd60e51b8152600401808060200182810382526037815260200180611dc76037913960400191505060405180910390fd5b6080819052806101008161009a57fe5b0460a0525060805160a051611cf16100d660003980610b3e5280610b6a525080610b9b5280610bfc52806116b552806117735250611cf16000f3fe608060405234801561001057600080fd5b50600436106100bd5760003560e01c8063db90e83c11610076578063e985e9c51161005b578063e985e9c514610526578063eaec5f8114610561578063f242432a14610584576100bd565b8063db90e83c146104e8578063ddcc74ab1461051e576100bd565b80632eb2c2d6116100a75780632eb2c2d6146101605780634e1273f414610336578063a22cb465146104ad576100bd565b8062fdd58e146100c257806301ffc9a71461010d575b600080fd5b6100fb600480360360408110156100d857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561065c565b60408051918252519081900360200190f35b61014c6004803603602081101561012357600080fd5b50357fffffffff00000000000000000000000000000000000000000000000000000000166106b1565b604080519115158252519081900360200190f35b610334600480360360a081101561017657600080fd5b73ffffffffffffffffffffffffffffffffffffffff82358116926020810135909116918101906060810160408201356401000000008111156101b757600080fd5b8201836020820111156101c957600080fd5b803590602001918460208302840111640100000000831117156101eb57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561023b57600080fd5b82018360208201111561024d57600080fd5b8035906020019184602083028401116401000000008311171561026f57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156102bf57600080fd5b8201836020820111156102d157600080fd5b803590602001918460018302840111640100000000831117156102f357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610716945050505050565b005b61045d6004803603604081101561034c57600080fd5b81019060208101813564010000000081111561036757600080fd5b82018360208201111561037957600080fd5b8035906020019184602083028401116401000000008311171561039b57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156103eb57600080fd5b8201836020820111156103fd57600080fd5b8035906020019184602083028401116401000000008311171561041f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610821945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610499578181015183820152602001610481565b505050509050019250505060405180910390f35b610334600480360360408110156104c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610aa0565b610505600480360360208110156104fe57600080fd5b5035610b39565b6040805192835260208301919091528051918290030190f35b6100fb610b99565b61014c6004803603604081101561053c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610bbd565b6100fb6004803603604081101561057757600080fd5b5080359060200135610bf8565b610334600480360360a081101561059a57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a0810160808201356401000000008111156105e757600080fd5b8201836020820111156105f957600080fd5b8035906020019184600183028401116401000000008311171561061b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c4a945050505050565b600080600061066a84610b39565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506106a89082610bf8565b95945050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000141561070557506001610711565b61070e82610d4e565b90505b919050565b3373ffffffffffffffffffffffffffffffffffffffff8616148061073f575061073f8533610bbd565b610794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611b54603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610800576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180611a1f603d913960400191505060405180910390fd5b61080c85858585610d98565b61081a858585855a866111a5565b5050505050565b81518151606091908114610880576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806119e66039913960400191505060405180910390fd5b6000806108a08560008151811061089357fe5b6020026020010151610b39565b915091506000806000886000815181106108b657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561092a57600080fd5b50604051908082528060200260200182016040528015610954578160200160208202803683370190505b5090506109618385610bf8565b8160008151811061096e57fe5b602090810291909101015260015b86811015610a935761099389828151811061089357fe5b909650945082861415806109fc57508981815181106109ae57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106109db57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610a6a576000808b8381518110610a1057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b610a748486610bf8565b828281518110610a8057fe5b602090810291909101015260010161097c565b5098975050505050505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6000807f00000000000000000000000000000000000000000000000000000000000000008381610b6557fe5b0491507f00000000000000000000000000000000000000000000000000000000000000008381610b9157fe5b069050915091565b7f000000000000000000000000000000000000000000000000000000000000000081565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b60017f000000000000000000000000000000000000000000000000000000000000000090811b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0191029190911c1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610c735750610c738533610bbd565b610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180611a8f6037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611c0d6038913960400191505060405180910390fd5b610d408585858561141c565b61081a858585855a866114c0565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b815181518114610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180611ac66042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610e2f5750600081115b1561100157600080610e478560008151811061089357fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091610e9f9190849088908590610e9057fe5b602002602001015160016116b1565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091610ef59190859089908590610ee657fe5b602002602001015160006116b1565b90508360015b86811015610faf57610f1289828151811061089357fe5b9096509450818614610f815773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b610f9284868a8481518110610e9057fe5b9350610fa583868a8481518110610ee657fe5b9250600101610efb565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a1681528082528381209581529490529220919091555061109e565b60005b8181101561109c5782818151811061101857fe5b602002602001015161103d8786848151811061103057fe5b602002602001015161065c565b1015611094576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180611b906036913960400191505060405180910390fd5b600101611004565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561114a578181015183820152602001611132565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611189578181015183820152602001611171565b5050505090500194505050505060405180910390a45050505050565b6111c48573ffffffffffffffffffffffffffffffffffffffff16611924565b156114145760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561127c578181015183820152602001611264565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156112bb5781810151838201526020016112a3565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156112f75781810151838201526020016112df565b50505050905090810190601f1680156113245780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561134957600080fd5b5087f115801561135d573d6000803e3d6000fd5b50505050506040513d602081101561137457600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014611412576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180611b08604c913960600191505060405180910390fd5b505b505050505050565b611429848383600161195e565b611436838383600061195e565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6114df8573ffffffffffffffffffffffffffffffffffffffff16611924565b156114145760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611598578181015183820152602001611580565b50505050905090810190601f1680156115c55780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b1580156115e857600080fd5b5087f11580156115fc573d6000803e3d6000fd5b50505050506040513d602081101561161357600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014611412576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526047815260200180611bc66047913960600191505060405180910390fd5b60007f0000000000000000000000000000000000000000000000000000000000000000848102906001901b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018284600181111561170b57fe5b14156117f75784821b8701925086831015611771576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611c8a6032913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060020a87831c82168601106117f2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611c8a6032913960400191505060405180910390fd5b61191a565b600184600181111561180557fe5b14156118c95784821b870392508683111561186b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180611a5c6033913960400191505060405180910390fd5b84818389901c1610156117f2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180611a5c6033913960400191505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526045815260200180611c456045913960600191505060405180910390fd5b5050949350505050565b6000813f801580159061195757507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b60008061196a85610b39565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832085845290915290205491935091506119aa908286866116b1565b73ffffffffffffffffffffffffffffffffffffffff90961660009081526020818152604080832094835293905291909120949094555050505056fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a26469706673582212202e2b2f2c04dc3a8a689e2594c73aaf79a4c4364543c737ba74cc926779a5c4f364736f6c63430007040033455243313135355061636b656442616c616e636523636f6e7374727563746f723a20496e76616c6964204944535f424954535f53495a45", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100bd5760003560e01c8063db90e83c11610076578063e985e9c51161005b578063e985e9c514610526578063eaec5f8114610561578063f242432a14610584576100bd565b8063db90e83c146104e8578063ddcc74ab1461051e576100bd565b80632eb2c2d6116100a75780632eb2c2d6146101605780634e1273f414610336578063a22cb465146104ad576100bd565b8062fdd58e146100c257806301ffc9a71461010d575b600080fd5b6100fb600480360360408110156100d857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561065c565b60408051918252519081900360200190f35b61014c6004803603602081101561012357600080fd5b50357fffffffff00000000000000000000000000000000000000000000000000000000166106b1565b604080519115158252519081900360200190f35b610334600480360360a081101561017657600080fd5b73ffffffffffffffffffffffffffffffffffffffff82358116926020810135909116918101906060810160408201356401000000008111156101b757600080fd5b8201836020820111156101c957600080fd5b803590602001918460208302840111640100000000831117156101eb57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561023b57600080fd5b82018360208201111561024d57600080fd5b8035906020019184602083028401116401000000008311171561026f57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156102bf57600080fd5b8201836020820111156102d157600080fd5b803590602001918460018302840111640100000000831117156102f357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610716945050505050565b005b61045d6004803603604081101561034c57600080fd5b81019060208101813564010000000081111561036757600080fd5b82018360208201111561037957600080fd5b8035906020019184602083028401116401000000008311171561039b57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156103eb57600080fd5b8201836020820111156103fd57600080fd5b8035906020019184602083028401116401000000008311171561041f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610821945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610499578181015183820152602001610481565b505050509050019250505060405180910390f35b610334600480360360408110156104c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610aa0565b610505600480360360208110156104fe57600080fd5b5035610b39565b6040805192835260208301919091528051918290030190f35b6100fb610b99565b61014c6004803603604081101561053c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610bbd565b6100fb6004803603604081101561057757600080fd5b5080359060200135610bf8565b610334600480360360a081101561059a57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a0810160808201356401000000008111156105e757600080fd5b8201836020820111156105f957600080fd5b8035906020019184600183028401116401000000008311171561061b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c4a945050505050565b600080600061066a84610b39565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506106a89082610bf8565b95945050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000141561070557506001610711565b61070e82610d4e565b90505b919050565b3373ffffffffffffffffffffffffffffffffffffffff8616148061073f575061073f8533610bbd565b610794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611b54603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610800576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180611a1f603d913960400191505060405180910390fd5b61080c85858585610d98565b61081a858585855a866111a5565b5050505050565b81518151606091908114610880576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806119e66039913960400191505060405180910390fd5b6000806108a08560008151811061089357fe5b6020026020010151610b39565b915091506000806000886000815181106108b657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561092a57600080fd5b50604051908082528060200260200182016040528015610954578160200160208202803683370190505b5090506109618385610bf8565b8160008151811061096e57fe5b602090810291909101015260015b86811015610a935761099389828151811061089357fe5b909650945082861415806109fc57508981815181106109ae57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106109db57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610a6a576000808b8381518110610a1057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b610a748486610bf8565b828281518110610a8057fe5b602090810291909101015260010161097c565b5098975050505050505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6000807f00000000000000000000000000000000000000000000000000000000000000008381610b6557fe5b0491507f00000000000000000000000000000000000000000000000000000000000000008381610b9157fe5b069050915091565b7f000000000000000000000000000000000000000000000000000000000000000081565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b60017f000000000000000000000000000000000000000000000000000000000000000090811b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0191029190911c1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610c735750610c738533610bbd565b610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180611a8f6037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611c0d6038913960400191505060405180910390fd5b610d408585858561141c565b61081a858585855a866114c0565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b815181518114610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180611ac66042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610e2f5750600081115b1561100157600080610e478560008151811061089357fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091610e9f9190849088908590610e9057fe5b602002602001015160016116b1565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091610ef59190859089908590610ee657fe5b602002602001015160006116b1565b90508360015b86811015610faf57610f1289828151811061089357fe5b9096509450818614610f815773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b610f9284868a8481518110610e9057fe5b9350610fa583868a8481518110610ee657fe5b9250600101610efb565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a1681528082528381209581529490529220919091555061109e565b60005b8181101561109c5782818151811061101857fe5b602002602001015161103d8786848151811061103057fe5b602002602001015161065c565b1015611094576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180611b906036913960400191505060405180910390fd5b600101611004565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561114a578181015183820152602001611132565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611189578181015183820152602001611171565b5050505090500194505050505060405180910390a45050505050565b6111c48573ffffffffffffffffffffffffffffffffffffffff16611924565b156114145760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561127c578181015183820152602001611264565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156112bb5781810151838201526020016112a3565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156112f75781810151838201526020016112df565b50505050905090810190601f1680156113245780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561134957600080fd5b5087f115801561135d573d6000803e3d6000fd5b50505050506040513d602081101561137457600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014611412576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180611b08604c913960600191505060405180910390fd5b505b505050505050565b611429848383600161195e565b611436838383600061195e565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6114df8573ffffffffffffffffffffffffffffffffffffffff16611924565b156114145760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611598578181015183820152602001611580565b50505050905090810190601f1680156115c55780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b1580156115e857600080fd5b5087f11580156115fc573d6000803e3d6000fd5b50505050506040513d602081101561161357600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014611412576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526047815260200180611bc66047913960600191505060405180910390fd5b60007f0000000000000000000000000000000000000000000000000000000000000000848102906001901b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018284600181111561170b57fe5b14156117f75784821b8701925086831015611771576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611c8a6032913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060020a87831c82168601106117f2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611c8a6032913960400191505060405180910390fd5b61191a565b600184600181111561180557fe5b14156118c95784821b870392508683111561186b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180611a5c6033913960400191505060405180910390fd5b84818389901c1610156117f2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180611a5c6033913960400191505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526045815260200180611c456045913960600191505060405180910390fd5b5050949350505050565b6000813f801580159061195757507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b60008061196a85610b39565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832085845290915290205491935091506119aa908286866116b1565b73ffffffffffffffffffffffffffffffffffffffff90961660009081526020818152604080832094835293905291909120949094555050505056fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a26469706673582212202e2b2f2c04dc3a8a689e2594c73aaf79a4c4364543c737ba74cc926779a5c4f364736f6c63430007040033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/src/artifacts/@openzeppelin/contracts/proxy/Clones.sol/Clones.json b/src/artifacts/@openzeppelin/contracts/proxy/Clones.sol/Clones.json new file mode 100644 index 0000000..bfeb9fb --- /dev/null +++ b/src/artifacts/@openzeppelin/contracts/proxy/Clones.sol/Clones.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Clones", + "sourceName": "@openzeppelin/contracts/proxy/Clones.sol", + "abi": [], + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220844b8a2921660edc3cd3c4751c12436811a7acb432eaf78b6b14d1550f6c756a64736f6c63430007040033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220844b8a2921660edc3cd3c4751c12436811a7acb432eaf78b6b14d1550f6c756a64736f6c63430007040033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/src/artifacts/contracts/NiftyupFactory.sol/NiftyupFactory.json b/src/artifacts/contracts/NiftyupFactory.sol/NiftyupFactory.json new file mode 100644 index 0000000..18c4ea7 --- /dev/null +++ b/src/artifacts/contracts/NiftyupFactory.sol/NiftyupFactory.json @@ -0,0 +1,98 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "NiftyupFactory", + "sourceName": "contracts/NiftyupFactory.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "bits", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "CreatedImplementationContract", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "creator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "nft", + "type": "address" + } + ], + "name": "CreatedNFTContract", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_bits", + "type": "uint256" + } + ], + "name": "create", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "implementations", + "outputs": [ + { + "internalType": "contract NiftyupNFT", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b506138ec806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80630ecaea731461003b578063845affc81461009d575b600080fd5b6100746004803603604081101561005157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356100ba565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610074600480360360208110156100b357600080fd5b503561019f565b6000806100ce6100c9846101c7565b6103c8565b90508073ffffffffffffffffffffffffffffffffffffffff1663c4d66de8856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561013957600080fd5b505af115801561014d573d6000803e3d6000fd5b505060405173ffffffffffffffffffffffffffffffffffffffff80851693508716915033907fa6cacc27f7d66563f2e2e5a4bfb58b741f61aea9fe4c9e00d2193079f9f7686790600090a49392505050565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b600081158015906101d9575061010082105b80156101ee575081610100816101eb57fe5b06155b610243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613889602e913960400191505060405180910390fd5b60008281526020819052604090205473ffffffffffffffffffffffffffffffffffffffff1680156102755790506103c3565b600083604051610284906104aa565b90815260405190819003602001906000f0801580156102a7573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff16847fff69ed42ce563c1eabea91641b41e7db8ffeeb60df4c470217df2e82529cdbbb60405160405180910390a3604080517fc4d66de8000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff83169163c4d66de891602480830192600092919082900301818387803b15801561035b57600080fd5b505af115801561036f573d6000803e3d6000fd5b505050600085815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416179055509150505b919050565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528260601b60148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f091505073ffffffffffffffffffffffffffffffffffffffff81166103c357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f455243313136373a20637265617465206661696c656400000000000000000000604482015290519081900360640190fd5b6133d1806104b88339019056fe60c06040523480156200001157600080fd5b50604051620033d1380380620033d1833981810160405260208110156200003757600080fd5b505180806200004633620000be565b6101008110801562000062575080610100816200005f57fe5b06155b6200009f5760405162461bcd60e51b81526004018080602001828103825260378152602001806200339a6037913960400191505060405180910390fd5b60808190528061010081620000b057fe5b0460a0525062000117915050565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b60805160a05161324b6200014f60003980611639528061166552508061169652806116f75280612adc5280612b9a525061324b6000f3fe608060405234801561001057600080fd5b506004361061016b5760003560e01c8063a22cb465116100cd578063ddcc74ab11610081578063eaec5f8111610066578063eaec5f8114610b5e578063f242432a14610b81578063f2fde38b14610c595761016b565b8063ddcc74ab14610b1b578063e985e9c514610b235761016b565b8063b48ab8b6116100b2578063b48ab8b6146108e7578063c4d66de814610ab2578063db90e83c14610ae55761016b565b8063a22cb46514610889578063b390c0ab146108c45761016b565b80634e1273f411610124578063731133e911610109578063731133e9146107195780637e518ec8146107e85780638da5cb5b146108585761016b565b80634e1273f41461059a578063715018a6146107115761016b565b80630e89341c116101555780630e89341c1461027057806320ec271b146103025780632eb2c2d6146103c65761016b565b8062fdd58e146101d257806301ffc9a71461021d575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f554e535550504f525445445f4d4554484f440000000000000000000000000000604482015290519081900360640190fd5b61020b600480360360408110156101e857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c8c565b60408051918252519081900360200190f35b61025c6004803603602081101561023357600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610ce3565b604080519115158252519081900360200190f35b61028d6004803603602081101561028657600080fd5b5035610cf6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102c75781810151838201526020016102af565b50505050905090810190601f1680156102f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103c46004803603604081101561031857600080fd5b81019060208101813564010000000081111561033357600080fd5b82018360208201111561034557600080fd5b8035906020019184602083028401116401000000008311171561036757600080fd5b91939092909160208101903564010000000081111561038557600080fd5b82018360208201111561039757600080fd5b803590602001918460208302840111640100000000831117156103b957600080fd5b509092509050610e49565b005b6103c4600480360360a08110156103dc57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169181019060608101604082013564010000000081111561041d57600080fd5b82018360208201111561042f57600080fd5b8035906020019184602083028401116401000000008311171561045157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156104a157600080fd5b8201836020820111156104b357600080fd5b803590602001918460208302840111640100000000831117156104d557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561052557600080fd5b82018360208201111561053757600080fd5b8035906020019184600183028401116401000000008311171561055957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ebd945050505050565b6106c1600480360360408110156105b057600080fd5b8101906020810181356401000000008111156105cb57600080fd5b8201836020820111156105dd57600080fd5b803590602001918460208302840111640100000000831117156105ff57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561064f57600080fd5b82018360208201111561066157600080fd5b8035906020019184602083028401116401000000008311171561068357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610fc8945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106fd5781810151838201526020016106e5565b505050509050019250505060405180910390f35b6103c4611249565b6103c46004803603608081101561072f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561077357600080fd5b82018360208201111561078557600080fd5b803590602001918460018302840111640100000000831117156107a757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506112e0945050505050565b6103c4600480360360208110156107fe57600080fd5b81019060208101813564010000000081111561081957600080fd5b82018360208201111561082b57600080fd5b8035906020019184600183028401116401000000008311171561084d57600080fd5b509092509050611377565b610860611445565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103c46004803603604081101561089f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515611466565b6103c4600480360360408110156108da57600080fd5b50803590602001356114ff565b6103c4600480360360808110156108fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561093557600080fd5b82018360208201111561094757600080fd5b8035906020019184602083028401116401000000008311171561096957600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156109b957600080fd5b8201836020820111156109cb57600080fd5b803590602001918460208302840111640100000000831117156109ed57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610a3d57600080fd5b820183602082011115610a4f57600080fd5b80359060200191846001830284011164010000000083111715610a7157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061150a945050505050565b6103c460048036036020811015610ac857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166115a1565b610b0260048036036020811015610afb57600080fd5b5035611634565b6040805192835260208301919091528051918290030190f35b61020b611694565b61025c60048036036040811015610b3957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166116b8565b61020b60048036036040811015610b7457600080fd5b50803590602001356116f3565b6103c4600480360360a0811015610b9757600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610be457600080fd5b820183602082011115610bf657600080fd5b80359060200191846001830284011164010000000083111715610c1857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611745945050505050565b6103c460048036036020811015610c6f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611849565b6000806000610c9a84611634565b73ffffffffffffffffffffffffffffffffffffffff871660009081526001602090815260408083208584529091529020549193509150610cda90826116f3565b95945050505050565b6000610cee82611949565b90505b919050565b60606003610d03836119a6565b6040516020018083805460018160011615610100020316600290048015610d615780601f10610d3f576101008083540402835291820191610d61565b820191906000526020600020905b815481529060010190602001808311610d4d575b5050825160208401908083835b60208310610dab57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d6e565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b610eb73385858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250611ad292505050565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610ee65750610ee685336116b8565b610f3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180613033603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610fa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612eaa603d913960400191505060405180910390fd5b610fb385858585611c7b565b610fc1858585855a866120c9565b5050505050565b81518151606091908114611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180612e716039913960400191505060405180910390fd5b6000806110478560008151811061103a57fe5b6020026020010151611634565b915091506000600160008860008151811061105e57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff811180156110d257600080fd5b506040519080825280602002602001820160405280156110fc578160200160208202803683370190505b50905061110983856116f3565b8160008151811061111657fe5b602090810291909101015260015b8681101561123c5761113b89828151811061103a57fe5b909650945082861415806111a4575089818151811061115657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a600183038151811061118357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561121357600160008b83815181106111b957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b61121d84866116f3565b82828151811061122957fe5b6020908102919091010152600101611124565b5098975050505050505050565b33611252611445565b73ffffffffffffffffffffffffffffffffffffffff16146112d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6112de6000612340565b565b336112e9611445565b73ffffffffffffffffffffffffffffffffffffffff161461136b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eb7848484846123bd565b33611380611445565b73ffffffffffffffffffffffffffffffffffffffff161461140257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61144182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061243192505050565b5050565b600054610100900473ffffffffffffffffffffffffffffffffffffffff1690565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b611441338383612444565b33611513611445565b73ffffffffffffffffffffffffffffffffffffffff161461159557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eb7848484846124ae565b60005460ff16156115fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613005602e913960400191505060405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561163181612340565b50565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161166057fe5b0491507f0000000000000000000000000000000000000000000000000000000000000000838161168c57fe5b069050915091565b7f000000000000000000000000000000000000000000000000000000000000000081565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205460ff1690565b60017f000000000000000000000000000000000000000000000000000000000000000090811b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0191029190911c1690565b3373ffffffffffffffffffffffffffffffffffffffff8616148061176e575061176e85336116b8565b6117c3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180612f406037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841661182f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806131296038913960400191505060405180910390fd5b61183b8585858561275b565b610fc1858585855a866127ff565b33611852611445565b73ffffffffffffffffffffffffffffffffffffffff16146118d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611940576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612ee76026913960400191505060405180910390fd5b61163181612340565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561199d57506001610cf1565b610cee826129f0565b6060816119e7575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610cf1565b818060005b8215611a0057600101600a830492506119ec565b60608167ffffffffffffffff81118015611a1957600080fd5b506040519080825280601f01601f191660200182016040528015611a44576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315611ac857600a840660300160f81b82828060019003935081518110611a8e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611a6b565b5095945050505050565b815181518114611b2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d81526020018061306f603d913960400191505060405180910390fd5b60005b81811015611b7357611b6b85858381518110611b4857fe5b6020026020010151858481518110611b5c57fe5b60200260200101516001612a4d565b600101611b30565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611c21578181015183820152602001611c09565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611c60578181015183820152602001611c48565b5050505090500194505050505060405180910390a450505050565b815181518114611cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180612f776042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611d125750600081115b15611f2557600080611d2a8560008151811061103a57fe5b915091506000611da1600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020548387600081518110611d9257fe5b60200260200101516001612ad8565b90506000611e16600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868152602001908152602001600020548488600081518110611e0757fe5b60200260200101516000612ad8565b90508360015b86811015611ed257611e3389828151811061103a57fe5b9096509450818614611ea45773ffffffffffffffffffffffffffffffffffffffff8b8116600090815260016020818152604080842087855280835281852099909955938e16835290815282822094825284815282822095909555878152948452808520549290935291909220549084905b611eb584868a8481518110611d9257fe5b9350611ec883868a8481518110611e0757fe5b9250600101611e1c565b505073ffffffffffffffffffffffffffffffffffffffff808a166000908152600160208181526040808420898552825280842096909655928b168252825283812095815294905292209190915550611fc2565b60005b81811015611fc057828181518110611f3c57fe5b6020026020010151611f6187868481518110611f5457fe5b6020026020010151610c8c565b1015611fb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806130ac6036913960400191505060405180910390fd5b600101611f28565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561206e578181015183820152602001612056565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156120ad578181015183820152602001612095565b5050505090500194505050505060405180910390a45050505050565b6120e88573ffffffffffffffffffffffffffffffffffffffff16612d4b565b156123385760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156121a0578181015183820152602001612188565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156121df5781810151838201526020016121c7565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561221b578181015183820152602001612203565b50505050905090810190601f1680156122485780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561226d57600080fd5b5087f1158015612281573d6000803e3d6000fd5b50505050506040513d602081101561229857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014612336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180612fb9604c913960600191505060405180910390fd5b505b505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6123ca8484846000612a4d565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610eb760008585855a866127ff565b8051611441906003906020840190612dcf565b6124518383836001612a4d565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b8151835114612508576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806131a6603e913960400191505060405180910390fd5b82511561264b576000806125228560008151811061103a57fe5b91509150600061258a600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020548387600081518110611e0757fe5b86519091508360015b82811015612610576125aa89828151811061103a57fe5b90965094508186146125f55773ffffffffffffffffffffffffffffffffffffffff8a166000908152600160209081526040808320948352939052828120949094558584529220549184905b61260684868a8481518110611e0757fe5b9350600101612593565b50505073ffffffffffffffffffffffffffffffffffffffff871660009081526001602090815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156126f85781810151838201526020016126e0565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561273757818101518382015260200161271f565b5050505090500194505050505060405180910390a4610eb760008585855a866120c9565b6127688483836001612a4d565b6127758383836000612a4d565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b61281e8573ffffffffffffffffffffffffffffffffffffffff16612d4b565b156123385760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156128d75781810151838201526020016128bf565b50505050905090810190601f1680156129045780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561292757600080fd5b5087f115801561293b573d6000803e3d6000fd5b50505050506040513d602081101561295257600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014612336576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806130e26047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612a4457506001610cf1565b610cee82612d85565b600080612a5985611634565b73ffffffffffffffffffffffffffffffffffffffff881660009081526001602090815260408083208584529091529020549193509150612a9b90828686612ad8565b73ffffffffffffffffffffffffffffffffffffffff9096166000908152600160209081526040808320948352939052919091209490945550505050565b60007f0000000000000000000000000000000000000000000000000000000000000000848102906001901b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0182846001811115612b3257fe5b1415612c1e5784821b8701925086831015612b98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806131e46032913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060020a87831c8216860110612c19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806131e46032913960400191505060405180910390fd5b612d41565b6001846001811115612c2c57fe5b1415612cf05784821b8703925086831115612c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f0d6033913960400191505060405180910390fd5b84818389901c161015612c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f0d6033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806131616045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612d7e57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612e055760008555612e4b565b82601f10612e1e57805160ff1916838001178555612e4b565b82800160010185558215612e4b579182015b82811115612e4b578251825591602001919060010190612e30565b50612e57929150612e5b565b5090565b5b80821115612e575760008155600101612e5c56fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a26469706673582212207aa31e3bf33165a7de217376704b64081c52d7982a7890b051049405e8cb5c0064736f6c63430007040033455243313135355061636b656442616c616e636523636f6e7374727563746f723a20496e76616c6964204944535f424954535f53495a454e696674797570466163746f727923696d706c656d656e746174696f6e466f723a20494e56414c49445f42495453a26469706673582212208b8087bcad1caf5147244f3748a9aa42eaba6c0cc11b4a174974affab494a46764736f6c63430007040033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c80630ecaea731461003b578063845affc81461009d575b600080fd5b6100746004803603604081101561005157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356100ba565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610074600480360360208110156100b357600080fd5b503561019f565b6000806100ce6100c9846101c7565b6103c8565b90508073ffffffffffffffffffffffffffffffffffffffff1663c4d66de8856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561013957600080fd5b505af115801561014d573d6000803e3d6000fd5b505060405173ffffffffffffffffffffffffffffffffffffffff80851693508716915033907fa6cacc27f7d66563f2e2e5a4bfb58b741f61aea9fe4c9e00d2193079f9f7686790600090a49392505050565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b600081158015906101d9575061010082105b80156101ee575081610100816101eb57fe5b06155b610243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613889602e913960400191505060405180910390fd5b60008281526020819052604090205473ffffffffffffffffffffffffffffffffffffffff1680156102755790506103c3565b600083604051610284906104aa565b90815260405190819003602001906000f0801580156102a7573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff16847fff69ed42ce563c1eabea91641b41e7db8ffeeb60df4c470217df2e82529cdbbb60405160405180910390a3604080517fc4d66de8000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff83169163c4d66de891602480830192600092919082900301818387803b15801561035b57600080fd5b505af115801561036f573d6000803e3d6000fd5b505050600085815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416179055509150505b919050565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528260601b60148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f091505073ffffffffffffffffffffffffffffffffffffffff81166103c357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f455243313136373a20637265617465206661696c656400000000000000000000604482015290519081900360640190fd5b6133d1806104b88339019056fe60c06040523480156200001157600080fd5b50604051620033d1380380620033d1833981810160405260208110156200003757600080fd5b505180806200004633620000be565b6101008110801562000062575080610100816200005f57fe5b06155b6200009f5760405162461bcd60e51b81526004018080602001828103825260378152602001806200339a6037913960400191505060405180910390fd5b60808190528061010081620000b057fe5b0460a0525062000117915050565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b60805160a05161324b6200014f60003980611639528061166552508061169652806116f75280612adc5280612b9a525061324b6000f3fe608060405234801561001057600080fd5b506004361061016b5760003560e01c8063a22cb465116100cd578063ddcc74ab11610081578063eaec5f8111610066578063eaec5f8114610b5e578063f242432a14610b81578063f2fde38b14610c595761016b565b8063ddcc74ab14610b1b578063e985e9c514610b235761016b565b8063b48ab8b6116100b2578063b48ab8b6146108e7578063c4d66de814610ab2578063db90e83c14610ae55761016b565b8063a22cb46514610889578063b390c0ab146108c45761016b565b80634e1273f411610124578063731133e911610109578063731133e9146107195780637e518ec8146107e85780638da5cb5b146108585761016b565b80634e1273f41461059a578063715018a6146107115761016b565b80630e89341c116101555780630e89341c1461027057806320ec271b146103025780632eb2c2d6146103c65761016b565b8062fdd58e146101d257806301ffc9a71461021d575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f554e535550504f525445445f4d4554484f440000000000000000000000000000604482015290519081900360640190fd5b61020b600480360360408110156101e857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c8c565b60408051918252519081900360200190f35b61025c6004803603602081101561023357600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610ce3565b604080519115158252519081900360200190f35b61028d6004803603602081101561028657600080fd5b5035610cf6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102c75781810151838201526020016102af565b50505050905090810190601f1680156102f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103c46004803603604081101561031857600080fd5b81019060208101813564010000000081111561033357600080fd5b82018360208201111561034557600080fd5b8035906020019184602083028401116401000000008311171561036757600080fd5b91939092909160208101903564010000000081111561038557600080fd5b82018360208201111561039757600080fd5b803590602001918460208302840111640100000000831117156103b957600080fd5b509092509050610e49565b005b6103c4600480360360a08110156103dc57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169181019060608101604082013564010000000081111561041d57600080fd5b82018360208201111561042f57600080fd5b8035906020019184602083028401116401000000008311171561045157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156104a157600080fd5b8201836020820111156104b357600080fd5b803590602001918460208302840111640100000000831117156104d557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561052557600080fd5b82018360208201111561053757600080fd5b8035906020019184600183028401116401000000008311171561055957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ebd945050505050565b6106c1600480360360408110156105b057600080fd5b8101906020810181356401000000008111156105cb57600080fd5b8201836020820111156105dd57600080fd5b803590602001918460208302840111640100000000831117156105ff57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561064f57600080fd5b82018360208201111561066157600080fd5b8035906020019184602083028401116401000000008311171561068357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610fc8945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106fd5781810151838201526020016106e5565b505050509050019250505060405180910390f35b6103c4611249565b6103c46004803603608081101561072f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561077357600080fd5b82018360208201111561078557600080fd5b803590602001918460018302840111640100000000831117156107a757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506112e0945050505050565b6103c4600480360360208110156107fe57600080fd5b81019060208101813564010000000081111561081957600080fd5b82018360208201111561082b57600080fd5b8035906020019184600183028401116401000000008311171561084d57600080fd5b509092509050611377565b610860611445565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103c46004803603604081101561089f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515611466565b6103c4600480360360408110156108da57600080fd5b50803590602001356114ff565b6103c4600480360360808110156108fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561093557600080fd5b82018360208201111561094757600080fd5b8035906020019184602083028401116401000000008311171561096957600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156109b957600080fd5b8201836020820111156109cb57600080fd5b803590602001918460208302840111640100000000831117156109ed57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610a3d57600080fd5b820183602082011115610a4f57600080fd5b80359060200191846001830284011164010000000083111715610a7157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061150a945050505050565b6103c460048036036020811015610ac857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166115a1565b610b0260048036036020811015610afb57600080fd5b5035611634565b6040805192835260208301919091528051918290030190f35b61020b611694565b61025c60048036036040811015610b3957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166116b8565b61020b60048036036040811015610b7457600080fd5b50803590602001356116f3565b6103c4600480360360a0811015610b9757600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610be457600080fd5b820183602082011115610bf657600080fd5b80359060200191846001830284011164010000000083111715610c1857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611745945050505050565b6103c460048036036020811015610c6f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611849565b6000806000610c9a84611634565b73ffffffffffffffffffffffffffffffffffffffff871660009081526001602090815260408083208584529091529020549193509150610cda90826116f3565b95945050505050565b6000610cee82611949565b90505b919050565b60606003610d03836119a6565b6040516020018083805460018160011615610100020316600290048015610d615780601f10610d3f576101008083540402835291820191610d61565b820191906000526020600020905b815481529060010190602001808311610d4d575b5050825160208401908083835b60208310610dab57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d6e565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b610eb73385858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250611ad292505050565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610ee65750610ee685336116b8565b610f3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180613033603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610fa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612eaa603d913960400191505060405180910390fd5b610fb385858585611c7b565b610fc1858585855a866120c9565b5050505050565b81518151606091908114611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180612e716039913960400191505060405180910390fd5b6000806110478560008151811061103a57fe5b6020026020010151611634565b915091506000600160008860008151811061105e57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff811180156110d257600080fd5b506040519080825280602002602001820160405280156110fc578160200160208202803683370190505b50905061110983856116f3565b8160008151811061111657fe5b602090810291909101015260015b8681101561123c5761113b89828151811061103a57fe5b909650945082861415806111a4575089818151811061115657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a600183038151811061118357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561121357600160008b83815181106111b957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b61121d84866116f3565b82828151811061122957fe5b6020908102919091010152600101611124565b5098975050505050505050565b33611252611445565b73ffffffffffffffffffffffffffffffffffffffff16146112d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6112de6000612340565b565b336112e9611445565b73ffffffffffffffffffffffffffffffffffffffff161461136b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eb7848484846123bd565b33611380611445565b73ffffffffffffffffffffffffffffffffffffffff161461140257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61144182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061243192505050565b5050565b600054610100900473ffffffffffffffffffffffffffffffffffffffff1690565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b611441338383612444565b33611513611445565b73ffffffffffffffffffffffffffffffffffffffff161461159557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eb7848484846124ae565b60005460ff16156115fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613005602e913960400191505060405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561163181612340565b50565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161166057fe5b0491507f0000000000000000000000000000000000000000000000000000000000000000838161168c57fe5b069050915091565b7f000000000000000000000000000000000000000000000000000000000000000081565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205460ff1690565b60017f000000000000000000000000000000000000000000000000000000000000000090811b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0191029190911c1690565b3373ffffffffffffffffffffffffffffffffffffffff8616148061176e575061176e85336116b8565b6117c3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180612f406037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841661182f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806131296038913960400191505060405180910390fd5b61183b8585858561275b565b610fc1858585855a866127ff565b33611852611445565b73ffffffffffffffffffffffffffffffffffffffff16146118d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611940576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612ee76026913960400191505060405180910390fd5b61163181612340565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561199d57506001610cf1565b610cee826129f0565b6060816119e7575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610cf1565b818060005b8215611a0057600101600a830492506119ec565b60608167ffffffffffffffff81118015611a1957600080fd5b506040519080825280601f01601f191660200182016040528015611a44576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315611ac857600a840660300160f81b82828060019003935081518110611a8e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611a6b565b5095945050505050565b815181518114611b2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d81526020018061306f603d913960400191505060405180910390fd5b60005b81811015611b7357611b6b85858381518110611b4857fe5b6020026020010151858481518110611b5c57fe5b60200260200101516001612a4d565b600101611b30565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611c21578181015183820152602001611c09565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611c60578181015183820152602001611c48565b5050505090500194505050505060405180910390a450505050565b815181518114611cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180612f776042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611d125750600081115b15611f2557600080611d2a8560008151811061103a57fe5b915091506000611da1600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020548387600081518110611d9257fe5b60200260200101516001612ad8565b90506000611e16600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868152602001908152602001600020548488600081518110611e0757fe5b60200260200101516000612ad8565b90508360015b86811015611ed257611e3389828151811061103a57fe5b9096509450818614611ea45773ffffffffffffffffffffffffffffffffffffffff8b8116600090815260016020818152604080842087855280835281852099909955938e16835290815282822094825284815282822095909555878152948452808520549290935291909220549084905b611eb584868a8481518110611d9257fe5b9350611ec883868a8481518110611e0757fe5b9250600101611e1c565b505073ffffffffffffffffffffffffffffffffffffffff808a166000908152600160208181526040808420898552825280842096909655928b168252825283812095815294905292209190915550611fc2565b60005b81811015611fc057828181518110611f3c57fe5b6020026020010151611f6187868481518110611f5457fe5b6020026020010151610c8c565b1015611fb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806130ac6036913960400191505060405180910390fd5b600101611f28565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561206e578181015183820152602001612056565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156120ad578181015183820152602001612095565b5050505090500194505050505060405180910390a45050505050565b6120e88573ffffffffffffffffffffffffffffffffffffffff16612d4b565b156123385760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156121a0578181015183820152602001612188565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156121df5781810151838201526020016121c7565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561221b578181015183820152602001612203565b50505050905090810190601f1680156122485780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561226d57600080fd5b5087f1158015612281573d6000803e3d6000fd5b50505050506040513d602081101561229857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014612336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180612fb9604c913960600191505060405180910390fd5b505b505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6123ca8484846000612a4d565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610eb760008585855a866127ff565b8051611441906003906020840190612dcf565b6124518383836001612a4d565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b8151835114612508576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806131a6603e913960400191505060405180910390fd5b82511561264b576000806125228560008151811061103a57fe5b91509150600061258a600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020548387600081518110611e0757fe5b86519091508360015b82811015612610576125aa89828151811061103a57fe5b90965094508186146125f55773ffffffffffffffffffffffffffffffffffffffff8a166000908152600160209081526040808320948352939052828120949094558584529220549184905b61260684868a8481518110611e0757fe5b9350600101612593565b50505073ffffffffffffffffffffffffffffffffffffffff871660009081526001602090815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156126f85781810151838201526020016126e0565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561273757818101518382015260200161271f565b5050505090500194505050505060405180910390a4610eb760008585855a866120c9565b6127688483836001612a4d565b6127758383836000612a4d565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b61281e8573ffffffffffffffffffffffffffffffffffffffff16612d4b565b156123385760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156128d75781810151838201526020016128bf565b50505050905090810190601f1680156129045780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561292757600080fd5b5087f115801561293b573d6000803e3d6000fd5b50505050506040513d602081101561295257600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014612336576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806130e26047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612a4457506001610cf1565b610cee82612d85565b600080612a5985611634565b73ffffffffffffffffffffffffffffffffffffffff881660009081526001602090815260408083208584529091529020549193509150612a9b90828686612ad8565b73ffffffffffffffffffffffffffffffffffffffff9096166000908152600160209081526040808320948352939052919091209490945550505050565b60007f0000000000000000000000000000000000000000000000000000000000000000848102906001901b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0182846001811115612b3257fe5b1415612c1e5784821b8701925086831015612b98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806131e46032913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060020a87831c8216860110612c19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806131e46032913960400191505060405180910390fd5b612d41565b6001846001811115612c2c57fe5b1415612cf05784821b8703925086831115612c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f0d6033913960400191505060405180910390fd5b84818389901c161015612c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f0d6033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806131616045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612d7e57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612e055760008555612e4b565b82601f10612e1e57805160ff1916838001178555612e4b565b82800160010185558215612e4b579182015b82811115612e4b578251825591602001919060010190612e30565b50612e57929150612e5b565b5090565b5b80821115612e575760008155600101612e5c56fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a26469706673582212207aa31e3bf33165a7de217376704b64081c52d7982a7890b051049405e8cb5c0064736f6c63430007040033455243313135355061636b656442616c616e636523636f6e7374727563746f723a20496e76616c6964204944535f424954535f53495a454e696674797570466163746f727923696d706c656d656e746174696f6e466f723a20494e56414c49445f42495453a26469706673582212208b8087bcad1caf5147244f3748a9aa42eaba6c0cc11b4a174974affab494a46764736f6c63430007040033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/src/artifacts/contracts/NiftyupNFT.sol/NiftyupNFT.json b/src/artifacts/contracts/NiftyupNFT.sol/NiftyupNFT.json index 7803efe..2abed11 100644 --- a/src/artifacts/contracts/NiftyupNFT.sol/NiftyupNFT.json +++ b/src/artifacts/contracts/NiftyupNFT.sol/NiftyupNFT.json @@ -3,6 +3,17 @@ "contractName": "NiftyupNFT", "sourceName": "contracts/NiftyupNFT.sol", "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_bits", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, { "anonymous": false, "inputs": [ @@ -144,6 +155,19 @@ "stateMutability": "nonpayable", "type": "fallback" }, + { + "inputs": [], + "name": "IDS_BITS_SIZE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -277,7 +301,7 @@ "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { @@ -301,7 +325,20 @@ "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { @@ -525,8 +562,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50600061001b61006e565b600380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610072565b3390565b61309280620000826000396000f3fe608060405234801561001057600080fd5b50600436106101355760003560e01c80638da5cb5b116100b2578063db90e83c11610081578063eaec5f8111610066578063eaec5f8114610aed578063f242432a14610b10578063f2fde38b14610be857610135565b8063db90e83c14610a7c578063e985e9c514610ab257610135565b80638da5cb5b14610822578063a22cb46514610853578063b390c0ab1461088e578063b48ab8b6146108b157610135565b80632eb2c2d611610109578063715018a6116100ee578063715018a6146106db578063731133e9146106e35780637e518ec8146107b257610135565b80632eb2c2d6146103905780634e1273f41461056457610135565b8062fdd58e1461019c57806301ffc9a7146101e75780630e89341c1461023a57806320ec271b146102cc575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f554e535550504f525445445f4d4554484f440000000000000000000000000000604482015290519081900360640190fd5b6101d5600480360360408110156101b257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c1b565b60408051918252519081900360200190f35b610226600480360360208110156101fd57600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610c70565b604080519115158252519081900360200190f35b6102576004803603602081101561025057600080fd5b5035610c83565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610291578181015183820152602001610279565b50505050905090810190601f1680156102be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61038e600480360360408110156102e257600080fd5b8101906020810181356401000000008111156102fd57600080fd5b82018360208201111561030f57600080fd5b8035906020019184602083028401116401000000008311171561033157600080fd5b91939092909160208101903564010000000081111561034f57600080fd5b82018360208201111561036157600080fd5b8035906020019184602083028401116401000000008311171561038357600080fd5b509092509050610dd6565b005b61038e600480360360a08110156103a657600080fd5b73ffffffffffffffffffffffffffffffffffffffff82358116926020810135909116918101906060810160408201356401000000008111156103e757600080fd5b8201836020820111156103f957600080fd5b8035906020019184602083028401116401000000008311171561041b57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561046b57600080fd5b82018360208201111561047d57600080fd5b8035906020019184602083028401116401000000008311171561049f57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156104ef57600080fd5b82018360208201111561050157600080fd5b8035906020019184600183028401116401000000008311171561052357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e4a945050505050565b61068b6004803603604081101561057a57600080fd5b81019060208101813564010000000081111561059557600080fd5b8201836020820111156105a757600080fd5b803590602001918460208302840111640100000000831117156105c957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561061957600080fd5b82018360208201111561062b57600080fd5b8035906020019184602083028401116401000000008311171561064d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610f55945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106c75781810151838201526020016106af565b505050509050019250505060405180910390f35b61038e6111d4565b61038e600480360360808110156106f957600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561073d57600080fd5b82018360208201111561074f57600080fd5b8035906020019184600183028401116401000000008311171561077157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506112eb945050505050565b61038e600480360360208110156107c857600080fd5b8101906020810181356401000000008111156107e357600080fd5b8201836020820111156107f557600080fd5b8035906020019184600183028401116401000000008311171561081757600080fd5b50909250905061139f565b61082a61148a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61038e6004803603604081101561086957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013515156114a6565b61038e600480360360408110156108a457600080fd5b508035906020013561153f565b61038e600480360360808110156108c757600080fd5b73ffffffffffffffffffffffffffffffffffffffff82351691908101906040810160208201356401000000008111156108ff57600080fd5b82018360208201111561091157600080fd5b8035906020019184602083028401116401000000008311171561093357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561098357600080fd5b82018360208201111561099557600080fd5b803590602001918460208302840111640100000000831117156109b757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610a0757600080fd5b820183602082011115610a1957600080fd5b80359060200191846001830284011164010000000083111715610a3b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061154a945050505050565b610a9960048036036020811015610a9257600080fd5b50356115fe565b6040805192835260208301919091528051918290030190f35b61022660048036036040811015610ac857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661160b565b6101d560048036036040811015610b0357600080fd5b5080359060200135611646565b61038e600480360360a0811015610b2657600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610b7357600080fd5b820183602082011115610b8557600080fd5b80359060200191846001830284011164010000000083111715610ba757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611659945050505050565b61038e60048036036020811015610bfe57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661175d565b6000806000610c29846115fe565b73ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083208584529091529020549193509150610c679082611646565b95945050505050565b6000610c7b826118ff565b90505b919050565b60606002610c908361195c565b6040516020018083805460018160011615610100020316600290048015610cee5780601f10610ccc576101008083540402835291820191610cee565b820191906000526020600020905b815481529060010190602001808311610cda575b5050825160208401908083835b60208310610d3857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610cfb565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b610e443385858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250611a8892505050565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610e735750610e73853361160b565b610ec8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180612e7a603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610f34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612d1f603d913960400191505060405180910390fd5b610f4085858585611c31565b610f4e858585855a8661203e565b5050505050565b81518151606091908114610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180612ce66039913960400191505060405180910390fd5b600080610fd485600081518110610fc757fe5b60200260200101516115fe565b91509150600080600088600081518110610fea57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561105e57600080fd5b50604051908082528060200260200182016040528015611088578160200160208202803683370190505b5090506110958385611646565b816000815181106110a257fe5b602090810291909101015260015b868110156111c7576110c7898281518110610fc757fe5b9096509450828614158061113057508981815181106110e257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a600183038151811061110f57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561119e576000808b838151811061114457fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6111a88486611646565b8282815181106111b457fe5b60209081029190910101526001016110b0565b5098975050505050505050565b6111dc6122b5565b73ffffffffffffffffffffffffffffffffffffffff166111fa61148a565b73ffffffffffffffffffffffffffffffffffffffff161461127c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60035460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6112f36122b5565b73ffffffffffffffffffffffffffffffffffffffff1661131161148a565b73ffffffffffffffffffffffffffffffffffffffff161461139357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e44848484846122b9565b6113a76122b5565b73ffffffffffffffffffffffffffffffffffffffff166113c561148a565b73ffffffffffffffffffffffffffffffffffffffff161461144757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61148682828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061232d92505050565b5050565b60035473ffffffffffffffffffffffffffffffffffffffff1690565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b611486338383612340565b6115526122b5565b73ffffffffffffffffffffffffffffffffffffffff1661157061148a565b73ffffffffffffffffffffffffffffffffffffffff16146115f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e44848484846123aa565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff861614806116825750611682853361160b565b6116d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180612db56037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416611743576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180612f706038913960400191505060405180910390fd5b61174f85858585612634565b610f4e858585855a866126d8565b6117656122b5565b73ffffffffffffffffffffffffffffffffffffffff1661178361148a565b73ffffffffffffffffffffffffffffffffffffffff161461180557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611871576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612d5c6026913960400191505060405180910390fd5b60035460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561195357506001610c7e565b610c7b826128c9565b60608161199d575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610c7e565b818060005b82156119b657600101600a830492506119a2565b60608167ffffffffffffffff811180156119cf57600080fd5b506040519080825280601f01601f1916602001820160405280156119fa576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315611a7e57600a840660300160f81b82828060019003935081518110611a4457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611a21565b5095945050505050565b815181518114611ae3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612eb6603d913960400191505060405180910390fd5b60005b81811015611b2957611b2185858381518110611afe57fe5b6020026020010151858481518110611b1257fe5b60200260200101516001612926565b600101611ae6565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611bd7578181015183820152602001611bbf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611c16578181015183820152602001611bfe565b5050505090500194505050505060405180910390a450505050565b815181518114611c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180612dec6042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611cc85750600081115b15611e9a57600080611ce085600081518110610fc757fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091611d389190849088908590611d2957fe5b602002602001015160016129ad565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091611d8e9190859089908590611d7f57fe5b602002602001015160006129ad565b90508360015b86811015611e4857611dab898281518110610fc757fe5b9096509450818614611e1a5773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b611e2b84868a8481518110611d2957fe5b9350611e3e83868a8481518110611d7f57fe5b9250600101611d94565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550611f37565b60005b81811015611f3557828181518110611eb157fe5b6020026020010151611ed687868481518110611ec957fe5b6020026020010151610c1b565b1015611f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180612ef36036913960400191505060405180910390fd5b600101611e9d565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611fe3578181015183820152602001611fcb565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561202257818101518382015260200161200a565b5050505090500194505050505060405180910390a45050505050565b61205d8573ffffffffffffffffffffffffffffffffffffffff16612bc0565b156122ad5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156121155781810151838201526020016120fd565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561215457818101518382015260200161213c565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015612190578181015183820152602001612178565b50505050905090810190601f1680156121bd5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b1580156121e257600080fd5b5087f11580156121f6573d6000803e3d6000fd5b50505050506040513d602081101561220d57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c8100000000000000000000000000000000000000000000000000000000146122ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180612e2e604c913960600191505060405180910390fd5b505b505050505050565b3390565b6122c68484846000612926565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610e4460008585855a866126d8565b8051611486906002906020840190612c44565b61234d8383836001612926565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b8151835114612404576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180612fed603e913960400191505060405180910390fd5b8251156125245760008061241e85600081518110610fc757fe5b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091528120548751939550919350916124679190849088908590611d7f57fe5b86519091508360015b828110156124eb57612487898281518110610fc757fe5b90965094508186146124d05773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b6124e184868a8481518110611d7f57fe5b9350600101612470565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156125d15781810151838201526020016125b9565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156126105781810151838201526020016125f8565b5050505090500194505050505060405180910390a4610e4460008585855a8661203e565b6126418483836001612926565b61264e8383836000612926565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6126f78573ffffffffffffffffffffffffffffffffffffffff16612bc0565b156122ad5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156127b0578181015183820152602001612798565b50505050905090810190601f1680156127dd5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561280057600080fd5b5087f1158015612814573d6000803e3d6000fd5b50505050506040513d602081101561282b57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146122ab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526047815260200180612f296047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000141561291d57506001610c7e565b610c7b82612bfa565b600080612932856115fe565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150612972908286866129ad565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b60006020840263ffffffff828460018111156129c557fe5b1415612a935784821b8701925086831015612a2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061302b6032913960400191505060405180910390fd5b64010000000087831c8216860110612a8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061302b6032913960400191505060405180910390fd5b612bb6565b6001846001811115612aa157fe5b1415612b655784821b8703925086831115612b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612d826033913960400191505060405180910390fd5b84818389901c161015612a8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612d826033913960400191505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526045815260200180612fa86045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612bf357507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612c7a5760008555612cc0565b82601f10612c9357805160ff1916838001178555612cc0565b82800160010185558215612cc0579182015b82811115612cc0578251825591602001919060010190612ca5565b50612ccc929150612cd0565b5090565b5b80821115612ccc5760008155600101612cd156fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a26469706673582212203fd7eadafb4fe616540b8c133d4836bed39ee64f95fb37e16f4bc24a8dfe587164736f6c63430007040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101355760003560e01c80638da5cb5b116100b2578063db90e83c11610081578063eaec5f8111610066578063eaec5f8114610aed578063f242432a14610b10578063f2fde38b14610be857610135565b8063db90e83c14610a7c578063e985e9c514610ab257610135565b80638da5cb5b14610822578063a22cb46514610853578063b390c0ab1461088e578063b48ab8b6146108b157610135565b80632eb2c2d611610109578063715018a6116100ee578063715018a6146106db578063731133e9146106e35780637e518ec8146107b257610135565b80632eb2c2d6146103905780634e1273f41461056457610135565b8062fdd58e1461019c57806301ffc9a7146101e75780630e89341c1461023a57806320ec271b146102cc575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f554e535550504f525445445f4d4554484f440000000000000000000000000000604482015290519081900360640190fd5b6101d5600480360360408110156101b257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c1b565b60408051918252519081900360200190f35b610226600480360360208110156101fd57600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610c70565b604080519115158252519081900360200190f35b6102576004803603602081101561025057600080fd5b5035610c83565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610291578181015183820152602001610279565b50505050905090810190601f1680156102be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61038e600480360360408110156102e257600080fd5b8101906020810181356401000000008111156102fd57600080fd5b82018360208201111561030f57600080fd5b8035906020019184602083028401116401000000008311171561033157600080fd5b91939092909160208101903564010000000081111561034f57600080fd5b82018360208201111561036157600080fd5b8035906020019184602083028401116401000000008311171561038357600080fd5b509092509050610dd6565b005b61038e600480360360a08110156103a657600080fd5b73ffffffffffffffffffffffffffffffffffffffff82358116926020810135909116918101906060810160408201356401000000008111156103e757600080fd5b8201836020820111156103f957600080fd5b8035906020019184602083028401116401000000008311171561041b57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561046b57600080fd5b82018360208201111561047d57600080fd5b8035906020019184602083028401116401000000008311171561049f57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156104ef57600080fd5b82018360208201111561050157600080fd5b8035906020019184600183028401116401000000008311171561052357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e4a945050505050565b61068b6004803603604081101561057a57600080fd5b81019060208101813564010000000081111561059557600080fd5b8201836020820111156105a757600080fd5b803590602001918460208302840111640100000000831117156105c957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561061957600080fd5b82018360208201111561062b57600080fd5b8035906020019184602083028401116401000000008311171561064d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610f55945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106c75781810151838201526020016106af565b505050509050019250505060405180910390f35b61038e6111d4565b61038e600480360360808110156106f957600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561073d57600080fd5b82018360208201111561074f57600080fd5b8035906020019184600183028401116401000000008311171561077157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506112eb945050505050565b61038e600480360360208110156107c857600080fd5b8101906020810181356401000000008111156107e357600080fd5b8201836020820111156107f557600080fd5b8035906020019184600183028401116401000000008311171561081757600080fd5b50909250905061139f565b61082a61148a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61038e6004803603604081101561086957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013515156114a6565b61038e600480360360408110156108a457600080fd5b508035906020013561153f565b61038e600480360360808110156108c757600080fd5b73ffffffffffffffffffffffffffffffffffffffff82351691908101906040810160208201356401000000008111156108ff57600080fd5b82018360208201111561091157600080fd5b8035906020019184602083028401116401000000008311171561093357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561098357600080fd5b82018360208201111561099557600080fd5b803590602001918460208302840111640100000000831117156109b757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610a0757600080fd5b820183602082011115610a1957600080fd5b80359060200191846001830284011164010000000083111715610a3b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061154a945050505050565b610a9960048036036020811015610a9257600080fd5b50356115fe565b6040805192835260208301919091528051918290030190f35b61022660048036036040811015610ac857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661160b565b6101d560048036036040811015610b0357600080fd5b5080359060200135611646565b61038e600480360360a0811015610b2657600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610b7357600080fd5b820183602082011115610b8557600080fd5b80359060200191846001830284011164010000000083111715610ba757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611659945050505050565b61038e60048036036020811015610bfe57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661175d565b6000806000610c29846115fe565b73ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083208584529091529020549193509150610c679082611646565b95945050505050565b6000610c7b826118ff565b90505b919050565b60606002610c908361195c565b6040516020018083805460018160011615610100020316600290048015610cee5780601f10610ccc576101008083540402835291820191610cee565b820191906000526020600020905b815481529060010190602001808311610cda575b5050825160208401908083835b60208310610d3857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610cfb565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b610e443385858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250611a8892505050565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610e735750610e73853361160b565b610ec8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180612e7a603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610f34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612d1f603d913960400191505060405180910390fd5b610f4085858585611c31565b610f4e858585855a8661203e565b5050505050565b81518151606091908114610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180612ce66039913960400191505060405180910390fd5b600080610fd485600081518110610fc757fe5b60200260200101516115fe565b91509150600080600088600081518110610fea57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561105e57600080fd5b50604051908082528060200260200182016040528015611088578160200160208202803683370190505b5090506110958385611646565b816000815181106110a257fe5b602090810291909101015260015b868110156111c7576110c7898281518110610fc757fe5b9096509450828614158061113057508981815181106110e257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a600183038151811061110f57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561119e576000808b838151811061114457fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6111a88486611646565b8282815181106111b457fe5b60209081029190910101526001016110b0565b5098975050505050505050565b6111dc6122b5565b73ffffffffffffffffffffffffffffffffffffffff166111fa61148a565b73ffffffffffffffffffffffffffffffffffffffff161461127c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60035460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6112f36122b5565b73ffffffffffffffffffffffffffffffffffffffff1661131161148a565b73ffffffffffffffffffffffffffffffffffffffff161461139357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e44848484846122b9565b6113a76122b5565b73ffffffffffffffffffffffffffffffffffffffff166113c561148a565b73ffffffffffffffffffffffffffffffffffffffff161461144757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61148682828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061232d92505050565b5050565b60035473ffffffffffffffffffffffffffffffffffffffff1690565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b611486338383612340565b6115526122b5565b73ffffffffffffffffffffffffffffffffffffffff1661157061148a565b73ffffffffffffffffffffffffffffffffffffffff16146115f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e44848484846123aa565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff861614806116825750611682853361160b565b6116d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180612db56037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416611743576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180612f706038913960400191505060405180910390fd5b61174f85858585612634565b610f4e858585855a866126d8565b6117656122b5565b73ffffffffffffffffffffffffffffffffffffffff1661178361148a565b73ffffffffffffffffffffffffffffffffffffffff161461180557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611871576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612d5c6026913960400191505060405180910390fd5b60035460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561195357506001610c7e565b610c7b826128c9565b60608161199d575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610c7e565b818060005b82156119b657600101600a830492506119a2565b60608167ffffffffffffffff811180156119cf57600080fd5b506040519080825280601f01601f1916602001820160405280156119fa576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315611a7e57600a840660300160f81b82828060019003935081518110611a4457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611a21565b5095945050505050565b815181518114611ae3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612eb6603d913960400191505060405180910390fd5b60005b81811015611b2957611b2185858381518110611afe57fe5b6020026020010151858481518110611b1257fe5b60200260200101516001612926565b600101611ae6565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611bd7578181015183820152602001611bbf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611c16578181015183820152602001611bfe565b5050505090500194505050505060405180910390a450505050565b815181518114611c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180612dec6042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611cc85750600081115b15611e9a57600080611ce085600081518110610fc757fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091611d389190849088908590611d2957fe5b602002602001015160016129ad565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091611d8e9190859089908590611d7f57fe5b602002602001015160006129ad565b90508360015b86811015611e4857611dab898281518110610fc757fe5b9096509450818614611e1a5773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b611e2b84868a8481518110611d2957fe5b9350611e3e83868a8481518110611d7f57fe5b9250600101611d94565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550611f37565b60005b81811015611f3557828181518110611eb157fe5b6020026020010151611ed687868481518110611ec957fe5b6020026020010151610c1b565b1015611f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180612ef36036913960400191505060405180910390fd5b600101611e9d565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611fe3578181015183820152602001611fcb565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561202257818101518382015260200161200a565b5050505090500194505050505060405180910390a45050505050565b61205d8573ffffffffffffffffffffffffffffffffffffffff16612bc0565b156122ad5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156121155781810151838201526020016120fd565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561215457818101518382015260200161213c565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015612190578181015183820152602001612178565b50505050905090810190601f1680156121bd5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b1580156121e257600080fd5b5087f11580156121f6573d6000803e3d6000fd5b50505050506040513d602081101561220d57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c8100000000000000000000000000000000000000000000000000000000146122ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180612e2e604c913960600191505060405180910390fd5b505b505050505050565b3390565b6122c68484846000612926565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610e4460008585855a866126d8565b8051611486906002906020840190612c44565b61234d8383836001612926565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b8151835114612404576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180612fed603e913960400191505060405180910390fd5b8251156125245760008061241e85600081518110610fc757fe5b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091528120548751939550919350916124679190849088908590611d7f57fe5b86519091508360015b828110156124eb57612487898281518110610fc757fe5b90965094508186146124d05773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b6124e184868a8481518110611d7f57fe5b9350600101612470565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156125d15781810151838201526020016125b9565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156126105781810151838201526020016125f8565b5050505090500194505050505060405180910390a4610e4460008585855a8661203e565b6126418483836001612926565b61264e8383836000612926565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6126f78573ffffffffffffffffffffffffffffffffffffffff16612bc0565b156122ad5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156127b0578181015183820152602001612798565b50505050905090810190601f1680156127dd5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561280057600080fd5b5087f1158015612814573d6000803e3d6000fd5b50505050506040513d602081101561282b57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146122ab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526047815260200180612f296047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000141561291d57506001610c7e565b610c7b82612bfa565b600080612932856115fe565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150612972908286866129ad565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b60006020840263ffffffff828460018111156129c557fe5b1415612a935784821b8701925086831015612a2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061302b6032913960400191505060405180910390fd5b64010000000087831c8216860110612a8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061302b6032913960400191505060405180910390fd5b612bb6565b6001846001811115612aa157fe5b1415612b655784821b8703925086831115612b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612d826033913960400191505060405180910390fd5b84818389901c161015612a8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612d826033913960400191505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526045815260200180612fa86045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612bf357507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612c7a5760008555612cc0565b82601f10612c9357805160ff1916838001178555612cc0565b82800160010185558215612cc0579182015b82811115612cc0578251825591602001919060010190612ca5565b50612ccc929150612cd0565b5090565b5b80821115612ccc5760008155600101612cd156fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a26469706673582212203fd7eadafb4fe616540b8c133d4836bed39ee64f95fb37e16f4bc24a8dfe587164736f6c63430007040033", + "bytecode": "0x60c06040523480156200001157600080fd5b50604051620033d1380380620033d1833981810160405260208110156200003757600080fd5b505180806200004633620000be565b6101008110801562000062575080610100816200005f57fe5b06155b6200009f5760405162461bcd60e51b81526004018080602001828103825260378152602001806200339a6037913960400191505060405180910390fd5b60808190528061010081620000b057fe5b0460a0525062000117915050565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b60805160a05161324b6200014f60003980611639528061166552508061169652806116f75280612adc5280612b9a525061324b6000f3fe608060405234801561001057600080fd5b506004361061016b5760003560e01c8063a22cb465116100cd578063ddcc74ab11610081578063eaec5f8111610066578063eaec5f8114610b5e578063f242432a14610b81578063f2fde38b14610c595761016b565b8063ddcc74ab14610b1b578063e985e9c514610b235761016b565b8063b48ab8b6116100b2578063b48ab8b6146108e7578063c4d66de814610ab2578063db90e83c14610ae55761016b565b8063a22cb46514610889578063b390c0ab146108c45761016b565b80634e1273f411610124578063731133e911610109578063731133e9146107195780637e518ec8146107e85780638da5cb5b146108585761016b565b80634e1273f41461059a578063715018a6146107115761016b565b80630e89341c116101555780630e89341c1461027057806320ec271b146103025780632eb2c2d6146103c65761016b565b8062fdd58e146101d257806301ffc9a71461021d575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f554e535550504f525445445f4d4554484f440000000000000000000000000000604482015290519081900360640190fd5b61020b600480360360408110156101e857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c8c565b60408051918252519081900360200190f35b61025c6004803603602081101561023357600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610ce3565b604080519115158252519081900360200190f35b61028d6004803603602081101561028657600080fd5b5035610cf6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102c75781810151838201526020016102af565b50505050905090810190601f1680156102f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103c46004803603604081101561031857600080fd5b81019060208101813564010000000081111561033357600080fd5b82018360208201111561034557600080fd5b8035906020019184602083028401116401000000008311171561036757600080fd5b91939092909160208101903564010000000081111561038557600080fd5b82018360208201111561039757600080fd5b803590602001918460208302840111640100000000831117156103b957600080fd5b509092509050610e49565b005b6103c4600480360360a08110156103dc57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169181019060608101604082013564010000000081111561041d57600080fd5b82018360208201111561042f57600080fd5b8035906020019184602083028401116401000000008311171561045157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156104a157600080fd5b8201836020820111156104b357600080fd5b803590602001918460208302840111640100000000831117156104d557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561052557600080fd5b82018360208201111561053757600080fd5b8035906020019184600183028401116401000000008311171561055957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ebd945050505050565b6106c1600480360360408110156105b057600080fd5b8101906020810181356401000000008111156105cb57600080fd5b8201836020820111156105dd57600080fd5b803590602001918460208302840111640100000000831117156105ff57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561064f57600080fd5b82018360208201111561066157600080fd5b8035906020019184602083028401116401000000008311171561068357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610fc8945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106fd5781810151838201526020016106e5565b505050509050019250505060405180910390f35b6103c4611249565b6103c46004803603608081101561072f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561077357600080fd5b82018360208201111561078557600080fd5b803590602001918460018302840111640100000000831117156107a757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506112e0945050505050565b6103c4600480360360208110156107fe57600080fd5b81019060208101813564010000000081111561081957600080fd5b82018360208201111561082b57600080fd5b8035906020019184600183028401116401000000008311171561084d57600080fd5b509092509050611377565b610860611445565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103c46004803603604081101561089f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515611466565b6103c4600480360360408110156108da57600080fd5b50803590602001356114ff565b6103c4600480360360808110156108fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561093557600080fd5b82018360208201111561094757600080fd5b8035906020019184602083028401116401000000008311171561096957600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156109b957600080fd5b8201836020820111156109cb57600080fd5b803590602001918460208302840111640100000000831117156109ed57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610a3d57600080fd5b820183602082011115610a4f57600080fd5b80359060200191846001830284011164010000000083111715610a7157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061150a945050505050565b6103c460048036036020811015610ac857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166115a1565b610b0260048036036020811015610afb57600080fd5b5035611634565b6040805192835260208301919091528051918290030190f35b61020b611694565b61025c60048036036040811015610b3957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166116b8565b61020b60048036036040811015610b7457600080fd5b50803590602001356116f3565b6103c4600480360360a0811015610b9757600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610be457600080fd5b820183602082011115610bf657600080fd5b80359060200191846001830284011164010000000083111715610c1857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611745945050505050565b6103c460048036036020811015610c6f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611849565b6000806000610c9a84611634565b73ffffffffffffffffffffffffffffffffffffffff871660009081526001602090815260408083208584529091529020549193509150610cda90826116f3565b95945050505050565b6000610cee82611949565b90505b919050565b60606003610d03836119a6565b6040516020018083805460018160011615610100020316600290048015610d615780601f10610d3f576101008083540402835291820191610d61565b820191906000526020600020905b815481529060010190602001808311610d4d575b5050825160208401908083835b60208310610dab57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d6e565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b610eb73385858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250611ad292505050565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610ee65750610ee685336116b8565b610f3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180613033603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610fa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612eaa603d913960400191505060405180910390fd5b610fb385858585611c7b565b610fc1858585855a866120c9565b5050505050565b81518151606091908114611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180612e716039913960400191505060405180910390fd5b6000806110478560008151811061103a57fe5b6020026020010151611634565b915091506000600160008860008151811061105e57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff811180156110d257600080fd5b506040519080825280602002602001820160405280156110fc578160200160208202803683370190505b50905061110983856116f3565b8160008151811061111657fe5b602090810291909101015260015b8681101561123c5761113b89828151811061103a57fe5b909650945082861415806111a4575089818151811061115657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a600183038151811061118357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561121357600160008b83815181106111b957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b61121d84866116f3565b82828151811061122957fe5b6020908102919091010152600101611124565b5098975050505050505050565b33611252611445565b73ffffffffffffffffffffffffffffffffffffffff16146112d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6112de6000612340565b565b336112e9611445565b73ffffffffffffffffffffffffffffffffffffffff161461136b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eb7848484846123bd565b33611380611445565b73ffffffffffffffffffffffffffffffffffffffff161461140257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61144182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061243192505050565b5050565b600054610100900473ffffffffffffffffffffffffffffffffffffffff1690565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b611441338383612444565b33611513611445565b73ffffffffffffffffffffffffffffffffffffffff161461159557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eb7848484846124ae565b60005460ff16156115fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613005602e913960400191505060405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561163181612340565b50565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161166057fe5b0491507f0000000000000000000000000000000000000000000000000000000000000000838161168c57fe5b069050915091565b7f000000000000000000000000000000000000000000000000000000000000000081565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205460ff1690565b60017f000000000000000000000000000000000000000000000000000000000000000090811b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0191029190911c1690565b3373ffffffffffffffffffffffffffffffffffffffff8616148061176e575061176e85336116b8565b6117c3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180612f406037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841661182f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806131296038913960400191505060405180910390fd5b61183b8585858561275b565b610fc1858585855a866127ff565b33611852611445565b73ffffffffffffffffffffffffffffffffffffffff16146118d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611940576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612ee76026913960400191505060405180910390fd5b61163181612340565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561199d57506001610cf1565b610cee826129f0565b6060816119e7575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610cf1565b818060005b8215611a0057600101600a830492506119ec565b60608167ffffffffffffffff81118015611a1957600080fd5b506040519080825280601f01601f191660200182016040528015611a44576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315611ac857600a840660300160f81b82828060019003935081518110611a8e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611a6b565b5095945050505050565b815181518114611b2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d81526020018061306f603d913960400191505060405180910390fd5b60005b81811015611b7357611b6b85858381518110611b4857fe5b6020026020010151858481518110611b5c57fe5b60200260200101516001612a4d565b600101611b30565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611c21578181015183820152602001611c09565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611c60578181015183820152602001611c48565b5050505090500194505050505060405180910390a450505050565b815181518114611cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180612f776042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611d125750600081115b15611f2557600080611d2a8560008151811061103a57fe5b915091506000611da1600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020548387600081518110611d9257fe5b60200260200101516001612ad8565b90506000611e16600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868152602001908152602001600020548488600081518110611e0757fe5b60200260200101516000612ad8565b90508360015b86811015611ed257611e3389828151811061103a57fe5b9096509450818614611ea45773ffffffffffffffffffffffffffffffffffffffff8b8116600090815260016020818152604080842087855280835281852099909955938e16835290815282822094825284815282822095909555878152948452808520549290935291909220549084905b611eb584868a8481518110611d9257fe5b9350611ec883868a8481518110611e0757fe5b9250600101611e1c565b505073ffffffffffffffffffffffffffffffffffffffff808a166000908152600160208181526040808420898552825280842096909655928b168252825283812095815294905292209190915550611fc2565b60005b81811015611fc057828181518110611f3c57fe5b6020026020010151611f6187868481518110611f5457fe5b6020026020010151610c8c565b1015611fb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806130ac6036913960400191505060405180910390fd5b600101611f28565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561206e578181015183820152602001612056565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156120ad578181015183820152602001612095565b5050505090500194505050505060405180910390a45050505050565b6120e88573ffffffffffffffffffffffffffffffffffffffff16612d4b565b156123385760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156121a0578181015183820152602001612188565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156121df5781810151838201526020016121c7565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561221b578181015183820152602001612203565b50505050905090810190601f1680156122485780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561226d57600080fd5b5087f1158015612281573d6000803e3d6000fd5b50505050506040513d602081101561229857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014612336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180612fb9604c913960600191505060405180910390fd5b505b505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6123ca8484846000612a4d565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610eb760008585855a866127ff565b8051611441906003906020840190612dcf565b6124518383836001612a4d565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b8151835114612508576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806131a6603e913960400191505060405180910390fd5b82511561264b576000806125228560008151811061103a57fe5b91509150600061258a600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020548387600081518110611e0757fe5b86519091508360015b82811015612610576125aa89828151811061103a57fe5b90965094508186146125f55773ffffffffffffffffffffffffffffffffffffffff8a166000908152600160209081526040808320948352939052828120949094558584529220549184905b61260684868a8481518110611e0757fe5b9350600101612593565b50505073ffffffffffffffffffffffffffffffffffffffff871660009081526001602090815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156126f85781810151838201526020016126e0565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561273757818101518382015260200161271f565b5050505090500194505050505060405180910390a4610eb760008585855a866120c9565b6127688483836001612a4d565b6127758383836000612a4d565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b61281e8573ffffffffffffffffffffffffffffffffffffffff16612d4b565b156123385760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156128d75781810151838201526020016128bf565b50505050905090810190601f1680156129045780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561292757600080fd5b5087f115801561293b573d6000803e3d6000fd5b50505050506040513d602081101561295257600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014612336576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806130e26047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612a4457506001610cf1565b610cee82612d85565b600080612a5985611634565b73ffffffffffffffffffffffffffffffffffffffff881660009081526001602090815260408083208584529091529020549193509150612a9b90828686612ad8565b73ffffffffffffffffffffffffffffffffffffffff9096166000908152600160209081526040808320948352939052919091209490945550505050565b60007f0000000000000000000000000000000000000000000000000000000000000000848102906001901b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0182846001811115612b3257fe5b1415612c1e5784821b8701925086831015612b98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806131e46032913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060020a87831c8216860110612c19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806131e46032913960400191505060405180910390fd5b612d41565b6001846001811115612c2c57fe5b1415612cf05784821b8703925086831115612c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f0d6033913960400191505060405180910390fd5b84818389901c161015612c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f0d6033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806131616045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612d7e57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612e055760008555612e4b565b82601f10612e1e57805160ff1916838001178555612e4b565b82800160010185558215612e4b579182015b82811115612e4b578251825591602001919060010190612e30565b50612e57929150612e5b565b5090565b5b80821115612e575760008155600101612e5c56fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a26469706673582212207aa31e3bf33165a7de217376704b64081c52d7982a7890b051049405e8cb5c0064736f6c63430007040033455243313135355061636b656442616c616e636523636f6e7374727563746f723a20496e76616c6964204944535f424954535f53495a45", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061016b5760003560e01c8063a22cb465116100cd578063ddcc74ab11610081578063eaec5f8111610066578063eaec5f8114610b5e578063f242432a14610b81578063f2fde38b14610c595761016b565b8063ddcc74ab14610b1b578063e985e9c514610b235761016b565b8063b48ab8b6116100b2578063b48ab8b6146108e7578063c4d66de814610ab2578063db90e83c14610ae55761016b565b8063a22cb46514610889578063b390c0ab146108c45761016b565b80634e1273f411610124578063731133e911610109578063731133e9146107195780637e518ec8146107e85780638da5cb5b146108585761016b565b80634e1273f41461059a578063715018a6146107115761016b565b80630e89341c116101555780630e89341c1461027057806320ec271b146103025780632eb2c2d6146103c65761016b565b8062fdd58e146101d257806301ffc9a71461021d575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f554e535550504f525445445f4d4554484f440000000000000000000000000000604482015290519081900360640190fd5b61020b600480360360408110156101e857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c8c565b60408051918252519081900360200190f35b61025c6004803603602081101561023357600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610ce3565b604080519115158252519081900360200190f35b61028d6004803603602081101561028657600080fd5b5035610cf6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102c75781810151838201526020016102af565b50505050905090810190601f1680156102f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103c46004803603604081101561031857600080fd5b81019060208101813564010000000081111561033357600080fd5b82018360208201111561034557600080fd5b8035906020019184602083028401116401000000008311171561036757600080fd5b91939092909160208101903564010000000081111561038557600080fd5b82018360208201111561039757600080fd5b803590602001918460208302840111640100000000831117156103b957600080fd5b509092509050610e49565b005b6103c4600480360360a08110156103dc57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169181019060608101604082013564010000000081111561041d57600080fd5b82018360208201111561042f57600080fd5b8035906020019184602083028401116401000000008311171561045157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156104a157600080fd5b8201836020820111156104b357600080fd5b803590602001918460208302840111640100000000831117156104d557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561052557600080fd5b82018360208201111561053757600080fd5b8035906020019184600183028401116401000000008311171561055957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ebd945050505050565b6106c1600480360360408110156105b057600080fd5b8101906020810181356401000000008111156105cb57600080fd5b8201836020820111156105dd57600080fd5b803590602001918460208302840111640100000000831117156105ff57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561064f57600080fd5b82018360208201111561066157600080fd5b8035906020019184602083028401116401000000008311171561068357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610fc8945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106fd5781810151838201526020016106e5565b505050509050019250505060405180910390f35b6103c4611249565b6103c46004803603608081101561072f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561077357600080fd5b82018360208201111561078557600080fd5b803590602001918460018302840111640100000000831117156107a757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506112e0945050505050565b6103c4600480360360208110156107fe57600080fd5b81019060208101813564010000000081111561081957600080fd5b82018360208201111561082b57600080fd5b8035906020019184600183028401116401000000008311171561084d57600080fd5b509092509050611377565b610860611445565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103c46004803603604081101561089f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515611466565b6103c4600480360360408110156108da57600080fd5b50803590602001356114ff565b6103c4600480360360808110156108fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561093557600080fd5b82018360208201111561094757600080fd5b8035906020019184602083028401116401000000008311171561096957600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156109b957600080fd5b8201836020820111156109cb57600080fd5b803590602001918460208302840111640100000000831117156109ed57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610a3d57600080fd5b820183602082011115610a4f57600080fd5b80359060200191846001830284011164010000000083111715610a7157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061150a945050505050565b6103c460048036036020811015610ac857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166115a1565b610b0260048036036020811015610afb57600080fd5b5035611634565b6040805192835260208301919091528051918290030190f35b61020b611694565b61025c60048036036040811015610b3957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166116b8565b61020b60048036036040811015610b7457600080fd5b50803590602001356116f3565b6103c4600480360360a0811015610b9757600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610be457600080fd5b820183602082011115610bf657600080fd5b80359060200191846001830284011164010000000083111715610c1857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611745945050505050565b6103c460048036036020811015610c6f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611849565b6000806000610c9a84611634565b73ffffffffffffffffffffffffffffffffffffffff871660009081526001602090815260408083208584529091529020549193509150610cda90826116f3565b95945050505050565b6000610cee82611949565b90505b919050565b60606003610d03836119a6565b6040516020018083805460018160011615610100020316600290048015610d615780601f10610d3f576101008083540402835291820191610d61565b820191906000526020600020905b815481529060010190602001808311610d4d575b5050825160208401908083835b60208310610dab57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d6e565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b610eb73385858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250611ad292505050565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610ee65750610ee685336116b8565b610f3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180613033603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610fa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612eaa603d913960400191505060405180910390fd5b610fb385858585611c7b565b610fc1858585855a866120c9565b5050505050565b81518151606091908114611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180612e716039913960400191505060405180910390fd5b6000806110478560008151811061103a57fe5b6020026020010151611634565b915091506000600160008860008151811061105e57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff811180156110d257600080fd5b506040519080825280602002602001820160405280156110fc578160200160208202803683370190505b50905061110983856116f3565b8160008151811061111657fe5b602090810291909101015260015b8681101561123c5761113b89828151811061103a57fe5b909650945082861415806111a4575089818151811061115657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a600183038151811061118357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561121357600160008b83815181106111b957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b61121d84866116f3565b82828151811061122957fe5b6020908102919091010152600101611124565b5098975050505050505050565b33611252611445565b73ffffffffffffffffffffffffffffffffffffffff16146112d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6112de6000612340565b565b336112e9611445565b73ffffffffffffffffffffffffffffffffffffffff161461136b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eb7848484846123bd565b33611380611445565b73ffffffffffffffffffffffffffffffffffffffff161461140257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61144182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061243192505050565b5050565b600054610100900473ffffffffffffffffffffffffffffffffffffffff1690565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b611441338383612444565b33611513611445565b73ffffffffffffffffffffffffffffffffffffffff161461159557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eb7848484846124ae565b60005460ff16156115fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613005602e913960400191505060405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561163181612340565b50565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161166057fe5b0491507f0000000000000000000000000000000000000000000000000000000000000000838161168c57fe5b069050915091565b7f000000000000000000000000000000000000000000000000000000000000000081565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205460ff1690565b60017f000000000000000000000000000000000000000000000000000000000000000090811b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0191029190911c1690565b3373ffffffffffffffffffffffffffffffffffffffff8616148061176e575061176e85336116b8565b6117c3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180612f406037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841661182f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806131296038913960400191505060405180910390fd5b61183b8585858561275b565b610fc1858585855a866127ff565b33611852611445565b73ffffffffffffffffffffffffffffffffffffffff16146118d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611940576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612ee76026913960400191505060405180910390fd5b61163181612340565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561199d57506001610cf1565b610cee826129f0565b6060816119e7575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610cf1565b818060005b8215611a0057600101600a830492506119ec565b60608167ffffffffffffffff81118015611a1957600080fd5b506040519080825280601f01601f191660200182016040528015611a44576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315611ac857600a840660300160f81b82828060019003935081518110611a8e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611a6b565b5095945050505050565b815181518114611b2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d81526020018061306f603d913960400191505060405180910390fd5b60005b81811015611b7357611b6b85858381518110611b4857fe5b6020026020010151858481518110611b5c57fe5b60200260200101516001612a4d565b600101611b30565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611c21578181015183820152602001611c09565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611c60578181015183820152602001611c48565b5050505090500194505050505060405180910390a450505050565b815181518114611cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180612f776042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611d125750600081115b15611f2557600080611d2a8560008151811061103a57fe5b915091506000611da1600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020548387600081518110611d9257fe5b60200260200101516001612ad8565b90506000611e16600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868152602001908152602001600020548488600081518110611e0757fe5b60200260200101516000612ad8565b90508360015b86811015611ed257611e3389828151811061103a57fe5b9096509450818614611ea45773ffffffffffffffffffffffffffffffffffffffff8b8116600090815260016020818152604080842087855280835281852099909955938e16835290815282822094825284815282822095909555878152948452808520549290935291909220549084905b611eb584868a8481518110611d9257fe5b9350611ec883868a8481518110611e0757fe5b9250600101611e1c565b505073ffffffffffffffffffffffffffffffffffffffff808a166000908152600160208181526040808420898552825280842096909655928b168252825283812095815294905292209190915550611fc2565b60005b81811015611fc057828181518110611f3c57fe5b6020026020010151611f6187868481518110611f5457fe5b6020026020010151610c8c565b1015611fb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806130ac6036913960400191505060405180910390fd5b600101611f28565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561206e578181015183820152602001612056565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156120ad578181015183820152602001612095565b5050505090500194505050505060405180910390a45050505050565b6120e88573ffffffffffffffffffffffffffffffffffffffff16612d4b565b156123385760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156121a0578181015183820152602001612188565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156121df5781810151838201526020016121c7565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561221b578181015183820152602001612203565b50505050905090810190601f1680156122485780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561226d57600080fd5b5087f1158015612281573d6000803e3d6000fd5b50505050506040513d602081101561229857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014612336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180612fb9604c913960600191505060405180910390fd5b505b505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6123ca8484846000612a4d565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610eb760008585855a866127ff565b8051611441906003906020840190612dcf565b6124518383836001612a4d565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b8151835114612508576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806131a6603e913960400191505060405180910390fd5b82511561264b576000806125228560008151811061103a57fe5b91509150600061258a600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020548387600081518110611e0757fe5b86519091508360015b82811015612610576125aa89828151811061103a57fe5b90965094508186146125f55773ffffffffffffffffffffffffffffffffffffffff8a166000908152600160209081526040808320948352939052828120949094558584529220549184905b61260684868a8481518110611e0757fe5b9350600101612593565b50505073ffffffffffffffffffffffffffffffffffffffff871660009081526001602090815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156126f85781810151838201526020016126e0565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561273757818101518382015260200161271f565b5050505090500194505050505060405180910390a4610eb760008585855a866120c9565b6127688483836001612a4d565b6127758383836000612a4d565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b61281e8573ffffffffffffffffffffffffffffffffffffffff16612d4b565b156123385760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156128d75781810151838201526020016128bf565b50505050905090810190601f1680156129045780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561292757600080fd5b5087f115801561293b573d6000803e3d6000fd5b50505050506040513d602081101561295257600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014612336576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806130e26047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612a4457506001610cf1565b610cee82612d85565b600080612a5985611634565b73ffffffffffffffffffffffffffffffffffffffff881660009081526001602090815260408083208584529091529020549193509150612a9b90828686612ad8565b73ffffffffffffffffffffffffffffffffffffffff9096166000908152600160209081526040808320948352939052919091209490945550505050565b60007f0000000000000000000000000000000000000000000000000000000000000000848102906001901b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0182846001811115612b3257fe5b1415612c1e5784821b8701925086831015612b98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806131e46032913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060020a87831c8216860110612c19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806131e46032913960400191505060405180910390fd5b612d41565b6001846001811115612c2c57fe5b1415612cf05784821b8703925086831115612c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f0d6033913960400191505060405180910390fd5b84818389901c161015612c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f0d6033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806131616045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612d7e57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612e055760008555612e4b565b82601f10612e1e57805160ff1916838001178555612e4b565b82800160010185558215612e4b579182015b82811115612e4b578251825591602001919060010190612e30565b50612e57929150612e5b565b5090565b5b80821115612e575760008155600101612e5c56fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a26469706673582212207aa31e3bf33165a7de217376704b64081c52d7982a7890b051049405e8cb5c0064736f6c63430007040033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/src/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json b/src/artifacts/contracts/utils/Initializable.sol/Initializable.json similarity index 63% rename from src/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json rename to src/artifacts/contracts/utils/Initializable.sol/Initializable.json index 8fe86fc..7b58cc2 100644 --- a/src/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +++ b/src/artifacts/contracts/utils/Initializable.sol/Initializable.json @@ -1,7 +1,7 @@ { "_format": "hh-sol-artifact-1", - "contractName": "Context", - "sourceName": "@openzeppelin/contracts/utils/Context.sol", + "contractName": "Initializable", + "sourceName": "contracts/utils/Initializable.sol", "abi": [], "bytecode": "0x", "deployedBytecode": "0x", diff --git a/src/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json b/src/artifacts/contracts/utils/Ownable.sol/Ownable.json similarity index 95% rename from src/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json rename to src/artifacts/contracts/utils/Ownable.sol/Ownable.json index 33254f2..1983eed 100644 --- a/src/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +++ b/src/artifacts/contracts/utils/Ownable.sol/Ownable.json @@ -1,7 +1,7 @@ { "_format": "hh-sol-artifact-1", "contractName": "Ownable", - "sourceName": "@openzeppelin/contracts/access/Ownable.sol", + "sourceName": "contracts/utils/Ownable.sol", "abi": [ { "anonymous": false, diff --git a/src/contracts/NiftyupFactory.sol b/src/contracts/NiftyupFactory.sol new file mode 100644 index 0000000..298a186 --- /dev/null +++ b/src/contracts/NiftyupFactory.sol @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.7.0; + +import '@openzeppelin/contracts/proxy/Clones.sol'; +import "./NiftyupNFT.sol"; + + +contract NiftyupFactory { + mapping(uint256 => NiftyupNFT) public implementations; + + event CreatedNFTContract(address indexed creator, address indexed owner, address indexed nft); + event CreatedImplementationContract(uint256 indexed bits, address indexed implementation); + + /** + * @notice Creates a new NiftyNFT proxy contract instance + * @param _owner Owner of the NFT contract + * @param _bits Number of bits used to store balances + * @return Address of the created NFT contract + */ + function create(address _owner, uint256 _bits) external returns (address) { + NiftyupNFT clone = NiftyupNFT(Clones.clone(implementationFor(_bits))); + clone.initialize(_owner); + + emit CreatedNFTContract(msg.sender, _owner, address(clone)); + + return address(clone); + } + + function implementationFor(uint256 _bits) internal returns (address) { + require(_bits != 0 && _bits < 256 && 256 % _bits == 0, "NiftyupFactory#implementationFor: INVALID_BITS"); + + address existing = address(implementations[_bits]); + if (existing != address(0)) { + return existing; + } + + NiftyupNFT imp = new NiftyupNFT(_bits); + emit CreatedImplementationContract(_bits, address(imp)); + + imp.initialize(address(this)); + implementations[_bits] = imp; + return address(imp); + } +} diff --git a/src/contracts/NiftyupNFT.sol b/src/contracts/NiftyupNFT.sol index d60a46f..334aca5 100644 --- a/src/contracts/NiftyupNFT.sol +++ b/src/contracts/NiftyupNFT.sol @@ -1,11 +1,27 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.7.4; +pragma solidity ^0.7.0; import '@0xsequence/erc-1155/contracts/tokens/ERC1155PackedBalance/ERC1155MintBurnPackedBalance.sol'; import '@0xsequence/erc-1155/contracts/tokens/ERC1155/ERC1155Metadata.sol'; -import '@openzeppelin/contracts/access/Ownable.sol'; -contract NiftyupNFT is ERC1155MintBurnPackedBalance, ERC1155Metadata, Ownable { +import './utils/Initializable.sol'; +import './utils/Ownable.sol'; + + +contract NiftyupNFT is Initializable, Ownable, ERC1155MintBurnPackedBalance, ERC1155Metadata { + constructor (uint256 _bits) ERC1155MintBurnPackedBalance(_bits) {} + + /** + * @notice Constructor for proxy instances, initializes the contract with given values + * @dev This method can only be called once + * @param _owner Owner of the NFT contract + */ + function initialize( + address _owner + ) external initializer { + _transferOwnership(_owner); + } + /** * @notice Mint _amount of tokens of a given id, if allowed. * @param _to The address to mint tokens to diff --git a/src/contracts/utils/Initializable.sol b/src/contracts/utils/Initializable.sol new file mode 100644 index 0000000..5f807e6 --- /dev/null +++ b/src/contracts/utils/Initializable.sol @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.4.24 <0.8.0; + + +/** + * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed + * behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an + * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer + * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. + * + * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as + * possible by providing the encoded function call as the `_data` argument to {UpgradeableProxy-constructor}. + * + * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure + * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. + * + * Source: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/8e0296096449d9b1cd7c5631e917330635244c37/contracts/proxy/Initializable.sol + * + */ +abstract contract Initializable { + /** + * @dev Indicates that the contract has been initialized. + */ + bool private _initialized; + + /** + * @dev Modifier to protect an initializer function from being invoked twice. + */ + modifier initializer() { + require(!_initialized, "Initializable: contract is already initialized"); + _initialized = true; + + _; + } +} diff --git a/src/contracts/utils/Ownable.sol b/src/contracts/utils/Ownable.sol new file mode 100644 index 0000000..3c25b77 --- /dev/null +++ b/src/contracts/utils/Ownable.sol @@ -0,0 +1,76 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.7.0; + + +/** + * @dev Contract module which provides a basic access control mechanism, where + * there is an account (an owner) that can be granted exclusive access to + * specific functions. + * + * By default, the owner account will be the one that deploys the contract. This + * can later be changed with {transferOwnership}. + * + * This module is used through inheritance. It will make available the modifier + * `onlyOwner`, which can be applied to your functions to restrict their use to + * the owner. + * + * Source: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/e6f26b46fc8015f1b9b09bb85297464069302125/contracts/access/Ownable.sol + * + */ +abstract contract Ownable { + address private _owner; + + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + /** + * @dev Initializes the contract setting the deployer as the initial owner. + */ + constructor() { + _transferOwnership(msg.sender); + } + + /** + * @dev Returns the address of the current owner. + */ + function owner() public view virtual returns (address) { + return _owner; + } + + /** + * @dev Throws if called by any account other than the owner. + */ + modifier onlyOwner() { + require(owner() == msg.sender, "Ownable: caller is not the owner"); + _; + } + + /** + * @dev Leaves the contract without owner. It will not be possible to call + * `onlyOwner` functions anymore. Can only be called by the current owner. + * + * NOTE: Renouncing ownership will leave the contract without an owner, + * thereby removing any functionality that is only available to the owner. + */ + function renounceOwnership() public virtual onlyOwner { + _transferOwnership(address(0)); + } + + /** + * @dev Transfers ownership of the contract to a new account (`newOwner`). + * Can only be called by the current owner. + */ + function transferOwnership(address newOwner) public virtual onlyOwner { + require(newOwner != address(0), "Ownable: new owner is the zero address"); + _transferOwnership(newOwner); + } + + /** + * @dev Transfers ownership of the contract to a new account (`newOwner`). + * Internal function without access restriction. + */ + function _transferOwnership(address newOwner) internal virtual { + address oldOwner = _owner; + _owner = newOwner; + emit OwnershipTransferred(oldOwner, newOwner); + } +} diff --git a/src/gen/adapter/factories/NiftyupFactory__factory.js b/src/gen/adapter/factories/NiftyupFactory__factory.js new file mode 100644 index 0000000..d14d770 --- /dev/null +++ b/src/gen/adapter/factories/NiftyupFactory__factory.js @@ -0,0 +1,128 @@ +"use strict"; +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NiftyupFactory__factory = void 0; +const ethers_1 = require("ethers"); +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "bits", + type: "uint256", + }, + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "CreatedImplementationContract", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "creator", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "nft", + type: "address", + }, + ], + name: "CreatedNFTContract", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "_owner", + type: "address", + }, + { + internalType: "uint256", + name: "_bits", + type: "uint256", + }, + ], + name: "create", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "implementations", + outputs: [ + { + internalType: "contract NiftyupNFT", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; +const _bytecode = "0x608060405234801561001057600080fd5b506138ec806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80630ecaea731461003b578063845affc81461009d575b600080fd5b6100746004803603604081101561005157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356100ba565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610074600480360360208110156100b357600080fd5b503561019f565b6000806100ce6100c9846101c7565b6103c8565b90508073ffffffffffffffffffffffffffffffffffffffff1663c4d66de8856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561013957600080fd5b505af115801561014d573d6000803e3d6000fd5b505060405173ffffffffffffffffffffffffffffffffffffffff80851693508716915033907fa6cacc27f7d66563f2e2e5a4bfb58b741f61aea9fe4c9e00d2193079f9f7686790600090a49392505050565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b600081158015906101d9575061010082105b80156101ee575081610100816101eb57fe5b06155b610243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613889602e913960400191505060405180910390fd5b60008281526020819052604090205473ffffffffffffffffffffffffffffffffffffffff1680156102755790506103c3565b600083604051610284906104aa565b90815260405190819003602001906000f0801580156102a7573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff16847fff69ed42ce563c1eabea91641b41e7db8ffeeb60df4c470217df2e82529cdbbb60405160405180910390a3604080517fc4d66de8000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff83169163c4d66de891602480830192600092919082900301818387803b15801561035b57600080fd5b505af115801561036f573d6000803e3d6000fd5b505050600085815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416179055509150505b919050565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528260601b60148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f091505073ffffffffffffffffffffffffffffffffffffffff81166103c357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f455243313136373a20637265617465206661696c656400000000000000000000604482015290519081900360640190fd5b6133d1806104b88339019056fe60c06040523480156200001157600080fd5b50604051620033d1380380620033d1833981810160405260208110156200003757600080fd5b505180806200004633620000be565b6101008110801562000062575080610100816200005f57fe5b06155b6200009f5760405162461bcd60e51b81526004018080602001828103825260378152602001806200339a6037913960400191505060405180910390fd5b60808190528061010081620000b057fe5b0460a0525062000117915050565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b60805160a05161324b6200014f60003980611639528061166552508061169652806116f75280612adc5280612b9a525061324b6000f3fe608060405234801561001057600080fd5b506004361061016b5760003560e01c8063a22cb465116100cd578063ddcc74ab11610081578063eaec5f8111610066578063eaec5f8114610b5e578063f242432a14610b81578063f2fde38b14610c595761016b565b8063ddcc74ab14610b1b578063e985e9c514610b235761016b565b8063b48ab8b6116100b2578063b48ab8b6146108e7578063c4d66de814610ab2578063db90e83c14610ae55761016b565b8063a22cb46514610889578063b390c0ab146108c45761016b565b80634e1273f411610124578063731133e911610109578063731133e9146107195780637e518ec8146107e85780638da5cb5b146108585761016b565b80634e1273f41461059a578063715018a6146107115761016b565b80630e89341c116101555780630e89341c1461027057806320ec271b146103025780632eb2c2d6146103c65761016b565b8062fdd58e146101d257806301ffc9a71461021d575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f554e535550504f525445445f4d4554484f440000000000000000000000000000604482015290519081900360640190fd5b61020b600480360360408110156101e857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c8c565b60408051918252519081900360200190f35b61025c6004803603602081101561023357600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610ce3565b604080519115158252519081900360200190f35b61028d6004803603602081101561028657600080fd5b5035610cf6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102c75781810151838201526020016102af565b50505050905090810190601f1680156102f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103c46004803603604081101561031857600080fd5b81019060208101813564010000000081111561033357600080fd5b82018360208201111561034557600080fd5b8035906020019184602083028401116401000000008311171561036757600080fd5b91939092909160208101903564010000000081111561038557600080fd5b82018360208201111561039757600080fd5b803590602001918460208302840111640100000000831117156103b957600080fd5b509092509050610e49565b005b6103c4600480360360a08110156103dc57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169181019060608101604082013564010000000081111561041d57600080fd5b82018360208201111561042f57600080fd5b8035906020019184602083028401116401000000008311171561045157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156104a157600080fd5b8201836020820111156104b357600080fd5b803590602001918460208302840111640100000000831117156104d557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561052557600080fd5b82018360208201111561053757600080fd5b8035906020019184600183028401116401000000008311171561055957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ebd945050505050565b6106c1600480360360408110156105b057600080fd5b8101906020810181356401000000008111156105cb57600080fd5b8201836020820111156105dd57600080fd5b803590602001918460208302840111640100000000831117156105ff57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561064f57600080fd5b82018360208201111561066157600080fd5b8035906020019184602083028401116401000000008311171561068357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610fc8945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106fd5781810151838201526020016106e5565b505050509050019250505060405180910390f35b6103c4611249565b6103c46004803603608081101561072f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561077357600080fd5b82018360208201111561078557600080fd5b803590602001918460018302840111640100000000831117156107a757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506112e0945050505050565b6103c4600480360360208110156107fe57600080fd5b81019060208101813564010000000081111561081957600080fd5b82018360208201111561082b57600080fd5b8035906020019184600183028401116401000000008311171561084d57600080fd5b509092509050611377565b610860611445565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103c46004803603604081101561089f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515611466565b6103c4600480360360408110156108da57600080fd5b50803590602001356114ff565b6103c4600480360360808110156108fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561093557600080fd5b82018360208201111561094757600080fd5b8035906020019184602083028401116401000000008311171561096957600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156109b957600080fd5b8201836020820111156109cb57600080fd5b803590602001918460208302840111640100000000831117156109ed57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610a3d57600080fd5b820183602082011115610a4f57600080fd5b80359060200191846001830284011164010000000083111715610a7157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061150a945050505050565b6103c460048036036020811015610ac857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166115a1565b610b0260048036036020811015610afb57600080fd5b5035611634565b6040805192835260208301919091528051918290030190f35b61020b611694565b61025c60048036036040811015610b3957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166116b8565b61020b60048036036040811015610b7457600080fd5b50803590602001356116f3565b6103c4600480360360a0811015610b9757600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610be457600080fd5b820183602082011115610bf657600080fd5b80359060200191846001830284011164010000000083111715610c1857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611745945050505050565b6103c460048036036020811015610c6f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611849565b6000806000610c9a84611634565b73ffffffffffffffffffffffffffffffffffffffff871660009081526001602090815260408083208584529091529020549193509150610cda90826116f3565b95945050505050565b6000610cee82611949565b90505b919050565b60606003610d03836119a6565b6040516020018083805460018160011615610100020316600290048015610d615780601f10610d3f576101008083540402835291820191610d61565b820191906000526020600020905b815481529060010190602001808311610d4d575b5050825160208401908083835b60208310610dab57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d6e565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b610eb73385858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250611ad292505050565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610ee65750610ee685336116b8565b610f3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180613033603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610fa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612eaa603d913960400191505060405180910390fd5b610fb385858585611c7b565b610fc1858585855a866120c9565b5050505050565b81518151606091908114611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180612e716039913960400191505060405180910390fd5b6000806110478560008151811061103a57fe5b6020026020010151611634565b915091506000600160008860008151811061105e57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff811180156110d257600080fd5b506040519080825280602002602001820160405280156110fc578160200160208202803683370190505b50905061110983856116f3565b8160008151811061111657fe5b602090810291909101015260015b8681101561123c5761113b89828151811061103a57fe5b909650945082861415806111a4575089818151811061115657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a600183038151811061118357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561121357600160008b83815181106111b957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b61121d84866116f3565b82828151811061122957fe5b6020908102919091010152600101611124565b5098975050505050505050565b33611252611445565b73ffffffffffffffffffffffffffffffffffffffff16146112d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6112de6000612340565b565b336112e9611445565b73ffffffffffffffffffffffffffffffffffffffff161461136b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eb7848484846123bd565b33611380611445565b73ffffffffffffffffffffffffffffffffffffffff161461140257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61144182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061243192505050565b5050565b600054610100900473ffffffffffffffffffffffffffffffffffffffff1690565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b611441338383612444565b33611513611445565b73ffffffffffffffffffffffffffffffffffffffff161461159557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eb7848484846124ae565b60005460ff16156115fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613005602e913960400191505060405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561163181612340565b50565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161166057fe5b0491507f0000000000000000000000000000000000000000000000000000000000000000838161168c57fe5b069050915091565b7f000000000000000000000000000000000000000000000000000000000000000081565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205460ff1690565b60017f000000000000000000000000000000000000000000000000000000000000000090811b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0191029190911c1690565b3373ffffffffffffffffffffffffffffffffffffffff8616148061176e575061176e85336116b8565b6117c3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180612f406037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841661182f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806131296038913960400191505060405180910390fd5b61183b8585858561275b565b610fc1858585855a866127ff565b33611852611445565b73ffffffffffffffffffffffffffffffffffffffff16146118d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611940576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612ee76026913960400191505060405180910390fd5b61163181612340565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561199d57506001610cf1565b610cee826129f0565b6060816119e7575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610cf1565b818060005b8215611a0057600101600a830492506119ec565b60608167ffffffffffffffff81118015611a1957600080fd5b506040519080825280601f01601f191660200182016040528015611a44576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315611ac857600a840660300160f81b82828060019003935081518110611a8e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611a6b565b5095945050505050565b815181518114611b2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d81526020018061306f603d913960400191505060405180910390fd5b60005b81811015611b7357611b6b85858381518110611b4857fe5b6020026020010151858481518110611b5c57fe5b60200260200101516001612a4d565b600101611b30565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611c21578181015183820152602001611c09565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611c60578181015183820152602001611c48565b5050505090500194505050505060405180910390a450505050565b815181518114611cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180612f776042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611d125750600081115b15611f2557600080611d2a8560008151811061103a57fe5b915091506000611da1600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020548387600081518110611d9257fe5b60200260200101516001612ad8565b90506000611e16600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868152602001908152602001600020548488600081518110611e0757fe5b60200260200101516000612ad8565b90508360015b86811015611ed257611e3389828151811061103a57fe5b9096509450818614611ea45773ffffffffffffffffffffffffffffffffffffffff8b8116600090815260016020818152604080842087855280835281852099909955938e16835290815282822094825284815282822095909555878152948452808520549290935291909220549084905b611eb584868a8481518110611d9257fe5b9350611ec883868a8481518110611e0757fe5b9250600101611e1c565b505073ffffffffffffffffffffffffffffffffffffffff808a166000908152600160208181526040808420898552825280842096909655928b168252825283812095815294905292209190915550611fc2565b60005b81811015611fc057828181518110611f3c57fe5b6020026020010151611f6187868481518110611f5457fe5b6020026020010151610c8c565b1015611fb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806130ac6036913960400191505060405180910390fd5b600101611f28565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561206e578181015183820152602001612056565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156120ad578181015183820152602001612095565b5050505090500194505050505060405180910390a45050505050565b6120e88573ffffffffffffffffffffffffffffffffffffffff16612d4b565b156123385760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156121a0578181015183820152602001612188565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156121df5781810151838201526020016121c7565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561221b578181015183820152602001612203565b50505050905090810190601f1680156122485780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561226d57600080fd5b5087f1158015612281573d6000803e3d6000fd5b50505050506040513d602081101561229857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014612336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180612fb9604c913960600191505060405180910390fd5b505b505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6123ca8484846000612a4d565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610eb760008585855a866127ff565b8051611441906003906020840190612dcf565b6124518383836001612a4d565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b8151835114612508576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806131a6603e913960400191505060405180910390fd5b82511561264b576000806125228560008151811061103a57fe5b91509150600061258a600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020548387600081518110611e0757fe5b86519091508360015b82811015612610576125aa89828151811061103a57fe5b90965094508186146125f55773ffffffffffffffffffffffffffffffffffffffff8a166000908152600160209081526040808320948352939052828120949094558584529220549184905b61260684868a8481518110611e0757fe5b9350600101612593565b50505073ffffffffffffffffffffffffffffffffffffffff871660009081526001602090815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156126f85781810151838201526020016126e0565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561273757818101518382015260200161271f565b5050505090500194505050505060405180910390a4610eb760008585855a866120c9565b6127688483836001612a4d565b6127758383836000612a4d565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b61281e8573ffffffffffffffffffffffffffffffffffffffff16612d4b565b156123385760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156128d75781810151838201526020016128bf565b50505050905090810190601f1680156129045780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561292757600080fd5b5087f115801561293b573d6000803e3d6000fd5b50505050506040513d602081101561295257600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014612336576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806130e26047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612a4457506001610cf1565b610cee82612d85565b600080612a5985611634565b73ffffffffffffffffffffffffffffffffffffffff881660009081526001602090815260408083208584529091529020549193509150612a9b90828686612ad8565b73ffffffffffffffffffffffffffffffffffffffff9096166000908152600160209081526040808320948352939052919091209490945550505050565b60007f0000000000000000000000000000000000000000000000000000000000000000848102906001901b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0182846001811115612b3257fe5b1415612c1e5784821b8701925086831015612b98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806131e46032913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060020a87831c8216860110612c19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806131e46032913960400191505060405180910390fd5b612d41565b6001846001811115612c2c57fe5b1415612cf05784821b8703925086831115612c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f0d6033913960400191505060405180910390fd5b84818389901c161015612c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f0d6033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806131616045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612d7e57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612e055760008555612e4b565b82601f10612e1e57805160ff1916838001178555612e4b565b82800160010185558215612e4b579182015b82811115612e4b578251825591602001919060010190612e30565b50612e57929150612e5b565b5090565b5b80821115612e575760008155600101612e5c56fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a26469706673582212207aa31e3bf33165a7de217376704b64081c52d7982a7890b051049405e8cb5c0064736f6c63430007040033455243313135355061636b656442616c616e636523636f6e7374727563746f723a20496e76616c6964204944535f424954535f53495a454e696674797570466163746f727923696d706c656d656e746174696f6e466f723a20494e56414c49445f42495453a26469706673582212208b8087bcad1caf5147244f3748a9aa42eaba6c0cc11b4a174974affab494a46764736f6c63430007040033"; +class NiftyupFactory__factory extends ethers_1.ContractFactory { + constructor(...args) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } + else { + super(...args); + } + } + deploy(overrides) { + return super.deploy(overrides || {}); + } + getDeployTransaction(overrides) { + return super.getDeployTransaction(overrides || {}); + } + attach(address) { + return super.attach(address); + } + connect(signer) { + return super.connect(signer); + } + static createInterface() { + return new ethers_1.utils.Interface(_abi); + } + static connect(address, signerOrProvider) { + return new ethers_1.Contract(address, _abi, signerOrProvider); + } +} +exports.NiftyupFactory__factory = NiftyupFactory__factory; +NiftyupFactory__factory.bytecode = _bytecode; +NiftyupFactory__factory.abi = _abi; diff --git a/src/gen/adapter/factories/NiftyupNFT__factory.js b/src/gen/adapter/factories/NiftyupNFT__factory.js index 2de2a39..0973823 100644 --- a/src/gen/adapter/factories/NiftyupNFT__factory.js +++ b/src/gen/adapter/factories/NiftyupNFT__factory.js @@ -6,6 +6,17 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.NiftyupNFT__factory = void 0; const ethers_1 = require("ethers"); const _abi = [ + { + inputs: [ + { + internalType: "uint256", + name: "_bits", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, { anonymous: false, inputs: [ @@ -147,6 +158,19 @@ const _abi = [ stateMutability: "nonpayable", type: "fallback", }, + { + inputs: [], + name: "IDS_BITS_SIZE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -280,7 +304,7 @@ const _abi = [ type: "uint256", }, ], - stateMutability: "pure", + stateMutability: "view", type: "function", }, { @@ -304,7 +328,20 @@ const _abi = [ type: "uint256", }, ], - stateMutability: "pure", + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_owner", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", type: "function", }, { @@ -528,16 +565,21 @@ const _abi = [ type: "function", }, ]; -const _bytecode = "0x608060405234801561001057600080fd5b50600061001b61006e565b600380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610072565b3390565b61309280620000826000396000f3fe608060405234801561001057600080fd5b50600436106101355760003560e01c80638da5cb5b116100b2578063db90e83c11610081578063eaec5f8111610066578063eaec5f8114610aed578063f242432a14610b10578063f2fde38b14610be857610135565b8063db90e83c14610a7c578063e985e9c514610ab257610135565b80638da5cb5b14610822578063a22cb46514610853578063b390c0ab1461088e578063b48ab8b6146108b157610135565b80632eb2c2d611610109578063715018a6116100ee578063715018a6146106db578063731133e9146106e35780637e518ec8146107b257610135565b80632eb2c2d6146103905780634e1273f41461056457610135565b8062fdd58e1461019c57806301ffc9a7146101e75780630e89341c1461023a57806320ec271b146102cc575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f554e535550504f525445445f4d4554484f440000000000000000000000000000604482015290519081900360640190fd5b6101d5600480360360408110156101b257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c1b565b60408051918252519081900360200190f35b610226600480360360208110156101fd57600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610c70565b604080519115158252519081900360200190f35b6102576004803603602081101561025057600080fd5b5035610c83565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610291578181015183820152602001610279565b50505050905090810190601f1680156102be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61038e600480360360408110156102e257600080fd5b8101906020810181356401000000008111156102fd57600080fd5b82018360208201111561030f57600080fd5b8035906020019184602083028401116401000000008311171561033157600080fd5b91939092909160208101903564010000000081111561034f57600080fd5b82018360208201111561036157600080fd5b8035906020019184602083028401116401000000008311171561038357600080fd5b509092509050610dd6565b005b61038e600480360360a08110156103a657600080fd5b73ffffffffffffffffffffffffffffffffffffffff82358116926020810135909116918101906060810160408201356401000000008111156103e757600080fd5b8201836020820111156103f957600080fd5b8035906020019184602083028401116401000000008311171561041b57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561046b57600080fd5b82018360208201111561047d57600080fd5b8035906020019184602083028401116401000000008311171561049f57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156104ef57600080fd5b82018360208201111561050157600080fd5b8035906020019184600183028401116401000000008311171561052357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e4a945050505050565b61068b6004803603604081101561057a57600080fd5b81019060208101813564010000000081111561059557600080fd5b8201836020820111156105a757600080fd5b803590602001918460208302840111640100000000831117156105c957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561061957600080fd5b82018360208201111561062b57600080fd5b8035906020019184602083028401116401000000008311171561064d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610f55945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106c75781810151838201526020016106af565b505050509050019250505060405180910390f35b61038e6111d4565b61038e600480360360808110156106f957600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561073d57600080fd5b82018360208201111561074f57600080fd5b8035906020019184600183028401116401000000008311171561077157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506112eb945050505050565b61038e600480360360208110156107c857600080fd5b8101906020810181356401000000008111156107e357600080fd5b8201836020820111156107f557600080fd5b8035906020019184600183028401116401000000008311171561081757600080fd5b50909250905061139f565b61082a61148a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61038e6004803603604081101561086957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013515156114a6565b61038e600480360360408110156108a457600080fd5b508035906020013561153f565b61038e600480360360808110156108c757600080fd5b73ffffffffffffffffffffffffffffffffffffffff82351691908101906040810160208201356401000000008111156108ff57600080fd5b82018360208201111561091157600080fd5b8035906020019184602083028401116401000000008311171561093357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561098357600080fd5b82018360208201111561099557600080fd5b803590602001918460208302840111640100000000831117156109b757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610a0757600080fd5b820183602082011115610a1957600080fd5b80359060200191846001830284011164010000000083111715610a3b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061154a945050505050565b610a9960048036036020811015610a9257600080fd5b50356115fe565b6040805192835260208301919091528051918290030190f35b61022660048036036040811015610ac857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661160b565b6101d560048036036040811015610b0357600080fd5b5080359060200135611646565b61038e600480360360a0811015610b2657600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610b7357600080fd5b820183602082011115610b8557600080fd5b80359060200191846001830284011164010000000083111715610ba757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611659945050505050565b61038e60048036036020811015610bfe57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661175d565b6000806000610c29846115fe565b73ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083208584529091529020549193509150610c679082611646565b95945050505050565b6000610c7b826118ff565b90505b919050565b60606002610c908361195c565b6040516020018083805460018160011615610100020316600290048015610cee5780601f10610ccc576101008083540402835291820191610cee565b820191906000526020600020905b815481529060010190602001808311610cda575b5050825160208401908083835b60208310610d3857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610cfb565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b610e443385858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250611a8892505050565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610e735750610e73853361160b565b610ec8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180612e7a603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610f34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612d1f603d913960400191505060405180910390fd5b610f4085858585611c31565b610f4e858585855a8661203e565b5050505050565b81518151606091908114610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180612ce66039913960400191505060405180910390fd5b600080610fd485600081518110610fc757fe5b60200260200101516115fe565b91509150600080600088600081518110610fea57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561105e57600080fd5b50604051908082528060200260200182016040528015611088578160200160208202803683370190505b5090506110958385611646565b816000815181106110a257fe5b602090810291909101015260015b868110156111c7576110c7898281518110610fc757fe5b9096509450828614158061113057508981815181106110e257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a600183038151811061110f57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561119e576000808b838151811061114457fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6111a88486611646565b8282815181106111b457fe5b60209081029190910101526001016110b0565b5098975050505050505050565b6111dc6122b5565b73ffffffffffffffffffffffffffffffffffffffff166111fa61148a565b73ffffffffffffffffffffffffffffffffffffffff161461127c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60035460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6112f36122b5565b73ffffffffffffffffffffffffffffffffffffffff1661131161148a565b73ffffffffffffffffffffffffffffffffffffffff161461139357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e44848484846122b9565b6113a76122b5565b73ffffffffffffffffffffffffffffffffffffffff166113c561148a565b73ffffffffffffffffffffffffffffffffffffffff161461144757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61148682828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061232d92505050565b5050565b60035473ffffffffffffffffffffffffffffffffffffffff1690565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b611486338383612340565b6115526122b5565b73ffffffffffffffffffffffffffffffffffffffff1661157061148a565b73ffffffffffffffffffffffffffffffffffffffff16146115f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e44848484846123aa565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff861614806116825750611682853361160b565b6116d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180612db56037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416611743576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180612f706038913960400191505060405180910390fd5b61174f85858585612634565b610f4e858585855a866126d8565b6117656122b5565b73ffffffffffffffffffffffffffffffffffffffff1661178361148a565b73ffffffffffffffffffffffffffffffffffffffff161461180557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611871576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612d5c6026913960400191505060405180910390fd5b60035460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561195357506001610c7e565b610c7b826128c9565b60608161199d575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610c7e565b818060005b82156119b657600101600a830492506119a2565b60608167ffffffffffffffff811180156119cf57600080fd5b506040519080825280601f01601f1916602001820160405280156119fa576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315611a7e57600a840660300160f81b82828060019003935081518110611a4457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611a21565b5095945050505050565b815181518114611ae3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612eb6603d913960400191505060405180910390fd5b60005b81811015611b2957611b2185858381518110611afe57fe5b6020026020010151858481518110611b1257fe5b60200260200101516001612926565b600101611ae6565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611bd7578181015183820152602001611bbf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611c16578181015183820152602001611bfe565b5050505090500194505050505060405180910390a450505050565b815181518114611c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180612dec6042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611cc85750600081115b15611e9a57600080611ce085600081518110610fc757fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091611d389190849088908590611d2957fe5b602002602001015160016129ad565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091611d8e9190859089908590611d7f57fe5b602002602001015160006129ad565b90508360015b86811015611e4857611dab898281518110610fc757fe5b9096509450818614611e1a5773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b611e2b84868a8481518110611d2957fe5b9350611e3e83868a8481518110611d7f57fe5b9250600101611d94565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550611f37565b60005b81811015611f3557828181518110611eb157fe5b6020026020010151611ed687868481518110611ec957fe5b6020026020010151610c1b565b1015611f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180612ef36036913960400191505060405180910390fd5b600101611e9d565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611fe3578181015183820152602001611fcb565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561202257818101518382015260200161200a565b5050505090500194505050505060405180910390a45050505050565b61205d8573ffffffffffffffffffffffffffffffffffffffff16612bc0565b156122ad5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156121155781810151838201526020016120fd565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561215457818101518382015260200161213c565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015612190578181015183820152602001612178565b50505050905090810190601f1680156121bd5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b1580156121e257600080fd5b5087f11580156121f6573d6000803e3d6000fd5b50505050506040513d602081101561220d57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c8100000000000000000000000000000000000000000000000000000000146122ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180612e2e604c913960600191505060405180910390fd5b505b505050505050565b3390565b6122c68484846000612926565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610e4460008585855a866126d8565b8051611486906002906020840190612c44565b61234d8383836001612926565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b8151835114612404576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180612fed603e913960400191505060405180910390fd5b8251156125245760008061241e85600081518110610fc757fe5b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091528120548751939550919350916124679190849088908590611d7f57fe5b86519091508360015b828110156124eb57612487898281518110610fc757fe5b90965094508186146124d05773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b6124e184868a8481518110611d7f57fe5b9350600101612470565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156125d15781810151838201526020016125b9565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156126105781810151838201526020016125f8565b5050505090500194505050505060405180910390a4610e4460008585855a8661203e565b6126418483836001612926565b61264e8383836000612926565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6126f78573ffffffffffffffffffffffffffffffffffffffff16612bc0565b156122ad5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156127b0578181015183820152602001612798565b50505050905090810190601f1680156127dd5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561280057600080fd5b5087f1158015612814573d6000803e3d6000fd5b50505050506040513d602081101561282b57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146122ab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526047815260200180612f296047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000141561291d57506001610c7e565b610c7b82612bfa565b600080612932856115fe565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150612972908286866129ad565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b60006020840263ffffffff828460018111156129c557fe5b1415612a935784821b8701925086831015612a2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061302b6032913960400191505060405180910390fd5b64010000000087831c8216860110612a8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061302b6032913960400191505060405180910390fd5b612bb6565b6001846001811115612aa157fe5b1415612b655784821b8703925086831115612b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612d826033913960400191505060405180910390fd5b84818389901c161015612a8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612d826033913960400191505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526045815260200180612fa86045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612bf357507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612c7a5760008555612cc0565b82601f10612c9357805160ff1916838001178555612cc0565b82800160010185558215612cc0579182015b82811115612cc0578251825591602001919060010190612ca5565b50612ccc929150612cd0565b5090565b5b80821115612ccc5760008155600101612cd156fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a26469706673582212203fd7eadafb4fe616540b8c133d4836bed39ee64f95fb37e16f4bc24a8dfe587164736f6c63430007040033"; +const _bytecode = "0x60c06040523480156200001157600080fd5b50604051620033d1380380620033d1833981810160405260208110156200003757600080fd5b505180806200004633620000be565b6101008110801562000062575080610100816200005f57fe5b06155b6200009f5760405162461bcd60e51b81526004018080602001828103825260378152602001806200339a6037913960400191505060405180910390fd5b60808190528061010081620000b057fe5b0460a0525062000117915050565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b60805160a05161324b6200014f60003980611639528061166552508061169652806116f75280612adc5280612b9a525061324b6000f3fe608060405234801561001057600080fd5b506004361061016b5760003560e01c8063a22cb465116100cd578063ddcc74ab11610081578063eaec5f8111610066578063eaec5f8114610b5e578063f242432a14610b81578063f2fde38b14610c595761016b565b8063ddcc74ab14610b1b578063e985e9c514610b235761016b565b8063b48ab8b6116100b2578063b48ab8b6146108e7578063c4d66de814610ab2578063db90e83c14610ae55761016b565b8063a22cb46514610889578063b390c0ab146108c45761016b565b80634e1273f411610124578063731133e911610109578063731133e9146107195780637e518ec8146107e85780638da5cb5b146108585761016b565b80634e1273f41461059a578063715018a6146107115761016b565b80630e89341c116101555780630e89341c1461027057806320ec271b146103025780632eb2c2d6146103c65761016b565b8062fdd58e146101d257806301ffc9a71461021d575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f554e535550504f525445445f4d4554484f440000000000000000000000000000604482015290519081900360640190fd5b61020b600480360360408110156101e857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c8c565b60408051918252519081900360200190f35b61025c6004803603602081101561023357600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610ce3565b604080519115158252519081900360200190f35b61028d6004803603602081101561028657600080fd5b5035610cf6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102c75781810151838201526020016102af565b50505050905090810190601f1680156102f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103c46004803603604081101561031857600080fd5b81019060208101813564010000000081111561033357600080fd5b82018360208201111561034557600080fd5b8035906020019184602083028401116401000000008311171561036757600080fd5b91939092909160208101903564010000000081111561038557600080fd5b82018360208201111561039757600080fd5b803590602001918460208302840111640100000000831117156103b957600080fd5b509092509050610e49565b005b6103c4600480360360a08110156103dc57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169181019060608101604082013564010000000081111561041d57600080fd5b82018360208201111561042f57600080fd5b8035906020019184602083028401116401000000008311171561045157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156104a157600080fd5b8201836020820111156104b357600080fd5b803590602001918460208302840111640100000000831117156104d557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561052557600080fd5b82018360208201111561053757600080fd5b8035906020019184600183028401116401000000008311171561055957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ebd945050505050565b6106c1600480360360408110156105b057600080fd5b8101906020810181356401000000008111156105cb57600080fd5b8201836020820111156105dd57600080fd5b803590602001918460208302840111640100000000831117156105ff57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561064f57600080fd5b82018360208201111561066157600080fd5b8035906020019184602083028401116401000000008311171561068357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610fc8945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106fd5781810151838201526020016106e5565b505050509050019250505060405180910390f35b6103c4611249565b6103c46004803603608081101561072f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561077357600080fd5b82018360208201111561078557600080fd5b803590602001918460018302840111640100000000831117156107a757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506112e0945050505050565b6103c4600480360360208110156107fe57600080fd5b81019060208101813564010000000081111561081957600080fd5b82018360208201111561082b57600080fd5b8035906020019184600183028401116401000000008311171561084d57600080fd5b509092509050611377565b610860611445565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103c46004803603604081101561089f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515611466565b6103c4600480360360408110156108da57600080fd5b50803590602001356114ff565b6103c4600480360360808110156108fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561093557600080fd5b82018360208201111561094757600080fd5b8035906020019184602083028401116401000000008311171561096957600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156109b957600080fd5b8201836020820111156109cb57600080fd5b803590602001918460208302840111640100000000831117156109ed57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610a3d57600080fd5b820183602082011115610a4f57600080fd5b80359060200191846001830284011164010000000083111715610a7157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061150a945050505050565b6103c460048036036020811015610ac857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166115a1565b610b0260048036036020811015610afb57600080fd5b5035611634565b6040805192835260208301919091528051918290030190f35b61020b611694565b61025c60048036036040811015610b3957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166116b8565b61020b60048036036040811015610b7457600080fd5b50803590602001356116f3565b6103c4600480360360a0811015610b9757600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610be457600080fd5b820183602082011115610bf657600080fd5b80359060200191846001830284011164010000000083111715610c1857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611745945050505050565b6103c460048036036020811015610c6f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611849565b6000806000610c9a84611634565b73ffffffffffffffffffffffffffffffffffffffff871660009081526001602090815260408083208584529091529020549193509150610cda90826116f3565b95945050505050565b6000610cee82611949565b90505b919050565b60606003610d03836119a6565b6040516020018083805460018160011615610100020316600290048015610d615780601f10610d3f576101008083540402835291820191610d61565b820191906000526020600020905b815481529060010190602001808311610d4d575b5050825160208401908083835b60208310610dab57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d6e565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b610eb73385858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250611ad292505050565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610ee65750610ee685336116b8565b610f3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180613033603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610fa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612eaa603d913960400191505060405180910390fd5b610fb385858585611c7b565b610fc1858585855a866120c9565b5050505050565b81518151606091908114611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180612e716039913960400191505060405180910390fd5b6000806110478560008151811061103a57fe5b6020026020010151611634565b915091506000600160008860008151811061105e57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff811180156110d257600080fd5b506040519080825280602002602001820160405280156110fc578160200160208202803683370190505b50905061110983856116f3565b8160008151811061111657fe5b602090810291909101015260015b8681101561123c5761113b89828151811061103a57fe5b909650945082861415806111a4575089818151811061115657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a600183038151811061118357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561121357600160008b83815181106111b957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b61121d84866116f3565b82828151811061122957fe5b6020908102919091010152600101611124565b5098975050505050505050565b33611252611445565b73ffffffffffffffffffffffffffffffffffffffff16146112d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6112de6000612340565b565b336112e9611445565b73ffffffffffffffffffffffffffffffffffffffff161461136b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eb7848484846123bd565b33611380611445565b73ffffffffffffffffffffffffffffffffffffffff161461140257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61144182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061243192505050565b5050565b600054610100900473ffffffffffffffffffffffffffffffffffffffff1690565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b611441338383612444565b33611513611445565b73ffffffffffffffffffffffffffffffffffffffff161461159557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eb7848484846124ae565b60005460ff16156115fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613005602e913960400191505060405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561163181612340565b50565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161166057fe5b0491507f0000000000000000000000000000000000000000000000000000000000000000838161168c57fe5b069050915091565b7f000000000000000000000000000000000000000000000000000000000000000081565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205460ff1690565b60017f000000000000000000000000000000000000000000000000000000000000000090811b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0191029190911c1690565b3373ffffffffffffffffffffffffffffffffffffffff8616148061176e575061176e85336116b8565b6117c3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180612f406037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841661182f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806131296038913960400191505060405180910390fd5b61183b8585858561275b565b610fc1858585855a866127ff565b33611852611445565b73ffffffffffffffffffffffffffffffffffffffff16146118d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611940576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612ee76026913960400191505060405180910390fd5b61163181612340565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561199d57506001610cf1565b610cee826129f0565b6060816119e7575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610cf1565b818060005b8215611a0057600101600a830492506119ec565b60608167ffffffffffffffff81118015611a1957600080fd5b506040519080825280601f01601f191660200182016040528015611a44576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315611ac857600a840660300160f81b82828060019003935081518110611a8e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611a6b565b5095945050505050565b815181518114611b2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d81526020018061306f603d913960400191505060405180910390fd5b60005b81811015611b7357611b6b85858381518110611b4857fe5b6020026020010151858481518110611b5c57fe5b60200260200101516001612a4d565b600101611b30565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611c21578181015183820152602001611c09565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611c60578181015183820152602001611c48565b5050505090500194505050505060405180910390a450505050565b815181518114611cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180612f776042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611d125750600081115b15611f2557600080611d2a8560008151811061103a57fe5b915091506000611da1600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020548387600081518110611d9257fe5b60200260200101516001612ad8565b90506000611e16600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868152602001908152602001600020548488600081518110611e0757fe5b60200260200101516000612ad8565b90508360015b86811015611ed257611e3389828151811061103a57fe5b9096509450818614611ea45773ffffffffffffffffffffffffffffffffffffffff8b8116600090815260016020818152604080842087855280835281852099909955938e16835290815282822094825284815282822095909555878152948452808520549290935291909220549084905b611eb584868a8481518110611d9257fe5b9350611ec883868a8481518110611e0757fe5b9250600101611e1c565b505073ffffffffffffffffffffffffffffffffffffffff808a166000908152600160208181526040808420898552825280842096909655928b168252825283812095815294905292209190915550611fc2565b60005b81811015611fc057828181518110611f3c57fe5b6020026020010151611f6187868481518110611f5457fe5b6020026020010151610c8c565b1015611fb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806130ac6036913960400191505060405180910390fd5b600101611f28565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561206e578181015183820152602001612056565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156120ad578181015183820152602001612095565b5050505090500194505050505060405180910390a45050505050565b6120e88573ffffffffffffffffffffffffffffffffffffffff16612d4b565b156123385760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156121a0578181015183820152602001612188565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156121df5781810151838201526020016121c7565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561221b578181015183820152602001612203565b50505050905090810190601f1680156122485780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561226d57600080fd5b5087f1158015612281573d6000803e3d6000fd5b50505050506040513d602081101561229857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014612336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180612fb9604c913960600191505060405180910390fd5b505b505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6123ca8484846000612a4d565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610eb760008585855a866127ff565b8051611441906003906020840190612dcf565b6124518383836001612a4d565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b8151835114612508576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806131a6603e913960400191505060405180910390fd5b82511561264b576000806125228560008151811061103a57fe5b91509150600061258a600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020548387600081518110611e0757fe5b86519091508360015b82811015612610576125aa89828151811061103a57fe5b90965094508186146125f55773ffffffffffffffffffffffffffffffffffffffff8a166000908152600160209081526040808320948352939052828120949094558584529220549184905b61260684868a8481518110611e0757fe5b9350600101612593565b50505073ffffffffffffffffffffffffffffffffffffffff871660009081526001602090815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156126f85781810151838201526020016126e0565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561273757818101518382015260200161271f565b5050505090500194505050505060405180910390a4610eb760008585855a866120c9565b6127688483836001612a4d565b6127758383836000612a4d565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b61281e8573ffffffffffffffffffffffffffffffffffffffff16612d4b565b156123385760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156128d75781810151838201526020016128bf565b50505050905090810190601f1680156129045780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561292757600080fd5b5087f115801561293b573d6000803e3d6000fd5b50505050506040513d602081101561295257600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014612336576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806130e26047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612a4457506001610cf1565b610cee82612d85565b600080612a5985611634565b73ffffffffffffffffffffffffffffffffffffffff881660009081526001602090815260408083208584529091529020549193509150612a9b90828686612ad8565b73ffffffffffffffffffffffffffffffffffffffff9096166000908152600160209081526040808320948352939052919091209490945550505050565b60007f0000000000000000000000000000000000000000000000000000000000000000848102906001901b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0182846001811115612b3257fe5b1415612c1e5784821b8701925086831015612b98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806131e46032913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060020a87831c8216860110612c19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806131e46032913960400191505060405180910390fd5b612d41565b6001846001811115612c2c57fe5b1415612cf05784821b8703925086831115612c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f0d6033913960400191505060405180910390fd5b84818389901c161015612c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f0d6033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806131616045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612d7e57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612e055760008555612e4b565b82601f10612e1e57805160ff1916838001178555612e4b565b82800160010185558215612e4b579182015b82811115612e4b578251825591602001919060010190612e30565b50612e57929150612e5b565b5090565b5b80821115612e575760008155600101612e5c56fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a26469706673582212207aa31e3bf33165a7de217376704b64081c52d7982a7890b051049405e8cb5c0064736f6c63430007040033455243313135355061636b656442616c616e636523636f6e7374727563746f723a20496e76616c6964204944535f424954535f53495a45"; class NiftyupNFT__factory extends ethers_1.ContractFactory { - constructor(signer) { - super(_abi, _bytecode, signer); + constructor(...args) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } + else { + super(...args); + } } - deploy(overrides) { - return super.deploy(overrides || {}); + deploy(_bits, overrides) { + return super.deploy(_bits, overrides || {}); } - getDeployTransaction(overrides) { - return super.getDeployTransaction(overrides || {}); + getDeployTransaction(_bits, overrides) { + return super.getDeployTransaction(_bits, overrides || {}); } attach(address) { return super.attach(address); diff --git a/src/gen/adapter/factories/Ownable__factory.js b/src/gen/adapter/factories/Ownable__factory.js new file mode 100644 index 0000000..3f535dc --- /dev/null +++ b/src/gen/adapter/factories/Ownable__factory.js @@ -0,0 +1,71 @@ +"use strict"; +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Ownable__factory = void 0; +const ethers_1 = require("ethers"); +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; +class Ownable__factory { + static createInterface() { + return new ethers_1.utils.Interface(_abi); + } + static connect(address, signerOrProvider) { + return new ethers_1.Contract(address, _abi, signerOrProvider); + } +} +exports.Ownable__factory = Ownable__factory; +Ownable__factory.abi = _abi; diff --git a/src/gen/adapter/index.js b/src/gen/adapter/index.js index 58556c0..a3b4dcb 100644 --- a/src/gen/adapter/index.js +++ b/src/gen/adapter/index.js @@ -1,5 +1,9 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.NiftyupNFT__factory = void 0; +exports.Ownable__factory = exports.NiftyupNFT__factory = exports.NiftyupFactory__factory = void 0; +var NiftyupFactory__factory_1 = require("./factories/NiftyupFactory__factory"); +Object.defineProperty(exports, "NiftyupFactory__factory", { enumerable: true, get: function () { return NiftyupFactory__factory_1.NiftyupFactory__factory; } }); var NiftyupNFT__factory_1 = require("./factories/NiftyupNFT__factory"); Object.defineProperty(exports, "NiftyupNFT__factory", { enumerable: true, get: function () { return NiftyupNFT__factory_1.NiftyupNFT__factory; } }); +var Ownable__factory_1 = require("./factories/Ownable__factory"); +Object.defineProperty(exports, "Ownable__factory", { enumerable: true, get: function () { return Ownable__factory_1.Ownable__factory; } }); diff --git a/src/gen/typechain/NiftyupFactory.d.ts b/src/gen/typechain/NiftyupFactory.d.ts new file mode 100644 index 0000000..974194d --- /dev/null +++ b/src/gen/typechain/NiftyupFactory.d.ts @@ -0,0 +1,203 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface NiftyupFactoryInterface extends ethers.utils.Interface { + functions: { + "create(address,uint256)": FunctionFragment; + "implementations(uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "create", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "implementations", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "create", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "implementations", + data: BytesLike + ): Result; + + events: { + "CreatedImplementationContract(uint256,address)": EventFragment; + "CreatedNFTContract(address,address,address)": EventFragment; + }; + + getEvent( + nameOrSignatureOrTopic: "CreatedImplementationContract" + ): EventFragment; + getEvent(nameOrSignatureOrTopic: "CreatedNFTContract"): EventFragment; +} + +export type CreatedImplementationContractEvent = TypedEvent< + [BigNumber, string] & { bits: BigNumber; implementation: string } +>; + +export type CreatedNFTContractEvent = TypedEvent< + [string, string, string] & { creator: string; owner: string; nft: string } +>; + +export class NiftyupFactory extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: NiftyupFactoryInterface; + + functions: { + create( + _owner: string, + _bits: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + implementations( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + }; + + create( + _owner: string, + _bits: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + implementations( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + callStatic: { + create( + _owner: string, + _bits: BigNumberish, + overrides?: CallOverrides + ): Promise; + + implementations( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "CreatedImplementationContract(uint256,address)"( + bits?: BigNumberish | null, + implementation?: string | null + ): TypedEventFilter< + [BigNumber, string], + { bits: BigNumber; implementation: string } + >; + + CreatedImplementationContract( + bits?: BigNumberish | null, + implementation?: string | null + ): TypedEventFilter< + [BigNumber, string], + { bits: BigNumber; implementation: string } + >; + + "CreatedNFTContract(address,address,address)"( + creator?: string | null, + owner?: string | null, + nft?: string | null + ): TypedEventFilter< + [string, string, string], + { creator: string; owner: string; nft: string } + >; + + CreatedNFTContract( + creator?: string | null, + owner?: string | null, + nft?: string | null + ): TypedEventFilter< + [string, string, string], + { creator: string; owner: string; nft: string } + >; + }; + + estimateGas: { + create( + _owner: string, + _bits: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + implementations( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + create( + _owner: string, + _bits: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + implementations( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/gen/typechain/NiftyupNFT.d.ts b/src/gen/typechain/NiftyupNFT.d.ts index de4769c..104dfe9 100644 --- a/src/gen/typechain/NiftyupNFT.d.ts +++ b/src/gen/typechain/NiftyupNFT.d.ts @@ -21,6 +21,7 @@ import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; interface NiftyupNFTInterface extends ethers.utils.Interface { functions: { + "IDS_BITS_SIZE()": FunctionFragment; "balanceOf(address,uint256)": FunctionFragment; "balanceOfBatch(address[],uint256[])": FunctionFragment; "batchBurn(uint256[],uint256[])": FunctionFragment; @@ -28,6 +29,7 @@ interface NiftyupNFTInterface extends ethers.utils.Interface { "burn(uint256,uint256)": FunctionFragment; "getIDBinIndex(uint256)": FunctionFragment; "getValueInBin(uint256,uint256)": FunctionFragment; + "initialize(address)": FunctionFragment; "isApprovedForAll(address,address)": FunctionFragment; "mint(address,uint256,uint256,bytes)": FunctionFragment; "owner()": FunctionFragment; @@ -41,6 +43,10 @@ interface NiftyupNFTInterface extends ethers.utils.Interface { "uri(uint256)": FunctionFragment; }; + encodeFunctionData( + functionFragment: "IDS_BITS_SIZE", + values?: undefined + ): string; encodeFunctionData( functionFragment: "balanceOf", values: [string, BigNumberish] @@ -69,6 +75,7 @@ interface NiftyupNFTInterface extends ethers.utils.Interface { functionFragment: "getValueInBin", values: [BigNumberish, BigNumberish] ): string; + encodeFunctionData(functionFragment: "initialize", values: [string]): string; encodeFunctionData( functionFragment: "isApprovedForAll", values: [string, string] @@ -108,6 +115,10 @@ interface NiftyupNFTInterface extends ethers.utils.Interface { ): string; encodeFunctionData(functionFragment: "uri", values: [BigNumberish]): string; + decodeFunctionResult( + functionFragment: "IDS_BITS_SIZE", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; decodeFunctionResult( functionFragment: "balanceOfBatch", @@ -124,6 +135,7 @@ interface NiftyupNFTInterface extends ethers.utils.Interface { functionFragment: "getValueInBin", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; decodeFunctionResult( functionFragment: "isApprovedForAll", data: BytesLike @@ -255,6 +267,8 @@ export class NiftyupNFT extends BaseContract { interface: NiftyupNFTInterface; functions: { + IDS_BITS_SIZE(overrides?: CallOverrides): Promise<[BigNumber]>; + balanceOf( _owner: string, _id: BigNumberish, @@ -298,6 +312,11 @@ export class NiftyupNFT extends BaseContract { overrides?: CallOverrides ): Promise<[BigNumber]>; + initialize( + _owner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + isApprovedForAll( _owner: string, _operator: string, @@ -360,6 +379,8 @@ export class NiftyupNFT extends BaseContract { uri(_id: BigNumberish, overrides?: CallOverrides): Promise<[string]>; }; + IDS_BITS_SIZE(overrides?: CallOverrides): Promise; + balanceOf( _owner: string, _id: BigNumberish, @@ -403,6 +424,11 @@ export class NiftyupNFT extends BaseContract { overrides?: CallOverrides ): Promise; + initialize( + _owner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + isApprovedForAll( _owner: string, _operator: string, @@ -465,6 +491,8 @@ export class NiftyupNFT extends BaseContract { uri(_id: BigNumberish, overrides?: CallOverrides): Promise; callStatic: { + IDS_BITS_SIZE(overrides?: CallOverrides): Promise; + balanceOf( _owner: string, _id: BigNumberish, @@ -508,6 +536,8 @@ export class NiftyupNFT extends BaseContract { overrides?: CallOverrides ): Promise; + initialize(_owner: string, overrides?: CallOverrides): Promise; + isApprovedForAll( _owner: string, _operator: string, @@ -683,6 +713,8 @@ export class NiftyupNFT extends BaseContract { }; estimateGas: { + IDS_BITS_SIZE(overrides?: CallOverrides): Promise; + balanceOf( _owner: string, _id: BigNumberish, @@ -726,6 +758,11 @@ export class NiftyupNFT extends BaseContract { overrides?: CallOverrides ): Promise; + initialize( + _owner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + isApprovedForAll( _owner: string, _operator: string, @@ -789,6 +826,8 @@ export class NiftyupNFT extends BaseContract { }; populateTransaction: { + IDS_BITS_SIZE(overrides?: CallOverrides): Promise; + balanceOf( _owner: string, _id: BigNumberish, @@ -832,6 +871,11 @@ export class NiftyupNFT extends BaseContract { overrides?: CallOverrides ): Promise; + initialize( + _owner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + isApprovedForAll( _owner: string, _operator: string, diff --git a/src/gen/typechain/Ownable.d.ts b/src/gen/typechain/Ownable.d.ts new file mode 100644 index 0000000..265dc3e --- /dev/null +++ b/src/gen/typechain/Ownable.d.ts @@ -0,0 +1,181 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface OwnableInterface extends ethers.utils.Interface { + functions: { + "owner()": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + + events: { + "OwnershipTransferred(address,address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; +} + +export type OwnershipTransferredEvent = TypedEvent< + [string, string] & { previousOwner: string; newOwner: string } +>; + +export class Ownable extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: OwnableInterface; + + functions: { + owner(overrides?: CallOverrides): Promise<[string]>; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "OwnershipTransferred(address,address)"( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { previousOwner: string; newOwner: string } + >; + }; + + estimateGas: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + owner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/gen/typechain/factories/NiftyupFactory__factory.ts b/src/gen/typechain/factories/NiftyupFactory__factory.ts new file mode 100644 index 0000000..f5c9a24 --- /dev/null +++ b/src/gen/typechain/factories/NiftyupFactory__factory.ts @@ -0,0 +1,143 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + NiftyupFactory, + NiftyupFactoryInterface, +} from "../NiftyupFactory"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "bits", + type: "uint256", + }, + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "CreatedImplementationContract", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "creator", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "nft", + type: "address", + }, + ], + name: "CreatedNFTContract", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "_owner", + type: "address", + }, + { + internalType: "uint256", + name: "_bits", + type: "uint256", + }, + ], + name: "create", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "implementations", + outputs: [ + { + internalType: "contract NiftyupNFT", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b506138ec806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80630ecaea731461003b578063845affc81461009d575b600080fd5b6100746004803603604081101561005157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356100ba565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610074600480360360208110156100b357600080fd5b503561019f565b6000806100ce6100c9846101c7565b6103c8565b90508073ffffffffffffffffffffffffffffffffffffffff1663c4d66de8856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561013957600080fd5b505af115801561014d573d6000803e3d6000fd5b505060405173ffffffffffffffffffffffffffffffffffffffff80851693508716915033907fa6cacc27f7d66563f2e2e5a4bfb58b741f61aea9fe4c9e00d2193079f9f7686790600090a49392505050565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b600081158015906101d9575061010082105b80156101ee575081610100816101eb57fe5b06155b610243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613889602e913960400191505060405180910390fd5b60008281526020819052604090205473ffffffffffffffffffffffffffffffffffffffff1680156102755790506103c3565b600083604051610284906104aa565b90815260405190819003602001906000f0801580156102a7573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff16847fff69ed42ce563c1eabea91641b41e7db8ffeeb60df4c470217df2e82529cdbbb60405160405180910390a3604080517fc4d66de8000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff83169163c4d66de891602480830192600092919082900301818387803b15801561035b57600080fd5b505af115801561036f573d6000803e3d6000fd5b505050600085815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416179055509150505b919050565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528260601b60148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f091505073ffffffffffffffffffffffffffffffffffffffff81166103c357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f455243313136373a20637265617465206661696c656400000000000000000000604482015290519081900360640190fd5b6133d1806104b88339019056fe60c06040523480156200001157600080fd5b50604051620033d1380380620033d1833981810160405260208110156200003757600080fd5b505180806200004633620000be565b6101008110801562000062575080610100816200005f57fe5b06155b6200009f5760405162461bcd60e51b81526004018080602001828103825260378152602001806200339a6037913960400191505060405180910390fd5b60808190528061010081620000b057fe5b0460a0525062000117915050565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b60805160a05161324b6200014f60003980611639528061166552508061169652806116f75280612adc5280612b9a525061324b6000f3fe608060405234801561001057600080fd5b506004361061016b5760003560e01c8063a22cb465116100cd578063ddcc74ab11610081578063eaec5f8111610066578063eaec5f8114610b5e578063f242432a14610b81578063f2fde38b14610c595761016b565b8063ddcc74ab14610b1b578063e985e9c514610b235761016b565b8063b48ab8b6116100b2578063b48ab8b6146108e7578063c4d66de814610ab2578063db90e83c14610ae55761016b565b8063a22cb46514610889578063b390c0ab146108c45761016b565b80634e1273f411610124578063731133e911610109578063731133e9146107195780637e518ec8146107e85780638da5cb5b146108585761016b565b80634e1273f41461059a578063715018a6146107115761016b565b80630e89341c116101555780630e89341c1461027057806320ec271b146103025780632eb2c2d6146103c65761016b565b8062fdd58e146101d257806301ffc9a71461021d575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f554e535550504f525445445f4d4554484f440000000000000000000000000000604482015290519081900360640190fd5b61020b600480360360408110156101e857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c8c565b60408051918252519081900360200190f35b61025c6004803603602081101561023357600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610ce3565b604080519115158252519081900360200190f35b61028d6004803603602081101561028657600080fd5b5035610cf6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102c75781810151838201526020016102af565b50505050905090810190601f1680156102f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103c46004803603604081101561031857600080fd5b81019060208101813564010000000081111561033357600080fd5b82018360208201111561034557600080fd5b8035906020019184602083028401116401000000008311171561036757600080fd5b91939092909160208101903564010000000081111561038557600080fd5b82018360208201111561039757600080fd5b803590602001918460208302840111640100000000831117156103b957600080fd5b509092509050610e49565b005b6103c4600480360360a08110156103dc57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169181019060608101604082013564010000000081111561041d57600080fd5b82018360208201111561042f57600080fd5b8035906020019184602083028401116401000000008311171561045157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156104a157600080fd5b8201836020820111156104b357600080fd5b803590602001918460208302840111640100000000831117156104d557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561052557600080fd5b82018360208201111561053757600080fd5b8035906020019184600183028401116401000000008311171561055957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ebd945050505050565b6106c1600480360360408110156105b057600080fd5b8101906020810181356401000000008111156105cb57600080fd5b8201836020820111156105dd57600080fd5b803590602001918460208302840111640100000000831117156105ff57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561064f57600080fd5b82018360208201111561066157600080fd5b8035906020019184602083028401116401000000008311171561068357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610fc8945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106fd5781810151838201526020016106e5565b505050509050019250505060405180910390f35b6103c4611249565b6103c46004803603608081101561072f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561077357600080fd5b82018360208201111561078557600080fd5b803590602001918460018302840111640100000000831117156107a757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506112e0945050505050565b6103c4600480360360208110156107fe57600080fd5b81019060208101813564010000000081111561081957600080fd5b82018360208201111561082b57600080fd5b8035906020019184600183028401116401000000008311171561084d57600080fd5b509092509050611377565b610860611445565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103c46004803603604081101561089f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515611466565b6103c4600480360360408110156108da57600080fd5b50803590602001356114ff565b6103c4600480360360808110156108fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561093557600080fd5b82018360208201111561094757600080fd5b8035906020019184602083028401116401000000008311171561096957600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156109b957600080fd5b8201836020820111156109cb57600080fd5b803590602001918460208302840111640100000000831117156109ed57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610a3d57600080fd5b820183602082011115610a4f57600080fd5b80359060200191846001830284011164010000000083111715610a7157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061150a945050505050565b6103c460048036036020811015610ac857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166115a1565b610b0260048036036020811015610afb57600080fd5b5035611634565b6040805192835260208301919091528051918290030190f35b61020b611694565b61025c60048036036040811015610b3957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166116b8565b61020b60048036036040811015610b7457600080fd5b50803590602001356116f3565b6103c4600480360360a0811015610b9757600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610be457600080fd5b820183602082011115610bf657600080fd5b80359060200191846001830284011164010000000083111715610c1857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611745945050505050565b6103c460048036036020811015610c6f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611849565b6000806000610c9a84611634565b73ffffffffffffffffffffffffffffffffffffffff871660009081526001602090815260408083208584529091529020549193509150610cda90826116f3565b95945050505050565b6000610cee82611949565b90505b919050565b60606003610d03836119a6565b6040516020018083805460018160011615610100020316600290048015610d615780601f10610d3f576101008083540402835291820191610d61565b820191906000526020600020905b815481529060010190602001808311610d4d575b5050825160208401908083835b60208310610dab57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d6e565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b610eb73385858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250611ad292505050565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610ee65750610ee685336116b8565b610f3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180613033603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610fa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612eaa603d913960400191505060405180910390fd5b610fb385858585611c7b565b610fc1858585855a866120c9565b5050505050565b81518151606091908114611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180612e716039913960400191505060405180910390fd5b6000806110478560008151811061103a57fe5b6020026020010151611634565b915091506000600160008860008151811061105e57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff811180156110d257600080fd5b506040519080825280602002602001820160405280156110fc578160200160208202803683370190505b50905061110983856116f3565b8160008151811061111657fe5b602090810291909101015260015b8681101561123c5761113b89828151811061103a57fe5b909650945082861415806111a4575089818151811061115657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a600183038151811061118357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561121357600160008b83815181106111b957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b61121d84866116f3565b82828151811061122957fe5b6020908102919091010152600101611124565b5098975050505050505050565b33611252611445565b73ffffffffffffffffffffffffffffffffffffffff16146112d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6112de6000612340565b565b336112e9611445565b73ffffffffffffffffffffffffffffffffffffffff161461136b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eb7848484846123bd565b33611380611445565b73ffffffffffffffffffffffffffffffffffffffff161461140257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61144182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061243192505050565b5050565b600054610100900473ffffffffffffffffffffffffffffffffffffffff1690565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b611441338383612444565b33611513611445565b73ffffffffffffffffffffffffffffffffffffffff161461159557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eb7848484846124ae565b60005460ff16156115fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613005602e913960400191505060405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561163181612340565b50565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161166057fe5b0491507f0000000000000000000000000000000000000000000000000000000000000000838161168c57fe5b069050915091565b7f000000000000000000000000000000000000000000000000000000000000000081565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205460ff1690565b60017f000000000000000000000000000000000000000000000000000000000000000090811b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0191029190911c1690565b3373ffffffffffffffffffffffffffffffffffffffff8616148061176e575061176e85336116b8565b6117c3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180612f406037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841661182f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806131296038913960400191505060405180910390fd5b61183b8585858561275b565b610fc1858585855a866127ff565b33611852611445565b73ffffffffffffffffffffffffffffffffffffffff16146118d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611940576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612ee76026913960400191505060405180910390fd5b61163181612340565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561199d57506001610cf1565b610cee826129f0565b6060816119e7575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610cf1565b818060005b8215611a0057600101600a830492506119ec565b60608167ffffffffffffffff81118015611a1957600080fd5b506040519080825280601f01601f191660200182016040528015611a44576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315611ac857600a840660300160f81b82828060019003935081518110611a8e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611a6b565b5095945050505050565b815181518114611b2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d81526020018061306f603d913960400191505060405180910390fd5b60005b81811015611b7357611b6b85858381518110611b4857fe5b6020026020010151858481518110611b5c57fe5b60200260200101516001612a4d565b600101611b30565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611c21578181015183820152602001611c09565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611c60578181015183820152602001611c48565b5050505090500194505050505060405180910390a450505050565b815181518114611cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180612f776042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611d125750600081115b15611f2557600080611d2a8560008151811061103a57fe5b915091506000611da1600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020548387600081518110611d9257fe5b60200260200101516001612ad8565b90506000611e16600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868152602001908152602001600020548488600081518110611e0757fe5b60200260200101516000612ad8565b90508360015b86811015611ed257611e3389828151811061103a57fe5b9096509450818614611ea45773ffffffffffffffffffffffffffffffffffffffff8b8116600090815260016020818152604080842087855280835281852099909955938e16835290815282822094825284815282822095909555878152948452808520549290935291909220549084905b611eb584868a8481518110611d9257fe5b9350611ec883868a8481518110611e0757fe5b9250600101611e1c565b505073ffffffffffffffffffffffffffffffffffffffff808a166000908152600160208181526040808420898552825280842096909655928b168252825283812095815294905292209190915550611fc2565b60005b81811015611fc057828181518110611f3c57fe5b6020026020010151611f6187868481518110611f5457fe5b6020026020010151610c8c565b1015611fb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806130ac6036913960400191505060405180910390fd5b600101611f28565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561206e578181015183820152602001612056565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156120ad578181015183820152602001612095565b5050505090500194505050505060405180910390a45050505050565b6120e88573ffffffffffffffffffffffffffffffffffffffff16612d4b565b156123385760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156121a0578181015183820152602001612188565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156121df5781810151838201526020016121c7565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561221b578181015183820152602001612203565b50505050905090810190601f1680156122485780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561226d57600080fd5b5087f1158015612281573d6000803e3d6000fd5b50505050506040513d602081101561229857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014612336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180612fb9604c913960600191505060405180910390fd5b505b505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6123ca8484846000612a4d565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610eb760008585855a866127ff565b8051611441906003906020840190612dcf565b6124518383836001612a4d565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b8151835114612508576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806131a6603e913960400191505060405180910390fd5b82511561264b576000806125228560008151811061103a57fe5b91509150600061258a600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020548387600081518110611e0757fe5b86519091508360015b82811015612610576125aa89828151811061103a57fe5b90965094508186146125f55773ffffffffffffffffffffffffffffffffffffffff8a166000908152600160209081526040808320948352939052828120949094558584529220549184905b61260684868a8481518110611e0757fe5b9350600101612593565b50505073ffffffffffffffffffffffffffffffffffffffff871660009081526001602090815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156126f85781810151838201526020016126e0565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561273757818101518382015260200161271f565b5050505090500194505050505060405180910390a4610eb760008585855a866120c9565b6127688483836001612a4d565b6127758383836000612a4d565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b61281e8573ffffffffffffffffffffffffffffffffffffffff16612d4b565b156123385760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156128d75781810151838201526020016128bf565b50505050905090810190601f1680156129045780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561292757600080fd5b5087f115801561293b573d6000803e3d6000fd5b50505050506040513d602081101561295257600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014612336576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806130e26047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612a4457506001610cf1565b610cee82612d85565b600080612a5985611634565b73ffffffffffffffffffffffffffffffffffffffff881660009081526001602090815260408083208584529091529020549193509150612a9b90828686612ad8565b73ffffffffffffffffffffffffffffffffffffffff9096166000908152600160209081526040808320948352939052919091209490945550505050565b60007f0000000000000000000000000000000000000000000000000000000000000000848102906001901b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0182846001811115612b3257fe5b1415612c1e5784821b8701925086831015612b98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806131e46032913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060020a87831c8216860110612c19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806131e46032913960400191505060405180910390fd5b612d41565b6001846001811115612c2c57fe5b1415612cf05784821b8703925086831115612c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f0d6033913960400191505060405180910390fd5b84818389901c161015612c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f0d6033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806131616045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612d7e57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612e055760008555612e4b565b82601f10612e1e57805160ff1916838001178555612e4b565b82800160010185558215612e4b579182015b82811115612e4b578251825591602001919060010190612e30565b50612e57929150612e5b565b5090565b5b80821115612e575760008155600101612e5c56fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a26469706673582212207aa31e3bf33165a7de217376704b64081c52d7982a7890b051049405e8cb5c0064736f6c63430007040033455243313135355061636b656442616c616e636523636f6e7374727563746f723a20496e76616c6964204944535f424954535f53495a454e696674797570466163746f727923696d706c656d656e746174696f6e466f723a20494e56414c49445f42495453a26469706673582212208b8087bcad1caf5147244f3748a9aa42eaba6c0cc11b4a174974affab494a46764736f6c63430007040033"; + +export class NiftyupFactory__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): NiftyupFactory { + return super.attach(address) as NiftyupFactory; + } + connect(signer: Signer): NiftyupFactory__factory { + return super.connect(signer) as NiftyupFactory__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): NiftyupFactoryInterface { + return new utils.Interface(_abi) as NiftyupFactoryInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): NiftyupFactory { + return new Contract(address, _abi, signerOrProvider) as NiftyupFactory; + } +} diff --git a/src/gen/typechain/factories/NiftyupNFT__factory.ts b/src/gen/typechain/factories/NiftyupNFT__factory.ts index 1bf708f..82d2f26 100644 --- a/src/gen/typechain/factories/NiftyupNFT__factory.ts +++ b/src/gen/typechain/factories/NiftyupNFT__factory.ts @@ -2,11 +2,29 @@ /* tslint:disable */ /* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { + Signer, + utils, + BigNumberish, + Contract, + ContractFactory, + Overrides, +} from "ethers"; import { Provider, TransactionRequest } from "@ethersproject/providers"; import type { NiftyupNFT, NiftyupNFTInterface } from "../NiftyupNFT"; const _abi = [ + { + inputs: [ + { + internalType: "uint256", + name: "_bits", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, { anonymous: false, inputs: [ @@ -148,6 +166,19 @@ const _abi = [ stateMutability: "nonpayable", type: "fallback", }, + { + inputs: [], + name: "IDS_BITS_SIZE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -281,7 +312,7 @@ const _abi = [ type: "uint256", }, ], - stateMutability: "pure", + stateMutability: "view", type: "function", }, { @@ -305,7 +336,20 @@ const _abi = [ type: "uint256", }, ], - stateMutability: "pure", + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_owner", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", type: "function", }, { @@ -531,22 +575,30 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50600061001b61006e565b600380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610072565b3390565b61309280620000826000396000f3fe608060405234801561001057600080fd5b50600436106101355760003560e01c80638da5cb5b116100b2578063db90e83c11610081578063eaec5f8111610066578063eaec5f8114610aed578063f242432a14610b10578063f2fde38b14610be857610135565b8063db90e83c14610a7c578063e985e9c514610ab257610135565b80638da5cb5b14610822578063a22cb46514610853578063b390c0ab1461088e578063b48ab8b6146108b157610135565b80632eb2c2d611610109578063715018a6116100ee578063715018a6146106db578063731133e9146106e35780637e518ec8146107b257610135565b80632eb2c2d6146103905780634e1273f41461056457610135565b8062fdd58e1461019c57806301ffc9a7146101e75780630e89341c1461023a57806320ec271b146102cc575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f554e535550504f525445445f4d4554484f440000000000000000000000000000604482015290519081900360640190fd5b6101d5600480360360408110156101b257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c1b565b60408051918252519081900360200190f35b610226600480360360208110156101fd57600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610c70565b604080519115158252519081900360200190f35b6102576004803603602081101561025057600080fd5b5035610c83565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610291578181015183820152602001610279565b50505050905090810190601f1680156102be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61038e600480360360408110156102e257600080fd5b8101906020810181356401000000008111156102fd57600080fd5b82018360208201111561030f57600080fd5b8035906020019184602083028401116401000000008311171561033157600080fd5b91939092909160208101903564010000000081111561034f57600080fd5b82018360208201111561036157600080fd5b8035906020019184602083028401116401000000008311171561038357600080fd5b509092509050610dd6565b005b61038e600480360360a08110156103a657600080fd5b73ffffffffffffffffffffffffffffffffffffffff82358116926020810135909116918101906060810160408201356401000000008111156103e757600080fd5b8201836020820111156103f957600080fd5b8035906020019184602083028401116401000000008311171561041b57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561046b57600080fd5b82018360208201111561047d57600080fd5b8035906020019184602083028401116401000000008311171561049f57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156104ef57600080fd5b82018360208201111561050157600080fd5b8035906020019184600183028401116401000000008311171561052357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e4a945050505050565b61068b6004803603604081101561057a57600080fd5b81019060208101813564010000000081111561059557600080fd5b8201836020820111156105a757600080fd5b803590602001918460208302840111640100000000831117156105c957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561061957600080fd5b82018360208201111561062b57600080fd5b8035906020019184602083028401116401000000008311171561064d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610f55945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106c75781810151838201526020016106af565b505050509050019250505060405180910390f35b61038e6111d4565b61038e600480360360808110156106f957600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561073d57600080fd5b82018360208201111561074f57600080fd5b8035906020019184600183028401116401000000008311171561077157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506112eb945050505050565b61038e600480360360208110156107c857600080fd5b8101906020810181356401000000008111156107e357600080fd5b8201836020820111156107f557600080fd5b8035906020019184600183028401116401000000008311171561081757600080fd5b50909250905061139f565b61082a61148a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61038e6004803603604081101561086957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013515156114a6565b61038e600480360360408110156108a457600080fd5b508035906020013561153f565b61038e600480360360808110156108c757600080fd5b73ffffffffffffffffffffffffffffffffffffffff82351691908101906040810160208201356401000000008111156108ff57600080fd5b82018360208201111561091157600080fd5b8035906020019184602083028401116401000000008311171561093357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561098357600080fd5b82018360208201111561099557600080fd5b803590602001918460208302840111640100000000831117156109b757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610a0757600080fd5b820183602082011115610a1957600080fd5b80359060200191846001830284011164010000000083111715610a3b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061154a945050505050565b610a9960048036036020811015610a9257600080fd5b50356115fe565b6040805192835260208301919091528051918290030190f35b61022660048036036040811015610ac857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661160b565b6101d560048036036040811015610b0357600080fd5b5080359060200135611646565b61038e600480360360a0811015610b2657600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610b7357600080fd5b820183602082011115610b8557600080fd5b80359060200191846001830284011164010000000083111715610ba757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611659945050505050565b61038e60048036036020811015610bfe57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661175d565b6000806000610c29846115fe565b73ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083208584529091529020549193509150610c679082611646565b95945050505050565b6000610c7b826118ff565b90505b919050565b60606002610c908361195c565b6040516020018083805460018160011615610100020316600290048015610cee5780601f10610ccc576101008083540402835291820191610cee565b820191906000526020600020905b815481529060010190602001808311610cda575b5050825160208401908083835b60208310610d3857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610cfb565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b610e443385858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250611a8892505050565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610e735750610e73853361160b565b610ec8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180612e7a603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610f34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612d1f603d913960400191505060405180910390fd5b610f4085858585611c31565b610f4e858585855a8661203e565b5050505050565b81518151606091908114610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180612ce66039913960400191505060405180910390fd5b600080610fd485600081518110610fc757fe5b60200260200101516115fe565b91509150600080600088600081518110610fea57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561105e57600080fd5b50604051908082528060200260200182016040528015611088578160200160208202803683370190505b5090506110958385611646565b816000815181106110a257fe5b602090810291909101015260015b868110156111c7576110c7898281518110610fc757fe5b9096509450828614158061113057508981815181106110e257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a600183038151811061110f57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561119e576000808b838151811061114457fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6111a88486611646565b8282815181106111b457fe5b60209081029190910101526001016110b0565b5098975050505050505050565b6111dc6122b5565b73ffffffffffffffffffffffffffffffffffffffff166111fa61148a565b73ffffffffffffffffffffffffffffffffffffffff161461127c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60035460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6112f36122b5565b73ffffffffffffffffffffffffffffffffffffffff1661131161148a565b73ffffffffffffffffffffffffffffffffffffffff161461139357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e44848484846122b9565b6113a76122b5565b73ffffffffffffffffffffffffffffffffffffffff166113c561148a565b73ffffffffffffffffffffffffffffffffffffffff161461144757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61148682828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061232d92505050565b5050565b60035473ffffffffffffffffffffffffffffffffffffffff1690565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b611486338383612340565b6115526122b5565b73ffffffffffffffffffffffffffffffffffffffff1661157061148a565b73ffffffffffffffffffffffffffffffffffffffff16146115f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e44848484846123aa565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff861614806116825750611682853361160b565b6116d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180612db56037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416611743576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180612f706038913960400191505060405180910390fd5b61174f85858585612634565b610f4e858585855a866126d8565b6117656122b5565b73ffffffffffffffffffffffffffffffffffffffff1661178361148a565b73ffffffffffffffffffffffffffffffffffffffff161461180557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611871576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612d5c6026913960400191505060405180910390fd5b60035460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561195357506001610c7e565b610c7b826128c9565b60608161199d575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610c7e565b818060005b82156119b657600101600a830492506119a2565b60608167ffffffffffffffff811180156119cf57600080fd5b506040519080825280601f01601f1916602001820160405280156119fa576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315611a7e57600a840660300160f81b82828060019003935081518110611a4457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611a21565b5095945050505050565b815181518114611ae3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612eb6603d913960400191505060405180910390fd5b60005b81811015611b2957611b2185858381518110611afe57fe5b6020026020010151858481518110611b1257fe5b60200260200101516001612926565b600101611ae6565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611bd7578181015183820152602001611bbf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611c16578181015183820152602001611bfe565b5050505090500194505050505060405180910390a450505050565b815181518114611c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180612dec6042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611cc85750600081115b15611e9a57600080611ce085600081518110610fc757fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091611d389190849088908590611d2957fe5b602002602001015160016129ad565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091611d8e9190859089908590611d7f57fe5b602002602001015160006129ad565b90508360015b86811015611e4857611dab898281518110610fc757fe5b9096509450818614611e1a5773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b611e2b84868a8481518110611d2957fe5b9350611e3e83868a8481518110611d7f57fe5b9250600101611d94565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550611f37565b60005b81811015611f3557828181518110611eb157fe5b6020026020010151611ed687868481518110611ec957fe5b6020026020010151610c1b565b1015611f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180612ef36036913960400191505060405180910390fd5b600101611e9d565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611fe3578181015183820152602001611fcb565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561202257818101518382015260200161200a565b5050505090500194505050505060405180910390a45050505050565b61205d8573ffffffffffffffffffffffffffffffffffffffff16612bc0565b156122ad5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156121155781810151838201526020016120fd565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561215457818101518382015260200161213c565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015612190578181015183820152602001612178565b50505050905090810190601f1680156121bd5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b1580156121e257600080fd5b5087f11580156121f6573d6000803e3d6000fd5b50505050506040513d602081101561220d57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c8100000000000000000000000000000000000000000000000000000000146122ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180612e2e604c913960600191505060405180910390fd5b505b505050505050565b3390565b6122c68484846000612926565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610e4460008585855a866126d8565b8051611486906002906020840190612c44565b61234d8383836001612926565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b8151835114612404576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180612fed603e913960400191505060405180910390fd5b8251156125245760008061241e85600081518110610fc757fe5b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091528120548751939550919350916124679190849088908590611d7f57fe5b86519091508360015b828110156124eb57612487898281518110610fc757fe5b90965094508186146124d05773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b6124e184868a8481518110611d7f57fe5b9350600101612470565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156125d15781810151838201526020016125b9565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156126105781810151838201526020016125f8565b5050505090500194505050505060405180910390a4610e4460008585855a8661203e565b6126418483836001612926565b61264e8383836000612926565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6126f78573ffffffffffffffffffffffffffffffffffffffff16612bc0565b156122ad5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156127b0578181015183820152602001612798565b50505050905090810190601f1680156127dd5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561280057600080fd5b5087f1158015612814573d6000803e3d6000fd5b50505050506040513d602081101561282b57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146122ab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526047815260200180612f296047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000141561291d57506001610c7e565b610c7b82612bfa565b600080612932856115fe565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150612972908286866129ad565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b60006020840263ffffffff828460018111156129c557fe5b1415612a935784821b8701925086831015612a2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061302b6032913960400191505060405180910390fd5b64010000000087831c8216860110612a8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061302b6032913960400191505060405180910390fd5b612bb6565b6001846001811115612aa157fe5b1415612b655784821b8703925086831115612b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612d826033913960400191505060405180910390fd5b84818389901c161015612a8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612d826033913960400191505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526045815260200180612fa86045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612bf357507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612c7a5760008555612cc0565b82601f10612c9357805160ff1916838001178555612cc0565b82800160010185558215612cc0579182015b82811115612cc0578251825591602001919060010190612ca5565b50612ccc929150612cd0565b5090565b5b80821115612ccc5760008155600101612cd156fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a26469706673582212203fd7eadafb4fe616540b8c133d4836bed39ee64f95fb37e16f4bc24a8dfe587164736f6c63430007040033"; + "0x60c06040523480156200001157600080fd5b50604051620033d1380380620033d1833981810160405260208110156200003757600080fd5b505180806200004633620000be565b6101008110801562000062575080610100816200005f57fe5b06155b6200009f5760405162461bcd60e51b81526004018080602001828103825260378152602001806200339a6037913960400191505060405180910390fd5b60808190528061010081620000b057fe5b0460a0525062000117915050565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b60805160a05161324b6200014f60003980611639528061166552508061169652806116f75280612adc5280612b9a525061324b6000f3fe608060405234801561001057600080fd5b506004361061016b5760003560e01c8063a22cb465116100cd578063ddcc74ab11610081578063eaec5f8111610066578063eaec5f8114610b5e578063f242432a14610b81578063f2fde38b14610c595761016b565b8063ddcc74ab14610b1b578063e985e9c514610b235761016b565b8063b48ab8b6116100b2578063b48ab8b6146108e7578063c4d66de814610ab2578063db90e83c14610ae55761016b565b8063a22cb46514610889578063b390c0ab146108c45761016b565b80634e1273f411610124578063731133e911610109578063731133e9146107195780637e518ec8146107e85780638da5cb5b146108585761016b565b80634e1273f41461059a578063715018a6146107115761016b565b80630e89341c116101555780630e89341c1461027057806320ec271b146103025780632eb2c2d6146103c65761016b565b8062fdd58e146101d257806301ffc9a71461021d575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f554e535550504f525445445f4d4554484f440000000000000000000000000000604482015290519081900360640190fd5b61020b600480360360408110156101e857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c8c565b60408051918252519081900360200190f35b61025c6004803603602081101561023357600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610ce3565b604080519115158252519081900360200190f35b61028d6004803603602081101561028657600080fd5b5035610cf6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102c75781810151838201526020016102af565b50505050905090810190601f1680156102f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103c46004803603604081101561031857600080fd5b81019060208101813564010000000081111561033357600080fd5b82018360208201111561034557600080fd5b8035906020019184602083028401116401000000008311171561036757600080fd5b91939092909160208101903564010000000081111561038557600080fd5b82018360208201111561039757600080fd5b803590602001918460208302840111640100000000831117156103b957600080fd5b509092509050610e49565b005b6103c4600480360360a08110156103dc57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169181019060608101604082013564010000000081111561041d57600080fd5b82018360208201111561042f57600080fd5b8035906020019184602083028401116401000000008311171561045157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156104a157600080fd5b8201836020820111156104b357600080fd5b803590602001918460208302840111640100000000831117156104d557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561052557600080fd5b82018360208201111561053757600080fd5b8035906020019184600183028401116401000000008311171561055957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ebd945050505050565b6106c1600480360360408110156105b057600080fd5b8101906020810181356401000000008111156105cb57600080fd5b8201836020820111156105dd57600080fd5b803590602001918460208302840111640100000000831117156105ff57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561064f57600080fd5b82018360208201111561066157600080fd5b8035906020019184602083028401116401000000008311171561068357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610fc8945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106fd5781810151838201526020016106e5565b505050509050019250505060405180910390f35b6103c4611249565b6103c46004803603608081101561072f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561077357600080fd5b82018360208201111561078557600080fd5b803590602001918460018302840111640100000000831117156107a757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506112e0945050505050565b6103c4600480360360208110156107fe57600080fd5b81019060208101813564010000000081111561081957600080fd5b82018360208201111561082b57600080fd5b8035906020019184600183028401116401000000008311171561084d57600080fd5b509092509050611377565b610860611445565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103c46004803603604081101561089f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515611466565b6103c4600480360360408110156108da57600080fd5b50803590602001356114ff565b6103c4600480360360808110156108fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561093557600080fd5b82018360208201111561094757600080fd5b8035906020019184602083028401116401000000008311171561096957600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156109b957600080fd5b8201836020820111156109cb57600080fd5b803590602001918460208302840111640100000000831117156109ed57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610a3d57600080fd5b820183602082011115610a4f57600080fd5b80359060200191846001830284011164010000000083111715610a7157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061150a945050505050565b6103c460048036036020811015610ac857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166115a1565b610b0260048036036020811015610afb57600080fd5b5035611634565b6040805192835260208301919091528051918290030190f35b61020b611694565b61025c60048036036040811015610b3957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166116b8565b61020b60048036036040811015610b7457600080fd5b50803590602001356116f3565b6103c4600480360360a0811015610b9757600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610be457600080fd5b820183602082011115610bf657600080fd5b80359060200191846001830284011164010000000083111715610c1857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611745945050505050565b6103c460048036036020811015610c6f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611849565b6000806000610c9a84611634565b73ffffffffffffffffffffffffffffffffffffffff871660009081526001602090815260408083208584529091529020549193509150610cda90826116f3565b95945050505050565b6000610cee82611949565b90505b919050565b60606003610d03836119a6565b6040516020018083805460018160011615610100020316600290048015610d615780601f10610d3f576101008083540402835291820191610d61565b820191906000526020600020905b815481529060010190602001808311610d4d575b5050825160208401908083835b60208310610dab57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d6e565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b610eb73385858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250611ad292505050565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610ee65750610ee685336116b8565b610f3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180613033603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610fa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612eaa603d913960400191505060405180910390fd5b610fb385858585611c7b565b610fc1858585855a866120c9565b5050505050565b81518151606091908114611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180612e716039913960400191505060405180910390fd5b6000806110478560008151811061103a57fe5b6020026020010151611634565b915091506000600160008860008151811061105e57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff811180156110d257600080fd5b506040519080825280602002602001820160405280156110fc578160200160208202803683370190505b50905061110983856116f3565b8160008151811061111657fe5b602090810291909101015260015b8681101561123c5761113b89828151811061103a57fe5b909650945082861415806111a4575089818151811061115657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a600183038151811061118357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561121357600160008b83815181106111b957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b61121d84866116f3565b82828151811061122957fe5b6020908102919091010152600101611124565b5098975050505050505050565b33611252611445565b73ffffffffffffffffffffffffffffffffffffffff16146112d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6112de6000612340565b565b336112e9611445565b73ffffffffffffffffffffffffffffffffffffffff161461136b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eb7848484846123bd565b33611380611445565b73ffffffffffffffffffffffffffffffffffffffff161461140257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61144182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061243192505050565b5050565b600054610100900473ffffffffffffffffffffffffffffffffffffffff1690565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b611441338383612444565b33611513611445565b73ffffffffffffffffffffffffffffffffffffffff161461159557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eb7848484846124ae565b60005460ff16156115fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613005602e913960400191505060405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561163181612340565b50565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161166057fe5b0491507f0000000000000000000000000000000000000000000000000000000000000000838161168c57fe5b069050915091565b7f000000000000000000000000000000000000000000000000000000000000000081565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205460ff1690565b60017f000000000000000000000000000000000000000000000000000000000000000090811b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0191029190911c1690565b3373ffffffffffffffffffffffffffffffffffffffff8616148061176e575061176e85336116b8565b6117c3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180612f406037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841661182f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806131296038913960400191505060405180910390fd5b61183b8585858561275b565b610fc1858585855a866127ff565b33611852611445565b73ffffffffffffffffffffffffffffffffffffffff16146118d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611940576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612ee76026913960400191505060405180910390fd5b61163181612340565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561199d57506001610cf1565b610cee826129f0565b6060816119e7575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610cf1565b818060005b8215611a0057600101600a830492506119ec565b60608167ffffffffffffffff81118015611a1957600080fd5b506040519080825280601f01601f191660200182016040528015611a44576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315611ac857600a840660300160f81b82828060019003935081518110611a8e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611a6b565b5095945050505050565b815181518114611b2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d81526020018061306f603d913960400191505060405180910390fd5b60005b81811015611b7357611b6b85858381518110611b4857fe5b6020026020010151858481518110611b5c57fe5b60200260200101516001612a4d565b600101611b30565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611c21578181015183820152602001611c09565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611c60578181015183820152602001611c48565b5050505090500194505050505060405180910390a450505050565b815181518114611cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180612f776042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611d125750600081115b15611f2557600080611d2a8560008151811061103a57fe5b915091506000611da1600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020548387600081518110611d9257fe5b60200260200101516001612ad8565b90506000611e16600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868152602001908152602001600020548488600081518110611e0757fe5b60200260200101516000612ad8565b90508360015b86811015611ed257611e3389828151811061103a57fe5b9096509450818614611ea45773ffffffffffffffffffffffffffffffffffffffff8b8116600090815260016020818152604080842087855280835281852099909955938e16835290815282822094825284815282822095909555878152948452808520549290935291909220549084905b611eb584868a8481518110611d9257fe5b9350611ec883868a8481518110611e0757fe5b9250600101611e1c565b505073ffffffffffffffffffffffffffffffffffffffff808a166000908152600160208181526040808420898552825280842096909655928b168252825283812095815294905292209190915550611fc2565b60005b81811015611fc057828181518110611f3c57fe5b6020026020010151611f6187868481518110611f5457fe5b6020026020010151610c8c565b1015611fb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806130ac6036913960400191505060405180910390fd5b600101611f28565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561206e578181015183820152602001612056565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156120ad578181015183820152602001612095565b5050505090500194505050505060405180910390a45050505050565b6120e88573ffffffffffffffffffffffffffffffffffffffff16612d4b565b156123385760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156121a0578181015183820152602001612188565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156121df5781810151838201526020016121c7565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561221b578181015183820152602001612203565b50505050905090810190601f1680156122485780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561226d57600080fd5b5087f1158015612281573d6000803e3d6000fd5b50505050506040513d602081101561229857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014612336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180612fb9604c913960600191505060405180910390fd5b505b505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6123ca8484846000612a4d565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610eb760008585855a866127ff565b8051611441906003906020840190612dcf565b6124518383836001612a4d565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b8151835114612508576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806131a6603e913960400191505060405180910390fd5b82511561264b576000806125228560008151811061103a57fe5b91509150600061258a600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020548387600081518110611e0757fe5b86519091508360015b82811015612610576125aa89828151811061103a57fe5b90965094508186146125f55773ffffffffffffffffffffffffffffffffffffffff8a166000908152600160209081526040808320948352939052828120949094558584529220549184905b61260684868a8481518110611e0757fe5b9350600101612593565b50505073ffffffffffffffffffffffffffffffffffffffff871660009081526001602090815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156126f85781810151838201526020016126e0565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561273757818101518382015260200161271f565b5050505090500194505050505060405180910390a4610eb760008585855a866120c9565b6127688483836001612a4d565b6127758383836000612a4d565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b61281e8573ffffffffffffffffffffffffffffffffffffffff16612d4b565b156123385760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156128d75781810151838201526020016128bf565b50505050905090810190601f1680156129045780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561292757600080fd5b5087f115801561293b573d6000803e3d6000fd5b50505050506040513d602081101561295257600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014612336576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806130e26047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612a4457506001610cf1565b610cee82612d85565b600080612a5985611634565b73ffffffffffffffffffffffffffffffffffffffff881660009081526001602090815260408083208584529091529020549193509150612a9b90828686612ad8565b73ffffffffffffffffffffffffffffffffffffffff9096166000908152600160209081526040808320948352939052919091209490945550505050565b60007f0000000000000000000000000000000000000000000000000000000000000000848102906001901b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0182846001811115612b3257fe5b1415612c1e5784821b8701925086831015612b98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806131e46032913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060020a87831c8216860110612c19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806131e46032913960400191505060405180910390fd5b612d41565b6001846001811115612c2c57fe5b1415612cf05784821b8703925086831115612c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f0d6033913960400191505060405180910390fd5b84818389901c161015612c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f0d6033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806131616045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612d7e57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612e055760008555612e4b565b82601f10612e1e57805160ff1916838001178555612e4b565b82800160010185558215612e4b579182015b82811115612e4b578251825591602001919060010190612e30565b50612e57929150612e5b565b5090565b5b80821115612e575760008155600101612e5c56fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a26469706673582212207aa31e3bf33165a7de217376704b64081c52d7982a7890b051049405e8cb5c0064736f6c63430007040033455243313135355061636b656442616c616e636523636f6e7374727563746f723a20496e76616c6964204944535f424954535f53495a45"; export class NiftyupNFT__factory extends ContractFactory { - constructor(signer?: Signer) { - super(_abi, _bytecode, signer); + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } } deploy( + _bits: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise { - return super.deploy(overrides || {}) as Promise; + return super.deploy(_bits, overrides || {}) as Promise; } getDeployTransaction( + _bits: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); + return super.getDeployTransaction(_bits, overrides || {}); } attach(address: string): NiftyupNFT { return super.attach(address) as NiftyupNFT; diff --git a/src/gen/typechain/factories/Ownable__factory.ts b/src/gen/typechain/factories/Ownable__factory.ts new file mode 100644 index 0000000..df0453a --- /dev/null +++ b/src/gen/typechain/factories/Ownable__factory.ts @@ -0,0 +1,75 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { Ownable, OwnableInterface } from "../Ownable"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class Ownable__factory { + static readonly abi = _abi; + static createInterface(): OwnableInterface { + return new utils.Interface(_abi) as OwnableInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): Ownable { + return new Contract(address, _abi, signerOrProvider) as Ownable; + } +} diff --git a/src/gen/typechain/index.ts b/src/gen/typechain/index.ts index 584b2d0..5900657 100644 --- a/src/gen/typechain/index.ts +++ b/src/gen/typechain/index.ts @@ -1,6 +1,10 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ +export type { NiftyupFactory } from "./NiftyupFactory"; export type { NiftyupNFT } from "./NiftyupNFT"; +export type { Ownable } from "./Ownable"; +export { NiftyupFactory__factory } from "./factories/NiftyupFactory__factory"; export { NiftyupNFT__factory } from "./factories/NiftyupNFT__factory"; +export { Ownable__factory } from "./factories/Ownable__factory"; diff --git a/src/package.json b/src/package.json index 93f7fac..3de1f12 100644 --- a/src/package.json +++ b/src/package.json @@ -12,9 +12,8 @@ }, "author": "", "dependencies": { - "@0xsequence/erc-1155": "^3.0.6", + "@0xsequence/erc-1155": "https://gitpkg.now.sh/0xsequence/erc-1155/src?a664bd16734c53f71fd919a640dd36bb37e3500d", "@openzeppelin/contracts": "^3.4.2" }, - "devDependencies": { - } + "devDependencies": {} } diff --git a/tests/niftyup.spec.ts b/tests/niftyup.spec.ts new file mode 100644 index 0000000..c03ddc3 --- /dev/null +++ b/tests/niftyup.spec.ts @@ -0,0 +1,252 @@ +import { ethers } from "hardhat" +import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers" +import { Contract } from "@ethersproject/contracts" +import { TransactionResponse } from "@ethersproject/abstract-provider" +import { expect } from "chai" + +async function nftFromTx(tx: Promise | TransactionResponse) { + const log = (await (await tx).wait()).logs.find((l) => l.topics.length === 4) + const addr = ethers.utils.defaultAbiCoder.decode(["address"], log?.topics[3] ?? "")[0] + const Nft = await ethers.getContractFactory("NiftyupNFT") + return Nft.attach(addr) +} + +const VALID_BITS = [1, 2, 4, 8, 16, 32, 64, 128] +const INVALID_BITS = new Array(555).fill(0).map((_, i) => i).filter((v) => !VALID_BITS.includes(v)) + +describe("NiftyupNFT", function () { + let factory: Contract + let signers: SignerWithAddress[] + + before(async () => { + const Factory = await ethers.getContractFactory("NiftyupFactory") + factory = await Factory.deploy() + signers = await ethers.getSigners() + }) + + describe("Create new NFT", () => { + let nft: Contract + + VALID_BITS.map((v) => { + context(`With ${v} bits`, () => { + describe('implementation contracts', () => { + beforeEach(async () => { + const Factory = await ethers.getContractFactory("NiftyupFactory") + factory = await Factory.deploy() + }) + + it('Should start with no implementation', async () => { + const addr = await factory.implementations(v) + expect(addr).to.equal(ethers.constants.AddressZero) + }) + + it('Should create implementation after first deployment', async () => { + await factory.create(signers[0].address, v) + const addr = await factory.implementations(v) + expect(addr).to.not.equal(ethers.constants.AddressZero) + }) + + it('Should use same implementation on second deployment', async () => { + await factory.create(signers[0].address, v) + const addr1 = await factory.implementations(v) + await factory.create(signers[0].address, v) + const addr2 = await factory.implementations(v) + expect(addr1).to.equal(addr2) + }) + }) + + beforeEach(async () => { + nft = await nftFromTx(factory.create(signers[0].address, 32)) + }) + + it("Must have code", async () => { + expect(await ethers.provider.getCode(nft.address)).to.not.equal("0x") + }) + + it("Must have an owner", async () => { + expect(await nft.owner()).to.equal(signers[0].address) + }) + + it("Must fail to re-initialize", async () => { + const tx = nft.initialize(signers[1].address) + await expect(tx).to.be.reverted + }) + + describe("ownable", () => { + it("Must transfer ownership to a different owner", async () => { + await nft.transferOwnership(signers[1].address) + expect(await nft.owner()).to.equal(signers[1].address) + }) + + it("Must renonunce ownership", async () => { + await nft.renounceOwnership() + expect(await nft.owner()).to.equal(ethers.constants.AddressZero) + }) + + it("Must fail to transfer ownership if not owner", async () => { + const tx = nft.connect(signers[1]).transferOwnership(signers[1].address) + await expect(tx).to.be.reverted + }) + + it("Must fail to transfer ownership to address(0)", async () => { + const tx = nft.transferOwnership(ethers.constants.AddressZero) + await expect(tx).to.be.reverted + }) + }) + + describe("ERC-165", () => { + it("Must return false for 0xffffffff", async () => { + expect(await nft.supportsInterface("0xffffffff")).equal(false) + }) + + it("Must return true for 0x01ffc9a7 (ERC-165)", async () => { + expect(await nft.supportsInterface("0x01ffc9a7")).equal(true) + }) + }) + + describe("mint", () => { + it("Must mint single token with ID 0", async () => { + await nft.mint(signers[1].address, 0, 1, "0x") + expect(await nft.balanceOf(signers[1].address, 0)).to.equal(1) + }) + + it("Must mint single token", async () => { + await nft.mint(signers[1].address, 2, 1, "0x") + expect(await nft.balanceOf(signers[1].address, 2)).to.equal(1) + }) + + it("Must mint many tokens", async () => { + await nft.mint(signers[2].address, 3, 5, ethers.utils.randomBytes(512)) + expect(await nft.balanceOf(signers[2].address, 3)).to.equal(5) + }) + + it("Must fail to mint if not owner", async () => { + const tx = nft.connect(signers[1]).mint(signers[2].address, 2, 3, "0x") + await expect(tx).to.be.reverted + }) + + it("Must fail to mint if recipient rejects nfts", async () => { + const tx = nft.mint(nft.address, 2, 3, "0x") + await expect(tx).to.be.reverted + }) + }) + + describe("batchMint", () => { + it("Must mint batch tokens", async () => { + await nft.batchMint(signers[1].address, [2, 3, 4], [1, 2, 3], "0x") + expect(await nft.balanceOf(signers[1].address, 2)).to.equal(1) + expect(await nft.balanceOf(signers[1].address, 3)).to.equal(2) + expect(await nft.balanceOf(signers[1].address, 4)).to.equal(3) + }) + + it("Must fail to mint if not owner", async () => { + const tx = nft.connect(signers[1]).batchMint(signers[1].address, [2, 3, 4], [1, 2, 3], "0x") + await expect(tx).to.be.reverted + }) + + it("Must fail to mint if recipient rejects nfts", async () => { + const tx = nft.batchMint(nft.address, [2, 3, 4], [1, 2, 3], "0x") + await expect(tx).to.be.reverted + }) + }) + + describe("burn", () => { + it("Must burn tokens", async () => { + await nft.mint(signers[1].address, 2, 1, "0x") + await nft.connect(signers[1]).burn(2, 1) + expect(await nft.balanceOf(signers[1].address, 2)).to.equal(0) + }) + + it("Must burn many tokens", async () => { + await nft.mint(signers[1].address, 2, 5, "0x") + await nft.connect(signers[1]).burn(2, 4) + expect(await nft.balanceOf(signers[1].address, 2)).to.equal(1) + }) + + it("Must fail to burn if burner has no tokens", async () => { + const tx = nft.connect(signers[1]).burn(2, 1) + await expect(tx).to.be.reverted + }) + + it("Must fail to burn if burner has not enough tokens", async () => { + await nft.mint(signers[1].address, 2, 5, "0x") + const tx = nft.connect(signers[1]).burn(2, 6) + await expect(tx).to.be.reverted + }) + }) + + describe("batchBurn", () => { + it("Must burn tokens", async () => { + await nft.mint(signers[1].address, 0, 1, "0x") + await nft.mint(signers[1].address, 3, 4, "0x") + await nft.mint(signers[1].address, 4, 5, "0x") + + await nft.connect(signers[1]).batchBurn([0, 3, 4], [1, 3, 5]) + + expect(await nft.balanceOf(signers[1].address, 0)).to.equal(0) + expect(await nft.balanceOf(signers[1].address, 3)).to.equal(1) + expect(await nft.balanceOf(signers[1].address, 4)).to.equal(0) + }) + + it("Must fail to burn if burner has no tokens", async () => { + await nft.mint(signers[1].address, 0, 1, "0x") + await nft.mint(signers[1].address, 3, 4, "0x") + + const tx = nft.connect(signers[1]).batchBurn([0, 3, 4], [1, 3, 5]) + + await expect(tx).to.be.reverted + }) + + it("Must fail to burn if burner has not enough tokens", async () => { + await nft.mint(signers[1].address, 0, 1, "0x") + await nft.mint(signers[1].address, 3, 2, "0x") + + const tx = nft.connect(signers[1]).batchBurn([0, 3], [1, 3]) + + await expect(tx).to.be.reverted + }) + }) + + describe("metadata URI", () => { + it("Must initially return empty URI", async () => { + expect(await nft.uri(1)).to.equal("1.json") + }) + + it("Must return URI with defined prefix", async () => { + await nft.setBaseMetadataURI("ipfs://my-ipfs-hash-hehe/") + expect(await nft.uri(1)).to.equal("ipfs://my-ipfs-hash-hehe/1.json") + }) + + it("Must return URI with long prefix", async () => { + const prefix = `${ethers.utils.hexlify(ethers.utils.randomBytes(2048))}/` + const id = ethers.BigNumber.from(ethers.utils.randomBytes(32)) + await nft.setBaseMetadataURI(prefix) + expect(await nft.uri(id)).to.equal(`${prefix}${id.toString()}.json`) + }) + + it("Must change prefix twice", async () => { + await nft.setBaseMetadataURI("ipfs://my-ipfs-hash-hehe/") + expect(await nft.uri(0)).to.equal("ipfs://my-ipfs-hash-hehe/0.json") + + await nft.setBaseMetadataURI("https://sequence.app/") + expect(await nft.uri(0)).to.equal("https://sequence.app/0.json") + }) + + it("Must fail to change prefix if not owner", async () => { + const tx = nft.connect(signers[1]).setBaseMetadataURI("https://sequence.app/") + await expect(tx).to.be.reverted + }) + }) + }) + }) + + describe('Reject invalid bits values', () => { + INVALID_BITS.map((v) => { + it(`Should reject packed with ${v} bits`, async () => { + const tx = factory.create(signers[0].address, v) + await expect(tx).to.be.reverted + }) + }) + }) + }) +}) diff --git a/yarn.lock b/yarn.lock index 3459876..a038077 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,15 +2,14 @@ # yarn lockfile v1 -"@0xsequence/erc-1155@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@0xsequence/erc-1155/-/erc-1155-3.0.6.tgz#10f627d5550b470aa8f0e39163ac9d7a58880596" - integrity sha512-W4TdV9n4L/zDo8R7Chaa9rLsOknOIBoqtBsxC6n3gKuTXgDCI5KZglhK/yP1DWFG9St85wzmXPelfC6pX9vc3g== +"@0xsequence/erc-1155@https://gitpkg.now.sh/0xsequence/erc-1155/src?a664bd16734c53f71fd919a640dd36bb37e3500d": + version "4.0.0" + resolved "https://gitpkg.now.sh/0xsequence/erc-1155/src?a664bd16734c53f71fd919a640dd36bb37e3500d#4feee014476afc68cf8501e5d7e6f2f4bcc39e09" "@babel/code-frame@^7.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" - integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== + version "7.15.8" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.15.8.tgz#45990c47adadb00c03677baa89221f7cc23d2503" + integrity sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg== dependencies: "@babel/highlight" "^7.14.5" @@ -33,10 +32,10 @@ resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== -"@cspotcode/source-map-support@0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.6.1.tgz#118511f316e2e87ee4294761868e254d3da47960" - integrity sha512-DX3Z+T5dt1ockmPdobJS/FAsQPW4V4SrWEhD2iYQT2Cb2tQsiMnYxrcUH9By/Z3B+v0S5LMBkQtV/XOBbpLEOg== +"@cspotcode/source-map-support@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5" + integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== dependencies: "@cspotcode/source-map-consumer" "0.8.0" @@ -109,10 +108,10 @@ patch-package "^6.2.2" postinstall-postinstall "^2.1.0" -"@ethereumjs/block@^3.4.0", "@ethereumjs/block@^3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/block/-/block-3.5.0.tgz#31cfa49503010d504c99e2e043560efa1355a8f4" - integrity sha512-402pSG7a+NqtMDuj3OfDlQFZ2lZgiCS2dsnJba6/cMSI4+r/DTXgKd/ugP5B5iVAqhwtBLrgp3INDm6ua+HFkw== +"@ethereumjs/block@^3.4.0", "@ethereumjs/block@^3.5.0", "@ethereumjs/block@^3.5.1": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@ethereumjs/block/-/block-3.5.1.tgz#59737d393503249aa750c37dfc83896234f4e175" + integrity sha512-MoY9bHKABOBK6BW0v1N1Oc0Cve4x/giX67M3TtrVBUsKQTj2eznLGKpydoitxWSZ+WgKKSVhfRMzbCGRwk7T5w== dependencies: "@ethereumjs/common" "^2.5.0" "@ethereumjs/tx" "^3.3.1" @@ -120,11 +119,11 @@ merkle-patricia-tree "^4.2.1" "@ethereumjs/blockchain@^5.4.0", "@ethereumjs/blockchain@^5.4.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethereumjs/blockchain/-/blockchain-5.4.1.tgz#4a7aa291ec3eeb41719a5b6b2cc25ff1c6c6a440" - integrity sha512-PVNgVG4W79FZ8HacpYQkNleFsjqUbHnAW61+QFUL9LfK6MKddB5TBHcw3sE4AoXToWGq/UFpuBaaq1G0VBxM0g== + version "5.4.2" + resolved "https://registry.yarnpkg.com/@ethereumjs/blockchain/-/blockchain-5.4.2.tgz#5074e0a0157818762a5f5175ea0bd93c5455fe32" + integrity sha512-AOAAwz/lw2lciG9gf5wHi7M/qknraXXnLR66lYgbQ04qfyFC3ZE5x/5rLVm1Vu+kfJLlKrYZTmA0IbOkc7kvgw== dependencies: - "@ethereumjs/block" "^3.5.0" + "@ethereumjs/block" "^3.5.1" "@ethereumjs/common" "^2.5.0" "@ethereumjs/ethash" "^1.1.0" debug "^2.2.0" @@ -134,7 +133,7 @@ rlp "^2.2.4" semaphore-async-await "^1.5.1" -"@ethereumjs/common@^2.4.0", "@ethereumjs/common@^2.5.0": +"@ethereumjs/common@^2.3.0", "@ethereumjs/common@^2.4.0", "@ethereumjs/common@^2.5.0": version "2.5.0" resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.5.0.tgz#ec61551b31bef7a69d1dc634d8932468866a4268" integrity sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg== @@ -153,13 +152,13 @@ ethereumjs-util "^7.1.1" miller-rabin "^4.0.0" -"@ethereumjs/tx@^3.3.0", "@ethereumjs/tx@^3.3.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.1.tgz#83b6b1f9fe8182d6f2a1d7bff8213631629ab8a4" - integrity sha512-DXcBdW4upjU11FGlGBAMJw4jXAveL1Siu/8t9jfJ90dehOmpCyGTGWXr6tFzN8663Et8UFLcw3IdV7JJt88iZw== +"@ethereumjs/tx@^3.2.1", "@ethereumjs/tx@^3.3.0", "@ethereumjs/tx@^3.3.1": + version "3.3.2" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.2.tgz#348d4624bf248aaab6c44fec2ae67265efe3db00" + integrity sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog== dependencies: "@ethereumjs/common" "^2.5.0" - ethereumjs-util "^7.1.1" + ethereumjs-util "^7.1.2" "@ethereumjs/vm@^5.5.2": version "5.5.3" @@ -195,344 +194,360 @@ "@ethersproject/properties" ">=5.0.0-beta.131" "@ethersproject/strings" ">=5.0.0-beta.130" -"@ethersproject/abi@5.4.1", "@ethersproject/abi@^5.0.0-beta.146", "@ethersproject/abi@^5.0.1", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.4.0": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.4.1.tgz#6ac28fafc9ef6f5a7a37e30356a2eb31fa05d39b" - integrity sha512-9mhbjUk76BiSluiiW4BaYyI58KSbDMMQpCLdsAR+RsT2GyATiNYxVv+pGWRrekmsIdY3I+hOqsYQSTkc8L/mcg== - dependencies: - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - -"@ethersproject/abstract-provider@5.4.1", "@ethersproject/abstract-provider@^5.4.0": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz#e404309a29f771bd4d28dbafadcaa184668c2a6e" - integrity sha512-3EedfKI3LVpjSKgAxoUaI+gB27frKsxzm+r21w9G60Ugk+3wVLQwhi1LsEJAKNV7WoZc8CIpNrATlL1QFABjtQ== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/networks" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/web" "^5.4.0" - -"@ethersproject/abstract-signer@5.4.1", "@ethersproject/abstract-signer@^5.4.0": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz#e4e9abcf4dd4f1ba0db7dff9746a5f78f355ea81" - integrity sha512-SkkFL5HVq1k4/25dM+NWP9MILgohJCgGv5xT5AcRruGz4ILpfHeBtO/y6j+Z3UN/PAjDeb4P7E51Yh8wcGNLGA== - dependencies: - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - -"@ethersproject/address@5.4.0", "@ethersproject/address@>=5.0.0-beta.128", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.4.0.tgz#ba2d00a0f8c4c0854933b963b9a3a9f6eb4a37a3" - integrity sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/rlp" "^5.4.0" - -"@ethersproject/base64@5.4.0", "@ethersproject/base64@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.4.0.tgz#7252bf65295954c9048c7ca5f43e5c86441b2a9a" - integrity sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ== - dependencies: - "@ethersproject/bytes" "^5.4.0" - -"@ethersproject/basex@5.4.0", "@ethersproject/basex@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.4.0.tgz#0a2da0f4e76c504a94f2b21d3161ed9438c7f8a6" - integrity sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - -"@ethersproject/bignumber@5.4.2", "@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@^5.4.0": - version "5.4.2" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.4.2.tgz#44232e015ae4ce82ac034de549eb3583c71283d8" - integrity sha512-oIBDhsKy5bs7j36JlaTzFgNPaZjiNDOXsdSgSpXRucUl+UA6L/1YLlFeI3cPAoodcenzF4nxNPV13pcy7XbWjA== +"@ethersproject/abi@5.0.7": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" + integrity sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw== + dependencies: + "@ethersproject/address" "^5.0.4" + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/constants" "^5.0.4" + "@ethersproject/hash" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/strings" "^5.0.4" + +"@ethersproject/abi@5.5.0", "@ethersproject/abi@^5.0.0-beta.146", "@ethersproject/abi@^5.0.1", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.5.0.tgz#fb52820e22e50b854ff15ce1647cc508d6660613" + integrity sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w== + dependencies: + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/hash" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + +"@ethersproject/abstract-provider@5.5.1", "@ethersproject/abstract-provider@^5.5.0": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz#2f1f6e8a3ab7d378d8ad0b5718460f85649710c5" + integrity sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/networks" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/web" "^5.5.0" + +"@ethersproject/abstract-signer@5.5.0", "@ethersproject/abstract-signer@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz#590ff6693370c60ae376bf1c7ada59eb2a8dd08d" + integrity sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA== + dependencies: + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + +"@ethersproject/address@5.5.0", "@ethersproject/address@>=5.0.0-beta.128", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.5.0.tgz#bcc6f576a553f21f3dd7ba17248f81b473c9c78f" + integrity sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/rlp" "^5.5.0" + +"@ethersproject/base64@5.5.0", "@ethersproject/base64@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.5.0.tgz#881e8544e47ed976930836986e5eb8fab259c090" + integrity sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA== + dependencies: + "@ethersproject/bytes" "^5.5.0" + +"@ethersproject/basex@5.5.0", "@ethersproject/basex@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.5.0.tgz#e40a53ae6d6b09ab4d977bd037010d4bed21b4d3" + integrity sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + +"@ethersproject/bignumber@5.5.0", "@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527" + integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg== dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" bn.js "^4.11.9" -"@ethersproject/bytes@5.4.0", "@ethersproject/bytes@>=5.0.0-beta.129", "@ethersproject/bytes@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.4.0.tgz#56fa32ce3bf67153756dbaefda921d1d4774404e" - integrity sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA== +"@ethersproject/bytes@5.5.0", "@ethersproject/bytes@>=5.0.0-beta.129", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" + integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== dependencies: - "@ethersproject/logger" "^5.4.0" + "@ethersproject/logger" "^5.5.0" -"@ethersproject/constants@5.4.0", "@ethersproject/constants@>=5.0.0-beta.128", "@ethersproject/constants@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.4.0.tgz#ee0bdcb30bf1b532d2353c977bf2ef1ee117958a" - integrity sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q== +"@ethersproject/constants@5.5.0", "@ethersproject/constants@>=5.0.0-beta.128", "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.5.0.tgz#d2a2cd7d94bd1d58377d1d66c4f53c9be4d0a45e" + integrity sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ== dependencies: - "@ethersproject/bignumber" "^5.4.0" + "@ethersproject/bignumber" "^5.5.0" -"@ethersproject/contracts@5.4.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.4.1.tgz#3eb4f35b7fe60a962a75804ada2746494df3e470" - integrity sha512-m+z2ZgPy4pyR15Je//dUaymRUZq5MtDajF6GwFbGAVmKz/RF+DNIPwF0k5qEcL3wPGVqUjFg2/krlCRVTU4T5w== - dependencies: - "@ethersproject/abi" "^5.4.0" - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - -"@ethersproject/hash@5.4.0", "@ethersproject/hash@>=5.0.0-beta.128", "@ethersproject/hash@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.4.0.tgz#d18a8e927e828e22860a011f39e429d388344ae0" - integrity sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA== - dependencies: - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - -"@ethersproject/hdnode@5.4.0", "@ethersproject/hdnode@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.4.0.tgz#4bc9999b9a12eb5ce80c5faa83114a57e4107cac" - integrity sha512-pKxdS0KAaeVGfZPp1KOiDLB0jba11tG6OP1u11QnYfb7pXn6IZx0xceqWRr6ygke8+Kw74IpOoSi7/DwANhy8Q== - dependencies: - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/basex" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/pbkdf2" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" - "@ethersproject/signing-key" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/wordlists" "^5.4.0" - -"@ethersproject/json-wallets@5.4.0", "@ethersproject/json-wallets@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.4.0.tgz#2583341cfe313fc9856642e8ace3080154145e95" - integrity sha512-igWcu3fx4aiczrzEHwG1xJZo9l1cFfQOWzTqwRw/xcvxTk58q4f9M7cjh51EKphMHvrJtcezJ1gf1q1AUOfEQQ== - dependencies: - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/hdnode" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/pbkdf2" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/random" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" +"@ethersproject/contracts@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.5.0.tgz#b735260d4bd61283a670a82d5275e2a38892c197" + integrity sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg== + dependencies: + "@ethersproject/abi" "^5.5.0" + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + +"@ethersproject/hash@5.5.0", "@ethersproject/hash@>=5.0.0-beta.128", "@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9" + integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg== + dependencies: + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + +"@ethersproject/hdnode@5.5.0", "@ethersproject/hdnode@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.5.0.tgz#4a04e28f41c546f7c978528ea1575206a200ddf6" + integrity sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q== + dependencies: + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/basex" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/pbkdf2" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/sha2" "^5.5.0" + "@ethersproject/signing-key" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/wordlists" "^5.5.0" + +"@ethersproject/json-wallets@5.5.0", "@ethersproject/json-wallets@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz#dd522d4297e15bccc8e1427d247ec8376b60e325" + integrity sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ== + dependencies: + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/hdnode" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/pbkdf2" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/random" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@5.4.0", "@ethersproject/keccak256@>=5.0.0-beta.127", "@ethersproject/keccak256@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.4.0.tgz#7143b8eea4976080241d2bd92e3b1f1bf7025318" - integrity sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A== +"@ethersproject/keccak256@5.5.0", "@ethersproject/keccak256@>=5.0.0-beta.127", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492" + integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg== dependencies: - "@ethersproject/bytes" "^5.4.0" - js-sha3 "0.5.7" + "@ethersproject/bytes" "^5.5.0" + js-sha3 "0.8.0" -"@ethersproject/logger@5.4.1", "@ethersproject/logger@>=5.0.0-beta.129", "@ethersproject/logger@^5.4.0": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.1.tgz#503bd33683538b923c578c07d1c2c0dd18672054" - integrity sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A== +"@ethersproject/logger@5.5.0", "@ethersproject/logger@>=5.0.0-beta.129", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" + integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== -"@ethersproject/networks@5.4.2", "@ethersproject/networks@^5.4.0": - version "5.4.2" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.4.2.tgz#2247d977626e97e2c3b8ee73cd2457babde0ce35" - integrity sha512-eekOhvJyBnuibfJnhtK46b8HimBc5+4gqpvd1/H9LEl7Q7/qhsIhM81dI9Fcnjpk3jB1aTy6bj0hz3cifhNeYw== +"@ethersproject/networks@5.5.0", "@ethersproject/networks@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.0.tgz#babec47cab892c51f8dd652ce7f2e3e14283981a" + integrity sha512-KWfP3xOnJeF89Uf/FCJdV1a2aDJe5XTN2N52p4fcQ34QhDqQFkgQKZ39VGtiqUgHcLI8DfT0l9azC3KFTunqtA== + dependencies: + "@ethersproject/logger" "^5.5.0" + +"@ethersproject/pbkdf2@5.5.0", "@ethersproject/pbkdf2@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz#e25032cdf02f31505d47afbf9c3e000d95c4a050" + integrity sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg== dependencies: - "@ethersproject/logger" "^5.4.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/sha2" "^5.5.0" -"@ethersproject/pbkdf2@5.4.0", "@ethersproject/pbkdf2@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.4.0.tgz#ed88782a67fda1594c22d60d0ca911a9d669641c" - integrity sha512-x94aIv6tiA04g6BnazZSLoRXqyusawRyZWlUhKip2jvoLpzJuLb//KtMM6PEovE47pMbW+Qe1uw+68ameJjB7g== +"@ethersproject/properties@5.5.0", "@ethersproject/properties@>=5.0.0-beta.131", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995" + integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA== dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" + "@ethersproject/logger" "^5.5.0" -"@ethersproject/properties@5.4.1", "@ethersproject/properties@>=5.0.0-beta.131", "@ethersproject/properties@^5.4.0": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.4.1.tgz#9f051f976ce790142c6261ccb7b826eaae1f2f36" - integrity sha512-cyCGlF8wWlIZyizsj2PpbJ9I7rIlUAfnHYwy/T90pdkSn/NFTa5YWZx2wTJBe9V7dD65dcrrEMisCRUJiq6n3w== - dependencies: - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/providers@5.4.5": - version "5.4.5" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.5.tgz#eb2ea2a743a8115f79604a8157233a3a2c832928" - integrity sha512-1GkrvkiAw3Fj28cwi1Sqm8ED1RtERtpdXmRfwIBGmqBSN5MoeRUHuwHPppMtbPayPgpFcvD7/Gdc9doO5fGYgw== - dependencies: - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/basex" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/networks" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/random" "^5.4.0" - "@ethersproject/rlp" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/web" "^5.4.0" +"@ethersproject/providers@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.5.0.tgz#bc2876a8fe5e0053ed9828b1f3767ae46e43758b" + integrity sha512-xqMbDnS/FPy+J/9mBLKddzyLLAQFjrVff5g00efqxPzcAwXiR+SiCGVy6eJ5iAIirBOATjx7QLhDNPGV+AEQsw== + dependencies: + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/basex" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/hash" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/networks" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/random" "^5.5.0" + "@ethersproject/rlp" "^5.5.0" + "@ethersproject/sha2" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/web" "^5.5.0" bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@5.4.0", "@ethersproject/random@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.4.0.tgz#9cdde60e160d024be39cc16f8de3b9ce39191e16" - integrity sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw== +"@ethersproject/random@5.5.0", "@ethersproject/random@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9" + integrity sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ== dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" -"@ethersproject/rlp@5.4.0", "@ethersproject/rlp@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.4.0.tgz#de61afda5ff979454e76d3b3310a6c32ad060931" - integrity sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg== +"@ethersproject/rlp@5.5.0", "@ethersproject/rlp@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.5.0.tgz#530f4f608f9ca9d4f89c24ab95db58ab56ab99a0" + integrity sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA== dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" -"@ethersproject/sha2@5.4.0", "@ethersproject/sha2@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.4.0.tgz#c9a8db1037014cbc4e9482bd662f86c090440371" - integrity sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg== +"@ethersproject/sha2@5.5.0", "@ethersproject/sha2@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7" + integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA== dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" hash.js "1.1.7" -"@ethersproject/signing-key@5.4.0", "@ethersproject/signing-key@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.4.0.tgz#2f05120984e81cf89a3d5f6dec5c68ee0894fbec" - integrity sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A== +"@ethersproject/signing-key@5.5.0", "@ethersproject/signing-key@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.5.0.tgz#2aa37169ce7e01e3e80f2c14325f624c29cedbe0" + integrity sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng== dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" bn.js "^4.11.9" elliptic "6.5.4" hash.js "1.1.7" -"@ethersproject/solidity@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.4.0.tgz#1305e058ea02dc4891df18b33232b11a14ece9ec" - integrity sha512-XFQTZ7wFSHOhHcV1DpcWj7VXECEiSrBuv7JErJvB9Uo+KfCdc3QtUZV+Vjh/AAaYgezUEKbCtE6Khjm44seevQ== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - -"@ethersproject/strings@5.4.0", "@ethersproject/strings@>=5.0.0-beta.130", "@ethersproject/strings@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.4.0.tgz#fb12270132dd84b02906a8d895ae7e7fa3d07d9a" - integrity sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/transactions@5.4.0", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.4.0.tgz#a159d035179334bd92f340ce0f77e83e9e1522e0" - integrity sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ== - dependencies: - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/rlp" "^5.4.0" - "@ethersproject/signing-key" "^5.4.0" - -"@ethersproject/units@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.4.0.tgz#d57477a4498b14b88b10396062c8cbbaf20c79fe" - integrity sha512-Z88krX40KCp+JqPCP5oPv5p750g+uU6gopDYRTBGcDvOASh6qhiEYCRatuM/suC4S2XW9Zz90QI35MfSrTIaFg== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/wallet@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.4.0.tgz#fa5b59830b42e9be56eadd45a16a2e0933ad9353" - integrity sha512-wU29majLjM6AjCjpat21mPPviG+EpK7wY1+jzKD0fg3ui5fgedf2zEu1RDgpfIMsfn8fJHJuzM4zXZ2+hSHaSQ== - dependencies: - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/hdnode" "^5.4.0" - "@ethersproject/json-wallets" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/random" "^5.4.0" - "@ethersproject/signing-key" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/wordlists" "^5.4.0" - -"@ethersproject/web@5.4.0", "@ethersproject/web@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.4.0.tgz#49fac173b96992334ed36a175538ba07a7413d1f" - integrity sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og== - dependencies: - "@ethersproject/base64" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - -"@ethersproject/wordlists@5.4.0", "@ethersproject/wordlists@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.4.0.tgz#f34205ec3bbc9e2c49cadaee774cf0b07e7573d7" - integrity sha512-FemEkf6a+EBKEPxlzeVgUaVSodU7G0Na89jqKjmWMlDB0tomoU8RlEMgUvXyqtrg8N4cwpLh8nyRnm1Nay1isA== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/strings" "^5.4.0" +"@ethersproject/solidity@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.5.0.tgz#2662eb3e5da471b85a20531e420054278362f93f" + integrity sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/sha2" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + +"@ethersproject/strings@5.5.0", "@ethersproject/strings@>=5.0.0-beta.130", "@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549" + integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + +"@ethersproject/transactions@5.5.0", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.5.0.tgz#7e9bf72e97bcdf69db34fe0d59e2f4203c7a2908" + integrity sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA== + dependencies: + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/rlp" "^5.5.0" + "@ethersproject/signing-key" "^5.5.0" + +"@ethersproject/units@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.5.0.tgz#104d02db5b5dc42cc672cc4587bafb87a95ee45e" + integrity sha512-7+DpjiZk4v6wrikj+TCyWWa9dXLNU73tSTa7n0TSJDxkYbV3Yf1eRh9ToMLlZtuctNYu9RDNNy2USq3AdqSbag== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + +"@ethersproject/wallet@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.5.0.tgz#322a10527a440ece593980dca6182f17d54eae75" + integrity sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q== + dependencies: + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/hash" "^5.5.0" + "@ethersproject/hdnode" "^5.5.0" + "@ethersproject/json-wallets" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/random" "^5.5.0" + "@ethersproject/signing-key" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/wordlists" "^5.5.0" + +"@ethersproject/web@5.5.0", "@ethersproject/web@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.0.tgz#0e5bb21a2b58fb4960a705bfc6522a6acf461e28" + integrity sha512-BEgY0eL5oH4mAo37TNYVrFeHsIXLRxggCRG/ksRIxI2X5uj5IsjGmcNiRN/VirQOlBxcUhCgHhaDLG4m6XAVoA== + dependencies: + "@ethersproject/base64" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + +"@ethersproject/wordlists@5.5.0", "@ethersproject/wordlists@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.5.0.tgz#aac74963aa43e643638e5172353d931b347d584f" + integrity sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/hash" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -561,9 +576,9 @@ integrity sha512-6quxWe8wwS4X5v3Au8q1jOvXYEPkS1Fh+cME5u6AwNdnI4uERvPlVjlgRWzpnb+Rrt1l/cEqiNRH9GlsBMSDQg== "@nomiclabs/hardhat-etherscan@^2.1.6": - version "2.1.6" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-2.1.6.tgz#8d1502f42adc6f7b8ef16fb917c0b5a8780cb83a" - integrity sha512-gCvT5fj8GbXS9+ACS3BzrX0pzYHHZqAHCb+NcipOkl2cy48FakUXlzrCf4P4sTH+Y7W10OgT62ezD1sJ+/NikQ== + version "2.1.7" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-2.1.7.tgz#f76ce0da1b503d3e506bffbd044967b1a9443675" + integrity sha512-9nt9EXubnkd2aTMnQIqKtp80bQFhun88krfB31FN2wB0T54b8YuK0riG2d+EKq/D3t1Kb00oA7oFSFpHLIbLDQ== dependencies: "@ethersproject/abi" "^5.1.2" "@ethersproject/address" "^5.0.2" @@ -710,11 +725,6 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@solidity-parser/parser@^0.11.0": - version "0.11.1" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.11.1.tgz#fa840af64840c930f24a9c82c08d4a092a068add" - integrity sha512-H8BSBoKE8EubJa0ONqecA2TviT3TnHeC4NpgnAHSUiuhZoQBfPB4L2P9bs8R6AoTW10Endvh3vc+fomVMIDIYQ== - "@solidity-parser/parser@^0.12.0": version "0.12.2" resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.12.2.tgz#1afad367cb29a2ed8cdd4a3a62701c2821fb578f" @@ -727,6 +737,13 @@ dependencies: antlr4ts "^0.5.0-alpha.4" +"@solidity-parser/parser@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.0.tgz#d51f074efb0acce0e953ec48133561ed710cebc0" + integrity sha512-cX0JJRcmPtNUJpzD2K7FdA7qQsTOk1UZnFx2k7qAg9ZRvuaH5NBe5IEdBMXGlmf2+FmjhqbygJ26H8l2SV7aKQ== + dependencies: + antlr4ts "^0.5.0-alpha.4" + "@szmarczak/http-timer@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" @@ -734,6 +751,29 @@ dependencies: defer-to-connect "^1.0.1" +"@truffle/error@^0.0.14": + version "0.0.14" + resolved "https://registry.yarnpkg.com/@truffle/error/-/error-0.0.14.tgz#59683b5407bede7bddf16d80dc5592f9c5e5fa05" + integrity sha512-utJx+SZYoMqk8wldQG4gCVKhV8GwMJbWY7sLXFT/D8wWZTnE2peX7URFJh/cxkjTRCO328z1s2qewkhyVsu2HA== + +"@truffle/interface-adapter@^0.5.8": + version "0.5.8" + resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.5.8.tgz#76cfd34374d85849e1164de1a3d5a3dce0dc5d01" + integrity sha512-vvy3xpq36oLgjjy8KE9l2Jabg3WcGPOt18tIyMfTQX9MFnbHoQA2Ne2i8xsd4p6KfxIqSjAB53Q9/nScAqY0UQ== + dependencies: + bn.js "^5.1.3" + ethers "^4.0.32" + web3 "1.5.3" + +"@truffle/provider@^0.2.24": + version "0.2.42" + resolved "https://registry.yarnpkg.com/@truffle/provider/-/provider-0.2.42.tgz#9da6a144b3c9188cdb587451dd7bd907b4c7164b" + integrity sha512-ZNoglPho4alYIjJR+sLTgX0x6ho7m4OAUWuJ50RAWmoEqYc4AM6htdrI+lTSoRrOHHbmgasv22a7rFPMnmDrTg== + dependencies: + "@truffle/error" "^0.0.14" + "@truffle/interface-adapter" "^0.5.8" + web3 "1.5.3" + "@tsconfig/node10@^1.0.7": version "1.0.8" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" @@ -762,17 +802,17 @@ ethers "^5.0.2" "@typechain/ethers-v5@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-7.1.2.tgz#dbf31663f75cc50f2d9ad232f6e354c6a3e81465" - integrity sha512-sD4HVkTL5aIJa3Ft+CmqiOapba0zzZ8xa+QywcWH40Rm/dcxvZWwcCMnnI3En0JebkxOcAVfH3do+kQ9rKSxYw== + version "7.2.0" + resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-7.2.0.tgz#d559cffe0efe6bdbc20e644b817f6fa8add5e8f8" + integrity sha512-jfcmlTvaaJjng63QsT49MT6R1HFhtO/TBMWbyzPFSzMmVIqb2tL6prnKBs4ZJrSvmgIXWy+ttSjpaxCTq8D/Tw== dependencies: lodash "^4.17.15" ts-essentials "^7.0.1" "@typechain/hardhat@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@typechain/hardhat/-/hardhat-2.3.0.tgz#dc7f29281637b38b77c7c046ae82700703395d0f" - integrity sha512-zERrtNol86L4DX60ktnXxP7Cq8rSZHPaQvsChyiQQVuvVs2FTLm24Yi+MYnfsIdbUBIXZG7SxDWhtCF5I0tJNQ== + version "2.3.1" + resolved "https://registry.yarnpkg.com/@typechain/hardhat/-/hardhat-2.3.1.tgz#1e8a6e3795e115a5d5348526282b5c597fab0b78" + integrity sha512-BQV8OKQi0KAzLXCdsPO0pZBNQQ6ra8A2ucC26uFX/kquRBtJu1yEyWnVSmtr07b5hyRoJRpzUeINLnyqz4/MAw== dependencies: fs-extra "^9.1.0" @@ -814,6 +854,14 @@ dependencies: "@types/node" "*" +"@types/glob@^7.1.1": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + "@types/json-schema@^7.0.3": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" @@ -843,6 +891,11 @@ resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== +"@types/minimatch@*": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + "@types/mkdirp@^0.5.2": version "0.5.2" resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.5.2.tgz#503aacfe5cc2703d5484326b1b27efa67a339c1f" @@ -864,9 +917,9 @@ form-data "^3.0.0" "@types/node@*", "@types/node@^16.10.1": - version "16.10.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.1.tgz#f3647623199ca920960006b3dccf633ea905f243" - integrity sha512-4/Z9DMPKFexZj/Gn3LylFgamNKHm4K3QDi0gz9B26Uk0c8izYf97B5fxfpspMNkWlFupblKM/nV8+NA9Ffvr+w== + version "16.11.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.3.tgz#fad0b069ec205b0e81429c805d306d2c12e26be1" + integrity sha512-aIYL9Eemcecs1y77XzFGiSc+FdfN58k4J23UEe6+hynf4Wd9g4DzQPwIKL080vSMuubFqy2hWwOzCtJdc6vFKw== "@types/node@^10.0.3": version "10.17.60" @@ -874,9 +927,9 @@ integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== "@types/node@^12.12.6": - version "12.20.27" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.27.tgz#4141fcad57c332a120591de883e26fe4bb14aaea" - integrity sha512-qZdePUDSLAZRXXV234bLBEUM0nAQjoxbcSwp1rqSMUe1rZ47mwU6OjciR/JvF1Oo8mc0ys6GE0ks0HGgqAZoGg== + version "12.20.33" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.33.tgz#24927446e8b7669d10abacedd16077359678f436" + integrity sha512-5XmYX2GECSa+CxMYaFsr2mrql71Q4EvHjKS+ox/SiwSdaASMoBIWE6UmZqFO+VX1jIcsYLStI4FFoB6V7FeIYw== "@types/node@^8.0.0": version "8.10.66" @@ -1017,6 +1070,16 @@ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abbrev@1.0.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + integrity sha1-kbR5JYinc4wl813W9jdSovh3YTU= + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -1102,6 +1165,11 @@ acorn@^8.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== +address@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== + adm-zip@^0.4.16: version "0.4.16" resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" @@ -1134,6 +1202,11 @@ ajv@^6.10.2, ajv@^6.12.3, ajv@^6.6.1, ajv@^6.9.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + ansi-colors@3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" @@ -1341,6 +1414,11 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== +async@1.x, async@^1.4.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= + async@2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" @@ -1348,11 +1426,6 @@ async@2.6.2: dependencies: lodash "^4.17.11" -async@^1.4.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= - async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0, async@^2.6.1: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" @@ -1375,6 +1448,11 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -2003,12 +2081,12 @@ bn.js@4.11.6: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.10.0, bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.8.0: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.10.0, bn.js@^4.11.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.8.0: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2: +bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.1.3, bn.js@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== @@ -2179,11 +2257,11 @@ buffer@^5.0.5, buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0: ieee754 "^1.1.13" bufferutil@^4.0.1: - version "4.0.4" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.4.tgz#ab81373d313a6ead0d734e98c448c722734ae7bb" - integrity sha512-VNxjXUCrF3LvbLgwfkTb5LsFvk6pGIn7OBb9x+3o+iJ6mKw0JTUp4chBFc88hi1aspeZGeZG9jAIbpFYPQSLZw== + version "4.0.5" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.5.tgz#da9ea8166911cc276bf677b8aed2d02d31f59028" + integrity sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A== dependencies: - node-gyp-build "^4.2.0" + node-gyp-build "^4.3.0" bytes@3.1.0: version "3.1.0" @@ -2284,9 +2362,9 @@ camelcase@^5.0.0: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== caniuse-lite@^1.0.30000844: - version "1.0.30001261" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001261.tgz#96d89813c076ea061209a4e040d8dcf0c66a1d01" - integrity sha512-vM8D9Uvp7bHIN0fZ2KQ4wnmYFpJo/Etb4Vwsuc+ka0tfGDHvOPrFm6S/7CCNLSOkAUjenT2HnUPESdOIL91FaA== + version "1.0.30001271" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001271.tgz#0dda0c9bcae2cf5407cd34cac304186616cc83e8" + integrity sha512-BBruZFWmt3HFdVPS8kceTBIguKxu4f99n5JNp06OlPD/luoAMIaIK5ieV5YjnBLH3Nysai9sxj9rpJj4ZisXOA== caseless@^0.12.0, caseless@~0.12.0: version "0.12.0" @@ -2606,9 +2684,9 @@ cookie@^0.4.1: integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== cookiejar@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" - integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== + version "2.1.3" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" + integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== copy-descriptor@^0.1.0: version "0.1.1" @@ -2616,9 +2694,9 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-js-pure@^3.0.1: - version "3.18.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.18.1.tgz#097d34d24484be45cea700a448d1e74622646c80" - integrity sha512-kmW/k8MaSuqpvA1xm2l3TVlBuvW+XBkcaOroFUpO3D4lsTGQWBTb/tBDCf/PNkkPLrwgrkQRIYNPB0CeqGJWGQ== + version "3.18.3" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.18.3.tgz#7eed77dcce1445ab68fd68715856633e2fb3b90c" + integrity sha512-qfskyO/KjtbYn09bn1IPkuhHl5PlJ6IzJ9s9sraJ1EqcuGyLGKzhSM1cY0zgyL9hx42eulQLZ6WaeK5ycJCkqw== core-js@^2.4.0, core-js@^2.5.0: version "2.6.12" @@ -2705,7 +2783,7 @@ cross-fetch@^2.1.0, cross-fetch@^2.1.1: node-fetch "2.6.1" whatwg-fetch "2.0.4" -cross-spawn@^6.0.5: +cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -2753,7 +2831,12 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: +death@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/death/-/death-1.1.0.tgz#01aa9c401edd92750514470b8266390c66c67318" + integrity sha1-AaqcQB7dknUFFEcLgmY5DGbGcxg= + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -2914,6 +2997,14 @@ detect-indent@^4.0.0: dependencies: repeating "^2.0.0" +detect-port@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" + integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ== + dependencies: + address "^1.0.1" + debug "^2.6.0" + diff@3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" @@ -2999,9 +3090,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.47: - version "1.3.851" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.851.tgz#457846fce94d5de25511570435a94f1a622203ac" - integrity sha512-Ak970eGtRSoHTaJkoDjdkeXYetbwm5Bl9pN/nPOQ3QzLfw1EWRjReOlWUra6o58SVgxfpwOT9U2P1BUXoJ57dw== + version "1.3.877" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.877.tgz#956870eea7c9d8cf43cc54ea40687fee4dc0c12a" + integrity sha512-fT5mW5Giw5iyVukeHb2XvB4joBKvzHtl8Vs3QzE7APATpFMt/T7RWyUcIKSZzYkKQgpMbu+vDBTCHfQZvh8klA== elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3: version "6.5.4" @@ -3097,31 +3188,7 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.18.0-next.2: - version "1.18.6" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.6.tgz#2c44e3ea7a6255039164d26559777a6d978cb456" - integrity sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-symbols "^1.0.2" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.1" - is-regex "^1.1.4" - is-string "^1.0.7" - object-inspect "^1.11.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-abstract@^1.19.0, es-abstract@^1.19.1: +es-abstract@^1.18.5, es-abstract@^1.19.0, es-abstract@^1.19.1: version "1.19.1" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== @@ -3197,6 +3264,18 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +escodegen@1.8.x: + version "1.8.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + integrity sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg= + dependencies: + esprima "^2.7.1" + estraverse "^1.9.1" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.2.0" + eslint-config-prettier@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" @@ -3329,6 +3408,11 @@ espree@^5.0.1: acorn-jsx "^5.0.0" eslint-visitor-keys "^1.0.0" +esprima@2.7.x, esprima@^2.7.1: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= + esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" @@ -3348,6 +3432,11 @@ esrecurse@^4.1.0, esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" +estraverse@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + integrity sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q= + estraverse@^4.1.1: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" @@ -3728,16 +3817,15 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereum rlp "^2.0.0" safe-buffer "^5.1.1" -ethereumjs-util@^7.0.2, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.1.tgz#236ef435f46820f0c420a708c0559b5897952069" - integrity sha512-1CGBmCp3m8IMGHhAJF/icH8qjCJrfQtaZ9KW+cAVV8kyN5Lc1IRq3KjV77ILOutrCwiyf5y2gMyCrAUMoCf2Ag== +ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.2, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2: + version "7.1.3" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz#b55d7b64dde3e3e45749e4c41288238edec32d23" + integrity sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw== dependencies: "@types/bn.js" "^5.1.0" bn.js "^5.1.2" create-hash "^1.1.2" ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" rlp "^2.2.4" ethereumjs-vm@4.2.0: @@ -3793,7 +3881,7 @@ ethereumjs-wallet@0.6.5: utf8 "^3.0.0" uuid "^3.3.2" -ethers@^4.0.40: +ethers@^4.0.32, ethers@^4.0.40: version "4.0.49" resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.49.tgz#0eb0e9161a0c8b4761be547396bbe2fb121a8894" integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== @@ -3809,40 +3897,40 @@ ethers@^4.0.40: xmlhttprequest "1.8.0" ethers@^5.0.1, ethers@^5.0.2, ethers@^5.4.7: - version "5.4.7" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.7.tgz#0fd491a5da7c9793de2d6058d76b41b1e7efba8f" - integrity sha512-iZc5p2nqfWK1sj8RabwsPM28cr37Bpq7ehTQ5rWExBr2Y09Sn1lDKZOED26n+TsZMye7Y6mIgQ/1cwpSD8XZew== - dependencies: - "@ethersproject/abi" "5.4.1" - "@ethersproject/abstract-provider" "5.4.1" - "@ethersproject/abstract-signer" "5.4.1" - "@ethersproject/address" "5.4.0" - "@ethersproject/base64" "5.4.0" - "@ethersproject/basex" "5.4.0" - "@ethersproject/bignumber" "5.4.2" - "@ethersproject/bytes" "5.4.0" - "@ethersproject/constants" "5.4.0" - "@ethersproject/contracts" "5.4.1" - "@ethersproject/hash" "5.4.0" - "@ethersproject/hdnode" "5.4.0" - "@ethersproject/json-wallets" "5.4.0" - "@ethersproject/keccak256" "5.4.0" - "@ethersproject/logger" "5.4.1" - "@ethersproject/networks" "5.4.2" - "@ethersproject/pbkdf2" "5.4.0" - "@ethersproject/properties" "5.4.1" - "@ethersproject/providers" "5.4.5" - "@ethersproject/random" "5.4.0" - "@ethersproject/rlp" "5.4.0" - "@ethersproject/sha2" "5.4.0" - "@ethersproject/signing-key" "5.4.0" - "@ethersproject/solidity" "5.4.0" - "@ethersproject/strings" "5.4.0" - "@ethersproject/transactions" "5.4.0" - "@ethersproject/units" "5.4.0" - "@ethersproject/wallet" "5.4.0" - "@ethersproject/web" "5.4.0" - "@ethersproject/wordlists" "5.4.0" + version "5.5.1" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.5.1.tgz#d3259a95a42557844aa543906c537106c0406fbf" + integrity sha512-RodEvUFZI+EmFcE6bwkuJqpCYHazdzeR1nMzg+YWQSmQEsNtfl1KHGfp/FWZYl48bI/g7cgBeP2IlPthjiVngw== + dependencies: + "@ethersproject/abi" "5.5.0" + "@ethersproject/abstract-provider" "5.5.1" + "@ethersproject/abstract-signer" "5.5.0" + "@ethersproject/address" "5.5.0" + "@ethersproject/base64" "5.5.0" + "@ethersproject/basex" "5.5.0" + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/constants" "5.5.0" + "@ethersproject/contracts" "5.5.0" + "@ethersproject/hash" "5.5.0" + "@ethersproject/hdnode" "5.5.0" + "@ethersproject/json-wallets" "5.5.0" + "@ethersproject/keccak256" "5.5.0" + "@ethersproject/logger" "5.5.0" + "@ethersproject/networks" "5.5.0" + "@ethersproject/pbkdf2" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@ethersproject/providers" "5.5.0" + "@ethersproject/random" "5.5.0" + "@ethersproject/rlp" "5.5.0" + "@ethersproject/sha2" "5.5.0" + "@ethersproject/signing-key" "5.5.0" + "@ethersproject/solidity" "5.5.0" + "@ethersproject/strings" "5.5.0" + "@ethersproject/transactions" "5.5.0" + "@ethersproject/units" "5.5.0" + "@ethersproject/wallet" "5.5.0" + "@ethersproject/web" "5.5.0" + "@ethersproject/wordlists" "5.5.0" ethjs-unit@0.1.6: version "0.1.6" @@ -3883,6 +3971,19 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + exit-on-epipe@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" @@ -4014,7 +4115,7 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@^3.1.1: +fast-glob@^3.0.3, fast-glob@^3.1.1: version "3.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== @@ -4186,6 +4287,11 @@ for-in@^1.0.2: resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -4274,6 +4380,15 @@ fs-extra@^7.0.0, fs-extra@^7.0.1: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" @@ -4321,6 +4436,15 @@ functional-red-black-tree@^1.0.1, functional-red-black-tree@~1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= +ganache-cli@^6.12.2: + version "6.12.2" + resolved "https://registry.yarnpkg.com/ganache-cli/-/ganache-cli-6.12.2.tgz#c0920f7db0d4ac062ffe2375cb004089806f627a" + integrity sha512-bnmwnJDBDsOWBUP8E/BExWf85TsdDEFelQSzihSJm9VChVO1SHp94YXLP5BlA4j/OTxp0wR4R1Tje9OHOuAJVw== + dependencies: + ethereumjs-util "6.2.1" + source-map-support "0.5.12" + yargs "13.2.4" + ganache-core@^2.13.2: version "2.13.2" resolved "https://registry.yarnpkg.com/ganache-core/-/ganache-core-2.13.2.tgz#27e6fc5417c10e6e76e2e646671869d7665814a3" @@ -4392,7 +4516,7 @@ get-stream@^3.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= -get-stream@^4.1.0: +get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== @@ -4426,6 +4550,14 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" +ghost-testrpc@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz#c4de9557b1d1ae7b2d20bbe474a91378ca90ce92" + integrity sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ== + dependencies: + chalk "^2.4.2" + node-emoji "^1.10.0" + glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -4445,7 +4577,18 @@ glob@7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.2, glob@^7.1.3, glob@^7.1.6: +glob@^5.0.15: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + integrity sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E= + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -4469,6 +4612,22 @@ glob@~7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + global@~4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" @@ -4487,6 +4646,20 @@ globals@^9.18.0: resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== +globby@^10.0.1: + version "10.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" + integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.0.3" + glob "^7.1.3" + ignore "^5.1.1" + merge2 "^1.2.3" + slash "^3.0.0" + globby@^11.0.1: version "11.0.4" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" @@ -4546,6 +4719,18 @@ growl@1.10.5: resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== +handlebars@^4.0.1: + version "4.7.7" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" + integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" @@ -4568,9 +4753,9 @@ hardhat-gas-reporter@^1.0.4: sha1 "^1.1.1" hardhat@^2.6.4: - version "2.6.4" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.6.4.tgz#9ff3f139f697bfc4e14836a3fef3ca4c62357d65" - integrity sha512-6QNfu1FptjtyGJ+jBR7LMX7AMY9gWWw9kAUD7v0YZNZH1ZBgsZdMHqXKiSzO5pLQXo+fy9zZovKAUNYbjQ/1fw== + version "2.6.7" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.6.7.tgz#f9949e58f019439f0c5299b24e7f91d6c6a5ff29" + integrity sha512-Mua01f6ZN1feQLktHSH2p5A5LCdA+Wf7+O2lJDH6wClvWPtI2eqKNNY2gxBwYXoQ28GZrT3K6mqQOZeRWAca6Q== dependencies: "@ethereumjs/block" "^3.4.0" "@ethereumjs/blockchain" "^5.4.0" @@ -4579,7 +4764,7 @@ hardhat@^2.6.4: "@ethereumjs/vm" "^5.5.2" "@ethersproject/abi" "^5.1.2" "@sentry/node" "^5.18.1" - "@solidity-parser/parser" "^0.11.0" + "@solidity-parser/parser" "^0.14.0" "@types/bn.js" "^5.1.0" "@types/lru-cache" "^5.1.0" abort-controller "^3.0.0" @@ -4632,6 +4817,11 @@ has-bigints@^1.0.1: resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -4853,7 +5043,7 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.4: +ignore@^5.1.1, ignore@^5.1.4: version "5.1.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== @@ -4869,9 +5059,9 @@ immediate@~3.2.3: integrity sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw= immutable@^4.0.0-rc.12: - version "4.0.0-rc.15" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0-rc.15.tgz#c30056f05eaaf5650fd15230586688fdd15c54bc" - integrity sha512-v8+A3sNyaieoP9dHegl3tEYnIZa7vqNiSv0U6D7YddiZi34VjKy4GsIxrRHj2d8+CS3MeiVja5QyNe4JO/aEXA== + version "4.0.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" + integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== import-fresh@^2.0.0: version "2.0.0" @@ -4912,6 +5102,11 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= +ini@^1.3.5: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + inquirer@^6.2.2: version "6.5.2" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" @@ -4940,6 +5135,11 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + invariant@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -4952,6 +5152,11 @@ invert-kv@^1.0.0: resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + io-ts@1.10.4: version "1.10.4" resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-1.10.4.tgz#cd5401b138de88e4f920adbcb7026e2d1967e6e2" @@ -5036,9 +5241,9 @@ is-ci@^2.0.0: ci-info "^2.0.0" is-core-module@^2.2.0, is-core-module@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.7.0.tgz#3c0ef7d31b4acfc574f80c58409d568a836848e3" - integrity sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ== + version "2.8.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" + integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== dependencies: has "^1.0.3" @@ -5140,14 +5345,14 @@ is-function@^1.0.1: resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.2.tgz#859fc2e731e58c902f99fcabccb75a7dd07d29d8" - integrity sha512-ZZTOjRcDjuAAAv2cTBQP/lL59ZTArx77+7UzHdWW/XB1mrfp7DEaVpKmZ0XIzx+M7AxfhKcqV+nMetUQmFifwg== +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== dependencies: - is-extglob "^2.1.1" + has-tostringtag "^1.0.0" -is-glob@^4.0.3: +is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -5218,7 +5423,7 @@ is-shared-array-buffer@^1.0.1: resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== -is-stream@^1.0.0, is-stream@^1.0.1: +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -5237,6 +5442,17 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" +is-typed-array@^1.1.3, is-typed-array@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.8.tgz#cbaa6585dc7db43318bc5b89523ea384a6f65e79" + integrity sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.18.5" + foreach "^2.0.5" + has-tostringtag "^1.0.0" + is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -5339,7 +5555,7 @@ js-yaml@3.13.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^3.12.0, js-yaml@^3.13.0, js-yaml@^3.13.1: +js-yaml@3.x, js-yaml@^3.12.0, js-yaml@^3.13.0, js-yaml@^3.13.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== @@ -5463,6 +5679,11 @@ jsonify@~0.0.0: resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= +jsonschema@^1.2.4: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.0.tgz#1afa34c4bc22190d8e42271ec17ac8b3404f87b2" + integrity sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw== + jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -5552,6 +5773,13 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + level-codec@^9.0.0: version "9.0.2" resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.2.tgz#fd60df8c64786a80d44e63423096ffead63d8cbc" @@ -5794,7 +6022,7 @@ lodash@4.17.20: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== -lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.4: +lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -5874,6 +6102,13 @@ make-error@^1.1.1: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -5910,6 +6145,15 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + memdown@^1.0.0: version "1.4.1" resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.4.1.tgz#b4e4e192174664ffbae41361aa500f3119efe215" @@ -5956,7 +6200,7 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= -merge2@^1.3.0: +merge2@^1.2.3, merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -5989,12 +6233,12 @@ merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: semaphore ">=1.0.1" merkle-patricia-tree@^4.2.0, merkle-patricia-tree@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-4.2.1.tgz#fc43e7b162e597a0720ccdd702bf1d49765691d2" - integrity sha512-25reMgrT8PhJy0Ba0U7fMZD2oobS1FPWB9vQa0uBpJYIQYYuFXEHoqEkTqA/UzX+s9br3pmUVVY/TOsFt/x0oQ== + version "4.2.2" + resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-4.2.2.tgz#6dec17855370172458244c2f42c989dd60b773a3" + integrity sha512-eqZYNTshcYx9aESkSPr71EqwsR/QmpnObDEV4iLxkt/x/IoLYZYjJvKY72voP/27Vy61iMOrfOG6jrn7ttXD+Q== dependencies: "@types/levelup" "^4.3.0" - ethereumjs-util "^7.1.0" + ethereumjs-util "^7.1.2" level-mem "^5.0.1" level-ws "^2.0.0" readable-stream "^3.6.0" @@ -6041,17 +6285,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.49.0: - version "1.49.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" - integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== +mime-db@1.50.0: + version "1.50.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" + integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.32" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" - integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== + version "2.1.33" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" + integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== dependencies: - mime-db "1.49.0" + mime-db "1.50.0" mime@1.6.0: version "1.6.0" @@ -6063,6 +6307,11 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== +mimic-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" @@ -6085,7 +6334,7 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@3.0.4, minimatch@^3.0.4: +"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -6132,7 +6381,7 @@ mkdirp@*, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@0.5.5, mkdirp@^0.5.1, mkdirp@^0.5.5: +mkdirp@0.5.5, mkdirp@0.5.x, mkdirp@^0.5.1, mkdirp@^0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -6283,6 +6532,11 @@ negotiator@0.6.2: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +neo-async@^2.6.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + next-tick@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" @@ -6298,6 +6552,13 @@ node-addon-api@^2.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== +node-emoji@^1.10.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" + integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== + dependencies: + lodash "^4.17.21" + node-environment-flags@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088" @@ -6326,7 +6587,7 @@ node-fetch@~1.7.1: encoding "^0.1.11" is-stream "^1.0.1" -node-gyp-build@^4.2.0: +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== @@ -6336,6 +6597,13 @@ nofilter@^1.0.4: resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-1.0.4.tgz#78d6f4b6a613e7ced8b015cec534625f7667006e" integrity sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA== +nopt@3.x: + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= + dependencies: + abbrev "1" + normalize-package-data@^2.3.2: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -6356,6 +6624,13 @@ normalize-url@^4.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -6439,13 +6714,13 @@ object.assign@^4.1.2: object-keys "^1.1.1" object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" - integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== + version "2.1.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e" + integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" + es-abstract "^1.19.1" object.pick@^1.3.0: version "1.3.0" @@ -6475,6 +6750,13 @@ oboe@2.1.4: dependencies: http-https "^1.0.0" +oboe@2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" + integrity sha1-VVQoTFQ6ImbXo48X4HOCH73jk80= + dependencies: + http-https "^1.0.0" + on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -6482,7 +6764,7 @@ on-finished@~2.3.0: dependencies: ee-first "1.1.1" -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -6504,7 +6786,7 @@ open@^7.4.2: is-docker "^2.0.0" is-wsl "^2.1.1" -optionator@^0.8.2: +optionator@^0.8.1, optionator@^0.8.2: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== @@ -6528,6 +6810,15 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" +os-locale@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -6543,11 +6834,21 @@ p-cancelable@^1.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -6710,7 +7011,7 @@ path-is-inside@^1.0.2: resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= -path-key@^2.0.1: +path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= @@ -6770,6 +7071,11 @@ pify@^2.0.0, pify@^2.3.0: resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -7143,6 +7449,20 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +recursive-readdir@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" + integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== + dependencies: + minimatch "3.0.4" + regenerate@^1.2.1: version "1.4.2" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" @@ -7322,6 +7642,11 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= +resolve@1.1.x: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + resolve@1.17.0: version "1.17.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" @@ -7329,7 +7654,7 @@ resolve@1.17.0: dependencies: path-parse "^1.0.6" -resolve@^1.10.0, resolve@^1.20.0, resolve@^1.8.1, resolve@~1.20.0: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.20.0, resolve@^1.8.1, resolve@~1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -7392,11 +7717,11 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: inherits "^2.0.1" rlp@^2.0.0, rlp@^2.2.1, rlp@^2.2.2, rlp@^2.2.3, rlp@^2.2.4: - version "2.2.6" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.6.tgz#c80ba6266ac7a483ef1e69e8e2f056656de2fb2c" - integrity sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg== + version "2.2.7" + resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" + integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== dependencies: - bn.js "^4.11.1" + bn.js "^5.2.0" run-async@^2.2.0: version "2.4.1" @@ -7451,6 +7776,26 @@ safe-regex@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +sc-istanbul@^0.4.5: + version "0.4.6" + resolved "https://registry.yarnpkg.com/sc-istanbul/-/sc-istanbul-0.4.6.tgz#cf6784355ff2076f92d70d59047d71c13703e839" + integrity sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g== + dependencies: + abbrev "1.0.x" + async "1.x" + escodegen "1.8.x" + esprima "2.7.x" + glob "^5.0.15" + handlebars "^4.0.1" + js-yaml "3.x" + mkdirp "0.5.x" + nopt "3.x" + once "1.x" + resolve "1.1.x" + supports-color "^3.1.0" + which "^1.1.1" + wordwrap "^1.0.0" + scrypt-js@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" @@ -7516,7 +7861,7 @@ semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.2, semver@^7.3.5: +semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -7631,6 +7976,15 @@ shebang-regex@^1.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= +shelljs@^0.8.3: + version "0.8.4" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" + integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -7640,10 +7994,10 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.4.tgz#366a4684d175b9cab2081e3681fda3747b6c51d7" - integrity sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q== +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.5" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f" + integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== simple-concat@^1.0.0: version "1.0.1" @@ -7787,6 +8141,31 @@ solidity-comments-extractor@^0.0.7: resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz#99d8f1361438f84019795d928b931f4e5c39ca19" integrity sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw== +solidity-coverage@^0.7.17: + version "0.7.17" + resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.7.17.tgz#5139de8f6666d4755d88f453d8e35632a7bb3444" + integrity sha512-Erw2hd2xdACAvDX8jUdYkmgJlIIazGznwDJA5dhRaw4def2SisXN9jUjneeyOZnl/E7j6D3XJYug4Zg9iwodsg== + dependencies: + "@solidity-parser/parser" "^0.13.2" + "@truffle/provider" "^0.2.24" + chalk "^2.4.2" + death "^1.1.0" + detect-port "^1.3.0" + fs-extra "^8.1.0" + ganache-cli "^6.12.2" + ghost-testrpc "^0.0.2" + global-modules "^2.0.0" + globby "^10.0.1" + jsonschema "^1.2.4" + lodash "^4.17.15" + node-emoji "^1.10.0" + pify "^4.0.1" + recursive-readdir "^2.2.2" + sc-istanbul "^0.4.5" + semver "^7.3.4" + shelljs "^0.8.3" + web3-utils "^1.3.0" + source-map-resolve@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" @@ -7831,11 +8210,18 @@ source-map@^0.5.6, source-map@^0.5.7: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.0: +source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +source-map@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" + integrity sha1-2rc/vPwrqBm03gO9b26qSBZLP50= + dependencies: + amdefine ">=0.0.4" + spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" @@ -7963,13 +8349,13 @@ string-width@^4.2.2: strip-ansi "^6.0.1" string.prototype.trim@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.4.tgz#6014689baf5efaf106ad031a5fa45157666ed1bd" - integrity sha512-hWCk/iqf7lp0/AgTF7/ddO1IWtSNPASjlzCicV5irAVdE1grjsneK26YG6xACMBEdCvO8fUST0UzDMh/2Qy+9Q== + version "1.2.5" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.5.tgz#a587bcc8bfad8cb9829a577f5de30dd170c1682c" + integrity sha512-Lnh17webJVsD6ECeovpVN17RlAKjmz4rF9S+8Y45CkMc/ufVpTkU3vZIyIC7sllQ1FCvObZnnCdNs/HXTUOTlg== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" + es-abstract "^1.19.1" string.prototype.trimend@^1.0.4: version "1.0.4" @@ -8046,6 +8432,11 @@ strip-bom@^3.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + strip-hex-prefix@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" @@ -8070,6 +8461,13 @@ supports-color@^2.0.0: resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= +supports-color@^3.1.0: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + dependencies: + has-flag "^1.0.0" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -8322,11 +8720,11 @@ ts-generator@^0.1.1: ts-essentials "^1.0.0" ts-node@^10.2.1: - version "10.2.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.2.1.tgz#4cc93bea0a7aba2179497e65bb08ddfc198b3ab5" - integrity sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw== + version "10.3.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.3.1.tgz#739b42839b56d1a3c85026994af7045b2fccc6f5" + integrity sha512-Yw3W2mYzhHfCHOICGNJqa0i+rbL0rAyg7ZIHxU+K4pgY8gd2Lh1j+XbHCusJMykbj6RZMJVOY0MlHVd+GOivcw== dependencies: - "@cspotcode/source-map-support" "0.6.1" + "@cspotcode/source-map-support" "0.7.0" "@tsconfig/node10" "^1.0.7" "@tsconfig/node12" "^1.0.7" "@tsconfig/node14" "^1.0.0" @@ -8442,9 +8840,9 @@ typechain@^3.0.0: ts-generator "^0.1.1" typechain@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/typechain/-/typechain-5.1.2.tgz#c8784d6155a8e69397ca47f438a3b4fb2aa939da" - integrity sha512-FuaCxJd7BD3ZAjVJoO+D6TnqKey3pQdsqOBsC83RKYWKli5BDhdf0TPkwfyjt20TUlZvOzJifz+lDwXsRkiSKA== + version "5.2.0" + resolved "https://registry.yarnpkg.com/typechain/-/typechain-5.2.0.tgz#10525a44773a34547eb2eed8978cb72c0a39a0f4" + integrity sha512-0INirvQ+P+MwJOeMct+WLkUE4zov06QxC96D+i3uGFEHoiSkZN70MKDQsaj8zkL86wQwByJReI2e7fOUwECFuw== dependencies: "@types/prettier" "^2.1.1" command-line-args "^4.0.7" @@ -8470,9 +8868,9 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typescript@^4.4.3: - version "4.4.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz#bdc5407caa2b109efd4f82fe130656f977a29324" - integrity sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA== + version "4.4.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" + integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== typewise-core@^1.2, typewise-core@^1.2.0: version "1.2.0" @@ -8496,6 +8894,11 @@ typical@^2.6.0, typical@^2.6.1: resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" integrity sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0= +uglify-js@^3.1.4: + version "3.14.2" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.2.tgz#d7dd6a46ca57214f54a2d0a43cad0f35db82ac99" + integrity sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A== + ultron@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" @@ -8604,11 +9007,11 @@ use@^3.1.0: integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== utf-8-validate@^5.0.2: - version "5.0.6" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.6.tgz#e1b3e0a5cc8648a3b44c1799fbb170d1aaaffe80" - integrity sha512-hoY0gOf9EkCw+nimK21FVKHUIG1BMqSiRwxB/q3A9yKZOrOI99PP77BxmarDqWz6rG3vVYiBWfhG8z2Tl+7fZA== + version "5.0.7" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.7.tgz#c15a19a6af1f7ad9ec7ddc425747ca28c3644922" + integrity sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q== dependencies: - node-gyp-build "^4.2.0" + node-gyp-build "^4.3.0" utf8@3.0.0, utf8@^3.0.0: version "3.0.0" @@ -8631,6 +9034,18 @@ util.promisify@^1.0.0, util.promisify@^1.0.1: has-symbols "^1.0.1" object.getownpropertydescriptors "^2.1.1" +util@^0.12.0: + version "0.12.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" + integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" + utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" @@ -8688,6 +9103,15 @@ web3-bzz@1.2.11: swarm-js "^0.1.40" underscore "1.9.1" +web3-bzz@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.5.3.tgz#e36456905ce051138f9c3ce3623cbc73da088c2b" + integrity sha512-SlIkAqG0eS6cBS9Q2eBOTI1XFzqh83RqGJWnyrNZMDxUwsTVHL+zNnaPShVPvrWQA1Ub5b0bx1Kc5+qJVxsTJg== + dependencies: + "@types/node" "^12.12.6" + got "9.6.0" + swarm-js "^0.1.40" + web3-core-helpers@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz#84c681ed0b942c0203f3b324a245a127e8c67a99" @@ -8697,6 +9121,14 @@ web3-core-helpers@1.2.11: web3-eth-iban "1.2.11" web3-utils "1.2.11" +web3-core-helpers@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.5.3.tgz#099030235c477aadf39a94199ef40092151d563c" + integrity sha512-Ip1IjB3S8vN7Kf1PPjK41U5gskmMk6IJQlxIVuS8/1U7n/o0jC8krqtpRwiMfAgYyw3TXwBFtxSRTvJtnLyXZw== + dependencies: + web3-eth-iban "1.5.3" + web3-utils "1.5.3" + web3-core-method@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.11.tgz#f880137d1507a0124912bf052534f168b8d8fbb6" @@ -8709,6 +9141,18 @@ web3-core-method@1.2.11: web3-core-subscriptions "1.2.11" web3-utils "1.2.11" +web3-core-method@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.5.3.tgz#6cff97ed19fe4ea2e9183d6f703823a079f5132c" + integrity sha512-8wJrwQ2qD9ibWieF9oHXwrJsUGrv3XAtEkNeyvyNMpktNTIjxJ2jaFGQUuLiyUrMubD18XXgLk4JS6PJU4Loeg== + dependencies: + "@ethereumjs/common" "^2.4.0" + "@ethersproject/transactions" "^5.0.0-beta.135" + web3-core-helpers "1.5.3" + web3-core-promievent "1.5.3" + web3-core-subscriptions "1.5.3" + web3-utils "1.5.3" + web3-core-promievent@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz#51fe97ca0ddec2f99bf8c3306a7a8e4b094ea3cf" @@ -8716,6 +9160,13 @@ web3-core-promievent@1.2.11: dependencies: eventemitter3 "4.0.4" +web3-core-promievent@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.5.3.tgz#3f11833c3dc6495577c274350b61144e0a4dba01" + integrity sha512-CFfgqvk3Vk6PIAxtLLuX+pOMozxkKCY+/GdGr7weMh033mDXEPvwyVjoSRO1PqIKj668/hMGQsVoIgbyxkJ9Mg== + dependencies: + eventemitter3 "4.0.4" + web3-core-requestmanager@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz#fe6eb603fbaee18530293a91f8cf26d8ae28c45a" @@ -8727,6 +9178,17 @@ web3-core-requestmanager@1.2.11: web3-providers-ipc "1.2.11" web3-providers-ws "1.2.11" +web3-core-requestmanager@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.5.3.tgz#b339525815fd40e3a2a81813c864ddc413f7b6f7" + integrity sha512-9k/Bze2rs8ONix5IZR+hYdMNQv+ark2Ek2kVcrFgWO+LdLgZui/rn8FikPunjE+ub7x7pJaKCgVRbYFXjo3ZWg== + dependencies: + util "^0.12.0" + web3-core-helpers "1.5.3" + web3-providers-http "1.5.3" + web3-providers-ipc "1.5.3" + web3-providers-ws "1.5.3" + web3-core-subscriptions@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz#beca908fbfcb050c16f45f3f0f4c205e8505accd" @@ -8736,6 +9198,14 @@ web3-core-subscriptions@1.2.11: underscore "1.9.1" web3-core-helpers "1.2.11" +web3-core-subscriptions@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.5.3.tgz#d7d69c4caad65074212028656e9dc56ca5c2159d" + integrity sha512-L2m9vG1iRN6thvmv/HQwO2YLhOQlmZU8dpLG6GSo9FBN14Uch868Swk0dYVr3rFSYjZ/GETevSXU+O+vhCummA== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.5.3" + web3-core@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.11.tgz#1043cacc1becb80638453cc5b2a14be9050288a7" @@ -8749,6 +9219,19 @@ web3-core@1.2.11: web3-core-requestmanager "1.2.11" web3-utils "1.2.11" +web3-core@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.5.3.tgz#59f8728b27c8305b349051326aa262b9b7e907bf" + integrity sha512-ACTbu8COCu+0eUNmd9pG7Q9EVsNkAg2w3Y7SqhDr+zjTgbSHZV01jXKlapm9z+G3AN/BziV3zGwudClJ4u4xXQ== + dependencies: + "@types/bn.js" "^4.11.5" + "@types/node" "^12.12.6" + bignumber.js "^9.0.0" + web3-core-helpers "1.5.3" + web3-core-method "1.5.3" + web3-core-requestmanager "1.5.3" + web3-utils "1.5.3" + web3-eth-abi@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz#a887494e5d447c2926d557a3834edd66e17af9b0" @@ -8758,6 +9241,14 @@ web3-eth-abi@1.2.11: underscore "1.9.1" web3-utils "1.2.11" +web3-eth-abi@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.5.3.tgz#5aea9394d797f99ca0d9bd40c3417eb07241c96c" + integrity sha512-i/qhuFsoNrnV130CSRYX/z4SlCfSQ4mHntti5yTmmQpt70xZKYZ57BsU0R29ueSQ9/P+aQrL2t2rqkQkAloUxg== + dependencies: + "@ethersproject/abi" "5.0.7" + web3-utils "1.5.3" + web3-eth-accounts@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.2.11.tgz#a9e3044da442d31903a7ce035a86d8fa33f90520" @@ -8775,6 +9266,23 @@ web3-eth-accounts@1.2.11: web3-core-method "1.2.11" web3-utils "1.2.11" +web3-eth-accounts@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.5.3.tgz#076c816ff4d68c9dffebdc7fd2bfaddcfc163d77" + integrity sha512-pdGhXgeBaEJENMvRT6W9cmji3Zz/46ugFSvmnLLw79qi5EH7XJhKISNVb41eWCrs4am5GhI67GLx5d2s2a72iw== + dependencies: + "@ethereumjs/common" "^2.3.0" + "@ethereumjs/tx" "^3.2.1" + crypto-browserify "3.12.0" + eth-lib "0.2.8" + ethereumjs-util "^7.0.10" + scrypt-js "^3.0.1" + uuid "3.3.2" + web3-core "1.5.3" + web3-core-helpers "1.5.3" + web3-core-method "1.5.3" + web3-utils "1.5.3" + web3-eth-contract@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz#917065902bc27ce89da9a1da26e62ef663663b90" @@ -8790,6 +9298,20 @@ web3-eth-contract@1.2.11: web3-eth-abi "1.2.11" web3-utils "1.2.11" +web3-eth-contract@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.5.3.tgz#12b03a4a16ce583a945f874bea2ff2fb4c5b81ad" + integrity sha512-Gdlt1L6cdHe83k7SdV6xhqCytVtOZkjD0kY/15x441AuuJ4JLubCHuqu69k2Dr3tWifHYVys/vG8QE/W16syGg== + dependencies: + "@types/bn.js" "^4.11.5" + web3-core "1.5.3" + web3-core-helpers "1.5.3" + web3-core-method "1.5.3" + web3-core-promievent "1.5.3" + web3-core-subscriptions "1.5.3" + web3-eth-abi "1.5.3" + web3-utils "1.5.3" + web3-eth-ens@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.11.tgz#26d4d7f16d6cbcfff918e39832b939edc3162532" @@ -8805,6 +9327,20 @@ web3-eth-ens@1.2.11: web3-eth-contract "1.2.11" web3-utils "1.2.11" +web3-eth-ens@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.5.3.tgz#ef6eee1ddf32b1ff9536fc7c599a74f2656bafe1" + integrity sha512-QmGFFtTGElg0E+3xfCIFhiUF+1imFi9eg/cdsRMUZU4F1+MZCC/ee+IAelYLfNTGsEslCqfAusliKOT9DdGGnw== + dependencies: + content-hash "^2.5.2" + eth-ens-namehash "2.0.8" + web3-core "1.5.3" + web3-core-helpers "1.5.3" + web3-core-promievent "1.5.3" + web3-eth-abi "1.5.3" + web3-eth-contract "1.5.3" + web3-utils "1.5.3" + web3-eth-iban@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz#f5f73298305bc7392e2f188bf38a7362b42144ef" @@ -8813,6 +9349,14 @@ web3-eth-iban@1.2.11: bn.js "^4.11.9" web3-utils "1.2.11" +web3-eth-iban@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.5.3.tgz#91b1475893a877b10eac1de5cce6eb379fb81b5d" + integrity sha512-vMzmGqolYZvRHwP9P4Nf6G8uYM5aTLlQu2a34vz78p0KlDC+eV1th3+90Qeaupa28EG7OO0IT1F0BejiIauOPw== + dependencies: + bn.js "^4.11.9" + web3-utils "1.5.3" + web3-eth-personal@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.2.11.tgz#a38b3942a1d87a62070ce0622a941553c3d5aa70" @@ -8825,6 +9369,18 @@ web3-eth-personal@1.2.11: web3-net "1.2.11" web3-utils "1.2.11" +web3-eth-personal@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.5.3.tgz#4ebe09e9a77dd49d23d93b36b36cfbf4a6dae713" + integrity sha512-JzibJafR7ak/Icas8uvos3BmUNrZw1vShuNR5Cxjo+vteOC8XMqz1Vr7RH65B4bmlfb3bm9xLxetUHO894+Sew== + dependencies: + "@types/node" "^12.12.6" + web3-core "1.5.3" + web3-core-helpers "1.5.3" + web3-core-method "1.5.3" + web3-net "1.5.3" + web3-utils "1.5.3" + web3-eth@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.2.11.tgz#4c81fcb6285b8caf544058fba3ae802968fdc793" @@ -8844,6 +9400,24 @@ web3-eth@1.2.11: web3-net "1.2.11" web3-utils "1.2.11" +web3-eth@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.5.3.tgz#d7d1ac7198f816ab8a2088c01e0bf1eda45862fe" + integrity sha512-saFurA1L23Bd7MEf7cBli6/jRdMhD4X/NaMiO2mdMMCXlPujoudlIJf+VWpRWJpsbDFdu7XJ2WHkmBYT5R3p1Q== + dependencies: + web3-core "1.5.3" + web3-core-helpers "1.5.3" + web3-core-method "1.5.3" + web3-core-subscriptions "1.5.3" + web3-eth-abi "1.5.3" + web3-eth-accounts "1.5.3" + web3-eth-contract "1.5.3" + web3-eth-ens "1.5.3" + web3-eth-iban "1.5.3" + web3-eth-personal "1.5.3" + web3-net "1.5.3" + web3-utils "1.5.3" + web3-net@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.2.11.tgz#eda68ef25e5cdb64c96c39085cdb74669aabbe1b" @@ -8853,6 +9427,15 @@ web3-net@1.2.11: web3-core-method "1.2.11" web3-utils "1.2.11" +web3-net@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.5.3.tgz#545fee49b8e213b0c55cbe74ffd0295766057463" + integrity sha512-0W/xHIPvgVXPSdLu0iZYnpcrgNnhzHMC888uMlGP5+qMCt8VuflUZHy7tYXae9Mzsg1kxaJAS5lHVNyeNw4CoQ== + dependencies: + web3-core "1.5.3" + web3-core-method "1.5.3" + web3-utils "1.5.3" + web3-provider-engine@14.2.1: version "14.2.1" resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-14.2.1.tgz#ef351578797bf170e08d529cb5b02f8751329b95" @@ -8887,6 +9470,14 @@ web3-providers-http@1.2.11: web3-core-helpers "1.2.11" xhr2-cookies "1.1.0" +web3-providers-http@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.5.3.tgz#74f170fc3d79eb7941d9fbc34e2a067d61ced0b2" + integrity sha512-5DpUyWGHtDAr2RYmBu34Fu+4gJuBAuNx2POeiJIooUtJ+Mu6pIx4XkONWH6V+Ez87tZAVAsFOkJRTYuzMr3rPw== + dependencies: + web3-core-helpers "1.5.3" + xhr2-cookies "1.1.0" + web3-providers-ipc@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz#d16d6c9be1be6e0b4f4536c4acc16b0f4f27ef21" @@ -8896,6 +9487,14 @@ web3-providers-ipc@1.2.11: underscore "1.9.1" web3-core-helpers "1.2.11" +web3-providers-ipc@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.5.3.tgz#4bd7f5e445c2f3c2595fce0929c72bb879320a3f" + integrity sha512-JmeAptugVpmXI39LGxUSAymx0NOFdgpuI1hGQfIhbEAcd4sv7fhfd5D+ZU4oLHbRI8IFr4qfGU0uhR8BXhDzlg== + dependencies: + oboe "2.1.5" + web3-core-helpers "1.5.3" + web3-providers-ws@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz#a1dfd6d9778d840561d9ec13dd453046451a96bb" @@ -8906,6 +9505,15 @@ web3-providers-ws@1.2.11: web3-core-helpers "1.2.11" websocket "^1.0.31" +web3-providers-ws@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.5.3.tgz#eec6cfb32bb928a4106de506f13a49070a21eabf" + integrity sha512-6DhTw4Q7nm5CFYEUHOJM0gAb3xFx+9gWpVveg3YxJ/ybR1BUvEWo3bLgIJJtX56cYX0WyY6DS35a7f0LOI1kVg== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.5.3" + websocket "^1.0.32" + web3-shh@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.2.11.tgz#f5d086f9621c9a47e98d438010385b5f059fd88f" @@ -8916,6 +9524,16 @@ web3-shh@1.2.11: web3-core-subscriptions "1.2.11" web3-net "1.2.11" +web3-shh@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.5.3.tgz#3c04aa4cda9ba0b746d7225262401160f8e38b13" + integrity sha512-COfEXfsqoV/BkcsNLRxQqnWc1Teb8/9GxdGag5GtPC5gQC/vsN+7hYVJUwNxY9LtJPKYTij2DHHnx6UkITng+Q== + dependencies: + web3-core "1.5.3" + web3-core-method "1.5.3" + web3-core-subscriptions "1.5.3" + web3-net "1.5.3" + web3-utils@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.11.tgz#af1942aead3fb166ae851a985bed8ef2c2d95a82" @@ -8930,7 +9548,7 @@ web3-utils@1.2.11: underscore "1.9.1" utf8 "3.0.0" -web3-utils@^1.0.0-beta.31: +web3-utils@1.5.3: version "1.5.3" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.5.3.tgz#e914c9320cd663b2a09a5cb920ede574043eb437" integrity sha512-56nRgA+Ad9SEyCv39g36rTcr5fpsd4L9LgV3FK0aB66nAMazLAA6Qz4lH5XrUKPDyBIPGJIR+kJsyRtwcu2q1Q== @@ -8943,6 +9561,19 @@ web3-utils@^1.0.0-beta.31: randombytes "^2.1.0" utf8 "3.0.0" +web3-utils@^1.0.0-beta.31, web3-utils@^1.3.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.6.0.tgz#1975c5ee5b7db8a0836eb7004848a7cd962d1ddc" + integrity sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg== + dependencies: + bn.js "^4.11.9" + ethereum-bloom-filters "^1.0.6" + ethereumjs-util "^7.1.0" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randombytes "^2.1.0" + utf8 "3.0.0" + web3@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3/-/web3-1.2.11.tgz#50f458b2e8b11aa37302071c170ed61cff332975" @@ -8956,6 +9587,19 @@ web3@1.2.11: web3-shh "1.2.11" web3-utils "1.2.11" +web3@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.5.3.tgz#11882679453c645bf33620fbc255a243343075aa" + integrity sha512-eyBg/1K44flfv0hPjXfKvNwcUfIVDI4NX48qHQe6wd7C8nPSdbWqo9vLy6ksZIt9NLa90HjI8HsGYgnMSUxn6w== + dependencies: + web3-bzz "1.5.3" + web3-core "1.5.3" + web3-eth "1.5.3" + web3-eth-personal "1.5.3" + web3-net "1.5.3" + web3-shh "1.5.3" + web3-utils "1.5.3" + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -8973,7 +9617,7 @@ websocket@1.0.32: utf-8-validate "^5.0.2" yaeti "^0.0.6" -websocket@^1.0.31: +websocket@^1.0.31, websocket@^1.0.32: version "1.0.34" resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== @@ -9019,7 +9663,19 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@1.3.1, which@^1.2.9: +which-typed-array@^1.1.2: + version "1.1.7" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.7.tgz#2761799b9a22d4b8660b3c1b40abaa7739691793" + integrity sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.18.5" + foreach "^2.0.5" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.7" + +which@1.3.1, which@^1.1.1, which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -9043,6 +9699,11 @@ word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" @@ -9177,7 +9838,7 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@13.1.2, yargs-parser@^13.1.2: +yargs-parser@13.1.2, yargs-parser@^13.1.0, yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== @@ -9202,6 +9863,23 @@ yargs-unparser@1.6.0: lodash "^4.17.15" yargs "^13.3.0" +yargs@13.2.4: + version "13.2.4" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" + integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + os-locale "^3.1.0" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.0" + yargs@13.3.2, yargs@^13.3.0: version "13.3.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"