0 txs
1.8k calls
constructor
No constructor.
functions
getFundsRecoveryAddress
viewfunction getFundsRecoveryAddress() view returns (address)
bridgeUSDCWithWormholeForRecovery
nonpayablefunction bridgeUSDCWithWormholeForRecovery()
recoverERC1155
nonpayablefunction recoverERC1155(address _token, uint256 _tokenId, bytes _data)
recoverERC1155Batch
nonpayablefunction recoverERC1155Batch(address _token, uint256[] _tokenIds, uint256[] _amounts, bytes _data)
recoverERC721
nonpayablefunction recoverERC721(address _token, uint256 _tokenId)
recoverEther
nonpayablefunction recoverEther()
recoverToken
nonpayablefunction recoverToken(address _token)
recoverUSDCToEVMChain
nonpayablefunction recoverUSDCToEVMChain(uint32 _destinationCCTPDomain) returns (uint256 amountBridged, bool fullBalanceBridged)
setFundsRecoveryAddress
nonpayablefunction setFundsRecoveryAddress(address _fundsRecoveryAddress)
events
FundsRecoveryAddressSet
event FundsRecoveryAddressSet(address fundsRecoveryAddress)
Initialized
event Initialized(uint64 version)
PayloadProcessed
event PayloadProcessed((address _address, address _address2, uint256 _uint256, bytes32 _nonce, uint32 _uint32, bool _bool, bytes4 _selector) request, bytes signature)
TokenBridged
event TokenBridged(address indexed token, bytes32 indexed destinationAddress, uint32 indexed destinationDomain, address bridge, uint256 amount)
WithdrawalERC1155BatchExecuted
event WithdrawalERC1155BatchExecuted(address indexed token, address indexed withdrawalAddress, uint256[] tokenIds, uint256[] amounts, bytes data)
WithdrawalERC1155Executed
event WithdrawalERC1155Executed(address indexed token, address indexed withdrawalAddress, uint256 tokenId, uint256 amount, bytes data)
WithdrawalERC20Executed
event WithdrawalERC20Executed(address indexed token, address indexed withdrawalAddress, uint256 amount)
WithdrawalERC721Executed
event WithdrawalERC721Executed(address indexed token, address indexed withdrawalAddress, uint256 tokenId)
WithdrawalEtherExecuted
event WithdrawalEtherExecuted(address indexed withdrawalAddress, uint256 amount)
WithdrawalFeeUSDCTaken
event WithdrawalFeeUSDCTaken(address token, uint256 amount)
WithdrawalToDomainStarted
event WithdrawalToDomainStarted(address indexed token, address indexed addressTo, uint32 indexed destinationDomain, uint256 amount)
errors
AddressAlreadySet
error AddressAlreadySet()
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
ETHTransferFailed
error ETHTransferFailed()
FailedInnerCall
error FailedInnerCall()
FundsRecoveryNotActive
error FundsRecoveryNotActive()
InsufficientBalance
error InsufficientBalance()
InsufficientBalanceForFee
error InsufficientBalanceForFee(uint256 balance, uint256 fee)
InsufficientBridgeAmount
error InsufficientBridgeAmount()
InvalidInitialization
error InvalidInitialization()
InvalidKeySignature
error InvalidKeySignature(address from)
InvalidWormholeChainId
error InvalidWormholeChainId()
NotInitializing
error NotInitializing()
NullAddress
error NullAddress()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x608060405234801561001057600080fd5b50612a77806100206000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063819d4cc611610066578063819d4cc6146100ed57806389580cd6146101005780638e596830146101135780639be65a601461013b578063dd075d9b1461014e57600080fd5b806324c709ea1461009857806352d8bfc2146100ad578063620d9799146100b5578063632f57f5146100da575b600080fd5b6100ab6100a6366004612404565b610156565b005b6100ab610322565b6100bd6104dc565b6040516001600160a01b0390911681526020015b60405180910390f35b6100ab6100e83660046124b1565b6104eb565b6100ab6100fb3660046124ce565b61058d565b6100ab61010e3660046124fa565b61074a565b610126610121366004612556565b61097c565b604080519283529015156020830152016100d1565b6100ab6101493660046124b1565b610c51565b6100ab610ee5565b60006101606110fe565b905061016b81611150565b15801561017e575061017c81611180565b155b80156101fb575061018d6111b0565b6040516324862b1960e11b81526001600160a01b038381166004830152919091169063490c563290602401602060405180830381865afa1580156101d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f9919061257c565b155b15610229576040516357a92af760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b6102316111cb565b600061023b6111b0565b9050806001600160a01b031663f31d1be56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561027b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029f919061257c565b6102bc57604051635dc0d43960e11b815260040160405180910390fd5b60006102c6611203565b90506001600160a01b0381166102ef5760405163e99d5ac560e01b815260040160405180910390fd5b6102ff818b8b8b8b8b8b8b61120e565b50506103186001600080516020612a2283398151915255565b5050505050505050565b600061032c6110fe565b905061033781611150565b15801561034a575061034881611180565b155b80156103c757506103596111b0565b6040516324862b1960e11b81526001600160a01b038381166004830152919091169063490c563290602401602060405180830381865afa1580156103a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c5919061257c565b155b156103f0576040516357a92af760e01b81526001600160a01b0382166004820152602401610220565b6103f86111cb565b60006104026111b0565b9050806001600160a01b031663f31d1be56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610442573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610466919061257c565b61048357604051635dc0d43960e11b815260040160405180910390fd5b600061048d611203565b90506001600160a01b0381166104b65760405163e99d5ac560e01b815260040160405180910390fd5b6104c081476112d9565b50506104d96001600080516020612a2283398151915255565b50565b60006104e6611203565b905090565b6104fb6104f66110fe565b611150565b61052c576105076110fe565b6040516357a92af760e01b81526001600160a01b039091166004820152602401610220565b6000610536611203565b6001600160a01b03161461055d57604051637b1616c160e11b815260040160405180910390fd5b6001600160a01b0381166105845760405163e99d5ac560e01b815260040160405180910390fd5b6104d981611399565b60006105976110fe565b90506105a281611150565b1580156105b557506105b381611180565b155b801561063257506105c46111b0565b6040516324862b1960e11b81526001600160a01b038381166004830152919091169063490c563290602401602060405180830381865afa15801561060c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610630919061257c565b155b1561065b576040516357a92af760e01b81526001600160a01b0382166004820152602401610220565b6106636111cb565b600061066d6111b0565b9050806001600160a01b031663f31d1be56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d1919061257c565b6106ee57604051635dc0d43960e11b815260040160405180910390fd5b60006106f8611203565b90506001600160a01b0381166107215760405163e99d5ac560e01b815260040160405180910390fd5b61072c818686611402565b50506107456001600080516020612a2283398151915255565b505050565b60006107546110fe565b905061075f81611150565b158015610772575061077081611180565b155b80156107ef57506107816111b0565b6040516324862b1960e11b81526001600160a01b038381166004830152919091169063490c563290602401602060405180830381865afa1580156107c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ed919061257c565b155b15610818576040516357a92af760e01b81526001600160a01b0382166004820152602401610220565b6108206111cb565b600061082a6111b0565b9050806001600160a01b031663f31d1be56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e919061257c565b6108ab57604051635dc0d43960e11b815260040160405180910390fd5b60006108b5611203565b90506001600160a01b0381166108de5760405163e99d5ac560e01b815260040160405180910390fd5b604051627eeac760e11b81523060048201526024810187905261095c908290899089906001600160a01b0383169062fdd58e90604401602060405180830381865afa158015610931573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610955919061259e565b89896114bc565b50506109756001600080516020612a2283398151915255565b5050505050565b60008060006109896110fe565b905061099481611150565b1580156109a757506109a581611180565b155b8015610a2457506109b66111b0565b6040516324862b1960e11b81526001600160a01b038381166004830152919091169063490c563290602401602060405180830381865afa1580156109fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a22919061257c565b155b15610a4d576040516357a92af760e01b81526001600160a01b0382166004820152602401610220565b610a556111cb565b6000610a5f6111b0565b9050806001600160a01b031663f31d1be56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac3919061257c565b610ae057604051635dc0d43960e11b815260040160405180910390fd5b6000610aea611203565b90506001600160a01b038116610b135760405163e99d5ac560e01b815260040160405180910390fd5b6000610b1d61157d565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8b919061259e565b9050836001600160a01b03166374cb60946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bef919061259e565b811015610c0f57604051631e9acf1760e31b815260040160405180910390fd5b600080610c1b83611599565b91509150610c2a82868c6115c7565b6001600080516020612a228339815191525598509650610c4b945050505050565b50915091565b6000610c5b6110fe565b9050610c6681611150565b158015610c795750610c7781611180565b155b8015610cf65750610c886111b0565b6040516324862b1960e11b81526001600160a01b038381166004830152919091169063490c563290602401602060405180830381865afa158015610cd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf4919061257c565b155b15610d1f576040516357a92af760e01b81526001600160a01b0382166004820152602401610220565b610d276111cb565b6000610d316111b0565b9050806001600160a01b031663f31d1be56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d95919061257c565b610db257604051635dc0d43960e11b815260040160405180910390fd5b6000610dbc611203565b90506001600160a01b038116610de55760405163e99d5ac560e01b815260040160405180910390fd5b6040516370a0823160e01b8152306004820152610ec89085908390610ec3906001600160a01b038416906370a0823190602401602060405180830381865afa158015610e35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e59919061259e565b886001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebb91906125b7565b60ff166116e8565b61172a565b5050610ee16001600080516020612a2283398151915255565b5050565b610eed6111b0565b6001600160a01b031663490c5632610f036110fe565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b919061257c565b610f77576105076110fe565b6000610f816111b0565b9050806001600160a01b031663f31d1be56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe5919061257c565b61100257604051635dc0d43960e11b815260040160405180910390fd5b600061100c61157d565b6040516370a0823160e01b8152306004820152909150600090611083906001600160a01b038416906370a0823190602401602060405180830381865afa15801561105a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107e919061259e565b611599565b50905061074581306001600160a01b031660001b856001600160a01b0316639284aaee6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f991906125da565b611836565b600036601461110c336119f6565b80156111185750808210155b156111485760003661112a8385612614565b611135928290612627565b61113e91612651565b60601c9250505090565b339250505090565b60008061115b611a09565b6001600160a01b03909316600090815260039093016020525050604090205460ff1690565b60008061118b611a09565b6001600160a01b03909316600090815260029093016020525050604090205460ff1690565b6000806111bb611a6b565b546001600160a01b031692915050565b600080516020612a228339815191528054600119016111fd57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b6000806111bb611aaf565b876001600160a01b0316876001600160a01b03167f801a405e409a990c6098d2cbe9441f0a8c82ee40600340bb51f6b1f30b2bdf4588888888888860405161125b969594939291906126e1565b60405180910390a3604051631759616b60e11b81526001600160a01b03881690632eb2c2d69061129d9030908c908b908b908b908b908b908b9060040161272a565b600060405180830381600087803b1580156112b757600080fd5b505af11580156112cb573d6000803e3d6000fd5b505050505050505050505050565b6112e1611ae9565b50816001600160a01b03167fd82b833f24e4f073c79ca596acad7d5e9df45b62f22c465fe540feb2a96af3db8260405161131d91815260200190565b60405180910390a26000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611372576040519150601f19603f3d011682016040523d82523d6000602084013e611377565b606091505b50509050806107455760405163b12d13eb60e01b815260040160405180910390fd5b60006113a3611aaf565b6040516001600160a01b03841681529091507fbb41124494b118e9b40bd32881437ee73da5bd45f337a2546e71a33c8e0691c59060200160405180910390a180546001600160a01b0319166001600160a01b0392909216919091179055565b826001600160a01b0316826001600160a01b03167f940cf2d89850b5478dc7522e0cc925e2039c4dd76b5d878e3cbf22d3e473d1798360405161144791815260200190565b60405180910390a3604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018390528316906342842e0e90606401600060405180830381600087803b15801561149f57600080fd5b505af11580156114b3573d6000803e3d6000fd5b50505050505050565b856001600160a01b0316856001600160a01b03167fea56b6ce6255c732403c487e40f74dcf40c33a3e8142cfff363608fa3bceabf586868686604051611505949392919061278e565b60405180910390a3604051637921219560e11b81526001600160a01b0386169063f242432a906115439030908a9089908990899089906004016127b8565b600060405180830381600087803b15801561155d57600080fd5b505af1158015611571573d6000803e3d6000fd5b50505050505050505050565b6000611587611d3d565b600201546001600160a01b0316919050565b60008060006115a6611d75565b9050808411156115bc5780925060009150610c4b565b509192600192509050565b6000806115d261157d565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561161c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611640919061259e565b90508581101561166357604051631e9acf1760e31b815260040160405180910390fd5b61166b611ae9565b6116759087612614565b92508363ffffffff16856001600160a01b0316836001600160a01b03167fe509f81cb0fb10f507c14d8f6006b351bd6ff11377009e1de8f7551d0a218a8b866040516116c391815260200190565b60405180910390a46116df836001600160a01b03871686611dfd565b50509392505050565b60006012821161170c57611707611700836012612614565b8490611f6b565b611721565b61172161171a601284612614565b8490611f82565b90505b92915050565b600061179a82856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561176e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179291906125b7565b60ff16611f99565b90508060006117a7611ae9565b90506117b161157d565b6001600160a01b0316866001600160a01b0316036117d6576117d38184612614565b91505b846001600160a01b0316866001600160a01b03167f0a25bb5963c8215635d6d00abec63a956ee2f11c6df8b500a29d5bea14f1f4138460405161181b91815260200190565b60405180910390a361182e868684611fbf565b505050505050565b61183f83612011565b6118488161209a565b61186557604051630c139d6960e41b815260040160405180910390fd5b600061186f61157d565b9050600061187b612128565b604080516080810182526001600160a01b03858116808352602083018a905261ffff88168385015260608301899052925163095ea7b360e01b81529084166004820152602481018990529293509163095ea7b3906044016020604051808303816000875af11580156118f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611915919061257c565b50604080516001600160a01b0384811682526020820189905261ffff8716928892918716917f57cb3adc81e623f7a76c7c4b7915a700848437fe670586a190914990733b7730910160405180910390a4604080513360208201526001600160a01b0384169163a2a1f04c918491600091016040516020818303038152906040526040518463ffffffff1660e01b81526004016119b393929190612823565b6020604051808303816000875af11580156119d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b39190612895565b6000611724611a03612144565b83612188565b600080604051602001611a4d9060208082526017908201527f696f2e696e66696e65782e53656375726974794b657973000000000000000000604082015260600190565b60408051601f19818403018152919052805160209091012092915050565b600080604051602001611a4d9060208082526019908201527f696f2e696e66696e65782e4163636f756e7453746f7261676500000000000000604082015260600190565b600080604051602001611a4d90602080825260139082015272696f2e696e66696e65782e5265636f7665727960681b604082015260600190565b600080611af46111b0565b90506000611b0061157d565b90506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6691906125b7565b6040516370a0823160e01b815230600482015260ff9190911691506000906001600160a01b038416906370a0823190602401602060405180830381865afa158015611bb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd9919061259e565b9050611c5b611be983600a6129a3565b611bf49060326129af565b856001600160a01b031663a3e141c66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c56919061259e565b6121aa565b945084811015611c885760405163146aea2360e01b81526004810182905260248101869052604401610220565b604080516001600160a01b0385168152602081018790527f3be83bfde3ee7ed72c56c116f6aafff9f01d4e1587de99d1b4484d7ff2e42a3b910160405180910390a1611d3683856001600160a01b0316637f753de66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3091906129c6565b87611fbf565b5050505090565b600080604051602001611a4d90602080825260119082015270696f2e696e66696e65782e42726964676560781b604082015260600190565b6000611d7f6121c0565b6001600160a01b031663a56ec632611d9561157d565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611dd9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e6919061259e565b611e0683612011565b6000611e1061157d565b90506000611e1c6121dc565b60405163095ea7b360e01b81526001600160a01b038083166004830152602482018890529192509083169063095ea7b3906044016020604051808303816000875af1158015611e6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e93919061257c565b50604080516001600160a01b0383811682526020820188905263ffffffff8616928792918616917f57cb3adc81e623f7a76c7c4b7915a700848437fe670586a190914990733b7730910160405180910390a46040516337e9a82760e11b81526004810186905263ffffffff84166024820152604481018590526001600160a01b038381166064830152821690636fd3504e906084016020604051808303816000875af1158015611f47573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182e9190612895565b6000611f7882600a6129a3565b61172190846129af565b6000611f8f82600a6129a3565b61172190846129e3565b600060128211611fb15761170761171a836012612614565b611721611700601284612614565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526107459084906121f5565b6120196111b0565b6001600160a01b03166374cb60946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612056573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207a919061259e565b8110156104d957604051631f28161760e01b815260040160405180910390fd5b6000806120a5612128565b6040516324816abb60e01b815261ffff851660048201526001600160a01b0391909116906324816abb90602401602060405180830381865afa1580156120ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612113919061259e565b0361212057506000919050565b506001919050565b6000612132611d3d565b600301546001600160a01b0316919050565b600080604051602001611a4d9060208082526019908201527f696f2e696e66696e65782e45524332373731436f6e7465787400000000000000604082015260600190565b6001600160a01b03811660009081526001830160205260408120541515611721565b60008183106121b95781611721565b5090919050565b60006121ca611d3d565b600101546001600160a01b0316919050565b60006121e6611d3d565b546001600160a01b0316919050565b600061220a6001600160a01b03841683612258565b9050805160001415801561222f57508080602001905181019061222d919061257c565b155b1561074557604051635274afe760e01b81526001600160a01b0384166004820152602401610220565b60606117218383600084600080856001600160a01b0316848660405161227e9190612a05565b60006040518083038185875af1925050503d80600081146122bb576040519150601f19603f3d011682016040523d82523d6000602084013e6122c0565b606091505b50915091506122d08683836122dc565b925050505b9392505050565b6060826122f1576122ec82612338565b6122d5565b815115801561230857506001600160a01b0384163b155b1561233157604051639996b31560e01b81526001600160a01b0385166004820152602401610220565b50806122d5565b8051156123485780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6001600160a01b03811681146104d957600080fd5b60008083601f84011261238857600080fd5b50813567ffffffffffffffff8111156123a057600080fd5b6020830191508360208260051b85010111156123bb57600080fd5b9250929050565b60008083601f8401126123d457600080fd5b50813567ffffffffffffffff8111156123ec57600080fd5b6020830191508360208285010111156123bb57600080fd5b60008060008060008060006080888a03121561241f57600080fd5b873561242a81612361565b9650602088013567ffffffffffffffff8082111561244757600080fd5b6124538b838c01612376565b909850965060408a013591508082111561246c57600080fd5b6124788b838c01612376565b909650945060608a013591508082111561249157600080fd5b5061249e8a828b016123c2565b989b979a50959850939692959293505050565b6000602082840312156124c357600080fd5b81356122d581612361565b600080604083850312156124e157600080fd5b82356124ec81612361565b946020939093013593505050565b6000806000806060858703121561251057600080fd5b843561251b81612361565b935060208501359250604085013567ffffffffffffffff81111561253e57600080fd5b61254a878288016123c2565b95989497509550505050565b60006020828403121561256857600080fd5b813563ffffffff811681146122d557600080fd5b60006020828403121561258e57600080fd5b815180151581146122d557600080fd5b6000602082840312156125b057600080fd5b5051919050565b6000602082840312156125c957600080fd5b815160ff811681146122d557600080fd5b6000602082840312156125ec57600080fd5b815161ffff811681146122d557600080fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115611724576117246125fe565b6000808585111561263757600080fd5b8386111561264457600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff19813581811691601485101561267e5780818660140360031b1b83161692505b505092915050565b81835260006001600160fb1b0383111561269f57600080fd5b8260051b80836020870137939093016020019392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006126f560608301888a612686565b8281036020840152612708818789612686565b9050828103604084015261271d8185876126b8565b9998505050505050505050565b6001600160a01b0389811682528816602082015260a060408201819052600090612757908301888a612686565b828103606084015261276a818789612686565b9050828103608084015261277f8185876126b8565b9b9a5050505050505050505050565b8481528360208201526060604082015260006127ae6060830184866126b8565b9695505050505050565b6001600160a01b03878116825286166020820152604081018590526060810184905260a0608082018190526000906127f390830184866126b8565b98975050505050505050565b60005b8381101561281a578181015183820152602001612802565b50506000910152565b60018060a01b0384511681526020840151602082015261ffff60408501511660408201526060840151606082015263ffffffff8316608082015260c060a0820152600082518060c084015261287f8160e08501602087016127ff565b601f01601f19169190910160e001949350505050565b6000602082840312156128a757600080fd5b815167ffffffffffffffff811681146122d557600080fd5b600181815b808511156128fa5781600019048211156128e0576128e06125fe565b808516156128ed57918102915b93841c93908002906128c4565b509250929050565b60008261291157506001611724565b8161291e57506000611724565b8160018114612934576002811461293e5761295a565b6001915050611724565b60ff84111561294f5761294f6125fe565b50506001821b611724565b5060208310610133831016604e8410600b841016171561297d575081810a611724565b61298783836128bf565b806000190482111561299b5761299b6125fe565b029392505050565b60006117218383612902565b8082028115828204841417611724576117246125fe565b6000602082840312156129d857600080fd5b81516122d581612361565b600082612a0057634e487b7160e01b600052601260045260246000fd5b500490565b60008251612a178184602087016127ff565b919091019291505056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a264697066735822122014aea101c162feb659e52a63bf601a763d7e1df7ef536c4dc8f0a6caff08776f64736f6c63430008150033