0 txs
0 calls
constructor
constructor()
functions
cUsdc
viewfunction cUsdc() view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
liquidationValue
viewfunction liquidationValue() view returns (uint256)
navSlippageBP
viewfunction navSlippageBP() view returns (uint256)
netAssetValue
viewfunction netAssetValue() view returns (uint256)
poolSonneUsdc
viewfunction poolSonneUsdc() view returns (address)
PORTFOLIO_AGENT_ROLE
viewfunction PORTFOLIO_AGENT_ROLE() view returns (bytes32)
PORTFOLIO_MANAGER
viewfunction PORTFOLIO_MANAGER() view returns (bytes32)
portfolioManager
viewfunction portfolioManager() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
sonne
viewfunction sonne() view returns (address)
stakeSlippageBP
viewfunction stakeSlippageBP() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
swapSlippageBP
viewfunction swapSlippageBP() view returns (uint256)
unitroller
viewfunction unitroller() view returns (address)
usdc
viewfunction usdc() view returns (address)
velodromeRouter
viewfunction velodromeRouter() view returns (address)
claimRewards
nonpayablefunction claimRewards(address _to) returns (uint256)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setParams
nonpayablefunction setParams(tuple params)
setPortfolioManager
nonpayablefunction setPortfolioManager(address _value)
setSlippages
nonpayablefunction setSlippages(uint256 _swapSlippageBP, uint256 _navSlippageBP, uint256 _stakeSlippageBP)
stake
nonpayablefunction stake(address _asset, uint256 _amount)
unstake
nonpayablefunction unstake(address _asset, uint256 _amount, address _beneficiary, bool _targetIsZero) returns (uint256)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Initialized
event Initialized(uint8 version)
PortfolioManagerUpdated
event PortfolioManagerUpdated(address value)
Reward
event Reward(uint256 amount)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
SlippagesUpdated
event SlippagesUpdated(uint256 swapSlippageBP, uint256 navSlippageBP, uint256 stakeSlippageBP)
Stake
event Stake(uint256 amount)
StrategyUpdatedParams
event StrategyUpdatedParams()
Unstake
event Unstake(uint256 amount, uint256 amountReceived)
Upgraded
event Upgraded(address indexed implementation)
errors
No errors.
creation bytecode
0x60a0604052306080523480156200001557600080fd5b50600054610100900460ff1615808015620000375750600054600160ff909116105b8062000067575062000054306200014160201b620013831760201c565b15801562000067575060005460ff166001145b620000cf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff191660011790558015620000f3576000805461ff0019166101001790555b80156200013a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5062000150565b6001600160a01b03163b151590565b608051612fe562000188600039600081816106ac015281816106ec0152818161078b015281816107cb015261085a0152612fe56000f3fe6080604052600436106101d85760003560e01c80637d5f580211610102578063ae30c11011610095578063d08c96fc11610064578063d08c96fc1461052e578063d547741f1461054f578063ef5cfb8c1461056f578063f6f6b8811461058f57600080fd5b8063ae30c110146104b6578063bad1d3da146104d6578063bf52e080146104f7578063c0c2ae501461050d57600080fd5b8063a217fddf116100d1578063a217fddf14610461578063a3673b381461029f578063a440b21a14610476578063adc9772e1461049657600080fd5b80637d5f5802146103ea578063806b94051461040c5780638129fc1c1461042c57806391d148541461044157600080fd5b80633659cfe61161017a57806352d1902d1161014957806352d1902d1461036b5780635ca558f8146103805780635dbd733a14610396578063620b75df146103ca57600080fd5b80633659cfe6146102f6578063366ac47c146103165780633e413bee146103375780634f1ef2861461035857600080fd5b806324d057fd116101b657806324d057fd146102665780632576e65a1461029f5780632f2ff15d146102b457806336568abe146102d657600080fd5b806301ffc9a7146101dd578063119cd87914610212578063248a9ca314610236575b600080fd5b3480156101e957600080fd5b506101fd6101f8366004612827565b6105af565b60405190151581526020015b60405180910390f35b34801561021e57600080fd5b5061022860fd5481565b604051908152602001610209565b34801561024257600080fd5b50610228610251366004612851565b60009081526065602052604090206001015490565b34801561027257600080fd5b5061013254610287906001600160a01b031681565b6040516001600160a01b039091168152602001610209565b3480156102ab57600080fd5b506102286105e6565b3480156102c057600080fd5b506102d46102cf36600461287f565b6105f5565b005b3480156102e257600080fd5b506102d46102f136600461287f565b61061f565b34801561030257600080fd5b506102d46103113660046128af565b6106a2565b34801561032257600080fd5b5061013154610287906001600160a01b031681565b34801561034357600080fd5b5061012d54610287906001600160a01b031681565b6102d4610366366004612913565b610781565b34801561037757600080fd5b5061022861084d565b34801561038c57600080fd5b5061022860fe5481565b3480156103a257600080fd5b506102287fd67ad422505496469a1adf6cdf9e5ee92ac5d33992843c9ecc4b2f6d6cde913781565b3480156103d657600080fd5b5060fb54610287906001600160a01b031681565b3480156103f657600080fd5b50610228600080516020612f4983398151915281565b34801561041857600080fd5b506102d46104273660046129bb565b610900565b34801561043857600080fd5b506102d4610a9d565b34801561044d57600080fd5b506101fd61045c36600461287f565b610b67565b34801561046d57600080fd5b50610228600081565b34801561048257600080fd5b506102d46104913660046128af565b610b92565b3480156104a257600080fd5b506102d46104b13660046129d3565b610cc1565b3480156104c257600080fd5b506102d46104d13660046129ff565b610ec4565b3480156104e257600080fd5b5061013054610287906001600160a01b031681565b34801561050357600080fd5b5061022860fc5481565b34801561051957600080fd5b5061012e54610287906001600160a01b031681565b34801561053a57600080fd5b5061012f54610287906001600160a01b031681565b34801561055b57600080fd5b506102d461056a36600461287f565b61102a565b34801561057b57600080fd5b5061022861058a3660046128af565b61104f565b34801561059b57600080fd5b506102286105aa366004612a39565b6110d1565b60006001600160e01b03198216637965db0b60e01b14806105e057506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006105f0611392565b905090565b6000828152606560205260409020600101546106108161150d565b61061a8383611517565b505050565b6001600160a01b03811633146106945760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61069e828261159d565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106ea5760405162461bcd60e51b815260040161068b90612a8c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610733600080516020612f69833981519152546001600160a01b031690565b6001600160a01b0316146107595760405162461bcd60e51b815260040161068b90612ad8565b61076281611604565b6040805160008082526020820190925261077e9183919061160f565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107c95760405162461bcd60e51b815260040161068b90612a8c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610812600080516020612f69833981519152546001600160a01b031690565b6001600160a01b0316146108385760405162461bcd60e51b815260040161068b90612ad8565b61084182611604565b61069e8282600161160f565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108ed5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161068b565b50600080516020612f6983398151915290565b61090b600033610b67565b61094e5760405162461bcd60e51b81526020600482015260146024820152735265737472696374656420746f2061646d696e7360601b604482015260640161068b565b61095b60208201826128af565b61012d80546001600160a01b0319166001600160a01b039290921691909117905561098c60408201602083016128af565b61012e80546001600160a01b0319166001600160a01b03929092169190911790556109bd60608201604083016128af565b61012f80546001600160a01b0319166001600160a01b03929092169190911790556109ee60808201606083016128af565b61013080546001600160a01b0319166001600160a01b0392909216919091179055610a1f60a08201608083016128af565b61013180546001600160a01b0319166001600160a01b0392909216919091179055610a5060c0820160a083016128af565b61013280546001600160a01b0319166001600160a01b03929092169190911790556040517fea5646eb3528e525944447a4a97de700dd472298626e5c0481d1c82c3da86ea590600090a150565b600054610100900460ff1615808015610abd5750600054600160ff909116105b80610ad75750303b158015610ad7575060005460ff166001145b610af35760405162461bcd60e51b815260040161068b90612b24565b6000805460ff191660011790558015610b16576000805461ff0019166101001790555b610b1e61177a565b801561077e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b610b9d600033610b67565b610be05760405162461bcd60e51b81526020600482015260146024820152735265737472696374656420746f2061646d696e7360601b604482015260640161068b565b6001600160a01b038116610c365760405162461bcd60e51b815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f7765640000000000000000604482015260640161068b565b60fb54610c5b90600080516020612f49833981519152906001600160a01b031661102a565b610c73600080516020612f49833981519152826105f5565b60fb80546001600160a01b0319166001600160a01b0383169081179091556040519081527ff7b449fcd5cfb7379dcd34cb69428dd9f882033b15be33d83b42d91daa28eeb790602001610b5c565b610cd9600080516020612f4983398151915233610b67565b610cf55760405162461bcd60e51b815260040161068b90612b72565b6000610d64306001600160a01b031663a3673b386040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5c9190612ba9565b60fd5461185f565b6040516370a0823160e01b8152306004820152909150610dda9084906001600160a01b038216906370a0823190602401602060405180830381865afa158015610db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd59190612ba9565b611889565b80306001600160a01b031663a3673b386040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3d9190612ba9565b1015610e8b5760405162461bcd60e51b815260206004820152601f60248201527f5374726174656779204e4156206c657373207468616e20657870656374656400604482015260640161068b565b6040518281527f227a473b70d2f893cc7659219575c030a63b5743024fe1e0c1a680e708b1525a906020015b60405180910390a1505050565b610eee7fd67ad422505496469a1adf6cdf9e5ee92ac5d33992843c9ecc4b2f6d6cde913733610b67565b80610f86575060fb54604051632474521560e21b81527fd67ad422505496469a1adf6cdf9e5ee92ac5d33992843c9ecc4b2f6d6cde913760048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa158015610f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f869190612bc2565b610fdd5760405162461bcd60e51b815260206004820152602260248201527f5265737472696374656420746f20504f5254464f4c494f5f4147454e545f524f6044820152614c4560f01b606482015260840161068b565b60fc83905560fd82905560fe81905560408051848152602081018490529081018290527f116fbf1e97a2be629ad98abfb6c332733c8996c2dfb174dd2efe8440df381d1a90606001610eb7565b6000828152606560205260409020600101546110458161150d565b61061a838361159d565b6000611069600080516020612f4983398151915233610b67565b6110855760405162461bcd60e51b815260040161068b90612b72565b6000611090836119eb565b905080156105e0576040518181527f3ac0594a85a20354f9dc74f33728416d19ce00d04a406c108cc2dcf2cecea1349060200160405180910390a192915050565b60006110eb600080516020612f4983398151915233610b67565b6111075760405162461bcd60e51b815260040161068b90612b72565b600061114a306001600160a01b031663a3673b386040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d38573d6000803e3d6000fd5b905060008084156111715761115e866119eb565b905061116a8887611cad565b91506111e0565b61117c888888611df2565b9150868210156111e05760405162461bcd60e51b815260206004820152602960248201527f52657475726e65642076616c7565206c657373207468616e2072657175657374604482015268195908185b5bdd5b9d60ba1b606482015260840161068b565b82306001600160a01b031663a3673b386040518163ffffffff1660e01b8152600401602060405180830381865afa15801561121f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112439190612ba9565b10156112915760405162461bcd60e51b815260206004820152601f60248201527f5374726174656779204e4156206c657373207468616e20657870656374656400604482015260640161068b565b60405163a9059cbb60e01b81526001600160a01b0387811660048301526024820184905289169063a9059cbb906044016020604051808303816000875af11580156112e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113049190612bc2565b5060408051888152602081018490527f9045c2ac9b2026de8075f2701bbdde882cd5e830b3b1ead9a15b22f2b5b93742910160405180910390a18015611378576040518181527f3ac0594a85a20354f9dc74f33728416d19ce00d04a406c108cc2dcf2cecea1349060200160405180910390a15b509695505050505050565b6001600160a01b03163b151590565b6000670de0b6b3a764000061012f60009054906101000a90046001600160a01b03166001600160a01b031663182df0f56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114159190612ba9565b61012f546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561145e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114829190612ba9565b61148c9190612bf5565b6114969190612c0c565b61012d546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156114df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115039190612ba9565b6105f09190612c2e565b61077e8133611ed9565b6115218282610b67565b61069e5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556115593390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6115a78282610b67565b1561069e5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061069e8161150d565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116425761061a83611f32565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561169c575060408051601f3d908101601f1916820190925261169991810190612ba9565b60015b6116ff5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161068b565b600080516020612f69833981519152811461176e5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161068b565b5061061a838383611fce565b600054610100900460ff161580801561179a5750600054600160ff909116105b806117b45750303b1580156117b4575060005460ff166001145b6117d05760405162461bcd60e51b815260040161068b90612b24565b6000805460ff1916600117905580156117f3576000805461ff0019166101001790555b6117fb611ff3565b611803611ff3565b61180e600033611517565b601460fc81905560fd55600460fe55801561077e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610b5c565b600061271061186e8382612c41565b6118789085612bf5565b6118829190612c0c565b9392505050565b61012d546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156118d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f79190612ba9565b61012d5461012f5460405163095ea7b360e01b81526001600160a01b03918216600482015260248101849052929350169063095ea7b3906044016020604051808303816000875af1158015611950573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119749190612bc2565b5061012f5460405163140e25ad60e31b8152600481018390526001600160a01b039091169063a0712d68906024016020604051808303816000875af11580156119c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e59190612ba9565b50505050565b61012f546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611a39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5d9190612ba9565b1115611b195760408051600180825281830190925260009160208083019080368337505061012f5482519293506001600160a01b031691839150600090611aa657611aa6612c54565b6001600160a01b0392831660209182029290920101526101305460405162e1ed9760e51b8152911690631c3db2e090611ae59030908590600401612c6a565b600060405180830381600087803b158015611aff57600080fd5b505af1158015611b13573d6000803e3d6000fd5b50505050505b61012e546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8b9190612ba9565b90508015611c26576101315461012e5461012d5461013254600093611bc7936001600160a01b0391821693908216929082169186911687612060565b90508015611c24576101315461012e5461012d5461013254611c17936001600160a01b039081169381169281169160009116876064611c07896063612bf5565b611c119190612c0c565b30612274565b611c219084612c2e565b92505b505b8115611ca65761012d5460405163a9059cbb60e01b81526001600160a01b038681166004830152602482018590529091169063a9059cbb906044016020604051808303816000875af1158015611c80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca49190612bc2565b505b5092915050565b61012f546040516370a0823160e01b81523060048201526000916001600160a01b03169063db006a759082906370a0823190602401602060405180830381865afa158015611cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d239190612ba9565b6040518263ffffffff1660e01b8152600401611d4191815260200190565b6020604051808303816000875af1158015611d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d849190612ba9565b5061012d546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611dce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118829190612ba9565b61012f5460405163852a12e360e01b8152600481018490526000916001600160a01b03169063852a12e3906024016020604051808303816000875af1158015611e3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e639190612ba9565b5061012d546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611ead573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed19190612ba9565b949350505050565b611ee38282610b67565b61069e57611ef081612507565b611efb836020612519565b604051602001611f0c929190612cea565b60408051601f198184030181529082905262461bcd60e51b825261068b91600401612d5f565b6001600160a01b0381163b611f9f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161068b565b600080516020612f6983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611fd7836126b5565b600082511180611fe45750805b1561061a576119e583836126f5565b600054610100900460ff1661205e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161068b565b565b604080516001808252818301909252600091829190816020015b60408051608081018252600080825260208083018290529282018190526060820152825260001990920191018161207a57905050905086816000815181106120c4576120c4612c54565b6020026020010151600001906001600160a01b031690816001600160a01b03168152505085816000815181106120fc576120fc612c54565b6020026020010151602001906001600160a01b031690816001600160a01b031681525050848160008151811061213457612134612c54565b60200260200101516040019015159081151581525050836001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ac9190612d92565b816000815181106121bf576121bf612c54565b60209081029190910101516001600160a01b03918216606090910152604051631542686b60e21b81526000918a1690635509a1ac906122049087908690600401612e1a565b600060405180830381865afa158015612221573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122499190810190612e33565b90508060018151811061225e5761225e612c54565b6020026020010151925050509695505050505050565b60405163095ea7b360e01b81526001600160a01b038981166004830152602482018590526000919089169063095ea7b3906044016020604051808303816000875af11580156122c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122eb9190612bc2565b50604080516001808252818301909252600091816020015b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181612303579050509050888160008151811061234d5761234d612c54565b6020026020010151600001906001600160a01b031690816001600160a01b031681525050878160008151811061238557612385612c54565b6020026020010151602001906001600160a01b031690816001600160a01b03168152505086816000815181106123bd576123bd612c54565b60200260200101516040019015159081151581525050856001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612411573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124359190612d92565b8160008151811061244857612448612c54565b60209081029190910101516001600160a01b0391821660609091015260405163cac88ea960e01b81526000918c169063cac88ea990612493908990899087908a904290600401612ed9565b6000604051808303816000875af11580156124b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526124da9190810190612e33565b9050806001815181106124ef576124ef612c54565b60200260200101519250505098975050505050505050565b60606105e06001600160a01b03831660145b60606000612528836002612bf5565b612533906002612c2e565b67ffffffffffffffff81111561254b5761254b6128cc565b6040519080825280601f01601f191660200182016040528015612575576020820181803683370190505b509050600360fc1b8160008151811061259057612590612c54565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106125bf576125bf612c54565b60200101906001600160f81b031916908160001a90535060006125e3846002612bf5565b6125ee906001612c2e565b90505b6001811115612666576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061262257612622612c54565b1a60f81b82828151811061263857612638612c54565b60200101906001600160f81b031916908160001a90535060049490941c9361265f81612f15565b90506125f1565b5083156118825760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161068b565b6126be81611f32565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b61275d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161068b565b600080846001600160a01b0316846040516127789190612f2c565b600060405180830381855af49150503d80600081146127b3576040519150601f19603f3d011682016040523d82523d6000602084013e6127b8565b606091505b50915091506127e08282604051806060016040528060278152602001612f89602791396127e9565b95945050505050565b606083156127f8575081611882565b611882838381511561280d5781518083602001fd5b8060405162461bcd60e51b815260040161068b9190612d5f565b60006020828403121561283957600080fd5b81356001600160e01b03198116811461188257600080fd5b60006020828403121561286357600080fd5b5035919050565b6001600160a01b038116811461077e57600080fd5b6000806040838503121561289257600080fd5b8235915060208301356128a48161286a565b809150509250929050565b6000602082840312156128c157600080fd5b81356118828161286a565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561290b5761290b6128cc565b604052919050565b6000806040838503121561292657600080fd5b82356129318161286a565b915060208381013567ffffffffffffffff8082111561294f57600080fd5b818601915086601f83011261296357600080fd5b813581811115612975576129756128cc565b612987601f8201601f191685016128e2565b9150808252878482850101111561299d57600080fd5b80848401858401376000848284010152508093505050509250929050565b600060c082840312156129cd57600080fd5b50919050565b600080604083850312156129e657600080fd5b82356129f18161286a565b946020939093013593505050565b600080600060608486031215612a1457600080fd5b505081359360208301359350604090920135919050565b801515811461077e57600080fd5b60008060008060808587031215612a4f57600080fd5b8435612a5a8161286a565b9350602085013592506040850135612a718161286a565b91506060850135612a8181612a2b565b939692955090935050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252601f908201527f5265737472696374656420746f20504f5254464f4c494f5f4d414e4147455200604082015260600190565b600060208284031215612bbb57600080fd5b5051919050565b600060208284031215612bd457600080fd5b815161188281612a2b565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176105e0576105e0612bdf565b600082612c2957634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156105e0576105e0612bdf565b818103818111156105e0576105e0612bdf565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038381168252604060208084018290528451918401829052600092858201929091906060860190855b81811015612cb8578551851683529483019491830191600101612c9a565b509098975050505050505050565b60005b83811015612ce1578181015183820152602001612cc9565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612d22816017850160208801612cc6565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612d53816028840160208801612cc6565b01602801949350505050565b6020815260008251806020840152612d7e816040850160208701612cc6565b601f01601f19169190910160400192915050565b600060208284031215612da457600080fd5b81516118828161286a565b600081518084526020808501945080840160005b83811015612e0f57815180516001600160a01b039081168952848201518116858a01526040808301511515908a0152606091820151169088015260809096019590820190600101612dc3565b509495945050505050565b828152604060208201526000611ed16040830184612daf565b60006020808385031215612e4657600080fd5b825167ffffffffffffffff80821115612e5e57600080fd5b818501915085601f830112612e7257600080fd5b815181811115612e8457612e846128cc565b8060051b9150612e958483016128e2565b8181529183018401918481019088841115612eaf57600080fd5b938501935b83851015612ecd57845182529385019390850190612eb4565b98975050505050505050565b85815284602082015260a060408201526000612ef860a0830186612daf565b6001600160a01b0394909416606083015250608001529392505050565b600081612f2457612f24612bdf565b506000190190565b60008251612f3e818460208701612cc6565b919091019291505056fe90c2aa7471c04182221f68e80c07ab1e5946e4c63f8693e14ca40385d529f051360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122089bb5c81e5e13e4d9d54c98b2230fe537ca7c386e62ed820c59d75b13668910a64736f6c63430008110033