test-contracts-sovryn
Version:
Smart contracts for the Sovryn protocol and external integrations.
450 lines (449 loc) • 35.3 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "OriginInvestorsClaim",
"sourceName": "contracts/governance/Vesting/OriginInvestorsClaim.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "vestingRegistryAddress",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "admin",
"type": "address"
}
],
"name": "AdminAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "admin",
"type": "address"
}
],
"name": "AdminRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "investor",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "ClaimTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "investor",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "ClaimVested",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "qty",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "InvestorsAmountsListAppended",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "qty",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "totalAmount",
"type": "uint256"
}
],
"name": "InvestorsAmountsListInitialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"constant": true,
"inputs": [],
"name": "SOVToken",
"outputs": [
{
"internalType": "contract IERC20",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "SOV_VESTING_CLIFF",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_admin",
"type": "address"
}
],
"name": "addAdmin",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "admins",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address[]",
"name": "investors",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "claimAmounts",
"type": "uint256[]"
}
],
"name": "appendInvestorsAmountsList",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "toAddress",
"type": "address"
}
],
"name": "authorizedBalanceWithdraw",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "claim",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "investorsAmountsList",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "investorsListInitialized",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "investorsQty",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "isOwner",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "kickoffTS",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_admin",
"type": "address"
}
],
"name": "removeAdmin",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "setInvestorsAmountsListInitialized",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "staking",
"outputs": [
{
"internalType": "contract Staking",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "vestingRegistry",
"outputs": [
{
"internalType": "contract VestingRegistry",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "vestingTerm",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x60806040523480156200001157600080fd5b5060405162001aff38038062001aff8339810160408190526200003491620002bd565b6000620000496001600160e01b036200028c16565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35080600560016101000a8154816001600160a01b0302191690836001600160a01b03160217905550600560019054906101000a90046001600160a01b03166001600160a01b0316634cf088d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156200010957600080fd5b505afa1580156200011e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620001449190810190620002bd565b600680546001600160a01b0319166001600160a01b0392831617908190556040805162073f9960e01b81529051919092169162073f99916004808301926020929190829003018186803b1580156200019b57600080fd5b505afa158015620001b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620001d6919081019062000307565b6002556006546040805163a58848c560e01b815290516001600160a01b039092169163a58848c591600480820192602092909190829003018186803b1580156200021f57600080fd5b505afa15801562000234573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200025a9190810190620002e6565b600780546001600160a01b0319166001600160a01b03929092169190911790555060025462375f000160035562000381565b3390565b80516200029d8162000351565b92915050565b80516200029d816200036b565b80516200029d8162000376565b600060208284031215620002d057600080fd5b6000620002de848462000290565b949350505050565b600060208284031215620002f957600080fd5b6000620002de8484620002a3565b6000602082840312156200031a57600080fd5b6000620002de8484620002b0565b60006200029d8262000342565b60006200029d8262000328565b6001600160a01b031690565b90565b6200035c8162000328565b81146200036857600080fd5b50565b6200035c8162000335565b6200035c816200034e565b61176e80620003916000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c806369f20aaa116100ad578063904c5b8f11610071578063904c5b8f14610229578063a58848c514610231578063ba176a9a14610239578063f2fde38b14610241578063f706c9dc146102545761012b565b806369f20aaa146101de57806370480275146101f15780637d630fc4146102045780638da5cb5b1461020c5780638f32d59b146102215761012b565b80634cf088d9116100f45780634cf088d91461019e5780634d2dc5f2146101b35780634e71d92d146101bb578063545616ce146101c35780635e28ac64146101d65761012b565b8062073f99146101305780631785f53c1461014e5780631a39d8ef1461016357806326db62ff1461016b578063429b62e51461017e575b600080fd5b61013861025c565b6040516101459190611671565b60405180910390f35b61016161015c366004610f11565b610262565b005b6101386102ea565b610138610179366004610f11565b6102f0565b61019161018c366004610f11565b610302565b6040516101459190611584565b6101a6610317565b6040516101459190611592565b610161610326565b610161610477565b6101616101d1366004610f11565b6104e6565b61013861063c565b6101616101ec366004610f55565b610643565b6101616101ff366004610f11565b61083a565b6101916108b1565b6102146108ba565b6040516101459190611501565b6101916108c9565b6101a66108ed565b6101a6610901565b610138610910565b61016161024f366004610f11565b610916565b610138610943565b60025481565b61026a6108c9565b61028f5760405162461bcd60e51b815260040161028690611631565b60405180910390fd5b6001600160a01b03811660009081526008602052604090819020805460ff19169055517fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f906102df908390611501565b60405180910390a150565b60015481565b60096020526000908152604090205481565b60086020526000908152604090205460ff1681565b6006546001600160a01b031681565b61032e6108c9565b8061034857503360009081526008602052604090205460ff165b6103645760405162461bcd60e51b815260040161028690611661565b60055460ff16156103875760405162461bcd60e51b8152600401610286906115f1565b6001546007546040516370a0823160e01b81526001600160a01b03909116906370a08231906103ba903090600401611501565b60206040518083038186803b1580156103d257600080fd5b505afa1580156103e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061040a9190810190610fe3565b10156104285760405162461bcd60e51b815260040161028690611601565b6005805460ff1916600190811790915560045490546040517f1fa52d395a75695574bb6155ee9601b031a7354ca0e7a079c9e0a92e546a77fd9261046d92909161167f565b60405180910390a1565b336000908152600960205260409020546104a35760405162461bcd60e51b815260040161028690611611565b60055460ff166104c55760405162461bcd60e51b815260040161028690611641565b6003544210156104dc576104d7610949565b6104e4565b6104e4610c7e565b565b6104ee6108c9565b8061050857503360009081526008602052604090205460ff165b6105245760405162461bcd60e51b815260040161028690611661565b6007546040516370a0823160e01b81526001600160a01b039091169063a9059cbb90839083906370a082319061055e903090600401611501565b60206040518083038186803b15801561057657600080fd5b505afa15801561058a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105ae9190810190610fe3565b6040518363ffffffff1660e01b81526004016105cb929190611576565b602060405180830381600087803b1580156105e557600080fd5b505af11580156105f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061061d9190810190610fc5565b6106395760405162461bcd60e51b8152600401610286906115b1565b50565b62375f0081565b61064b6108c9565b8061066557503360009081526008602052604090205460ff165b6106815760405162461bcd60e51b815260040161028690611661565b60055460ff16156106a45760405162461bcd60e51b8152600401610286906115f1565b6000808483146106c65760405162461bcd60e51b815260040161028690611651565b60005b858110156107ae57600960008888848181106106e157fe5b90506020020160206106f69190810190610f11565b6001600160a01b031681526020810191909152604001600020546107925784848281811061072057fe5b905060200201356009600089898581811061073757fe5b905060200201602061074c9190810190610f11565b6001600160a01b0316815260208101919091526040016000205561078b85858381811061077557fe5b9050602002013583610d7690919063ffffffff16565b91506107a6565b6107a383600163ffffffff610d7616565b92505b6001016106c9565b506107d16107c2868463ffffffff610da416565b6004549063ffffffff610d7616565b6004556001546107e7908263ffffffff610d7616565b6001557f166f3ab55781d1f678f4df14776e1927c137c85f5d564fe0294613bf72f49cae61081b868463ffffffff610da416565b8260405161082a92919061167f565b60405180910390a1505050505050565b6108426108c9565b61085e5760405162461bcd60e51b815260040161028690611631565b6001600160a01b03811660009081526008602052604090819020805460ff19166001179055517f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e339906102df908390611501565b60055460ff1681565b6000546001600160a01b031690565b600080546001600160a01b03166108de610de6565b6001600160a01b031614905090565b60055461010090046001600160a01b031681565b6007546001600160a01b031681565b60035481565b61091e6108c9565b61093a5760405162461bcd60e51b815260040161028690611631565b61063981610dea565b60045481565b60035460009061095f904263ffffffff610da416565b3360008181526009602052604080822054600554915163cc49ede760e01b8152949550859490936101009092046001600160a01b03169163cc49ede7916109a9919060040161150f565b60206040518083038186803b1580156109c157600080fd5b505afa1580156109d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109f99190810190610f37565b90506001600160a01b03811615610a225760405162461bcd60e51b8152600401610286906115e1565b33600081815260096020526040808220919091556005549051630665a06f60e01b81526101009091046001600160a01b031691630665a06f91610a6e9190869089908990600401611538565b600060405180830381600087803b158015610a8857600080fd5b505af1158015610a9c573d6000803e3d6000fd5b505060055460405163cc49ede760e01b81526101009091046001600160a01b0316925063cc49ede79150610ad490339060040161150f565b60206040518083038186803b158015610aec57600080fd5b505afa158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b249190810190610f37565b60075460055460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb92610b6192610100900416908690600401611576565b602060405180830381600087803b158015610b7b57600080fd5b505af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bb39190810190610fc5565b610bcf5760405162461bcd60e51b815260040161028690611621565b600554604051633cd41fad60e11b81526101009091046001600160a01b0316906379a83f5a90610c059084908690600401611576565b600060405180830381600087803b158015610c1f57600080fd5b505af1158015610c33573d6000803e3d6000fd5b50505050336001600160a01b03167f5b97b27a688ddcf7531a6e5c0fe38f0e819cabb30e7329972f8bca443e8a546d83604051610c709190611671565b60405180910390a250505050565b336000818152600960205260408082208054929055600754905163a9059cbb60e01b815291926001600160a01b039091169163a9059cbb91610cc491859060040161151d565b602060405180830381600087803b158015610cde57600080fd5b505af1158015610cf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d169190810190610fc5565b610d325760405162461bcd60e51b815260040161028690611621565b336001600160a01b03167f3144e62e87c82d8af6ec288b3c120e568b1c9c642b26754f9dbf25506d0cd85b82604051610d6b9190611671565b60405180910390a250565b600082820183811015610d9b5760405162461bcd60e51b8152600401610286906115d1565b90505b92915050565b6000610d9b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e6b565b3390565b6001600160a01b038116610e105760405162461bcd60e51b8152600401610286906115c1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008184841115610e8f5760405162461bcd60e51b815260040161028691906115a0565b50508183035b9392505050565b8035610d9e81611705565b8051610d9e81611705565b60008083601f840112610ec457600080fd5b50813567ffffffffffffffff811115610edc57600080fd5b602083019150836020820283011115610ef457600080fd5b9250929050565b8051610d9e81611719565b8051610d9e81611722565b600060208284031215610f2357600080fd5b6000610f2f8484610e9c565b949350505050565b600060208284031215610f4957600080fd5b6000610f2f8484610ea7565b60008060008060408587031215610f6b57600080fd5b843567ffffffffffffffff811115610f8257600080fd5b610f8e87828801610eb2565b9450945050602085013567ffffffffffffffff811115610fad57600080fd5b610fb987828801610eb2565b95989497509550505050565b600060208284031215610fd757600080fd5b6000610f2f8484610efb565b600060208284031215610ff557600080fd5b6000610f2f8484610f06565b61100a816116b9565b82525050565b61100a8161169a565b61100a816116a5565b61100a816116c0565b60006110368261168d565b6110408185611691565b93506110508185602086016116cb565b611059816116fb565b9093019392505050565b6000611070604083611691565b7f4f726967696e496e766573746f7273436c61696d3a3a617574686f72697a656481527f5472616e7366657242616c616e63653a207472616e73666572206661696c6564602082015260400192915050565b60006110cf602683611691565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015260400192915050565b6000611117601b83611691565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000611150604a83611691565b7f4f726967696e496e766573746f7273436c61696d3a3a77697468647261773a2081527f74686520636c61696d65722068617320616e206163746976652076657374696e60208201526919c818dbdb9d1c9858dd60b21b604082015260600192915050565b60006111c2605983611691565b7f4f726967696e496e766573746f7273436c61696d3a3a6e6f74496e697469616c81527f697a65643a2074686520696e766573746f7273206c6973742073686f756c642060208201527f6e6f742062652073657420617320696e697469616c697a656400000000000000604082015260600192915050565b6000611247605283611691565b7f4f726967696e496e766573746f7273436c61696d3a3a736574496e766573746f81527f7273416d6f756e74734c6973743a2074686520636f6e7472616374206973206e6020820152711bdd08195b9bdd59da08199a5b985b98d95960721b604082015260600192915050565b60006112c1604983611691565b7f4f726967696e496e766573746f7273436c61696d3a3a6f6e6c7957686974656c81527f69737465643a206e6f742077686974656c6973746564206f7220616c726561646020820152681e4818db185a5b595960ba1b604082015260600192915050565b6000611332603383611691565b7f4f726967696e496e766573746f7273436c61696d3a3a77697468647261773a2081527214d3d5881d1c985b9cd9995c8819985a5b1959606a1b602082015260400192915050565b6000611387600c83611691565b6b1d5b985d5d1a1bdc9a5e995960a21b815260200192915050565b60006113af604a83611691565b7f4f726967696e496e766573746f7273436c61696d3a3a696e697469616c697a6581527f643a2074686520696e766573746f7273206c69737420686173206e6f74206265602082015269195b881cd95d081e595d60b21b604082015260600192915050565b6000611421605983611691565b7f4f726967696e496e766573746f7273436c61696d3a3a617070656e64496e766581527f73746f7273416d6f756e74734c6973743a20696e766573746f72732e6c656e6760208201527f746820213d20636c61696d416d6f756e74732e6c656e67746800000000000000604082015260600192915050565b60006114a6603a83611691565b7f4f726967696e496e766573746f7273436c61696d3a3a6f6e6c79417574686f7281527f697a65643a2073686f756c6420626520617574686f72697a6564000000000000602082015260400192915050565b61100a816116b6565b60208101610d9e8284611010565b60208101610d9e8284611001565b6040810161152b8285611001565b610e9560208301846114f8565b608081016115468287611001565b61155360208301866114f8565b61156060408301856114f8565b61156d60608301846114f8565b95945050505050565b6040810161152b8285611010565b60208101610d9e8284611019565b60208101610d9e8284611022565b60208082528101610d9b818461102b565b60208082528101610d9e81611063565b60208082528101610d9e816110c2565b60208082528101610d9e8161110a565b60208082528101610d9e81611143565b60208082528101610d9e816111b5565b60208082528101610d9e8161123a565b60208082528101610d9e816112b4565b60208082528101610d9e81611325565b60208082528101610d9e8161137a565b60208082528101610d9e816113a2565b60208082528101610d9e81611414565b60208082528101610d9e81611499565b60208101610d9e82846114f8565b6040810161152b82856114f8565b5190565b90815260200190565b6000610d9e826116aa565b151590565b6001600160a01b031690565b90565b6000610d9e825b6000610d9e8261169a565b60005b838110156116e65781810151838201526020016116ce565b838111156116f5576000848401525b50505050565b601f01601f191690565b61170e8161169a565b811461063957600080fd5b61170e816116a5565b61170e816116b656fea365627a7a72315820d29c4de2736c69b9ea2a1af021e3170f1a69459742134b3d0218e52a841578af6c6578706572696d656e74616cf564736f6c63430005110040",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012b5760003560e01c806369f20aaa116100ad578063904c5b8f11610071578063904c5b8f14610229578063a58848c514610231578063ba176a9a14610239578063f2fde38b14610241578063f706c9dc146102545761012b565b806369f20aaa146101de57806370480275146101f15780637d630fc4146102045780638da5cb5b1461020c5780638f32d59b146102215761012b565b80634cf088d9116100f45780634cf088d91461019e5780634d2dc5f2146101b35780634e71d92d146101bb578063545616ce146101c35780635e28ac64146101d65761012b565b8062073f99146101305780631785f53c1461014e5780631a39d8ef1461016357806326db62ff1461016b578063429b62e51461017e575b600080fd5b61013861025c565b6040516101459190611671565b60405180910390f35b61016161015c366004610f11565b610262565b005b6101386102ea565b610138610179366004610f11565b6102f0565b61019161018c366004610f11565b610302565b6040516101459190611584565b6101a6610317565b6040516101459190611592565b610161610326565b610161610477565b6101616101d1366004610f11565b6104e6565b61013861063c565b6101616101ec366004610f55565b610643565b6101616101ff366004610f11565b61083a565b6101916108b1565b6102146108ba565b6040516101459190611501565b6101916108c9565b6101a66108ed565b6101a6610901565b610138610910565b61016161024f366004610f11565b610916565b610138610943565b60025481565b61026a6108c9565b61028f5760405162461bcd60e51b815260040161028690611631565b60405180910390fd5b6001600160a01b03811660009081526008602052604090819020805460ff19169055517fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f906102df908390611501565b60405180910390a150565b60015481565b60096020526000908152604090205481565b60086020526000908152604090205460ff1681565b6006546001600160a01b031681565b61032e6108c9565b8061034857503360009081526008602052604090205460ff165b6103645760405162461bcd60e51b815260040161028690611661565b60055460ff16156103875760405162461bcd60e51b8152600401610286906115f1565b6001546007546040516370a0823160e01b81526001600160a01b03909116906370a08231906103ba903090600401611501565b60206040518083038186803b1580156103d257600080fd5b505afa1580156103e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061040a9190810190610fe3565b10156104285760405162461bcd60e51b815260040161028690611601565b6005805460ff1916600190811790915560045490546040517f1fa52d395a75695574bb6155ee9601b031a7354ca0e7a079c9e0a92e546a77fd9261046d92909161167f565b60405180910390a1565b336000908152600960205260409020546104a35760405162461bcd60e51b815260040161028690611611565b60055460ff166104c55760405162461bcd60e51b815260040161028690611641565b6003544210156104dc576104d7610949565b6104e4565b6104e4610c7e565b565b6104ee6108c9565b8061050857503360009081526008602052604090205460ff165b6105245760405162461bcd60e51b815260040161028690611661565b6007546040516370a0823160e01b81526001600160a01b039091169063a9059cbb90839083906370a082319061055e903090600401611501565b60206040518083038186803b15801561057657600080fd5b505afa15801561058a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105ae9190810190610fe3565b6040518363ffffffff1660e01b81526004016105cb929190611576565b602060405180830381600087803b1580156105e557600080fd5b505af11580156105f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061061d9190810190610fc5565b6106395760405162461bcd60e51b8152600401610286906115b1565b50565b62375f0081565b61064b6108c9565b8061066557503360009081526008602052604090205460ff165b6106815760405162461bcd60e51b815260040161028690611661565b60055460ff16156106a45760405162461bcd60e51b8152600401610286906115f1565b6000808483146106c65760405162461bcd60e51b815260040161028690611651565b60005b858110156107ae57600960008888848181106106e157fe5b90506020020160206106f69190810190610f11565b6001600160a01b031681526020810191909152604001600020546107925784848281811061072057fe5b905060200201356009600089898581811061073757fe5b905060200201602061074c9190810190610f11565b6001600160a01b0316815260208101919091526040016000205561078b85858381811061077557fe5b9050602002013583610d7690919063ffffffff16565b91506107a6565b6107a383600163ffffffff610d7616565b92505b6001016106c9565b506107d16107c2868463ffffffff610da416565b6004549063ffffffff610d7616565b6004556001546107e7908263ffffffff610d7616565b6001557f166f3ab55781d1f678f4df14776e1927c137c85f5d564fe0294613bf72f49cae61081b868463ffffffff610da416565b8260405161082a92919061167f565b60405180910390a1505050505050565b6108426108c9565b61085e5760405162461bcd60e51b815260040161028690611631565b6001600160a01b03811660009081526008602052604090819020805460ff19166001179055517f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e339906102df908390611501565b60055460ff1681565b6000546001600160a01b031690565b600080546001600160a01b03166108de610de6565b6001600160a01b031614905090565b60055461010090046001600160a01b031681565b6007546001600160a01b031681565b60035481565b61091e6108c9565b61093a5760405162461bcd60e51b815260040161028690611631565b61063981610dea565b60045481565b60035460009061095f904263ffffffff610da416565b3360008181526009602052604080822054600554915163cc49ede760e01b8152949550859490936101009092046001600160a01b03169163cc49ede7916109a9919060040161150f565b60206040518083038186803b1580156109c157600080fd5b505afa1580156109d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109f99190810190610f37565b90506001600160a01b03811615610a225760405162461bcd60e51b8152600401610286906115e1565b33600081815260096020526040808220919091556005549051630665a06f60e01b81526101009091046001600160a01b031691630665a06f91610a6e9190869089908990600401611538565b600060405180830381600087803b158015610a8857600080fd5b505af1158015610a9c573d6000803e3d6000fd5b505060055460405163cc49ede760e01b81526101009091046001600160a01b0316925063cc49ede79150610ad490339060040161150f565b60206040518083038186803b158015610aec57600080fd5b505afa158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b249190810190610f37565b60075460055460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb92610b6192610100900416908690600401611576565b602060405180830381600087803b158015610b7b57600080fd5b505af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bb39190810190610fc5565b610bcf5760405162461bcd60e51b815260040161028690611621565b600554604051633cd41fad60e11b81526101009091046001600160a01b0316906379a83f5a90610c059084908690600401611576565b600060405180830381600087803b158015610c1f57600080fd5b505af1158015610c33573d6000803e3d6000fd5b50505050336001600160a01b03167f5b97b27a688ddcf7531a6e5c0fe38f0e819cabb30e7329972f8bca443e8a546d83604051610c709190611671565b60405180910390a250505050565b336000818152600960205260408082208054929055600754905163a9059cbb60e01b815291926001600160a01b039091169163a9059cbb91610cc491859060040161151d565b602060405180830381600087803b158015610cde57600080fd5b505af1158015610cf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d169190810190610fc5565b610d325760405162461bcd60e51b815260040161028690611621565b336001600160a01b03167f3144e62e87c82d8af6ec288b3c120e568b1c9c642b26754f9dbf25506d0cd85b82604051610d6b9190611671565b60405180910390a250565b600082820183811015610d9b5760405162461bcd60e51b8152600401610286906115d1565b90505b92915050565b6000610d9b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e6b565b3390565b6001600160a01b038116610e105760405162461bcd60e51b8152600401610286906115c1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008184841115610e8f5760405162461bcd60e51b815260040161028691906115a0565b50508183035b9392505050565b8035610d9e81611705565b8051610d9e81611705565b60008083601f840112610ec457600080fd5b50813567ffffffffffffffff811115610edc57600080fd5b602083019150836020820283011115610ef457600080fd5b9250929050565b8051610d9e81611719565b8051610d9e81611722565b600060208284031215610f2357600080fd5b6000610f2f8484610e9c565b949350505050565b600060208284031215610f4957600080fd5b6000610f2f8484610ea7565b60008060008060408587031215610f6b57600080fd5b843567ffffffffffffffff811115610f8257600080fd5b610f8e87828801610eb2565b9450945050602085013567ffffffffffffffff811115610fad57600080fd5b610fb987828801610eb2565b95989497509550505050565b600060208284031215610fd757600080fd5b6000610f2f8484610efb565b600060208284031215610ff557600080fd5b6000610f2f8484610f06565b61100a816116b9565b82525050565b61100a8161169a565b61100a816116a5565b61100a816116c0565b60006110368261168d565b6110408185611691565b93506110508185602086016116cb565b611059816116fb565b9093019392505050565b6000611070604083611691565b7f4f726967696e496e766573746f7273436c61696d3a3a617574686f72697a656481527f5472616e7366657242616c616e63653a207472616e73666572206661696c6564602082015260400192915050565b60006110cf602683611691565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015260400192915050565b6000611117601b83611691565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000611150604a83611691565b7f4f726967696e496e766573746f7273436c61696d3a3a77697468647261773a2081527f74686520636c61696d65722068617320616e206163746976652076657374696e60208201526919c818dbdb9d1c9858dd60b21b604082015260600192915050565b60006111c2605983611691565b7f4f726967696e496e766573746f7273436c61696d3a3a6e6f74496e697469616c81527f697a65643a2074686520696e766573746f7273206c6973742073686f756c642060208201527f6e6f742062652073657420617320696e697469616c697a656400000000000000604082015260600192915050565b6000611247605283611691565b7f4f726967696e496e766573746f7273436c61696d3a3a736574496e766573746f81527f7273416d6f756e74734c6973743a2074686520636f6e7472616374206973206e6020820152711bdd08195b9bdd59da08199a5b985b98d95960721b604082015260600192915050565b60006112c1604983611691565b7f4f726967696e496e766573746f7273436c61696d3a3a6f6e6c7957686974656c81527f69737465643a206e6f742077686974656c6973746564206f7220616c726561646020820152681e4818db185a5b595960ba1b604082015260600192915050565b6000611332603383611691565b7f4f726967696e496e766573746f7273436c61696d3a3a77697468647261773a2081527214d3d5881d1c985b9cd9995c8819985a5b1959606a1b602082015260400192915050565b6000611387600c83611691565b6b1d5b985d5d1a1bdc9a5e995960a21b815260200192915050565b60006113af604a83611691565b7f4f726967696e496e766573746f7273436c61696d3a3a696e697469616c697a6581527f643a2074686520696e766573746f7273206c69737420686173206e6f74206265602082015269195b881cd95d081e595d60b21b604082015260600192915050565b6000611421605983611691565b7f4f726967696e496e766573746f7273436c61696d3a3a617070656e64496e766581527f73746f7273416d6f756e74734c6973743a20696e766573746f72732e6c656e6760208201527f746820213d20636c61696d416d6f756e74732e6c656e67746800000000000000604082015260600192915050565b60006114a6603a83611691565b7f4f726967696e496e766573746f7273436c61696d3a3a6f6e6c79417574686f7281527f697a65643a2073686f756c6420626520617574686f72697a6564000000000000602082015260400192915050565b61100a816116b6565b60208101610d9e8284611010565b60208101610d9e8284611001565b6040810161152b8285611001565b610e9560208301846114f8565b608081016115468287611001565b61155360208301866114f8565b61156060408301856114f8565b61156d60608301846114f8565b95945050505050565b6040810161152b8285611010565b60208101610d9e8284611019565b60208101610d9e8284611022565b60208082528101610d9b818461102b565b60208082528101610d9e81611063565b60208082528101610d9e816110c2565b60208082528101610d9e8161110a565b60208082528101610d9e81611143565b60208082528101610d9e816111b5565b60208082528101610d9e8161123a565b60208082528101610d9e816112b4565b60208082528101610d9e81611325565b60208082528101610d9e8161137a565b60208082528101610d9e816113a2565b60208082528101610d9e81611414565b60208082528101610d9e81611499565b60208101610d9e82846114f8565b6040810161152b82856114f8565b5190565b90815260200190565b6000610d9e826116aa565b151590565b6001600160a01b031690565b90565b6000610d9e825b6000610d9e8261169a565b60005b838110156116e65781810151838201526020016116ce565b838111156116f5576000848401525b50505050565b601f01601f191690565b61170e8161169a565b811461063957600080fd5b61170e816116a5565b61170e816116b656fea365627a7a72315820d29c4de2736c69b9ea2a1af021e3170f1a69459742134b3d0218e52a841578af6c6578706572696d656e74616cf564736f6c63430005110040",
"linkReferences": {},
"deployedLinkReferences": {}
}