0 txs
0 calls
constructor
constructor(address asset_, address router_, address ammStorage_, address ammAssetManagement_)
functions
ammAssetManagement
viewfunction ammAssetManagement() view returns (address)
ammStorage
viewfunction ammStorage() view returns (address)
asset
viewfunction asset() view returns (address)
assetDecimals
viewfunction assetDecimals() view returns (uint256)
getImplementation
viewfunction getImplementation() view returns (address)
getLiquidityPoolBalance
viewfunction getLiquidityPoolBalance() view returns (uint256)
getVersion
purefunction getVersion() pure returns (uint256)
isPauseGuardian
viewfunction isPauseGuardian(address account) view returns (bool)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
router
viewfunction router() view returns (address)
addPauseGuardians
nonpayablefunction addPauseGuardians(address[] guardians)
confirmTransferOwnership
nonpayablefunction confirmTransferOwnership()
depositToAssetManagementInternal
nonpayablefunction depositToAssetManagementInternal(uint256 wadAssetAmount)
initialize
nonpayablefunction initialize(bool paused)
pause
nonpayablefunction pause()
removePauseGuardians
nonpayablefunction removePauseGuardians(address[] guardians)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address appointedOwner)
unpause
nonpayablefunction unpause()
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withdrawAllFromAssetManagementInternal
nonpayablefunction withdrawAllFromAssetManagementInternal()
withdrawFromAssetManagementInternal
nonpayablefunction withdrawFromAssetManagementInternal(uint256 wadAssetAmount)
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
AppointedToTransferOwnership
event AppointedToTransferOwnership(address indexed appointedOwner)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
PauseGuardiansAdded
event PauseGuardiansAdded(address[] indexed guardians)
PauseGuardiansRemoved
event PauseGuardiansRemoved(address[] indexed guardians)
Unpaused
event Unpaused(address account)
Upgraded
event Upgraded(address indexed implementation)
errors
AssetMismatch
error AssetMismatch(address assetOne, address assetTwo)
CallerNotPauseGuardian
error CallerNotPauseGuardian(string errorCode, address caller)
creation bytecode
0x61014060405230608052348015610014575f80fd5b506040516136b03803806136b0833981016040819052610033916102ef565b6100456001600160a01b0385166101cd565b6001600160a01b031660a08190526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa15801561008c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100b09190610340565b60ff1660c0526100c86001600160a01b0384166101cd565b6001600160a01b0390811660e0526100e19083166101cd565b6001600160a01b03908116610100526100fb9082166101cd565b6001600160a01b0316610120819052604080516338d52e0f60e01b815290515f92916338d52e0f9160048083019260209291908290030181865afa158015610145573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101699190610367565b905060a0516001600160a01b0316816001600160a01b0316146101bb5760a051604051634e83a9b960e01b81526001600160a01b03808416600483015290911660248201526044015b60405180910390fd5b6101c361021c565b50505050506103b5565b604080518082019091526008815267049504f525f3030360c41b60208201525f906001600160a01b0383166102155760405162461bcd60e51b81526004016101b29190610380565b5090919050565b5f54610100900460ff16156102835760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016101b2565b5f5460ff908116146102d2575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b03811681146102ea575f80fd5b919050565b5f805f8060808587031215610302575f80fd5b61030b856102d4565b9350610319602086016102d4565b9250610327604086016102d4565b9150610335606086016102d4565b905092959194509250565b5f60208284031215610350575f80fd5b815160ff81168114610360575f80fd5b9392505050565b5f60208284031215610377575f80fd5b610360826102d4565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e051610100516101205161320c6104a45f395f81816102c8015281816108d60152818161093001528181610ccf01528181610fc701526112b601525f81816104980152610bb501525f81816104ea015281816107610152818161080401528181610f5c015281816111a60152818161121f015261163001525f81816104130152818161087401528181610d3b015261100701525f81816101e70152818161073f015281816108b401528181610daf01528181611184015261160e01525f8181610523015281816105d8015281816109d201528181610a820152610e3e015261320c5ff3fe60806040526004361061018e575f3560e01c8063715018a6116100dc578063c2d4160111610087578063d53a822f11610062578063d53a822f14610468578063e96b181c14610487578063f2fde38b146104ba578063f887ea40146104d9575f80fd5b8063c2d4160114610402578063c43b668714610435578063cc29516a14610454575f80fd5b806399f67d55116100b757806399f67d5514610386578063aaf10f421461039a578063ac522e24146103e3575f80fd5b8063715018a6146103345780638456cb59146103485780638da5cb5b1461035c575f80fd5b80634f1ef2861161013c57806352d1902d1161011757806352d1902d146102ea5780635c975abb146102fe578063666ffbe514610315575f80fd5b80634f1ef286146102905780634fcf9f71146102a35780635019005a146102b7575f80fd5b80633f4ba83a1161016c5780633f4ba83a1461022e5780634261f4d81461024257806346b8fbfd14610271575f80fd5b80630d8e6e2c146101925780633659cfe6146101b557806338d52e0f146101d6575b5f80fd5b34801561019d575f80fd5b506107d35b6040519081526020015b60405180910390f35b3480156101c0575f80fd5b506101d46101cf366004612b9c565b61050c565b005b3480156101e1575f80fd5b506102097f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101ac565b348015610239575f80fd5b506101d4610715565b34801561024d575f80fd5b5061026161025c366004612b9c565b6107a8565b60405190151581526020016101ac565b34801561027c575f80fd5b506101d461028b366004612bb5565b6107b8565b6101d461029e366004612c48565b6109bb565b3480156102ae575f80fd5b506101a2610bb1565b3480156102c2575f80fd5b506102097f000000000000000000000000000000000000000000000000000000000000000081565b3480156102f5575f80fd5b506101a2610e25565b348015610309575f80fd5b5060335460ff16610261565b348015610320575f80fd5b506101d461032f366004612bb5565b610f10565b34801561033f575f80fd5b506101d46110ba565b348015610353575f80fd5b506101d46110f6565b348015610367575f80fd5b5060fb5473ffffffffffffffffffffffffffffffffffffffff16610209565b348015610391575f80fd5b506101d46111d3565b3480156103a5575f80fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff16610209565b3480156103ee575f80fd5b506101d46103fd366004612d0b565b6113cb565b34801561040d575f80fd5b506101a27f000000000000000000000000000000000000000000000000000000000000000081565b348015610440575f80fd5b506101d461044f366004612d0b565b6113dd565b34801561045f575f80fd5b506101d46113ef565b348015610473575f80fd5b506101d4610482366004612d89565b6114aa565b348015610492575f80fd5b506102097f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c5575f80fd5b506101d46104d4366004612b9c565b6116da565b3480156104e4575f80fd5b506102097f000000000000000000000000000000000000000000000000000000000000000081565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036105d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084015b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661064b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146106ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f7879000000000000000000000000000000000000000060648201526084016105cd565b6106f7816117d4565b604080515f80825260208201909252610712918391906117dc565b50565b61071d6119e0565b610725611a61565b6107a673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ade565b565b5f6107b282611c0d565b92915050565b60408051808201909152600881527f49504f525f30303800000000000000000000000000000000000000000000000060208201523373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461085c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cd9190612df0565b50610865611c46565b61086d611cb9565b5f610898827f0000000000000000000000000000000000000000000000000000000000000000611d26565b90506108fb73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083611ade565b6040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018290523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303815f875af115801561098b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109af9190612e02565b50506107126001606555565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610a80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016105cd565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610af57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610b98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f7879000000000000000000000000000000000000000060648201526084016105cd565b610ba1826117d4565b610bad828260016117dc565b5050565b5f807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166312065fe06040518163ffffffff1660e01b815260040160a060405180830381865afa158015610c1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c409190612e19565b9050610e1f610c528260800151611d85565b610c5f8360600151611d85565b610c6c8460400151611d85565b610c798560200151611d85565b8551610c8490611d85565b6040517fce96cb77000000000000000000000000000000000000000000000000000000008152306004820152610d6490610d5f9073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063ce96cb77906024015b602060405180830381865afa158015610d15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d399190612e02565b7f0000000000000000000000000000000000000000000000000000000000000000611e3a565b611d85565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152610dde90610d5f9073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401610cfa565b610de89190612eb3565b610df29190612eda565b610dfc9190612eda565b610e069190612eda565b610e109190612eda565b610e1a9190612eda565b611e7a565b91505090565b5f3073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610eeb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105cd565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b60408051808201909152600881527f49504f525f30303800000000000000000000000000000000000000000000000060208201523373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610fb4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cd9190612df0565b50610fbd611c46565b610fc5611cb9565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b460af9461102b837f0000000000000000000000000000000000000000000000000000000000000000611d26565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526004810191909152306024820181905260448201526064016020604051808303815f875af115801561108b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110af9190612e02565b506107126001606555565b6110c26119e0565b6110cb5f611ee5565b61012d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6110ff33611c0d565b61116a57604080518082018252600881527f49504f525f303131000000000000000000000000000000000000000000000000602082015290517f52b449f30000000000000000000000000000000000000000000000000000000081526105cd91903390600401612f00565b6111cb73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000005f611ade565b6107a6611f5b565b60408051808201909152600881527f49504f525f30303800000000000000000000000000000000000000000000000060208201523373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611277576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cd9190612df0565b50611280611c46565b611288611cb9565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063ba0876529082906370a0823190602401602060405180830381865afa158015611318573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133c9190612e02565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526004810191909152306024820181905260448201526064016020604051808303815f875af115801561139c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113c09190612e02565b506107a66001606555565b6113d36119e0565b610bad8282611fb6565b6113e56119e0565b610bad82826120a3565b61012d5460408051808201909152600881527f49504f525f30303700000000000000000000000000000000000000000000000060208201529073ffffffffffffffffffffffffffffffffffffffff163314611477576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cd9190612df0565b5061012d80547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556107a633611ee5565b5f54610100900460ff16158080156114c857505f54600160ff909116105b806114e15750303b1580156114e157505f5460ff166001145b61156d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105cd565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156115c9575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6115d1612191565b6115d961222f565b6115e16122cd565b81156115f4576115ef611f5b565b611675565b61167573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ade565b8015610bad575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6116e26119e0565b60408051808201909152600881527f49504f525f303030000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff8216611764576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cd9190612df0565b5061012d80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f3ec7bb1d452f3c36260fa8ef678a597fd97574d8ec42f6dc98ffce3dbc91228f905f90a250565b6107126119e0565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156118145761180f83612363565b505050565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611899575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261189691810190612e02565b60015b611925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016105cd565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146119d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016105cd565b5061180f83838361246d565b60fb5473ffffffffffffffffffffffffffffffffffffffff1633146107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105cd565b611a69612491565b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000179052611b6a84826124fd565b611c07576040805173ffffffffffffffffffffffffffffffffffffffff851660248201525f6044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000179052611bfd9085906125b8565b611c0784826125b8565b50505050565b5f80611c176126c5565b73ffffffffffffffffffffffffffffffffffffffff9093165f9081526020939093525050604090205460ff1690565b600260655403611cb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105cd565b6002606555565b60335460ff16156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016105cd565b5f81601203611d365750816107b2565b6012821115611d6657611d4a601283612f37565b611d5590600a61306b565b611d5f9084613076565b90506107b2565b611d5f83611d75846012612f37565b611d8090600a61306b565b6126d1565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611e36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e206160448201527f6e20696e7432353600000000000000000000000000000000000000000000000060648201526084016105cd565b5090565b5f8215611e735781601203611e505750816107b2565b6012821115611e6857611d5f83611d75601285612f37565b611d4a826012612f37565b50816107b2565b5f80821215611e36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f73697469766560448201526064016105cd565b60fb805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b611f63611cb9565b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611ab43390565b805f819003611fc457505050565b5f611fcd6126c5565b90505f5b8281101561205d575f825f878785818110611fee57611fee61308d565b90506020020160208101906120039190612b9c565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101611fd1565b50838360405161206e9291906130ba565b604051908190038120907fe36d877f5755caee7e117ab1005d1acd030211e8a7ad495316fcaf980d0d054c905f90a250505050565b805f8190036120b157505050565b5f6120ba6126c5565b90505f5b8281101561214b576001825f8787858181106120dc576120dc61308d565b90506020020160208101906120f19190612b9c565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790556001016120be565b50838360405161215c9291906130ba565b604051908190038120907f7802196382882a6ea8cc8c8a1d5f53efe52da8a8d8a0e6f6ce86662996f181df905f90a250505050565b5f54610100900460ff16612227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105cd565b6107a66126f9565b5f54610100900460ff166122c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105cd565b6107a66127b9565b5f54610100900460ff166107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105cd565b73ffffffffffffffffffffffffffffffffffffffff81163b612407576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016105cd565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61247683612858565b5f825111806124825750805b1561180f57611c0783836128a4565b60335460ff166107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016105cd565b5f805f8473ffffffffffffffffffffffffffffffffffffffff16846040516125259190613106565b5f604051808303815f865af19150503d805f811461255e576040519150601f19603f3d011682016040523d82523d5f602084013e612563565b606091505b509150915081801561258d57508051158061258d57508080602001905181019061258d919061311c565b80156125af575073ffffffffffffffffffffffffffffffffffffffff85163b15155b95945050505050565b5f612619826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166128c99092919063ffffffff16565b905080515f1480612639575080806020019051810190612639919061311c565b61180f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016105cd565b5f806107b260036128df565b5f816126de600282613137565b6126e8908561316f565b6126f29190613137565b9392505050565b5f54610100900460ff1661278f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105cd565b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b5f54610100900460ff1661284f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105cd565b6107a633611ee5565b61286181612363565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606126f283836040518060600160405280602781526020016131b060279139612900565b60606128d784845f85612981565b949350505050565b5f620f42408260088111156128f6576128f6613182565b6107b2919061316f565b60605f808573ffffffffffffffffffffffffffffffffffffffff16856040516129299190613106565b5f60405180830381855af49150503d805f8114612961576040519150601f19603f3d011682016040523d82523d5f602084013e612966565b606091505b509150915061297786838387612a96565b9695505050505050565b606082471015612a13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016105cd565b5f808673ffffffffffffffffffffffffffffffffffffffff168587604051612a3b9190613106565b5f6040518083038185875af1925050503d805f8114612a75576040519150601f19603f3d011682016040523d82523d5f602084013e612a7a565b606091505b5091509150612a8b87838387612a96565b979650505050505050565b60608315612b2b5782515f03612b245773ffffffffffffffffffffffffffffffffffffffff85163b612b24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105cd565b50816128d7565b6128d78383815115612b405781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cd9190612df0565b803573ffffffffffffffffffffffffffffffffffffffff81168114612b97575f80fd5b919050565b5f60208284031215612bac575f80fd5b6126f282612b74565b5f60208284031215612bc5575f80fd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612c4057612c40612bcc565b604052919050565b5f8060408385031215612c59575f80fd5b612c6283612b74565b9150602083013567ffffffffffffffff811115612c7d575f80fd5b8301601f81018513612c8d575f80fd5b803567ffffffffffffffff811115612ca757612ca7612bcc565b612cd860207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612bf9565b818152866020838501011115612cec575f80fd5b816020840160208301375f602083830101528093505050509250929050565b5f8060208385031215612d1c575f80fd5b823567ffffffffffffffff811115612d32575f80fd5b8301601f81018513612d42575f80fd5b803567ffffffffffffffff811115612d58575f80fd5b8560208260051b8401011115612d6c575f80fd5b6020919091019590945092505050565b8015158114610712575f80fd5b5f60208284031215612d99575f80fd5b81356126f281612d7c565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6126f26020830184612da4565b5f60208284031215612e12575f80fd5b5051919050565b5f60a0828403128015612e2a575f80fd5b5060405160a0810167ffffffffffffffff81118282101715612e4e57612e4e612bcc565b604090815283518252602080850151908301528381015190820152606080840151908201526080928301519281019290925250919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018281125f831280158216821582161715612ed257612ed2612e86565b505092915050565b8181035f831280158383131683831282161715612ef957612ef9612e86565b5092915050565b604081525f612f126040830185612da4565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b818103818111156107b2576107b2612e86565b6001815b6001841115612f8557808504811115612f6957612f69612e86565b6001841615612f7757908102905b60019390931c928002612f4e565b935093915050565b5f82612f9b575060016107b2565b81612fa757505f6107b2565b8160018114612fbd5760028114612fc757612fe3565b60019150506107b2565b60ff841115612fd857612fd8612e86565b50506001821b6107b2565b5060208310610133831016604e8410600b8410161715613006575081810a6107b2565b6130317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612f4a565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561306357613063612e86565b029392505050565b5f6126f28383612f8d565b80820281158282048414176107b2576107b2612e86565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8184825b858110156130fb5773ffffffffffffffffffffffffffffffffffffffff6130e583612b74565b16835260209283019291909101906001016130bf565b509095945050505050565b5f82518060208501845e5f920191825250919050565b5f6020828403121561312c575f80fd5b81516126f281612d7c565b5f8261316a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b808201808211156107b2576107b2612e86565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e0d2eb65d4efa22fb1b24333dac79cf9e59484f283ed2a4b8b49fe2f4e2acee464736f6c634300081a0033000000000000000000000000c1cba3fcea344f92d9239c08c0568f6f2f0ee45200000000000000000000000021d337ebf86e584e614ecc18a2b1144d3c37591800000000000000000000000029399d76921e23314ae259cf5e17116f48ae65b7000000000000000000000000c4c00d8b323f37527eeda27c87412378be9f68ec