0 txs
0 calls
constructor
constructor(address protocol, address eigenPodManager, address eigenWithdrawalRouter, address delegationManager, address moduleManager, address rewardsCoordinator) payable
functions
authority
viewfunction authority() view returns (address)
EIGEN_DELEGATION_MANAGER
viewfunction EIGEN_DELEGATION_MANAGER() view returns (address)
EIGEN_POD_MANAGER
viewfunction EIGEN_POD_MANAGER() view returns (address)
EIGEN_REWARDS_COORDINATOR
viewfunction EIGEN_REWARDS_COORDINATOR() view returns (address)
EIGEN_WITHDRAWAL_ROUTER
viewfunction EIGEN_WITHDRAWAL_ROUTER() view returns (address)
getEigenPod
viewfunction getEigenPod() view returns (address)
getLastProofOfRewardsBlock
viewfunction getLastProofOfRewardsBlock() view returns (uint256)
getWithdrawalCredentials
viewfunction getWithdrawalCredentials() view returns (bytes)
isConsumingScheduledOp
viewfunction isConsumingScheduledOp() view returns (bytes4)
NAME
viewfunction NAME() view returns (bytes32)
PUFFER_MODULE_MANAGER
viewfunction PUFFER_MODULE_MANAGER() view returns (address)
PUFFER_PROTOCOL
viewfunction PUFFER_PROTOCOL() view returns (address)
call
nonpayablefunction call(address to, uint256 amount, bytes data) returns (bool success, bytes)
callDelegateTo
nonpayablefunction callDelegateTo(address operator, tuple approverSignatureAndExpiry, bytes32 approverSalt)
callSetClaimerFor
nonpayablefunction callSetClaimerFor(address claimer)
callStake
payablefunction callStake(bytes pubKey, bytes signature, bytes32 depositDataRoot) payable
callUndelegate
nonpayablefunction callUndelegate() returns (bytes32[] withdrawalRoot)
collectRewards
nonpayablefunction collectRewards(address node, uint256[] blockNumbers, uint256[] amounts, bytes32[][] merkleProofs)
completeQueuedWithdrawals
nonpayablefunction completeQueuedWithdrawals(tuple[] withdrawals, address[][] tokens, uint256[] middlewareTimesIndexes, bool[] receiveAsTokens)
initialize
nonpayablefunction initialize(bytes32 moduleName, address initialAuthority)
postRewardsRoot
nonpayablefunction postRewardsRoot(bytes32 root, uint256 blockNumber, bytes[] guardianSignatures)
queueWithdrawals
nonpayablefunction queueWithdrawals(uint256 shareAmount) returns (bytes32[])
setAuthority
nonpayablefunction setAuthority(address newAuthority)
verifyAndProcessWithdrawals
nonpayablefunction verifyAndProcessWithdrawals(uint64 oracleTimestamp, tuple stateRootProof, tuple[] withdrawalProofs, bytes[] validatorFieldsProofs, bytes32[][] validatorFields, bytes32[][] withdrawalFields)
verifyWithdrawalCredentials
nonpayablefunction verifyWithdrawalCredentials(uint64 oracleTimestamp, tuple stateRootProof, uint40[] validatorIndices, bytes[] validatorFieldsProofs, bytes32[][] validatorFields)
withdrawNonBeaconChainETHBalanceWei
nonpayablefunction withdrawNonBeaconChainETHBalanceWei(uint256 amountToWithdraw)
events
AuthorityUpdated
event AuthorityUpdated(address authority)
Initialized
event Initialized(uint64 version)
RewardsClaimed
event RewardsClaimed(address indexed node, uint256 amount)
RewardsRootPosted
event RewardsRootPosted(uint256 indexed blockNumber, bytes32 root)
errors
AccessManagedInvalidAuthority
error AccessManagedInvalidAuthority(address authority)
AccessManagedRequiredDelay
error AccessManagedRequiredDelay(address caller, uint32 delay)
AccessManagedUnauthorized
error AccessManagedUnauthorized(address caller)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
AlreadyClaimed
error AlreadyClaimed(uint256 blockNumber, address node)
FailedInnerCall
error FailedInnerCall()
InvalidBlockNumber
error InvalidBlockNumber(uint256 blockNumber)
InvalidInitialization
error InvalidInitialization()
NothingToClaim
error NothingToClaim(address node)
NotInitializing
error NotInitializing()
Unauthorized
error Unauthorized()
creation bytecode
0x610140604052604051612de8380380612de883398101604081905261002391610129565b6001600160a01b0380861660805284811660c05283811660e0528681166101005282811661012052811660a052610058610063565b5050505050506101ac565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100b35760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101125780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6001600160a01b0381168114610112575f80fd5b5f805f805f8060c0878903121561013e575f80fd5b865161014981610115565b602088015190965061015a81610115565b604088015190955061016b81610115565b606088015190945061017c81610115565b608088015190935061018d81610115565b60a088015190925061019e81610115565b809150509295509295509295565b60805160a05160c05160e0516101005161012051612b5b61028d5f395f818161019a015281816106bb015281816107ea015281816108d501528181610bdf01528181610fb50152818161124d0152818161165b015261173101525f818161042c015281816105df0152818161077c015281816109a301528181610a5501528181610e67015281816111df015261133301525f81816105600152818161070f015281816108500152818161112501526116ad01525f61048901525f8181610232015261178d01525f81816101ea015281816106330152610d7a0152612b5b5ff3fe60806040526004361061017e575f3560e01c8063852aa33d116100cd578063bf7e214f11610087578063eff7c50311610062578063eff7c5031461053b578063f2251b0f1461054f578063fe363bd414610582578063feadcf98146105a1575f80fd5b8063bf7e214f146104d4578063e251ef52146104fd578063e5704a2a1461051c575f80fd5b8063852aa33d146103c25780638fb36037146103ee578063972546f81461041b578063a3f4df7e1461044e578063adda272414610478578063bcbb073a146104ab575f80fd5b80633f65cf1911610138578063594204a611610113578063594204a6146103385780636910e334146103575780636dbf2fa0146103765780637a9e5e4b146103a3575f80fd5b80633f65cf191461029257806349867c83146102b157806356396715146102d0575f80fd5b80630575c0a9146101895780630a732358146101d95780630f1a3c751461020c578063141fbdf2146102215780632fb403e4146102545780633340439614610273575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b506101bc7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101e4575f80fd5b506101bc7f000000000000000000000000000000000000000000000000000000000000000081565b61021f61021a366004611a8d565b6105d4565b005b34801561022c575f80fd5b506101bc7f000000000000000000000000000000000000000000000000000000000000000081565b34801561025f575f80fd5b5061021f61026e366004611b33565b6106b0565b34801561027e575f80fd5b5061021f61028d366004611bc8565b61077a565b34801561029d575f80fd5b5061021f6102ac366004611ca8565b6108ca565b3480156102bc575f80fd5b5061021f6102cb366004611d5d565b6109a1565b3480156102db575f80fd5b505f80516020612ae68339815191525460408051600160f81b6020808301919091525f602183015260609390931b6bffffffffffffffffffffffff1916602c82015281518082039093018352810190526040516101d09190611dd9565b348015610343575f80fd5b5061021f610352366004611deb565b610bd4565b348015610362575f80fd5b5061021f610371366004611e02565b610c91565b348015610381575f80fd5b50610395610390366004611e30565b610e59565b6040516101d0929190611e7b565b3480156103ae575f80fd5b5061021f6103bd366004611e95565b610f0c565b3480156103cd575f80fd5b506103e16103dc366004611deb565b610fa8565b6040516101d09190611eb7565b3480156103f9575f80fd5b506104026111a7565b6040516001600160e01b031990911681526020016101d0565b348015610426575f80fd5b506101bc7f000000000000000000000000000000000000000000000000000000000000000081565b348015610459575f80fd5b505f80516020612b06833981519152545b6040519081526020016101d0565b348015610483575f80fd5b506101bc7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b6575f80fd5b505f80516020612ae6833981519152546001600160a01b03166101bc565b3480156104df575f80fd5b505f80516020612ac6833981519152546001600160a01b03166101bc565b348015610508575f80fd5b5061021f610517366004611ef9565b6111dd565b348015610527575f80fd5b5061021f610536366004611fff565b611331565b348015610546575f80fd5b506103e161164e565b34801561055a575f80fd5b506101bc7f000000000000000000000000000000000000000000000000000000000000000081565b34801561058d575f80fd5b5061021f61059c366004611e95565b611726565b3480156105ac575f80fd5b507f501caad7d5b9c1542c99d193b659cbf5c57571609bcfc93d65f1e159821d62035461046a565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461061c576040516282b42960e81b815260040160405180910390fd5b6040516326d3918d60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639b4e4634906801bc16d674ec8000009061067b90899089908990899089906004016120d5565b5f604051808303818588803b158015610692575f80fd5b505af11580156106a4573d5f803e3d5ffd5b50505050505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106f8576040516282b42960e81b815260040160405180910390fd5b60405163eea9064b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063eea9064b906107489086908690869060040161214f565b5f604051808303815f87803b15801561075f575f80fd5b505af1158015610771573d5f803e3d5ffd5b50505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663532329ca6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156107d2575f80fd5b505af11580156107e4573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316336001600160a01b031614610839576040516282b42960e81b815260040160405180910390fd5b6040516319a021cb60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633340439690610893908b908b908b908b908b908b908b908b9060040161233d565b5f604051808303815f87803b1580156108aa575f80fd5b505af11580156108bc573d5f803e3d5ffd5b505050505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610912576040516282b42960e81b815260040160405180910390fd5b5f80516020612ae683398151915254604051633f65cf1960e01b81525f80516020612b06833981519152916001600160a01b031690633f65cf1990610969908c908c908c908c908c908c908c908c9060040161257b565b5f604051808303815f87803b158015610980575f80fd5b505af1158015610992573d5f803e3d5ffd5b50505050505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663532329ca6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156109f9575f80fd5b505af1158015610a0b573d5f803e3d5ffd5b505050505f610a245f80516020612b0683398151915290565b905080600301548411610a5257604051634fa557df60e11b8152600481018590526024015b60405180910390fd5b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a1873ca56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aaf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad3919061260a565b90505f610ae4835f015488886117e7565b90505f826001600160a01b0316638609c88a8787856040518463ffffffff1660e01b8152600401610b1793929190612625565b602060405180830381865afa158015610b32573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b569190612648565b905080610b75576040516282b42960e81b815260040160405180910390fd5b600384018790555f878152600485016020526040908190208990555187907f8a5fc0f13e215cc10f6779108881484ba256b013a1288f97b75f7ca770bc6d0790610bc2908b815260200190565b60405180910390a25050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c1c576040516282b42960e81b815260040160405180910390fd5b5f5f80516020612b06833981519152600181015460405163e2c8344560e01b8152306004820152602481018590529192506001600160a01b03169063e2c83445906044015f604051808303815f87803b158015610c77575f80fd5b505af1158015610c89573d5f803e3d5ffd5b505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f81158015610cd55750825b90505f826001600160401b03166001148015610cf05750303b155b905081158015610cfe575080155b15610d1c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610d4657845460ff60401b1916600160401b1785555b610d4f86611858565b5f80516020612b068339815191528781556040805163426c083160e11b815290516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916384d8106291600480830192602092919082900301815f875af1158015610dc4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de8919061260a565b60019190910180546001600160a01b0319166001600160a01b03909216919091179055831561077157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050505050565b5f6060336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ea4576040516282b42960e81b815260040160405180910390fd5b856001600160a01b0316858585604051610ebf929190612663565b5f6040518083038185875af1925050503d805f8114610ef9576040519150601f19603f3d011682016040523d82523d5f602084013e610efe565b606091505b509150915094509492505050565b33610f2b5f80516020612ac6833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b031614610f665760405162d1953b60e31b81526001600160a01b0382166004820152602401610a49565b816001600160a01b03163b5f03610f9b576040516361798f2f60e11b81526001600160a01b0383166004820152602401610a49565b610fa48261186c565b5050565b6060336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ff2576040516282b42960e81b815260040160405180910390fd5b6040805160018082528183019092525f91816020015b604080516060808201835280825260208201525f918101919091528152602001906001900390816110085750506040805160018082528183019092529192505f91906020808301908036833701905050905083815f8151811061106d5761106d612686565b60209081029190910101526040805160018082528183019092525f9181602001602082028036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0815f815181106110c2576110c2612686565b6001600160a01b03909216602092830291909101820152604080516060810182528381529182018490523090820152835184905f9061110357611103612686565b60209081029190910101526040516306ec6e8160e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630dd8dd029061115a90869060040161269a565b5f604051808303815f875af1158015611175573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261119c919081019061279f565b93505050505b919050565b5f80516020612ac683398151915280545f9190600160a01b900460ff166111ce575f6111d7565b638fb3603760e01b5b91505090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663532329ca6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611235575f80fd5b505af1158015611247573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316336001600160a01b03161461129c576040516282b42960e81b815260040160405180910390fd5b5f80516020612ae683398151915254604051637128f7a960e11b81525f80516020612b06833981519152916001600160a01b03169063e251ef52906112f7908e908e908e908e908e908e908e908e908e908e90600401612864565b5f604051808303815f87803b15801561130e575f80fd5b505af1158015611320573d5f803e3d5ffd5b505050505050505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663532329ca6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611389575f80fd5b505af115801561139b573d5f803e3d5ffd5b505050505f6113b45f80516020612b0683398151915290565b90505f805b858110156115c157826005015f8a8a848181106113d8576113d8612686565b602090810292909201358352508181019290925260409081015f9081206001600160a01b038e16825290925290205460ff16156114555788888281811061142157611421612686565b6040516302a4851560e61b8152602090910292909201356004830152506001600160a01b038b166024820152604401610a49565b5f836004015f8b8b8581811061146d5761146d612686565b9050602002013581526020019081526020015f205490505f8b89898581811061149857611498612686565b905060200201356040516020016114c49291906001600160a01b03929092168252602082015260400190565b60408051601f198184030181528282528051602091820120908301520160405160208183030381529060405280519060200120905061152787878581811061150e5761150e612686565b90506020028101906115209190612a61565b84846118cc565b156115b7576001856005015f8d8d8781811061154557611545612686565b9050602002013581526020019081526020015f205f8e6001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff0219169083151502179055508888848181106115a2576115a2612686565b90506020020135846115b49190612aa6565b93505b50506001016113b9565b50805f036115ed576040516332559a3360e11b81526001600160a01b038a166004820152602401610a49565b6116006001600160a01b038a16826118e3565b886001600160a01b03167ffc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe8260405161163b91815260200190565b60405180910390a2505050505050505050565b6060336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611698576040516282b42960e81b815260040160405180910390fd5b6040516336a2fa1960e21b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063da8be864906024015f604051808303815f875af11580156116fa573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611721919081019061279f565b905090565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461176e576040516282b42960e81b815260040160405180910390fd5b60405163a0169ddd60e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a0169ddd906024015f604051808303815f87803b1580156117ce575f80fd5b505af11580156117e0573d5f803e3d5ffd5b5050505050565b6040805160208101859052908101839052606081018290525f9061185090608001604051602081830303815290604052805190602001207f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f908152601c91909152603c902090565b949350505050565b61186061197b565b611869816119c6565b50565b5f80516020612ac683398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b5f826118d98686856119d7565b1495945050505050565b804710156119065760405163cd78605960e01b8152306004820152602401610a49565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f811461194f576040519150601f19603f3d011682016040523d82523d5f602084013e611954565b606091505b505090508061197657604051630a12f52160e11b815260040160405180910390fd5b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166119c457604051631afcd79f60e31b815260040160405180910390fd5b565b6119ce61197b565b6118698161186c565b5f81815b84811015611a0f57611a05828787848181106119f9576119f9612686565b90506020020135611a18565b91506001016119db565b50949350505050565b5f818310611a32575f828152602084905260409020611a40565b5f8381526020839052604090205b90505b92915050565b5f8083601f840112611a59575f80fd5b5081356001600160401b03811115611a6f575f80fd5b602083019150836020828501011115611a86575f80fd5b9250929050565b5f805f805f60608688031215611aa1575f80fd5b85356001600160401b03811115611ab6575f80fd5b611ac288828901611a49565b90965094505060208601356001600160401b03811115611ae0575f80fd5b611aec88828901611a49565b96999598509660400135949350505050565b6001600160a01b0381168114611869575f80fd5b80356111a281611afe565b5f60408284031215611b2d575f80fd5b50919050565b5f805f60608486031215611b45575f80fd5b8335611b5081611afe565b925060208401356001600160401b03811115611b6a575f80fd5b611b7686828701611b1d565b93969395505050506040919091013590565b5f8083601f840112611b98575f80fd5b5081356001600160401b03811115611bae575f80fd5b6020830191508360208260051b8501011115611a86575f80fd5b5f805f805f805f806080898b031215611bdf575f80fd5b88356001600160401b03811115611bf4575f80fd5b611c008b828c01611b88565b90995097505060208901356001600160401b03811115611c1e575f80fd5b611c2a8b828c01611b88565b90975095505060408901356001600160401b03811115611c48575f80fd5b611c548b828c01611b88565b90955093505060608901356001600160401b03811115611c72575f80fd5b611c7e8b828c01611b88565b999c989b5096995094979396929594505050565b80356001600160401b03811681146111a2575f80fd5b5f805f805f805f8060a0898b031215611cbf575f80fd5b611cc889611c92565b975060208901356001600160401b03811115611ce2575f80fd5b611cee8b828c01611b1d565b97505060408901356001600160401b03811115611d09575f80fd5b611d158b828c01611b88565b90975095505060608901356001600160401b03811115611d33575f80fd5b611d3f8b828c01611b88565b90955093505060808901356001600160401b03811115611c72575f80fd5b5f805f8060608587031215611d70575f80fd5b843593506020850135925060408501356001600160401b03811115611d93575f80fd5b611d9f87828801611b88565b95989497509550505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f611a406020830184611dab565b5f60208284031215611dfb575f80fd5b5035919050565b5f8060408385031215611e13575f80fd5b823591506020830135611e2581611afe565b809150509250929050565b5f805f8060608587031215611e43575f80fd5b8435611e4e81611afe565b93506020850135925060408501356001600160401b03811115611e6f575f80fd5b611d9f87828801611a49565b8215158152604060208201525f6118506040830184611dab565b5f60208284031215611ea5575f80fd5b8135611eb081611afe565b9392505050565b602080825282518282018190525f918401906040840190835b81811015611eee578351835260209384019390920191600101611ed0565b509095945050505050565b5f805f805f805f805f8060c08b8d031215611f12575f80fd5b611f1b8b611c92565b995060208b01356001600160401b03811115611f35575f80fd5b611f418d828e01611b1d565b99505060408b01356001600160401b03811115611f5c575f80fd5b611f688d828e01611b88565b90995097505060608b01356001600160401b03811115611f86575f80fd5b611f928d828e01611b88565b90975095505060808b01356001600160401b03811115611fb0575f80fd5b611fbc8d828e01611b88565b90955093505060a08b01356001600160401b03811115611fda575f80fd5b611fe68d828e01611b88565b915080935050809150509295989b9194979a5092959850565b5f805f805f805f6080888a031215612015575f80fd5b873561202081611afe565b965060208801356001600160401b0381111561203a575f80fd5b6120468a828b01611b88565b90975095505060408801356001600160401b03811115612064575f80fd5b6120708a828b01611b88565b90955093505060608801356001600160401b0381111561208e575f80fd5b61209a8a828b01611b88565b989b979a50959850939692959293505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b606081525f6120e86060830187896120ad565b82810360208401526120fb8186886120ad565b9150508260408301529695505050505050565b5f808335601e19843603018112612123575f80fd5b83016020810192503590506001600160401b03811115612141575f80fd5b803603821315611a86575f80fd5b6001600160a01b0384168152606060208201525f61216d848061210e565b6040606085015261218260a0850182846120ad565b60209690960135608085015250505060400152919050565b803563ffffffff811681146111a2575f80fd5b5f808335601e198436030181126121c2575f80fd5b83016020810192503590506001600160401b038111156121e0575f80fd5b8060051b3603821315611a86575f80fd5b8183526020830192505f815f5b8481101561222f57813561221181611afe565b6001600160a01b0316865260209586019591909101906001016121fe565b5093949350505050565b8183525f6001600160fb1b03831115612250575f80fd5b8260051b80836020870137939093016020019392505050565b5f8383855260208501945060208460051b820101835f5b868110156122ed57838303601f1901885261229b82876121ad565b808552602085015f5b828110156122d45783356122b781611afe565b6001600160a01b03168252602093840193909101906001016122a4565b5060209a8b019a90955093909301925050600101612280565b50909695505050505050565b8015158114611869575f80fd5b8183526020830192505f815f5b8481101561222f578135612326816122f9565b151586526020958601959190910190600101612313565b608080825281018890525f60a060058a901b830181019083018b8360de1936839003015b8d82101561245157868503609f19018452823581811261237f575f80fd5b8f01803561238c81611afe565b6001600160a01b0316865260208101356123a581611afe565b6001600160a01b031660208701526123bf60408201611b12565b6001600160a01b03166040870152606081810135908701526123e36080820161219a565b63ffffffff1660808701526123fb60a08201826121ad565b60e060a089015261241060e0890182846121f1565b91505061242060c08301836121ad565b925087820360c0890152612435828483612239565b9750505050602083019250602084019350600182019150612361565b50505050828103602084015261246881898b612269565b9050828103604084015261247d818789612239565b90508281036060840152612492818587612306565b9b9a5050505050505050505050565b803582525f6124b3602083018361210e565b604060208601526124c86040860182846120ad565b95945050505050565b5f8383855260208501945060208460051b820101835f5b868110156122ed57838303601f19018852612503828761210e565b61250e8582846120ad565b60209a8b019a909550939093019250506001016124e8565b5f8383855260208501945060208460051b820101835f5b868110156122ed57838303601f1901885261255882876121ad565b612563858284612239565b60209a8b019a9095509390930192505060010161253d565b6001600160401b038916815260a060208201525f61259c60a083018a6124a1565b828103604084015287815288906020015f5b898110156125e057823564ffffffffff81168082146125cb575f80fd5b835250602092830192909101906001016125ae565b5083810360608501526125f481888a6124d1565b9150508281036080840152612492818587612526565b5f6020828403121561261a575f80fd5b8151611eb081611afe565b604081525f6126386040830185876124d1565b9050826020830152949350505050565b5f60208284031215612658575f80fd5b8151611eb0816122f9565b818382375f9101908152919050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561279357868503603f1901845281518051606080885281519088018190526020909101905f9060808901905b8083101561271c5783516001600160a01b031682526020820191506020840193506001830192506126f0565b506020848101518a83038b83015280518084529082019450910191505f905b8082101561275e578351835260208301925060208401935060018201915061273b565b50506040830151925061277c60408901846001600160a01b03169052565b9650505060209384019391909101906001016126c0565b50929695505050505050565b5f602082840312156127af575f80fd5b81516001600160401b038111156127c4575f80fd5b8201601f810184136127d4575f80fd5b80516001600160401b038111156127ed576127ed612672565b8060051b604051601f19603f83011681018181106001600160401b038211171561281957612819612672565b604052918252602081840181019290810187841115612836575f80fd5b6020850194505b838510156128595784518082526020958601959093500161283d565b509695505050505050565b6001600160401b038b16815260c060208201525f61288560c083018c6124a1565b828103604084015289815260208082019060058c901b8301018c5f3682900361017e19015b8e821015612a0e57601f19868503018552808335126128c7575f80fd5b8f8335016128d5818261210e565b61018087526128e9610180880182846120ad565b9150506128f9602083018361210e565b878303602089015261290c8382846120ad565b9250505061291d604083018361210e565b87830360408901526129308382846120ad565b92505050612941606083018361210e565b87830360608901526129548382846120ad565b92505050612965608083018361210e565b87830360808901526129788382846120ad565b9250505061298860a08301611c92565b6001600160401b031660a08701526129a260c08301611c92565b6001600160401b031660c08701526129bc60e08301611c92565b6001600160401b031660e08701526101008281013590870152610120808301359087015261014080830135908701526101609182013591909501526020948501949290920191600191909101906128aa565b5050508481036060860152612a24818b8d6124d1565b925050508281036080840152612a3b818789612526565b905082810360a0840152612a50818587612526565b9d9c50505050505050505050505050565b5f808335601e19843603018112612a76575f80fd5b8301803591506001600160401b03821115612a8f575f80fd5b6020019150600581901b3603821315611a86575f80fd5b80820180821115611a4357634e487b7160e01b5f52601160045260245ffdfef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00501caad7d5b9c1542c99d193b659cbf5c57571609bcfc93d65f1e159821d6201501caad7d5b9c1542c99d193b659cbf5c57571609bcfc93d65f1e159821d6200a264697066735822122077ece62d701176bbeb19a332235120ccf6c4d93f647d88bc280b0b9e3bbca9a764736f6c634300081a0033000000000000000000000000f7b6b32492c2e13799d921e84202450131bd238b00000000000000000000000091e677b07f7af907ec9a428aafa9fc14a0d3a3380000000000000000000000007fe7e9cc0f274d2435ad5d56d5fa73e47f6a23d800000000000000000000000039053d51b77dc0d36036fc1fcc8cb819df8ef37a0000000000000000000000009e1e4fcb49931df5743e659ad910d331735c38600000000000000000000000007750d328b314effa365a0402ccfd489b80b0adda