UNPKG

@gooddollar/goodprotocol

Version:
149 lines (148 loc) 46.3 kB
{ "_format": "hh-sol-artifact-1", "contractName": "ProtocolUpgrade", "sourceName": "contracts/utils/ProtocolUpgrade.sol", "abi": [ { "inputs": [ { "internalType": "contract Controller", "name": "_controller", "type": "address" }, { "internalType": "address", "name": "_owner", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "contract INameService", "name": "ns", "type": "address" }, { "internalType": "bytes32[]", "name": "nameHash", "type": "bytes32[]" }, { "internalType": "address[]", "name": "nameAddress", "type": "address[]" }, { "internalType": "address[]", "name": "staking", "type": "address[]" }, { "internalType": "uint256[]", "name": "monthlyRewards", "type": "uint256[]" } ], "name": "upgradeBasic", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract INameService", "name": "ns", "type": "address" }, { "internalType": "address", "name": "oldDonationStaking", "type": "address" }, { "internalType": "address payable", "name": "donationStaking", "type": "address" }, { "internalType": "address", "name": "oldSimpleDAIStaking", "type": "address" } ], "name": "upgradeDonationStaking", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "schemeRegistrar", "type": "address" }, { "internalType": "address", "name": "upgradeScheme", "type": "address" }, { "internalType": "address", "name": "compoundVotingMachine", "type": "address" } ], "name": "upgradeGovernance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract INameService", "name": "ns", "type": "address" }, { "internalType": "address", "name": "oldReserve", "type": "address" }, { "internalType": "address", "name": "oldMarketMaker", "type": "address" }, { "internalType": "address", "name": "oldFundManager", "type": "address" }, { "internalType": "address", "name": "COMP", "type": "address" } ], "name": "upgradeReserve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ], "bytecode": "0x60806040523480156200001157600080fd5b5060405162002aa238038062002aa2833981016040819052620000349162000106565b600080546001600160a01b038085166001600160a01b03199283168117909355600180549185169190921617905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa1580156200009e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000c4919062000145565b600280546001600160a01b0319166001600160a01b0392909216919091179055506200016c9050565b6001600160a01b03811681146200010357600080fd5b50565b600080604083850312156200011a57600080fd5b82516200012781620000ed565b60208401519092506200013a81620000ed565b809150509250929050565b6000602082840312156200015857600080fd5b81516200016581620000ed565b9392505050565b612926806200017c6000396000f3fe6080604052600436106100435760003560e01c80634cbcfaf41461004f5780635c0d087b146100715780635ee6d77c146100915780637d14c7c7146100b157600080fd5b3661004a57005b600080fd5b34801561005b57600080fd5b5061006f61006a3660046122b7565b6100d1565b005b34801561007d57600080fd5b5061006f61008c366004612328565b610201565b34801561009d57600080fd5b5061006f6100ac3660046123be565b610689565b3480156100bd57600080fd5b5061006f6100cc366004612496565b610c5c565b6001546001600160a01b031633146101045760405162461bcd60e51b81526004016100fb906124f2565b60405180910390fd5b61010d85611227565b6001600160a01b038416156101fa57610128858585846116c2565b60005460025460405163039de01d60e01b81526001600160a01b039283169263039de01d9261015f92879290911690600401612516565b6020604051808303816000875af115801561017e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101a29190612545565b6101fa5760405162461bcd60e51b8152602060048201526024808201527f756e7265676973746572696e67206f6c642046756e644d616e616765722066616044820152631a5b195960e21b60648201526084016100fb565b5050505050565b6001546001600160a01b0316331461022b5760405162461bcd60e51b81526004016100fb906124f2565b6001600160a01b0383161561030c5760005460025460405163039de01d60e01b81526001600160a01b039283169263039de01d9261027192889290911690600401612516565b6020604051808303816000875af1158015610290573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b49190612545565b61030c5760405162461bcd60e51b8152602060048201526024808201527f756e7265676973746572696e6720736368656d655265676973747261722066616044820152631a5b195960e21b60648201526084016100fb565b6001600160a01b038216156103ec5760005460025460405163039de01d60e01b81526001600160a01b039283169263039de01d9261035292879290911690600401612516565b6020604051808303816000875af1158015610371573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103959190612545565b6103ec5760405162461bcd60e51b815260206004820152602260248201527f756e7265676973746572696e672075706772616465536368656d65206661696c604482015261195960f21b60648201526084016100fb565b6000805460025460405163e869d45f60e01b81526001600160a01b039283169363e869d45f9361042a938793601f60e01b9290911690600401612567565b6020604051808303816000875af1158015610449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046d9190612545565b6104ca5760405162461bcd60e51b815260206004820152602860248201527f7265676973746572696e6720636f6d706f756e64566f74696e674d616368696e604482015267194819985a5b195960c21b60648201526084016100fb565b6000805460015460025460405163e869d45f60e01b81526001600160a01b039384169463e869d45f9461050e948116939192601f60e01b9290911690600401612567565b6020604051808303816000875af115801561052d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105519190612545565b6105ac5760405162461bcd60e51b815260206004820152602660248201527f7265676973746572696e6720676f7665726e616e6365206661696c736166652060448201526519985a5b195960d21b60648201526084016100fb565b600054600254604051636c525b1360e01b81526001600160a01b0392831692636c525b13926105e09291169060040161259c565b6020604051808303816000875af11580156105ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106239190612545565b61067b5760405162461bcd60e51b8152602060048201526024808201527f756e7265676973746572696e672070726f746f636f6c757067726164652066616044820152631a5b195960e21b60648201526084016100fb565b6001546001600160a01b0316ff5b6001546001600160a01b031633146106b35760405162461bcd60e51b81526004016100fb906124f2565b8685146106f45760405162461bcd60e51b815260206004820152600f60248201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b60448201526064016100fb565b82811461073d5760405162461bcd60e51b81526020600482015260176024820152760e6e8c2d6d2dcce40d8cadccee8d040dad2e6dac2e8c6d604b1b60448201526064016100fb565b6107ab8989898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b918291850190849080828437600092019190915250611e4592505050565b6108198985858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250611f7792505050565b60005460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526001600160a01b039182169163e869d45f91908c169063bf40fac190606401602060405180830381865afa158015610884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a891906125b0565b6002546040516001600160e01b031960e085901b1681526108df9291600091600160e01b916001600160a01b031690600401612567565b6020604051808303816000875af11580156108fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109229190612545565b61096c5760405162461bcd60e51b815260206004820152601b60248201527a1c9959da5cdd195c9a5b99c81259195b9d1a5d1e4819985a5b1959602a1b60448201526064016100fb565b60405163bf40fac160e01b81526000906001600160a01b038b169063bf40fac190610999906004016125cd565b602060405180830381865afa1580156109b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109da91906125b0565b6001600160a01b0316634b75f54f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b91906125b0565b600054600254604051639be2faed60e01b81529293506001600160a01b0391821692639be2faed92610a74928692911690600401612516565b602060405180830381865afa158015610a91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab59190612545565b15610c505760005460405163bf40fac160e01b81526001600160a01b039182169163039de01d91908d169063bf40fac190610af2906004016125cd565b602060405180830381865afa158015610b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3391906125b0565b6001600160a01b0316634b75f54f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9491906125b0565b6002546040516001600160e01b031960e085901b168152610bc292916001600160a01b031690600401612516565b6020604051808303816000875af1158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c059190612545565b610c505760405162461bcd60e51b815260206004820152601c60248201527b1d5b9c9959da5cdd195c9a5b99c8199bdc9b5d5b184819985a5b195960221b60448201526064016100fb565b50505050505050505050565b6001546001600160a01b03163314610c865760405162461bcd60e51b81526004016100fb906124f2565b600080546040805160048082526024820183526020820180516001600160e01b0316633bef870760e21b17905260025492516368db844d60e11b81526060946001600160a01b039081169463d1b7089a94610cec948c9491939290921691899101612615565b6000604051808303816000875af1158015610d0b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d33919081019061267c565b909250905081610d935760405162461bcd60e51b815260206004820152602560248201527f43616c6c696e67206f6c64446f6e6174696f6e5374616b696e6720656e642066604482015264185a5b195960da1b60648201526084016100fb565b60008082806020019051810190610daa919061273c565b60005460405163bf40fac160e01b815260206004820152600360248201526244414960e81b60448201529294509092506001600160a01b039081169163b9a04cdd918b169063bf40fac190606401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906125b0565b6002546040516001600160e01b031960e085901b168152610e6b92918b9188916001600160a01b031690600401612760565b6020604051808303816000875af1158015610e8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eae9190612545565b935083610f0e5760405162461bcd60e51b815260206004820152602860248201527f43616c6c696e67204441492065787465726e616c546f6b656e5472616e7366656044820152671c8819985a5b195960c21b60648201526084016100fb565b8015610fe8576000546002546040516331a4b2ed60e11b8152600481018490523060248201526001600160a01b03918216604482015291169063634965da906064016020604051808303816000875af1158015610f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f939190612545565b935083610fde5760405162461bcd60e51b815260206004820152601960248201527810d85b1b1a5b99c8081cd95b99115d1a195c8819985a5b1959603a1b60448201526064016100fb565b610fe88682612184565b856001600160a01b031663b678ce7b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561102357600080fd5b505af1158015611037573d6000803e3d6000fd5b5050600080546040805160048082526024820183526020820180516001600160e01b0316633bef870760e21b17905260025492516368db844d60e11b81526001600160a01b03948516975063d1b7089a965061109c958d959394909316929101612615565b6000604051808303816000875af11580156110bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e3919081019061267c565b9094509250836111455760405162461bcd60e51b815260206004820152602760248201527f43616c6c696e67206f6c642053696d706c654441495374616b696e6720656e646044820152660819985a5b195960ca1b60648201526084016100fb565b60005460025460405163039de01d60e01b81526001600160a01b039283169263039de01d9261117c928a9290911690600401612516565b6020604051808303816000875af115801561119b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bf9190612545565b61121d5760405162461bcd60e51b815260206004820152602960248201527f756e7265676973746572696e67206f6c642053696d706c654441495374616b696044820152681b99c819985a5b195960ba1b60648201526084016100fb565b5050505050505050565b6000805460405163bf40fac160e01b81526001600160a01b039182169163d1b7089a919085169063bf40fac190611260906004016125cd565b602060405180830381865afa15801561127d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a191906125b0565b60405163bf40fac160e01b81526001600160a01b0386169063bf40fac1906112cb9060040161278b565b602060405180830381865afa1580156112e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130c91906125b0565b60405160240161131c919061259c565b60408051601f198184030181529181526020820180516001600160e01b0316634c1d96ab60e11b179052600254905160e085901b6001600160e01b03191681526113779392916001600160a01b031690600090600401612615565b6000604051808303816000875af1158015611396573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113be919081019061267c565b509050806114095760405162461bcd60e51b815260206004820152601860248201527710d85b1b1a5b99c8185919135a5b9d195c8819985a5b195960421b60448201526064016100fb565b60005460405163bf40fac160e01b81526001600160a01b039182169163d1b7089a919085169063bf40fac190611441906004016125cd565b602060405180830381865afa15801561145e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148291906125b0565b6040805160048082526024820183526020820180516001600160e01b0316639865027560e01b179052600254925160e086901b6001600160e01b03191681526114d994936001600160a01b03169160009101612615565b6000604051808303816000875af11580156114f8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611520919081019061267c565b509050806115705760405162461bcd60e51b815260206004820152601d60248201527f43616c6c696e672072656e6f756e63654d696e746572206661696c656400000060448201526064016100fb565b60005460405163bf40fac160e01b81526001600160a01b039182169163e4537a74919085169063bf40fac1906115a89060040161278b565b602060405180830381865afa1580156115c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e991906125b0565b60025460405160e084901b6001600160e01b03191681526001600160a01b03928316600482015260006024820152911660448201526064016020604051808303816000875af1158015611640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116649190612545565b9050806116be5760405162461bcd60e51b815260206004820152602260248201527f43616c6c696e6720616464476c6f62616c436f6e73747261696e74206661696c604482015261195960f21b60648201526084016100fb565b5050565b60006001600160a01b038216156117f9576000546040516001600160a01b039091169063d1b7089a9086906116fb90869060240161259c565b60408051601f198184030181529181526020820180516001600160e01b0316630336197b60e21b179052600254905160e085901b6001600160e01b03191681526117569392916001600160a01b031690600090600401612615565b6000604051808303816000875af1158015611775573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261179d919081019061267c565b509050806117f95760405162461bcd60e51b815260206004820152602360248201527f63616c6c696e67205265736572766520636f6d70207265636f766572206661696044820152621b195960ea1b60648201526084016100fb565b60405163bf40fac160e01b81526000906001600160a01b0387169063bf40fac19061183f906004016020808252600490820152634344414960e01b604082015260600190565b602060405180830381865afa15801561185c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188091906125b0565b90506000816001600160a01b03166370a08231876040518263ffffffff1660e01b81526004016118b0919061259c565b602060405180830381865afa1580156118cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f191906127ac565b600080546040805160048082526024820183526020820180516001600160e01b0316633bef870760e21b17905260025492516368db844d60e11b81529596506001600160a01b039384169563d1b7089a95611952958e951692909101612615565b6000604051808303816000875af1158015611971573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611999919081019061267c565b509250826119e65760405162461bcd60e51b815260206004820152601a60248201527918d85b1b1a5b99c814995cd95c9d9948195b990819985a5b195960321b60448201526064016100fb565b60405163835bbd5560e01b81526000906001600160a01b0387169063835bbd5590611a1590869060040161259c565b606060405180830381865afa158015611a32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5691906127c5565b60005460405163bf40fac160e01b81529192506001600160a01b039081169163b9a04cdd918691908c169063bf40fac190611a939060040161278b565b602060405180830381865afa158015611ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad491906125b0565b6002546040516001600160e01b031960e086901b168152611b0793929188916001600160a01b0390911690600401612760565b6020604051808303816000875af1158015611b26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4a9190612545565b935083611ba55760405162461bcd60e51b815260206004820152602360248201527f7472616e73666572206364616920746f206e65772072657365727665206661696044820152621b195960ea1b60648201526084016100fb565b60005460405163bf40fac160e01b815260206004820152600c60248201526b26a0a925a2aa2fa6a0a5a2a960a11b60448201526001600160a01b039182169163d1b7089a91908b169063bf40fac190606401602060405180830381865afa158015611c14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3891906125b0565b6040848101518551602087015192516001600160a01b038a1660248201526044810192909252606482015263ffffffff9091166084820152600060a482015260c40160408051601f198184030181529181526020820180516001600160e01b0316638ee090fb60e01b179052600254905160e085901b6001600160e01b0319168152611cd59392916001600160a01b031690600090600401612615565b6000604051808303816000875af1158015611cf4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d1c919081019061267c565b50935083611d7f5760405162461bcd60e51b815260206004820152602a60248201527f63616c6c696e67206d61726b65744d616b657220696e697469616c697a65546f6044820152691ad95b8819985a5b195960b21b60648201526084016100fb565b60005460025460405163039de01d60e01b81526001600160a01b039283169263039de01d92611db6928c9290911690600401612516565b6020604051808303816000875af1158015611dd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df99190612545565b61121d5760405162461bcd60e51b815260206004820181905260248201527f756e7265676973746572696e67206f6c642072657365727665206661696c656460448201526064016100fb565b600080546040516001600160a01b039091169063d1b7089a908690611e70908790879060240161282f565b60408051601f198184030181529181526020820180516001600160e01b0316634ab01f5b60e01b179052600254905160e085901b6001600160e01b0319168152611ecb9392916001600160a01b031690600090600401612615565b6000604051808303816000875af1158015611eea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f12919081019061267c565b50905080611f715760405162461bcd60e51b815260206004820152602660248201527f43616c6c696e67207365744e616d6553657276696365436f6e7472616374732060448201526519985a5b195960d21b60648201526084016100fb565b50505050565b60005b8251811015611f71576000805460405163bf40fac160e01b815260206004820152600c60248201526b232aa7222fa6a0a720a3a2a960a11b60448201526001600160a01b039182169163d1b7089a919088169063bf40fac190606401602060405180830381865afa158015611ff3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201791906125b0565b858581518110612029576120296128b3565b6020026020010151878681518110612043576120436128b3565b602090810291909101015160405160248101929092526001600160a01b031660448201526000606482018190526084820181905260a482015260c40160408051601f198184030181529181526020820180516001600160e01b0316631f1ad8ed60e21b179052600254905160e085901b6001600160e01b03191681526120da9392916001600160a01b031690600090600401612615565b6000604051808303816000875af11580156120f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612121919081019061267c565b509050806121715760405162461bcd60e51b815260206004820181905260248201527f43616c6c696e67207365745374616b696e6752657761726473206661696c656460448201526064016100fb565b508061217c816128c9565b915050611f7a565b804710156121d45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016100fb565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612221576040519150601f19603f3d011682016040523d82523d6000602084013e612226565b606091505b505090508061229a5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c20726044820152791958da5c1a595b9d081b585e481a185d99481c995d995c9d195960321b60648201526084016100fb565b505050565b6001600160a01b03811681146122b457600080fd5b50565b600080600080600060a086880312156122cf57600080fd5b85356122da8161229f565b945060208601356122ea8161229f565b935060408601356122fa8161229f565b9250606086013561230a8161229f565b9150608086013561231a8161229f565b809150509295509295909350565b60008060006060848603121561233d57600080fd5b83356123488161229f565b925060208401356123588161229f565b915060408401356123688161229f565b809150509250925092565b60008083601f84011261238557600080fd5b5081356001600160401b0381111561239c57600080fd5b6020830191508360208260051b85010111156123b757600080fd5b9250929050565b600080600080600080600080600060a08a8c0312156123dc57600080fd5b89356123e78161229f565b985060208a01356001600160401b038082111561240357600080fd5b61240f8d838e01612373565b909a50985060408c013591508082111561242857600080fd5b6124348d838e01612373565b909850965060608c013591508082111561244d57600080fd5b6124598d838e01612373565b909650945060808c013591508082111561247257600080fd5b5061247f8c828d01612373565b915080935050809150509295985092959850929598565b600080600080608085870312156124ac57600080fd5b84356124b78161229f565b935060208501356124c78161229f565b925060408501356124d78161229f565b915060608501356124e78161229f565b939692955090935050565b6020808252600a908201526937b7363c9037bbb732b960b11b604082015260600190565b6001600160a01b0392831681529116602082015260400190565b8051801515811461254057600080fd5b919050565b60006020828403121561255757600080fd5b61256082612530565b9392505050565b6001600160a01b03948516815260208101939093526001600160e01b0319919091166040830152909116606082015260800190565b6001600160a01b0391909116815260200190565b6000602082840312156125c257600080fd5b81516125608161229f565b6020808252600a908201526923a7a7a22227a62620a960b11b604082015260600190565b60005b8381101561260c5781810151838201526020016125f4565b50506000910152565b600060018060a01b0380871683526080602084015285518060808501526126438160a0860160208a016125f1565b9416604083015250606081019190915260a0601f909201601f1916010192915050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561268f57600080fd5b61269883612530565b60208401519092506001600160401b03808211156126b557600080fd5b818501915085601f8301126126c957600080fd5b8151818111156126db576126db612666565b604051601f8201601f19908116603f0116810190838211818310171561270357612703612666565b8160405282815288602084870101111561271c57600080fd5b61272d8360208301602088016125f1565b80955050505050509250929050565b6000806040838503121561274f57600080fd5b505080516020909101519092909150565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b6020808252600790820152665245534552564560c81b604082015260600190565b6000602082840312156127be57600080fd5b5051919050565b6000606082840312156127d757600080fd5b604051606081016001600160401b03811182821017156127f9576127f9612666565b60405282518152602083015163ffffffff8116811461281757600080fd5b60208201526040928301519281019290925250919050565b604080825283519082018190526000906020906060840190828701845b828110156128685781518452928401929084019060010161284c565b5050508381038285015284518082528583019183019060005b818110156128a65783516001600160a01b031683529284019291840191600101612881565b5090979650505050505050565b634e487b7160e01b600052603260045260246000fd5b6000600182016128e957634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220658cb228ed216c4b4c76b7032ba7d4e444c5a5816a24e47e8db1e50e6becf3f864736f6c63430008130033", "deployedBytecode": "0x6080604052600436106100435760003560e01c80634cbcfaf41461004f5780635c0d087b146100715780635ee6d77c146100915780637d14c7c7146100b157600080fd5b3661004a57005b600080fd5b34801561005b57600080fd5b5061006f61006a3660046122b7565b6100d1565b005b34801561007d57600080fd5b5061006f61008c366004612328565b610201565b34801561009d57600080fd5b5061006f6100ac3660046123be565b610689565b3480156100bd57600080fd5b5061006f6100cc366004612496565b610c5c565b6001546001600160a01b031633146101045760405162461bcd60e51b81526004016100fb906124f2565b60405180910390fd5b61010d85611227565b6001600160a01b038416156101fa57610128858585846116c2565b60005460025460405163039de01d60e01b81526001600160a01b039283169263039de01d9261015f92879290911690600401612516565b6020604051808303816000875af115801561017e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101a29190612545565b6101fa5760405162461bcd60e51b8152602060048201526024808201527f756e7265676973746572696e67206f6c642046756e644d616e616765722066616044820152631a5b195960e21b60648201526084016100fb565b5050505050565b6001546001600160a01b0316331461022b5760405162461bcd60e51b81526004016100fb906124f2565b6001600160a01b0383161561030c5760005460025460405163039de01d60e01b81526001600160a01b039283169263039de01d9261027192889290911690600401612516565b6020604051808303816000875af1158015610290573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b49190612545565b61030c5760405162461bcd60e51b8152602060048201526024808201527f756e7265676973746572696e6720736368656d655265676973747261722066616044820152631a5b195960e21b60648201526084016100fb565b6001600160a01b038216156103ec5760005460025460405163039de01d60e01b81526001600160a01b039283169263039de01d9261035292879290911690600401612516565b6020604051808303816000875af1158015610371573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103959190612545565b6103ec5760405162461bcd60e51b815260206004820152602260248201527f756e7265676973746572696e672075706772616465536368656d65206661696c604482015261195960f21b60648201526084016100fb565b6000805460025460405163e869d45f60e01b81526001600160a01b039283169363e869d45f9361042a938793601f60e01b9290911690600401612567565b6020604051808303816000875af1158015610449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046d9190612545565b6104ca5760405162461bcd60e51b815260206004820152602860248201527f7265676973746572696e6720636f6d706f756e64566f74696e674d616368696e604482015267194819985a5b195960c21b60648201526084016100fb565b6000805460015460025460405163e869d45f60e01b81526001600160a01b039384169463e869d45f9461050e948116939192601f60e01b9290911690600401612567565b6020604051808303816000875af115801561052d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105519190612545565b6105ac5760405162461bcd60e51b815260206004820152602660248201527f7265676973746572696e6720676f7665726e616e6365206661696c736166652060448201526519985a5b195960d21b60648201526084016100fb565b600054600254604051636c525b1360e01b81526001600160a01b0392831692636c525b13926105e09291169060040161259c565b6020604051808303816000875af11580156105ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106239190612545565b61067b5760405162461bcd60e51b8152602060048201526024808201527f756e7265676973746572696e672070726f746f636f6c757067726164652066616044820152631a5b195960e21b60648201526084016100fb565b6001546001600160a01b0316ff5b6001546001600160a01b031633146106b35760405162461bcd60e51b81526004016100fb906124f2565b8685146106f45760405162461bcd60e51b815260206004820152600f60248201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b60448201526064016100fb565b82811461073d5760405162461bcd60e51b81526020600482015260176024820152760e6e8c2d6d2dcce40d8cadccee8d040dad2e6dac2e8c6d604b1b60448201526064016100fb565b6107ab8989898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b918291850190849080828437600092019190915250611e4592505050565b6108198985858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250611f7792505050565b60005460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526001600160a01b039182169163e869d45f91908c169063bf40fac190606401602060405180830381865afa158015610884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a891906125b0565b6002546040516001600160e01b031960e085901b1681526108df9291600091600160e01b916001600160a01b031690600401612567565b6020604051808303816000875af11580156108fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109229190612545565b61096c5760405162461bcd60e51b815260206004820152601b60248201527a1c9959da5cdd195c9a5b99c81259195b9d1a5d1e4819985a5b1959602a1b60448201526064016100fb565b60405163bf40fac160e01b81526000906001600160a01b038b169063bf40fac190610999906004016125cd565b602060405180830381865afa1580156109b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109da91906125b0565b6001600160a01b0316634b75f54f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b91906125b0565b600054600254604051639be2faed60e01b81529293506001600160a01b0391821692639be2faed92610a74928692911690600401612516565b602060405180830381865afa158015610a91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab59190612545565b15610c505760005460405163bf40fac160e01b81526001600160a01b039182169163039de01d91908d169063bf40fac190610af2906004016125cd565b602060405180830381865afa158015610b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3391906125b0565b6001600160a01b0316634b75f54f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9491906125b0565b6002546040516001600160e01b031960e085901b168152610bc292916001600160a01b031690600401612516565b6020604051808303816000875af1158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c059190612545565b610c505760405162461bcd60e51b815260206004820152601c60248201527b1d5b9c9959da5cdd195c9a5b99c8199bdc9b5d5b184819985a5b195960221b60448201526064016100fb565b50505050505050505050565b6001546001600160a01b03163314610c865760405162461bcd60e51b81526004016100fb906124f2565b600080546040805160048082526024820183526020820180516001600160e01b0316633bef870760e21b17905260025492516368db844d60e11b81526060946001600160a01b039081169463d1b7089a94610cec948c9491939290921691899101612615565b6000604051808303816000875af1158015610d0b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d33919081019061267c565b909250905081610d935760405162461bcd60e51b815260206004820152602560248201527f43616c6c696e67206f6c64446f6e6174696f6e5374616b696e6720656e642066604482015264185a5b195960da1b60648201526084016100fb565b60008082806020019051810190610daa919061273c565b60005460405163bf40fac160e01b815260206004820152600360248201526244414960e81b60448201529294509092506001600160a01b039081169163b9a04cdd918b169063bf40fac190606401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906125b0565b6002546040516001600160e01b031960e085901b168152610e6b92918b9188916001600160a01b031690600401612760565b6020604051808303816000875af1158015610e8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eae9190612545565b935083610f0e5760405162461bcd60e51b815260206004820152602860248201527f43616c6c696e67204441492065787465726e616c546f6b656e5472616e7366656044820152671c8819985a5b195960c21b60648201526084016100fb565b8015610fe8576000546002546040516331a4b2ed60e11b8152600481018490523060248201526001600160a01b03918216604482015291169063634965da906064016020604051808303816000875af1158015610f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f939190612545565b935083610fde5760405162461bcd60e51b815260206004820152601960248201527810d85b1b1a5b99c8081cd95b99115d1a195c8819985a5b1959603a1b60448201526064016100fb565b610fe88682612184565b856001600160a01b031663b678ce7b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561102357600080fd5b505af1158015611037573d6000803e3d6000fd5b5050600080546040805160048082526024820183526020820180516001600160e01b0316633bef870760e21b17905260025492516368db844d60e11b81526001600160a01b03948516975063d1b7089a965061109c958d959394909316929101612615565b6000604051808303816000875af11580156110bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e3919081019061267c565b9094509250836111455760405162461bcd60e51b815260206004820152602760248201527f43616c6c696e67206f6c642053696d706c654441495374616b696e6720656e646044820152660819985a5b195960ca1b60648201526084016100fb565b60005460025460405163039de01d60e01b81526001600160a01b039283169263039de01d9261117c928a9290911690600401612516565b6020604051808303816000875af115801561119b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bf9190612545565b61121d5760405162461bcd60e51b815260206004820152602960248201527f756e7265676973746572696e67206f6c642053696d706c654441495374616b696044820152681b99c819985a5b195960ba1b60648201526084016100fb565b5050505050505050565b6000805460405163bf40fac160e01b81526001600160a01b039182169163d1b7089a919085169063bf40fac190611260906004016125cd565b602060405180830381865afa15801561127d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a191906125b0565b60405163bf40fac160e01b81526001600160a01b0386169063bf40fac1906112cb9060040161278b565b602060405180830381865afa1580156112e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130c91906125b0565b60405160240161131c919061259c565b60408051601f198184030181529181526020820180516001600160e01b0316634c1d96ab60e11b179052600254905160e085901b6001600160e01b03191681526113779392916001600160a01b031690600090600401612615565b6000604051808303816000875af1158015611396573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113be919081019061267c565b509050806114095760405162461bcd60e51b815260206004820152601860248201527710d85b1b1a5b99c8185919135a5b9d195c8819985a5b195960421b60448201526064016100fb565b60005460405163bf40fac160e01b81526001600160a01b039182169163d1b7089a919085169063bf40fac190611441906004016125cd565b602060405180830381865afa15801561145e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148291906125b0565b6040805160048082526024820183526020820180516001600160e01b0316639865027560e01b179052600254925160e086901b6001600160e01b03191681526114d994936001600160a01b03169160009101612615565b6000604051808303816000875af11580156114f8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611520919081019061267c565b509050806115705760405162461bcd60e51b815260206004820152601d60248201527f43616c6c696e672072656e6f756e63654d696e746572206661696c656400000060448201526064016100fb565b60005460405163bf40fac160e01b81526001600160a01b039182169163e4537a74919085169063bf40fac1906115a89060040161278b565b602060405180830381865afa1580156115c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e991906125b0565b60025460405160e084901b6001600160e01b03191681526001600160a01b03928316600482015260006024820152911660448201526064016020604051808303816000875af1158015611640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116649190612545565b9050806116be5760405162461bcd60e51b815260206004820152602260248201527f43616c6c696e6720616464476c6f62616c436f6e73747261696e74206661696c604482015261195960f21b60648201526084016100fb565b5050565b60006001600160a01b038216156117f9576000546040516001600160a01b039091169063d1b7089a9086906116fb90869060240161259c565b60408051601f198184030181529181526020820180516001600160e01b0316630336197b60e21b179052600254905160e085901b6001600160e01b03191681526117569392916001600160a01b031690600090600401612615565b6000604051808303816000875af1158015611775573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261179d919081019061267c565b509050806117f95760405162461bcd60e51b815260206004820152602360248201527f63616c6c696e67205265736572766520636f6d70207265636f766572206661696044820152621b195960ea1b60648201526084016100fb565b60405163bf40fac160e01b81526000906001600160a01b0387169063bf40fac19061183f906004016020808252600490820152634344414960e01b604082015260600190565b602060405180830381865afa15801561185c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188091906125b0565b90506000816001600160a01b03166370a08231876040518263ffffffff1660e01b81526004016118b0919061259c565b602060405180830381865afa1580156118cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f191906127ac565b600080546040805160048082526024820183526020820180516001600160e01b0316633bef870760e21b17905260025492516368db844d60e11b81529596506001600160a01b039384169563d1b7089a95611952958e951692909101612615565b6000604051808303816000875af1158015611971573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611999919081019061267c565b509250826119e65760405162461bcd60e51b815260206004820152601a60248201527918d85b1b1a5b99c814995cd95c9d9948195b990819985a5b195960321b60448201526064016100fb565b60405163835bbd5560e01b81526000906001600160a01b0387169063835bbd5590611a1590869060040161259c565b606060405180830381865afa158015611a32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5691906127c5565b60005460405163bf40fac160e01b81529192506001600160a01b039081169163b9a04cdd918691908c169063bf40fac190611a939060040161278b565b602060405180830381865afa158015611ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad491906125b0565b6002546040516001600160e01b031960e086901b168152611b0793929188916001600160a01b0390911690600401612760565b6020604051808303816000875af1158015611b26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4a9190612545565b935083611ba55760405162461bcd60e51b815260206004820152602360248201527f7472616e73666572206364616920746f206e65772072657365727665206661696044820152621b195960ea1b60648201526084016100fb565b60005460405163bf40fac160e01b815260206004820152600c60248201526b26a0a925a2aa2fa6a0a5a2a960a11b60448201526001600160a01b039182169163d1b7089a91908b169063bf40fac190606401602060405180830381865afa158015611c14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3891906125b0565b6040848101518551602087015192516001600160a01b038a1660248201526044810192909252606482015263ffffffff9091166084820152600060a482015260c40160408051601f198184030181529181526020820180516001600160e01b0316638ee090fb60e01b179052600254905160e085901b6001600160e01b0319168152611cd59392916001600160a01b031690600090600401612615565b6000604051808303816000875af1158015611cf4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d1c919081019061267c565b50935083611d7f5760405162461bcd60e51b815260206004820152602a60248201527f63616c6c696e67206d61726b65744d616b657220696e697469616c697a65546f6044820152691ad95b8819985a5b195960b21b60648201526084016100fb565b60005460025460405163039de01d60e01b81526001600160a01b039283169263039de01d92611db6928c9290911690600401612516565b6020604051808303816000875af1158015611dd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df99190612545565b61121d5760405162461bcd60e51b815260206004820181905260248201527f756e7265676973746572696e67206f6c642072657365727665206661696c656460448201526064016100fb565b600080546040516001600160a01b039091169063d1b7089a908690611e70908790879060240161282f565b60408051601f198184030181529181526020820180516001600160e01b0316634ab01f5b60e01b179052600254905160e085901b6001600160e01b0319168152611ecb9392916001600160a01b031690600090600401612615565b6000604051808303816000875af1158015611eea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f12919081019061267c565b50905080611f715760405162461bcd60e51b815260206004820152602660248201527f43616c6c696e67207365744e616d6553657276696365436f6e7472616374732060448201526519985a5b195960d21b60648201526084016100fb565b50505050565b60005b8251811015611f71576000805460405163bf40fac160e01b815260206004820152600c60248201526b232aa7222fa6a0a720a3a2a960a11b60448201526001600160a01b039182169163d1b7089a919088169063bf40fac190606401602060405180830381865afa158015611ff3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201791906125b0565b858581518110612029576120296128b3565b6020026020010151878681518110612043576120436128b3565b602090810291909101015160405160248101929092526001600160a01b031660448201526000606482018190526084820181905260a482015260c40160408051601f198184030181529181526020820180516001600160e01b0316631f1ad8ed60e21b179052600254905160e085901b6001600160e01b03191681526120da9392916001600160a01b031690600090600401612615565b6000604051808303816000875af11580156120f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612121919081019061267c565b509050806121715760405162461bcd60e51b815260206004820181905260248201527f43616c6c696e67207365745374616b696e6752657761726473206661696c656460448201526064016100fb565b508061217c816128c9565b915050611f7a565b804710156121d45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016100fb565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612221576040519150601f19603f3d011682016040523d82523d6000602084013e612226565b606091505b505090508061229a5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c20726044820152791958da5c1a595b9d081b585e481a185d99481c995d995c9d195960321b60648201526084016100fb565b505050565b6001600160a01b03811681146122b457600080fd5b50565b600080600080600060a086880312156122cf57600080fd5b85356122da8161229f565b945060208601356122ea8161229f565b935060408601356122fa8161229f565b9250606086013561230a8161229f565b9150608086013561231a8161229f565b809150509295509295909350565b60008060006060848603121561233d57600080fd5b83356123488161229f565b925060208401356123588161229f565b915060408401356123688161229f565b809150509250925092565b60008083601f84011261238557600080fd5b5081356001600160401b0381111561239c57600080fd5b6020830191508360208260051b85010111156123b757600080fd5b9250929050565b600080600080600080600080600060a08a8c0312156123dc57600080fd5b89356123e78161229f565b985060208a01356001600160401b038082111561240357600080fd5b61240f8d838e01612373565b909a50985060408c013591508082111561242857600080fd5b6124348d838e01612373565b909850965060608c013591508082111561244d57600080fd5b6124598d838e01612373565b909650945060808c013591508082111561247257600080fd5b5061247f8c828d01612373565b915080935050809150509295985092959850929598565b600080600080608085870312156124ac57600080fd5b84356124b78161229f565b935060208501356124c78161229f565b925060408501356124d78161229f565b915060608501356124e78161229f565b939692955090935050565b6020808252600a908201526937b7363c9037bbb732b960b11b604082015260600190565b6001600160a01b0392831681529116602082015260400190565b8051801515811461254057600080fd5b919050565b60006020828403121561255757600080fd5b61256082612530565b9392505050565b6001600160a01b03948516815260208101939093526001600160e01b0319919091166040830152909116606082015260800190565b6001600160a01b0391909116815260200190565b6000602082840312156125c257600080fd5b81516125608161229f565b6020808252600a908201526923a7a7a22227a62620a960b11b604082015260600190565b60005b8381101561260c5781810151838201526020016125f4565b50506000910152565b600060018060a01b0380871683526080602084015285518060808501526126438160a0860160208a016125f1565b9416604083015250606081019190915260a0601f909201601f1916010192915050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561268f57600080fd5b61269883612530565b60208401519092506001600160401b03808211156126b557600080fd5b818501915085601f8301126126c957600080fd5b8151818111156126db576126db612666565b604051601f8201601f19908116603f0116810190838211818310171561270357612703612666565b8160405282815288602084870101111561271c57600080fd5b61272d8360208301602088016125f1565b80955050505050509250929050565b6000806040838503121561274f57600080fd5b505080516020909101519092909150565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b6020808252600790820152665245534552564560c81b604082015260600190565b6000602082840312156127be57600080fd5b5051919050565b6000606082840312156127d757600080fd5b604051606081016001600160401b03811182821017156127f9576127f9612666565b60405282518152602083015163ffffffff8116811461281757600080fd5b60208201526040928301519281019290925250919050565b604080825283519082018190526000906020906060840190828701845b828110156128685781518452928401929084019060010161284c565b5050508381038285015284518082528583019183019060005b818110156128a65783516001600160a01b031683529284019291840191600101612881565b5090979650505050505050565b634e487b7160e01b600052603260045260246000fd5b6000600182016128e957634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220658cb228ed216c4b4c76b7032ba7d4e444c5a5816a24e47e8db1e50e6becf3f864736f6c63430008130033", "linkReferences": {}, "deployedLinkReferences": {} }