@coti-io/coti-contracts 0.1.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/npm-publish.yml +2 -1
- package/CONTRIBUTING.md +2 -2
- package/LICENSE +1 -1
- package/README.md +18 -35
- package/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc.sol +3 -115
- package/contracts/mocks/README.md +1 -1
- package/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol +257 -280
- package/contracts/mocks/utils/mpc/BitwiseTestsContract.sol +93 -187
- package/contracts/mocks/utils/mpc/{Comparison1Tests.Contract.sol → Comparison1TestsContract.sol} +67 -115
- package/contracts/mocks/utils/mpc/Comparison2TestsContract.sol +76 -116
- package/contracts/mocks/utils/mpc/MinMaxTestsContract.sol +69 -164
- package/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.sol +103 -56
- package/contracts/mocks/utils/mpc/MiscellaneousTestsContract.sol +270 -0
- package/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract.sol +127 -0
- package/contracts/mocks/utils/mpc/README.md +12 -12
- package/contracts/mocks/utils/mpc/TransferScalarTestsContract.sol +54 -211
- package/contracts/mocks/utils/mpc/TransferTestsContract.sol +165 -640
- package/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract.sol +222 -0
- package/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract.sol +222 -0
- package/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol +223 -0
- package/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract.sol +222 -0
- package/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract.sol +265 -0
- package/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol +281 -0
- package/contracts/onboard/AccountOnboard.sol +3 -3
- package/contracts/token/PrivateERC20/PrivateERC20.sol +1 -1
- package/contracts/token/PrivateERC721/IERC721Errors.sol +57 -0
- package/contracts/token/PrivateERC721/PrivateERC721.sol +1 -1
- package/contracts/utils/mpc/MpcCore.sol +2835 -988
- package/contracts/utils/mpc/MpcInterface.sol +6 -4
- package/hardhat.config.ts +17 -6
- package/package.json +20 -4
- package/test/token/PrivateERC20/PrivateERC20.test.ts +2 -2
- package/test/utils/accounts.ts +1 -1
- package/test/utils/mpc/Precompile.test.ts +42 -39
- package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/ArithmeticTestsContract.ts +374 -0
- package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/PrecompilesArythmeticTestsContract.ts +374 -0
- package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/index.ts +5 -0
- package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.ts +96 -10
- package/typechain-types/contracts/mocks/utils/mpc/BitwiseTestsContract.ts +45 -5
- package/typechain-types/contracts/mocks/utils/mpc/Comparison1TestsContract.ts +374 -0
- package/typechain-types/contracts/mocks/utils/mpc/Comparison2TestsContract.ts +45 -5
- package/typechain-types/contracts/mocks/utils/mpc/MinMaxTestsContract.ts +25 -5
- package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.ts +62 -0
- package/typechain-types/contracts/mocks/utils/mpc/MiscellaneousTestsContract.ts +396 -0
- package/typechain-types/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract.ts +251 -0
- package/typechain-types/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/OffboardToUserKeyTestContract.ts +11 -8
- package/typechain-types/contracts/mocks/utils/mpc/TransferScalarTestsContract.ts +15 -15
- package/typechain-types/contracts/mocks/utils/mpc/TransferTestsContract.ts +15 -15
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowance64TestsContract.ts +251 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowanceTestsContract.ts +250 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/index.ts +5 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.ts +389 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract.ts +391 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract.ts +391 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_64TestsContract.ts +391 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_8TestsContract.ts +391 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/index.ts +5 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.ts +391 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract.ts +391 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract.ts +306 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferTestsContract.ts +125 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferWithAllowanceTestsContract.ts +125 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/index.ts +5 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.ts +296 -0
- package/typechain-types/contracts/mocks/utils/mpc/index.ts +9 -6
- package/typechain-types/contracts/onboard/AccountOnboard.ts +9 -4
- package/typechain-types/contracts/token/PrivateERC721/IERC721Errors.ts +69 -0
- package/typechain-types/contracts/token/PrivateERC721/index.ts +1 -0
- package/typechain-types/contracts/utils/mpc/MpcCore.ts +84 -0
- package/typechain-types/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations.ts +81 -40
- package/typechain-types/contracts/utils/mpc/index.ts +1 -0
- package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/ArithmeticTestsContract__factory.ts +387 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/PrecompilesArythmeticTestsContract__factory.ts +388 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +92 -7
- package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +38 -2
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol/Comparison1TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts +387 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +38 -2
- package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +15 -2
- package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +66 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous2TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory.ts +424 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory.ts +285 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/OffboardToUserKeyTestContract__factory.ts +19 -3
- package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +4 -4
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +4 -4
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowance64TestsContract__factory.ts +294 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowanceTestsContract__factory.ts +292 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract__factory.ts +720 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract__factory.ts +724 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract__factory.ts +724 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_64TestsContract__factory.ts +724 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_8TestsContract__factory.ts +724 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract__factory.ts +724 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract__factory.ts +724 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract__factory.ts +507 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferTestsContract__factory.ts +150 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferWithAllowanceTestsContract__factory.ts +150 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract__factory.ts +434 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/index.ts +9 -4
- package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +1 -1
- package/typechain-types/factories/contracts/onboard/AccountOnboard__factory.ts +8 -2
- package/typechain-types/factories/contracts/token/PrivateERC721/IERC721Errors__factory.ts +128 -0
- package/typechain-types/factories/contracts/token/PrivateERC721/index.ts +1 -0
- package/typechain-types/factories/contracts/utils/mpc/MpcCore__factory.ts +77 -0
- package/typechain-types/factories/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations__factory.ts +124 -61
- package/typechain-types/factories/contracts/utils/mpc/index.ts +1 -0
- package/typechain-types/hardhat.d.ts +152 -26
- package/typechain-types/index.ts +20 -8
- package/contracts/access/DataPrivacyFramework/README.md +0 -68
- package/contracts/mocks/utils/mpc/Miscellaneous2TestsContract.sol +0 -448
- package/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol +0 -81
- package/contracts/mocks/utils/mpc/ShiftTestsContract.sol +0 -311
- package/contracts/token/PrivateERC20/README.md +0 -104
- package/contracts/token/PrivateERC721/README.md +0 -282
- package/contracts/utils/mpc/README.md +0 -82
|
@@ -575,7 +575,7 @@ const _abi = [
|
|
|
575
575
|
] as const;
|
|
576
576
|
|
|
577
577
|
const _bytecode =
|
|
578
|
-
"0x60806040523480156200001157600080fd5b506040518060400160405280600781526020017f4578616d706c65000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f45584c000000000000000000000000000000000000000000000000000000000081525081600090816200008f919062000324565b508060019081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b612ca6806200041b6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80636352211e11610097578063a22cb46511610066578063a22cb46514610284578063b88d4fde146102a0578063c87b56dd146102bc578063e985e9c5146102ec576100f5565b80636352211e146101ea57806368862e1b1461021a57806370a082311461023657806395d89b4114610266576100f5565b8063095ea7b3116100d3578063095ea7b31461017857806318160ddd1461019457806323b872dd146101b257806342842e0e146101ce576100f5565b806301ffc9a7146100fa57806306fdde031461012a578063081812fc14610148575b600080fd5b610114600480360381019061010f9190611e3b565b61031c565b6040516101219190611e83565b60405180910390f35b610132610379565b60405161013f9190611f2e565b60405180910390f35b610162600480360381019061015d9190611f86565b61040b565b60405161016f9190611ff4565b60405180910390f35b610192600480360381019061018d919061203b565b610427565b005b61019c61043d565b6040516101a9919061208a565b60405180910390f35b6101cc60048036038101906101c791906120a5565b610447565b005b6101e860048036038101906101e391906120a5565b610549565b005b61020460048036038101906101ff9190611f86565b610569565b6040516102119190611ff4565b60405180910390f35b610234600480360381019061022f919061211c565b61057b565b005b610250600480360381019061024b9190612178565b6105fa565b60405161025d919061208a565b60405180910390f35b61026e6106b4565b60405161027b9190611f2e565b60405180910390f35b61029e600480360381019061029991906121d1565b610746565b005b6102ba60048036038101906102b59190612346565b61075c565b005b6102d660048036038101906102d19190611f86565b610779565b6040516102e391906124dd565b60405180910390f35b610306600480360381019061030191906124ff565b610801565b6040516103139190611e83565b60405180910390f35b60008060e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610372575061037182610895565b5b9050919050565b6060600080546103889061256e565b80601f01602080910402602001604051908101604052809291908181526020018280546103b49061256e565b80156104015780601f106103d657610100808354040283529160200191610401565b820191906000526020600020905b8154815290600101906020018083116103e457829003601f168201915b5050505050905090565b60006104168261090f565b5061042082610997565b9050919050565b61043982826104346109d4565b6109dc565b5050565b6000600754905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036104b95760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016104b09190611ff4565b60405180910390fd5b60006104cd83836104c86109d4565b6109ee565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610543578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161053a9392919061259f565b60405180910390fd5b50505050565b6105648383836040518060200160405280600081525061075c565b505050565b60006105748261090f565b9050919050565b6000600754905061058c8382610a9c565b610597338284610b95565b6001600760008282546105aa9190612605565b92505081905550808373ffffffffffffffffffffffffffffffffffffffff167f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe60405160405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361066d5760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016106649190611ff4565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600180546106c39061256e565b80601f01602080910402602001604051908101604052809291908181526020018280546106ef9061256e565b801561073c5780601f106107115761010080835404028352916020019161073c565b820191906000526020600020905b81548152906001019060200180831161071f57829003601f168201915b5050505050905090565b6107586107516109d4565b8383610bbe565b5050565b610767848484610447565b61077384848484610d2d565b50505050565b610781611cff565b60066000838152602001908152602001600020600101604051806020016040529081600082018054806020026020016040519081016040528092919081815260200182805480156107f157602002820191906000526020600020905b8154815260200190600101908083116107dd575b5050505050815250509050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610908575061090782610ee4565b5b9050919050565b60008061091b83610f4e565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361098e57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610985919061208a565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6109e98383836001610f8b565b505050565b600080610a726006600086815260200190815260200160002060000160405180602001604052908160008201805480602002602001604051908101604052809291908181526020018280548015610a6457602002820191906000526020600020905b815481526020019060010190808311610a50575b505050505081525050611150565b90506000610a8186868661122e565b9050610a908686846000611448565b80925050509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b0e5760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610b059190611ff4565b60405180910390fd5b6000610b1c838360006109ee565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b905760006040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401610b879190611ff4565b60405180910390fd5b505050565b6000610ba982610ba4906128f8565b611584565b9050610bb88484836001611448565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c2f57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610c269190611ff4565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d209190611e83565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115610ede578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02610d716109d4565b8685856040518563ffffffff1660e01b8152600401610d939493929190612960565b6020604051808303816000875af1925050508015610dcf57506040513d601f19601f82011682018060405250810190610dcc91906129c1565b60015b610e53573d8060008114610dff576040519150601f19603f3d011682016040523d82523d6000602084013e610e04565b606091505b506000815103610e4b57836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610e429190611ff4565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610edc57836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610ed39190611ff4565b60405180910390fd5b505b50505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080610fc45750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156110f8576000610fd48461090f565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561103f57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561105257506110508184610801565b155b1561109457826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161108b9190611ff4565b60405180910390fd5b81156110f657838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611158611d12565b60008260000151519050600060405180602001604052808367ffffffffffffffff8111156111895761118861221b565b5b6040519080825280602002602001820160405280156111b75781602001602082028036833780820191505090505b50815250905060005b82811015611223576111ef856000015182815181106111e2576111e16129ee565b5b60200260200101516116eb565b82600001518281518110611206576112056129ee565b5b6020026020010181815250508061121c90612a1d565b90506111c0565b508092505050919050565b60008061123a84610f4e565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461127c5761127b818486611788565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461130d576112be600085600080610f8b565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611390576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff1661146984610569565b73ffffffffffffffffffffffffffffffffffffffff16036114c157826040517f868439130000000000000000000000000000000000000000000000000000000081526004016114b8919061208a565b60405180910390fd5b60006114cd838661184c565b90508115611541578060066000868152602001908152602001600020600082015181600001600082015181600001908051906020019061150e929190611d25565b5050506020820151816001016000820151816000019080519060200190611536929190611d25565b50505090505061157d565b8060200151600660008681526020019081526020016000206001016000820151816000019080519060200190611578929190611d25565b509050505b5050505050565b61158c611d12565b600082602001515190508083600001516000015151146115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d890612ab1565b60405180910390fd5b600060405180602001604052808367ffffffffffffffff8111156116085761160761221b565b5b6040519080825280602002602001820160405280156116365781602001602082028036833780820191505090505b508152509050611644611d72565b60005b838110156116df57856000015160000151818151811061166a576116696129ee565b5b602002602001015182600001818152505085602001518181518110611692576116916129ee565b5b602002602001015182602001819052506116ab8261187d565b836000015182815181106116c2576116c16129ee565b5b602002602001018181525050806116d890612a1d565b9050611647565b50819350505050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d2c135e560048081111561171d5761171c612ad1565b5b60f81b846040518363ffffffff1660e01b815260040161173e929190612b3b565b6020604051808303816000875af115801561175d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117819190612b79565b9050919050565b611793838383611924565b61184757600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361180857806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016117ff919061208a565b60405180910390fd5b81816040517f177e802f00000000000000000000000000000000000000000000000000000000815260040161183e929190612ba6565b60405180910390fd5b505050565b611854611d8c565b61185d836119e5565b816000018190525061186f8383611ac3565b816020018190525092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663e4f36e106004808111156118af576118ae612ad1565b5b60f81b846000015185602001516040518463ffffffff1660e01b81526004016118da93929190612bcf565b6020604051808303816000875af11580156118f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191d9190612b79565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119dc57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061199d575061199c8484610801565b5b806119db57508273ffffffffffffffffffffffffffffffffffffffff166119c383610997565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b6119ed611cff565b60008260000151519050600060405180602001604052808367ffffffffffffffff811115611a1e57611a1d61221b565b5b604051908082528060200260200182016040528015611a4c5781602001602082028036833780820191505090505b50815250905060005b82811015611ab857611a8485600001518281518110611a7757611a766129ee565b5b6020026020010151611ba3565b82600001518281518110611a9b57611a9a6129ee565b5b60200260200101818152505080611ab190612a1d565b9050611a55565b508092505050919050565b611acb611cff565b60008360000151519050600060405180602001604052808367ffffffffffffffff811115611afc57611afb61221b565b5b604051908082528060200260200182016040528015611b2a5781602001602082028036833780820191505090505b50815250905060005b82811015611b9757611b6386600001518281518110611b5557611b546129ee565b5b602002602001015186611c40565b82600001518281518110611b7a57611b796129ee565b5b60200260200101818152505080611b9090612a1d565b9050611b33565b50809250505092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663c50c9c02600480811115611bd557611bd4612ad1565b5b60f81b846040518363ffffffff1660e01b8152600401611bf6929190612b3b565b6020604051808303816000875af1158015611c15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c399190612b79565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff16633c6f0e68600480811115611c7257611c71612ad1565b5b60f81b8585604051602001611c879190612c55565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611cb493929190612bcf565b6020604051808303816000875af1158015611cd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf79190612b79565b905092915050565b6040518060200160405280606081525090565b6040518060200160405280606081525090565b828054828255906000526020600020908101928215611d61579160200282015b82811115611d60578251825591602001919060010190611d45565b5b509050611d6e9190611db2565b5090565b604051806040016040528060008152602001606081525090565b6040518060400160405280611d9f611cff565b8152602001611dac611cff565b81525090565b5b80821115611dcb576000816000905550600101611db3565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611e1881611de3565b8114611e2357600080fd5b50565b600081359050611e3581611e0f565b92915050565b600060208284031215611e5157611e50611dd9565b5b6000611e5f84828501611e26565b91505092915050565b60008115159050919050565b611e7d81611e68565b82525050565b6000602082019050611e986000830184611e74565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ed8578082015181840152602081019050611ebd565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f0082611e9e565b611f0a8185611ea9565b9350611f1a818560208601611eba565b611f2381611ee4565b840191505092915050565b60006020820190508181036000830152611f488184611ef5565b905092915050565b6000819050919050565b611f6381611f50565b8114611f6e57600080fd5b50565b600081359050611f8081611f5a565b92915050565b600060208284031215611f9c57611f9b611dd9565b5b6000611faa84828501611f71565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fde82611fb3565b9050919050565b611fee81611fd3565b82525050565b60006020820190506120096000830184611fe5565b92915050565b61201881611fd3565b811461202357600080fd5b50565b6000813590506120358161200f565b92915050565b6000806040838503121561205257612051611dd9565b5b600061206085828601612026565b925050602061207185828601611f71565b9150509250929050565b61208481611f50565b82525050565b600060208201905061209f600083018461207b565b92915050565b6000806000606084860312156120be576120bd611dd9565b5b60006120cc86828701612026565b93505060206120dd86828701612026565b92505060406120ee86828701611f71565b9150509250925092565b600080fd5b600060408284031215612113576121126120f8565b5b81905092915050565b6000806040838503121561213357612132611dd9565b5b600061214185828601612026565b925050602083013567ffffffffffffffff81111561216257612161611dde565b5b61216e858286016120fd565b9150509250929050565b60006020828403121561218e5761218d611dd9565b5b600061219c84828501612026565b91505092915050565b6121ae81611e68565b81146121b957600080fd5b50565b6000813590506121cb816121a5565b92915050565b600080604083850312156121e8576121e7611dd9565b5b60006121f685828601612026565b9250506020612207858286016121bc565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61225382611ee4565b810181811067ffffffffffffffff821117156122725761227161221b565b5b80604052505050565b6000612285611dcf565b9050612291828261224a565b919050565b600067ffffffffffffffff8211156122b1576122b061221b565b5b6122ba82611ee4565b9050602081019050919050565b82818337600083830152505050565b60006122e96122e484612296565b61227b565b90508281526020810184848401111561230557612304612216565b5b6123108482856122c7565b509392505050565b600082601f83011261232d5761232c612211565b5b813561233d8482602086016122d6565b91505092915050565b600080600080608085870312156123605761235f611dd9565b5b600061236e87828801612026565b945050602061237f87828801612026565b935050604061239087828801611f71565b925050606085013567ffffffffffffffff8111156123b1576123b0611dde565b5b6123bd87828801612318565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b600061241a61241561241084611f50565b6123f5565b611f50565b9050919050565b61242a816123ff565b82525050565b600061243c8383612421565b60208301905092915050565b6000602082019050919050565b6000612460826123c9565b61246a81856123d4565b9350612475836123e5565b8060005b838110156124a657815161248d8882612430565b975061249883612448565b925050600181019050612479565b5085935050505092915050565b600060208301600083015184820360008601526124d08282612455565b9150508091505092915050565b600060208201905081810360008301526124f781846124b3565b905092915050565b6000806040838503121561251657612515611dd9565b5b600061252485828601612026565b925050602061253585828601612026565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061258657607f821691505b6020821081036125995761259861253f565b5b50919050565b60006060820190506125b46000830186611fe5565b6125c1602083018561207b565b6125ce6040830184611fe5565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061261082611f50565b915061261b83611f50565b9250828201905080821115612633576126326125d6565b5b92915050565b600080fd5b600080fd5b600067ffffffffffffffff82111561265e5761265d61221b565b5b602082029050602081019050919050565b600080fd5b61267d81611f50565b811461268857600080fd5b50565b60008135905061269a81612674565b92915050565b60006126b36126ae84612643565b61227b565b905080838252602082019050602084028301858111156126d6576126d561266f565b5b835b818110156126ff57806126eb888261268b565b8452602084019350506020810190506126d8565b5050509392505050565b600082601f83011261271e5761271d612211565b5b813561272e8482602086016126a0565b91505092915050565b60006020828403121561274d5761274c612639565b5b612757602061227b565b9050600082013567ffffffffffffffff8111156127775761277661263e565b5b61278384828501612709565b60008301525092915050565b600067ffffffffffffffff8211156127aa576127a961221b565b5b602082029050602081019050919050565b60006127ce6127c98461278f565b61227b565b905080838252602082019050602084028301858111156127f1576127f061266f565b5b835b8181101561283857803567ffffffffffffffff81111561281657612815612211565b5b8086016128238982612318565b855260208501945050506020810190506127f3565b5050509392505050565b600082601f83011261285757612856612211565b5b81356128678482602086016127bb565b91505092915050565b60006040828403121561288657612885612639565b5b612890604061227b565b9050600082013567ffffffffffffffff8111156128b0576128af61263e565b5b6128bc84828501612737565b600083015250602082013567ffffffffffffffff8111156128e0576128df61263e565b5b6128ec84828501612842565b60208301525092915050565b60006129043683612870565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006129328261290b565b61293c8185612916565b935061294c818560208601611eba565b61295581611ee4565b840191505092915050565b60006080820190506129756000830187611fe5565b6129826020830186611fe5565b61298f604083018561207b565b81810360608301526129a18184612927565b905095945050505050565b6000815190506129bb81611e0f565b92915050565b6000602082840312156129d7576129d6611dd9565b5b60006129e5848285016129ac565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612a2882611f50565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a5a57612a596125d6565b5b600182019050919050565b7f4d50435f434f52453a20494e56414c49445f494e5055545f5445585400000000600082015250565b6000612a9b601c83611ea9565b9150612aa682612a65565b602082019050919050565b60006020820190508181036000830152612aca81612a8e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b612b3581612b00565b82525050565b6000604082019050612b506000830185612b2c565b612b5d602083018461207b565b9392505050565b600081519050612b7381611f5a565b92915050565b600060208284031215612b8f57612b8e611dd9565b5b6000612b9d84828501612b64565b91505092915050565b6000604082019050612bbb6000830185611fe5565b612bc8602083018461207b565b9392505050565b6000606082019050612be46000830186612b2c565b612bf1602083018561207b565b8181036040830152612c038184612927565b9050949350505050565b60008160601b9050919050565b6000612c2582612c0d565b9050919050565b6000612c3782612c1a565b9050919050565b612c4f612c4a82611fd3565b612c2c565b82525050565b6000612c618284612c3e565b6014820191508190509291505056fea2646970667358221220965dd8f88bf3e1221f9a29ff95bb95f0eca59f2883e14695f81679ea51ade90364736f6c63430008140033";
|
|
578
|
+
"0x60806040523480156200001157600080fd5b50604051806040016040528060078152602001664578616d706c6560c81b8152506040518060400160405280600381526020016211561360ea1b81525081600090816200005f91906200011c565b5060016200006e82826200011c565b505050620001e8565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a257607f821691505b602082108103620000c357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011757600081815260208120601f850160051c81016020861015620000f25750805b601f850160051c820191505b818110156200011357828155600101620000fe565b5050505b505050565b81516001600160401b0381111562000138576200013862000077565b62000150816200014984546200008d565b84620000c9565b602080601f8311600181146200018857600084156200016f5750858301515b600019600386901b1c1916600185901b17855562000113565b600085815260208120601f198616915b82811015620001b95788860151825594840194600190910190840162000198565b5085821015620001d85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611fee80620001f86000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80636352211e11610097578063a22cb46511610066578063a22cb465146101fd578063b88d4fde14610210578063c87b56dd14610223578063e985e9c51461024357600080fd5b80636352211e146101bc57806368862e1b146101cf57806370a08231146101e257806395d89b41146101f557600080fd5b8063095ea7b3116100d3578063095ea7b31461016f57806318160ddd1461018457806323b872dd1461019657806342842e0e146101a957600080fd5b806301ffc9a7146100fa57806306fdde0314610122578063081812fc14610137575b600080fd5b61010d610108366004611843565b61028c565b60405190151581526020015b60405180910390f35b61012a6102c7565b60405161011991906118c4565b61014a6101453660046118d7565b610359565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610119565b61018261017d366004611919565b61038f565b005b6007545b604051908152602001610119565b6101826101a4366004611943565b61039e565b6101826101b7366004611943565b610494565b61014a6101ca3660046118d7565b6104b4565b6101826101dd36600461197f565b6104bf565b6101886101f03660046119d4565b610537565b61012a6105b2565b61018261020b3660046119ef565b6105c1565b61018261021e366004611b78565b6105cc565b6102366102313660046118d7565b6105e3565b6040516101199190611be0565b61010d610251366004611c30565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b60007fffffffff00000000000000000000000000000000000000000000000000000000821615806102c157506102c182610660565b92915050565b6060600080546102d690611c63565b80601f016020809104026020016040519081016040528092919081815260200182805461030290611c63565b801561034f5780601f106103245761010080835404028352916020019161034f565b820191906000526020600020905b81548152906001019060200180831161033257829003601f168201915b5050505050905090565b6000610364826106f7565b5060008281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff166102c1565b61039a828233610756565b5050565b73ffffffffffffffffffffffffffffffffffffffff82166103f3576040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6000610400838333610763565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461048e576040517f64283d7b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808616600483015260248201849052821660448201526064016103ea565b50505050565b6104af838383604051806020016040528060008152506105cc565b505050565b60006102c1826106f7565b6007546104cc83826107f9565b6104d73382846108aa565b6001600760008282546104ea9190611ce5565b9091555050604051819073ffffffffffffffffffffffffffffffffffffffff8516907f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe90600090a3505050565b600073ffffffffffffffffffffffffffffffffffffffff8216610589576040517f89c62b64000000000000000000000000000000000000000000000000000000008152600060048201526024016103ea565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b6060600180546102d690611c63565b61039a3383836108cc565b6105d784848461039e565b61048e848484846109c9565b604080516020808201835260608252600084815260068252839020835160019091018054808402830186018652928201838152939491939092849284919084018282801561065057602002820191906000526020600020905b81548152602001906001019080831161063c575b5050505050815250509050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806102c157507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102c1565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff16806102c1576040517f7e273289000000000000000000000000000000000000000000000000000000008152600481018490526024016103ea565b6104af8383836001610bc0565b60008281526006602090815260408083208151815480850282018401845293810184815285946107d29492939284929184918401828280156107c457602002820191906000526020600020905b8154815260200190600101908083116107b0575b505050505081525050610d8b565b905060006107e1868686610e5b565b90506107f08686846000610fd8565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8216610849576040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600060048201526024016103ea565b600061085783836000610763565b905073ffffffffffffffffffffffffffffffffffffffff8116156104af576040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600060048201526024016103ea565b60006108bd6108b883611da1565b6110d4565b905061048e8484836001610fd8565b73ffffffffffffffffffffffffffffffffffffffff8216610931576040517f5b08ba1800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526024016103ea565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83163b1561048e576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063150b7a0290610a3e903390889087908790600401611e91565b6020604051808303816000875af1925050508015610a97575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610a9491810190611eda565b60015b610b26573d808015610ac5576040519150601f19603f3d011682016040523d82523d6000602084013e610aca565b606091505b508051600003610b1e576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016103ea565b805181602001fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167f150b7a020000000000000000000000000000000000000000000000000000000014610bb9576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016103ea565b5050505050565b8080610be1575073ffffffffffffffffffffffffffffffffffffffff821615155b15610d36576000610bf1846106f7565b905073ffffffffffffffffffffffffffffffffffffffff831615801590610c4457508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610c83575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209387168352929052205460ff16155b15610cd2576040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024016103ea565b8115610d3457838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6040805160208101909152606081528151516040805160208101909152600090808367ffffffffffffffff811115610dc557610dc5611a20565b604051908082528060200260200182016040528015610dee578160200160208202803683370190505b509052905060005b82811015610e5357610e2485600001518281518110610e1757610e17611ef7565b6020026020010151611254565b8251805183908110610e3857610e38611ef7565b6020908102919091010152610e4c81611f26565b9050610df6565b509392505050565b60008281526002602052604081205473ffffffffffffffffffffffffffffffffffffffff90811690831615610e9557610e958184866112f1565b73ffffffffffffffffffffffffffffffffffffffff811615610f0b57610ebf600085600080610bc0565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190555b73ffffffffffffffffffffffffffffffffffffffff851615610f545773ffffffffffffffffffffffffffffffffffffffff85166000908152600360205260409020805460010190555b60008481526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff89811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000610fe3846104b4565b73ffffffffffffffffffffffffffffffffffffffff1603611033576040517f86843913000000000000000000000000000000000000000000000000000000008152600481018490526024016103ea565b600061103f83866113a1565b9050811561109e5760008481526006602090815260409091208251805180518594849261107292849291909101906117b2565b505050602082810151805180519192600185019261109392849201906117b2565b505050905050610bb9565b602080820151600086815260068352604090208151805192936001909201926110ca92849201906117b2565b5050505050505050565b604080516020810190915260608152602082015151825151518114611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4d50435f434f52453a20494e56414c49445f494e5055545f544558540000000060448201526064016103ea565b600060405180602001604052808367ffffffffffffffff81111561117b5761117b611a20565b6040519080825280602002602001820160405280156111a4578160200160208202803683370190505b50905260408051808201909152600081526060602082015290915060005b8381101561124a578551518051829081106111df576111df611ef7565b602090810291909101810151835286015180518290811061120257611202611ef7565b6020026020010151826020018190525061121b826113ec565b835180518390811061122f5761122f611ef7565b602090810291909101015261124381611f26565b90506111c2565b5090949350505050565b6000606463d2c135e560045b60f81b846040518363ffffffff1660e01b81526004016112ae9291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af11580156112cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c19190611f5e565b6112fc838383611455565b6104af5773ffffffffffffffffffffffffffffffffffffffff8316611350576040517f7e273289000000000000000000000000000000000000000000000000000000008152600481018290526024016103ea565b6040517f177e802f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602481018290526044016103ea565b6113cc6040805160608082018352818301818152825282516020818101909452908152909182015290565b6113d58361151c565b81526113e183836115e4565b602082015292915050565b805160208201516040517fe4f36e1000000000000000000000000000000000000000000000000000000000815260009260649263e4f36e10926112ae927f0400000000000000000000000000000000000000000000000000000000000000929091600401611f77565b600073ffffffffffffffffffffffffffffffffffffffff83161580159061151457508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114e3575073ffffffffffffffffffffffffffffffffffffffff80851660009081526005602090815260408083209387168352929052205460ff165b80611514575060008281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff8481169116145b949350505050565b6040805160208101909152606081528151516040805160208101909152600090808367ffffffffffffffff81111561155657611556611a20565b60405190808252806020026020018201604052801561157f578160200160208202803683370190505b509052905060005b82811015610e53576115b5856000015182815181106115a8576115a8611ef7565b60200260200101516116b6565b82518051839081106115c9576115c9611ef7565b60209081029190910101526115dd81611f26565b9050611587565b6040805160208101909152606081528251516040805160208101909152600090808367ffffffffffffffff81111561161e5761161e611a20565b604051908082528060200260200182016040528015611647578160200160208202803683370190505b509052905060005b828110156116ad5761167e8660000151828151811061167057611670611ef7565b6020026020010151866116c6565b825180518390811061169257611692611ef7565b60209081029190910101526116a681611f26565b905061164f565b50949350505050565b6000606463c50c9c026004611260565b60408051606083901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660208201528151601481830301815260348201928390527f3c6f0e6800000000000000000000000000000000000000000000000000000000909252600091606491633c6f0e6891611768917f0400000000000000000000000000000000000000000000000000000000000000918891603801611f77565b6020604051808303816000875af1158015611787573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ab9190611f5e565b9392505050565b8280548282559060005260206000209081019282156117ed579160200282015b828111156117ed5782518255916020019190600101906117d2565b506117f99291506117fd565b5090565b5b808211156117f957600081556001016117fe565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461184057600080fd5b50565b60006020828403121561185557600080fd5b81356117ab81611812565b6000815180845260005b818110156118865760208185018101518683018201520161186a565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006117ab6020830184611860565b6000602082840312156118e957600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461191457600080fd5b919050565b6000806040838503121561192c57600080fd5b611935836118f0565b946020939093013593505050565b60008060006060848603121561195857600080fd5b611961846118f0565b925061196f602085016118f0565b9150604084013590509250925092565b6000806040838503121561199257600080fd5b61199b836118f0565b9150602083013567ffffffffffffffff8111156119b757600080fd5b8301604081860312156119c957600080fd5b809150509250929050565b6000602082840312156119e657600080fd5b6117ab826118f0565b60008060408385031215611a0257600080fd5b611a0b836118f0565b9150602083013580151581146119c957600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611a7257611a72611a20565b60405290565b6040516020810167ffffffffffffffff81118282101715611a7257611a72611a20565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611ae257611ae2611a20565b604052919050565b600082601f830112611afb57600080fd5b813567ffffffffffffffff811115611b1557611b15611a20565b611b4660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611a9b565b818152846020838601011115611b5b57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611b8e57600080fd5b611b97856118f0565b9350611ba5602086016118f0565b925060408501359150606085013567ffffffffffffffff811115611bc857600080fd5b611bd487828801611aea565b91505092959194509250565b6020808252825182820182905280516040840181905260009291820190839060608601905b80831015611c255783518252928401926001929092019190840190611c05565b509695505050505050565b60008060408385031215611c4357600080fd5b611c4c836118f0565b9150611c5a602084016118f0565b90509250929050565b600181811c90821680611c7757607f821691505b602082108103611cb0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156102c1576102c1611cb6565b600067ffffffffffffffff821115611d1257611d12611a20565b5060051b60200190565b600082601f830112611d2d57600080fd5b81356020611d42611d3d83611cf8565b611a9b565b82815260059290921b84018101918181019086841115611d6157600080fd5b8286015b84811015611c2557803567ffffffffffffffff811115611d855760008081fd5b611d938986838b0101611aea565b845250918301918301611d65565b600060408236031215611db357600080fd5b611dbb611a4f565b823567ffffffffffffffff80821115611dd357600080fd5b81850191506020808336031215611de957600080fd5b611df1611a78565b833583811115611e0057600080fd5b939093019236601f850112611e1457600080fd5b8335611e22611d3d82611cf8565b81815260059190911b85018301908381019036831115611e4157600080fd5b958401955b82871015611e5f57863582529584019590840190611e46565b83525050845285810135925081831115611e7857600080fd5b611e8436848801611d1c565b9084015250909392505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152611ed06080830184611860565b9695505050505050565b600060208284031215611eec57600080fd5b81516117ab81611812565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611f5757611f57611cb6565b5060010190565b600060208284031215611f7057600080fd5b5051919050565b7fff00000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107f0606083018461186056fea2646970667358221220cc26bc6d9ced9e4744a3233a9a5d9431b62ca1cc8dcc9da7b21c718be4de44fa64736f6c63430008130033";
|
|
579
579
|
|
|
580
580
|
type PrivateERC721URIStorageMockConstructorParams =
|
|
581
581
|
| [signer?: Signer]
|
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
/* Autogenerated file. Do not edit manually. */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
import {
|
|
5
|
+
Contract,
|
|
6
|
+
ContractFactory,
|
|
7
|
+
ContractTransactionResponse,
|
|
8
|
+
Interface,
|
|
9
|
+
} from "ethers";
|
|
10
|
+
import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
|
|
11
|
+
import type { NonPayableOverrides } from "../../../../../../common";
|
|
12
|
+
import type {
|
|
13
|
+
ArithmeticTestsContract,
|
|
14
|
+
ArithmeticTestsContractInterface,
|
|
15
|
+
} from "../../../../../../contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/ArithmeticTestsContract";
|
|
16
|
+
|
|
17
|
+
const _abi = [
|
|
18
|
+
{
|
|
19
|
+
inputs: [
|
|
20
|
+
{
|
|
21
|
+
internalType: "uint8",
|
|
22
|
+
name: "a",
|
|
23
|
+
type: "uint8",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
internalType: "uint8",
|
|
27
|
+
name: "b",
|
|
28
|
+
type: "uint8",
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
name: "addTest",
|
|
32
|
+
outputs: [
|
|
33
|
+
{
|
|
34
|
+
internalType: "uint8",
|
|
35
|
+
name: "",
|
|
36
|
+
type: "uint8",
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
stateMutability: "nonpayable",
|
|
40
|
+
type: "function",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
inputs: [
|
|
44
|
+
{
|
|
45
|
+
components: [
|
|
46
|
+
{
|
|
47
|
+
internalType: "gtUint16",
|
|
48
|
+
name: "res16_16",
|
|
49
|
+
type: "uint256",
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
internalType: "gtUint16",
|
|
53
|
+
name: "res8_16",
|
|
54
|
+
type: "uint256",
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
internalType: "gtUint16",
|
|
58
|
+
name: "res16_8",
|
|
59
|
+
type: "uint256",
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
internalType: "struct ArithmeticTestsContract.Check16",
|
|
63
|
+
name: "check16",
|
|
64
|
+
type: "tuple",
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
name: "decryptAndCompareResults16",
|
|
68
|
+
outputs: [
|
|
69
|
+
{
|
|
70
|
+
internalType: "uint16",
|
|
71
|
+
name: "",
|
|
72
|
+
type: "uint16",
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
stateMutability: "nonpayable",
|
|
76
|
+
type: "function",
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
inputs: [
|
|
80
|
+
{
|
|
81
|
+
components: [
|
|
82
|
+
{
|
|
83
|
+
internalType: "gtUint32",
|
|
84
|
+
name: "res32_32",
|
|
85
|
+
type: "uint256",
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
internalType: "gtUint32",
|
|
89
|
+
name: "res8_32",
|
|
90
|
+
type: "uint256",
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
internalType: "gtUint32",
|
|
94
|
+
name: "res32_8",
|
|
95
|
+
type: "uint256",
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
internalType: "gtUint32",
|
|
99
|
+
name: "res16_32",
|
|
100
|
+
type: "uint256",
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
internalType: "gtUint32",
|
|
104
|
+
name: "res32_16",
|
|
105
|
+
type: "uint256",
|
|
106
|
+
},
|
|
107
|
+
],
|
|
108
|
+
internalType: "struct ArithmeticTestsContract.Check32",
|
|
109
|
+
name: "check32",
|
|
110
|
+
type: "tuple",
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
name: "decryptAndCompareResults32",
|
|
114
|
+
outputs: [
|
|
115
|
+
{
|
|
116
|
+
internalType: "uint32",
|
|
117
|
+
name: "",
|
|
118
|
+
type: "uint32",
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
stateMutability: "nonpayable",
|
|
122
|
+
type: "function",
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
inputs: [
|
|
126
|
+
{
|
|
127
|
+
components: [
|
|
128
|
+
{
|
|
129
|
+
internalType: "gtUint64",
|
|
130
|
+
name: "res64_64",
|
|
131
|
+
type: "uint256",
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
internalType: "gtUint64",
|
|
135
|
+
name: "res8_64",
|
|
136
|
+
type: "uint256",
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
internalType: "gtUint64",
|
|
140
|
+
name: "res64_8",
|
|
141
|
+
type: "uint256",
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
internalType: "gtUint64",
|
|
145
|
+
name: "res16_64",
|
|
146
|
+
type: "uint256",
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
internalType: "gtUint64",
|
|
150
|
+
name: "res64_16",
|
|
151
|
+
type: "uint256",
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
internalType: "gtUint64",
|
|
155
|
+
name: "res32_64",
|
|
156
|
+
type: "uint256",
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
internalType: "gtUint64",
|
|
160
|
+
name: "res64_32",
|
|
161
|
+
type: "uint256",
|
|
162
|
+
},
|
|
163
|
+
],
|
|
164
|
+
internalType: "struct ArithmeticTestsContract.Check64",
|
|
165
|
+
name: "check64",
|
|
166
|
+
type: "tuple",
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
name: "decryptAndCompareResults64",
|
|
170
|
+
outputs: [
|
|
171
|
+
{
|
|
172
|
+
internalType: "uint64",
|
|
173
|
+
name: "",
|
|
174
|
+
type: "uint64",
|
|
175
|
+
},
|
|
176
|
+
],
|
|
177
|
+
stateMutability: "nonpayable",
|
|
178
|
+
type: "function",
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
inputs: [],
|
|
182
|
+
name: "getAddResult",
|
|
183
|
+
outputs: [
|
|
184
|
+
{
|
|
185
|
+
internalType: "uint8",
|
|
186
|
+
name: "",
|
|
187
|
+
type: "uint8",
|
|
188
|
+
},
|
|
189
|
+
],
|
|
190
|
+
stateMutability: "view",
|
|
191
|
+
type: "function",
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
inputs: [],
|
|
195
|
+
name: "getMulResult",
|
|
196
|
+
outputs: [
|
|
197
|
+
{
|
|
198
|
+
internalType: "uint8",
|
|
199
|
+
name: "",
|
|
200
|
+
type: "uint8",
|
|
201
|
+
},
|
|
202
|
+
],
|
|
203
|
+
stateMutability: "view",
|
|
204
|
+
type: "function",
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
inputs: [],
|
|
208
|
+
name: "getSubResult",
|
|
209
|
+
outputs: [
|
|
210
|
+
{
|
|
211
|
+
internalType: "uint8",
|
|
212
|
+
name: "",
|
|
213
|
+
type: "uint8",
|
|
214
|
+
},
|
|
215
|
+
],
|
|
216
|
+
stateMutability: "view",
|
|
217
|
+
type: "function",
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
inputs: [
|
|
221
|
+
{
|
|
222
|
+
internalType: "uint8",
|
|
223
|
+
name: "a",
|
|
224
|
+
type: "uint8",
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
internalType: "uint8",
|
|
228
|
+
name: "b",
|
|
229
|
+
type: "uint8",
|
|
230
|
+
},
|
|
231
|
+
],
|
|
232
|
+
name: "mulTest",
|
|
233
|
+
outputs: [
|
|
234
|
+
{
|
|
235
|
+
internalType: "uint8",
|
|
236
|
+
name: "",
|
|
237
|
+
type: "uint8",
|
|
238
|
+
},
|
|
239
|
+
],
|
|
240
|
+
stateMutability: "nonpayable",
|
|
241
|
+
type: "function",
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
inputs: [
|
|
245
|
+
{
|
|
246
|
+
components: [
|
|
247
|
+
{
|
|
248
|
+
internalType: "gtUint8",
|
|
249
|
+
name: "a8_s",
|
|
250
|
+
type: "uint256",
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
internalType: "gtUint8",
|
|
254
|
+
name: "b8_s",
|
|
255
|
+
type: "uint256",
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
internalType: "gtUint16",
|
|
259
|
+
name: "a16_s",
|
|
260
|
+
type: "uint256",
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
internalType: "gtUint16",
|
|
264
|
+
name: "b16_s",
|
|
265
|
+
type: "uint256",
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
internalType: "gtUint32",
|
|
269
|
+
name: "a32_s",
|
|
270
|
+
type: "uint256",
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
internalType: "gtUint32",
|
|
274
|
+
name: "b32_s",
|
|
275
|
+
type: "uint256",
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
internalType: "gtUint64",
|
|
279
|
+
name: "a64_s",
|
|
280
|
+
type: "uint256",
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
internalType: "gtUint64",
|
|
284
|
+
name: "b64_s",
|
|
285
|
+
type: "uint256",
|
|
286
|
+
},
|
|
287
|
+
],
|
|
288
|
+
internalType: "struct ArithmeticTestsContract.AllGTCastingValues",
|
|
289
|
+
name: "castingValues",
|
|
290
|
+
type: "tuple",
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
internalType: "uint8",
|
|
294
|
+
name: "a",
|
|
295
|
+
type: "uint8",
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
internalType: "uint8",
|
|
299
|
+
name: "b",
|
|
300
|
+
type: "uint8",
|
|
301
|
+
},
|
|
302
|
+
],
|
|
303
|
+
name: "setPublicValues",
|
|
304
|
+
outputs: [],
|
|
305
|
+
stateMutability: "nonpayable",
|
|
306
|
+
type: "function",
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
inputs: [
|
|
310
|
+
{
|
|
311
|
+
internalType: "uint8",
|
|
312
|
+
name: "a",
|
|
313
|
+
type: "uint8",
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
internalType: "uint8",
|
|
317
|
+
name: "b",
|
|
318
|
+
type: "uint8",
|
|
319
|
+
},
|
|
320
|
+
],
|
|
321
|
+
name: "subTest",
|
|
322
|
+
outputs: [
|
|
323
|
+
{
|
|
324
|
+
internalType: "uint8",
|
|
325
|
+
name: "",
|
|
326
|
+
type: "uint8",
|
|
327
|
+
},
|
|
328
|
+
],
|
|
329
|
+
stateMutability: "nonpayable",
|
|
330
|
+
type: "function",
|
|
331
|
+
},
|
|
332
|
+
] as const;
|
|
333
|
+
|
|
334
|
+
const _bytecode =
|
|
335
|
+
"0x608060405234801561001057600080fd5b50615ad580620000216000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806380f937bc1161006657806380f937bc14610181578063971bbe6f146101b1578063acb38169146101cf578063d3e4744d146101ff578063ebb571fd1461021d5761009e565b8063202cdc8f146100a357806324ad7b30146100d35780632e544aa0146100f15780634f5941bc146101215780635e60e5c014610151575b600080fd5b6100bd60048036038101906100b89190614815565b610239565b6040516100ca9190614864565b60405180910390f35b6100db610831565b6040516100e89190614864565b60405180910390f35b61010b600480360381019061010691906149aa565b610847565b60405161011891906149f4565b60405180910390f35b61013b60048036038101906101369190614815565b6108d7565b6040516101489190614864565b60405180910390f35b61016b60048036038101906101669190614815565b610e21565b6040516101789190614864565b60405180910390f35b61019b60048036038101906101969190614aef565b61136a565b6040516101a89190614b3f565b60405180910390f35b6101b96114be565b6040516101c69190614864565b60405180910390f35b6101e960048036038101906101e49190614c12565b6114d4565b6040516101f69190614c5e565b60405180910390f35b6102076115b2565b6040516102149190614864565b60405180910390f35b61023760048036038101906102329190614d6f565b6115c8565b005b60006102436146fb565b61024b614740565b610253614761565b61025b614790565b6102668488886115c8565b61028061027b8560000151866020015161166f565b611706565b600060026101000a81548160ff021916908360ff1602179055506102ac846040015185606001516117a4565b8360000181815250506102c78460000151856060015161183b565b8360200181815250506102e2846040015185602001516118d3565b83604001818152505060006102f684610847565b90508061ffff16600060029054906101000a900460ff1660ff1614610350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034790614e22565b60405180910390fd5b61036285608001518660a0015161196b565b83600001818152505061037d85600001518660a00151611a02565b83602001818152505061039885608001518660200151611a9a565b8360400181815250506103b385604001518660a00151611b32565b8360600181815250506103ce85608001518660600151611bca565b83608001818152505060006103e2846114d4565b90508063ffffffff16600060029054906101000a900460ff1660ff161461043e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043590614e8e565b60405180910390fd5b6104508660c001518760e00151611c62565b83600001818152505061046b86600001518760e00151611cf9565b8360200181815250506104868660c001518760200151611d91565b8360400181815250506104a186604001518760e00151611e29565b8360600181815250506104bc8660c001518760600151611ec1565b8360800181815250506104d786608001518760e00151611f59565b8360a00181815250506104f28660c001518760a00151611ff1565b8360c001818152505060006105068461136a565b90508067ffffffffffffffff16600060029054906101000a900460ff1660ff1614610566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055d90614efa565b60405180910390fd5b61057c6105778b8960200151612089565b611706565b60ff16600060029054906101000a900460ff1660ff161480156105c857506105b06105ab88600001518b612123565b611706565b60ff16600060029054906101000a900460ff1660ff16145b610607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105fe90614f8c565b60405180910390fd5b61062061061b8b60ff1689606001516121bd565b612258565b61ffff16600060029054906101000a900460ff1660ff16148015610671575061065861065388604001518b60ff166122f6565b612258565b61ffff16600060029054906101000a900460ff1660ff16145b6106b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a79061501e565b60405180910390fd5b6106c96106c48b60ff168960a00151612391565b61242e565b63ffffffff16600060029054906101000a900460ff1660ff1614801561071e57506107036106fe88608001518b60ff166124cc565b61242e565b63ffffffff16600060029054906101000a900460ff1660ff16145b61075d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610754906150b0565b60405180910390fd5b6107766107718b60ff168960e00151612569565b61260a565b67ffffffffffffffff16600060029054906101000a900460ff1660ff161480156107d357506107b46107af8860c001518b60ff166126a7565b61260a565b67ffffffffffffffff16600060029054906101000a900460ff1660ff16145b610812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080990615142565b60405180910390fd5b600060029054906101000a900460ff1697505050505050505092915050565b60008060009054906101000a900460ff16905090565b6000806108578360000151612258565b90506108668360200151612258565b61ffff168161ffff1614801561088f57506108848360400151612258565b61ffff168161ffff16145b6108ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c5906151fa565b60405180910390fd5b80915050919050565b60006108e16146fb565b6108e9614740565b6108f1614761565b6108f9614790565b6109048488886115c8565b600061092061091b86600001518760200151612748565b611706565b905080600060016101000a81548160ff021916908360ff16021790555061094f856040015186606001516127df565b84600001818152505061096a85600001518660600151612876565b8460200181815250506109858560400151866020015161290e565b846040018181525050600061099985610847565b90508160ff168161ffff16146109e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109db90615266565b60405180910390fd5b6109f686608001518760a001516129a6565b846000018181525050610a1186600001518760a00151612a3d565b846020018181525050610a2c86608001518760200151612ad5565b846040018181525050610a4786604001518760a00151612b6d565b846060018181525050610a6286608001518760600151612c05565b8460800181815250506000610a76856114d4565b90508063ffffffff168360ff1614610ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aba906152d2565b60405180910390fd5b610ad58760c001518860e00151612c9d565b846000018181525050610af087600001518860e00151612d34565b846020018181525050610b0b8760c001518860200151612dcc565b846040018181525050610b2687604001518860e00151612e64565b846060018181525050610b418760c001518860600151612efc565b846080018181525050610b5c87608001518860e00151612f94565b8460a0018181525050610b778760c001518860a0015161302c565b8460c00181815250506000610b8b8561136a565b90508067ffffffffffffffff168460ff1614610bdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd39061533e565b60405180910390fd5b610bf2610bed8c8a602001516130c4565b611706565b60ff168460ff16148015610c205750610c17610c1289600001518c61315e565b611706565b60ff168460ff16145b610c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c56906153d0565b60405180910390fd5b610c78610c738c60ff168a606001516131f8565b612258565b61ffff168460ff16148015610cab5750610ca1610c9c89604001518c60ff16613293565b612258565b61ffff168460ff16145b610cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce190615462565b60405180910390fd5b610d03610cfe8c60ff168a60a0015161332e565b61242e565b63ffffffff168460ff16148015610d3a5750610d2e610d2989608001518c60ff166133cb565b61242e565b63ffffffff168460ff16145b610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d70906154f4565b60405180910390fd5b610d92610d8d8c60ff168a60e00151613468565b61260a565b67ffffffffffffffff168460ff16148015610dd15750610dc1610dbc8960c001518c60ff16613509565b61260a565b67ffffffffffffffff168460ff16145b610e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0790615586565b60405180910390fd5b839850505050505050505092915050565b6000610e2b6146fb565b610e33614740565b610e3b614761565b610e43614790565b610e4e8488886115c8565b6000610e6a610e65866000015187602001516135aa565b611706565b9050806000806101000a81548160ff021916908360ff160217905550610e9885604001518660600151613641565b846000018181525050610eb3856000015186606001516136d8565b846020018181525050610ece85604001518660200151613770565b8460400181815250506000610ee285610847565b90508160ff168161ffff1614610f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f24906155f2565b60405180910390fd5b610f3f86608001518760a00151613808565b846000018181525050610f5a86600001518760a0015161389f565b846020018181525050610f7586608001518760200151613937565b846040018181525050610f9086604001518760a001516139cf565b846060018181525050610fab86608001518760600151613a67565b8460800181815250506000610fbf856114d4565b90508063ffffffff168360ff161461100c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110039061565e565b60405180910390fd5b61101e8760c001518860e00151613aff565b84600001818152505061103987600001518860e00151613b96565b8460200181815250506110548760c001518860200151613c2e565b84604001818152505061106f87604001518860e00151613cc6565b84606001818152505061108a8760c001518860600151613d5e565b8460800181815250506110a587608001518860e00151613df6565b8460a00181815250506110c08760c001518860a00151613e8e565b8460c001818152505060006110d48561136a565b90508067ffffffffffffffff168460ff1614611125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111c906156ca565b60405180910390fd5b61113b6111368c8a60200151613f26565b611706565b60ff168460ff16148015611169575061116061115b89600001518c613fc0565b611706565b60ff168460ff16145b6111a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119f9061575c565b60405180910390fd5b6111c16111bc8c60ff168a6060015161405a565b612258565b61ffff168460ff161480156111f457506111ea6111e589604001518c60ff166140f5565b612258565b61ffff168460ff16145b611233576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122a906157ee565b60405180910390fd5b61124c6112478c60ff168a60a00151614190565b61242e565b63ffffffff168460ff16148015611283575061127761127289608001518c60ff1661422d565b61242e565b63ffffffff168460ff16145b6112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b990615880565b60405180910390fd5b6112db6112d68c60ff168a60e001516142ca565b61260a565b67ffffffffffffffff168460ff1614801561131a575061130a6113058960c001518c60ff1661436b565b61260a565b67ffffffffffffffff168460ff16145b611359576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135090615912565b60405180910390fd5b839850505050505050505092915050565b60008061137a836000015161260a565b9050611389836020015161260a565b67ffffffffffffffff168167ffffffffffffffff161480156113ca57506113b3836040015161260a565b67ffffffffffffffff168167ffffffffffffffff16145b80156113f557506113de836080015161260a565b67ffffffffffffffff168167ffffffffffffffff16145b80156114205750611409836060015161260a565b67ffffffffffffffff168167ffffffffffffffff16145b801561144b57506114348360c0015161260a565b67ffffffffffffffff168167ffffffffffffffff16145b8015611476575061145f8360a0015161260a565b67ffffffffffffffff168167ffffffffffffffff16145b6114b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ac906151fa565b60405180910390fd5b80915050919050565b60008060019054906101000a900460ff16905090565b6000806114e4836000015161242e565b90506114f3836020015161242e565b63ffffffff168163ffffffff161480156115245750611515836040015161242e565b63ffffffff168163ffffffff16145b80156115475750611538836080015161242e565b63ffffffff168163ffffffff16145b801561156a575061155b836060015161242e565b63ffffffff168163ffffffff16145b6115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a0906151fa565b60405180910390fd5b80915050919050565b60008060029054906101000a900460ff16905090565b6115d18261440c565b8360000181815250506115e38161440c565b8360200181815250506115f88260ff166144ad565b83604001818152505061160d8160ff166144ad565b8360600181815250506116228260ff1661454f565b8360800181815250506116378160ff1661454f565b8360a001818152505061164c8260ff166145f3565b8360c00181815250506116618160ff166145f3565b8360e0018181525050505050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb461169b600180600061469a565b85856040518463ffffffff1660e01b81526004016116bb9392919061597c565b6020604051808303816000875af11580156116da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fe91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616001600481111561173957611738615a0c565b5b60f81b846040518363ffffffff1660e01b815260040161175a929190615a76565b6020604051808303816000875af1158015611779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179d91906159df565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb46117d0600280600061469a565b85856040518463ffffffff1660e01b81526004016117f09392919061597c565b6020604051808303816000875af115801561180f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183391906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb461186860016002600061469a565b85856040518463ffffffff1660e01b81526004016118889392919061597c565b6020604051808303816000875af11580156118a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cb91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb461190060026001600061469a565b85856040518463ffffffff1660e01b81526004016119209392919061597c565b6020604051808303816000875af115801561193f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196391906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611997600380600061469a565b85856040518463ffffffff1660e01b81526004016119b79392919061597c565b6020604051808303816000875af11580156119d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fa91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611a2f60016003600061469a565b85856040518463ffffffff1660e01b8152600401611a4f9392919061597c565b6020604051808303816000875af1158015611a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9291906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611ac760036001600061469a565b85856040518463ffffffff1660e01b8152600401611ae79392919061597c565b6020604051808303816000875af1158015611b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2a91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611b5f60026003600061469a565b85856040518463ffffffff1660e01b8152600401611b7f9392919061597c565b6020604051808303816000875af1158015611b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc291906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611bf760036002600061469a565b85856040518463ffffffff1660e01b8152600401611c179392919061597c565b6020604051808303816000875af1158015611c36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5a91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611c8e600480600061469a565b85856040518463ffffffff1660e01b8152600401611cae9392919061597c565b6020604051808303816000875af1158015611ccd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf191906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611d2660016004600061469a565b85856040518463ffffffff1660e01b8152600401611d469392919061597c565b6020604051808303816000875af1158015611d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8991906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611dbe60046001600061469a565b85856040518463ffffffff1660e01b8152600401611dde9392919061597c565b6020604051808303816000875af1158015611dfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2191906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611e5660026004600061469a565b85856040518463ffffffff1660e01b8152600401611e769392919061597c565b6020604051808303816000875af1158015611e95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb991906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611eee60046002600061469a565b85856040518463ffffffff1660e01b8152600401611f0e9392919061597c565b6020604051808303816000875af1158015611f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5191906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611f8660036004600061469a565b85856040518463ffffffff1660e01b8152600401611fa69392919061597c565b6020604051808303816000875af1158015611fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe991906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb461201e60046003600061469a565b85856040518463ffffffff1660e01b815260040161203e9392919061597c565b6020604051808303816000875af115801561205d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208191906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb46120b5600180600161469a565b8560ff16856040518463ffffffff1660e01b81526004016120d89392919061597c565b6020604051808303816000875af11580156120f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211b91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb461214f600180600261469a565b858560ff166040518463ffffffff1660e01b81526004016121729392919061597c565b6020604051808303816000875af1158015612191573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121b591906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb46121e9600280600161469a565b8561ffff16856040518463ffffffff1660e01b815260040161220d9392919061597c565b6020604051808303816000875af115801561222c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225091906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616002600481111561228b5761228a615a0c565b5b60f81b846040518363ffffffff1660e01b81526004016122ac929190615a76565b6020604051808303816000875af11580156122cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ef91906159df565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4612322600280600261469a565b858561ffff166040518463ffffffff1660e01b81526004016123469392919061597c565b6020604051808303816000875af1158015612365573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238991906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb46123bd600380600161469a565b8563ffffffff16856040518463ffffffff1660e01b81526004016123e39392919061597c565b6020604051808303816000875af1158015612402573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061242691906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616003600481111561246157612460615a0c565b5b60f81b846040518363ffffffff1660e01b8152600401612482929190615a76565b6020604051808303816000875af11580156124a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c591906159df565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb46124f8600380600261469a565b858563ffffffff166040518463ffffffff1660e01b815260040161251e9392919061597c565b6020604051808303816000875af115801561253d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256191906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4612595600480600161469a565b8567ffffffffffffffff16856040518463ffffffff1660e01b81526004016125bf9392919061597c565b6020604051808303816000875af11580156125de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061260291906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160048081111561263c5761263b615a0c565b5b60f81b846040518363ffffffff1660e01b815260040161265d929190615a76565b6020604051808303816000875af115801561267c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a091906159df565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb46126d3600480600261469a565b858567ffffffffffffffff166040518463ffffffff1660e01b81526004016126fd9392919061597c565b6020604051808303816000875af115801561271c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061274091906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612774600180600061469a565b85856040518463ffffffff1660e01b81526004016127949392919061597c565b6020604051808303816000875af11580156127b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d791906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf261280b600280600061469a565b85856040518463ffffffff1660e01b815260040161282b9392919061597c565b6020604051808303816000875af115801561284a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061286e91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf26128a360016002600061469a565b85856040518463ffffffff1660e01b81526004016128c39392919061597c565b6020604051808303816000875af11580156128e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290691906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf261293b60026001600061469a565b85856040518463ffffffff1660e01b815260040161295b9392919061597c565b6020604051808303816000875af115801561297a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299e91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf26129d2600380600061469a565b85856040518463ffffffff1660e01b81526004016129f29392919061597c565b6020604051808303816000875af1158015612a11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a3591906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612a6a60016003600061469a565b85856040518463ffffffff1660e01b8152600401612a8a9392919061597c565b6020604051808303816000875af1158015612aa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612acd91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612b0260036001600061469a565b85856040518463ffffffff1660e01b8152600401612b229392919061597c565b6020604051808303816000875af1158015612b41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b6591906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612b9a60026003600061469a565b85856040518463ffffffff1660e01b8152600401612bba9392919061597c565b6020604051808303816000875af1158015612bd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bfd91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612c3260036002600061469a565b85856040518463ffffffff1660e01b8152600401612c529392919061597c565b6020604051808303816000875af1158015612c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9591906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612cc9600480600061469a565b85856040518463ffffffff1660e01b8152600401612ce99392919061597c565b6020604051808303816000875af1158015612d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d2c91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612d6160016004600061469a565b85856040518463ffffffff1660e01b8152600401612d819392919061597c565b6020604051808303816000875af1158015612da0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc491906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612df960046001600061469a565b85856040518463ffffffff1660e01b8152600401612e199392919061597c565b6020604051808303816000875af1158015612e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e5c91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612e9160026004600061469a565b85856040518463ffffffff1660e01b8152600401612eb19392919061597c565b6020604051808303816000875af1158015612ed0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef491906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612f2960046002600061469a565b85856040518463ffffffff1660e01b8152600401612f499392919061597c565b6020604051808303816000875af1158015612f68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f8c91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612fc160036004600061469a565b85856040518463ffffffff1660e01b8152600401612fe19392919061597c565b6020604051808303816000875af1158015613000573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061302491906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf261305960046003600061469a565b85856040518463ffffffff1660e01b81526004016130799392919061597c565b6020604051808303816000875af1158015613098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130bc91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf26130f0600180600161469a565b8560ff16856040518463ffffffff1660e01b81526004016131139392919061597c565b6020604051808303816000875af1158015613132573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061315691906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf261318a600180600261469a565b858560ff166040518463ffffffff1660e01b81526004016131ad9392919061597c565b6020604051808303816000875af11580156131cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f091906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2613224600280600161469a565b8561ffff16856040518463ffffffff1660e01b81526004016132489392919061597c565b6020604051808303816000875af1158015613267573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061328b91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf26132bf600180600261469a565b858561ffff166040518463ffffffff1660e01b81526004016132e39392919061597c565b6020604051808303816000875af1158015613302573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061332691906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf261335a600380600161469a565b8563ffffffff16856040518463ffffffff1660e01b81526004016133809392919061597c565b6020604051808303816000875af115801561339f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133c391906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf26133f7600380600261469a565b858563ffffffff166040518463ffffffff1660e01b815260040161341d9392919061597c565b6020604051808303816000875af115801561343c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061346091906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2613494600480600161469a565b8567ffffffffffffffff16856040518463ffffffff1660e01b81526004016134be9392919061597c565b6020604051808303816000875af11580156134dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061350191906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2613535600480600261469a565b858567ffffffffffffffff166040518463ffffffff1660e01b815260040161355f9392919061597c565b6020604051808303816000875af115801561357e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135a291906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d01506135d6600180600061469a565b85856040518463ffffffff1660e01b81526004016135f69392919061597c565b6020604051808303816000875af1158015613615573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061363991906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d015061366d600280600061469a565b85856040518463ffffffff1660e01b815260040161368d9392919061597c565b6020604051808303816000875af11580156136ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136d091906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d015061370560016002600061469a565b85856040518463ffffffff1660e01b81526004016137259392919061597c565b6020604051808303816000875af1158015613744573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061376891906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d015061379d60026001600061469a565b85856040518463ffffffff1660e01b81526004016137bd9392919061597c565b6020604051808303816000875af11580156137dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061380091906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613834600380600061469a565b85856040518463ffffffff1660e01b81526004016138549392919061597c565b6020604051808303816000875af1158015613873573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061389791906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d01506138cc60016003600061469a565b85856040518463ffffffff1660e01b81526004016138ec9392919061597c565b6020604051808303816000875af115801561390b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392f91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d015061396460036001600061469a565b85856040518463ffffffff1660e01b81526004016139849392919061597c565b6020604051808303816000875af11580156139a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139c791906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d01506139fc60026003600061469a565b85856040518463ffffffff1660e01b8152600401613a1c9392919061597c565b6020604051808303816000875af1158015613a3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a5f91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613a9460036002600061469a565b85856040518463ffffffff1660e01b8152600401613ab49392919061597c565b6020604051808303816000875af1158015613ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613af791906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613b2b600480600061469a565b85856040518463ffffffff1660e01b8152600401613b4b9392919061597c565b6020604051808303816000875af1158015613b6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8e91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613bc360016004600061469a565b85856040518463ffffffff1660e01b8152600401613be39392919061597c565b6020604051808303816000875af1158015613c02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c2691906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613c5b60046001600061469a565b85856040518463ffffffff1660e01b8152600401613c7b9392919061597c565b6020604051808303816000875af1158015613c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cbe91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613cf360026004600061469a565b85856040518463ffffffff1660e01b8152600401613d139392919061597c565b6020604051808303816000875af1158015613d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d5691906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613d8b60046002600061469a565b85856040518463ffffffff1660e01b8152600401613dab9392919061597c565b6020604051808303816000875af1158015613dca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dee91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613e2360036004600061469a565b85856040518463ffffffff1660e01b8152600401613e439392919061597c565b6020604051808303816000875af1158015613e62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e8691906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613ebb60046003600061469a565b85856040518463ffffffff1660e01b8152600401613edb9392919061597c565b6020604051808303816000875af1158015613efa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1e91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613f52600180600161469a565b8560ff16856040518463ffffffff1660e01b8152600401613f759392919061597c565b6020604051808303816000875af1158015613f94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fb891906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613fec600180600261469a565b858560ff166040518463ffffffff1660e01b815260040161400f9392919061597c565b6020604051808303816000875af115801561402e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061405291906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150614086600280600161469a565b8561ffff16856040518463ffffffff1660e01b81526004016140aa9392919061597c565b6020604051808303816000875af11580156140c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140ed91906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150614121600280600261469a565b858561ffff166040518463ffffffff1660e01b81526004016141459392919061597c565b6020604051808303816000875af1158015614164573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061418891906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d01506141bc600380600161469a565b8563ffffffff16856040518463ffffffff1660e01b81526004016141e29392919061597c565b6020604051808303816000875af1158015614201573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061422591906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150614259600380600261469a565b858563ffffffff166040518463ffffffff1660e01b815260040161427f9392919061597c565b6020604051808303816000875af115801561429e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142c291906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d01506142f6600480600161469a565b8567ffffffffffffffff16856040518463ffffffff1660e01b81526004016143209392919061597c565b6020604051808303816000875af115801561433f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061436391906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150614397600480600261469a565b858567ffffffffffffffff166040518463ffffffff1660e01b81526004016143c19392919061597c565b6020604051808303816000875af11580156143e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061440491906159df565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606001600481111561443f5761443e615a0c565b5b60f81b8460ff166040518363ffffffff1660e01b8152600401614463929190615a76565b6020604051808303816000875af1158015614482573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144a691906159df565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600260048111156144e0576144df615a0c565b5b60f81b8461ffff166040518363ffffffff1660e01b8152600401614505929190615a76565b6020604051808303816000875af1158015614524573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061454891906159df565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606003600481111561458257614581615a0c565b5b60f81b8463ffffffff166040518363ffffffff1660e01b81526004016145a9929190615a76565b6020604051808303816000875af11580156145c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145ec91906159df565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060048081111561462557614624615a0c565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b8152600401614650929190615a76565b6020604051808303816000875af115801561466f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061469391906159df565b9050919050565b60008160028111156146af576146ae615a0c565b5b60ff1660088460048111156146c7576146c6615a0c565b5b61ffff16901b61ffff1660108660048111156146e6576146e5615a0c565b5b62ffffff16901b171760e81b90509392505050565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180606001604052806000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600060ff82169050919050565b6147f2816147dc565b81146147fd57600080fd5b50565b60008135905061480f816147e9565b92915050565b6000806040838503121561482c5761482b6147d7565b5b600061483a85828601614800565b925050602061484b85828601614800565b9150509250929050565b61485e816147dc565b82525050565b60006020820190506148796000830184614855565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6148cd82614884565b810181811067ffffffffffffffff821117156148ec576148eb614895565b5b80604052505050565b60006148ff6147cd565b905061490b82826148c4565b919050565b6000819050919050565b61492381614910565b811461492e57600080fd5b50565b6000813590506149408161491a565b92915050565b60006060828403121561495c5761495b61487f565b5b61496660606148f5565b9050600061497684828501614931565b600083015250602061498a84828501614931565b602083015250604061499e84828501614931565b60408301525092915050565b6000606082840312156149c0576149bf6147d7565b5b60006149ce84828501614946565b91505092915050565b600061ffff82169050919050565b6149ee816149d7565b82525050565b6000602082019050614a0960008301846149e5565b92915050565b614a1881614910565b8114614a2357600080fd5b50565b600081359050614a3581614a0f565b92915050565b600060e08284031215614a5157614a5061487f565b5b614a5b60e06148f5565b90506000614a6b84828501614a26565b6000830152506020614a7f84828501614a26565b6020830152506040614a9384828501614a26565b6040830152506060614aa784828501614a26565b6060830152506080614abb84828501614a26565b60808301525060a0614acf84828501614a26565b60a08301525060c0614ae384828501614a26565b60c08301525092915050565b600060e08284031215614b0557614b046147d7565b5b6000614b1384828501614a3b565b91505092915050565b600067ffffffffffffffff82169050919050565b614b3981614b1c565b82525050565b6000602082019050614b546000830184614b30565b92915050565b614b6381614910565b8114614b6e57600080fd5b50565b600081359050614b8081614b5a565b92915050565b600060a08284031215614b9c57614b9b61487f565b5b614ba660a06148f5565b90506000614bb684828501614b71565b6000830152506020614bca84828501614b71565b6020830152506040614bde84828501614b71565b6040830152506060614bf284828501614b71565b6060830152506080614c0684828501614b71565b60808301525092915050565b600060a08284031215614c2857614c276147d7565b5b6000614c3684828501614b86565b91505092915050565b600063ffffffff82169050919050565b614c5881614c3f565b82525050565b6000602082019050614c736000830184614c4f565b92915050565b614c8281614910565b8114614c8d57600080fd5b50565b600081359050614c9f81614c79565b92915050565b60006101008284031215614cbc57614cbb61487f565b5b614cc76101006148f5565b90506000614cd784828501614c90565b6000830152506020614ceb84828501614c90565b6020830152506040614cff84828501614931565b6040830152506060614d1384828501614931565b6060830152506080614d2784828501614b71565b60808301525060a0614d3b84828501614b71565b60a08301525060c0614d4f84828501614a26565b60c08301525060e0614d6384828501614a26565b60e08301525092915050565b60008060006101408486031215614d8957614d886147d7565b5b6000614d9786828701614ca5565b935050610100614da986828701614800565b925050610120614dbb86828701614800565b9150509250925092565b600082825260208201905092915050565b7f6d756c546573743a2063617374203136206661696c6564000000000000000000600082015250565b6000614e0c601783614dc5565b9150614e1782614dd6565b602082019050919050565b60006020820190508181036000830152614e3b81614dff565b9050919050565b7f6d756c546573743a2063617374203332206661696c6564000000000000000000600082015250565b6000614e78601783614dc5565b9150614e8382614e42565b602082019050919050565b60006020820190508181036000830152614ea781614e6b565b9050919050565b7f6d756c546573743a2063617374203634206661696c6564000000000000000000600082015250565b6000614ee4601783614dc5565b9150614eef82614eae565b602082019050919050565b60006020820190508181036000830152614f1381614ed7565b9050919050565b7f6d756c546573743a2074657374203820626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b6000614f76602783614dc5565b9150614f8182614f1a565b604082019050919050565b60006020820190508181036000830152614fa581614f69565b9050919050565b7f6d756c546573743a207465737420313620626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615008602883614dc5565b915061501382614fac565b604082019050919050565b6000602082019050818103600083015261503781614ffb565b9050919050565b7f6d756c546573743a207465737420333220626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b600061509a602883614dc5565b91506150a58261503e565b604082019050919050565b600060208201905081810360008301526150c98161508d565b9050919050565b7f6d756c546573743a207465737420363420626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b600061512c602883614dc5565b9150615137826150d0565b604082019050919050565b6000602082019050818103600083015261515b8161511f565b9050919050565b7f64656372797074416e64436f6d70617265416c6c526573756c74733a2046616960008201527f6c656420746f206465637279707420616e6420636f6d7061726520616c6c207260208201527f6573756c74730000000000000000000000000000000000000000000000000000604082015250565b60006151e4604683614dc5565b91506151ef82615162565b606082019050919050565b60006020820190508181036000830152615213816151d7565b9050919050565b7f737562546573743a2063617374203136206661696c6564000000000000000000600082015250565b6000615250601783614dc5565b915061525b8261521a565b602082019050919050565b6000602082019050818103600083015261527f81615243565b9050919050565b7f737562546573743a2063617374203332206661696c6564000000000000000000600082015250565b60006152bc601783614dc5565b91506152c782615286565b602082019050919050565b600060208201905081810360008301526152eb816152af565b9050919050565b7f737562546573743a2063617374203634206661696c6564000000000000000000600082015250565b6000615328601783614dc5565b9150615333826152f2565b602082019050919050565b600060208201905081810360008301526153578161531b565b9050919050565b7f737562546573743a2074657374203820626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b60006153ba602783614dc5565b91506153c58261535e565b604082019050919050565b600060208201905081810360008301526153e9816153ad565b9050919050565b7f737562546573743a207465737420313620626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b600061544c602883614dc5565b9150615457826153f0565b604082019050919050565b6000602082019050818103600083015261547b8161543f565b9050919050565b7f737562546573743a207465737420333220626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b60006154de602883614dc5565b91506154e982615482565b604082019050919050565b6000602082019050818103600083015261550d816154d1565b9050919050565b7f737562546573743a207465737420363420626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615570602883614dc5565b915061557b82615514565b604082019050919050565b6000602082019050818103600083015261559f81615563565b9050919050565b7f616464546573743a2063617374203136206661696c6564000000000000000000600082015250565b60006155dc601783614dc5565b91506155e7826155a6565b602082019050919050565b6000602082019050818103600083015261560b816155cf565b9050919050565b7f616464546573743a2063617374203332206661696c6564000000000000000000600082015250565b6000615648601783614dc5565b915061565382615612565b602082019050919050565b600060208201905081810360008301526156778161563b565b9050919050565b7f616464546573743a2063617374203634206661696c6564000000000000000000600082015250565b60006156b4601783614dc5565b91506156bf8261567e565b602082019050919050565b600060208201905081810360008301526156e3816156a7565b9050919050565b7f616464546573743a2074657374203820626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b6000615746602783614dc5565b9150615751826156ea565b604082019050919050565b6000602082019050818103600083015261577581615739565b9050919050565b7f616464546573743a207465737420313620626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b60006157d8602883614dc5565b91506157e38261577c565b604082019050919050565b60006020820190508181036000830152615807816157cb565b9050919050565b7f616464546573743a207465737420333220626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b600061586a602883614dc5565b91506158758261580e565b604082019050919050565b600060208201905081810360008301526158998161585d565b9050919050565b7f616464546573743a207465737420363420626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b60006158fc602883614dc5565b9150615907826158a0565b604082019050919050565b6000602082019050818103600083015261592b816158ef565b9050919050565b60007fffffff000000000000000000000000000000000000000000000000000000000082169050919050565b61596781615932565b82525050565b61597681614910565b82525050565b6000606082019050615991600083018661595e565b61599e602083018561596d565b6159ab604083018461596d565b949350505050565b6159bc81614910565b81146159c757600080fd5b50565b6000815190506159d9816159b3565b92915050565b6000602082840312156159f5576159f46147d7565b5b6000615a03848285016159ca565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b615a7081615a3b565b82525050565b6000604082019050615a8b6000830185615a67565b615a98602083018461596d565b939250505056fea2646970667358221220b3183000ad81aa1d7b04a7becf5f46a6656e869b91031feed1dba1823839281764736f6c63430008140033";
|
|
336
|
+
|
|
337
|
+
type ArithmeticTestsContractConstructorParams =
|
|
338
|
+
| [signer?: Signer]
|
|
339
|
+
| ConstructorParameters<typeof ContractFactory>;
|
|
340
|
+
|
|
341
|
+
const isSuperArgs = (
|
|
342
|
+
xs: ArithmeticTestsContractConstructorParams
|
|
343
|
+
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
|
|
344
|
+
|
|
345
|
+
export class ArithmeticTestsContract__factory extends ContractFactory {
|
|
346
|
+
constructor(...args: ArithmeticTestsContractConstructorParams) {
|
|
347
|
+
if (isSuperArgs(args)) {
|
|
348
|
+
super(...args);
|
|
349
|
+
} else {
|
|
350
|
+
super(_abi, _bytecode, args[0]);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
override getDeployTransaction(
|
|
355
|
+
overrides?: NonPayableOverrides & { from?: string }
|
|
356
|
+
): Promise<ContractDeployTransaction> {
|
|
357
|
+
return super.getDeployTransaction(overrides || {});
|
|
358
|
+
}
|
|
359
|
+
override deploy(overrides?: NonPayableOverrides & { from?: string }) {
|
|
360
|
+
return super.deploy(overrides || {}) as Promise<
|
|
361
|
+
ArithmeticTestsContract & {
|
|
362
|
+
deploymentTransaction(): ContractTransactionResponse;
|
|
363
|
+
}
|
|
364
|
+
>;
|
|
365
|
+
}
|
|
366
|
+
override connect(
|
|
367
|
+
runner: ContractRunner | null
|
|
368
|
+
): ArithmeticTestsContract__factory {
|
|
369
|
+
return super.connect(runner) as ArithmeticTestsContract__factory;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
static readonly bytecode = _bytecode;
|
|
373
|
+
static readonly abi = _abi;
|
|
374
|
+
static createInterface(): ArithmeticTestsContractInterface {
|
|
375
|
+
return new Interface(_abi) as ArithmeticTestsContractInterface;
|
|
376
|
+
}
|
|
377
|
+
static connect(
|
|
378
|
+
address: string,
|
|
379
|
+
runner?: ContractRunner | null
|
|
380
|
+
): ArithmeticTestsContract {
|
|
381
|
+
return new Contract(
|
|
382
|
+
address,
|
|
383
|
+
_abi,
|
|
384
|
+
runner
|
|
385
|
+
) as unknown as ArithmeticTestsContract;
|
|
386
|
+
}
|
|
387
|
+
}
|