0 txs
16.4k calls
constructor
No constructor.
functions
calculateAmountInUSD
viewfunction calculateAmountInUSD(uint8 tokenID, uint256 amount) view returns (uint256)
calculateWindowAmount
viewfunction calculateWindowAmount(uint8 chainID) view returns (uint256 total)
chainHourlyTransferAmount
viewfunction chainHourlyTransferAmount(uint256 chainHourTimestamp) view returns (uint256 totalAmountBridged)
chainLimits
viewfunction chainLimits(uint8 chainID) view returns (uint64 totalLimit)
committee
viewfunction committee() view returns (address)
currentHour
viewfunction currentHour() view returns (uint32)
getChainHourTimestampKey
purefunction getChainHourTimestampKey(uint8 chainID, uint32 hourTimestamp) pure returns (uint256)
nonces
viewfunction nonces(uint8 messageType) view returns (uint64 nonce)
oldestChainTimestamp
viewfunction oldestChainTimestamp(uint8 chainID) view returns (uint32 oldestHourTimestamp)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
willAmountExceedLimit
viewfunction willAmountExceedLimit(uint8 chainID, uint8 tokenID, uint256 amount) view returns (bool)
willUSDAmountExceedLimit
viewfunction willUSDAmountExceedLimit(uint8 chainID, uint256 amount) view returns (bool)
initialize
nonpayablefunction initialize(address _committee, uint8[] chainIDs, uint64[] _totalLimits)
recordBridgeTransfers
nonpayablefunction recordBridgeTransfers(uint8 chainID, uint8 tokenID, uint256 amount)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateLimitWithSignatures
nonpayablefunction updateLimitWithSignatures(bytes[] signatures, tuple message)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
upgradeWithSignatures
nonpayablefunction upgradeWithSignatures(bytes[] signatures, tuple message)
events
ContractUpgraded
event ContractUpgraded(uint256 nonce, address proxy, address implementation)
HourlyTransferAmountUpdated
event HourlyTransferAmountUpdated(uint32 hourUpdated, uint256 amount)
Initialized
event Initialized(uint64 version)
LimitUpdated
event LimitUpdated(uint8 sourceChainID, uint64 newLimit)
LimitUpdatedV2
event LimitUpdatedV2(uint64 nonce, uint8 sourceChainID, uint64 newLimit)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedInnerCall
error FailedInnerCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6080516126a462000104600039600081816115e90152818161161201526117c201526126a46000f3fe60806040526004361061012a5760003560e01c80638da5cb5b116100ab578063c6b478dd1161006f578063c6b478dd146103ce578063d864e740146103ee578063e6b04b9f1461040e578063f2fde38b1461042e578063f7857a191461044e578063fa72a6d01461046e57600080fd5b80638da5cb5b146102d25780639056e153146103235780639373d3911461035057806397c39b1314610370578063ad3cb1cc1461039057600080fd5b80634f46cba7116100f25780634f46cba71461020f5780635035bda21461023f57806352d1902d14610275578063715018a61461028a578063795334ad1461029f57600080fd5b8063020e185d1461012f578063085714c51461015e5780632c4535af1461018c57806343a5f2bc146101da5780634f1ef286146101fc575b600080fd5b34801561013b57600080fd5b5061014461048e565b60405163ffffffff90911681526020015b60405180910390f35b34801561016a57600080fd5b5061017e610179366004611c23565b6104a1565b604051908152602001610155565b34801561019857600080fd5b506101c26101a7366004611c65565b6036602052600090815260409020546001600160401b031681565b6040516001600160401b039091168152602001610155565b3480156101e657600080fd5b506101fa6101f5366004611d89565b6104bc565b005b6101fa61020a366004611ed6565b61089b565b34801561021b57600080fd5b5061022f61022a366004611f25565b6108ba565b6040519015158152602001610155565b34801561024b57600080fd5b506101c261025a366004611c65565b6001602052600090815260409020546001600160401b031681565b34801561028157600080fd5b5061017e6108f8565b34801561029657600080fd5b506101fa610915565b3480156102ab57600080fd5b506101446102ba366004611c65565b60376020526000908152604090205463ffffffff1681565b3480156102de57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03165b6040516001600160a01b039091168152602001610155565b34801561032f57600080fd5b5061017e61033e366004611f51565b60356020526000908152604090205481565b34801561035c57600080fd5b506101fa61036b366004611f6a565b610929565b34801561037c57600080fd5b506101fa61038b366004612066565b610a96565b34801561039c57600080fd5b506103c1604051806040016040528060058152602001640352e302e360dc1b81525081565b604051610155919061217f565b3480156103da57600080fd5b5061017e6103e9366004611c65565b610ed9565b3480156103fa57600080fd5b5060005461030b906001600160a01b031681565b34801561041a57600080fd5b5061017e610429366004611f25565b610f41565b34801561043a57600080fd5b506101fa610449366004612192565b611197565b34801561045a57600080fd5b5061022f610469366004611f6a565b6111d5565b34801561047a57600080fd5b506101fa610489366004612066565b611225565b600061049c610e10426121c5565b905090565b64ff00000000602083901b1663ffffffff8216175b92915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156105015750825b90506000826001600160401b0316600114801561051d5750303b155b90508115801561052b575080155b156105495760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561057357845460ff60401b1916600160401b1785555b85518751146105e85760405162461bcd60e51b815260206004820152603660248201527f4272696467654c696d697465723a20696e76616c696420636861696e494473206044820152750c2dcc840e8dee8c2d898d2dad2e8e640d8cadccee8d60531b60648201526084015b60405180910390fd5b6105f188611592565b6105fa336115cd565b60005b87518160ff16101561084a5760008054906101000a90046001600160a01b03166001600160a01b03166379502c556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561065a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067e91906121e7565b6001600160a01b03166373209533898360ff16815181106106a1576106a1612204565b60200260200101516040518263ffffffff1660e01b81526004016106ce919060ff91909116815260200190565b602060405180830381865afa1580156106eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070f919061221a565b6107665760405162461bcd60e51b815260206004820152602260248201527f4272696467654c696d697465723a20436861696e206e6f7420737570706f7274604482015261195960f21b60648201526084016105df565b868160ff168151811061077b5761077b612204565b6020026020010151603660008a8460ff168151811061079c5761079c612204565b602002602001015160ff1660ff16815260200190815260200160002060006101000a8154816001600160401b0302191690836001600160401b031602179055506107e461048e565b603760008a8460ff16815181106107fd576107fd612204565b602002602001015160ff1660ff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff16021790555080806108429061223c565b9150506105fd565b50831561089157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6108a36115de565b6108ac82611683565b6108b682826116f5565b5050565b6000806108c684610ed9565b60ff85166000908152603660205260409020549091506001600160401b03166108ef848361225b565b11949350505050565b60006109026117b7565b5060008051602061262f83398151915290565b61091d611800565b610927600061185b565b565b610931611800565b600081116109965760405162461bcd60e51b815260206004820152602c60248201527f4272696467654c696d697465723a20616d6f756e74206d75737420626520677260448201526b06561746572207468616e20360a41b60648201526084016105df565b60006109a28383610f41565b90506109ae84826108ba565b15610a165760405162461bcd60e51b815260206004820152603260248201527f4272696467654c696d697465723a20616d6f756e74206578636565647320726f6044820152711b1b1a5b99c81dda5b991bddc81b1a5b5a5d60721b60648201526084016105df565b6000610a2061048e565b90506000610a338661017960198561226e565b60008181526035602052604090205490915015610a5a576000818152603560205260408120555b610a6486836104a1565b905082603560008381526020019081526020016000206000828254610a89919061225b565b9091555050505050505050565b610a9e6118cc565b80518190839060039060ff168114610ac85760405162461bcd60e51b81526004016105df90612292565b600054604051633c62252760e21b81526001600160a01b039091169063f188949c90610afa90859087906004016122de565b60006040518083038186803b158015610b1257600080fd5b505afa158015610b26573d6000803e3d6000fd5b5050505060ff811615610cf35760008054906101000a90046001600160a01b03166001600160a01b03166379502c556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba891906121e7565b6001600160a01b031663adc879e96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c099190612396565b60ff16836060015160ff1614610c315760405162461bcd60e51b81526004016105df906123b3565b825160ff166000908152600160205260409081902054908401516001600160401b03908116911614610ca55760405162461bcd60e51b815260206004820152601e60248201527f4d65737361676556657269666965723a20496e76616c6964206e6f6e6365000060448201526064016105df565b825160ff16600090815260016020526040812080546001600160401b031691610ccd836123f4565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b600080610d038660800151611904565b9150915060008054906101000a90046001600160a01b03166001600160a01b03166379502c556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7c91906121e7565b604051637320953360e01b815260ff841660048201526001600160a01b039190911690637320953390602401602060405180830381865afa158015610dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de9919061221a565b610e475760405162461bcd60e51b815260206004820152602960248201527f4272696467654c696d697465723a20536f7572636520636861696e206e6f74206044820152681cdd5c1c1bdc9d195960ba1b60648201526084016105df565b60ff8216600081815260366020908152604091829020805467ffffffffffffffff19166001600160401b038681169182179092558a84015184519216825291810193909352908201527f253425292723148e4239ef77c5a481d0351c3440eaee94112b541e71a37545999060600160405180910390a150505050506108b6600160008051602061264f83398151915255565b600080610ee461048e565b905060005b60188163ffffffff161015610f3a576000610f0885610179848661226e565b600081815260356020526040902054909150610f24908561225b565b9350508080610f329061241a565b915050610ee9565b5050919050565b60008054604080516379502c5560e01b8152905183926001600160a01b0316916379502c559160048083019260209291908290030181865afa158015610f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faf91906121e7565b60405163e532488960e01b815260ff861660048201526001600160a01b03919091169063e532488990602401602060405180830381865afa158015610ff8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101c91906121e7565b90506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561105e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110829190612396565b905061108f81600a612517565b60008054906101000a90046001600160a01b03166001600160a01b03166379502c556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110491906121e7565b60405163dfc3db3d60e01b815260ff881660048201526001600160a01b03919091169063dfc3db3d90602401602060405180830381865afa15801561114d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111719190612526565b611184906001600160401b031686612543565b61118e91906121c5565b95945050505050565b61119f611800565b6001600160a01b0381166111c957604051631e4fbdf760e01b8152600060048201526024016105df565b6111d28161185b565b50565b6000806111e185610ed9565b905060006111ef8585610f41565b60ff87166000908152603660205260409020549091506001600160401b0316611218828461225b565b11925050505b9392505050565b61122d6118cc565b80518190839060059060ff1681146112575760405162461bcd60e51b81526004016105df90612292565b600054604051633c62252760e21b81526001600160a01b039091169063f188949c9061128990859087906004016122de565b60006040518083038186803b1580156112a157600080fd5b505afa1580156112b5573d6000803e3d6000fd5b5050505060ff8116156114825760008054906101000a90046001600160a01b03166001600160a01b03166379502c556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611313573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133791906121e7565b6001600160a01b031663adc879e96040518163ffffffff1660e01b8152600401602060405180830381865afa158015611374573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113989190612396565b60ff16836060015160ff16146113c05760405162461bcd60e51b81526004016105df906123b3565b825160ff166000908152600160205260409081902054908401516001600160401b039081169116146114345760405162461bcd60e51b815260206004820152601e60248201527f4d65737361676556657269666965723a20496e76616c6964206e6f6e6365000060448201526064016105df565b825160ff16600090815260016020526040812080546001600160401b03169161145c836123f4565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b600080600061149487608001516119a9565b919450925090506001600160a01b03831630146115075760405162461bcd60e51b815260206004820152602b60248201527f436f6d6d69747465655570677261646561626c653a20496e76616c696420707260448201526a6f7879206164647265737360a81b60648201526084016105df565b6002805460ff1916600117905561151e828261089b565b60408781015181516001600160401b0390911681526001600160a01b03858116602083015284168183015290517fdc69b57038334451ee12fd1742228917cea7f40dbd33cda5162e7e5754acee1c9181900360600190a15050505050506108b6600160008051602061264f83398151915255565b61159a6119d7565b6115a2611a20565b6115ab81611a30565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6115d56119d7565b6111d281611a38565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061166557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661165960008051602061262f833981519152546001600160a01b031690565b6001600160a01b031614155b156109275760405163703e46dd60e11b815260040160405180910390fd5b60025460ff166116e85760405162461bcd60e51b815260206004820152602a60248201527f436f6d6d69747465655570677261646561626c653a20556e617574686f72697a6044820152696564207570677261646560b01b60648201526084016105df565b506002805460ff19169055565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561174f575060408051601f3d908101601f1916820190925261174c9181019061255a565b60015b61177757604051634c9c8ce360e01b81526001600160a01b03831660048201526024016105df565b60008051602061262f83398151915281146117a857604051632a87526960e21b8152600481018290526024016105df565b6117b28383611a40565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109275760405163703e46dd60e11b815260040160405180910390fd5b336118327f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109275760405163118cdaa760e01b81523360048201526024016105df565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60008051602061264f8339815191528054600119016118fe57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60008082516009146119645760405162461bcd60e51b815260206004820152602360248201527f4272696467655574696c733a20496e76616c6964207061796c6f6164206c656e6044820152620cee8d60eb1b60648201526084016105df565b8260008151811061197757611977612204565b016020015160219093015160f89390931c9360c09390931c92915050565b600160008051602061264f83398151915255565b60008060606000806000868060200190518101906119c79190612573565b9199909850909650945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661092757604051631afcd79f60e31b815260040160405180910390fd5b611a286119d7565b610927611a96565b6115ab6119d7565b61119f6119d7565b611a4982611a9e565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611a8e576117b28282611b03565b6108b6611b70565b6119956119d7565b806001600160a01b03163b600003611ad457604051634c9c8ce360e01b81526001600160a01b03821660048201526024016105df565b60008051602061262f83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611b209190612612565b600060405180830381855af49150503d8060008114611b5b576040519150601f19603f3d011682016040523d82523d6000602084013e611b60565b606091505b509150915061118e858383611b8f565b34156109275760405163b398979f60e01b815260040160405180910390fd5b606082611ba457611b9f82611beb565b61121e565b8151158015611bbb57506001600160a01b0384163b155b15611be457604051639996b31560e01b81526001600160a01b03851660048201526024016105df565b508061121e565b805115611bfb5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60ff811681146111d257600080fd5b60008060408385031215611c3657600080fd5b8235611c4181611c14565b9150602083013563ffffffff81168114611c5a57600080fd5b809150509250929050565b600060208284031215611c7757600080fd5b813561121e81611c14565b6001600160a01b03811681146111d257600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611cd557611cd5611c97565b604052919050565b60006001600160401b03821115611cf657611cf6611c97565b5060051b60200190565b6001600160401b03811681146111d257600080fd5b600082601f830112611d2657600080fd5b81356020611d3b611d3683611cdd565b611cad565b82815260059290921b84018101918181019086841115611d5a57600080fd5b8286015b84811015611d7e578035611d7181611d00565b8352918301918301611d5e565b509695505050505050565b600080600060608486031215611d9e57600080fd5b8335611da981611c82565b92506020848101356001600160401b0380821115611dc657600080fd5b818701915087601f830112611dda57600080fd5b8135611de8611d3682611cdd565b81815260059190911b8301840190848101908a831115611e0757600080fd5b938501935b82851015611e2e578435611e1f81611c14565b82529385019390850190611e0c565b965050506040870135925080831115611e4657600080fd5b5050611e5486828701611d15565b9150509250925092565b60006001600160401b03821115611e7757611e77611c97565b50601f01601f191660200190565b600082601f830112611e9657600080fd5b8135611ea4611d3682611e5e565b818152846020838601011115611eb957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215611ee957600080fd5b8235611ef481611c82565b915060208301356001600160401b03811115611f0f57600080fd5b611f1b85828601611e85565b9150509250929050565b60008060408385031215611f3857600080fd5b8235611f4381611c14565b946020939093013593505050565b600060208284031215611f6357600080fd5b5035919050565b600080600060608486031215611f7f57600080fd5b8335611f8a81611c14565b92506020840135611f9a81611c14565b929592945050506040919091013590565b600060a08284031215611fbd57600080fd5b60405160a081016001600160401b038282108183111715611fe057611fe0611c97565b8160405282935084359150611ff482611c14565b90825260208401359061200682611c14565b8160208401526040850135915061201c82611d00565b8160408401526060850135915061203282611c14565b816060840152608085013591508082111561204c57600080fd5b5061205985828601611e85565b6080830152505092915050565b6000806040838503121561207957600080fd5b82356001600160401b038082111561209057600080fd5b818501915085601f8301126120a457600080fd5b813560206120b4611d3683611cdd565b82815260059290921b840181019181810190898411156120d357600080fd5b8286015b8481101561210b578035868111156120ef5760008081fd5b6120fd8c86838b0101611e85565b8452509183019183016120d7565b509650508601359250508082111561212257600080fd5b50611f1b85828601611fab565b60005b8381101561214a578181015183820152602001612132565b50506000910152565b6000815180845261216b81602086016020860161212f565b601f01601f19169290920160200192915050565b60208152600061121e6020830184612153565b6000602082840312156121a457600080fd5b813561121e81611c82565b634e487b7160e01b600052601160045260246000fd5b6000826121e257634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156121f957600080fd5b815161121e81611c82565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561222c57600080fd5b8151801515811461121e57600080fd5b600060ff821660ff8103612252576122526121af565b60010192915050565b808201808211156104b6576104b66121af565b63ffffffff82811682821603908082111561228b5761228b6121af565b5092915050565b6020808252602c908201527f4d65737361676556657269666965723a206d65737361676520646f6573206e6f60408201526b74206d61746368207479706560a01b606082015260800190565b6000604082016040835280855180835260608501915060608160051b8601019250602080880160005b8381101561233557605f19888703018552612323868351612153565b95509382019390820190600101612307565b50508584038187015260ff875116845260ff8188015116818501525050506001600160401b03604085015116604082015260ff6060850151166060820152608084015160a0608083015261238c60a0830182612153565b9695505050505050565b6000602082840312156123a857600080fd5b815161121e81611c14565b60208082526021908201527f4d65737361676556657269666965723a20496e76616c696420636861696e20496040820152601160fa1b606082015260800190565b60006001600160401b03808316818103612410576124106121af565b6001019392505050565b600063ffffffff808316818103612410576124106121af565b600181815b8085111561246e578160001904821115612454576124546121af565b8085161561246157918102915b93841c9390800290612438565b509250929050565b600082612485575060016104b6565b81612492575060006104b6565b81600181146124a857600281146124b2576124ce565b60019150506104b6565b60ff8411156124c3576124c36121af565b50506001821b6104b6565b5060208310610133831016604e8410600b84101617156124f1575081810a6104b6565b6124fb8383612433565b806000190482111561250f5761250f6121af565b029392505050565b600061121e60ff841683612476565b60006020828403121561253857600080fd5b815161121e81611d00565b80820281158282048414176104b6576104b66121af565b60006020828403121561256c57600080fd5b5051919050565b60008060006060848603121561258857600080fd5b835161259381611c82565b60208501519093506125a481611c82565b60408501519092506001600160401b038111156125c057600080fd5b8401601f810186136125d157600080fd5b80516125df611d3682611e5e565b8181528760208385010111156125f457600080fd5b61260582602083016020860161212f565b8093505050509250925092565b6000825161262481846020870161212f565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220fc377dd21dd2076666159cb490c001a77431a0e260d1b2bcbf06213a8c2c172164736f6c63430008140033