UNPKG

@perp/curie-deployments

Version:

Perpetual Protocol Curie (v2) contract artifacts (ABIs) and deployed addresses

602 lines (601 loc) 45.2 kB
{ "_format": "hh-sol-artifact-1", "contractName": "vePERPRewardDistributor", "sourceName": "contracts/vePERPRewardDistributor.sol", "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "week", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "totalAllocation", "type": "uint256" } ], "name": "AllocationSeeded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_claimant", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_balance", "type": "uint256" } ], "name": "Claimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "MinLockDurationChanged", "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" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldValue", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newValue", "type": "address" } ], "name": "RewardDelegateChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldValue", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newValue", "type": "address" } ], "name": "VePERPChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "claimant", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "week", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "balance", "type": "uint256" } ], "name": "VePERPClaimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "claimant", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "week", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "balance", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" } ], "name": "VePERPClaimedV2", "type": "event" }, { "inputs": [], "name": "candidate", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_liquidityProvider", "type": "address" }, { "internalType": "uint256", "name": "_begin", "type": "uint256" }, { "internalType": "uint256", "name": "_end", "type": "uint256" } ], "name": "claimStatus", "outputs": [ { "internalType": "bool[]", "name": "", "type": "bool[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "liquidityProvider", "type": "address" }, { "internalType": "uint256", "name": "week", "type": "uint256" }, { "internalType": "uint256", "name": "claimedBalance", "type": "uint256" }, { "internalType": "bytes32[]", "name": "merkleProof", "type": "bytes32[]" } ], "name": "claimWeek", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "liquidityProvider", "type": "address" }, { "components": [ { "internalType": "uint256", "name": "week", "type": "uint256" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "bytes32[]", "name": "merkleProof", "type": "bytes32[]" } ], "internalType": "struct IMerkleRedeem.Claim[]", "name": "claims", "type": "tuple[]" } ], "name": "claimWeeks", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "claimed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getLengthOfMerkleRoots", "outputs": [ { "internalType": "uint256", "name": "length", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMinLockDuration", "outputs": [ { "internalType": "uint256", "name": "minLockDuration", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getRewardDelegate", "outputs": [ { "internalType": "address", "name": "rewardDelegate", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getVePerp", "outputs": [ { "internalType": "address", "name": "vePERP", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenArg", "type": "address" }, { "internalType": "address", "name": "vePERPArg", "type": "address" }, { "internalType": "address", "name": "rewardDelegateArg", "type": "address" }, { "internalType": "uint256", "name": "minLockDurationArg", "type": "uint256" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "merkleRootIndexes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_begin", "type": "uint256" }, { "internalType": "uint256", "name": "_end", "type": "uint256" } ], "name": "merkleRoots", "outputs": [ { "internalType": "bytes32[]", "name": "", "type": "bytes32[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "week", "type": "uint256" }, { "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" }, { "internalType": "uint256", "name": "totalAllocation", "type": "uint256" } ], "name": "seedAllocations", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "minLockDurationArg", "type": "uint256" } ], "name": "setMinLockDuration", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "setOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "rewardDelegateArg", "type": "address" } ], "name": "setRewardDelegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "vePERPArg", "type": "address" } ], "name": "setVePERP", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "updateOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_liquidityProvider", "type": "address" }, { "internalType": "uint256", "name": "_week", "type": "uint256" }, { "internalType": "uint256", "name": "_claimedBalance", "type": "uint256" }, { "internalType": "bytes32[]", "name": "_merkleProof", "type": "bytes32[]" } ], "name": "verifyClaim", "outputs": [ { "internalType": "bool", "name": "valid", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "weekMerkleRoots", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50611f7a806100206000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063cf756fdf1161007c578063cf756fdf14610289578063da9012a81461029c578063dd8c9c9d146102a4578063eb0d07f5146102b7578063ef2245db146102ca578063f373579f146102dd5761014d565b8063715018a6146102435780638da5cb5b1461024b578063afd7babe14610253578063bc5920ba1461025b578063c74ed2fe14610263578063c804c39a146102765761014d565b806347fb23c11161011557806347fb23c1146101da5780634cd488ab146101fa57806358b4e4b41461020d578063612b2783146102205780636c8381f81461022857806370322919146102305761014d565b8063120aa8771461015257806313af40351461017b57806321df0da71461019057806339144f50146101a557806339436b00146101ba575b600080fd5b610165610160366004611ab2565b6102f0565b6040516101729190611c38565b60405180910390f35b61018e6101893660046117ff565b610310565b005b610198610465565b6040516101729190611b4f565b6101ad610474565b6040516101729190611c43565b6101cd6101c8366004611b0c565b61047a565b6040516101729190611c00565b6101ed6101e83660046118f2565b61050f565b6040516101729190611bba565b61018e610208366004611ae1565b6105c4565b61018e61021b366004611926565b610697565b610198610890565b61019861089f565b61018e61023e3660046117ff565b6108ae565b61018e61098f565b610198610a39565b6101ad610a48565b61018e610a4e565b61018e610271366004611a82565b610b4f565b61018e610284366004611872565b610bdd565b61018e610297366004611822565b610e70565b610198610fef565b6101ad6102b2366004611a82565b610ffe565b6101656102c536600461198e565b611010565b61018e6102d83660046117ff565b611066565b6101ad6102eb366004611a82565b61113b565b606860209081526000928352604080842090915290825290205460ff1681565b61031861115c565b6033546001600160a01b039081169116146103645760405162461bcd60e51b815260040180806020018281038252602d815260200180611ef2602d913960400191505060405180910390fd5b6001600160a01b0381166103a95760405162461bcd60e51b8152600401808060200182810382526022815260200180611ea16022913960400191505060405180910390fd5b6033546001600160a01b03828116911614156103f65760405162461bcd60e51b8152600401808060200182810382526026815260200180611f1f6026913960400191505060405180910390fd5b6034546001600160a01b03828116911614156104435760405162461bcd60e51b8152600401808060200182810382526027815260200180611e256027913960400191505060405180910390fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b6069546001600160a01b031690565b609c5490565b606082820360010160008167ffffffffffffffff8111801561049b57600080fd5b506040519080825280602002602001820160405280156104c5578160200160208202803683370190505b50905060005b828110156105065785810160009081526067602052604090205482518390839081106104f357fe5b60209081029190910101526001016104cb565b50949350505050565b606082820360010160008167ffffffffffffffff8111801561053057600080fd5b5060405190808252806020026020018201604052801561055a578160200160208202803683370190505b50905060005b828110156105ba5785810160009081526068602090815260408083206001600160a01b038b168452909152902054825160ff909116908390839081106105a257fe5b91151560209283029190910190910152600101610560565b5095945050505050565b6105cc61115c565b6033546001600160a01b039081169116146106185760405162461bcd60e51b815260040180806020018281038252602d815260200180611ef2602d913960400191505060405180910390fd5b610623838383611160565b609c80546001810182556000919091527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c0183905560405183907f18cb1239682d2af2092e17254088c13786b0462404406e52259b4a1c76f8b05c9061068a908490611c43565b60405180910390a2505050565b8460006106a382611245565b609e5460405163adc6358960e01b815291925062093a804281900402916000916001600160a01b03169063adc63589906106e1908690600401611b4f565b60206040518083038186803b1580156106f957600080fd5b505afa15801561070d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107319190611a9a565b9050609d5482018110156107605760405162461bcd60e51b815260040161075790611cfd565b60405180910390fd5b60008881526068602090815260408083206001600160a01b038d16845290915290205460ff16156107a35760405162461bcd60e51b815260040161075790611c70565b6107e289898989898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061101092505050565b6107fe5760405162461bcd60e51b815260040161075790611cda565b60008881526068602090815260408083206001600160a01b038d1684529091528120805460ff191660011790556108348a611245565b905061084081896112cc565b888a6001600160a01b03167fc3d028d1e317e98aa049b863b56fcaded41c339456705128dc06d3f9b005ad748a8460405161087c929190611d84565b60405180910390a350505050505050505050565b609f546001600160a01b031690565b6034546001600160a01b031690565b6108b661115c565b6033546001600160a01b039081169116146109025760405162461bcd60e51b815260040180806020018281038252602d815260200180611ef2602d913960400191505060405180910390fd5b610914816001600160a01b031661133b565b6109305760405162461bcd60e51b815260040161075790611cb5565b609e80546001600160a01b038381166001600160a01b03198316179092556040519116907ff3416fe124f3c6997459cb6f8374dac04d92adf756db70f755e3daf86ec5527d906109839083908590611b87565b60405180910390a15050565b61099761115c565b6033546001600160a01b039081169116146109e35760405162461bcd60e51b815260040180806020018281038252602d815260200180611ef2602d913960400191505060405180910390fd5b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319908116909155603480549091169055565b6033546001600160a01b031690565b609d5490565b6034546001600160a01b0316610a955760405162461bcd60e51b815260040180806020018281038252602f815260200180611ec3602f913960400191505060405180910390fd5b610a9d61115c565b6034546001600160a01b03908116911614610ae95760405162461bcd60e51b8152600401808060200182810382526027815260200180611e4c6027913960400191505060405180910390fd5b6034546033546040516001600160a01b0392831692909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b610b5761115c565b6033546001600160a01b03908116911614610ba35760405162461bcd60e51b815260040180806020018281038252602d815260200180611ef2602d913960400191505060405180910390fd5b609d8054908290556040517fd9d92baa8750d424c48af09b5e42da95954bc7988ad26c501b76619b07890a42906109839083908590611d9b565b826000610be982611245565b609e5460405163adc6358960e01b815291925062093a804281900402916000916001600160a01b03169063adc6358990610c27908690600401611b4f565b60206040518083038186803b158015610c3f57600080fd5b505afa158015610c53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c779190611a9a565b9050609d548201811015610c9d5760405162461bcd60e51b815260040161075790611cfd565b6000853682610cab8b611245565b905060005b83811015610e58578a8a82818110610cc457fe5b9050602002810190610cd69190611df0565b9250606860008460000135815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a900460ff1615610d3d5760405162461bcd60e51b815260040161075790611c70565b610d8c8c84356020860135610d556040880188611da9565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061101092505050565b610da85760405162461bcd60e51b815260040161075790611cda565b8260200135850194506001606860008560000135815260200190815260200160002060008e6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff02191690831515021790555082600001358c6001600160a01b03167fc3d028d1e317e98aa049b863b56fcaded41c339456705128dc06d3f9b005ad74856020013585604051610e48929190611d84565b60405180910390a3600101610cb0565b50610e6381856112cc565b5050505050505050505050565b600054610100900460ff1680610e895750610e89611341565b80610e97575060005460ff16155b610ed25760405162461bcd60e51b815260040180806020018281038252602e815260200180611e73602e913960400191505060405180910390fd5b600054610100900460ff16158015610efd576000805460ff1961ff0019909116610100171660011790555b610f0f856001600160a01b031661133b565b610f2b5760405162461bcd60e51b815260040161075790611c92565b610f3485611352565b610f3d846108ae565b610f4682610b4f565b610f4f83611066565b60695460405163095ea7b360e01b81526001600160a01b039091169063095ea7b390610f8390879060001990600401611ba1565b602060405180830381600087803b158015610f9d57600080fd5b505af1158015610fb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd59190611a62565b508015610fe8576000805461ff00191690555b5050505050565b609e546001600160a01b031690565b60676020526000908152604090205481565b6000808584604051602001611026929190611b2d565b60405160208183030381529060405280519060200120905061105c83606760008881526020019081526020016000205483611405565b9695505050505050565b61106e61115c565b6033546001600160a01b039081169116146110ba5760405162461bcd60e51b815260040180806020018281038252602d815260200180611ef2602d913960400191505060405180910390fd5b6110cc816001600160a01b031661133b565b6110e85760405162461bcd60e51b815260040161075790611c4c565b609f80546001600160a01b038381166001600160a01b03198316179092556040519116907fbd01f63b0bddf5da6f25e7ab2f82bb88d2a760c36dd704ff74608cb21dd294d0906109839083908590611b87565b609c818154811061114b57600080fd5b600091825260209091200154905081565b3390565b6000838152606760205260409020541561118c5760405162461bcd60e51b815260040161075790611d4d565b6000838152606760205260409081902083905560695490516323b872dd60e01b81526001600160a01b03909116906323b872dd906111d290339030908690600401611b63565b602060405180830381600087803b1580156111ec57600080fd5b505af1158015611200573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112249190611a62565b6112405760405162461bcd60e51b815260040161075790611d20565b505050565b609f5460405163ab76830960e01b81526000916001600160a01b03169063ab76830990611276908590600401611b4f565b604080518083038186803b15801561128d57600080fd5b505afa1580156112a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c591906118c5565b5092915050565b801561133757609e54604051631d23139f60e11b81526001600160a01b0390911690633a46273e906113049085908590600401611ba1565b600060405180830381600087803b15801561131e57600080fd5b505af1158015611332573d6000803e3d6000fd5b505050505b5050565b3b151590565b600061134c3061133b565b15905090565b600054610100900460ff168061136b575061136b611341565b80611379575060005460ff16155b6113b45760405162461bcd60e51b815260040180806020018281038252602e815260200180611e73602e913960400191505060405180910390fd5b600054610100900460ff161580156113df576000805460ff1961ff0019909116610100171660011790555b6113e76114ae565b6113f082611560565b8015611337576000805461ff00191690555050565b600081815b85518110156114a357600086828151811061142157fe5b60200260200101519050808311611468578281604051602001808381526020018281526020019250505060405160208183030381529060405280519060200120925061149a565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b5060010161140a565b509092149392505050565b600054610100900460ff16806114c757506114c7611341565b806114d5575060005460ff16155b6115105760405162461bcd60e51b815260040180806020018281038252602e815260200180611e73602e913960400191505060405180910390fd5b600054610100900460ff1615801561153b576000805460ff1961ff0019909116610100171660011790555b61154361161d565b61154b6116bd565b801561155d576000805461ff00191690555b50565b600054610100900460ff16806115795750611579611341565b80611587575060005460ff16155b6115c25760405162461bcd60e51b815260040180806020018281038252602e815260200180611e73602e913960400191505060405180910390fd5b600054610100900460ff161580156115ed576000805460ff1961ff0019909116610100171660011790555b606980546001600160a01b0319166001600160a01b0384161790558015611337576000805461ff00191690555050565b600054610100900460ff16806116365750611636611341565b80611644575060005460ff16155b61167f5760405162461bcd60e51b815260040180806020018281038252602e815260200180611e73602e913960400191505060405180910390fd5b600054610100900460ff1615801561154b576000805460ff1961ff001990911661010017166001179055801561155d576000805461ff001916905550565b600054610100900460ff16806116d657506116d6611341565b806116e4575060005460ff16155b61171f5760405162461bcd60e51b815260040180806020018281038252602e815260200180611e73602e913960400191505060405180910390fd5b600054610100900460ff1615801561174a576000805460ff1961ff0019909116610100171660011790555b600061175461115c565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350801561155d576000805461ff001916905550565b60008083601f8401126117c7578081fd5b50813567ffffffffffffffff8111156117de578182fd5b60208301915083602080830285010111156117f857600080fd5b9250929050565b600060208284031215611810578081fd5b813561181b81611e0f565b9392505050565b60008060008060808587031215611837578283fd5b843561184281611e0f565b9350602085013561185281611e0f565b9250604085013561186281611e0f565b9396929550929360600135925050565b600080600060408486031215611886578283fd5b833561189181611e0f565b9250602084013567ffffffffffffffff8111156118ac578283fd5b6118b8868287016117b6565b9497909650939450505050565b600080604083850312156118d7578182fd5b82516118e281611e0f565b6020939093015192949293505050565b600080600060608486031215611906578283fd5b833561191181611e0f565b95602085013595506040909401359392505050565b60008060008060006080868803121561193d578081fd5b853561194881611e0f565b94506020860135935060408601359250606086013567ffffffffffffffff811115611971578182fd5b61197d888289016117b6565b969995985093965092949392505050565b600080600080608085870312156119a3578384fd5b84356119ae81611e0f565b9350602085810135935060408601359250606086013567ffffffffffffffff808211156119d9578384fd5b818801915088601f8301126119ec578384fd5b8135818111156119f857fe5b83810260405185828201018181108582111715611a1157fe5b604052828152858101935084860182860187018d1015611a2f578788fd5b8795505b83861015611a51578035855260019590950194938601938601611a33565b50989b979a50959850505050505050565b600060208284031215611a73578081fd5b8151801515811461181b578182fd5b600060208284031215611a93578081fd5b5035919050565b600060208284031215611aab578081fd5b5051919050565b60008060408385031215611ac4578182fd5b823591506020830135611ad681611e0f565b809150509250929050565b600080600060608486031215611af5578081fd5b505081359360208301359350604090920135919050565b60008060408385031215611b1e578182fd5b50508035926020909101359150565b60609290921b6bffffffffffffffffffffffff19168252601482015260340190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015611bf4578351151583529284019291840191600101611bd6565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611bf457835183529284019291840191600101611c1c565b901515815260200190565b90815260200190565b6020808252600a908201526976655052445f52444e4360b01b604082015260600190565b60208082526008908201526776655052445f434160c01b604082015260600190565b60208082526009908201526876655052445f544e4360b81b604082015260600190565b6020808252600b908201526a76655052445f7665504e4360a81b604082015260600190565b602080825260099082015268076655052445f494d560bc1b604082015260600190565b60208082526009908201526876655052445f4c544d60b81b604082015260600190565b60208082526013908201527211549497d514905394d1915497d19052531151606a1b604082015260600190565b6020808252601a908201527f63616e6e6f742072657772697465206d65726b6c6520726f6f74000000000000604082015260600190565b9182526001600160a01b0316602082015260400190565b918252602082015260400190565b6000808335601e19843603018112611dbf578283fd5b83018035915067ffffffffffffffff821115611dd9578283fd5b60209081019250810236038213156117f857600080fd5b60008235605e19833603018112611e05578182fd5b9190910192915050565b6001600160a01b038116811461155d57600080fdfe5065727046694f776e61626c65557067726164653a2073616d652061732063616e6469646174655065727046694f776e61626c65557067726164653a206e6f7420746865206e6577206f776e6572496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65645065727046694f776e61626c65557067726164653a207a65726f20616464726573735065727046694f776e61626c65557067726164653a2063616e646964617465206973207a65726f20616464726573735065727046694f776e61626c65557067726164653a2063616c6c6572206973206e6f7420746865206f776e65725065727046694f776e61626c65557067726164653a2073616d65206173206f726967696e616ca264697066735822122060b03483a7aec051bc32a3dd22abed1af0395213f75951a3a4a80c26b731169464736f6c63430007060033", "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063cf756fdf1161007c578063cf756fdf14610289578063da9012a81461029c578063dd8c9c9d146102a4578063eb0d07f5146102b7578063ef2245db146102ca578063f373579f146102dd5761014d565b8063715018a6146102435780638da5cb5b1461024b578063afd7babe14610253578063bc5920ba1461025b578063c74ed2fe14610263578063c804c39a146102765761014d565b806347fb23c11161011557806347fb23c1146101da5780634cd488ab146101fa57806358b4e4b41461020d578063612b2783146102205780636c8381f81461022857806370322919146102305761014d565b8063120aa8771461015257806313af40351461017b57806321df0da71461019057806339144f50146101a557806339436b00146101ba575b600080fd5b610165610160366004611ab2565b6102f0565b6040516101729190611c38565b60405180910390f35b61018e6101893660046117ff565b610310565b005b610198610465565b6040516101729190611b4f565b6101ad610474565b6040516101729190611c43565b6101cd6101c8366004611b0c565b61047a565b6040516101729190611c00565b6101ed6101e83660046118f2565b61050f565b6040516101729190611bba565b61018e610208366004611ae1565b6105c4565b61018e61021b366004611926565b610697565b610198610890565b61019861089f565b61018e61023e3660046117ff565b6108ae565b61018e61098f565b610198610a39565b6101ad610a48565b61018e610a4e565b61018e610271366004611a82565b610b4f565b61018e610284366004611872565b610bdd565b61018e610297366004611822565b610e70565b610198610fef565b6101ad6102b2366004611a82565b610ffe565b6101656102c536600461198e565b611010565b61018e6102d83660046117ff565b611066565b6101ad6102eb366004611a82565b61113b565b606860209081526000928352604080842090915290825290205460ff1681565b61031861115c565b6033546001600160a01b039081169116146103645760405162461bcd60e51b815260040180806020018281038252602d815260200180611ef2602d913960400191505060405180910390fd5b6001600160a01b0381166103a95760405162461bcd60e51b8152600401808060200182810382526022815260200180611ea16022913960400191505060405180910390fd5b6033546001600160a01b03828116911614156103f65760405162461bcd60e51b8152600401808060200182810382526026815260200180611f1f6026913960400191505060405180910390fd5b6034546001600160a01b03828116911614156104435760405162461bcd60e51b8152600401808060200182810382526027815260200180611e256027913960400191505060405180910390fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b6069546001600160a01b031690565b609c5490565b606082820360010160008167ffffffffffffffff8111801561049b57600080fd5b506040519080825280602002602001820160405280156104c5578160200160208202803683370190505b50905060005b828110156105065785810160009081526067602052604090205482518390839081106104f357fe5b60209081029190910101526001016104cb565b50949350505050565b606082820360010160008167ffffffffffffffff8111801561053057600080fd5b5060405190808252806020026020018201604052801561055a578160200160208202803683370190505b50905060005b828110156105ba5785810160009081526068602090815260408083206001600160a01b038b168452909152902054825160ff909116908390839081106105a257fe5b91151560209283029190910190910152600101610560565b5095945050505050565b6105cc61115c565b6033546001600160a01b039081169116146106185760405162461bcd60e51b815260040180806020018281038252602d815260200180611ef2602d913960400191505060405180910390fd5b610623838383611160565b609c80546001810182556000919091527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c0183905560405183907f18cb1239682d2af2092e17254088c13786b0462404406e52259b4a1c76f8b05c9061068a908490611c43565b60405180910390a2505050565b8460006106a382611245565b609e5460405163adc6358960e01b815291925062093a804281900402916000916001600160a01b03169063adc63589906106e1908690600401611b4f565b60206040518083038186803b1580156106f957600080fd5b505afa15801561070d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107319190611a9a565b9050609d5482018110156107605760405162461bcd60e51b815260040161075790611cfd565b60405180910390fd5b60008881526068602090815260408083206001600160a01b038d16845290915290205460ff16156107a35760405162461bcd60e51b815260040161075790611c70565b6107e289898989898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061101092505050565b6107fe5760405162461bcd60e51b815260040161075790611cda565b60008881526068602090815260408083206001600160a01b038d1684529091528120805460ff191660011790556108348a611245565b905061084081896112cc565b888a6001600160a01b03167fc3d028d1e317e98aa049b863b56fcaded41c339456705128dc06d3f9b005ad748a8460405161087c929190611d84565b60405180910390a350505050505050505050565b609f546001600160a01b031690565b6034546001600160a01b031690565b6108b661115c565b6033546001600160a01b039081169116146109025760405162461bcd60e51b815260040180806020018281038252602d815260200180611ef2602d913960400191505060405180910390fd5b610914816001600160a01b031661133b565b6109305760405162461bcd60e51b815260040161075790611cb5565b609e80546001600160a01b038381166001600160a01b03198316179092556040519116907ff3416fe124f3c6997459cb6f8374dac04d92adf756db70f755e3daf86ec5527d906109839083908590611b87565b60405180910390a15050565b61099761115c565b6033546001600160a01b039081169116146109e35760405162461bcd60e51b815260040180806020018281038252602d815260200180611ef2602d913960400191505060405180910390fd5b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319908116909155603480549091169055565b6033546001600160a01b031690565b609d5490565b6034546001600160a01b0316610a955760405162461bcd60e51b815260040180806020018281038252602f815260200180611ec3602f913960400191505060405180910390fd5b610a9d61115c565b6034546001600160a01b03908116911614610ae95760405162461bcd60e51b8152600401808060200182810382526027815260200180611e4c6027913960400191505060405180910390fd5b6034546033546040516001600160a01b0392831692909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b610b5761115c565b6033546001600160a01b03908116911614610ba35760405162461bcd60e51b815260040180806020018281038252602d815260200180611ef2602d913960400191505060405180910390fd5b609d8054908290556040517fd9d92baa8750d424c48af09b5e42da95954bc7988ad26c501b76619b07890a42906109839083908590611d9b565b826000610be982611245565b609e5460405163adc6358960e01b815291925062093a804281900402916000916001600160a01b03169063adc6358990610c27908690600401611b4f565b60206040518083038186803b158015610c3f57600080fd5b505afa158015610c53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c779190611a9a565b9050609d548201811015610c9d5760405162461bcd60e51b815260040161075790611cfd565b6000853682610cab8b611245565b905060005b83811015610e58578a8a82818110610cc457fe5b9050602002810190610cd69190611df0565b9250606860008460000135815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a900460ff1615610d3d5760405162461bcd60e51b815260040161075790611c70565b610d8c8c84356020860135610d556040880188611da9565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061101092505050565b610da85760405162461bcd60e51b815260040161075790611cda565b8260200135850194506001606860008560000135815260200190815260200160002060008e6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff02191690831515021790555082600001358c6001600160a01b03167fc3d028d1e317e98aa049b863b56fcaded41c339456705128dc06d3f9b005ad74856020013585604051610e48929190611d84565b60405180910390a3600101610cb0565b50610e6381856112cc565b5050505050505050505050565b600054610100900460ff1680610e895750610e89611341565b80610e97575060005460ff16155b610ed25760405162461bcd60e51b815260040180806020018281038252602e815260200180611e73602e913960400191505060405180910390fd5b600054610100900460ff16158015610efd576000805460ff1961ff0019909116610100171660011790555b610f0f856001600160a01b031661133b565b610f2b5760405162461bcd60e51b815260040161075790611c92565b610f3485611352565b610f3d846108ae565b610f4682610b4f565b610f4f83611066565b60695460405163095ea7b360e01b81526001600160a01b039091169063095ea7b390610f8390879060001990600401611ba1565b602060405180830381600087803b158015610f9d57600080fd5b505af1158015610fb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd59190611a62565b508015610fe8576000805461ff00191690555b5050505050565b609e546001600160a01b031690565b60676020526000908152604090205481565b6000808584604051602001611026929190611b2d565b60405160208183030381529060405280519060200120905061105c83606760008881526020019081526020016000205483611405565b9695505050505050565b61106e61115c565b6033546001600160a01b039081169116146110ba5760405162461bcd60e51b815260040180806020018281038252602d815260200180611ef2602d913960400191505060405180910390fd5b6110cc816001600160a01b031661133b565b6110e85760405162461bcd60e51b815260040161075790611c4c565b609f80546001600160a01b038381166001600160a01b03198316179092556040519116907fbd01f63b0bddf5da6f25e7ab2f82bb88d2a760c36dd704ff74608cb21dd294d0906109839083908590611b87565b609c818154811061114b57600080fd5b600091825260209091200154905081565b3390565b6000838152606760205260409020541561118c5760405162461bcd60e51b815260040161075790611d4d565b6000838152606760205260409081902083905560695490516323b872dd60e01b81526001600160a01b03909116906323b872dd906111d290339030908690600401611b63565b602060405180830381600087803b1580156111ec57600080fd5b505af1158015611200573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112249190611a62565b6112405760405162461bcd60e51b815260040161075790611d20565b505050565b609f5460405163ab76830960e01b81526000916001600160a01b03169063ab76830990611276908590600401611b4f565b604080518083038186803b15801561128d57600080fd5b505afa1580156112a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c591906118c5565b5092915050565b801561133757609e54604051631d23139f60e11b81526001600160a01b0390911690633a46273e906113049085908590600401611ba1565b600060405180830381600087803b15801561131e57600080fd5b505af1158015611332573d6000803e3d6000fd5b505050505b5050565b3b151590565b600061134c3061133b565b15905090565b600054610100900460ff168061136b575061136b611341565b80611379575060005460ff16155b6113b45760405162461bcd60e51b815260040180806020018281038252602e815260200180611e73602e913960400191505060405180910390fd5b600054610100900460ff161580156113df576000805460ff1961ff0019909116610100171660011790555b6113e76114ae565b6113f082611560565b8015611337576000805461ff00191690555050565b600081815b85518110156114a357600086828151811061142157fe5b60200260200101519050808311611468578281604051602001808381526020018281526020019250505060405160208183030381529060405280519060200120925061149a565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b5060010161140a565b509092149392505050565b600054610100900460ff16806114c757506114c7611341565b806114d5575060005460ff16155b6115105760405162461bcd60e51b815260040180806020018281038252602e815260200180611e73602e913960400191505060405180910390fd5b600054610100900460ff1615801561153b576000805460ff1961ff0019909116610100171660011790555b61154361161d565b61154b6116bd565b801561155d576000805461ff00191690555b50565b600054610100900460ff16806115795750611579611341565b80611587575060005460ff16155b6115c25760405162461bcd60e51b815260040180806020018281038252602e815260200180611e73602e913960400191505060405180910390fd5b600054610100900460ff161580156115ed576000805460ff1961ff0019909116610100171660011790555b606980546001600160a01b0319166001600160a01b0384161790558015611337576000805461ff00191690555050565b600054610100900460ff16806116365750611636611341565b80611644575060005460ff16155b61167f5760405162461bcd60e51b815260040180806020018281038252602e815260200180611e73602e913960400191505060405180910390fd5b600054610100900460ff1615801561154b576000805460ff1961ff001990911661010017166001179055801561155d576000805461ff001916905550565b600054610100900460ff16806116d657506116d6611341565b806116e4575060005460ff16155b61171f5760405162461bcd60e51b815260040180806020018281038252602e815260200180611e73602e913960400191505060405180910390fd5b600054610100900460ff1615801561174a576000805460ff1961ff0019909116610100171660011790555b600061175461115c565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350801561155d576000805461ff001916905550565b60008083601f8401126117c7578081fd5b50813567ffffffffffffffff8111156117de578182fd5b60208301915083602080830285010111156117f857600080fd5b9250929050565b600060208284031215611810578081fd5b813561181b81611e0f565b9392505050565b60008060008060808587031215611837578283fd5b843561184281611e0f565b9350602085013561185281611e0f565b9250604085013561186281611e0f565b9396929550929360600135925050565b600080600060408486031215611886578283fd5b833561189181611e0f565b9250602084013567ffffffffffffffff8111156118ac578283fd5b6118b8868287016117b6565b9497909650939450505050565b600080604083850312156118d7578182fd5b82516118e281611e0f565b6020939093015192949293505050565b600080600060608486031215611906578283fd5b833561191181611e0f565b95602085013595506040909401359392505050565b60008060008060006080868803121561193d578081fd5b853561194881611e0f565b94506020860135935060408601359250606086013567ffffffffffffffff811115611971578182fd5b61197d888289016117b6565b969995985093965092949392505050565b600080600080608085870312156119a3578384fd5b84356119ae81611e0f565b9350602085810135935060408601359250606086013567ffffffffffffffff808211156119d9578384fd5b818801915088601f8301126119ec578384fd5b8135818111156119f857fe5b83810260405185828201018181108582111715611a1157fe5b604052828152858101935084860182860187018d1015611a2f578788fd5b8795505b83861015611a51578035855260019590950194938601938601611a33565b50989b979a50959850505050505050565b600060208284031215611a73578081fd5b8151801515811461181b578182fd5b600060208284031215611a93578081fd5b5035919050565b600060208284031215611aab578081fd5b5051919050565b60008060408385031215611ac4578182fd5b823591506020830135611ad681611e0f565b809150509250929050565b600080600060608486031215611af5578081fd5b505081359360208301359350604090920135919050565b60008060408385031215611b1e578182fd5b50508035926020909101359150565b60609290921b6bffffffffffffffffffffffff19168252601482015260340190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015611bf4578351151583529284019291840191600101611bd6565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611bf457835183529284019291840191600101611c1c565b901515815260200190565b90815260200190565b6020808252600a908201526976655052445f52444e4360b01b604082015260600190565b60208082526008908201526776655052445f434160c01b604082015260600190565b60208082526009908201526876655052445f544e4360b81b604082015260600190565b6020808252600b908201526a76655052445f7665504e4360a81b604082015260600190565b602080825260099082015268076655052445f494d560bc1b604082015260600190565b60208082526009908201526876655052445f4c544d60b81b604082015260600190565b60208082526013908201527211549497d514905394d1915497d19052531151606a1b604082015260600190565b6020808252601a908201527f63616e6e6f742072657772697465206d65726b6c6520726f6f74000000000000604082015260600190565b9182526001600160a01b0316602082015260400190565b918252602082015260400190565b6000808335601e19843603018112611dbf578283fd5b83018035915067ffffffffffffffff821115611dd9578283fd5b60209081019250810236038213156117f857600080fd5b60008235605e19833603018112611e05578182fd5b9190910192915050565b6001600160a01b038116811461155d57600080fdfe5065727046694f776e61626c65557067726164653a2073616d652061732063616e6469646174655065727046694f776e61626c65557067726164653a206e6f7420746865206e6577206f776e6572496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65645065727046694f776e61626c65557067726164653a207a65726f20616464726573735065727046694f776e61626c65557067726164653a2063616e646964617465206973207a65726f20616464726573735065727046694f776e61626c65557067726164653a2063616c6c6572206973206e6f7420746865206f776e65725065727046694f776e61626c65557067726164653a2073616d65206173206f726967696e616ca264697066735822122060b03483a7aec051bc32a3dd22abed1af0395213f75951a3a4a80c26b731169464736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} }