[ { "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" }, { "internalType": "address", "name": "_logicAddress", "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": "implementation", "type": "address" } ], "name": "ERC1967InvalidImplementation", "type": "error" }, { "inputs": [], "name": "ERC1967NonPayable", "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": [ { "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": 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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "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": "getLogicAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "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": "_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" }, { "inputs": [ { "internalType": "address", "name": "implementation", "type": "address" } ], "name": "upgradeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60c0604090808252346200062e576000620034b7803803809162000024828662000633565b8439820160a0838203126200062a5782516001600160401b0381116200062657816200005291850162000689565b60208401519091906001600160401b0381116200062257906200007791850162000689565b62000084858501620006f4565b90620000a160806200009960608801620006f4565b9601620006f4565b92865192602084019684881060018060401b038911176200060e578789528685526001600160a01b0316908115620005f65786546001600160a01b031981168317885582906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08980a36001600160a01b0316608081905290813b15620005f2578691602483928b51948593849263ca5eb5e160e01b845260048401525af18015620005e857620005b8575b5064e8d4a5100060a0528051906001600160401b038211620005a457600854600181811c9116801562000599575b602082101462000585579081601f84931162000523575b50602090601f8311600114620004a75787926200049b575b50508160011b916000199060031b1c1916176008555b8051906001600160401b0382116200048757600954600181811c911680156200047c575b602082101462000468579081601f84931162000406575b50602090601f83116001146200038f57869262000383575b50508160011b916000199060031b1c1916176009555b813b1562000363577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a25180156200035957828091620002e095845af4903d156200034f573d620002c1816200066d565b90620002d08751928362000633565b8152809360203d92013e62000709565b505b51612d05908162000772823960805181818161073001528181610cfe01528181611037015281816118ab015281816119c90152818161267e0152612a95015260a051818181610c480152818161129a015281816117600152818161219a015281816123da01526127f20152f35b6060925062000709565b50505050620002e2565b8451634c9c8ce360e01b81526001600160a01b0383166004820152602490fd5b0151905038806200021b565b60098752600080516020620034978339815191529250601f198416875b818110620003ed5750908460019594939210620003d3575b505050811b0160095562000231565b015160001960f88460031b161c19169055388080620003c4565b92936020600181928786015181550195019301620003ac565b6009875290915060008051602062003497833981519152601f840160051c810191602085106200045d575b90601f859493920160051c01905b8181106200044e575062000203565b8781558493506001016200043f565b909150819062000431565b634e487b7160e01b86526022600452602486fd5b90607f1690620001ec565b634e487b7160e01b85526041600452602485fd5b015190503880620001b2565b600888528793506000805160206200347783398151915291905b601f198416851062000507576001945083601f19811610620004ed575b505050811b01600855620001c8565b015160001960f88460031b161c19169055388080620004de565b81810151835560209485019460019093019290910190620004c1565b6008885290915060008051602062003477833981519152601f840160051c810191602085106200057a575b90601f859493920160051c01905b8181106200056b57506200019a565b8881558493506001016200055c565b90915081906200054e565b634e487b7160e01b87526022600452602487fd5b90607f169062000183565b634e487b7160e01b86526041600452602486fd5b9094906001600160401b038111620005d4578752933862000155565b634e487b7160e01b82526041600452602482fd5b88513d88823e3d90fd5b8680fd5b8851631e4fbdf760e01b815260048101889052602490fd5b634e487b7160e01b87526041600452602487fd5b8380fd5b8280fd5b5080fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200065757604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116200065757601f01601f191660200190565b9080601f830112156200062e57815190620006a4826200066d565b92620006b4604051948562000633565b828452602091602084830101116200062e5760005b838110620006e05750505060206000918301015290565b8181018301518582018401528201620006c9565b51906001600160a01b03821682036200062e57565b906200073257508051156200072057805190602001fd5b604051630a12f52160e11b8152600490fd5b8151158062000767575b62000745575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156200073c56fe6080604052600436106126f25760003560e01c806306fdde03146102c2578063095ea7b3146102bd5780630d35b415146102b8578063111ecdad146102b357806313137d65146102ae578063134d4f25146102a9578063156a0d0f146102a457806317442b701461029f57806318160ddd1461029a5780631f5e13341461029557806323b872dd14610290578063313ce5671461028b5780633400288b146102865780633659cfe6146102815780633b6f743b1461027c57806352ae2879146101fa5780635535d461146102775780635a0dfe4d146102725780635e280f111461026d5780636fc1b31e1461026857806370a0823114610263578063715018a61461025e5780637d25a05e14610259578063857749b0146102545780638da5cb5b1461024f57806395d89b411461024a578063963efcaa146102455780639f68b96414610240578063a9059cbb1461023b578063abd108ba14610236578063b731ea0a14610231578063b92d0eff146101fa578063b98bd0701461022c578063bb0b6a5314610227578063bc70b35414610222578063bd815db01461021d578063c7c7f5b314610218578063ca5eb5e114610213578063d045a0dc1461020e578063d424388514610209578063dd62ed3e14610204578063f2fde38b146101ff578063fc0c546a146101fa5763ff7bd03d036126f257611bcf565b610da4565b611b43565b611ae0565b611a70565b611913565b61187a565b6116f4565b611550565b6114f8565b6114bd565b6113cb565b611356565b61130e565b6112d9565b6112bd565b611282565b6111da565b6111b1565b611195565b61116e565b611113565b6110d6565b611066565b611021565b610fd9565b610f56565b610beb565b610b06565b610a7f565b610a55565b6109a1565b610985565b610967565b610945565b61091e565b610902565b610715565b610659565b6105b3565b61042d565b610333565b60009103126102d257565b600080fd5b60005b8381106102ea5750506000910152565b81810151838201526020016102da565b90602091610313815180928185528580860191016102d7565b601f01601f1916010190565b9060206103309281815201906102fa565b90565b346102d2576000806003193601126104195760405190806008549061035782610dcb565b808552916020916001918281169081156103ec5750600114610394575b6103908661038481880382610f35565b6040519182918261031f565b0390f35b9350600884527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee35b8385106103d9575050505081016020016103848261039038610374565b80548686018401529382019381016103bc565b90508695506103909693506020925061038494915060ff191682840152151560051b820101929338610374565b80fd5b6001600160a01b038116036102d257565b346102d25760403660031901126102d25760043561044a8161041c565b60243533156104e2576001600160a01b0382169182156104c9573360009081526006602052604090208291610491915b9060018060a01b0316600052602052604060002090565b556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b908160e09103126102d25790565b9392916105248560a081019360208091805184520151910152565b60409160a06040870152815180915260c086019160c08260051b880101936020809201936000915b848310610574575050505050509060606105729294019060208091805184520151910152565b565b90919293949584806105a36001938d60bf1990820301875285838c5180518452015191818582015201906102fa565b980193019301919493929061054c565b346102d25760203660031901126102d2576001600160401b036004358181116102d2576105e49036906004016104fb565b906105ed611c28565b506105f6611c28565b506040519061060482610eb1565b60008252602082015261039061063d6040519361062085610eff565b6000855261062d81611c41565b5060406060820135910135612191565b610645611c0e565b918252602082015260405193849384610509565b346102d25760003660031901126102d2576004546040516001600160a01b039091168152602090f35b9181601f840112156102d2578235916001600160401b0383116102d257602083818601950101116102d257565b600319810160e081126102d2576060136102d257600491606435916001600160401b03906084358281116102d257816106ea91600401610682565b9390939260a4356106fa8161041c565b9260c4359182116102d25761071191600401610682565b9091565b61071e366106af565b50929492506001600160a01b039190507f000000000000000000000000000000000000000000000000000000000000000082163381036108ea57833561076381610a71565b61076c816121eb565b9060208601358092036108b557505061079461078883886127c6565b6001600160a01b031690565b916107a76107a282896127d2565b6127e4565b80976107b287611c41565b506107bd8286612bc9565b6028831161080c575b505050506108076107e5600080516020612c9083398151915294611c41565b956040519384931696836020909392919363ffffffff60408201951681520152565b0390a3005b90610837929161083161082160408a01612223565b9361082b8a611c41565b92612818565b92612834565b90803b156102d257604051633e5ac80960e11b8152916000918391829084908290610867908c8a6004850161222d565b03925af180156108b057600080516020612c9083398151915294610807926107e592610897575b889196506107c6565b806108a46108aa92610ed1565b806102c7565b3861088e565b6120d7565b6108be81610a71565b60405163309afaf360e21b815263ffffffff9190911660048201526024810191909152604490fd5b0390fd5b6040516391ac5e4f60e01b8152336004820152602490fd5b346102d25760003660031901126102d257602060405160028152f35b346102d25760003660031901126102d2576040805162b9270b60e21b815260016020820152f35b346102d25760003660031901126102d257604080516001815260016020820152f35b346102d25760003660031901126102d2576020600754604051908152f35b346102d25760003660031901126102d257602060405160018152f35b346102d25760603660031901126102d2576004356109be8161041c565b6024356109ca8161041c565b6001600160a01b038216600090815260066020908152604080832033845290915290206044359190549260018401610a13575b610a079350612258565b60405160018152602090f35b828410610a2f57610a2a83610a079503338361273e565b6109fd565b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b346102d25760003660031901126102d257602060405160128152f35b63ffffffff8116036102d257565b346102d25760403660031901126102d2577f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b600435610abd81610a71565b60243590610ac9612363565b63ffffffff8116600052600160205281604060002055610b01604051928392836020909392919363ffffffff60408201951681520152565b0390a1005b346102d25760203660031901126102d257600435610b238161041c565b610b2b612363565b604051610b3781610eff565b60008152813b15610bc0577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2805115610bb657610bb4916129b3565b005b5050610bb461296a565b604051634c9c8ce360e01b81526001600160a01b0383166004820152602490fd5b801515036102d257565b346102d2576040806003193601126102d2576004356001600160401b0381116102d257610c1c9036906004016104fb565b90602435610c2981610be1565b610c31611c28565b506060830135833593610c4385610a71565b610c797f0000000000000000000000000000000000000000000000000000000000000000610c74818785013561278e565b6127ae565b91808310610d8757508392610c95610cfa9693610cdf936123c9565b90610c9f85610a71565b610ca7611c28565b50610cb1856121eb565b610cc8610cbc611c1b565b63ffffffff9097168752565b602086015285850152606084015215156080830152565b815180948192631bb8518b60e31b8352309060048401612514565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108b05761039092600092610d58575b505191829182815181526020918201519181019190915260400190565b81610d799293503d8411610d80575b610d718183610f35565b810190612500565b9038610d3b565b503d610d67565b826044918651916371c4efed60e01b835260048301526024820152fd5b346102d25760003660031901126102d2576020604051308152f35b61ffff8116036102d257565b90600182811c92168015610dfb575b6020831014610de557565b634e487b7160e01b600052602260045260246000fd5b91607f1691610dda565b805460009392610e1482610dcb565b91828252602093600191600181169081600014610e7c5750600114610e3b575b5050505050565b90939495506000929192528360002092846000945b838610610e6857505050500101903880808080610e34565b805485870183015294019385908201610e50565b60ff19168685015250505090151560051b010191503880808080610e34565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610ecc57604052565b610e9b565b6001600160401b038111610ecc57604052565b606081019081106001600160401b03821117610ecc57604052565b602081019081106001600160401b03821117610ecc57604052565b60a081019081106001600160401b03821117610ecc57604052565b90601f801991011681019081106001600160401b03821117610ecc57604052565b346102d25760403660031901126102d257610390610fbe610fc5610fb2600435610f7f81610a71565b63ffffffff60243591610f9183610dbf565b16600052600360205260406000209061ffff16600052602052604060002090565b60405192838092610e05565b0382610f35565b6040519182916020835260208301906102fa565b346102d25760403660031901126102d2576020611017600435610ffb81610a71565b6024359063ffffffff1660005260016020526040600020541490565b6040519015158152f35b346102d25760003660031901126102d2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102d25760203660031901126102d2577ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d441419760206004356110a68161041c565b6110ae612363565b600480546001600160a01b0319166001600160a01b03929092169182179055604051908152a1005b346102d25760203660031901126102d2576004356110f38161041c565b60018060a01b031660005260056020526020604060002054604051908152f35b346102d2576000806003193601126104195761112d612363565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b346102d25760403660031901126102d25761118a600435610a71565b602060405160008152f35b346102d25760003660031901126102d257602060405160068152f35b346102d25760003660031901126102d2576000546040516001600160a01b039091168152602090f35b346102d257600080600319360112610419576040519080600954906111fe82610dcb565b808552916020916001918281169081156103ec575060011461122a576103908661038481880382610f35565b9350600984527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b83851061126f575050505081016020016103848261039038610374565b8054868601840152938201938101611252565b346102d25760003660031901126102d25760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102d25760003660031901126102d257602060405160008152f35b346102d25760403660031901126102d2576113036004356112f98161041c565b6024359033612258565b602060405160018152f35b346102d25760003660031901126102d2577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546040516001600160a01b039091168152602090f35b346102d25760003660031901126102d2576002546040516001600160a01b039091168152602090f35b9060206003198301126102d2576004356001600160401b03928382116102d257806023830112156102d25781600401359384116102d25760248460051b830101116102d2576024019190565b346102d2576113d93661137f565b6113e1612363565b60005b81811061141d57507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67491610b0160405192839283611e24565b806114b76114b26114316001948688611c7c565b61144961144360409283810190611ca3565b90612582565b61146061145785888a611c7c565b82810190611ca3565b92909163ffffffff611473878a8c611c7c565b3561147d81610a71565b166000526114a0602091600383526000209161149a888b8d611c7c565b01611cd5565b61ffff16600052602052604060002090565b611d35565b016113e4565b346102d25760203660031901126102d25763ffffffff6004356114df81610a71565b1660005260016020526020604060002054604051908152f35b346102d25760603660031901126102d25760043561151581610a71565b60243561152181610dbf565b604435906001600160401b0382116102d25761039092611548610fc5933690600401610682565b929091611f85565b6115593661137f565b60005b8181106115c857604051638e9e709960e01b8152600081600481335afa80156108b0576108e6916000916115a5575b50604051638351eea760e01b81529182916004830161031f565b6115c291503d806000833e6115ba8183610f35565b8101906120e3565b8261158b565b6115d381838561201f565b906116056116016115e384611c41565b60208501359063ffffffff1660005260016020526040600020541490565b1590565b61169a57611617610100830183611ca3565b9261162460e08201612042565b90611633610120820182611ca3565b959095303b156102d25760009461166960c092604051998a9788968795633411683760e21b875260a08a01358a6004890161205d565b03920135305af19182156108b057600192611687575b505b0161155c565b806108a461169492610ed1565b3861167f565b60019150611681565b9160806105729294936116e3604060c0830197805184526001600160401b0360208201511660208501520151604083019060208091805184520151910152565b019060208091805184520151910152565b60803660031901126102d2576004356001600160401b0381116102d25761171f9036906004016104fb565b6040806023193601126102d257606435906117398261041c565b611741612141565b5061174a611c28565b5060608301359161175b8435610a71565b61178c7f0000000000000000000000000000000000000000000000000000000000000000610c74818588013561278e565b9280841061185d5750331561184557906117d0610390926117ad8533612891565b6117b785876123c9565b6117c088611c41565b916117ca36612169565b92612601565b926117d9611c0e565b948186528160208701527f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a611838611812875193611c41565b9385519181839233978460409194939263ffffffff606083019616825260208201520152565b0390a351928392836116a3565b8151634b637e8f60e11b815260006004820152602490fd5b836044918451916371c4efed60e01b835260048301526024820152fd5b346102d25760006020366003190112610419576004356118998161041c565b6118a1612363565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691839190833b1561190f5760249083604051958694859363ca5eb5e160e01b85521660048401525af180156108b057611903575080f35b61190c90610ed1565b80f35b8280fd5b61191c366106af565b5050509290303303611a5e5761193561078885836127c6565b936119436107a282846127d2565b9161194d84611c41565b506119588387612bc9565b602882116119a7575b505061197b600080516020612c9083398151915292611c41565b6040805163ffffffff909216825260208201929092526001600160a01b03909416939081908101610807565b90826119c6926108316119bc60408801612223565b9361082b88611c41565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156102d257604051633e5ac80960e11b8152936000918591829084908290611a20908b8d6004850161222d565b03925af19081156108b057600080516020612c908339815191529361197b92611a4b575b5092611961565b806108a4611a5892610ed1565b38611a44565b60405163029a949d60e31b8152600490fd5b346102d25760203660031901126102d2577fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c24277606020600435611ab08161041c565b611ab8612363565b600280546001600160a01b0319166001600160a01b03929092169182179055604051908152a1005b346102d25760403660031901126102d2576020611b3a600435611b028161041c565b60243590611b0f8261041c565b60018060a01b03166000526006835260406000209060018060a01b0316600052602052604060002090565b54604051908152f35b346102d25760203660031901126102d257600435611b608161041c565b611b68612363565b6001600160a01b039081168015611bb657600080546001600160a01b03198116831782559092167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b604051631e4fbdf760e01b815260006004820152602490fd5b346102d25760603660031901126102d25763ffffffff600435611bf181610a71565b166000526001602052602060406000205460405190602435148152f35b6040519061057282610eb1565b6040519061057282610f1a565b60405190611c3582610eb1565b60006020838281520152565b3561033081610a71565b6001600160401b038111610ecc57601f01601f191660200190565b634e487b7160e01b600052603260045260246000fd5b9190811015611c9e5760051b81013590605e19813603018212156102d2570190565b611c66565b903590601e19813603018212156102d257018035906001600160401b0382116102d2576020019181360383136102d257565b3561033081610dbf565b90601f8111611ced57505050565b6000916000526020600020906020601f850160051c83019410611d2b575b601f0160051c01915b828110611d2057505050565b818155600101611d14565b9092508290611d0b565b9092916001600160401b038111610ecc57611d5a81611d548454610dcb565b84611cdf565b6000601f8211600114611d9b578190611d8c939495600092611d90575b50508160011b916000199060031b1c19161790565b9055565b013590503880611d77565b601f19821694611db084600052602060002090565b91805b878110611deb575083600195969710611dd1575b505050811b019055565b0135600019600384901b60f8161c19169055388080611dc7565b90926020600181928686013581550194019101611db3565b908060209392818452848401376000828201840152601f01601f1916010190565b916020908082850183865252604091604085019460408360051b82010195856000925b858410611e5957505050505050505090565b9091929394959697603f198282030184528835605e19843603018112156102d257830160609063ffffffff8135611e8f81610a71565b16835261ffff88820135611ea281610dbf565b168884015289810135601e19823603018112156102d25701908782359201926001600160401b0383116102d25782360384136102d2576001938993838386958f611eef9601520191611e03565b9a019401940192969594939190611e47565b929192611f0d82611c4b565b91611f1b6040519384610f35565b8294818452818301116102d2578281602093846000960137010152565b60209083610572939594956040519683611f5b89955180928880890191016102d7565b8401918583013701600083820152038085520183610f35565b916020610330938181520191611e03565b610fb2610fbe9263ffffffff611fb69316600052600360205260406000209061ffff16600052602052604060002090565b80511561201357821561200d576002831015611fe957506108e6604051928392639a6d49cd60e01b845260048401611f74565b611ff38383612582565b826002116102d25761033092600119019160020190611f38565b91505090565b50610330913691611f01565b9190811015611c9e5760051b8101359061013e19813603018212156102d2570190565b356103308161041c565b6001600160401b038116036102d257565b9290936120b9926001600160401b0360406103309a98999763ffffffff813561208581610a71565b16885260208101356020890152013561209d8161204c565b166040860152606085015260e0608085015260e0840191611e03565b6001600160a01b0390941660a082015280840360c090910152611e03565b6040513d6000823e3d90fd5b6020818303126102d2578051906001600160401b0382116102d2570181601f820112156102d257805161211581611c4b565b926121236040519485610f35565b818452602082840101116102d25761033091602080850191016102d7565b6040519061214e82610ee4565b8160008152600060208201526040612164611c28565b910152565b60409060231901126102d2576040519061218282610eb1565b60243582526044356020830152565b6121c090610c747f0000000000000000000000000000000000000000000000000000000000000000809261278e565b9182918084106121cd5750565b83604491604051916371c4efed60e01b835260048301526024820152fd5b63ffffffff1680600052600160205260406000205490811561220b575090565b6024906040519063f6ff4fb760e01b82526004820152fd5b356103308161204c565b610330939260809260018060a01b0316825260208201526000604082015281606082015201906102fa565b916001600160a01b038084169290831561234a578116938415612331576001600160a01b038116600090815260056020526040902054838110612302576122fd9284926122cc600080516020612cb0833981519152966122e794039160018060a01b03166000526005602052604060002090565b556001600160a01b0316600090815260056020526040902090565b8054820190556040519081529081906020820190565b0390a3565b60405163391434e360e21b81526001600160a01b03929092166004830152602482015260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6000546001600160a01b0316330361237757565b60405163118cdaa760e01b8152336004820152602490fd5b908160209103126102d2575161033081610be1565b90916123bb610330936040845260408401906102fa565b9160208184039101526102fa565b909161242d61240b6123ff612454957f00000000000000000000000000000000000000000000000000000000000000009061278e565b6001600160401b031690565b61242261241b60a0860186611ca3565b3691611f01565b9060208501356129d1565b93909283946000146124d0576002905b61154861244982611c41565b916080810190611ca3565b60045490926001600160a01b0390911690838261247057505050565b60405163043a78eb60e01b81529260209284928391829161249491600484016123a4565b03915afa80156108b0576124a55750565b6124c69060203d6020116124c9575b6124be8183610f35565b81019061238f565b50565b503d6124b4565b60019061243d565b91908260409103126102d2576040516124f081610eb1565b6020808294805184520151910152565b906040828203126102d257610330916124d8565b906020909392936040835263ffffffff81511660408401528181015160608401526080612568612552604084015160a08488015260e08701906102fa565b6060840151868203603f190160a08801526102fa565b910151151560c08401526001600160a01b03909416910152565b90806002116102d2576003823560f01c0361259b575050565b6108e6604051928392639a6d49cd60e01b8452602060048501526024840191611e03565b906080828203126102d2576125f99060408051936125dc85610ee4565b8051855260208101516125ee8161204c565b6020860152016124d8565b604082015290565b61265e6080949261267a9694612615612141565b5060206126228651612a5c565b9501918251806126e3575b50612637856121eb565b9251151592612647610cbc611c1b565b602086015260408501526060840152151585830152565b6040518095819482936302637a4560e41b845260048401612514565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156108b0576000916126ba575090565b610330915060803d6080116126dc575b6126d48183610f35565b8101906125bf565b503d6126ca565b6126ec90612a7e565b3861262d565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54600090819081906001600160a01b0316368280378136915af43d82803e1561273a573d90f35b3d90fd5b906001600160a01b03808316156104e2578116156104c95761047a6127759260018060a01b03166000526006602052604060002090565b55565b634e487b7160e01b600052601160045260246000fd5b8115612798570490565b634e487b7160e01b600052601260045260246000fd5b818102929181159184041417156127c157565b612778565b906020116102d2573590565b906028116102d2576020013560c01c90565b610330906001600160401b037f000000000000000000000000000000000000000000000000000000000000000091166127ae565b90806028116102d2576103309136916027190190602801611f01565b604c9193610330936040519586936001600160401b0360c01b9060c01b16602085015263ffffffff60e01b9060e01b166028840152602c83015261288181518092602086860191016102d7565b810103602c810184520182610f35565b6001600160a01b03811690816128da5750600754918083018093116127c1576020600080516020612cb0833981519152916000946007555b8060075403600755604051908152a3565b6001600160a01b0381166000908152600560205260409020549392908185106129385781602091612932600080516020612cb08339815191529460009798039160018060a01b03166000526005602052604060002090565b556128c9565b60405163391434e360e21b81526001600160a01b03919091166004820152602481018590526044810191909152606490fd5b3461297157565b60405163b398979f60e01b8152600490fd5b3d156129ae573d9061299482611c4b565b916129a26040519384610f35565b82523d6000602084013e565b606090565b60008061033093602081519101845af46129cb612983565b91612c2c565b82511580159390612a2f57612a2c9160689160405194859260208401526001600160401b0360c01b9060c01b166040830152336048830152612a1c81518092602086860191016102d7565b8101036048810184520182610f35565b91565b50906040519160208301526001600160401b0360c01b9060c01b16604082015260288152612a2c81610ee4565b803403612a665790565b6040516304fb820960e51b8152346004820152602490fd5b60405163393f876560e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116926020929091908381600481885afa9081156108b057600091612b93575b5016928315612b815760008091612b299360405190868201926323b872dd60e01b84523360248401526044830152606482015260648152612b1481610f1a565b519082875af1612b22612983565b9084612c2c565b908151918215159182612b65575b50509050612b425750565b604051635274afe760e01b81526001600160a01b03919091166004820152602490fd5b611601925080612b7994830101910161238f565b803880612b37565b6040516329b99a9560e11b8152600490fd5b90508381813d8311612bc2575b612baa8183610f35565b810103126102d25751612bbc8161041c565b38612ad4565b503d612ba0565b6001600160a01b0381169190821561233157600754908282018092116127c157600092612c1d602092600080516020612cb08339815191529460075560018060a01b03166000526005602052604060002090565b818154019055604051908152a3565b90612c535750805115612c4157805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580612c86575b612c64575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15612c5c56feefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9cddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c57116030fb5ea89f6977be64074df7ab1e617d0b00f5adc9b780a1af2f8ac1864736f6c63430008160033f3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee36e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000001a44076050125825900e736c501f859c50fe728c0000000000000000000000006576f532c733d092ccd65471d9444a10d6fea64100000000000000000000000088b545fd20903b701f84a578c38711d8f7bb362e000000000000000000000000000000000000000000000000000000000000000a4172726f77546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054152524f57000000000000000000000000000000000000000000000000000000