[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "address", "name": "_lzEndpoint", "type": "address" }, { "internalType": "address", "name": "_owner", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "caller", "type": "address" }, { "internalType": "address", "name": "minterAddress", "type": "address" } ], "name": "CallerNotMinter", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "maxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "totalSupply", "type": "uint256" }, { "internalType": "uint256", "name": "amounts", "type": "uint256" } ], "name": "CannotMintTokens", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "InvalidDelegate", "type": "error" }, { "inputs": [], "name": "InvalidEndpointCall", "type": "error" }, { "inputs": [], "name": "InvalidLocalDecimals", "type": "error" }, { "inputs": [], "name": "InvalidMinterAddress", "type": "error" }, { "inputs": [ { "internalType": "bytes", "name": "options", "type": "bytes" } ], "name": "InvalidOptions", "type": "error" }, { "inputs": [], "name": "LzTokenUnavailable", "type": "error" }, { "inputs": [ { "internalType": "uint32", "name": "eid", "type": "uint32" } ], "name": "NoPeer", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "msgValue", "type": "uint256" } ], "name": "NotEnoughNative", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "OnlyEndpoint", "type": "error" }, { "inputs": [ { "internalType": "uint32", "name": "eid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" } ], "name": "OnlyPeer", "type": "error" }, { "inputs": [], "name": "OnlySelf", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "inputs": [ { "internalType": "bytes", "name": "result", "type": "bytes" } ], "name": "SimulationResult", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "amountLD", "type": "uint256" }, { "internalType": "uint256", "name": "minAmountLD", "type": "uint256" } ], "name": "SlippageExceeded", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "uint32", "name": "eid", "type": "uint32" }, { "internalType": "uint16", "name": "msgType", "type": "uint16" }, { "internalType": "bytes", "name": "options", "type": "bytes" } ], "indexed": false, "internalType": "struct EnforcedOptionParam[]", "name": "_enforcedOptions", "type": "tuple[]" } ], "name": "EnforcedOptionSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "inspector", "type": "address" } ], "name": "MsgInspectorSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "guid", "type": "bytes32" }, { "indexed": false, "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "indexed": true, "internalType": "address", "name": "toAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountReceivedLD", "type": "uint256" } ], "name": "OFTReceived", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "guid", "type": "bytes32" }, { "indexed": false, "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "indexed": true, "internalType": "address", "name": "fromAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountSentLD", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountReceivedLD", "type": "uint256" } ], "name": "OFTSent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint32", "name": "eid", "type": "uint32" }, { "indexed": false, "internalType": "bytes32", "name": "peer", "type": "bytes32" } ], "name": "PeerSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "preCrimeAddress", "type": "address" } ], "name": "PreCrimeSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_newAddress", "type": "address" } ], "name": "SetMinterAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "SEND", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SEND_AND_CALL", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "internalType": "struct Origin", "name": "origin", "type": "tuple" } ], "name": "allowInitializePath", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "approvalRequired", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_eid", "type": "uint32" }, { "internalType": "uint16", "name": "_msgType", "type": "uint16" }, { "internalType": "bytes", "name": "_extraOptions", "type": "bytes" } ], "name": "combineOptions", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "composeMsgSender", "outputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimalConversionRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "endpoint", "outputs": [ { "internalType": "contract ILayerZeroEndpointV2", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "eid", "type": "uint32" }, { "internalType": "uint16", "name": "msgType", "type": "uint16" } ], "name": "enforcedOptions", "outputs": [ { "internalType": "bytes", "name": "enforcedOption", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "init", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initFlag", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_eid", "type": "uint32" }, { "internalType": "bytes32", "name": "_peer", "type": "bytes32" } ], "name": "isPeer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "internalType": "struct Origin", "name": "_origin", "type": "tuple" }, { "internalType": "bytes32", "name": "_guid", "type": "bytes32" }, { "internalType": "bytes", "name": "_message", "type": "bytes" }, { "internalType": "address", "name": "_executor", "type": "address" }, { "internalType": "bytes", "name": "_extraData", "type": "bytes" } ], "name": "lzReceive", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "components": [ { "components": [ { "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "internalType": "struct Origin", "name": "origin", "type": "tuple" }, { "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "bytes32", "name": "guid", "type": "bytes32" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "address", "name": "executor", "type": "address" }, { "internalType": "bytes", "name": "message", "type": "bytes" }, { "internalType": "bytes", "name": "extraData", "type": "bytes" } ], "internalType": "struct InboundPacket[]", "name": "_packets", "type": "tuple[]" } ], "name": "lzReceiveAndRevert", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "internalType": "struct Origin", "name": "_origin", "type": "tuple" }, { "internalType": "bytes32", "name": "_guid", "type": "bytes32" }, { "internalType": "bytes", "name": "_message", "type": "bytes" }, { "internalType": "address", "name": "_executor", "type": "address" }, { "internalType": "bytes", "name": "_extraData", "type": "bytes" } ], "name": "lzReceiveSimulate", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_receiverAddress", "type": "address" }, { "internalType": "uint256", "name": "_amounts", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "minterAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "msgInspector", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "", "type": "uint32" }, { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "nextNonce", "outputs": [ { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "oApp", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "oAppVersion", "outputs": [ { "internalType": "uint64", "name": "senderVersion", "type": "uint64" }, { "internalType": "uint64", "name": "receiverVersion", "type": "uint64" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "oftVersion", "outputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" }, { "internalType": "uint64", "name": "version", "type": "uint64" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "eid", "type": "uint32" } ], "name": "peers", "outputs": [ { "internalType": "bytes32", "name": "peer", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "preCrime", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "internalType": "bytes32", "name": "to", "type": "bytes32" }, { "internalType": "uint256", "name": "amountLD", "type": "uint256" }, { "internalType": "uint256", "name": "minAmountLD", "type": "uint256" }, { "internalType": "bytes", "name": "extraOptions", "type": "bytes" }, { "internalType": "bytes", "name": "composeMsg", "type": "bytes" }, { "internalType": "bytes", "name": "oftCmd", "type": "bytes" } ], "internalType": "struct SendParam", "name": "_sendParam", "type": "tuple" } ], "name": "quoteOFT", "outputs": [ { "components": [ { "internalType": "uint256", "name": "minAmountLD", "type": "uint256" }, { "internalType": "uint256", "name": "maxAmountLD", "type": "uint256" } ], "internalType": "struct OFTLimit", "name": "oftLimit", "type": "tuple" }, { "components": [ { "internalType": "int256", "name": "feeAmountLD", "type": "int256" }, { "internalType": "string", "name": "description", "type": "string" } ], "internalType": "struct OFTFeeDetail[]", "name": "oftFeeDetails", "type": "tuple[]" }, { "components": [ { "internalType": "uint256", "name": "amountSentLD", "type": "uint256" }, { "internalType": "uint256", "name": "amountReceivedLD", "type": "uint256" } ], "internalType": "struct OFTReceipt", "name": "oftReceipt", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "internalType": "bytes32", "name": "to", "type": "bytes32" }, { "internalType": "uint256", "name": "amountLD", "type": "uint256" }, { "internalType": "uint256", "name": "minAmountLD", "type": "uint256" }, { "internalType": "bytes", "name": "extraOptions", "type": "bytes" }, { "internalType": "bytes", "name": "composeMsg", "type": "bytes" }, { "internalType": "bytes", "name": "oftCmd", "type": "bytes" } ], "internalType": "struct SendParam", "name": "_sendParam", "type": "tuple" }, { "internalType": "bool", "name": "_payInLzToken", "type": "bool" } ], "name": "quoteSend", "outputs": [ { "components": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "lzTokenFee", "type": "uint256" } ], "internalType": "struct MessagingFee", "name": "msgFee", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "internalType": "bytes32", "name": "to", "type": "bytes32" }, { "internalType": "uint256", "name": "amountLD", "type": "uint256" }, { "internalType": "uint256", "name": "minAmountLD", "type": "uint256" }, { "internalType": "bytes", "name": "extraOptions", "type": "bytes" }, { "internalType": "bytes", "name": "composeMsg", "type": "bytes" }, { "internalType": "bytes", "name": "oftCmd", "type": "bytes" } ], "internalType": "struct SendParam", "name": "_sendParam", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "lzTokenFee", "type": "uint256" } ], "internalType": "struct MessagingFee", "name": "_fee", "type": "tuple" }, { "internalType": "address", "name": "_refundAddress", "type": "address" } ], "name": "send", "outputs": [ { "components": [ { "internalType": "bytes32", "name": "guid", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" }, { "components": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "lzTokenFee", "type": "uint256" } ], "internalType": "struct MessagingFee", "name": "fee", "type": "tuple" } ], "internalType": "struct MessagingReceipt", "name": "msgReceipt", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "amountSentLD", "type": "uint256" }, { "internalType": "uint256", "name": "amountReceivedLD", "type": "uint256" } ], "internalType": "struct OFTReceipt", "name": "oftReceipt", "type": "tuple" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_delegate", "type": "address" } ], "name": "setDelegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "eid", "type": "uint32" }, { "internalType": "uint16", "name": "msgType", "type": "uint16" }, { "internalType": "bytes", "name": "options", "type": "bytes" } ], "internalType": "struct EnforcedOptionParam[]", "name": "_enforcedOptions", "type": "tuple[]" } ], "name": "setEnforcedOptions", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_minterAddress", "type": "address" } ], "name": "setMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_msgInspector", "type": "address" } ], "name": "setMsgInspector", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_eid", "type": "uint32" }, { "internalType": "bytes32", "name": "_peer", "type": "bytes32" } ], "name": "setPeer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_preCrime", "type": "address" } ], "name": "setPreCrime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sharedDecimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60c06040908082523462000465576000620030fc80380380916200002482866200046a565b8439820191608081840312620004615780516001600160401b03929083811162000461578462000056918401620004a4565b916020948582015185811162000445579062000074918301620004a4565b906060620000848883016200051a565b916001600160a01b039182916200009c91016200051a565b16918215620004495784546001600160a01b0319811684178655839083167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08780a31680608052803b1562000445578390818951809263ca5eb5e160e01b8252600495868301528160249889925af180156200043b5762000418575b509064e8d4a5100060a0528451938685116200032357600854946001968787811c971680156200040d575b8a881014620003fb578190601f97888111620003a7575b508a908883116001146200034057869262000334575b5050600019600383901b1c191690871b176008555b83519687116200032357600954918683811c9316801562000318575b8984101462000307575050838111620002be575b50859285116001146200025557939450849291908362000249575b50501b916000199060031b1c1916176009555b51612bcc90816200053082396080518181816106b1015281816107a9015281816109e901528181610b2301528181611602015281816118b10152611bed015260a05181818161059f015281816108aa0152818161137401528181611c7101526128530152f35b015192503880620001d0565b6009815285812093958591601f198316915b88838310620002a3575050501062000289575b505050811b01600955620001e3565b015160001960f88460031b161c191690553880806200027a565b85870151885590960195948501948793509081019062000267565b600982528682208480880160051c820192898910620002fd575b0160051c019085905b828110620002f1575050620001b5565b838155018590620002e1565b92508192620002d8565b634e487b7160e01b84526022905282fd5b92607f1692620001a1565b634e487b7160e01b83526041825282fd5b01519050388062000170565b600887528b87208a94509190601f198416888e5b8282106200038f575050841162000375575b505050811b0160085562000185565b015160001960f88460031b161c1916905538808062000366565b8385015186558d979095019493840193018e62000354565b909150600886528a86208880850160051c8201928d8610620003f1575b918b91869594930160051c01915b828110620003e25750506200015a565b8881558594508b9101620003d2565b92508192620003c4565b634e487b7160e01b8552602284528285fd5b96607f169662000143565b868111620004295788523862000118565b5060418492634e487b7160e01b835252fd5b89513d84823e3d90fd5b8380fd5b8851631e4fbdf760e01b815260048101869052602490fd5b5080fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200048e57604052565b634e487b7160e01b600052604160045260246000fd5b919080601f84011215620004655782516001600160401b0381116200048e5760209060405192620004df83601f19601f85011601856200046a565b818452828287010111620004655760005b8181106200050657508260009394955001015290565b8581018301518482018401528201620004f0565b51906001600160a01b0382168203620004655756fe6080604081815260048036101561001557600080fd5b60009260e08435811c91826306fdde03146120a457508163095ea7b314611ffa5781630d35b41514611e85578163111ecdad14611e5d57816313137d6514611bcb578163134d4f2514611bae578163156a0d0f14611b8757816317442b7014611b6557816318160ddd14611b455781631f5e133414611b2857816323b872dd14611a2f578163313ce56714611a125781633400288b1461199057816334d722c9146119665781633b6f743b146117bb5781633fd3eb1f1461179357816340c10f19146116e957816352ae2879146103345781635535d461146116775781635a0dfe4d146116315781635e280f11146115ec5781636fc1b31e1461157d57816370a0823114611544578163715018a6146114ea5781637d25a05e146114c4578163857749b0146114a75781638da5cb5b1461147e57816395d89b4114611397578163963efcaa1461135b5781639f68b9641461133f578163a9059cbb1461130d578163b731ea0a146112e3578163b92d0eff14610334578163b98bd07014611005578163bb0b6a5314610fd0578163bc70b35414610f64578163bd815db014610cf4578163c7c7f5b31461081e57848263ca5eb5e11461077b57508163d045a0dc1461053e57508063d4243885146104cf578063d5abeb01146104b0578063dd62ed3e14610462578063e1c7392a146103c9578063f2fde38b14610339578063fc0c546a14610334578063fca3b5aa146102785763ff7bd03d1461023757600080fd5b34610274576060366003190112610274573563ffffffff811680910361026f5782829160209452600184522054905190602435148152f35b600080fd5b8280fd5b5034610274576020366003190112610274576102926121c4565b600a5492906001600160a01b0390818516338190036103035750169182156102f557506001600160a01b031983168217600a55519183161781527f3837b3499de3708015c6500ef8f4674b59400c221c3941276e38d1d5cb560e1290602090a180f35b9051634d489fcd60e11b8152fd5b83516333d8f42960e21b8152338187019081526001600160a01b0390921660208301529081906040010390fd5b0390fd5b6122ae565b5034610274576020366003190112610274576103536121c4565b9061035c6127fe565b6001600160a01b039182169283156103b3575050600054826bffffffffffffffffffffffff60a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b51631e4fbdf760e01b8152908101849052602490fd5b50503461045e578160031936011261045e576103e36127fe565b600a5460ff8160a01c1615610406575b826a3b8e97d229a2d548000000600b5580f35b82546001600160a81b03199091166001600160a01b0391821617600160a01b17600a8190559151911681527f3837b3499de3708015c6500ef8f4674b59400c221c3941276e38d1d5cb560e1290602090a138806103f3565b5080fd5b50503461045e578060031936011261045e5760209161047f6121c4565b826104886121da565b6001600160a01b03928316845260068652922091166000908152908352819020549051908152f35b50503461045e578160031936011261045e57602090600b549051908152f35b50503461045e57602036600319011261045e5760207fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c24277609161050e6121c4565b6105166127fe565b600280546001600160a01b0319166001600160a01b039290921691821790559051908152a180f35b90506105493661221d565b50505095929390919430330361076d5790879187602011610274576001600160a01b0384358116986105c993906105808188612586565b6001600160c01b03199691879190358281169160088110610757575b507f000000000000000000000000000000000000000000000000000000000000000092505060c01c6126d3565b966105d38a612475565b506105de888d612a77565b6028821161062d575b505050505050506106187fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c93612475565b9063ffffffff8351921682526020820152a380f35b888a0135906001600160401b0382168203610753576106af9361066761066085604c968f61065a90612475565b95612597565b369161254f565b918b5198899460c01b16602085015263ffffffff60e01b911b16602883015288602c83015261069f815180926020868601910161217c565b810103602c810186520184612424565b7f00000000000000000000000000000000000000000000000000000000000000001691823b1561074f576107149289858094895196879586948593633e5ac80960e11b85528401528d602484015283604484015260806064840152608483019061219f565b03925af180156107455761072d575b80808080806105e7565b610736906123db565b610741578538610723565b8580fd5b84513d84823e3d90fd5b8380fd5b8780fd5b8391925060080360031b1b16168690388061059c565b835163029a949d60e31b8152fd5b8084863461081a57602036600319011261081a576107976121c4565b61079f6127fe565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116803b15610741578592836024928651978895869463ca5eb5e160e01b865216908401525af190811561081157506107fe5750f35b610807906123db565b61080e5780f35b80fd5b513d84823e3d90fd5b5050fd5b9050600319838560803684011261080e578435916001600160401b03948584116102745783870194843603011261045e578060231936011261045e576001600160a01b0391606435808416900361026f5761087761269d565b50815192610884846123aa565b6000845260006020809501526108d860446108d36064880135976108a78a612475565b507f00000000000000000000000000000000000000000000000000000000000000009283910135612b13565b6126d3565b94808610610cd857503315610cc15733600052600584528260002054858110610c9557859033600052600586520383600020558460075403600755600083518681527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef863392a36109498587612842565b9061095388612475565b91855190610960826123aa565b602435825287820191604435835261097661269d565b505192833403610c7f57825180610b1f575b50916080959391859361099e6109e59f976126e6565b925115159263ffffffff8b51966109b4886123ee565b1686528b860152898501526060840152858301528651809c819582946302637a4560e41b8452606435918401612a09565b03927f0000000000000000000000000000000000000000000000000000000000000000165af1968715610b13578197610aa9575b50508060c096815194610a2b866123aa565b80865284860196818852610a40835191612475565b9163ffffffff8551931683528087840152848301527f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a60603393a381519681518852848201511684880152015190815190860152015160608401525160808301525160a0820152f35b90965060803d608011610b0c575b610ac18183612424565b81019060808183031261075357825197610ada89612409565b815189528482015190888216820361080e57508392838a93610b02938860c09d0152016129e1565b8282015296610a19565b503d610ab7565b509051903d90823e3d90fd5b8d877f000000000000000000000000000000000000000000000000000000000000000016908b8b51809263393f876560e21b825281855afa908115610c75579089918b91610c37575b5016918215610c28578980610bda938e938e5190858201926323b872dd60e01b84523360248401526044830152606482015260648152610ba7816123ee565b519082875af13d15610c1f578b3d610bca610bc182612534565b92519283612424565b81528b81933d92013e5b83612b33565b8051908b8215159283610c06575b50505015610988578d6024918a5191635274afe760e01b8352820152fd5b610c16935082018101910161282a565b158f8b81610be8565b60609150610bd4565b8f8b516329b99a9560e11b8152fd5b8092508d8092503d8311610c6e575b610c508183612424565b81010312610c6a57518881168103610c6a57889038610b68565b8980fd5b503d610c46565b8b513d8c823e3d90fd5b87516304fb820960e51b815234818f0152602490fd5b835163391434e360e21b815233818b019081526020810192909252604082018790529081906060010390fd5b8251634b637e8f60e11b8152808901839052602490fd5b88604491878651926371c4efed60e01b84528301526024820152fd5b8493915060209360031991858336011261045e576001600160401b0392853584811161074f57610d279036908801612445565b9290845b848110610e00575050505050825190638e9e709960e01b825280828681335afa928315610df4578193610d7b575b5050506103309151938493638351eea760e01b8552840152602483019061219f565b909192503d8083853e610d8e8185612424565b8301928681850312610274578051918211610274570182601f8201121561045e57805191610dbb83612534565b93610dc886519586612424565b83855287848401011161080e57508291610deb918780610330979601910161217c565b90918580610d59565b508351903d90823e3d90fd5b8060051b82013561013e1983360301811215610f60578201610e2181612475565b610e428c830135809263ffffffff1660005260016020526040600020541490565b15610f5657610e556101008301836124e1565b868401356001600160a01b03811693919290849003610f5257610e7c6101208601866124e1565b939092303b15610f4e57908f9695949392918f8f91815199633411683760e21b8b5263ffffffff610eac8b61229d565b16908b015260248a0152870135908116809103610f4a5787958e979587958e610ef78f97899760c099610f0b9860448b015260a08d013560648b015260848a015260e4890191612513565b9360a48701528584030160c4860152612513565b03920135305af18015610f4057908791610f2c575b50506001905b01610d2b565b610f35906123db565b61074157858b610f20565b89513d89823e3d90fd5b8d80fd5b8c80fd5b8a80fd5b5050600190610f26565b8680fd5b50503461027457606036600319011261027457610f7f61228a565b90610f886122c9565b93604435906001600160401b03821161080e575091610fb1610fcc9592610fb9943691016121f0565b9290916125b4565b905191829160208352602083019061219f565b0390f35b5050503461045e57602036600319011261045e578060209263ffffffff610ff561228a565b1681526001845220549051908152f35b50509034610274576020918260031936011261074f576001600160401b039281358481116107415783869361103e879336908301612445565b90916110486127fe565b865b828110611141575050825194818187018288525283860192848360051b88010195819589925b8584106110a1578a7fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748b8b038ca180f35b9091929394959697603f198a82030188528835605e198336030181121561113d57820160609063ffffffff6110d58261229d565b1683528781013561ffff811680910361026f578884015284810135601e1982360301811215610f4a570190878235920192868311610f4a578236038413610f4a576001938993838386958a61112d9601520191612513565b9a01980196959401929190611070565b8b80fd5b611166611160611157838688999a9b97986124a9565b888101906124e1565b90612ad6565b61117d6111748286886124a9565b878101906124e1565b63ffffffff61119561119085898b6124a9565b612475565b168a5260038552878a20856111ab85898b6124a9565b013561ffff811680910361113d57600052855287600020918982116112d0576111d483546122da565b90601f9182811161128b575b508b918311600114611225576001949392918c918361121a575b5050600019600383901b1c191690841b1790555b0195949392919561104a565b013590508c806111fa565b838c52868c2091601f1984168d5b89828210611275575050908460019796959493921061125b575b505050831b8301905561120e565b0135600019600384901b60f8161c191690558b808061124d565b6001849682939587013581550195019201611233565b848d52878d208380860160051c8201928a87106112c7575b0160051c01908d905b8281106112ba5750506111e0565b6001918155018d906112ac565b925081926112a3565b634e487b7160e01b8b526041855260248bfd5b5050503461045e578160031936011261045e5760025490516001600160a01b039091168152602090f35b5050503461045e578060031936011261045e5760209061133861132e6121c4565b602435903361271e565b5160018152f35b5050503461045e578160031936011261045e5751908152602090f35b5050503461045e578160031936011261045e57602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b83853461080e578060031936011261080e5750805160095490918260006113bd846122da565b8083526020946001908660018216918260001461145c5750506001146113ff575b5050610fcc92916113f0910385612424565b5192828493845283019061219f565b9085925060096000527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af916000925b82841061144457505050820101816113f06113de565b8054848a01860152889550879490930192810161142e565b60ff19168682015292151560051b850190920192508391506113f090506113de565b5050503461045e578160031936011261045e57905490516001600160a01b039091168152602090f35b5050503461045e578160031936011261045e576020905160068152f35b5050503461045e578060031936011261045e57906020916114e361228a565b5051908152f35b843461080e578060031936011261080e576115036127fe565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050503461045e57602036600319011261045e5760209181906001600160a01b0361156d6121c4565b1681526005845220549051908152f35b50509034610274576020366003190112610274577ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197916020916115be6121c4565b6115c66127fe565b82546001600160a01b0319166001600160a01b039190911690811790925551908152a180f35b5050503461045e578160031936011261045e57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050503461045e578060031936011261045e5760209061166e61165261228a565b6024359063ffffffff1660005260016020526040600020541490565b90519015158152f35b5050503461045e578060031936011261045e5780610fcc9261ffff6116d09361169e61228a565b9263ffffffff6116ac6122c9565b9416815260036020522091166000526020526116d781600020825193848092612314565b0383612424565b5191829160208352602083019061219f565b8385843461045e578260031936011261045e576117046121c4565b600a5460243592906001600160a01b0316338190036117665750600754600b5461172e8583612486565b81111561174357856117408686612a77565b80f35b865163e66c2e5360e01b8152928301526024820152604481019290925250606490fd5b85516333d8f42960e21b8152339281019283526001600160a01b0390911660208301529081906040010390fd5b5050503461045e578160031936011261045e5760209060ff600a5460a01c1690519015158152f35b84929150346102745760031990848236011261074f578235906001600160401b0382116119625781840192823603011261074f57602435908115158092036119625760006020875161180c816123aa565b828152015261182860446108d36064840135936108a787612475565b908082106119455750916118ad94939161184e611846889584612842565b919093612475565b9260006020875161185e816123aa565b828152015261186c846126e6565b63ffffffff87519561187d876123ee565b168552602085015285840152606083015260808201528251631bb8518b60e31b8152948592839230918401612a09565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9182156119395781926118fd575b505060208251918051835201516020820152f35b90928092503d8311611932575b6119148183612424565b810190828183031261074f5761192b9293506129e1565b82806118e9565b503d61190a565b508251903d90823e3d90fd5b86516371c4efed60e01b8152808601929092526024820152604490fd5b8480fd5b5050503461045e578160031936011261045e57600a5490516001600160a01b039091168152602090f35b5050503461045e578060031936011261045e577f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b906119cd61228a565b611a0c602435926119dc6127fe565b63ffffffff831686526001602052838187205551928392836020909392919363ffffffff60408201951681520152565b0390a180f35b5050503461045e578160031936011261045e576020905160128152f35b8385843461045e57606036600319011261045e57611a4b6121c4565b611a536121da565b91604435938560018060a01b03841691828152600660205220336000526020528560002054916000198303611a91575b60208761133888888861271e565b858310611afc578115611ae5573315611ace5750600090815260066020908152868220338352815290869020918590039091558290611338611a83565b6024906000885191634a1406b160e11b8352820152fd5b602490600088519163e602df0560e01b8352820152fd5b8651637dc7a0d960e11b8152339181019182526020820193909352604081018690528291506060010390fd5b5050503461045e578160031936011261045e576020905160018152f35b5050503461045e578160031936011261045e576020906007549051908152f35b83853461080e578060031936011261080e575080516001815260016020820152f35b83853461080e578060031936011261080e5750805162b9270b60e21b815260016020820152f35b5050503461045e578160031936011261045e576020905160028152f35b91929050611bd83661221d565b5091979396929493926001600160a01b0392507f000000000000000000000000000000000000000000000000000000000000000083169150338203611e4757611c28611c2386612475565b6126e6565b6020860135809103611e115750908992918960201161074f57611c9b9287351699611c538189612586565b6001600160c01b03199591869190358281169160088110611dfb57507f000000000000000000000000000000000000000000000000000000000000000092505060c01c6126d3565b97611ca588612475565b50611cb0898d612a77565b60288211611ce8575b858c8c7fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c8d8d6106188e612475565b89880135906001600160401b0382168203610f6057611d5c93611d1461066085604c9661065a8e612475565b918c5197889460c01b16602085015263ffffffff60e01b911b16602883015289602c830152611d4c815180926020868601910161217c565b810103602c810185520183612424565b803b15610274578883611d9c95895196879586948593633e5ac80960e11b85528401528c602484015283604484015260806064840152608483019061219f565b03925af18015611df157611db6575b868180808080611cb9565b7fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c93929196611de7610618926123db565b9691929350611dab565b84513d89823e3d90fd5b8391925060080360031b1b16168590388061059c565b846103308992611e2089612475565b935163309afaf360e21b815263ffffffff9094169284019283526020830152829160400190565b86516391ac5e4f60e01b81523381860152602490fd5b5050346102745782600319360112610274575490516001600160a01b03909116815260209150f35b8484849234610274576003199160203684018113611962578535926001600160401b0394858511610f605784360301126119625784818351611ec6816123aa565b828152015284818351611ed8816123aa565b8281520152815191611ee9836123aa565b858352818301958587528151978389019689881090881117611fe757868352818952611f2460446108d36064890135986108a7818601612475565b95808710611fca575050929190805197611f3d896123aa565b85895282890195865281519760a0890194518952518389015260a0828901525180935260c0870160c08460051b8901019694915b848310611f8c57895160608a0152865160808a015288880389f35b9091929394968480611fba60019360bf198d820301875285838d51805184520151918185820152019061219f565b9901930193019194939290611f71565b83516371c4efed60e01b8152918201879052602482015260449150fd5b634e487b7160e01b825260419052602490fd5b5050346102745781600319360112610274576120146121c4565b60243590331561208d576001600160a01b031691821561207657508083602095338152600687528181208582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8351634a1406b160e11b8152908101859052602490fd5b835163e602df0560e01b8152808401869052602490fd5b85853461045e578160031936011261045e5782826008546120c4816122da565b90818452602095600191876001821691826000146121555750506001146120f9575b505050610fcc92916113f0910385612424565b9190869350600883527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee35b82841061213d57505050820101816113f0610fcc6120e6565b8054848a018601528895508794909301928101612124565b60ff19168782015293151560051b860190930193508492506113f09150610fcc90506120e6565b60005b83811061218f5750506000910152565b818101518382015260200161217f565b906020916121b88151809281855285808601910161217c565b601f01601f1916010190565b600435906001600160a01b038216820361026f57565b602435906001600160a01b038216820361026f57565b9181601f8401121561026f578235916001600160401b03831161026f576020838186019501011161026f57565b600319810160e0811261026f5760601361026f57600491606435916001600160401b039060843582811161026f5781612258916004016121f0565b9093909260a4356001600160a01b038116810361026f579260c43591821161026f57612286916004016121f0565b9091565b6004359063ffffffff8216820361026f57565b359063ffffffff8216820361026f57565b3461026f57600036600319011261026f576020604051308152f35b6024359061ffff8216820361026f57565b90600182811c9216801561230a575b60208310146122f457565b634e487b7160e01b600052602260045260246000fd5b91607f16916122e9565b805460009392612323826122da565b9182825260209360019160018116908160001461238b575060011461234a575b5050505050565b90939495506000929192528360002092846000945b83861061237757505050500101903880808080612343565b80548587018301529401938590820161235f565b60ff19168685015250505090151560051b010191503880808080612343565b604081019081106001600160401b038211176123c557604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116123c557604052565b60a081019081106001600160401b038211176123c557604052565b606081019081106001600160401b038211176123c557604052565b90601f801991011681019081106001600160401b038211176123c557604052565b9181601f8401121561026f578235916001600160401b03831161026f576020808501948460051b01011161026f57565b3563ffffffff8116810361026f5790565b9190820180921161249357565b634e487b7160e01b600052601160045260246000fd5b91908110156124cb5760051b81013590605e198136030182121561026f570190565b634e487b7160e01b600052603260045260246000fd5b903590601e198136030182121561026f57018035906001600160401b03821161026f5760200191813603831361026f57565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160401b0381116123c557601f01601f191660200190565b92919261255b82612534565b916125696040519384612424565b82948184528183011161026f578281602093846000960137010152565b9060281161026f5760200190600890565b909291928360281161026f57831161026f57602801916027190190565b6116d09092919263ffffffff6000911681526020936003855261ffff604083209116825284526125ed6040822060405193848092612314565b81511561268e57841561268657600285101561262857505061033090604051938493639a6d49cd60e01b855260048501526024840191612513565b9091936126358186612ad6565b8060021161045e57916126839391601e936001199360405197846126628a9651809285808a01910161217c565b85019160028785019201908301370190848201520390810184520182612424565b90565b509250505090565b5050905061268391369161254f565b604051906126aa82612409565b81600081526000602082015260408051916126c4836123aa565b60008352600060208401520152565b8181029291811591840414171561249357565b63ffffffff16806000526001602052604060002054908115612706575090565b6024906040519063f6ff4fb760e01b82526004820152fd5b916001600160a01b038084169283156127e557169283156127cc57600090838252600560205260408220549083821061279a575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95876020965260058652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6000546001600160a01b0316330361281257565b60405163118cdaa760e01b8152336004820152602490fd5b9081602091031261026f5751801515810361026f5790565b9091602061290861287882850135957f000000000000000000000000000000000000000000000000000000000000000090612b13565b61288861066060a08701876124e1565b80511580159791906129af576128e291606891604051948592888401526001600160401b0360c01b9060c01b1660408301523360488301526128d28151809289868601910161217c565b8101036048810184520182612424565b935b84956000146129a7576002905b610fb16128fd82612475565b9160808101906124e1565b6004549093906001600160a01b03168061292157505050565b61294e83916129609360405180958194829363043a78eb60e01b845260406004850152604484019061219f565b8281036003190160248401528a61219f565b03915afa801561299b57612972575050565b8161299192903d10612994575b6129898183612424565b81019061282a565b50565b503d61297f565b6040513d6000823e3d90fd5b6001906128f1565b509060405191848301526001600160401b0360c01b9060c01b166040820152602881526129db81612409565b936128e4565b919082604091031261026f576040516129f9816123aa565b6020808294805184520151910152565b906020909392936040835263ffffffff81511660408401528181015160608401526080612a5d612a47604084015160a08488015260e087019061219f565b6060840151868203603f190160a088015261219f565b910151151560c08401526001600160a01b03909416910152565b6001600160a01b03169081156127cc577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602082612ab9600094600754612486565b6007558484526005825260408420818154019055604051908152a3565b908060021161026f576003823560f01c03612aef575050565b610330604051928392639a6d49cd60e01b8452602060048501526024840191612513565b8115612b1d570490565b634e487b7160e01b600052601260045260246000fd5b90612b5a5750805115612b4857805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580612b8d575b612b6b575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15612b6356fea26469706673582212200fb2054a6d16bbf86bc1e2bec74102284f5ab1de91643d9cbbbfba17c029dc3e64736f6c63430008160033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000006edce65403992e310a62460808c4b910d972f10f000000000000000000000000f844f42d3ed88d77e8ccfee7d1558e2e62a26d81000000000000000000000000000000000000000000000000000000000000000a4172726f77546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054152524f57000000000000000000000000000000000000000000000000000000