1.8k txs
2.7k calls
constructor
No constructor.
functions
assetToStargate
viewfunction assetToStargate(address) view returns (address)
deposit
viewfunction deposit(bytes32, address) view returns (uint256)
internalCaller
viewfunction internalCaller(address) view returns (bool)
lzAddress
viewfunction lzAddress() view returns (address)
networkIdAndRouterAddress
viewfunction networkIdAndRouterAddress() view returns (bytes32)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
pendingOwner
viewfunction pendingOwner() view returns (address)
stargateToAsset
viewfunction stargateToAsset(address) view returns (address)
swapFeeAddress
viewfunction swapFeeAddress() view returns (address)
swapSequence
viewfunction swapSequence() view returns (uint64)
weth
viewfunction weth() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
lzCompose
payablefunction lzCompose(address from, bytes32, bytes message, address, bytes) payable
multicall
nonpayablefunction multicall(bytes[] data) returns (bytes[] results)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
swapInWithMagpieSignature
payablefunction swapInWithMagpieSignature(bytes) payable returns (uint256 amountOut)
swapInWithUserSignature
payablefunction swapInWithUserSignature(bytes) payable returns (uint256 amountOut)
swapOut
nonpayablefunction swapOut(bytes) returns (uint256 amountOut)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateAssetToStargate
nonpayablefunction updateAssetToStargate(address assetAddress, address stargateAddress)
updateInternalCaller
nonpayablefunction updateInternalCaller(address caller, bool value)
updateLzAddress
nonpayablefunction updateLzAddress(address value)
updateNetworkIdAndRouterAddress
nonpayablefunction updateNetworkIdAndRouterAddress(bytes32 value)
updateStargateToAsset
nonpayablefunction updateStargateToAsset(address stargateAddress, address assetAddress)
updateSwapFeeAddress
nonpayablefunction updateSwapFeeAddress(address value)
updateWeth
nonpayablefunction updateWeth(address value)
events
Deposit
event Deposit(bytes32 depositDataHash, uint256 amount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
SwapIn
event SwapIn(address indexed fromAddress, address indexed toAddress, address fromAssetAddress, address toAssetAddress, uint256 amountIn, uint256 amountOut, bytes encodedDepositData)
SwapOut
event SwapOut(address indexed fromAddress, address indexed toAddress, address fromAssetAddress, address toAssetAddress, uint256 amountIn, uint256 amountOut, bytes32 depositDataHash)
Unpaused
event Unpaused(address account)
UpdateAssetToStargate
event UpdateAssetToStargate(address indexed sender, address assetAddress, address stargateAddress)
UpdateInternalCaller
event UpdateInternalCaller(address indexed sender, address caller, bool value)
UpdateStargateToAsset
event UpdateStargateToAsset(address indexed sender, address stargateAddress, address assetAddress)
errors
ApprovalFailed
error ApprovalFailed()
DepositIsNotFound
error DepositIsNotFound()
FailedUnwrap
error FailedUnwrap()
FailedWrap
error FailedWrap()
InvalidAddress
error InvalidAddress()
InvalidAmountIn
error InvalidAmountIn()
InvalidCaller
error InvalidCaller()
InvalidDepositAmount
error InvalidDepositAmount()
InvalidFrom
error InvalidFrom()
InvalidSignature
error InvalidSignature()
InvalidStargateAddress
error InvalidStargateAddress()
InvalidToAddress
error InvalidToAddress()
ReentrancyError
error ReentrancyError()
TransferFailed
error TransferFailed()
TransferFromFailed
error TransferFromFailed()
creation bytecode
0x60806040523480156200001157600080fd5b506200001d3362000030565b6001805460ff60a01b191690556200009e565b600180546001600160a01b03191690556200004b816200004e565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b612c8280620000ae6000396000f3fe6080604052600436106101c65760003560e01c806379ba5097116100f7578063b8f38c7411610095578063e30c397811610064578063e30c397814610555578063e516008014610573578063f2fde38b14610586578063faadf2be146105a657600080fd5b8063b8f38c74146104d4578063ce4a46a4146104f4578063cec4c8551461050a578063d0a102601461054257600080fd5b80638456cb59116100d15780638456cb59146104545780638da5cb5b146104695780638f54eaa714610487578063ac9650d8146104a757600080fd5b806379ba5097146103d35780638184c14a146103e857806381bc81f11461041e57600080fd5b8063519a98e0116101645780635c975abb1161013e5780635c975abb1461035f5780636a0c4ba61461037e578063715018a61461039e57806376a64d90146103b357600080fd5b8063519a98e0146102df57806357f46a1a146102ff5780635c344ec91461033f57600080fd5b80632fdf172b116101a05780632fdf172b1461025157806336876abb146102725780633f4ba83a146102aa5780633fc8cef3146102bf57600080fd5b806310fe85af146101d25780631b5ad801146101f45780631ec4aec81461021457600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101f26101ed3660046124f0565b6105c6565b005b34801561020057600080fd5b506101f261020f3660046124f0565b6105f0565b34801561022057600080fd5b50600954610234906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61026461025f366004612553565b61061a565b604051908152602001610248565b34801561027e57600080fd5b50600554610292906001600160401b031681565b6040516001600160401b039091168152602001610248565b3480156102b657600080fd5b506101f2610695565b3480156102cb57600080fd5b50600354610234906001600160a01b031681565b3480156102eb57600080fd5b506101f26102fa366004612594565b6106af565b34801561030b57600080fd5b5061032f61031a3660046124f0565b60026020526000908152604090205460ff1681565b6040519015158152602001610248565b34801561034b57600080fd5b506101f261035a3660046125d0565b61071d565b34801561036b57600080fd5b50600154600160a01b900460ff1661032f565b34801561038a57600080fd5b50610264610399366004612553565b61072a565b3480156103aa57600080fd5b506101f261081e565b3480156103bf57600080fd5b506101f26103ce3660046125e9565b610830565b3480156103df57600080fd5b506101f261089e565b3480156103f457600080fd5b506102346104033660046124f0565b6008602052600090815260409020546001600160a01b031681565b34801561042a57600080fd5b506102346104393660046124f0565b6007602052600090815260409020546001600160a01b031681565b34801561046057600080fd5b506101f261091d565b34801561047557600080fd5b506000546001600160a01b0316610234565b34801561049357600080fd5b50600a54610234906001600160a01b031681565b3480156104b357600080fd5b506104c76104c236600461261c565b610935565b60405161024891906126e0565b3480156104e057600080fd5b506101f26104ef3660046124f0565b610a27565b34801561050057600080fd5b5061026460045481565b34801561051657600080fd5b50610264610525366004612744565b600660209081526000928352604080842090915290825290205481565b6101f2610550366004612767565b610a51565b34801561056157600080fd5b506001546001600160a01b0316610234565b610264610581366004612553565b610bd7565b34801561059257600080fd5b506101f26105a13660046124f0565b610bf8565b3480156105b257600080fd5b506101f26105c13660046125e9565b610c69565b6105ce610cd7565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6105f8610cd7565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526002602052604081205460ff1661064a576040516348f5c3ed60e01b815260040160405180910390fd5b6000610654610d31565b60208101519091506001600160a01b03166106825760405163e6c4247b60e01b815260040160405180910390fd5b61068d816000610ea2565b949350505050565b61069d610cd7565b6106a5610fef565b6106ad61103f565b565b6106b7610cd7565b6001600160a01b038216600081815260026020908152604091829020805460ff191685151590811790915582519384529083015233917fa71618a9ed4e81ce27edc2700d38db549c32abb5e4f32ec57f791151030fbc4591015b60405180910390a25050565b610725610cd7565b600455565b3360009081526002602052604081205460ff1661075a576040516348f5c3ed60e01b815260040160405180910390fd5b6004546001600160f01b0381169060f01c6000610775610d31565b90506000610784828430611094565b6000818152600660209081526040808320868301516001600160a01b031684529091528120549192508190036107cd57604051631196c86360e21b815260040160405180910390fd5b6000828152600660209081526040808320868301516001600160a01b0390811685529252822091909155600354600954610812928692859287928b92811691166110f8565b98975050505050505050565b610826610cd7565b6106ad60006113f7565b610838610cd7565b6001600160a01b0382811660008181526008602090815260409182902080546001600160a01b0319169486169485179055815192835282019290925233917ff0e43e5bc9b78b127eaac945644c150dcc7a4c82400ffdd21b98ed4e4db08b1b9101610711565b60015433906001600160a01b031681146109115760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084015b60405180910390fd5b61091a816113f7565b50565b610925610cd7565b61092d611410565b6106ad61145d565b606061093f610cd7565b816001600160401b0381111561095757610957612804565b60405190808252806020026020018201604052801561098a57816020015b60608152602001906001900390816109755790505b50905060005b82811015610a1f576109fa308585848181106109ae576109ae61281a565b90506020028101906109c09190612830565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114a092505050565b828281518110610a0c57610a0c61281a565b6020908102919091010152600101610990565b505b92915050565b610a2f610cd7565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808816600081815260086020908152604080832054851680845260079092529091205490921614610a9d5760405163104ca12160e11b815260040160405180910390fd5b600a546001600160a01b03163314610ac8576040516348f5c3ed60e01b815260040160405180910390fd5b6000610b14610ada87604c818b612876565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114cc92505050565b90506000610b29610ada602c600c8a8c612876565b60008381526006602090815260408083206001600160a01b0388168452909152902054610b5691906128b6565b60008381526006602090815260408083206001600160a01b0388168452909152812080549293508392909190610b8d9084906128b6565b909155505060408051838152602081018390527f98e783c3864bbf744a057ef605a2a61701c3b62b5ed68b3745b99094497daf1f910160405180910390a150505050505050505050565b6000610be1611410565b6000610beb610d31565b905061068d816001610ea2565b610c00610cd7565b600180546001600160a01b0383166001600160a01b03199091168117909155610c316000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610c71610cd7565b6001600160a01b0382811660008181526007602090815260409182902080546001600160a01b0319169486169485179055815192835282019290925233917facce0b4a51a27f59c883e1c0cec37361c15da0666de7926c632832897d326a029101610711565b6000546001600160a01b031633146106ad5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610908565b6040805161016081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081019190915260853560f01c3560843560f81c1c42811015610db15763931997cf60e01b60005260046000fd5b60483560601c8252605c3560601c602083015260703560601c60408301528060608301525060883560f01c3560873560f81c1c6080820152608b3560f01c35608a3560f81c1c60a0820152608e3560f01c35608d3560f81c1c60c0820152600060d13560f81c118060e08301528060018114610e635760d23560f81c8061010085015260018103610e5d5760d33560601c61012085015260e83560f01c3560e73560f81c1c6101408501525b50505090565b6101153560f81c8061010085015260018103610e5d576101163560601c61012085015261012b3560f01c3561012a3560f81c1c61014085015250505090565b600580546000916001600160401b039091169082610ebf836128c9565b82546101009290920a6001600160401b038181021990931691831602179091556005546004549116915060f081901c906001600160f01b03166000610f0487876114d3565b90508660e0015115610f1a57610f1a8782611636565b610f4387828960a00151600014610f3c576009546001600160a01b03166116ab565b60006116ab565b6040805160ec8082526101208201909252600091602082018180368337019050509050610f71818587611796565b80516020820120600354610f95908a908490869088906001600160a01b03166117c4565b9650610fb5610fa38a611a7b565b848b604001518a8d6080015186611ac5565b6005546001600160401b03878116911614610fe3576040516329f745a760e01b815260040160405180910390fd5b50505050505092915050565b600154600160a01b900460ff166106ad5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610908565b611047610fef565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600060405160ec81016040528451815260208501516020820152604085015160408201526080850151606082015260a085015160808201528360f01b60a08201528260a2820152602a6024356042013560f01c60c283013760ec9020949350505050565b60008660a001518760c0015161110e91906128b6565b861461112d5760405163fe9ba5cd60e01b815260040160405180910390fd5b60a08701511561115d5761115d828860a0015189602001516001600160a01b0316611bd99092919063ffffffff16565b60c08701511561135f57826001600160a01b031687602001516001600160a01b0316148015611197575060408701516001600160a01b0316155b156111db5760c08701516111b5906001600160a01b03851690611cb3565b865160c088015160208901516111d6926001600160a01b0390911691611bd9565b61135f565b60208701516001600160a01b031615801561120b5750826001600160a01b031687604001516001600160a01b0316145b156112555760c0870151611229906001600160a01b03851690611cff565b865160c0880151602089015161124a926001600160a01b0390911691611bd9565b5060c086015161135f565b86604001516001600160a01b031687602001516001600160a01b03160361129757865160c0880151602089015161124a926001600160a01b0390911691611bd9565b60208701516000906001600160a01b03166112b7575060c08701516112dd565b6112dd858960c001518a602001516001600160a01b0316611d449092919063ffffffff16565b60006112e98683611de6565b90935090508061135c5760208901516001600160a01b031615611320576020890151611320906001600160a01b0316876000611d44565b885160c08a015160208b0151611341926001600160a01b0390911691611bd9565b60208901516001600160a01b031660408a015260c089015192505b50505b86600001516001600160a01b0316336001600160a01b03167f13d672f2c19bbdf5ce8c9c4894d9586248592fd27d555c2c03ac5e49d219f45d89602001518a604001518b60a001518c60c001516113b691906128b6565b604080516001600160a01b03948516815293909216602084015290820152606081018590526080810189905260a00160405180910390a39695505050505050565b600180546001600160a01b031916905561091a81611e4b565b600154600160a01b900460ff16156106ad5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610908565b611465611410565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586110773390565b60606114c58383604051806060016040528060278152602001612c2660279139611e9b565b9392505050565b6020015190565b610100820151600090819081816114ec576101406114f0565b6101805b61ffff1690506000611504826101206128b6565b905060405193508084016040528260018114611542577f1db1b92ed04ecdb7f72b6c3262412f537c913b3092d701262b450e81e0ea12988552611566565b7f07027edd06d933ad801aa68db7f468ac156371697ee92619cb7c9fc17182dd5d85525b506042602435013560f090811c80358685019081526020808301359082015260408083013590820152606080830135908201526080808301358183015260a08084013590941c9382019390935260a282013560c082015260c282013560e090811c9082015260c69091013590911c6101009091015261162b7f5849a3e6bffd5f0e36a7aae05a726cce29f47268bb265a1987242a08e94dc59e7f2a80e1ef1d7842f27f2e6be0972bb708b9a135c38860dbe73c27c3486c34f4de8987858b6002611f13565b979650505050505050565b60008060008060d13560f81c935060d235925060f23591506101133560f01c356101123560f81c1c90506116a385308861014001518960a001518a60c0015161167f91906128b6565b61168991906128b6565b60208a01516001600160a01b0316929190858989896120bd565b505050505050565b60a08301511561171a5760208301516001600160a01b03166116f2576116ed818460a0015185602001516001600160a01b0316611bd99092919063ffffffff16565b61171a565b61171a82828560a0015186602001516001600160a01b0316612112909392919063ffffffff16565b610140830151156117635760208301516001600160a01b03166117685761176383610120015184610140015185602001516001600160a01b0316611bd99092919063ffffffff16565b505050565b6117638284610120015185610140015186602001516001600160a01b0316612112909392919063ffffffff16565b60c26024356042013560f01c602085013760f09190911b60e28301523060e483015260c01b61010490910152565b84516000906001600160a01b031630146117f157604051638aa3a72f60e01b815260040160405180910390fd5b60208601516001600160a01b0316611847578561014001518660a001518760c0015161181d91906128b6565b61182791906128b6565b341015611847576040516365719fe160e11b815260040160405180910390fd5b60208601516001600160a01b03161580156118775750816001600160a01b031686604001516001600160a01b0316145b156118a05760c0860151611895906001600160a01b03841690611cff565b5060c08501516119f0565b816001600160a01b031686602001516001600160a01b03161480156118d0575060408601516001600160a01b0316155b15611916576118fd84308860c0015189602001516001600160a01b0316612112909392919063ffffffff16565b60c0860151611895906001600160a01b03841690611cb3565b85604001516001600160a01b031686602001516001600160a01b03160361195f5761189584308860c0015189602001516001600160a01b0316612112909392919063ffffffff16565b60208601516000906001600160a01b031661197f575060c08601516119cd565b6119a785308960c001518a602001516001600160a01b0316612112909392919063ffffffff16565b6119cd848860c0015189602001516001600160a01b0316611d449092919063ffffffff16565b60006119d98583611de6565b9093509050806119ed573d6000803e3d6000fd5b50505b85600001516001600160a01b0316846001600160a01b03167f37600fc06910ae05ad532c02a9de91251b21674999c33c6e6da90271029bfa23886020015189604001518a61014001518b60a001518c60c00151611a4d91906128b6565b611a5791906128b6565b868b604051611a6a9594939291906128ef565b60405180910390a395945050505050565b60208101516000906001600160a01b031615611a975734610a21565b8161014001518260a001518360c00151611ab191906128b6565b611abb91906128b6565b610a219034612929565b6001600160a01b038085166000908152600760205260409020541680611afe576040516362553a8560e11b815260040160405180910390fd5b866001600160a01b038616611b1e57611b1785826128b6565b9050611b32565b611b326001600160a01b0387168387611d44565b6000611b3f868686612171565b6040805180820182528b815260006020820152905163cbef2aa960e01b81529192506001600160a01b0385169163cbef2aa9918591611b849186918e9060040161293c565b60006040518083038185885af1158015611ba2573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052611bcb9190810190612b3b565b505050505050505050505050565b6001600160a01b038316611c61576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611c34576040519150601f19603f3d011682016040523d82523d6000602084013e611c39565b606091505b5050905080611c5b576040516312171d8360e31b815260040160405180910390fd5b50505050565b600060405190506044810160405263a9059cbb60e01b8152826004820152816024820152611c968460008360446000806122a5565b611c5b576040516312171d8360e31b815260040160405180910390fd5b6000604051905060248101604052632e1a7d4d60e01b8152816004820152611ce28360008360246000806122a5565b6117635760405163c617296b60e01b815260040160405180910390fd5b6000604051905060048101604052630d0e30db60e41b8152611d2783838360046000806122a5565b6117635760405163bdc844ed60e01b815260040160405180910390fd5b600060405190506044810160405263095ea7b360e01b8152826004820152816024820152611d798460008360446000806122a5565b611c5b5760006024820152611d958460008360446000806122a5565b611db2576040516340b27c2160e11b815260040160405180910390fd5b816024820152611dc98460008360446000806122a5565b611c5b576040516340b27c2160e11b815260040160405180910390fd5b6000806040516024356042013560f01c60448103818301604052630563da2560e21b835260206004840152806024840152604051602081016040528160448086013760208184868a8c5af1945060018503611e4057805195505b505050509250929050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060600080856001600160a01b031685604051611eb89190612bf6565b600060405180830381855af49150503d8060008114611ef3576040519150601f19603f3d011682016040523d82523d6000602084013e611ef8565b606091505b5091509150611f0986838387612307565b9695505050505050565b604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091528183018a9052606082018990524660808301523060a0808401919091528351808403909101815260c090920190925280519101206000906000806000803060208b01523360408b01528a5160608b015260208b015160808b015260408b015160a08b015260608b015160c08b015260808b015160e08b015260a08b01516101008b015260c08b01516101208b015260016101008c015103611ff5576101208b01516101408b01526101408b01516101608b01525b888a206040519a5060428b0160405261190160f01b8b528560028c01528060228c01525060428a209350609035925060b035915060d03560f81c9050871561207657600061204585858585612380565b9050339650806000528760205260016040600020541461207057638baa579f60e01b60005260046000fd5b506120ad565b61208284848484612380565b9550306001600160a01b038716036120ad57604051638baa579f60e01b815260040160405180910390fd5b5050505050979650505050505050565b60405160e4810160405263d505accf60e01b81528760048201528660248201528560448201528460648201528360848201528260a48201528160c482015260008060e48360008d5af150505050505050505050565b60006040519050606481016040526323b872dd60e01b815283600482015282602482015281604482015261214d8560008360646000806122a5565b61216a57604051631e4e7d0960e21b815260040160405180910390fd5b5050505050565b6121ba6040518060e00160405280600063ffffffff1681526020016000801916815260200160008152602001600081526020016060815260200160608152602001606081525090565b60008060006024356042013560f01c60a2810135935060c281013560e01c925060c681013560801c9150506040518060e001604052808363ffffffff1681526020018481526020018881526020018781526020016122778360408051600360f01b6020820152600160f81b6022820152601360f01b6023820152600360f81b60258201526000602682015260809290921b6fffffffffffffffffffffffffffffffff19166028830152805160188184030181526038909201905290565b815260200161228587612480565b815260408051602080820190925260008152910152979650505050505050565b60006122e8565b60003d15600181146122c35780156122d4576122e2565b823b156122cf57600191505b6122e2565b60206000803e600080511191505b50919050565b81838587898b5af16122fe573d6000803e3d6000fd5b61162b876122ac565b6060831561237657825160000361236f576001600160a01b0385163b61236f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610908565b508161068d565b61068d83836124aa565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156123c357604051638baa579f60e01b815260040160405180910390fd5b8160ff16601b141580156123db57508160ff16601c14155b156123f957604051638baa579f60e01b815260040160405180910390fd5b60408051600081526020810180835287905260ff841691810191909152606081018590526080810184905260019060a0016020604051602081039080840390855afa15801561244c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661068d57604051638baa579f60e01b815260040160405180910390fd5b60408051602080825281830190925260609160208201818036833750505060208101929092525090565b8151156124ba5781518083602001fd5b8060405162461bcd60e51b81526004016109089190612c12565b80356001600160a01b03811681146124eb57600080fd5b919050565b60006020828403121561250257600080fd5b6114c5826124d4565b60008083601f84011261251d57600080fd5b5081356001600160401b0381111561253457600080fd5b60208301915083602082850101111561254c57600080fd5b9250929050565b6000806020838503121561256657600080fd5b82356001600160401b0381111561257c57600080fd5b6125888582860161250b565b90969095509350505050565b600080604083850312156125a757600080fd5b6125b0836124d4565b9150602083013580151581146125c557600080fd5b809150509250929050565b6000602082840312156125e257600080fd5b5035919050565b600080604083850312156125fc57600080fd5b612605836124d4565b9150612613602084016124d4565b90509250929050565b6000806020838503121561262f57600080fd5b82356001600160401b038082111561264657600080fd5b818501915085601f83011261265a57600080fd5b81358181111561266957600080fd5b8660208260051b850101111561267e57600080fd5b60209290920196919550909350505050565b60005b838110156126ab578181015183820152602001612693565b50506000910152565b600081518084526126cc816020860160208601612690565b601f01601f19169290920160200192915050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561273757603f198886030184526127258583516126b4565b94509285019290850190600101612709565b5092979650505050505050565b6000806040838503121561275757600080fd5b82359150612613602084016124d4565b600080600080600080600060a0888a03121561278257600080fd5b61278b886124d4565b96506020880135955060408801356001600160401b03808211156127ae57600080fd5b6127ba8b838c0161250b565b90975095508591506127ce60608b016124d4565b945060808a01359150808211156127e457600080fd5b506127f18a828b0161250b565b989b979a50959850939692959293505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261284757600080fd5b8301803591506001600160401b0382111561286157600080fd5b60200191503681900382131561254c57600080fd5b6000808585111561288657600080fd5b8386111561289357600080fd5b5050820193919092039150565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a2157610a216128a0565b60006001600160401b038083168181036128e5576128e56128a0565b6001019392505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061162b908301846126b4565b81810381811115610a2157610a216128a0565b6080815263ffffffff8451166080820152602084015160a0820152604084015160c0820152606084015160e08201526000608085015160e06101008401526129886101608401826126b4565b905060a0860151607f1980858403016101208601526129a783836126b4565b925060c088015191508085840301610140860152506129c682826126b4565b925050506129e1602083018580518252602090810151910152565b6001600160a01b038316606083015261068d565b604080519081016001600160401b0381118282101715612a1757612a17612804565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612a4557612a45612804565b604052919050565b600060408284031215612a5f57600080fd5b612a676129f5565b9050815181526020820151602082015292915050565b600060408284031215612a8f57600080fd5b612a976129f5565b9050815168ffffffffffffffffff81168114612ab257600080fd5b81526020828101516001600160401b0380821115612acf57600080fd5b818501915085601f830112612ae357600080fd5b815181811115612af557612af5612804565b612b07601f8201601f19168501612a1d565b91508082528684828501011115612b1d57600080fd5b612b2c81858401868601612690565b50808385015250505092915050565b600080600083850360e0811215612b5157600080fd5b6080811215612b5f57600080fd5b50604051606081016001600160401b038282108183111715612b8357612b83612804565b8160405286518352602087015191508082168214612ba057600080fd5b816020840152612bb38860408901612a4d565b6040840152829550612bc88860808901612a4d565b945060c0870151925080831115612bde57600080fd5b5050612bec86828701612a7d565b9150509250925092565b60008251612c08818460208701612690565b9190910192915050565b6020815260006114c560208301846126b456fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ae0b773c7c8ae6db8a439a5296474679893e84c2a8794e7348fbb433258e878164736f6c63430008180033