0 txs
0 calls
constructor
constructor(address _lzEndpoint, address _lockerProxy)
functions
baseGasLimit
viewfunction baseGasLimit() view returns (uint256)
DEFAULT_PAYLOAD_SIZE_LIMIT
viewfunction DEFAULT_PAYLOAD_SIZE_LIMIT() view returns (uint256)
failedMessages
viewfunction failedMessages(uint16, bytes, uint64) view returns (bytes32)
gasPerToken
viewfunction gasPerToken() view returns (uint256)
getConfig
viewfunction getConfig(uint16 _version, uint16 _chainId, address, uint256 _configType) view returns (bytes)
getTrustedRemoteAddress
viewfunction getTrustedRemoteAddress(uint16 _remoteChainId) view returns (bytes)
isTrustedRemote
viewfunction isTrustedRemote(uint16 _srcChainId, bytes _srcAddress) view returns (bool)
lockerProxy
viewfunction lockerProxy() view returns (address)
lzEndpoint
viewfunction lzEndpoint() view returns (address)
minDstGasLookup
viewfunction minDstGasLookup(uint16, uint16) view returns (uint256)
owner
viewfunction owner() view returns (address)
payloadSizeLimitLookup
viewfunction payloadSizeLimitLookup(uint16) view returns (uint256)
precrime
viewfunction precrime() view returns (address)
trustedRemoteLookup
viewfunction trustedRemoteLookup(uint16) view returns (bytes)
forceResumeReceive
nonpayablefunction forceResumeReceive(uint16 _srcChainId, bytes _srcAddress)
lzReceive
nonpayablefunction lzReceive(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload)
nonblockingLzReceive
nonpayablefunction nonblockingLzReceive(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload)
renounceOwnership
nonpayablefunction renounceOwnership()
retryMessage
payablefunction retryMessage(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload) payable
send
payablefunction send(address _from, address _to, uint16 _dstChainId, uint256[] _tokenIds, uint256[] _amounts) payable
setBaseGasLimit
nonpayablefunction setBaseGasLimit(uint256 _baseGasLimit)
setConfig
nonpayablefunction setConfig(uint16 _version, uint16 _chainId, uint256 _configType, bytes _config)
setGasPerToken
nonpayablefunction setGasPerToken(uint256 _gasPerToken)
setLockerProxy
nonpayablefunction setLockerProxy(address _lockerProxy)
setMinDstGas
nonpayablefunction setMinDstGas(uint16 _dstChainId, uint16 _packetType, uint256 _minGas)
setPayloadSizeLimit
nonpayablefunction setPayloadSizeLimit(uint16 _dstChainId, uint256 _size)
setPrecrime
nonpayablefunction setPrecrime(address _precrime)
setReceiveVersion
nonpayablefunction setReceiveVersion(uint16 _version)
setSendVersion
nonpayablefunction setSendVersion(uint16 _version)
setTrustedRemote
nonpayablefunction setTrustedRemote(uint16 _remoteChainId, bytes _path)
setTrustedRemoteAddress
nonpayablefunction setTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
BaseGasLimitSet
event BaseGasLimitSet(uint256 baseGasLimit)
GasPerTokenSet
event GasPerTokenSet(uint256 gasPerToken)
LockerProxySet
event LockerProxySet(address indexed lockerProxy)
MessageFailed
event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ReceiveBatchFromChain
event ReceiveBatchFromChain(uint16 indexed _srcChainId, address indexed _srcAddress, address indexed _toAddress, uint256[] _tokenIds, uint256[] _amounts)
RetryMessageSuccess
event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash)
SendBatchToChain
event SendBatchToChain(uint16 indexed dstChainId, address indexed from, address indexed toAddress, uint256[] tokenIds, uint256[] amounts)
SetMinDstGas
event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint256 _minDstGas)
SetPrecrime
event SetPrecrime(address precrime)
SetTrustedRemote
event SetTrustedRemote(uint16 _remoteChainId, bytes _path)
SetTrustedRemoteAddress
event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress)
errors
InvalidCaller
error InvalidCaller()
Unauthorized
error Unauthorized()
creation bytecode
0x60a0604052620249f060075561c3506008553480156200001e57600080fd5b5060405162002999380380620029998339810160408190526200004191620000eb565b81806200004e336200007e565b6001600160a01b03908116608052600680546001600160a01b031916939091169290921790915550620001239050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620000e657600080fd5b919050565b60008060408385031215620000ff57600080fd5b6200010a83620000ce565b91506200011a60208401620000ce565b90509250929050565b608051612829620001706000396000818161054901528181610657015281816108f8015281816109a001528181610bf50152818161107b015281816114bd015261173901526128296000f3fe6080604052600436106101e25760003560e01c80638cfd8f5c11610102578063baf3292d11610095578063df2a5b3b11610064578063df2a5b3b146105d4578063eb8d72b7146105f4578063f2fde38b14610614578063f5ecbdbc1461063457600080fd5b8063baf3292d1461056b578063c44618341461058b578063cbed8b9c146105a1578063d1deba1f146105c157600080fd5b806395a5ca34116100d157806395a5ca34146104d75780639f38369a146104f7578063a6c3d16514610517578063b353aaa71461053757600080fd5b80638cfd8f5c1461044b5780638da5cb5b146104835780638df66e34146104a1578063950c8a74146104b757600080fd5b80633f1f4fa41161017a578063715018a611610149578063715018a6146103b15780637533d788146103c65780637af6b34d146103f35780637bf3b6561461041357600080fd5b80633f1f4fa4146102f557806342d65a8d146103225780635b8c41e61461034257806366ad5c8a1461039157600080fd5b806310ddb137116101b657806310ddb13714610269578063178a54e1146102895780633388ed48146102b25780633d8b38f6146102c557600080fd5b80621d3567146101e757806302e4ba741461020957806307e0db17146102295780630df3748314610249575b600080fd5b3480156101f357600080fd5b50610207610202366004611c1b565b610654565b005b34801561021557600080fd5b50610207610224366004611cc5565b610885565b34801561023557600080fd5b50610207610244366004611ce0565b6108d7565b34801561025557600080fd5b50610207610264366004611cfb565b610960565b34801561027557600080fd5b50610207610284366004611ce0565b61097f565b34801561029557600080fd5b5061029f60085481565b6040519081526020015b60405180910390f35b6102076102c0366004611df9565b6109d7565b3480156102d157600080fd5b506102e56102e0366004611e8e565b610b0a565b60405190151581526020016102a9565b34801561030157600080fd5b5061029f610310366004611ce0565b60036020526000908152604090205481565b34801561032e57600080fd5b5061020761033d366004611e8e565b610bd6565b34801561034e57600080fd5b5061029f61035d366004611f07565b6005602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561039d57600080fd5b506102076103ac366004611c1b565b610c5c565b3480156103bd57600080fd5b50610207610d38565b3480156103d257600080fd5b506103e66103e1366004611ce0565b610d4c565b6040516102a99190611ff2565b3480156103ff57600080fd5b5061020761040e366004612005565b610de6565b34801561041f57600080fd5b50600654610433906001600160a01b031681565b6040516001600160a01b0390911681526020016102a9565b34801561045757600080fd5b5061029f61046636600461201e565b600260209081526000928352604080842090915290825290205481565b34801561048f57600080fd5b506000546001600160a01b0316610433565b3480156104ad57600080fd5b5061029f60075481565b3480156104c357600080fd5b50600454610433906001600160a01b031681565b3480156104e357600080fd5b506102076104f2366004612005565b610e2a565b34801561050357600080fd5b506103e6610512366004611ce0565b610e67565b34801561052357600080fd5b50610207610532366004611e8e565b610f7d565b34801561054357600080fd5b506104337f000000000000000000000000000000000000000000000000000000000000000081565b34801561057757600080fd5b50610207610586366004611cc5565b611006565b34801561059757600080fd5b5061029f61271081565b3480156105ad57600080fd5b506102076105bc366004612051565b61105c565b6102076105cf366004611c1b565b6110f1565b3480156105e057600080fd5b506102076105ef3660046120bf565b611307565b34801561060057600080fd5b5061020761060f366004611e8e565b6113b9565b34801561062057600080fd5b5061020761062f366004611cc5565b611413565b34801561064057600080fd5b506103e661064f3660046120fb565b61148c565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106d15760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff8616600090815260016020526040812080546106ef90612146565b80601f016020809104026020016040519081016040528092919081815260200182805461071b90612146565b80156107685780601f1061073d57610100808354040283529160200191610768565b820191906000526020600020905b81548152906001019060200180831161074b57829003601f168201915b50505050509050805186869050148015610783575060008151115b80156107ab5750805160208201206040516107a19088908890612180565b6040518091039020145b6108065760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b60648201526084016106c8565b61087c8787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061153d92505050565b50505050505050565b61088d6115b6565b600680546001600160a01b0319166001600160a01b0383169081179091556040517f94061a6ff8fbeee107cfa3f97b9aaa22b12137dbb0eba4a493d56dd5a1a0fc7390600090a250565b6108df6115b6565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561094557600080fd5b505af1158015610959573d6000803e3d6000fd5b5050505050565b6109686115b6565b61ffff909116600090815260036020526040902055565b6109876115b6565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb1379060240161092b565b6006546001600160a01b03163314610a01576040516282b42960e81b815260040160405180910390fd5b6040516bffffffffffffffffffffffff19606086901b16602082015260009060340160408051601f1981840301815290829052610a4491859085906020016121cb565b6040516020818303038152906040529050610ab0848288600060018851600854610a6e9190612224565b600754610a7b9190612241565b60405160f09290921b6001600160f01b0319166020830152602282015260420160405160208183030381529060405234611610565b846001600160a01b0316866001600160a01b03168561ffff167f7aaa4f6f4e9f36d4131d9537d95580ce459de8da42bf1af879871821b325dad58686604051610afa929190612254565b60405180910390a4505050505050565b61ffff831660009081526001602052604081208054829190610b2b90612146565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5790612146565b8015610ba45780601f10610b7957610100808354040283529160200191610ba4565b820191906000526020600020905b815481529060010190602001808311610b8757829003601f168201915b505050505090508383604051610bbb929190612180565b60405180910390208180519060200120149150509392505050565b610bde6115b6565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610c2e908690869086906004016122a2565b600060405180830381600087803b158015610c4857600080fd5b505af115801561087c573d6000803e3d6000fd5b333014610cba5760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b60648201526084016106c8565b610d308686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8901819004810282018101909252878152899350915087908790819084018382808284376000920191909152506117b592505050565b505050505050565b610d406115b6565b610d4a60006118ab565b565b60016020526000908152604090208054610d6590612146565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9190612146565b8015610dde5780601f10610db357610100808354040283529160200191610dde565b820191906000526020600020905b815481529060010190602001808311610dc157829003601f168201915b505050505081565b610dee6115b6565b60078190556040518181527f4130b077d13f52d6dd21e085c8900fb90b12eee6d0f50d9c16996519ef08840e906020015b60405180910390a150565b610e326115b6565b60088190556040518181527f87d299be79f88fcf890fa47473b3688eea6ea1bd54fae019b4d929edfbc715d990602001610e1f565b61ffff8116600090815260016020526040812080546060929190610e8a90612146565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb690612146565b8015610f035780601f10610ed857610100808354040283529160200191610f03565b820191906000526020600020905b815481529060010190602001808311610ee657829003601f168201915b505050505090508051600003610f5b5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f726400000060448201526064016106c8565b610f76600060148351610f6e91906122c0565b8391906118fb565b9392505050565b610f856115b6565b818130604051602001610f9a939291906122d3565b60408051601f1981840301815291815261ffff8516600090815260016020522090610fc5908261233f565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051610ff9939291906122a2565b60405180910390a1505050565b61100e6115b6565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b90602001610e1f565b6110646115b6565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c906110b890889088908890889088906004016123fe565b600060405180830381600087803b1580156110d257600080fd5b505af11580156110e6573d6000803e3d6000fd5b505050505050505050565b61ffff861660009081526005602052604080822090516111149088908890612180565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806111945760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b60648201526084016106c8565b8083836040516111a5929190612180565b6040518091039020146112045760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b60648201526084016106c8565b61ffff871660009081526005602052604080822090516112279089908990612180565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f880182900482028301820190528682526112bf918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506117b592505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e587878787856040516112f6959493929190612437565b60405180910390a150505050505050565b61130f6115b6565b600081116113575760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b60448201526064016106c8565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001610ff9565b6113c16115b6565b61ffff831660009081526001602052604090206113df828483612472565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab838383604051610ff9939291906122a2565b61141b6115b6565b6001600160a01b0381166114805760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106c8565b611489816118ab565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa15801561150c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611534919081019061257e565b95945050505050565b6000806115a05a60966366ad5c8a60e01b8989898960405160240161156594939291906125b2565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915230929190611a08565b9150915081610d3057610d308686868685611a92565b6000546001600160a01b03163314610d4a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106c8565b61ffff86166000908152600160205260408120805461162e90612146565b80601f016020809104026020016040519081016040528092919081815260200182805461165a90612146565b80156116a75780601f1061167c576101008083540402835291602001916116a7565b820191906000526020600020905b81548152906001019060200180831161168a57829003601f168201915b5050505050905080516000036117185760405162461bcd60e51b815260206004820152603060248201527f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060448201526f61207472757374656420736f7572636560801b60648201526084016106c8565b611723878751611b2f565b60405162c5803160e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c580310090849061177a908b9086908c908c908c908c906004016125f0565b6000604051808303818588803b15801561179357600080fd5b505af11580156117a7573d6000803e3d6000fd5b505050505050505050505050565b6000806000838060200190518101906117ce91906126b2565b601483015160065460405163a1aebdb160e01b8152949750929550909350916001600160a01b039091169063a1aebdb1906118139084908c9088908890600401612739565b600060405180830381600087803b15801561182d57600080fd5b505af1158015611841573d6000803e3d6000fd5b50505050600060148801519050816001600160a01b0316816001600160a01b03168a61ffff167fcef319bd2895b2a4076b7751a29aae37d4f1f89979d512ac6384ddeb12e803ae8787604051611898929190612254565b60405180910390a4505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60608161190981601f612241565b10156119485760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106c8565b6119528284612241565b845110156119965760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016106c8565b6060821580156119b557604051915060008252602082016040526119ff565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156119ee5780518352602092830192016119d6565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b03811115611a2d57611a2d611d25565b6040519080825280601f01601f191660200182016040528015611a57576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115611a79578692505b828152826000602083013e909890975095505050505050565b8180519060200120600560008761ffff1661ffff16815260200190815260200160002085604051611ac39190612779565b9081526040805191829003602090810183206001600160401b0388166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90611b209087908790879087908790612795565b60405180910390a15050505050565b61ffff821660009081526003602052604081205490819003611b5057506127105b80821115611ba05760405162461bcd60e51b815260206004820181905260248201527f4c7a4170703a207061796c6f61642073697a6520697320746f6f206c6172676560448201526064016106c8565b505050565b803561ffff81168114611bb757600080fd5b919050565b60008083601f840112611bce57600080fd5b5081356001600160401b03811115611be557600080fd5b602083019150836020828501011115611bfd57600080fd5b9250929050565b80356001600160401b0381168114611bb757600080fd5b60008060008060008060808789031215611c3457600080fd5b611c3d87611ba5565b955060208701356001600160401b0380821115611c5957600080fd5b611c658a838b01611bbc565b9097509550859150611c7960408a01611c04565b94506060890135915080821115611c8f57600080fd5b50611c9c89828a01611bbc565b979a9699509497509295939492505050565b80356001600160a01b0381168114611bb757600080fd5b600060208284031215611cd757600080fd5b610f7682611cae565b600060208284031215611cf257600080fd5b610f7682611ba5565b60008060408385031215611d0e57600080fd5b611d1783611ba5565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611d6357611d63611d25565b604052919050565b60006001600160401b03821115611d8457611d84611d25565b5060051b60200190565b600082601f830112611d9f57600080fd5b81356020611db4611daf83611d6b565b611d3b565b82815260059290921b84018101918181019086841115611dd357600080fd5b8286015b84811015611dee5780358352918301918301611dd7565b509695505050505050565b600080600080600060a08688031215611e1157600080fd5b611e1a86611cae565b9450611e2860208701611cae565b9350611e3660408701611ba5565b925060608601356001600160401b0380821115611e5257600080fd5b611e5e89838a01611d8e565b93506080880135915080821115611e7457600080fd5b50611e8188828901611d8e565b9150509295509295909350565b600080600060408486031215611ea357600080fd5b611eac84611ba5565b925060208401356001600160401b03811115611ec757600080fd5b611ed386828701611bbc565b9497909650939450505050565b60006001600160401b03821115611ef957611ef9611d25565b50601f01601f191660200190565b600080600060608486031215611f1c57600080fd5b611f2584611ba5565b925060208401356001600160401b03811115611f4057600080fd5b8401601f81018613611f5157600080fd5b8035611f5f611daf82611ee0565b818152876020838501011115611f7457600080fd5b81602084016020830137600060208383010152809450505050611f9960408501611c04565b90509250925092565b60005b83811015611fbd578181015183820152602001611fa5565b50506000910152565b60008151808452611fde816020860160208601611fa2565b601f01601f19169290920160200192915050565b602081526000610f766020830184611fc6565b60006020828403121561201757600080fd5b5035919050565b6000806040838503121561203157600080fd5b61203a83611ba5565b915061204860208401611ba5565b90509250929050565b60008060008060006080868803121561206957600080fd5b61207286611ba5565b945061208060208701611ba5565b93506040860135925060608601356001600160401b038111156120a257600080fd5b6120ae88828901611bbc565b969995985093965092949392505050565b6000806000606084860312156120d457600080fd5b6120dd84611ba5565b92506120eb60208501611ba5565b9150604084013590509250925092565b6000806000806080858703121561211157600080fd5b61211a85611ba5565b935061212860208601611ba5565b925061213660408601611cae565b9396929550929360600135925050565b600181811c9082168061215a57607f821691505b60208210810361217a57634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b600081518084526020808501945080840160005b838110156121c0578151875295820195908201906001016121a4565b509495945050505050565b6060815260006121de6060830186611fc6565b82810360208401526121f08186612190565b905082810360408401526122048185612190565b9695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761223b5761223b61220e565b92915050565b8082018082111561223b5761223b61220e565b6040815260006122676040830185612190565b82810360208401526115348185612190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff84168152604060208201526000611534604083018486612279565b8181038181111561223b5761223b61220e565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b601f821115611ba057600081815260208120601f850160051c810160208610156123205750805b601f850160051c820191505b81811015610d305782815560010161232c565b81516001600160401b0381111561235857612358611d25565b61236c816123668454612146565b846122f9565b602080601f8311600181146123a157600084156123895750858301515b600019600386901b1c1916600185901b178555610d30565b600085815260208120601f198616915b828110156123d0578886015182559484019460019091019084016123b1565b50858210156123ee5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600061ffff80881683528087166020840152508460408301526080606083015261242c608083018486612279565b979650505050505050565b61ffff86168152608060208201526000612455608083018688612279565b6001600160401b0394909416604083015250606001529392505050565b6001600160401b0383111561248957612489611d25565b61249d836124978354612146565b836122f9565b6000601f8411600181146124d157600085156124b95750838201355b600019600387901b1c1916600186901b178355610959565b600083815260209020601f19861690835b8281101561250257868501358255602094850194600190920191016124e2565b508682101561251f5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b600082601f83011261254257600080fd5b8151612550611daf82611ee0565b81815284602083860101111561256557600080fd5b612576826020830160208701611fa2565b949350505050565b60006020828403121561259057600080fd5b81516001600160401b038111156125a657600080fd5b61257684828501612531565b61ffff851681526080602082015260006125cf6080830186611fc6565b6001600160401b0385166040840152828103606084015261242c8185611fc6565b61ffff8716815260c06020820152600061260d60c0830188611fc6565b828103604084015261261f8188611fc6565b6001600160a01b0387811660608601528616608085015283810360a0850152905061264a8185611fc6565b9998505050505050505050565b600082601f83011261266857600080fd5b81516020612678611daf83611d6b565b82815260059290921b8401810191818101908684111561269757600080fd5b8286015b84811015611dee578051835291830191830161269b565b6000806000606084860312156126c757600080fd5b83516001600160401b03808211156126de57600080fd5b6126ea87838801612531565b9450602086015191508082111561270057600080fd5b61270c87838801612657565b9350604086015191508082111561272257600080fd5b5061272f86828701612657565b9150509250925092565b6001600160a01b038516815261ffff8416602082015260806040820181905260009061276790830185612190565b828103606084015261242c8185612190565b6000825161278b818460208701611fa2565b9190910192915050565b61ffff8616815260a0602082015260006127b260a0830187611fc6565b6001600160401b038616604084015282810360608401526127d38186611fc6565b905082810360808401526127e78185611fc6565b9897505050505050505056fea2646970667358221220f8b34385653e463afd6133cec01e552f8ad457c68714e6818828b9ceefaacb3f64736f6c6343000811003300000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd6750000000000000000000000008fda97f69a7ef779a3085ebf8f71b7399f42af4f