[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "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": false, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Claim", "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" }, { "inputs": [], "name": "BASIS_POINTS_DIVISOR", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PRECISION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowances", "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": "", "type": "address" } ], "name": "averageStakedAmounts", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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" } ], "name": "balances", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "claim", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "claimForAccount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "claimable", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "claimableReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cumulativeRewardPerToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "cumulativeRewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "depositBalances", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "distributor", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "gov", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "inPrivateClaimingMode", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "inPrivateStakingMode", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "inPrivateTransferMode", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_depositTokens", "type": "address[]" }, { "internalType": "address", "name": "_distributor", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isDepositToken", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isHandler", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isInitialized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "previousCumulatedRewardPerToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_depositToken", "type": "address" }, { "internalType": "bool", "name": "_isDepositToken", "type": "bool" } ], "name": "setDepositToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_gov", "type": "address" } ], "name": "setGov", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_handler", "type": "address" }, { "internalType": "bool", "name": "_isActive", "type": "bool" } ], "name": "setHandler", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_inPrivateClaimingMode", "type": "bool" } ], "name": "setInPrivateClaimingMode", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_inPrivateStakingMode", "type": "bool" } ], "name": "setInPrivateStakingMode", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_inPrivateTransferMode", "type": "bool" } ], "name": "setInPrivateTransferMode", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_depositToken", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "stake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_fundingAccount", "type": "address" }, { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "address", "name": "_depositToken", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "stakeForAccount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "stakedAmounts", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokensPerInterval", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "totalDepositSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "_depositToken", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "unstake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "address", "name": "_depositToken", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "unstakeForAccount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "updateRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "withdrawToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801561001057600080fd5b506040516126cb3803806126cb83398101604081905261002f91610120565b6001600081905580546001600160a01b0319163317905560026100528382610212565b50600361005f8282610212565b5050506102d0565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261008e57600080fd5b81516001600160401b038111156100a7576100a7610067565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d5576100d5610067565b6040528181528382016020018510156100ed57600080fd5b60005b8281101561010c576020818601810151838301820152016100f0565b506000918101602001919091529392505050565b6000806040838503121561013357600080fd5b82516001600160401b0381111561014957600080fd5b6101558582860161007d565b602085015190935090506001600160401b0381111561017357600080fd5b61017f8582860161007d565b9150509250929050565b600181811c9082168061019d57607f821691505b6020821081036101bd57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561020d57806000526020600020601f840160051c810160208510156101ea5750805b601f840160051c820191505b8181101561020a57600081556001016101f6565b50505b505050565b81516001600160401b0381111561022b5761022b610067565b61023f816102398454610189565b846101c3565b6020601f821160018114610273576000831561025b5750848201515b600019600385901b1c1916600184901b17845561020a565b600084815260208120601f198516915b828110156102a35787850151825560209485019460019092019101610283565b50848210156102c15786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6123ec806102df6000396000f3fe608060405234801561001057600080fd5b50600436106102255760003560e01c806301e336671461022a57806306fdde031461023f578063095ea7b31461025d578063098bf59d1461028057806310c1c10314610293578063126082cf146102c157806312d43a51146102ca57806313e82e7a146102ea57806318160ddd146102fd5780631d30d5bc146103065780631e83409a1461031957806323b872dd1461032c57806327e235e31461033f578063313ce5671461035f5780633792def314610379578063392e53cd146103995780633cd7f700146103ad5780633e158b0c146103c0578063402914f5146103c857806344a08411146103db578063462d0b2e146103fb57806346ea87af1461040e578063552ce1dc1461043157806355b6ed5c146104515780635a47a1a71461047c57806370a082311461048f578063790b5a6c146104b857806395d89b41146104cb5780639cb7de4b146104d3578063a3180217146104e6578063a8d9362714610506578063a9059cbb1461050e578063aaf5eb6814610521578063adc9772e14610534578063b89e45b314610547578063bfe109281461056a578063c2a672e01461057d578063c5fa273014610590578063cfad57a2146105a2578063dd62ed3e146105b5578063dfbaefb1146105ee578063e44b7558146105fb578063e95034251461060e578063f5d9d63e1461062e578063f5fc507614610659578063f76033d314610662578063f7c618c114610675575b600080fd5b61023d610238366004611db4565b61067d565b005b6102476106c9565b6040516102549190611e19565b60405180910390f35b61027061026b366004611e4c565b610757565b6040519015158152602001610254565b61023d61028e366004611e78565b61076e565b6102b36102a1366004611ecb565b600c6020526000908152604090205481565b604051908152602001610254565b6102b361271081565b6001546102dd906001600160a01b031681565b6040516102549190611ee8565b6102b36102f8366004611efc565b61079a565b6102b360085481565b61023d610314366004611f43565b6107c2565b6102b3610327366004611ecb565b610806565b61027061033a366004611db4565b610854565b6102b361034d366004611ecb565b60096020526000908152604090205481565b610367601281565b60405160ff9091168152602001610254565b6102b3610387366004611ecb565b600f6020526000908152604090205481565b60015461027090600160a01b900460ff1681565b61023d6103bb366004611f43565b6108ee565b61023d610934565b6102b36103d6366004611ecb565b610952565b6102b36103e9366004611ecb565b600e6020526000908152604090205481565b61023d610409366004611f76565b610aaa565b61027061041c366004611ecb565b60126020526000908152604090205460ff1681565b6102b361043f366004611ecb565b60076020526000908152604090205481565b6102b361045f366004611efc565b600a60209081526000928352604080842090915290825290205481565b61023d61048a366004611f43565b610bcc565b6102b361049d366004611ecb565b6001600160a01b031660009081526009602052604090205490565b61023d6104c6366004612057565b610c09565b610247610c25565b61023d6104e13660046120a8565b610c32565b6102b36104f4366004611ecb565b60106020526000908152604090205481565b6102b3610c87565b61027061051c366004611e4c565b610d05565b6102b368327cb2734119d3b7a9601e1b81565b61023d610542366004611e4c565b610d12565b610270610555366004611ecb565b60056020526000908152604090205460ff1681565b6004546102dd906001600160a01b031681565b61023d61058b366004611e4c565b610d5c565b60115461027090610100900460ff1681565b61023d6105b0366004611ecb565b610d98565b6102b36105c3366004611efc565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b6011546102709060ff1681565b61023d6106093660046120a8565b610de4565b6102b361061c366004611ecb565b600d6020526000908152604090205481565b6102b361063c366004611efc565b600660209081526000928352604080842090915290825290205481565b6102b3600b5481565b6011546102709062010000900460ff1681565b6102dd610e39565b6001546001600160a01b031633146106b05760405162461bcd60e51b81526004016106a7906120d6565b60405180910390fd5b6106c46001600160a01b0384168383610eb2565b505050565b600280546106d690612105565b80601f016020809104026020016040519081016040528092919081815260200182805461070290612105565b801561074f5780601f106107245761010080835404028352916020019161074f565b820191906000526020600020905b81548152906001019060200180831161073257829003601f168201915b505050505081565b6000610764338484610f0a565b5060015b92915050565b610776611040565b61077e61106a565b61078a848484846110c4565b6107946001600055565b50505050565b60006107a4611040565b6107ac61106a565b6107b683836112ca565b90506107686001600055565b6001546001600160a01b031633146107ec5760405162461bcd60e51b81526004016106a7906120d6565b601180549115156101000261ff0019909216919091179055565b6000610810611040565b60115462010000900460ff16156108395760405162461bcd60e51b81526004016106a79061213f565b61084333836112ca565b905061084f6001600055565b919050565b3360009081526012602052604081205460ff161561087f57610877848484611355565b5060016108e7565b60006108c983604051806060016040528060308152602001612359603091396001600160a01b0388166000908152600a6020908152604080832033845290915290205491906114ec565b90506108d6853383610f0a565b6108e1858585611355565b60019150505b9392505050565b6001546001600160a01b031633146109185760405162461bcd60e51b81526004016106a7906120d6565b60118054911515620100000262ff000019909216919091179055565b61093c611040565b6109466000611526565b6109506001600055565b565b6001600160a01b0381166000908152600c602052604081205480820361098f5750506001600160a01b03166000908152600d602052604090205490565b60085460048054604080516376f69fed60e11b81529051600093610a199368327cb2734119d3b7a9601e1b936001600160a01b039091169263eded3fda928281019260209291908290030181865afa1580156109ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a139190612180565b90611772565b90506000610a33610a2a83856117f4565b600b5490611833565b6001600160a01b0387166000908152600e6020526040902054909150610aa090610a819068327cb2734119d3b7a9601e1b90610a7b90610a74908690611890565b8890611772565b906117f4565b6001600160a01b0388166000908152600d602052604090205490611833565b9695505050505050565b6001546001600160a01b03163314610ad45760405162461bcd60e51b81526004016106a7906120d6565b600154600160a01b900460ff1615610b395760405162461bcd60e51b815260206004820152602260248201527f526577617264547261636b65723a20616c726561647920696e697469616c697a604482015261195960f21b60648201526084016106a7565b6001805460ff60a01b1916600160a01b17905560005b8251811015610ba8576000838281518110610b6c57610b6c612199565b6020908102919091018101516001600160a01b03166000908152600590915260409020805460ff19166001908117909155919091019050610b4f565b50600480546001600160a01b0319166001600160a01b039290921691909117905550565b6001546001600160a01b03163314610bf65760405162461bcd60e51b81526004016106a7906120d6565b6011805460ff1916911515919091179055565b610c11611040565b610c1961106a565b61078a848484846118d2565b600380546106d690612105565b6001546001600160a01b03163314610c5c5760405162461bcd60e51b81526004016106a7906120d6565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6000600460009054906101000a90046001600160a01b03166001600160a01b031663a8d936276040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d009190612180565b905090565b6000610764338484611355565b610d1a611040565b601154610100900460ff1615610d425760405162461bcd60e51b81526004016106a79061213f565b610d4e333384846118d2565b610d586001600055565b5050565b610d64611040565b601154610100900460ff1615610d8c5760405162461bcd60e51b81526004016106a79061213f565b610d4e338383336110c4565b6001546001600160a01b03163314610dc25760405162461bcd60e51b81526004016106a7906120d6565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314610e0e5760405162461bcd60e51b81526004016106a7906120d6565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000600460009054906101000a90046001600160a01b03166001600160a01b031663f7c618c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0091906121af565b6106c483846001600160a01b031663a9059cbb8585604051602401610ed89291906121cc565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611a07565b6001600160a01b038316610f755760405162461bcd60e51b815260206004820152602c60248201527f526577617264547261636b65723a20617070726f76652066726f6d207468652060448201526b7a65726f206164647265737360a01b60648201526084016106a7565b6001600160a01b038216610fde5760405162461bcd60e51b815260206004820152602a60248201527f526577617264547261636b65723a20617070726f766520746f20746865207a65604482015269726f206164647265737360b01b60648201526084016106a7565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60026000540361106357604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b3360009081526012602052604090205460ff166109505760405162461bcd60e51b81526020600482015260186024820152772932bbb0b9322a3930b1b5b2b91d103337b93134b23232b760411b60448201526064016106a7565b600082116110e45760405162461bcd60e51b81526004016106a7906121e5565b6001600160a01b03831660009081526005602052604090205460ff1661111c5760405162461bcd60e51b81526004016106a79061221c565b61112584611526565b6001600160a01b0384166000908152600c6020526040902054828110156111a25760405162461bcd60e51b815260206004820152602b60248201527f526577617264547261636b65723a205f616d6f756e742065786365656473207360448201526a1d185ad959105b5bdd5b9d60aa1b60648201526084016106a7565b6111ac8184611890565b6001600160a01b038087166000908152600c6020908152604080832094909455600681528382209288168252919091522054838110156112445760405162461bcd60e51b815260206004820152602d60248201527f526577617264547261636b65723a205f616d6f756e742065786365656473206460448201526c65706f73697442616c616e636560981b60648201526084016106a7565b61124e8185611890565b6001600160a01b038088166000908152600660209081526040808320938a16835292815282822093909355600790925290205461128b9085611890565b6001600160a01b0386166000908152600760205260409020556112ae8685611a61565b6112c26001600160a01b0386168486610eb2565b505050505050565b60006112d583611526565b6001600160a01b0383166000908152600d60205260408120805491905580156108e7576113158382611305610e39565b6001600160a01b03169190610eb2565b7f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d484826040516113469291906121cc565b60405180910390a19392505050565b6001600160a01b0383166113c15760405162461bcd60e51b815260206004820152602d60248201527f526577617264547261636b65723a207472616e736665722066726f6d2074686560448201526c207a65726f206164647265737360981b60648201526084016106a7565b6001600160a01b03821661142b5760405162461bcd60e51b815260206004820152602b60248201527f526577617264547261636b65723a207472616e7366657220746f20746865207a60448201526a65726f206164647265737360a81b60648201526084016106a7565b60115460ff161561143e5761143e61106a565b61147b816040518060600160405280602e8152602001612389602e91396001600160a01b03861660009081526009602052604090205491906114ec565b6001600160a01b0380851660009081526009602052604080822093909355908416815220546114aa9082611833565b6001600160a01b038084166000818152600960205260409081902093909355915190851690600080516020612339833981519152906110339085815260200190565b600081848411156115105760405162461bcd60e51b81526004016106a79190611e19565b50600061151d8486612276565b95945050505050565b6000600460009054906101000a90046001600160a01b03166001600160a01b031663e4fc6b6d6040518163ffffffff1660e01b81526004016020604051808303816000875af115801561157d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a19190612180565b600854600b549192509081158015906115ba5750600083115b156115eb576115e36115dc83610a7b8668327cb2734119d3b7a9601e1b611772565b8290611833565b600b81905590505b806000036115f95750505050565b6001600160a01b03841615610794576001600160a01b0384166000908152600c6020908152604080832054600e9092528220549091906116579068327cb2734119d3b7a9601e1b90610a7b90611650908790611890565b8590611772565b6001600160a01b0387166000908152600d60205260408120549192509061167e9083611833565b6001600160a01b0388166000908152600d60209081526040808320849055600e9091529020859055905080158015906116ce57506001600160a01b0387166000908152600c602052604090205415155b15611769576001600160a01b0387166000908152600f60205260408120546116f69084611833565b905061174361170982610a7b8787611772565b6001600160a01b038a166000908152600f602090815260408083205460109092529091205461173d918591610a7b91611772565b90611833565b6001600160a01b038916600090815260106020908152604080832093909355600f905220555b50505050505050565b60008260000361178457506000610768565b60006117908385612289565b90508261179d85836122a0565b146108e75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106a7565b60006108e783836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611b63565b60008061184083856122c2565b9050838110156108e75760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b60448201526064016106a7565b60006108e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114ec565b600081116118f25760405162461bcd60e51b81526004016106a7906121e5565b6001600160a01b03821660009081526005602052604090205460ff1661192a5760405162461bcd60e51b81526004016106a79061221c565b61193f6001600160a01b038316853084611b91565b61194883611526565b6001600160a01b0383166000908152600c602052604090205461196b9082611833565b6001600160a01b038085166000908152600c60209081526040808320949094556006815283822092861682529190915220546119a79082611833565b6001600160a01b03808516600090815260066020908152604080832093871683529281528282209390935560079092529020546119e49082611833565b6001600160a01b0383166000908152600760205260409020556107948382611bca565b6000611a1c6001600160a01b03841683611ca2565b90508051600014158015611a41575080806020019051810190611a3f91906122d5565b155b156106c45782604051635274afe760e01b81526004016106a79190611ee8565b6001600160a01b038216611ac95760405162461bcd60e51b815260206004820152602960248201527f526577617264547261636b65723a206275726e2066726f6d20746865207a65726044820152686f206164647265737360b81b60648201526084016106a7565b611b06816040518060600160405280602a815260200161230f602a91396001600160a01b03851660009081526009602052604090205491906114ec565b6001600160a01b038316600090815260096020526040902055600854611b2c9082611890565b6008556040518181526000906001600160a01b03841690600080516020612339833981519152906020015b60405180910390a35050565b60008183611b845760405162461bcd60e51b81526004016106a79190611e19565b50600061151d84866122a0565b6040516001600160a01b0384811660248301528381166044830152606482018390526107949186918216906323b872dd90608401610ed8565b6001600160a01b038216611c305760405162461bcd60e51b815260206004820152602760248201527f526577617264547261636b65723a206d696e7420746f20746865207a65726f206044820152666164647265737360c81b60648201526084016106a7565b600854611c3d9082611833565b6008556001600160a01b038216600090815260096020526040902054611c639082611833565b6001600160a01b03831660008181526009602052604080822093909355915190919060008051602061233983398151915290611b579085815260200190565b60606108e78383600084600080856001600160a01b03168486604051611cc891906122f2565b60006040518083038185875af1925050503d8060008114611d05576040519150601f19603f3d011682016040523d82523d6000602084013e611d0a565b606091505b5091509150610aa0868383606082611d2a57611d2582611d68565b6108e7565b8151158015611d4157506001600160a01b0384163b155b15611d615783604051639996b31560e01b81526004016106a79190611ee8565b50806108e7565b805115611d785780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b6001600160a01b0381168114611d9157600080fd5b803561084f81611d94565b600080600060608486031215611dc957600080fd5b8335611dd481611d94565b92506020840135611de481611d94565b929592945050506040919091013590565b60005b83811015611e10578181015183820152602001611df8565b50506000910152565b6020815260008251806020840152611e38816040850160208701611df5565b601f01601f19169190910160400192915050565b60008060408385031215611e5f57600080fd5b8235611e6a81611d94565b946020939093013593505050565b60008060008060808587031215611e8e57600080fd5b8435611e9981611d94565b93506020850135611ea981611d94565b9250604085013591506060850135611ec081611d94565b939692955090935050565b600060208284031215611edd57600080fd5b81356108e781611d94565b6001600160a01b0391909116815260200190565b60008060408385031215611f0f57600080fd5b8235611f1a81611d94565b91506020830135611f2a81611d94565b809150509250929050565b8015158114611d9157600080fd5b600060208284031215611f5557600080fd5b81356108e781611f35565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611f8957600080fd5b82356001600160401b03811115611f9f57600080fd5b8301601f81018513611fb057600080fd5b80356001600160401b03811115611fc957611fc9611f60565b604051600582901b90603f8201601f191681016001600160401b0381118282101715611ff757611ff7611f60565b60405291825260208184018101929081018884111561201557600080fd5b6020850194505b8385101561203b5761202d85611da9565b81526020948501940161201c565b50945061204e9250505060208401611da9565b90509250929050565b6000806000806080858703121561206d57600080fd5b843561207881611d94565b9350602085013561208881611d94565b9250604085013561209881611d94565b9396929550929360600135925050565b600080604083850312156120bb57600080fd5b82356120c681611d94565b91506020830135611f2a81611f35565b60208082526015908201527423b7bb32b93730b136329d103337b93134b23232b760591b604082015260600190565b600181811c9082168061211957607f821691505b60208210810361213957634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526021908201527f526577617264547261636b65723a20616374696f6e206e6f7420656e61626c656040820152601960fa1b606082015260800190565b60006020828403121561219257600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156121c157600080fd5b81516108e781611d94565b6001600160a01b03929092168252602082015260400190565b6020808252601e908201527f526577617264547261636b65723a20696e76616c6964205f616d6f756e740000604082015260600190565b60208082526024908201527f526577617264547261636b65723a20696e76616c6964205f6465706f7369745460408201526337b5b2b760e11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561076857610768612260565b808202811582820484141761076857610768612260565b6000826122bd57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561076857610768612260565b6000602082840312156122e757600080fd5b81516108e781611f35565b60008251612304818460208701611df5565b919091019291505056fe526577617264547261636b65723a206275726e20616d6f756e7420657863656564732062616c616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef526577617264547261636b65723a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526577617264547261636b65723a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a2646970667358221220bfb3ac3ad262c356b0088e17a79757913eeb92dd0d24237276b82170a5d191d064736f6c634300081b0033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000010466565202b205374616b656420434c500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056673434c50000000000000000000000000000000000000000000000000000000