[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" } ], "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": 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": [], "name": "acceptGov", "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": "", "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": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isHandler", "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": "pendingGov", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "uint256", "name": "_isDepositToken", "type": "uint256" } ], "name": "setDepositToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_handler", "type": "address" }, { "internalType": "uint256", "name": "_isActive", "type": "uint256" } ], "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": "_gov", "type": "address" } ], "name": "setPendingGov", "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" } ]
60806040523480156200001157600080fd5b5060405162002761380380620027618339810160408190526200003491620001f2565b6001600081905580546001600160a01b031916331790558151620000609060039060208501906200007f565b508051620000769060049060208401906200007f565b50505062000299565b8280546200008d906200025c565b90600052602060002090601f016020900481019282620000b15760008555620000fc565b82601f10620000cc57805160ff1916838001178555620000fc565b82800160010185558215620000fc579182015b82811115620000fc578251825591602001919060010190620000df565b506200010a9291506200010e565b5090565b5b808211156200010a57600081556001016200010f565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200014d57600080fd5b81516001600160401b03808211156200016a576200016a62000125565b604051601f8301601f19908116603f0116810190828211818310171562000195576200019562000125565b81604052838152602092508683858801011115620001b257600080fd5b600091505b83821015620001d65785820183015181830184015290820190620001b7565b83821115620001e85760008385830101525b9695505050505050565b600080604083850312156200020657600080fd5b82516001600160401b03808211156200021e57600080fd5b6200022c868387016200013b565b935060208501519150808211156200024357600080fd5b5062000252858286016200013b565b9150509250929050565b600181811c908216806200027157607f821691505b602082108114156200029357634e487b7160e01b600052602260045260246000fd5b50919050565b6124b880620002a96000396000f3fe608060405234801561001057600080fd5b50600436106102a05760003560e01c80635a47a1a711610167578063bfe10928116100ce578063e950342511610087578063e950342514610683578063efdf0bb0146106a3578063f5d9d63e146106b6578063f5fc5076146106e1578063f76033d3146106ea578063f7c618c1146106fd57600080fd5b8063bfe10928146105f2578063c2a672e014610605578063c5fa273014610618578063dd62ed3e1461062a578063dfbaefb114610663578063e29b2c6a1461067057600080fd5b8063a318021711610120578063a318021714610570578063a8d9362714610590578063a9059cbb14610598578063aaf5eb68146105ab578063adc9772e146105bf578063b89e45b3146105d257600080fd5b80635a47a1a7146104fe57806370a0823114610511578063790b5a6c1461053a5780637bc6729b1461054d57806385e0dc451461055557806395d89b411461056857600080fd5b8063252408101161020b578063402914f5116101c4578063402914f51461044d57806344a0841114610460578063462d0b2e1461048057806346ea87af14610493578063552ce1dc146104b357806355b6ed5c146104d357600080fd5b806325240810146103c557806327e235e3146103d8578063313ce567146103f85780633792def3146104125780633cd7f700146104325780633e158b0c1461044557600080fd5b806312d43a511161025d57806312d43a511461034557806313e82e7a1461037057806318160ddd146103835780631d30d5bc1461038c5780631e83409a1461039f57806323b872dd146103b257600080fd5b806301e33667146102a557806306fdde03146102ba578063095ea7b3146102d8578063098bf59d146102fb57806310c1c1031461030e578063126082cf1461033c575b600080fd5b6102b86102b3366004611f37565b610705565b005b6102c2610751565b6040516102cf9190611fa4565b60405180910390f35b6102eb6102e6366004611fd7565b6107df565b60405190151581526020016102cf565b6102b8610309366004612003565b6107f6565b61032e61031c366004612056565b600d6020526000908152604090205481565b6040519081526020016102cf565b61032e61271081565b600154610358906001600160a01b031681565b6040516001600160a01b0390911681526020016102cf565b61032e61037e366004612073565b610822565b61032e60095481565b6102b861039a3660046120ba565b61084a565b61032e6103ad366004612056565b61088e565b6102eb6103c0366004611f37565b6108dc565b600254610358906001600160a01b031681565b61032e6103e6366004612056565b600a6020526000908152604090205481565b610400601281565b60405160ff90911681526020016102cf565b61032e610420366004612056565b60106020526000908152604090205481565b6102b86104403660046120ba565b610925565b6102b861096b565b61032e61045b366004612056565b610989565b61032e61046e366004612056565b600f6020526000908152604090205481565b6102b861048e3660046120ed565b610afc565b61032e6104a1366004612056565b60136020526000908152604090205481565b61032e6104c1366004612056565b60086020526000908152604090205481565b61032e6104e1366004612073565b600b60209081526000928352604080842090915290825290205481565b6102b861050c3660046120ba565b610ba4565b61032e61051f366004612056565b6001600160a01b03166000908152600a602052604090205490565b6102b86105483660046121c4565b610be1565b6102b8610bfd565b6102b8610563366004611fd7565b610c95565b6102c2610cdb565b61032e61057e366004612056565b60116020526000908152604090205481565b61032e610ce8565b6102eb6105a6366004611fd7565b610d6a565b61032e6c0c9f2c9cd04674edea4000000081565b6102b86105cd366004611fd7565b610d77565b61032e6105e0366004612056565b60066020526000908152604090205481565b600554610358906001600160a01b031681565b6102b8610613366004611fd7565b610dc1565b6012546102eb90610100900460ff1681565b61032e610638366004612073565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b6012546102eb9060ff1681565b6102b861067e366004611fd7565b610dfd565b61032e610691366004612056565b600e6020526000908152604090205481565b6102b86106b1366004612056565b610e43565b61032e6106c4366004612073565b600760209081526000928352604080842090915290825290205481565b61032e600c5481565b6012546102eb9062010000900460ff1681565b610358610e8f565b6001546001600160a01b031633146107385760405162461bcd60e51b815260040161072f90612215565b60405180910390fd5b61074c6001600160a01b0384168383610f0c565b505050565b6003805461075e90612244565b80601f016020809104026020016040519081016040528092919081815260200182805461078a90612244565b80156107d75780601f106107ac576101008083540402835291602001916107d7565b820191906000526020600020905b8154815290600101906020018083116107ba57829003601f168201915b505050505081565b60006107ec338484610f6f565b5060015b92915050565b6107fe6110a5565b6108066110ff565b6108128484848461115b565b61081c6001600055565b50505050565b600061082c6110a5565b6108346110ff565b61083e838361138e565b90506107f06001600055565b6001546001600160a01b031633146108745760405162461bcd60e51b815260040161072f90612215565b601280549115156101000261ff0019909216919091179055565b60006108986110a5565b60125462010000900460ff16156108c15760405162461bcd60e51b815260040161072f9061227f565b6108cb338361138e565b90506108d76001600055565b919050565b3360009081526013602052604081205415610904576108fc848484611422565b50600161091e565b61090f8433846115cb565b61091a848484611422565b5060015b9392505050565b6001546001600160a01b0316331461094f5760405162461bcd60e51b815260040161072f90612215565b60128054911515620100000262ff000019909216919091179055565b6109736110a5565b61097d6000611670565b6109876001600055565b565b6001600160a01b0381166000908152600d6020526040812054806109c45750506001600160a01b03166000908152600e602052604090205490565b600060095490506000610a6a6c0c9f2c9cd04674edea40000000600560009054906101000a90046001600160a01b03166001600160a01b031663eded3fda6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a2c57600080fd5b505afa158015610a40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6491906122c0565b906118be565b90506000610a84610a7b83856118ca565b600c54906118d6565b6001600160a01b0387166000908152600f6020526040902054909150610af290610ad3906c0c9f2c9cd04674edea4000000090610acd90610ac69086906118e2565b88906118be565b906118ca565b6001600160a01b0388166000908152600e6020526040902054906118d6565b9695505050505050565b6001546001600160a01b03163314610b265760405162461bcd60e51b815260040161072f90612215565b60005b8251811015610b80576000838281518110610b4657610b466122d9565b6020908102919091018101516001600160a01b03166000908152600690915260409020600190555080610b7881612305565b915050610b29565b50600580546001600160a01b0319166001600160a01b039290921691909117905550565b6001546001600160a01b03163314610bce5760405162461bcd60e51b815260040161072f90612215565b6012805460ff1916911515919091179055565b610be96110a5565b610bf16110ff565b610812848484846118ee565b60025433906001600160a01b03168114610c675760405162461bcd60e51b815260206004820152602560248201527f476f7665726e61626c653a2063616c6c6572206973206e6f742070656e64696e604482015264339033b7bb60d91b606482015260840161072f565b600280546001600160a01b0319908116909155600180549091166001600160a01b0392909216919091179055565b6001546001600160a01b03163314610cbf5760405162461bcd60e51b815260040161072f90612215565b6001600160a01b03909116600090815260066020526040902055565b6004805461075e90612244565b6005546040805163a8d9362760e01b815290516000926001600160a01b03169163a8d93627916004808301926020929190829003018186803b158015610d2d57600080fd5b505afa158015610d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6591906122c0565b905090565b60006107ec338484611422565b610d7f6110a5565b601254610100900460ff1615610da75760405162461bcd60e51b815260040161072f9061227f565b610db3333384846118ee565b610dbd6001600055565b5050565b610dc96110a5565b601254610100900460ff1615610df15760405162461bcd60e51b815260040161072f9061227f565b610db33383833361115b565b6001546001600160a01b03163314610e275760405162461bcd60e51b815260040161072f90612215565b6001600160a01b03909116600090815260136020526040902055565b6001546001600160a01b03163314610e6d5760405162461bcd60e51b815260040161072f90612215565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6005546040805163f7c618c160e01b815290516000926001600160a01b03169163f7c618c1916004808301926020929190829003018186803b158015610ed457600080fd5b505afa158015610ee8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d659190612320565b6040516001600160a01b03831660248201526044810182905261074c90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611a50565b6001600160a01b038316610fda5760405162461bcd60e51b815260206004820152602c60248201527f526577617264547261636b65723a20617070726f76652066726f6d207468652060448201526b7a65726f206164647265737360a01b606482015260840161072f565b6001600160a01b0382166110435760405162461bcd60e51b815260206004820152602a60248201527f526577617264547261636b65723a20617070726f766520746f20746865207a65604482015269726f206164647265737360b01b606482015260840161072f565b6001600160a01b038381166000818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600260005414156110f85760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161072f565b6002600055565b336000908152601360205260409020546109875760405162461bcd60e51b815260206004820152601860248201527f526577617264547261636b65723a20666f7262696464656e0000000000000000604482015260640161072f565b600082116111ab5760405162461bcd60e51b815260206004820152601e60248201527f526577617264547261636b65723a20696e76616c6964205f616d6f756e740000604482015260640161072f565b6001600160a01b0383166000908152600660205260409020546111e05760405162461bcd60e51b815260040161072f9061233d565b6111e984611670565b6001600160a01b0384166000908152600d6020526040902054828110156112665760405162461bcd60e51b815260206004820152602b60248201527f526577617264547261636b65723a205f616d6f756e742065786365656473207360448201526a1d185ad959105b5bdd5b9d60aa1b606482015260840161072f565b61127081846118e2565b6001600160a01b038087166000908152600d6020908152604080832094909455600781528382209288168252919091522054838110156113085760405162461bcd60e51b815260206004820152602d60248201527f526577617264547261636b65723a205f616d6f756e742065786365656473206460448201526c65706f73697442616c616e636560981b606482015260840161072f565b61131281856118e2565b6001600160a01b038088166000908152600760209081526040808320938a16835292815282822093909355600890925290205461134f90856118e2565b6001600160a01b0386166000908152600860205260409020556113728685611b25565b6113866001600160a01b0386168486610f0c565b505050505050565b600061139983611670565b6001600160a01b0383166000908152600e602052604081208054919055801561091e576113d983826113c9610e8f565b6001600160a01b03169190610f0c565b604080516001600160a01b0386168152602081018390527f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4910160405180910390a19392505050565b6001600160a01b03831661148e5760405162461bcd60e51b815260206004820152602d60248201527f526577617264547261636b65723a207472616e736665722066726f6d2074686560448201526c207a65726f206164647265737360981b606482015260840161072f565b6001600160a01b0382166114f85760405162461bcd60e51b815260206004820152602b60248201527f526577617264547261636b65723a207472616e7366657220746f20746865207a60448201526a65726f206164647265737360a81b606482015260840161072f565b60125460ff161561150b5761150b6110ff565b611548816040518060600160405280602e8152602001612455602e91396001600160a01b0386166000908152600a60205260409020549190611c39565b6001600160a01b038085166000908152600a6020526040808220939093559084168152205461157790826118d6565b6001600160a01b038084166000818152600a602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110989085815260200190565b6001600160a01b038381166000908152600b6020908152604080832093861683529290522054600019811461081c57818110156116635760405162461bcd60e51b815260206004820152603060248201527f526577617264547261636b65723a207472616e7366657220616d6f756e74206560448201526f78636565647320616c6c6f77616e636560801b606482015260840161072f565b61081c8484848403610f6f565b6005546040805163e4fc6b6d60e01b815290516000926001600160a01b03169163e4fc6b6d91600480830192602092919082900301818787803b1580156116b657600080fd5b505af11580156116ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ee91906122c0565b600954600c549192509081158015906117075750600083115b156117395761173161172a83610acd866c0c9f2c9cd04674edea400000006118be565b82906118d6565b600c81905590505b806117445750505050565b6001600160a01b0384161561081c576001600160a01b0384166000908152600d6020908152604080832054600f9092528220549091906117a3906c0c9f2c9cd04674edea4000000090610acd9061179c9087906118e2565b85906118be565b6001600160a01b0387166000908152600e6020526040812054919250906117ca90836118d6565b6001600160a01b0388166000908152600e60209081526040808320849055600f90915290208590559050801580159061181a57506001600160a01b0387166000908152600d602052604090205415155b156118b5576001600160a01b03871660009081526010602052604081205461184290846118d6565b905061188f61185582610acd87876118be565b6001600160a01b038a16600090815260106020908152604080832054601190925290912054611889918591610acd916118be565b906118d6565b6001600160a01b0389166000908152601160209081526040808320939093556010905220555b50505050505050565b600061091e8284612381565b600061091e82846123a0565b600061091e82846123c2565b600061091e82846123da565b6000811161193e5760405162461bcd60e51b815260206004820152601e60248201527f526577617264547261636b65723a20696e76616c6964205f616d6f756e740000604482015260640161072f565b6001600160a01b0382166000908152600660205260409020546119735760405162461bcd60e51b815260040161072f9061233d565b6119886001600160a01b038316853084611c65565b61199183611670565b6001600160a01b0383166000908152600d60205260409020546119b490826118d6565b6001600160a01b038085166000908152600d60209081526040808320949094556007815283822092861682529190915220546119f090826118d6565b6001600160a01b0380851660009081526007602090815260408083209387168352928152828220939093556008909252902054611a2d90826118d6565b6001600160a01b03831660009081526008602052604090205561081c8382611c9d565b6000611aa5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611d879092919063ffffffff16565b9050805160001480611ac6575080806020019051810190611ac691906123f1565b61074c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161072f565b6001600160a01b038216611b8d5760405162461bcd60e51b815260206004820152602960248201527f526577617264547261636b65723a206275726e2066726f6d20746865207a65726044820152686f206164647265737360b81b606482015260840161072f565b611bca816040518060600160405280602a815260200161242b602a91396001600160a01b0385166000908152600a60205260409020549190611c39565b6001600160a01b0383166000908152600a6020526040902055600954611bf090826118e2565b6009556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b60008184841115611c5d5760405162461bcd60e51b815260040161072f9190611fa4565b505050900390565b6040516001600160a01b038085166024830152831660448201526064810182905261081c9085906323b872dd60e01b90608401610f38565b6001600160a01b038216611d035760405162461bcd60e51b815260206004820152602760248201527f526577617264547261636b65723a206d696e7420746f20746865207a65726f206044820152666164647265737360c81b606482015260840161072f565b600954611d1090826118d6565b6009556001600160a01b0382166000908152600a6020526040902054611d3690826118d6565b6001600160a01b0383166000818152600a60205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c2d9085815260200190565b6060611d968484600085611d9e565b949350505050565b606082471015611dff5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161072f565b600080866001600160a01b03168587604051611e1b919061240e565b60006040518083038185875af1925050503d8060008114611e58576040519150601f19603f3d011682016040523d82523d6000602084013e611e5d565b606091505b5091509150611e6e87838387611e79565b979650505050505050565b60608315611ee5578251611ede576001600160a01b0385163b611ede5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161072f565b5081611d96565b611d968383815115611efa5781518083602001fd5b8060405162461bcd60e51b815260040161072f9190611fa4565b6001600160a01b0381168114611f2957600080fd5b50565b80356108d781611f14565b600080600060608486031215611f4c57600080fd5b8335611f5781611f14565b92506020840135611f6781611f14565b929592945050506040919091013590565b60005b83811015611f93578181015183820152602001611f7b565b8381111561081c5750506000910152565b6020815260008251806020840152611fc3816040850160208701611f78565b601f01601f19169190910160400192915050565b60008060408385031215611fea57600080fd5b8235611ff581611f14565b946020939093013593505050565b6000806000806080858703121561201957600080fd5b843561202481611f14565b9350602085013561203481611f14565b925060408501359150606085013561204b81611f14565b939692955090935050565b60006020828403121561206857600080fd5b813561091e81611f14565b6000806040838503121561208657600080fd5b823561209181611f14565b915060208301356120a181611f14565b809150509250929050565b8015158114611f2957600080fd5b6000602082840312156120cc57600080fd5b813561091e816120ac565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561210057600080fd5b823567ffffffffffffffff8082111561211857600080fd5b818501915085601f83011261212c57600080fd5b8135602082821115612140576121406120d7565b8160051b604051601f19603f83011681018181108682111715612165576121656120d7565b60405292835281830193508481018201928984111561218357600080fd5b948201945b838610156121a85761219986611f2c565b85529482019493820193612188565b96506121b79050878201611f2c565b9450505050509250929050565b600080600080608085870312156121da57600080fd5b84356121e581611f14565b935060208501356121f581611f14565b9250604085013561220581611f14565b9396929550929360600135925050565b60208082526015908201527423b7bb32b93730b136329d103337b93134b23232b760591b604082015260600190565b600181811c9082168061225857607f821691505b6020821081141561227957634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526021908201527f526577617264547261636b65723a20616374696f6e206e6f7420656e61626c656040820152601960fa1b606082015260800190565b6000602082840312156122d257600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612319576123196122ef565b5060010190565b60006020828403121561233257600080fd5b815161091e81611f14565b60208082526024908201527f526577617264547261636b65723a20696e76616c6964205f6465706f7369745460408201526337b5b2b760e11b606082015260800190565b600081600019048311821515161561239b5761239b6122ef565b500290565b6000826123bd57634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156123d5576123d56122ef565b500190565b6000828210156123ec576123ec6122ef565b500390565b60006020828403121561240357600080fd5b815161091e816120ac565b60008251612420818460208701611f78565b919091019291505056fe526577617264547261636b65723a206275726e20616d6f756e7420657863656564732062616c616e6365526577617264547261636b65723a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a264697066735822122015d9fbdbc7481047ffd647b1227ce5df9cb183302c6cb57c16494611d0b493d564736f6c634300080800330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000185374616b6564202b20426f6e7573202b2046656520455452000000000000000000000000000000000000000000000000000000000000000000000000000000067362664554520000000000000000000000000000000000000000000000000000