0 txs
0 calls
constructor
constructor(uint256 _defaultBps, uint256 _callerBpsCap)
functions
BPS_DENOMINATOR
viewfunction BPS_DENOMINATOR() view returns (uint256)
callerBpsCap
viewfunction callerBpsCap() view returns (uint256)
defaultBps
viewfunction defaultBps() view returns (uint256)
estimateSendFee
viewfunction estimateSendFee(address _oft, uint16 _dstChainId, bytes _toAddress, uint256 _amount, bool _useZro, bytes _adapterParams, tuple _feeObj) view returns (uint256 nativeFee, uint256 zroFee)
estimateSendFeeEpv2
viewfunction estimateSendFeeEpv2(address _oft, tuple _sendParam, bool _payInLzToken, tuple _feeObj) view returns (tuple)
estimateSendFeeV2
viewfunction estimateSendFeeV2(address _oft, uint16 _dstChainId, bytes32 _toAddress, uint256 _amount, bool _useZro, bytes _adapterParams, tuple _feeObj) view returns (uint256 nativeFee, uint256 zroFee)
getAmountAndFees
viewfunction getAmountAndFees(address _token, uint256 _amount, uint256 _callerBps) view returns (uint256 amount, uint256 wrapperFee, uint256 callerFee)
MAX_UINT
viewfunction MAX_UINT() view returns (uint256)
oftBps
viewfunction oftBps(address) view returns (uint256)
owner
viewfunction owner() view returns (address)
renounceOwnership
nonpayablefunction renounceOwnership()
sendNativeOFT
payablefunction sendNativeOFT(address _nativeOft, uint16 _dstChainId, bytes _toAddress, uint256 _amount, uint256 _minAmount, address _refundAddress, address _zroPaymentAddress, bytes _adapterParams, tuple _feeObj) payable
sendNativeOFTFeeV2
payablefunction sendNativeOFTFeeV2(address _nativeOft, uint16 _dstChainId, bytes32 _toAddress, uint256 _amount, uint256 _minAmount, tuple _callParams, tuple _feeObj) payable
sendOFT
payablefunction sendOFT(address _oft, uint16 _dstChainId, bytes _toAddress, uint256 _amount, uint256 _minAmount, address _refundAddress, address _zroPaymentAddress, bytes _adapterParams, tuple _feeObj) payable
sendOFTAdapterEpv2
payablefunction sendOFTAdapterEpv2(address _adapterOFT, tuple _sendParam, tuple _fee, address _refundAddress, tuple _feeObj) payable
sendOFTEpv2
payablefunction sendOFTEpv2(address _oft, tuple _sendParam, tuple _fee, address _refundAddress, tuple _feeObj) payable
sendOFTFeeV2
payablefunction sendOFTFeeV2(address _oft, uint16 _dstChainId, bytes32 _toAddress, uint256 _amount, uint256 _minAmount, tuple _callParams, tuple _feeObj) payable
sendOFTV2
payablefunction sendOFTV2(address _oft, uint16 _dstChainId, bytes32 _toAddress, uint256 _amount, uint256 _minAmount, tuple _callParams, tuple _feeObj) payable
sendProxyOFT
payablefunction sendProxyOFT(address _proxyOft, uint16 _dstChainId, bytes _toAddress, uint256 _amount, uint256 _minAmount, address _refundAddress, address _zroPaymentAddress, bytes _adapterParams, tuple _feeObj) payable
sendProxyOFTFeeV2
payablefunction sendProxyOFTFeeV2(address _proxyOft, uint16 _dstChainId, bytes32 _toAddress, uint256 _amount, uint256 _minAmount, tuple _callParams, tuple _feeObj) payable
sendProxyOFTV2
payablefunction sendProxyOFTV2(address _proxyOft, uint16 _dstChainId, bytes32 _toAddress, uint256 _amount, uint256 _minAmount, tuple _callParams, tuple _feeObj) payable
setCallerBpsCap
nonpayablefunction setCallerBpsCap(uint256 _callerBpsCap)
setDefaultBps
nonpayablefunction setDefaultBps(uint256 _defaultBps)
setOFTBps
nonpayablefunction setOFTBps(address _token, uint256 _bps)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdrawFees
nonpayablefunction withdrawFees(address _oft, address _to, uint256 _amount)
events
CallerBpsCapSet
event CallerBpsCapSet(uint256 bps)
DefaultBpsSet
event DefaultBpsSet(uint256 bps)
OFTBpsSet
event OFTBpsSet(address indexed token, uint256 bps)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
WrapperFees
event WrapperFees(bytes2 indexed partnerId, address token, uint256 wrapperFee, uint256 callerFee)
WrapperFeeWithdrawn
event WrapperFeeWithdrawn(address indexed oft, address to, uint256 amount)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b5060405162003174380380620031748339810160408190526200003491620000f8565b6200003f33620000a8565b600180556127108210620000995760405162461bcd60e51b815260206004820152601e60248201527f4f4654577261707065723a2064656661756c74427073203e3d20313030250000604482015260640160405180910390fd5b6002919091556004556200011d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080604083850312156200010c57600080fd5b505080516020909101519092909150565b613047806200012d6000396000f3fe6080604052600436106101a15760003560e01c8063a8198c00116100e1578063e1a452181161008a578063e5b5019a11610064578063e5b5019a14610422578063e90d5fc914610456578063f2fde38b14610491578063fdb80c81146104b157600080fd5b8063e1a45218146103cc578063e1bafc80146103e2578063e55dc4e61461040257600080fd5b8063ca3e534c116100bb578063ca3e534c14610390578063d1b308dc146103a3578063dda16a10146103b957600080fd5b8063a8198c0014610354578063ab03b5fd14610367578063c3c8032a1461037d57600080fd5b80637a7511821161014e5780638bcb586c116101285780638bcb586c146102c45780638d8c915c146102d75780638da5cb5b1461030c578063a46d74bc1461033457600080fd5b80637a7511821461026357806383e166381461029e57806385154849146102b157600080fd5b8063498eff641161017f578063498eff641461022857806362bf7c9e1461023b578063715018a61461024e57600080fd5b80630c3d2756146101a657806317696f64146101c857806336739d3d14610208575b600080fd5b3480156101b257600080fd5b506101c66101c13660046123ce565b6104c4565b005b3480156101d457600080fd5b506101e86101e33660046123fa565b6105a5565b604080519384526020840192909252908201526060015b60405180910390f35b34801561021457600080fd5b506101c661022336600461242f565b6105cd565b6101c66102363660046124bb565b610663565b6101c66102493660046125b1565b61070b565b34801561025a57600080fd5b506101c66108ef565b34801561026f57600080fd5b5061029061027e366004612661565b60036020526000908152604090205481565b6040519081526020016101ff565b6101c66102ac3660046125b1565b610903565b6101c66102bf366004612685565b610c03565b6101c66102d2366004612685565b610ca1565b3480156102e357600080fd5b506102f76102f2366004612723565b610e72565b604080519283526020830191909152016101ff565b34801561031857600080fd5b506000546040516001600160a01b0390911681526020016101ff565b34801561034057600080fd5b506101c661034f36600461242f565b610f94565b6101c6610362366004612685565b611022565b34801561037357600080fd5b5061029060045481565b6101c661038b3660046124bb565b611079565b6101c661039e366004612685565b611230565b3480156103af57600080fd5b5061029060025481565b6101c66103c7366004612685565b61135c565b3480156103d857600080fd5b5061029061271081565b3480156103ee57600080fd5b506102f76103fd3660046127c2565b611447565b34801561040e57600080fd5b506101c661041d366004612885565b611540565b34801561042e57600080fd5b506102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b34801561046257600080fd5b506104766104713660046128c6565b6115a7565b604080518251815260209283015192810192909252016101ff565b34801561049d57600080fd5b506101c66104ac366004612661565b6117e9565b6101c66104bf3660046124bb565b611879565b6104cc6119ab565b6127108110806104fb57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81145b61054c5760405162461bcd60e51b815260206004820181905260248201527f4f4654577261707065723a206f66744270735b5f6f66745d203e3d203130302560448201526064015b60405180910390fd5b6001600160a01b03821660008181526003602052604090819020839055517ff51611cfa84d1f2df6840c4651ba5b8f3f45d66811e43567dfe472a6b5a7ffb8906105999084815260200190565b60405180910390a25050565b60008060006105b384611a05565b6105be868686611a7c565b92509250925093509350939050565b6105d56119ab565b6127108111156106275760405162461bcd60e51b815260206004820152601f60248201527f4f4654577261707065723a2063616c6c6572427073436170203e2031303025006044820152606401610543565b60048190556040518181527fb474bfee9176a4392a746f7432e2daa216a9db2234f881770e4096bddeefaeb2906020015b60405180910390a150565b61066b611ba5565b6106758135611a05565b60006106838c898985611bfe565b90508b6001600160a01b0316635190563634338e8e8e878d8d8d8d6040518b63ffffffff1660e01b81526004016106c299989796959493929190612965565b6000604051808303818588803b1580156106db57600080fd5b505af11580156106ef573d6000803e3d6000fd5b5050505050506106fe60018055565b5050505050505050505050565b610713611ba5565b61071d8135611a05565b6000610733868660400135876060013585611d6a565b9050856001600160a01b031663c7c7f5b3346040518060e0016040528089600001602081019061076391906129cd565b63ffffffff168152602001896020013581526020018581526020018960600135815260200189806080019061079891906129f3565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506020016107df60a08b018b6129f3565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060200161082660c08b018b6129f3565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152610899919089908990600401612b27565b60c06040518083038185885af11580156108b7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108dc9190612bda565b5050506108e860018055565b5050505050565b6108f76119ab565b6109016000611e24565b565b61090b611ba5565b6109158135611a05565b6000856001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610955573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109799190612c95565b90506000610991828760400135886060013586611d6a565b90506109a76001600160a01b0383168883611e8c565b866001600160a01b031663c7c7f5b3346040518060e001604052808a60000160208101906109d591906129cd565b63ffffffff1681526020018a6020013581526020018581526020018a6060013581526020018a8060800190610a0a91906129f3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602001610a5160a08c018c6129f3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602001610a9860c08c018c6129f3565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152610b0b91908a908a90600401612b27565b60c06040518083038185885af1158015610b29573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b4e9190612bda565b50506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0388811660248301526000919084169063dd62ed3e90604401602060405180830381865afa158015610bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdd9190612cb2565b1115610bf857610bf86001600160a01b038316886000611e8c565b50506108e860018055565b610c0b611ba5565b610c158135611a05565b6000610c2388868685611bfe565b9050876001600160a01b0316632cdf0b9534338a8a868a8a6040518863ffffffff1660e01b8152600401610c5c96959493929190612d71565b6000604051808303818588803b158015610c7557600080fd5b505af1158015610c89573d6000803e3d6000fd5b505050505050610c9860018055565b50505050505050565b610ca9611ba5565b610cb38135611a05565b6000876001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d179190612c95565b90506000610d2782878786611d6a565b9050610d3d6001600160a01b0383168a83611e8c565b6040517f2cdf0b950000000000000000000000000000000000000000000000000000000081526001600160a01b038a1690632cdf0b95903490610d8e9030908d908d9088908d908d90600401612d71565b6000604051808303818588803b158015610da757600080fd5b505af1158015610dbb573d6000803e3d6000fd5b50506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038d81166024830152600094508616925063dd62ed3e9150604401602060405180830381865afa158015610e28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4c9190612cb2565b1115610e6757610e676001600160a01b0383168a6000611e8c565b5050610c9860018055565b600080610e7f8335611a05565b6000610eee8b6001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee69190612c95565b898635611a7c565b50506040517f365260b40000000000000000000000000000000000000000000000000000000081529091506001600160a01b038c169063365260b490610f42908d908d9086908d908d908d90600401612dbb565b6040805180830381865afa158015610f5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f829190612ded565b92509250509850989650505050505050565b610f9c6119ab565b6127108110610fed5760405162461bcd60e51b815260206004820152601e60248201527f4f4654577261707065723a2064656661756c74427073203e3d203130302500006044820152606401610543565b60028190556040518181527f935f0caa3a542ed0e18e9116cee6e58fc0e502596c9a47909aa4af65fd69b99190602001610658565b61102a611ba5565b6110348135611a05565b600061104288868685611bfe565b9050876001600160a01b031663695ef6bf34338a8a86896040518763ffffffff1660e01b8152600401610c5c959493929190612e11565b611081611ba5565b61108b8135611a05565b60008b6001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ef9190612c95565b905060006110ff828a8a86611d6a565b90506111156001600160a01b0383168e83611e8c565b8c6001600160a01b0316635190563634308f8f8f878e8e8e8e6040518b63ffffffff1660e01b815260040161115299989796959493929190612965565b6000604051808303818588803b15801561116b57600080fd5b505af115801561117f573d6000803e3d6000fd5b5050505050506000816001600160a01b031663dd62ed3e308f6040518363ffffffff1660e01b81526004016111ca9291906001600160a01b0392831681529116602082015260400190565b602060405180830381865afa1580156111e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120b9190612cb2565b1115611226576112266001600160a01b0382168d6000611e8c565b506106fe60018055565b611238611ba5565b6112428135611a05565b833410156112b85760405162461bcd60e51b815260206004820152602160248201527f4f4654577261707065723a206e6f7420656e6f7567682076616c75652073656e60448201527f74000000000000000000000000000000000000000000000000000000000000006064820152608401610543565b866001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b1580156112f357600080fd5b505af1158015611307573d6000803e3d6000fd5b5050505050600061131a8886868561203f565b90506001600160a01b038816632cdf0b956113358734612e78565b308a8a868a8a6040518863ffffffff1660e01b8152600401610c5c96959493929190612d71565b611364611ba5565b61136e8135611a05565b6000876001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d29190612c95565b905060006113e282878786611d6a565b90506113f86001600160a01b0383168a83611e8c565b6040517f695ef6bf0000000000000000000000000000000000000000000000000000000081526001600160a01b038a169063695ef6bf903490610d8e9030908d908d9088908c90600401612e11565b6000806114548335611a05565b60006114978c6001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ec2573d6000803e3d6000fd5b50506040517f2a205e3d0000000000000000000000000000000000000000000000000000000081529091506001600160a01b038d1690632a205e3d906114ed908e908e908e9087908e908e908e90600401612e91565b6040805180830381865afa158015611509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152d9190612ded565b9250925050995099975050505050505050565b6115486119ab565b61155c6001600160a01b03841683836120fe565b604080516001600160a01b038481168252602082018490528516917ff6514f9f283faac4cf3f3a6a702c116227ad0f2c727fb336e4c10b418bc6d613910160405180910390a2505050565b60408051808201909152600080825260208201526115c58235611a05565b6000611638866001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162c9190612c95565b60408701358535611a7c565b50509050856001600160a01b0316633b6f743b6040518060e0016040528088600001602081019061166991906129cd565b63ffffffff168152602001886020013581526020018481526020018860600135815260200188806080019061169e91906129f3565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506020016116e560a08a018a6129f3565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060200161172c60c08a018a6129f3565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815261179d91908890600401612ede565b6040805180830381865afa1580156117b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117dd9190612f02565b9150505b949350505050565b6117f16119ab565b6001600160a01b03811661186d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610543565b61187681611e24565b50565b611881611ba5565b61188b8135611a05565b863410156119015760405162461bcd60e51b815260206004820152602160248201527f4f4654577261707065723a206e6f7420656e6f7567682076616c75652073656e60448201527f74000000000000000000000000000000000000000000000000000000000000006064820152608401610543565b8a6001600160a01b031663d0e30db0886040518263ffffffff1660e01b81526004016000604051808303818588803b15801561193c57600080fd5b505af1158015611950573d6000803e3d6000fd5b505050505060006119638c89898561203f565b90506001600160a01b038c16635190563661197e8a34612e78565b308e8e8e878d8d8d8d6040518b63ffffffff1660e01b81526004016106c299989796959493929190612965565b6000546001600160a01b031633146109015760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610543565b6004548111156118765760405162461bcd60e51b8152602060048201526024808201527f4f4654577261707065723a2063616c6c6572427073203e2063616c6c6572427060448201527f73436170000000000000000000000000000000000000000000000000000000006064820152608401610543565b6001600160a01b03831660009081526003602052604081205481908190819060018101611aac5760009150611ac0565b8015611aba57809150611ac0565b60025491505b612710611acd8784612f1e565b10611b1a5760405162461bcd60e51b815260206004820152601b60248201527f4f4654577261707065723a2046656520627073203e3d203130302500000000006044820152606401610543565b60008211611b29576000611b40565b612710611b368389612f31565b611b409190612f48565b935060008611611b51576000611b68565b612710611b5e8789612f31565b611b689190612f48565b92506000841180611b795750600083115b611b835786611b98565b82611b8e8589612e78565b611b989190612e78565b9450505093509350939050565b600260015403611bf75760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610543565b6002600155565b6000808080611c0f88888735611a7c565b925092509250858310158015611c255750600083115b611c975760405162461bcd60e51b815260206004820152602360248201527f4f4654577261707065723a206e6f7420656e6f75676820616d6f756e74546f5360448201527f77617000000000000000000000000000000000000000000000000000000000006064820152608401610543565b8115611cb257611cb26001600160a01b038916333085612147565b8015611cde57611cde33611ccc6040880160208901612661565b6001600160a01b038b16919084612147565b611cee6060860160408701612f83565b604080516001600160a01b038b168152602081018590529081018390527fffff00000000000000000000000000000000000000000000000000000000000091909116907f97bcdc1dd7ab82ef93280983f23d391afea463d0333fddd1a4617693b9ccfeea9060600160405180910390a250909695505050505050565b6000808080611d7b88888735611a7c565b925092509250858310158015611d915750600083115b611e035760405162461bcd60e51b815260206004820152602360248201527f4f4654577261707065723a206e6f7420656e6f75676820616d6f756e74546f5360448201527f77617000000000000000000000000000000000000000000000000000000000006064820152608401610543565b611cb23330611e128587612f1e565b6001600160a01b038c16929190612147565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b801580611f1f57506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015611ef9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1d9190612cb2565b155b611f915760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610543565b6040516001600160a01b03831660248201526044810182905261203a9084907f095ea7b300000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261219e565b505050565b600080808061205088888735611a7c565b9250925092508583101580156120665750600083115b6120d85760405162461bcd60e51b815260206004820152602360248201527f4f4654577261707065723a206e6f7420656e6f75676820616d6f756e74546f5360448201527f77617000000000000000000000000000000000000000000000000000000000006064820152608401610543565b8015611cde57611cde6120f16040870160208801612661565b6001600160a01b038a1690835b6040516001600160a01b03831660248201526044810182905261203a9084907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401611fd6565b6040516001600160a01b03808516602483015283166044820152606481018290526121989085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611fd6565b50505050565b60006121f3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166122869092919063ffffffff16565b90508051600014806122145750808060200190518101906122149190612fc5565b61203a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610543565b60606117e1848460008585600080866001600160a01b031685876040516122ad9190612fe2565b60006040518083038185875af1925050503d80600081146122ea576040519150601f19603f3d011682016040523d82523d6000602084013e6122ef565b606091505b50915091506123008783838761230b565b979650505050505050565b6060831561237a578251600003612373576001600160a01b0385163b6123735760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610543565b50816117e1565b6117e1838381511561238f5781518083602001fd5b8060405162461bcd60e51b81526004016105439190612ffe565b6001600160a01b038116811461187657600080fd5b80356123c9816123a9565b919050565b600080604083850312156123e157600080fd5b82356123ec816123a9565b946020939093013593505050565b60008060006060848603121561240f57600080fd5b833561241a816123a9565b95602085013595506040909401359392505050565b60006020828403121561244157600080fd5b5035919050565b803561ffff811681146123c957600080fd5b60008083601f84011261246c57600080fd5b50813567ffffffffffffffff81111561248457600080fd5b60208301915083602082850101111561249c57600080fd5b9250929050565b6000606082840312156124b557600080fd5b50919050565b60008060008060008060008060008060006101608c8e0312156124dd57600080fd5b6124e78c356123a9565b8b359a506124f760208d01612448565b995067ffffffffffffffff8060408e0135111561251357600080fd5b6125238e60408f01358f0161245a565b909a50985060608d0135975060808d0135965061254360a08e01356123a9565b60a08d0135955061255660c08e016123be565b94508060e08e0135111561256957600080fd5b5061257a8d60e08e01358e0161245a565b909350915061258d8d6101008e016124a3565b90509295989b509295989b9093969950565b600060e082840312156124b557600080fd5b60008060008060008587036101008112156125cb57600080fd5b86356125d6816123a9565b9550602087013567ffffffffffffffff8111156125f257600080fd5b6125fe89828a0161259f565b95505060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08201121561263157600080fd5b506040860192506080860135612646816123a9565b91506126558760a088016124a3565b90509295509295909350565b60006020828403121561267357600080fd5b813561267e816123a9565b9392505050565b6000806000806000806000610120888a0312156126a157600080fd5b87356126ac816123a9565b96506126ba60208901612448565b955060408801359450606088013593506080880135925060a088013567ffffffffffffffff8111156126eb57600080fd5b6126f78a828b016124a3565b9250506127078960c08a016124a3565b905092959891949750929550565b801515811461187657600080fd5b600080600080600080600080610120898b03121561274057600080fd5b883561274b816123a9565b975061275960208a01612448565b96506040890135955060608901359450608089013561277781612715565b935060a089013567ffffffffffffffff81111561279357600080fd5b61279f8b828c0161245a565b90945092506127b390508a60c08b016124a3565b90509295985092959890939650565b60008060008060008060008060006101208a8c0312156127e157600080fd5b89356127ec816123a9565b98506127fa60208b01612448565b975060408a013567ffffffffffffffff8082111561281757600080fd5b6128238d838e0161245a565b909950975060608c0135965060808c0135915061283f82612715565b90945060a08b0135908082111561285557600080fd5b506128628c828d0161245a565b909450925061287690508b60c08c016124a3565b90509295985092959850929598565b60008060006060848603121561289a57600080fd5b83356128a5816123a9565b925060208401356128b5816123a9565b929592945050506040919091013590565b60008060008060c085870312156128dc57600080fd5b84356128e7816123a9565b9350602085013567ffffffffffffffff81111561290357600080fd5b61290f8782880161259f565b935050604085013561292081612715565b915061292f86606087016124a3565b905092959194509250565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b60006001600160a01b03808c16835261ffff8b16602084015260e0604084015261299360e084018a8c61293a565b886060850152818816608085015281871660a085015283810360c08501526129bc81868861293a565b9d9c50505050505050505050505050565b6000602082840312156129df57600080fd5b813563ffffffff8116811461267e57600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612a2857600080fd5b83018035915067ffffffffffffffff821115612a4357600080fd5b60200191503681900382131561249c57600080fd5b60005b83811015612a73578181015183820152602001612a5b565b50506000910152565b60008151808452612a94816020860160208601612a58565b601f01601f19169290920160200192915050565b63ffffffff81511682526020810151602083015260408101516040830152606081015160608301526000608082015160e06080850152612aeb60e0850182612a7c565b905060a083015184820360a0860152612b048282612a7c565b91505060c083015184820360c0860152612b1e8282612a7c565b95945050505050565b608081526000612b3a6080830186612aa8565b905083356020830152602084013560408301526001600160a01b0383166060830152949350505050565b600060408284031215612b7657600080fd5b6040516040810181811067ffffffffffffffff82111715612bc0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052825181526020928301519281019290925250919050565b60008082840360c0811215612bee57600080fd5b6080811215612bfc57600080fd5b506040516060810167ffffffffffffffff8282108183111715612c48577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b8160405285518352602086015191508082168214612c6557600080fd5b506020820152612c788560408601612b64565b60408201529150612c8c8460808501612b64565b90509250929050565b600060208284031215612ca757600080fd5b815161267e816123a9565b600060208284031215612cc457600080fd5b5051919050565b60008135612cd8816123a9565b6001600160a01b039081168452602083013590612cf4826123a9565b1660208401526040820135368390037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1018112612d3057600080fd5b820160208101903567ffffffffffffffff811115612d4d57600080fd5b803603821315612d5c57600080fd5b60606040860152612b1e60608601828461293a565b6001600160a01b038716815261ffff8616602082015284604082015283606082015282608082015260c060a08201526000612daf60c0830184612ccb565b98975050505050505050565b61ffff87168152856020820152846040820152831515606082015260a060808201526000612daf60a08301848661293a565b60008060408385031215612e0057600080fd5b505080516020909101519092909150565b6001600160a01b038616815261ffff8516602082015283604082015282606082015260a06080820152600061230060a0830184612ccb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115612e8b57612e8b612e49565b92915050565b61ffff8816815260a060208201526000612eaf60a08301888a61293a565b86604084015285151560608401528281036080840152612ed081858761293a565b9a9950505050505050505050565b604081526000612ef16040830185612aa8565b905082151560208301529392505050565b600060408284031215612f1457600080fd5b61267e8383612b64565b80820180821115612e8b57612e8b612e49565b8082028115828204841417612e8b57612e8b612e49565b600082612f7e577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600060208284031215612f9557600080fd5b81357fffff0000000000000000000000000000000000000000000000000000000000008116811461267e57600080fd5b600060208284031215612fd757600080fd5b815161267e81612715565b60008251612ff4818460208701612a58565b9190910192915050565b60208152600061267e6020830184612a7c56fea26469706673582212204004b1b28a37016a635ed8741c8b5ec3c78d029e1953c4122e4eef539fc5091c64736f6c634300081600330000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000012c