UNPKG

@verified-network/verified-sdk

Version:

An SDK to develop applications on the Verified Network

370 lines 2.72 MB
{ "contractName": "Distribution", "abi": [ { "inputs": [ { "internalType": "uint256", "name": "_business", "type": "uint256" }, { "internalType": "uint256", "name": "_royalty", "type": "uint256" }, { "internalType": "uint256", "name": "_investor", "type": "uint256" }, { "internalType": "uint256", "name": "_operator", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "shareholderType", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "shareholder", "type": "address" }, { "indexed": false, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "RevenueShare", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function", "constant": true }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function", "constant": true }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getRevenueShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function", "constant": true }, { "inputs": [ { "internalType": "address", "name": "_viaFactory", "type": "address" }, { "internalType": "address", "name": "_founder", "type": "address" }, { "internalType": "address", "name": "_treasury", "type": "address" }, { "internalType": "address", "name": "_liquidity", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_type", "type": "bytes32" }, { "internalType": "address", "name": "_shareholder", "type": "address" }, { "internalType": "address", "name": "_currency", "type": "address" } ], "name": "addRevenueShareholder", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_type", "type": "bytes32" }, { "internalType": "address", "name": "_currency", "type": "address" } ], "name": "getRevenueShareholders", "outputs": [ { "internalType": "address[]", "name": "shareholders", "type": "address[]" } ], "stateMutability": "view", "type": "function", "constant": true }, { "inputs": [ { "internalType": "bytes32", "name": "_currency", "type": "bytes32" } ], "name": "getPaymentFeeCollected", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function", "constant": true }, { "inputs": [ { "internalType": "bytes32", "name": "_currency", "type": "bytes32" } ], "name": "getLoanFeeCollected", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function", "constant": true }, { "inputs": [ { "internalType": "address", "name": "_platform", "type": "address" }, { "internalType": "address", "name": "_token", "type": "address" } ], "name": "getIssuingFeeCollected", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_platform", "type": "address" }, { "internalType": "address", "name": "_token", "type": "address" } ], "name": "getTradingFeeCollected", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "shareCollection", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "shareFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_business\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_royalty\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_investor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_operator\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"shareholderType\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"shareholder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"RevenueShare\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_type\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_shareholder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_currency\",\"type\":\"address\"}],\"name\":\"addRevenueShareholder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_platform\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"getIssuingFeeCollected\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_currency\",\"type\":\"bytes32\"}],\"name\":\"getLoanFeeCollected\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_currency\",\"type\":\"bytes32\"}],\"name\":\"getPaymentFeeCollected\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_type\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_currency\",\"type\":\"address\"}],\"name\":\"getRevenueShareholders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"shareholders\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRevenueShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_platform\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"getTradingFeeCollected\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_viaFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_founder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_treasury\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_liquidity\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"shareCollection\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"shareFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/Distribution.sol\":\"Distribution\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x6bb804a310218875e89d12c053e94a13a4607cdf7cc2052f3e52bd32a0dc50a1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2ebbbe6d0011175bd9e7268b83de3f9c2f9d8d4cbfbaef12aff977d7d727163\",\"dweb:/ipfs/Qmd5c7Vxtis9wzkDNhxwc6A2QT5H9xn9kfjhx7qx44vpro\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0xa35b1f2a670cd2a701a52c398032c9fed72df1909fe394d77ceacbf074e8937b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72b957861691ebdaa78c52834465c4f8296480fe4f1a12ba72dc6c0c8ac076dd\",\"dweb:/ipfs/QmVz1sHCwgEivHPRDswdt9tdvky7EnWqFmbuk1wFE55VMG\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xb03df8481a954604ad0c9125680893b2e3f7ff770fe470e38b89ac61b84e8072\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b34655953d18ba3a45b762fb6bdbb6549af69a27435e10ece178742bf70baf45\",\"dweb:/ipfs/QmcqjUoFLLMyx7dbwSHUnDBH6aphkVHXWQvQRRev5EAWEh\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x027b891937d20ccf213fdb9c31531574256de774bda99d3a70ecef6e1913ed2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://087318b21c528119f649899f5b5580566dd8d7b0303d4904bd0e8580c3545f14\",\"dweb:/ipfs/Qmbn5Mj7aUn8hJuQ8VrQjjEXRsXyJKykgnjR9p4C3nfLtL\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x83fe24f5c04a56091e50f4a345ff504c8bff658a76d4c43b16878c8f940c53b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4c3df1a7ca104b633a7d81c6c6f5192367d150cd5a32cba81f7f27012729013\",\"dweb:/ipfs/QmSim72e3ZVsfgZt8UceCvbiSuMRHR6WDsiamqNzZahGSY\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x90565a39ae45c80f0468dc96c7b20d0afc3055f344c8203a0c9258239f350b9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26e8b38a7ac8e7b4463af00cf7fff1bf48ae9875765bf4f7751e100124d0bc8c\",\"dweb:/ipfs/QmWcsmkVr24xmmjfnBQZoemFniXjj3vwT78Cz6uqZW1Hux\"]},\"project:/contracts/Distribution.sol\":{\"keccak256\":\"0x2594cc6a6cc1ad0b35f5e631f6d50050da7d93fe254b07470d4c9062c5126877\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://75524732e3c512a4550934b26420f468f0eef4efeaa80458b1abba0357f8f8e1\",\"dweb:/ipfs/QmZQpyXP2dm9hXvNKmUjt7xUDqGPyw8BKXhrEt6JFAG4Zg\"]},\"project:/contracts/interfaces/ILiquidity.sol\":{\"keccak256\":\"0x600dce5f75b7b4e65be2a4d5215b5c59f6a891f9ca5a595de6362bced9f3b9bf\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d9b46824f3f5976211c204f9e592ff9ced4924efde9d29ba02824cf29c193047\",\"dweb:/ipfs/QmdrsV2iKSANHFknKEnhTPHgpiHxoBLYkf5mt4pvgfsmZB\"]},\"project:/contracts/interfaces/IMarketMaker.sol\":{\"keccak256\":\"0x904dc9c759b2227d522e503af84c9be723790fc4adbf90eedd109f4c8f4cda1d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c047bc9574d3094ccc32279b1fa6576327a7a9a14e72ff34a2205c5eeb0fac9\",\"dweb:/ipfs/QmYfwtHMgWveskQP2ZzRARsos9XK7i7Vohyph9enrqt4ny\"]},\"project:/contracts/interfaces/IOrder.sol\":{\"keccak256\":\"0x15a1549bee9f77513c026f63d7a75e268b2697183f360cc3ddc567ba2362e12c\",\"license\":\"BUSL1.1\",\"urls\":[\"bzz-raw://82233b74ac0999feeba2a4a1f689fcbf8d7169323508c0eca2659ae4295e8e50\",\"dweb:/ipfs/QmUEiaBpRiNkrvN1Ng76zdT48FRqvDvdLC6upFGVhuUFjX\"]},\"project:/contracts/interfaces/ISettlor.sol\":{\"keccak256\":\"0x7569fcea85e7121278e1cdd353b1df6108bc23ffead42aec92b9a66b958cf0cd\",\"license\":\"BUSL1.1\",\"urls\":[\"bzz-raw://5bea80a23df8b39ca743f7c6308e4ed0f468265d7f286fd16b679c7cef07fc25\",\"dweb:/ipfs/QmRbcVW2W1sYHz5qqd5yuiafcPDWDcDYpNg3KTqeG6LufJ\"]},\"project:/contracts/interfaces/ITrade.sol\":{\"keccak256\":\"0x70c2314a9de36d027fe96a7923e384b6de6fd6962baa5d4a54deccdf5e02340a\",\"license\":\"BUSL1.1\",\"urls\":[\"bzz-raw://9f23b36fb97582e602a0ad7e500aa995a3f871d9162ae043e8803390f2fd1247\",\"dweb:/ipfs/QmR4eV5b3xWG9eV31QnFUTtfXxaJuoLviUJz1H5BkRLj8d\"]},\"project:/contracts/interfaces/ViaFactory.sol\":{\"keccak256\":\"0xfc5b9cd2fa746946d189c970666b1a30b4489830bf5eb7e9a8975afdf82c34b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7230d3a07119f9937bdba78bae6a39bae8d0ac3edd9a9f1b99a9a5525f4bc1fa\",\"dweb:/ipfs/QmaCSz5vgSUe67YGXzB9prp6huMdKw2VrBxsXdrvCGjPuR\"]},\"project:/contracts/math/BalancerErrors.sol\":{\"keccak256\":\"0x323bea2f11674b9268713f7297620af5a2ccf7de1d0c6a3f2ab60d4146097994\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://764b0c48b21e6d2fb54ada64e28253cde73e4dbce7aa8b68e5642f4038b5cac7\",\"dweb:/ipfs/QmNomHLxAk3PJ9LDxLscuziFW2hZRdy6YvrpNXE2zPYicp\"]},\"project:/contracts/math/FixedPoint.sol\":{\"keccak256\":\"0xfeee385aff59fa8ccdd570da51dad7bea9568af3293224b7a91006f122418de5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://500a8e4acfcdf37b534af520c42d45bcdd8af085c94e0a30b2b1f16909f03c05\",\"dweb:/ipfs/QmXSdE2kdThLDghjMgBxJNvnNbjq71AZYSSjdCU14GmBPh\"]},\"project:/contracts/math/LogExpMath.sol\":{\"keccak256\":\"0xe92008e018fcea6e38735bfa99877a9baadd50f8c735e896626c4f75deea37c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90cd376656246dd6e66fafad22936a0bca1a2bed07cf4f2740747b692f2eeeca\",\"dweb:/ipfs/Qmeui9mWac4fbGi38HPP9Uu4BvJP3kbwNXSiDqSvxx8Xbs\"]},\"project:/contracts/math/Math.sol\":{\"keccak256\":\"0xc98ceae3785da1fa180f96f6dc2d4a73c643dbd2076aef8e4c56ea087e1b87fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edc507569a43010e0d02990c05adb3c7c1060139a15f66075d566420ac60d0bb\",\"dweb:/ipfs/QmVxwu3xuTdMqkoCStr7H5JMMfzsAu8vrz8moRmZawHhWK\"]}},\"version\":1}", "bytecode": "0x6101006040523480156200001257600080fd5b50604051620024f1380380620024f18339810160408190526200003591620000c2565b62000049620000436200006e565b62000072565b6000805460ff60a01b1916905560809390935260a09190915260c05260e052620000f8565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060008060808587031215620000d8578384fd5b505082516020840151604085015160609095015191969095509092509050565b60805160a05160c05160e0516123a36200014e600039600081816107190152610fbc0152600081816106f801526110300152600081816106d70152610ff60152600081816106b60152610f7d01526123a36000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80637d8e98311161008c578063e081d92f11610066578063e081d92f146101b8578063f2fde38b146101d8578063f8c8765e146101eb578063ff43df4e146101fe576100ea565b80637d8e9831146101835780638da5cb5b1461019b578063b069bbbb146101b0576100ea565b806350ed5a0b116100c857806350ed5a0b146101405780635c975abb14610153578063715018a6146101685780637507f8d014610170576100ea565b80630ab36de2146100ef5780633d66d8a8146101045780634fb0b3041461012d575b600080fd5b6101026100fd366004611e6d565b610206565b005b610117610112366004611e31565b610350565b6040516101249190612139565b60405180910390f35b61011761013b366004611e31565b6104b2565b61011761014e366004611c18565b610524565b61015b6105ec565b6040516101249190611f84565b6101026105fc565b61011761017e366004611c18565b610647565b61018b6106b4565b6040516101249493929190612142565b6101a361073e565b6040516101249190611f0a565b61010261074d565b6101cb6101c6366004611e49565b610a96565b6040516101249190611f37565b6101026101e6366004611bd9565b610be3565b6101026101f9366004611c50565b610c54565b610102610cf0565b61020e610f08565b6001600160a01b031661021f61073e565b6001600160a01b03161461024e5760405162461bcd60e51b8152600401610245906120a0565b60405180910390fd5b8267427573696e65737360c01b14156102cf576001600160a01b0382166000908152600460205260409020546102ca576001600160a01b03818116600090815260036020908152604080832080546001810182558185528385200180546001600160a01b03191695881695861790555493835260049091529020555b61034b565b826727b832b930ba37b960c11b141561034b576001600160a01b03821660009081526006602052604090205461034b576001600160a01b03818116600090815260056020908152604080832080546001810182558185528385200180546001600160a01b03191695881695861790555493835260069091529020555b505050565b600061035a610f08565b6001600160a01b031661036b61073e565b6001600160a01b0316146103915760405162461bcd60e51b8152600401610245906120a0565b600154604051632ea7791760e01b81526000916001600160a01b031690632ea77917906103c2908690600401611ff0565b60206040518083038186803b1580156103da57600080fd5b505afa1580156103ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104129190611bfc565b90506001600160a01b038116156104a7576040516370a0823160e01b81526001600160a01b038216906370a082319061044f903090600401611f0a565b60206040518083038186803b15801561046757600080fd5b505afa15801561047b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049f9190611ed1565b9150506104ad565b60009150505b919050565b60006104bc610f08565b6001600160a01b03166104cd61073e565b6001600160a01b0316146104f35760405162461bcd60e51b8152600401610245906120a0565b600154604051632ea7791760e01b81526000916001600160a01b031690632ea77917906103c2908690600401611fd5565b600061052e610f08565b6001600160a01b031661053f61073e565b6001600160a01b0316146105655760405162461bcd60e51b8152600401610245906120a0565b604051635bccd17760e01b81526001600160a01b03841690635bccd17790610591908590600401611f0a565b602060405180830381600087803b1580156105ab57600080fd5b505af11580156105bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e39190611ed1565b90505b92915050565b600054600160a01b900460ff1690565b610604610f08565b6001600160a01b031661061561073e565b6001600160a01b03161461063b5760405162461bcd60e51b8152600401610245906120a0565b6106456000610f0c565b565b6000610651610f08565b6001600160a01b031661066261073e565b6001600160a01b0316146106885760405162461bcd60e51b8152600401610245906120a0565b6040516316c8b3a360e11b81526001600160a01b03841690632d91674690610591908590600401611f0a565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000090919293565b6000546001600160a01b031690565b610755610f08565b6001600160a01b031661076661073e565b6001600160a01b03161461078c5760405162461bcd60e51b8152600401610245906120a0565b600154604080516378a8956760e01b815290516000926001600160a01b0316916378a89567916004808301926020929190829003018186803b1580156107d157600080fd5b505afa1580156107e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108099190611ed1565b905060005b81811015610a9257600154604051631c96a19760e31b81526000916001600160a01b03169063e4b50cb890610847908590600401612139565b60206040518083038186803b15801561085f57600080fd5b505afa158015610873573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108979190611bfc565b60015460405163668151a760e01b81529192506000916001600160a01b039091169063668151a7906108cd908590600401611f0a565b604080518083038186803b1580156108e457600080fd5b505afa1580156108f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091c9190611eae565b91505080660acd2c286c2e6d60cb1b14156109d0576040516370a0823160e01b81526000906001600160a01b038416906370a0823190610960903090600401611f0a565b60206040518083038186803b15801561097857600080fd5b505afa15801561098c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b09190611ed1565b905080156109ca576109ca8184636665657360e01b610f5c565b50610a7d565b8066159a58509bdb9960ca1b1415610a7d576040516370a0823160e01b81526000906001600160a01b038416906370a0823190610a11903090600401611f0a565b60206040518083038186803b158015610a2957600080fd5b505afa158015610a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a619190611ed1565b90508015610a7b57610a7b8184636665657360e01b610f5c565b505b50508080610a8a906122f1565b91505061080e565b5050565b6060610aa0610f08565b6001600160a01b0316610ab161073e565b6001600160a01b031614610ad75760405162461bcd60e51b8152600401610245906120a0565b8267427573696e65737360c01b1415610b5e576001600160a01b03821660009081526003602090815260409182902080548351818402810184019094528084529091830182828015610b5257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b34575b505050505090506105e6565b826727b832b930ba37b960c11b14156105e6576001600160a01b03821660009081526005602090815260409182902080548351818402810184019094528084529091830182828015610b52576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610b3457505050505090506105e6565b610beb610f08565b6001600160a01b0316610bfc61073e565b6001600160a01b031614610c225760405162461bcd60e51b8152600401610245906120a0565b6001600160a01b038116610c485760405162461bcd60e51b815260040161024590611f8f565b610c5181610f0c565b50565b610c5c610f08565b6001600160a01b0316610c6d61073e565b6001600160a01b031614610c935760405162461bcd60e51b8152600401610245906120a0565b600180546001600160a01b03199081166001600160a01b0396871617909155600780548216948616949094179093556008805484169285169290921790915560098054831691909316908117909255600280549091169091179055565b610cf8610f08565b6001600160a01b0316610d0961073e565b6001600160a01b031614610d2f5760405162461bcd60e51b8152600401610245906120a0565b6002546040805163d3c7c2c760e01b815290516000926001600160a01b03169163d3c7c2c79160048083019286929190829003018186803b158015610d7357600080fd5b505afa158015610d87573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610daf9190810190611cab565b905060005b8151811015610a92576000806001600160a01b0316838381518110610de957634e487b7160e01b600052603260045260246000fd5b6020026020010151602001516001600160a01b031614610ef557828281518110610e2357634e487b7160e01b600052603260045260246000fd5b6020026020010151602001516001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401610e5a9190611f0a565b60206040518083038186803b158015610e7257600080fd5b505afa158015610e86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eaa9190611ed1565b90508015610ef557610ef581848481518110610ed657634e487b7160e01b600052603260045260246000fd5b6020026020010151602001516931b7b63632b1ba34b7b760b11b610f5c565b5080610f00816122f1565b915050610db4565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610f7084610f6b856119dc565b611a89565b90506000610faf610fa1837f0000000000000000000000000000000000000000000000000000000000000000611a91565b610faa866119dc565b611ad1565b90506000610fe9610fe0847f0000000000000000000000000000000000000000000000000000000000000000611a91565b610faa876119dc565b9050600061102361101a857f0000000000000000000000000000000000000000000000000000000000000000611a91565b610faa886119dc565b9050600061105d611054867f0000000000000000000000000000000000000000000000000000000000000000611a91565b610faa896119dc565b9050856931b7b63632b1ba34b7b760b11b141561149b57831561113b5760095460405163a9059cbb60e01b81526001600160a01b038981169263a9059cbb926110ae92909116908890600401611f1e565b602060405180830381600087803b1580156110c857600080fd5b505af11580156110dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111009190611e11565b506009546040516001600160a01b039091169060008051602061234e83398151915290611132908a90889042906120d5565b60405180910390a25b60008211801561116257506001600160a01b03871660009081526003602052604090205415155b15611308576001600160a01b03871660009081526003602052604090205461118b908390611b33565b915060005b6001600160a01b038816600090815260036020526040902054811015611306576001600160a01b0388166000818152600360205260409020805463a9059cbb9190849081106111ef57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546040516001600160e01b031960e084901b168152611227916001600160a01b0316908790600401611f1e565b602060405180830381600087803b15801561124157600080fd5b505af1158015611255573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112799190611e11565b506001600160a01b03881660009081526003602052604090208054829081106112b257634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546040516001600160a01b039091169060008051602061234e833981519152906112ec908b9087904290612107565b60405180910390a2806112fe816122f1565b915050611190565b505b80156113cf5760075460405163a9059cbb60e01b81526001600160a01b038981169263a9059cbb9261134292909116908590600401611f1e565b602060405180830381600087803b15801561135c57600080fd5b505af1158015611370573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113949190611e11565b506007546040516001600160a01b039091169060008051602061234e833981519152906113c6908a908590429061206f565b60405180910390a25b82156114965760085460405163a9059cbb60e01b81526001600160a01b038981169263a9059cbb9261140992909116908790600401611f1e565b602060405180830381600087803b15801561142357600080fd5b505af1158015611437573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145b9190611e11565b506008546040516001600160a01b039091169060008051602061234e8339815191529061148d908a908790429061200b565b60405180910390a25b6119d2565b85636665657360e01b14156119d25781156115715760075460405163a9059cbb60e01b81526001600160a01b038981169263a9059cbb926114e492909116908690600401611f1e565b602060405180830381600087803b1580156114fe57600080fd5b505af1158015611512573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115369190611e11565b506007546040516001600160a01b039091169060008051602061234e83398151915290611568908a908690429061206f565b60405180910390a25b80156116385760095460405163a9059cbb60e01b81526001600160a01b038981169263a9059cbb926115ab92909116908590600401611f1e565b602060405180830381600087803b1580156115c557600080fd5b505af11580156115d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fd9190611e11565b506009546040516001600160a01b039091169060008051602061234e8339815191529061162f908a90859042906120d5565b60405180910390a25b60008411801561165f57506001600160a01b03871660009081526003602052604090205415155b15611805576001600160a01b038716600090815260036020526040902054611688908590611ad1565b935060005b6001600160a01b038816600090815260036020526040902054811015611803576001600160a01b0388166000818152600360205260409020805463a9059cbb9190849081106116ec57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546040516001600160e01b031960e084901b168152611724916001600160a01b0316908990600401611f1e565b602060405180830381600087803b15801561173e57600080fd5b505af1158015611752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117769190611e11565b506001600160a01b03881660009081526003602052604090208054829081106117af57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546040516001600160a01b039091169060008051602061234e833981519152906117e9908b9089904290612107565b60405180910390a2806117fb816122f1565b91505061168d565b505b60008311801561182c57506001600160a01b03871660009081526005602052604090205415155b156119d2576001600160a01b038716600090815260056020526040902054611855908490611ad1565b925060005b6001600160a01b0388166000908152600560205260409020548110156119d0576001600160a01b0388166000818152600560205260409020805463a9059cbb9190849081106118b957634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546040516001600160e01b031960e084901b1681526118f1916001600160a01b0316908890600401611f1e565b602060405180830381600087803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119439190611e11565b506001600160a01b038816600090815260056020526040902080548290811061197c57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546040516001600160a01b039091169060008051602061234e833981519152906119b6908b908890429061203d565b60405180910390a2806119c8816122f1565b91505061185a565b505b5050505050505050565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611a1857600080fd5b505afa158015611a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a509190611ee9565b60ff1690506000611a62601283611b4c565b9050611a6f81600a6121ed565b611a8190670de0b6b3a76400006122bb565b949350505050565b60006105e383835b600080611a9e83856122bb565b9050611abf841580611ab8575083611ab68684612187565b145b6003611b68565b611a81670de0b6b3a764000082612187565b6000611ae08215156004611b68565b82611aed575060006105e6565b6000611b01670de0b6b3a7640000856122bb565b9050611b21670de0b6b3a7640000611b198684612187565b146005611b68565b611b2b8382612187565b9150506105e6565b6000611b428215156004611b68565b6105e38284612187565b6000611b5c838311156001611b68565b6000611a8183856122da565b81610a925762461bcd60e51b600090815260206004526007602452600a808304818106603090810160081b83860601918390049283060160101b016642414c230000300160c81b604452610a92918391610c51916210905360ea1b906242414c90606490fd5b80516104ad81612338565b600060208284031215611bea578081fd5b8135611bf581612338565b9392505050565b600060208284031215611c0d578081fd5b8151611bf581612338565b60008060408385031215611c2a578081fd5b8235611c3581612338565b91506020830135611c4581612338565b809150509250929050565b60008060008060808587031215611c65578182fd5b8435611c7081612338565b93506020850135611c8081612338565b92506040850135611c9081612338565b91506060850135611ca081612338565b939692955090935050565b60006020808385031215611cbd578182fd5b825167ffffffffffffffff80821115611cd4578384fd5b818501915085601f830112611ce7578384fd5b815181811115611cf957611cf9612322565b611d06848583020161215d565b81815284810190848601875b84811015611e025781518701601f196040828e0382011215611d32578a8bfd5b604051604081018181108a82111715611d4d57611d4d612322565b604052828b015189811115611d60578c8dfd5b8301603f81018f13611d70578c8dfd5b8b8101518a811115611d8457611d84612322565b611d948d85601f8401160161215d565b93508084528f6040828401011115611daa578d8efd5b8d5b81811015611dc857828101604001518582018f01528d01611dac565b81811115611dd8578e8e83870101525b505050818152611dea60408401611bce565b818c0152865250509287019290870190600101611d12565b50909998505050505050505050565b600060208284031215611e22578081fd5b81518015158114611bf5578182fd5b600060208284031215611e42578081fd5b5035919050565b60008060408385031215611e5b578182fd5b823591506020830135611c4581612338565b600080600060608486031215611e81578283fd5b833592506020840135611e9381612338565b91506040840135611ea381612338565b809150509250925092565b60008060408385031215611ec0578182fd5b505080516020909101519092909150565b600060208284031215611ee2578081fd5b5051919050565b600060208284031215611efa578081fd5b815160ff81168114611bf5578182fd5b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015611f785783516001600160a01b031683529284019291840191600101611f53565b50909695505050505050565b901515815260200190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b660acd2c286c2e6d60cb1b8152602081019190915260400190565b66159a58509bdb9960ca1b8152602081019190915260400190565b67547265617375727960c01b81526001600160a01b039390931660208401526040830191909152606082015260800190565b6727b832b930ba37b960c11b81526001600160a01b039390931660208401526040830191909152606082015260800190565b66526f79616c747960c81b81526001600160a01b039390931660208401526040830191909152606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6724b73b32b9ba37b960c11b81526001600160a01b039390931660208401526040830191909152606082015260800190565b67427573696e65737360c01b81526001600160a01b039390931660208401526040830191909152606082015260800190565b90815260200190565b93845260208401929092526040830152606082015260800190565b60405181810167ffffffffffffffff8111828210171561217f5761217f612322565b604052919050565b6000826121a257634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116121b957506121e4565b8187048211156121cb576121cb61230c565b808616156121d857918102915b9490941c9380026121aa565b94509492505050565b60006105e3600019848460008261220657506001611bf5565b8161221357506000611bf5565b8160018114612229576002811461223357612260565b6001915050611bf5565b60ff8411156122445761224461230c565b6001841b91508482111561225a5761225a61230c565b50611bf5565b5060208310610133831016604e8410600b8410161715612293575081810a8381111561228e5761228e61230c565b611bf5565b6122a084848460016121a7565b8086048211156122b2576122b261230c565b02949350505050565b60008160001904831182151516156122d5576122d561230c565b500290565b6000828210156122ec576122ec61230c565b500390565b60006000198214156123055761230561230c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610c5157600080fdfefd34476424b11728dd439a5eb333973b6c5938474e1f5b123928c97ca869414da2646970667358221220df9b63eb6b2d7d5a731f93f0ff8b0725737972b0926b632012e3b5d9242f01ad64736f6c63430008000033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80637d8e98311161008c578063e081d92f11610066578063e081d92f146101b8578063f2fde38b146101d8578063f8c8765e146101eb578063ff43df4e146101fe576100ea565b80637d8e9831146101835780638da5cb5b1461019b578063b069bbbb146101b0576100ea565b806350ed5a0b116100c857806350ed5a0b146101405780635c975abb14610153578063715018a6146101685780637507f8d014610170576100ea565b80630ab36de2146100ef5780633d66d8a8146101045780634fb0b3041461012d575b600080fd5b6101026100fd366004611e6d565b610206565b005b610117610112366004611e31565b610350565b6040516101249190612139565b60405180910390f35b61011761013b366004611e31565b6104b2565b61011761014e366004611c18565b610524565b61015b6105ec565b6040516101249190611f84565b6101026105fc565b61011761017e366004611c18565b610647565b61018b6106b4565b6040516101249493929190612142565b6101a361073e565b6040516101249190611f0a565b61010261074d565b6101cb6101c6366004611e49565b610a96565b6040516101249190611f37565b6101026101e6366004611bd9565b610be3565b6101026101f9366004611c50565b610c54565b610102610cf0565b61020e610f08565b6001600160a01b031661021f61073e565b6001600160a01b03161461024e5760405162461bcd60e51b8152600401610245906120a0565b60405180910390fd5b8267427573696e65737360c01b14156102cf576001600160a01b0382166000908152600460205260409020546102ca576001600160a01b03818116600090815260036020908152604080832080546001810182558185528385200180546001600160a01b03191695881695861790555493835260049091529020555b61034b565b826727b832b930ba37b960c11b141561034b576001600160a01b03821660009081526006602052604090205461034b576001600160a01b03818116600090815260056020908152604080832080546001810182558185528385200180546001600160a01b03191695881695861790555493835260069091529020555b505050565b600061035a610f08565b6001600160a01b031661036b61073e565b6001600160a01b0316146103915760405162461bcd60e51b8152600401610245906120a0565b600154604051632ea7791760e01b81526000916001600160a01b031690632ea77917906103c2908690600401611ff0565b60206040518083038186803b1580156103da57600080fd5b505afa1580156103ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104129190611bfc565b90506001600160a01b038116156104a7576040516370a0823160e01b81526001600160a01b038216906370a082319061044f903090600401611f0a565b60206040518083038186803b15801561046757600080fd5b505afa15801561047b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049f9190611ed1565b9150506104ad565b60009150505b919050565b60006104bc610f08565b6001600160a01b03166104cd61073e565b6001600160a01b0316146104f35760405162461bcd60e51b8152600401610245906120a0565b600154604051632ea7791760e01b81526000916001600160a01b031690632ea77917906103c2908690600401611fd5565b600061052e610f08565b6001600160a01b031661053f61073e565b6001600160a01b0316146105655760405162461bcd60e51b8152600401610245906120a0565b604051635bccd17760e01b81526001600160a01b03841690635bccd17790610591908590600401611f0a565b602060405180830381600087803b1580156105ab57600080fd5b505af11580156105bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e39190611ed1565b90505b92915050565b600054600160a01b900460ff1690565b610604610f08565b6001600160a01b031661061561073e565b6001600160a01b03161461063b5760405162461bcd60e51b8152600401610245906120a0565b6106456000610f0c565b565b6000610651610f08565b6001600160a01b031661066261073e565b6001600160a01b0316146106885760405162461bcd60e51b8152600401610245906120a0565b6040516316c8b3a360e11b81526001600160a01b03841690632d91674690610591908590600401611f0a565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000090919293565b6000546001600160a01b031690565b610755610f08565b6001600160a01b031661076661073e565b6001600160a01b03161461078c5760405162461bcd60e51b8152600401610245906120a0565b600154604080516378a8956760e01b815290516000926001600160a01b0316916378a89567916004808301926020929190829003018186803b1580156107d157600080fd5b505afa1580156107e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108099190611ed1565b905060005b81811015610a9257600154604051631c96a19760e31b81526000916001600160a01b03169063e4b50cb890610847908590600401612139565b60206040518083038186803b15801561085f57600080fd5b505afa158015610873573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108979190611bfc565b60015460405163668151a760e01b81529192506000916001600160a01b039091169063668151a7906108cd908590600401611f0a565b604080518083038186803b1580156108e457600080fd5b505afa1580156108f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091c9190611eae565b91505080660acd2c286c2e6d60cb1b14156109d0576040516370a0823160e01b81526000906001600160a01b038416906370a0823190610960903090600401611f0a565b60206040518083038186803b15801561097857600080fd5b505afa15801561098c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b09190611ed1565b905080156109ca576109ca8184636665657360e01b610f5c565b50610a7d565b8066159a58509bdb9960ca1b1415610a7d576040516370a0823160e01b81526000906001600160a01b038416906370a0823190610a11903090600401611f0a565b60206040518083038186803b158015610a2957600080fd5b505afa158015610a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a619190611ed1565b90508015610a7b57610a7b8184636665657360e01b610f5c565b505b50508080610a8a906122f1565b91505061080e565b5050565b6060610aa0610f08565b6001600160a01b0316610ab161073e565b6001600160a01b031614610ad75760405162461bcd60e51b8152600401610245906120a0565b8267427573696e65737360c01b1415610b5e576001600160a01b03821660009081526003602090815260409182902080548351818402810184019094528084529091830182828015610b5257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b34575b505050505090506105e6565b826727b832b930ba37b960c11b14156105e6576001600160a01b03821660009081526005602090815260409182902080548351818402810184019094528084529091830182828015610b52576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610b3457505050505090506105e6565b610beb610f08565b6001600160a01b0316610bfc61073e565b6001600160a01b031614610c225760405162461bcd60e51b8152600401610245906120a0565b6001600160a01b038116610c485760405162461bcd60e51b815260040161024590611f8f565b610c5181610f0c565b50565b610c5c610f08565b6001600160a01b0316610c6d61073e565b6001600160a01b031614610c935760405162461bcd60e51b8152600401610245906120a0565b600180546001600160a01b03199081166001600160a01b0396871617909155600780548216948616949094179093556008805484169285169290921790915560098054831691909316908117909255600280549091169091179055565b610cf8610f08565b6001600160a01b0316610d0961073e565b6001600160a01b031614610d2f5760405162461bcd60e51b8152600401610245906120a0565b6002546040805163d3c7c2c760e01b815290516000926001600160a01b03169163d3c7c2c79160048083019286929190829003018186803b158015610d7357600080fd5b505afa158015610d87573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610daf9190810190611cab565b905060005b8151811015610a92576000806001600160a01b0316838381518110610de957634e487b7160e01b600052603260045260246000fd5b6020026020010151602001516001600160a01b031614610ef557828281518110610e2357634e487b7160e01b600052603260045260246000fd5b6020026020010151602001516001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401610e5a9190611f0a565b60206040518083038186803b158015610e7257600080fd5b505afa158015610e86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eaa9190611ed1565b90508015610ef557610ef581848481518110610ed657634e487b7160e01b600052603260045260246000fd5b6020026020010151602001516931b7b63632b1ba34b7b760b11b610f5c565b5080610f00816122f1565b915050610db4565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610f7084610f6b856119dc565b611a89565b90506000610faf610fa1837f0000000000000000000000000000000000000000000000000000000000000000611a91565b610faa866119dc565b611ad1565b90506000610fe9610fe0847f0000000000000000000000000000000000000000000000000000000000000000611a91565b610faa876119dc565b9050600061102361101a857f0000000000000000000000000000000000000000000000000000000000000000611a91565b610faa886119dc565b9050600061105d611054867f0000000000000000000000000000000000000000000000000000000000000000611a91565b610faa896119dc565b9050856931b7b63632b1ba34b7b760b11b141561149b57831561113b5760095460405163a9059cbb60e01b81526001600160a01b038981169263a9059cbb926110ae92909116908890600401611f1e565b602060405180830381600087803b1580156110c857600080fd5b505af11580156110dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111009190611e11565b506009546040516001600160a01b039091169060008051602061234e83398151915290611132908a90889042906120d5565b60405180910390a25b60008211801561116257506001600160a01b03871660009081526003602052604090205415155b15611308576001600160a01b03871660009081526003602052604090205461118b908390611b33565b915060005b600