0 txs
29 calls
constructor
constructor(address ptOracle_, address market_, uint32 twap_)
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getStatus
viewfunction getStatus(address) view returns (bool status)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
market
viewfunction market() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
ptOracle
viewfunction ptOracle() view returns (address)
spot
viewfunction spot(address) view returns (uint256 price)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
twapWindow
viewfunction twapWindow() view returns (uint32)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address admin, address manager)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
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)
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)
Upgraded
event Upgraded(address indexed implementation)
errors
MarketExchangeRateBelowOne
error MarketExchangeRateBelowOne(int256 exchangeRate)
MarketExpired
error MarketExpired()
MarketProportionMustNotEqualOne
error MarketProportionMustNotEqualOne()
MarketRateScalarBelowZero
error MarketRateScalarBelowZero(int256 rateScalar)
MarketZeroTotalPtOrTotalAsset
error MarketZeroTotalPtOrTotalAsset(int256 totalPt, int256 totalAsset)
PendleLPOracle__authorizeUpgrade_validStatus
error PendleLPOracle__authorizeUpgrade_validStatus()
PendleLPOracle__spot_invalidValue
error PendleLPOracle__spot_invalidValue()
PendleLPOracle__validatePtOracle_invalidValue
error PendleLPOracle__validatePtOracle_invalidValue()
creation bytecode
0x610100604052306080523480156200001657600080fd5b5060405162002e2738038062002e2783398101604081905262000039916200018d565b600054610100900460ff16158080156200005a5750600054600160ff909116105b80620000765750303b15801562000076575060005460ff166001145b620000de5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff19166001179055801562000102576000805461ff0019166101001790555b6001600160a01b0380841660a05263ffffffff831660c052841660e052801562000166576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050620001e3565b80516001600160a01b03811681146200018857600080fd5b919050565b600080600060608486031215620001a357600080fd5b620001ae8462000170565b9250620001be6020850162000170565b9150604084015163ffffffff81168114620001d857600080fd5b809150509250925092565b60805160a05160c05160e051612bcb6200025c6000396000818161011f01526108f60152600081816102c7015281816103e401526108c7015260008181610293015281816103c2015261089f0152600081816104d001528181610510015281816106df0152818161071f01526107970152612bcb6000f3fe6080604052600436106100d35760003560e01c8063485cc9551161007a578063485cc955146102395780634f1ef2861461025957806352d1902d1461026c57806380f55605146102815780638107e133146102b557806391d14854146102fe578063a217fddf1461031e578063d547741f1461033357600080fd5b806301ffc9a7146100d857806305d7b9a21461010d578063248a9ca3146101595780632cbf04c1146101975780632f2ff15d146101b757806330ccebb5146101d957806336568abe146101f95780633659cfe614610219575b600080fd5b3480156100e457600080fd5b506100f86100f3366004612393565b610353565b60405190151581526020015b60405180910390f35b34801561011957600080fd5b506101417f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610104565b34801561016557600080fd5b506101896101743660046123bd565b60009081526065602052604090206001015490565b604051908152602001610104565b3480156101a357600080fd5b506101896101b23660046123eb565b61038a565b3480156101c357600080fd5b506101d76101d2366004612408565b61040f565b005b3480156101e557600080fd5b506100f86101f43660046123eb565b610439565b34801561020557600080fd5b506101d7610214366004612408565b610443565b34801561022557600080fd5b506101d76102343660046123eb565b6104c6565b34801561024557600080fd5b506101d7610254366004612438565b61058e565b6101d76102673660046124d7565b6106d5565b34801561027857600080fd5b5061018961078a565b34801561028d57600080fd5b506101417f000000000000000000000000000000000000000000000000000000000000000081565b3480156102c157600080fd5b506102e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610104565b34801561030a57600080fd5b506100f8610319366004612408565b610839565b34801561032a57600080fd5b50610189600081565b34801561033f57600080fd5b506101d761034e366004612408565b610864565b60006001600160e01b03198216637965db0b60e01b148061038457506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080610395610889565b9050806103b5576040516321a162b160e21b815260040160405180910390fd5b6104086001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000610980565b9392505050565b60008281526065602052604090206001015461042a816109da565b61043483836109e4565b505050565b6000610384610a6a565b6001600160a01b03811633146104b85760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6104c28282610a79565b5050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361050e5760405162461bcd60e51b81526004016104af9061257f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610540610ae0565b6001600160a01b0316146105665760405162461bcd60e51b81526004016104af906125cb565b61056f81610afc565b6040805160008082526020820190925261058b91839190610b4c565b50565b600054610100900460ff16158080156105ae5750600054600160ff909116105b806105c85750303b1580156105c8575060005460ff166001145b61062b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104af565b6000805460ff19166001179055801561064e576000805461ff0019166101001790555b610656610cb7565b6106616000846109e4565b61068b7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08836109e4565b8015610434576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361071d5760405162461bcd60e51b81526004016104af9061257f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661074f610ae0565b6001600160a01b0316146107755760405162461bcd60e51b81526004016104af906125cb565b61077e82610afc565b6104c282826001610b4c565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108255760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b60648201526084016104af565b50600080516020612b4f8339815191525b90565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008281526065602052604090206001015461087f816109da565b6104348383610a79565b60405162439f4b60e91b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000063ffffffff1660248301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063873e960090604401606060405180830381865afa92505050801561095b575060408051601f3d908101601f1916820190925261095891810190612627565b60015b15610836578215801561096b5750805b1561097a576001935050505090565b50505090565b6000806000610997856001600160a01b0316610d24565b9150915060006109a8868684610f54565b90508183106109bb579250610384915050565b816109c68483612689565b6109d091906126b6565b9350505050610384565b61058b81336110e8565b6109ee8282610839565b6104c25760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610a263390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610a74610889565b905090565b610a838282610839565b156104c25760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080516020612b4f833981519152546001600160a01b031690565b7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08610b26816109da565b610b2e610a6a565b156104c25760405163d9cc7c3160e01b815260040160405180910390fd5b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610b7f5761043483611141565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610bd9575060408051601f3d908101601f19168201909252610bd6918101906126ca565b60015b610c3c5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104af565b600080516020612b4f8339815191528114610cab5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104af565b506104348383836111dd565b600054610100900460ff16610d225760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016104af565b565b600080600080846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610d68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8c91906126e3565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df391906126ca565b93506000816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5991906126ca565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd9190612730565b8015610f32575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f27919061274b565b6001600160801b0316145b15610f3f57809350610f4c565b610f498582611208565b93505b505050915091565b60405163794052f360e01b81526000600482018190529081906001600160a01b0386169063794052f39060240161012060405180830381865afa158015610f9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc3919061277f565b90506000428260a0015111610ff357610fe084836020015161121e565b8251610fec9190612801565b90506110bf565b6000611000838642611262565b905060008061101089868a611363565b91509150600061103961103485604001518561102c9190612829565b8651906113d2565b6113f5565b9050600061107e61104a838561180a565b61105c90670de0b6b3a7640000612801565b8851602088015161106e9086906113d2565b6110789190612829565b9061180a565b9050611094848289600001516110789190612801565b61109e828561180a565b86602001516110ad9190612829565b6110b79190612801565b955050505050505b6110de6110d983604001518361180a90919063ffffffff16565b611830565b9695505050505050565b6110f28282610839565b6104c2576110ff81611843565b61110a836020611855565b60405160200161111b929190612874565b60408051601f198184030181529082905262461bcd60e51b82526104af916004016128e3565b6001600160a01b0381163b6111ae5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104af565b600080516020612b4f83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6111e6836119f1565b6000825111806111f35750805b15610434576112028383611a31565b50505050565b60008183116112175781610408565b5090919050565b60008060008312611230576001611234565b6000195b905061125061124b8561124686611b25565b611b3c565b611b5b565b61125a9082612916565b949350505050565b61128d6040518060800160405280600081526020016000815260200160008152602001600081525090565b60a084015182106112b15760405163b2094b5960e01b815260040160405180910390fd5b6000828560a001516112c39190612946565b90506112cf8582611b71565b825260208501516112e190859061121e565b6020830152845115806112f657506020820151155b15611324578451602083015160405163b1c4aefb60e01b8152600481019290925260248201526044016104af565b61134285600001518661010001518460200151856000015185611bcd565b604083015260c08501516113569082611c4e565b6060830152509392505050565b6000808061137a6001600160a01b03871685611c82565b90506000428660a0015161138e9190612946565b905061139a8282611c4e565b935060006113ad87610100015183611c4e565b905060026113bb8683612801565b6113c59190612959565b9350505050935093915050565b6000806113df8385612916565b9050670de0b6b3a7640000815b05949350505050565b6000680238fd42c5cf03ffff19821215801561141a575068070c1cc73b00c800008213155b6114595760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b60448201526064016104af565b60008212156114915761146e826000036113f5565b6a0c097ce7bc90715b34b9f160241b8161148a5761148a6126a0565b0592915050565b60006806f05b59d3b200000083126114cf57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b611505565b6803782dace9d9000000831261150157506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380611505565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126115555768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412611591576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126115cb57682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412611605576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261163e57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126116775768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b188000084126116b0576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126116e95768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b60008061181f670de0b6b3a764000085612916565b90508281816113ec576113ec6126a0565b60008082121561183f57600080fd5b5090565b60606103846001600160a01b03831660145b60606000611864836002612689565b61186f906002612987565b67ffffffffffffffff81111561188757611887612466565b6040519080825280601f01601f1916602001820160405280156118b1576020820181803683370190505b509050600360fc1b816000815181106118cc576118cc61299a565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106118fb576118fb61299a565b60200101906001600160f81b031916908160001a905350600061191f846002612689565b61192a906001612987565b90505b60018111156119a2576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061195e5761195e61299a565b1a60f81b8282815181106119745761197461299a565b60200101906001600160f81b031916908160001a90535060049490941c9361199b816129b0565b905061192d565b5083156104085760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016104af565b6119fa81611141565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611a995760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104af565b600080846001600160a01b031684604051611ab491906129c7565b600060405180830381855af49150503d8060008114611aef576040519150601f19603f3d011682016040523d82523d6000602084013e611af4565b606091505b5091509150611b1c8282604051806060016040528060278152602001612b6f60279139611da9565b95945050505050565b600080821361183f57611b37826129e3565b610384565b6000670de0b6b3a7640000611b518484612689565b61040891906126b6565b60006001600160ff1b0382111561183f57600080fd5b6000611b7c82611b5b565b611b8e61124b6201518061016d612689565b8460800151611b9d9190612916565b611ba79190612959565b90506000811361038457604051630e520c3b60e11b8152600481018290526024016104af565b600080611bda8684611c4e565b9050670de0b6b3a7640000811215611c085760405163329e322960e21b8152600481018290526024016104af565b6000611c1e611c17878a612801565b899061180a565b90506000611c2b82611dc2565b9050611c37818761180a565b611c419084612829565b9998505050505050505050565b600080611c606201518061016d612689565b611c6a8486612689565b611c7491906126b6565b905061125a61103482611b5b565b604080516002808252606082018352600092839291906020830190803683370190505090508281600081518110611cbb57611cbb61299a565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81526000906001600160a01b0386169063883bdbfd90611cff9085906004016129ff565b600060405180830381865afa158015611d1c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d449190810190612a49565b90508363ffffffff1681600081518110611d6057611d6061299a565b602002602001015182600181518110611d7b57611d7b61299a565b6020026020010151611d8d9190612b08565b611d979190612b28565b6001600160d81b031695945050505050565b60608315611db8575081610408565b6104088383611e15565b6000670de0b6b3a76400008203611dec5760405163a9c8b14d60e01b815260040160405180910390fd5b6000611e0a611e0384670de0b6b3a7640000612829565b849061180a565b905061040881611e3f565b815115611e255781518083602001fd5b8060405162461bcd60e51b81526004016104af91906128e3565b6000808213611e805760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b60448201526064016104af565b670c7d713b49da000082138015611e9e5750670f43fc2c04ee000082125b15611ec257670de0b6b3a7640000611eb583611ed0565b8161148a5761148a6126a0565b61038482611fef565b919050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281611f1157611f116126a0565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a764000082121561203057612027826a0c097ce7bc90715b34b9f160241b81612021576120216126a0565b05611fef565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b831261207b5772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b73011798004d755d3c8bc8e03204cf44619e00000083126120b3576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff008400083126120fb576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312612136576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261216d57693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126121a457690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126121d95768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261220457680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312612239576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f1775788937937831261226e576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126122a2576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126122d6576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d6310000080860302816122ff576122ff6126a0565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6000602082840312156123a557600080fd5b81356001600160e01b03198116811461040857600080fd5b6000602082840312156123cf57600080fd5b5035919050565b6001600160a01b038116811461058b57600080fd5b6000602082840312156123fd57600080fd5b8135610408816123d6565b6000806040838503121561241b57600080fd5b82359150602083013561242d816123d6565b809150509250929050565b6000806040838503121561244b57600080fd5b8235612456816123d6565b9150602083013561242d816123d6565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff811182821017156124a0576124a0612466565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156124cf576124cf612466565b604052919050565b600080604083850312156124ea57600080fd5b82356124f5816123d6565b915060208381013567ffffffffffffffff8082111561251357600080fd5b818601915086601f83011261252757600080fd5b81358181111561253957612539612466565b61254b601f8201601f191685016124a6565b9150808252878482850101111561256157600080fd5b80848401858401376000848284010152508093505050509250929050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80518015158114611ecb57600080fd5b60008060006060848603121561263c57600080fd5b61264584612617565b9250602084015161ffff8116811461265c57600080fd5b915061266a60408501612617565b90509250925092565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761038457610384612673565b634e487b7160e01b600052601260045260246000fd5b6000826126c5576126c56126a0565b500490565b6000602082840312156126dc57600080fd5b5051919050565b6000806000606084860312156126f857600080fd5b8351612703816123d6565b6020850151909350612714816123d6565b6040850151909250612725816123d6565b809150509250925092565b60006020828403121561274257600080fd5b61040882612617565b60006020828403121561275d57600080fd5b81516001600160801b038116811461040857600080fd5b8051611ecb816123d6565b6000610120828403121561279257600080fd5b61279a61247c565b8251815260208301516020820152604083015160408201526127be60608401612774565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b808201828112600083128015821682158216171561282157612821612673565b505092915050565b818103600083128015838313168383128216171561284957612849612673565b5092915050565b60005b8381101561286b578181015183820152602001612853565b50506000910152565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8152600083516128a6816017850160208801612850565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516128d7816028840160208801612850565b01602801949350505050565b6020815260008251806020840152612902816040850160208701612850565b601f01601f19169190910160400192915050565b80820260008212600160ff1b8414161561293257612932612673565b818105831482151761038457610384612673565b8181038181111561038457610384612673565b600082612968576129686126a0565b600160ff1b82146000198414161561298257612982612673565b500590565b8082018082111561038457610384612673565b634e487b7160e01b600052603260045260246000fd5b6000816129bf576129bf612673565b506000190190565b600082516129d9818460208701612850565b9190910192915050565b6000600160ff1b82016129f8576129f8612673565b5060000390565b6020808252825182820181905260009190848201906040850190845b81811015612a3d57835163ffffffff1683529284019291840191600101612a1b565b50909695505050505050565b60006020808385031215612a5c57600080fd5b825167ffffffffffffffff80821115612a7457600080fd5b818501915085601f830112612a8857600080fd5b815181811115612a9a57612a9a612466565b8060051b9150612aab8483016124a6565b8181529183018401918481019088841115612ac557600080fd5b938501935b83851015612afc57845192506001600160d81b0383168314612aec5760008081fd5b8282529385019390850190612aca565b98975050505050505050565b6001600160d81b0382811682821603908082111561284957612849612673565b60006001600160d81b0383811680612b4257612b426126a0565b9216919091049291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220101abf693cf53e3ee6972f324a20cdf01d55a123ba4103f930c2d822ae5e8d9b64736f6c634300081300330000000000000000000000009a9fa8338dd5e5b2188006f1cd2ef26d921650c20000000000000000000000003daf20e46708e556570159eaf98eee53a1a5b8a400000000000000000000000000000000000000000000000000000000000000b4