17 txs
19 calls
constructor
constructor(address _management, address _performanceFeeRecipient, address _keeper, address _sms)
functions
aprOracle
viewfunction aprOracle() view returns (address)
deployments
viewfunction deployments(address) view returns (address)
isDeployedStrategy
viewfunction isDeployedStrategy(address _strategy) view returns (bool)
keeper
viewfunction keeper() view returns (address)
management
viewfunction management() view returns (address)
performanceFeeRecipient
viewfunction performanceFeeRecipient() view returns (address)
SMS
viewfunction SMS() view returns (address)
newMorphoCompounder
nonpayablefunction newMorphoCompounder(address _vault) returns (address)
setAddresses
nonpayablefunction setAddresses(address _management, address _performanceFeeRecipient, address _keeper)
setOracle
nonpayablefunction setOracle(address _oracle)
events
NewMorphoCompounder
event NewMorphoCompounder(address indexed strategy, address indexed asset)
errors
AlreadyDeployed
error AlreadyDeployed(address _strategy)
creation bytecode
0x60a060405234801561000f575f80fd5b50604051613a1a380380613a1a83398101604081905261002e91610091565b5f80546001600160a01b03199081166001600160a01b0396871617909155600180548216948616949094179093556002805490931691841691909117909155166080526100e2565b80516001600160a01b038116811461008c575f80fd5b919050565b5f805f80608085870312156100a4575f80fd5b6100ad85610076565b93506100bb60208601610076565b92506100c960408601610076565b91506100d760608601610076565b905092959194509250565b60805161391a6101005f395f818160de01526105b4015261391a5ff3fe608060405234801562000010575f80fd5b5060043610620000a8575f3560e01c806388a8d602116200006b57806388a8d602146200017457806394990bd81462000187578063aae985db146200019b578063aced166114620001b2578063ed27f7c914620001c6575f80fd5b80630d00442414620000ac578063111ebcfb14620000d8578063316b37391462000119578063363bf96414620001445780637adbf973146200015d575b5f80fd5b620000c3620000bd366004620007d4565b620001da565b60405190151581526020015b60405180910390f35b620001007f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001620000cf565b620001006200012a366004620007d4565b60046020525f90815260409020546001600160a01b031681565b6200015b62000155366004620007f9565b62000266565b005b6200015b6200016e366004620007d4565b620002f1565b5f5462000100906001600160a01b031681565b60035462000100906001600160a01b031681565b62000100620001ac366004620007d4565b6200035c565b60025462000100906001600160a01b031681565b60015462000100906001600160a01b031681565b5f80826001600160a01b031663fbfa77cf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000219573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200023f919062000848565b6001600160a01b039081165f90815260046020526040902054811693169290921492915050565b5f546001600160a01b03163314620002b35760405162461bcd60e51b815260206004820152600b60248201526a085b585b9859d95b595b9d60aa1b60448201526064015b60405180910390fd5b5f80546001600160a01b039485166001600160a01b031991821617909155600180549385169382169390931790925560028054919093169116179055565b5f546001600160a01b031633146200033a5760405162461bcd60e51b815260206004820152600b60248201526a085b585b9859d95b595b9d60aa1b6044820152606401620002aa565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038181165f9081526004602052604081205490911615620003bb576001600160a01b038281165f908152600460208190526040918290205491516329ab51bf60e01b81529190921691810191909152602401620002aa565b5f826001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200041f919062000848565b90505f836001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa1580156200045e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200048791908101906200089e565b60405160200162000499919062000952565b60405160208183030381529060405290505f828286604051620004bc90620007ae565b620004ca9392919062000997565b604051809103905ff080158015620004e4573d5f803e3d5ffd5b5060015460405163352f8d5160e11b81526001600160a01b039182166004820152919250821690636a5f1aa2906024015f604051808303815f87803b1580156200052c575f80fd5b505af11580156200053f573d5f803e3d5ffd5b5050600254604051633a43a3f360e11b81526001600160a01b039182166004820152908416925063748747e691506024015f604051808303815f87803b15801562000588575f80fd5b505af11580156200059b573d5f803e3d5ffd5b5050604051630d768ce560e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152841692506335da339491506024015f604051808303815f87803b15801562000600575f80fd5b505af115801562000613573d5f803e3d5ffd5b5050604051636fb4d91560e11b81526203f48060048201526001600160a01b038416925063df69b22a91506024015f604051808303815f87803b15801562000659575f80fd5b505af11580156200066c573d5f803e3d5ffd5b5050600354604051632e1c759d60e11b81526001600160a01b0380861660048301529091166024820152731981ad9f44f2ea9add2dc4ad7d075c102c70af929250635c38eb3a91506044015f604051808303815f87803b158015620006cf575f80fd5b505af1158015620006e2573d5f803e3d5ffd5b50505f54604051630f629b7960e41b81526001600160a01b039182166004820152908416925063f629b79091506024015f604051808303815f87803b1580156200072a575f80fd5b505af11580156200073d573d5f803e3d5ffd5b50506040516001600160a01b038087169350841691507f8e90e8c40d92928e8edf3ba6825cfe11cb3f63a203605ee76a2a5529f9f61597905f90a36001600160a01b039485165f90815260046020526040902080546001600160a01b03191695821695909517909455509192915050565b612f0280620009e383390190565b6001600160a01b0381168114620007d1575f80fd5b50565b5f60208284031215620007e5575f80fd5b8135620007f281620007bc565b9392505050565b5f805f606084860312156200080c575f80fd5b83356200081981620007bc565b925060208401356200082b81620007bc565b915060408401356200083d81620007bc565b809150509250925092565b5f6020828403121562000859575f80fd5b8151620007f281620007bc565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620008965781810151838201526020016200087c565b50505f910152565b5f60208284031215620008af575f80fd5b815167ffffffffffffffff80821115620008c7575f80fd5b818401915084601f830112620008db575f80fd5b815181811115620008f057620008f062000866565b604051601f8201601f19908116603f011681019083821181831017156200091b576200091b62000866565b8160405282815287602084870101111562000934575f80fd5b620009478360208301602088016200087a565b979650505050505050565b66026b7b9383437960cd1b81525f8251620009758160078501602087016200087a565b6a1021b7b6b837bab73232b960a91b6007939091019283015250601201919050565b5f60018060a01b038086168352606060208401528451806060850152620009c68160808601602089016200087a565b9316604083015250601f91909101601f1916016080019291505056fe60e06040525f80546227100162ffffff19909116179055600280546001600160a01b031990811673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2179091556003805490911673e592427a0aece92de3edee1f18e0157c058615641790553480156200006a575f80fd5b5060405162002f0238038062002f028339810160408190526200008d91620006bf565b6001600160a01b0383166080523060a05260405183908390839083908390829082906200010090620000cc9084908490339081908190602401620007c6565b60408051601f198184030181529190526020810180516001600160e01b03908116634b839d7360e11b179091526200021f16565b5073d377919fa87120584b21279a491f82d5265a139c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5550505050826001600160a01b0316816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000183573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a9919062000808565b6001600160a01b031614620001f35760405162461bcd60e51b815260206004820152600b60248201526a1ddc9bdb99c81d985d5b1d60aa1b60448201526064015b60405180910390fd5b6001600160a01b0380821660c052608051620002139116825f19620002ae565b5050505050506200088e565b60605f8073d377919fa87120584b21279a491f82d5265a139c6001600160a01b03168460405162000251919062000824565b5f60405180830381855af49150503d805f81146200028b576040519150601f19603f3d011682016040523d82523d5f602084013e62000290565b606091505b509150915081620002a7576040513d805f833e8082fd5b9392505050565b8015806200032a5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa15801562000302573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000328919062000841565b155b6200039e5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401620001ea565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152620003f6918591620003fb16565b505050565b6040805180820190915260208082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908201525f9062000449906001600160a01b038516908490620004cd565b905080515f14806200046c5750808060200190518101906200046c919062000859565b620003f65760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401620001ea565b6060620004dd84845f85620004e5565b949350505050565b606082471015620005485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401620001ea565b5f80866001600160a01b0316858760405162000565919062000824565b5f6040518083038185875af1925050503d805f8114620005a1576040519150601f19603f3d011682016040523d82523d5f602084013e620005a6565b606091505b509092509050620005ba87838387620005c5565b979650505050505050565b60608315620006385782515f0362000630576001600160a01b0385163b620006305760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001ea565b5081620004dd565b620004dd83838151156200064f5781518083602001fd5b8060405162461bcd60e51b8152600401620001ea91906200087a565b80516001600160a01b038116811462000682575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620006b75781810151838201526020016200069d565b50505f910152565b5f805f60608486031215620006d2575f80fd5b620006dd846200066b565b60208501519093506001600160401b0380821115620006fa575f80fd5b818601915086601f8301126200070e575f80fd5b81518181111562000723576200072362000687565b604051601f8201601f19908116603f011681019083821181831017156200074e576200074e62000687565b8160405282815289602084870101111562000767575f80fd5b6200077a8360208301602088016200069b565b809650505050505062000790604085016200066b565b90509250925092565b5f8151808452620007b28160208601602086016200069b565b601f01601f19169290920160200192915050565b5f60018060a01b03808816835260a06020840152620007e960a084018862000799565b9581166040840152938416606083015250911660809091015292915050565b5f6020828403121562000819575f80fd5b620002a7826200066b565b5f8251620008378184602087016200069b565b9190910192915050565b5f6020828403121562000852575f80fd5b5051919050565b5f602082840312156200086a575f80fd5b81518015158114620002a7575f80fd5b602081525f620002a7602083018462000799565b60805160a05160c0516125a86200095a5f395f818161054b0152818161097201528181610ac501528181610bdf01528181610e4101528181610eb30152818161135c015281816114190152818161161701526117c201525f8181610629015281816106b70152818161078701528181610a2801528181610ccf01528181610dc301528181610f0001528181610f86015281816111a80152818161122601526114cf01525f8181610a8801528181610d7701528181610ff5015281816117850152611a9801526125a85ff3fe608060405234801561000f575f80fd5b5060043610610225575f3560e01c8063757059491161012e578063ac00ff26116100b6578063f3ce280a1161007a578063f3ce280a146104f0578063f887ea4014610533578063fbfa77cf14610546578063fc7f71b61461056d578063fde813a81461058057610225565b8063ac00ff261461046d578063b4a8d1b614610480578063b8c6f579146104af578063d19a3bb8146104c2578063d6968601146104dd57610225565b8063950b3d73116100fd578063950b3d73146104245780639994673d146104375780639d7fb70c1461043f5780639ee80c5c14610452578063a39591f31461046557610225565b806375705949146103e4578063797bf343146103f75780637d969932146103ff5780637d9f6db51461041157610225565b806349317f1d116101b15780635d265d3f116101805780635d265d3f146103595780635e311fa51461038e5780636718835f146103ad5780636b141ba9146103c957806373adb214146103dc57610225565b806349317f1d146103035780634a5d09431461030b5780635001f3b51461031b578063503160d91461034657610225565b8063286a876b116101f8578063286a876b146102b15780632e3ecf2c146102b75780633d509c97146102ca5780633d6cb575146102dd57806346aa2f12146102f057610225565b806304bd46291461025a57806312edb24c146102805780631814436714610295578063227b9f5a1461029e575b73d377919fa87120584b21279a491f82d5265a139c365f80375f80365f845af43d5f803e808015610254573d5ff35b3d5ffd5b005b61026d6102683660046121e3565b610593565b6040519081526020015b60405180910390f35b6102886105b4565b60405161027791906121fe565b61026d60015481565b6102586102ac36600461224a565b610614565b5f61026d565b6102586102c5366004612274565b6106a2565b6102586102d83660046121e3565b610772565b6102586102eb3660046122c3565b610947565b61026d6102fe3660046121e3565b61095b565b61026d6109e3565b5f54610100900461ffff1661026d565b60025461032e906001600160a01b031681565b6040516001600160a01b039091168152602001610277565b6102586103543660046122c3565b610a02565b60408051600481526024810182526020810180516001600160e01b031663440368a360e01b1790529051610277915f91612327565b61026d61039c3660046121e3565b60066020525f908152604090205481565b5f546103b99060ff1681565b6040519015158152602001610277565b6102586103d7366004612341565b610a13565b61026d610bc8565b6102586103f2366004612341565b610cba565b61026d610d60565b5f546301000000900461ffff1661026d565b60055461032e906001600160a01b031681565b6102586104323660046122c3565b610dae565b61026d610e2a565b61025861044d3660046122c3565b610e78565b61032e6104603660046122c3565b610e80565b61026d610ea8565b61025861047b366004612388565b610eeb565b6104a261048e3660046121e3565b60076020525f908152604090205460ff1681565b60405161027791906123b7565b6102586104bd3660046121e3565b610f71565b61032e73d377919fa87120584b21279a491f82d5265a139c81565b6102586104eb3660046122c3565b611193565b61051f6104fe3660046123dd565b600460209081525f928352604080842090915290825290205462ffffff1681565b60405162ffffff9091168152602001610277565b60035461032e906001600160a01b031681565b61032e7f000000000000000000000000000000000000000000000000000000000000000081565b61026d61057b3660046121e3565b61120f565b61025861058e3660046122c3565b6112fa565b5f61059c610bc8565b6105a4610d60565b6105ae919061241d565b92915050565b6060600880548060200260200160405190810160405280929190818152602001828054801561060a57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116105ec575b5050505050905090565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a649906024015f6040518083038186803b158015610671575f80fd5b505afa158015610683573d5f803e3d5ffd5b5050506001600160a01b039092165f9081526006602052604090205550565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a649906024015f6040518083038186803b1580156106ff575f80fd5b505afa158015610711573d5f803e3d5ffd5b5050506001600160a01b038085165f8181526004602081815260408084209589168452948152848320805462ffffff1990811662ffffff8a16908117909255928252858420948452939052929020805490921617905550505050565b505050565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a649906024015f6040518083038186803b1580156107cf575f80fd5b505afa1580156107e1573d5f803e3d5ffd5b505060088054604080516020808402820181019092528281525f9550935083018282801561083657602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610818575b505083519394505f925050505b8181101561091957836001600160a01b031683828151811061086757610867612430565b60200260200101516001600160a01b0316036109115782610889600184612444565b8151811061089957610899612430565b6020026020010151600882815481106108b4576108b4612430565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060088054806108f0576108f0612457565b5f8281526020902081015f1990810180546001600160a01b03191690550190555b600101610843565b5050506001600160a01b03165f908152600760209081526040808320805460ff191690556006909152812055565b61094f61130b565b61095881611344565b50565b60405163402d267d60e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063402d267d90602401602060405180830381865afa1580156109bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ae919061246b565b5f6109ec61130b565b6109f4611491565b90506109ff816114b4565b90565b610a0a61130b565b610958816115fb565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a649906024015f6040518083038186803b158015610a70575f80fd5b505afa158015610a82573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614158015610afa57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b610b4b5760405162461bcd60e51b815260206004820152601860248201527f63616e6e6f7420626520612072657761726420746f6b656e000000000000000060448201526064015b60405180910390fd5b6008805460018082019092557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0385169081179091555f9081526007602052604090208054839260ff1990911690836002811115610bbf57610bbf6123a3565b02179055505050565b604051636c82bbbf60e11b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307a2d13a90829063d905777e90602401602060405180830381865afa158015610c34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c58919061246b565b6040518263ffffffff1660e01b8152600401610c7691815260200190565b602060405180830381865afa158015610c91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb5919061246b565b905090565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a649906024015f6040518083038186803b158015610d17575f80fd5b505afa158015610d29573d5f803e3d5ffd5b5050506001600160a01b0383165f908152600760205260409020805483925060ff19166001836002811115610bbf57610bbf6123a3565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401610c76565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a649906024015f6040518083038186803b158015610e0b575f80fd5b505afa158015610e1d573d5f803e3d5ffd5b5050505061095881611689565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401610c76565b61095861130b565b60088181548110610e8f575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166307a2d13a82610ee1610e2a565b610c58919061241d565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a649906024015f6040518083038186803b158015610f48575f80fd5b505afa158015610f5a573d5f803e3d5ffd5b50505f805460ff1916931515939093179092555050565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a649906024015f6040518083038186803b158015610fce575f80fd5b505afa158015610fe0573d5f803e3d5ffd5b505050506001600160a01b03811615611171577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316631f1fcd516040518163ffffffff1660e01b8152600401602060405180830381865afa158015611059573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107d9190612482565b6001600160a01b0316146110c05760405162461bcd60e51b815260206004820152600a6024820152691ddc9bdb99c81dd85b9d60b21b6044820152606401610b42565b306001600160a01b0316816001600160a01b031663f7260d3e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611106573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061112a9190612482565b6001600160a01b0316146111715760405162461bcd60e51b815260206004820152600e60248201526d3bb937b733903932b1b2b4bb32b960911b6044820152606401610b42565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a649906024015f6040518083038186803b1580156111f0575f80fd5b505afa158015611202573d5f803e3d5ffd5b5050505061095881611722565b60405163d43fdcf760e01b81523360048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d43fdcf7906024015f6040518083038186803b15801561126e575f80fd5b505afa158015611280573d5f803e3d5ffd5b506002925061128d915050565b6001600160a01b0383165f9081526007602052604090205460ff1660028111156112b9576112b96123a3565b146112f15760405162461bcd60e51b815260206004820152600860248201526710b0bab1ba34b7b760c11b6044820152606401610b42565b6105ae82611782565b61130261130b565b6109588161192a565b3330146113425760405162461bcd60e51b815260206004820152600560248201526410b9b2b63360d91b6044820152606401610b42565b565b604051630a28a47760e01b8152600481018290525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630a28a47790602401602060405180830381865afa1580156113a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113cd919061246b565b90505f6113d8610e2a565b9050808211156113f6576113f3826113ee610e2a565b61193e565b91505b604051635d043b2960e11b815260048101839052306024820181905260448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ba087652906064016020604051808303815f875af1158015611467573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061148b919061246b565b50505050565b5f61149a611953565b6114a2610ea8565b6114aa610d60565b610cb5919061241d565b5f5460ff166114cc57505f805460ff19166001179055565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa158015611529573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061154d919061246b565b9050808211156115c4575f546127109061157090610100900461ffff168361249d565b61157a91906124b4565b6115848284612444565b11156115c05760405162461bcd60e51b815260206004820152600b60248201526a6865616c7468436865636b60a81b6044820152606401610b42565b5050565b818111156115c0575f54612710906115e7906301000000900461ffff168361249d565b6115f191906124b4565b6115848383612444565b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044016020604051808303815f875af1158015611665573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115c0919061246b565b5f81116116c75760405162461bcd60e51b815260206004820152600c60248201526b085e995c9bc81c1c9bd99a5d60a21b6044820152606401610b42565b61ffff8111156117055760405162461bcd60e51b8152602060048201526009602482015268042e8dede40d0d2ced60bb1b6044820152606401610b42565b5f805461ffff9092166101000262ffff0019909216919091179055565b61271081106117615760405162461bcd60e51b815260206004820152600b60248201526a085b1bdcdcc81b1a5b5a5d60aa1b6044820152606401610b42565b5f805461ffff90921663010000000264ffff00000019909216919091179055565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316141580156117f757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b6118315760405162461bcd60e51b815260206004820152600b60248201526a63616e6e6f74206b69636b60a81b6044820152606401610b42565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611875573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611899919061246b565b6005549091506118b6906001600160a01b03858116911683611acb565b6005546040516396c5517560e01b81526001600160a01b038581166004830152909116906396c55175906024016020604051808303815f875af11580156118ff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611923919061246b565b9392505050565b610958611939826113ee610bc8565b611344565b5f81831061194c5781611923565b5090919050565b5f60088054806020026020016040519081016040528092919081815260200182805480156119a857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161198a575b505083519394505f925050505b8181101561076d575f8382815181106119d0576119d0612430565b6020908102919091018101516001600160a01b0381165f818152600790935260408084205490516370a0823160e01b815230600482015292945060ff1692916370a0823190602401602060405180830381865afa158015611a33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a57919061246b565b6001600160a01b0384165f90815260066020526040902054909150811115611ac0576001826002811115611a8d57611a8d6123a3565b03611ac057611abe837f0000000000000000000000000000000000000000000000000000000000000000835f611b2e565b505b5050506001016119b5565b6040516001600160a01b03831660248201526044810182905261076d90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611dc8565b5f600154831115611dc057600354611b50906001600160a01b03168685611e9b565b6002546001600160a01b0386811691161480611b7957506002546001600160a01b038581169116145b15611c925760408051610100810182526001600160a01b0387811680835287821660208085018281525f9384526004808352878520938552929091528583205462ffffff9081168688019081523060608801908152426080890190815260a089018d815260c08a018d815260e08b019889526003549b5163414bf38960e01b81528b518b1698810198909852955189166024880152925190931660448601525186166064850152905160848401525160a48301525160c48201529051821660e48201529192169063414bf38990610104016020604051808303815f875af1158015611c66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c8a919061246b565b915050611dc0565b6001600160a01b038581165f9081526004602081815260408084206002548087168652908352818520548484528286208b881687528452948290205482516bffffffffffffffffffffffff1960608e811b8216968301969096526001600160e81b031960e898891b8116603484015293861b811660378301529190961b909116604b8601529189901b909116604e8401528051808403604201815260035461010285018352606285018281523060828701524260a287015260c286018a905260e2909501889052915163c04b8d5960e01b81529094919091169263c04b8d5992611d7c92016124d3565b6020604051808303815f875af1158015611d98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dbc919061246b565b9150505b949350505050565b5f611e1c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611f3a9092919063ffffffff16565b905080515f1480611e3c575080806020019051810190611e3c919061252a565b61076d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b42565b604051636eb1769f60e11b81523060048201526001600160a01b03848116602483015282919084169063dd62ed3e90604401602060405180830381865afa158015611ee8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f0c919061246b565b101561076d57611f266001600160a01b038316845f611f48565b61076d6001600160a01b0383168483611f48565b6060611dc084845f8561205b565b801580611fc05750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015611f9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fbe919061246b565b155b61202b5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610b42565b6040516001600160a01b03831660248201526044810182905261076d90849063095ea7b360e01b90606401611af7565b6060824710156120bc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610b42565b5f80866001600160a01b031685876040516120d79190612545565b5f6040518083038185875af1925050503d805f8114612111576040519150601f19603f3d011682016040523d82523d5f602084013e612116565b606091505b509150915061212787838387612132565b979650505050505050565b606083156121a05782515f03612199576001600160a01b0385163b6121995760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b42565b5081611dc0565b611dc083838151156121b55781518083602001fd5b8060405162461bcd60e51b8152600401610b429190612560565b6001600160a01b0381168114610958575f80fd5b5f602082840312156121f3575f80fd5b8135611923816121cf565b602080825282518282018190525f9190848201906040850190845b8181101561223e5783516001600160a01b031683529284019291840191600101612219565b50909695505050505050565b5f806040838503121561225b575f80fd5b8235612266816121cf565b946020939093013593505050565b5f805f60608486031215612286575f80fd5b8335612291816121cf565b925060208401356122a1816121cf565b9150604084013562ffffff811681146122b8575f80fd5b809150509250925092565b5f602082840312156122d3575f80fd5b5035919050565b5f5b838110156122f45781810151838201526020016122dc565b50505f910152565b5f81518084526123138160208601602086016122da565b601f01601f19169290920160200192915050565b8215158152604060208201525f611dc060408301846122fc565b5f8060408385031215612352575f80fd5b823561235d816121cf565b9150602083013560038110612370575f80fd5b809150509250929050565b8015158114610958575f80fd5b5f60208284031215612398575f80fd5b81356119238161237b565b634e487b7160e01b5f52602160045260245ffd5b60208101600383106123d757634e487b7160e01b5f52602160045260245ffd5b91905290565b5f80604083850312156123ee575f80fd5b82356123f9816121cf565b91506020830135612370816121cf565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105ae576105ae612409565b634e487b7160e01b5f52603260045260245ffd5b818103818111156105ae576105ae612409565b634e487b7160e01b5f52603160045260245ffd5b5f6020828403121561247b575f80fd5b5051919050565b5f60208284031215612492575f80fd5b8151611923816121cf565b80820281158282048414176105ae576105ae612409565b5f826124ce57634e487b7160e01b5f52601260045260245ffd5b500490565b602081525f825160a060208401526124ee60c08401826122fc565b905060018060a01b0360208501511660408401526040840151606084015260608401516080840152608084015160a08401528091505092915050565b5f6020828403121561253a575f80fd5b81516119238161237b565b5f82516125568184602087016122da565b9190910192915050565b602081525f61192360208301846122fc56fea2646970667358221220d91d7af6ae4a34b416bbbb22688cecb407722c2c72f70cc47ca6f7a669a1d31764736f6c63430008170033a26469706673582212207604a5ee126c6b156d8f2b89bec07dc0e461b69094b09738b1f6a24a3491f73364736f6c634300081700330000000000000000000000001b5f15dcb82d25f91c65b53cee151e8b9fbdd2710000000000000000000000001b5f15dcb82d25f91c65b53cee151e8b9fbdd271000000000000000000000000604e586f17ce106b64185a7a0d2c1da5bace711e00000000000000000000000016388463d60ffe0661cf7f1f31a7d658ac790ff7