[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "EmergencyWithdrawn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_rewardToken", "type": "address" } ], "name": "RewardAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_rewardToken", "type": "address" } ], "name": "RewardInvalidated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_user", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_rewardToken", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_receiver", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_rewardAmount", "type": "uint256" } ], "name": "RewardPaid", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_account", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_forward", "type": "address" } ], "name": "RewardRedirected", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "Staked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "Withdrawn", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" } ], "name": "addExtraReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "claimable_reward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "convexBooster", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "convexPoolId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "convexStaker", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "crv", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "curveGauge", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "earned", "outputs": [ { "components": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "internalType": "struct ConvexRewardPool.EarnedData[]", "name": "claimable", "type": "tuple[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "emergencyWithdraw", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "address", "name": "_forwardTo", "type": "address" } ], "name": "getReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "getReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_crv", "type": "address" }, { "internalType": "address", "name": "_curveGauge", "type": "address" }, { "internalType": "address", "name": "_convexStaker", "type": "address" }, { "internalType": "address", "name": "_convexBooster", "type": "address" }, { "internalType": "address", "name": "_lptoken", "type": "address" }, { "internalType": "uint256", "name": "_poolId", "type": "uint256" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" } ], "name": "invalidateReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "maxRewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardHook", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "rewardMap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "rewardRedirect", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "reward_integral_for", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "rewards", "outputs": [ { "internalType": "address", "name": "reward_token", "type": "address" }, { "internalType": "uint256", "name": "reward_integral", "type": "uint256" }, { "internalType": "uint256", "name": "reward_remaining", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_hook", "type": "address" } ], "name": "setRewardHook", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" } ], "name": "setRewardRedirect", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_for", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "stakeFor", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "user_checkpoint", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bool", "name": "_claim", "type": "bool" } ], "name": "withdraw", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "claim", "type": "bool" } ], "name": "withdrawAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b50604080518082018252601781527f546f6b656e697a6564436f6e766578506f736974696f6e00000000000000000060208083019182528351808501909452600884526731bb3c2a37b5b2b760c11b90840152815191929162000077916003916200009b565b5080516200008d9060049060208401906200009b565b50506001600555506200017e565b828054620000a99062000141565b90600052602060002090601f016020900481019282620000cd576000855562000118565b82601f10620000e857805160ff191683800117855562000118565b8280016001018555821562000118579182015b8281111562000118578251825591602001919060010190620000fb565b50620001269291506200012a565b5090565b5b808211156200012657600081556001016200012b565b600181811c908216806200015657607f821691505b602082108114156200017857634e487b7160e01b600052602260045260246000fd5b50919050565b612c22806200018e6000396000f3fe608060405234801561001057600080fd5b50600436106102265760003560e01c80636a4874a111610130578063a9059cbb116100b8578063e509b9d91161007c578063e509b9d914610508578063e529ee9514610531578063f05cc0581461053a578063f301af4214610565578063f8112eed1461059d57600080fd5b8063a9059cbb14610499578063b95c5746146104ac578063c00007b0146104b4578063d619658b146104c7578063dd62ed3e146104cf57600080fd5b80637c04d07c116100ff5780637c04d07c1461043857806383d443391461044b57806395b6ef0c1461046b57806395d89b411461047e578063a457c2d71461048657600080fd5b80636a4874a1146103d65780636b091695146103e957806370a08231146103fc57806375a410141461042557600080fd5b80632ee40908116101b35780633950935111610182578063395093511461037757806344214ecf1461038a5780634b8200931461039d5780635312ea8e146103b05780635e43c47b146103c357600080fd5b80632ee4090814610317578063313ce5671461032a57806333fd6f741461033957806338d074361461036457600080fd5b806318160ddd116101fa57806318160ddd146102a15780631c1c6fe5146102b357806323b872dd146102c6578063280718e2146102d95780632cdacb501461030457600080fd5b80628cc2621461022b57806306fdde0314610254578063095ea7b3146102695780630d5225de1461028c575b600080fd5b61023e61023936600461264d565b6105b0565b60405161024b919061266a565b60405180910390f35b61025c610706565b60405161024b91906126ee565b61027c610277366004612721565b610798565b604051901515815260200161024b565b61029f61029a36600461264d565b6107ae565b005b6002545b60405190815260200161024b565b61029f6102c136600461275b565b610899565b61027c6102d4366004612778565b6108b7565b6006546102ec906001600160a01b031681565b6040516001600160a01b03909116815260200161024b565b6008546102ec906001600160a01b031681565b61027c610325366004612721565b610963565b6040516012815260200161024b565b6102a56103473660046127b9565b600c60209081526000928352604080842090915290825290205481565b61027c6103723660046127f2565b610a4e565b61027c610385366004612721565b610b0b565b600f546102ec906001600160a01b031681565b61027c6103ab36600461264d565b610b47565b61027c6103be366004612817565b610b5a565b61029f6103d136600461264d565b610c5e565b6010546102ec906001600160a01b031681565b61029f6103f73660046127b9565b610d2a565b6102a561040a36600461264d565b6001600160a01b031660009081526020819052604090205490565b61029f61043336600461264d565b610d74565b6007546102ec906001600160a01b031681565b6102a561045936600461264d565b600d6020526000908152604090205481565b61029f610479366004612830565b610e03565b61025c61113f565b61027c610494366004612721565b61114e565b61027c6104a7366004612721565b6111e7565b600a546102a5565b61029f6104c236600461264d565b6111f4565b6102a5600c81565b6102a56104dd3660046127b9565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6102ec61051636600461264d565b600e602052600090815260409020546001600160a01b031681565b6102a560095481565b6102a56105483660046127b9565b600b60209081526000928352604080842090915290825290205481565b610578610573366004612817565b611247565b604080516001600160a01b03909416845260208401929092529082015260600161024b565b61029f6105ab36600461264d565b611284565b60606105bb8261142d565b600a548067ffffffffffffffff8111156105d7576105d76128a9565b60405190808252806020026020018201604052801561061c57816020015b60408051808201909152600080825260208201528152602001906001900390816105f55790505b50915060005b818110156106ff576000600a828154811061063f5761063f6128bf565b6000918252602090912060039091020180549091506001600160a01b031661066757506106ed565b80546001600160a01b039081166000908152600c602090815260408083209389168352929052205484518590849081106106a3576106a36128bf565b6020908102919091018101510152805484516001600160a01b03909116908590849081106106d3576106d36128bf565b60209081029190910101516001600160a01b039091169052505b806106f7816128eb565b915050610622565b5050919050565b60606011805461071590612906565b80601f016020809104026020016040519081016040528092919081815260200182805461074190612906565b801561078e5780601f106107635761010080835404028352916020019161078e565b820191906000526020600020905b81548152906001019060200180831161077157829003601f168201915b5050505050905090565b60006107a5338484611438565b50600192915050565b600260055414156107da5760405162461bcd60e51b81526004016107d190612941565b60405180910390fd5b6002600555600854604080516307a77c5360e11b8152905133926001600160a01b031691630f4ef8a69160048083019260209291908290030181865afa158015610828573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084c9190612978565b6001600160a01b0316146108725760405162461bcd60e51b81526004016107d190612995565b600f80546001600160a01b0319166001600160a01b03929092169190911790556001600555565b336000908152602081905260409020546108b39082610a4e565b5050565b60006108c484848461155d565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109495760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107d1565b6109568533858403611438565b60019150505b9392505050565b6008546000906001600160a01b031633146109a85760405162461bcd60e51b8152602060048201526005602482015264042c2eae8d60db1b60448201526064016107d1565b600082116109f85760405162461bcd60e51b815260206004820152601b60248201527f526577617264506f6f6c203a2043616e6e6f74207374616b652030000000000060448201526064016107d1565b610a028383611738565b826001600160a01b03167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d83604051610a3d91815260200190565b60405180910390a250600192915050565b60008115610a6057610a603333611823565b610a6a3384611889565b6008546009546040516305335c3960e21b81526004810191909152602481018590523360448201526001600160a01b03909116906314cd70e490606401600060405180830381600087803b158015610ac157600080fd5b505af1158015610ad5573d6000803e3d6000fd5b50506040518581523392507f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d59150602001610a3d565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916107a5918590610b429086906129b5565b611438565b6000610b528261142d565b506001919050565b600060026005541415610b7f5760405162461bcd60e51b81526004016107d190612941565b60026005556010805460ff60a01b1916600160a01b179055610ba13383611889565b6010805460ff60a01b191690556008546009546040516305335c3960e21b81526004810191909152602481018490523360448201526001600160a01b03909116906314cd70e490606401600060405180830381600087803b158015610c0557600080fd5b505af1158015610c19573d6000803e3d6000fd5b50506040518481523392507f2e39961a70a10f4d46383948095ac2752b3ee642a7c76aa827410aaff08c2e51915060200160405180910390a250600180600555919050565b60026005541415610c815760405162461bcd60e51b81526004016107d190612941565b6002600555600854604080516307a77c5360e11b8152905133926001600160a01b031691630f4ef8a69160048083019260209291908290030181865afa158015610ccf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf39190612978565b6001600160a01b031614610d195760405162461bcd60e51b81526004016107d190612995565b610d22816119e0565b506001600555565b336001600160a01b03831614610d6a5760405162461bcd60e51b815260206004820152600560248201526410b9b2b63360d91b60448201526064016107d1565b6108b38282611823565b60026005541415610d975760405162461bcd60e51b81526004016107d190612941565b6002600555336000818152600e602090815260409182902080546001600160a01b0319166001600160a01b03861690811790915591519182527ff4239ad0860f93469699dd4be8040b8838c5e25bb6cf24a1dfb381b937ff078c910160405180910390a2506001600555565b60118054610e1090612906565b159050610e4e5760405162461bcd60e51b815260206004820152600c60248201526b185b1c9958591e481a5b9a5d60a21b60448201526064016107d1565b601080546001600160a01b03199081166001600160a01b0389811691909117909255600680548216888416179055600780548216878416179055600880549091168583161790556009829055604080516306fdde0360e01b81529051918416916306fdde03916004808201926000929091908290030181865afa158015610ed9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f0191908101906129cd565b604051602001610f119190612a6f565b60405160208183030381529060405260119080519060200190610f3592919061259f565b50816001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610f74573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f9c91908101906129cd565b604051602001610fac9190612aa2565b60405160208183030381529060405260129080519060200190610fd092919061259f565b50610fda866119e0565b600854604080516307a77c5360e11b815290516000926001600160a01b031691630f4ef8a69160048083019260209291908290030181865afa158015611024573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110489190612978565b90506110b4816001600160a01b031663923c1d616040518163ffffffff1660e01b8152600401602060405180830381865afa15801561108b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110af9190612978565b6119e0565b806001600160a01b03166344214ecf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111169190612978565b600f80546001600160a01b0319166001600160a01b039290921691909117905550505050505050565b60606012805461071590612906565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156111d05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107d1565b6111dd3385858403611438565b5060019392505050565b60006107a533848461155d565b6001600160a01b038181166000908152600e6020526040902054161561123d576001600160a01b038082166000908152600e602052604090205461123a91839116611823565b50565b61123a8182611823565b600a818154811061125757600080fd5b60009182526020909120600390910201805460018201546002909201546001600160a01b03909116925083565b600260055414156112a75760405162461bcd60e51b81526004016107d190612941565b6002600555600854604080516307a77c5360e11b8152905133926001600160a01b031691630f4ef8a69160048083019260209291908290030181865afa1580156112f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113199190612978565b6001600160a01b03161461133f5760405162461bcd60e51b81526004016107d190612995565b6001600160a01b0381166000908152600d60205260409020548015611424576000600a61136d600184612acd565b8154811061137d5761137d6128bf565b6000918252602090912060039091020180549091506001600160a01b038481169116146113d85760405162461bcd60e51b8152602060048201526009602482015268042dad2e6dac2e8c6d60bb1b60448201526064016107d1565b80546001600160a01b03191681556040516001600160a01b03841681527f646cfe9445aed85f4853d501d1924d2bdabb1bbf12531df29f929f07ba4169e09060200160405180910390a1505b50506001600555565b61123a816000611823565b6001600160a01b03831661149a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107d1565b6001600160a01b0382166114fb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107d1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166115c15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107d1565b6001600160a01b0382166116235760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107d1565b61162e838383611be0565b6001600160a01b038316600090815260208190526040902054818110156116a65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107d1565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906116dd9084906129b5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161172991815260200190565b60405180910390a35b50505050565b6001600160a01b03821661178e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016107d1565b61179a60008383611be0565b80600260008282546117ac91906129b5565b90915550506001600160a01b038216600090815260208190526040812080548392906117d99084906129b5565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600260055414156118465760405162461bcd60e51b81526004016107d190612941565b6002600555611853611c21565b600a5460005b8181101561187e5761186c818585611def565b80611876816128eb565b915050611859565b505060016005555050565b6001600160a01b0382166118e95760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016107d1565b6118f582600083611be0565b6001600160a01b038216600090815260208190526040902054818110156119695760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016107d1565b6001600160a01b0383166000908152602081905260408120838303905560028054849290611998908490612acd565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611550565b505050565b6001600160a01b0381163014806119fe57506001600160a01b038116155b15611a065750565b6001600160a01b0381166000908152600d6020526040902054611b6757600a54600c11611a635760405162461bcd60e51b815260206004820152600b60248201526a6d6178207265776172647360a81b60448201526064016107d1565b600a80546001810182556003027fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0384166001600160a01b03199091168117825591546000838152600d602052604080822092909255905163a9059cbb60e01b8152306004820152602481019190915290919063a9059cbb906044016020604051808303816000875af1925050508015611b24575060408051601f3d908101601f19168201909252611b2191810190612ae4565b60015b611b2d57611b2f565b505b6040516001600160a01b038316907fb13fd610fe4e1b384966826794a9b2f6100ad031f352cc5ec6f22667f607498090600090a25050565b6001600160a01b0381166000908152600d602052604081205490600a611b8e600184612acd565b81548110611b9e57611b9e6128bf565b6000918252602090912060039091020180549091506001600160a01b03166119db5780546001600160a01b0384166001600160a01b0319909116178155505050565b601054600160a01b900460ff166119db576001600160a01b03831615611c0957611c098361142d565b6001600160a01b038216156119db576119db8261142d565b600854600954604051631526fe2760e01b815260048101919091526000916001600160a01b031690631526fe279060240160a060405180830381865afa158015611c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c939190612b01565b5093505050508061123a57611ca6612270565b6008546009546006546040516303a0e5e160e41b815260048101929092526001600160a01b03908116602483015290911690633a0e5e1090604401600060405180830381600087803b158015611cfb57600080fd5b505af1158015611d0f573d6000803e3d6000fd5b5050600654600754604051634274debf60e11b81526001600160a01b039182166004820152911692506384e9bd7e9150602401600060405180830381600087803b158015611d5c57600080fd5b505af1158015611d70573d6000803e3d6000fd5b5050600f546001600160a01b031615915061123a905057600f60009054906101000a90046001600160a01b03166001600160a01b0316632663fcfc6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611dd757600080fd5b505af1925050508015611de8575060015b61123a5750565b6000600a8481548110611e0457611e046128bf565b6000918252602090912060039091020180549091506001600160a01b0316611e2c5750505050565b80546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611e74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e989190612b76565b905084611fbc576000826002015482611eb19190612acd565b60085460405162ceb4af60e51b8152600481018390529192506000916001600160a01b03909116906319d695e090602401602060405180830381865afa158015611eff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f239190612b76565b90508015611fad5760085460408051630abca72960e41b81529051611fad926001600160a01b03169163abca72909160048083019260209291908290030181865afa158015611f76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f9a9190612978565b6010546001600160a01b0316908361231a565b611fb78184612acd565b925050505b6000611fc760025490565b118015611fd75750816002015481115b15612020576002546002830154611fee9083612acd565b6120019068056bc75e2d63100000612b8f565b61200b9190612bae565b826001015461201a91906129b5565b60018301555b81546001600160a01b039081166000908152600b60209081526040808320888516845290915290205490841615158061205c5750826001015481105b15612255576001600160a01b0384161561218557600068056bc75e2d6310000082856001015461208c9190612acd565b6001600160a01b0388166000908152602081905260409020546120af9190612b8f565b6120b99190612bae565b84546001600160a01b039081166000908152600c60209081526040808320938b16835292905220546120eb91906129b5565b9050801561217f5783546001600160a01b039081166000908152600c602090815260408083208a85168452909152812055845461212a9116868361231a565b83546040518281526001600160a01b0387811692811691908916907fce405e67b4d6e56e438257e15f160ae28b450e6e7659bbc4c1f4e09a1ac846cb9060200160405180910390a461217c8184612acd565b92505b50612227565b68056bc75e2d6310000081846001015461219f9190612acd565b6001600160a01b0387166000908152602081905260409020546121c29190612b8f565b6121cc9190612bae565b83546001600160a01b039081166000908152600c60209081526040808320938a16835292905220546121fe91906129b5565b83546001600160a01b039081166000908152600c60209081526040808320938a16835292905220555b600183015483546001600160a01b039081166000908152600b60209081526040808320938a16835292905220555b8260020154821461226857600283018290555b505050505050565b60005b600881101561123a576006546040516354c49fe960e01b8152600481018390526000916001600160a01b0316906354c49fe990602401602060405180830381865afa1580156122c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ea9190612978565b90506001600160a01b0381166122fe575050565b612307816119e0565b5080612312816128eb565b915050612273565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526119db928692916000916123aa918516908490612427565b8051909150156119db57808060200190518101906123c89190612ae4565b6119db5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016107d1565b6060612436848460008561243e565b949350505050565b60608247101561249f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016107d1565b843b6124ed5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107d1565b600080866001600160a01b031685876040516125099190612bd0565b60006040518083038185875af1925050503d8060008114612546576040519150601f19603f3d011682016040523d82523d6000602084013e61254b565b606091505b509150915061255b828286612566565b979650505050505050565b6060831561257557508161095c565b8251156125855782518084602001fd5b8160405162461bcd60e51b81526004016107d191906126ee565b8280546125ab90612906565b90600052602060002090601f0160209004810192826125cd5760008555612613565b82601f106125e657805160ff1916838001178555612613565b82800160010185558215612613579182015b828111156126135782518255916020019190600101906125f8565b5061261f929150612623565b5090565b5b8082111561261f5760008155600101612624565b6001600160a01b038116811461123a57600080fd5b60006020828403121561265f57600080fd5b813561095c81612638565b602080825282518282018190526000919060409081850190868401855b828110156126b557815180516001600160a01b03168552860151868501529284019290850190600101612687565b5091979650505050505050565b60005b838110156126dd5781810151838201526020016126c5565b838111156117325750506000910152565b602081526000825180602084015261270d8160408501602087016126c2565b601f01601f19169190910160400192915050565b6000806040838503121561273457600080fd5b823561273f81612638565b946020939093013593505050565b801515811461123a57600080fd5b60006020828403121561276d57600080fd5b813561095c8161274d565b60008060006060848603121561278d57600080fd5b833561279881612638565b925060208401356127a881612638565b929592945050506040919091013590565b600080604083850312156127cc57600080fd5b82356127d781612638565b915060208301356127e781612638565b809150509250929050565b6000806040838503121561280557600080fd5b8235915060208301356127e78161274d565b60006020828403121561282957600080fd5b5035919050565b60008060008060008060c0878903121561284957600080fd5b863561285481612638565b9550602087013561286481612638565b9450604087013561287481612638565b9350606087013561288481612638565b9250608087013561289481612638565b8092505060a087013590509295509295509295565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156128ff576128ff6128d5565b5060010190565b600181811c9082168061291a57607f821691505b6020821081141561293b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60006020828403121561298a57600080fd5b815161095c81612638565b60208082526006908201526510b7bbb732b960d11b604082015260600190565b600082198211156129c8576129c86128d5565b500190565b6000602082840312156129df57600080fd5b815167ffffffffffffffff808211156129f757600080fd5b818401915084601f830112612a0b57600080fd5b815181811115612a1d57612a1d6128a9565b604051601f8201601f19908116603f01168101908382118183101715612a4557612a456128a9565b81604052828152876020848701011115612a5e57600080fd5b61255b8360208301602088016126c2565b60008251612a818184602087016126c2565b6e0810dbdb9d995e0811195c1bdcda5d608a1b920191825250600f01919050565b620c6ecf60eb1b815260008251612ac08160038501602087016126c2565b9190910160030192915050565b600082821015612adf57612adf6128d5565b500390565b600060208284031215612af657600080fd5b815161095c8161274d565b600080600080600060a08688031215612b1957600080fd5b8551612b2481612638565b6020870151909550612b3581612638565b6040870151909450612b4681612638565b6060870151909350612b578161274d565b6080870151909250612b6881612638565b809150509295509295909350565b600060208284031215612b8857600080fd5b5051919050565b6000816000190483118215151615612ba957612ba96128d5565b500290565b600082612bcb57634e487b7160e01b600052601260045260246000fd5b500490565b60008251612be28184602087016126c2565b919091019291505056fea26469706673582212201512acad0514366736f48f40f3a00d0ccdc5bb9893d1fb6085b721edbe134bba64736f6c634300080a0033
Loading