0 txs
15 calls
constructor
constructor(address atm_, address vault_)
functions
atm
viewfunction atm() view returns (address)
isPaused
viewfunction isPaused(bytes4 sig) view returns (bool)
isPausedGlobally
viewfunction isPausedGlobally() view returns (bool)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
vault
viewfunction vault() view returns (address)
deposit
nonpayablefunction deposit(bytes32 operationId, address asset, address invokedFrom, address fallbackTo, address to)
depositInner
nonpayablefunction depositInner(address asset, address to, uint256 amount) returns (uint256)
depositWithSupplyVLF
nonpayablefunction depositWithSupplyVLF(bytes32 operationId, address asset, address invokedFrom, address fallbackTo, address to, address hubVLFVault)
depositWithSupplyVLFInner
nonpayablefunction depositWithSupplyVLFInner(address asset, address to, address hubVLFVault, uint256 amount) returns (uint256)
fuel
payablefunction fuel() payable
initialize
nonpayablefunction initialize(address admin)
pause
nonpayablefunction pause()
pause
nonpayablefunction pause(bytes4 sig)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
unpause
nonpayablefunction unpause(bytes4 sig)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
DepositFallback
event DepositFallback(bytes32 indexed operationId, address indexed asset, address indexed to, address sender, address fallbackTo, uint256 amount)
DepositWithSupplyVLFFallback
event DepositWithSupplyVLFFallback(bytes32 indexed operationId, address indexed asset, address indexed to, address sender, address fallbackTo, address hubVLFVault, uint256 amount)
GasFueled
event GasFueled(address indexed to, uint256 amount)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RedirectedDeposit
event RedirectedDeposit(bytes32 indexed operationId, address indexed asset, address indexed to, address sender, uint256 amount, uint256 gas)
RedirectedDepositWithSupplyVLF
event RedirectedDepositWithSupplyVLF(bytes32 indexed operationId, address indexed asset, address indexed to, address sender, address hubVLFVault, uint256 amount, uint256 gas)
Upgraded
event Upgraded(address indexed implementation)
Withdrawn
event Withdrawn(address indexed asset, address indexed to, uint256 amount)
WithdrawnETH
event WithdrawnETH(address indexed to, uint256 amount)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedCall
error FailedCall()
InvalidAddress
error InvalidAddress()
InvalidAmount
error InvalidAmount()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
NotSupported
error NotSupported()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
Pausable__NotPaused
error Pausable__NotPaused(bytes4 sig)
Pausable__Paused
error Pausable__Paused(bytes4 sig)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
Unauthorized
error Unauthorized()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x6101006040526100496040518060400160405280601881526020017f6d69746f7369732e73746f726167652e5061757361626c6500000000000000008152506101f660201b60201c565b6080908152503073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1681525034801561008d575f5ffd5b5060405161362938038061362983398181016040528101906100af9190610395565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610114576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610179576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250506101ef61021260201b60201c565b505061040e565b5f600182516020840120035f5260ff1960205f20169050919050565b5f61022161031060201b60201c565b9050805f0160089054906101000a900460ff161561026b576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff8016815f015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff161461030d5767ffffffffffffffff815f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff60405161030491906103f5565b60405180910390a15b50565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103648261033b565b9050919050565b6103748161035a565b811461037e575f5ffd5b50565b5f8151905061038f8161036b565b92915050565b5f5f604083850312156103ab576103aa610337565b5b5f6103b885828601610381565b92505060206103c985828601610381565b9150509250929050565b5f67ffffffffffffffff82169050919050565b6103ef816103d3565b82525050565b5f6020820190506104085f8301846103e6565b92915050565b60805160a05160c05160e0516131786104b15f395f8181610fad015281816110df0152818161112f015281816111c2015281816112520152818161152e0152818161165e015281816116ae0152818161173f015281816117cd01526118a501525f81816101290152818161093001528181610ee00152818161105501526115d401525f8181611c8701528181611cdc0152611e9601525f6122dd01526131785ff3fe608060405260043610610122575f3560e01c80638da5cb5b1161009f578063bac1e94b11610063578063bac1e94b146103fd578063c4d66de814610425578063c5831dd71461044d578063f2fde38b14610489578063fbfa77cf146104b1576101a1565b80638da5cb5b1461031957806393a9ec75146103435780639e8674dc1461036d578063ad3cb1cc14610397578063b4ddb1fa146103c1576101a1565b80634f1ef286116100e65780634f1ef2861461027f57806352d1902d1461029b5780636dcc7e04146102c5578063715018a6146102ed5780638456cb5914610303576101a1565b806309b65e66146101d35780630fbfebfe1461020f578063279bad16146102375780633aa83ec7146102415780633f4ba83a14610269576101a1565b366101a1577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b15801561018d575f5ffd5b505af115801561019f573d5f5f3e3d5ffd5b005b6040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3480156101de575f5ffd5b506101f960048036038101906101f491906128ab565b6104db565b60405161020691906128f0565b60405180910390f35b34801561021a575f5ffd5b5061023560048036038101906102309190612996565b6104ec565b005b61023f61092e565b005b34801561024c575f5ffd5b50610267600480360381019061026291906128ab565b610a11565b005b348015610274575f5ffd5b5061027d610a2d565b005b61029960048036038101906102949190612b5b565b610a47565b005b3480156102a6575f5ffd5b506102af610a66565b6040516102bc9190612bc4565b60405180910390f35b3480156102d0575f5ffd5b506102eb60048036038101906102e69190612bdd565b610a97565b005b3480156102f8575f5ffd5b50610301610e6d565b005b34801561030e575f5ffd5b50610317610e80565b005b348015610324575f5ffd5b5061032d610e9a565b60405161033a9190612c63565b60405180910390f35b34801561034e575f5ffd5b50610357610ecf565b60405161036491906128f0565b60405180910390f35b348015610378575f5ffd5b50610381610edd565b60405161038e9190612c63565b60405180910390f35b3480156103a2575f5ffd5b506103ab610f04565b6040516103b89190612cdc565b60405180910390f35b3480156103cc575f5ffd5b506103e760048036038101906103e29190612d2f565b610f3d565b6040516103f49190612da2565b60405180910390f35b348015610408575f5ffd5b50610423600480360381019061041e91906128ab565b6112a4565b005b348015610430575f5ffd5b5061044b60048036038101906104469190612dbb565b6112c0565b005b348015610458575f5ffd5b50610473600480360381019061046e9190612de6565b6114be565b6040516104809190612da2565b60405180910390f35b348015610494575f5ffd5b506104af60048036038101906104aa9190612dbb565b61181e565b005b3480156104bc575f5ffd5b506104c56118a2565b6040516104d29190612c63565b60405180910390f35b5f6104e5826118c9565b9050919050565b6105185f357fffffffff00000000000000000000000000000000000000000000000000000000166118c9565b155f357fffffffff00000000000000000000000000000000000000000000000000000000169061057e576040517f7b74a1420000000000000000000000000000000000000000000000000000000081526004016105759190612e45565b60405180910390fd5b50610587611952565b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036105ec576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610651576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106b6576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361071b576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610725866119a6565b905061075b610732611ac5565b30838973ffffffffffffffffffffffffffffffffffffffff16611acc909392919063ffffffff16565b3073ffffffffffffffffffffffffffffffffffffffff1663b4ddb1fa878585856040518563ffffffff1660e01b815260040161079a9493929190612e5e565b6020604051808303815f875af19250505080156107d557506040513d601f19601f820116820180604052508101906107d29190612eb5565b60015b6108af5761083e5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146108155784610817565b835b828873ffffffffffffffffffffffffffffffffffffffff16611b4e9092919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16887fefd9d27dd5dfe8d2e9023b5845570e8b0ad69b86f983bdd6adaf5198c3767160888887876040516108a29493929190612e5e565b60405180910390a461091d565b8373ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16897f4909493cc7858560fb32719db8f0c37b3f13568ba368627ef8f79e5f4a8a9eb3898787876040516109139493929190612ee0565b60405180910390a4505b50610926611bcd565b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661096d611ac5565b73ffffffffffffffffffffffffffffffffffffffff16146109ba576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109c2611ac5565b73ffffffffffffffffffffffffffffffffffffffff167fd0ca6543d49fbafde68065625e9c80e3af758c02e69a9eeb9292a7f3b9e8c4e434604051610a079190612da2565b60405180910390a2565b610a21610a1c611ac5565b611be4565b610a2a81611bef565b50565b610a3d610a38611ac5565b611be4565b610a45611c62565b565b610a4f611c85565b610a5882611d6b565b610a628282611d76565b5050565b5f610a6f611e94565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b905090565b610ac35f357fffffffff00000000000000000000000000000000000000000000000000000000166118c9565b155f357fffffffff000000000000000000000000000000000000000000000000000000001690610b29576040517f7b74a142000000000000000000000000000000000000000000000000000000008152600401610b209190612e45565b60405180910390fd5b50610b32611952565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b97576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bfc576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c61576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610c6b856119a6565b9050610ca1610c78611ac5565b30838873ffffffffffffffffffffffffffffffffffffffff16611acc909392919063ffffffff16565b3073ffffffffffffffffffffffffffffffffffffffff1663c5831dd78684846040518463ffffffff1660e01b8152600401610cde93929190612f23565b6020604051808303815f875af1925050508015610d1957506040513d601f19601f82011682018060405250810190610d169190612eb5565b60015b610df157610d825f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610d595783610d5b565b825b828773ffffffffffffffffffffffffffffffffffffffff16611b4e9092919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16877f46caf42f3f345461a9d3b845c0478fd4e3e37fd2856116d89eb376513306e4e8878786604051610de493929190612f23565b60405180910390a4610e5d565b8273ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16887f3d351b959a20bb9e7fb6258148140b8d9522acec45931488caaabd36a31d468e888686604051610e5393929190612f58565b60405180910390a4505b50610e66611bcd565b5050505050565b610e75611f1b565b610e7e5f611fa2565b565b610e90610e8b611ac5565b611be4565b610e98612073565b565b5f5f610ea4612097565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b5f610ed86120be565b905090565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b5f3073ffffffffffffffffffffffffffffffffffffffff16610f5d611ac5565b73ffffffffffffffffffffffffffffffffffffffff1614610faa576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635b9a0e19878787876040518563ffffffff1660e01b815260040161100a9493929190612e5e565b602060405180830381865afa158015611025573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110499190612eb5565b90505f8111156110da577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166385acd77e826040518263ffffffff1660e01b81526004016110ac9190612da2565b5f604051808303815f87803b1580156110c3575f5ffd5b505af11580156110d5573d5f5f3e3d5ffd5b505050505b6111257f0000000000000000000000000000000000000000000000000000000000000000848873ffffffffffffffffffffffffffffffffffffffff166120db9092919063ffffffff16565b5f8111156111c0577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c794b91382888888886040518663ffffffff1660e01b815260040161118d9493929190612e5e565b5f604051808303818588803b1580156111a4575f5ffd5b505af11580156111b6573d5f5f3e3d5ffd5b505050505061124d565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c794b913878787876040518563ffffffff1660e01b815260040161121f9493929190612e5e565b5f604051808303815f87803b158015611236575f5ffd5b505af1158015611248573d5f5f3e3d5ffd5b505050505b6112987f00000000000000000000000000000000000000000000000000000000000000005f8873ffffffffffffffffffffffffffffffffffffffff166120db9092919063ffffffff16565b80915050949350505050565b6112b46112af611ac5565b611be4565b6112bd816121e8565b50565b5f6112c961225a565b90505f815f0160089054906101000a900460ff161590505f825f015f9054906101000a900467ffffffffffffffff1690505f5f8267ffffffffffffffff161480156113115750825b90505f60018367ffffffffffffffff1614801561134457505f3073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015611352575080155b15611389576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001855f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156113d6576001855f0160086101000a81548160ff0219169083151502179055505b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361143b576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61144486612281565b61144c612295565b6114546122a7565b61145c6122cf565b83156114b6575f855f0160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516114ad9190612fe2565b60405180910390a15b505050505050565b5f3073ffffffffffffffffffffffffffffffffffffffff166114de611ac5565b73ffffffffffffffffffffffffffffffffffffffff161461152b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633c57dd5d8686866040518463ffffffff1660e01b815260040161158993929190612f23565b602060405180830381865afa1580156115a4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115c89190612eb5565b90505f811115611659577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166385acd77e826040518263ffffffff1660e01b815260040161162b9190612da2565b5f604051808303815f87803b158015611642575f5ffd5b505af1158015611654573d5f5f3e3d5ffd5b505050505b6116a47f0000000000000000000000000000000000000000000000000000000000000000848773ffffffffffffffffffffffffffffffffffffffff166120db9092919063ffffffff16565b5f81111561173d577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16638340f549828787876040518563ffffffff1660e01b815260040161170a93929190612f23565b5f604051808303818588803b158015611721575f5ffd5b505af1158015611733573d5f5f3e3d5ffd5b50505050506117c8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16638340f5498686866040518463ffffffff1660e01b815260040161179a93929190612f23565b5f604051808303815f87803b1580156117b1575f5ffd5b505af11580156117c3573d5f5f3e3d5ffd5b505050505b6118137f00000000000000000000000000000000000000000000000000000000000000005f8773ffffffffffffffffffffffffffffffffffffffff166120db9092919063ffffffff16565b809150509392505050565b611826611f1b565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611896575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161188d9190612c63565b60405180910390fd5b61189f81611fa2565b50565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f5f6118d36122d9565b9050805f015f9054906101000a900460ff168061194a5750806001015f847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f9054906101000a900460ff165b915050919050565b5f61195b612305565b90506002815f01540361199a576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002815f018190555050565b5f5f8273ffffffffffffffffffffffffffffffffffffffff166370a082316119cc611ac5565b6040518263ffffffff1660e01b81526004016119e89190612c63565b602060405180830381865afa158015611a03573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a279190612eb5565b90505f8373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e611a4e611ac5565b306040518363ffffffff1660e01b8152600401611a6c929190612ffb565b602060405180830381865afa158015611a87573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aab9190612eb5565b9050808211611aba5781611abc565b805b92505050919050565b5f33905090565b611b48848573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401611b0193929190612f23565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061232c565b50505050565b611bc8838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401611b81929190613022565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061232c565b505050565b5f611bd6612305565b90506001815f018190555050565b611bec611f1b565b50565b6001611bf96122d9565b6001015f837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f611c6b6122d9565b5f015f6101000a81548160ff021916908315150217905550565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161480611d3257507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611d196123c7565b73ffffffffffffffffffffffffffffffffffffffff1614155b15611d69576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611d73611f1b565b50565b8173ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611dde57506040513d601f19601f82011682018060405250810190611ddb919061305d565b60015b611e1f57816040517f4c9c8ce3000000000000000000000000000000000000000000000000000000008152600401611e169190612c63565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b8114611e8557806040517faa1d49a4000000000000000000000000000000000000000000000000000000008152600401611e7c9190612bc4565b60405180910390fd5b611e8f838361241a565b505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614611f19576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611f23611ac5565b73ffffffffffffffffffffffffffffffffffffffff16611f41610e9a565b73ffffffffffffffffffffffffffffffffffffffff1614611fa057611f64611ac5565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611f979190612c63565b60405180910390fd5b565b5f611fab612097565b90505f815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082825f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b600161207d6122d9565b5f015f6101000a81548160ff021916908315150217905550565b5f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b5f6120c76122d9565b5f015f9054906101000a900460ff16905090565b5f8373ffffffffffffffffffffffffffffffffffffffff1663095ea7b3848460405160240161210b929190613022565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050612159848261248c565b6121e2576121d7848573ffffffffffffffffffffffffffffffffffffffff1663095ea7b3865f6040516024016121909291906130c1565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061232c565b6121e1848261232c565b5b50505050565b5f6121f16122d9565b6001015f837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b6122896124e5565b61229281612525565b50565b61229d6124e5565b6122a56125a9565b565b5f6122b06122d9565b90505f815f015f6101000a81548160ff02191690831515021790555050565b6122d76124e5565b565b5f5f7f000000000000000000000000000000000000000000000000000000000000000090508091505090565b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00905090565b5f5f60205f8451602086015f885af18061234b576040513d5f823e3d81fd5b3d92505f519150505f821461236457600181141561237f565b5f8473ffffffffffffffffffffffffffffffffffffffff163b145b156123c157836040517f5274afe70000000000000000000000000000000000000000000000000000000081526004016123b89190612c63565b60405180910390fd5b50505050565b5f6123f37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6125c8565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b612423826125d1565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f8151111561247f57612479828261269a565b50612488565b61248761271a565b5b5050565b5f5f5f5f60205f8651602088015f8a5af192503d91505f5190508280156124da57505f82146124be57600181146124d9565b5f8673ffffffffffffffffffffffffffffffffffffffff163b115b5b935050505092915050565b6124ed612756565b612523576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b61252d6124e5565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361259d575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016125949190612c63565b60405180910390fd5b6125a681611fa2565b50565b6125b16124e5565b5f6125ba612305565b90506001815f018190555050565b5f819050919050565b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361262c57806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016126239190612c63565b60405180910390fd5b806126587f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6125c8565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff16846040516126c3919061312c565b5f60405180830381855af49150503d805f81146126fb576040519150601f19603f3d011682016040523d82523d5f602084013e612700565b606091505b5091509150612710858383612774565b9250505092915050565b5f341115612754576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f61275f61225a565b5f0160089054906101000a900460ff16905090565b6060826127895761278482612801565b6127f9565b5f82511480156127af57505f8473ffffffffffffffffffffffffffffffffffffffff163b145b156127f157836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016127e89190612c63565b60405180910390fd5b8190506127fa565b5b9392505050565b5f815111156128135780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61288a81612856565b8114612894575f5ffd5b50565b5f813590506128a581612881565b92915050565b5f602082840312156128c0576128bf61284e565b5b5f6128cd84828501612897565b91505092915050565b5f8115159050919050565b6128ea816128d6565b82525050565b5f6020820190506129035f8301846128e1565b92915050565b5f819050919050565b61291b81612909565b8114612925575f5ffd5b50565b5f8135905061293681612912565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6129658261293c565b9050919050565b6129758161295b565b811461297f575f5ffd5b50565b5f813590506129908161296c565b92915050565b5f5f5f5f5f5f60c087890312156129b0576129af61284e565b5b5f6129bd89828a01612928565b96505060206129ce89828a01612982565b95505060406129df89828a01612982565b94505060606129f089828a01612982565b9350506080612a0189828a01612982565b92505060a0612a1289828a01612982565b9150509295509295509295565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612a6d82612a27565b810181811067ffffffffffffffff82111715612a8c57612a8b612a37565b5b80604052505050565b5f612a9e612845565b9050612aaa8282612a64565b919050565b5f67ffffffffffffffff821115612ac957612ac8612a37565b5b612ad282612a27565b9050602081019050919050565b828183375f83830152505050565b5f612aff612afa84612aaf565b612a95565b905082815260208101848484011115612b1b57612b1a612a23565b5b612b26848285612adf565b509392505050565b5f82601f830112612b4257612b41612a1f565b5b8135612b52848260208601612aed565b91505092915050565b5f5f60408385031215612b7157612b7061284e565b5b5f612b7e85828601612982565b925050602083013567ffffffffffffffff811115612b9f57612b9e612852565b5b612bab85828601612b2e565b9150509250929050565b612bbe81612909565b82525050565b5f602082019050612bd75f830184612bb5565b92915050565b5f5f5f5f5f60a08688031215612bf657612bf561284e565b5b5f612c0388828901612928565b9550506020612c1488828901612982565b9450506040612c2588828901612982565b9350506060612c3688828901612982565b9250506080612c4788828901612982565b9150509295509295909350565b612c5d8161295b565b82525050565b5f602082019050612c765f830184612c54565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f612cae82612c7c565b612cb88185612c86565b9350612cc8818560208601612c96565b612cd181612a27565b840191505092915050565b5f6020820190508181035f830152612cf48184612ca4565b905092915050565b5f819050919050565b612d0e81612cfc565b8114612d18575f5ffd5b50565b5f81359050612d2981612d05565b92915050565b5f5f5f5f60808587031215612d4757612d4661284e565b5b5f612d5487828801612982565b9450506020612d6587828801612982565b9350506040612d7687828801612982565b9250506060612d8787828801612d1b565b91505092959194509250565b612d9c81612cfc565b82525050565b5f602082019050612db55f830184612d93565b92915050565b5f60208284031215612dd057612dcf61284e565b5b5f612ddd84828501612982565b91505092915050565b5f5f5f60608486031215612dfd57612dfc61284e565b5b5f612e0a86828701612982565b9350506020612e1b86828701612982565b9250506040612e2c86828701612d1b565b9150509250925092565b612e3f81612856565b82525050565b5f602082019050612e585f830184612e36565b92915050565b5f608082019050612e715f830187612c54565b612e7e6020830186612c54565b612e8b6040830185612c54565b612e986060830184612d93565b95945050505050565b5f81519050612eaf81612d05565b92915050565b5f60208284031215612eca57612ec961284e565b5b5f612ed784828501612ea1565b91505092915050565b5f608082019050612ef35f830187612c54565b612f006020830186612c54565b612f0d6040830185612d93565b612f1a6060830184612d93565b95945050505050565b5f606082019050612f365f830186612c54565b612f436020830185612c54565b612f506040830184612d93565b949350505050565b5f606082019050612f6b5f830186612c54565b612f786020830185612d93565b612f856040830184612d93565b949350505050565b5f819050919050565b5f67ffffffffffffffff82169050919050565b5f819050919050565b5f612fcc612fc7612fc284612f8d565b612fa9565b612f96565b9050919050565b612fdc81612fb2565b82525050565b5f602082019050612ff55f830184612fd3565b92915050565b5f60408201905061300e5f830185612c54565b61301b6020830184612c54565b9392505050565b5f6040820190506130355f830185612c54565b6130426020830184612d93565b9392505050565b5f8151905061305781612912565b92915050565b5f602082840312156130725761307161284e565b5b5f61307f84828501613049565b91505092915050565b5f819050919050565b5f6130ab6130a66130a184613088565b612fa9565b612cfc565b9050919050565b6130bb81613091565b82525050565b5f6040820190506130d45f830185612c54565b6130e160208301846130b2565b9392505050565b5f81519050919050565b5f81905092915050565b5f613106826130e8565b61311081856130f2565b9350613120818560208601612c96565b80840191505092915050565b5f61313782846130fc565b91508190509291505056fea2646970667358221220c7788023ece18d807aa028c58be8f941037937016cce1f305ed13ff9dbd595e464736f6c634300081d00330000000000000000000000003cda62917dae24d153c102b3db9bb5c058fc0f1f0000000000000000000000004a6219e25a41fd4165fbd158d89723a7175ea382